ARM7指令時鐘週期數

2021-10-18 06:08:36 字數 1306 閱讀 8268

**:

arm7具有3級流水線結構(取指、解碼、執行),對大多數指令來說每條流水線的處理都是單週期的,不過某些情況下,取指和執行的週期數會延長,導致流水線進入stall狀態,指令執行時間超過1個週期。 

經過在lpc213x/214x(nxp arm7tdmi-s)上的試驗,得出各類指令的執行週期數如下: 

1、大部分算術運算和邏輯運算指令都是單週期的(乘法例外)。 

2、str指令需要增加1個匯流排週期。如果位址位於內部sram,則是2個週期;如果位址位於ahb、vpb等外設匯流排上(例如訪問外設的暫存器),由於區域性匯流排和外設匯流排橋接還有額外延時,因此需要再增加一些週期數,在lpc213x/214x上,當vpb和主頻相同時,需要再增加5個週期額外延時,即用str指令訪問外設暫存器需要7個期。 

3、ldr指令需要增加2個匯流排週期。同理,如果位址位於內部sram,則是3個週期;如果位址在外設匯流排上,同樣需要再增加一些週期數,在lpc213x/214x上,當vpb和主頻相同時,ldr指令需要8個週期。 

4、對於一次操作多個暫存器的stm、ldm類指令,指令週期數與str、ldr類似,但每增加乙個暫存器需要增加乙個匯流排週期,例如當位址位於內部sram、暫存器個數為n時,執行週期數為1+n(stm)和2+n(ldm)。 

5、無條件跳轉語句和跳轉語句成功跳轉,需要重新填充流水線,因此至少需要3個週期(假設訪問程式儲存空間是單週期的)。 

6、ldr指令的目標暫存器為r15(pc)時,相當於讀匯流排+跳轉,至少需要5個週期(假設訪問程式儲存空間是單週期的)。 

7、乘法指令根據運算元位數的不同,從2-5個週期都有可能。 

8、對於所有的帶條件的指令,如果條件不滿足,指令不被執行,都只需要花1個週期來跳過該指令。 

9、實際應用時,還需考慮程式儲存器的訪問速度(影響流水線取指階段的週期數)以及cache的命中情況。

4 3指令週期

d觸發器 c1是脈衝控制訊號,d是資料輸入端,q是資料輸出端上公升沿有效,如果有小圓圈就是下降沿有效。當cp為上公升沿時,d與q輸出相同電平。暫存器就是由多個d觸發器組成。指令週期 其實有三個階段 取指令,解碼,執行指令。解碼包括在取指令內,所以沒有標識出來。mov取指令 先從指令cahe中查詢,沒...

組原5 指令週期資料流

目錄 1.指令週期 2.指令週期流程 2.1 取指週期資料流 2.2 間址週期資料流 2.3 執行週期資料流 2.4 中斷週期 3.指令的執行方案 取指週期包括取指和分析。中斷是被安排在指令的最後乙個階段的,中斷的意思就是暫停現在的任務去完成其它的任務,但即使是要暫停現在的任務,也應該把現在這條指令...

ARM 9 指令系統指令英文全拼

arm 指令集 指令名英文全拼 中文含義 lsllogical shift left 邏輯左移 aslarithmetic shift left 算術左移 lsrlogical shift right 邏輯右移 rorrotate right 迴圈右移 asrarithmetic shift rig...