세상에는 수 많은 CPU 제조사들이 있고, CPU마다 규격과 기능, 만듦새가 다 다르다. 따라서, CPU가 이해하고 실행할 수 있는 명령어는 조금씩 차이가 있다. 이렇듯 CPU가 이해할 수 있는 명령어들의 모음을 명령어 집합 혹은 명령어 집합 구조 (Instruction Set Architecture)라고 한다.
예를 들어, 인텔 노트북 속 CPU는 x86혹은 x86-64 ISA를 이해하고, 애플의 아이폰 속 CPU는 ARM ISA를 이해한다. 따라서, x86과 ARM은 다른 ISA이기 때문에, 인텔 cpu를 사용하는 컴퓨터와 아이폰은 서로의 명령어를 이해할 수 없다. 정리하면, 같은 소스 코드로 만들어진 같은 프로그램이라 해도 ISA가 다르면, 어셈블리어도 같이 달라진다.
따라서, 명령어 병렬 처리 기법들을 적용하기에 용이한 ISA가 있고, 그렇지 못한 ISA가 있다. 아래 두가지 ISA는 병렬 처리 기법들을 도입하기 용이한 유명한 2가지 ISA이다.
CISC (Complex Instruction Set Computer)
- 복잡하고 다양한 명령어들을 활용하는 CPU 설계 방식이다.
- 명령어의 형태와 크기가 다양한 가변 길이 명령어를 활용한다.
- 장점
- 상대적으로 적은 수의 명령어로도 프로그램을 실행할 수 있다.
- 적은 명령어 사용으로, 메모리 공간을 절약할 수 있다.
- 단점
- 명령어의 크기와 실행되기까지의 시간이 일정하지 않다.
- 명령어 하나를 실행하는 데에 여러 클럭 주기가 필요할 수 있다.
RISC (Reduced Instruction Set Computer)
위에서 살펴본 CISC의 한계로 다음을 알 수 있다.
1. 원활한 파이프라이닝을 위해서는 명령어의 길이와 수행 시간이 짧고 규격화되어 있어야 한다.
2. 복잡한 기능을 지원하는 명령어를 추가하기보다 자주 쓰이는 명령어들을 작고 빠르게 만드는 것이 중요하다.
그리고 이러한 보완점들에 맞춰져 등장한 것이 RISC이다.
- RISC는 고정 명령어를 사용한다.
- 명령어는 규격화 되어있고, 하나의 명령어가 1클럭 내외로 실행된다.
- 메모리 접근을 단순화하고 최소화한다.
- 레지스터를 적극 활용한다.
- 장점
- 명령어의 크기와 시간이 짧고 규격화 되어있다.
- 파이프라이닝하기에 매우 용이하다.
- 단점
- 프로그램을 이루는 명령어의 수가 많다.
'Computer Science > OS + CA' 카테고리의 다른 글
캐시 메모리 (0) | 2023.04.28 |
---|---|
메모리 (0) | 2023.04.27 |
명령어 병렬 처리 기법 (0) | 2023.04.27 |
빠른 CPU를 위한 설계 기법 (0) | 2023.04.27 |
CPU의 작동 원리 - 명령어 사이클과 인터럽트 (0) | 2023.04.07 |