성능을 높이기 위한 핵심적인 구현 방법은 다음과 같다.
- Pipelining
- Cache memory
Pipelining
파이프라인이란, 한 데이터 처리 단계의 출력이 다음 단계의 입력으로 이어지는 형태로 연결된 구조이다.
이를 이용하면 여러 단계가 서로 병렬적으로 수행될 수 있어서 성능이 높아진다.
예를 들어, washer-drier-정리의 단계를 가지는 빨래 작업은 다음과 같이 처리할 수 있다.
3-stage pipeline을 이용한 것인데 이를 통해 작업 속도는 3배 향상된다.
Instruction 실행에서도 마찬가지이다.
Fetch-Decode-Execute의 반복적인 작업을 3-stage pipeline을 이용하면 성능이 3배 향상된다.
더 많은 stage을 만들어서 파이프라인을 만든다면 하나의 프로세서의 동작 속도는 더 빨라진다.
또한 더 많은 하드웨어를 사용해서 더 많은 파이프라인을 만들면 성능이 월등히 높아진다.
Cache Memory
문제점
프로세서의 성능은 exponential하게 증가한 반면에, 메모리 속도는 exponential하게 증가하지 못하였다.
- 프로세서의 발달
- 성능이 exponential growth을 이룸
- 메모리의 발달
- Capacity가 exponential growth을 이룸
- Speed는 천천히 증가함
프로세서 입장에서는 메모리에 접근하는 속도가 점점 느려진 것이다.
이 때문에 프로세서는 제대로 된 성능을 내지 못하였다.
Cache Memory
위 문제를 해결하기 위해 Cache memory를 사용한다.
Cache는 데이터를 미리 복사해 놓는 임시 장소로, 디스크보다 프로세서에 더 가까운(빠른) 곳에 위치하고 있다.
프로세서는 디스크에 접근하는 것 대신에 캐시 메모리에 접근함으로써 메모리 접근 속도를 낮출 수 있다.
모든 데이터는 전원이 차단되어도 데이터를 유지하는(비휘발성) magnetic disk에 저장을 한다.
Magnetic disk의 데이터를 main memory에 caching하고, main memory을 다시 cache memory에 caching한다.
2번의 캐싱이 이루어지는 셈이다.
이를 통해 데이터를 가져오기 위해 디스크에 10ms로 접근하던 것을 캐시 메모리에 1ns로 접근할 수 있다.
더 가까울 수록 접근 속도가 더 빠르기 때문에, 더 빠른 접근 속도을 위해 캐시메모리와 프로세서는 single-chip으로 만들어진다.
이 또한 반도체 크기는 작아지는데 프로세서의 크기는 커지는 이유 중 하나이다.
'Computer Science > Computer Architecture' 카테고리의 다른 글
1. 컴퓨터 성능 개선/결정 (How to improve) (0) | 2021.04.03 |
---|---|
1. 컴퓨터 성능 (What to Measure, How to Measure) (0) | 2021.04.03 |
I/O : Interrupt (+ Atomic) (0) | 2021.03.27 |
I/O : Interconnection (0) | 2021.03.27 |
Microcontroller, Memory Map, Processor Databook (0) | 2021.03.27 |
댓글