본문 바로가기

Computer

RISC/CISC

 

RISC / CISC
 


 

1. RISC 방식

 1) 간단한 load/store 구조

  레지스터 간 연산 : 50 %

  load/store : 20 % 이하

 2) 단순한 명령어

  고정길이

  단순된 형식

  주소 지정 방식 간단

 3) 단순한 hard wired 제어

  명령어 해독 간단

  고속의 hard wired 기술

 4) 다량의 register set

  피연산자 및 프로세서 상태의 저장에 이용

  칩 외부의 메모리 액세스 감소

  최대 256개 (CISC:32개)

 5) 빠른 클락

 6) Pipelining 및 delayed branch

  Pipelining : 명령어를 겹쳐서 동시 실행

  Delayed Branch : 분기 해소하기 전에 명령어를 한 개 더 실행

 7) Harvard 구조 :

  명령어 버스와 데이터 버스 분리

  명령어 인출과 데이터 적재/저장을 중첩


2. RISC의 장단점  

장            점

단            점

속도 향상

단순한 명령어

칩면적 최소화

메모리 액세스 최소화

개발 기간 단축

프로그램이 길다.

Compiler 설계 주의

Hybrid CPU(혼성 CPU) : 양 특성을 절충



3. 대표적인 CISC와 RISC  

CISC Microprocessor

RISC Microprocessor

Intel 80386, 80486 :  PC

Motorola 68030, 68040 : McIntosh

Intel i860 : low cost 3-D workstations

Motorola 88000 Series (88100, 88110) : PC, workstation

MIPS R Series (R3000, R4000) : 가전, 이동통신, 네트워크, 전자제품, 장난감 등

SPARC : Sun Workstation

IBM RISC System/6000 : UNIX Server


4. CISC와 RISC의 비교

CISC Microprocessor

RISC Microprocessor

고전적인 CPU 설계

명령어 세트가 복잡하고 가변적 길이

다양한 주소 지정 방식

간단한 설계

레지스터를 많이 사용하는 명령어 채택

제어장치가 단순하고 속도가 빠름


프로세서는 어떤 명령들을 처리해 주는 처리기다. 한마디로 cpu다.

cisc(complex instruction set computer)

복잡한 명령어들의 집함 컴퓨터

명렁어들이 복잡하다는 단점, 즉 명령어의 개수가 많다는 단점이 있는 반면 프로그램의 길이가 작고 레지스터수가 적다. 우리가 주로 쓰는 개인용 컴퓨터는 cisc를 사용한다.

risc(Reduced instruction set computer)

간단한 명령어들의 집합 컴퓨터

명령어들의 간단한 반면 적은수의 명령어로 프로그램을 짜니 자연히 프로그램의 길이가 길어집니다. 그러므로 저장 공간도 더 많이 차지하고 레지스터수가 많고 속도가 빠르다. 워크스테이션 같은 컴퓨터에서 주로 사용한다.


CISC 방식의 경우 사용되는 모든 명령어들을 내장하고 있지만 실제 주로 사용되는 명령어들은 그중 10% 이하에 불과하다. 이에 착안해서 만들어진 것이 RISC 방식으로서 사용빈도가 높은 명령어들만을 내장하여 CPU 를 구성하게 된다. RISC에 대해 간단히 설명하면 축약형 프로세서라고 할 수 있는데 CISC처럼 많은 수의 단순한 명령어들을 탑재하는 것이 아니라 여러 종류의 명령을 포괄해 처리할 수 있는 작은 수의 명령어만을 탑재하는 방식이라고 할 수 있다.


초기에는 단순히 RISC 가 CISC 를 간소화시킨 정도로 보기도 했지만 RISC 방식으로 CISC 에서 처리할 수 있는 기능들을 모두 처리할 수 있게 됨에 따라 RISC 방식이 점차 주목받게 되었다. RISC 방식은 명령어 수를 줄이는 대신 CPU 내부 캐쉬, 수퍼스칼라, 파이프 라이닝, 비순차 명령 실행, 레지스터 개수 증가 등 CPU 의 근본적인 기능을 향상시켜 CISC 에 비해 월등히 높은 처리 속도를 가질 수 있게 되었다.


우리가 흔히 볼 수 있는 CPU들 중에서 인텔의 x86 계열 CPU 와 AMD 의 인텔 호환 CPU 등은 CISC 방식으로, 트랜스메타의 크루소와 애플의 Power PC 등은 RISC 방식으로 분류할 수 있습니다. 개인용 컴퓨터에서 사용되는 CPU 중 대표적인 RISC 방식이라고 할 수 있는 Power PC(Power Optimized with Enhanced RISC PC)는 애플과 IBM 그리고 모토로라가 합작해서 만든 CPU다. 이 Power PC 의 경우 CISC 방식인 인텔의 x86 CPU 와 비교하면 같은 클럭에서 수배 이상의 처리속도를 보여주고 있다. 이런 빠른 속도 때문에 워크스테이션이나 대형 서버 같은 컴퓨터들은 대부분 RISC 방식의 CPU를 사용하고 있다.


RISC와 CISC는 CPU의 아키텍쳐, 즉 구조적 측면의 차이로, 어떤 일정한 방법으로 명령어를 처리하느냐에 따라 구분된다. 예전에는 RISC를 단순히 CISC를 간소화 시킨 정도로 보는 시각도 있었지만 현재에 와서는 그런 개념을 뛰어넘고 있다.


