作者:Arm 架構(gòu)與技術(shù)部產(chǎn)品管理總監(jiān) Martin Weidmann
Arm CPU 是當(dāng)今人工智能 (AI) 賦能軟件的關(guān)鍵,它可解釋、處理和執(zhí)行指令。Arm 指令集架構(gòu) (ISA) 作為硬件和軟件的接口,指示處理器做什么和怎么做。Arm ISA 持續(xù)演進(jìn)以滿足現(xiàn)代計(jì)算的需求,包括 AI 的興起、機(jī)器學(xué)習(xí) (ML) 和芯粒 (chiplet) 技術(shù)的使用,以及應(yīng)對高級安全威脅。持續(xù)創(chuàng)新確保了 Arm 架構(gòu)的普及性、普適性能、出色能效、安全性和開發(fā)者靈活性。
為了確保開發(fā)工作能緊跟快速發(fā)展的市場步伐,Arm 投入了大量時(shí)間來審視未來的計(jì)算需求,并與其龐大且獨(dú)特的生態(tài)系統(tǒng)明確其理解。在打造和發(fā)布更新的 ISA 時(shí),結(jié)合專業(yè)知識與反饋意見,以確保能有針對性地滿足需求。
此系列文章每年發(fā)布一次,概述了當(dāng)年度 Arm A 系列架構(gòu)的主要新增功能,并隨附完整的指令集和系統(tǒng)寄存器文檔,2024 年為 Armv9.6-A。
想要了解去年的架構(gòu)擴(kuò)展,可閱讀《Arm A 系列架構(gòu) 2023 擴(kuò)展》。接下來,就讓我們一同來了解今年的一些新增功能。
利用結(jié)構(gòu)化稀疏性和
四分塊操作提高 SME 效率
矩陣運(yùn)算用于加權(quán)特征和計(jì)算預(yù)測值,是當(dāng)今許多重要工作負(fù)載(包括 AI 和 ML)的基礎(chǔ)。Armv9-A 中的可伸縮矩陣擴(kuò)展 (SME) 大大提高了 Arm CPU 上矩陣乘法的處理速度和效率。借助 SME,可以同時(shí)對多個值進(jìn)行計(jì)算,數(shù)據(jù)整理和重用的效率更高,而且還支持更多的數(shù)據(jù)類型和更有效的數(shù)據(jù)壓縮。
SME 通過使用量化技術(shù),降低了 ML 模型的計(jì)算復(fù)雜度。這不僅減少了內(nèi)存需求,降低了能耗,還使模型可適用于移動設(shè)備。SME2 在量化方面又更進(jìn)一步,它為在 CPU 上運(yùn)行需要以吞吐量為導(dǎo)向操作的各類應(yīng)用引入了 Streaming 模式。2024 擴(kuò)展基于 SME2 構(gòu)建,新增了對 2:4 結(jié)構(gòu)化稀疏性 (structured sparsity) 和四分塊 (quarter tile) 操作的支持。
從四分塊操作開始,這些操作旨在提高 SME 處理小矩陣時(shí)的效率?,F(xiàn)有的 SME 運(yùn)算支持外積運(yùn)算,使用一對輸入向量來計(jì)算結(jié)果矩陣:
為了更好地支持較小的矩陣,四分運(yùn)算允許將輸入視為來自四個不同的矩陣:
2024 擴(kuò)展帶來的另一項(xiàng)改進(jìn)與稀疏性有關(guān)。在下面的示例中,一個包含激活數(shù)據(jù)的輸入矩陣與另一個包含權(quán)重的矩陣相乘。權(quán)重矩陣中的一些元素是未使用的(零),不會影響輸出。
這帶來了兩個效率低下的問題:
獲取不需要的數(shù)據(jù)
執(zhí)行不改變結(jié)果的乘法累加
新的結(jié)構(gòu)化稀疏性指令可以解決這以上兩個問題。在前面的例子中,權(quán)重可以用元數(shù)據(jù)標(biāo)簽進(jìn)行壓縮,它描述如何解壓縮數(shù)據(jù)。
這種方法的優(yōu)點(diǎn)是既能優(yōu)化權(quán)重的內(nèi)存占用,又能優(yōu)化獲取權(quán)重進(jìn)行處理所需的帶寬。權(quán)重可以在處理器中解壓縮,然后用于計(jì)算。不過,為了避免不必要的多重累積,新指令允許將壓縮數(shù)據(jù)直接用作輸入。
利用 MPAM Domain 支持芯粒
和多芯片 SoC 上的共享內(nèi)存系統(tǒng)
芯粒具有更高的系統(tǒng)可組合性和性能擴(kuò)展性,因此可適用于 AI 和加速計(jì)算。要想大規(guī)模采用芯粒技術(shù),互操作性必不可少,這需要通過芯粒接口和協(xié)議的標(biāo)準(zhǔn)化來實(shí)現(xiàn)。
Arm 正在通過旨在提供通用語言和降低碎片化風(fēng)險(xiǎn)的標(biāo)準(zhǔn),加速生態(tài)系統(tǒng)向基于芯粒的系統(tǒng)級芯片 (SoC) 演進(jìn)。Arm 的芯粒系統(tǒng)架構(gòu) (Chiplet System Architecture, CSA)將基于 Arm 架構(gòu)的系統(tǒng)劃分為多個芯粒,包括其高級屬性,以定義可標(biāo)準(zhǔn)化和復(fù)用的芯粒類型。AMBA CHI C2C 利用了現(xiàn)有的片上 AMBA CHI 協(xié)議,并定義了其打包方式,使其能夠在芯粒間傳輸。
這些舉措將加速向提供專用和可互操作芯粒的多供應(yīng)商市場發(fā)展。開放的芯粒市場將使 OEM 能夠?qū)崿F(xiàn)更高水平的定制和集成,而無需承擔(dān)開發(fā)和制造單芯片設(shè)計(jì)所帶來的成本。目前,芯粒的優(yōu)勢是通過垂直集成設(shè)計(jì)實(shí)現(xiàn)的。Armv9-A 的 2024 擴(kuò)展考慮了這種新的芯片方法以及如何在它們之間管理資源。
當(dāng)今的許多計(jì)算需求都是通過共享內(nèi)存計(jì)算機(jī)系統(tǒng)來獲得滿足的,在這些系統(tǒng)中,多個應(yīng)用或多個虛擬機(jī) (VM) 同時(shí)運(yùn)行。為支持此類系統(tǒng),Armv8.4-A 引入了內(nèi)存系統(tǒng)資源分區(qū)和監(jiān)控 (Memory System Resource Partitioning and Monitoring, MPAM) 擴(kuò)展。MPAM 可以控制對共享資源使用情況進(jìn)行監(jiān)控和分區(qū)。
MPAM 使用分區(qū)編號 (PARTID) 來識別每次內(nèi)存訪問與哪個軟件實(shí)體相關(guān)聯(lián)。該 PARTID 與內(nèi)存訪問一起傳輸,以便下游內(nèi)存系統(tǒng)組件 (MSC) 實(shí)施分區(qū)策略。
2024 年增加了 MPAM Domain,以更好地支持多芯粒和多芯片系統(tǒng)上的共享內(nèi)存計(jì)算機(jī)系統(tǒng)。MPAM Domain 允許系統(tǒng)的不同部分使用不同的 PARTID 命名空間,并在訪問跨越域邊界時(shí)進(jìn)行 PARTID 轉(zhuǎn)換。
整個系統(tǒng)無需具有統(tǒng)一的 PARTID 寬度,系統(tǒng)因而更容易組成。由于系統(tǒng)的每個部分都可以只支持所需數(shù)量的 PARTID,MPAM Domain 還有助于降低成本。
虛擬機(jī)上用于 Trace 和統(tǒng)計(jì)分析的
虛擬機(jī)管理程序內(nèi)存控制
Armv9-A 的 Trace(ETE 和 TRBE)和統(tǒng)計(jì)分析擴(kuò)展 (Statistical Profiling Extensions, SPE) 為開發(fā)者提供了了解軟件性能所需的信息,使其能最大限度地利用硬件平臺。
Trace 和 SPE 數(shù)據(jù)可以在系統(tǒng)運(yùn)行時(shí)以非侵入方式收集,數(shù)據(jù)寫入虛擬內(nèi)存中軟件分配的緩沖區(qū)。運(yùn)行虛擬機(jī)時(shí),重要的是這些緩沖區(qū)的內(nèi)存頁不能被虛擬機(jī)管理程序換出去,否則會丟失分析數(shù)據(jù)。同時(shí),通常也不希望虛擬機(jī)管理程序?qū)⑻摂M機(jī)的所有內(nèi)存都 Pin 進(jìn)來。
2024 擴(kuò)展為 TRBE 和 SPE 引入了虛擬機(jī)接口。這些接口允許虛擬機(jī)和虛擬機(jī)管理程序就分析緩沖區(qū)的大小和位置達(dá)成一致。這確保了虛擬機(jī)的分析數(shù)據(jù)不會丟失,同時(shí)允許虛擬機(jī)管理程序控制虛擬機(jī)內(nèi)存中需要 Pin 的內(nèi)存大小。
改進(jìn)緩存和數(shù)據(jù)放置
2024 的 A 系列擴(kuò)展引入了兩項(xiàng)增強(qiáng)功能,以提高緩存效率。第一個功能是生產(chǎn)者-消費(fèi)者數(shù)據(jù)放置提示。新的寫提示指令允許生產(chǎn)線程向處理器提示寫或原子操作的數(shù)據(jù)將被不同的線程使用。而對于消費(fèi)線程,則有一條新的預(yù)取指令,提示數(shù)據(jù)是由另一個線程生成的,可能還不存在。這些提示共同顯著提高了并行軟件的可擴(kuò)展性,增強(qiáng)了消息傳遞、鎖傳遞和線程 barrier 的性能。例如:
系統(tǒng)可能包括連接到不同高速緩存層次結(jié)構(gòu)級別的設(shè)備或加速器。例如,在下面的系統(tǒng)中,設(shè)備 A 可以訪問系統(tǒng)級高速緩存 (System Level Cache, SLC),而設(shè)備 B 則繞過 SLC。
為了讓設(shè)備 A 或設(shè)備 B 能夠看到數(shù)據(jù),CPU 上運(yùn)行的軟件需要將數(shù)據(jù)推送到內(nèi)存系統(tǒng)中。當(dāng)前,軟件會使用緩存操作將數(shù)據(jù)推送到一致性點(diǎn) (Point of Coherency, PoC),在示例系統(tǒng)中,一致性點(diǎn)位于 SLC 之外。這對設(shè)備 B 來說是正確的,但對設(shè)備 A 來說,將數(shù)據(jù)推送到 SLC 就足夠了。
2024 擴(kuò)展增加了針對 outer cache 的高速緩存維護(hù)操作。這為知道高速緩存拓?fù)浣Y(jié)構(gòu)的軟件提供了更大的靈活性,使開發(fā)者能夠根據(jù)使用該數(shù)據(jù)的設(shè)備的需求,將數(shù)據(jù)推送到系統(tǒng)的合適位置。
利用粒度數(shù)據(jù)隔離基于機(jī)密計(jì)算進(jìn)行構(gòu)建
Armv9-A 為開發(fā)者提供了編程工具和環(huán)境,使他們能夠在快速發(fā)展的 AI 市場中加快創(chuàng)新步伐。此類應(yīng)用所使用的模型和數(shù)據(jù)尤為寶貴,因此安全性至關(guān)重要。Arm 機(jī)密計(jì)算架構(gòu) (Confidential Compute Architecture, CCA) 利用硬件和軟件來保護(hù)使用中的數(shù)據(jù)和應(yīng)用。
Armv9.1-A 引入了機(jī)密領(lǐng)域管理擴(kuò)展 (Realm Management Extension, RME),在設(shè)備上創(chuàng)建了一個獨(dú)立的計(jì)算世界,用于運(yùn)行和保護(hù)應(yīng)用和數(shù)據(jù)。使用機(jī)密領(lǐng)域可以防止來自以更高權(quán)限級別運(yùn)行的軟件的攻擊。機(jī)密領(lǐng)域的內(nèi)容或進(jìn)程無法訪問。數(shù)據(jù)在使用、傳輸和復(fù)位時(shí)均保持加密。Armv9.4-A 引入了一項(xiàng)更新,使機(jī)密領(lǐng)域可以與加速器交互并保持其完整性。
粒度數(shù)據(jù)隔離 (Granular Data Isolation, GDI) 建立在 Armv9-A 的 RME 基礎(chǔ)之上,并增加了兩個新的物理地址空間 (Physical Address Space, PAS),可將內(nèi)存位置分配到這些空間:
非安全保護(hù) (Non-Secure Protected, NSP)
系統(tǒng)代理 (System Agent, SA)
這兩個新的 PAS 與現(xiàn)有選項(xiàng)的不同之處在于,處理器無法訪問它們。如此一來,軟件就可以將內(nèi)存緩沖區(qū)分配給其他設(shè)備,而硬件則維護(hù)這些緩沖區(qū)內(nèi)數(shù)據(jù)的機(jī)密性。例如,可信加速器可以使用 NSP PAS 來處理數(shù)據(jù),同時(shí)保證軟件無法訪問這些數(shù)據(jù)。
其他功能
2024 擴(kuò)展中引入的其他增強(qiáng)功能包括:
對 EL1 系統(tǒng)寄存器進(jìn)行位鎖定 (Bitwise Locking)。
針對大型內(nèi)存系統(tǒng)改進(jìn)了粒度保護(hù)表 (Granular Protect Tables, GPT) 的可伸縮性。
用于擴(kuò)展/壓縮和查找第一個/最后一個 active 元素的新 SVE 指令。
新增非特權(quán)讀取和存儲指令,使操作系統(tǒng)能與應(yīng)用內(nèi)存交互。
新的比較和分支指令。
從 EL3 注入 Undefined 指令異常。
新一代中斷控制器即將推出
通用中斷控制器 (Generic Interrupt Controller, GIC) 是 Arm A 系列系統(tǒng)的標(biāo)準(zhǔn)解決方案,在整個 Arm 生態(tài)系統(tǒng)中被廣泛使用。當(dāng)前版本 GICv3 和 GICv4 于 2013 年與 Armv8-A 一起推出。從那時(shí)起,系統(tǒng)的結(jié)構(gòu)和運(yùn)行工作負(fù)載都發(fā)生了變化。Arm 正在開發(fā)新版本的 GIC 架構(gòu),我們期待在 2025 年初分享預(yù)覽版。
總結(jié)
本文簡要介紹了 Arm 架構(gòu) Armv9.6-A 中的最新功能。在接下來的幾個月中,Arm 將與合作伙伴共同致力于確保軟件生態(tài)系統(tǒng)能夠在未來處理器上市后盡快利用這些功能。
-
處理器
+關(guān)注
關(guān)注
68文章
19647瀏覽量
232443 -
ARM
+關(guān)注
關(guān)注
134文章
9253瀏覽量
372684 -
寄存器
+關(guān)注
關(guān)注
31文章
5394瀏覽量
122444 -
AI
+關(guān)注
關(guān)注
87文章
33200瀏覽量
273443 -
人工智能
+關(guān)注
關(guān)注
1802文章
48319瀏覽量
243983
原文標(biāo)題:Armv9 技術(shù)講堂 | Arm A 系列架構(gòu) 2024 進(jìn)展
文章出處:【微信號:Arm社區(qū),微信公眾號:Arm社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
Arm下一代指令架構(gòu)“Armv9”已經(jīng)問世
ARM發(fā)布全新Cortex-A35處理器,ARMv8-A架構(gòu)全面進(jìn)軍移動和嵌入式市場
一文幫你梳理Cortex與ARMv8等基礎(chǔ)概念
Armv8-A構(gòu)架中Armv8.6-A引進(jìn)的最新功能介紹
ARM Compiler編譯器6.11的新功能都有哪些呢
介紹Armv8.6-A引進(jìn)的一些新功能的概況
一文詳解SIMD架構(gòu)與SVE2的演進(jìn)
Arm架構(gòu)的擴(kuò)展詳解
ARM體系結(jié)構(gòu)參考手冊ARMv7-A和ARMv7-R版本
ARM Cortex-A系列ARMv8-A程序員指南
重磅!Arm正式推出Armv9架構(gòu)

詳解ARM架構(gòu)和處理器系列命名規(guī)則

評論