4

このドキュメント: http://infocenter.arm.com/help/topic/com.arm.doc.ddi0301g/DDI0301G_arm1176jzfs_r0p7_trm.pdf

21-25 ページ (pdf ページ 875) では、VFP ユニットの組み立て手順のスループットとレイテンシのタイミングが示されています。

これらの数値は vectorsize に依存していませんか?

1: スループットが 1 でレイテンシが 8 の FMULS を考えてみましょう。前の関数で現在計算されていないレジスタを使用しない場合、各サイクルで新しい FMULS 操作を開始できるということですか? 例えば:

FMULS s8, s16, s20
FMULS s12, s21, s25

それらは次々に実行されますか?

2: 1 つの引数が前の計算に依存する 2 つの FMULS 関数が前後にある場合はどうなりますか?

FMULS s8, s16, s20
FMULS s12, s21, s8

VFP は 2 番目の命令の処理を開始する前に 8 サイクル待機しますか?

3: 4 つの要素を持つ vectormode で、2 番目の FMULS 命令で 1 つを除くすべての入力レジスタが使用可能であるとします。何が起こるか?

4: sqrt と除算: sqrt または除算演算は、19 サイクルの間、後続の演算の開始を妨げますか?

ありがとう!

4

1 に答える 1

2

あなたの質問はすべて、リンクしたドキュメントで回答されています。あなたはそれを注意深く読むべきです。

これらの数値は vectorsize とは無関係ですか?

いいえ。たとえば、リンクしたドキュメントの表 21-15 を参照してください。short vector のレイテンシに注意してくださいFADDS

FMULSまだ利用できない以前の結果に依存しない場合、サイクルごとに新しい操作を開始できるということですか?

はい、それがスループットの定義です。

1 つの引数が前の計算に依存する 2 つの FMULS 関数が次々にあるとどうなるか

最初の結果が利用可能になるまで、実行は停止しFMULSます。詳細については、21.6「スコアボードの操作」を参照してください。

4 つの要素を持つ vectormode で、2 番目の FMULS 命令で 1 つを除くすべての入力レジスタが使用可能であるとします。何が起こるか?

失速します。同じ参照。

sqrt と除算: sqrt または除算演算により、後続の演算を 19 サイクル開始できなくなりますか?

いいえ。セクション 21.10「並列実行」を参照してください。表21-15に例を示します。この例では、非依存が のFADDS直後に実行されますFDIVS

多くの種類の計算でスカラー コードよりも大幅に高速に実行される短いベクトル VFP コードを記述することは、(不可能ではありませんが) 少し難しい場合があることに注意してください。方法を学んだとしても、NEON ユニットは ARM でのベクトル計算の新しいモデルのように見えるため、その価値は疑わしいものになります。長期的には、短いベクター操作を今のところ無視し、将来のために NEON の学習に集中することで、より良いサービスを提供できる可能性があります。

于 2010-01-20T15:25:47.383 に答える