加入星計劃,您可以享受以下權益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴散
  • 作品版權保護
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
  • 推薦器件
  • 相關推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

ARM技術雜談:何謂FPU、VFP、ASE、NEON、MPE、SVE、SME以及MVE

09/29 11:09
14萬
閱讀需 9 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

FPU(Floating-Point Unit)

浮點運算單元是處理器內(nèi)部用于執(zhí)行浮點數(shù)計算的邏輯部件。因為并不是所有的處理器都需要具備該功能,所以一些處理器實現(xiàn)的時候可以配置為包含或不包含該部件。

如果處理器包含了該運算部件那么表現(xiàn)形式就取決于ARM架構的定義, 要么是作為處理器架構里面定義好的一部分,要么是作為處理器基礎架構之外的擴展。浮點運算部件除了滿足IEEE754標準,另外也會定義相關的FPU工作方式以及相對應的指令集。即便處理器里面并沒有包含F(xiàn)PU單元,也仍然可以使用軟件的方式來執(zhí)行相關的浮點計算,但是使用軟件完成這些運算跟使用硬件FPU相比會慢許多。

不同的浮點運算單元支持不同大小的浮點數(shù)據(jù)類型,所以對于一些處理器來說可以配置為僅支持單精度浮點數(shù)或者是單、雙精度浮點數(shù)均支持。

VFP(Vector Floating Point)

“VFP”表示的是向量浮點運算單元,并且也是在ARMv8架構之前已經(jīng)出現(xiàn)了的浮點運算擴展單元的名稱。ARM架構默認并不支持向量浮點運算運算,因此相關的定義與實現(xiàn)都是通過架構的VFP擴展提供的。

之所以稱為“向量”浮點是因為在ARMv6及以前這個擴展不只是用于增加浮點數(shù)計算處理,同時也用于類似向量的SIMD浮點數(shù)計算處理。在本文中,“向量”用于表示對打包成單個大數(shù)據(jù)集的一項乘法運算(例如把多個獨立的數(shù)值合并存儲到一個寄存器內(nèi)相乘)。

在ARMv7架構中,這種使用VFP來處理向量浮點數(shù)據(jù)的方式不建議采用,相關的功能可以使用“先進SIMD擴展”來替代。

VFP有多個不同的版本 (VFPv1, VFPv2, VFPv3, VFPv4)用來支持不同的特性與數(shù)據(jù)類型。VFPv2用于ARMv5和ARMv6架構擴展,VFPv3與VFPv4用于ARMv7架構擴展使用。

ASE(Advanced SIMD Extension)

“ASE”是“先進SIMD擴展”的英文首字母縮寫。它是ARMv7架構上用于提供額外SIMD運算的擴展,既可以使用整數(shù)(即INT整型),也可以使用浮點數(shù)。

同VFP擴展相似,先進SIMD擴展也有多個版本(Advanced SIMDv1、半精度Advanced SIMD以及Advanced SIMDv2)用來支持不同的特性與數(shù)據(jù)類型。

盡管架構上的擴展是“先進SIMD擴展”,但實際用于描述這個特性的產(chǎn)品名為“NEON”。這兩個名稱代表的是相同的部件。

對于ARMv8A架構中,在默認的架構上包含了對向量SIMD運算的處理所以先進SIMD擴展也不再認為是一種擴展。它仍然作為NEON并且呈現(xiàn)在所有標準的ARMv8-A處理器核心中,因此在某些架構的核心上可能不包括它。.

NEON

如上面簡短的提及,“NEON”是用于ARMv7和ARMv8 Cortex-A與Cortex-R處理器的先進SIMD功能的產(chǎn)品名稱。

需要注意的是NEON(或ASE)的支持在不同處理器上可能有不同的形式呈現(xiàn),但基本的功能都是一樣的,也就是說,它允許在整數(shù)或者浮點數(shù)據(jù)執(zhí)行SIMD運算。 所使用的向量大小、向量的數(shù)量、所支持的浮點數(shù)類型等都取決于其具體的實現(xiàn)。

有關于NEON指令的更多信息可以從這里獲得。

MPE

MPE(Media Processing Engine)是一些ARMv7A處理器當中先進SIMD部件使用的名稱:Cortex-A5、Cortex-A7以及Cortex-A9。它通常也被稱作“NEON MPE”或者“NEON多媒體處理引擎”,它也是處理器實現(xiàn)ASE/NEON支持后的別稱。

SVE

