- 프로그래머는 모두 인터페이스 개념을 알고 있음.
- CPU 에 있어 인터페이스란?
- 명령어 집합을 의미함.
- 인터페이스에 해당하는 명령어 집합은 변경할 수 없지만 CPU 내부 구현, 즉 명령어 실행 방식은 변경이 가능함.
- 이를 이해한 천재적인 엔지니어는 마이크로 명령어 개념을 제시함.
- 이길 수 없다면 함께하라: RISC와 동일한 CISC
- 축소 명령어 집합의 주요 장점은 파이프라인 기술을 잘 활용할 수 있다는 것이었음.
- 반면 복잡 명령어 집합은 명령어 실행 시간이 고르지 않아 파이프라인을 활용할 수 없었음.
- 간단히 생각하면 복잡 명령어 집합이 축소 명령어 집합에 가깝게 변하면 문제가 해결됨.
- 바로, 복잡 명령어 집합의 명령어를 CPU 내부에서 축소 명령어 집합의 간단한 명령어로 변환하는 것임.
- 축소 명령어 집합의 간단한 명령어와 유사한 명령어들을 마이크로 명령어(micro-operation)라고 함.
- 축소 명령어 집합 명령어와 마찬가지로 마이크로 명령어도 매우 간단하며 실행 시간도 거의 같음. → 파이프라인 기술을 충분히 활용할 수 있음.
- 복잡 명령어 집합의 호환성을 유지하면서 동시에 축소 명령어 집합의 장점을 얻을 수 있음.
- 하이퍼스레딩이라는 필살기
- 복잡 명령어 집합 진영에서 또 다른 기술이 추가 개발됨.
- 하이퍼스레딩(hyper-threading) → 하드웨어 스레드(hardware thread)라고도 함.
- 지금까지는 CPU가 한 번에 한 가지 일만 할 수 있다고 간주할 수 있었음.
- 즉, CPU가 한 번에 하나의 스레드에 속한 기계 명령어만 실행할 수 있다고 알고 있었음.
- 시스템에 N개의 CPU 코어가 있으면 운영 체제는 N개의 준비 완료 상태인 스레드를 N개의 CPU 코어에 할당해서 동시에 실행할 수 있음.
- 하이퍼스레딩을 사용하면 하나의 물리 CPU 코어는 운영 체제에 환각을 심어주게 됨.
- CPU 코어가 하나만 있지만 운영 체제는 논리적으로 CPU 코어가 여러 개 있는 것으로 인식함.
- 즉, CPU 코어가 실제로 동시에 스레드 두 개를 실행할 수 있음.
- 하이퍼스레딩 기술이 가능하게 하려면 파이프라인 기술로 다시 돌아가야 함.
- 명령어 간 종속성으로 파이프라인이 항상 완벽하게 채워진 상태에서 실행될 수 없음.
- 결국 ‘빈 공간’이 생김
- 이때, 추가 명령어 흐름을 도입하여 빈 공간을 채우면 전체 파이프라인을 채워서 실행할 수 있음 → CPU 리소스 최대한 활용 가능.
'Book > 컴퓨터 밑바닥의 비밀' 카테고리의 다른 글
책너두 (컴퓨터 밑바닥의 비밀) 30일차 CPU, 스택과 함수 호출, 시스템 호출, 스레드 전환, 인터럽트 처리 통달하기 (2) (0) | 2024.05.22 |
---|---|
책너두 (컴퓨터 밑바닥의 비밀) 29일차 CPU, 스택과 함수 호출, 시스템 호출, 스레드 전환, 인터럽트 처리 통달하기 (1) (0) | 2024.05.21 |
책너두 (컴퓨터 밑바닥의 비밀) 27일차 CPU 진화론(중): 축소 명령어 집합의 탄생 (0) | 2024.05.17 |
책너두 (컴퓨터 밑바닥의 비밀) 26일차 CPU 진화론(상): 복잡 명령어 집합의 탄생 (0) | 2024.05.16 |
책너두 (컴퓨터 밑바닥의 비밀) 25일차 CPU 코어 수와 스레드 수 사이의 관계는 무엇일까? (0) | 2024.05.15 |