1] 명령어 집합(ISA, Instruction set architecture)
명령어 집합(구조)은 CPU가 이해할 수 있는 명령어들의 모음이다
ex. 인텔 CPU의 실행 파일을 아이폰에 옮겨 바로 실행이 불가능한 이유가 각자 명령어 집합(구조)이 다르기 때문이다
또한, 명령어 집합(구조)는 CPU의 언어라고 볼 수 있고 하드웨어가 소프트웨어를 어떻게 이해할지에 대한 약속이다
명령어 해석 방식, 레지스터의 종류와 개수, 파이프라이닝의 용이성 등 많은 것이 그에 따라 달라진다
2] 명령어 집합의 두축
(1) CISC(Complex Instruction Set Computer)
복잡한 명령어 집합을 활용하는 컴퓨터(CPU)의 명령어 집합 구조이다
인텔과 AMD사의 CPU로 대표되는 x86, x86-64는 CISC 기반 명령어 집합 구조이다
복잡하고 다양한 명령어를 활용하고
명령어의 형태와 크기가 다양한 가변 길이 명령어를 활용
다양한 주소 지정 방식 사용을 한다
장점:
- 다양하고 강력한 명령어를 활용
- 상대적으로 적은 수의 명령어로도 프로그램을 실행할 수 있다
단점:
- 메모리를 최대한 아끼며 개발해야 했던 시절에만 인기가 높았으나
명령어 파이프라이닝이 불리하다는 치명적인 단점이 존재한다
- 명령어가 워낙 복잡하고 다양한 기능을 제공하는 탓에 명령어의 크기와 실행되기까지의 시간이 일정하지 않음
- 복잡한 명령어 때문에 명령어 하나를 실행하는 데에 여러 클럭 주기 필요
- 대다수의 복잡한 명령어는 사용 빈도가 낮다
(2) RISC(Reduced Instruction Set Computer)
명령어의 종류가 적고, 짧고 규격화된 명령어를 사용한다
단순하고 적은 수의 고정 길이 명령어 집합을 활용한다
메모리 접근 방식을 최소화(load, store)한 대신 레지스터를 십분 활용한다
장점:
- 짧고 규격화된 명령어를 활용하기에 명령어 파이프라이닝에 유리하다
단점:
- 명령어 종류가 CISC보다 적기에 더 많은 명령어로 프로그램을 동작 시킴
(3) 정리
(4) 현대 CPU의 설계
CISC 기반의 명령어 집합을 사용하는 CPU 제조사들의 입장에서는,
CISC의 단점과 문제들을 해결해야 하고 명령어 파이프라인은 CPU에서 절대 놓쳐서는 안 될 기술이기에
비록 CISC가 명령어 길이가 가변적이고 여러 클럭에 걸쳐 명령어를 수행되지만,
실제로 CISC가 실행될 때는 CPU 내부적으로 명령어 단위보다 더 실행되는 작은 단위(마이크로 명령어)로 1 클럭 내로 쪼개서 실행하는 경우가 많다
따라서, CISC이지만 실제 내부적으로는 RISC처럼 작동을 한다
'CS > [혼자 공부하는] 컴퓨터 구조' 카테고리의 다른 글
6-2] 메모리와 캐시 메모리: 메모리의 주소와 한계 레지스터 (0) | 2023.05.30 |
---|---|
6-1] 메모리와 캐시 메모리: RAM의 특징과 종류 (0) | 2023.05.30 |
5-2] CPU의 성능 향상 기법: 명령어 병렬 처리 기법 (0) | 2023.03.31 |
5-1] CPU의 성능 향상 기법: 코어와 스레드 (0) | 2023.03.31 |
4-3] CPU의 작동원리: 명령어 사이클과 인터럽트 (0) | 2023.03.31 |