新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > ARM7各種指令的周期數(shù)

        ARM7各種指令的周期數(shù)

        作者: 時(shí)間:2011-12-10 來源:網(wǎng)絡(luò) 收藏

        具有3級(jí)流水線結(jié)構(gòu)(取指、譯碼、執(zhí)行),對(duì)大多數(shù)指令來說每條流水線的處理都是單周期的,不過某些情況下,取指和執(zhí)行的周期數(shù)會(huì)延長(zhǎng),導(dǎo)致流水線進(jìn)入stall狀態(tài),指令執(zhí)行時(shí)間超過1個(gè)周期。
        經(jīng)過在LPC213x/214x(NXP TDMI-S)上的試驗(yàn),得出各類指令的執(zhí)行周期數(shù)如下:
        1、大部分算術(shù)運(yùn)算和邏輯運(yùn)算指令都是單周期的(乘法例外)。
        2、STR指令需要增加1個(gè)總線周期。如果地址位于內(nèi)部SRAM,則是2個(gè)周期;如果地址位于AHB、VPB等外設(shè)總線上(例如訪問外設(shè)的寄存器),由于局部總線和外設(shè)總線橋接還有額外延時(shí),因此需要再增加一些周期數(shù),在LPC213x/214x上,當(dāng)VPB和主頻相同時(shí),需要再增加5個(gè)周期額外延時(shí),即用STR指令訪問外設(shè)寄存器需要7個(gè)期。
        3、LDR指令需要增加2個(gè)總線周期。同理,如果地址位于內(nèi)部SRAM,則是3個(gè)周期;如果地址在外設(shè)總線上,同樣需要再增加一些周期數(shù),在LPC213x/214x上,當(dāng)VPB和主頻相同時(shí),LDR指令需要8個(gè)周期。
        4、對(duì)于一次操作多個(gè)寄存器的STM、LDM類指令,指令周期數(shù)與STR、LDR類似,但每增加一個(gè)寄存器需要增加一個(gè)總線周期,例如當(dāng)?shù)刂肺挥趦?nèi)部SRAM、寄存器個(gè)數(shù)為N時(shí),執(zhí)行周期數(shù)為1+N(STM)和2+N(LDM)。
        5、無條件跳轉(zhuǎn)語句和跳轉(zhuǎn)語句成功跳轉(zhuǎn),需要重新填充流水線,因此至少需要3個(gè)周期(假設(shè)訪問程序存儲(chǔ)空間是單周期的)。
        6、LDR指令的目標(biāo)寄存器為R15(PC)時(shí),相當(dāng)于讀總線+跳轉(zhuǎn),至少需要5個(gè)周期(假設(shè)訪問程序存儲(chǔ)空間是單周期的)。
        7、乘法指令根據(jù)操作數(shù)位數(shù)的不同,從2-5個(gè)周期都有可能。
        8、對(duì)于所有的帶條件的指令,如果條件不滿足,指令不被執(zhí)行,都只需要花1個(gè)周期來跳過該指令。
        9、實(shí)際應(yīng)用時(shí),還需考慮程序存儲(chǔ)器的訪問速度(影響流水線取指階段的周期數(shù))以及Cache的命中情況。



        關(guān)鍵詞: ARM7

        評(píng)論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 财经| 天津市| 临夏市| 奎屯市| 行唐县| 措勤县| 通州区| 墨竹工卡县| 甘洛县| 屯留县| 监利县| 三亚市| 同仁县| 游戏| 汉沽区| 平和县| 获嘉县| 石首市| 龙岩市| 明溪县| 乾安县| 东乌珠穆沁旗| 肇东市| 四平市| 永顺县| 安图县| 满城县| 兴海县| 龙海市| 昌平区| 阳西县| 盱眙县| 定边县| 潼南县| 沿河| 全椒县| 合江县| 阿拉尔市| 金湖县| 大埔县| 东安县|