2013-05-09 133 views
0

我們公司是STM32f4評估板(cortex M4F)的自豪擁有者, 我們收到另一塊評估板(ARM7TDMI板)。評估板之間的性能差異

在開始遷移到ARM7評估板之前,我們想知道硬件是否足夠強大,因此我們不會浪費任何時間來發現它。

我們的項目利用了許多DSP算法(利用FPU),大量使用SDIO和大約1 MB的內存。

所以,我在想這樣做兩個評估板下面的測試,看看它們之間的性能差異:

數學:加法,減法,除法,乘法,ABS和Sqrtf。它會運行我一個循環(只會使用浮點數)。 SDIO:在一個循環中讀取/寫入一個2千字節的緩衝區 內存:在循環中讀取/寫入外部和內部RAM。

在你看來,這個結果會給出性能差異的任何跡象,以及對「真實」項目期待什麼?

感謝 邁克爾

+1

你應該嘗試製作類似於真正的節目將要做的事情。如果可能的話。 – 2013-05-09 14:34:18

+0

或者用假數據運行真正的程序(以避免需要移植I/O)。但首先閱讀這個不明身份替代部分的規格 - 並且船上是否有足夠的內存? – 2013-05-09 15:26:12

+0

爲什麼*「當然大約1兆內存」*? – Clifford 2013-05-09 21:57:51

回答

3

我會建議對基於ARM7的任何新的設計 - 這是一個傳統的ARM架構。您應該檢查供應商的零件狀態,並計劃您計劃設計的任何零件的過時。沒有供應商正在發佈基於ARM7的新設計。

我還建議,對於DSP算法,Cortex-M4的DSP特性比其浮點更重要。 ARM Cortex-M CMSIS包含一個利用此功能的DSP庫。無論哪種方式,定點DSP算法都比使用浮點的效率高得多。

Cortex-M是一種效率更高的設計,ARM7實現了1.2 MHz DMIPS每MHz,而不到1.0 DMIPS每MHz。結合DSP指令,浮點和用於片上標誌,RAM和外設的獨立總線,使Cortex-M上的大部分代碼顯着加快。

Cortex-M架構定義了SYSCLK和中斷控制器,在ARM7上這些是由芯片供應商定義的,各供應商之間的代碼移植更加困難。

STM32F4xx器件運行頻率高達180MHz;大多數ARM7器件都是60MHz或更低。

使用浮點執行比較幾乎是毫無意義的。至少,浮點硬件將輕鬆勝過ARM7所需的軟件浮點,其係數爲5到10。除非您的應用程序能夠應對性能下降,否則不適用於ARM7。但是,大多數應用程序不需要浮點。整數或定點算法的運行速度可能比軟件浮點快5倍左右,因此與硬件浮點競爭。還請記住,Cortex-M4 FPU僅爲單精度。

將Cortex-M3與Cortex-M4進行比較以測試應用程序對缺乏硬件FP和DSP支持的敏​​感性會更合理。

SDIO性能將受到SDIO接口和SD卡本身的限制(即使在相同的「速度等級」下,其性能差別很大) - 處理器本身的負載將非常低,如果您的應用程序正忙着等待而不是在等待SD卡時做一些有用的事情,那麼大部分時間都在等待數據。 DMA傳輸的使用可能會使CPU負載或多或少可以忽略不計。

下圖說明了與Cortex-M4相比,ARM7的定位方式。後者是更高的性能和更強的能力。在相同的時鐘頻率下,ARM9和ARM11之間的Cortex-M4站點在性能規模上。

ARM Processor Comparison

我不認爲你需要執行,因爲廣泛的性能數據比較ARM7和Cortex M4任何基準測試已經上市。你可能做的是測量你現有應用程序在其當前平臺上的CPU負載。如果它很低(可能是< 20%),並且它大部分時間都處於閒置狀態,那麼ARM7可能是可行的。當然,如果您的應用程序沒有在RTOS或調度程序上運行並且有空閒任務,那麼測量真正的CPU負載可能會很困難。

0

我會認爲M4F將是一個更加能部分比古老的7TDMI處理器。我沒有使用帶有浮點協處理器的ARM7,並期望當你想要做浮點DSP時,M4F會更適合你的應用。

在硬件中具有浮點會加快處理速度,並可能通過減慢處理器時鐘節省功耗。

我就不願基於一個版本至少爲10歲的ARM,開始了全新的設計

+0

那麼,我列出的操作是最常用的操作,沒有辦法讓我可以運行在皮層M4上運行的原始代碼,而不需要大量修改,所以這是另一種選擇。 是的,我意識到兩個處理器之間的巨大差異,但它不是我的決定,我只提供信息,並且想知道這個測試是否足夠 – Fluffy 2013-05-09 15:36:09