SVE(Scalable Vector Extension)如前面所提到的,ARMv8-A架構已經(jīng)包含了“先進SIMD”支持,用于提供SIMD向量處理能力。SVE是ARMv8-A架構的一種擴展,它表示的是可變向量擴展。

這個擴展只在AArch64模式下支持使用,它提供了額外的寄存器來支持更大向量、額外的指令以及其它的特性。如果要包含SVE則需要處理器核心對NEON提供支持。

之前支持SIMD運算使用的是固定大小的數(shù)據(jù)項,比如ARMv7-A先進SIMD使用16個128位的數(shù)據(jù)項或者32個64位的數(shù)據(jù)項。而SVE的好處是它擁有的32個向量寄存器可以并成一個2048位的大小,而且向量的大小是可以通過軟件來控制的。這也就是為何它叫做“可變”向量擴展—向量的大小可以在運行中調(diào)整為不同大小,且這個特性并不隨處理器實現(xiàn)而改變。

之前版本的SIMD支持(比如NEON)需要將數(shù)據(jù)提前處理成處理器實現(xiàn)的向量運算所對應的大?。ㄟ@類數(shù)據(jù)通常也稱作“已調(diào)節(jié)”數(shù)據(jù))。SVE允許向量數(shù)據(jù)的大小在運算過程中被改變,無需重寫或重新編譯代碼,使得它更加容易實現(xiàn)那些處理SIMD運算的軟件開發(fā)。

SVE2是SVE更新后的版本,主要區(qū)別在于附加了更多的指令支持。這樣就使得它可以在更寬的應用范圍加速更多的算法。

有關于SVE指令的更多信息可以從這里獲得,類似的SVE2指令的更多信息可以從這里獲得。

SME

SME(Scalable Matrix Extension)是ARMv9-A架構提供的建立在可變向量擴展(SVE和SVE2)上增加了對矩陣處理支持。它包含了一定數(shù)量的新指令,相當于處理器的新模式—這個模式用于執(zhí)行矩陣運算,并且這也使得它在處理矩陣運算以及常規(guī)的SVE SIMD運算時更容易使用不同的向量大小。

有關SME指令的更多信息可以從這里獲得。

MVE

MVE(M-profile Vector Extension)是ARMv8-M架構專用的,它提供了大量對SIMD運算的支持。跟NEON作為A-系列先進SIMD擴展的產(chǎn)品名字一樣,“Helium”則是M-profile Vector Extension的產(chǎn)品名稱。

MVE可以分為2大類,MVE-I和MVE-F。MVE-I僅對整型向量提供支持,MVE-F則對浮點數(shù)據(jù)向量提供支持。要包含MVE-F那么處理器核心就需要支持MVE-I以及浮點擴展。

有關MVE指令的更多信息可以從這里獲得。

推薦器件

更多器件
器件型號 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊 ECAD模型 風險等級 參考價格 更多信息
ATXMEGA128A3U-AU 1 Microchip Technology Inc IC MCU 8BIT 128KB FLASH 64TQFP

ECAD模型

下載ECAD模型
$8.03 查看
ATXMEGA128A4U-CU 1 Microchip Technology Inc IC MCU 8BIT 128KB FLASH 49VFBGA

ECAD模型

下載ECAD模型
$5.69 查看
MC9S08PA16AVTJ 1 NXP Semiconductors MICROCONTROLLER
$2.56 查看
Arm

Arm

ARM公司是一家知識產(chǎn)權(IP)供應商,主要為國際上其他的電子公司提供高性能RISC處理器、外設和系統(tǒng)芯片技術授權。目前,ARM公司的處理器內(nèi)核已經(jīng)成為便攜通訊、手持計算設備、多媒體數(shù)字消費品等方案的RISC標準。公司1990年11月由Acorn、Apple和VLSI合并而成。

ARM公司是一家知識產(chǎn)權(IP)供應商,主要為國際上其他的電子公司提供高性能RISC處理器、外設和系統(tǒng)芯片技術授權。目前,ARM公司的處理器內(nèi)核已經(jīng)成為便攜通訊、手持計算設備、多媒體數(shù)字消費品等方案的RISC標準。公司1990年11月由Acorn、Apple和VLSI合并而成。收起

查看更多

相關推薦

電子產(chǎn)業(yè)圖譜

主要關注HPC、AI、RISC-V等領域,科技行業(yè)從業(yè)二十余載。洞悉前沿科技,擅長戰(zhàn)略規(guī)劃。