5장 CPU 성능 향상 기법
2023. 3. 21. 23:37
05-1) 빠른 CPU를 위한 설계 기법
- 클럭과 코어, 스레드라는 개념을 학습하고, 빠른 CPU를 만드는 설계 기법인 멀티 코어와 멀티 스레드 이해하기
- 클럭
- CPU는 명령어 사이클이라는 흐름에 맞춰 명령어를 실행함
- 컴퓨터 부품은 클럭 신호에 맞춰 움직임
- 클럭 신호가 빠르게 반복되면 명령어 사이클이 더 빠르게 반복될거임
- 클럭속도가 높은 CPU가 성능이 좋다
- 클럭 속도는 헤르츠(Hz)단위로 측정함
- 1초에 클럭이 몇번 반복되는지 나타냄
- 1초에 클럭이 100번 반복되면 클럭속도는 100Hz
- 클럭 속도를 무지막하게 올리면 발열 문제 때문에 무조건적으로 성능이 좋아지는 건 아니다.
- 코어와 멀티코어
- 클럭 속도를 높이는 것 외에 CPU 성능을 높이는 방법은 코어와 스레드 수를 늘리는 것이다.
- 명령어를 실행하는 부품 단위를 코어라고 함
- 하나의 CPU에 여러 코어가 들어있는걸 멀티코어 CPU라 함 (= 멀티코어 프로세서)
- 코어마다 처리할 명령어들을 얼마나 적절하게 분배하느냐에 따라 연산속도가 달라짐
- 스레드와 멀티스레드
- 스레드의 사전적 의미는 실행 흐름의 단위이다.
- 하드웨어적 스레드 : CPU에서 사용
- 하나의 코어가 동시에 처리하는 명령어 단위
- 하나의 코어로 여러 명령어를 동시에 처리하는 CPU를 멀티스레드 프로세서, 멀티스레드 CPU라 함
- 소프트웨어적 스레드 : 프로그램에서 사용
- 하나의 프로그램에서 독립적으로 실행되는 단위를 의미함
05-2) 명령어 병렬 처리 기법 (ILP : Instruction-Level Parallelism)
- 명령어를 동시에 처리하여 CPU를 한시도 쉬지 않고 작동시키는 기법
- 종류
- 명령어 파이프라이닝
- 슈퍼스칼라
- 비순차적 명령어 처리
- 명령어 파이프라인
- 명령어 처리과정은 다음과 같다
- 명령어 인출(Instruction Fetch)
- 명령어 해석(Instruction Decode)
- 명령어 실행(Execute Instruction)
- 결과 저장(Write back)
- CPU는 각 단계를 동시에 실행할 수 있다.
- 특정상황에서 성능 향상에 실패하는 경우도 있는데, 파이프라인 위험이라 함
- 데이터 위험 : 데이터 의존성으로 발생
- 제어 위험 : 프로그램 카운터의 갑작스러운 변화에 의해 발생
- 구조적 위험 : 명령어들을 겹쳐 실행하는 과정에서 서로 다른 명령어가 동시에 ALU, 레지스터 등과 같은 CPU 부품을 사용하려고 할 때 발생 (= 자원 위험)
- 명령어 처리과정은 다음과 같다
- 슈퍼 스칼라 (superscalar)
- 오늘날 대부분의 CPU에서는 여러 개의 파이프라인을 이용한다.
- CPU 내부에 여러개의 명령어 파이프라인을 포함한 구조를 슈퍼 스칼라 라고 함
- 비 순차적 명령어 처리(Out-of-Order execution : OoOE)
- 명령어를 순차적으로 실행하지 않는 것을 의미
- 명령어의 '합법적 새치기'
- 파이프라인의 중단을 방지하기 위함임
- 데이터 의존성을 확인해야할 필요가 있음
05-3) CISC와 RISC
- 명령어 파이프라이닝과 슈퍼스칼라가 CPU에 적용되려면 명령어가 파이프라이닝에 최적화 되어있어야 함
- CPU가 인출하고 해석하고 실행하는 명령어가 파이프라이닝 하기 쉽게 생겨야한다는 의미
- CPU의 언어인 ISA와 이를 기반으로 설계된 것이 CISC와 RISC이다.
- ISA(Instruction Set Architecture)
- CPU가 이해할 수 있는 명령어들의 모음
- CISC (Complex Instruction Instruction Set Computer)
- 복잡한 명령어 집합을 활용하는 컴퓨터 (컴퓨터 = CPU)
- 명령어의 형태와 크기가 다양한 가변 길이 명령어를 활용한다.
- 다양하고 강력한 명령어를 사용한다는 것은 상대적으로 적은 수의 명령어로도 프로그램을 실행할 수 있다는 것을 의미
- 메모리를 최대한 아끼며 개발해야 했던 시절에 인기가 많았음
- 명령어 실행 주기가 달라서 파이프라인을 구성하기 어려운 단점이 있음
- RISC (Reduced Instruction Set Computer)
- CISC에 비해 명령어의 종류가 적고 짧고 규격화된 명령어, 되도록 1클럭 내외로 실행되는 명령어를 지향함
- 고정길이 명령어를 활용함
- 메모리 접근을 단순화, 최소화하는 대신 레지스터를 적극 활용함
'책 > 혼자 공부하는 컴퓨터 구조 + 운영체제' 카테고리의 다른 글
7장 보조기억장치 (0) | 2023.03.23 |
---|---|
6장 메모리와 캐시 메모리 (0) | 2023.03.23 |
4장 CPU의 작동 원리 (0) | 2023.03.21 |
3장 명령어 (0) | 2023.03.20 |
2장 데이터 (0) | 2023.03.20 |