Tuesday, November 18, 2014

[ASIC/SoC] CISC vs RISC

지난번 ARM을 설명하다보니 언급되었던 CPU의 명령어 처리 방식 중 하나인 CISC와 RISC가 있는데 이번에는 이 두가지에 대하여 알아보도록 하자.

CISC : Complex Instruction Set Compute의 약자로 CPU(Central Processing Unit)내부에 많은 명령어들을 담고 있는 명령어세트를 말한다.

RISC : Reduced Instruction Set Compute의 약자로 마찬가지로 CPU 내부에 명령어세트 이지만 실행속도를 높이기 위해 많이 사용되는 명령어들만을 사용하고 있으며 다른 부분들은 소프트웨어로 대신하는 방법이다.

CISC의 대표적은 것들은 Intel의 대부분 CPU가 CISC 방식을 사용하고 있으며 반면 RISC 방식의 대표적인 것은 단연 ARM 이다.

범용 컴퓨터의 경우 OS를 기반으로 어떤 소프트웨어든지 범용적으로 사용할 수 있도록 가능한한 많은 명령어들을 CPU에서 처리함으로써 소프트웨어를 만드는 것이 단순해지고 컴파일 속도가 빠르다. 그러나 CPU에서 많은 명령어들을 처리하다보니 CPU의 구조가 복잡하고 가격이 비싸고 전력소모가 많은 것이 단점이다.

따라서 자주 쓰이지 않는 명령어들은 소프트웨어로 처리하고 자주 사용되는 명령어만 간략화 하여 CPU의 성능을 높인 것이 RISC 이다. 1970년대 중반부터 IBM을 비롯한 컴퓨터 관련기업 및 대학에서 컴퓨터가 자료를 처리하는데 사용되는 명령어들 중 20% 명령어가 전체 사용횟수(실행시간)의 80%를 차지한다는 것을 알게 되었고 그에 따라 간단한 명령만을 만들어 전체 실행시간을 단축시켰다. 다만 CPU에서 대부분의 명령어를 처리했던 CISC 방식과는 달리 RISC는 CPU에서 처리하지 못하는 명령어를 소프트웨어에서 처리해야한다. 따라서 CISC방식(컴파일)된 소프트웨어는 RISC에서 사용되지 못했으며 아무래도 CPU에서 처리하지 못하는 명령어들을 소프트웨어에서 처리하다보니 소프트웨어 개발기간이 오래걸리거나 호환성이 떨어지고 특수 목적(임베디드)용으로만 사용되게 되었다.

하지만 모바일 시대인 만큼 집에서 컴퓨터를 사용하는 시대는 지나갔고 스마트폰을 통해 모든 것을 해결하는 시대이므로 가장 중요한 것이 포터블이 되어 저전력과 빠른 속도에 최적화 되어있는 RISC 방식이 지금의 대세 아키텍쳐라고 할 수 있다. 그리고 가장 대표적인 것이 역시 ARM([오늘의 반도체 용어] What is ARM) 코어 ARM이 어디까지 전설을 이어갈지 궁금하다.

No comments :

Post a Comment