インテルのみ表示可能 — GUID: krz1548140094347
Ixiasoft
インテルのみ表示可能 — GUID: krz1548140094347
Ixiasoft
2.2.6. 浮動小数点演算における例外処理
Intel Agilex® 7の浮動小数点演算では、乗算器ブロックと加算器ブロックの例外処理をサポートします。
浮動小数点形式 | 例外フラグ | 幅 | 詳細 |
---|---|---|---|
単精度 | 乗算 | ||
fp32_mult_overflow | 1 | この信号は、乗算結果が表現可能な最大値よりも大きな値かを示します。 1: 乗算結果が表現可能な最大値よりも大きい値で、結果が無限大にキャストされる場合 0: 乗算結果が表現可能な最大値より大きくない場合 この信号は、加算または減算モードでは使用できません。 |
|
fp32_mult_underflow | 1 | この信号は、乗算結果が表現可能な最小値よりも小さな値かを示します。 1: 乗算結果が0以外の絶対値で表現可能な最小値よりも小さな値で、結果が0にフラッシュされる場合 0: 乗算結果が表現可能な最小値よりも大きい場合 この信号は、加算または減算モードでは使用できません。 |
|
fp32_mult_inexact | 1 | この信号は、乗算結果が正確に表現されているかを示します。
1: 乗算結果が次に当てはまる場合
0: 乗算結果が上記の基準のいずれにも該当しない場合 この信号は、加算または減算モードでは使用できません。 |
|
fp32_mult_invalid | 1 | この信号は、乗算器の演算が正しく定義されておらず、無効な結果が生成されていることを示します。 1: 乗算結果が無効で、qNaNにキャストされる場合 0: 乗算結果が無効な数値でない場合 この信号は、加算または減算モードでは使用できません。 |
|
加算 | |||
fp32_adder_overflow | 1 | この信号は、加算結果が表現可能な最大値よりも大きな値かを示します。 1: 加算結果が表現可能な最大値よりも大きい値で、結果が無限大にキャストされる場合 0: 加算結果が表現可能な最大値より大きくない場合 この信号は、乗算モードでは使用できません。 |
|
fp32_adder_underflow | 1 | この信号は、加算結果が表現可能な最小値よりも小さな値かを示します。 1: 加算結果が0以外の絶対値で表現可能な最小値よりも小さな値で、結果が0にフラッシュされる場合 0: 加算結果が表現可能な最小値よりも大きい場合 この信号は、乗算モードでは使用できません。 |
|
fp32_adder_inexact | 1 | この信号は、加算結果が正確に表現されているかを示します。
1: 加算結果が次に当てはまる場合
0: 加算結果が上記の基準のいずれにも該当しない場合 この信号は、乗算モードでは使用できません。 |
|
fp32_adder_invalid | 1 | この信号は、加算器の演算が正しく定義されておらず、無効な結果が生成されていることを示します。 1: 加算結果が無効で、qNaNにキャストされる場合 0: 加算結果が無効な数値でない場合 この信号は、乗算モードでは使用できません。 |
|
半精度 | 乗算 | ||
fp16_mult_top_overflow fp16_mult_bot_overflow |
1 | この信号は、上または下の乗算結果が表現可能な最大値よりも大きな値かを示します。 1: 乗算結果が表現可能な最大値よりも大きい値で、結果が無限大にキャストされる場合 0: 乗算結果が表現可能な最大値よりも小さい場合 この信号は、加算または減算モードおよび拡張形式では使用できません。 |
|
fp16_mult_top_underflow fp16_mult_bot_underflow |
1 | この信号は、上または下の乗算結果が表現可能な最小値よりも小さな値かを示します。 1: 乗算結果が表現可能な最小値よりも小さな値で、結果が0にフラッシュされる場合 0: 乗算結果が表現可能な最小値よりも大きい場合 この信号は、加算または減算モードおよび拡張形式では使用できません。 |
|
fp16_mult_top_inexact fp16_mult_bot_inexact |
1 | この信号は、上または下の乗算結果が正確に表現されているかを示します。
1: 乗算結果が次に当てはまる場合
0: 乗算結果が上記の基準のいずれにも該当しない場合 この信号は、加算または減算モードでは使用できません。 |
|
fp16_mult_top_invalid fp16_mult_bot_invalid |
1 | この信号は、乗算器の演算が正しく定義されておらず、無効な結果が生成されていることを示します。 1: 乗算結果が無効で、qNaNにキャストされる場合 0: 乗算結果が無効な数値でない場合 この信号は、加算または減算モードでは使用できません。 |
|
fp16_mult_top_infinite fp16_mult_bot_infinite |
1 | この信号は、上または下の乗算結果が正または負の無限大であることを示します。 1: 結果が無限大の場合 0: 結果が正規化された浮動小数点または適切な無限大の範囲にある場合 この信号は、拡張形式でのみ利用可能です。 |
|
fp16_mult_top_zero fp16_mult_bot_zero |
1 | この信号は、上または下の乗算結果が正または負の0であることを示します。 1: 結果が0の場合 0: 結果が0でない場合 この信号は、拡張形式でのみ利用可能です。 |
|
加算 | |||
fp16_adder_overflow | 1 | この信号は、加算結果が表現可能な最大値よりも大きな値かを示します。 1: 加算結果が表現可能な最大値よりも大きい値で、結果が無限大にキャストされる場合 0: 加算結果が表現可能な最大値より大きくない場合 この信号は、乗算モード 拡張形式では使用できません。 |
|
fp16_adder_underflow | 1 | この信号は、加算結果が表現可能な最小値よりも小さな値かを示します。 1: 加算結果が表現可能な最小値よりも小さな値で、結果が0にフラッシュされる場合 0: 加算結果が表現可能な最小値よりも大きい場合 この信号は、乗算モード 拡張形式では使用できません。 |
|
fp16_adder_inexact | 1 | この信号は、加算結果が正確に表現されているかを示します。
1: 加算結果が次に当てはまる場合
0: 加算結果が上記の基準のいずれにも該当しない場合 この信号は、乗算モードでは使用できません。 |
|
fp16_adder_invalid | 1 | この信号は、加算器の演算が正しく定義されておらず、無効な結果が生成されていることを示します。 1: 加算結果が無効で、qNaNにキャストされる場合 0: 加算結果が無効な数値でない場合 この信号は、乗算モードでは使用できません。 |
|
fp16_adder_infinite | 1 | この信号は、加算結果が正または負の無限大であることを示します。 1: 結果が無限大の場合 0: 結果が正規化された浮動小数点または適切な無限大の範囲にある場合 この信号は、拡張形式でのみ利用可能です。 |
|
fp16_adder_zero | 1 | この信号は、加算結果が正または負の0であることを示します。 1: 結果が0の場合 0: 結果が0でない場合 この信号は、拡張形式でのみ利用可能です。 |
入力A | 入力B | 結果 | 4 フラグ Overflow/Underflow/Inexact/Invalid |
---|---|---|---|
正規化されている | 正規化されている | 正規化された値 | 0/0/0/0 |
正規化された (丸められた) 値 | 0/0/1/0 | ||
正/負の無限大値 | 1/0/1/0 | ||
サブノーマル (デノーマル) 値 | 0/1/1/0 | ||
0またはサブノーマル (デノーマル) | 正規化されている | 0値 | 0/0/0/0 |
正/負の無限大 | 正規化されている | 正/負の無限大値 | 0/0/0/0 |
Quiet Not A Number (qNaN) | 正規化されている | qNaN値 | 0/0/0/0 |
0またはサブノーマル (デノーマル) | 0またはサブノーマル (デノーマル) | 0値 | 0/0/0/0 |
正/負の無限大 | 0またはサブノーマル (デノーマル) | qNaN値 | 0/0/0/1 |
Quiet Not A Number (qNaN) | 0またはサブノーマル (デノーマル) | qNaN値 | 0/0/0/0 |
正/負の無限大 | 正/負の無限大 | 正/負の無限大値 | 0/0/0/0 |
Quiet Not A Number (qNaN) | 正/負の無限大 | qNaN値 | 0/0/0/0 |
Quiet Not A Number (qNaN) | Quiet Not A Number (qNaN) | qNaN値 | 0/0/0/0 |
入力A | 入力B | 結果 | 4 フラグ Overflow/Underflow/Inexact/Invalid |
---|---|---|---|
正規化されている | 正規化されている | 正規化された値 | 0/0/0/0 |
正規化された (丸められた) 値 | 0/0/1/0 | ||
正/負の無限大値 | 1/0/1/0 | ||
0値 符号ビット = 0 |
0/0/0/0 | ||
サブノーマル (デノーマル) 値 符号は保持される |
0/1/1/0 | ||
0またはサブノーマル (デノーマル) | 正規化されている | 入力b | 0/0/0/0 |
正/負の無限大 | 正規化されている | 正/負の無限大値 | 0/0/0/0 |
Quiet Not A Number (qNaN) | 正規化されている | qNaN値 | 0/0/0/0 |
0またはサブノーマル (デノーマル) | 0またはサブノーマル (デノーマル) | 0値 (-0 + (-0)) の計算式では、符号ビット = 1。これ以外の計算式では、符号ビット = 0。 |
0/0/0/0 |
正/負の無限大 | 0またはサブノーマル (デノーマル) | 正/負の無限大値 | 0/0/0/0 |
Quiet Not A Number (qNaN) | 0またはサブノーマル (デノーマル) | qNaN値 | 0/0/0/0 |
正/負の無限大 | 正/負の無限大 | 無効なケースの場合はqNaN値 有効なケースの場合は正/負の無限大値 |
無効なケースの場合は0/0/0/1 有効なケースの場合は0/0/0/0
有効なケースは次のとおり
|
Quiet Not A Number (qNaN) | 正/負の無限大 | qNaN値 | 0/0/0/0 |
Quiet Not A Number (qNaN) | Quiet Not A Number (qNaN) | qNaN値 | 0/0/0/0 |
入力A | 入力B | 結果 | 4 フラグ Infinite/Zero/Inexact/Invalid |
---|---|---|---|
正規化されている/サブノーマル | 正規化されている/サブノーマル | 正規化されている/サブノーマル | 0/0/x/0 |
0値 | 正規化されている/サブノーマル | 0値 | 0/1/0/0 |
正/負の無限大 | 正規化されている/サブノーマル | 正/負の無限大値 | 1/0/0/0 |
Quiet Not A Number (qNaN) | 正規化されている/サブノーマル | qNaN値 | 0/0/0/1 仮数 = {100...00} |
0値 | 0値 | 0値 | 0/1/0/0 |
正/負の無限大 | 0値 | qNaN値 | 0/0/0/1 仮数 = {100...00} |
Quiet Not A Number (qNaN) | 0値 | qNaN値 | 0/0/0/1 仮数 = {100...00} |
正/負の無限大 | 正/負の無限大 | 正/負の無限大値 | 1/0/0/0 |
Quiet Not A Number (qNaN) | 正/負の無限大 | qNaN値 | 0/0/0/1 仮数 = {100...00} |
Quiet Not A Number (qNaN) | Quiet Not A Number (qNaN) | qNaN値 | 0/0/0/1 仮数 = {100...00} |
入力A | 入力B | 結果 | 4 フラグ Infinite/Zero/Inexact/Invalid |
---|---|---|---|
正規化されている/サブノーマル | 正規化されている/サブノーマル | 正規化されている/サブノーマル | 0/0/x/0 |
0値 符号ビット = 0 |
0/0/0/0 | ||
0値 | 正規化されている/サブノーマル | 入力b | 0/0/0/0 |
正/負の無限大 | 正規化されている/サブノーマル | 正/負の無限大値 | 1/0/0/0 |
Quiet Not A Number (qNaN) | 正規化されている/サブノーマル | qNaN値 | 0/0/0/1 仮数 = {100...00} |
0値 | 0値 | 0値 (-0 + (-0)) の計算式では、符号ビット = 1。これ以外の計算式では、符号ビット = 0。 |
0/0/0/0 |
正/負の無限大 | 0値 | 正/負の無限大値 | 1/0/0/0 |
Quiet Not A Number (qNaN) | 0値 | qNaN値 | 0/0/0/1 仮数 = {100...00} |
正/負の無限大 | 正/負の無限大 | 無効なケースの場合はqNaN値 有効なケースの場合は正/負の無限大値 |
無効なケースの場合は0/0/0/1 仮数 = {100...00} 有効なケースの場合は1/0/0/0
有効なケースは次のとおり
|
Quiet Not A Number (qNaN) | 正/負の無限大 | qNaN値 | 0/0/0/1 仮数 = {100...00} |
Quiet Not A Number (qNaN) | Quiet Not A Number (qNaN) | qNaN値 | 0/0/0/1 仮数 = {100...00} |