1. RISC 란?
RISC(reduced instruction set computer)는 마이크로프로세서를 설계하는 방법 중의 하나로, CPU의 명령어 갯수를 줄여, 하드웨어 구조를 좀 더 간단하게 만드는 방식을 사용한다. SPARC, MIPS 등의 아키텍처에서 사용된다.
전통적인 CISC CPU에는 프로그래밍을 돕기 위한 많은 개수의 명령과 주소 모드가 존재하지만, 실제로 사용되는 명령은 그 중 한정된 극히 몇 안 되는 명령이라는 사실을 바탕으로, 명령 집합을 간단한 몇 개의 명령으로 줄이고 많은 수의 명령어에서 주소 모드를 생략함으로써 프로세서의 전체적인 고속화 및 파이프라이닝를 지향한다. 또한, 메모리의 동작속도에 비해 CPU의 속도가 비약적으로 빨라짐에 따라, 메모리 접근 회수를 줄이는 일은 큰 성능향상을 가져온다. RISC는 CISC보다 더 단순한 구조 덕분에 더 많은 레지스터 및 큰 용량의 캐쉬를 가지고 있어 메모리 접근 회수가 적다.
- 고정 명령어 길이(빠른 명령어 해석을 위해)
- 모든 연산은 1클럭으로 실행한다.(파이프라인을 대기(wait)시키지 않는다)
- 연산은 레지스터간 연산만.(회로를 단순화하고 메모리 접근을 줄이기 위해)
- 와이어드 로직으로 구성.(고클락을 가능하게 한다)
- 레지스터가 극단적으로 많다.(메모리 접근을 줄이기 위해)
- 지연 실행(파이프라인 해저드(hazard)를 피하기 위해)
CISC에서는 하드웨어에서 스택을 지원하지만, RISC에는 없다. 스택 조작(데이터의 PUSH, POP이 발생할 때 레지스터의 퇴피, 서브루틴에 점프 했을 때의 리턴 주소의 보존, 복귀)의 처리는 단순한 명령을 조합하여 소프트웨어로 구현한다. 명령의 순서로 인해 발생하는 파이프라인 해저드는 컴파일시 최적화 과정에서 제거된다.
명령어의 길이를 고정하면 파이프라인 처리의 고속화를 꾀할 수 있지만, 컴파일러의 최적화 과정이 복잡해지기 쉽다.
RISC는 대부분의 현대 프로세서 디자인에 채택되고 있고, 또한 비교적 전력 소모가 적기 때문에 임베디드 프로세서에도 채택되고 있다.근래에는, 펜티엄과 같은 CISC CPU도 내부적으로는 복잡한 명령들을 단순한 명령들로 나누어 파이프라인에서 처리하기 때문에, 실제 작동 원리는 RISC와 같다.
RISC 철학에 따라 설계된 프로세서들
- MIPS 시리즈 - 대부분의 SGI 컴퓨터, 플레이스테이션 플레이스테이션 2, 닌텐도 64 등에 사용
- IBM POWER 시리즈 - 대부분의 IBM 수퍼컴퓨터, 메인프레임에 사용
- 모토롤라와 IBM의 PowerPC 시리즈 - 현대의 애플 매킨토시 컴퓨터, Xbox 360, 닌텐도 레볼루션, 플레이스테이션 3 등에 사용.
- 썬 사의 SPARC와 UltraSPARC의 후기 기종.
- 휴렛 팩커드 사의 PA-RISC
- DEC 알파
- ARM 시리즈 - 최신 팜 파일럿 PDA 시리즈. 게임보이 어드밴스, 닌텐도DS 등 닌텐도 사의 소형 게임기 하드웨어. 한국 게임파크 사의 GP32 하드웨어.
스팍 프로세서 : RISC 상용화에 성공(1989)
RISC(Reduced Instruction Set Computing)는 1980년대 UC 버클리에서 진행된 연구를 통해 성장을 거듭했다. 그리고 썬의 스팍(Sparc, scalable processor architecture의 변형)은 RISC를 워크스테이션용 CPU로 상용화하려는 노력의 산물이었다. 썬의 첫 번째 스팍 사양은 1986년에 발표됐지만, 스팍 프로세서를 사용한 첫 번째 워크스테이션인 썬 스팍스테이션 1은 1989년에야 출시된다. 스팍은 공개 사양이며, 이 사양을 기반으로 후지쯔와 LSI 로직 등이 스팍 프로세서를 만들었다.
2. CISC 란?
CISC (Complex Instruction Set Computer)은 복잡한 명령어 세트를 갖는 CPU 아키텍쳐이다.
주로 메인프레임이나 X86 호환 프로세서, 모토롤라사의 MC 680x0 (68K)계열 프로세서에 채용되고 있다. 명령어가 복잡하기 때문에 명령어를 해석하는 데 시간이 오래 걸리며 명령어 해석에 필요한 회로도 복잡하다. 보통 풍부한 어드레싱 기능을 갖추고 있어 명령의 직교성이 좋다. 즉 임의의 연산을 어느 어드레싱 모드에서도 사용할 수 있다. 연산은 레지스터와 레지스터간 연산 외에 레지스터와 메모리 연산, 메모리와 메모리 연산을 갖추고 있는 것이 보통이다. 오퍼랜드(피연산자)는 2개에서 3개까지 지정할 수 있는 경우가 많다. 즉, 메모리 1의 내용과 메모리 2의 내용의 논리곱을 취해 메모리 3에 넣는 일을 한 명령으로 수행할 수 있다. C언어의 ? 연산자는 CISC인 PDP-11이 갖추고 있던 명령에서 나온 것이다. 인덱스 어드레싱시의 오프셋도 명령의 데이터의 길이에 맞추어 바뀌는 것이 많다. 또, 데이터의 길이가 다른 데이터간의 연산에서도 연산전에 자동적으로 부호 확장등이 행해지기 때문에, 데이터 길이를 가지런히 하는 명령이 필요없는 경우가 많다. 한 명령에서 행하는 처리가 복잡하기 때문에, 마이크로 프로그램 방식을 채택하는 경우가 많다.
펜티엄 시리즈와 같은 CISC CPU도 내부적으로는 복잡한 명령들을 단순한 명령들로 나누어 파이프라인에서 처리하기 때문에, 실제 작동 원리는 RISC와 같다.
[출처]http://ko.wikipedia.org/wiki
'computer' 카테고리의 다른 글
게임런처를 만들어 봅시다 아이닉스 호두마루님글 (1) | 2013.09.15 |
---|---|
마이크로프로세서(Micro processor) (0) | 2011.01.01 |
1의 보수, 2의 보수 (0) | 2010.06.11 |
DDoS란? (0) | 2009.07.08 |