JP6114315B2 - 浮動小数点定数生成命令 - Google Patents

浮動小数点定数生成命令 Download PDF

Info

Publication number
JP6114315B2
JP6114315B2 JP2014556745A JP2014556745A JP6114315B2 JP 6114315 B2 JP6114315 B2 JP 6114315B2 JP 2014556745 A JP2014556745 A JP 2014556745A JP 2014556745 A JP2014556745 A JP 2014556745A JP 6114315 B2 JP6114315 B2 JP 6114315B2
Authority
JP
Japan
Prior art keywords
field
floating point
value
instruction
constant value
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
JP2014556745A
Other languages
English (en)
Other versions
JP2015512092A5 (ja
JP2015512092A (ja
Inventor
エーリヒ・ジェームズ・プロンドケ
ルシアン・コドレスク
チャールズ・ジョセフ・タボニー
スワミナサン・バラスブラマニアン
Original Assignee
クアルコム,インコーポレイテッド
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 クアルコム,インコーポレイテッド filed Critical クアルコム,インコーポレイテッド
Publication of JP2015512092A publication Critical patent/JP2015512092A/ja
Publication of JP2015512092A5 publication Critical patent/JP2015512092A5/ja
Application granted granted Critical
Publication of JP6114315B2 publication Critical patent/JP6114315B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • G06F9/30014Arithmetic instructions with variable precision
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30025Format conversion instructions, e.g. Floating-Point to Integer, decimal conversion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30032Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • G06F9/30167Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Executing Machine-Instructions (AREA)

Description

開示する実施形態は、浮動小数点演算を対象とする。より詳細には、例示的な実施形態は、一般的に使用される浮動小数点定数を生成するための命令を対象とする。
数の浮動小数点表現は、整数形式または固定小数点形式においてサポートされ得るよりも、広範囲の値をサポートするためのコンピューティングシステムにおいて有用である。浮動小数点数では、基数点(10進/2進)が「浮動」することが可能にされ、それによって、少ないビット数を使用して広範囲の値を符号化することが可能となる。この広範囲ゆえに、多数の浮動小数点数は、精度の重大な低下、また時には誤差/例外なしに、固定小数点形式で有効に表現しえないことがある。
いくつかの現代のプロセッサは、浮動小数点形式で表現された数に作用し得る浮動小数点命令をサポートしている。浮動小数点命令を整数/固定小数点プロセッサパイプラインに組み込むことは、課題をもたらす。たとえば、潜在的な精度の低下は、浮動小数点命令において浮動小数点定数または即値を符号化する際に課題が生じる。
コンピュータプロセッサのための従来の命令セットアーキテクチャ(ISA)は、一般に、即値を指定する命令を含む。通常、即値を指定する命令は、命令自体内で、命令の指定されたフィールド中に即値を含んでいる。命令中で即値フィールドのために利用可能なビット数は極めて少なく、通常は、命令のビット幅よりもはるかに少ない。したがって、浮動小数点命令は、小さいビット幅の即値フィールド中で浮動小数点即値を正確に指定することができないことがある。したがって、浮動小数点定数/即値は、従来はメモリから直接ロードされるか、または所望の浮動小数点定数を生成するためのカスタマイズされた命令によって、その全体が形成される。いくつかの手法はまた、レジスタ中に、0.0、1.0、および2.0などのハードコーディング固有の浮動小数点値を含み得る。認識され得るように、浮動小数点定数を生成するためのそのような従来の技法は、待ち時間の増大、コードサイズの増大、および/またはハードウェアの増加をもたらす。
したがって、当技術分野において、浮動小数点命令のための浮動小数点定数/即値に関連する上述の制限を克服する必要性がある。
本発明の例示的な実施形態は、命令から浮動小数点定数値を生成するためのシステムおよび方法を対象とする。
たとえば、例示的な実施形態は、命令から浮動小数点定数値を生成する方法を対象とし、この方法は、浮動小数点定数値の符号ビットとして、命令の第1のフィールドを復号するステップと、浮動小数点定数値の指数値に対応するように、命令の第2のフィールドを復号するステップと、浮動小数点定数値の仮数に対応するように、命令の第3のフィールドを復号するステップと、第1のフィールドと、第2のフィールドと、第3のフィールドとを結合して、浮動小数点定数値を形成するステップとを含む。任意に、第2のフィールドおよび第3のフィールドが、浮動小数点定数値を形成するためにそれらのフィールドが結合される前に、それぞれ第1のシフト値および第2のシフト値だけシフトされ得る。
別の例示的な実施形態は、浮動小数点定数値を生成するための命令を対象とし、この命令は、浮動小数点定数値の符号ビットに対応する第1のフィールドと、浮動小数点定数値の指数値に対応する第2のフィールドと、浮動小数点定数値の仮数に対応する第3のフィールドとを備える。
さらに別の例示的な実施形態は、命令から浮動小数点定数値を生成するためのシステムを対象とし、このシステムは、浮動小数点定数値の符号ビットとして、命令の第1のフィールドを復号するための手段と、浮動小数点定数値の指数値に対応するように、命令の第2のフィールドを復号するための手段と、浮動小数点定数値の仮数に対応するように、命令の第3のフィールドを復号するための手段と、第1のフィールドと、第2のフィールドと、第3のフィールドとを結合して、浮動小数点定数値を形成するための手段とを備える。
別の例示的な実施形態は、プロセッサによって実行されると、命令から浮動小数点定数値を生成するための動作をプロセッサに実行させるコードを備える、非一時的コンピュータ可読記憶媒体を対象とし、この非一時的コンピュータ可読記憶媒体は、浮動小数点定数値の符号ビットとして、命令の第1のフィールドを復号するためのコードと、浮動小数点定数値の指数値に対応するように、命令の第2のフィールドを復号するためのコードと、浮動小数点定数値の仮数に対応するように、命令の第3のフィールドを復号するためのコードと、第1のフィールドと、第2のフィールドと、第3のフィールドとを結合して、浮動小数点定数値を形成するためのコードとを備える。
添付の図面は、本発明の実施形態の説明を助けるために提示され、実施形態の限定ではなく、実施形態の例示のためのみに提供される。
例示的な実施形態による浮動小数点即値フィールドを示す図である。 図1Aの浮動小数点即値フィールドの指数フィールドおよび仮数フィールドに適用される、任意の第1のシフト量および第2のシフト量を示す図である。 例示的な実施形態による、命令から浮動小数点定数値を生成する方法のフローチャート例である。 例示的な実施形態による浮動小数点定数値を生成するための命令が有利に採用され得る、例示的なワイヤレス通信システム300を示す図である。
本発明の特定の実施形態を対象とする以下の説明および関連する図面で、本発明の態様を開示する。本発明の範囲から逸脱することなく、代替実施形態が考案され得る。さらに、本発明の関連する詳細を不明瞭にしないように、本発明のよく知られている要素については詳細に説明しないか、または省略する。
「例示的な」という言葉は、「例、実例、または例示として機能すること」を意味するために本明細書で使用される。「例示的な」として本明細書で説明される任意の実施形態は、必ずしも他の実施形態よりも好ましいか、または有利であると解釈されるべきではない。同様に、「本発明の実施形態」という用語は、本発明のすべての実施形態が、論じられた特徴、利点または動作モードを含むことを必要としない。
本明細書で使用される用語は、特定の実施形態の説明のみを目的とするものであり、本発明の実施形態を限定するものではない。本明細書で使用する単数形「a」、「an」、および「the」は、文脈が別段に明確に示すのでなければ、複数形をも含むものとする。さらに、本明細書で使用される「備える(comprises)」、「備えている(comprising)」、「含む(includes)」、および/または「含んでいる(including)」という用語は、述べられた特徴、整数、ステップ、動作、要素、および/または構成要素の存在を明示するが、1つまたは複数の他の特徴、整数、ステップ、動作、要素、構成要素、および/またはそれらのグループの存在または追加を排除しないことを理解されたい。
さらに、多くの実施形態が、たとえば、コンピューティングデバイスの要素によって実行されるべき一連のアクションに関して説明される。本明細書で説明する様々なアクションは、特定の回路(たとえば、特定用途向け集積回路(ASIC))によって、1つまたは複数のプロセッサによって実行されるプログラム命令によって、あるいは両方の組合せによって実行され得ることを認識されよう。さらに、本明細書で説明するこれらの一連のアクションは、実行時に、関連するプロセッサに本明細書で説明する機能を実行させるコンピュータ命令の対応するセットを記憶した、任意の形式のコンピュータ可読記憶媒体内で全体として具現化されるものと見なすことができる。したがって、本発明の様々な態様は、請求する主題の範囲内にすべて入ることが企図されているいくつかの異なる形式で具現化され得る。さらに、本明細書で説明する実施形態ごとに、任意のそのような実施形態の対応する形式について、本明細書では、たとえば、記載のアクションを実行する「ように構成された論理」として説明することがある。
例示的な実施形態は、処理システム中の整数パイプラインのための既存のアーキテクチャを使用して、一般的に遭遇する浮動小数点値を生成することを対象とする。実施形態は、たとえば、命令の即値フィールド中で、浮動小数点定数を指定するための1つまたは複数の命令を含む。即値フィールド内の1つまたは複数のサブフィールドは、指定された浮動小数点定数に対応する符号、仮数、バイアス、および指数値などの情報を備え得る。これらのサブフィールドは、指定された浮動小数点定数を生成するために適切に抽出およびアセンブルされ得る。
浮動小数点数を表現するための従来の形式は、当業者には認識されよう。一般に、浮動小数点数は、浮動小数点数の符号(正/負)を示すために符号ビットを含み得る。浮動小数点数はまた、浮動小数点数の有効数字(たとえば、先行ゼロを含まない数字)を備える、(「仮数(mantissa)」としても知られる)仮数に対応するビット数を含む。一般に、仮数のビット数は、浮動小数点数が表現することができる精度に関係する。仮数が、仮定された基数とともに、浮動小数点数中で指定された指数値によって累乗されて、浮動小数点数の絶対値が与えられる。たとえば、仮定された基数は、2進数では2であり、仮定された基数は、10進数では10である。数学的表記法では、浮動小数点数の値は、適切な符号付きの、仮数*基数^指数という式によって導出される。
しばしば、指数値は、指数の範囲をシフトさせるために、指定または仮定されたバイアス値によってオフセットされ得る。従来の実装形態では、バイアス値は、実際の指数値を得るために、浮動小数点数から抽出された指数値に加算され得る。さらに、仮数中の基数点は、所定の形式で明示的に指定され得る。ただし、従来の実装形態では、基数点は、仮数中の固定位置に配置されると仮定され、指数値は、基数点の浮動性を達成するために適切に調整される。たとえば、10進基数点は、仮数の最上位桁の後に配置されるように均一に指定され得、基数点を仮数の最上位桁の後に配置されるようにシフトし、指数値を適切に増すことによって、10進数12.3×10^10が1.23×10^11として表現され得るようになる。
上記で説明したフィールドを用いて浮動小数点数を表現するための、IEEE-754規格などの標準形式は、当技術分野でよく知られている。IEEE-754規格は、現代の処理システムにおいて使用される浮動小数点数のための単精度および倍精度規格を含む。基本的に、単精度形式は、符号ビットと、23ビットの仮数フィールドと、8ビットの指数フィールドとを、127のバイアス値とともに含む、32ビットの2進浮動小数点数を備える。倍精度形式は、符号ビットと、52ビットの仮数フィールドと、11ビットの指数フィールドとを、1023のバイアス値とともに含む、64ビットの2進浮動小数点数を備える。IEEE-754規格の様々な他の規定について、本明細書では詳細に説明しないが、例示的な実施形態が、単精度形式と倍精度形式の両方についてのIEEE-754規格に適合し得ることは理解されよう。
たとえば、例示的な実施形態は、浮動小数点定数として使用するための単精度浮動小数点値と倍精度浮動小数点値とを生成するために、「SFMAKE」および「DFMAKE」という命令を含み得る。これらの命令は、たとえば、デジタル信号プロセッサ、マイクロプロセッサ、または他の汎用プロセッサに関係する適用例において、一般的に遭遇し得る浮動小数点値の大きいセットを生成するために使用され得る。
例示的な一実施形態では、11ビットの浮動小数点即値フィールドを指定する例示的な命令は、符号ビットと、6ビットの仮数フィールドと、4ビットの指数フィールドとを備えるものとして認識され得る。所定のバイアス値が、浮動小数点定数値が単精度で表現されるか、倍精度で表現されるかに基づいて、適用され得る。この例示では、6のバイアス値が適用可能であると仮定され得る。この例示的な命令は、[+,-][1.0,1+63/64]*2^[-6,+9]によって表記された広範囲の定数に属する浮動小数点数を生成するために使用され得る。たとえば、この定数の範囲内で、[1,128]の絶対値の範囲のすべての正および負の整数が生成され得る。さらに、その定数の範囲内で、[2,256]の絶対値のすべての正および負の偶数の整数が生成され得る。絶対値1000の正および負の整数もまた生成され得る。0.25、0.5、1/32(および、その多数の倍数)、1.5、1/256などの絶対値の、多数の一般的に使用される小数値(正と負の両方)もまた生成され得る。例示的な命令中の定数の範囲によってカバーされる多数の他の浮動小数点定数値は、当業者には認識されよう。
次に図1Aを参照して、上記で説明したような浮動小数点即値フィールドの例示的な形式を示す。フィールド100は、(たとえば、上記で説明したように、11ビットのサイズの)浮動小数点即値フィールドを表し得る。図示のように、フィールド100は、第1のフィールド102中に符号ビットを備え得る。第2のフィールド104は、(たとえば、4ビットのサイズの)指数値を備え得る。代替的に、上記で説明したように、第2のフィールド104は、バイアスを含む指数値を備え得、バイアスに対して、指数値中に含まれるバイアスを補償するために、所望の精度に基づくバイアス定数(たとえば、上記の説明の場合のように、値6)が加算され得る。第3のフィールド106は、(たとえば、6ビットのサイズの)仮数を備え得る。いくつかの実装形態では、第3のフィールド106は、対応する浮動小数点定数の仮数の最上位ビット(most significant bits)のみを備え得る。
引き続き図1Aを参照すると、第1のフィールド102、第2のフィールド104、および第3のフィールド106は、フィールド100中の浮動小数点即値フィールドを備える浮動小数点命令から復号または抽出され得る。(第2のフィールド104中に含まれる適切なバイアスとともに)復号されたフィールドが、適切に結合されて、浮動小数点即値命令中で指定された対応する浮動小数点定数値が生成され得る。
次に図1Bを参照すると、任意のシフト量が、第2のフィールド104および第3のフィールド106に適用され得る。第2のフィールド104および第3のフィールド106は、図1Bに示すように、第1のシフト値108_1および第2のシフト値108_2によって示される量だけシフトされて、それぞれシフトされたフィールド104'および106'が形成され得る。第1のシフト値108_1および第2のシフト値108_2は、浮動小数点即値フィールド100中に、たとえば、それぞれ第4のフィールドおよび第5のフィールド中に含まれ得る。指定された浮動小数点定数値を生成するために、所定の定数値(図示せず)が、シフトされたフィールド104'および106'に加算され得る。したがって、シフトする追加のステップ、および定数値に加算する追加のステップを通して、浮動小数点定数値の精度が変更され得る。たとえば、仮数の最上位ビットのみが第3のフィールド106中に含まれ得、IEEE-754規格に対応する、単精度または倍精度の浮動小数点定数値を生成するために、これらの最上位ビットが、適切なシフト量だけシフトされ得る。第2のフィールド104中の任意のバイアスをもつ指数値もまた、所望の精度に基づいて、または特定の適用例に基づいて、同様にシフトされ得る。一例では、第1のシフト値108_1および第2のシフト値108_2によって示される適切なシフト量は、浮動小数点定数値を生成するための命令が上述のSFMAKE命令であるか、DFMAKE命令であるかに基づき得る。他の実施形態では、単一のシフトフィールドが、浮動小数点即値フィールド100中に含まれてもよく、第2のフィールド104と第3のフィールド106のいずれかまたは両方に適用され得る。
したがって、例示的な実施形態は、浮動小数点定数値がメモリからロードされることを必要とせずに、一般的に使用される浮動小数点定数値を生成するための1つまたは複数の命令を含み得る。開示する実施形態は、浮動小数点定数値によってメモリおよびキャッシュを汚染することを回避する。したがって、これらの実施形態はまた、浮動小数点定数値を生成するための低電力の実装形態にもつながる。これらの実施形態は、除算、平方根の計算などの演算において使用され得る。広範囲の一般的に使用される定数がサポートされ得る。これらの実施形態は、単精度形式または倍精度形式を十分にサポートすることができ、浮動小数点数を表現するための従来の規格に適合し得る。
さらに、各実施形態は、本明細書で開示されるプロセス、機能および/またはアルゴリズムを実行するための様々な方法を含むことが諒解されよう。たとえば、図2に示すように、一実施形態は、命令から浮動小数点定数値を生成する方法を含んでもよく、この方法は、浮動小数点定数値の符号ビットとして、命令の第1のフィールド(たとえば、102)を復号すること-ブロック202と、浮動小数点定数値の指数値に対応するように、命令の第2のフィールド(たとえば、104)を復号すること-ブロック204と、浮動小数点定数値の仮数に対応するように、命令の第3のフィールド(たとえば、106)を復号すること-ブロック206と、第2のフィールドおよび第3のフィールドを、第1のシフト値および第2のシフト値(たとえば、108_1および108_2)だけ任意にシフトすること-ブロック207と、第1のフィールドと、任意にシフトされた第2のフィールドおよび第3のフィールドとを結合して、浮動小数点定数値を形成すること-ブロック208とを含む。
情報および信号は、多種多様な技術および技法のいずれかを使用して表され得ることを当業者は諒解されよう。たとえば、上記の説明全体にわたって言及され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁界または磁性粒子、光場または光学粒子、あるいはそれらの任意の組合せによって表され得る。
さらに、本明細書で開示した実施形態に関連して説明した様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実装できることを、当業者は諒解されよう。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップを、上記では概してそれらの機能に関して説明した。そのような機能をハードウェアとして実装するか、ソフトウェアとして実装するかは、特定の適用例および全体的なシステムに課される設計制約に依存する。当業者は、説明した機能を特定の適用例ごとに様々な方法で実装し得るが、そのような実装の決定は、本発明の範囲からの逸脱を生じるものと解釈すべきではない。
本明細書で開示した実施形態と関連して説明した方法、シーケンス、および/またはアルゴリズムは、ハードウェアで、プロセッサによって実行されるソフトウェアモジュールで、またはその2つの組合せで直接実施され得る。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または当技術分野で知られている任意の他の形態の記憶媒体中に常駐し得る。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるように、プロセッサに結合される。代替として、記憶媒体はプロセッサと一体であり得る。
したがって、本発明の一実施形態は、命令から浮動小数点定数値を生成するための方法を実施するコンピュータ可読媒体を含んでもよい。したがって、本発明は図示の例に限定されず、本明細書で説明した機能を実行するためのいかなる手段も、本発明の実施形態中に含まれる。
図3を参照すると、例示的な実施形態による、浮動小数点定数値を生成するための命令を含むワイヤレスデバイスの特定の例示的な一実施形態のブロック図が示され、全体が300で示される。デバイス300は、デジタル信号プロセッサ(DSP)364などのプロセッサを含む。DSP364は、上述のSFMAKE/DFMAKE命令を備え得るメモリ365を含み得る。図3はまた、DSP364およびディスプレイ328に結合された、ディスプレイコントローラ326も示している。コーダ/デコーダ(CODEC)334(たとえば、オーディオおよび/または音声CODEC)は、DSP364に結合され得る。ディスプレイコントローラ326(ビデオCODECおよび/または画像プロセッサを含み得る)、およびワイヤレスコントローラ340(モデムを含み得る)など、他の構成要素もまた示される。スピーカー336およびマイクロフォン338が、CODEC334に結合され得る。図3は、ワイヤレスコントローラ340が、ワイヤレスアンテナ342に結合され得ることも示している。ある特定の実施形態では、DSP364、ディスプレイコントローラ326、メモリ332、CODEC334、およびワイヤレスコントローラ340は、システムインパッケージデバイスまたはシステムオンチップデバイス322に含まれる。
ある特定の実施形態では、入力デバイス330および電源344が、システムオンチップデバイス322に結合される。さらに、ある特定の実施形態では、図3に示すように、ディスプレイ328、入力デバイス330、スピーカー336、マイクロフォン338、ワイヤレスアンテナ342、および電源344は、システムオンチップデバイス322の外部にある。ただし、ディスプレイ328、入力デバイス330、スピーカー336、マイクロフォン338、ワイヤレスアンテナ342、および電源344の各々は、インターフェースまたはコントローラのような、システムオンチップデバイス322の構成要素に結合され得る。
図3はワイヤレス通信デバイスを示しているが、DSP364およびメモリ332は、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテインメントユニット、ナビゲーションデバイス、携帯情報端末(PDA)、固定ロケーションデータユニット、またはコンピュータ内に組み込むこともできることに留意されたい。プロセッサ(たとえば、DSP364)も、そのようなデバイス内に組み込むことができる。
上記で開示されたデバイスおよび方法は、典型的に設計され、コンピュータ可読媒体上に記憶される、GDSIIおよびGERBERコンピュータファイル内に構成される。次いで、これらのファイルは、これらのファイルに基づいてデバイスを製作する製作担当者に与えられる。得られる製品は半導体ウェハであり、このウェハは次いで、半導体ダイに切断され、半導体チップにパッケージングされる。次いで、このチップが、上記で説明されたデバイスで用いられる。
上記の開示は本発明の例示的な実施形態を示すが、添付の特許請求の範囲によって規定される本発明の範囲から逸脱することなく、本明細書において様々な変更および修正を行うことができることに留意されたい。本明細書で説明した本発明の実施形態による方法クレームの機能、ステップおよび/またはアクションは、特定の順序で実行されなくてもよい。さらに、本発明の要素は、単数形で説明または請求されていることがあるが、単数形に限定することが明示的に述べられていない限り、複数形が企図される。
100 フィールド、浮動小数点即値フィールド
102 第1のフィールド
104 第2のフィールド
104'、106' シフトされたフィールド
106 第3のフィールド
108_1 第1のシフト値
108_2 第2のシフト値
300 デバイス
322 システムインパッケージデバイスまたはシステムオンチップデバイス
326 ディスプレイコントローラ
328 ディスプレイ
330 入力デバイス
332 メモリ
334 コーダ/デコーダ(CODEC)
336 スピーカー
338 マイクロフォン
340 ワイヤレスコントローラ
342 ワイヤレスアンテナ
344 電源
364 デジタル信号プロセッサ(DSP)
365 メモリ

Claims (15)

  1. 命令から浮動小数点定数値を生成する方法であって、
    前記浮動小数点定数値の符号ビットとして、前記命令の第1のフィールドを復号するステップと、
    前記命令の第2のフィールドを復号し、前記命令の第4のフィールドから前記第2のフィールドを第1のシフト値だけシフトし、前記シフトされた第2のフィールドを第1の定数値に加算して、前記浮動小数点定数値の指数値を形成するステップと、
    前記命令の第3のフィールドを復号し、前記命令の第5のフィールドから前記第3のフィールドを第2のシフト値だけシフトし、前記シフトされた第3のフィールドを第2の定数値に加算して、前記浮動小数点定数値の仮数を形成するステップと、
    前記符号ビット、前記指数値、および前記仮数から、前記浮動小数点定数値を生成するステップと
    を含む方法。
  2. 前記指数値がバイアスを含む、請求項1に記載の方法。
  3. 前記指数値をバイアス定数に加算して、前記指数値中に含まれる前記バイアスを補償するステップをさらに含む、請求項2に記載の方法。
  4. 前記第1のシフト値および前記第2のシフト値が、前記浮動小数点定数値の所望の精度に基づいて選択される、請求項1に記載の方法。
  5. 前記浮動小数点定数値が、IEEE 754の単精度形式または倍精度形式のうちの1つに従って形成される、請求項1に記載の方法。
  6. 前記第3のフィールドが、前記浮動小数点定数値の前記仮数の最上位ビットを備える、請求項1に記載の方法。
  7. デバイスに命令から浮動小数点定数値を生成させるコンピュータプログラムであって、
    前記浮動小数点定数値の符号ビットとして、前記命令の第1のフィールドを復号するためのコードと、
    前記命令の第2のフィールドを復号し、前記命令の第4のフィールドから前記第2のフィールドを第1のシフト値だけシフトし、前記シフトされた第2のフィールドを第1の定数値に加算して、前記浮動小数点定数値の指数値を形成するためのコードと、
    前記命令の第3のフィールドを復号し、前記命令の第5のフィールドから前記第3のフィールドを第2のシフト値だけシフトし、前記シフトされた第3のフィールドを第2の定数値に加算して、前記浮動小数点定数値の仮数を形成するためのコードと、
    前記符号ビット、前記指数値、および前記仮数から、前記浮動小数点定数値を生成するためのコードと
    を含むコンピュータプログラム
  8. 前記第1のシフト値および前記第2のシフト値が、前記浮動小数点定数値の所望の精度に基づいて選択される、請求項7に記載のコンピュータプログラム
  9. 前記指数値がバイアスを含み、バイアス定数が加算されて、前記指数値中に含まれる前記バイアスが補償される、請求項7に記載のコンピュータプログラム
  10. 前記第3のフィールドが、前記仮数の最上位ビットを備える、請求項7に記載のコンピュータプログラム
  11. 前記浮動小数点定数値が、IEEE 754の単精度形式または倍精度形式のうちの1つに従って形成される、請求項7に記載のコンピュータプログラム
  12. 記デバイスが少なくとも1つの半導体ダイに組み込まれる、請求項7に記載のコンピュータプログラム
  13. 記デバイスが、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテインメントユニット、ナビゲーションデバイス、通信デバイス、携帯情報端末(PDA)、固定ロケーションデータユニット、およびコンピュータからなるグループから選択される、請求項7に記載のコンピュータプログラム
  14. 命令から浮動小数点定数値を生成するためのシステムであって、
    前記浮動小数点定数値の符号ビットとして、前記命令の第1のフィールドを復号するための手段と、
    前記命令の第2のフィールドを復号し、前記命令の第4のフィールドから前記第2のフィールドを第1のシフト値だけシフトし、前記シフトされた第2のフィールドを第1の定数値に加算して、前記浮動小数点定数値の指数値を形成するための手段と、
    前記命令の第3のフィールドを復号し、前記命令の第5のフィールドから前記第3のフィールドを第2のシフト値だけシフトし、前記シフトされた第3のフィールドを第2の定数値に加算して、前記浮動小数点定数値の仮数を形成するための手段と、
    前記符号ビット、前記指数値、および前記仮数から、前記浮動小数点定数値を生成するための手段と
    を備えるシステム。
  15. プロセッサ上で動作し、請求項1から6のいずれか一項に記載の方法を前記プロセッサに実行させるコードを備える、コンピュータ可読記憶媒体。
JP2014556745A 2012-02-09 2013-02-08 浮動小数点定数生成命令 Active JP6114315B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/369,693 US10289412B2 (en) 2012-02-09 2012-02-09 Floating point constant generation instruction
US13/369,693 2012-02-09
PCT/US2013/025401 WO2013119995A1 (en) 2012-02-09 2013-02-08 Floating point constant generation instruction

Publications (3)

Publication Number Publication Date
JP2015512092A JP2015512092A (ja) 2015-04-23
JP2015512092A5 JP2015512092A5 (ja) 2016-12-08
JP6114315B2 true JP6114315B2 (ja) 2017-04-12

Family

ID=47846130

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014556745A Active JP6114315B2 (ja) 2012-02-09 2013-02-08 浮動小数点定数生成命令

Country Status (6)

Country Link
US (1) US10289412B2 (ja)
EP (1) EP2812793B1 (ja)
JP (1) JP6114315B2 (ja)
KR (1) KR101763286B1 (ja)
CN (1) CN104106045B (ja)
WO (1) WO2013119995A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10289412B2 (en) * 2012-02-09 2019-05-14 Qualcomm Incorporated Floating point constant generation instruction
WO2015076951A1 (en) * 2013-11-25 2015-05-28 Benson Dwayne M Integrated power, cooling, and heating device and method thereof
KR20160090796A (ko) * 2013-11-27 2016-08-01 마이크로칩 테크놀로지 인코포레이티드 메인 클록의 높은 정밀 발진기
US9455743B2 (en) * 2014-05-27 2016-09-27 Qualcomm Incorporated Dedicated arithmetic encoding instruction
CN104572018A (zh) * 2014-12-30 2015-04-29 杭州中天微系统有限公司 一种用于浮点常数生成的装置及方法
US9817662B2 (en) * 2015-10-24 2017-11-14 Alan A Jorgensen Apparatus for calculating and retaining a bound on error during floating point operations and methods thereof
US10235170B2 (en) 2016-09-30 2019-03-19 International Business Machines Corporation Decimal load immediate instruction

Family Cites Families (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5201056A (en) * 1990-05-02 1993-04-06 Motorola, Inc. RISC microprocessor architecture with multi-bit tag extended instructions for selectively attaching tag from either instruction or input data to arithmetic operation output
US5341320A (en) * 1993-03-01 1994-08-23 Motorola, Inc. Method for rapidly processing floating-point operations which involve exceptions
JPH08153310A (ja) 1994-11-28 1996-06-11 Sony Corp 磁気抵抗効果型薄膜磁気ヘッド
US5805475A (en) * 1995-02-10 1998-09-08 International Business Machines Corporation Load-store unit and method of loading and storing single-precision floating-point registers in a double-precision architecture
US5878266A (en) 1995-09-26 1999-03-02 Advanced Micro Devices, Inc. Reservation station for a floating point processing unit
US5940311A (en) 1996-04-30 1999-08-17 Texas Instruments Incorporated Immediate floating-point operand reformatting in a microprocessor
US6058465A (en) * 1996-08-19 2000-05-02 Nguyen; Le Trong Single-instruction-multiple-data processing in a multimedia signal processor
US5838984A (en) * 1996-08-19 1998-11-17 Samsung Electronics Co., Ltd. Single-instruction-multiple-data processing using multiple banks of vector registers
US5991531A (en) * 1997-02-24 1999-11-23 Samsung Electronics Co., Ltd. Scalable width vector processor architecture for efficient emulation
GB9712317D0 (en) * 1997-06-13 1997-08-13 Zeneca Ltd Composition, compound and use
US6298367B1 (en) * 1998-04-06 2001-10-02 Advanced Micro Devices, Inc. Floating point addition pipeline including extreme value, comparison and accumulate functions
US6519694B2 (en) * 1999-02-04 2003-02-11 Sun Microsystems, Inc. System for handling load errors having symbolic entity generator to generate symbolic entity and ALU to propagate the symbolic entity
US6487653B1 (en) * 1999-08-25 2002-11-26 Advanced Micro Devices, Inc. Method and apparatus for denormal load handling
US7330864B2 (en) 2001-03-01 2008-02-12 Microsoft Corporation System and method for using native floating point microprocessor instructions to manipulate 16-bit floating point data representations
WO2003007147A1 (en) * 2001-07-13 2003-01-23 Intel Zao A method and apparatus to extract integer and fractional components from floating-point data
US7003539B1 (en) * 2001-08-08 2006-02-21 Pasternak Solutions Llc Efficiently determining a floor for a floating-point number
US7212959B1 (en) * 2001-08-08 2007-05-01 Stephen Clark Purcell Method and apparatus for accumulating floating point values
US7028067B2 (en) 2002-02-20 2006-04-11 International Business Machines Corporation Generation of mask-constrained floating-point addition and subtraction test cases, and method and system therefor
EP1545010A1 (en) 2003-12-18 2005-06-22 Deutsche Thomson-Brandt GmbH Method and device for transcoding N-bit words into M-bit words with M smaller N
GB2410097B (en) 2004-01-13 2006-11-01 Advanced Risc Mach Ltd A data processing apparatus and method for performing data processing operations on floating point data elements
JP2006154979A (ja) 2004-11-25 2006-06-15 Sony Corp 浮動小数点数演算回路
US7523434B1 (en) * 2005-09-23 2009-04-21 Xilinx, Inc. Interfacing with a dynamically configurable arithmetic unit
US8595279B2 (en) 2006-02-27 2013-11-26 Qualcomm Incorporated Floating-point processor with reduced power requirements for selectable subprecision
US7797360B2 (en) * 2006-04-06 2010-09-14 Sap Ag Sortable floating point numbers
US7885992B2 (en) 2006-06-22 2011-02-08 Honeywell International Inc. System and method for implementing irregular data formats
US8650231B1 (en) * 2007-01-22 2014-02-11 Altera Corporation Configuring floating point operations in a programmable device
US8006078B2 (en) * 2007-04-13 2011-08-23 Samsung Electronics Co., Ltd. Central processing unit having branch instruction verification unit for secure program execution
US8051117B2 (en) * 2007-04-26 2011-11-01 International Business Machines Corporation Shift significand of decimal floating point data
US8051118B2 (en) 2007-04-26 2011-11-01 International Business Machines Corporation Composition of decimal floating point data
US8190664B2 (en) * 2007-04-26 2012-05-29 International Business Machines Corporation Employing a mask field of an instruction to encode a sign of a result of the instruction
US7885995B2 (en) * 2007-06-13 2011-02-08 International Business Machines Corporation Processing service requests in a distributed environment
JP4629750B2 (ja) * 2008-03-31 2011-02-09 日立オートモティブシステムズ株式会社 組み込み制御装置
US8412760B2 (en) 2008-07-22 2013-04-02 International Business Machines Corporation Dynamic range adjusting floating point execution unit
US8244783B2 (en) * 2008-09-11 2012-08-14 International Business Machines Corporation Normalizer shift prediction for log estimate instructions
CN101685383A (zh) 2008-09-28 2010-03-31 杨高祥 计算器、基于直接对阶的自由精度浮点数的运算电路
US8706790B1 (en) * 2009-03-03 2014-04-22 Altera Corporation Implementing mixed-precision floating-point operations in a programmable integrated circuit device
US8645449B1 (en) * 2009-03-03 2014-02-04 Altera Corporation Combined floating point adder and subtractor
US8407271B2 (en) * 2009-08-28 2013-03-26 Advanced Micro Devices, Inc. Method for floating point round to integer operation
US8412756B1 (en) * 2009-09-11 2013-04-02 Altera Corporation Multi-operand floating point operations in a programmable integrated circuit device
US20110125987A1 (en) * 2009-11-20 2011-05-26 Qualcomm Incorporated Dedicated Arithmetic Decoding Instruction
CN201628951U (zh) 2009-12-31 2010-11-10 西北工业大学 一种高速浮点规格化运算器
US8914430B2 (en) * 2010-09-24 2014-12-16 Intel Corporation Multiply add functional unit capable of executing scale, round, GETEXP, round, GETMANT, reduce, range and class instructions
US8745111B2 (en) * 2010-11-16 2014-06-03 Apple Inc. Methods and apparatuses for converting floating point representations
US20120191955A1 (en) * 2011-01-20 2012-07-26 Jonsson Ragnar H Method and system for floating point acceleration on fixed point digital signal processors
US8756601B2 (en) * 2011-09-23 2014-06-17 Qualcomm Incorporated Memory coherency acceleration via virtual machine migration
US8909690B2 (en) * 2011-12-13 2014-12-09 International Business Machines Corporation Performing arithmetic operations using both large and small floating point values
US10289412B2 (en) * 2012-02-09 2019-05-14 Qualcomm Incorporated Floating point constant generation instruction
US8825727B2 (en) * 2012-03-15 2014-09-02 International Business Machines Corporation Software-hardware adder
US20140067894A1 (en) * 2012-08-30 2014-03-06 Qualcomm Incorporated Operations for efficient floating point computations

Also Published As

Publication number Publication date
EP2812793A1 (en) 2014-12-17
WO2013119995A1 (en) 2013-08-15
CN104106045B (zh) 2017-09-01
US10289412B2 (en) 2019-05-14
EP2812793B1 (en) 2016-09-28
US20130212357A1 (en) 2013-08-15
JP2015512092A (ja) 2015-04-23
KR20140120373A (ko) 2014-10-13
CN104106045A (zh) 2014-10-15
KR101763286B1 (ko) 2017-07-31

Similar Documents

Publication Publication Date Title
JP6114315B2 (ja) 浮動小数点定数生成命令
US9841948B2 (en) Microarchitecture for floating point fused multiply-add with exponent scaling
JP4990977B2 (ja) 命令に応じた丸め処理の実行
US10346133B1 (en) System and method of floating point multiply operation processing
US10019227B2 (en) Accuracy-conserving floating-point value aggregation
JP2015512092A5 (ja)
JP2015103245A (ja) 浮動小数点加算ユニットを含む装置及びシステム、並びに浮動小数点加算方法
KR102570304B1 (ko) 부동소수점 연산 수행시 라운딩 제어 장치 및 방법
AU2017330184A1 (en) Piecewise polynomial evaluation instruction
US9417842B2 (en) Idempotent representation of numbers in extensible languages
WO2011161859A1 (ja) 半導体集積回路及び指数算出方法
US9417839B1 (en) Floating point multiply-add-substract implementation
Tsen et al. A combined decimal and binary floating-point multiplier
US9563402B2 (en) Method and apparatus for additive range reduction
CN115268832A (zh) 浮点数取整的方法、装置以及电子设备
US9335967B1 (en) Accurate floating-point calculation method and device
JP2007188424A (ja) 計算装置、計算方法、および、計算プログラム
CN115202617A (zh) 一种浮点数重编码及解码方法、系统和装置
JP2009276990A (ja) 演算装置およびその演算方法、信号処理装置、演算装置制御プログラム、並びに該プログラムを記録した記録媒体
JP2006243826A (ja) 浮動小数点数値のm乗根を演算する浮動小数点演算装置及びコンピュータプログラム

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160108

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160108

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161019

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20161019

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20161031

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161107

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20161028

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170207

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: 20170220

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170316

R150 Certificate of patent or registration of utility model

Ref document number: 6114315

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250