0

160 MHz ARM プロセッサを使用するオーディオ インターフェイス ハードウェア用のリバーブ アルゴリズムを提供するよう依頼されました。これは C で書かれたかなり軽量のリバーブ エフェクトです。ただし、低レベルのアーキテクチャとパフォーマンスのテストと測定に関しては、私の知識が少し不足しています。

デバイスの CPU でのパフォーマンスを 3 ~ 5% 以内に維持したいので、少なくともいくつかの見積もりを提供する必要があります。これまでのところ、これらの手順に従っています。少なくとも正しい軌道に乗っているかどうかをお知らせください。

リバーブのすべての処理を含む .c ファイルを Xcode で逆アセンブルし、オーディオを処理するコールバック関数で呼び出されるアセンブリ命令の数を数えました。ブロックあたり 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 に答える