JP6407001B2 - 浮動小数点数を整数に変換するための電子装置及びシステム及びその動作方法 - Google Patents

浮動小数点数を整数に変換するための電子装置及びシステム及びその動作方法 Download PDF

Info

Publication number
JP6407001B2
JP6407001B2 JP2014248684A JP2014248684A JP6407001B2 JP 6407001 B2 JP6407001 B2 JP 6407001B2 JP 2014248684 A JP2014248684 A JP 2014248684A JP 2014248684 A JP2014248684 A JP 2014248684A JP 6407001 B2 JP6407001 B2 JP 6407001B2
Authority
JP
Japan
Prior art keywords
bit
injection
floating point
integer
rounding
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2014248684A
Other languages
English (en)
Other versions
JP2015127954A (ja
Inventor
エリック・シー・クィネル
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2015127954A publication Critical patent/JP2015127954A/ja
Application granted granted Critical
Publication of JP6407001B2 publication Critical patent/JP6407001B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/14Conversion to or from non-weighted codes
    • H03M7/24Conversion to or from floating-point codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Complex Calculations (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)

Description

本発明は、デジタル数(Digital Number)の形式(Format)の変換(Conversion)に関し、さらに具体的には、浮動小数点数(Floating Point Number)を整数(Integer Number)に変換する方法に関する。
演算方法において、浮動小数点数は、広い範囲の値を示すことができるように実数(Real Number)の近似値(Approximation)を表現するための技法として利用される。浮動小数点数は、固定長(Fixed number)の有効数字(Significant Digit)、及び指数(Exponent)を利用する大きさの表示によって近似的に表現される。“浮動小数点”という用語は、ある数の基数点(Radix Point;例えば、小数点(Binary Point)、又はコンピューターにおいてはさらに一般的な二進小数点(Binary Point))が移動(Floating)できること、即ち、その数の有効数字にしたがって何処にも位置できることを意味する。基数点の位置は内部的に表現の指数成分によって示すことができ、したがって、浮動小数点は科学的な表記法をコンピューター上で具現したもの(例えば、1.234×10は1,234を表現したもの)として理解されることができる。
浮動小数点演算のためのIEEE(Institute of Electrical and Electronics Engineers)標準(Standard)であるIEEE 754は、1985年にIEEEによって策定された浮動小数点演算のための技法の標準である。多くのハードウェア的な浮動小数点ユニット又は回路は、大部分がIEEE754標準にしたがう。ここで、“IEEE754”という用語は、浮動小数点演算のためのIEEE標準文書754−2008(2008年8月29日策定)にしたがう標準、又はこの標準文書から派生するか、或いはこの標準文書に先行する標準を意味する。
IEEE754標準は多様な精度を許容する。精度に関する2つの水準として、32ビットの精度及び64ビットの精度が例として挙げられる。浮動小数点数(Floating Point Number)の32ビット形態は、1ビットの符号(Sign)ビット(その数が正の数であるか、又は負の数であるかを示す)、8ビットの指数部分(2の冪数(Power)形態で基数点の位置を示す)、及び23ビットの分数(Fraction)、有効数字、又は仮数(Mantissa)部分(指数部分の2の冪数と掛けられる実数部分を示す)を含む。浮動小数点数の64ビット形態は、1ビットの符号ビット、11ビットの指数部分、及び52ビットの分数部分を含む。上記の説明は、開示される技術思想を限定するものではなく、単なる幾つかの例示である。
反対に、整数は、分数又は小数点無しで使われる数(例えば、21、4、−2048等)を含む。整数は、浮動小数点数の仮数部分に対応するものとして理解されることができる。コンピューター科学において、整数の大きさ又は範囲は、その値を示すために利用される数字又はビット数によって制限される(例えば、8ビットの整数は0乃至255を表現することができ、16ビットの整数は0乃至65,535を表現することができる)。整数は、符号を有するか、或いは符号を有しない。符号を有しない整数(Unsigned Integer)は正の数(又は負の数ではない整数、例えば0乃至255)を含む反面、符号を有する整数(Signed Integer)の場合には、正の数及び負の数を全て含むように数によって表現される範囲が調節される(例えば、−128乃至127、−32,768乃至32,767等)。
米国特許第5257215号明細書 米国特許第5892698号明細書 米国特許第6205461号明細書 米国特許第6366942号明細書 米国特許第7433911号明細書 米国特許第8386755号明細書 米国特許出願公開第2012−0124116号明細書 米国特許出願公開第2012−0215823号明細書
G.EVEN et al.,"A comparison of three rounding algorithms for IEEE floating−point multiplication", Computers,IEEE Transactions on (Volume:49,Issue:7),August 29,1998.
本発明の目的は、浮動小数点数を整数に変換するためのスキーム(Scheme)を提供することにある。
本発明の実施形態による電子装置は、浮動小数点形式で構成された浮動小数点数を格納するように構成されるメモリと、浮動小数点数の少なくとも一部分を正規化して正規化された数を生成するように構成される正規化エンジンと、浮動小数点数を整数に変換するための所定のラウンディング値の集合に基づいてインジェクション常数を生成するように構成されるルックアップテーブルと、正規化された数とインジェクション常数とを加算して整数結果を生成するように構成される加算器と、を含むことができる。
本発明の実施形態において、加算器は、正規化された数とインジェクション常数とだけを加算するように構成されることができる。
本発明の実施形態において、インジェクション常数は、ラウンドインジェクションビット、スティッキーインジェクションビット、及びキャリーイン値を含むことができる。
本発明の実施形態において、インジェクション常数は、浮動小数点数の符号ビットと同一のキャリーインビットを含むことができる。さらに、インジェクション常数は、ラウンドインジェクションビット及びスティッキーインジェクションビットをさらに含むことができる。この実施形態において、0に向かうラウンディングが遂行される場合、ラウンドインジェクションビット及びスティッキーインジェクションビットは、浮動小数点数の符号ビットと同一であり、負の無限大に向かうラウンディングが遂行される場合、ラウンドインジェクションビット及びスティッキーインジェクションビットは、0と同一であり、正の無限大に向かうラウンディングが遂行される場合、ラウンドインジェクションビット及びスティッキーインジェクションビットは、1と同一であり、最も近接した数へのラウンディングが遂行される場合、ラウンドインジェクションビットは、1と同一であり、かつスティッキーインジェクションビットは、0と同一であることができる。
本発明の実施形態において、浮動小数点数が負の数である場合、正規化エンジンは、1の補数演算を通じて浮動小数点数の正規化された形態を反転させるように構成されることができる。
本発明の実施形態による電子装置は、所定のインジェクション常数の集合に基づいて、整数結果の最下位ビットが修正されるか否かを判別するための最下位ビット修正回路をさらに含むことができる。
本発明の実施形態において、整数結果は、2の補数形式で構成された整数値を含むことができる。
本発明の実施形態において、整数結果は、符号を有しない形式の整数値を含むことができる。
本発明の実施形態による電子装置の動作方法は、浮動小数点形式で構成された浮動小数点数が提供される段階と、正規化された数を生成するために浮動小数点数の少なくとも一部分を正規化する段階と、浮動小数点数を整数に変換するための所定のラウンディング値の集合にしたがって少なくとも1つのラウンディング値を算出する段階と、整数結果を生成するために正規化された数と算出されたラウンディング値とを加算する段階と、を含むことができる。
本発明の実施形態において、正規化された数とラウンディング値とを加算する段階は、正規化された数とラウンディング値とだけを加算する段階を含むことができる。
本発明の実施形態において、少なくとも1つのラウンディング値は、ラウンドインジェクションビット、スティッキーインジェクションビット、及びキャリーイン値を含むことができる。
本発明の実施形態において、少なくとも1つのラウンディング値は、浮動小数点数の符号ビットと同一のキャリーインビットを含むことができる。さらに、少なくとも1つのラウンディング値は、ラウンドインジェクションビット及びスティッキーインジェクションビットをさらに含むことができる。この実施形態において、0に向かうラウンディングが遂行される場合、ラウンドインジェクションビット及びスティッキーインジェクションビットは、浮動小数点数の符号ビットと同一であり、負の無限大に向かうラウンディングが遂行される場合、ラウンドインジェクションビット及びスティッキーインジェクションビットは、0と同一であり、正の無限大に向かうラウンディングが遂行される場合、ラウンドインジェクションビット及びスティッキーインジェクションビットは、1と同一であり、最も近接した数へのラウンディングが遂行される場合、ラウンドインジェクションビットは、1と同一であり、かつスティッキーインジェクションビットは、0と同一であることができる。
本発明の実施形態において、浮動小数点数の少なくとも一部分を正規化する段階は、浮動小数点数が負の数である場合、1の補数演算を通じて浮動小数点数の正規化された形態を反転させる段階を含むことができる。
本発明の実施形態による動作方法は、所定のラウンディング値の集合に基づいて、整数結果の最下位ビットが修正されるか否かを判別する段階と、整数結果の最下位ビットが修正されるものであると判別された場合、整数結果の最下位ビットを修正する段階と、をさらに含むことができる。
本発明の実施形態において、整数結果は、2の補数形式で構成された整数値を含むことができる。
本発明の実施形態において、整数結果は、符号を有しない形式の整数値を含むことができる。
本発明の実施形態による電子システムは、浮動小数点形式で構成された浮動小数点数を格納するように構成されるメモリと、浮動小数点数を整数に変換するように構成される浮動小数点変換ユニットと、を含み、浮動小数点変換ユニットは、浮動小数点数の少なくとも一部分を正規化して正規化された数を生成するように構成される正規化エンジンと、浮動小数点数を整数に変換するための所定のラウンディング値の集合に基づいてインジェクション常数を生成するように構成されるルックアップテーブルと、正規化された数とインジェクション常数とを加算して整数結果を生成するように構成される加算器と、含むことができる。
本発明の実施形態において、加算器は、正規化された数とインジェクション常数とだけを加算するように構成されることができる。
本発明の実施形態において、インジェクション常数は、浮動小数点数の符号ビットと同一のキャリーインビットを含むことができる。さらに、インジェクション常数は、ラウンドインジェクションビット及びスティッキーインジェクションビットをさらに含むことができる。この実施形態において、0に向かうラウンディングが遂行される場合、ラウンドインジェクションビット及びスティッキーインジェクションビットは、浮動小数点数の符号ビットと同一であり、負の無限大に向かうラウンディングが遂行される場合、ラウンドインジェクションビット及びスティッキーインジェクションビットは、0と同一であり、正の無限大に向かうラウンディングが遂行される場合、ラウンドインジェクションビット及びスティッキーインジェクションビットは、1と同一であり、最も近接した数へのラウンディングが遂行される場合、ラウンドインジェクションビットは、1と同一であり、かつスティッキーインジェクションビットは、0と同一であることができる。
本発明の実施形態において、整数結果は、2の補数形式で構成された整数値を含むことができる。
本発明の実施形態によれば、浮動小数点数が高速かつ効率的に整数に変換されることができる。本発明の実施形態によれば、整数結果の最下位ビットの修正によって正確な変換が遂行されることができる。
浮動小数点形式の数を整数形式の数へ変換するための電子システムの構成を示した概念図である。 浮動小数点形式の数を整数に変換するためのインジェクション常数を示す表である。 本発明の実施形態による演算の例示を示す表である。 本発明の実施形態による演算の例示を示す表である。 本発明の実施形態による演算の例示を示す表である。 本発明の実施形態による演算の例示を示す表である。 本発明の実施形態による最下位ビット修正回路の構成を示した概念図である。 本発明の実施形態による電子装置又はシステムの動作方法を説明するフローチャートである。 本発明の実施形態による半導体装置を含む情報処理システムの構成を示したブロック図である。
前述した特性及び以下の詳細な説明は、全てが本発明の説明及び理解を助けるための例示的な事項である。即ち、本発明は、このような実施形態に限定されず、他の形態で具体化されることができる。次の実施形態は、単なる本発明を完全に開始するための例示であり、本発明が属する技術分野の通常の技術者に本発明を伝達するための説明である。したがって、本発明の構成要素を具現するための方法が様々である場合には、これらの方法の中で特定なこと又はこれと同一性があるうちに、何らかのことであっても本発明の具現が可能であることを明確にする必要がある。
本明細書で所定の構成が特定要素を含むと言及されている場合又は所定の過程が特定段階を含むと言及された場合は、その他の要素又はその他の段階がさらに含まれることを意味する。即ち、本明細書で使用される用語は、特定実施形態を説明するためのものであり、本発明の概念を限定するためのものではない。さらに、発明の理解を助けるために説明した例示はそれの相補的な実施形態も含む。
本明細書で使用される用語は、本発明が属する技術分野の通常の技術者が一般的に理解する意味を有する。普遍的に使用される用語は、本明細書の文脈にしたがって一貫的な意味として解釈されなければならない。また本明細書で使用される用語は、その意味が明確に定義された場合ではなければ、過度に理想的であるか、或いは形式的な意味として解釈されてはならない。
先に言及されたように、コンピューティング装置において、浮動小数点数(Floating Point Number)は、設定された個数のビットで表現されることができる。浮動小数点数は、割り当てられた個数のビットによって設定された範囲内の有限である数に制限された部分内で個別的な数を示すことができる。普通の浮動小数点数は、有効数字(Significant Number)部分の負の数ではない整数(Whole Number)、及び基数点(Radix Point)の位置を示すために利用される指数(Exponent)部分を利用して標準の科学的な表記形式と同様に表現されることができる。例として、10進法体系で、23,467は2.3467×10でも表現されるが、ここで、負の数ではない整数である1桁の数字は2であり、基数点は右側方向の4桁に位置する。ある数が2進数で表現されれば、最上位ビット(Most Significant Bit)はいつも1である。この明細書で言及される科学的な表記法は、多くの人の共通的な理解を助けるために利用されるものであり、単なる例示的なものである。さらに言及されるが、この明細書によって開示される事項は2進数に焦点を合わせている。
コンピューティング装置において、整数(Integer Number)は、設定された数のビットで表現できるが、他の形式で格納されることができる。整数は、割り当てられた個数のビットによって設定された範囲内の有限である数にさらに狭く制限された部分内で個別的な数を示すことができる。先に言及されたように、整数は、2つの主要形式(即ち、符号を有する(Signed)整数及び符号を有しない(Unsigned)整数)のうちの1つによって表現されることができる。符号を有しない整数は負の数ではない。そして、符号を有しない整数は、0乃至その数を示すために利用されるビットの個数によって制限される範囲内の値を含むことができる(例えば、8ビットの符号を有しない整数は0乃至255を表現することができる)。
符号を有する整数は、大略に0付近に中心を置いた範囲内の値を含む。符号を有する整数の範囲は、ポジティブ(Positive)の方向とネガティブ(Negative)の方向とに実質的に同じ長さだけ拡張されるが、利用されるビットの個数によって制限できる(例えば、8ビットの符号を有する整数は−128乃至127を表現することができる)。しかしながら、ここには2つの重要な規則がある。第1に、0の値を表現するために偶数個であるビットの組合せのうちの1つが利用されることによって、正の数の個数と負の数の個数は同一でなくなる。
したがって、負の数の個数は、正の数の個数よりも1つ多くなる(例えば、8ビットの符号を有する整数において、−128が下限である反面、上限は正の数である127である)。第2に、負の整数は、この発明が属する技術分野で通常の知識を有する者(以下、通常の技術者)に広く公知された2の補数(2’s Complement)表記法によって表現できる。この方法によれば、すべての負の数の最上位ビットは1である。したがって、符号を有する整数の最上位ビットを確認することによって、その数が正の数であるか(最上位ビットが0である場合)、又は負の数であるか(最上位ビットが1である場合)が判別される。また、この方法によれば、負の数の個数が正の数の個数よりも1つ多いので、0の値の最上位ビットは0である。
時々、コンピューティング装置は、浮動小数点形式(例えば、符号ビット、仮数(Mantissa)部分、及び指数部分を含む形式)に格納された数を整数形式に変換する必要がある。この時、変換処理と関連して少なくとも2つのイッシューが発生する。第1に、浮動小数点数は分数部分(即ち、整数ではない部分;例えば、1.34に含まれる0.34部分)を含み、この部分をどのようにして整数で表現するかを考慮しなければならない。この問題は、IEEE754仕様書(Specification)で策定されたラウンディング(Rounding)規則の集合を利用することによって取り扱われることができる。第2に、浮動小数点形式の値は正の数又は負の数であることを示す符号ビットを含む反面、(符号を有する整数の最上位ビットの場合を除外すれば)整数は符号ビットを含まない。特に、浮動小数点数は、符号を示すためのビットを含むことによって‘負の0(Negative Zero)’に対応する表現を有する反面、整数はそうではない。このような実施形態において、浮動小数点数を正規化(Normalization)された値又は固定小数点(Fixed Point)値に変換する過程でのみでなく、他の場合(即ち、符号を有する整数形式の変換)で図2の補数演算が要求される。以下、本発明の理解を助けるために、添付された図面を通じて本発明の実施形態が説明される。
図1は、浮動小数点形式の数を整数形式の数に変換するための電子システムの構成を示した概念図である。実施形態として、電子システム100は、浮動小数点変換器を含む。
この実施形態において、電子システム100は、浮動小数点形式の数が提供されて格納するように構成されるレジスター又はメモリ102を含む。先に言及されたように、実施形態として、浮動小数点数は、符号ビット、指数部分、及び仮数(Mantissa)部分を含む。
実施形態として、電子システム100は、浮動小数点数を正規化するように構成される正規化エンジン104を含む。ここで、”正規化”という用語は、仮数部分を指数部分が1である表現に変換する処理を意味する。正規化は、バイアスされない(Unbiased)指数部分の値だけ基数点(例えば、10進法体系10進小数点等)を移動させる過程を含む。例として、1.234×10の値(仮数が1234であり、指数が3であり、符号が正である値)を有する浮動小数点数は、10進小数点を3回移動させることによって1,234に正規化される。正規化は、IEEE754仕様書で定義される“非正規数(Denormal Number又はSubnormal Number)”という用語と混同させてはならない。非正規の数は正規化できるが、本発明の開示と特別に関連されることではない。
実施形態として、中間段階の正規化された数106は、正の整数(116;例えば、浮動小数点数の絶対値)を利用して表現できる。この実施形態において、正規化された数106は、正の2の補数形式の数を利用せず、エイリアシング(Aliasing)されることができる。
実施形態として、中間段階の正規化された数106は、ラウンディング地点(Rounding Point)又は基数点の後方の1つ以上のビット又は分数値126を含む(例えば、10進システムで、正規化された1.25は基数点の後方又は右側の分数値0.25を含む)。この実施形態において、分数値126は、IEEE754仕様書にしたがってラウンドビット(Rounding Bit;136)及びスティッキービット(Sticky Bit;146)に変換される。この実施形態において、下位ビットに対するOR演算を通じて、スティッキービット146が生成される。
実施形態として、ラウンドビット136及びスティッキービット146が一度算出されれば、中間段階の正規化された数106はラウンディングされる準備が整う。実施形態として、中間段階の正規化された数106が負の数であれば(例として、浮動小数点数の符号ビットの値によって判別できる)、中間段階の正規化された数106は反転(Inversion)される。反転された結果値は最終的な正規化された数であり、これを便宜上“正規化された数108”と称する。実施形態として、正規化された数108は、中間段階の正規化された数106に対して1の補数(1’s Complement)演算を遂行することによって得られる。1の補数演算は2の補数演算に比べて少ない正の演算を必要とする。例として、1の補数演算を通じた反転処理は、複数個のインバータ(Inverter)及び/又はマルチプレクサー(Multiplexer)を利用して遂行されることができる。マルチプレクサーは、正の数である中間段階の正規化された数106及び負の数である中間段階の正規化された数106のうちの1つを選択するために利用される。1の補数演算と比較すれば、2の補数演算は反転された結果に1を加えるための加算器(Adder)又は半加算器(Half−adder)を必要とする。
実施形態として、電子システム100は、加算器110を含む。この実施形態において、加算器110は、3つの入力(例えば、入力A、入力B、キャリーインビット)を受け入れる。実施形態として、加算器110は、正規化された数108、1つ以上のインジェクション(Injection)ビット又は常数112、及びキャリーイン(Carry−in)値114を入力として提供される。
この実施形態において、加算器110は、正規化された数108を適切にラウンディングして2の補数形式で構成された整数結果120を生成する。先に言及されたように、IEEE754標準は様々なラウンディングスキーム(Scheme)を許容する。例として、利用可能であるラウンディンググスキームとして、0に向かうラウンディング(Round to Zero)、負の無限大に向かうラウンディング(Round to Minus Infinity)、正の無限大に向かうラウンディング(Round to Positive Infinity)、及び/又は最も近接した数へのラウンディング(Round to Nearest Even Value)等がある。但し、これらは単なる幾つかの可能である例示であり、本発明を限定するためのものではない。
実施形態として、電子システム100は、インジェクションラウンディングとして公知された技法を利用する。この実施形態において、正規化された数108に1を加えるか、或いは加えないかを判別するために正規化された数108の分数部分を検査する代わりに、正規化された数108に常数値が加えられ、分数部分は捨てられる。例として、正規化された数が1.25である場合、1を得るために、分数部分0.25が0.5より小さいものと判断し、切捨て(Rounding Down)を遂行する代わりに、1.25に常数0.5を加えて1.75を得て新しい分数部分0.75を捨てることがより簡単であり、速い。これと同様に、正規化された数が1.51である場合、常数0.5を加えることによって、得られた2.01から0.01を捨てられれば、正規化された数は自然に2に切上げ(Rounding Up)される。但し、これらは単なる幾つかの例示であり、本発明を限定するためのものではない。電子システム100は10進演算ではない二進演算を遂行する。
この実施形態において、インジェクション常数112は、演算(例えば、実数から整数への変換等)のために選択されたラウンディングスキーム又は規則に基づいて予め定められる。この実施形態において、インジェクション常数112は、選択された演算に基づいても予め定められる。例として、インジェクション常数112の第1集合は、実数から整数への変換のために利用され、インジェクション常数112の第2集合は、実数から実数への変換(例えば、ダブルフロート(Double Float)からシングルフロート(Single Float)への変換等)のために利用される。この実施形態において、開示された内容は主に浮動小数点数から整数への変換を取り扱う。但し、これらは単なる幾つかの例示であり、本発明を限定するためのものではない。
図2は、浮動小数点形式の数を整数に変換するためのインジェクション常数を示す表である。実施形態として、図2の表は、図1のインジェクション常数112を決定するために利用される。但し、これは単なる例示であり、本発明を限定するためのものではない。
実施形態として、図2の表は、4つのラウンディングモードに各々対応するインジェクション常数を示している。実施形態として、利用可能であるラウンディングモードは0に向かうラウンディング、負の無限大に向かうラウンディング、正の無限大に向かうラウンディング、及び/又は最も近接した数へのラウンディングを含む。
図2の表は、ラウンドビットの位置に挿入される4つの値とスティッキービットの位置に挿入される4つの値とを説明している。実施形態として、ラウンドビット及びスティッキービットは、正規化された数の下位ビット位置に置かれる。そして、2ビット(ラウンドインジェクションビット及びスティッキーインジェクションビット)を含むインジェクション常数が正規化された数の下位ビット(ラウンドビット及びスティッキービット)に加算される。
実施形態として、ラウンディングモードが“0に向かうラウンディング”に設定された場合、ラウンドインジェクションビット及びスティッキーインジェクションビットの値は浮動小数点数の符号ビットの値と同一である。実施形態として、ラウンディングモードが“負の無限大に向かうラウンディング”に設定された場合、ラウンドインジェクションビット及びスティッキーインジェクションビットの値は0と同一である。実施形態として、ラウンディングモードが“正の無限大に向かうラウンディング”に設定された場合、ラウンドインジェクションビット及びスティッキーインジェクションビットの値は1と同一である。実施形態として、ラウンディングモードが“最も近接した数へのラウンディング”に設定された場合、ラウンドインジェクションビットの値は1と同一であり、かつスティッキーインジェクションビットの値は0と同一である。但し、これらは単なる幾つかの例示であり、本発明を限定するためのものではない。
図2の表は、キャリーインビットに対する4つの値を説明している。実施形態として、キャリーインビットはインジェクション常数の一部分に含まれる。実施形態として、ラウンディングモードに関わらず、キャリーインビットは浮動小数点数の符号ビットの値と同一である。
再び図1を参照すれば、インジェクション常数112及びキャリーイン値114は、テーブル(例えば、図2の表)又は予め定められた構造によって指示される。そして、インジェクション常数112及びキャリーイン値114は、ラウンディングスキーム又はモード設定、及び浮動小数点数の符号ビットのうちの1つ以上に基づく。先に言及されたように、加算器110は、2の補数形式で構成されるか、或いはエンコーディング(Encoding)された整数結果120を生成する。
幾つかの場合、整数結果120の最下位ビット(Least Significant Bit)は正しくないこともある。例として、ラウンディングモードが“最も近接した数へのラウンディング”に設定された場合、誤謬が発生することがある。実施形態として、必要によって、電子システム100は、加算器110から出力された結果の最下位ビットを調節するように構成される最下位ビット修正回路118を含む。最下位ビット修正回路118が動作する場合の実施形態は、図3D及び図4に対する説明で言及される。但し、これは単なる例であり、本発明を限定するためのものではない。
先に言及されたように、加算器110の出力(又は、最下位ビット修正回路118が動作する場合には最下位ビット修正回路118の出力)は、2の補数形式で構成されるか、或いはエンコーディングされた整数結果120を含む。実施形態として、整数結果120は、コンピューターで遂行される他の演算(例えば、加算、減算等)に適合する。実施形態として、浮動小数点数の符号ビットと同様に、整数結果120は、符号ビット122を伴うか、あるいは符号ビット122に連結される。別の実施形態において、符号ビット122は含まないこともあり得る。但し、これらは単なる幾つかの例示であり、本発明を限定するためのものではない。
図3Aは、本発明の実施形態による演算の例示を示す表である。実施形態として、図3Aの表に示した値(例えば、浮動小数点数、ラウンドビット、スティッキービット、インジェクション常数等)は、図1に示したような浮動小数点変換機で利用されることができる。特に、図3Aに示した例示は、ラウンディングモードが“0に向かうラウンディング”に設定された場合に関する。但し、図3Aは単なる例示であり、本発明を限定するためのものではない。
実施形態として、図3Aに示したように、インジェクション常数は浮動小数点数の符号ビットと同一の値に設定される。この実施形態において、浮動小数点数が正の数から負の数に変わることによって、インジェクション常数の値も変わる。
図3Aは、入力される浮動小数点数とそれに対応するラウンドビット及びスティッキービットが有する値を示している。以下、2つの例示的な場合が説明される。‘例示1’で指示された行で、入力される浮動小数点数は0010であり、ラウンドビットは1であり、スティッキービットは1であり、符号ビットは0(正の数)である。‘例示1’で、正規化された数は001011(入力される浮動小数点数の最下位ビットの方にラウンドビット及びスティッキービットを連結した値)である。符号ビットが0であるので、インジェクション常数は00であり、キャリーインビットは0である。加算器の出力は001011(=001011+00+0)である。下位の2ビットを除去することによって、0010(又は、10進数形態の2)の整数結果が得られる。
‘例示2’で指示された行で、入力される浮動小数点数の1の補修は1100であり、ラウンドビットは1であり、スティッキービットは0であり、符号ビットは1(負の数)である。‘例示2’で、正規化された数は110010(入力される浮動小数点数の1の補数の最下位ビットの方にラウンドビット及びスティッキービットを連結した値)である。符号ビットが1であるので、インジェクション常数は11であり、キャリーインビットは1である。加算器の出力は110110(=110010+11+1)である。下位の2ビットを除去することによって、1101(又は、10進数形態の−3)の整数結果が得られる。図3Aは、多様な入力値に対して上記の例示と類似の演算を遂行して得られる整数結果を示している。但し、これらは単なる幾つかの例示であり、本発明を限定するためのものではない。
図3Bは、本発明の実施形態による演算の別の例示を示す表である。実施形態として、図3Bの表に示した値(例えば、浮動小数点数、ラウンドビット、スティッキービット、及びインジェクション常数等)は、図1に示したような浮動小数点変換機で利用されることができる。特に、図3Bに示した例示は、ラウンディングモードが“負の無限大に向かうラウンディング”に設定された場合に関する。但し、図3Bは、単なる例示であり、本発明を限定するためのものではない。
実施形態として、図3Bに示したように、インジェクション常数のラウンドビット及びスティッキービットは0に設定される。さらに、キャリーインビットは浮動小数点数の符号ビットと同一である。図3Bは、入力される浮動小数点数とそれに対応するラウンドビット及びスティッキービットが有する値、及び整数結果の値を示している。図3Bの例示で、図3Aに対する説明で言及されたものと類似の演算が遂行されることができる。但し、これらは単なる幾つかの例示であり、本発明を限定するためのものではない。
図3Cは、本発明の実施形態による演算の別の例示を示す表である。実施形態として、図3Cの表に示した値(例えば、浮動小数点数、ラウンドビット、スティッキービット、及びインジェクション常数等)は、図1に示したような浮動小数点変換機で利用されることができる。特に、図3Cに示した例示は、ラウンディングモードが“正の無限大に向かうラウンディング”に設定された場合に関する。但し、図3Cは、単なる例示であり、本発明を限定するためのものではない。
実施形態として、図3Cに示したように、インジェクション常数のラウンドビット及びスティッキービットは1に設定される。さらに、キャリーインビットは浮動小数点数の符号ビットと同一である。図3Cは、入力される浮動小数点数とそれに対応するラウンドビット及びスティッキービットが有する値、及び整数結果の値を示している。図3Cの例示で、図3Aに対する説明で言及されたものと類似の演算が遂行されることができる。但し、これらは単なる幾つかの例示であり、本発明を限定するためのものではない。
図3Dは、本発明の実施形態による演算の別の例示を示す表である。実施形態として、図3Dの表に示した値(例えば、浮動小数点数、ラウンドビット、スティッキービット、及びインジェクション常数等)は、図1に示したような浮動小数点変換機で利用されることができる。特に、図3Dに示した例示は、ラウンディングモードが“最も近接した数へのラウンディング”に設定された場合に関する。但し、図3Dは、単なる例示であり、本発明を限定するためのものではない。
実施形態として、図3Dに示したように、インジェクション常数のラウンドビットは1に設定され、スティッキービットは0に設定される。さらに、キャリーインビットは浮動小数点数の符号ビットと同一である。図3Dは、入力される浮動小数点数とそれに対応するラウンドビット及びスティッキービットが有する値、及び整数結果の値を示している。図3Dの例示で、図3Aに対する説明で言及されたものと類似の演算が遂行されることができる。しかしながら、’例示1’及び’例示2’で指示された行に示した2つの場合で、整数結果の最下位ビットが正しくないことがあり得、最下位ビット修正回路118(図1参照)の動作が必要とされる。このような実施形態において、最下位ビット修正回路118は、整数結果の最下位ビットを数学的に正しい値に修正することができる。但し、これらは単なる幾つかの例示であり、本発明を限定するためのものではない。
図4は、本発明の実施形態による最下位ビット修正回路の構成を示した概念図である。実施形態として、最下位ビット修正回路400は、図3Dに示したような正しくない最下位ビットを修正するために利用される。
実施形態として、最下位ビット修正回路400は、活性化回路402を含む。この実施形態において、活性化回路402は、3つの入力が提供されるAND回路を含む。活性化回路402は、ラウンディングモードが“最も近接した数へのラウンディング”であるか否かを示す信号RM、ラウンドビットRB、及びスティッキービットSBの反転されたビットを入力として提供される。
実施形態として、最下位ビット修正回路400は、修正回路404を含む。この実施形態において、修正回路404は、2つの入力が提供されるAND回路を含む。修正回路404は、ラウンディングされた整数結果の最下位ビットLSB及び活性化回路402の出力の反転された値を入力として提供される。修正回路404は、修正された最下位ビットcLSBを出力する。但し、これは単なる例示であり、本発明を限定するためのものではない。
図5は、本発明の実施形態による電子装置又はシステムの動作方法を説明するフローチャートである。実施形態として、図5の動作方法は、図1又は図6に示した電子システムによって利用されることができる。さらに、図5の動作方法の一部分は、図3A乃至図3Dに示したような結果を生成することができる。但し、これらは単なる幾つかの例示であり、本発明を限定するためのものではない。
S110段階で、浮動小数点数が提供される。実施形態として、浮動小数点数は、符号ビット、仮数部分、及び指数部分を含む形式で構成される。実施形態として、S110段階は、図1又は図6に示した電子装置又はシステム及び図1のメモリ102によって遂行されることができる。
S120段階で、浮動小数点数の少なくとも一部分が正規化される。したがって、正規化された数が生成される。実施形態として、浮動小数点数の少なくとも一部分を正規化する過程は、浮動小数点数が負の数である場合、1の補数演算を通じて浮動小数点数の正規化された形態を反転させる過程を含む。実施形態として、S120段階は、図1又は図6に示した電子装置又はシステム及び図1の正規化エンジン104によって遂行されることができる。
S130段階で、浮動小数点数を整数に変換するための所定のラウンディング値の集合にしたがって少なくとも1つのラウンディング値が算出される。実施形態として、少なくとも1つのラウンディング値は、ラウンドインジェクションビット、スティッキーインジェクションビット、及びキャリーイン値を含む。実施形態として、少なくとも1つのラウンディング値は浮動小数点数の符号ビットと同一のキャリーインビットを含む。実施形態として、“0に向かうラウンディング”が遂行される場合、ラウンディング値は浮動小数点数の符号ビットと同一のラウンドインジェクションビット及びスティッキーインジェクションビットを含む。実施形態として、“負の無限大に向かうラウンディング”が遂行される場合、ラウンディング値は0と同一のラウンドインジェクションビット及びスティッキーインジェクションビットを含む。実施形態として、“正の無限大に向かうラウンディング”が遂行される場合、ラウンディング値は1と同一のラウンドインジェクションビット及びスティッキーインジェクションビットを含む。実施形態として、“最も近接した数へのラウンディング”が遂行される場合、ラウンディング値は1と同一のラウンドインジェクションビット及び0と同一のスティッキーインジェクションビットを含む。実施形態として、S130段階は、図1又は図6に示した電子装置又はシステム及び図2の表を含むメモリ102によって遂行されることができる。
S140段階で、正規化された数とラウンディング値とが加算される。したがって、整数結果が生成される。実施形態として、正規化された数とラウンディング値とを加算する過程は、正規化された数とラウンディング値とだけを加算する段階を含む。この実施形態において、整数結果は、様々な段階の加算又は3つ以上の値に対する加算無しで1つの全加算器(Full−adder)のみを利用して生成されることができる。但し、これは単なる例示であり、本発明を限定するためのものではない。実施形態として、整数結果は符号を有しない形式の整数値を含む。別の実施形態において、整数結果は2の補数形式で構成された整数値を含むことができる。実施形態として、S140段階は、図1又は図6に示した電子装置又はシステム及び図1の加算器110によって遂行されることができる。
S150段階で、整数結果の最下位ビットが修正されるか否かが判別される。実施形態として、整数結果の最下位ビットが修正されるか否かは所定のラウンディング値の集合に基づいて判別されることができる。実施形態として、整数結果の最下位ビットが修正されなければならない場合、整数結果の最下位ビットが修正される。実施形態として、S150段階は、図1又は図6に示した電子装置又はシステム及び図1の最下位ビット修正回路118によって遂行されることができる。
図6は、本発明の実施形態による半導体装置を含む情報処理システムの構成を示したブロック図である。情報処理システム600は、本発明の実施形態にしたがって構成される1つ以上の装置を含む。又は、情報処理システム600は、本発明の実施形態による動作方法を採用するか、或いは実行することができる。
実施形態として、情報処理システム600は、例えば、ラップトップ(Laptop)、デスクトップコンピュータ(Desktop)、ワークステーション(Workstation)、サーバー(Server)、ブレード(Blade)サーバー、PDA(Personal Digital Assistant)、スマートフォン(Smartphone)、タブレット(Tablet)、及び他の適切なコンピューター等のようなコンピューティング装置、又は仮想マシン(Virtual Machine)又はそれの仮想コンピューティング装置等を含む。実施形態として、情報処理システム600は使用者によって利用される。
本発明の実施形態による情報処理システム600は、中央処理ユニット(Central Processing Unit)、ロジック、又はプロセッサ610をさらに含む。実施形態として、プロセッサ610は、1つ以上の機能ユニットブロック(Functional Unit Block)又は組合せ論理ブロック(Combinational Logic Block;615)を含む。実施形態として、組合せ論理ブロック615は、多様なブール論理演算(Boolean Logic Operation;例えば、NAND、NOR、NOT、XOR等)のための論理装置、安定化(Stabilizing)論理装置(例えば、フリップフロップ(Flip−flop)、ラッチ(Latch)等)、他の論理装置、又はそれらの組合せを含む。組合せ論理ブロック615は、単純な又はさらに複雑な方式に入力信号を処理して望む結果を得られるように構成される。同期式の(Synchronous)組合せ論理演算の幾つかの例示が言及されたが、本発明はこの例示に限定されない。本発明は、非同期式の(Asynchronous)演算、又は同期式の演算及び非同期式の演算の組合せを利用することができる。実施形態として、組合せ論理ブロック615は、複数のCMOS(Complementary Metal Oxide Semiconductor)トランジスタを含むことができる。実施形態として、CMOSトランジスタは、論理演算を遂行するゲート(Gate)に配列される。但し、他の技術が利用されることができ、それらもやはり本発明の技術思想の範囲に含まれる。
本発明の実施形態による情報処理システム600は、揮発性メモリ620(例えば、RAM(Random Access Memory)等)をさらに含む。本発明の実施形態による情報処理システム600は、不揮発性メモリ630(例えば、ハードドライブ、光学メモリ、NANDフラッシュメモリ等)をさらに含む。実施形態として、揮発性メモリ620、不揮発性メモリ630、又はそれらの組合せ又は一部は、“格納媒体”と称されることもある。実施形態として、揮発性メモリ620及び/又は不揮発性メモリ630は、半永久的な又は実質的に永久的な形態でデータを格納するように構成されることができる。
実施形態として、情報処理システム600は、1つ以上のネットワークインターフェイス640を含む。ネットワークインターフェイス640は、情報処理システム600が通信網の一部として通信網を通じて通信するようにする。例として、ネットワークインターフェイス640は、IEEE(Institute of Electrical and Electronics Engineers) 802.11g、IEEE 802.11n等を含むWi−Fi規約、Wireless−MAN(Metropolitan Area Network) Advancedとしても公知されたIEEE 802.16m、LTE(Long Term Evolution) Advanced、EDGE(Enhanced Data rates for GSM(登録商標)(Global System for Mobile communications) Evolution)、Evolved HSPA(High Speed Packet Access)等を含むセル(Cellular)通信規約、Ethernet(登録商標)としても公知されたIEEE802.3、Fibre Channel、Power Line communication(例えば、HomePlug、IEEE 1901等)等を含む有線通信規約等を利用することができる。但し、これらは、単なる幾つかの例示であり、本発明を限定するためのものではない。
本発明の実施形態による情報処理システム600は、ユーザーインターフェイス650(例えば、ディスプレーアダプター(Display Adapter)、ハプティック(Haptic)インターフェイス、ヒューマンインターフェイス装置等)をさらに含むことができる。実施形態として、ユーザーインターフェイス650は、使用者から入力が提供されるか、或いは使用者に出力を提供するように構成される。使用者との相互作用のために、他の種類の装置が利用される。例として、使用者に提供されるフィードバック(Feedback)は、感覚的なフィードバック(例えば、視覚的なフィードバック、聴覚的なフィードバック、又は触覚的なフィードバック)の形態を有することができる。そして、使用者からの入力は、音響、音声、又は触覚を含んで何らかの形態で提供されることができる。
実施形態として、情報処理システム600は、1つ以上のその他のハードウェア装置660(例えば、ディスプレー又はモニター、キーボード、マウス、カメラ、指紋読出器、ビデオ処理器等)を含むことができる。但し、これらは単なる幾つかの例示であり、本発明を限定するためのものではない。
本発明の実施形態による情報処理システム600は、1つ以上のシステムバス605をさらに含む。実施形態として、システムバス605は、プロセッサ610、揮発性メモリ620、不揮発性メモリ630、ネットワークインターフェイス640、ユーザーインターフェイス650、及びその他のハードウェア装置660と通信するように接続される。プロセッサ610によって処理されたデータ又は不揮発性メモリ630の外部から入力されたデータは、不揮発性メモリ630又は揮発性メモリ620に格納される。
実施形態として、情報処理システム600は、1つ以上のソフトウェア670を含むか、或いは実行することができる。実施形態として、ソフトウェア670は、オペレーティングシステム(Operating System;OS)及び/又は応用プログラム(Application)を含むことができる。実施形態として、OSは、応用プログラムに1つ以上のサービスを提供し、応用プログラムと情報処理システム600の多様なハードウェア装置(例えば、プロセッサ610、ネットワークインターフェイス640等)との間で仲介者の役割を遂行することができる。実施形態として、情報処理システム600は、その内部(例えば、不揮発性メモリ630内部等)に設置されてプロセッサ610によって直接実行されOSと直接相互作用するように構成される1つ以上のネイティブ(Native)プログラムを含むことができる。実施形態として、ネイティブプログラムは、予めコンパイルされて機械実行可能であるコード(Pre−compiled Machine Executable Code)を含むことができる。実施形態として、ネイティブプログラムは、プロセッサ610によって実行されるソースコード(Source Code)又はオブジェクトコード(Object Code)を実行可能であるコードで翻訳するように構成されるスクリプトインタプリタ(Script Interpreter;例えば、C shell、AppleScript、AutoHotkey等)又は仮想マシン(例えば、Java(登録商標) Virtual Machine、Microsoft Common Language Runtime等)を含むことができる。
先に言及された半導体装置は、多様なパッケージング(Packaging)方法を利用して実装されることができる。例として、本発明の実施形態によって構成される半導体装置は、POP(Package On Package)、BGAs(Ball Grid Arrays)、CSPs(Chip Scale Packages)、PLCC(Plastic Leaded Chip Carrier)、PDIP(Plastic Dual In−line Package)、Die in waffle pack、Die in wafer form、COB(Chip On Board)、CERDIP(Ceramic Dual In−line Package)、PMQFP(Plastic Metric Quad Flat Package)、PQFP(Plastic Quad Flat Package)、SOIC(Small Outline Package)、SSOP(Shrink Small Outline Package)、TSOP(Thin Small Outline Package)、TQFP(Thin Quad Flat Package)、SIP(System In Package)、MCP(Multi−Chip Package)、WFP(Wafer−level Fabricated Package)、WSP(Wafer−level processed Stack Package)、又はその他のパッケージング方法のうちの1つ以上を利用して実装されることができる。
本発明の実施形態による電子装置又はシステムの動作方法は、入力データを処理し、出力を生成して固有の機能を遂行するためにコンピュータープログラムを実行するように構成される1つ以上のプログラム可能であるプロセッサによって遂行されることができる。本発明の実施形態による電子装置又はシステムの動作方法は、専用論理回路(例えば、FPGA(Field Programmable Gate Array)、ASIC(Application Specific Integrated Chip)等)によって遂行されることができる。本発明の実施形態による電子装置は、専用論理回路(例えば、FPGA、ASIC等)で具現されることができる。
実施形態として、コンピューターで読み出される媒体は、実行された時に電子装置が本発明の実施形態による動作方法の少なくとも一部分を遂行するようにする命令を含むことができる。実施形態として、コンピューターで読み出される媒体は、磁気媒体、光学媒体、それ以外の他の媒体、又はそれらの組合せ(例えば、CD−ROM、ハードドライブ、読出し専用メモリ、フラッシュドライブ等)に含むことができる。実施形態として、コンピューターで読み出される媒体は、有形的であり、非一時的に具現される物品である。
各々の概念図に示した構成は単なる概念的な観点で理解しなければならない。本発明の理解を助けるために、概念図に示した構成要素各々の形態、構造、大きさ等は誇張又は縮小されて表現されている。実際に具現される構成は各々の概念図に示したものと異なる物理的形状を有することができる。各々の概念図は構成要素の物理的形状を限定するためのものではない。
各々のブロック図に示した装置構成は発明の理解を助けるためのものである。各々のブロックは機能によってさらに小さい単位のブロックで形成されることができる。又は、複数のブロックは機能によってさらに大きい単位のブロックを形成することができる。即ち、本発明の技術思想はブロック図に図示された構成によって限定されない。
以上で本発明に対する実施形態を中心に本発明を説明した。但し、本発明が属する技術分野の特徴上、本発明が達成しようとする目的は、本発明の要旨を包含しながらも、上の実施形態と異なる形態で達成されてもよい。したがって、上の実施形態は、限定的なものではなく、説明的な側面で理解しなければならない。即ち、本発明の要旨を包含しながら、本発明のような目的を達成できる技術思想は、本発明の技術思想に含まれるものとして解釈されなければならない。
したがって、本発明の本質的な特性を逸脱しない範囲内で修正又は変形された技術思想は本発明が請求する保護範囲に含まれる。また、本発明の保護範囲は上の実施形態に限定されるものではない。
100 電子システム
102 メモリ
104 正規化エンジン
106 中間段階の正規化された数
108 正規化された数
110 加算器
112 インジェクション常数
114 キャリーイン値
116 正の整数
118 最下位ビット修正回路
120 整数結果
122 符号ビット
126 分数値
136 ラウンドビット
146 スティッキービット
400 最下位ビット修正回路
402 活性化回路
404 修正回路
600 情報処理システム
605 システムバス
610 ロジック又はプロセッサ
615 組合せ論理ブロック
620 揮発性メモリ
630 不揮発性メモリ
640 ネットワークインターフェイス
650 ユーザーインターフェイス
660 その他のハードウェア装置
670 ソフトウェア

Claims (18)

  1. 浮動小数点形式で構成された浮動小数点数を格納するように構成されるメモリと、
    前記浮動小数点数の少なくとも一部分を正規化して正規化された数を生成するように構成される正規化エンジンと、
    浮動小数点数を整数に変換するためのラウンディングモードに基づいてインジェクション常数を生成するように構成されるルックアップテーブルと、
    前記正規化された数と前記インジェクション常数とを加算して整数結果を生成するように構成される加算器と、を含み、
    前記インジェクション常数は、ラウンドインジェクションビット、スティッキーインジェクションビット、及びキャリーインビットを含む、電子装置。
  2. 前記加算器は、前記正規化された数と前記インジェクション常数とだけを加算するように構成される請求項1に記載の電子装置。
  3. 前記キャリーインビットは、前記浮動小数点数の符号ビットと同一であり、
    0に向かうラウンディングが遂行される場合、前記ラウンドインジェクションビット及び前記スティッキーインジェクションビットは、前記浮動小数点数の前記符号ビットと同一であり、
    負の無限大に向かうラウンディングが遂行される場合、前記ラウンドインジェクションビット及び前記スティッキーインジェクションビットは、0と同一であり、
    正の無限大に向かうラウンディングが遂行される場合、前記ラウンドインジェクションビット及び前記スティッキーインジェクションビットは、1と同一であり、
    最も近接した数へのラウンディングが遂行される場合、前記ラウンドインジェクションビットは、1と同一であり、かつ前記スティッキーインジェクションビットは、0と同一である請求項1に記載の電子装置。
  4. 前記浮動小数点数が負の数である場合、前記正規化エンジンは、1の補数演算を通じて前記浮動小数点数の正規化された形態を反転させるようにさらに構成される請求項1に記載の電子装置。
  5. 所定のインジェクション常数の集合に基づいて、前記整数結果の最下位ビットが修正されるか否かを判別するための最下位ビット修正回路をさらに含む請求項1に記載の電子装置。
  6. 前記整数結果は、2の補数形式で構成された整数値を含む請求項1に記載の電子装置。
  7. 前記整数結果は、符号を有しない形式の整数値を含む請求項1に記載の電子装置。
  8. 電子装置の動作方法において、
    メモリにより、浮動小数点形式で構成された浮動小数点数が提供される段階と、
    正規化エンジンにより、正規化された数を生成するために前記浮動小数点数の少なくとも一部分を正規化する段階と、
    前記メモリに格納されたルックアップテーブルにより、浮動小数点数を整数に変換するためのラウンディングモードにしたがってインジェクション常数を算出する段階と、
    加算器により、整数結果を生成するために前記正規化された数と前記算出されたインジェクション常数とを加算する段階と、を含み、
    前記インジェクション常数は、ラウンドインジェクションビット、スティッキーインジェクションビット、及びキャリーインビットを含む、動作方法。
  9. 加算器により、前記正規化された数と前記算出されたインジェクション常数とを加算する段階は、前記加算器により、前記正規化された数と前記算出されたインジェクション常数とだけを加算する段階を含む請求項8に記載の動作方法。
  10. 前記キャリーインビットは、前記浮動小数点数の符号ビットと同一であり、
    0に向かうラウンディングが遂行される場合、前記ラウンドインジェクションビット及び前記スティッキーインジェクションビットは、前記浮動小数点数の前記符号ビットと同一であり、
    負の無限大に向かうラウンディングが遂行される場合、前記ラウンドインジェクションビット及び前記スティッキーインジェクションビットは、0と同一であり、
    正の無限大に向かうラウンディングが遂行される場合、前記ラウンドインジェクションビット及び前記スティッキーインジェクションビットは、1と同一であり、
    最も近接した数へのラウンディングが遂行される場合、前記ラウンドインジェクションビットは、1と同一であり、かつ前記スティッキーインジェクションビットは、0と同一である請求項8に記載の動作方法。
  11. 正規化エンジンにより、前記浮動小数点数の少なくとも一部分を正規化する段階は、前記浮動小数点数が負の数である場合、前記正規化エンジンにより、1の補数演算を通じて前記浮動小数点数の正規化された形態を反転させる段階を含む請求項8に記載の動作方法。
  12. 最下位ビット修正回路により、前記ラウンディングモードに基づいて、前記整数結果の最下位ビットが修正されるか否かを判別する段階と、
    前記整数結果の前記最下位ビットが修正されるものであると判別された場合、前記最下位ビット修正回路により、前記整数結果の前記最下位ビットを修正する段階と、をさらに含む請求項8に記載の動作方法。
  13. 前記整数結果は、2の補数形式で構成された整数値を含む請求項8に記載の動作方法。
  14. 前記整数結果は、符号を有しない形式の整数値を含む請求項8に記載の動作方法。
  15. 浮動小数点形式で構成された浮動小数点数を格納するように構成されるメモリと、
    前記浮動小数点数を整数に変換するように構成される浮動小数点変換ユニットと、を含み、
    前記浮動小数点変換ユニットは、
    前記浮動小数点数の少なくとも一部分を正規化して正規化された数を生成するように構成される正規化エンジンと、
    浮動小数点数を整数に変換するためのラウンディングモードに基づいてインジェクション常数を生成するように構成されるルックアップテーブルと、
    前記正規化された数と前記インジェクション常数とを加算して整数結果を生成するように構成される加算器と、を含み、
    前記インジェクション常数は、ラウンドインジェクションビット、スティッキーインジェクションビット、及びキャリーインビットを含む、電子システム。
  16. 前記加算器は、前記正規化された数と前記インジェクション常数とだけを加算するように構成される請求項15に記載の電子システム。
  17. 前記キャリーインビットは、前記浮動小数点数の符号ビットと同一であり、
    0に向かうラウンディングが遂行される場合、前記ラウンドインジェクションビット及び前記スティッキーインジェクションビットは、前記浮動小数点数の前記符号ビットと同一であり、
    負の無限大に向かうラウンディングが遂行される場合、前記ラウンドインジェクションビット及び前記スティッキーインジェクションビットは、0と同一であり、
    正の無限大に向かうラウンディングが遂行される場合、前記ラウンドインジェクションビット及び前記スティッキーインジェクションビットは、1と同一であり、
    最も近接した数へのラウンディングが遂行される場合、前記ラウンドインジェクションビットは、1と同一であり、かつ前記スティッキーインジェクションビットは、0と同一である請求項15に記載の電子システム。
  18. 前記整数結果は、2の補数形式で構成された整数値を含む請求項15に記載の電子システム。
JP2014248684A 2013-12-30 2014-12-09 浮動小数点数を整数に変換するための電子装置及びシステム及びその動作方法 Active JP6407001B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201361922081P 2013-12-30 2013-12-30
US61/922,081 2013-12-30
US14/243,568 2014-04-02
US14/243,568 US9461667B2 (en) 2013-12-30 2014-04-02 Rounding injection scheme for floating-point to integer conversion

Publications (2)

Publication Number Publication Date
JP2015127954A JP2015127954A (ja) 2015-07-09
JP6407001B2 true JP6407001B2 (ja) 2018-10-17

Family

ID=53481830

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014248684A Active JP6407001B2 (ja) 2013-12-30 2014-12-09 浮動小数点数を整数に変換するための電子装置及びシステム及びその動作方法

Country Status (5)

Country Link
US (1) US9461667B2 (ja)
JP (1) JP6407001B2 (ja)
KR (1) KR102253096B1 (ja)
CN (1) CN104750456B (ja)
TW (1) TWI643124B (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9461667B2 (en) * 2013-12-30 2016-10-04 Samsung Electronics Co., Ltd. Rounding injection scheme for floating-point to integer conversion
US10409614B2 (en) 2017-04-24 2019-09-10 Intel Corporation Instructions having support for floating point and integer data types in the same register
US10474458B2 (en) 2017-04-28 2019-11-12 Intel Corporation Instructions and logic to perform floating-point and integer operations for machine learning
EP3442124B1 (de) * 2017-08-07 2020-02-05 Siemens Aktiengesellschaft Verfahren zum schützen der daten in einem datenspeicher vor einer unerkannten veränderung und datenverarbeitungsanlage
US10908878B2 (en) * 2018-11-26 2021-02-02 Nvidia Corporation Dynamic directional rounding
US11934342B2 (en) 2019-03-15 2024-03-19 Intel Corporation Assistance for hardware prefetch in cache access
BR112021016111A2 (pt) 2019-03-15 2021-11-09 Intel Corp Dispositivo de computação, unidade de processamento paralelo, núcleo de unidade de processamento gráfico de propósito geral e multiprocessador gráfico
KR20210136994A (ko) 2019-03-15 2021-11-17 인텔 코포레이션 매트릭스 가속기 아키텍처 내에서의 시스톨릭 분리
CN112711441A (zh) * 2019-10-25 2021-04-27 安徽寒武纪信息科技有限公司 用于转换数据类型的转换器、芯片、电子设备及其方法
CN113239389B (zh) * 2021-07-12 2021-09-17 华控清交信息科技(北京)有限公司 一种数据处理方法、装置和用于数据处理的装置

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3253660B2 (ja) * 1991-12-19 2002-02-04 松下電器産業株式会社 数値丸め装置および数値丸め方法
US5257215A (en) 1992-03-31 1993-10-26 Intel Corporation Floating point and integer number conversions in a floating point adder
US5892698A (en) 1996-04-04 1999-04-06 Hewlett-Packard Company 2's complement floating-point multiply accumulate unit
US6131104A (en) * 1998-03-27 2000-10-10 Advanced Micro Devices, Inc. Floating point addition pipeline configured to perform floating point-to-integer and integer-to-floating point conversion operations
US6148316A (en) * 1998-05-05 2000-11-14 Mentor Graphics Corporation Floating point unit equipped also to perform integer addition as well as floating point to integer conversion
US6205461B1 (en) 1998-09-18 2001-03-20 Ati International Srl Floating point arithmetic logic unit leading zero count using fast approximate rounding
US6366942B1 (en) 1999-02-01 2002-04-02 Compaq Information Technologies Group Lp Method and apparatus for rounding floating point results in a digital processing system
US7143126B2 (en) * 2003-06-26 2006-11-28 International Business Machines Corporation Method and apparatus for implementing power of two floating point estimation
US7236181B2 (en) * 2003-08-03 2007-06-26 Realtek Semiconductor Corp. Apparatus for color conversion and method thereof
US7433911B2 (en) 2004-12-21 2008-10-07 Arm Limited Data processing apparatus and method for performing floating point addition
US20070086524A1 (en) * 2005-10-13 2007-04-19 Chen Chen Method for transform-domain rounding in a decoder and video decoder thereof
US8595279B2 (en) * 2006-02-27 2013-11-26 Qualcomm Incorporated Floating-point processor with reduced power requirements for selectable subprecision
US8386755B2 (en) 2009-07-28 2013-02-26 Via Technologies, Inc. Non-atomic scheduling of micro-operations to perform round instruction
CN102339217B (zh) * 2010-07-27 2014-09-10 中兴通讯股份有限公司 一种浮点数乘加器融合处理装置及方法
TW201205316A (en) * 2010-07-28 2012-02-01 Ind Tech Res Inst Method for establishing multiple look-up tables and data acquisition method by using multiple look-up tables
CN102004627B (zh) * 2010-11-01 2012-11-21 深圳市海思半导体有限公司 乘法舍入实现方法和装置
US8745111B2 (en) * 2010-11-16 2014-06-03 Apple Inc. Methods and apparatuses for converting floating point representations
KR101718817B1 (ko) 2010-11-17 2017-03-29 삼성전자주식회사 부동 소수점 데이터와 정수형 데이터 간의 변환장치 및 그 방법
US8965945B2 (en) 2011-02-17 2015-02-24 Arm Limited Apparatus and method for performing floating point addition
TWI524265B (zh) * 2011-06-30 2016-03-01 艾特拉股份有限公司 浮點資料之壓縮
US10209986B2 (en) * 2011-12-22 2019-02-19 Intel Corporation Floating point rounding processors, methods, systems, and instructions
US9264066B2 (en) * 2013-07-30 2016-02-16 Apple Inc. Type conversion using floating-point unit
US9461667B2 (en) * 2013-12-30 2016-10-04 Samsung Electronics Co., Ltd. Rounding injection scheme for floating-point to integer conversion

Also Published As

Publication number Publication date
US20150186111A1 (en) 2015-07-02
TWI643124B (zh) 2018-12-01
JP2015127954A (ja) 2015-07-09
US9461667B2 (en) 2016-10-04
TW201528130A (zh) 2015-07-16
CN104750456B (zh) 2018-06-19
CN104750456A (zh) 2015-07-01
KR102253096B1 (ko) 2021-05-18
KR20150079389A (ko) 2015-07-08

Similar Documents

Publication Publication Date Title
JP6407001B2 (ja) 浮動小数点数を整数に変換するための電子装置及びシステム及びその動作方法
US11256978B2 (en) Hyperbolic functions for machine learning acceleration
KR102358013B1 (ko) 3-경로 단일 곱셈-누산기 설계에서 고속 근경로 증분합
US10886942B2 (en) Floating point to fixed point conversion using exponent offset
US9722629B2 (en) Method and apparatus for converting from floating point to integer representation
US10108398B2 (en) High performance floating-point adder with full in-line denormal/subnormal support
CN106250098B (zh) 用于在执行浮点运算时控制舍入的装置及方法
Hormigo et al. Measuring improvement when using HUB formats to implement floating-point systems under round-to-nearest
CN106126190B (zh) 部分余数/除数表拆分实现
TW200821916A (en) Controlled-precision iterative arithmetic logic unit
US10089073B2 (en) Method and apparatus for converting from integer to floating point representation
US20180129473A1 (en) Fast sticky generation in a far path of a floating point adder
JP2018097864A (ja) リーディングゼロ予想
US10416960B2 (en) Check procedure for floating point operations
US10353671B2 (en) Circuitry and method for performing division
TW202129487A (zh) 資訊處理裝置、程式、記錄媒體及資訊處理方法
JP2007257225A (ja) 計算装置、および、計算方法
JP2006243826A (ja) 浮動小数点数値のm乗根を演算する浮動小数点演算装置及びコンピュータプログラム
JP2007257239A (ja) 計算装置、および、計算方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171017

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180205

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180219

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180510

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180618

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180806

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180820

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180918

R150 Certificate of patent or registration of utility model

Ref document number: 6407001

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250