축소 명령어 집합 컴퓨터
이 문서의 내용은 출처가 분명하지 않습니다. (2013년 2월) |
축소 명령어 집합 컴퓨터(영어: Reduced Instruction Set Computer, RISC, 리스크)는 CPU 명령어의 개수를 줄여 명령어 해석시간을 줄임으로써 개별 명령어의 실행속도를 빠르게 한 컴퓨터다. RISC의 중요한 목표는 명령어 파이프라인을 통해 개별 명령어의 실행속도를 높여 복잡 명령어 집합 컴퓨터 (CISC)에 비해 더 많은 명령어를 처리해야 하는 단점을 상쇄하는 것이다. RISC는 마이크로프로세서를 설계하는 방법 가운데 하나이며, RISC-V, SPARC, MIPS 등의 아키텍처에서 사용된다.
전통적인 CISC CPU에는 프로그래밍을 돕기 위한 많은 수의 명령어와 주소 모드가 존재했다. 그러나 그중에서 실제로 쓰이는 명령어는 몇 개 되지 않는다는 사실을 바탕으로, 적은 수의 명령어만으로 명령어 집합을 구성한 것이 RISC이다. 그래서, RISC는 CISC보다 구조가 더 단순하다. 복잡한 연산도 적은 수의 명령어들을 조합하는 방식으로 수행이 가능하다.
그리고 CISC 형식의 CPU내 ROM에 소프트웨어적으로 적재된 내부 명령어들을 하드웨어적으로 구성하여 제어기가 제거된 부분에 프로세서 레지스터 뱅크와 캐시를 둔다. 이렇게 함으로써 CPU가, 상대적으로 느린 메인 메모리에 접근하는 횟수를 줄여주어 파이프라이닝 등 시스템 수행속도가 전체적으로 향상된다.
역사
편집1960년대로 거슬러 올라가면 수많은 시스템들이 최초의 RISC 아키텍처라고 볼 수도 있는데, 이는 부분적으로 로드/스토어 접근 방식에 기반을 두기 때문이다.[1] RISC라는 용어는 버클리 RISC 프로젝트의 데이비드 패터슨이 만든 용어이지만 비슷한 개념은 이미 그 이전에 등장하였다.[2]
특징
편집- 고정 길이의 명령어를 사용하여 더욱 빠르게 해석할 수 있다.
- 모든 연산은 하나의 클럭으로 실행되므로 파이프라인을 기다리게 하지 않는다.
- 레지스터 사이의 연산만 실행하며, 메모리 접근은 로드(load), 스토어(store) 명령어로 제한된다. 이렇게 함으로써 회로가 단순해지고, 불필요한 메모리 접근을 줄일 수 있다.
- 마이크로코드 논리를 사용하지 않아 높은 클럭을 유지할 수 있다.
- 많은 수의 레지스터를 사용하여 메모리 접근을 줄인다.
- 지연 실행 기법을 사용하여 파이프라인의 위험을 줄인다.
CISC에서는 하드웨어가 스택을 지원하지만, RISC에는 없다. 스택 제어(데이터의 PUSH, POP이 발생할 때 레지스터의 퇴피, 서브루틴에 점프했을 때의 리턴 주소의 보존, 복귀)의 처리는 단순한 명령을 조합하여 소프트웨어로 구현된다. 명령어의 순서로 인해 발생할 수 있는 파이프라인의 위험은 컴파일하는 동안 최적화되어 사라진다.
명령어의 길이를 고정하면 파이프라인 처리의 고속화를 꾀할 수 있지만, 컴파일러의 최적화 과정이 복잡해지기 쉽다.
RISC는 대부분의 현대 프로세서 디자인에 채택되고 있고, 또 비교적 전력 소모가 적기 때문에 임베디드 프로세서에도 채택되고 있다.
펜티엄과 같은 CISC CPU도 내부적으로는 복잡한 명령들을 단순한 명령들로 나누어 파이프라인에서 처리하기 때문에, 실제 작동 원리는 RISC와 같다.
RISC 형태에 따라 설계된 프로세서들
편집- MIPS 계열 - 대부분의 SGI 컴퓨터, 플레이스테이션, 플레이스테이션 2, 닌텐도 64 등에 쓰임.
- IBM 파워 계열 - 대부분의 IBM 슈퍼컴퓨터, 메인프레임에 쓰임.
- 모토롤라와 IBM의 PowerPC 시리즈 - 이전의 애플 매킨토시 컴퓨터, 엑스박스 360, 닌텐도 Wii, 플레이스테이션 3 등에 쓰임.
- 썬 사의 SPARC와 UltraSPARC의 후기 기종.
- 휴렛 팩커드 사의 PA-RISC
- DEC 알파
- ARM 계열 - 최신 팜 파일럿 PDA 시리즈. 게임보이 어드밴스, 닌텐도DS과 같은 닌텐도사의 소형 게임기 하드웨어. 한국 게임파크사의 GP32 하드웨어, 스마트폰, 태블릿 PC.
같이 보기
편집각주
편집- ↑ Fisher, Joseph A.; Faraboschi, Paolo; Young, Cliff (2005). 《Embedded Computing: A VLIW Approach to Architecture, Compilers and Tools》. 55쪽. ISBN 1558607668.
- ↑ Reilly, Edwin D. (2003). 《Milestones in computer science and information technology》. 50쪽. ISBN 1-57356-521-0.