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