일단 현재 우리가 대부분 쓰고 있는 CISC CPU에 대해서 설명을 해보자면 일단 CISC의 어원부터 알아보면, CISC는 Complex Instruction Set Computing의 줄인 말로, 소위 복합 명령 집합 계산, 컴퓨팅으로 말 그대로 복합적인 명령어를 가지고 있다. 일단 컴퓨터에 어셈블리, 또는 베이직 따위의 언어로 명령을 주면, CPU에서 그것을 여러 단계로 세분화되어 마이크로 코드(Microcode)라 하는 수행 절차를 걸쳐 처리하게 된다. 그런데, 이런 수행에 있어 좀 더 복잡한 연산에 대응하는 명령어 셋을 추가하는 것이 CISC로, 여러 개의 단순한 명령어 셋으로 명령을 처리하기 보다는 그것들을 포괄하는 연산 셋으로 한 개의 명령어로 처리해 효율을 도모한다는 것이 CISC다. MMX도 이런 의미에서 볼 때는 CISC의 확장이라 볼 수 있겠다.

한편, RISC는 CISC와는 반대로 기본 명령어 셋을 추구하는 형태이다. 그러나 RISC라고 해서 단순히 명령어를 간소화 시킨 형태라고 봐서는 안된다. 단순히 명령어만 간소화 시킨다면, CISC보다 뛰어날 이유가 없기 때문이다. RISC에서는 컴퓨터에서 주 수행되는 작업을 색출해, 거기에 최적화 시켜 만든다. 그러니까 핵심이 되는 작업 항목에 특화시켜 전체적인 속도를 향상시키는 것이다. 한가지 예를 들어 설명하자면, 모든 컴퓨터 작업에 있어서 읽고, 쓰는 작업은 항상 포함된다. 일단 데이터를 읽어 들이고 쓰는 과정은 로딩과 스왑으로 항상 생기기 때문이다. 그 과정에 최적화시키면 그 만큼 작업 속도, 즉 전체적인 처리 효과를 얻게 되는 것이다. 그러기 위해선 다른 명령어 셋과는 달리 다른 공정이 필요한데, 요즘에 와선 CISC도 이런 공정을 채용해 단일 사이클에 처리하는 명령어를 많이 갖게 되었다. 요즘에 와선 이런 점을 통해서 RISC와 CISC의 차이를 구분할 수 없게 되었고, 캐시에 따른 차이가 두각을 드러냈다. 바로 CISC가 가진 맹목으로, 복합적인 명령어를 많이 가지려고 하다 보니, 트랜지스터 직접도가 과다하게 늘어나는 것이다. CISC가 가진 비효율이라 할 수 있겠다. RISC에서는 이와는 달리 명령어 체계 단순화를 지향하고, 핵심명령 특화 체제에 있어, 트랜지스터 집적에 여분이 있기 때문에 L1 캐시를 증대시켜 성능을 더욱 증대 시키는 것이다. 펜티엄프로의 경우 L1 캐시 16KB(명령어/데이터 캐시 합친 양)이고 L2 캐시를 제외한 펜티엄프로의 트랜지스터 집적 수가 550만개인데 반해, RISC CPU인 Power PC 604e 프로세서의 경우 L1 캐시가 64KB인데도 트랜지스터는 510만개다. 특히, 604 프로세서의 세부적인 RISC의 특성을 살펴보자면 한 실행 주기당 여러 명령을 동시에 처리하는 슈퍼스칼라(6~7개의 명령어를 처리한다.)를 구현하고 있다. 이상의 서술한 점이 RISC가 CISC를 앞서는 대략적인 이유와 구조적 특징이다.


CISC를 CISC CPU의 대명사 'Intel'을 통해 비추어 보도록 하겠다. 현재 CISC는 RISC를 clock 속도로써는 충분히 능가할 수 있다. 다만 그 과정에서 트랜지스터 집적도가 너무 과다하게 올라가고 있다. 특히 Intel은 CISC에 MMX를 덧붙여 CISC에 CISC를 더한 셈이 되었다. 어차피 MMX의 세부를 열어보면 그것 역시 CISC의 확장이 되는 셈이기 때문이다. 특정 연산에 대한 명령어를 추가하는 것이 결국 CISC의 특성이 아니던가. Intel이 트랜지스터 집적도를 무리하게 올리면서 지금의 가격을 형성하고 인하 정책을 펼치는 것이 신기할 정도다. 아마도 현재의 PC CPU는 RISC로 갈 가능성은 희박할 듯 하다. 그 예로 Intel이 내세우는 차세대 CPU 머시드는 EPIC라고 하는 CISC를 또 다시 확장한 형태로 구현된다고 하니 말이다.

CISC와 RISC, 이 둘은 다 각기 장단점이 있다. CISC는 복합 명령을 가짐으로써 하위 호환성을 충분히 확보할 수 있고 RISC의 경우 효율적인 CPU 구조를 가지고 있다. 다만 CISC는 트랜지스터 집적에 있어서 효율성이 결여되어 있고, 그 결과 성능 향상에 난점을 겪고, RISC의 경우 하위 호환을 위해 에뮬레이션 방식을 채택해야 하고, 일정한 환경에서만 성능을 발할 수 있는 단점이 있는 것이다. 따라서 호환성이 절대적으로 필요한 PC 환경에서는 CISC가, 전문적인 일에 있어서는 RISC가 서로 독보적인 우위에 점하고 있는 것이다.


아트메가와 연관 있는 구조 : 하버드, RISC

'Computer' 카테고리의 다른 글

영상처리하기  (0) 2011.11.16
리눅스(linux) 단축키  (0) 2011.06.22
폰 노이만 / 하버드 구조  (1) 2011.04.18
vi(visual edit) 명령어  (0) 2011.04.11
PC의 역사  (0) 2011.03.29