加入星計(jì)劃,您可以享受以下權(quán)益:

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

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

2022/06/30
1.6萬(wàn)
閱讀需 9 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

FPU(Floating-Point Unit)

浮點(diǎn)運(yùn)算單元是處理器內(nèi)部用于執(zhí)行浮點(diǎn)數(shù)計(jì)算的邏輯部件。因?yàn)椴⒉皇撬械奶幚砥鞫夹枰邆湓摴δ?,所以一些處理器?shí)現(xiàn)的時(shí)候可以配置為包含或不包含該部件。

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

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

VFP(Vector Floating Point)

“VFP”表示的是向量浮點(diǎn)運(yùn)算單元,并且也是在ARMv8架構(gòu)之前已經(jīng)出現(xiàn)了的浮點(diǎn)運(yùn)算擴(kuò)展單元的名稱(chēng)。ARM架構(gòu)默認(rèn)并不支持向量浮點(diǎn)運(yùn)算運(yùn)算,因此相關(guān)的定義與實(shí)現(xiàn)都是通過(guò)架構(gòu)的VFP擴(kuò)展提供的。

之所以稱(chēng)為“向量”浮點(diǎn)是因?yàn)樵贏RMv6及以前這個(gè)擴(kuò)展不只是用于增加浮點(diǎn)數(shù)計(jì)算處理,同時(shí)也用于類(lèi)似向量的SIMD浮點(diǎn)數(shù)計(jì)算處理。在本文中,“向量”用于表示對(duì)打包成單個(gè)大數(shù)據(jù)集的一項(xiàng)乘法運(yùn)算(例如把多個(gè)獨(dú)立的數(shù)值合并存儲(chǔ)到一個(gè)寄存器內(nèi)相乘)。

在ARMv7架構(gòu)中,這種使用VFP來(lái)處理向量浮點(diǎn)數(shù)據(jù)的方式不建議采用,相關(guān)的功能可以使用“先進(jìn)SIMD擴(kuò)展”來(lái)替代。

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

ASE(Advanced SIMD Extension)

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

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

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

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

NEON

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

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

有關(guān)于NEON指令的更多信息可以從這里獲得。

MPE

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

SVE

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

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

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

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

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

有關(guān)于SVE指令的更多信息可以從這里獲得,類(lèi)似的SVE2指令的更多信息可以從這里獲得。

SME

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

有關(guān)SME指令的更多信息可以從這里獲得。

MVE

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

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

有關(guān)MVE指令的更多信息可以從這里獲得。

推薦器件

更多器件
器件型號(hào) 數(shù)量 器件廠(chǎng)商 器件描述 數(shù)據(jù)手冊(cè) ECAD模型 風(fēng)險(xiǎn)等級(jí) 參考價(jià)格 更多信息
ATXMEGA192D3-MH 1 Atmel Corporation RISC Microcontroller, 16-Bit, FLASH, AVR RISC CPU, 32MHz, CMOS, 9 X 9 MM, 1 MM HEIGHT, 0.50 MM PITCH, GREEN, MO-220VMMD, MLF-64
$5.62 查看
LPC4357FET256,551 1 NXP Semiconductors LPC4357FET256 - Dual-core Cortex-M4/M0, 1 MB Flash, 136 kB SRAM, 2 HS USB with on-chip PHY, Ethernet, LCD, CAN, AES, SPIFI, SGPIO, SCT BGA 256-Pin

ECAD模型

下載ECAD模型
$15.87 查看
MK70FN1M0VMJ12R 1 Freescale Semiconductor 32-BIT, FLASH, 120MHz, RISC MICROCONTROLLER, PBGA256, 17 X 17 MM, MAPBGA-256
暫無(wú)數(shù)據(jù) 查看
Arm

Arm

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

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

查看更多

相關(guān)推薦

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

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