24531904_j

24531904_j 24531904_j

16.02.2013 Aufrufe

て異なる。 バイアス定数には、 最小の正規化数の逆数を求めた と き、 オーバーフロ ーが発 生しない値が選択される。 3.7.1.4 実数と非数のエンコーディング IA プ ロ セ ッ サの浮動小数点フ ォ ー マ ッ ト は、 各種の実数 と 特殊な値を コ ー ド 化で き る。 こ れらの数と値は、 通常は以下のクラスに分類される。 • 符号付き ゼ ロ • デノーマル有限数 • 正規化有限数 • 符号付き無限大 • NaN (Not a Number) • 不定数 図 3-10 は、 これ ら の数 と 非数のエン コ ー デ ィ ン グが実数連続体の ど の部分を占め る かを示 している。 こ こでは、 IEEE 単精度 (32 ビッ ト ) フォーマットでのエンコーディングを示 す。 "S" は符号ビ ッ ト 、 "E" はバイアス さ れた指数、 "F" は小数部を表す ( 指数の値は 10 進数で示す )。 プ ロ セ ッ サは、 実行 さ れる計算の タ イ プに基づいて、 こ れ ら の値を操作した り 、 こ れ ら の 値で結果を返す こ と がで き る。 以下の各項では、 これら の数 と 非数について説明する。 3.7.1.5 符号付きゼロ ゼロは、 符号ビッ ト付きで +0 または -0 として表現できる。 2 つのエンコ ーデ ィ ングは、 同じ値を示している。 0 の結果の符号は、 実行される演算 と 、 使用 される丸めモー ド に よ っ て決ま る。 符号付き ゼロ は、 区間演算を実行するために用意されている。 0 の符号に よ っ て、 アンダ ー フ ロ ー が発生した方向や、 逆数計算で得 ら れた ∞の符号がわかる。 3.7.1.6 正規化有限数とデノーマル有限数 ゼ ロ でない有限数は、 正規化有限数 と デ ノ ー マル有限数の 2 つのク ラスに分類される。 正 規化有限数は、 0 ~ ∞の範囲の正規化実数フ ォ ー マ ッ ト で コ ー ド 化可能な、 ゼ ロ でないす べての有限値で構成 さ れる。 図 3-10 に示すフ ォ ーマ ッ ト では、 このグループの数は、 1 ~ 254 10 の範囲のバイアス された指数を持つすべての数値を含む ( バイ アス さ れない指数の 範囲は、 -126 10 ~ +127 10 である )。 3:860 第 3 巻 : IA-32 ストリーミング SIMD 拡張命令リファレンス

図 3-10. 実数と NaNs NaN 実数が限 り な く 0 に近づ く と 、 正規化数フ ォ ー マ ッ ト を使用して数を表現で き な く な る。 これは、 指数の範囲が足り な く な り、 先頭の 0 を削除するために 2 進小数点を右にシ フ ト ができな く なるためである。 バイアスされた指数が 0 であ る場合、 非常に小 さ い数を表現する に は、 仮数部の整数ビ ッ ト ( および通常は他の先頭ビット ) を 0 にする必要がある。 この範囲の数は、 デノ ーマル 数 ( ま たは極小数 ) と呼ばれる。 デノーマル数に先頭の 0 を使用する と、 非常に小さい数 を表現で き る。 ただし、 こ の非正規化に よ っ て、 精度は低下す る ( 先頭の 0 のために、 小 数部分の有効ビ ッ ト 数が減る )。 プ ロ セ ッ サは、 正規化浮動小数点計算を実行す る と き、 通常は正規化数を操作し、 正規化 数で結果を生成する。 結果がデノ ーマル数になった場合は、 アンダー フロー状態が発生し たことを示す。 デ ノ ー マル数は、 段階的アンダ ー フ ロ ー と 呼ばれる方法で計算 さ れる。 表 3-2 は、 非正規 化処理時の段階的アンダ ー フ ロ ー の例を示してい る。 こ こ では単精度実数フ ォ ー マ ッ ト が 使用 さ れてい る ため、 最小の指数 ( バイアスなし ) は -12610 になる。 この例では、 真の結 果を正規化数で得る ためには、 -12910 の指数が必要である。 -12910 は指数の許容範囲を超 えているため、 最小の指数である -12610 に達する まで先頭の 0 を挿入すれば、 計算結果 が非正規化される。 表 3-2. 非正規化処理 32 ビット浮動小数点フォーマットでの実数と NaN のエンコーディング S E F S E F 1 0 0 −0 +0 0 0 0 1 0 0.XXX - デノーマル 有限数 + デノーマル 有限数 0 0 1 1...254 任意の値 + 正規化 有限数 0 1...254 任意の値 2 0.XXX2 - 正規化有限数 1 255 0 −∞ X 1 −∞ 255 1.0XX 2 −SNaN X 注: 255 1.1XX −QNaN 1. 符号ビットは無視される。 2. 小数部分はゼロ以外の値でなければならない。 1 操作 符号部 指数部 a 仮数部 真の結果 0 −129 1.01011100000...00 非正規化 0 −128 0.10101110000...00 非正規化 0 −127 0.01010111000...00 非正規化 0 −126 0.00101011100...00 デノーマル数の結果 0 −126 0.00101011100...00 a. 指数はバイアスなしの 10 進数で示す。 - デノーマル有限数 + デノーマル有限数 - 正規化有限数 −0 +0 + 正規化有限数 0 255 0 X 1 255 1.0XX 2 255 1.1XX 第 3 巻 : IA-32 ストリーミング SIMD 拡張命令リファレンス 3:861 +∞ +SNaN +QNaN X 1 +∞ NaN

