본문 바로가기

공부/Cortex M3

Cortex-M3 Pipeline

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