16.02.2013 Aufrufe

24531904_j

24531904_j

24531904_j

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

pmin ─ 並列最小値 (Parallel Minimum)<br />

書式 : (qp) pmin1.ur 1 = r 2 , r 3 one_byte_form I2<br />

(qp) pmin2r 1 = r 2 , r 3 two_byte_form I2<br />

説明 : 2 つの ソ ー ス ・ オペラ ン ド の最小値が結果レ ジ ス タ に格納 さ れる。 one_byte_form では、<br />

GR r 2 の符号なし 8 ビッ トの各要素がGR r 3 の対応する符号なし 8 ビ ッ ト 要素 と 比較 さ<br />

れ、 要素の小 さ い方が GR r 1 の対応する 8 ビッ ト要素に格納される。 two_byte_form で<br />

は、 GR r 2 の符号付き 16 ビッ トの各要素がGR r 3 の対応す る符号付き 16 ビッ ト要素と比<br />

較され、 要素の小さい方が GR r 1 の対応する 16 ビット要素に格納される。<br />

図 2-35. 並列最小値の例<br />

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

check_target_register(r 1);<br />

}<br />

GR r 3 :<br />

GR r 2 :<br />

GR r 1 :<br />

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

t<br />

<<br />

f<br />

<<br />

t<br />

<<br />

t<br />

<<br />

f<br />

<<br />

pmin1.u<br />

f<br />

<<br />

f<br />

if (one_byte_form) { // one-byte elements<br />

x[0] = GR[r 2]{7:0}; y[0] = GR[r 3]{7:0};<br />

x[1] = GR[r 2 ]{15:8}; y[1] = GR[r 3 ]{15:8};<br />

x[2] = GR[r 2 ]{23:16}; y[2] = GR[r 3 ]{23:16};<br />

x[3] = GR[r 2]{31:24}; y[3] = GR[r 3]{31:24};<br />

x[4] = GR[r 2 ]{39:32}; y[4] = GR[r 3 ]{39:32};<br />

x[5] = GR[r 2 ]{47:40}; y[5] = GR[r 3 ]{47:40};<br />

x[6] = GR[r 2]{55:48}; y[6] = GR[r 3]{55:48};<br />

x[7] = GR[r 2 ]{63:56}; y[7] = GR[r 3 ]{63:56};<br />

for (i = 0; i < 8; i++) {<br />

res[i] = (zero_ext(x[i],8) < zero_ext(y[i],8)) ? x[i] : y[i];<br />

}<br />

GR[r 1 ] = concatenate8(res[7], res[6], res[5], res[4],<br />

res[3], res[2], res[1], res[0]);<br />

} else { // two-byte elements<br />

x[0] = GR[r 2 ]{15:0}; y[0] = GR[r 3 ]{15:0};<br />

x[1] = GR[r 2]{31:16}; y[1] = GR[r 3]{31:16};<br />

x[2] = GR[r 2 ]{47:32}; y[2] = GR[r 3 ]{47:32};<br />

x[3] = GR[r 2 ]{63:48}; y[3] = GR[r 3 ]{63:48};<br />

for (i = 0; i < 4; i++) {<br />

res[i] = (sign_ext(x[i],16) < sign_ext(y[i],16)) ? x[i] : y[i];<br />

}<br />

GR[r 1 ] = concatenate4(res[3], res[2], res[1], res[0]);<br />

}<br />

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

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

<<br />

t<br />

<<br />

GR r 3 :<br />

GR r 2 :<br />

GR r 1 :<br />

<<br />

真 偽<br />

真 真<br />

<<br />

pmin2<br />

<<br />

<<br />

pmin

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!