JP2009512017A - 選択可能な下位精度を有する浮動小数点プロセッサ - Google Patents

選択可能な下位精度を有する浮動小数点プロセッサ Download PDF

Info

Publication number
JP2009512017A
JP2009512017A JP2008534695A JP2008534695A JP2009512017A JP 2009512017 A JP2009512017 A JP 2009512017A JP 2008534695 A JP2008534695 A JP 2008534695A JP 2008534695 A JP2008534695 A JP 2008534695A JP 2009512017 A JP2009512017 A JP 2009512017A
Authority
JP
Japan
Prior art keywords
floating point
bits
floating
processor
operator
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.)
Withdrawn
Application number
JP2008534695A
Other languages
English (en)
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 JP2009512017A publication Critical patent/JP2009512017A/ja
Withdrawn legal-status Critical Current

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/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
    • 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/30141Implementation provisions of register files, e.g. ports
    • 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/30189Instruction operation extension or modification according to execution mode, e.g. mode flag
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/3808Details concerning the type of numbers or the way they are handled
    • G06F2207/3812Devices capable of handling different types of numbers
    • G06F2207/3816Accepting numbers of variable word length

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • Nonlinear Science (AREA)
  • Complex Calculations (AREA)
  • Advance Control (AREA)
  • Electrotherapy Devices (AREA)
  • Hardware Redundancy (AREA)
  • Saccharide Compounds (AREA)
  • Measuring Or Testing Involving Enzymes Or Micro-Organisms (AREA)

Abstract

選択可能な下位精度を有する浮動小数点プロセッサ
選択可能な下位精度を有する浮動小数点プロセッサは浮動小数点フォーマット内の複数のビットを蓄積するように構成されたレジスタ、コントローラ、および浮動小数点数学演算子を含む。コントローラは、ユーザ入力に応じて、浮動小数点演算子のための下位精度を選択するように構成される。コントローラは、選択された下位精度に従って、ビットのサブセットを決定するように構成される。浮動小数点演算子はビットのサブセットのみを使用して浮動小数点演算を実行するように構成される。浮動小数点演算子内で使用されない過剰ビットは低漏洩状態内に押し込まれてもよい。浮動小数点演算に起因する出力値は選択された下位精度に切り詰められるかまたはまるめられる。

Description

