Cortex-M3의 pipeline은 ARM77과 마찬기지로 3-stage pipeline을 가짐. 여기에 추가적으로 Pipeline Branch Speculation이 수행되고 있음.
즉, Cortex-M3의 pipeline은 3-stage pipeline + Pipeline Branch Speculation임.
3-stage pipeline
- 말 그대로 3단계 pipeline을 가짐 (Fetch -> Decode -> Execute)
*참고*
Fetch: 실행할 코드를 가져오는 것
Decode: 가져온 명령어를 CPU가 알 수 있는 코드로 바꾸는 것
Execute: 명령을 실행하는 것
각 단계는 서로 영향을 미치지만 동작은 독립적으로 동작함.
(예: Fetch를 하면서 Decode를 진행 가능)
3-stage pipeline 장단점
- 동시에 각 단계가 진행될 수 있음
- 단, branch와 같이 실행될 때 속도가 오히려 느려질 수 있음.
(CPU 명령 수행 중, branch를 만나게 될 경우, pipeline을 flush한 후 다시 fetch-decode-execute를 수행하기 때문에 이전에 pipeline에 저장해 두었던 내용은 의미가 없어짐. 즉, 2cycle을 더 수행해야 실행되기 때문에 더 느려짐)
*참고*
branch: 프로그램의 실행 순서를 변경하여 다른 명령을 실행할 수 있도록 하는 것
Pipeline Branch Speculation
- 이러한 단점을 해결하기 위한 방법 중 하나
- 이를 통해 pipeline을 flush하지 않고 바로 수행 될 수 있음
- 속도 향상 뿐 아니라 전력 소모 감소 및 인터럽트 지연 방지 등 여러 면에서 장점
'공부 > Cortex M3' 카테고리의 다른 글
Harvard Architecture (0) | 2012.08.22 |
---|---|
Thumb 명령 (0) | 2012.08.22 |
[ARM IAR 5.4] 컴파일러 사용하기 - STM32F10xxB (0) | 2012.03.28 |