細(xì)說(shuō)64位ARM處理器架構(gòu)的歷史
64位計(jì)算的歷史也算相當(dāng)豐富有趣了,下面讓我們“回味”一下64位ARM處理器架構(gòu)的歷史吧。
Cray等公司在70年代就已經(jīng)開(kāi)始在自己的系統(tǒng)當(dāng)中使用64位寄存器,但真正純粹的64位計(jì)算直到90年代才真正到來(lái)。 首先是MIPS的R4000,然后是DEC的Alpha處理器。到90年代中期,英特爾和Sun都已經(jīng)擁有64位設(shè)計(jì)。而對(duì)于消費(fèi)者來(lái)說(shuō),真正的轉(zhuǎn)折點(diǎn)是 AMD在2003年發(fā)布了一款兼容英特爾32位x86處理器的64位PC處理器。
再向前快進(jìn)10年,PC銷(xiāo)量不斷下滑,大部分智能手機(jī)和平板電腦都擁有了主頻在1-2GHz之間的多核心處理器。但它們使用的都是32位架構(gòu),而非現(xiàn)代PC和服務(wù)器所使用的64位架構(gòu)。到現(xiàn)在為止,這都是可以接受的。智能手機(jī)并不會(huì)去和PC拼性能,這些處理器需要足夠節(jié)能,以實(shí)現(xiàn)續(xù)航的最大化。
但是,隨著設(shè)備的發(fā)展和新技術(shù)——語(yǔ)音識(shí)別、3D游戲和高分辨率顯示屏——逐漸普及,32位處理器的能力已經(jīng)漸漸被推到了極限。
ARM看到了64位節(jié)能處理器的需求,并在正式發(fā)布ARMv8-A架構(gòu)(首個(gè)包含64位指令集的ARM架構(gòu))之前就早早開(kāi)始了新設(shè)計(jì)的開(kāi)發(fā),還從其他選擇發(fā)展64位技術(shù)的芯片設(shè)計(jì)廠商那里學(xué)習(xí)到了經(jīng)驗(yàn)和教訓(xùn)。ARM的新款64位架構(gòu)具備對(duì)于旗下32位架構(gòu)的全面兼容,這意味著如果處理器運(yùn)行于64位系統(tǒng),它就可以運(yùn)行未修改的ARMv7 32位二進(jìn)制文件。對(duì)于Android來(lái)說(shuō),這意味著一旦內(nèi)核被移植到64位(多虧了Linaro,它們已經(jīng)如此了),系統(tǒng)的其余部分,從核心庫(kù)到應(yīng)用再到游戲,都是可以在32位或64位之間進(jìn)行切換的。
去年,蘋(píng)果憑借著iPhone 5s的全新64位A7處理器震驚了整個(gè)移動(dòng)領(lǐng)域。A7采用了蘋(píng)果設(shè)計(jì)的ARMv8雙核處理器,名為Cyclone。它使用了兩個(gè)64KB L1緩存(供兩個(gè)核心分別使用),一個(gè)1MB L2緩存(被兩個(gè)核心所分享)和一個(gè)4MB L3緩存(為整個(gè)SoC所用)。蘋(píng)果擁有ARM架構(gòu)授權(quán),這意味著它可以從頭開(kāi)始設(shè)計(jì)自己的處理器,但前提是這些處理器必須是ARM兼容的。ARM擁有一套測(cè)試套件,用以檢查這些處理器是否具備兼容性。
在未來(lái)幾個(gè)月里,我們將會(huì)看到高通、聯(lián)發(fā)科和三星紛紛推出自己的64位ARM處理器。再考慮到Android在64位化的努力,用不了多久我們就將看到運(yùn)行于64位Android系統(tǒng)的64位設(shè)備了。但對(duì)于開(kāi)發(fā)者和終端用戶來(lái)說(shuō),64位處理器意味著什么呢?
受益于ARM的64位架構(gòu)
每一部CPU的中心都是一套寄存器,他們都是用以存儲(chǔ)數(shù)字和地址的內(nèi)部存儲(chǔ)插槽。當(dāng)執(zhí)行復(fù)雜任務(wù)時(shí),這些插槽會(huì)被反復(fù)使用。如果所有的寄存器都處于占用狀態(tài),那么處理的唯一方式是將其中一個(gè)寄存器存儲(chǔ)在內(nèi)存當(dāng)中,使用寄存器進(jìn)行下一個(gè)任務(wù),然后再?gòu)膬?nèi)存當(dāng)中重新載入之前的值。對(duì)于人類(lèi)來(lái)說(shuō),這一切都發(fā)生在一瞬間。但對(duì)于處理器來(lái)說(shuō),這實(shí)際上是一個(gè)非常耗時(shí)的順序,并不十分效率。
32位ARMv7架構(gòu)擁有15個(gè)通用的寄存器,每一個(gè)都有32位寬。而ARMv8架構(gòu)擁有31個(gè)通用寄存器,每一個(gè)為64位寬。這就意味著優(yōu)化代碼使用內(nèi)部寄存器的頻率應(yīng)該要比內(nèi)存更高,同時(shí)也可以保留更大的數(shù)字和地址。結(jié)果就是,ARM的64位處理器在運(yùn)行速度上會(huì)更快一些。
在能效上面,64位寄存器的使用并不會(huì)提升功耗。在某些情況下,64位核心執(zhí)行部分任務(wù)的速度會(huì)更快一些,由于運(yùn)行時(shí)間的減少,這也就會(huì)使其顯得比32位核心更加節(jié)能。
尋址(Addressing)是64位處理器的另一個(gè)層面。在PC和服務(wù)器領(lǐng)域,32位的局限主要在可訪問(wèn)的內(nèi)存上。如果你想要使用超過(guò)4GB的內(nèi)存,就需要使用64位處理器。因?yàn)榭梢允褂么笪锢淼刂吠卣?LPAE),某些ARMv7處理器能夠使用超過(guò)4GB內(nèi)存,所以嚴(yán)格來(lái)講,內(nèi)存的限制并不是ARM處理器所遭遇的問(wèn)題。由于LPAE的存在,Cortex-A15處理器能夠處理1024GB內(nèi)存,而64位的處理能力更是高達(dá)200萬(wàn)TB。因此在短時(shí)間內(nèi),任何一部智能手機(jī)都不需要完整的64位尋址。追求永遠(yuǎn)都不會(huì)被用到的尋址空間是毫無(wú)意義的,因此ARMv8架構(gòu)采用了48位尋址,這已經(jīng)是256TB了。
雖然沒(méi)有什么程序或游戲會(huì)用到TB級(jí)別的內(nèi)存,但在另一方面,這種尋址能力又非常重要?,F(xiàn)代3D游戲通常都帶有大量的資源,當(dāng)擁有超過(guò)4GB的可訪問(wèn)空間時(shí),這些資源能夠被更加輕松地進(jìn)行內(nèi)存映射。這樣一來(lái),游戲的運(yùn)行速度會(huì)得到提升,并讓直接訪問(wèn)游戲多媒體資源成為可能。
不只是智能手機(jī)和平板
ARM上64位計(jì)算的好處并不僅限于智能手機(jī)和平板電腦。ARM的生態(tài)系統(tǒng)很廣闊,他們的處理器也被許多不同類(lèi)型的設(shè)備所使用。服務(wù)器市場(chǎng)是ARM處理器影響力有限的一個(gè)領(lǐng)域。信息時(shí)代的發(fā)展讓維持?jǐn)?shù)據(jù)中心所消耗的能源持續(xù)快速增長(zhǎng),而任何能夠降低能源使用的技術(shù)都是對(duì)于資金和自然資源的節(jié)省。除了節(jié)能之外,在服務(wù)器當(dāng)中使用64位ARM芯片還有其他的好處。這些服務(wù)器都會(huì)被動(dòng)散熱,這意味著你可以將它們集中在一起,而無(wú)需擔(dān)心會(huì)發(fā)生過(guò)熱的情況。這樣一來(lái),用于散熱上的花費(fèi)也將有所降低。
至于服務(wù)器軟件,Linux這樣的操作系統(tǒng)已經(jīng)是64位的了,其主線內(nèi)核當(dāng)中也已經(jīng)加入了對(duì)于ARMv8的支持。這也就是說(shuō),制作運(yùn)行于64位Linux、ARM處理器的服務(wù)器并不會(huì)很困難。
總結(jié)
多虧了ARM,64位的移動(dòng)計(jì)算時(shí)代就要到來(lái)了。這些新的處理器不僅速度更快,還為移動(dòng)平臺(tái)開(kāi)啟了更多的可能性。
從32位向64位的遷移道路已經(jīng)被鋪就,無(wú)論是什么操作系統(tǒng),開(kāi)發(fā)者從32位進(jìn)入64位都不會(huì)有任何意外。
在未來(lái)幾個(gè)月里,ARM的合作伙伴都將推出Cortex-A53和Cortex-A57處理器。當(dāng)中有的會(huì)采用雙核或四核的標(biāo)準(zhǔn)配置,也有的會(huì)選擇big.LITTLE配置。但有一點(diǎn)是肯定的,那就是這對(duì)于ARM和普通用戶來(lái)說(shuō)都是一個(gè)激動(dòng)人心的時(shí)刻。