24531904_j
24531904_j 24531904_j
p ─ 分岐予測 (Branch Predict) 書式 : brp.ipwh.ih target 25 , tag 13 ip_relative_form B6 brp.indwh.ih b 2 , tag 13 indirect_form B7 brp.ret.indwh.ih b 2 , tag 13 return_form, indirect_form B7 説明 : この命令を使用して、 将来の分岐に関する情報を前も ってハー ド ウ ェアに与える こ と が で き る。 こ の命令は、 パ フ ォ ー マン ス上の効果以外は nop 命令 と して動作するため、 アーキテ クチャ上のマシン状態に影響を与えない。 tag13 オペラ ン ド は、 アセンブ リ 内で、 こ の予測情報が適用 さ れる分岐命令のア ド レ ス を 指定する。 この命令を含むバン ド ルから予測される分岐を含むバン ド ルまでの変位を計 算し、 符号付き即値 (timm9 ) と して分岐予測命令内にエン コ ー ド さ れる (timm9 = tag13 - IP >> 4)。 target25 オペラン ド は、 アセンブ リ内で、 予測される分岐の分岐先のラベルを指定する。 分岐命令の場合 と 全 く 同じ よ う に、 こ の命令を含むバン ド ルか ら 分岐先バン ド ル ま での 変位を計算し、 符号付き即値 (imm21 ) と して分岐予測命令内にエン コ ー ド さ れる (imm21 = target25 - IP >> 4)。 indirect_form を使用して、 間接分岐を予測で き る。 indirect_form では、 予測 さ れる分岐の タ ー ゲ ッ ト は、 BR b2 で指定される。 return_form を使用して、 予測される分岐がリ ターンであるこ とを指示できる。 予測 さ れる分岐について、 その他の ヒ ン ト を指定で き る。 各種の ヒ ン ト ・ コ ンプ リ ー タ の値を以下の表に示す。 詳細は、 第 1 巻、 第 1 部の 4.5.2 項 「分岐予測 ヒ ン ト 」 を参照の こと。 ipwh および indwh コ ンプ リ ー タ は、 分岐条件の最 も 良い予測方法 と 、 分岐に到達す る時 間に関する情報を指定する。 表 2-11. IP 相対分岐有無予測ヒント ipwh コンプリータ IP 相対分岐有無予測ヒント sptk 予測される分岐は、「静的に処理」で予測される。 loop 予測される分岐は、br.cloop、br.ctop、または br.wtop である。 exit 予測される分岐は、br.cexit または br.wexit である。 dptk 予測される分岐は、「動的」に予測される。 表 2-12. 間接分岐有無予測ヒント indwh コンプリータ 間接分岐有無予測ヒント sptk 予測される分岐は、「静的に処理」で予測される。 dptk 予測される分岐は、「動的」に予測される。 ih コンプリータを使用して、 少数の非常に重要な分岐( 例えば、 内側ル ー プの分岐 ) を マ ー ク で き る。 これに よ っ て、 重要な分岐に対して、 高速で小 さ い予測構造を使用す る よ う に、 ハー ド ウ ェアに通知でき る。 表 2-13. 重要度ヒント ih コンプリータ 分岐重要度予測ヒント none 重要度が低い imp 重要度が高い 3:28 第 3 巻 : 命令リファレンス brp
p 操作 : tmp_tag = IP + sign_ext((timm 9
- Seite 1 und 2: インテル ® Itanium ® アー
- Seite 3 und 4: 目次 第 I 部 : インテル ®
- Seite 5: 図 3.2 インテル ® アーキ
- Seite 8 und 9: 2-37 lftype のニーモニック
- Seite 10 und 11: 第 II 部 : IA-32 命令セット
- Seite 13 und 14: 本書について 1 インテル
- Seite 15 und 16: 第 9 章「IA-32 割 り 込みベ
- Seite 17 und 18: 1.4 用語の定義 以下の定義
- Seite 19 und 20: 改訂日付 改訂番号 内容 20
- Seite 21 und 22: 命令リファレンス 2 本章
- Seite 23 und 24: add add ─ 加算 (Add) 書式 : (
- Seite 25 und 26: alloc alloc ─ スタック・フ
- Seite 27 und 28: and and ─ 論理積 (Logical And)
- Seite 29 und 30: br ─ 分岐 (Branch) 書式 : (qp
- Seite 31 und 32: ファイルをフラッシュす
- Seite 33 und 34: 図 2-4. br.wtop および br.wexit
- Seite 35 und 36: CFM.sor = 0; CFM.rrb.gr = 0; CFM.rr
- Seite 37 und 38: eak break ─ ブレーク (Break)
- Seite 39: l 関係な く 、 無効操作フ
- Seite 43 und 44: chk chk ─ スペキュレーシ
- Seite 45 und 46: clrrrb clrrrb ─ RRB のクリア
- Seite 47 und 48: cmp る関係を利用する。 一
- Seite 49 und 50: cmp4 cmp4 ─ 4 バイト比較 (Co
- Seite 51 und 52: cmp4 PR[p1 ] = 0; PR[p2] = 0; } els
- Seite 53 und 54: cmpxchg ldhint コ ンプ リ ー
- Seite 55 und 56: czx czx ─ ゼロ・インデッ
- Seite 57 und 58: dep dep ─ デポジット (Deposi
- Seite 59 und 60: epc epc ─ 特権コードへの
- Seite 61 und 62: fabs fabs ─ 浮動小数点絶対
- Seite 63 und 64: famax famax ─ 浮動小数点絶
- Seite 65 und 66: fand fand ─ 浮動小数点論理
- Seite 67 und 68: fc fc ─ キャッシュのフラ
- Seite 69 und 70: fclass fclass ─ 浮動小数点
- Seite 71 und 72: fclrf fclrf ─ 浮動小数点フ
- Seite 73 und 74: fcmp 操作 : if (PR[qp]) { if (p 1
- Seite 75 und 76: fcvt.fx fcvt.fx ─ 浮動小数点
- Seite 77 und 78: fcvt.xf fcvt.xf ─ 符号付き整
- Seite 79 und 80: fetchadd fetchadd ─ 即値のフ
- Seite 81 und 82: flushrs flushrs ─ レジスタ・
- Seite 83 und 84: fmax fmax ─ 浮動小数点最大
- Seite 85 und 86: fmerge 操作 : if (PR[qp]) { fp_ch
- Seite 87 und 88: fmix fmix ─ 浮動小数点ミッ
- Seite 89 und 90: fmpy fmpy ─ 浮動小数点乗算
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