0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Arm Helium技術(shù)誕生的由來 為何不直接采用Neon?

瑞薩MCU小百科 ? 來源:Arm社區(qū) ? 2024-02-29 17:01 ? 次閱讀

經(jīng)過 Arm 研究團(tuán)隊(duì)多年的不懈努力,Arm 于 2019 年推出了適用于 Armv8?M 架構(gòu)的 Arm Cortex-M 矢量擴(kuò)展技術(shù) (MVE)——Arm Helium 技術(shù)。起初,當(dāng)我們面臨 Cortex?M 處理器數(shù)字信號(hào)處理 (DSP) 性能亟待提升的需求時(shí),我們首先想到的是采用現(xiàn)有的 Neon 技術(shù)。

然而,面對(duì)典型的 Cortex?M 應(yīng)用的面積限制條件下又需要支持多個(gè)性能的需求,意味著我們?nèi)孕鑿念^開始。作為一種較輕的惰性氣體,以氦氣 (Helium) 作為研究項(xiàng)目的名稱似乎再合適不過了。該研究項(xiàng)目主要針對(duì)中端處理器,旨在實(shí)現(xiàn)數(shù)據(jù)路徑寬度增加兩倍的情況下將性能提高四倍,而這正與氦氣的原子量 (4) 和原子序數(shù) (2) 不謀而合。

最終,在許多數(shù)字信號(hào)處理 (DSP) 和機(jī)器學(xué)習(xí) (ML) 內(nèi)核上,我們成功地實(shí)現(xiàn)了提升四倍的目標(biāo)。毋庸置疑,“Helium” 已經(jīng)深入人心,成為 Cortex-M 處理器系列 MVE 的品牌名。

要想打造具備良好 DSP 性能的處理器,主要關(guān)鍵在于可為其提供足夠的數(shù)據(jù)處理帶寬。在 Cortex?A 處理器上,128 位 Neon 負(fù)載可以輕松地從數(shù)據(jù)緩存中直接提取。

但是,Cortex?M 處理器通常沒有緩存,而是使用低延遲靜態(tài)隨機(jī)存取存儲(chǔ)器 (SRAM) 作為主內(nèi)存。對(duì)于許多系統(tǒng)來說,無法將 SRAM 路徑(通常只有 32 位)拓寬到 128 位,因此導(dǎo)致面臨內(nèi)存操作停滯長(zhǎng)達(dá)四個(gè)周期的可能性。同樣,乘加 (MAC) 指令中使用的乘法器需要很大的面積,在小型 Cortex?M 處理器上使用四個(gè) 32 位乘法器是不切實(shí)際的。

就面積限制層面而言,最小的 Cortex-M 處理器與能夠亂序執(zhí)行指令且功能強(qiáng)大的 Cortex?A 處理器的大小可能相差幾個(gè)數(shù)量級(jí)。因此,在創(chuàng)建 M 系列架構(gòu)時(shí),我們必須認(rèn)真考慮充分利用每一個(gè) gate。

為了充分利用現(xiàn)有硬件,我們需要確保高成本資源(如通往內(nèi)存的連接和乘法器)在每個(gè)周期都保持同時(shí)繁忙的狀態(tài)。在高性能處理器(如 Cortex?M7)上,可以通過矢量 MAC 雙發(fā)射來達(dá)成這一目標(biāo)。

此外,還有一個(gè)重要的目標(biāo),即在一系列不同的產(chǎn)品上提高 DSP 性能,而不僅局限于高端產(chǎn)品上。想要解決以上這些問題,需要借鑒參考幾十年前的矢量鏈理念中的一些技術(shù)。

44d96f8c-d6ba-11ee-a297-92fbcf53809c.png

上圖顯示了在四個(gè)時(shí)鐘周期內(nèi)交替執(zhí)行的矢量負(fù)載 (VLDR) 和矢量 MAC (VMLA) 指令序列。這需要 128 位寬的內(nèi)存帶寬和四個(gè) MAC 塊,并且它們有一半時(shí)間處于空閑狀態(tài)。可以看到,每條 128 位寬的指令被分成大小相等的四個(gè)片段,MVE 架構(gòu)稱之為“節(jié)拍”(標(biāo)為 A 至 D)。無論元素大小如何,這些節(jié)拍始終是 32 位計(jì)算值,因此一個(gè)節(jié)拍可以包含一個(gè) 32 位 MAC,或四個(gè) 8 位 MAC。由于負(fù)載和 MAC 硬件是分開的,這些節(jié)拍的執(zhí)行可以重疊,如下圖所示。

