ARM9——五级流水线结构,以及PC指针
生活随笔
收集整理的這篇文章主要介紹了
ARM9——五级流水线结构,以及PC指针
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
? ? ARM7是三級流水線,所以PC = 執行指令地址 + 8,這很好理解,但是在ARM9中,是五級流水線,
仍然是:PC = 執行指令地址 + 8,而不是 PC = 執行指令地址 + 16.
? ? 這個理解顯然有些難度,首先看下ARM7和ARM9的流水線區別和聯系:
????
? ? 相比ARM7,ARM9采用了更高效的五級流水線設計,在取指令、譯碼、執行之后,又增加了LS1和LS2階段,LS1負責加載和存儲指令中制定的數據,LS2則負責提取、符號擴展,通過字節或半字加載命令來加載數據,但是LS1和LS2僅對加載(LDR)和存儲命令(STR)有效,其他的指令是不需要執行這兩個階段的。
? ?ARM9五級流水線中,讀寄存器的操作轉移到譯碼階段,將三級流水中的執行階段進一步細化,減少每個始終周期內必須要完成的工作量,這樣可以使流水線的各個階段在功能上更加平衡,避免數據的訪問和取指的總線沖突,每條指令的平均周期明顯減少。
????
? ??
有一句話要牢記,那就是:
PC不是指向你正在運行的指令,而是-PC始終指向你要取得指令的地址。
【總結】
ARM7的三級流水線,PC=PC+8,
ARM9的五級流水線,也是PC=PC+8,
根本的原因是,兩者的流水線設計中,指令的Execute執行階段,都是處于流水線的第三級。
總結
以上是生活随笔為你收集整理的ARM9——五级流水线结构,以及PC指针的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python 中的 dbm 模块
- 下一篇: 一人一猫旅行记之浅析单例模式