瑞薩電子在2023年10月底推出強大的RA8系列MCU,具備突破性的3000 CoreMark,并可滿足客戶應用所需的完全確定性、低延遲及實時操作要求。RA8系列MCU同時也是業界首款采用Arm Cortex-M85處理器的產品,能夠提供卓越的6.39 CoreMark/MHz性能——這一性能水平將使系統設計人員能夠使用RA MCU替代應用中常用的微處理器(MPU)。全新系列產品是廣受歡迎的基于Arm Cortex-M處理器的RA產品家族中的一員。此外,為其它RA產品構建的現有設計可以輕松移植到新型RA8 MCU上。
新型RA8系列MCU部署了Arm Helium技術,即Arm的M型矢量擴展單元(M-profile Vector Extension——MVE)。MVE是ARM v8.1M架構中非常重要的一部分。目前ARM v8.1M架構下的內核包括Cortex-M52、Cortex-M55、Cortex-M85三種。下面的表格Arm Cortex-M Processor Comparison Table詳細展示了從Armv6到Armv8.1M內核之間的不同。可以容易地發現,Cortex-M85是目前性能最強的Arm Cortex-M內核MCU。
Arm v8.1-M架構是Arm v8-M架構的擴展版本。除了新的矢量指令集架構(Helium)以外,還有幾個其他新特性:
循環和分支增強的附加指令集(低開銷分支擴展,Low Overhead Branch Extension)。
支持半精度浮點指令。
調試功能增強,包括性能監測單元(Performance Monitoring Unit,PMU)和針對信號處理應用程序開發的調試附加功能支持。
用于FPU的TrustZone管理增強指令集。
非特權調試擴展。
內存保護單元(Memory Protection Unit,MPU)提供了一個新的內存屬性,即“特權模式下永不執行”(Privileged eXecute Never,PXN)的屬性。這允許當CPU處于特權模式下時阻止執行任意代碼,而這些代碼可能已經寫入了用戶空間。這是一個重要的安全特性。
可靠性、可用性及可維護性(Reliability,Availability and Serviceability,RAS)擴展。
引入Helium是為了在Cortex-M內核MCU上實現更高效的DSP類和機器學習操作。它和Cortex-A內核MPU中Neon有很多相似之處。Neon和Helium都使用FPU中的寄存器作為矢量寄存器。兩者都使用128位向量,并且許多向量處理指令對于兩種體系結構都是通用的。
然而,Helium是一種全新的設計,可在小型處理器中實現高效的信號處理性能。它為嵌入式用例提供了許多新的架構功能,因為它針對面積(成本)和功耗進行了優化,為M-Profile架構帶來了類似Neon的功能(Cortex-A的SIMD注指令)。Helium經過優化,可有效利用較小Cortex-M內核中的所有可用硬件。下表詳細給出了Helium和Neon之間的對比信息。
Helium與Neon對比表
注:SIMD(Single Instruction Multiple Data)即單指令多數據,表示在該硬件中的多個處理單元中可以同時對多個數據項執行相同的操作,也就是說,CPU可以同時執行并行計算,但只有一個指令正在執行。這是數據級的并行。
目前有許多系統將Cortex-M處理器和專用可編程的DSP處理器結合來使用。Helium允許這樣的系統只用一個處理器來實現。這樣做有如下優點:
從軟件開發的角度來看,它允許使用單個工具鏈,而不是分別對CPU和DSP使用各自的編譯器和調試器。這就意味著程序員只需要熟悉一種架構。
消除了對處理器間通信的需求,這點可能非常重要,因為要對實時交互的兩個運行時處理器中的不同軟件進行調試既困難也耗時。
Cortex-M系列的CPU相比專用DSP而言,更易于編程。
在硬件設計層面,使用一個處理器(而不是兩個處理器)可以簡化系統,從而減少芯片面積和成本,并縮短開發周期。
在詳細介紹Helium之前,我們現在來聊聊標量和矢量的概念。
數學和物理世界中的觀點
標量是一個只要大小的量
- 比如純數字,質量,速率,溫度,體積等
矢量是一個有大小而且有方向的量
- 比如速度,加速度,位移,重力,摩擦力等
計算機科學世界中的觀點
標量(處理器)是一次性處理一個數據元素的處理器。
- 通常用來處理通用的計算任務,如文字處理和電子表格。
- 功耗低,價格便宜。
矢量(處理器)是一次性對多組數據(每組一般為兩個數據)成批地進行同樣的運算,得到一批結果的處理器。如一次將100個加數與100個被加數相加,同時得到100個和的運算。
- 對于圖像,視頻,音頻數據處理等需要并行處理大量數據的任務特別有用。
- 也可用于科學計算,加速復雜算法的處理。
- 功耗高,價格稍高。
Helium寄存器、數據類型和通道
Helium寄存器是128位的,一共有8個Helium寄存器,寄存器數量不可修改。它和浮點單元(FPU)共同使用。在FPU中使用S0~S31來訪問32個單精度(32位)寄存器,同樣的硬件寄存器也可看做16個雙精度(64位)寄存器D0~D15。例如,D0和S0、S1共用64位相同的硬件寄存器。
在Helium架構中,Helium使用8個矢量寄存器Q0~Q7。這就意味著,Helium寄存器Q0和S0~S3、D0~D1浮點寄存器使用相同的物理寄存器,Q1和S4~S7、D2~D3浮點寄存器使用相同的物理寄存器,其他Helium寄存器以此類推。因為Helium寄存器重用了標量FPU寄存器,所以當發生異常時無須使用額外的資源去保存和恢復這些寄存器(同樣不影響中斷延遲)。
每個Helium寄存器都可以劃分為8位,16位,32位寬的通道。每個通道可以被一條指令看作:
整型數值(8/16/32位寬)
定點飽和值(Q7/Q15/Q31)
浮點數值(半精度FP16/單精度FP32)
下圖是一個矢量寄存器相加的示例。Helium寄存器q5和q0都是8個int16的元素數據(8個通道),將他們相加的結果存在q0中。
Helium允許矢量中的每個通道有條件地執行,這稱作通道預測。矢量預測狀態和控制寄存器(VPR)保存每個通道的條件值。某些矢量指令(比如矢量比較VCMP)可以改變VPR中的條件值,當這些條件值被設置好以后,接下來就可以使用VPT(矢量條件預測)指令,以每個通道為基礎在矢量預測中實現條件執行。
審核編輯:劉清
-
處理器
+關注
關注
68文章
19259瀏覽量
229651 -
dsp
+關注
關注
553文章
7987瀏覽量
348745 -
嵌入式
+關注
關注
5082文章
19104瀏覽量
304799 -
機器學習
+關注
關注
66文章
8406瀏覽量
132561 -
Cortex-M85
+關注
關注
0文章
13瀏覽量
539
原文標題:RA8 Cortex-M85 Helium入門指南(1)
文章出處:【微信號:瑞薩MCU小百科,微信公眾號:瑞薩MCU小百科】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論