新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > ARM7各種指令的周期數

        ARM7各種指令的周期數

        作者: 時間:2011-12-10 來源:網絡 收藏

        具有3級流水線結構(取指、譯碼、執行),對大多數指令來說每條流水線的處理都是單周期的,不過某些情況下,取指和執行的周期數會延長,導致流水線進入stall狀態,指令執行時間超過1個周期。
        經過在LPC213x/214x(NXP TDMI-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的命中情況。



        關鍵詞: ARM7

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 宿州市| 旬邑县| 万宁市| 体育| 张家港市| 泗洪县| 达孜县| 永清县| 水富县| 永德县| 佛教| 稷山县| 郁南县| 芦山县| 铜川市| 曲松县| 翼城县| 凉山| 邯郸市| 顺平县| 崇明县| 大冶市| 静海县| 白山市| 和平区| 丽江市| 和林格尔县| 奉贤区| 嘉黎县| 绥化市| 阳西县| 青龙| 临朐县| 佳木斯市| 乌什县| 建湖县| 田东县| 涞水县| 湘乡市| 安仁县| 金川县|