0

我被要求为使用 160 MHz ARM 处理器的音频接口硬件提供混响算法。这是一个用 C 语言编写的相当轻量级的混响效果器。但是,在低级架构和性能测试和测量方面,我的知识有些欠缺。

我需要至少提供一些关于它将如何在设备的 CPU 上执行的估计,因为他们希望将其保持在 3 - 5% 之内。到目前为止,我已经遵循了这些步骤,所以如果我至少在正确的轨道上,请告诉我。

我在 Xcode 中反汇编了包含所有混响处理的 .c 文件,并计算了在处理音频的回调函数中调用的汇编指令的数量。每块 256 个样本,我正在查看大约 400,000 条汇编指令。

有什么方法可以粗略估计这个算法在 160 MHz ARM 处理器上的表现?我用于 I/O 的音频库对 CPU 负载进行了测量,我的 Mac Pro 上的回调例程在 2-3% 之间。

我会以正确的方式解决这个问题吗?有什么建议可以对此进行估计吗?
谢谢。

4

1 回答 1

2

您需要更多关于 ARM ISA 的处理器特定实现的信息,而不仅仅是 MHz。影响性能的因素包括多周期指令的使用、超缩放器分派/退休功能、流水线互锁、缓存大小和影响命中率的策略、内存延迟等。此外,您使用的编译器对您选择的 ARM 实现的优化程度如何。

人们很容易在台式 PC 和嵌入式 RISC CPU 之间的机器代码执行上获得超过 10 倍的 CPI(每指令周期数)差异,以及实际的机器代码非常不同。

对代码进行基准测试通常更容易。

于 2013-07-26T05:19:34.587 回答