嵌入式開發過程中離不開arm開發,很多初學者在學習arm開發的時候往往會忽視一些基本的知識。嵌入式ARM的體系結構采用若干Berkely RISC處理器設計中的特征,但也放棄了其他若干特征。這些采用的特征有:Load/Store體系結構;固定的32位格式;3地址指令格式。那么在Berkeley RISC設計采用的特征中被ARM設計者放棄的RISC的技術特征有哪些呢?
(1)寄存器窗口
在早期的RISC中,由于Berkeley原型機中包含了寄存器窗口,使得寄存器窗口的機制密切地伴隨著RISCD 的概念,成為一般RISC的一大特征,Berkeley RISC處理器的寄存器堆中使用寄存器窗口,使得任何時候總有32個寄存器是可見的。進程進入和退出都訪問新的一組寄存器,因此減少了因寄存器的保存和恢復導致的處理器和存儲器之間的數據擁堵和時間開銷。這是擁有寄存器窗口的優點。但寄存器窗口的存在以大量寄存器占用較多的芯片資源為代價,使得芯片成本增加,因此在ARM處理器設計時未采用寄存器窗口。盡管在嵌入式開發培訓-ARM中用來處理異常的影子寄存器和窗口寄存器在概念上基本相同,但在異常模式下對進程進行處理時,影子寄存器的數量是很少的。
(2)延遲轉移
由于轉移中斷了指令流水線的平滑流動而造成了流水線的“斷流”問題,多數RISC處理器采用延遲轉移來改善這一問題,即在后續指令執行后才進行轉移。在原來的ARM中延遲轉移沒有采用,因為它使異常處理過程更加復雜。
(3)多有指令單周期執行
ARM被設計為使用最少的時鐘周期來訪問存儲器,但不是所有指令都是單周期執行。如在低成本的ARM應用領域中普遍使用的ARM7TDMI,數據和指令占有同一總線,使用同一個存儲器時,即便是最簡單的Load和Store指令也最少需呀訪問2次存儲器。當訪問存儲器需要經過一個周期時,就多用一個周期。因此,并不是所有ARM指令都是在單一時鐘周期內執行的,少數指令需要多個時鐘周期。高性能的ARM9TDMI使用分開的數據和指令存儲器,才有可能把Load和Store指令的指令訪問存儲器和數據訪問存儲器操作單周期執行。
把簡單的硬件和指令集結合起來,這是RISC體系的思想基礎;但ARM仍然保留一些CISC的特征,并且因此達到了比純粹RISC更高的代碼密度,使得ARM在開始設計時就獲得其功耗效率和較小的核面積的優勢。
想要了解更多的arm開發相關知識,可以登錄華清遠見嵌入式開發培訓官網進行了解。