[背景]
浮動小数点プロセッサはある数学的な計算、例えば、乗算、割算、三角関数、および指数関数、を高速で行う専門化された計算ユニットである。よって、強力な計算システムはしばしば、主プロセッサの部分としてかまたは共同プロセッサとして、浮動小数点プロセッサを組み込む。1数字の浮動小数点表示は典型的に符号部、指数、および仮数を含む。浮動小数点数の数値を見つけ出すために、仮数は指数の冪に累乗された底(base)(通常コンピュータでは2)によって掛け合わされる。符号は結果値にあてはめられる。
浮動小数点プロセッサの精度は仮数を表すために使用されたビット数によって定義される。仮数内のビットが多いほど、精度がより大きい。浮動小数点プロセッサの精度は通常特定のアプリケーション次第である。例えば、ANSI/IEEE−754標準(ほとんどすべてのコンピュータによってフォローされる)は1ビット符号、8ビット指数、および24ビット仮数(mantissa)を有する32ビットシングルフォーマットを指定する。仮数の23端数ビット(fraction bit)のみが32ビット符号化において蓄積され、偶数ビットは、2進ポイントの左に直接含まれる。IEEE−754はまた1ビット符号、11ビット指数、および53ビット仮数を有する64ビットダブルフォーマットをも指定する。シングル符号化に類似して、仮数の52端数ビットのみが64ビット符号化において蓄積され、偶数ビットは、2進ポイントの左に直接含まれる。より高い精度はより高い確度という結果になるが、しかし増大した電力消費という結果になって電算機的にはより強烈である。
浮動小数点プロセッサは典型的にシングルフォーマット、またはシングルとダブルフォーマットとの両者のいずれかによって提供された精度に限られるので、浮動小数点算術演算の性能は電算機的な非能率を引き起こすことができる。いくつかのアプリケーションはこれらのタイプの精度を必要とするかもしれない一方で、他のアプリケーションは必要としないかもしれない。例えば、いくつかの図形アプリケーションは16ビット仮数を必要とするだけかもしれない。これらの図形アプリケーションについては、16ビットの精度を越えた任意の確度は不必要な電力消費という結果になりがちである。これは、無線電話機、パーソナルディジタルアシスタント(PDA)、ラップトップ、ゲームコンソール、ページャ、およびカメラのような、電力が貴重である電池動作の装置において特に重要である。もしも1アプリケーションがある低減精度を常に必要とすることが分かれば浮動小数点プロセッサが設計されて、この低減精度を組み入れることができる。しかしながら、最も汎用のプロセッサに関して、代表的な場面はあるアプリケーション、例えば、低減精度が受け入れられる、3D図形を発生することであり、そして他のアプリケーション、例えば、より大きい精度が必要とされる、グローバルポジショニングシステム(GPS)機能を実施することである。よって、浮動小数点フォーマットの低減精度、または下位精度(subprecision)が選択可能である浮動小数点プロセッサについてこの分野において必要性がある。
[概要]
浮動小数点プロセッサの1つの実施形態では、浮動小数点プロセッサは1つまたはそれ以上の浮動小数点フォーマット内の複数のビットを蓄積するように構成された浮動小数点レジスタ、コントローラ、および少なくとも1つの浮動小数点演算子を含む。コントローラは浮動小数点演算用の指定された精度の下位精度を選択するように構成される。コントローラは、選択された下位精度に従って、複数のビットのサブセットを決定するようにさらに構成される。浮動小数点演算子は複数のビットのサブセットのみを使用して浮動小数点演算を実行するように構成される。
浮動小数点演算を実行することに関する方法の1つの実施形態では、方法は浮動小数点演算用の下位精度を選択することを含む。この方法は選択された下位精度に従って、浮動小数点レジスタ内に蓄積された複数のビットのサブセットを決定することを含む。この方法は複数のビットのサブセットのみを使用して浮動小数点演算を実行することを含む。
浮動小数点プロセッサの、および浮動小数点演算を実行することに関する方法の他の実施形態は、その中で浮動小数点プロセッサのおよび浮動小数点演算を実行することに関する方法のいろいろな実施形態が示され、そして図面の方法によって記述される、以下の詳細説明からこの分野の技術者には容易に明白になるであろうことは理解されねばならない。達成されるであろうように、浮動小数点プロセッサのおよび浮動小数点演算を実行することに関する方法の他のおよび異なる実施形態が可能であり、そしてこれらの実施形態を記述するために使用された詳細は多くの点で修正可能である。よって、図面および詳細説明は現存している実例として、そして限定的ではないとして評価されるべきである。
[詳細な記載]
添付された図面に関して下に述べられた詳細説明は本発明のいろいろな実施形態を記述することを意図しているが、しかし本発明がその中で実行できる実施形態のみを示そうとは思わない。詳細説明は、本発明の徹底的な理解を可能とするために、特別の詳細を含む。しかしながら、本発明がこれらの特別の詳細無しに実施されうることはこの分野の技術者によって理解されねばならない。いくつかの事例では、本発明の概念をより明瞭に図示するために、周知の構造およびコンポーネントはブロック図形式で示される。
浮動小数点プロセッサの少なくとも1つの実施形態では、1つまたはそれ以上の浮動小数点演算のための精度は指定されたフォーマットのそれから減少されることができる。数学的な演算を実行するために浮動小数点プロセッサに供給された命令はプログラマブル制御フィールドを含むことができる。制御フィールドは浮動小数点フォーマットの下位精度を選択するために使用されることができる。まさに特別の演算のために要する精度の総計に、浮動小数点フォーマットの下位精度を選択することによって、有意の電力保存のほかにより大きい効率が達成されることができる。
図1は選択可能な下位精度を有する浮動小数点プロセッサ(FPP)100の1例を示す機能ブロック図である。浮動小数点プロセッサ100は浮動小数点レジスタファイル(FPR)110;浮動小数点コントローラ(CTL)130;および浮動小数点数学演算子(FPO)140を含む。浮動小数点プロセッサ100は主プロセッサの部分、共同プロセッサ、あるいはバスまたは他のチャネルにより主プロセッサに接続された別個のエンティティとして実施されることができる。
浮動小数点レジスタ110は任意の適当な蓄積媒体であってもよい。図1に示された実施形態では、浮動小数点レジスタファイル110はいくつかのアドレス可能なレジスタロケーション115−1(REG1)、115−2(REG2)、…115−N(REGN)を含み、おのおの浮動小数点演算のためのオペランドを蓄積するように構成される。オペランドはメインメモリからのデータおよび/または以前の浮動小数点演算の結果を含むことができる。浮動小数点プロセッサに供給された命令はメインメモリへのおよびからのオペランドを移動するために使用されることができる。
図2は、図1とともに記述されたと同様に、選択可能な下位精度を有する浮動小数点プロセッサ100内で使用される浮動小数点レジスタファイル110のためのデータ構造の1例を図式的に示す。図2に図示された実施形態では、浮動小数点レジスタファイル110は、便宜上図2では各レジスタロケーションが参照数字200で参照されている16個のアドレス可能なレジスタを含む。各レジスタロケーション200はIEEE−754 32ビットシングルフォーマットにおける、32ビットの浮動小数点2進数を蓄積するように構成される。特に、各レジスタロケーション200は1ビット符号202、8ビット指数204、および23ビット端数206を含む。しかしながら、浮動小数点プロセッサ100の他の実施形態がIEEE32ビットシングルフォーマット(しかしIEEE64ビットダブルフォーマットに限定されないことを含む)と異なるようにフォーマットされる浮動小数点レジスタファイル210を含んでもよいこと、および/または異なる番号のレジスタロケーションを含むことは理解されねばならない。
図1に戻り参照して、浮動小数点コントローラ130は浮動小数点演算の下位精度を選択するように使用されることができる。制御レジスタ137は1つまたはそれ以上の命令の制御フィールド内に送信された下位精度選択ビットを負荷されることができる。後ほどより詳細に記述されるべき方法では、下位精度選択ビットはオペランドの精度を低下させ、そして浮動小数点プロセッサ100内の演算を指示するために浮動小数点コントローラ130によって使用されることができる。
浮動小数点演算子140は浮動小数点演算を行うように構成された1つまたはそれ以上のコンポーネントを含んでもよい。これらのコンポーネントは、浮動小数点加算および減算命令を実行するように構成された浮動小数点加算器(ADD)142、および浮動小数点乗算命令を実行するように構成された浮動小数点乗算器(MUL)144を含んでもよいが、しかしそれに限定されない。図1内に見られるように、浮動小数点演算子140内の計算ユニットADD142およびMUL144の各々は相互に、そして各計算ユニットおよび浮動小数点レジスタファイル110の間と同様に、多少演算子が計算ユニット間を転送されるのを認めるように浮動小数点レジスタファイル110に連結される。浮動小数点プロセッサ100の少なくとも1つの実施形態では、計算ユニット(ADD142およびMUL144)の任意の1つの出力は任意の他の計算ユニットの入力であってもよい。浮動小数点レジスタファイル110は、浮動小数点演算子140からの出力である結果と同様に、中間結果を蓄積するために使用されることができる。
加算器142は、浮動小数点フォーマットで標準の算術演算を実行するように構成された、従来の浮動小数点加算器であってもよい。乗算器144は、浮動小数点乗算を実行するように構成された、従来の浮動小数点乗算器であってもよい。乗算器144は、実例によって、ブースまたは修正ブースアルゴリズムを用いて実施でき、そして部分積を発生する部分積発生論理、および部分積を合計する多数のけた上げ保留加算器を含んでもよい。
簡単のため加算器142および乗算器144のみが図1には示されているが、浮動小数点演算子140はまた、この分野で知られている、そして他のタイプの浮動小数点数学演算を実行するように構成される(図示されない)他の計算ユニットを含んでもよい。これらの計算ユニットは下記を含んでもよいが、しかしこれに限定されない:浮動小数点割算命令を実行するように構成された浮動小数点除算器;浮動小数点平方根抽出命令を実行するように構成された浮動小数点平方根抽出器;浮動小数点指数命令を実行するように構成された浮動小数点指数演算子;対数関数を計算するための命令を実行するように構成された浮動小数点対数演算子;および三角関数を計算するための命令を実行するように構成された浮動小数点三角法演算子。
浮動小数点プロセッサ100の種々の実施形態は上に記録された計算ユニットの1つのみ、またはいくつか、あるいはすべてを含んでもよい。浮動小数点演算子もまた、実例によって、比較、および変換のような、より多くの基本演算を行うための(図示されない)他のユニットを含んでもよい。そのようなユニットはこの分野では周知であり、そして任意の適当な商業的に使用可能なユニットが使用されてもよい。例えば、加算器142および乗算器144は各々、入力演算子を一直線にするアライナー、結果を標準フォーマットにシフトするノーマライザー、および結果を指定されたラウンディングモードに基づいてまるめる(rounding)ラウンダーのような1つまたはそれ以上の周知の従来のサブユニットを含んでもよい。ビットインバータ、マルチプレクサ、カウンタ、および結合論理回路のような周知の回路エレメントもまた加算器142および乗算器144内に含まれる。
図1に図示されたように、浮動小数点演算子140は、要求された浮動小数点演算の各命令について、関連がある計算ユニット、即ち、加算器142または乗算器144が、1つまたはそれ以上のレジスタロケーションREG1,…,REGN内に蓄積された1つまたはそれ以上のオペランドを浮動小数点レジスタファイル110から受信することができるように、浮動小数点レジスタファイル110に接続される。レジスタファイル110からオペランドを選択して受信し、そして受信されたオペランドを計算ユニットによって認識された内部データフォーマットに変換する従来の浮動小数点フォーマットコンバータ(図示せず)は、浮動小数点レジスタファイル100におよび各計算ユニット(ADD142またはMUL144)に連結されることができる。
浮動小数点レジスタファイル110からオペランドを受信して、浮動小数点演算子140内の1つまたはそれ以上の計算ユニットは、浮動小数点コントローラ130によって選択された下位精度で、受信オペランド上の要求された浮動小数点演算の命令を実行できる。出力は、図1に示されたように、蓄積用の浮動小数点レジスタ110に送り返されることができる。
浮動小数点プロセッサ100の少なくとも1つの実施形態では、ソフトウェア選択可能モードは浮動小数点演算の精度を減少させるために使用されることができる。上で説明されたように、浮動小数点プロセッサ100に供給された命令は下位精度選択ビットを送信するためにプログラマブル制御フィールドを含んでもよい。下位精度選択ビットは、浮動小数点演算の間各オペランド用の仮数のビット長を順番に制御する、制御レジスタ137に書き込まれる。あるいは、下位精度選択ビットは、図1に示されたモニタスクリーン/キーボード/マウスコンビネーション150を限定されずに含む、任意の適切なユーザインターフェイスから直接に書き込まれることができる。浮動小数点プロセッサ100のもう1つの実施形態では、下位精度選択ビットは主プロセッサ、またはそれの運用システムから、制御レジスタ137に直接に書き込まれることができる。浮動小数点コントローラ130内に示される、制御レジスタ137は、孤立したエンティティ、もう1つに統合されたエンティティ、または中で分配された複数のエンティティとしてほかの場所に属してもよい。
下位精度選択ビットは浮動小数点演算の精度を減少させるために使用されることができる。これは種々様々な方法で達成されることができる。少なくとも1つの実施形態では、コントローラ130は浮動小数点演算子140に下位精度選択ビットによって指定された精度を満たすために必要な端数の最上位ビット(MSB)のみをレジスタファイル110から読み出させることができる。精度が高いほど、より多くの端数ビットが必要である。実例によって、もしもレジスタファイル内の各ロケーションが23ビット端数を含み、そして浮動小数点演算子のために必要とされる下位精度が10ビットであれば、端数の9MSBのみが必要とされる;隠れまたは整数ビットは第10番目になる。もしも1つまたはそれ以上の命令についての下位精度が16ビットに増加されれば、その時仮数の15MSBが必要とされるであろう。後者の場合には、端数の8最下位ビット(LSB)が単純に無視されてもよい。あるいは、コントローラ130は過剰ビット(excess bit)224に対応する蓄積レジスタエレメントをターンオフしてもよい。
追加の電力保存は、浮動小数点レジスタファイル110が動的読出し論理を用いて実施される時に実現されることができる。静的読出し論理と違って、動的読出し論理はビットラインをプリチャージすること、そしてその後選択されたメモリロケーション内のデータに基づいてそれらをディスチャージすることによってより速い読出し時間を可能にする。このように、動的読出し論理と共に、過剰仮数ビット(excess mantissa bit)に対応する読出し論理はプリチャージされる必要が無いので、電力は保存されることができる。浮動小数点プロセッサ100のある実施形態では、浮動小数点演算子140は各オペランドについて全端数を読み出す。コントローラ130はその後、浮動小数点演算を実行する前に浮動小数点演算子140に過剰仮数ビットを切り詰め(truncate)させることができる。浮動小数点プロセッサ100の他の実施形態では、コントローラ130は各演算子に関する仮数を要求された精度にまるめるために浮動小数点演算子140のフロントエンドにおける特別な処理(図示せず)を促すことができる。
もう1つの可能性のあるアプローチはコントローラ130に対して浮動小数点演算子140について各オペランドに関する過剰仮数ビットを低漏洩状態(low-leakage state)に押し込むことを促すことである。一般に多くの電子コンポーネント、そして特に半導体装置は、漏洩電流を経験する。漏洩電流は、例えば、金属酸化物半導体(MOS)トランジスタのゲート酸化物領域を横切って流れている電流のような、寄生電流である。トランジスタのサイズは小さくなり続け、そして1チップに統合されたトランジスタの数は増加するので、漏洩電流はより大きい関心事になる。複数のトランジスタから成る、論理ゲートの特定の構造次第で、1つの状態では他よりも多くの漏洩電流を有する傾向があるであろう。浮動小数点演算子140の特殊の論理ゲート配列は知られているので、浮動小数点演算子140は過剰仮数ビットを低漏洩状態、即ち、最小漏洩電流という結果になる状態、に押し込むために使用されることができる。この構造について後でより詳細に説明されるであろうように、浮動小数点演算子140は低漏洩状態に押し込められた過剰仮数ビットが浮動小数点演算の結果に影響を及ぼすことをさせないように構成される。
図3Aは、上述されたように、選択可能な下位精度を有する浮動小数点プロセッサを使用して実行される、浮動小数点加算を示す概念図である。簡単のため、加算器300内の2つの浮動小数点数302および304の加算が図示される。また、簡単のため、2つの浮動小数点数302および304は、いかなる移動も必要としないように、既に整列されていた。浮動小数点数302および304は、選択されたビット、即ち、加算演算のための仮数のMSB、および過剰ビットの数、即ち、加算演算では使用されないであろう仮数のLSBで示される。選択されたビットは・記号を使用して示され、そして浮動小数点数302については参照数字312で、および浮動小数点数304については参照数字314で示される。加算において使用されない過剰ビットは×記号を使用して図示され、そして浮動小数点数302については参照数字313で、および浮動小数点数304については参照数字315で示される。
過剰ビットがゼロ(0)に押し込まれる事態では、浮動小数点数加算演算はその結果に影響を及ぼすこと無しに行われることができる。しかしながら、加算器について過剰ビットが低漏洩状態に押し込まれるところでは、過剰ビットがその結果に影響を及ぼすのを防ぐために、あるステップが取られねばならない。実例によって、もしも低漏洩状態が1つ(1)ならば、過剰ビットの加算は選択されたビットにキャリーアウトを生成できる。少なくとも1つの実施形態では、浮動小数点数演算子は過剰ビットの加算の結果としてのいかなるキャリーアウトもブロックするか、あるいは選択されたビットを加算する時に、そのようなキャリーアウトを無視するように構成されてもよい。あるいは、過剰ビットの加算がキャリーアウトという結果にならないことを確かめるために十分な数の最上位過剰ビットがゼロ(0)に設定されてもよい。
図1に戻り参照して、浮動小数点加算演算は最大精度を有する結果を生成できる。コントローラ130は、結果をレジスタファイル110内に書き戻す前に、浮動小数点演算子140に結果の精度を適当なレベルに減少させるために使用されることができる。これは制御レジスタ137内の下位精度選択ビットにより必要とされる精度にこの結果をまるめることによって達成されることができる。あるいは、浮動小数点加算演算の結果として生ずる過剰仮数ビットが切り詰められてもよい。もしも浮動小数点演算子140へのオペランド入力内の過剰仮数ビットがゼロ(0)に設定されたならば、その時浮動小数点加算演算もまた過剰仮数ビット内にゼロ付きの結果を生成するであろう。しかしながら、もしもオペランド内の過剰端数ビットが切り詰められなかったかあるいは低漏洩状態に設定されたならば、浮動小数点加算演算の結果として生ずる過剰端数ビットはオールゼロ(0)ではありえない。この場合には、コントローラ130は、結果をレジスタファイル110内に書き戻す前に、すべての過剰端数ビットをゼロ(0)に設定するために浮動小数点演算子140にある処理(図示せず)を行わせる。浮動小数点演算子の少なくとも1つの実施形態では、結果は低漏洩状態に設定されている過剰端数ビットを有するレジスタファイルに書き戻されることができる。また、少なくとも1つの実施形態では、過剰端数ビットは、レジスタファイルを更新すること、それによってレジスタファイル内の電力を保存することを妨害されるかもしれない。
図3Bは、上述されたように、選択可能な下位精度を有する浮動小数点プロセッサ100を使用して行われる、乗算器(MUL)400内の浮動小数点乗算を示す概念図である。周知のように、2進数乗算は基本的に一連の桁送り値の加算である。もしもユーザによって選択された下位精度がN仮数ビットを供給するならば、(各々N仮数ビットを有する)2つの浮動数の乗算の結果として生ずる乗算器の生の出力値は2N出力仮数ビットまでを持つことができる。乗算器の結果が2N仮数ビットの場合は、N過剰ビットは結果がレジスタファイルに書き戻される前に除去されることができる。コントローラはこの機能をいろいろの方法で行うことができる。実例によって、コントローラは浮動小数点演算子にその結果を所望の精度に切り詰めさせることができる。あるいは、コントローラは浮動小数点演算子にその結果を所望のNビット精度にまるめさせることができる。いずれにしても、N−1端数ビットは過剰端数ビット位置にゼロを有するかまたは有さないレジスタファイルに書き込まれることができる。浮動小数点演算子の少なくとも1つの実施形態では、その結果は低漏洩状態に設定されている過剰端数ビットと共にレジスタファイルに書き戻されることができる。
この中に開示された実施形態に関して記述されたいろいろの実例となる論理ユニット、ブロック、モジュール、回路、エレメント、および/またはコンポーネントは、汎用プロセッサの部分である浮動小数点プロセッサ、ディジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)または他のプログラマブル論理コンポーネント、ディスクリートゲートまたはトランジスタ論理、ディスクリートハードウェアコンポーネント、あるいはそれによってこの中に記述された機能を実行するように設計された任意の組合わせにおいて実施または実行されることができる。汎用プロセッサはマイクロプロセッサであってもよいが、しかし代替例では、プロセッサは任意の従来のプロセッサ、コントローラ、マイクロコントローラ、またはステートマシンであってもよい。プロセッサはまた計算コンポーネントの組合わせ、例えば、DSPとマイクロプロセッサとの組合わせ、複数のマイクロプロセッサ、DSPコアとともに1つまたはそれ以上のマイクロプロセッサ、あるいは任意の他のそのような構成として実施されてもよい。
この中に開示された実施形態に関して記述された方法またはアルゴリズムはハードウェアで、プロセッサによって実行されるソフトウェアモジュールで、あるいはこの2つの組合わせで、直接に実施されることができる。ソフトウェアモジュールはRAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、着脱可能型ディスク、CD−ROM、またはこの分野で既知の任意の他の形式の蓄積媒体であってもよい。蓄積媒体は、プロセッサがこの蓄積媒体から情報を読み取り、そしてこれに情報を書き込むことができるようにプロセッサに連結されてもよい。代替案では、蓄積媒体はプロセッサに統合されてもよい。
開示された実施形態の前の説明はこの分野の任意の技術者が本発明を製作または使用することを可能とするように提供される。これらの実施形態へのいろいろな変更はこの分野の技術者にはたやすく明白であるだろうし、そしてこの中に定義された包括的な原理はこの発明の精神または範囲から逸脱すること無しに他の実施形態に適用されてもよい。したがって、本発明はこの中に示された実施形態に制限されるつもりはないが、しかしクレームと一致する全範囲が許容されるべきであり、ここにおいて単数での要素の引用は明確にそう表現しない限り“1つのおよび唯一の”を意味することを意図せず、むしろ“1つまたはそれ以上の”を意味する。この分野の通常の技術者に知られているかあるいは後で知られることになるこの開示の全体を通して記述されたいろいろな実施形態の要素との構造的なおよび機能的な等価物はすべて引用によってこの中に明確に組み込まれ、そしてクレームによって包含されることを意図する。さらに、この中に開示されなかった何物も、そのような開示がクレームに明白に記載されるかどうかにかかわらず公共に捧げられる意図はない。要素が慣用句“ための方法”を使用して明白に記載されるか、あるいは方法のクレームの場合には、要素が慣用句“ためのステップ”を使用して記載されなければ、どのクレーム要素も35U・S・C§112、第6節の規定の下で解釈されるべきではない。
選択可能な下位精度を有する浮動小数点プロセッサの1例を示す機能ブロック図。 選択可能な下位精度を有する浮動小数点プロセッサ内で使用される浮動小数点レジスタファイルの1例を図式的に示す図。 選択可能な下位精度を有する浮動小数点プロセッサを使用して実行される浮動小数点加算の1例を示す概念図。 選択可能な下位精度を有する浮動小数点プロセッサを使用して実行される浮動小数点乗算の1例を示す概念図。

