24531904_j

24531904_j 24531904_j

16.02.2013 Aufrufe

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

fandcm ─ 浮動小数点補数の論理積 (Floating-point And Complement)<br />

fandcm<br />

書式 : (qp) fandcmf 1 = f 2 , f 3 F9<br />

説明 : FR f2 の仮数フ ィ ール ド と 、 FR f3 の仮数フ ィ ール ド をビ ッ ト 単位に補数を と っ た も の と<br />

の間でビ ッ ト 単位の論理積が計算される。 結果の値は FR f1 の仮数フ ィ ール ド に格納さ<br />

れる。 FR f1 の指数フ ィ ール ド は 2.063 (0x1003E) のバイアス付き指数に設定 さ れ、 FR f1 の符号フ ィ ール ド は正に対応する 0 に設定される。<br />

FR f2 か FR f3 が NaTVal である場合は、 FR f1 は計算結果ではな く NaTVal に設定される。<br />

操作 : if (PR[qp]) {<br />

fp_check_target_register(f 1 );<br />

if (tmp_isrcode = fp_reg_disabled(f 1 , f 2 , f 3 , 0))<br />

disabled_fp_register_fault(tmp_isrcode, 0);<br />

}<br />

FP 例外 : なし。<br />

if (fp_is_natval(FR[f 2 ]) || fp_is_natval(FR[f 3 ])) {<br />

FR[f 1] = NATVAL;<br />

} else {<br />

FR[f 1 ].significand = FR[f 2 ].significand & ~FR[f 3 ].significand;<br />

FR[f 1].exponent = FP_INTEGER_EXP;<br />

FR[f 1 ].sign = FP_SIGN_POSITIVE;<br />

}<br />

fp_update_psr(f 1);<br />

割り込み : 無効操作フ ォ ル ト 浮動小数点レ ジ ス タ無効フ ォ ル ト<br />

3:54 第 3 巻 : 命令リファレンス

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!