亚洲国产成人av在线观看,777米奇色狠狠狠888影视,一二三四在线视频观看社区,小荡货奶真大水真多紧视频

【ARM】FPU,VFP,ASE,NEON,SVE...是什么意思?

1、 文檔目標(biāo)

對執(zhí)行浮點和SIMD操作的邏輯的各種名稱的縮寫詞進行簡要解釋。


2、 問題場景

Arm處理器內(nèi)核中有用于執(zhí)行浮點和SIMD操作的邏輯,有各種名稱。它們通常是一系列的縮寫形式,因此本文旨在對每一個縮寫詞進行簡要解釋。


3、軟硬件環(huán)境

1、軟件版本:不涉及

2、電腦環(huán)境:不涉及


4、相關(guān)縮寫

FPU (Floating-Point Unit) 浮點單元

浮點單元是處理器核心中的一個模塊,用于使用 浮點數(shù) 執(zhí)行算術(shù)運算。并非所有處理器都需要這個模塊,因此一些處理器可以選擇進行配置。

如果配置在內(nèi)核中將定義FPU的工作方式及其支持的指令。

如果配置 FPU,則通常仍然可以執(zhí)行浮點運算,只是速度較慢,因為這些運算將需要使用軟件子程序來執(zhí)行。不同的浮點單位支持不同大小的浮點數(shù),因此對于某些處理器來說,無論它們只支持單精度值或是雙精度值,這都是可配置的選項。


VFP (Vector Floating Point) 矢量浮點

之所以被稱為“矢量”浮點,是因為不僅對處理浮點數(shù)的支持,而且還支持將浮點數(shù)作為SIMD運算的矢量處理。在這種情況下“向量”是將多個數(shù)據(jù)項打包到一個更大的數(shù)據(jù)容器中(例如,連續(xù)存儲在單個寄存器中的多個獨立值)。這是Armv8之前Arm體系結(jié)構(gòu)浮點擴展的名稱。

在Armv7體系結(jié)構(gòu)中,不推薦使用VFP擴展來處理矢量中的浮點數(shù),因為此功能已被“高級SIMD”擴展所取代。有不同版本的VFP(VFPv1、VFPv2、VFPv3、VFPv4)引入了對新功能和數(shù)據(jù)類型的支持。VFPv2是Armv5和Armv6架構(gòu)的擴展,VFPv3和VFPv4是Armv7架構(gòu)的擴展。


ASE (Advanced SIMD Extension) 高級SIMD擴展

這是對Armv7體系結(jié)構(gòu)的擴展,使用整數(shù)或浮點數(shù)的矢量來支持額外的SIMD操作。與VFP擴展類似,高級SIMD擴展也有幾個版本(高級SIMDv1、半精度高級SIMD和高級SIMDv2),它們添加了額外的功能并支持更多的數(shù)據(jù)類型。

雖然體系結(jié)構(gòu)擴展是“高級SIMD擴展”,但用于此功能的產(chǎn)品名稱是NEON。這兩個名字指的是同一件事。

對于Armv8A體系結(jié)構(gòu),矢量SIMD操作的處理包含在默認體系結(jié)構(gòu)中,因此高級SIMD不再被視為擴展。它仍然被稱為NEON,預(yù)計將出現(xiàn)在所有標(biāo)準v8-A處理器內(nèi)核中,盡管從架構(gòu)上講,內(nèi)核可能不包括它。


NEON

“NEON”是Armv7和Armv8 Cortex-A和Cortex-R處理器的高級SIMD功能所使用的產(chǎn)品名稱。

不同處理器上的NEON(/ASE)支持可以采取不同的形式。基本功能相同,即允許對整數(shù)或浮點數(shù)執(zhí)行SIMD操作。所用矢量的大小、矢量的數(shù)量和支持的浮點數(shù)的類型都可能因所實現(xiàn)的內(nèi)容而異。


MPE (Media Processing Engine) 媒體處理引擎

用于Armv7A處理器Cortex-A5、Cortex-A7和Cortex-A9上的高級SIMD邏輯的名稱。它通常被稱為“NEON媒體處理引擎”,它是處理器中實現(xiàn)ASE/NEON支持的部分的另一個名稱。


SVE (Scalable Vector Extension) 可伸縮矢量擴展

SVE是Armv8-A體系結(jié)構(gòu)的擴展,此擴展僅在AArch64模式中受支持,它添加了額外的寄存器以支持更大的矢量、額外的指令和其他功能。包括SVE要求處理器核心也包括對NEON的支持。

以前對SIMD操作的支持使用的向量對數(shù)據(jù)項具有固定大小——例如,Armv7-a Advanced SIMD使用十六個128位數(shù)據(jù)項或三十二個64位數(shù)據(jù)項。

SVE的優(yōu)點是它有32個矢量寄存器,大小可達2048位,但所用矢量的大小可以通過軟件控制。這就是為什么它是“可伸縮”矢量擴展——矢量的大小可以在運行時縮放到不同的大小,而不是由處理器的實現(xiàn)決定的。

以前版本的SIMD支持(例如NEON)要求處理的數(shù)據(jù)與處理器實現(xiàn)的向量的大小相對應(yīng)。SVE允許在操作過程中更改矢量數(shù)據(jù)的大小,而無需重寫或重新編譯代碼,從而更容易編寫可以使用SIMD操作處理數(shù)據(jù)的軟件。

SVE2是SVE的更新版本,主要區(qū)別在于支持附加指令。這是為了讓它能夠在更廣泛的應(yīng)用中加速更多的算法。


SME (Scalable Matrix Extension) 可伸縮矩陣擴展

SME是Armv9-A體系結(jié)構(gòu)的擴展,該體系結(jié)構(gòu)建立在可擴展向量擴展(SVE和SVE2)的基礎(chǔ)上,以增加對矩陣處理的支持。這包括許多新指令以及處理器的新操作模式——矩陣運算。


CME (Compute Matrix Engine) 計算矩陣引擎

計算矩陣引擎是執(zhí)行可擴展矩陣擴展(SME)操作邏輯的名稱。CME的設(shè)計使得在多個處理元件(PE)上執(zhí)行的指令可以共享功能,其中“PE”是我們通常稱之為集群內(nèi)核心的架構(gòu)術(shù)語。


MVE ( M-profile Vector Extension) M-型矢量擴展

專門用于Armv8-M體系結(jié)構(gòu),它提供對各種SIMD操作的支持。類似于NEON作為A級高級SIMD擴展的產(chǎn)品名稱,“Helium”是用于M-配置文件矢量擴展的產(chǎn)品名。

MVE有兩種變體,MVE-I和MVE-F。MVE-I僅支持整數(shù)矢量,MVE-F支持浮點數(shù)矢量。在處理器核心中包含MVE-F還要求處理器支持MVE-I和浮點擴展。


VPU (Vector Processing Unit) 矢量處理單元

對于Arm-v9A架構(gòu)的處理器核心,VPU是處理器內(nèi)部的單元,可以包含高級SIMD、浮點運算(單精度或雙精度)、SVE和SVE2以及密碼擴展的邏輯。VPU可以在兩個處理器核心之間共享,這兩個核心在一個更大的集群中共同形成一個雙核“復(fù)合體”。