24531904_j
24531904_j 24531904_j
ld ─ Load 書式 : (qp) ldsz.ldtype.ldhint r 1 = [r 3 ] no_base_update_form M1 (qp) ldsz.ldtype.ldhint r 1 = [r 3 ], r 2 reg_base_update_form M2 (qp) ldsz.ldtype.ldhint r 1 = [r 3 ], imm 9 imm_base_update_form M3 (qp) ld16.ldhint r 1 , ar.csd = [r 3 ] sixteen_byte_form, no_base_update_form M1 (qp) ld16.acq.ldhint r 1 , ar.csd = [r 3 ] sixteen_byte_form, acquire_form, no_base_update_form M1 (qp) ld8.fill.ldhint r 1 = [r 3 ] fill_form, no_base_update_form M1 (qp) ld8.fill.ldhint r 1 = [r 3 ], r 2 fill_form, reg_base_update_form M2 (qp) ld8.fill.ldhint r 1 = [r 3 ], imm 9 fill_form, imm_base_update_form M3 説明 : sz バイ ト からなる値が、 GR r3 の値によ って指定されるアド レスから始まるメモリ位置 か ら読み込 ま れる。 次に、 こ の値がゼ ロ拡張 さ れ、 GR r1 に格納される。 sz コンプリー タの値を表 2-32 に示す。 後述のア ド バン ス ド ・ ロ ー ド の場合を除いて、 GR r1 に対応す る NaT ビッ トがクリアされる。 ldtype コンプリータで特殊なロード操作を指定する。 そ れらの操作については、 表 2-33 で説明している。 sixteen_byte_form では、 2 つの 8 バイ ト値が 16 バイ ト のメモリ読み込みとして 1 回で ロード される。 最下位アドレスの値は GR r1 に格納 さ れ、 最上位ア ド レ スの値は Compare and Store Data アプ リ ケーシ ョ ン ・ レジスタ (AR[CSD]) に格納される。 この sixteen_byte_form では、 none と acq のみがロー ド ・ タ イプ と してサポー ト される。 fill_form では、 8 バイ ト の値がロー ド され、 UNAT アプ リ ケーシ ョ ン ・ レジスタの特定 ビッ トがターゲット ・レジスタのNaT ビッ トにコピーされる。 この命令は、 スピルした レジスタと Nat のペアをロー ド する場合に使用される。 詳細は、 第 1 巻、 第 1 部の 4.4.4 項 「コン ト ロール ・ スペキュレーシ ョ ン」 を参照のこ と。 ベー ス更新形式では、 CR r3 の値が符号付き即値 (imm9 ) または GR r2 の値に加算され、 その結果が GR r3 に戻される。 このベース ・ レジスタの更新はロー ド 後に行われ、 ロー ド・アドレスには影響しない。reg_update_form では、 GR r2 に対応する NaT ビットが セッ ト されている場合は、 GR r3 に対応する NaT ビ ッ ト がセ ッ ト さ れ、 フ ォ ル ト は発生 しない。 ld16 命令では、 ベー ス ・ レ ジ ス タ の更新はサポ ー ト さ れていない。 表 2-32. sz コンプリータ 表 2-33. ロード・タイプ sz コンプリータ アクセスされるバイト数 1 1 バイト 2 2 バイト 4 4 バイト 8 8 バイト ldtype コンプリータ 意味 特殊 Load 操作 none 通常のロード s スペキュレー ティブ・ロード 特定の例外を、フォルトを発生させないでデファーする ( 据え置かせる ) ことができる。例外をデファーする ( 据え置く ) と、ターゲット・レジ スタの NaT ビットがセットされる。NaT ビットは後でデファード ( 据え 置き ) の検出に利用される。 3:134 第 3 巻 : 命令リファレンス ld
ld 表 2-33. ロード・タイプ(続き) ldtype コンプリータ a アドバンスド・ ロード sa スペキュレー ティブ・アドバ ンスド・ロード c.nc チェック・ロー ド - クリアなし c.clr チェック・ロー ド - クリアあり c.clr.acq 順序付けされた チェック・ロー ド - クリアあり acq 順序付けされた ロード bias バイアスされた ロード 意味 特殊 Load 操作 ALAT にエントリが追加される。それにより、以降の命令でストアの衝 突の有無を確認できる。参照されたデータ・ページに非スペキュレー ティブ属性があった場合は、ターゲット・レジスタの NaT ビットがクリ アされ、プロセッサによって、ターゲット・レジスタに対する ALAT エ ントリが存在しないことが保証される。ALAT エントリが存在しないと いうことを利用して、後でデファード ( 据え ) または衝突を検出する。 ALAT にエントリが追加され、特定の例外を据え置かせることができる。 例外を据え置くと、ターゲット・レジスタの NaT ビットがセットされ、 プロセッサによって、ターゲット・レジスタに対する ALAT エントリが 存在しないことが保証される。ALAT エントリが存在しないことを利用 して、後でデファード ( 据え ) または衝突を検出する。 ALAT を検索して一致するエントリが探され、見つかった場合は、ロー ドは実行されず、ターゲット・レジスタは変更されない。指定されてい る場合には、ALAT のヒットまたはミスに関わらず、ベース・レジスタ の更新が実行される。ALAT エントリの一致の有無に関わらず、必要に 応じて ALAT ルックアップを失敗させることができる。見つからなかっ た場合は、ロードが実行され、参照されたデータ・ページに非スペキュ レーティブ属性がない場合は、エントリが ALAT に追加される。非スペ キュレーティブ属性があった場合は、ALAT エントリは割り当てられな い。 ALAT が検索されて一致するエントリが探され、見つかった場合は、そ のエントリが削除され、ロードは実行されず、ターゲット・レジスタは 変更されない。指定されている場合には、ALAT のヒットまたはミスに 関わらず、ベース・レジスタ更新が実行される。ALAT エントリの一致 の有無に関わらず、ALAT ルックアップを必要に応じて失敗させること ができる。見つからなかった場合は、クリア・チェック・ロードの動作 は通常のロードと同様になる。 このタイプの動作は、ALAT ルックアップ ( および、ALAT エントリが見 つからなかった場合、結果のロード ) が acquire ( 取得 ) のセマンティッ クスを使用して実行される以外は、順序付けなしのクリア形式と同じで ある。 acquire のセマンティックスを使用して順序付けされたロードが実行され る。 アクセスされるキャッシュ・ラインの排他的所有権を取得するよう指示 するヒントが提示される。 順序付け されたロ ー ド 、 バイアス さ れた ロ ー ド 、 スペキ ュ レ ー テ ィ ブ ・ ロ ー ド 、 ア ド バ ンス ド ・ ロー ド、 チェ ッ ク ・ ロー ドの詳細は、 第 1 巻、 第 1 部の 4.4.4 項 「コン ト ロー ル ・ スペキュ レーシ ョ ン」 と 第 1 巻、 第 1 部の 4.4.5 項 「データ ・ スペキュレーシ ョ ン」 を参照。 順序付け さ れたロ ー ド の詳細は、 第 1 巻、 第 1 部の 4.4.7 項 「メモリ ・ アクセス 順序」 を参照。 バイアス されたロ ー ド の詳細は、 第 1 巻、 第 1 部の 4.4.6 項 「メモリ階層 の制御 と 整合性」 を参照。 メモ リ 属性の詳細は、 第 2 巻、 第 1 部の 4.4 節 「メモリ属性」 を参照のこ と。 非スペキ ュ レ ーテ ィ ブ ・ ロ ー ド ・ タ イプについては、 GR r3 に対応する NaT ビットが1 の場合は、 レ ジス タ NaT 参照 (Register NaT Consumption) フォルトが発生する。 スペキュ レーティブ・ ロードおよびスペキュレーティブ・アドバンスド ・ ロードでは、 フォルト は発生せず、 例外がデフ ァ ー される ( 据え置かれる )。 ベース更新の計算では、 GR r2 に 対応す る NaT ビッ トが1 の場合、 GR r3 に対応する NaT ビッ トが1 に設定され、 フ ォル トは発生しない。 第 3 巻 : 命令リファレンス 3:135
- Seite 95 und 96: fnorm fnorm ─ 浮動小数点正
- Seite 97 und 98: fpabs fpabs ─ 浮動小数点並
- Seite 99 und 100: fpamax fpamax ─ 浮動小数点
- Seite 101 und 102: fpamin fpamin ─ 浮動小数点
- Seite 103 und 104: fpcmp fpcmp ─ 浮動小数点並
- Seite 105 und 106: fpcmp FP 例外 : 無効操作 (Inv
- Seite 107 und 108: fpcvt.fx } } } tmp_res.significand
- Seite 109 und 110: fpma } } fp_update_fpsr(sf, tmp_fp_
- Seite 111 und 112: fpmerge fpmerge ─ 浮動小数点
- Seite 113 und 114: fpmin fpmin ─ 浮動小数点並
- Seite 115 und 116: fpms fpms ─ 浮動小数点並列
- Seite 117 und 118: fpneg fpneg ─ 浮動小数点並
- Seite 119 und 120: fpnma fpnma ─ 浮動小数点並
- Seite 121 und 122: fpnmpy fpnmpy ─ 浮動小数点
- Seite 123 und 124: fprcpa } else if (fp_is_zero(num) &
- Seite 125 und 126: fprsqrta } tmp_pred_hi = 0; else tm
- Seite 127 und 128: frcpa } fp_update_fpsr(sf, tmp_fp_e
- Seite 129 und 130: frsqrta } PR[p 2 ] = 0; // fp_ieee_
- Seite 131 und 132: fsetc fsetc ─ 浮動小数点コ
- Seite 133 und 134: fswap fswap ─ 浮動小数点ス
- Seite 135 und 136: fsxt fsxt ─ 浮動小数点符号
- Seite 137 und 138: fxor fxor ─ 浮動小数点排他
- Seite 139 und 140: getf } GR[r 1 ] = FR[f 2 ].signific
- Seite 141 und 142: invala invala ─ ALAT の無効化
- Seite 143 und 144: itc 割り込み : マシン ・
- Seite 145: itr シリアル化 : instruction_f
- Seite 149 und 150: ld if (check && alat_cmp(GENERAL, r
- Seite 151 und 152: ldf ldf ─ 浮動小数点ロー
- Seite 153 und 154: ldf ldfe でのみ発生する。
- Seite 155 und 156: ldfp ldfp ─ 浮動小数点ペア
- Seite 157 und 158: ldfp } } if (base_update_form) { //
- Seite 159 und 160: lfetch 表 2-38. lfhint のニー
- Seite 161 und 162: loadrs loadrs ─ レジスタ・
- Seite 163 und 164: mix mix ─ ミックス (Mix) 書
- Seite 165 und 166: mix 操作 : if (PR[qp]) { check_ta
- Seite 167 und 168: mov ar 操作 : if (PR[qp]) { tmp_t
- Seite 169 und 170: mov cr mov ─ コントロール
- Seite 171 und 172: mov fr mov ─ 浮動小数点レ
- Seite 173 und 174: mov imm mov ─ 即値の移動 (Mo
- Seite 175 und 176: mov indirect 操作 : if (PR[qp]) {
- Seite 177 und 178: mov ip mov ─ 命令ポインタ
- Seite 179 und 180: mov psr mov ─ プロセッサ・
- Seite 181 und 182: movl movl ─ ロング型即値の
- Seite 183 und 184: mux 図 2-27. Mux2 の例 (16 ビ
- Seite 185 und 186: nop nop ─ ノー・オペレー
- Seite 187 und 188: pack pack ─ パック (Pack) 書
- Seite 189 und 190: padd padd ─ 並列加算 (Paralle
- Seite 191 und 192: padd } 割り込み : 無効操作
- Seite 193 und 194: pavg 図 2-31. 並列平均での
- Seite 195 und 196: pavgsub pavgsub ─ 並列平均減
ld<br />
表 2-33. ロード・タイプ(続き)<br />
ldtype<br />
コンプリータ<br />
a アドバンスド・<br />
ロード<br />
sa スペキュレー<br />
ティブ・アドバ<br />
ンスド・ロード<br />
c.nc チェック・ロー<br />
ド - クリアなし<br />
c.clr チェック・ロー<br />
ド - クリアあり<br />
c.clr.acq 順序付けされた<br />
チェック・ロー<br />
ド - クリアあり<br />
acq 順序付けされた<br />
ロード<br />
bias バイアスされた<br />
ロード<br />
意味 特殊 Load 操作<br />
ALAT にエントリが追加される。それにより、以降の命令でストアの衝<br />
突の有無を確認できる。参照されたデータ・ページに非スペキュレー<br />
ティブ属性があった場合は、ターゲット・レジスタの NaT ビットがクリ<br />
アされ、プロセッサによって、ターゲット・レジスタに対する ALAT エ<br />
ントリが存在しないことが保証される。ALAT エントリが存在しないと<br />
いうことを利用して、後でデファード ( 据え ) または衝突を検出する。<br />
ALAT にエントリが追加され、特定の例外を据え置かせることができる。<br />
例外を据え置くと、ターゲット・レジスタの NaT ビットがセットされ、<br />
プロセッサによって、ターゲット・レジスタに対する ALAT エントリが<br />
存在しないことが保証される。ALAT エントリが存在しないことを利用<br />
して、後でデファード ( 据え ) または衝突を検出する。<br />
ALAT を検索して一致するエントリが探され、見つかった場合は、ロー<br />
ドは実行されず、ターゲット・レジスタは変更されない。指定されてい<br />
る場合には、ALAT のヒットまたはミスに関わらず、ベース・レジスタ<br />
の更新が実行される。ALAT エントリの一致の有無に関わらず、必要に<br />
応じて ALAT ルックアップを失敗させることができる。見つからなかっ<br />
た場合は、ロードが実行され、参照されたデータ・ページに非スペキュ<br />
レーティブ属性がない場合は、エントリが ALAT に追加される。非スペ<br />
キュレーティブ属性があった場合は、ALAT エントリは割り当てられな<br />
い。<br />
ALAT が検索されて一致するエントリが探され、見つかった場合は、そ<br />
のエントリが削除され、ロードは実行されず、ターゲット・レジスタは<br />
変更されない。指定されている場合には、ALAT のヒットまたはミスに<br />
関わらず、ベース・レジスタ更新が実行される。ALAT エントリの一致<br />
の有無に関わらず、ALAT ルックアップを必要に応じて失敗させること<br />
ができる。見つからなかった場合は、クリア・チェック・ロードの動作<br />
は通常のロードと同様になる。<br />
このタイプの動作は、ALAT ルックアップ ( および、ALAT エントリが見<br />
つからなかった場合、結果のロード ) が acquire ( 取得 ) のセマンティッ<br />
クスを使用して実行される以外は、順序付けなしのクリア形式と同じで<br />
ある。<br />
acquire のセマンティックスを使用して順序付けされたロードが実行され<br />
る。<br />
アクセスされるキャッシュ・ラインの排他的所有権を取得するよう指示<br />
するヒントが提示される。<br />
順序付け されたロ ー ド 、 バイアス さ れた ロ ー ド 、 スペキ ュ レ ー テ ィ ブ ・ ロ ー ド 、 ア ド バ<br />
ンス ド ・ ロー ド、 チェ ッ ク ・ ロー ドの詳細は、 第 1 巻、 第 1 部の 4.4.4 項 「コン ト ロー<br />
ル ・ スペキュ レーシ ョ ン」 と 第 1 巻、 第 1 部の 4.4.5 項 「データ ・ スペキュレーシ ョ ン」<br />
を参照。 順序付け さ れたロ ー ド の詳細は、 第 1 巻、 第 1 部の 4.4.7 項 「メモリ ・ アクセス<br />
順序」 を参照。 バイアス されたロ ー ド の詳細は、 第 1 巻、 第 1 部の 4.4.6 項 「メモリ階層<br />
の制御 と 整合性」 を参照。 メモ リ 属性の詳細は、 第 2 巻、 第 1 部の 4.4 節 「メモリ属性」<br />
を参照のこ と。<br />
非スペキ ュ レ ーテ ィ ブ ・ ロ ー ド ・ タ イプについては、 GR r3 に対応する NaT ビットが1<br />
の場合は、 レ ジス タ NaT 参照 (Register NaT Consumption) フォルトが発生する。 スペキュ<br />
レーティブ・ ロードおよびスペキュレーティブ・アドバンスド ・ ロードでは、 フォルト<br />
は発生せず、 例外がデフ ァ ー される ( 据え置かれる )。 ベース更新の計算では、 GR r2 に<br />
対応す る NaT ビッ トが1 の場合、 GR r3 に対応する NaT ビッ トが1 に設定され、 フ ォル<br />
トは発生しない。<br />
第 3 巻 : 命令リファレンス 3:135