Claims (31)

  1. 浮動小数点演算を実行する方法であって、
    浮動小数点演算のためのフォーマットを選択すること、
    該浮動小数点演算のための下位精度を選択すること、
    選択された下位精度に従い、浮動小数点レジスタ内に蓄積された複数のビットのサブセットを決定すること、なお、該浮動小数点レジスタは指数ビットを蓄積するように構成された指数セクションおよび端数ビットを蓄積するように構成された端数セクションを含み、そして該過剰ビットは端数ビットを含み、そして、
    該複数のビットの該サブセットのみを使用して該浮動小数点演算を実行すること
    を含む方法。
  2. 該複数のビットの該サブセットを決定することは、該サブセットから1つまたはそれ以上の過剰ビットを排除することを含む、請求項1記載の方法。
  3. 該過剰ビットを低漏洩状態に押し込むことをさらに含む、請求項2記載の方法。
  4. 該浮動小数点演算を実行することは、
    該選択された下位精度によって特徴づけられた入力番号を発生するために、該レジスタから該サブセット内に含まれた該ビットのみを読み取ること、および該過剰ビットのいずれをも読み取らないこと、そして
    複数の出力ビットを有する出力番号を発生するために、該入力番号上で該浮動小数点演算を実行すること
    を含む、請求項2記載の方法。
  5. 該出力番号から該選択された下位精度を超過する該出力ビットのいずれかを切り詰めることをさらに含み、それにより該選択された下位精度によって特徴づけられた切り詰められた出力番号を発生する、請求項4記載の方法。
  6. 該出力番号を該選択された下位精度にまるめることをさらに含む、請求項4記載の方法。
  7. 該サブセット内の該ビットを読み取ることは該サブセット内の該ビットラインのすべてをプリチャージすること、および該過剰ビットのすべてをディスチャージされた状態のままにすることを含む、請求項4記載の方法。
  8. 該浮動小数点演算を実行することは
    該レジスタから該複数のビットのすべてを読み取ること、
    読み取られた該ビットから、該過剰ビットのすべてを切り詰め、それにより該選択された下位精度によって特徴づけられた切り詰められた入力番号を発生すること、および
    複数の出力ビットを有する出力番号を発生するために該切り詰められた入力番号上で該浮動小数点演算を実行すること
    を含む、請求項2記載の方法。
  9. 該出力番号から該選択された下位精度を超過する該出力ビットのいずれかを切り詰めることをさらに含む、請求項8記載の方法。
  10. 該出力番号を該選択された下位精度にまるめることをさらに含む、請求項8記載の方法。
  11. 該浮動小数点演算を実行することはすべての過剰ビットをゼロに押し込むことを含む、請求項2記載の方法。
  12. 該レジスタは複数のレジスタエレメントを具備し、各レジスタエレメントは該複数のビットのそれぞれの1つに対応し、そして該浮動小数点演算を実行することは該過剰ビットの1つに対応する該レジスタエレメントのいずれかをターンオフすることを含む、請求項2記載の方法。
  13. 該浮動小数点演算を実行することは該過剰ビットのいずれかから該サブセット内のいずれかの1つへのキャリーアウトをブロックすることを含む、請求項2記載の方法。
  14. 該浮動小数点フォーマットは、
    1つのサインビット、8指数ビット、および23端数ビットを含むシングルフォーマット、
    1つのサインビット、11指数ビット、および52端数ビットを含むダブルフォーマット、および
    1つのサインビット、15指数ビット、および64仮数ビットを含む拡張フォーマット、
    の少なくとも1つを含む請求項1記載の方法。
  15. 該浮動小数点演算は、浮動小数点加算、浮動小数点減算、浮動小数点乗算、浮動小数点割算、浮動小数点平方根抽出、浮動小数点三角関数計算、浮動小数点指数関数計算、および浮動小数点対数関数計算の少なくとも1つを含む、請求項1記載の方法:。
  16. 浮動小数点プロセッサであって、
    浮動小数点フォーマット内の複数のビットを蓄積するように構成されたレジスタ、
    浮動小数点演算のための下位精度を選択するように構成された、および該選択された下位精度に従って該複数のビットのサブセットを決定するようにさらに構成されたコントローラ、および
    該複数のビットの該サブセットのみを使用して該浮動小数点演算を実行するように構成された浮動小数点演算子
    を具備する浮動小数点プロセッサ。
  17. 該コントローラはユーザ入力に応じて該下位精度を選択するようにさらに構成された、請求項16記載の浮動小数点プロセッサ。
  18. 該コントローラは該サブセットから1つまたはそれ以上の過剰ビットを排除することによって該ビットの該サブセットを決定するようにさらに構成される、請求項16記載の浮動小数点プロセッサ。
  19. 該浮動小数点レジスタは指数ビットを蓄積するように構成された指数セクションおよび端数ビットを蓄積するように構成された端数セクションを具備し、および
    該過剰ビットは端数ビットを具備する、
    請求項18記載の浮動小数点プロセッサ。
  20. 該コントローラは該過剰ビットを低漏洩状態に押し込むようにさらに構成される、請求項18記載の浮動小数点プロセッサ。
  21. 該浮動小数点演算子は、
    浮動小数点加算および減算を実行するように構成された浮動小数点加算器、
    浮動小数点乗算を実行するように構成された浮動小数点乗算器、
    浮動小数点割算を実行するように構成された浮動小数点除算器、
    浮動小数点平方根抽出を実行するように構成された浮動小数点平方根抽出器、
    浮動小数点指数関数を計算するように構成された浮動小数点指数演算子、
    浮動小数点対数関数を計算するように構成された浮動小数点対数演算子、および
    浮動小数点三角関数を計算するように構成された浮動小数点三角関数演算子下記の少なくとも1つを具備する、
    請求項16記載の浮動小数点プロセッサ。
  22. 該浮動小数点演算子は該選択された下位精度によって特徴づけられた1つまたはそれ以上の浮動小数点番号を入力として受け入れるように、該レジスタから該サブセット内の該ビットのみを読み取るように、および該過剰ビットのいずれをも読み取らないようにさらに構成され、および
    該浮動小数点演算子は複数の出力ビットを有する出力番号を発生するように1つまたはそれ以上の入力浮動小数点番号上で該浮動小数点演算を実行するようにさらに構成される、
    請求項18記載の浮動小数点プロセッサ。
  23. 該浮動小数点演算子は該出力番号から該選択された下位精度を超過する該出力ビットのいずれかを切り詰めるようにさらに具備され、それにより該選択された下位精度によって特徴づけられた切り詰められた出力番号を発生する、
    請求項22記載の浮動小数点プロセッサ。
  24. 該浮動小数点演算子は該出力番号を該選択された下位精度にまるめるようにさらに構成される、請求項22記載の浮動小数点プロセッサ。
  25. 該浮動小数点演算子は該サブセット内の該ビットのすべてをプリチャージするように、および該過剰ビットのすべてをディスチャージされた状態のままにするようにさらに構成される、請求項22記載の浮動小数点プロセッサ。
  26. 該浮動小数点演算子は該レジスタから該レジスタ内に蓄積された該複数のビットのすべてを読み取るようにさらに構成され、
    該浮動小数点演算子は読み取られた該ビットから、該過剰ビットのすべてを切り詰めるようにさらに構成され、それにより該選択された下位精度によって特徴づけられた切り詰められた入力番号を発生し、および
    該浮動小数点演算子は複数の出力ビットを有する出力番号を発生するために該切り詰めるられた入力番号上で該浮動小数点演算を実行するようにさらに構成される、請求項18記載の浮動小数点プロセッサ。
  27. 該浮動小数点演算子は該出力番号から該選択された下位精度を超過する該出力ビットのいずれかを切り詰めるようにさらに構成される、請求項26記載の浮動小数点プロセッサ。
  28. 該浮動小数点演算子は該出力番号を該選択された下位精度にまるめるようにさらに構成される、請求項26記載の浮動小数点プロセッサ。
  29. 該コントローラはすべての過剰ビットをゼロに押し込むようにさらに構成される、請求項18記載の浮動小数点プロセッサ。
  30. 該レジスタは複数のレジスタエレメントを具備し、各レジスタエレメントは該複数のビットのそれぞれの1つに対応し、そして該コントローラは該過剰ビットの1つに対応する該レジスタエレメントのいずれかをターンオフするようにさらに構成される、請求項18記載の浮動小数点プロセッサ。
  31. 該コントローラはキャリングオーバから該サブセット内のビットの1つへの該過剰ビットのいずれかをブロックオフするように構成される、請求項18記載の浮動小数点プロセッサ。
