명령어 파이프라이닝과 슈퍼스칼라 기법을 CPU에 적용하기 위해서는 명령어가 파이프라이닝에 최적화 되어있어야 한다.
그렇다면 파이프라이닝 하기 쉬운 명령어란?
ISA와 CISC, RISC에 대해 알아보자
ISA (명령어 집합 / 명령어 집합구조)
CPU가 이해할 수 있는 명령어들의 모음
인텔의 노트북 속 CPU는 x86 ISA를 이해하고, 애플의 아이폰 속 CPU는 ARM ISA를 이해한다.
소스코드가 같을지라도 두 CPU의 ISA는 다르기 때문에 서로 이해할 수 있는 명령어도 다르고, 어셈블리어도 달라진다.
그에 따라 CPU 하드웨어 설계에도 영향을 미친다
∴ ISA는 CPU의 언어이자, 하드웨어가 소프트웨어를 어떻게 이해할지에 대한 약속이다.
명령어 병렬 처리 기법을 도입하기 유리한 ISA란 무엇일까?
1. CISC
"Complex Instruction Set Computer"
복잡한 명령어 집합을 활용하는 컴퓨터(CPU)
다양하고 강력한 기능의 명령어 집합을 활용하기 때문에, 명령어의 형태와 크기가 다양한 "가변길이 명령어"를 활용한다.
= 적은수의 명령어로도 프로그램을 실행할 수 있다.
ex) x86, x86-64
장점
- 메모리 절약 가능
단점
100~250개 정도의 복잡하고 다양한 명령어를 활용하기 때문에
- 명령어의 크기와 실행되기까지 시간이 일정하지 않다
- 명령어 하나를 실행하는 데에 여러 클럭 주기를 필요로 한다 → 명령어 파이프라인 구현에 문제 발생
- 복잡한 명령어는 사용 빈도가 낮다
CISC 교훈
- 빠른 처리를 위해 명령어 파이프라인을 십분 활용해야한다. 따라서 명령어 길이와 수행시간이 짧고 규격화 되어있어야한다.
- 자주 쓰이는 명령어만 사용되기 때문에, 자주쓰이는 기본적인 명령어를 작고 빠르게 만들어야 한다.
그래서 등장한 것이 RISC
2. RISC
"Reduced Instruction Set Computer"
명령어의 종류가 적은 컴퓨터(CPU)
짧고 규격화된 명령어, 되도록 1클럭 내외로 실행되는 명령어를 사용하기 때문에 "고정 길이 명령어"를 활용한다.
ex) ARM
특징
- 메모리에 직접 접근하는 명령어를 load, store 두 개로 제한할 만큼 메모리 접근을 단소화하고 최소화를 추구한다.
- 대신 레지스터를 적극적으로 활용한다. → CISC보다 레지스터를 이용하는 연산이 많고, 범용 레지스터 개수도 더 많다.
사용 가능한 명령어개수가 CISC보다 적기 때문에, RISC는 CISC보다 많은 명령으로 프로그램을 작동시킨다
[정리]
CISC | RISC |
복잡하고 다양한 명령어 | 단순하고 적은 명령어 |
가변 길이 명령어 | 고정 길이 명령어 |
다양한 주소 지정 방식 | 적은 주소 지정 방식 |
프로그램을 이루는 명령어의 수가 적음 | 프로그램을 이루는 명령어의 수가 많음 |
여러 클럭에 걸쳐 명령어 수행 | 1클럭 내외로 명령어 수행 |
파이프라이닝하기 어려움 | 파이프라이닝하기 쉬움 |
'CS > [혼자 공부하는 컴퓨터구조 + 운영체제]' 카테고리의 다른 글
[컴퓨터구조] 6-2. 메모리의 주소 공간 (0) | 2024.05.09 |
---|---|
[컴퓨터 구조] 6-1. RAM의 특징 (0) | 2024.05.07 |
[컴퓨터 구조] 5-2. 효율적인 CPU를 위한 설계 기법 - 명령어 병렬 처리 기법 (1) | 2024.05.02 |
[컴퓨터 구조] 4-3. 명령어 사이클과 인터럽트 (0) | 2024.04.29 |
[컴퓨터 구조] 4-1&2. CPU의 구성요소 (0) | 2024.04.25 |