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