CPU의 성능을 높히는 방법
클럭 속도 향상
클럭은 헤르츠(Hz)단위로 측정한다.
클럭 속도를 높이면 빨라지지만 발열이 심각하게 높아져 한계가 있다.
코어와 멀티코어
기존에 있는 1개의 CPU를 여러개로 확장한다. 이를 멀티코어 CPU라고 한다.
코어마다 처리할 명령어들을 적절하게 분배하느냐에 따라 연산속도가 크게 달라진다.
스레드와 멀티 스레드
스레드 : 실행 흐름의 단위
하드웨어적 스레드
스레드 : 하나의 코어가 동시에 처리하는 명령어 단위
2코어 4스레드는 한번에 네개의 명령어를 처리할 수 있는 CPU이다.
이를 멀티스레드 프로세서 또는 멀티스레드 CPU라고 한다.
소프트웨어적 스레드
스레드 : 하나의 프로그램에서 독립적으로 실행되는 단위
하나의 프로그램의 여러 부분이 동시에 실행될 수도 있는데 이러한 기능이 동시에 수행되는 것을 소프트웨어적 스레드라고 한다.
멀티스레드 프로세서
하나의 코어로 여러 명령어를 동시에 처리하도록 만들려면 레지스터의 설계가 핵심이다.
만약 2코어 4스레드라면 한개의 코어에 레지스터 세트를 2개 가지면 동시에 2개의 명령어의 실행이 가능하다.
코어는 2개이나 4개의 작업을 동시에 하기에 하드웨어 스레드를 논리 프로세서라고 부르기도 한다.
명령어 병렬 처리 기법
명령어 파이프라인
명령어 처리 과정
- 명령어 인출
- 명령어 해석
- 명령어 실행
- 결과 저장
여기서 중요한 점은 같은 단계가 곂치지 않는다면 CPU는 각 단계를 동시에 실행할 수 있다.
명령어 들을 명령어 파이프라인에 넣고 동시에 처리하는 기법을 명령어 파이프라이닝이라고 한다.
파이프라인 위험
데이터 위험
명령어 간 데이터 의존성에 의해 발생
제어 위험
프로그램 카운터의 갑작스러운 변화에 의해 발생
이를 방지하기 위해 분기예측이라는 기술을 사용한다.
구조적 위험(자원 위험)
명령어들을 곂쳐 실행하는 과정에서 서로 다른 명령어가 동시에 ALU, 레지스터 등과 같은 CPU 부품을 사용하려고 할 때 발생
슈퍼 스칼라
CPU 내부에 여러개의 명령어 파이프라인을 포함한 구조
비순차적 명령어 처리(OoOE)
명령어를 순차적으로 실행하지 않고 순서를 바꿔 실행해도 무방한 명령어를 먼저 실행하여 명령어 파이프라인이 멈추는 것을 방지하는 기법
명령어 집합(ISA)
CPU가 이해할 수 있는 명령어들의 모음
CPU제조사마다 조금씩 다를 수 있다.
CISC
복잡한 명령어 집합을 활용하는 컴퓨터
대표적인 종류 x86, x86-64
명령어의 형태와 크기가 다양한 가변 길이 명령어를 활용
장점
- 적은 수의 명령어로만으로 프로그램을 동작시킬 수 있다.
단점 - 명령어의 크기와 실행되기까지 시간이 일정하지 않다.
- 그래서 파이프라이닝이 어렵다.
RISC
규격화된 명령어, 되도록 1클럭 내외로 실행되는 명령어 지향
고정길이 명령어 사용
장점
- 명령어가 규격화되어있어 파이프라이닝에 최적화되어 있다.
단점 - 명령어 수가 많다.
참고) 혼자 공부하는 컴퓨터 구조+운영체제
'공부 > 컴퓨터구조, 운영체제' 카테고리의 다른 글
7장 보조기억장치 (0) | 2023.03.27 |
---|---|
6장 메모리와 캐시 메모리 (0) | 2023.03.23 |
4장 CPU의 작동 원리 (0) | 2023.03.23 |
3장 명령어 (0) | 2023.03.20 |
2장 데이터 (0) | 2023.03.16 |