図 3-10. 実数と NaNs<br />

NaN<br />

実数が限 り な く 0 に近づ く と 、 正規化数フ ォ ー マ ッ ト を使用して数を表現で き な く な る。<br />

これは、 指数の範囲が足り な く な り、 先頭の 0 を削除するために 2 進小数点を右にシ フ ト<br />

ができな く なるためである。<br />

バイアスされた指数が 0 であ る場合、 非常に小 さ い数を表現する に は、 仮数部の整数ビ ッ<br />

ト ( および通常は他の先頭ビット ) を 0 にする必要がある。 この範囲の数は、 デノ ーマル<br />

数 ( ま たは極小数 ) と呼ばれる。 デノーマル数に先頭の 0 を使用する と、 非常に小さい数<br />

を表現で き る。 ただし、 こ の非正規化に よ っ て、 精度は低下す る ( 先頭の 0 のために、 小<br />

数部分の有効ビ ッ ト 数が減る )。<br />

プ ロ セ ッ サは、 正規化浮動小数点計算を実行す る と き、 通常は正規化数を操作し、 正規化<br />

数で結果を生成する。 結果がデノ ーマル数になった場合は、 アンダー フロー状態が発生し<br />

たことを示す。<br />

デ ノ ー マル数は、 段階的アンダ ー フ ロ ー と 呼ばれる方法で計算 さ れる。 表 3-2 は、 非正規<br />

化処理時の段階的アンダ ー フ ロ ー の例を示してい る。 こ こ では単精度実数フ ォ ー マ ッ ト が<br />

使用 さ れてい る ため、 最小の指数 ( バイアスなし ) は -12610 になる。 この例では、 真の結<br />

果を正規化数で得る ためには、 -12910 の指数が必要である。 -12910 は指数の許容範囲を超<br />

えているため、 最小の指数である -12610 に達する まで先頭の 0 を挿入すれば、 計算結果<br />

が非正規化される。<br />

表 3-2. 非正規化処理<br />

32 ビット浮動小数点フォーマットでの実数と NaN のエンコーディング<br />

S E F<br />

S E F<br />

1 0 0 −0<br />

+0 0 0 0<br />

1 0 0.XXX<br />

- デノーマル<br />

有限数<br />

+ デノーマル<br />

有限数<br />

0 0<br />

1 1...254 任意の値<br />

+ 正規化<br />

有限数<br />

0 1...254 任意の値<br />

2 0.XXX2 - 正規化有限数<br />

1 255 0 −∞<br />

X 1<br />

−∞<br />

255 1.0XX 2 −SNaN<br />

X<br />

注:<br />

255 1.1XX −QNaN<br />

1. 符号ビットは無視される。<br />

2. 小数部分はゼロ以外の値でなければならない。<br />

1<br />

操作 符号部 指数部 a<br />

仮数部<br />

真の結果 0 −129 1.01011100000...00<br />

非正規化 0 −128 0.10101110000...00<br />

非正規化 0 −127 0.01010111000...00<br />

非正規化 0 −126 0.00101011100...00<br />

デノーマル数の結果 0 −126 0.00101011100...00<br />

a. 指数はバイアスなしの 10 進数で示す。<br />

- デノーマル有限数 + デノーマル有限数<br />

- 正規化有限数 −0 +0<br />

+ 正規化有限数<br />

0 255 0<br />

X 1 255 1.0XX 2<br />

255 1.1XX<br />

第 3 巻 : IA-32 ストリーミング SIMD 拡張命令リファレンス 3:861<br />

+∞<br />

+SNaN<br />

+QNaN X 1<br />

+∞<br />

NaN

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!