24531904_j

24531904_j 24531904_j

16.02.2013 Aufrufe

PR[p2 ] = 0; } break; case ‘unc’: // unc-type compare default: // normal compare PR[p1 ] = tmp_rel; PR[p2 ] = !tmp_rel; break; } } else { if (ctype == ‘unc’) { if (p1 == p2) illegal_operation_fault(); PR[p1 ] = 0; PR[p2 ] = 0; } } 割り込み : 無効操作フ ォ ル ト 3:238 第 3 巻 : 命令リファレンス tnat

tpa tpa ─ 物理アドレスへの変換 (Translate to Physical Address) 書式 : (qp) tpar 1 = r 3 M46 説明 : この命令は、 GR r3 に よ っ て指定される仮想ア ド レ ス に対応する物理ア ド レ ス を取得し、 GR r1 に格納する。 PSR.dt が 1 の場合は、 DTLB および VHPT 内で、 GR r3 によって指定される仮想アドレ スと、 GR r3 のビ ッ ト {63:61} によってインデックスが付けられたリージョン ・ レジスタ が検索 さ れる。 一致す る現在の変換エン ト リ が見つか っ た場合は、 その変換エン ト リ の 物理ア ド レ スが GR r1 に格納される。 一致する現在の変換エン ト リ が見つか ら ない場合 は、 適切な TLB フォルトが発生する。 PSR.dt が 0 の場合は、 VHPT ウォーカがディスエーブルにされるため、 DTLB だけが検 索される。 DTLB 内で一致する現在の変換エン ト リ が見つか ら ない場合は、 psr.ic が 1 の 場合は別のデ ー タ TLB フォルトが発生し、 psr.ic が 0 の場合はデー タがネス ト された TLB フォルトが発生する。 こ の命令でフ ォ ル ト が発生した場合は、 ISR 内の非アク セス ・ ビ ッ ト がセ ッ ト される。 ISR の読み込みビットと書き込みビットはセットされない。 こ の命令は、 最高の特権レ ベル以外では実行で き ない。 操作 : if (PR[qp]) { itype = NON_ACCESS|TPA; check_target_register(r 1 ); } if (PSR.cpl != 0) privileged_operation_fault(itype); if (GR[r 3 ].nat) register_nat_consumption_fault(itype); GR[r 1 ] = tlb_translate_nonaccess(GR[r 3 ], itype); GR[r 1 ].nat = 0; 割り込み : 無効操作フ ォ ル ト 別のデ ー タ TLB フォルト 特権操作フ ォ ル ト VHPT データ ・ フォル ト レジスタ NaT 参照フ ォ ル ト デー タ TLB フォルト 実装 さ れていないデ ー タ ・ ア ド レ ス ・ フ ォ ル ト デー タ ・ ペー ジ不在フ ォ ル ト データがネス ト された TLB フォルト データNaT ページ参照フォル ト 第 3 巻 : 命令リファレンス 3:239

PR[p2 ] = 0;<br />

}<br />

break;<br />

case ‘unc’: // unc-type compare<br />

default: // normal compare<br />

PR[p1 ] = tmp_rel;<br />

PR[p2 ] = !tmp_rel;<br />

break;<br />

}<br />

} else {<br />

if (ctype == ‘unc’) {<br />

if (p1 == p2)<br />

illegal_operation_fault();<br />

PR[p1 ] = 0;<br />

PR[p2 ] = 0;<br />

}<br />

}<br />

割り込み : 無効操作フ ォ ル ト<br />

3:238 第 3 巻 : 命令リファレンス<br />

tnat

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!