在開發(fā)設(shè)計第一個ARM芯片時,當(dāng)時的一些機器如Digital PDP-8、Cray-1和IBM 801在設(shè)計時早就提出了RISC的概念,并且在其后發(fā)展中有了許多RISC的特征,但RISC惟一的例子仍只有Berkeley的RISC I和II及Stanford的MIPS(Microprocessor without Interlocking Pipeline Stages, 無互鎖流水線處理器),而它們當(dāng)時僅僅用于教學(xué)和研究。
ARM處理器是第一個為商業(yè)用途而開發(fā)的RISC微處理器。ARM所采用的體系結(jié)構(gòu),對于當(dāng)時的RISC體系結(jié)構(gòu)既有繼承,又有拋棄,即完全根據(jù)實際設(shè)計的需要仔細研究,沒有機械照搬。ARM的體系結(jié)構(gòu)中采用了若干Berkeley RISC處理器設(shè)計的特征,但也放棄了其他若干特征。這些采用的特征有:
·Load/Store體系結(jié)構(gòu)
·固定的32位指令
·3地址指令格式
在Berkeley RISC設(shè)計采用的特征中被ARM設(shè)計者放棄的RISC的技術(shù)特征有:
·寄存器窗口
在早期的RISC中,由于Berkeley原型機中包含了寄存器窗口,使得寄存器窗口的機制密切地伴隨著RISC的概念,成為一般RISC的一大特征。Berkeley RISC處理器的寄存器堆中使用寄存器窗口,使得任何時候總有32個寄存器是可見的。進程進入和退出都訪問新的一組寄存器,因此減少了因寄存器保存和恢復(fù)導(dǎo)致的處理器和存儲器之間的數(shù)據(jù)擁塞和時間開銷。這是擁有寄存器窗口的優(yōu)點。但是寄存器窗口的存在以大量寄存器占用較多的芯片資源為代價,使得芯片成本增加,因此在ARM處理器設(shè)計時未采用寄存器窗口。盡管在ARM中用來處理異常的影子(shadow)寄存器和窗口寄存器在概念上基本相同,但是在異常模式下對進程進行處理時,影子寄存器的數(shù)量是很少的。
·延遲轉(zhuǎn)移
由于轉(zhuǎn)移中斷了指令流水線的平滑流動而造成了流水線的“斷流”問題,多數(shù)RISC處理器采用延遲轉(zhuǎn)移來改善這一問題,即在后續(xù)指令執(zhí)行后才進行轉(zhuǎn)移。在原來的ARM中延遲轉(zhuǎn)移并沒有采用,因為它使異常處理過程更加復(fù)雜。
·所有指令單周期執(zhí)行
最初的ARM設(shè)計最關(guān)心的是必須保持設(shè)計的簡單性。ARM的簡單性在ARM的硬件組織和實現(xiàn)上比指令集的結(jié)構(gòu)上體現(xiàn)得更明顯。把簡單的硬件和指令集結(jié)合起來,這是RISC體系的思想基礎(chǔ);但是ARM仍然保留一些CISC的特征,并且因此達到了比純粹的RISC更高的代碼密度,使得ARM在開始時就獲得其功率效率和較小的核面積的優(yōu)勢。
新聞熱點
疑難解答
圖片精選