24531904_j

24531904_j 24531904_j

16.02.2013 Aufrufe

ttag ─ トランスレーション・ハッシュ・エントリ・タグ (Translation Hashed Entry Tag) 書式 : (qp) ttag r 1 = r 3 M46 説明 : ロ ン グ形式の仮想ハ ッ シ ュ ・ ペー ジ ・ テ ー ブル (VHPT) の検索時に照合に使用される タ グが生成され、 GR r1 に格納される。 仮想ア ド レスは GR r3 に指定 さ れ、 リ ー ジ ョ ン ・ レ ジスタは GR r3 のビッ ト {63:61} に選択される。 ttag 命令への入力 と して、 NaT 入力引数ま たは実装 さ れていない仮想ア ド レ スが指定 さ れた場合は、 得られるターゲ ッ ト ・ レジスタの値は不定であ り、 NaT ビットが1 にセッ トされる。 タグ生成関数は、 プロセ ッ サ固有のロ ング形式の VHPT タグを生成する。 タグ生成関数 は、 実装されたすべてのリージョン・ビットと、 仮想アドレス・ビット {60:0} を使用し なければならない。 この命令は、 PTA.vf を無視する。 ロング形式の VHPT 内の変換エン ト リ は、 thash 命令に よ っ て生成 さ れる ハ ッ シ ュ ・ イ ンデッ クス と、 この命令によ って生成されるタグによ って、 一意に識別されなければな らない。 この命令は、 VHPT ウォーカを実装していないプロセッサ・モデルを含む、 すべてのプ ロ セ ッ サ ・ モデル上に実装 さ れていなければな ら ない。 操作 : if (PR[qp]) { check_target_register(r 1 ); } 割り込み : 無効操作フ ォ ル ト if (GR[r 3 ].nat || unimplemented_virtual_address(GR[r 3 ])) { GR[r 1 ] = undefined(); GR[r 1 ].nat = 1; } else { tmp_vr = GR[r 3 ]{63:61}; tmp_va = GR[r 3 ]{60:0}; GR[r 1 ] = tlb_vhpt_tag(tmp_va, RR[tmp_vr].rid, RR[tmp_vr].ps); GR[r 1 ].nat = 0; } 3:240 第 3 巻 : 命令リファレンス ttag

