24531904_j
24531904_j 24531904_j
fandcm ─ 浮動小数点補数の論理積 (Floating-point And Complement) fandcm 書式 : (qp) fandcmf 1 = f 2 , f 3 F9 説明 : FR f2 の仮数フ ィ ール ド と 、 FR f3 の仮数フ ィ ール ド をビ ッ ト 単位に補数を と っ た も の と の間でビ ッ ト 単位の論理積が計算される。 結果の値は FR f1 の仮数フ ィ ール ド に格納さ れる。 FR f1 の指数フ ィ ール ド は 2.063 (0x1003E) のバイアス付き指数に設定 さ れ、 FR f1 の符号フ ィ ール ド は正に対応する 0 に設定される。 FR f2 か FR f3 が NaTVal である場合は、 FR f1 は計算結果ではな く NaTVal に設定される。 操作 : if (PR[qp]) { fp_check_target_register(f 1 ); if (tmp_isrcode = fp_reg_disabled(f 1 , f 2 , f 3 , 0)) disabled_fp_register_fault(tmp_isrcode, 0); } FP 例外 : なし。 if (fp_is_natval(FR[f 2 ]) || fp_is_natval(FR[f 3 ])) { FR[f 1] = NATVAL; } else { FR[f 1 ].significand = FR[f 2 ].significand & ~FR[f 3 ].significand; FR[f 1].exponent = FP_INTEGER_EXP; FR[f 1 ].sign = FP_SIGN_POSITIVE; } fp_update_psr(f 1); 割り込み : 無効操作フ ォ ル ト 浮動小数点レ ジ ス タ無効フ ォ ル ト 3:54 第 3 巻 : 命令リファレンス
fc fc ─ キャッシュのフラッシュ (Flush Cache) 書式 : (qp) fcr 3 invalidate_line_form M28 (qp) fc.ir 3 instruction_cache_coherent_form M28 説明 : invalidate_line_form では、 GR r3 の値で指定されるアド レスに関連付けられるキャ ッ シュ ・ ラインが、 プロセッサ ・ キャ ッシュ階層のすべてのレベルから無効にされる。 こ の無効化は コ ヒ ー レ ンス ・ ド メ イ ン全体にブ ロ ー ド キ ャ ス ト される。 その ラ イ ンが キャッシュ階層のどのレベルでもメモリ と整合しない場合は、 無効にされる前にメモリ に書き込まれる。 操作の対象と なる ライン ・ サイズは最低 32 バイ ト である (32 バイ ト境 界にアラ イ メン ト される )。 設計により、それより大きなラインをフラッシュできる。 instruction_cache_coherent 形式の場合、 GR r3 で指定されたキ ャ ッ シ ュ ・ ラ イ ンはプロ セッサ固有の方法でフラッシュされ、 命令キャッシュがデータ ・キャッシュに対してコ ヒーレントにされる。 キャッシュがメモリと整合していなくても、 fc.i 命令で タ ー ゲ ッ ト ・ キ ャ ッ シ ュ ・ ラ イ ン を無効化した り 、 タ ー ゲ ッ ト ・ キ ャ ッ シ ュ ・ ラ イ ン を メ モ リ に 書き戻す必要はない。 ただし、 命令キ ャ ッ シ ュ をデー タ ・ キ ャ ッ シ ュ に対して コ ヒ ー レ ントにする必要がある場合はfc.i 命令でそれを行 っ て も か ま わない。 命令キ ャ ッ シ ュ をすべてコ ヒーレン ト にするには、 必要に応じて fc.i 命令を コ ヒ ー レ ンス ・ ド メ イ ン全 体にブロ ー ド キ ャ ス ト する。 操作の対象と なる ラ イン ・ サイズは最低 32 バイ ト である (32 バイ ト境界にアライメン ト される )。 設計によ り、 それよ り大きなラインをフラッ シュできる。 特権レベル 0 で実行 さ れた場合、 fc および fc.i は、 ア ク セス権や保護キ ー のチ ェ ッ ク を実行しない。 その他の特権レベルでは、 fc および fc.i は、 1 バイ ト読み込みである かのよ う にアクセス権チェ ッ クを実行するが、 PSR.pk の値に関係な く 、 保護キ ー の チェックは実行しない。 操作の対象 と な る ラ イ ン を含むペー ジの メ モ リ 属性は、 こ れら の命令の動作に影響を与 えない。 fc 命令を使用して、 最初に メ モ リ 属性を キ ャ ッ シ ュ 不可に変更し、 次にア ド レ スの範囲を フ ラ ッ シ ュ すれば、 キ ャ ッ シ ュ か ら特定のア ド レ ス範囲を削除で き る。 こ れ ら の命令はデー タ依存のルールに従 う 。 つ ま り 、 同一ラ イ ン に対す る先行お よ び後 続のメモ リ 参照に関して順序付け される。 このプロセ ッ サに よ って行われる先行するす べてのス ト アが、 フ ラ ッ シュ操作に含まれる点で、 fc および fc.i 命令にはデー タ依存 が存在する。 fc および fc.i 命令は順序付けのない操作であ り 、 メモ リ ・ フ ェ ンス (mf) 命令に よ っ て影響 さ れない。 こ れら の命令は sync.i 命令に関して順序付け ら れる。 操作 : if (PR[qp]) { itype = NON_ACCESS|FC|READ; if (GR[r 3 ].nat) register_nat_consumption_fault(itype); tmp_paddr = tlb_translate_nonaccess(GR[r 3], itype); } if (invalidate_line_form) mem_flush(tmp_paddr); else // instruction_cache_coherent_form make_icache_coherent(tmp_paddr); 割り込み : レジスタ NaT 参照フ ォ ル ト デー タ TLB フォルト 実装 さ れていないデ ー タ ・ ア ド レ ス ・ フ ォ ル ト デー タ ・ ペー ジ不在フ ォ ル ト データがネス ト された TLB フォルト データNaT ページ参照フォル ト 別のデー タ TLB フォルト データ・アクセス権フォルト VHPT データ ・ フォル ト 第 3 巻 : 命令リファレンス 3:55
- 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 und 40: l 関係な く 、 無効操作フ
- Seite 41 und 42: p 操作 : tmp_tag = IP + sign_ext(
- 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: fand fand ─ 浮動小数点論理
- 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 ─ 浮動小数点乗算
- Seite 91 und 92: fneg fneg ─ 浮動小数点否定
- Seite 93 und 94: fnma fnma ─ 浮動小数点積和
- 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 ─ 浮動小数点並列
fc<br />
fc ─ キャッシュのフラッシュ (Flush Cache)<br />
書式 : (qp) fcr 3 invalidate_line_form M28<br />
(qp) fc.ir 3 instruction_cache_coherent_form M28<br />
説明 : invalidate_line_form では、 GR r3 の値で指定されるアド レスに関連付けられるキャ ッ<br />
シュ ・ ラインが、 プロセッサ ・ キャ ッシュ階層のすべてのレベルから無効にされる。 こ<br />
の無効化は コ ヒ ー レ ンス ・ ド メ イ ン全体にブ ロ ー ド キ ャ ス ト される。 その ラ イ ンが<br />
キャッシュ階層のどのレベルでもメモリ と整合しない場合は、 無効にされる前にメモリ<br />
に書き込まれる。 操作の対象と なる ライン ・ サイズは最低 32 バイ ト である (32 バイ ト境<br />
界にアラ イ メン ト される )。 設計により、それより大きなラインをフラッシュできる。<br />
instruction_cache_coherent 形式の場合、 GR r3 で指定されたキ ャ ッ シ ュ ・ ラ イ ンはプロ<br />
セッサ固有の方法でフラッシュされ、 命令キャッシュがデータ ・キャッシュに対してコ<br />
ヒーレントにされる。 キャッシュがメモリと整合していなくても、 fc.i 命令で タ ー ゲ ッ<br />
ト ・ キ ャ ッ シ ュ ・ ラ イ ン を無効化した り 、 タ ー ゲ ッ ト ・ キ ャ ッ シ ュ ・ ラ イ ン を メ モ リ に<br />
書き戻す必要はない。 ただし、 命令キ ャ ッ シ ュ をデー タ ・ キ ャ ッ シ ュ に対して コ ヒ ー レ<br />
ントにする必要がある場合はfc.i 命令でそれを行 っ て も か ま わない。 命令キ ャ ッ シ ュ<br />
をすべてコ ヒーレン ト にするには、 必要に応じて fc.i 命令を コ ヒ ー レ ンス ・ ド メ イ ン全<br />
体にブロ ー ド キ ャ ス ト する。 操作の対象と なる ラ イン ・ サイズは最低 32 バイ ト である<br />
(32 バイ ト境界にアライメン ト される )。 設計によ り、 それよ り大きなラインをフラッ<br />
シュできる。<br />
特権レベル 0 で実行 さ れた場合、 fc および fc.i は、 ア ク セス権や保護キ ー のチ ェ ッ ク<br />
を実行しない。 その他の特権レベルでは、 fc および fc.i は、 1 バイ ト読み込みである<br />
かのよ う にアクセス権チェ ッ クを実行するが、 PSR.pk の値に関係な く 、 保護キ ー の<br />
チェックは実行しない。<br />
操作の対象 と な る ラ イ ン を含むペー ジの メ モ リ 属性は、 こ れら の命令の動作に影響を与<br />
えない。 fc 命令を使用して、 最初に メ モ リ 属性を キ ャ ッ シ ュ 不可に変更し、 次にア ド レ<br />
スの範囲を フ ラ ッ シ ュ すれば、 キ ャ ッ シ ュ か ら特定のア ド レ ス範囲を削除で き る。<br />
こ れ ら の命令はデー タ依存のルールに従 う 。 つ ま り 、 同一ラ イ ン に対す る先行お よ び後<br />
続のメモ リ 参照に関して順序付け される。 このプロセ ッ サに よ って行われる先行するす<br />
べてのス ト アが、 フ ラ ッ シュ操作に含まれる点で、 fc および fc.i 命令にはデー タ依存<br />
が存在する。 fc および fc.i 命令は順序付けのない操作であ り 、 メモ リ ・ フ ェ ンス (mf)<br />
命令に よ っ て影響 さ れない。 こ れら の命令は sync.i 命令に関して順序付け ら れる。<br />
操作 : if (PR[qp]) {<br />
itype = NON_ACCESS|FC|READ;<br />
if (GR[r 3 ].nat)<br />
register_nat_consumption_fault(itype);<br />
tmp_paddr = tlb_translate_nonaccess(GR[r 3], itype);<br />
}<br />
if (invalidate_line_form)<br />
mem_flush(tmp_paddr);<br />
else // instruction_cache_coherent_form<br />
make_icache_coherent(tmp_paddr);<br />
割り込み : レジスタ NaT 参照フ ォ ル ト デー タ TLB フォルト<br />
実装 さ れていないデ ー タ ・ ア ド レ ス ・ フ ォ ル ト デー タ ・ ペー ジ不在フ ォ ル ト<br />
データがネス ト された TLB フォルト データNaT ページ参照フォル ト<br />
別のデー タ TLB フォルト データ・アクセス権フォルト<br />
VHPT データ ・ フォル ト<br />
第 3 巻 : 命令リファレンス 3:55