CS./OPERATING SYSTEM
[컴퓨터 구조-CPU] CISC & RISC
KSN
2023. 2. 12. 20:31
"CPU는 명령어를 실행한다."
명령어 집합 (구조) : CPU가 이해할 수 있는 명령어들의 모음, ISA(Instruction Set Architecture)
즉, ISA는 CPU의 언어라고 할 수 있고 하드웨어가 SW를 어떤 방식으로 이해하는가에 대한 약속이라고 볼 수 있다.
CISC (Complex Instruction Set Computer)
복잡하고 다양한 명령어들을 활용하는 CPU 설계 방식이다.
ex) x86 , x86-64는 CISC 기반 명령어 집합 구조.
명령어의 형태와 크기가 다양한 가변 길이 명령어를 활용하기에 상대적으로 적은 수의 명령어로도 프로그램을 실행할 수 있다.
However, 메모리를 최대한 아끼면서 개발하는 상황에서는 좋지만 최신 트렌드에는 적합하다고 볼 수 없음.
왜냐하면 명령어 파이프라이닝이 불리하다는 치명적인 단점이 있기때문이다. 현대 CPU에서 명령어 파이프라인은 고성능을 위해서라면 반드시 필요한 핵심 기술이기 때문이다.
앞서 말했 듯이 명령어가 복잡하고 다양하기에 명령어의 크기와 실행되기까지의 시간이 일정하지 않고 복잡한 명령어 때문에 명령어 하나를 실행하는 데에 여러 클럭 주기가 필요하다.
*어차피 대부분의 복잡한 명령어는 자주 사용하지 않는다.
RISC (Reduced Instruction Set Computer)
명령어의 종류가 적고, 짧고 규격화된 명령어 사용. 즉, 단순하고 적은 길이의 명령어 집합 활용 한다고 볼 수 있다.
CISC의 한계를 극복했다고 볼 수 있다.
RISC는 메모리 접근 최소화, 레지스터를 적극적으로 활용, 또한 고정 길이 명령어를 활용.
명령어가 규격화되었고 하나의 명령어가 1클럭 내외로 실행되기 때문에 앞서 말한 핵심 기술인 파이프 라이닝에 최적화 되어있다.
CISC | RISC |
복잡하고 다양한 명령어 | 단순하고 적은 명령어 |
가변 길이 명령어 | 고정 길이 명령어 |
다양한 주소 지정 방식 | 적은 주소 지정 방식 |
프로그램을 이루는 명령어의 수가 적음 | 프로그램을 이루는 명령어의 수가 많음 |
여러 클럭에 걸쳐 명령어 수행 | 1클럭 내외로 명렁어 수행 |
파이프라이닝 하기 어려움 | 파이프라이닝 쉬움 |