unpack unpack ─ アンパック (Unpack) 書式 : (qp) unpack1.h r 1 = r 2 , r 3 one_byte_form, high_form I2 (qp) unpack2.h r 1 = r 2 , r 3 two_byte_form, high_form I2 (qp) unpack4.h r 1 = r 2 , r 3 four_byte_form, high_form I2 (qp) unpack1.l r 1 = r 2 , r 3 one_byte_form, low_form I2 (qp) unpack2.l r 1 = r 2 , r 3 two_byte_form, low_form I2 (qp) unpack4.l r 1 = r 2 , r 3 four_byte_form, low_form I2 説明 : GR r 2 および r 3 の各デー タ要素がアンパ ッ ク さ れ、 結果が GR r 1 に格納される。 high_form では、 各ソ ー ス ・ レ ジ ス タ の最上位要素が選択 さ れ、 それに対して low_form では、 各ソ ー ス ・ レ ジ ス タ の最下位要素が選択される。 要素は それぞれの ソ ー ス ・ レ ジ ス タ か ら 交互に選択 さ れる。 操作 : if (PR[qp]) { check_target_register(r 1 ); } if (one_byte_form) { // one-byte elements x[0] = GR[r 2 ]{7:0}; y[0] = GR[r 3 ]{7:0}; x[1] = GR[r 2]{15:8}; y[1] = GR[r 3]{15:8}; x[2] = GR[r 2 ]{23:16}; y[2] = GR[r 3 ]{23:16}; x[3] = GR[r 2 ]{31:24}; y[3] = GR[r 3 ]{31:24}; x[4] = GR[r 2]{39:32}; y[4] = GR[r 3]{39:32}; x[5] = GR[r 2 ]{47:40}; y[5] = GR[r 3 ]{47:40}; x[6] = GR[r 2 ]{55:48}; y[6] = GR[r 3 ]{55:48}; x[7] = GR[r 2]{63:56}; y[7] = GR[r 3]{63:56}; if (high_form) GR[r 1] = concatenate8( x[7], y[7], x[6], y[6], x[5], y[5], x[4], y[4]); else // low_form GR[r 1] = concatenate8( x[3], y[3], x[2], y[2], x[1], y[1], x[0], y[0]); } else if (two_byte_form) { // two-byte elements x[0] = GR[r 2]{15:0}; y[0] = GR[r 3]{15:0}; x[1] = GR[r 2 ]{31:16}; y[1] = GR[r 3 ]{31:16}; x[2] = GR[r 2 ]{47:32}; y[2] = GR[r 3 ]{47:32}; x[3] = GR[r 2]{63:48}; y[3] = GR[r 3]{63:48}; if (high_form) GR[r 1] = concatenate4(x[3], y[3], x[2], y[2]); else // low_form GR[r 1 ] = concatenate4(x[1], y[1], x[0], y[0]); } else { // four-byte elements x[0] = GR[r 2 ]{31:0}; y[0] = GR[r 3 ]{31:0}; x[1] = GR[r 2 ]{63:32}; y[1] = GR[r 3 ]{63:32}; if (high_form) GR[r1 ] = concatenate2(x[1], y[1]); else // low_form GR[r1 ] = concatenate2(x[0], y[0]); } GR[r1].nat = GR[r2].nat || GR[r3].nat; 第 3 巻 : 命令リファレンス 3:241

ttag ─ トランスレーション・ハッシュ・エントリ・タグ<br />

(Translation Hashed Entry Tag)<br />

書式 : (qp) ttag r 1 = r 3 M46<br />

説明 : ロ ン グ形式の仮想ハ ッ シ ュ ・ ペー ジ ・ テ ー ブル (VHPT) の検索時に照合に使用される タ<br />

グが生成され、 GR r1 に格納される。 仮想ア ド レスは GR r3 に指定 さ れ、 リ ー ジ ョ ン ・ レ<br />

ジスタは GR r3 のビッ ト {63:61} に選択される。<br />

ttag 命令への入力 と して、 NaT 入力引数ま たは実装 さ れていない仮想ア ド レ スが指定 さ<br />

れた場合は、 得られるターゲ ッ ト ・ レジスタの値は不定であ り、 NaT ビットが1 にセッ<br />

トされる。<br />

タグ生成関数は、 プロセ ッ サ固有のロ ング形式の VHPT タグを生成する。 タグ生成関数<br />

は、 実装されたすべてのリージョン・ビットと、 仮想アドレス・ビット {60:0} を使用し<br />

なければならない。 この命令は、 PTA.vf を無視する。<br />

ロング形式の VHPT 内の変換エン ト リ は、 thash 命令に よ っ て生成 さ れる ハ ッ シ ュ ・ イ<br />

ンデッ クス と、 この命令によ って生成されるタグによ って、 一意に識別されなければな<br />

らない。<br />

この命令は、 VHPT ウォーカを実装していないプロセッサ・モデルを含む、 すべてのプ<br />

ロ セ ッ サ ・ モデル上に実装 さ れていなければな ら ない。<br />

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

check_target_register(r 1 );<br />

}<br />

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

if (GR[r 3 ].nat || unimplemented_virtual_address(GR[r 3 ])) {<br />

GR[r 1 ] = undefined();<br />

GR[r 1 ].nat = 1;<br />

} else {<br />

tmp_vr = GR[r 3 ]{63:61};<br />

tmp_va = GR[r 3 ]{60:0};<br />

GR[r 1 ] = tlb_vhpt_tag(tmp_va, RR[tmp_vr].rid, RR[tmp_vr].ps);<br />

GR[r 1 ].nat = 0;<br />

}<br />

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

ttag

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!