(57)【要約】【課題】浮動小数点数を整数に変換するためのスキームが提供される。【解決手段】本発明は、浮動小数点形式で構成された浮動小数点数を格納するメモリと、浮動小数点数の少なくとも一部分を正規化して正規化された数を生成する正規化エンジンと、浮動小数点数を整数に変換するための所定のラウンディング値の集合に基づいてインジェクション常数を生成するためのルックアップテーブルと、正規化された数とインジェクション常数とを加算して整数結果を生成する加算器とを含む電子装置を提供する。【選択図】図１
2015127954.tif 000002
【特許請求の範囲】
【請求項１】
浮動小数点形式で構成された浮動小数点数を格納するように構成されるメモリと、
前記浮動小数点数の少なくとも一部分を正規化して正規化された数を生成するように構成される正規化エンジンと、
浮動小数点数を整数に変換するための所定のラウンディング値の集合に基づいてインジェクション常数を生成するように構成されるルックアップテーブルと、
前記正規化された数と前記インジェクション常数とを加算して整数結果を生成するように構成される加算器と、を含む電子装置。
【請求項２】
前記加算器は、前記正規化された数と前記インジェクション常数とだけを加算するように構成される請求項１に記載の電子装置。
【請求項３】
前記インジェクション常数は、ラウンドインジェクションビット、スティッキーインジェクションビット、及びキャリーイン値を含む請求項１に記載の電子装置。
【請求項４】
前記インジェクション常数は、前記浮動小数点数の符号ビットと同一のキャリーインビットを含み、
前記インジェクション常数は、ラウンドインジェクションビット及びスティッキーインジェクションビットをさらに含み、
０に向かうラウンディングが遂行される場合、前記ラウンドインジェクションビット及び前記スティッキーインジェクションビットは、前記浮動小数点数の前記符号ビットと同一であり、
負の無限大に向かうラウンディングが遂行される場合、前記ラウンドインジェクションビット及び前記スティッキーインジェクションビットは、０と同一であり、
正の無限大に向かうラウンディングが遂行される場合、前記ラウンドインジェクションビット及び前記スティッキーインジェクションビットは、１と同一であり、
最も近接した数へのラウンディングが遂行される場合、前記ラウンドインジェクションビットは、１と同一であり、かつ前記スティッキーインジェクションビットは、０と同一である請求項１に記載の電子装置。
【請求項５】
前記浮動小数点数が負の数である場合、前記正規化エンジンは、１の補数演算を通じて前記浮動小数点数の正規化された形態を反転させるようにさらに構成される請求項１に記載の電子装置。
【請求項６】
所定のインジェクション常数の集合に基づいて、前記整数結果の最下位ビットが修正されるか否かを判別するための最下位ビット修正回路をさらに含む請求項１に記載の電子装置。
【請求項７】
前記整数結果は、２の補数形式で構成された整数値を含む請求項１に記載の電子装置。
【請求項８】
前記整数結果は、符号を有しない形式の整数値を含む請求項１に記載の電子装置。
【請求項９】
電子装置の動作方法において、
浮動小数点形式で構成された浮動小数点数が提供される段階と、
正規化された数を生成するために前記浮動小数点数の少なくとも一部分を正規化する段階と、
浮動小数点数を整数に変換するための所定のラウンディング値の集合にしたがって少なくとも１つのラウンディング値を算出する段階と、
整数結果を生成するために前記正規化された数と前記算出されたラウンディング値とを加算する段階と、を含む動作方法。
【請求項１０】
前記正規化された数と前記算出されたラウンディング値とを加算する段階は、前記正規化された数と前記算出されたラウンディング値とだけを加算する段階を含む請求項９に記載の動作方法。
【請求項１１】
前記少なくとも１つのラウンディング値は、ラウンドインジェクションビット、スティッキーインジェクションビット、及びキャリーイン値を含む請求項９に記載の動作方法。
【請求項１２】
前記少なくとも１つのラウンディング値は、前記浮動小数点数の符号ビットと同一のキャリーインビットを含み、
前記少なくとも１つのラウンディング値は、ラウンドインジェクションビット及びスティッキーインジェクションビットをさらに含み、
０に向かうラウンディングが遂行される場合、前記ラウンドインジェクションビット及び前記スティッキーインジェクションビットは、前記浮動小数点数の前記符号ビットと同一であり、
負の無限大に向かうラウンディングが遂行される場合、前記ラウンドインジェクションビット及び前記スティッキーインジェクションビットは、０と同一であり、
正の無限大に向かうラウンディングが遂行される場合、前記ラウンドインジェクションビット及び前記スティッキーインジェクションビットは、１と同一であり、
最も近接した数へのラウンディングが遂行される場合、前記ラウンドインジェクションビットは、１と同一であり、かつ前記スティッキーインジェクションビットは、０と同一である請求項９に記載の動作方法。
【請求項１３】
前記浮動小数点数の少なくとも一部分を正規化する段階は、前記浮動小数点数が負の数である場合、１の補数演算を通じて前記浮動小数点数の正規化された形態を反転させる段階を含む請求項９に記載の動作方法。
【請求項１４】
前記所定のラウンディング値の集合に基づいて、前記整数結果の最下位ビットが修正されるか否かを判別する段階と、
前記整数結果の前記最下位ビットが修正されるものであると判別された場合、前記整数結果の前記最下位ビットを修正する段階と、をさらに含む請求項９に記載の動作方法。
【請求項１５】
前記整数結果は、２の補数形式で構成された整数値を含む請求項９に記載の動作方法。
【請求項１６】
前記整数結果は、符号を有しない形式の整数値を含む請求項９に記載の動作方法。
【請求項１７】
浮動小数点形式で構成された浮動小数点数を格納するように構成されるメモリと、
前記浮動小数点数を整数に変換するように構成される浮動小数点変換ユニットと、を含み、
前記浮動小数点変換ユニットは、
前記浮動小数点数の少なくとも一部分を正規化して正規化された数を生成するように構成される正規化エンジンと、
浮動小数点数を整数に変換するための所定のラウンディング値の集合に基づいてインジェクション常数を生成するように構成されるルックアップテーブルと、
前記正規化された数と前記インジェクション常数とを加算して整数結果を生成するように構成される加算器と、を含む電子システム。
【請求項１８】
前記加算器は、前記正規化された数と前記インジェクション常数とだけを加算するように構成される請求項１７に記載の電子システム。
【請求項１９】
前記インジェクション常数は、前記浮動小数点数の符号ビットと同一のキャリーインビットを含み、
前記インジェクション常数は、ラウンドインジェクションビット及びスティッキーインジェクションビットをさらに含み、
０に向かうラウンディングが遂行される場合、前記ラウンドインジェクションビット及び前記スティッキーインジェクションビットは、前記浮動小数点数の前記符号ビットと同一であり、
負の無限大に向かうラウンディングが遂行される場合、前記ラウンドインジェクションビット及び前記スティッキーインジェクションビットは、０と同一であり、
正の無限大に向かうラウンディングが遂行される場合、前記ラウンドインジェクションビット及び前記スティッキーインジェクションビットは、１と同一であり、
最も近接した数へのラウンディングが遂行される場合、前記ラウンドインジェクションビットは、１と同一であり、かつ前記スティッキーインジェクションビットは、０と同一である請求項１７に記載の電子システム。
【請求項２０】
前記整数結果は、２の補数形式で構成された整数値を含む請求項１７に記載の電子システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デジタル数（Ｄｉｇｉｔａｌ  Ｎｕｍｂｅｒ）の形式（Ｆｏｒｍａｔ）の変換（Ｃｏｎｖｅｒｓｉｏｎ）に関し、さらに具体的には、浮動小数点数（Ｆｌｏａｔｉｎｇ  Ｐｏｉｎｔ  Ｎｕｍｂｅｒ）を整数（Ｉｎｔｅｇｅｒ  Ｎｕｍｂｅｒ）に変換する方法に関する。
【背景技術】
【０００２】
演算方法において、浮動小数点数は、広い範囲の値を示すことができるように実数（Ｒｅａｌ  Ｎｕｍｂｅｒ）の近似値（Ａｐｐｒｏｘｉｍａｔｉｏｎ）を表現するための技法として利用される。浮動小数点数は、固定長（Ｆｉｘｅｄ  ｎｕｍｂｅｒ）の有効数字（Ｓｉｇｎｉｆｉｃａｎｔ  Ｄｉｇｉｔ）、及び指数（Ｅｘｐｏｎｅｎｔ）を利用する大きさの表示によって近似的に表現される。“浮動小数点”という用語は、ある数の基数点（Ｒａｄｉｘ  Ｐｏｉｎｔ；例えば、小数点（Ｂｉｎａｒｙ  Ｐｏｉｎｔ）、又はコンピューターにおいてはさらに一般的な二進小数点（Ｂｉｎａｒｙ  Ｐｏｉｎｔ））が移動（Ｆｌｏａｔｉｎｇ）できること、即ち、その数の有効数字にしたがって何処にも位置できることを意味する。基数点の位置は内部的に表現の指数成分によって示すことができ、したがって、浮動小数点は科学的な表記法をコンピューター上で具現したもの（例えば、１．２３４×１０３は１，２３４を表現したもの）として理解されることができる。
【０００３】
浮動小数点演算のためのＩＥＥＥ（Ｉｎｓｔｉｔｕｔｅ  ｏｆ  Ｅｌｅｃｔｒｉｃａｌ  ａｎｄ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｅｎｇｉｎｅｅｒｓ）標準（Ｓｔａｎｄａｒｄ）であるＩＥＥＥ  ７５４は、１９８５年にＩＥＥＥによって策定された浮動小数点演算のための技法の標準である。多くのハードウェア的な浮動小数点ユニット又は回路は、大部分がＩＥＥＥ７５４標準にしたがう。ここで、“ＩＥＥＥ７５４”という用語は、浮動小数点演算のためのＩＥＥＥ標準文書７５４−２００８（２００８年８月２９日策定）にしたがう標準、又はこの標準文書から派生するか、或いはこの標準文書に先行する標準を意味する。
【０００４】
ＩＥＥＥ７５４標準は多様な精度を許容する。精度に関する２つの水準として、３２ビットの精度及び６４ビットの精度が例として挙げられる。浮動小数点数（Ｆｌｏａｔｉｎｇ  Ｐｏｉｎｔ  Ｎｕｍｂｅｒ）の３２ビット形態は、１ビットの符号（Ｓｉｇｎ）ビット（その数が正の数であるか、又は負の数であるかを示す）、８ビットの指数部分（２の冪数（Ｐｏｗｅｒ）形態で基数点の位置を示す）、及び２３ビットの分数（Ｆｒａｃｔｉｏｎ）、有効数字、又は仮数（Ｍａｎｔｉｓｓａ）部分（指数部分の２の冪数と掛けられる実数部分を示す）を含む。浮動小数点数の６４ビット形態は、１ビットの符号ビット、１１ビットの指数部分、及び５２ビットの分数部分を含む。上記の説明は、開示される技術思想を限定するものではなく、単なる幾つかの例示である。
【０００５】
反対に、整数は、分数又は小数点無しで使われる数（例えば、２１、４、−２０４８等）を含む。整数は、浮動小数点数の仮数部分に対応するものとして理解されることができる。コンピューター科学において、整数の大きさ又は範囲は、その値を示すために利用される数字又はビット数によって制限される（例えば、８ビットの整数は０乃至２５５を表現することができ、１６ビットの整数は０乃至６５，５３５を表現することができる）。整数は、符号を有するか、或いは符号を有しない。符号を有しない整数（Ｕｎｓｉｇｎｅｄ  Ｉｎｔｅｇｅｒ）は正の数（又は負の数ではない整数、例えば０乃至２５５）を含む反面、符号を有する整数（Ｓｉｇｎｅｄ  Ｉｎｔｅｇｅｒ）の場合には、正の数及び負の数を全て含むように数によって表現される範囲が調節される（例えば、−１２８乃至１２７、−３２，７６８乃至３２，７６７等）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】米国特許第５２５７２１５号明細書
【特許文献２】米国特許第５８９２６９８号明細書
【特許文献３】米国特許第６２０５４６１号明細書
【特許文献４】米国特許第６３６６９４２号明細書
【特許文献５】米国特許第７４３３９１１号明細書
【特許文献６】米国特許第８３８６７５５号明細書
【特許文献７】米国特許出願公開第２０１２−０１２４１１６号明細書
【特許文献８】米国特許出願公開第２０１２−０２１５８２３号明細書
【非特許文献】
【０００７】
【非特許文献１】Ｇ．ＥＶＥＮ  ｅｔ  ａｌ．，“Ａ  ｃｏｍｐａｒｉｓｏｎ  ｏｆ  ｔｈｒｅｅ  ｒｏｕｎｄｉｎｇ  ａｌｇｏｒｉｔｈｍｓ  ｆｏｒ  ＩＥＥＥ  ｆｌｏａｔｉｎｇ−ｐｏｉｎｔ  ｍｕｌｔｉｐｌｉｃａｔｉｏｎ”，  Ｃｏｍｐｕｔｅｒｓ，ＩＥＥＥ  Ｔｒａｎｓａｃｔｉｏｎｓ  ｏｎ  （Ｖｏｌｕｍｅ：４９，Ｉｓｓｕｅ：７），Ａｕｇｕｓｔ  ２９，１９９８．
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明の目的は、浮動小数点数を整数に変換するためのスキーム（Ｓｃｈｅｍｅ）を提供することにある。
【課題を解決するための手段】
【０００９】
本発明の実施形態による電子装置は、浮動小数点形式で構成された浮動小数点数を格納するように構成されるメモリと、浮動小数点数の少なくとも一部分を正規化して正規化された数を生成するように構成される正規化エンジンと、浮動小数点数を整数に変換するための所定のラウンディング値の集合に基づいてインジェクション常数を生成するように構成されるルックアップテーブルと、正規化された数とインジェクション常数とを加算して整数結果を生成するように構成される加算器と、を含むことができる。
【００１０】
本発明の実施形態において、加算器は、正規化された数とインジェクション常数とだけを加算するように構成されることができる。
本発明の実施形態において、インジェクション常数は、ラウンドインジェクションビット、スティッキーインジェクションビット、及びキャリーイン値を含むことができる。
【００１１】
本発明の実施形態において、インジェクション常数は、浮動小数点数の符号ビットと同一のキャリーインビットを含むことができる。さらに、インジェクション常数は、ラウンドインジェクションビット及びスティッキーインジェクションビットをさらに含むことができる。この実施形態において、０に向かうラウンディングが遂行される場合、ラウンドインジェクションビット及びスティッキーインジェクションビットは、浮動小数点数の符号ビットと同一であり、負の無限大に向かうラウンディングが遂行される場合、ラウンドインジェクションビット及びスティッキーインジェクションビットは、０と同一であり、正の無限大に向かうラウンディングが遂行される場合、ラウンドインジェクションビット及びスティッキーインジェクションビットは、１と同一であり、最も近接した数へのラウンディングが遂行される場合、ラウンドインジェクションビットは、１と同一であり、かつスティッキーインジェクションビットは、０と同一であることができる。
【００１２】
本発明の実施形態において、浮動小数点数が負の数である場合、正規化エンジンは、１の補数演算を通じて浮動小数点数の正規化された形態を反転させるように構成されることができる。
本発明の実施形態による電子装置は、所定のインジェクション常数の集合に基づいて、整数結果の最下位ビットが修正されるか否かを判別するための最下位ビット修正回路をさらに含むことができる。
本発明の実施形態において、整数結果は、２の補数形式で構成された整数値を含むことができる。
本発明の実施形態において、整数結果は、符号を有しない形式の整数値を含むことができる。
【００１３】
本発明の実施形態による電子装置の動作方法は、浮動小数点形式で構成された浮動小数点数が提供される段階と、正規化された数を生成するために浮動小数点数の少なくとも一部分を正規化する段階と、浮動小数点数を整数に変換するための所定のラウンディング値の集合にしたがって少なくとも１つのラウンディング値を算出する段階と、整数結果を生成するために正規化された数と算出されたラウンディング値とを加算する段階と、を含むことができる。
【００１４】
本発明の実施形態において、正規化された数とラウンディング値とを加算する段階は、正規化された数とラウンディング値とだけを加算する段階を含むことができる。
本発明の実施形態において、少なくとも１つのラウンディング値は、ラウンドインジェクションビット、スティッキーインジェクションビット、及びキャリーイン値を含むことができる。
【００１５】
本発明の実施形態において、少なくとも１つのラウンディング値は、浮動小数点数の符号ビットと同一のキャリーインビットを含むことができる。さらに、少なくとも１つのラウンディング値は、ラウンドインジェクションビット及びスティッキーインジェクションビットをさらに含むことができる。この実施形態において、０に向かうラウンディングが遂行される場合、ラウンドインジェクションビット及びスティッキーインジェクションビットは、浮動小数点数の符号ビットと同一であり、負の無限大に向かうラウンディングが遂行される場合、ラウンドインジェクションビット及びスティッキーインジェクションビットは、０と同一であり、正の無限大に向かうラウンディングが遂行される場合、ラウンドインジェクションビット及びスティッキーインジェクションビットは、１と同一であり、最も近接した数へのラウンディングが遂行される場合、ラウンドインジェクションビットは、１と同一であり、かつスティッキーインジェクションビットは、０と同一であることができる。
【００１６】
本発明の実施形態において、浮動小数点数の少なくとも一部分を正規化する段階は、浮動小数点数が負の数である場合、１の補数演算を通じて浮動小数点数の正規化された形態を反転させる段階を含むことができる。
本発明の実施形態による動作方法は、所定のラウンディング値の集合に基づいて、整数結果の最下位ビットが修正されるか否かを判別する段階と、整数結果の最下位ビットが修正されるものであると判別された場合、整数結果の最下位ビットを修正する段階と、をさらに含むことができる。
本発明の実施形態において、整数結果は、２の補数形式で構成された整数値を含むことができる。
本発明の実施形態において、整数結果は、符号を有しない形式の整数値を含むことができる。
【００１７】
本発明の実施形態による電子システムは、浮動小数点形式で構成された浮動小数点数を格納するように構成されるメモリと、浮動小数点数を整数に変換するように構成される浮動小数点変換ユニットと、を含み、浮動小数点変換ユニットは、浮動小数点数の少なくとも一部分を正規化して正規化された数を生成するように構成される正規化エンジンと、浮動小数点数を整数に変換するための所定のラウンディング値の集合に基づいてインジェクション常数を生成するように構成されるルックアップテーブルと、正規化された数とインジェクション常数とを加算して整数結果を生成するように構成される加算器と、含むことができる。
【００１８】
本発明の実施形態において、加算器は、正規化された数とインジェクション常数とだけを加算するように構成されることができる。
本発明の実施形態において、インジェクション常数は、浮動小数点数の符号ビットと同一のキャリーインビットを含むことができる。さらに、インジェクション常数は、ラウンドインジェクションビット及びスティッキーインジェクションビットをさらに含むことができる。この実施形態において、０に向かうラウンディングが遂行される場合、ラウンドインジェクションビット及びスティッキーインジェクションビットは、浮動小数点数の符号ビットと同一であり、負の無限大に向かうラウンディングが遂行される場合、ラウンドインジェクションビット及びスティッキーインジェクションビットは、０と同一であり、正の無限大に向かうラウンディングが遂行される場合、ラウンドインジェクションビット及びスティッキーインジェクションビットは、１と同一であり、最も近接した数へのラウンディングが遂行される場合、ラウンドインジェクションビットは、１と同一であり、かつスティッキーインジェクションビットは、０と同一であることができる。
本発明の実施形態において、整数結果は、２の補数形式で構成された整数値を含むことができる。
【発明の効果】
【００１９】
本発明の実施形態によれば、浮動小数点数が高速かつ効率的に整数に変換されることができる。本発明の実施形態によれば、整数結果の最下位ビットの修正によって正確な変換が遂行されることができる。
【図面の簡単な説明】
【００２０】
【図１】浮動小数点形式の数を整数形式の数へ変換するための電子システムの構成を示した概念図である。
【図２】浮動小数点形式の数を整数に変換するためのインジェクション常数を示す表である。
【図３Ａ】本発明の実施形態による演算の例示を示す表である。
【図３Ｂ】本発明の実施形態による演算の例示を示す表である。
【図３Ｃ】本発明の実施形態による演算の例示を示す表である。
【図３Ｄ】本発明の実施形態による演算の例示を示す表である。
【図４】本発明の実施形態による最下位ビット修正回路の構成を示した概念図である。
【図５】本発明の実施形態による電子装置又はシステムの動作方法を説明するフローチャートである。
【図６】本発明の実施形態による半導体装置を含む情報処理システムの構成を示したブロック図である。
【発明を実施するための形態】
【００２１】
前述した特性及び以下の詳細な説明は、全てが本発明の説明及び理解を助けるための例示的な事項である。即ち、本発明は、このような実施形態に限定されず、他の形態で具体化されることができる。次の実施形態は、単なる本発明を完全に開始するための例示であり、本発明が属する技術分野の通常の技術者に本発明を伝達するための説明である。したがって、本発明の構成要素を具現するための方法が様々である場合には、これらの方法の中で特定なこと又はこれと同一性があるうちに、何らかのことであっても本発明の具現が可能であることを明確にする必要がある。
【００２２】
本明細書で所定の構成が特定要素を含むと言及されている場合又は所定の過程が特定段階を含むと言及された場合は、その他の要素又はその他の段階がさらに含まれることを意味する。即ち、本明細書で使用される用語は、特定実施形態を説明するためのものであり、本発明の概念を限定するためのものではない。さらに、発明の理解を助けるために説明した例示はそれの相補的な実施形態も含む。
【００２３】
本明細書で使用される用語は、本発明が属する技術分野の通常の技術者が一般的に理解する意味を有する。普遍的に使用される用語は、本明細書の文脈にしたがって一貫的な意味として解釈されなければならない。また本明細書で使用される用語は、その意味が明確に定義された場合ではなければ、過度に理想的であるか、或いは形式的な意味として解釈されてはならない。
【００２４】
先に言及されたように、コンピューティング装置において、浮動小数点数（Ｆｌｏａｔｉｎｇ  Ｐｏｉｎｔ  Ｎｕｍｂｅｒ）は、設定された個数のビットで表現されることができる。浮動小数点数は、割り当てられた個数のビットによって設定された範囲内の有限である数に制限された部分内で個別的な数を示すことができる。普通の浮動小数点数は、有効数字（Ｓｉｇｎｉｆｉｃａｎｔ  Ｎｕｍｂｅｒ）部分の負の数ではない整数（Ｗｈｏｌｅ  Ｎｕｍｂｅｒ）、及び基数点（Ｒａｄｉｘ  Ｐｏｉｎｔ）の位置を示すために利用される指数（Ｅｘｐｏｎｅｎｔ）部分を利用して標準の科学的な表記形式と同様に表現されることができる。例として、１０進法体系で、２３，４６７は２．３４６７×１０４でも表現されるが、ここで、負の数ではない整数である１桁の数字は２であり、基数点は右側方向の４桁に位置する。ある数が２進数で表現されれば、最上位ビット（Ｍｏｓｔ  Ｓｉｇｎｉｆｉｃａｎｔ  Ｂｉｔ）はいつも１である。この明細書で言及される科学的な表記法は、多くの人の共通的な理解を助けるために利用されるものであり、単なる例示的なものである。さらに言及されるが、この明細書によって開示される事項は２進数に焦点を合わせている。
【００２５】
コンピューティング装置において、整数（Ｉｎｔｅｇｅｒ  Ｎｕｍｂｅｒ）は、設定された数のビットで表現できるが、他の形式で格納されることができる。整数は、割り当てられた個数のビットによって設定された範囲内の有限である数にさらに狭く制限された部分内で個別的な数を示すことができる。先に言及されたように、整数は、２つの主要形式（即ち、符号を有する（Ｓｉｇｎｅｄ）整数及び符号を有しない（Ｕｎｓｉｇｎｅｄ）整数）のうちの１つによって表現されることができる。符号を有しない整数は負の数ではない。そして、符号を有しない整数は、０乃至その数を示すために利用されるビットの個数によって制限される範囲内の値を含むことができる（例えば、８ビットの符号を有しない整数は０乃至２５５を表現することができる）。
【００２６】
符号を有する整数は、大略に０付近に中心を置いた範囲内の値を含む。符号を有する整数の範囲は、ポジティブ（Ｐｏｓｉｔｉｖｅ）の方向とネガティブ（Ｎｅｇａｔｉｖｅ）の方向とに実質的に同じ長さだけ拡張されるが、利用されるビットの個数によって制限できる（例えば、８ビットの符号を有する整数は−１２８乃至１２７を表現することができる）。しかしながら、ここには２つの重要な規則がある。第１に、０の値を表現するために偶数個であるビットの組合せのうちの１つが利用されることによって、正の数の個数と負の数の個数は同一でなくなる。
【００２７】
したがって、負の数の個数は、正の数の個数よりも１つ多くなる（例えば、８ビットの符号を有する整数において、−１２８が下限である反面、上限は正の数である１２７である）。第２に、負の整数は、この発明が属する技術分野で通常の知識を有する者（以下、通常の技術者）に広く公知された２の補数（２’ｓ  Ｃｏｍｐｌｅｍｅｎｔ）表記法によって表現できる。この方法によれば、すべての負の数の最上位ビットは１である。したがって、符号を有する整数の最上位ビットを確認することによって、その数が正の数であるか（最上位ビットが０である場合）、又は負の数であるか（最上位ビットが１である場合）が判別される。また、この方法によれば、負の数の個数が正の数の個数よりも１つ多いので、０の値の最上位ビットは０である。
【００２８】
時々、コンピューティング装置は、浮動小数点形式（例えば、符号ビット、仮数（Ｍａｎｔｉｓｓａ）部分、及び指数部分を含む形式）に格納された数を整数形式に変換する必要がある。この時、変換処理と関連して少なくとも２つのイッシューが発生する。第１に、浮動小数点数は分数部分（即ち、整数ではない部分；例えば、１．３４に含まれる０．３４部分）を含み、この部分をどのようにして整数で表現するかを考慮しなければならない。この問題は、ＩＥＥＥ７５４仕様書（Ｓｐｅｃｉｆｉｃａｔｉｏｎ）で策定されたラウンディング（Ｒｏｕｎｄｉｎｇ）規則の集合を利用することによって取り扱われることができる。第２に、浮動小数点形式の値は正の数又は負の数であることを示す符号ビットを含む反面、（符号を有する整数の最上位ビットの場合を除外すれば）整数は符号ビットを含まない。特に、浮動小数点数は、符号を示すためのビットを含むことによって‘負の０（Ｎｅｇａｔｉｖｅ  Ｚｅｒｏ）’に対応する表現を有する反面、整数はそうではない。このような実施形態において、浮動小数点数を正規化（Ｎｏｒｍａｌｉｚａｔｉｏｎ）された値又は固定小数点（Ｆｉｘｅｄ  Ｐｏｉｎｔ）値に変換する過程でのみでなく、他の場合（即ち、符号を有する整数形式の変換）で図２の補数演算が要求される。以下、本発明の理解を助けるために、添付された図面を通じて本発明の実施形態が説明される。
【００２９】
図１は、浮動小数点形式の数を整数形式の数に変換するための電子システムの構成を示した概念図である。実施形態として、電子システム１００は、浮動小数点変換器を含む。
この実施形態において、電子システム１００は、浮動小数点形式の数が提供されて格納するように構成されるレジスター又はメモリ１０２を含む。先に言及されたように、実施形態として、浮動小数点数は、符号ビット、指数部分、及び仮数（Ｍａｎｔｉｓｓａ）部分を含む。
【００３０】
実施形態として、電子システム１００は、浮動小数点数を正規化するように構成される正規化エンジン１０４を含む。ここで、”正規化”という用語は、仮数部分を指数部分が１である表現に変換する処理を意味する。正規化は、バイアスされない（Ｕｎｂｉａｓｅｄ）指数部分の値だけ基数点（例えば、１０進法体系１０進小数点等）を移動させる過程を含む。例として、１．２３４×１０３の値（仮数が１２３４であり、指数が３であり、符号が正である値）を有する浮動小数点数は、１０進小数点を３回移動させることによって１，２３４に正規化される。正規化は、ＩＥＥＥ７５４仕様書で定義される“非正規数（Ｄｅｎｏｒｍａｌ  Ｎｕｍｂｅｒ又はＳｕｂｎｏｒｍａｌ  Ｎｕｍｂｅｒ）”という用語と混同させてはならない。非正規の数は正規化できるが、本発明の開示と特別に関連されることではない。
【００３１】
実施形態として、中間段階の正規化された数１０６は、正の整数（１１６；例えば、浮動小数点数の絶対値）を利用して表現できる。この実施形態において、正規化された数１０６は、正の２の補数形式の数を利用せず、エイリアシング（Ａｌｉａｓｉｎｇ）されることができる。
【００３２】
実施形態として、中間段階の正規化された数１０６は、ラウンディング地点（Ｒｏｕｎｄｉｎｇ  Ｐｏｉｎｔ）又は基数点の後方の１つ以上のビット又は分数値１２６を含む（例えば、１０進システムで、正規化された１．２５は基数点の後方又は右側の分数値０．２５を含む）。この実施形態において、分数値１２６は、ＩＥＥＥ７５４仕様書にしたがってラウンドビット（Ｒｏｕｎｄｉｎｇ  Ｂｉｔ；１３６）及びスティッキービット（Ｓｔｉｃｋｙ  Ｂｉｔ；１４６）に変換される。この実施形態において、下位ビットに対するＯＲ演算を通じて、スティッキービット１４６が生成される。
【００３３】
実施形態として、ラウンドビット１３６及びスティッキービット１４６が一度算出されれば、中間段階の正規化された数１０６はラウンディングされる準備が整う。実施形態として、中間段階の正規化された数１０６が負の数であれば（例として、浮動小数点数の符号ビットの値によって判別できる）、中間段階の正規化された数１０６は反転（Ｉｎｖｅｒｓｉｏｎ）される。反転された結果値は最終的な正規化された数であり、これを便宜上“正規化された数１０８”と称する。実施形態として、正規化された数１０８は、中間段階の正規化された数１０６に対して１の補数（１’ｓ  Ｃｏｍｐｌｅｍｅｎｔ）演算を遂行することによって得られる。１の補数演算は２の補数演算に比べて少ない正の演算を必要とする。例として、１の補数演算を通じた反転処理は、複数個のインバータ（Ｉｎｖｅｒｔｅｒ）及び／又はマルチプレクサー（Ｍｕｌｔｉｐｌｅｘｅｒ）を利用して遂行されることができる。マルチプレクサーは、正の数である中間段階の正規化された数１０６及び負の数である中間段階の正規化された数１０６のうちの１つを選択するために利用される。１の補数演算と比較すれば、２の補数演算は反転された結果に１を加えるための加算器（Ａｄｄｅｒ）又は半加算器（Ｈａｌｆ−ａｄｄｅｒ）を必要とする。
【００３４】
実施形態として、電子システム１００は、加算器１１０を含む。この実施形態において、加算器１１０は、３つの入力（例えば、入力Ａ、入力Ｂ、キャリーインビット）を受け入れる。実施形態として、加算器１１０は、正規化された数１０８、１つ以上のインジェクション（Ｉｎｊｅｃｔｉｏｎ）ビット又は常数１１２、及びキャリーイン（Ｃａｒｒｙ−ｉｎ）値１１４を入力として提供される。
【００３５】
この実施形態において、加算器１１０は、正規化された数１０８を適切にラウンディングして２の補数形式で構成された整数結果１２０を生成する。先に言及されたように、ＩＥＥＥ７５４標準は様々なラウンディングスキーム（Ｓｃｈｅｍｅ）を許容する。例として、利用可能であるラウンディンググスキームとして、０に向かうラウンディング（Ｒｏｕｎｄ  ｔｏ  Ｚｅｒｏ）、負の無限大に向かうラウンディング（Ｒｏｕｎｄ  ｔｏ  Ｍｉｎｕｓ  Ｉｎｆｉｎｉｔｙ）、正の無限大に向かうラウンディング（Ｒｏｕｎｄ  ｔｏ  Ｐｏｓｉｔｉｖｅ  Ｉｎｆｉｎｉｔｙ）、及び／又は最も近接した数へのラウンディング（Ｒｏｕｎｄ  ｔｏ  Ｎｅａｒｅｓｔ  Ｅｖｅｎ  Ｖａｌｕｅ）等がある。但し、これらは単なる幾つかの可能である例示であり、本発明を限定するためのものではない。
【００３６】
実施形態として、電子システム１００は、インジェクションラウンディングとして公知された技法を利用する。この実施形態において、正規化された数１０８に１を加えるか、或いは加えないかを判別するために正規化された数１０８の分数部分を検査する代わりに、正規化された数１０８に常数値が加えられ、分数部分は捨てられる。例として、正規化された数が１．２５である場合、１を得るために、分数部分０．２５が０．５より小さいものと判断し、切捨て（Ｒｏｕｎｄｉｎｇ  Ｄｏｗｎ）を遂行する代わりに、１．２５に常数０．５を加えて１．７５を得て新しい分数部分０．７５を捨てることがより簡単であり、速い。これと同様に、正規化された数が１．５１である場合、常数０．５を加えることによって、得られた２．０１から０．０１を捨てられれば、正規化された数は自然に２に切上げ（Ｒｏｕｎｄｉｎｇ  Ｕｐ）される。但し、これらは単なる幾つかの例示であり、本発明を限定するためのものではない。電子システム１００は１０進演算ではない二進演算を遂行する。
【００３７】
この実施形態において、インジェクション常数１１２は、演算（例えば、実数から整数への変換等）のために選択されたラウンディングスキーム又は規則に基づいて予め定められる。この実施形態において、インジェクション常数１１２は、選択された演算に基づいても予め定められる。例として、インジェクション常数１１２の第１集合は、実数から整数への変換のために利用され、インジェクション常数１１２の第２集合は、実数から実数への変換（例えば、ダブルフロート（Ｄｏｕｂｌｅ  Ｆｌｏａｔ）からシングルフロート（Ｓｉｎｇｌｅ  Ｆｌｏａｔ）への変換等）のために利用される。この実施形態において、開示された内容は主に浮動小数点数から整数への変換を取り扱う。但し、これらは単なる幾つかの例示であり、本発明を限定するためのものではない。
【００３８】
図２は、浮動小数点形式の数を整数に変換するためのインジェクション常数を示す表である。実施形態として、図２の表は、図１のインジェクション常数１１２を決定するために利用される。但し、これは単なる例示であり、本発明を限定するためのものではない。
【００３９】
実施形態として、図２の表は、４つのラウンディングモードに各々対応するインジェクション常数を示している。実施形態として、利用可能であるラウンディングモードは０に向かうラウンディング、負の無限大に向かうラウンディング、正の無限大に向かうラウンディング、及び／又は最も近接した数へのラウンディングを含む。
【００４０】
図２の表は、ラウンドビットの位置に挿入される４つの値とスティッキービットの位置に挿入される４つの値とを説明している。実施形態として、ラウンドビット及びスティッキービットは、正規化された数の下位ビット位置に置かれる。そして、２ビット（ラウンドインジェクションビット及びスティッキーインジェクションビット）を含むインジェクション常数が正規化された数の下位ビット（ラウンドビット及びスティッキービット）に加算される。
【００４１】
実施形態として、ラウンディングモードが“０に向かうラウンディング”に設定された場合、ラウンドインジェクションビット及びスティッキーインジェクションビットの値は浮動小数点数の符号ビットの値と同一である。実施形態として、ラウンディングモードが“負の無限大に向かうラウンディング”に設定された場合、ラウンドインジェクションビット及びスティッキーインジェクションビットの値は０と同一である。実施形態として、ラウンディングモードが“正の無限大に向かうラウンディング”に設定された場合、ラウンドインジェクションビット及びスティッキーインジェクションビットの値は１と同一である。実施形態として、ラウンディングモードが“最も近接した数へのラウンディング”に設定された場合、ラウンドインジェクションビットの値は１と同一であり、かつスティッキーインジェクションビットの値は０と同一である。但し、これらは単なる幾つかの例示であり、本発明を限定するためのものではない。
【００４２】
図２の表は、キャリーインビットに対する４つの値を説明している。実施形態として、キャリーインビットはインジェクション常数の一部分に含まれる。実施形態として、ラウンディングモードに関わらず、キャリーインビットは浮動小数点数の符号ビットの値と同一である。
【００４３】
再び図１を参照すれば、インジェクション常数１１２及びキャリーイン値１１４は、テーブル（例えば、図２の表）又は予め定められた構造によって指示される。そして、インジェクション常数１１２及びキャリーイン値１１４は、ラウンディングスキーム又はモード設定、及び浮動小数点数の符号ビットのうちの１つ以上に基づく。先に言及されたように、加算器１１０は、２の補数形式で構成されるか、或いはエンコーディング（Ｅｎｃｏｄｉｎｇ）された整数結果１２０を生成する。
【００４４】
幾つかの場合、整数結果１２０の最下位ビット（Ｌｅａｓｔ  Ｓｉｇｎｉｆｉｃａｎｔ  Ｂｉｔ）は正しくないこともある。例として、ラウンディングモードが“最も近接した数へのラウンディング”に設定された場合、誤謬が発生することがある。実施形態として、必要によって、電子システム１００は、加算器１１０から出力された結果の最下位ビットを調節するように構成される最下位ビット修正回路１１８を含む。最下位ビット修正回路１１８が動作する場合の実施形態は、図３Ｄ及び図４に対する説明で言及される。但し、これは単なる例であり、本発明を限定するためのものではない。
【００４５】
先に言及されたように、加算器１１０の出力（又は、最下位ビット修正回路１１８が動作する場合には最下位ビット修正回路１１８の出力）は、２の補数形式で構成されるか、或いはエンコーディングされた整数結果１２０を含む。実施形態として、整数結果１２０は、コンピューターで遂行される他の演算（例えば、加算、減算等）に適合する。実施形態として、浮動小数点数の符号ビットと同様に、整数結果１２０は、符号ビット１２２を伴うか、あるいは符号ビット１２２に連結される。別の実施形態において、符号ビット１２２は含まないこともあり得る。但し、これらは単なる幾つかの例示であり、本発明を限定するためのものではない。
【００４６】
図３Ａは、本発明の実施形態による演算の例示を示す表である。実施形態として、図３Ａの表に示した値（例えば、浮動小数点数、ラウンドビット、スティッキービット、インジェクション常数等）は、図１に示したような浮動小数点変換機で利用されることができる。特に、図３Ａに示した例示は、ラウンディングモードが“０に向かうラウンディング”に設定された場合に関する。但し、図３Ａは単なる例示であり、本発明を限定するためのものではない。
【００４７】
実施形態として、図３Ａに示したように、インジェクション常数は浮動小数点数の符号ビットと同一の値に設定される。この実施形態において、浮動小数点数が正の数から負の数に変わることによって、インジェクション常数の値も変わる。
【００４８】
図３Ａは、入力される浮動小数点数とそれに対応するラウンドビット及びスティッキービットが有する値を示している。以下、２つの例示的な場合が説明される。‘例示１’で指示された行で、入力される浮動小数点数は００１０であり、ラウンドビットは１であり、スティッキービットは１であり、符号ビットは０（正の数）である。‘例示１’で、正規化された数は００１０１１（入力される浮動小数点数の最下位ビットの方にラウンドビット及びスティッキービットを連結した値）である。符号ビットが０であるので、インジェクション常数は００であり、キャリーインビットは０である。加算器の出力は００１０１１（＝００１０１１＋００＋０）である。下位の２ビットを除去することによって、００１０（又は、１０進数形態の２）の整数結果が得られる。
【００４９】
‘例示２’で指示された行で、入力される浮動小数点数の１の補修は１１００であり、ラウンドビットは１であり、スティッキービットは０であり、符号ビットは１（負の数）である。‘例示２’で、正規化された数は１１００１０（入力される浮動小数点数の１の補数の最下位ビットの方にラウンドビット及びスティッキービットを連結した値）である。符号ビットが１であるので、インジェクション常数は１１であり、キャリーインビットは１である。加算器の出力は１１０１１０（＝１１００１０＋１１＋１）である。下位の２ビットを除去することによって、１１０１（又は、１０進数形態の−３）の整数結果が得られる。図３Ａは、多様な入力値に対して上記の例示と類似の演算を遂行して得られる整数結果を示している。但し、これらは単なる幾つかの例示であり、本発明を限定するためのものではない。
【００５０】
図３Ｂは、本発明の実施形態による演算の別の例示を示す表である。実施形態として、図３Ｂの表に示した値（例えば、浮動小数点数、ラウンドビット、スティッキービット、及びインジェクション常数等）は、図１に示したような浮動小数点変換機で利用されることができる。特に、図３Ｂに示した例示は、ラウンディングモードが“負の無限大に向かうラウンディング”に設定された場合に関する。但し、図３Ｂは、単なる例示であり、本発明を限定するためのものではない。
【００５１】
実施形態として、図３Ｂに示したように、インジェクション常数のラウンドビット及びスティッキービットは０に設定される。さらに、キャリーインビットは浮動小数点数の符号ビットと同一である。図３Ｂは、入力される浮動小数点数とそれに対応するラウンドビット及びスティッキービットが有する値、及び整数結果の値を示している。図３Ｂの例示で、図３Ａに対する説明で言及されたものと類似の演算が遂行されることができる。但し、これらは単なる幾つかの例示であり、本発明を限定するためのものではない。
【００５２】
図３Ｃは、本発明の実施形態による演算の別の例示を示す表である。実施形態として、図３Ｃの表に示した値（例えば、浮動小数点数、ラウンドビット、スティッキービット、及びインジェクション常数等）は、図１に示したような浮動小数点変換機で利用されることができる。特に、図３Ｃに示した例示は、ラウンディングモードが“正の無限大に向かうラウンディング”に設定された場合に関する。但し、図３Ｃは、単なる例示であり、本発明を限定するためのものではない。
【００５３】
実施形態として、図３Ｃに示したように、インジェクション常数のラウンドビット及びスティッキービットは１に設定される。さらに、キャリーインビットは浮動小数点数の符号ビットと同一である。図３Ｃは、入力される浮動小数点数とそれに対応するラウンドビット及びスティッキービットが有する値、及び整数結果の値を示している。図３Ｃの例示で、図３Ａに対する説明で言及されたものと類似の演算が遂行されることができる。但し、これらは単なる幾つかの例示であり、本発明を限定するためのものではない。
【００５４】
図３Ｄは、本発明の実施形態による演算の別の例示を示す表である。実施形態として、図３Ｄの表に示した値（例えば、浮動小数点数、ラウンドビット、スティッキービット、及びインジェクション常数等）は、図１に示したような浮動小数点変換機で利用されることができる。特に、図３Ｄに示した例示は、ラウンディングモードが“最も近接した数へのラウンディング”に設定された場合に関する。但し、図３Ｄは、単なる例示であり、本発明を限定するためのものではない。
【００５５】
実施形態として、図３Ｄに示したように、インジェクション常数のラウンドビットは１に設定され、スティッキービットは０に設定される。さらに、キャリーインビットは浮動小数点数の符号ビットと同一である。図３Ｄは、入力される浮動小数点数とそれに対応するラウンドビット及びスティッキービットが有する値、及び整数結果の値を示している。図３Ｄの例示で、図３Ａに対する説明で言及されたものと類似の演算が遂行されることができる。しかしながら、’例示１’及び’例示２’で指示された行に示した２つの場合で、整数結果の最下位ビットが正しくないことがあり得、最下位ビット修正回路１１８（図１参照）の動作が必要とされる。このような実施形態において、最下位ビット修正回路１１８は、整数結果の最下位ビットを数学的に正しい値に修正することができる。但し、これらは単なる幾つかの例示であり、本発明を限定するためのものではない。
【００５６】
図４は、本発明の実施形態による最下位ビット修正回路の構成を示した概念図である。実施形態として、最下位ビット修正回路４００は、図３Ｄに示したような正しくない最下位ビットを修正するために利用される。
【００５７】
実施形態として、最下位ビット修正回路４００は、活性化回路４０２を含む。この実施形態において、活性化回路４０２は、３つの入力が提供されるＡＮＤ回路を含む。活性化回路４０２は、ラウンディングモードが“最も近接した数へのラウンディング”であるか否かを示す信号ＲＭ、ラウンドビットＲＢ、及びスティッキービットＳＢの反転されたビットを入力として提供される。
【００５８】
実施形態として、最下位ビット修正回路４００は、修正回路４０４を含む。この実施形態において、修正回路４０４は、２つの入力が提供されるＡＮＤ回路を含む。修正回路４０４は、ラウンディングされた整数結果の最下位ビットＬＳＢ及び活性化回路４０２の出力の反転された値を入力として提供される。修正回路４０４は、修正された最下位ビットｃＬＳＢを出力する。但し、これは単なる例示であり、本発明を限定するためのものではない。
【００５９】
図５は、本発明の実施形態による電子装置又はシステムの動作方法を説明するフローチャートである。実施形態として、図５の動作方法は、図１又は図６に示した電子システムによって利用されることができる。さらに、図５の動作方法の一部分は、図３Ａ乃至図３Ｄに示したような結果を生成することができる。但し、これらは単なる幾つかの例示であり、本発明を限定するためのものではない。
【００６０】
Ｓ１１０段階で、浮動小数点数が提供される。実施形態として、浮動小数点数は、符号ビット、仮数部分、及び指数部分を含む形式で構成される。実施形態として、Ｓ１１０段階は、図１又は図６に示した電子装置又はシステム及び図１のメモリ１０２によって遂行されることができる。
【００６１】
Ｓ１２０段階で、浮動小数点数の少なくとも一部分が正規化される。したがって、正規化された数が生成される。実施形態として、浮動小数点数の少なくとも一部分を正規化する過程は、浮動小数点数が負の数である場合、１の補数演算を通じて浮動小数点数の正規化された形態を反転させる過程を含む。実施形態として、Ｓ１２０段階は、図１又は図６に示した電子装置又はシステム及び図１の正規化エンジン１０４によって遂行されることができる。
【００６２】
Ｓ１３０段階で、浮動小数点数を整数に変換するための所定のラウンディング値の集合にしたがって少なくとも１つのラウンディング値が算出される。実施形態として、少なくとも１つのラウンディング値は、ラウンドインジェクションビット、スティッキーインジェクションビット、及びキャリーイン値を含む。実施形態として、少なくとも１つのラウンディング値は浮動小数点数の符号ビットと同一のキャリーインビットを含む。実施形態として、“０に向かうラウンディング”が遂行される場合、ラウンディング値は浮動小数点数の符号ビットと同一のラウンドインジェクションビット及びスティッキーインジェクションビットを含む。実施形態として、“負の無限大に向かうラウンディング”が遂行される場合、ラウンディング値は０と同一のラウンドインジェクションビット及びスティッキーインジェクションビットを含む。実施形態として、“正の無限大に向かうラウンディング”が遂行される場合、ラウンディング値は１と同一のラウンドインジェクションビット及びスティッキーインジェクションビットを含む。実施形態として、“最も近接した数へのラウンディング”が遂行される場合、ラウンディング値は１と同一のラウンドインジェクションビット及び０と同一のスティッキーインジェクションビットを含む。実施形態として、Ｓ１３０段階は、図１又は図６に示した電子装置又はシステム及び図２の表を含むメモリ１０２によって遂行されることができる。
【００６３】
Ｓ１４０段階で、正規化された数とラウンディング値とが加算される。したがって、整数結果が生成される。実施形態として、正規化された数とラウンディング値とを加算する過程は、正規化された数とラウンディング値とだけを加算する段階を含む。この実施形態において、整数結果は、様々な段階の加算又は３つ以上の値に対する加算無しで１つの全加算器（Ｆｕｌｌ−ａｄｄｅｒ）のみを利用して生成されることができる。但し、これは単なる例示であり、本発明を限定するためのものではない。実施形態として、整数結果は符号を有しない形式の整数値を含む。別の実施形態において、整数結果は２の補数形式で構成された整数値を含むことができる。実施形態として、Ｓ１４０段階は、図１又は図６に示した電子装置又はシステム及び図１の加算器１１０によって遂行されることができる。
【００６４】
Ｓ１５０段階で、整数結果の最下位ビットが修正されるか否かが判別される。実施形態として、整数結果の最下位ビットが修正されるか否かは所定のラウンディング値の集合に基づいて判別されることができる。実施形態として、整数結果の最下位ビットが修正されなければならない場合、整数結果の最下位ビットが修正される。実施形態として、Ｓ１５０段階は、図１又は図６に示した電子装置又はシステム及び図１の最下位ビット修正回路１１８によって遂行されることができる。
【００６５】
図６は、本発明の実施形態による半導体装置を含む情報処理システムの構成を示したブロック図である。情報処理システム６００は、本発明の実施形態にしたがって構成される１つ以上の装置を含む。又は、情報処理システム６００は、本発明の実施形態による動作方法を採用するか、或いは実行することができる。
【００６６】
実施形態として、情報処理システム６００は、例えば、ラップトップ（Ｌａｐｔｏｐ）、デスクトップコンピュータ（Ｄｅｓｋｔｏｐ）、ワークステーション（Ｗｏｒｋｓｔａｔｉｏｎ）、サーバー（Ｓｅｒｖｅｒ）、ブレード（Ｂｌａｄｅ）サーバー、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）、スマートフォン（Ｓｍａｒｔｐｈｏｎｅ）、タブレット（Ｔａｂｌｅｔ）、及び他の適切なコンピューター等のようなコンピューティング装置、又は仮想マシン（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）又はそれの仮想コンピューティング装置等を含む。実施形態として、情報処理システム６００は使用者によって利用される。
【００６７】
本発明の実施形態による情報処理システム６００は、中央処理ユニット（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ロジック、又はプロセッサ６１０をさらに含む。実施形態として、プロセッサ６１０は、１つ以上の機能ユニットブロック（Ｆｕｎｃｔｉｏｎａｌ  Ｕｎｉｔ  Ｂｌｏｃｋ）又は組合せ論理ブロック（Ｃｏｍｂｉｎａｔｉｏｎａｌ  Ｌｏｇｉｃ  Ｂｌｏｃｋ；６１５）を含む。実施形態として、組合せ論理ブロック６１５は、多様なブール論理演算（Ｂｏｏｌｅａｎ  Ｌｏｇｉｃ  Ｏｐｅｒａｔｉｏｎ；例えば、ＮＡＮＤ、ＮＯＲ、ＮＯＴ、ＸＯＲ等）のための論理装置、安定化（Ｓｔａｂｉｌｉｚｉｎｇ）論理装置（例えば、フリップフロップ（Ｆｌｉｐ−ｆｌｏｐ）、ラッチ（Ｌａｔｃｈ）等）、他の論理装置、又はそれらの組合せを含む。組合せ論理ブロック６１５は、単純な又はさらに複雑な方式に入力信号を処理して望む結果を得られるように構成される。同期式の（Ｓｙｎｃｈｒｏｎｏｕｓ）組合せ論理演算の幾つかの例示が言及されたが、本発明はこの例示に限定されない。本発明は、非同期式の（Ａｓｙｎｃｈｒｏｎｏｕｓ）演算、又は同期式の演算及び非同期式の演算の組合せを利用することができる。実施形態として、組合せ論理ブロック６１５は、複数のＣＭＯＳ（Ｃｏｍｐｌｅｍｅｎｔａｒｙ  Ｍｅｔａｌ  Ｏｘｉｄｅ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒ）トランジスタを含むことができる。実施形態として、ＣＭＯＳトランジスタは、論理演算を遂行するゲート（Ｇａｔｅ）に配列される。但し、他の技術が利用されることができ、それらもやはり本発明の技術思想の範囲に含まれる。
【００６８】
本発明の実施形態による情報処理システム６００は、揮発性メモリ６２０（例えば、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等）をさらに含む。本発明の実施形態による情報処理システム６００は、不揮発性メモリ６３０（例えば、ハードドライブ、光学メモリ、ＮＡＮＤフラッシュメモリ等）をさらに含む。実施形態として、揮発性メモリ６２０、不揮発性メモリ６３０、又はそれらの組合せ又は一部は、“格納媒体”と称されることもある。実施形態として、揮発性メモリ６２０及び／又は不揮発性メモリ６３０は、半永久的な又は実質的に永久的な形態でデータを格納するように構成されることができる。
【００６９】
実施形態として、情報処理システム６００は、１つ以上のネットワークインターフェイス６４０を含む。ネットワークインターフェイス６４０は、情報処理システム６００が通信網の一部として通信網を通じて通信するようにする。例として、ネットワークインターフェイス６４０は、ＩＥＥＥ（Ｉｎｓｔｉｔｕｔｅ  ｏｆ  Ｅｌｅｃｔｒｉｃａｌ  ａｎｄ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｅｎｇｉｎｅｅｒｓ）  ８０２．１１ｇ、ＩＥＥＥ  ８０２．１１ｎ等を含むＷｉ−Ｆｉ規約、Ｗｉｒｅｌｅｓｓ−ＭＡＮ（Ｍｅｔｒｏｐｏｌｉｔａｎ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）  Ａｄｖａｎｃｅｄとしても公知されたＩＥＥＥ  ８０２．１６ｍ、ＬＴＥ（Ｌｏｎｇ  Ｔｅｒｍ  Ｅｖｏｌｕｔｉｏｎ）  Ａｄｖａｎｃｅｄ、ＥＤＧＥ（Ｅｎｈａｎｃｅｄ  Ｄａｔａ  ｒａｔｅｓ  ｆｏｒ  ＧＳＭ（登録商標）（Ｇｌｏｂａｌ  Ｓｙｓｔｅｍ  ｆｏｒ  Ｍｏｂｉｌｅ  ｃｏｍｍｕｎｉｃａｔｉｏｎｓ）  Ｅｖｏｌｕｔｉｏｎ）、Ｅｖｏｌｖｅｄ  ＨＳＰＡ（Ｈｉｇｈ  Ｓｐｅｅｄ  Ｐａｃｋｅｔ  Ａｃｃｅｓｓ）等を含むセル（Ｃｅｌｌｕｌａｒ）通信規約、Ｅｔｈｅｒｎｅｔ（登録商標）としても公知されたＩＥＥＥ８０２．３、Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ、Ｐｏｗｅｒ  Ｌｉｎｅ  ｃｏｍｍｕｎｉｃａｔｉｏｎ（例えば、ＨｏｍｅＰｌｕｇ、ＩＥＥＥ  １９０１等）等を含む有線通信規約等を利用することができる。但し、これらは、単なる幾つかの例示であり、本発明を限定するためのものではない。
【００７０】
本発明の実施形態による情報処理システム６００は、ユーザーインターフェイス６５０（例えば、ディスプレーアダプター（Ｄｉｓｐｌａｙ  Ａｄａｐｔｅｒ）、ハプティック（Ｈａｐｔｉｃ）インターフェイス、ヒューマンインターフェイス装置等）をさらに含むことができる。実施形態として、ユーザーインターフェイス６５０は、使用者から入力が提供されるか、或いは使用者に出力を提供するように構成される。使用者との相互作用のために、他の種類の装置が利用される。例として、使用者に提供されるフィードバック（Ｆｅｅｄｂａｃｋ）は、感覚的なフィードバック（例えば、視覚的なフィードバック、聴覚的なフィードバック、又は触覚的なフィードバック）の形態を有することができる。そして、使用者からの入力は、音響、音声、又は触覚を含んで何らかの形態で提供されることができる。
【００７１】
実施形態として、情報処理システム６００は、１つ以上のその他のハードウェア装置６６０（例えば、ディスプレー又はモニター、キーボード、マウス、カメラ、指紋読出器、ビデオ処理器等）を含むことができる。但し、これらは単なる幾つかの例示であり、本発明を限定するためのものではない。
【００７２】
本発明の実施形態による情報処理システム６００は、１つ以上のシステムバス６０５をさらに含む。実施形態として、システムバス６０５は、プロセッサ６１０、揮発性メモリ６２０、不揮発性メモリ６３０、ネットワークインターフェイス６４０、ユーザーインターフェイス６５０、及びその他のハードウェア装置６６０と通信するように接続される。プロセッサ６１０によって処理されたデータ又は不揮発性メモリ６３０の外部から入力されたデータは、不揮発性メモリ６３０又は揮発性メモリ６２０に格納される。
【００７３】
実施形態として、情報処理システム６００は、１つ以上のソフトウェア６７０を含むか、或いは実行することができる。実施形態として、ソフトウェア６７０は、オペレーティングシステム（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ；ＯＳ）及び／又は応用プログラム（Ａｐｐｌｉｃａｔｉｏｎ）を含むことができる。実施形態として、ＯＳは、応用プログラムに１つ以上のサービスを提供し、応用プログラムと情報処理システム６００の多様なハードウェア装置（例えば、プロセッサ６１０、ネットワークインターフェイス６４０等）との間で仲介者の役割を遂行することができる。実施形態として、情報処理システム６００は、その内部（例えば、不揮発性メモリ６３０内部等）に設置されてプロセッサ６１０によって直接実行されＯＳと直接相互作用するように構成される１つ以上のネイティブ（Ｎａｔｉｖｅ）プログラムを含むことができる。実施形態として、ネイティブプログラムは、予めコンパイルされて機械実行可能であるコード（Ｐｒｅ−ｃｏｍｐｉｌｅｄ  Ｍａｃｈｉｎｅ  Ｅｘｅｃｕｔａｂｌｅ  Ｃｏｄｅ）を含むことができる。実施形態として、ネイティブプログラムは、プロセッサ６１０によって実行されるソースコード（Ｓｏｕｒｃｅ  Ｃｏｄｅ）又はオブジェクトコード（Ｏｂｊｅｃｔ  Ｃｏｄｅ）を実行可能であるコードで翻訳するように構成されるスクリプトインタプリタ（Ｓｃｒｉｐｔ  Ｉｎｔｅｒｐｒｅｔｅｒ；例えば、Ｃ  ｓｈｅｌｌ、ＡｐｐｌｅＳｃｒｉｐｔ、ＡｕｔｏＨｏｔｋｅｙ等）又は仮想マシン（例えば、Ｊａｖａ（登録商標）  Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ、Ｍｉｃｒｏｓｏｆｔ  Ｃｏｍｍｏｎ  Ｌａｎｇｕａｇｅ  Ｒｕｎｔｉｍｅ等）を含むことができる。
【００７４】
先に言及された半導体装置は、多様なパッケージング（Ｐａｃｋａｇｉｎｇ）方法を利用して実装されることができる。例として、本発明の実施形態によって構成される半導体装置は、ＰＯＰ（Ｐａｃｋａｇｅ  Ｏｎ  Ｐａｃｋａｇｅ）、ＢＧＡｓ（Ｂａｌｌ  Ｇｒｉｄ  Ａｒｒａｙｓ）、ＣＳＰｓ（Ｃｈｉｐ  Ｓｃａｌｅ  Ｐａｃｋａｇｅｓ）、ＰＬＣＣ（Ｐｌａｓｔｉｃ  Ｌｅａｄｅｄ  Ｃｈｉｐ  Ｃａｒｒｉｅｒ）、ＰＤＩＰ（Ｐｌａｓｔｉｃ  Ｄｕａｌ  Ｉｎ−ｌｉｎｅ  Ｐａｃｋａｇｅ）、Ｄｉｅ  ｉｎ  ｗａｆｆｌｅ  ｐａｃｋ、Ｄｉｅ  ｉｎ  ｗａｆｅｒ  ｆｏｒｍ、ＣＯＢ（Ｃｈｉｐ  Ｏｎ  Ｂｏａｒｄ）、ＣＥＲＤＩＰ（Ｃｅｒａｍｉｃ  Ｄｕａｌ  Ｉｎ−ｌｉｎｅ  Ｐａｃｋａｇｅ）、ＰＭＱＦＰ（Ｐｌａｓｔｉｃ  Ｍｅｔｒｉｃ  Ｑｕａｄ  Ｆｌａｔ  Ｐａｃｋａｇｅ）、ＰＱＦＰ（Ｐｌａｓｔｉｃ  Ｑｕａｄ  Ｆｌａｔ  Ｐａｃｋａｇｅ）、ＳＯＩＣ（Ｓｍａｌｌ  Ｏｕｔｌｉｎｅ  Ｐａｃｋａｇｅ）、ＳＳＯＰ（Ｓｈｒｉｎｋ  Ｓｍａｌｌ  Ｏｕｔｌｉｎｅ  Ｐａｃｋａｇｅ）、ＴＳＯＰ（Ｔｈｉｎ  Ｓｍａｌｌ  Ｏｕｔｌｉｎｅ  Ｐａｃｋａｇｅ）、ＴＱＦＰ（Ｔｈｉｎ  Ｑｕａｄ  Ｆｌａｔ  Ｐａｃｋａｇｅ）、ＳＩＰ（Ｓｙｓｔｅｍ  Ｉｎ  Ｐａｃｋａｇｅ）、ＭＣＰ（Ｍｕｌｔｉ−Ｃｈｉｐ  Ｐａｃｋａｇｅ）、ＷＦＰ（Ｗａｆｅｒ−ｌｅｖｅｌ  Ｆａｂｒｉｃａｔｅｄ  Ｐａｃｋａｇｅ）、ＷＳＰ（Ｗａｆｅｒ−ｌｅｖｅｌ  ｐｒｏｃｅｓｓｅｄ  Ｓｔａｃｋ  Ｐａｃｋａｇｅ）、又はその他のパッケージング方法のうちの１つ以上を利用して実装されることができる。
【００７５】
本発明の実施形態による電子装置又はシステムの動作方法は、入力データを処理し、出力を生成して固有の機能を遂行するためにコンピュータープログラムを実行するように構成される１つ以上のプログラム可能であるプロセッサによって遂行されることができる。本発明の実施形態による電子装置又はシステムの動作方法は、専用論理回路（例えば、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｈｉｐ）等）によって遂行されることができる。本発明の実施形態による電子装置は、専用論理回路（例えば、ＦＰＧＡ、ＡＳＩＣ等）で具現されることができる。
【００７６】
実施形態として、コンピューターで読み出される媒体は、実行された時に電子装置が本発明の実施形態による動作方法の少なくとも一部分を遂行するようにする命令を含むことができる。実施形態として、コンピューターで読み出される媒体は、磁気媒体、光学媒体、それ以外の他の媒体、又はそれらの組合せ（例えば、ＣＤ−ＲＯＭ、ハードドライブ、読出し専用メモリ、フラッシュドライブ等）に含むことができる。実施形態として、コンピューターで読み出される媒体は、有形的であり、非一時的に具現される物品である。
【００７７】
各々の概念図に示した構成は単なる概念的な観点で理解しなければならない。本発明の理解を助けるために、概念図に示した構成要素各々の形態、構造、大きさ等は誇張又は縮小されて表現されている。実際に具現される構成は各々の概念図に示したものと異なる物理的形状を有することができる。各々の概念図は構成要素の物理的形状を限定するためのものではない。
【００７８】
各々のブロック図に示した装置構成は発明の理解を助けるためのものである。各々のブロックは機能によってさらに小さい単位のブロックで形成されることができる。又は、複数のブロックは機能によってさらに大きい単位のブロックを形成することができる。即ち、本発明の技術思想はブロック図に図示された構成によって限定されない。
【００７９】
以上で本発明に対する実施形態を中心に本発明を説明した。但し、本発明が属する技術分野の特徴上、本発明が達成しようとする目的は、本発明の要旨を包含しながらも、上の実施形態と異なる形態で達成されてもよい。したがって、上の実施形態は、限定的なものではなく、説明的な側面で理解しなければならない。即ち、本発明の要旨を包含しながら、本発明のような目的を達成できる技術思想は、本発明の技術思想に含まれるものとして解釈されなければならない。
【００８０】
したがって、本発明の本質的な特性を逸脱しない範囲内で修正又は変形された技術思想は本発明が請求する保護範囲に含まれる。また、本発明の保護範囲は上の実施形態に限定されるものではない。
【符号の説明】
【００８１】
１００  電子システム
１０２  メモリ
１０４  正規化エンジン
１０６  中間段階の正規化された数
１０８  正規化された数
１１０  加算器
１１２  インジェクション常数
１１４  キャリーイン値
１１６  正の整数
１１８  最下位ビット修正回路
１２０  整数結果
１２２  符号ビット
１２６  分数値
１３６  ラウンドビット
１４６  スティッキービット
４００  最下位ビット修正回路
４０２  活性化回路
４０４  修正回路
６００  情報処理システム
６０５  システムバス
６１０  ロジック又はプロセッサ
６１５  組合せ論理ブロック
６２０  揮発性メモリ
６３０  不揮発性メモリ
６４０  ネットワークインターフェイス
６５０  ユーザーインターフェイス
６６０  その他のハードウェア装置
６７０  ソフトウェア
【図１】
2015127954.tif 000003
【図２】
2015127954.tif 000004
【図３Ａ】
2015127954.tif 000005
【図３Ｂ】
2015127954.tif 000006
【図３Ｃ】
2015127954.tif 000007
【図３Ｄ】
2015127954.tif 000008
【図４】
2015127954.tif 000009
【図５】
2015127954.tif 000010
【図６】
2015127954.tif 000011