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

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

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!