ARM9 五級流水線結構,以及PC指標

2021-08-21 04:41:47 字數 784 閱讀 7742

arm7是**流水線,所以pc = 執行指令位址 + 8,這很好理解,但是在arm9中,是五級流水線,

這個理解顯然有些難度,首先看下arm7和arm9的流水線區別和聯絡:

相比arm7,arm9採用了更高效的五級流水線設計,在取指令、解碼、執行之後,又增加了ls1和ls2階段,ls1負責載入和儲存指令中制定的資料,ls2則負責提取、符號擴充套件,通過位元組或半字載入命令來載入資料,但是ls1和ls2僅對載入(ldr)和儲存命令(str)有效,其他的指令是不需要執行這兩個階段的。

arm9五級流水線中,讀暫存器的操作轉移到解碼階段,將**流水中的執行階段進一步細化,減少每個始終週期內必須要完成的工作量,這樣可以使流水線的各個階段在功能上更加平衡,避免資料的訪問和取指的匯流排衝突,每條指令的平均週期明顯減少。

有一句話要牢記,那就是:

pc不是指向你正在執行的指令,而是-pc始終指向你要取得指令的位址。

【總結】

arm7的**流水線,pc=pc+8,

arm9的五級流水線,也是pc=pc+8,

根本的原因是,兩者的流水線設計中,指令的execute執行階段,都是處於流水線的第**。

arm 流水線和pc值

然後pc pc 1 老師經常這麼說。這不完全正確,pc自增一的情況指出現在無流水 non pipeline 的情況下,這個時候取指,解碼,執指都是順序執行的而在有流水的情況下就比較複雜了這裡用arm7和arm9為例。流水線使用三個階段,因此指令分為三個階段執行 1.取指 從儲存器裝載一條指令 2.解...

ARM3級流水線的PC值關係

在解釋pc值關係之前先了解一些概念。程式計數器是用於存放下一條指令所在單元的地方。當執行一條指令時,首先需要根據pc中存放的指令位址,將指令由記憶體取到指令暫存器中,此過程稱為 取指令 與此同時,pc中的位址自動加1,或者由轉移指標給出下一條指令的位址。對於32位處理器,一條指令佔據4位元組。流水線...

體系結構 五段流水線 流水線技術

目錄 一條經典的5段流水線 一條指令的執行過程分為以下5個週期 取指令週期 if 指令解碼 讀暫存器週期 id 執行 有效位址計算週期 ex 儲存器訪問 分支完成週期 mem 寫回週期 wb 體系結構 流水線 流水線相關 流水線衝突 以程式計數器 pc中的內容作為位址,從儲存器中取出指令並放入指令暫...