16.02.2013 Aufrufe

24531904_j

24531904_j

24531904_j

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

p ─ 分岐予測 (Branch Predict)<br />

書式 : brp.ipwh.ih target 25 , tag 13 ip_relative_form B6<br />

brp.indwh.ih b 2 , tag 13 indirect_form B7<br />

brp.ret.indwh.ih b 2 , tag 13 return_form, indirect_form B7<br />

説明 : この命令を使用して、 将来の分岐に関する情報を前も ってハー ド ウ ェアに与える こ と が<br />

で き る。 こ の命令は、 パ フ ォ ー マン ス上の効果以外は nop 命令 と して動作するため、<br />

アーキテ クチャ上のマシン状態に影響を与えない。<br />

tag13 オペラ ン ド は、 アセンブ リ 内で、 こ の予測情報が適用 さ れる分岐命令のア ド レ ス を<br />

指定する。 この命令を含むバン ド ルから予測される分岐を含むバン ド ルまでの変位を計<br />

算し、 符号付き即値 (timm9 ) と して分岐予測命令内にエン コ ー ド さ れる (timm9 = tag13 - IP<br />

>> 4)。<br />

target25 オペラン ド は、 アセンブ リ内で、 予測される分岐の分岐先のラベルを指定する。<br />

分岐命令の場合 と 全 く 同じ よ う に、 こ の命令を含むバン ド ルか ら 分岐先バン ド ル ま での<br />

変位を計算し、 符号付き即値 (imm21 ) と して分岐予測命令内にエン コ ー ド さ れる (imm21 =<br />

target25 - IP >> 4)。 indirect_form を使用して、 間接分岐を予測で き る。 indirect_form では、<br />

予測 さ れる分岐の タ ー ゲ ッ ト は、 BR b2 で指定される。<br />

return_form を使用して、 予測される分岐がリ ターンであるこ とを指示できる。<br />

予測 さ れる分岐について、 その他の ヒ ン ト を指定で き る。 各種の ヒ ン ト ・ コ ンプ リ ー タ<br />

の値を以下の表に示す。 詳細は、 第 1 巻、 第 1 部の 4.5.2 項 「分岐予測 ヒ ン ト 」 を参照の<br />

こと。<br />

ipwh および indwh コ ンプ リ ー タ は、 分岐条件の最 も 良い予測方法 と 、 分岐に到達す る時<br />

間に関する情報を指定する。<br />

表 2-11. IP 相対分岐有無予測ヒント<br />

ipwh コンプリータ IP 相対分岐有無予測ヒント<br />

sptk 予測される分岐は、「静的に処理」で予測される。<br />

loop 予測される分岐は、br.cloop、br.ctop、または br.wtop である。<br />

exit 予測される分岐は、br.cexit または br.wexit である。<br />

dptk 予測される分岐は、「動的」に予測される。<br />

表 2-12. 間接分岐有無予測ヒント<br />

indwh コンプリータ 間接分岐有無予測ヒント<br />

sptk 予測される分岐は、「静的に処理」で予測される。<br />

dptk 予測される分岐は、「動的」に予測される。<br />

ih コンプリータを使用して、 少数の非常に重要な分岐( 例えば、 内側ル ー プの分岐 ) を<br />

マ ー ク で き る。 これに よ っ て、 重要な分岐に対して、 高速で小 さ い予測構造を使用す る<br />

よ う に、 ハー ド ウ ェアに通知でき る。<br />

表 2-13. 重要度ヒント<br />

ih コンプリータ 分岐重要度予測ヒント<br />

none 重要度が低い<br />

imp 重要度が高い<br />

3:28 第 3 巻 : 命令リファレンス<br />

brp

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!