1. 파이프라인
- 하나의 작업에 필요한 일을 세부적으로 나누어서 동시에 다른 세부작업을 실행하는 방법
- CPU의 단계를 2가지로 나누어보자.
- Fetch Stage(Instruction Fetch/Decode)
- Execution Stage(Instruction Execution)
- CPU의 단계를 4가지로 나누어보자.
- 명령어 인출(IF: Instruction Fecch)
- 명령어 해독(ID: Instruction Decode)
- 인출된 명령어 해석
- 오퍼랜드 인출(OF: Operand Fetch)
- 메모리에서 데이터 인출
- 명령어 실행(EX: Execute)
- 최근 CPU는 파이프라인이 굉장히 길다. 16단계 정도이며, 단계를 계속 나누는 이유는?
-
- 세부적으로 단계를 나누면 나눌수록 속도가 빨라진다.
- CPU의 단계를 나눈 가지 수로 하나의 명령을 실행하는 데 몇 cycle이 걸리는지 알 수 있다.
- 위 2가지 예시와 최근 CPU를 통해
- 첫번째 그림은 하나의 명령을 실행하는데 2 cycle이 걸린다.
- 두번째 그림은 하나의 명령을 실행하는데 4 cycle이 걸린다.
- 최근 CPU는 16단계 정도로 나누어 처리하므로 16 cycle이 걸리는 것을 알 수 있다.
- 추가적으로 1Hz = 1cycle/sec 이므로 예를 들어 CPU가 320,000 cycles/sec(=320KHz)라고 가정했을 때 이 2가지 예시와 최근 CPU의 단계를 가지고 초당 명령 실행 수를 알 수 있다.
- 2가지 단계: 320,000 / 2 cycle = 초당 160,000 명령 실행
- 4가지 단계: 320,000 / 4 cycle = 초당 80,000 명령 실행
- 16가지 단계: 320,000 / 16 cycle = 초당 20,000 명령 실행
- 점차적으로 cycle 의 수가 커질수록 더 오래 걸릴 것 같지만, 내부적으로는 단계별로 동시에 실행할 수 있는 명령들이 더 많아지기 때문에 기존보다 더 빠르게 동작한다.
- 결론적으로 파이프라인은 CPU의 성능을 높이는 기법이다.
반응형
'CS > 컴퓨터 구조(Computer Architecture)' 카테고리의 다른 글
[컴퓨터 구조] CISC vs RISC (0) | 2023.01.16 |
---|---|
[컴퓨터 구조] 컴퓨터의 CPU 기본 구조 (0) | 2023.01.11 |
[컴퓨터 구조] Instruction Set이란? (0) | 2023.01.09 |
[컴퓨터 구조] Program Counter(PC)란? (0) | 2023.01.07 |
[컴퓨터 구조] Accumulator란? (0) | 2023.01.04 |