나라마다 언어가 다르듯이 CPU도 이해하고 실행하는 명령어가 다릅니다.
CPU가 이해할 수 있는 명령어들의 모음을 명령어 집합 구조(ISA:Instruction Set Architecture)라고 합니다.
따라서 CPU마다 ISA가 다를 수 있습니다.
ISA의 역할에는
역할 | 설명 |
---|---|
명령어 집합 | CPU가 이해하고 실행할 수 있는 명령어의 종류 규정 |
레지스터 | 레지스터의 수, 종류 및 용도 규정 |
명령어 형식 | 명령어가 어떻게 구성되어 있는지 규정 |
명령어 실행 방법 | 명령어가 어떻게 실행되는지 규정 |
등이 있습니다. 여기서 명령어 집합과 명령어 실행 방법에 해당하는 CISC와 RISC에 대해 알아보겠습니다.
즉, 상대적으로 적은 수의 명령어로도 프로그램 실행 가능
명령어가 작다 = 컴파일된 프로그램의 크기가 작다(메모리를 절약할 수 있음)
즉, 명령어 파이프라인이 효율적으로 명령어를 처리할 수 없음
명령어 파이프라인 기법을 위한 이상적인 명령어는 다음 그림과 같이 각 단계에 소요되는 시간이(가급적 1클럭으로) 동일해야 함
- 복잡하고 다양한 명령어 활용 가능, but 대다수의 복잡한 명령어는 사용 빈도 낮음
단순하고 적은 수의 고정 길이 명령어사용
RISC를 load-store 구조라고 부르기도 함
CISC | RISC | |
---|---|---|
명령어 | 복잡하고 다양함 | 단순하고 적음 |
명령어 형식 | 가변 길이 명령어 | 고정 길이 명령어 |
주소 지정 방식 | 다양함 | 적음 |
명령어의 수 | 적음 | 많음 |
명령어 수행 | 여러 클럭에 걸쳐서 | 1클럭 내외로 |
파이프라이닝 | 어려움 | 쉬움 |