《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 解決方案 > Cortex-M處理器性能考慮

Cortex-M處理器性能考慮

2017-04-19
作者:Joseph Yiu
來源:ARM
關鍵詞: Cortex-M ARM

5.1 通用數據處理能力

       在通用微控制器市場,benchmark數據經常用來衡量微控制器的性能,表7是Cortex-M處理器常用benchmark測試的性能數據:

A]B}AQ8JHX]PJ(_WVM)ETIE.png

表 7: Cortex-M處理器常用benchmakr的性能分數

(來源:CoreMark.org 網站 and ARM 網站)

關于Dhrystone需要注意的是用來測試的Dhrystone是由官方源程序在沒有啟用inline and 和multi-file compilation編譯選項的情況編譯出來的(官方分數)。但是,很多微控制器廠商引用的是完全優(yōu)化編譯的Dhrystone測試出來的數據。

但是,benchmark工具的性能測試數據可能無法準確反應你的應用能達到的性能。例如,單周期I/O接口和DSP應用中使用SIMD,或者Cortex-M4/M7中使用FPU的加速效果并沒有在這些測試數據中體現(xiàn)出來。

通常,Cortex-M3 和 Cortex-M4由于以下原因提供了更高的數據處理性能:

· 更豐富的指令集

· 哈佛總線架構

· 寫緩存(單周期寫操作)

· 跳轉目標的預測取指

Cortex-M33也是基于哈佛總線的架構,有豐富的指令集。但是不像Cortex-M3 和 Cortex-M4,Cortex-M33處理器流水線是重新設計的高效流水線,支持有限的指令雙發(fā)射(可以在一個時鐘周期中執(zhí)行最多兩條指令)。

Cortex-M7支持更高的性能,這是因為M7擁有雙發(fā)射六級流水線并支持分支預測。而且,通過支持指令和數據Cache,和即便使用慢速內存(例如,嵌入式Flash)也能避免性能損失的緊耦合內存,來實現(xiàn)更高的系統(tǒng)級性能。

但是,某些I/O操作密集的任務在Cortex-M0+上運行更快,這是因為:

· 更短的流水線(跳轉只需要兩個周期)

· 單周期I/O端口

當然也有設備相關的因素。例如,系統(tǒng)級設計,內存的速度也會影響到系統(tǒng)的性能。

你自己的應用程序經常是你需要的最好的benchmark。CoreMark分數是另外一個處理器兩倍的處理器并不意味著執(zhí)行你的應用也快一倍。對I/O密集操作的應用來說,設備相關的系統(tǒng)級架構對性能有巨大的影響。

5.2 中斷延遲

       性能相關的另外一個指標是中斷延遲。這通常用從中斷請求到中斷服務程序第一條指令執(zhí)行的時鐘周期數來衡量。表8列出了Cortex-M處理器在零等待內存系統(tǒng)條件下的中斷延遲比較。

262PQR58)CGJYXJ06G}PYMP.png

表 8: 零等待內存系統(tǒng)條件下的中斷延遲比較

事實上,真正的中斷延遲受到內存系統(tǒng)等待狀態(tài)的影響。例如,許多運行頻率超過100Mhz的微控制器搭配的是非常慢的Flash存儲器(例如30到50MHz)。雖然使用了Flash訪問加速硬件來提高性能,中斷延遲仍然受到Flash存儲系統(tǒng)等待狀態(tài)的影響。所以完全有可能運行在零等待內存系統(tǒng)Cortex-M0/M0+系統(tǒng)比Cortex-M3/M4/M7有更短的中斷延遲。

當評估性能的時候,不要忘記把中斷處理程序的執(zhí)行時間考慮在內。某些8位或者16位處理器架構可能中斷延遲很短,但是會花費數倍的時鐘周期完成中斷處理。非常短的中斷響應時間和很短的中斷處理時間才是實際有效的。


本站內容除特別聲明的原創(chuàng)文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創(chuàng)文章及圖片等內容無法一一聯(lián)系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。