Arm的下一代CPU指令集架構(gòu)(ISA:指令集架構(gòu))“ Armv9”開始推出。該公司正在逐步擴展當前的ISA“ Armv8”,而擴展的高潮最終將成為Armv9的搭建橋梁。至于Armv9,一位CPU行業(yè)人士表示,安全性增強是最重要的關(guān)鍵。Arm在Armv8.3之后的階段擴展中專注于安全性,并被視為邁向Armv9的一步。
Arm的指令集架構(gòu)的發(fā)展對于當前的IT行業(yè)至關(guān)重要。這是因為高性能CPU的指令集體系結(jié)構(gòu)幾乎被x86 / x64和Arm兩個系統(tǒng)所壟斷。對于移動和嵌入式應(yīng)用程序,Arm是最大的力量。即使不使用Arm本身的CPU內(nèi)核IP,Apple的A系列SoC的CPU內(nèi)核和Qualcomm的Snapdragon SoC的Kryo內(nèi)核也符合Arm的指令集。Arm的指令集體系結(jié)構(gòu)更改會影響許多計算設(shè)備。
該公司在2011年使用Armv8將CPU ISA 64位化,同時極大地改變了架構(gòu) 使用AArch64(一種智能且有條理的64位體系結(jié)構(gòu)),并對ISA進行了重新分區(qū),然后重新開始。在Armv8基礎(chǔ)之上,Arm目前正在建立擴展指令。擴展從三個方向進行:虛擬化和RAS等服務(wù)器的系統(tǒng)擴展,深度學(xué)習(xí)的計算擴展以及安全性擴展。
此外,Arm還發(fā)布了未來CPU體系結(jié)構(gòu)擴展的方向。引入事務(wù)性內(nèi)存以擴展CPU內(nèi)核數(shù)量,增加了用于車載的功能安全功能,支持用于深度學(xué)習(xí)的矩陣運算,針對矢量市場中的某些市場將矢量擴展到256位。
它還允許獲得Arm許可的客戶將自定義指令合并到Arm指令集中。定制指令從用于嵌入式用途的Cortex-M開始,但也正在考慮將其部署到實時的Cortex-R和計算的Cortex-A中。到目前為止,Arm尚未允許被許可方添加自定義指令,以防止破壞CPU指令集體系結(jié)構(gòu)。Cortex-A類中的自定義說明將謹慎進行,以免造成干擾??蛻糇远x指令的引入旨在與允許客戶自定義指令的RISC-V指令集體系結(jié)構(gòu)相反。
不斷升級的Armv8-A指令集
Arm CPU當前的指令集架構(gòu)是第8代“ Armv8”。即使具有相同的Armv8名稱,它也會按CPU配置文件分為ISA系列的三種類型?!?Armv8-A”用于高性能CPU“ Cortex-A”系列,“ Armv8-R”用于實時CPU“ Cortex-R”系列,“ Armv8-M”用于嵌入式MCU“ Cortex-M”系列,每個配置文件都有不同的指令集。
此外,對指令集進行了較小的升級。用于高性能CPU的Armv8-A在小數(shù)點后也有一個版本。從Armv8.1-A開始,十進制版本每年都會增加“ .1”,現(xiàn)在宣布了Armv8.6-A。Armv8.6-A是ISA在2019年的擴展,Armv8.5-A是2018年,Armv8.4-A是2017年。
傳統(tǒng)上,當出現(xiàn)新的Arm ISA小數(shù)點版本時,新的小數(shù)點版本幾乎同步地添加到Arm自己的CPU核心IP中。但這不是現(xiàn)在。Arm的高端CPU核心IP“ Cortex-A77” ISA版本為Armv8.2-A。下一個內(nèi)核Hercules也是Armv8.2-A。實際上,自2015年Armv8.2-A起,CPU核心IP ISA版本就沒有增加。
Apple CPU內(nèi)核幾乎沒有Armv8.3-A。已經(jīng)發(fā)布了過去幾年的Armv8.x,但尚未在CPU上完全實現(xiàn)。這這種情況有些復(fù)雜。首先,ISA版本和CPU實施ISA版本名稱之間存在關(guān)聯(lián)。每個Armv8.x一代ISA版本都包含多個功能。使用Arm ISA,如果您具有特定世代的所有功能,則可以首次聲明該版本。
例如,如果實現(xiàn)了Armv8.2-A的所有功能,它將成為Armv8.2-A CPU。但是,除了Armv8.0-A的基本功能之外,如果僅實現(xiàn)Armv8.2-A功能的一部分,它將成為Armv8.0-A CPU而不是Armv8.2-A CPU。
在實際的核心IP示例中,Cortex-A77實現(xiàn)了Armv8.2-A之前的所有功能,但僅實現(xiàn)了Armv8.3-A和Armv8.4-A的某些功能。因此,ISA版本是Armv8.2-A CPU。完全裝有Armv8.4-A的CPU內(nèi)核尚未出現(xiàn)。由于該功能的“旋鈕”,無法滿足Armv8 ISA的升級條件,并且版本無法升級。
但是,這種情況將在不久的將來改變。Arm CPU內(nèi)核是下一代“ Matterhorn”,并且可以立即實現(xiàn)Armv8.6-A的許多功能。 Matterhorn是該指令集的主要里程碑。Arm將 Matterhorn的CPU代號規(guī)則從當前的希臘神話更改為Yamana名稱,而且還切換了CPU體系結(jié)構(gòu)以及代號。 Matterhorn可能是“ Armv9之前的CPU”。
過去兩年中,Arv8.x指令擴展集中在安全性擴展上
過去,隨著分階段添加功能,Arm的指令集是在Arm的CPU核心IP中同步實現(xiàn)的。但是,自Armv8.2-A以來,它的實施并不順利,新功能的積累也有所重疊。因此,如前所述,CPU內(nèi)核的ISA版本似乎未從Armv8.2-A升級。
剩下這么多的原因是什么?它與Armv8.2-A及更高版本功能的內(nèi)容有關(guān)。最后三代的Armv8.x擴展專注于安全性。特別是,Armv8.4-A和8.5-A主要是與安全相關(guān)的擴展。
從Meltdown和Spectre開始,這是為了處理CPU微體系結(jié)構(gòu)上的安全性問題。2017年,CPU廠商出現(xiàn)了側(cè)面通道攻擊類型Meltdown和Spectre。因此,在過去幾年中,開發(fā)高性能CPU的供應(yīng)商(包括Intel和AMD以及Arms)一直致力于將安全功能集成到CPU體系結(jié)構(gòu)和微體系結(jié)構(gòu)中。
就Arm而言,高度依賴Arm平臺的Google已成為重要的合作伙伴,并在架構(gòu)上采取了先進的安全措施。它內(nèi)置在最新的ISA十進制版本中,例如Armv8.4-A(2017)和Armv8.5-A(2018)。
如果您查看上面每個Armv8.xA版本中的新功能,則可以看到對安全性的偏愛。在該圖中,SIMD / FP(浮點)算術(shù)系統(tǒng)功能以綠色顯示,安全功能以紫色顯示,系統(tǒng)和內(nèi)存功能以卡其色顯示。安全功能從Armv8.3-A開始,并隨著Armv8.4-A / Armv8.5-A迅速增加。
重點再次從安全轉(zhuǎn)向深度學(xué)習(xí)
側(cè)通道攻擊問題極大地改變了高性能CPU架構(gòu)的發(fā)展。在此之前,您只需要實現(xiàn)一種良好的加速技術(shù),但是在Meltdown / Spectre之后,您現(xiàn)在需要檢查該技術(shù)是否存在安全問題。并且已經(jīng)有必要將用于邊信道攻擊的基本安全功能整合到體系結(jié)構(gòu)/微體系結(jié)構(gòu)中。
自2017年中以來,高性能CPU供應(yīng)商一直在努力解決此問題。除Arm之外,包括Intel和AMD在內(nèi)的所有高性能CPU供應(yīng)商的當前目標是完善一種可免受側(cè)通道攻擊的體系結(jié)構(gòu)。
Armv8-A指令集的演變清楚地表明了這種情況。Arm正在遷移到Matterhorn,其安全擴展由Armv8.5-A分隔。因此,下一個指令擴展Armv8.6-A不是偏向于安全性,而是專注于深度學(xué)習(xí)。
Arm在Armv8.2-A中支持FP16(16位半精度浮點算術(shù)),在Armv8.4-A中支持8位點積指令。其加強了對CPU的SIMD(單指令,多數(shù)據(jù))操作的深度學(xué)習(xí)支持。Armv8.6-A進一步支持矩陣運算和BFloat16,以加強對深度學(xué)習(xí)的興趣。將矩陣運算和BFloat16帶入CPU的原因之一是支持邊緣側(cè)訓(xùn)練。支持在中間邊緣進行輕度訓(xùn)練,而不是在云側(cè)進行繁重訓(xùn)練。
本文由電子發(fā)燒友翻譯自pc.watch
-
ARM
+關(guān)注
關(guān)注
134文章
9084瀏覽量
367382 -
cpu
+關(guān)注
關(guān)注
68文章
10854瀏覽量
211578 -
指令集
+關(guān)注
關(guān)注
0文章
222瀏覽量
23378
發(fā)布評論請先 登錄
相關(guān)推薦
評論