44eae46a-d6ba-11ee-a297-92fbcf53809c.png

即使 VLDR 加載的值被隨后的 VMLA 使用,指令仍可以重疊。這是因?yàn)?VMLA 的節(jié)拍 A 只依賴于上一個(gè)周期發(fā)生的 VLDR 的節(jié)拍 A,因此節(jié)拍 A 和 B 與節(jié)拍 C 和 D 便會(huì)自然重疊。在這個(gè)例子中,我們可以獲得與 128 位數(shù)據(jù)帶寬處理器相同的性能,但硬件數(shù)量只有后者的一半?!肮?jié)拍式”執(zhí)行的概念可以高效地實(shí)施多個(gè)性能點(diǎn)。例如,下圖顯示了只有 32 位數(shù)據(jù)帶寬的處理器如何處理相同的指令。這一點(diǎn)充滿吸引力,因?yàn)樗苁箚伟l(fā)射標(biāo)量處理器的性能翻倍(在八個(gè)周期內(nèi)對(duì)八個(gè) 32 位值加載和執(zhí)行 MAC),但卻沒有雙發(fā)射標(biāo)量指令那樣的面積和功耗需求。

44fdfff0-d6ba-11ee-a297-92fbcf53809c.png

MVE 支持?jǐn)U展到每周期四拍的實(shí)現(xiàn)方式,此時(shí)節(jié)拍式執(zhí)行將簡(jiǎn)化為更傳統(tǒng)的 SIMD 方法。這有助于在高性能處理器上保持可控的實(shí)現(xiàn)復(fù)雜度。

節(jié)拍式執(zhí)行聽起來很不錯(cuò),但也會(huì)給架構(gòu)的其他部分帶來一些值得關(guān)注的挑戰(zhàn)。

由于多條部分執(zhí)行的指令可以同時(shí)運(yùn)行,因此中斷和故障處理可能會(huì)變得相當(dāng)復(fù)雜。例如,如果上圖中 VLDR 的節(jié)拍 D 出現(xiàn)故障,通常情況下,實(shí)施必須回滾 VMLA 的節(jié)拍 A 在上一周期對(duì)寄存器文件的寫入。我們的理念是讓每個(gè) gate 都物盡其用,而在回滾的情況下緩沖舊數(shù)據(jù)值與這一理念相悖。

為了避免這種情況,處理器會(huì)針對(duì)異常情況存儲(chǔ)一個(gè)特殊的 ECI 值,用于指示已經(jīng)執(zhí)行了后續(xù)指令的哪些節(jié)拍。在異常返回時(shí),處理器便以此來確定要跳過哪些節(jié)拍。能夠快速跳出指令而無需回滾或等待指令完成,基于此保持 Cortex-M 具備的快速和確定性中斷處理能力。

如果指令會(huì)跨越節(jié)拍邊界,我們又會(huì)遇到時(shí)間跨越問題。這種交叉行為通常出現(xiàn)在拓寬/縮窄運(yùn)算中。Neon 架構(gòu)中的 VMLAL 指令就是一個(gè)典型的例子,它可以將 32 位值矢量乘加到 64 位累加器中。遺憾的是,為了保持乘法器輸出的完整范圍,通常需要進(jìn)行這類拓寬運(yùn)算。MVE 使用通用的 “R” 寄存器文件來處理累加器,從而解決了這一問題。

此外,這樣還減少了對(duì)矢量寄存器的寄存壓力,使 MVE 只需使用 Neon 架構(gòu)中一半的矢量寄存器就能獲得良好的性能。在矢量架構(gòu)中,通常不會(huì)像 MVE 一樣廣泛使用通用的寄存器文件,因?yàn)榧拇嫫魑募c矢量單元相距甚遠(yuǎn)。在亂序執(zhí)行指令的高性能處理器上尤為如此,因?yàn)槲锢砭嚯x過大會(huì)限制性能。不過,正因如此,我們恰恰能夠?qū)⒌湫?Cortex?M 處理器的較小規(guī)模特性轉(zhuǎn)化為我們的優(yōu)勢(shì)。

