인프런의 개발자를 위한 컴퓨터 공학1 : 혼자 공부하는 컴퓨터 구조 + 운영체제 강의를 듣고, 학습 및 요약
명령어 집합(구조) : ISA(Instruction Set Architecture)
CPU가 이해할 수 있는 명령어들의 모음. 즉, CPU는 명령어 집합에 속해있는 명령어들만 이해할 수 있음
- CPU의 언어이자 하드웨어가 소프트웨어를 어떻게 이해할지에 대한 약속
- 명령어가 달라지면 명령어 해석 방식, 레지스터의 종류와 개수, 파이프라이닝의 용이성 등이 달라짐
CISC(Complex Instuction Set Computer)
복잡한 명령어 집합을 활용하는 컴퓨터(CPU)
- x-86, x86-64는 CISC 기반 명령어 집합 구조
- 복잡하고 명령어의 형태와 크기가 다양한 수의 가변 길이 명령어 집합을 활용
- 상대적으로 적은 수의 명령어로도 프로그램을 실행 가능
- 메모리를 최대한 아끼며 개발해야 했던 시절에는 인기가 많았지만 명령어 파이프라이닝이 불리함
- 명령어가 워낙 복잡하고 다양한 기능을 제공 하는 탓에 명령어의 크기와 실행되기까지의 시간이 일정하지 않음
- 복잡한 명령어 때문에 명령어 하나를 실행하는 데에 여러 클럭 주기 필요
- 대다수의 복잡한 명령어는 사용 빈도가 낮음
RISC(Reduced Instruction Set Computer)
명령어의 종류가 적고, 짧고 규격화된 명령어 사용
- 단순하고 적은 수의 고정 길이 명령어 집합을 활용
- RISC는 짧고 규격화된 명령어를 활용하기에 명령어 파이프라이닝에 유리
- 메모리 접근 최소화(load, store)하고, 레지스터를 잘 활용하기 때문에 RISC는 CISC에 비해서 범용 레지스터의 종류가 더 많은 경우가 있음
- 명령어의 종류가 CISC보다 적기 때문에 더 많은 명령어로 프로그램을 동작시킴
CISC | RISC |
복잡하고 다양한 명령어 | 단순하고 적은 명령어 |
가변 길이 명령어 | 고정 길이 명령어 |
다양한 주소 지정 방식 | 적은 주소 지정 방식 |
프로그램을 이루는 명령어의 수가 적음 | 프로그램을 이루는 명령어의 수가 많음 |
여러 클럭에 걸쳐 명령어 수행 | 1클럭 내외로 명령어 수행 |
파이프라이닝하기 어려움 | 파이프라이닝하기 쉬움 |
[성능 차이]
- CISC와 RISC 중 어느 쪽의 성능이 더 우수한지 딱 잘라 말할 수는 없다. 오늘날의 몇몇 CISC MCU는 RISC의 장점을 일부 공유하고 있으며, 몇몇 RISC MCU는 CISC의 장점을 일부 공유하고 있기 때문이다.
[파이프라인 처리]
- RISC는 명령어의 길이가 고정되어 파이프라인 처리의 고속화를 가능하게 하지만, 컴파일러의 최적화 과정이 복잡해지기 쉽다. 컴파일러의 최적화를 통해 파이프라인 해저드는 사라지게 된다.
'cs' 카테고리의 다른 글
[혼공운영체제] 메모리의 주소 공간 (0) | 2023.04.21 |
---|---|
[혼공운영체제] RAM의 특징과 종류와 메모리의 주소 공간 (0) | 2023.04.17 |
[혼공운영체제] 5.CPU의 성능 향상 기법(2) : 명령어 병렬 처리 기법 (0) | 2023.04.17 |
[혼공운영체제] 4. 빠른 CPU를 위한 설계 기법 (0) | 2023.04.16 |
[혼공운영체제] 3. 명령어 사이클과 인터럽트 (0) | 2023.04.16 |