arm 流水線和pc值

2021-05-23 10:59:37 字數 374 閱讀 9934

「然後pc=pc+1」,老師經常這麼說。

這不完全正確,pc自增一的情況指出現在無流水(non-pipeline)的情況下,這個時候取指,解碼,執指都是順序執行的而在有流水的情況下就比較複雜了這裡用arm7和arm9為例。

流水線使用三個階段,因此指令分為三個階段執行:1.取指(從儲存器裝載一條指令);2.解碼(識別將要被執行的指令);3.執行(處理指令並將結果寫回暫存器)。

而r15(pc)總是指向「正在取指」的指令,而不是指向「正在執行」的指令或正在「解碼」的指令。一般來說,人們習慣性約定將「正在執行的指令作為參考點」,稱之為當前第一條指令,因此pc總是指向第三條指令。當arm狀態時,每條指令為4位元組長,所以pc始終指向該指令位址加8位元組的位址,即:pc值=當前程式執行位置+8;

ARM3級流水線的PC值關係

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

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

arm7是 流水線,所以pc 執行指令位址 8,這很好理解,但是在arm9中,是五級流水線,這個理解顯然有些難度,首先看下arm7和arm9的流水線區別和聯絡 相比arm7,arm9採用了更高效的五級流水線設計,在取指令 解碼 執行之後,又增加了ls1和ls2階段,ls1負責載入和儲存指令中制定的資...

流水線排程

n個作業要在由2臺機器m1和m2組成的流水線上完成加工。每個作業加工的順序都是先在m1上加工,然後在m2上加工。m1和m2加工作業i所需的時間分別為a i 和b i 你可以安排每個作業的執行順序,使得從第乙個作業在機器m1上開始加工,到最後乙個作業在機器m2上加工完成所需的時間最少。求這個最少的時間...