1.記憶體保護單元MPU
與Cortex - M3的相同,MPU是一個Cortex - M4中用於記憶體保護的可選組件。處理器支援標準ARMv7記憶體保護系統結構模型。您可以使用在MPU執行 特權/訪問 規則,或者獨立的進程。這個MPU提供全面支援:
·保護區
·重疊保護地區,提升地區優先順序(7 =最高優先順序,0 =最低優先順序)
·存取權限
·將儲存空間屬性輸出至系統
2 .DSP能力
圖表展示了處理器運行在相同的速度下Cortex - M3和Cortex - M4在數字訊號處理能力方面的相對效能比較。
在下面的數字,Y軸代表執行給出的計算用的相對的周期數。 因此,迴圈數越小,效能越好。以Cortex - M3作為參考,Cortex - M4的效能計算,效能比大概為其周期計數的倒數。舉例說明,PID功能,Cortex
- M4的周期數是與Cortex - M3的約0.7倍,因此相對效能是1/0.7,即1.4倍。
Cortex - M系列16位迴圈計數功能
Cortex
- M系列32位迴圈計數功能
這很清楚的表明,Cortex
- M4在數字訊號處理方面對比Cortex - M3的16位或32位操作有著很大的優勢。
Cortex-M4執行的所有的DSP指令集都可以在一個周期完成,Cortex - M3需要多個指令和多個周期才能完成的等效功能。即使是PID演算法——通用DSP運算中最耗費資源的工作,Cortex - M4也能提供了一個1.4倍的效能得改善 。另一個例子,MP3解碼在Cortex-M3需要20-25Mhz,而在Cortex-M4隻需要10-12MHz。
1. 32位乘法累加(MAC)
32位乘法累加(MAC)包括新的指令集和針對Cortex - M4硬體執行單元的最佳化它是能夠在單周期內完成一個 32
× 32 + 64 - > 64 的操作 或 兩個16 × 16 的操作。如下表列出了這個單元的計算能力。
2. SIMD
Cortex - M4支援SIMD指令集,這在上一代的Cortex - M系列是停用。上述表中的指令,有的屬於SIMD指令。與硬體乘法器一起工作(MAC),使所有這些指令都能在單個周期內執行。受益於SIMD指令的支援,Cortex - M4處理器是能在單周期完成高達32 × 32 + 64 - >64的運算,為其他任務釋放處理器的頻寬, 而不是被乘法和加法消耗運算資源。考慮以下複雜的算術運算,其中兩個16 × 16乘法加上一個32位加法,被編譯成由一個單一指令執行:SUM = SUM +(A* C)+(B
*D)
3.FPU
FPU是Cortex - M4浮點運算的可選單元。因此它是一個專用於浮點任務的單元。這個單元通過硬體提升效能,能處理單精確度浮點運算,並與IEEE 754標準 相容。這完成了ARMv7 - M架構單精確度變數的浮點擴充。FPU擴充了寄存器的程式模型與包含32個單精確度寄存器的寄存器檔案。這些可以被看作是:
·16個64位雙字寄存器,D0 - D15
·32個32位單字寄存器,S0 - S31 該FPU提供了三種模式運作,以適應各種應用
·全相容模式(在全相容模式,FPU處理所有的操作都遵循IEEE754的硬體標準)
·Flush-to-zero 沖洗到零模式(設定FZ位浮點狀態和控制寄存器FPSCR [24]到flush-to-zero 模式。在此模式下,FPU 在運算中將所有不正常的輸入運算元的算術CDP操作當做0.除了當從零運算元的結果是合適的情況。VABS,VNEG,VMOV 不會被當做算術CDP的運算,而且不受flush-to-zero 模式影響。結果是微小的,就像在IEEE 754 標準的描述的那樣,在目標精度增加的幅度小於四捨五入後最低正常值,被零取代。IDC的標誌位,FPSCR [7],表示當輸入Flush時變化。UFC標誌位,FPSCR
[3],表示當Flush結束時變化)
·預設的NaN模式(DN位的設定,FPSCR [25],會進入NaN的預設模式。在這種模式下,如對任何算術資料處理操作的結果,涉及一個輸入NaN,或產生一個NaN結果,會返回預設的NaN。僅當VABS,VNEG,VMOV運算時,分數位增加保持。所有其他的CDP運算會忽略所有輸入NaN的小數位的資訊)
下表顯示的是FPU指令集。
3.debug調試
與Cortex - M3的相同, Cortex - M4的裝置是通過標準JTAG或串列線調試連接器調試。要串連到主機的介面,一個簡單,標準化外部連接器是必要的。
4. 電源
1.電源管理
2.功耗比較從圖所示,很明顯在功率效率方面Cortex - M4的效能大大優於表Cortex - M3。