2011-12-03 15 views
4

は、それは言う:ARM NEON:どの命令のペアがライ​​トバックを待つ必要がありますか? ARMのNEONのドキュメントで

[...]命令のいくつかのペアは、値がレジスタファイルに書き戻されるまで待つ必要があります。

私は使用が結果と書き戻しを待つ必要が命令のペアを転送することができ、命令のペアを定義するリストに遭遇していません。

誰も、これらのペアをリストしたテーブルまたはドキュメントを知っていますか?

答えて

1

大まかにあなたが合理的に転送し、転送するために期待するものを言えば、これを計算するには

では、次のオンラインツールを使用することができます失速します。 vmul.f32はvadd.f32などに転送されます。

正確なフォワーディングパスが探している方法でどこにでも正確に記録されているとは思いません。とにかく私はそれらを見つけていない。あなたがそれらを見つける場合は、私たちにどこに知っていることを確認してください。もちろん、フォワーディングが発生するかどうかは、指定された命令のペアを判断するのが難しくありませんが、それは一般的な解決策ではありません。ごめんなさい。

1

これらのペアをリストしているテーブルまたはドキュメントを知っている人はいますか?

これらのペアは、,9000を超え、であり、それらはすべて列挙できません。例えば

VADD.F32 q0,q0,q1 
VMUL.F32 q3,q0,q2 

最初の命令の書き込みバック結果を第4のサイクルにおいて、第2の命令は、それを必要とする(Q0)第2サイクルでソースとして、ソースの準備ができていない、まだありますようにこの2つの命令間のストール(またはパイプラインの「穴」)。
http://pulsar.webshaker.net/ccc/result.php?lng=us

+0

はい、巨大なスペース*すべてのペアのうち、私は一般的なペアのテーブルがあることを望んでいた。例えば、算術命令は、ロード命令のライトバックまで待たなければならない。 –

+1

私はサイクルのタイミングについて質問していませんでした。 Cortex-A9のドキュメントでは、書き戻すまで待たなければならない命令*は、転送結果を早く使用することはできません。だから私はどちらのペアが書き戻しの後に結果を使うことができるのか、そして転送された結果を使うことができるのかを尋ねています - どちらのタイミングもA9のドキュメントで与えられています。 –

+1

私はOPがA9についてではなくA8について話していると思います。 A9のドキュメントには、「結果」と「書き戻し」の両方が記載されていますが、その違いは正確には宣言されていません。 –

1

Integer multiply accumulates。

http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0344k/ch16s06s03.html

の末尾部分が有用である:

積和は、乗算または他の 積和に追従し、その第一 命令の結果に依存する場合、依存する場合両方の命令の間に同じタイプおよびサイズの がある場合、プロセッサはアキュムレータ転送の特別な乗算器 を使用します。この特殊転送は、N5の最初の 命令の結果がN4の2番目の 命令の累算器に転送されるため、乗算 命令が連続して発行できることを意味します。命令のサイズとタイプが でなければ、N3にDdまたはQdが必要です。これは、積和命令をVMLA、VMLS、VQDMLA、および VQDMLS、および乗算命令VMULとVQDMUL

の組み合わせ に適用される浮動小数点乗算は同じように仕事を蓄積することを前提としないでください。私は浮動小数点NEON命令を使用していませんでしたので、ここで何か経験はありませんが、末尾の注釈を読んで理解してください。http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0344k/BCGDCECC.html

関連する問題