24531904_j
24531904_j 24531904_j
sync ─ メモリ同期化 (Memory Synchronization) 書式 : (qp) sync.i M24 説明 : sync.i 命令に よ っ て、 ロ ー カ ル ・ プ ロ セ ッ サか ら 以前に発行さ れたキ ャ ッ シ ュ のフ ラ ッ シュ (fc、 fci) 操作がロ ー カル ・ デー タ ・ メ モ リ の参照で検出可能にな っ た時点に、 先行 の fc 操作がロ ー カル ・ プ ロセ ッ サの命令フ ェ ッ チ ・ ス ト リ ー ムか ら も 検出される こ と が 保証 される。 さ ら に、 fc、 fci 操作が事前に起動 されている と 、 それら の操作が リ モー ト・プロセッサ上のデータ・メモリの参照で検出されるようになった時点に、 リモート・ プ ロセ ッ サ上の命令メモ リ 参照で も 検出 される こ と が保証 される。 sync.i は、 別のプロ セッサから観察される よ う に、 すべてのキャ ッ シュ ・ フラ ッ シュ操作に対して順序付け される。 sync.i とそれに先行する fc は、 別々の命令グループになければならない。 セ マンテ ィ ッ クス上の必要がある場合、 sync.i により fc、 fci が他のプロセ ッ サ上のデー タ ・ ス ト リ ー ムか ら検出で き る よ う に適切に強制す るためには、 プ ラ グ ラ マは明示的に 順序づけ されたデー タ参照 (acquire ( 取得 )、 release ( 解放 )、 fence ( フェンス) のいずれか のタイプ ) を挿入しなければならない。 sync.i は、 ロー カル ・ プロセ ッサおよび リ モー ト ・ プロセッサ上の命令キ ャ ッ シ ュ と デ ー タ ・ キ ャ ッ シ ュ と の間の順序付け関係を維持する場合に使用 さ れる。 命令を シ リ ア ル化す る操作を使用して、 ロ ー カ ル ・ プ ロ セ ッ サで sync.i に よ っ て起動された同期化 操作がプ ロ グ ラ ム実行中の特定の時点で観察 さ れていた こ と を確認で き る。 自己修正コ ー ド ( ローカル・プロセッサ) の例 : 3:232 第 3 巻 : 命令リファレンス sync st [L1] = data //store into local instruction stream fc L1 //flush stale datum from instruction/data cache ;; //require instruction boundary between fc and sync.i sync.i //ensure local and remote data/inst caches //are synchronized ;; srlz.i //ensure sync has been observed by the local processor, ;; //ensure subsequent instructions observe //modified memory L1: target //instruction modified 操作 : if (PR[qp]) { instruction_synchronize(); } 割り込み : なし
tak tak ─ トランスレーション・アクセス・キー (Translation Access Key) 書式 : (qp) takr 1 = r 3 M46 説明 : こ の命令は、 指定 さ れた仮想ア ド レ スの保護キ ー を取得し、 GR r1 に格納する。 PSR.dt が 1 の場合は、 DTLB および VHPT 内で、 GR r3 に指定される仮想ア ド レス と、 GR r3 のビ ッ ト {63:61} でインデッ クスが付けられたリ ージ ョ ン ・ レジスタが検索され る。 一致する現在の変換エン ト リ が見つか った場合は、 その変換エン ト リ の保護キーが GR r1 に格納される。 一致する現在の変換エン ト リ が見つか ら ない場合や、 実装されて いない仮想アド レスが GR r3 で指定された場合は、 1 の値が返される。 PSR.dt が 0 の場合は、 VHPT ウォーカがディスエーブルにされるため、 DTLB だけが検 索される。 DTLB 内で一致する現在の変換エン ト リ が見つか ら ない場合は、 1 の値が返 される。 NaTPage 属性を持つ変換エン ト リ も 同じ よ う に扱われ、 そのエン ト リ のキ ー ・ フ ィ ー ル ドが返される。 こ の命令は、 最高の特権レ ベル以外では実行で き ない。 操作 : if (PR[qp]) { itype = NON_ACCESS|TAK; check_target_register(r 1 ); } if (PSR.cpl != 0) privileged_operation_fault(itype); if (GR[r 3].nat) register_nat_consumption_fault(itype); GR[r1] = tlb_access_key(GR[r3], itype); GR[r 1 ].nat = 0; 割り込み : 無効操作フ ォ ル ト レ ジ ス タ NaT 参照フ ォ ル ト 特権操作フ ォ ル ト 第 3 巻 : 命令リファレンス 3:233
- Seite 193 und 194: pavg 図 2-31. 並列平均での
- Seite 195 und 196: pavgsub pavgsub ─ 並列平均減
- Seite 197 und 198: pcmp pcmp ─ 並列比較 (Paralle
- Seite 199 und 200: pmax pmax ─ 並列最大値 (Para
- Seite 201 und 202: pmpy pmpy ─ 並列乗算 (Paralle
- Seite 203 und 204: pmpyshr 操作 : if (PR[qp]) { chec
- Seite 205 und 206: probe probe ─ アクセスのプ
- Seite 207 und 208: psad psad ─ 並列絶対差累計
- Seite 209 und 210: pshladd pshladd ─ 並列左シフ
- Seite 211 und 212: pshr } 割り込み : 無効操作
- Seite 213 und 214: psub psub ─ 並列減算 (Paralle
- Seite 215 und 216: psub } 割り込み : 無効操作
- Seite 217 und 218: ptc.g, ptc.ga ptc.g, ptc.ga ─ グ
- Seite 219 und 220: ptc.l ptc.l ─ ローカル・ト
- Seite 221 und 222: ptr 割り込み : 特権操作フ
- Seite 223 und 224: fi この命令を発行する前
- Seite 225 und 226: sm rsm ─ システム・マスク
- Seite 227 und 228: um rum ─ ユーザ・マスクの
- Seite 229 und 230: setf 操作 : if (PR[qp]) { fp_chec
- Seite 231 und 232: shladd shladd ─ 左シフトお
- Seite 233 und 234: shr shr ─ 右シフト (Shift Rig
- Seite 235 und 236: srlz srlz ─ シリアル化 (Seri
- Seite 237 und 238: st st ─ ストア (Store) 書式
- Seite 239 und 240: stf stf ─ 浮動小数点スト
- Seite 241 und 242: sub sub ─ 減算 (Subtract) 書
- Seite 243: sxt sxt ─ 符号拡張 (Sign Exte
- Seite 247 und 248: tbit PR[p2 ] = 0; } break; case ‘
- Seite 249 und 250: tnat tnat ─ Test Nat テスト (T
- Seite 251 und 252: tpa tpa ─ 物理アドレスへ
- Seite 253 und 254: unpack unpack ─ アンパック (
- Seite 255 und 256: xchg xchg ─ 交換 (Exchange) 書
- Seite 257 und 258: xma xma ─ 固定小数点積和 (
- Seite 259 und 260: xmpy xmpy ─ 固定小数点乗算
- Seite 261 und 262: zxt zxt ─ ゼロ拡張 (Zero Exte
- Seite 263 und 264: 擬似コード関数 3 この章
- Seite 265 und 266: 表 3-1. 擬似コード関数 (
- Seite 267 und 268: 表 3-1. 擬似コード関数 (
- Seite 269 und 270: 表 3-1. 擬似コード関数 (
- Seite 271 und 272: 表 3-1. 擬似コード関数 (
- Seite 273 und 274: 表 3-1. 擬似コード関数 (
- Seite 275 und 276: 命令形式 4 個々の Itanium ®
- Seite 277 und 278: 使用 さ れていないメ ジ
- Seite 279 und 280: 表 4-4. 命令形式の要約 (
- Seite 281 und 282: 表 4-6. 命令フィールド名 (
- Seite 283 und 284: 4.2 A ユニット命令エンコ
- Seite 285 und 286: 4.2.1.4 Add Immediate 14 A4 4.2.1.5
- Seite 287 und 288: 4.2.2.2 Integer Compare to Zero ─
- Seite 289 und 290: 表 4-13. マルチメディア ALU
- Seite 291 und 292: 4.2.3.1 Multimedia ALU A9 4.2.3.2 M
- Seite 293 und 294: 表 4-18. マルチメディア・
tak<br />
tak ─ トランスレーション・アクセス・キー (Translation Access Key)<br />
書式 : (qp) takr 1 = r 3 M46<br />
説明 : こ の命令は、 指定 さ れた仮想ア ド レ スの保護キ ー を取得し、 GR r1 に格納する。<br />
PSR.dt が 1 の場合は、 DTLB および VHPT 内で、 GR r3 に指定される仮想ア ド レス と、<br />
GR r3 のビ ッ ト {63:61} でインデッ クスが付けられたリ ージ ョ ン ・ レジスタが検索され<br />
る。 一致する現在の変換エン ト リ が見つか った場合は、 その変換エン ト リ の保護キーが<br />
GR r1 に格納される。 一致する現在の変換エン ト リ が見つか ら ない場合や、 実装されて<br />
いない仮想アド レスが GR r3 で指定された場合は、 1 の値が返される。<br />
PSR.dt が 0 の場合は、 VHPT ウォーカがディスエーブルにされるため、 DTLB だけが検<br />
索される。 DTLB 内で一致する現在の変換エン ト リ が見つか ら ない場合は、 1 の値が返<br />
される。<br />
NaTPage 属性を持つ変換エン ト リ も 同じ よ う に扱われ、 そのエン ト リ のキ ー ・ フ ィ ー ル<br />
ドが返される。<br />
こ の命令は、 最高の特権レ ベル以外では実行で き ない。<br />
操作 : if (PR[qp]) {<br />
itype = NON_ACCESS|TAK;<br />
check_target_register(r 1 );<br />
}<br />
if (PSR.cpl != 0)<br />
privileged_operation_fault(itype);<br />
if (GR[r 3].nat)<br />
register_nat_consumption_fault(itype);<br />
GR[r1] = tlb_access_key(GR[r3], itype);<br />
GR[r 1 ].nat = 0;<br />
割り込み : 無効操作フ ォ ル ト レ ジ ス タ NaT 参照フ ォ ル ト<br />
特権操作フ ォ ル ト<br />
第 3 巻 : 命令リファレンス 3:233