0

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

在开始迁移到 ARM7 评估板之前,我们想知道硬件是否足够强大,这样我们以后不会浪费任何时间去发现它。

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

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

数学:加法、减法、除法、乘法、Abs 和 Sqrtf。它将运行 ia 循环(并且只使用浮点数)。SDIO:循环读取/写入 2 KB 缓冲区内存:循环读取/写入外部和内部 RAM。

在您看来,这个结果是否可以表明性能差异,以及对“真实”项目的期望?

谢谢迈克尔

4

2 回答 2

3

我建议不要使用任何基于 ARM7 的新设计——它是一种传统的 ARM 架构。您应该检查供应商的零件状态和计划的废弃任何您打算设计的零件。没有供应商发布基于 ARM7 的新设计。

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

Cortex-M 是一种效率更高的设计,ARM7 实现了 1.2 DMIPS/MHz,而 ARM7 的效率低于 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 负载或多或少可以忽略不计。

下图说明了 ARM7 与 Cortex-M4 的对比情况。后者是更高的性能和更大的能力。在相同的时钟频率下,Cortex-M4 在性能尺度上位于 ARM9 和 ARM11 之间。

ARM 处理器比较

我认为您不需要执行任何比较 ARM7 和 Cortex M4 的基准测试,因为广泛的性能数据已经可用。您或许可以做的是测量现有应用程序在其当前平台上的 CPU 负载。如果它很低(可能 < 20%)并且大部分时间都处于空闲状态,那么 ARM7 可能是可行的。当然,如果您的应用程序没有在 RTOS 或具有空闲任务的调度程序上运行,那么测量真正的 CPU 负载可能会很困难。

于 2013-05-09T22:22:24.190 回答
0

我原以为 M4F 将是比古老的 7TDMI 处理器更强大的部分。我没有使用带有浮点协处理器的 ARM7,并且希望当您想做浮点 DSP 时,M4F 会更适合您的应用程序。

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

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

于 2013-05-09T14:48:43.677 回答