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