RISC와 CISC
RISC와 CISC는 두 가지 대조적인 명령어 세트 철학을 나타냅니다. RISC(축소 명령어 세트 컴퓨터)는 작고 단순하며 균일한 레지스터-대-레지스터 명령어 세트를 선호하는 반면, CISC(복합 명령어 세트 컴퓨터)는 명령어당 더 많은 작업을 수행하는 강력하고 가변 길이의 다양한 명령어를 제공합니다.
Definition
RISC(reduced instruction set computer)는 로드-스토어 모델에서 실행되는 작고 단순하며 고정 형식의 명령어 세트를 강조하는 설계 철학입니다. CISC(complex instruction set computer)는 메모리-대-메모리 연산을 포함하여 더 강력하고 종종 가변 길이의 더 큰 명령어 세트를 강조합니다.
Scope
이 주제는 두 가지 설계 철학과 그 장단점을 다룹니다: 명령어의 단순성과 규칙성 대 풍부함과 코드 밀도, RISC의 로드-스토어 원칙, 단순 명령어의 파이프라이닝 이점, 그리고 현대 고성능 CISC 구현이 복합 명령어를 내부적으로 RISC와 유사한 마이크로 연산으로 변환하는 방식. 비트 수준 인코딩(명령어 형식 및 인코딩)과 파이프라인 구현 세부 사항(파이프라이닝 및 해저드)은 제외됩니다.
Core questions
- 명령어 세트를 단순하고 균일한 연산으로 축소하려는 설계 목표는 무엇입니까?
- 로드-스토어 원칙은 RISC를 CISC와 어떻게 구별합니까?
- 단순하고 규칙적인 명령어가 파이프라인 처리에 더 용이한 이유는 무엇입니까?
- 현대 x86 프로세서는 CISC 명령어 세트와 RISC와 유사한 내부 실행을 어떻게 조화시킵니까?
Key concepts
- 축소 명령어 세트
- 복합 명령어 세트
- 로드-스토어 아키텍처
- 고정 길이 대 가변 길이 명령어
- 마이크로 연산
- 컴파일러-하드웨어 공동 설계
- 코드 밀도
Key theories
- RISC 논쟁
- 패터슨과 디첼은 단순한 명령어의 작은 세트가 효율적인 컴파일러 지원을 통해 빠르게 실행되고 파이프라인 처리될 경우, 정교한 명령어가 거의 사용되지 않고 빠르게 구현하기 어려운 복합 명령어 세트보다 더 나은 성능을 발휘할 수 있다고 주장했습니다.
Mechanisms
RISC 설계는 명령어를 단순하고 고정 길이로 유지하며 레지스터-대-레지스터 방식으로 작동하고, 메모리 접근을 위해 별도의 로드 및 스토어 명령어를 사용합니다. 이러한 규칙성은 디코딩과 파이프라이닝을 용이하게 합니다. CISC 설계는 메모리에 직접 접근하고 다단계 연산을 수행할 수 있는 복합적이고 가변 길이의 명령어를 제공합니다. 현대 CISC 구현은 복합 명령어를 더 단순한 내부 마이크로 연산 시퀀스로 디코딩한 다음 RISC와 유사한 코어에 의해 실행됩니다.
Clinical relevance
RISC/CISC의 구분은 지배적인 컴퓨팅 플랫폼을 형성했습니다. ARM과 RISC-V는 RISC 원칙을 구현하며 모바일, 임베디드, 그리고 점차 서버 및 노트북 시장을 선도하고 있습니다. 반면 x86(RISC와 유사한 내부 구조를 가진 CISC ISA)은 오랫동안 PC와 서버 시장을 지배했습니다. 이 논쟁은 에너지 효율성, 성능 및 소프트웨어 생태계에 대한 지속적인 선택에 영향을 미칩니다.
History
RISC 개념은 1980년대 초 IBM 801 연구와 버클리 RISC 및 스탠포드 MIPS 프로젝트에서 발전했으며, 1980년 패터슨과 디첼의 논문에서 명확히 제시되었습니다. RISC 아이디어는 SPARC, MIPS, PowerPC, ARM과 같은 상업적 설계를 통해 확산되었습니다. 한편 x86은 RISC와 유사한 내부 마이크로 연산을 채택하여 생존했으며, 오픈 소스 RISC-V ISA는 깔끔한 RISC 설계에 대한 새로운 동력을 제공했습니다.
Debates
- RISC 대 CISC는 여전히 중요합니까?
- 현대 CISC 칩이 내부적으로 RISC와 유사한 마이크로 연산으로 실행되고 양측 모두 파이프라이닝과 캐싱을 공유하기 때문에, 일부는 원래의 구분이 사라졌다고 주장합니다. 다른 이들은 명령어 세트의 규칙성이 여전히 디코딩 효율성, 전력 및 검증에 영향을 미친다고 주장합니다.
Key figures
- David A. Patterson
- David R. Ditzel
- John L. Hennessy
- John Cocke
Related topics
Seminal works
- patterson1980risc
- hennessy2019
- patterson2020
Frequently asked questions
- RISC가 항상 CISC보다 빠릅니까?
- 본질적으로 그렇지는 않습니다. RISC의 단순성은 파이프라이닝과 높은 클럭 속도를 용이하게 하지만, CISC 명령어는 명령어당 더 많은 작업을 수행할 수 있습니다. 실제로는 고성능 CISC 프로세서가 명령어를 RISC와 유사한 연산으로 변환하므로, 실제 성능은 ISA 레이블뿐만 아니라 전체 마이크로아키텍처에 따라 달라집니다.
- ARM과 RISC-V가 RISC 아키텍처라고 불리는 이유는 무엇입니까?
- 둘 다 로드-스토어 메모리 모델과 적은 주소 지정 모드를 가진 작고 단순하며 대부분 고정 길이의 명령어 세트를 사용합니다. 이는 RISC 철학의 특징이며, 효율적인 구현과 에너지 제약 및 고처리량 설계에 적합하게 만듭니다.