ARM體系結(jié)構(gòu)之:ARM體系結(jié)構(gòu)的特點
為了使ARM指令集能夠更好地滿足嵌入式應(yīng)用的需要,ARM指令集和單純的RISC定義有以下幾方面的不同。
· 一些特定指令的周期數(shù)可變
并非所有的ARM指令都是單周期的。例如,多寄存器轉(zhuǎn)載/存儲的Load/Store指令的周期數(shù)就不確定,必須根據(jù)被傳送的寄存器個數(shù)而定。如果是訪問連續(xù)的存儲器地址,就可以改善性能,因為連續(xù)的存儲器訪問通常比隨機訪問要快。同時,代碼密度也得到了提高,因為在函數(shù)的起始和結(jié)尾,多個寄存器的傳輸是很常用的操作。
· 內(nèi)嵌桶形移位器產(chǎn)生更復(fù)雜的指令
內(nèi)嵌桶形移位器是一個硬件部件,在一個輸入寄存器被一條指令使用之前,內(nèi)嵌桶形移位器可以處理該寄存器中的數(shù)據(jù)。它擴展了許多指令的功能,改善了內(nèi)核的性能,提高了代碼密度。
· Thumb指令集
ARM處理器根據(jù)RICS原理設(shè)計,但是由于各種原因,在低代碼密度上它比其他多數(shù)RICS要好一些,然而它的代碼密度仍不如某些CISC處理器。在代碼密度重要的場合,ARM公司在某些版本的ARM處理器中加入了一個稱為Thumb結(jié)構(gòu)的新型機構(gòu)。Thumb指令集是原來32位ARM指令集的16位壓縮形式,并在指令流水線中使用了動態(tài)解壓縮硬件。Thumb代碼密度優(yōu)于多數(shù)CISC處理器達(dá)到的代碼密度。
· 條件執(zhí)行
只有當(dāng)某個特定條件滿足時指令才會被執(zhí)行。這個特性可以減少分支指令數(shù)目,從而改善性能,提高代碼密度。
· DSP指令
一些功能強大的數(shù)字信號處理(DSP)指令被加入到標(biāo)準(zhǔn)的ARM指令中,以支持快速的16×16位乘法操作及飽和運算。在某些應(yīng)用中,傳統(tǒng)的方法需要微處理器加上DSP才能實現(xiàn)。這些增強指令,使得ARM處理器也能夠滿足這些應(yīng)用的需要。
綜上所述,ARM體系結(jié)構(gòu)的主要特征如下:
· 大量的寄存器,它們都可以用于多種用途;
· Load/Store體系結(jié)構(gòu);
· 每條指令都條件執(zhí)行;
· 多寄存器的Load/Store指令;
· 能夠在單時鐘周期執(zhí)行的單條指令內(nèi)完成一項普通的移位操作和一項普通的ALU操作;
· 通過協(xié)處理器指令集來擴展ARM指令集,包括在編程模式中增加了新的寄存器和數(shù)據(jù)類型。
如果把Thumb指令集也當(dāng)作ARM體系結(jié)構(gòu)的一部分,那么還可以加上:
· 在Thumb體系結(jié)構(gòu)中以高密度16位壓縮形式表示指令集。
存儲器相關(guān)文章:存儲器原理
矢量控制相關(guān)文章:矢量控制原理
評論