1

私はエルゼビアのこの本「ARMSystemDevelopersGuide」を読んでいて、これに出くわしました。

ARM命令セットは、ARM命令セットを組み込みアプリケーションに適したものにするいくつかの点で純粋なRISC定義とは異なります。

特定の命令の可変サイクル実行—すべてのARM命令が単一サイクルで実行されるわけではありません。たとえば、load-store-multiple命令は、転送されるレジスタの数に応じて実行サイクル数が異なります。転送はシーケンシャルメモリアドレスで発生する可能性があり、シーケンシャルメモリアクセスはランダムアクセスよりも高速であることが多いため、パフォーマンスが向上します。関数の開始時と終了時の一般的な操作は複数のレジスタ転送であるため、コード密度も向上します。

実行するのに可変サイクルを要する他のARM命令を指摘できますか?

4

1 に答える 1

2

サイクルタイミングはマイクロアーキテクチャに依存するため、特定の実装のテクニカルリファレンスマニュアル(TRM)を確認する必要があります。たとえば、Cortex-A9の場合、非常に複雑であると説明されています。

Cortex-A9プロセッサは複雑であるため、正確なタイミング情報を手動で計算することは不可能です。命令のタイミングは、他の同時命令、メモリシステムのアクティビティ、および命令フロー外の追加のイベントの影響を受けることがよくあります。

ただし、同じドキュメントには、データ処理、ロードとストア、乗算、および分岐とシリアル化の命令に関する情報の正確なタイミングがあります。

たとえば、同じドキュメントから、関連する命令がシフトソースに応じて1〜2サイクル長くかかる可能性があるかどうかを確認できますshiftingANDこれは、命令に埋め込まれた定数であるか、レジスタから読み取られた定数である可能性があります。

また、ロードストアに関する本のメモの横にあります-複数は、関係するレジスタの数によって異なる場合があり、アドレスが整列されているかどうかによっても異なります。

于 2012-10-27T08:06:36.750 に答える