24531904_j

24531904_j 24531904_j

16.02.2013 Aufrufe

probe 操作 : if (PR[qp]) { itype = NON_ACCESS; itype |= (read_write_form) ? READ|WRITE : ((write_form) ? WRITE : READ); itype |= (fault_form) ? PROBE_FAULT : PROBE; } if (!fault_form) check_target_register(r 1 ); if (GR[r 3 ].nat || (register_form ? GR[r 2 ].nat : 0)) register_nat_consumption_fault(itype); tmp_pl = (register_form) ? GR[r 2 ]{1:0} : imm 2 ; if (tmp_pl < PSR.cpl) tmp_pl = PSR.cpl; if (fault_form) { tlb_translate(GR[r 3 ], 1, itype, tmp_pl, &mattr, &defer); } else { GR[r 1 ] = tlb_grant_permission(GR[r 3 ], itype, tmp_pl); GR[r 1 ].nat = 0; } 割り込み : 無効操作フ ォ ル ト デー タ NaT ページ参照フォル ト レジスタ NaT 参照フォルト データ・キー・ ミス・フォルト 実装されていないデータ ・アドレス ・ フォルト データ ・キー許可フォルト データがネス ト された TLB フォルト データ・アクセス権フォルト 別のデー タ TLB フォルト データ・ダーティ・ビット ・フォルト VHPT データ ・ フォル ト データ ・ アクセス ・ ビッ ト ・ フォル ト データ TLB フォルト データ・デバッグ・フォルト データ ・ ページ不在フォルト 3:194 第 3 巻 : 命令リファレンス

psad psad ─ 並列絶対差累計 (Parallel Sum of Absolute Difference) 書式 : (qp) psad1r 1 = r 2 , r 3 I2 説明 : GR r 2 の符号なし 8 ビッ トの各要素がGR r 3 の対応する符号なし 8 ビッ ト要素から減算さ れる。 各減算結果の絶対値がすべての要素について累計 さ れ、 GR r 1 に格納される。 図 2-38. 並列絶対差累計の例 操作 : if (PR[qp]) { check_target_register(r 1); } 割り込み : 無効操作フ ォ ル ト GR r3: GR r 2 : GR r 1 : - - - - - - - - abs abs abs abs abs abs abs abs + + + + 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}; GR[r 1 ] = 0; for (i = 0; i < 8; i++) { temp[i] = zero_ext(x[i], 8) - zero_ext(y[i], 8); if (temp[i] < 0) temp[i] = -temp[i]; GR[r 1 ] += temp[i]; } GR[r 1 ].nat = GR[r 2 ].nat || GR[r 3 ].nat; 第 3 巻 : 命令リファレンス 3:195 + psad1 + +

probe<br />

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

itype = NON_ACCESS;<br />

itype |= (read_write_form) ? READ|WRITE : ((write_form) ? WRITE : READ);<br />

itype |= (fault_form) ? PROBE_FAULT : PROBE;<br />

}<br />

if (!fault_form)<br />

check_target_register(r 1 );<br />

if (GR[r 3 ].nat || (register_form ? GR[r 2 ].nat : 0))<br />

register_nat_consumption_fault(itype);<br />

tmp_pl = (register_form) ? GR[r 2 ]{1:0} : imm 2 ;<br />

if (tmp_pl < PSR.cpl)<br />

tmp_pl = PSR.cpl;<br />

if (fault_form) {<br />

tlb_translate(GR[r 3 ], 1, itype, tmp_pl, &mattr, &defer);<br />

} else {<br />

GR[r 1 ] = tlb_grant_permission(GR[r 3 ], itype, tmp_pl);<br />

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

}<br />

割り込み : 無効操作フ ォ ル ト デー タ NaT ページ参照フォル ト<br />

レジスタ NaT 参照フォルト データ・キー・ ミス・フォルト<br />

実装されていないデータ ・アドレス ・ フォルト データ ・キー許可フォルト<br />

データがネス ト された TLB フォルト データ・アクセス権フォルト<br />

別のデー タ TLB フォルト データ・ダーティ・ビット ・フォルト<br />

VHPT データ ・ フォル ト データ ・ アクセス ・ ビッ ト ・ フォル ト<br />

データ TLB フォルト データ・デバッグ・フォルト<br />

データ ・ ページ不在フォルト<br />

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

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!