JP2009528638A - 選択可能な副精度に対して、低減された電力要求を有する浮動小数点プロセッサ - Google Patents

選択可能な副精度に対して、低減された電力要求を有する浮動小数点プロセッサ Download PDF

Info

Publication number
JP2009528638A
JP2009528638A JP2008557471A JP2008557471A JP2009528638A JP 2009528638 A JP2009528638 A JP 2009528638A JP 2008557471 A JP2008557471 A JP 2008557471A JP 2008557471 A JP2008557471 A JP 2008557471A JP 2009528638 A JP2009528638 A JP 2009528638A
Authority
JP
Japan
Prior art keywords
floating point
floating
processor
logic
precision
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.)
Granted
Application number
JP2008557471A
Other languages
English (en)
Other versions
JP5113089B2 (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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2009528638A publication Critical patent/JP2009528638A/ja
Application granted granted Critical
Publication of JP5113089B2 publication Critical patent/JP5113089B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49942Significance control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/499Denomination or exception handling, e.g. rounding or overflow
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/57Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
    • 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/30098Register arrangements
    • G06F9/30105Register structure
    • G06F9/30112Register structure comprising data of variable length
    • 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/30181Instruction operation extension or modification
    • G06F9/30185Instruction operation extension or modification according to one or more bits in the instruction, e.g. prefix, sub-opcode
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Optimization (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Software Systems (AREA)
  • Nonlinear Science (AREA)
  • Computer Hardware Design (AREA)
  • Advance Control (AREA)
  • Power Sources (AREA)
  • Complex Calculations (AREA)
  • Measurement And Recording Of Electrical Phenomena And Electrical Characteristics Of The Living Body (AREA)

Abstract

所定の精度を有する浮動小数点プロセッサにより浮動小数点演算を実行する方法および装置を開示する。1つ以上の浮動小数点数に関して、浮動小数点演算に対する副精度が選択される。副精度の選択は、1つ以上の浮動小数点数のそれぞれに対して、1つ以上の過剰ビットをもたらす。さもなければ1つ以上の過剰ビットを記憶または処理するために使用される、浮動小数点プロセッサ中の1つ以上のコンポーネントから、電力を取り除くことができ、浮動小数点演算は、1つ以上のコンポーネントから電力を取り除いた状態で実行される。
【選択図】 図2

Description

背景
浮動小数点プロセッサは、例えば、乗算や、除算や、三角関数や、指数関数のような、ある数学的演算を高速で実行する、専門の計算ユニットである。それゆえに、強力な計算システムは、メインプロセッサの一部分として、またはコプロセッサとして、浮動小数点プロセッサを組み込んでいることが多い。ある数の浮動小数点の表現は、一般に、符号部と、指数と、仮数とを含んでいる。浮動小数点数の値を見つけるために、基数(一般にコンピュータにおいては2)の指数乗を仮数に掛ける。符号は、結果として生じる値に適用される。
浮動小数点プロセッサの精度は、仮数を表現するために使用されるビット数により規定される。仮数におけるビットが増えるほど、精度はより高くなる。浮動小数点プロセッサの精度は一般的に、特定のアプリケーションに左右される。例えば、(一般に最近のコンピュータにより採用される)ANSI/IEEE−754規格は、1ビットの符号と、8ビットの指数と、23ビットの仮数とを有する、32ビットの単フォーマットを指定する。仮数の23の小数部ビットだけが、32ビットのエンコーディングで記憶され、2進小数点のすぐ左側に、整数ビットが示される。IEEE−754はまた、1ビットの符号と、11ビットの指数と、53ビットの仮数とを有する、64ビットの倍フォーマットを指定する。単一エンコーディングに類似して、仮数の52の小数部ビットだけが、64ビットのエンコーディングで記憶され、2進小数点のすぐ左側に整数ビットが示される。より高い精度は、より高い正確さをもたらすが、一般に、電力消費の増加をもたらす。
浮動小数点プロセッサは、一般に、単フォーマット、または、単フォーマットおよび倍フォーマットの両方、のいずれかにより提供された精度に制限されるため、浮動小数点算術演算の実行は、計算の非能率を必然的に伴うことがある。いくつかのアプリケーションは、これらのタイプの精度を必要とするかもしれないが、他のアプリケーションは、必要としないかもしれない。例えば、いくつかのグラフィックアプリケーションは、16ビットの仮数を必要とするだけであるかもしれない。これらのグラフィックアプリケーションに対して、16ビットの精度を超える何らかの正確さは、不必要な電力消費をもたらす傾向がある。少し挙げてみただけでも、ワイヤレス電話機や、パーソナルデジタルアシスタント(PDA)や、ラップトップや、ゲームコンソールや、ページャーや、カメラなどがある、電力の発生に限りがあるバッテリー駆動のデバイスにおいて、これは、特に問題である。アプリケーションが常に、ある低減された精度を必要とすることが知られている場合、その低減された精度に対して、浮動小数点プロセッサを設計および構築できる。しかしながら、汎用目的のプロセッサに対して、例えば、3Dグラフィックを発生させるような、あるアプリケーションに対しては、低減された精度が受け入れられるかもしれないが、例えば、全地球測位システム(GPS)機能を実現するような、他のアプリケーションに対しては、より高い精度が必要とされるかもしれないということが、共通の状況である。したがって、浮動小数点フォーマットの、低減された精度すなわち副精度が選択可能である浮動小数点プロセッサに対する技術的必要性がある。電力管理技術を用いて、浮動小数点プロセッサが、選択された精度をサポートするために必要以上の電力を確実に消費しないようにすることもできる。
概要
精度フォーマットを有する浮動小数点プロセッサにより、浮動小数点演算を実行する方法の観点を開示する。方法は、1つ以上の浮動小数点数に関して、浮動小数点演算に対する副精度を選択することを含み、副精度の選択は、1つ以上の浮動小数点数のそれぞれに対して、1つ以上の過剰ビットをもたらす。方法は、さもなければ1つ以上の過剰ビットを記憶または処理するために使用される、浮動小数点プロセッサ中の1つ以上のコンポーネントから電力を取り除くことと、1つ以上のコンポーネントから電力を取り除いた状態で、浮動小数点演算を実行することとをさらに含む。
精度フォーマットを有する浮動小数点プロセッサの1つの観点を開示する。浮動小数点プロセッサは、1つ以上の浮動小数点数に関して、浮動小数点演算に対する副精度を選択するように構成された浮動小数点制御装置を含み、副精度の選択は、1つ以上の浮動小数点数のそれぞれに対して、1つ以上の過剰ビットをもたらし、浮動小数点制御装置は、さもなければ1つ以上の過剰ビットを記憶または処理するために使用される、浮動小数点プロセッサ中の1つ以上のコンポーネントから電力を取り除くようにさらに構成されている。浮動小数点プロセッサは、浮動小数点演算を実行するように構成された浮動小数点演算器をさらに含む。
精度フォーマットを有する浮動小数点プロセッサの別の観点を開示する。浮動小数点プロセッサは、複数の浮動小数点数を記憶するように構成された複数の記憶素子を有する浮動小数点レジスタと、浮動小数点レジスタ中に記憶された浮動小数点数のうちの1つ以上に関して浮動小数点演算を実行するように構成された浮動小数点演算器とを含む。浮動小数点プロセッサは、浮動小数点数のうちの1つ以上に関して、浮動小数点演算に対する副精度を選択するように構成された浮動小数点制御装置をさらに含み、副精度の選択は、浮動小数点数のうちの1つ以上のそれぞれに対して、1つ以上の過剰ビットをもたらし、1つ以上の過剰ビットは、浮動小数点レジスタの記憶素子のうちの1つ以上の中に記憶されており、浮動小数点制御装置は、1つ以上の過剰ビットに対する記憶素子から電力を取り除くようにさらに構成されている。
精度フォーマットを有する浮動小数点プロセッサのさらなる観点を開示する。浮動小数点プロセッサは、複数の浮動小数点数を記憶するように構成された浮動小数点レジスタと、浮動小数点レジスタ中に記憶された浮動小数点数のうちの1つ以上に関して、浮動小数点演算を実行するように構成されたロジックを有する浮動小数点演算器とを含む。浮動小数点プロセッサは、浮動小数点数のうちの1つ以上に関して、浮動小数点演算に対する副精度を選択するように構成された浮動小数点制御装置をさらに含み、副精度の選択は、浮動小数点数のうちの1つ以上のそれぞれに対して、1つ以上の過剰ビットをもたらし、浮動小数点制御装置は、さもなければ1つ以上の過剰ビットを処理するために使用される、ロジックの一部から電力を取り除くようにさらに構成されている。
浮動小数点プロセッサの、および浮動小数点演算を実行する方法の、他の実施形態は、浮動小数点プロセッサの、および浮動小数点演算を実行する方法の、さまざまな実施形態を実例として示し、記述している以下の詳細な説明から、当業者に容易に明らかになることを理解すべきである。理解されるように、浮動小数点プロセッサの、および浮動小数点演算を実行する方法の、他のおよび異なる実施形態が可能であり、これらの実施形態を記述するために使用される記述は、多くの点において修正できる。したがって、図面および詳細な説明は、本質的に例示であると考えるべきであり、限定的であると考えるべきでない。
詳細な説明
添付図面に関連して以下で示される詳細な説明は、本開示のさまざまな実施形態を記述するように向けられているが、本開示を実施する実施形態だけを表すように向けられていない。詳細な説明は、本開示の完全な理解を可能にするために、特定の詳細を含んでいる。しかしながら、これらの特定の詳細なしで本開示を実施できることが、当業者により理解されるだろう。いくつかの例において、本開示の概念をより明瞭に図示するために、よく知られている構造およびコンポーネントが、ブロック図の形態で示されている。
浮動小数点プロセッサの少なくとも1つの実施形態において、1つ以上の浮動小数点演算に対する精度は、指定のフォーマットの精度から低減されてもよい。さらに、電力管理技術を用いて、浮動小数点プロセッサが、選択された副精度をサポートするために必要以上の電力を確実に消費しないようにすることもできる。数学的演算を実行するために浮動小数点プロセッサに提供される命令は、プログラム可能な制御フィールドを含んでいる。制御フィールドは、浮動小数点フォーマットの副精度を選択し、電力消費を管理するために使用される。特定の演算に対して必要とされる浮動小数点フォーマットの副精度を選択することにより、結果として、選択された副精度をサポートするための浮動小数点プロセッサの電力消費を低減させ、より高い効率だけでなく、かなりの電力節減を達成することができる。
図1は、選択可能な副精度を有する浮動小数点プロセッサ(FPP)の例を図示する機能ブロック図である。浮動小数点プロセッサ100は、浮動小数点レジスタファイル(FPR)110と、浮動小数点制御装置(CTL)130と、浮動小数点数学的演算器(FPO)140とを含んでいる。浮動小数点プロセッサ100は、メインプロセッサの一部分や、コプロセッサや、あるいは、バスまたは他のチャネルを通してメインプロセッサに接続された別個のエンティティとして実現してもよい。
浮動小数点レジスタファイル110は、何らかの適切な記憶媒体である。図1中で示した実施形態において、浮動小数点レジスタファイル110は、いくつかのアドレス可能レジスタ位置115−1(REG1)、115−2(REG2)、...115−N(REG N)を含み、それぞれは、浮動小数点演算に対するオペランドを記憶するように構成されている。オペランドは、例えば、メモリからのデータおよび/または以前の浮動小数点演算の結果を含んでいてもよい。浮動小数点プロセッサに提供される命令を使用して、メインメモリに、およびメインメモリから、オペランドを移動できる。
図2は、図1に関して記述した、選択可能な副精度を有する浮動小数点プロセッサ100中で使用される、浮動小数点レジスタファイル110に対するデータ構造の例を概略的に図示する。図2中で図示した実施形態において、浮動小数点レジスタファイル110は、16個のアドレス可能レジスタ位置を含み、それぞれのレジスタ位置は、便宜上、図2中の参照数字200により参照されている。各レジスタ位置200は、IEEE−754の32ビット単フォーマットで、32ビットのバイナリの浮動小数点数を記憶するように構成されている。特に、各レジスタ位置200は、1ビットの符号202と、8ビットの指数204と、24ビットの小数部206とを含む。しかしながら、浮動小数点プロセッサ100の他の実施形態は、IEEE32ビット単フォーマットとは異なってフォーマットされている(限定されないが、IEEE64ビット倍フォーマットを含む)浮動小数点レジスタ110を含んでいてもよく、および/または異なる数のレジスタ位置を含んでいてもよいことを当然理解すべきである。
図1を再度参照すると、浮動小数点制御装置130は、制御信号133を使用して、浮動小数点演算の副精度を選択するために使用される。制御レジスタ(CRG)137には、例えば、1つ以上の命令の制御フィールド中で送信される副精度選択ビットがロードされてもよい。後に、より詳細に記述する方法において、浮動小数点制御装置130により副精度選択ビットを使用して、オペランドの精度を低減させてもよい。副精度選択ビットを使用して、浮動小数点プロセッサ100の一部の電源を切ってもよい。一例として、副精度選択ビットを使用して、選択された副精度に対して必要とされないビットに対する浮動小数点レジスタ素子から電力を取り除いてもよい。選択された副精度が低減されるとき、副精度選択ビットを使用して、使用されない浮動小数点演算器FPO140中のロジックから電力を取り除いてもよい。一連のスイッチを使用して、浮動小数点演算器140中の浮動小数点レジスタ素子およびロジックから電力を取り除いてもよく、それらに対して電力を加えてもよい。浮動小数点レジスタ110および浮動小数点演算器140に対して内部または外部にあってもよいスイッチは、電界効果トランジスタまたは他の何らかのタイプのスイッチであってもよい。
浮動小数点演算器140は、浮動小数点演算を実行するように構成された1つ以上のコンポーネントを含んでいてもよい。これらのコンポーネントは、浮動小数点の加算および減算命令を実行するように構成された浮動小数点加算器(ADD)142や、浮動小数点乗算命令を実行するように構成された浮動小数点乗算器(MUL)144のような計算ユニットを含んでいてもよいが、それらに限定されない。図1中で見られるように、浮動小数点演算器140中の計算ユニットADD142およびMUL144のそれぞれは、互いに結合されており、そして、計算ユニットの間だけでなく、各計算ユニットと浮動小数点レジスタファイル110との間でも、オペランドが転送されることを可能にする方法で、浮動小数点レジスタファイル110に結合されている。浮動小数点演算器は、図示したような個々の接続134、135、136、137、138、および139を通して浮動小数点レジスタに結合されていてもよく、バスまたは他の何らかの適切な結合を介して結合されていてもよい。浮動小数点プロセッサ100の少なくとも1つの実施形態において、計算ユニット(ADD142およびMUL144)のうちのいずれか1つの出力は、他の何らかの計算ユニットの入力であってもよい。浮動小数点レジスタファイル110は、中間結果だけでなく、浮動小数点演算器140からの出力である結果を記憶するために使用してもよい。
加算器142は、浮動小数点フォーマットで標準算術演算を実行するように構成された、通常の浮動小数点加算器であってもよい。乗算器144は、浮動小数点乗算を実行するように構成された、通常の浮動小数点乗算器であってもよい。乗算器144は、一例として、ブースアルゴリズムまたは修正されたブースアルゴリズムにより実現してもよく、部分積を発生させる部分積発生ロジックと、部分積を累計する多数のキャリー保存加算器とを含んでいてもよい。
簡単にするために、加算器142と乗算器144だけを図1中で示しているが、技術的に既知であり、他のタイプの浮動小数点数学的演算を実行するように構成されている、(示していない)他の計算ユニットを、浮動小数点演算器140が含んでいてもよい。これらの計算ユニットは、浮動小数点の除算命令を実行するように構成された浮動小数点除算器や、浮動小数点の平方根を開く命令を実行するように構成された浮動小数点平方根開器や、浮動小数点の指数命令を実行するように構成された浮動小数点指数演算器や、対数関数を計算する命令を実行するように構成された浮動小数点対数演算器や、三角関数を計算する命令を実行するように構成された浮動小数点三角演算器を含んでいてもよいが、これらに限定されない。
浮動小数点プロセッサ100の異なる実施形態は、上でリスト表示した計算ユニットのうちの、1つだけを、またはいくつかを、またはすべてを含んでいてもよい。例えば、加算器142および乗算器144は、それぞれ、入力オペランドを整列させるアライナーや、結果を標準フォーマットにシフトするノーマライザや、指定の丸めモードに基づいて、結果を丸めるラウンダのような、1つ以上のよく知られている通常のサブユニットを含んでいてもよい。ビットインバータや、マルチプレクサや、カウンタや、組み合わせロジック回路のような、よく知られている回路素子が、さらに、加算器142および乗算器144中に含まれている。
図1中で図示したように、浮動小数点演算器140は、浮動小数点レジスタファイル110に結合されており、それにより、要求された浮動小数点演算の各命令に対して、関連した計算ユニット、すなわち、加算器142または乗算器144は、レジスタ位置REG1、...、REG Nのうちの1つ以上の中に記憶された1つ以上のオペランドを、浮動小数点レジスタファイル110から受け取ることができる。
浮動小数点レジスタファイル110からオペランドを受け取り次第、浮動小数点演算器140中の1つ以上の計算ユニットは、浮動小数点制御装置130により選択された副精度で、受け取られたオペランドに関して、要求された浮動小数点演算の命令を実行してもよい。図1中で示したように、出力は、記憶のために浮動小数点レジスタ110に返送されてもよい。
浮動小数点プロセッサ100の1つの実施形態において、ソフトウェアの選択可能なモードを使用して、プログラム制御の下で、浮動小数点演算の精度を低減させてもよく、または、上で説明したように、浮動小数点プロセッサ100に提供される命令は、副精度選択ビットを含んでいる、プログラム可能な制御フィールドを含んでいてもよい。副精度選択ビットは、制御レジスタ137に書き込まれ、副精度選択ビットは次に、浮動小数点演算の間に、各オペランドに対する仮数のビット長を制御する。代わりに、副精度選択ビットは、例えば、図1中で示した、モニタスクリーン/キーボードまたはマウス150を含むが、これらに限定されない何らかの適切なユーザインターフェースから、直接に制御レジスタ137に書き込まれてもよい。浮動小数点プロセッサ100の別の実施形態において、副精度選択ビットは、メインプロセッサ、またはそのオペレーティングシステムから、直接に制御レジスタ137に書き込まれてもよい。浮動小数点制御装置130中で示されている制御レジスタ137は、別のエンティティに組み込まれた、または、複数のエンティティにわたって分散された、独立型のエンティティとして、どこかの場所に存在していてもよい。
副精度選択ビットを使用して、浮動小数点演算の精度を低減させてもよい。これは、さまざまな方法で達成できる。1つの実施形態において、副精度選択ビットにより指定された精度を満たすことが要求されない小数部の過剰ビットに対する浮動小数点レジスタ素子から、浮動小数点制御装置130により、電力が取り除かれてもよい。一例として、浮動小数点レジスタファイル中のそれぞれの位置が、23ビットの小数部を含み、そして、浮動小数点演算に対して必要とされる副精度が10ビットである場合、小数部のうちの9個の上位ビットだけが必要とされ、隠れた、または整数ビットが、10番目になる。残りの14個の小数部ビットに対する浮動小数点レジスタ素子から、電力を取り除くことができる。1つ以上の命令に対する副精度が、16ビットに増加される場合、仮数の15個のMSBが必要とされる。後者のケースにおいて、小数部の8個の下位ビット(LSB)に対する浮動小数点レジスタ素子から、電力を取り除くことができる。
さらに、過剰の仮数ビットに対応する、浮動小数点演算器140中のロジックは、電力を必要としない。したがって、選択された副精度の結果として、使用されずにとどまっている、浮動小数点演算器140中のロジックに対する電力を取り除くことにより、電力節減を達成できる。
図3Aは、浮動小数点演算器中のロジックに対して電力が選択的に加えられている状態での、浮動小数点の加算の例を図示する概念図である。特に、図3Aは、2つの入力浮動小数点数302と304による浮動小数点の加算を概念的に図示する。浮動小数点数302と304は、それぞれ、選択された副精度により特徴付けられ、ともに加算される。簡単にするために、2つの数302と304は、すでに整列しており、それにより、シフトする必要がないと仮定する。フル精度モードにおける浮動小数点の加算は、図3A中で参照される、参照数字3101、3102、...、310i、...、310nによる連続のステージを通して実行される。標準の規則にしたがうと、浮動小数点レジスタは、最も右側のLSBから最も左側のMSBまでの範囲にわたる、各数を構成するビットを順番に記憶する。図3Aにわたって、右から左に移動する、それぞれの連続するステージのうちの1つは、前のステージに含まれるビットと比較して、増加した有効桁数を有するビットを含む。
図3A中で図示した例において、選択された副精度は、ライン305により表されている。ライン305の右側に対する各ステージを実現するために使用されるロジックから、電力を取り除くことができる。最後に電源を切られたステージ310iからの桁上がりCは、強制的にゼロにされる。電力は、ライン305の左側に対する各ステージを実現するために使用されるロジックに対してのみ供給される。図3Aにおいて、浮動小数点演算器のアクティブなステージに対して提供される、電力供給されたビットは、参照数字322を使用して、Xとして示されており、一方、電力が取り除かれたステージに対して提供される、電力供給されないビットは、参照数字324を使用して、円として示されている。
図3Bは、浮動小数点演算器中のロジックに対して電力が選択的に加えられている状態での、浮動小数点の乗算の例を図示する概念図である。浮動小数点の乗算は、図1中で示した、参照数字144による浮動小数点乗算器MULにおいて実行される。乗算器において、相当な量のロジックは、電源を切ることができ、かなりの電力の節減を提供する。図3B中で図示したバイナリ乗算は、基本的に、シフトされた浮動小数点数の一連の加算である。図示した実施形態において、バイナリ乗算は、桁送りおよび加算技術を使用して、kビットの被乗数402とkビットの乗数404との間で実行される。桁送りおよび加算技術は、ブースアルゴリズムの、または修正されたブースアルゴリズムの乗算器に取って代えてもよい。
浮動小数点の加算のケースと同様に、浮動小数点乗算は、410−1、...、410−mとして図3B中で図示される、一連のステージにおいて実行される。簡単にするために、ブースアルゴリズムが使用されると仮定すると、1つの部分積が、乗数404中のすべてのビットに対して発生され、部分積420−iが、対応するステージ410−iの間に発生される。乗数の値が0である場合は、その対応する部分積は0だけで構成され、ビットの値が1である場合は、その対応する部分積は、被乗数のコピーである。演算が次のステージに移行した後、各部分積420−iは、それが関係付けられる乗数ビットの関数として、左にシフトされる。各部分積は、このように、シフトされた数としてとらえることができる。乗数中のビット0に関係付けられた部分積は、左にシフトされたゼロのビットであり、ビット1に関係付けられた部分積は、左にシフトされた1のビットである。部分積すなわちシフトされた浮動小数点数420−iは、ともに加算されて、乗算に対する出力値430を発生させる。
図3B中で図示した実施形態において、制御装置130による所望の低減精度の選択が、ライン405により示されている。図3Aに関して記述した、浮動小数点の加算のケースと同様に、ライン405の右側に対するステージを実現するために使用されるロジックから、電力を取り除くことができる。選択された副精度をサポートするために実際に必要とされるステージ、すなわち、ライン405の左側に対するステージに対して、電力が加えられるだけである。図3Bにおいて、電源投入されたロジックに提供されるビットは、Xとして示されており、一方、電源を切られたステージに提供されるビットは、円として示されている。
図3Bから分かるように、1番目の部分積420−1に対して、参照数字402を使用して示した、N個のビットに対するロジックは、電力供給されない。2番目の部分積に対して、N−1個のビットに対するロジックは、電力供給されない、などである。m番目の部分積すなわちシフトされた浮動小数点数420−mに対して、参照数字414を使用して示した(N−m+1)個のビットに対するロジックは、電力供給されない。残りのステージの精度に悪影響を及ぼさないように、ビット数Nが選ばれる。
上述した浮動小数点乗算から結果として生じる出力値は、互いに乗算されている2つの入力値402と404との幅(すなわち、ビット数)の合計に等しい幅を有する。出力値430は、選択された副精度に切り捨てられてもよく、すなわち、選択された精度よりも低い出力値430のビットのいくつかを切り捨てて、選択された精度により特徴付けられた、切り捨てられた出力の数を発生させてもよい。代わりに、出力値430を選択された精度に四捨五入してもよい。いずれのケースにおいても、選択された精度よりも下位の出力ビットは、電力供給されなくてもよい。
汎用目的のプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラム可能ゲートアレイ(FPGA)または他のプログラム可能ロジックコンポーネント、ディスクリートゲートまたはトランジスタロジック、ディスクリートハードウェアコンポーネント、あるいはここで記述した機能を実行するために設計された、これらの任意の組み合わせ、の一部分である浮動小数点プロセッサ中で、ここで開示した実施形態に関して記述した、さまざまな実例となるロジックユニット、ブロック、モジュール、回路、素子、および/またはコンポーネントを実現または実行してもよい。汎用目的のプロセッサはマイクロプロセッサでもよいが、代わりに、プロセッサは任意の従来のプロセッサ、制御装置、マイクロ制御装置、または状態遷移機械であってもよい。プロセッサは、例えば、DSPとマイクロプロセッサとの組み合わせや、複数のマイクロプロセッサや、DSPコアに関連した1つ以上のマイクロプロセッサや、または他の任意のこのような構成のような、計算コンポーネントの組み合わせとして実現してもよい。
ここで開示した実施形態に関して記述した方法またはアルゴリズムのステップを、ハードウェア中で直接、プロセッサにより実行されるソフトウェアモジュール中で、またはその2つの組み合わせ中で具体化してもよい。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバルディスク、CD−ROM,または技術的に知られている他の任意の形態の記憶媒体中に存在してもよい。プロセッサが記憶媒体から情報を読み取ることができ、記憶媒体に情報を書き込むことができるように、記憶媒体はプロセッサに結合されている。代わりに、記憶媒体はプロセッサと一体化されていてもよい。
いかなる当業者であっても本開示を作成または使用できるように、開示した実施形態の記述をこれまでに提供している。これらの実施形態に対してさまざまな修正が当業者に容易に明らかとなり、本開示の精神または範囲から逸脱することなく、ここで規定した一般的な原理を他の実施形態に適用してもよい。したがって、本開示は、ここで示した実施形態に限定されるように意図されていないが、特許請求の範囲に矛盾しない全範囲に一致すべきであり、ここで単一の要素に対する参照は、特にそう述べられていない限り、“1つおよびただ1つ”を意味するように意図されておらず、むしろ“1つまたはそれ以上”を意味するように意図されている。当業者に知られている、または後に知られるようになる、本開示全体を通して記述したさまざまな実施形態の要素に対するすべての構造的および機能的な均等物は、明白に、参照によりここに組み込まれ、特許請求の範囲により包含されるように意図されている。さらに、ここで開示したものは、そのような開示が特許請求の範囲中で明示的に記載されているかどうかにかかわらず、公開専用のものであるように意図されていない。要素がフレーズ“手段”を使用して明白に記載されていない限り、または方法の請求項のケースにおいて、要素がフレーズ“ステップ”を使用して記載されていない限り、請求項の要素は、合衆国法典第35部112条第6項のもとで解釈すべきでない。
図1は、選択可能な副精度を有する浮動小数点プロセッサの例を図示する機能ブロック図である。 図2は、選択可能な副精度を有する浮動小数点プロセッサ中で使用される、浮動小数点レジスタの例のグラフィカルな説明図である。 図3Aは、選択可能な副精度を有する浮動小数点プロセッサを使用して実行される、浮動小数点加算の例を図示する概念図である。 図3Bは、選択可能な副精度を有する浮動小数点プロセッサを使用して実行される、浮動小数点乗算の例を図示する概念図である。

Claims (24)

  1. 最大精度を有する浮動小数点プロセッサにより、浮動小数点演算を実行する方法において、
    1つ以上の浮動小数点数に関する前記浮動小数点演算に対して、前記最大精度よりも小さい副精度を選択し、前記副精度の選択は、前記1つ以上の浮動小数点数のそれぞれに対して、1つ以上の過剰ビットをもたらすことと、
    さもなければ前記1つ以上の過剰ビットを記憶または処理するために使用される、前記浮動小数点プロセッサ中の1つ以上のコンポーネントから電力を取り除くことと、
    前記1つ以上のコンポーネントから電力を取り除いた状態で、前記浮動小数点演算を実行することとを含む方法。
  2. 複数の記憶素子を有する浮動小数点レジスタを使用することをさらに含み、前記1つ以上の過剰ビットは、前記記憶素子のうちの1つ以上の中に記憶されており、
    前記電力が取り除かれる1つ以上のコンポーネントは、前記1つ以上の過剰ビットに対する前記記憶素子を含む請求項1記載の方法。
  3. 前記浮動小数点演算を実行するためのロジックを有する浮動小数点演算器を使用することをさらに含み、
    前記電力が取り除かれる1つ以上のコンポーネントは、さもなければ前記1つ以上の過剰ビットを処理するために使用される、前記ロジックの一部を含む請求項2記載の方法。
  4. 前記浮動小数点演算を実行するロジックを有する浮動小数点演算器を使用することをさらに含み、
    前記電力が取り除かれる1つ以上のコンポーネントは、さもなければ前記1つ以上の過剰ビットを処理するために使用される、前記ロジックの一部を含む請求項1記載の方法。
  5. 前記浮動小数点演算は、加算を含む請求項4記載の方法。
  6. 前記ロジックの一部からの桁上がりを強制的にゼロにすることをさらに含む請求項5記載の方法。
  7. 前記浮動小数点演算は、乗算を含む請求項4記載の方法。
  8. 最大精度を有する浮動小数点プロセッサにおいて、
    1つ以上の浮動小数点数に関する浮動小数点演算に対して、前記最大精度よりも小さい副精度を選択するように構成された浮動小数点制御装置と、
    前記浮動小数点演算を実行するように構成された浮動小数点演算器とを具備し、
    前記副精度の選択は、前記1つ以上の浮動小数点数のそれぞれに対して、1つ以上の過剰ビットをもたらし、
    前記浮動小数点制御装置は、さもなければ前記1つ以上の過剰ビットを記憶または処理するために使用される、前記浮動小数点プロセッサ中の1つ以上のコンポーネントから電力を取り除くようにさらに構成されている浮動小数点プロセッサ。
  9. 複数の記憶素子を有する浮動小数点レジスタをさらに具備し、前記1つ以上の過剰ビットは、前記記憶素子のうちの1つ以上の中に記憶されており、
    前記電力を取り除くことができる1つ以上のコンポーネントは、前記1つ以上の過剰ビットに対する前記記憶素子を含む請求項8記載の浮動小数点プロセッサ。
  10. 前記浮動小数点演算器は、前記浮動小数点演算を実行するためのロジックを備え、
    前記電力を取り除くことができる1つ以上のコンポーネントは、さもなければ前記1つ以上の過剰ビットを処理するために使用される、前記ロジックの一部を含む請求項9記載の浮動小数点プロセッサ。
  11. 前記浮動小数点演算器は、前記浮動小数点演算を実行するためのロジックを備え、
    前記電力を取り除くことができる1つ以上のコンポーネントは、さもなければ前記1つ以上の過剰ビットを処理するために使用される、前記ロジックの一部を含む請求項8記載の浮動小数点プロセッサ。
  12. 前記浮動小数点演算器は、浮動小数点加算器を含む請求項11記載の浮動小数点プロセッサ。
  13. 前記電力が取り除かれるとき、前記浮動小数点演算器は、前記ロジックの一部からの桁上がりを強制的にゼロにするようにさらに構成されている請求項12記載の浮動小数点プロセッサ。
  14. 前記浮動小数点演算器は、浮動小数点乗算器を含む請求項11記載の浮動小数点プロセッサ。
  15. 最大精度を有する浮動小数点プロセッサにおいて、
    複数の浮動小数点数を記憶するように構成された複数の記憶素子を有する浮動小数点レジスタと、
    前記浮動小数点レジスタ中に記憶された前記浮動小数点数のうちの1つ以上に関して、浮動小数点演算を実行するように構成された浮動小数点演算器と、
    前記浮動小数点数のうちの1つ以上に関する浮動小数点演算に対して、前記最大精度よりも小さい副精度を選択するように構成された浮動小数点制御装置とを具備し、
    前記副精度の選択は、前記浮動小数点数のうちの1つ以上のそれぞれに対して、1つ以上の過剰ビットをもたらし、
    前記1つ以上の過剰ビットは、前記浮動小数点レジスタの前記記憶素子のうちの1つ以上の中に記憶されており、
    前記浮動小数点制御装置は、前記1つ以上の過剰ビットに対する前記記憶素子から電力を取り除くようにさらに構成されている浮動小数点プロセッサ。
  16. 前記浮動小数点演算器は、前記浮動小数点演算を実行するように構成されたロジックを備え、
    前記浮動小数点制御装置は、さもなければ前記1つ以上の過剰ビットを処理するために使用される、前記ロジックの一部から電力を取り除くようにさらに構成されている請求項15記載の浮動小数点プロセッサ。
  17. 前記浮動小数点演算器は、浮動小数点加算器を含む請求項16記載の浮動小数点プロセッサ。
  18. 前記電力が取り除かれるとき、前記浮動小数点演算器は、前記ロジックの一部からの桁上がりを強制的にゼロにするようにさらに構成されている請求項17記載の浮動小数点プロセッサ。
  19. 前記浮動小数点演算器は、浮動小数点乗算器を含む請求項16記載の浮動小数点プロセッサ。
  20. 最大精度を有する浮動小数点プロセッサにおいて、
    複数の浮動小数点数を記憶するように構成された浮動小数点レジスタと、
    前記浮動小数点レジスタ中に記憶された前記浮動小数点数のうちの1つ以上に関して、浮動小数点演算を実行するように構成されたロジックを有する浮動小数点演算器と、
    前記浮動小数点数のうちの1つ以上に関する浮動小数点演算に対して、前記最大精度よりも小さい副精度を選択するように構成された浮動小数点制御装置とを具備し、
    前記副精度の選択は、前記浮動小数点数のうちの1つ以上のそれぞれに対して、1つ以上の過剰ビットをもたらし、
    前記浮動小数点制御装置は、さもなければ前記1つ以上の過剰ビットを処理するために使用される、前記回路の一部から電力を取り除くようにさらに構成されている浮動小数点プロセッサ。
  21. 前記浮動小数点レジスタは、前記浮動小数点数を記憶するように構成された複数の記憶素子を備え、前記1つ以上の過剰ビットは、前記記憶素子のうちの1つ以上の中に記憶されており、
    前記浮動小数点制御装置は、前記1つ以上の過剰ビットに対する前記記憶素子から電力を取り除くようにさらに構成されている請求項20記載の浮動小数点プロセッサ。
  22. 前記浮動小数点演算器は、浮動小数点加算器を含む請求項20記載の浮動小数点プロセッサ。
  23. 前記電力が取り除かれるとき、前記浮動小数点演算器は、前記ロジックの一部からの桁上がりを強制的にゼロにするようにさらに構成されている請求項22記載の浮動小数点プロセッサ。
  24. 前記浮動小数点演算器は、浮動小数点乗算器を含み、前記浮動小数点乗算器内の、部分積を構成する素子の一部から、電力が取り除かれる請求項20記載の浮動小数点プロセッサ。
JP2008557471A 2006-02-27 2007-02-27 選択可能な副精度に対して、低減された電力要求を有する浮動小数点プロセッサ Active JP5113089B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/363,118 US8595279B2 (en) 2006-02-27 2006-02-27 Floating-point processor with reduced power requirements for selectable subprecision
US11/363,118 2006-02-27
PCT/US2007/062908 WO2007101216A2 (en) 2006-02-27 2007-02-27 Floating-point processor with reduced power requirements for selectable subprecision

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2012130000A Division JP2012230684A (ja) 2006-02-27 2012-06-07 選択可能な副精度に対して、低減された電力要求を有する浮動小数点プロセッサ

Publications (2)

Publication Number Publication Date
JP2009528638A true JP2009528638A (ja) 2009-08-06
JP5113089B2 JP5113089B2 (ja) 2013-01-09

Family

ID=38445306

Family Applications (4)

Application Number Title Priority Date Filing Date
JP2008557471A Active JP5113089B2 (ja) 2006-02-27 2007-02-27 選択可能な副精度に対して、低減された電力要求を有する浮動小数点プロセッサ
JP2012130000A Withdrawn JP2012230684A (ja) 2006-02-27 2012-06-07 選択可能な副精度に対して、低減された電力要求を有する浮動小数点プロセッサ
JP2014258023A Withdrawn JP2015133111A (ja) 2006-02-27 2014-12-19 選択可能な副精度に対して、低減された電力要求を有する浮動小数点プロセッサ
JP2016206781A Active JP6495220B2 (ja) 2006-02-27 2016-10-21 選択可能な副精度に対して、低減された電力要求を有する浮動小数点プロセッサ

Family Applications After (3)

Application Number Title Priority Date Filing Date
JP2012130000A Withdrawn JP2012230684A (ja) 2006-02-27 2012-06-07 選択可能な副精度に対して、低減された電力要求を有する浮動小数点プロセッサ
JP2014258023A Withdrawn JP2015133111A (ja) 2006-02-27 2014-12-19 選択可能な副精度に対して、低減された電力要求を有する浮動小数点プロセッサ
JP2016206781A Active JP6495220B2 (ja) 2006-02-27 2016-10-21 選択可能な副精度に対して、低減された電力要求を有する浮動小数点プロセッサ

Country Status (10)

Country Link
US (1) US8595279B2 (ja)
EP (1) EP1989614A2 (ja)
JP (4) JP5113089B2 (ja)
KR (1) KR100994862B1 (ja)
CN (1) CN101390045B (ja)
BR (1) BRPI0708284A2 (ja)
CA (1) CA2641334C (ja)
MX (1) MX2008010873A (ja)
RU (1) RU2412462C2 (ja)
WO (1) WO2007101216A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016524748A (ja) * 2014-02-10 2016-08-18 ヴィア アライアンス セミコンダクター カンパニー リミテッド 過度の近似計算誤差から回復するプロセッサ

Families Citing this family (67)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8412760B2 (en) * 2008-07-22 2013-04-02 International Business Machines Corporation Dynamic range adjusting floating point execution unit
US8150902B2 (en) 2009-06-19 2012-04-03 Singular Computing Llc Processing with compact arithmetic processing element
CN101916182B (zh) * 2009-09-09 2014-08-20 威盛电子股份有限公司 使用非架构的数据格式的快速浮点结果的转送
US8375078B2 (en) * 2009-09-09 2013-02-12 Via Technologies, Inc. Fast floating point result forwarding using non-architected data format
US8219605B2 (en) * 2010-05-28 2012-07-10 International Business Machines Corporation Decimal floating-pointing quantum exception detection
US8918446B2 (en) * 2010-12-14 2014-12-23 Intel Corporation Reducing power consumption in multi-precision floating point multipliers
US20120215825A1 (en) * 2011-02-22 2012-08-23 Mavalankar Abhay M Efficient multiplication techniques
US9600278B1 (en) 2011-05-09 2017-03-21 Altera Corporation Programmable device using fixed and configurable logic to implement recursive trees
US9128697B1 (en) * 2011-07-18 2015-09-08 Apple Inc. Computer numerical storage format with precision type indicator
WO2013100783A1 (en) 2011-12-29 2013-07-04 Intel Corporation Method and system for control signalling in a data path module
US10289412B2 (en) 2012-02-09 2019-05-14 Qualcomm Incorporated Floating point constant generation instruction
US9098332B1 (en) 2012-06-01 2015-08-04 Altera Corporation Specialized processing block with fixed- and floating-point structures
US9829956B2 (en) * 2012-11-21 2017-11-28 Nvidia Corporation Approach to power reduction in floating-point operations
US9189200B1 (en) * 2013-03-14 2015-11-17 Altera Corporation Multiple-precision processing block in a programmable integrated circuit device
US9268528B2 (en) * 2013-05-23 2016-02-23 Nvidia Corporation System and method for dynamically reducing power consumption of floating-point logic
US9348795B1 (en) 2013-07-03 2016-05-24 Altera Corporation Programmable device using fixed and configurable logic to implement floating-point rounding
US10331583B2 (en) 2013-09-26 2019-06-25 Intel Corporation Executing distributed memory operations using processing elements connected by distributed channels
US9461667B2 (en) * 2013-12-30 2016-10-04 Samsung Electronics Co., Ltd. Rounding injection scheme for floating-point to integer conversion
US9389863B2 (en) * 2014-02-10 2016-07-12 Via Alliance Semiconductor Co., Ltd. Processor that performs approximate computing instructions
US10235232B2 (en) * 2014-02-10 2019-03-19 Via Alliance Semiconductor Co., Ltd Processor with approximate computing execution unit that includes an approximation control register having an approximation mode flag, an approximation amount, and an error threshold, where the approximation control register is writable by an instruction set instruction
MX2016013538A (es) * 2014-05-08 2017-01-13 Micro Motion Inc Metodo de realizacion de calculos a prueba de fallas.
US9916130B2 (en) 2014-11-03 2018-03-13 Arm Limited Apparatus and method for vector processing
US10297001B2 (en) * 2014-12-26 2019-05-21 Intel Corporation Reduced power implementation of computer instructions
US9927862B2 (en) 2015-05-21 2018-03-27 Microsoft Technology Licensing, Llc Variable precision in hardware pipelines for power conservation
US11010166B2 (en) * 2016-03-31 2021-05-18 Intel Corporation Arithmetic logic unit with normal and accelerated performance modes using differing numbers of computational circuits
US20170322808A1 (en) * 2016-05-05 2017-11-09 Cirrus Logic International Semiconductor Ltd. Low-power processor with support for multiple precision modes
CN114004349A (zh) * 2016-08-05 2022-02-01 中科寒武纪科技股份有限公司 一种能支持不同位宽运算数据的运算单元、方法及装置
US10042607B2 (en) * 2016-08-22 2018-08-07 Altera Corporation Variable precision floating-point multiplier
US10402168B2 (en) * 2016-10-01 2019-09-03 Intel Corporation Low energy consumption mantissa multiplication for floating point multiply-add operations
US10558575B2 (en) 2016-12-30 2020-02-11 Intel Corporation Processors, methods, and systems with a configurable spatial accelerator
US10572376B2 (en) 2016-12-30 2020-02-25 Intel Corporation Memory ordering in acceleration hardware
US10474375B2 (en) 2016-12-30 2019-11-12 Intel Corporation Runtime address disambiguation in acceleration hardware
US10416999B2 (en) 2016-12-30 2019-09-17 Intel Corporation Processors, methods, and systems with a configurable spatial accelerator
TWI807539B (zh) 2017-05-17 2023-07-01 美商谷歌有限責任公司 用於執行矩陣乘法之方法、硬體電路、運算系統及電腦儲存媒體
US10445451B2 (en) 2017-07-01 2019-10-15 Intel Corporation Processors, methods, and systems for a configurable spatial accelerator with performance, correctness, and power reduction features
US10445234B2 (en) 2017-07-01 2019-10-15 Intel Corporation Processors, methods, and systems for a configurable spatial accelerator with transactional and replay features
US10467183B2 (en) 2017-07-01 2019-11-05 Intel Corporation Processors and methods for pipelined runtime services in a spatial array
US10387319B2 (en) 2017-07-01 2019-08-20 Intel Corporation Processors, methods, and systems for a configurable spatial accelerator with memory system performance, power reduction, and atomics support features
US10515046B2 (en) 2017-07-01 2019-12-24 Intel Corporation Processors, methods, and systems with a configurable spatial accelerator
US10515049B1 (en) 2017-07-01 2019-12-24 Intel Corporation Memory circuits and methods for distributed memory hazard detection and error recovery
US10469397B2 (en) 2017-07-01 2019-11-05 Intel Corporation Processors and methods with configurable network-based dataflow operator circuits
US10496574B2 (en) 2017-09-28 2019-12-03 Intel Corporation Processors, methods, and systems for a memory fence in a configurable spatial accelerator
US11086816B2 (en) 2017-09-28 2021-08-10 Intel Corporation Processors, methods, and systems for debugging a configurable spatial accelerator
US10445098B2 (en) 2017-09-30 2019-10-15 Intel Corporation Processors and methods for privileged configuration in a spatial array
US10380063B2 (en) 2017-09-30 2019-08-13 Intel Corporation Processors, methods, and systems with a configurable spatial accelerator having a sequencer dataflow operator
RU2686628C1 (ru) * 2017-12-25 2019-04-29 Акционерное общество "Ангстрем" (АО "Ангстрем") Устройство сложения-вычитания чисел для цифро-сигнального процессора
US10565134B2 (en) 2017-12-30 2020-02-18 Intel Corporation Apparatus, methods, and systems for multicast in a configurable spatial accelerator
US10445250B2 (en) 2017-12-30 2019-10-15 Intel Corporation Apparatus, methods, and systems with a configurable spatial accelerator
US10417175B2 (en) 2017-12-30 2019-09-17 Intel Corporation Apparatus, methods, and systems for memory consistency in a configurable spatial accelerator
US10564980B2 (en) 2018-04-03 2020-02-18 Intel Corporation Apparatus, methods, and systems for conditional queues in a configurable spatial accelerator
US11307873B2 (en) 2018-04-03 2022-04-19 Intel Corporation Apparatus, methods, and systems for unstructured data flow in a configurable spatial accelerator with predicate propagation and merging
US10459866B1 (en) 2018-06-30 2019-10-29 Intel Corporation Apparatuses, methods, and systems for integrated control and data processing in a configurable spatial accelerator
US10853073B2 (en) 2018-06-30 2020-12-01 Intel Corporation Apparatuses, methods, and systems for conditional operations in a configurable spatial accelerator
US11200186B2 (en) 2018-06-30 2021-12-14 Intel Corporation Apparatuses, methods, and systems for operations in a configurable spatial accelerator
US10891240B2 (en) 2018-06-30 2021-01-12 Intel Corporation Apparatus, methods, and systems for low latency communication in a configurable spatial accelerator
CN109086815B (zh) * 2018-07-24 2021-08-31 中国人民解放军国防科技大学 基于fpga的决策树模型中的浮点数离散化方法
US10713012B2 (en) 2018-10-15 2020-07-14 Intel Corporation Method and apparatus for efficient binary and ternary support in fused multiply-add (FMA) circuits
US10678724B1 (en) 2018-12-29 2020-06-09 Intel Corporation Apparatuses, methods, and systems for in-network storage in a configurable spatial accelerator
US10915471B2 (en) 2019-03-30 2021-02-09 Intel Corporation Apparatuses, methods, and systems for memory interface circuit allocation in a configurable spatial accelerator
US11029927B2 (en) 2019-03-30 2021-06-08 Intel Corporation Methods and apparatus to detect and annotate backedges in a dataflow graph
US10965536B2 (en) 2019-03-30 2021-03-30 Intel Corporation Methods and apparatus to insert buffers in a dataflow graph
US10817291B2 (en) 2019-03-30 2020-10-27 Intel Corporation Apparatuses, methods, and systems for swizzle operations in a configurable spatial accelerator
US11037050B2 (en) 2019-06-29 2021-06-15 Intel Corporation Apparatuses, methods, and systems for memory interface circuit arbitration in a configurable spatial accelerator
EP3792752A1 (en) * 2019-09-11 2021-03-17 Nokia Solutions and Networks Oy Arithmetic unit
US11907713B2 (en) 2019-12-28 2024-02-20 Intel Corporation Apparatuses, methods, and systems for fused operations using sign modification in a processing element of a configurable spatial accelerator
GB2600915B (en) * 2020-10-07 2023-02-15 Graphcore Ltd Floating point number format
US11797074B2 (en) * 2021-05-25 2023-10-24 Google Llc Multi-mode integrated circuits with balanced energy consumption

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06175823A (ja) * 1992-08-03 1994-06-24 Advanced Micro Devicds Inc 乗算装置の選択された部分へ電力を与えるための装置および電源から乗算装置の選択された部分への電力伝達を制御するための装置
JPH07146777A (ja) * 1993-11-24 1995-06-06 Matsushita Electric Ind Co Ltd 演算装置
JP2005078518A (ja) * 2003-09-02 2005-03-24 Renesas Technology Corp マイクロコントローラユニットおよびそのコンパイラ
US20050066205A1 (en) * 2003-09-18 2005-03-24 Bruce Holmer High quality and high performance three-dimensional graphics architecture for portable handheld devices

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SU1280624A1 (ru) 1985-07-01 1986-12-30 Предприятие П/Я А-7638 Устройство дл умножени чисел с плавающей зап той
JPH0269822A (ja) 1988-09-06 1990-03-08 Fujitsu Ltd 浮動小数点演算回路
JP3428741B2 (ja) * 1994-02-14 2003-07-22 松下電器産業株式会社 演算装置とアドレス発生装置及びプログラム制御装置
US5996083A (en) * 1995-08-11 1999-11-30 Hewlett-Packard Company Microprocessor having software controllable power consumption
US6233672B1 (en) * 1997-03-06 2001-05-15 Advanced Micro Devices, Inc. Piping rounding mode bits with floating point instructions to eliminate serialization
JPH10326129A (ja) * 1997-05-23 1998-12-08 Mitsubishi Electric Corp 半導体装置
AU2002246904A1 (en) 2000-10-27 2002-07-30 Arc International (Uk) Limited Method and apparatus for reducing power consuption in a digital processor
US7020789B2 (en) * 2002-12-31 2006-03-28 Intel Corporation Processor core and methods to reduce power by not using components dedicated to wide operands when a micro-instruction has narrow operands
TWI269228B (en) 2003-01-07 2006-12-21 Ibm Floating point unit, processor chip, and computer system to resolve data dependencies
US7496776B2 (en) * 2003-08-21 2009-02-24 International Business Machines Corporation Power throttling method and apparatus
US7290024B2 (en) * 2003-12-18 2007-10-30 Intel Corporation Methods and apparatus for performing mathematical operations using scaled integers

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06175823A (ja) * 1992-08-03 1994-06-24 Advanced Micro Devicds Inc 乗算装置の選択された部分へ電力を与えるための装置および電源から乗算装置の選択された部分への電力伝達を制御するための装置
JPH07146777A (ja) * 1993-11-24 1995-06-06 Matsushita Electric Ind Co Ltd 演算装置
JP2005078518A (ja) * 2003-09-02 2005-03-24 Renesas Technology Corp マイクロコントローラユニットおよびそのコンパイラ
US20050066205A1 (en) * 2003-09-18 2005-03-24 Bruce Holmer High quality and high performance three-dimensional graphics architecture for portable handheld devices

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016524748A (ja) * 2014-02-10 2016-08-18 ヴィア アライアンス セミコンダクター カンパニー リミテッド 過度の近似計算誤差から回復するプロセッサ
JP2017162487A (ja) * 2014-02-10 2017-09-14 ヴィア アライアンス セミコンダクター カンパニー リミテッド 過度の近似計算誤差から回復するプロセッサ

Also Published As

Publication number Publication date
EP1989614A2 (en) 2008-11-12
RU2412462C2 (ru) 2011-02-20
US8595279B2 (en) 2013-11-26
WO2007101216A2 (en) 2007-09-07
JP2015133111A (ja) 2015-07-23
JP2017062804A (ja) 2017-03-30
BRPI0708284A2 (pt) 2011-05-24
JP5113089B2 (ja) 2013-01-09
MX2008010873A (es) 2008-09-04
CA2641334C (en) 2015-07-21
KR100994862B1 (ko) 2010-11-16
CN101390045B (zh) 2011-12-21
CN101390045A (zh) 2009-03-18
JP6495220B2 (ja) 2019-04-03
US20070203967A1 (en) 2007-08-30
WO2007101216A3 (en) 2008-01-03
JP2012230684A (ja) 2012-11-22
CA2641334A1 (en) 2007-09-07
RU2008138564A (ru) 2010-04-10
KR20080098440A (ko) 2008-11-07

Similar Documents

Publication Publication Date Title
JP6495220B2 (ja) 選択可能な副精度に対して、低減された電力要求を有する浮動小数点プロセッサ
KR100955557B1 (ko) 선택가능 준정밀도를 가진 부동―소수점 프로세서
US6697832B1 (en) Floating-point processor with improved intermediate result handling
JP2002108606A (ja) スティッキービット生成回路及び乗算器
WO2012040632A2 (en) Multiply add functional unit capable of executing scale, round, getexp, round, getmant, reduce, range and class instructions
US20100125621A1 (en) Arithmetic processing device and methods thereof
US8019805B1 (en) Apparatus and method for multiple pass extended precision floating point multiplication
US8250126B2 (en) Efficient leading zero anticipator
JPH02227726A (ja) 制御方法
US8180822B2 (en) Method and system for processing the booth encoding 33RD term
US9753690B2 (en) Splitable and scalable normalizer for vector data
JP3793505B2 (ja) 演算器及びそれを用いた電子回路装置
JP2002023997A (ja) 浮動小数点演算のための選択ベースの丸め方法
Gopal Design and performance analysis of high throughput and low latency double precision floating point division on FPGA
THUAN A NOVEL QUOTIENT PREDICTION FOR FLOATING-POINT DIVISION
JP3100868B2 (ja) 浮動小数点数のための算術演算装置
MX2008004592A (en) Floating-point processor with selectable subprecision

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110208

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110509

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110516

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110608

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110615

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110708

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110715

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110808

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120207

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120607

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20120724

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121011

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151019

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5113089

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

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

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