JP2008534695A 2005-10-05 2006-10-04 選択可能な下位精度を有する浮動小数点プロセッサ Withdrawn JP2009512017A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/244,492 US7725519B2 (en) 2005-10-05 2005-10-05 Floating-point processor with selectable subprecision
PCT/US2006/039063 WO2007044493A1 (en) 2005-10-05 2006-10-04 Floating-point processor with selectable subprecision

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2011222834A Division JP5175379B2 (ja) 2005-10-05 2011-10-07 選択可能な下位精度を有する浮動小数点プロセッサ

Publications (1)

Publication Number Publication Date
JP2009512017A true JP2009512017A (ja) 2009-03-19

Family

ID=37575238

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2008534695A Withdrawn JP2009512017A (ja) 2005-10-05 2006-10-04 選択可能な下位精度を有する浮動小数点プロセッサ
JP2011222834A Expired - Fee Related JP5175379B2 (ja) 2005-10-05 2011-10-07 選択可能な下位精度を有する浮動小数点プロセッサ

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2011222834A Expired - Fee Related JP5175379B2 (ja) 2005-10-05 2011-10-07 選択可能な下位精度を有する浮動小数点プロセッサ

Country Status (10)

Country Link
US (1) US7725519B2 (ja)
EP (1) EP1934710B8 (ja)
JP (2) JP2009512017A (ja)
KR (1) KR100955557B1 (ja)
CN (1) CN101317152B (ja)
AT (1) ATE459040T1 (ja)
DE (1) DE602006012523D1 (ja)
ES (1) ES2340527T3 (ja)
IL (1) IL190644A0 (ja)
WO (1) WO2007044493A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107077417A (zh) * 2014-11-03 2017-08-18 Arm 有限公司 有效性配准

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8938485B1 (en) * 2008-02-12 2015-01-20 Nvidia Corporation Integer division using floating-point reciprocal
US20110004644A1 (en) * 2009-07-03 2011-01-06 Via Technologies, Inc. Dynamic floating point register precision control
TWI489374B (zh) * 2009-10-26 2015-06-21 Via Tech Inc 判斷系統及方法
JP5426451B2 (ja) * 2010-03-30 2014-02-26 アズビル株式会社 位相出力回路
US8918446B2 (en) * 2010-12-14 2014-12-23 Intel Corporation Reducing power consumption in multi-precision floating point multipliers
US9128697B1 (en) * 2011-07-18 2015-09-08 Apple Inc. Computer numerical storage format with precision type indicator
WO2013095460A1 (en) * 2011-12-21 2013-06-27 Intel Corporation Perceptual lossless compression of image data to reduce memory bandwidth and storage
KR101482828B1 (ko) * 2011-12-21 2015-01-14 인텔 코오퍼레이션 압축되지 않은 비디오 인터커넥트들 상의 송신을 위한 이미지 데이터의 지각적 무손실 압축
CN109086073B (zh) * 2011-12-22 2023-08-22 英特尔公司 浮点舍入处理器、方法、系统和指令
US9792087B2 (en) * 2012-04-20 2017-10-17 Futurewei Technologies, Inc. System and method for a floating-point format for digital signal processors
US8971451B2 (en) * 2012-12-11 2015-03-03 Futurewei Technologies, Inc. Efficient baseband signal processing system and method
GB2528497B (en) * 2014-07-24 2021-06-16 Advanced Risc Mach Ltd Apparatus And Method For Performing Floating-Point Square Root Operation
GB2539265B (en) * 2015-06-12 2020-07-29 Advanced Risc Mach Ltd Apparatus and method for controlling rounding when performing a floating point operation
FR3063855B1 (fr) * 2017-03-08 2019-04-12 Areva Np Circuit logique programmable de commande d'une installation electrique, en particulier une installation nucleaire, dispositif et procede de commande associes
CN107291419B (zh) * 2017-05-05 2020-07-31 中国科学院计算技术研究所 用于神经网络处理器的浮点乘法器及浮点数乘法
US10725739B2 (en) 2017-06-23 2020-07-28 International Business Machines Corporation Compiler controls for program language constructs
US10514913B2 (en) 2017-06-23 2019-12-24 International Business Machines Corporation Compiler controls for program regions
US10684852B2 (en) 2017-06-23 2020-06-16 International Business Machines Corporation Employing prefixes to control floating point operations
US10310814B2 (en) 2017-06-23 2019-06-04 International Business Machines Corporation Read and set floating point control register instruction
US10740067B2 (en) 2017-06-23 2020-08-11 International Business Machines Corporation Selective updating of floating point controls
US10379851B2 (en) 2017-06-23 2019-08-13 International Business Machines Corporation Fine-grained management of exception enablement of floating point controls
US10481908B2 (en) 2017-06-23 2019-11-19 International Business Machines Corporation Predicted null updated
CN108170402A (zh) * 2017-11-24 2018-06-15 中核控制系统工程有限公司 一种基于fpga的浮点数对数函数实现方法
CN110825436B (zh) * 2018-08-10 2022-04-29 昆仑芯(北京)科技有限公司 应用于人工智能芯片的计算方法和人工智能芯片
US11455766B2 (en) * 2018-09-18 2022-09-27 Advanced Micro Devices, Inc. Variable precision computing system
GB2580153B (en) * 2018-12-21 2021-01-06 Graphcore Ltd Converting floating point numbers to reduce the precision
CN116594589B (zh) 2019-12-31 2024-03-26 华为技术有限公司 浮点数乘法计算的方法、装置和算术逻辑单元
US11188329B1 (en) * 2020-06-24 2021-11-30 Micron Technology, Inc. Dynamic precision bit string accumulation

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09222991A (ja) * 1996-02-14 1997-08-26 Nec Corp 加算方法および加算器
JPH11119979A (ja) * 1997-10-16 1999-04-30 Toshiba Corp 並列加減算回路
US20050066205A1 (en) * 2003-09-18 2005-03-24 Bruce Holmer High quality and high performance three-dimensional graphics architecture for portable handheld devices
JP2005101540A (ja) * 2003-07-28 2005-04-14 Elixent Ltd 半導体回路の漏れ電流を低減するための方法とシステム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4318014A (en) 1979-07-27 1982-03-02 Motorola, Inc. Selective precharge circuit for read-only-memory
JPH06282412A (ja) * 1993-03-29 1994-10-07 Fuji Xerox Co Ltd 浮動小数点演算装置
US5764555A (en) * 1996-03-13 1998-06-09 International Business Machines Corporation Method and system of rounding for division or square root: eliminating remainder calculation
US6253299B1 (en) * 1999-01-04 2001-06-26 International Business Machines Corporation Virtual cache registers with selectable width for accommodating different precision data formats
KR100325430B1 (ko) * 1999-10-11 2002-02-25 윤종용 상이한 워드 길이의 산술연산을 수행하는 데이터 처리장치 및 그 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09222991A (ja) * 1996-02-14 1997-08-26 Nec Corp 加算方法および加算器
JPH11119979A (ja) * 1997-10-16 1999-04-30 Toshiba Corp 並列加減算回路
JP2005101540A (ja) * 2003-07-28 2005-04-14 Elixent Ltd 半導体回路の漏れ電流を低減するための方法とシステム
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 (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107077417A (zh) * 2014-11-03 2017-08-18 Arm 有限公司 有效性配准

Also Published As

Publication number Publication date
KR100955557B1 (ko) 2010-04-30
EP1934710A1 (en) 2008-06-25
KR20080055985A (ko) 2008-06-19
IL190644A0 (en) 2008-12-29
JP5175379B2 (ja) 2013-04-03
ES2340527T3 (es) 2010-06-04
ATE459040T1 (de) 2010-03-15
JP2012069123A (ja) 2012-04-05
ES2340527T8 (es) 2020-03-20
CN101317152B (zh) 2011-04-27
US7725519B2 (en) 2010-05-25
CN101317152A (zh) 2008-12-03
DE602006012523D1 (de) 2010-04-08
US20070078923A1 (en) 2007-04-05
WO2007044493A1 (en) 2007-04-19
EP1934710B8 (en) 2020-10-28
EP1934710B1 (en) 2010-02-24

Similar Documents

Publication Publication Date Title
JP5175379B2 (ja) 選択可能な下位精度を有する浮動小数点プロセッサ
JP6495220B2 (ja) 選択可能な副精度に対して、低減された電力要求を有する浮動小数点プロセッサ
US6697832B1 (en) Floating-point processor with improved intermediate result handling
US7346643B1 (en) Processor with improved accuracy for multiply-add operations
EP3447634B1 (en) Non-linear function computing device and method
US6996596B1 (en) Floating-point processor with operating mode having improved accuracy and high performance
US8060551B2 (en) Method and apparatus for integer division
US7725522B2 (en) High-speed integer multiplier unit handling signed and unsigned operands and occupying a small area
US6941334B2 (en) Higher precision divide and square root approximations
JP4273071B2 (ja) 除算・開平演算器
Tsen et al. A combined decimal and binary floating-point multiplier
JPH0687219B2 (ja) 制御方法
US20090172054A1 (en) Efficient leading zero anticipator
Lang et al. Division unit for binary integer decimals
JP2002023997A (ja) 浮動小数点演算のための選択ベースの丸め方法
MX2008004592A (en) Floating-point processor with selectable subprecision
THUAN A NOVEL QUOTIENT PREDICTION FOR FLOATING-POINT DIVISION
Sasikumar et al. Efficient FPGA Floating-Point Multiplier with ATM and XOR-MUX
Aitmyrza et al. ARITHMETIC OPERATIONS OVER FLOATING-POINT NUMBERS
SWETHA et al. VLSI Implementation of a High Speed Single Precision Floating Point Multiplier using Verilog
Villalba-Moreno Digit recurence division under HUB format

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100518

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100805

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100812

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20101018

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20101025

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101118

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110607

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110907

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110914

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20111206

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20120207