|
對于Cortex-M系列處理器而言,低功耗是其關(guān)鍵優(yōu)點(diǎn)之一,可是您知道Cortex-M系列處理器的全部系統特性及性能相關(guān)指標嗎?
系統特性
>>>>
低功耗
低功耗是Cortex-M處理器的一個(gè)關(guān)鍵優(yōu)點(diǎn)。低功耗是其架構的組成部分:
WFI和WFE指令
架構級的休眠模式定義
此外,Cortex-M支持許多其他的低功耗特性:
休眠和深度休眠模式:架構級支持的特性,通過(guò)設備特定的功耗管理寄存器可以進(jìn)一步擴展。
Sleep-on-exit模式:中斷驅動(dòng)的應用的低功耗技術(shù)。開(kāi)啟設置后,當異常處理程序結束并且沒(méi)有其他等待處理的異常中斷時(shí),處理器自動(dòng)進(jìn)入到休眠模式。這樣避免了額外的線(xiàn)程模式中指令的執行從而省電,并且減少了不必要的堆棧讀寫(xiě)操作。
喚醒中斷控制器(WIC):一個(gè)可選的特性,在特定的低功耗狀態(tài),由一個(gè)獨立于處理器的小模塊偵測中斷情況。例如,在狀態(tài)保留功耗管理(SRPG)設計中,當處理器被關(guān)電的設計。
時(shí)鐘關(guān)閉和架構級時(shí)鐘關(guān)閉:通過(guò)關(guān)閉處理器的寄存器或者子模塊的時(shí)鐘輸入來(lái)省電。
所有這些特性都被Cortex-M0, Cortex-M0+, Cortex-M3, Cortex-M4, Cortex-M7, Cortex-M23 和 Cortex-M33支持。此外,各種低功耗設計技術(shù)被用來(lái)降低處理器功耗。
因為更少的電路,Cortex-M0 and Cortex-M0+處理器比Cortex-M3, Cortex-M4 和 Cortex-M7功耗低。此外,Cortex-M0+額外優(yōu)化減少了程序存。ɡ缣D備份)來(lái)保持系統層級的低功耗。
Cortex-M23沒(méi)有Cortex-M0 和 Cortex-M0+那么小,但是在相同的配置下,仍然和Cortex-M0+能效一樣。由于更好性能和低功耗優(yōu)化,在相同配置下,Cortex-M33比Cortex-M4能效比更好。
>>>>
Bit-band feature位段
Cortex-M3 和Cortex-M4處理器支持一個(gè)叫做位段的可選功能,允許有兩段通過(guò)位段別名地址實(shí)現可以位尋址的1MB的地址空間(一段在從地址0x20000000起始的SRAM空間。另一段是從地址0x40000000起始的外圍設備空間)。Cortex-M0, M0+ 和 Cortex-M1不支持位段(bit-band)功能,但是可以利用ARM Cortex-M系統設計套件(CMSDK)中的總線(xiàn)級組件在系統層面實(shí)現位段(bit-band)功能。Cortex-M7不支持位段(bit-band),因為M7的Cache功能不能與位段一塊使用(Cache控制器不知道內存空間的別名地址)。
ARMv8-M的TrustZone 不支持位段, 這是由于位段別名需要的兩個(gè)不同的地址可能會(huì )在不同的安全域中。對于這些系統,外圍設備數據的位操作反而可以在外圍設備層面處理(例如,通過(guò)添加位設置和清除寄存器)。
>>>>
存儲器保護單元(MPU)
除了Cortex-M0, 其他的Cortex-M處理器都有可選的MPU來(lái)實(shí)現存儲空間訪(fǎng)問(wèn)權限和存儲空間屬性或者存儲區間的定義。運行實(shí)時(shí)操作系統的嵌入式系統, 操作系統會(huì )每個(gè)任務(wù)定義存儲空間訪(fǎng)問(wèn)權限和內存空間配置來(lái)保證每個(gè)任務(wù)都不會(huì )破壞其他的任務(wù)或者操作系統內核的地址空間。Cortex-M0+, Cortex-M3 和 Cortex-M4都有8個(gè)可編程區域空間和非常相似的編程模型。主要的區別是Cortex-M3/M4的MPU允許兩級的存儲空間屬性(例如,系統級cache類(lèi)型),Cortex-M0+僅支持一級。Cortex-M7的MPU可以配置成支持8個(gè)或者16個(gè)區域,兩級的存儲空間屬性。Cortex-M0 和 Cortex-M1不支持MPU.
Cortex-M23 和 Cortex-M33也支持MPU選項,如果實(shí)現了TrustZone安全擴展(一個(gè)用于安全軟件程序,另一個(gè)用于非安全軟件程序)可以有最多兩個(gè)MPU。
>>>>
單周期I/O接口
單周期I/O接口是Cortex-M0+處理器獨特的功能,這使Cortex-M0+可以很快的運行I/O控制任務(wù)。Cortex-M大多數的處理器的總線(xiàn)接口是基于A(yíng)HB Lite或者AHB 5協(xié)議的,這些接口都是流水實(shí)現總線(xiàn)協(xié)議,運行在高時(shí)鐘頻率。但是,這意味著(zhù)每個(gè)傳輸需要兩個(gè)時(shí)鐘周期。單時(shí)鐘周期I/O接口添加了額外的簡(jiǎn)單的非流水線(xiàn)總線(xiàn)接口,連接到像GPIO(通用輸入輸出)這樣的一部分設備特定的外設上。結合單周期I/O和Cortex-M0+天然比較低的跳轉代價(jià)(只有兩級流水線(xiàn)),許多I/O控制操作都會(huì )比大多數其他微控制器架構的產(chǎn)品運行的更快。
性能考慮
>>>>
通用數據處理能力
在通用微控制器市場(chǎng),benchmark數據經(jīng)常用來(lái)衡量微控制器的性能,下表是Cortex-M處理器常用benchmark測試的性能數據:
Cortex-M處理器常用benchmakr的性能分數(來(lái)源:CoreMark.org 網(wǎng)站和 ARM 網(wǎng)站)
關(guān)于Dhrystone需要注意的是用來(lái)測試的Dhrystone是由官方源程序在沒(méi)有啟用inline and 和multi-file compilation編譯選項的情況編譯出來(lái)的(官方分數)。但是,很多微控制器廠(chǎng)商引用的是完全優(yōu)化編譯的Dhrystone測試出來(lái)的數據。
但是,benchmark工具的性能測試數據可能無(wú)法準確反應你的應用能達到的性能。例如,單周期I/O接口和DSP應用中使用SIMD,或者Cortex-M4/M7中使用FPU的加速效果并沒(méi)有在這些測試數據中體現出來(lái)。
通常,Cortex-M3 和 Cortex-M4由于以下原因提供了更高的數據處理性能:
更豐富的指令集
哈佛總線(xiàn)架構
寫(xiě)緩存(單周期寫(xiě)操作)
跳轉目標的預測取指
Cortex-M33也是基于哈佛總線(xiàn)的架構,有豐富的指令集。但是不像Cortex-M3 和 Cortex-M4,Cortex-M33處理器流水線(xiàn)是重新設計的高效流水線(xiàn),支持有限的指令雙發(fā)射(可以在一個(gè)時(shí)鐘周期中執行最多兩條指令)。
Cortex-M7支持更高的性能,這是因為M7擁有雙發(fā)射六級流水線(xiàn)并支持分支預測。而且,通過(guò)支持指令和數據Cache,和即便使用慢速內存(例如,嵌入式Flash)也能避免性能損失的緊耦合內存,來(lái)實(shí)現更高的系統級性能。
但是,某些I/O操作密集的任務(wù)在Cortex-M0+上運行更快,這是因為:
更短的流水線(xiàn)(跳轉只需要兩個(gè)周期)
單周期I/O端口
當然也有設備相關(guān)的因素。例如,系統級設計,內存的速度也會(huì )影響到系統的性能。
你自己的應用程序經(jīng)常是你需要的最好的benchmark。CoreMark分數是另外一個(gè)處理器兩倍的處理器并不意味著(zhù)執行你的應用也快一倍。對I/O密集操作的應用來(lái)說(shuō),設備相關(guān)的系統級架構對性能有巨大的影響。
>>>>
中斷延遲
性能相關(guān)的另外一個(gè)指標是中斷延遲。這通常用從中斷請求到中斷服務(wù)程序第一條指令執行的時(shí)鐘周期數來(lái)衡量。下表列出了Cortex-M處理器在零等待內存系統條件下的中斷延遲比較。
零等待內存系統條件下的中斷延遲比較
事實(shí)上,真正的中斷延遲受到內存系統等待狀態(tài)的影響。例如,許多運行頻率超過(guò)100MHz的微控制器搭配的是非常慢的Flash存儲器(例如30到50MHz)。雖然使用了Flash訪(fǎng)問(wèn)加速硬件來(lái)提高性能,中斷延遲仍然受到Flash存儲系統等待狀態(tài)的影響。所以完全有可能運行在零等待內存系統Cortex-M0/M0+系統比Cortex-M3/M4/M7有更短的中斷延遲。
當評估性能的時(shí)候,不要忘記把中斷處理程序的執行時(shí)間考慮在內。某些8位或者16位處理器架構可能中斷延遲很短,但是會(huì )花費數倍的時(shí)鐘周期完成中斷處理。非常短的中斷響應時(shí)間和很短的中斷處理時(shí)間才是實(shí)際有效的。(轉自ARM)
宋工企鵝號:35--24-65--90-88 Tel/WX:173--17--95--19--08
以下課程可免費試聽(tīng)C語(yǔ)言、電子、PCB、STM32、Linux、FPGA、JAVA、安卓等。
想學(xué)習的你和我聯(lián)系預約就可以免費聽(tīng)課了。
|
|