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