為確保重疊執(zhí)行達(dá)到良好的平衡且無停滯,每條指令都應(yīng)嚴(yán)格描述 128 位的工作,不能多也不能少。由此也會(huì)帶來一些挑戰(zhàn)。

憑借研究員們辛勤不懈的努力,以及充分參考架構(gòu)書籍中所涉的所有內(nèi)容,MVE 成功地將一些非??量痰墓?、面積和中斷延遲限制轉(zhuǎn)化為優(yōu)勢(shì)。




審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 處理器
    +關(guān)注

    關(guān)注

    68

    文章

    19100

    瀏覽量

    228807
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5294

    瀏覽量

    119814
  • sram
    +關(guān)注

    關(guān)注

    6

    文章

    762

    瀏覽量

    114592
  • 數(shù)字信號(hào)處理

    關(guān)注

    15

    文章

    553

    瀏覽量

    45762
  • 乘法器
    +關(guān)注

    關(guān)注

    8

    文章

    204

    瀏覽量

    36941

原文標(biāo)題:Helium技術(shù)講堂 | 為何不直接采用Neon?

文章出處:【微信號(hào):瑞薩MCU小百科,微信公眾號(hào):瑞薩MCU小百科】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    實(shí)際項(xiàng)目開發(fā)中為何選擇ARM? Cortex?-M4 內(nèi)核的HK32MCU?

    深圳市航順芯片技術(shù)研發(fā)有限公司(以下簡(jiǎn)稱“航順芯片”)攜手立創(chuàng)商城為電子工程師帶來了一場(chǎng)酣暢淋漓的產(chǎn)品選型解密直播。期間,航順芯片資深應(yīng)用技術(shù)專家EddieYang與觀眾分享了關(guān)于ARM
    的頭像 發(fā)表于 10-22 17:19 ?293次閱讀
    實(shí)際項(xiàng)目開發(fā)中<b class='flag-5'>為何</b>選擇<b class='flag-5'>ARM</b>? Cortex?-M4 內(nèi)核的HK32MCU?

    TPA3255 Vmid為何不設(shè)置為7V的一半3.5V,而要設(shè)置為6V?

    問題1. 參考設(shè)計(jì)運(yùn)放Vmid加電壓是因?yàn)檩斎敕秶?0.3V-7V? 問題2. Vmid為何不設(shè)置為7V的一半3.5V,而要設(shè)置為6V?這樣是不是輸入信號(hào)最高1Vpp? 問題3. B點(diǎn)到底該不該
    發(fā)表于 10-12 06:59

    Arm如何賦能無處不在的AI

    作為人工智能 (AI) 的創(chuàng)新基礎(chǔ),眾多企業(yè)都在使用通用且應(yīng)用廣泛的 Arm 計(jì)算平臺(tái)。迄今為止,合作伙伴基于 Arm 架構(gòu)的芯片出貨量已逾 2,800 億顆。如今,Arm 已為各類技術(shù)
    的頭像 發(fā)表于 09-14 09:38 ?408次閱讀

    TPA3110與TPA3255在PBTL模式下的電路輸出接法為何不一致?

    如題,請(qǐng)教下,TPA3110與TPA3255在PBTL模式下的電路輸出接法為何不一致? 1. TPA3255:PBTL模式,out1與out3連接,out2與out4連接。這個(gè)我的理解就相當(dāng)于單獨(dú)
    發(fā)表于 08-08 07:23

    RA8 Cortex-M85 Helium入門指南(2)

    這里介紹的是Helium的匯編語言指令集,雖然大部分程序員不會(huì)直接使用這些指令,而是通過C語言或者高級(jí)語言編程實(shí)現(xiàn)
    的頭像 發(fā)表于 05-15 14:31 ?1192次閱讀
    RA8 Cortex-M85 <b class='flag-5'>Helium</b>入門指南(2)

    Zynq-7000為何不是FPGA?

    Zynq-7000可擴(kuò)展處理平臺(tái)是采用賽靈思新一代FPGA(Artix-7與Kintex-7FPGA)所采用的同一28nm可編程技術(shù)的最新產(chǎn)品系列。
    發(fā)表于 04-26 11:30 ?1046次閱讀
    Zynq-7000<b class='flag-5'>為何不</b>是FPGA?

    業(yè)界首款基于Arm Cortex-M85處理器的MCU

    所有RA8系列MCU均利用Arm Cortex-M85處理器和ArmHelium技術(shù)所帶來的高性能,結(jié)合矢量/SIMD指令集擴(kuò)展,能夠在數(shù)字信號(hào)處理器(DSP)和機(jī)器學(xué)習(xí)(ML)的實(shí)
    發(fā)表于 03-05 14:14 ?595次閱讀
    業(yè)界首款基于<b class='flag-5'>Arm</b> Cortex-M85處理器的MCU

    Arm Helium技術(shù)為端點(diǎn)設(shè)備引入更多智能

    RA8系列是瑞薩電子推出的全新超高性能產(chǎn)品業(yè)界首款基于Arm? Cortex?-M85處理器的MCU,能夠提供卓越的6.39 CoreMark/MHz,可滿足工業(yè)自動(dòng)化、家電、智能家居、消費(fèi)電子、樓宇/家庭自動(dòng)化、醫(yī)療等廣泛應(yīng)用的各類圖形顯示和語音/視覺多模態(tài)AI要求。
    的頭像 發(fā)表于 02-27 13:41 ?449次閱讀

    ARM中的編碼方式與尋址方式有何不同?

    ARM中的編指方式與尋址方式有何不同? ARM處理器是一種廣泛應(yīng)用的微處理器架構(gòu),被廣泛用于移動(dòng)設(shè)備、嵌入式設(shè)備以及智能家居等領(lǐng)域。在ARM架構(gòu)中,編碼方式和尋址方式是兩個(gè)關(guān)鍵概念,它
    的頭像 發(fā)表于 01-29 18:10 ?620次閱讀

    如何克服Amdahl定律的影響呢?

    在前幾篇文章中,我們介紹了采用 Arm Helium 技術(shù)(也稱為 MVE)的 Armv8.1-M 架構(gòu)如何處理矢量指令。
    的頭像 發(fā)表于 01-12 14:30 ?706次閱讀
    如何克服Amdahl定律的影響呢?

    Arm Cortex-M52的主要特性和規(guī)格

    Arm Cortex-M52是一款采Arm Helium 技術(shù)的新型微控制器內(nèi)核,旨在將AI功能引入更小、成本更低的物聯(lián)網(wǎng)設(shè)備,而不是基于Arm
    的頭像 發(fā)表于 01-02 11:12 ?1301次閱讀
    <b class='flag-5'>Arm</b> Cortex-M52的主要特性和規(guī)格

    Arm Helium技術(shù)誕生由來

    當(dāng)人工智能 (AI) 下沉到各式各樣的應(yīng)用當(dāng)中,作為市場(chǎng)上最大量的物聯(lián)網(wǎng)設(shè)備也將被賦予智能性。Arm Helium 技術(shù)正是為基于 Arm Cortex-M 處理器的設(shè)備帶來關(guān)鍵機(jī)器學(xué)
    的頭像 發(fā)表于 12-22 14:36 ?856次閱讀
    <b class='flag-5'>Arm</b> <b class='flag-5'>Helium</b><b class='flag-5'>技術(shù)</b><b class='flag-5'>誕生</b>的<b class='flag-5'>由來</b>

    Arm發(fā)布新品瞄準(zhǔn)低功耗AIoT市場(chǎng) MCU迎來升級(jí)

    針對(duì)AI應(yīng)用的低成本處理器——Arm Cortex-M52。此處理器采用Arm Helium矢量處理技術(shù)并在
    的頭像 發(fā)表于 12-08 11:40 ?423次閱讀
    <b class='flag-5'>Arm</b>發(fā)布新品瞄準(zhǔn)低功耗AIoT市場(chǎng) MCU迎來升級(jí)

    ARM NEON在矩陣&amp;向量計(jì)算中的加速概述

    NEONARM上使用的一種SIMD(Single Instruction Multiple Data – 單指令多數(shù)據(jù))指令集。
    的頭像 發(fā)表于 12-01 10:37 ?1995次閱讀
    <b class='flag-5'>ARM</b> <b class='flag-5'>NEON</b>在矩陣&amp;向量計(jì)算中的加速概述

    Arm 擴(kuò)展 Cortex-M 產(chǎn)品組合,將人工智能引入超小型端點(diǎn)設(shè)備

    全新 Arm Cortex-M52 是采用Arm Helium 技術(shù)中面積最小且面積能效與成本效益極為優(yōu)異的處理器,可為更低成本的物聯(lián)網(wǎng)
    發(fā)表于 11-24 15:37 ?919次閱讀