评估板之间的性能差异

时间:2013-05-09 14:03:02

标签: embedded arm

我们公司是STM32f4评估板(cortex M4F)的自豪拥有者, 我们收到了另一个评估板(ARM7TDMI板)。

在开始迁移到ARM7评估板之前,我们想知道硬件对我们来说是否足够强大,所以我们不会在以后随时发现它。

我们的项目利用了许多DSP算法(利用了FPU),大量使用SDIO,以及大约1兆字节的内存。

所以,我想在两个评估板上进行以下测试,看看它们之间的性能差异:

数学:加法,减法,除法,乘法,Abs和Sqrtf。它将运行一个循环(并且将仅使用浮动数字)。 SDIO:在循环中读/写一个2千字节的缓冲区 内存:循环读取/写入外部和内部RAM。

在您看来,这个结果是否会提供有关性能差异的任何指示,以及对“真实”项目的期望?

由于 迈克尔

2 个答案:

答案 0 :(得分:3)

我建议不要使用任何基于ARM7的新设计 - 它是一种传统的ARM架构。您应该检查供应商的部件状态以及您打算设计的任何部件的计划过时情况。没有供应商发布基于ARM7的新设计。

我还建议,对于DSP算法,Cortex-M4的DSP功能比浮点更重要。 ARM Cortex-M CMSIS包含一个利用此功能的DSP库。无论哪种方式,定点DSP算法都比使用浮点算法更有效。

Cortex-M是一种效率更高的设计,ARM7每MHz达到1.2 DMIPS,而每MHz低于1.0 DMIPS。与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负载可能会很困难。

答案 1 :(得分:0)

我原本以为M4F比古老的7TDMI处理器功能强大得多。我没有使用带有浮点协处理器的ARM7,并且期望因为你想要做浮点DSP,M4F将更适合你的应用。

在硬件中使用浮点可以加快处理速度,并且可以通过减慢处理器时钟来节省功耗。

我不愿意开始基于至少10年的ARM版本的新设计