ARM 64位處理器架構(gòu)ARMv8技術(shù)淺析
當?shù)貢r間10月25-27日,ARM在美國加州圣克拉拉舉行了一場技術(shù)大會“ARM TechCon 2011”,正式宣布了自己的第一款64位處理器架構(gòu)“ARMv8”。ARM公司院士、首席架構(gòu)師Richard Grisenthwaite隨即對新架構(gòu)做了比較深入的技術(shù)講解。



ARM表示,ARMv8 ISA(指令集架構(gòu))的引入只是其64位產(chǎn)品發(fā)展途中的第一步,計劃今年提供GNU工具和64位Linux系統(tǒng)內(nèi)核,并發(fā)布新的標準規(guī)范和模型,然后2012年著重開發(fā)完善生態(tài)系統(tǒng),2013年及以后陸續(xù)放出原型系統(tǒng)。
ARMv8完全向下兼容現(xiàn)有的32位ARMv7軟件,而且運行于ARMv8上的64位操作系統(tǒng)也可以簡單、高效地支持現(xiàn)有的32位軟件。但愿向下兼容不會成為ARM的累贅。

ARMv8是下一個版本的ARM處理器架構(gòu),在32位指令的基礎(chǔ)上增加64位操作能力,擁有AArch32、AArch64兩種執(zhí)行狀態(tài),而且都專注于ARM最擅長、最讓人喜歡的高能效。

ARM處理器架構(gòu)歷史演化圖:ARMv8集成了之前的各種技術(shù)特性,尤其是兼容ARMv7-A的關(guān)鍵特性。

AArch32、AArch64分別采用A32T32、A64指令集,均包含標量浮點單元和高級SIMD。

ARMv8現(xiàn)在還只是個概念,ARM自己還沒有宣布任何時機產(chǎn)品,僅僅給開發(fā)人員提供了一個預覽,需要很長的時間去開發(fā)、去構(gòu)筑整個生態(tài)系統(tǒng),包括ARM自己及其合作伙伴的共同努力,因此ARMv7-A架構(gòu)仍然有著廣闊的發(fā)展天地。ARMv8的完整規(guī)范將在2012年下半年公布。

ARM透露說,早在2007年他們就已經(jīng)開始了64位架構(gòu)的開發(fā)工作,而之所以到現(xiàn)在才正式宣布,是因為需要考慮的因素太多太多,包括解決超大虛擬尋址空間的支持、預測ARM傳統(tǒng)市場的未來需求、拓展ARM的市場空間等等。

AArch64是一套新的指令集,支持ARMv7架構(gòu)中的所有功能,包括TrustZone、虛擬化等等,而且內(nèi)存翻譯系統(tǒng)也是基于ARMv7而來的,采用LPAE表格式,翻譯表寄存器最高支持48位虛擬尋址。

AArch64指令集的長度固定為32-bit,在語法上也和AArch32基本一樣,只在必要的地方做了修改,此外隨時都可以訪問31個通用寄存器,而且寬度都是64-bit的。

A64、A32不同之處在于,新指令都支持64-bit操作,條件指令要少得多,沒有任意長度的載入/存儲多重指令。

A64的高級SIMD和浮點指令集與A32基本類似,高級SIMD同樣共享浮點寄存器文件,并有三處重要改進:32個128-bit寬度寄存器、支持雙精度浮點執(zhí)行、完整支持IEEE754標準。

A64的通用寄存器文件和媒體寄存器文件。

指令級支持加密AES、SHA-1、SHA-256。

意外模型。有四種意外級別,EL3到EL0。

分組寄存器。

意外模型結(jié)構(gòu)圖。

意外模型命名規(guī)則。

MMU內(nèi)存管理單元支持:最高48位虛擬尋址,最大16EB容量。

頁面表信息。

AArch64/AArch32架構(gòu)關(guān)系。

ARM特別強調(diào)說,ARMv8新架構(gòu)并不意味著AArch32的終結(jié),事實上后者還有所增強,帶來了多項與寄存器寬度無關(guān)的新功能。