2024.04.15 - [CS] - [CS] 효율적인 명령어 분배 : 명령어 파이프라인
명령어와 파이프라이닝 간 함의
모든 CPU가 이해할 수 있는 명령어가 똑같지 않고, CPU가 읽고 해석하고 실행하기에 최적화되지 않기도 합니다.
그래서 효율적으로 동작할 수 있게 즉, 파이프라이닝에 최적화된 명령어로 설계할 수 있어야 하는데요.
ISA
- `ISA` : Instruction Set Architecture의 줄임말로, CPU가 이해할 수 있는 명령어들의 집합 구조 (= `CPU 언어`)
- CPU제조사마다 ISA 설계 원칙이 다릅니다. (Intel Vs. ARM)
- ISA가 다르면
1) CPU끼리 서로의 명령어를 이해할 수 없습니다.
2) HW 구조도 달라질 수 있습니다.
→ 명령어를 해석하는 제어장치 로직, 사용하는 레지스터 수, 메모리 관리 방법 등
명령어 처리 기법을 적용한 ISA
`CISC`와 `RISC`가 있습니다.
CISC
- Complex Instruction Set Computer의 약자로 복잡하고 다양한 명령어들을 커버하는(`가변 길이 명령어`) CPU
- 장점
1) 적은 명령어의 수로 프로그램 실행 가능
2) 메모리 공간 절약 - 단점
1) 다양한 명령어를 커버하지만, 사용하는 명령어만 사용하게 됨
2) 실행 시간이 일정하지 않아 여러 클럭 주기 필요 → 명령어 파이프라인이 제대로 동작하지 않음 (효율 낮아짐)
▶명령어 규격화 어려움
RISC
- Reduced Instruction Set Computer의 약자로, '적고 빠르게 수행하는' CPU (`고정 길이 명령어`)
- 장점
1) 명령어의 규격화 (메모리접근 명령어 : Load / Store)
2) 대부분 1클럭 내외로 실행
▶명령어 파이프라이닝에 최적화
3) 메모리 접근 단순화하여 레지스터 적극 활용 - 단점
1) 사용가능한 명령어의 개수가 적어, 프로그램의 코드 수가 길다
출처
'CS' 카테고리의 다른 글
[CS] 메모리 주소 체계와 MMU (0) | 2024.04.17 |
---|---|
[CS] 우리가 메모리라고 부르는 RAM과 종류 (0) | 2024.04.17 |
[CS] 효율적인 명령어 분배 : 명령어 파이프라인 (0) | 2024.04.15 |
[CS] CPU 성능과 연관된 용어 : 클럭, 코어, 스레드 (0) | 2024.04.14 |
[CS] 실행 흐름을 파악할 수 있는 레지스터의 종류 (0) | 2024.04.14 |