自Arm在2011年10月首次發(fā)布Armv8架構(gòu)以來,已經(jīng)過去了近十年的時間。這對Arm來說是一個相當(dāng)可觀的十年,因為在這段時間內(nèi),他們的指令集架構(gòu)受到移動市場和服務(wù)器市場的高度關(guān)注,并鉚足勁在包括筆記本電腦和臺式機(jī)設(shè)備市場發(fā)力。過去多年里,Arm對ISA進(jìn)行了改進(jìn),也對體系結(jié)構(gòu)進(jìn)行了各種更新和擴(kuò)展。當(dāng)中一些可能很重要,有些可能也是一瞥而過。
今天,作為Arm的Vision Day活動的一部分,該公司正式發(fā)布了該公司的新一代Armv9架構(gòu)的首個細(xì)節(jié),為Arm未來十年內(nèi)成為下一個3000億芯片的計算平臺奠定了基礎(chǔ)。
讀者可能會問的一個大問題是,Armv9與Armv8究竟有何不同,能讓架構(gòu)獲得如此大的提升。確實,從純粹的ISA角度來看,v9可能不像v8相比v7那樣實現(xiàn)根本性的跳躍,后者引入了AArch64,一個完全不同的執(zhí)行模式和指令集,該指令集與AArch32相比具有更大的微體系結(jié)構(gòu)分支,例如擴(kuò)展寄存器,64位虛擬地址空間和更多改進(jìn)。
Armv9繼續(xù)使用AArch64作為基準(zhǔn)指令集,但是在其功能上增加了一些非常重要的擴(kuò)展,以保證architecture numbering的增加,并且允許Arm不僅可以獲得對AArch64進(jìn)行某種軟件重新基準(zhǔn)化v9的新功能,還能保持我們多年來在v8上獲得的擴(kuò)展。
Arm認(rèn)為新架構(gòu)Armv9有三個主要支柱,即安全性、AI以及改進(jìn)的矢量和DSP功能。對于v9,安全性是一個非常重要的主題,我們將深入探討新擴(kuò)展和功能的新細(xì)節(jié),但是首先談到的DSP和AI功能應(yīng)該很簡單。
新的Armv9兼容CPU所承諾的最大的新功能可能是開發(fā)人員和用戶可以立即看到的——SVE2作為NEON的后繼產(chǎn)品。
可伸縮矢量擴(kuò)展(SVE)的于2016年首次亮相,并首次在富士通的A64FX CPU內(nèi)核中實現(xiàn),該芯片已為日本排名第一的超級計算機(jī)Fukagu提供支持。SVE的問題在于,新的可變矢量長度SIMD指令集的第一次迭代的范圍相當(dāng)有限,并且更多地針對HPC工作負(fù)載,缺少了許多仍由NEON涵蓋的更通用的指令。
SVE2于2019年4月發(fā)布,旨在通過用所需指令補(bǔ)充新的可擴(kuò)展SIMD指令集來解決此問題,以服務(wù)于類似DSP等目前仍在使用NEON的工作負(fù)載。
除了增加的各種現(xiàn)代SIMD功能外,SVE和SVE2的優(yōu)勢還在于其可變的向量大小,范圍覆蓋了128b到2048b,讓其無論在什么硬件運(yùn)行,都允許向量的可變粒度為128b。如果純粹從向量處理和編程的角度來看,這意味著軟件開發(fā)人員將只需要編譯一次其代碼,并且如果將來某個CPU帶有本地的512b SIMD execution pipelines,該代碼將能夠充分利用單元的整個寬度。同樣,相同的代碼將能夠在具有較低硬件執(zhí)行寬度能力的保守設(shè)計上運(yùn)行,這對于Arm設(shè)計從物聯(lián)網(wǎng)、移動到數(shù)據(jù)中心的CPU而言至關(guān)重要。在保留Arm體系結(jié)構(gòu)的32b編碼空間的同時,它還可以完成所有這些工作。然而類似X86這樣的架構(gòu)則需要根據(jù)矢量尺寸增加新的指令和擴(kuò)展。
機(jī)器學(xué)習(xí)也被視為Armv9的重要組成部分,因為Arm認(rèn)為在未來幾年中,越來越多的ML工作負(fù)載將變得司空見慣,當(dāng)中包括了對性能或電源效率有至關(guān)重要要求的場景中。那就讓在專用加速器上運(yùn)行ML工作負(fù)載變成長久的需要,與此同時,我們還會繼續(xù)在CPU上運(yùn)行較小范圍的ML工作負(fù)載。
矩陣乘法指令(Matrix multiplication instructions )是此處的關(guān)鍵,它將代表生態(tài)系統(tǒng)中將更大范圍采用v9 CPU作為基本功能所邁出的重要一步。
通常,我認(rèn)為SVE2可能是保證升級到v9的最重要因素,因為它是更確定的ISA功能,可以在日常使用中與v8 CPU區(qū)別開來,并且可以保證軟件生態(tài)系統(tǒng)能夠正常運(yùn)行,這與現(xiàn)有的v8堆棧有所不同。對于服務(wù)器領(lǐng)域的Arm來說,這實際上已經(jīng)成為一個相當(dāng)大的問題,因為軟件生態(tài)系統(tǒng)仍在基于v8.0的軟件包基礎(chǔ)上,不幸的是,該軟件包缺少了最重要的v8.1大型系統(tǒng)擴(kuò)展。
使整個軟件生態(tài)系統(tǒng)向前發(fā)展,并假設(shè)新的v9硬件具有新的體系結(jié)構(gòu)擴(kuò)展功能,這將有助于推動事情發(fā)展,并可能解決某些當(dāng)前情況。
但是,v9不僅涉及SVE2和新指令,它還非常注重安全性,在安全性方面我們將看到一些更根本的變化。
介紹機(jī)密的計算架構(gòu)
在過去的幾年中,安全性和硬件安全性漏洞已成為芯片行業(yè)的頭等大事,Spectre,Meltdown等漏洞的出現(xiàn)及其所有同級邊信道攻擊都表明,重新思考如何保證安全成為了一個基本需求。Arm希望用來解決這一總體問題的方法是通過引入Arm機(jī)密計算體系結(jié)構(gòu)(Arm Confidential Compute Architecture:CAA)來重新設(shè)計安全應(yīng)用程序的工作方式。
在繼續(xù)之前,我想提箱一下,今天的披露僅僅是對新CCA運(yùn)作方式的高層次解釋,Arm說,有關(guān)新安全機(jī)制的確切工作原理的更多細(xì)節(jié)將在今年夏天的晚些時候公布。
CCA的目標(biāo)是從當(dāng)前的軟件堆棧情況中獲得更大的收益,在當(dāng)前的軟件堆棧情況下,在設(shè)備上運(yùn)行的應(yīng)用程序必須固有地信任它們所運(yùn)行的操作系統(tǒng)和虛擬機(jī)管理程序。傳統(tǒng)的安全模型是基于以下事實建立的:更高特權(quán)的軟件層被允許查看較低層的執(zhí)行,然而當(dāng)操作系統(tǒng)或系統(tǒng)管理程序被以任何方式損害時,這就可能成為了一個問題。
CCA引入了動態(tài)創(chuàng)建“”realms“的新概念,可以將其視為對OS或虛擬機(jī)管理程序完全不透明的安全容器化執(zhí)行環(huán)境。系統(tǒng)管理程序?qū)⑷匀淮嬖?,但僅負(fù)責(zé)調(diào)度和資源分配。而”realm“將由稱為”ealm manager“的新實體管理,其被認(rèn)為是一段新的代碼,大致大小約為hypervisor的1/10。
realm內(nèi)的應(yīng)用程序?qū)⒛軌颉弊C明“領(lǐng)域管理器以確定其是否可信任,這對于傳統(tǒng)的虛擬機(jī)管理程序而言是不可能的。
Arm并沒有深入探討究竟是什么造成了realm與操作系統(tǒng)和虛擬機(jī)管理程序的非安全世界之間的這種隔離,但聽起來確實像硬件支持的地址空間,但它們無法相互交互。
使用realms的優(yōu)勢在于,它極大地減少了設(shè)備上運(yùn)行的給定應(yīng)用程序的信任鏈,并且OS對安全性問題變得越來越透明。與當(dāng)今需要企業(yè)或企業(yè)使用帶有授權(quán)軟件堆棧的專用設(shè)備的情況相反,需要監(jiān)督控制的關(guān)鍵任務(wù)應(yīng)用程序?qū)⒛軌蛟谌魏卧O(shè)備上運(yùn)行。
MTE(memory tagging extensions)并不是v9的新功能,而是隨v8.5一起引入的,MTE或內(nèi)存標(biāo)記擴(kuò)展旨在幫助解決世界軟件中兩個最持久的安全問題。緩沖區(qū)溢出(Buffers overflows)和無用后使用(use-after-free)是持續(xù)的軟件設(shè)計問題,在過去的50年中,這些問題一直是軟件設(shè)計的一部分,并且可能需要花費(fèi)數(shù)年的時間才能對其進(jìn)行識別或解決。MTE旨在通過在分配時標(biāo)記指針并在使用時進(jìn)行檢查來幫助識別此類問題。
未來的Arm CPU路線圖
這與v9沒有直接關(guān)系,但是與即將到來的v9設(shè)計的技術(shù)路線圖緊密相關(guān),Arm還談到了有關(guān)他們在未來2年中對v9設(shè)計的預(yù)期性能的一些觀點(diǎn)。
Arm談到了移動市場在今年如何將帶有X1的設(shè)備性能提升了2.4倍(此處我們僅指ISO流程設(shè)計的IPC),該性能是幾年前推出的Cortex-A73的兩倍。
有趣的是,Arm還談到了Neoverse V1設(shè)計及其如何達(dá)到A72類似設(shè)計性能的2.4倍,并透露他們期待著他今年晚些時候發(fā)布的首批V1設(shè)備。
對于代號為” Matterhorn“和” Makalu“的下一代移動IP內(nèi)核,該公司公開了這兩代產(chǎn)品的合計預(yù)期IPC增益為30%,其中不包括SoC設(shè)計人員可以獲得的頻率或任何其他其他性能增益。這實際上代表著這兩種新設(shè)計的世代增加了14%,并且如幻燈片中的性能曲線所示,這表明相對于自A76以來Arm在過去幾年所管理的工作而言,改進(jìn)的步伐正在放緩。不過,該公司指出,進(jìn)步速度仍然遠(yuǎn)遠(yuǎn)超過行業(yè)平均水平。但潭門也坦言,這被一些行業(yè)參與者拖累了。
Arm還提供了一張很有意思的幻燈片,該幻燈片旨在關(guān)注系統(tǒng)側(cè)對性能的影響,而不僅僅是CPU IP性能。從這里提供的一些數(shù)據(jù)可以看到,例如每5ns的內(nèi)存延遲中有1%的性能,這是我們現(xiàn)在已經(jīng)廣泛討論了幾代的數(shù)字,但是Arm在這里還指出,排除了是否通過改善內(nèi)存路徑,增加緩存或優(yōu)化頻率功能來改善實現(xiàn)的其他各個方面,他們可以使用整整一代的CPU性能提升,我認(rèn)為這是對SoC供應(yīng)商當(dāng)前保守方法的一種評價,這些方法沒有充分利用X1內(nèi)核的預(yù)期性能余量,并且隨后也未達(dá)到新內(nèi)核的預(yù)期性能預(yù)測。
Arm繼續(xù)將CPU視為未來最通用的計算模塊。盡管專用的加速器或GPU將會占有一席之地,但它們很難解決一些重要問題,例如可編程性,保護(hù)性,普遍性(本質(zhì)上是在任何設(shè)備上運(yùn)行它們的能力)以及經(jīng)過驗證的正常工作的能力。當(dāng)前,計算生態(tài)系統(tǒng)在運(yùn)行方式上極為分散,不僅設(shè)備類型不同,而且設(shè)備供應(yīng)商和操作系統(tǒng)也不同。
SVE2和Matrix乘法可以極大地簡化軟件生態(tài)系統(tǒng),并允許計算工作負(fù)載以更統(tǒng)一的方法向前邁進(jìn),該方法將來將可以在任何設(shè)備上運(yùn)行。
最后,Arm還分享了有關(guān)Mali GPU未來的新信息,并透露該公司正在開發(fā)VRS等新技術(shù),尤其是Ray Tracing。這一點(diǎn)令人非常令人驚訝,也表明AMD和Nvidia引入RT推動的臺式機(jī)和控制臺生態(tài)系統(tǒng)也有望將移動GPU生態(tài)系統(tǒng)推向RT。
Armv9設(shè)計即將在2022年初面世
今天的公告以一種非常高級的形式出現(xiàn),我們希望Arm在接下來的幾個月中,在公司通常的年度技術(shù)披露中,更多地談?wù)揂rmv9的各種細(xì)節(jié)和新功能,例如CCA。
總的來說,Armv9似乎是更基本的ISA轉(zhuǎn)變(可以看作SVE2)與軟件生態(tài)系統(tǒng)的總體重新基準(zhǔn)的結(jié)合,以匯總v8擴(kuò)展的最后十年,并為下一個十年奠定基礎(chǔ)Arm體系結(jié)構(gòu)。
Arm于去年下半年已經(jīng)談?wù)撨^Neoverse V1和N2,我確實希望N2至少最終是基于v9而設(shè)計發(fā)布的。Arm進(jìn)一步透露,更多基于Armv9的 CPU設(shè)計(可能是移動端Cortex-A78和X1的后續(xù)產(chǎn)品)將于今年推出,而新的CPU可能已經(jīng)被通常的SoC供應(yīng)商所采用,并且有望成為在2022年初在商用設(shè)備中出現(xiàn)。