반응형
마이크로 프로세서에서 명령어를 실행할 때 일반적으로 Fetch, Decode, Execute, Memory Access의 4단계를 실행한다.
Fetch는 메모리에서 명령어를 마이크로 프로세서에서 읽는 단계이고 Decode는 Fetch 된 명령어를 해석하는 단계이고 Execute은 해석된 명령어를 실행하는 단계이며 Memory Access는 결과 값을 메모리에 저장하는 단계이다.
만약 각 단계를 실행하는데 1 클럭의 시간이 필요하다면 마이크로 프로세서의 실제 동작 속도는 클럭 주파수의 1/4배가 된다. 즉, 1MHz의 마이크로 프로세서에서 1us 마다 한 명령어를 실행하는 것이 아니라 4us 마다 한 명령어를 실행하게 된다. (실제로는 명령어에 따라 각 단계의 실행 클럭이 1개 이상이 될 수도 있다.)
파이프라인(Pipeline)은 위와 같은 Fetch, Decode, Execute, Memory Access의 단계를 병렬로 실행하는 기술이다. 파이프라인는 다음 그림과 같이 동작하며, 파이프라인을 사용하면 매 클럭 마다 Execute을 실행하여 마이크로 프로세서의 한 클럭마다 한 명령어를 실행할 수 있다.
파이프라인을 실행할 때 Branch 명령이 있으면 미리 Fetch하거나 Decode한 데이터를 버려야 하기 때문에 파이프라인의 효과가 떨어진다.
반응형
'전자공학' 카테고리의 다른 글
RC 모형에 사용되는 서보모터 제어 (0) | 2018.02.19 |
---|---|
패러데이 법칙 (0) | 2018.02.18 |
Even & Odd 패리티 (0) | 2018.02.13 |
DFT 정의와 특성 (0) | 2018.02.11 |
정수형 IIR 필터 사용시 주의해야 할 점 (0) | 2018.02.07 |
댓글