본문 바로가기

General/OS & CS

[OS] RISC와 CISC의 비교

RISCCISC의 비교

1. 서론

범용 마이크로프로세서를 구성하는 요소에는 명령세트, 레지스터, 메모리 공간 등이 있다. 이중 명령세트는 RISC(reduced instruction set computer)와 CISC(complex instruction set computer)의 2가지로 크게 분류할 수 있다.

 

2. 본론

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

한편, RISC는 CISC와는 반대로 기본 명령어 셋을 추구하는 형태이다. 그러나 RISC라고 해서 단순히 명령어를 간소화 시킨 형태라고 봐서는 안된다. 단순히 명령어만 간소화 시킨다면, CISC보다 뛰어날 이유가 없기 때문이다. RISC에서는 컴퓨터에서 주 수행되는 작업을 색출해, 거기에 최적화 시켜 만든다. 그러니까 핵심이 되는 작업 항목에 특화시켜 전체적인 속도를 향상시키는 것이다. 한가지 예를 들어 설명하자면, 모든 컴퓨터 작업에 있어서 읽고,쓰는 작업은 항상 포함된다. 일단 데이터를 읽어 들이고 쓰는 과정은 로딩과 스왑으로 항상 생기기 때문이다. 그 과정에 최적화시키면 그 만큼 작업 속도, 즉 전체적인 처리 효과를 얻게 되는 것이다.

CISC와 RISC를 비교하자면, CISC는 하드웨어가 강조되고 여러 클럭의 복합 명령어를 포함하는 반면, RISC는 소프트웨어가 강조되고 단일 클럭의 축양명령어만 포함된다. 또한 CISC는 “LOAD”와 “STORE"가 각 명령들 안에서 수행되지만 RISC는 독립적인 명령으로 사용한다. CISC는 작은 코드 크기, 단위 시간동안 높은 사이클을 가지지만 RISC는 단위시간동안 낮은 사이클수, 큰 코드 크기를 가진다. CISC는 축약명령어 저장을 위해 트랜지스터가 사용되고, RISC는 메모리 레지스터에 보다 많은 트랜지스터가 사용된다.

 

3. 결론

RISC와 CISC를 비교해 보았을 때 전체적인 속도면에서는 RISC가 빠르지만, 현재 많이 유통되고 있는 운영체제인 MS사의 Windows 시리즈는 기본적으로 CISC 프로세서용으로 설계되어있어서 호환성측면에서 보았을 때 CISC가 RISC에 비해 더 우월하다고 볼 수 있다.

요즘에는 여러 가지 향상된 기술들이 RISC와 CISC프로세서에 도입됨으로써 둘 간의 경계는 흐려지고 있다. 두 아키텍처들은 거의 서로의 장점들을 수용하고 있는 듯해 보인다. 프로세서의 성능이 향상됨에 따라 CISC 칩들은 이제 하나의 클럭 안에 1개 이상의 명령어를 실행할 수 있다. 이것은 또한 CISC 칩이 파이프라이닝을 이용하는 것을 허락한다.

  다른 기술적인 향상과 함께 칩 안에 보다 많은 트랜지스터를 넣을 수 있게 되었다.또한 “수퍼스칼라 실행(Superscalar Execution)”과 같은 여분의 실행 단위를 이용할 수 있는 복잡한 하드웨어를 사용할 수 있다.

 

 

출처

http://user.chollian.net/~kokuryu/cpu03.html

http://blog.naver.com/maxuper/30015489886

http://kldp.org/node/56072

http://www.appleforum.com/mac-column/11164-risc%EC%99%80-cisc-%EB%AC%B4%EC%97%87%EC%9D%B4-%EB%8D%94-%EB%82%98%EC%9D%80%EA%B0%80.html