Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP5086348B2 - マルチステージ浮動小数点アキュームレータ - Google Patents
[go: Go Back, main page]

JP5086348B2 - マルチステージ浮動小数点アキュームレータ - Google Patents

マルチステージ浮動小数点アキュームレータ Download PDF

Info

Publication number
JP5086348B2
JP5086348B2 JP2009525707A JP2009525707A JP5086348B2 JP 5086348 B2 JP5086348 B2 JP 5086348B2 JP 2009525707 A JP2009525707 A JP 2009525707A JP 2009525707 A JP2009525707 A JP 2009525707A JP 5086348 B2 JP5086348 B2 JP 5086348B2
Authority
JP
Japan
Prior art keywords
floating point
operand
operable
adder
accumulator
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.)
Expired - Fee Related
Application number
JP2009525707A
Other languages
English (en)
Other versions
JP2010501938A (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 JP2010501938A publication Critical patent/JP2010501938A/ja
Application granted granted Critical
Publication of JP5086348B2 publication Critical patent/JP5086348B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/50Adding; Subtracting
    • G06F7/505Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
    • G06F7/509Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination for multiple operands, e.g. digital integrators
    • G06F7/5095Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination for multiple operands, e.g. digital integrators word-serial, i.e. with an accumulator-register
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • G06F7/485Adding; Subtracting
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/01Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/50Adding; Subtracting
    • G06F7/505Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
    • G06F7/509Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination for multiple operands, e.g. digital integrators
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/386Special constructional features
    • G06F2207/3884Pipelining
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/01Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
    • G06F5/012Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising in floating-point computations
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/49936Normalisation mentioned as feature only

Landscapes

  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Optimization (AREA)
  • General Engineering & Computer Science (AREA)
  • Nonlinear Science (AREA)
  • Advance Control (AREA)
  • Complex Calculations (AREA)
  • Telephone Function (AREA)
  • Secondary Cells (AREA)

Description

本開示は、一般に、電気に関し、より具体的には、浮動小数点アキュームレータに関する。
デジタルプロセッサでは、数値データは、整数或いは浮動小数点表現を使用して表わされる。浮動小数点表現は、多くの分野において使用されている。広範囲の値を表わすことができる能力と、いくつかの演算オペレーションの操作の容易性とがあるからである。浮動小数点表現は、典型的には、3つのコンポーネントを含む。符号ビット(sign)、しばしば有効として言及される仮数(mant)及び指数(exp)として言及される。浮動小数点値は、(-1)sign×mant×2expとして表わされる。
浮動小数点累積は、グラフィック、デジタル信号処理などの種々の応用に一般的に実行される演算オペレーションである。浮動小数点累積は、典型的には、(1)入力浮動小数点値及び累積された浮動小数点値を受信し、(2)浮動小数点の指数に基づき、2つの浮動小数点値の仮数を位置合わせし、(3)2つの位置合わせされた仮数を加算し、(4)正規化のためにその結果をポスト位置合わせする。各ステップ2、3、4は、実行するためのいくらかの時間を必要とする。これらステップの総時間は、プロセッサが動作できる速度に限定される。
より速い速度で動作可能なマルチステージ浮動小数点アキュームレータが、ここにおいて述べられる。マルチステージ浮動小数点アキュームレータは、浮動小数点アキュームレーションのステップを複数のステージに分割する。各ステージの遅れは、浮動小数点アキュームレーションの全てのステップの総遅れの何分の一かである。このことは、マルチステージ浮動小数点アキュームレータが高速クロックスピードで動作することを許す。
本実施の形態では、浮動小数点アキュームレータは、少なくとも2つのステージを有する。各ステージは、機能的なロジック及びそのステージの少なくとも1つの結果を格納する少なくとも1つのラッチを有する。浮動小数点アキュームレータは、少なくとも2クロックサイクルより早くから累積結果を使用して、複数の浮動小数点の値の累積を実行する。
実施の形態においては、浮動小数点アキュームレータは2つのステージを有する。実施の形態では、第1のステージは3つのオペランドアライメントユニット、2つの乗算器及び3つのラッチを有する。3つのオペランドアライメントユニットは、現在の浮動小数点値、以前の浮動小数点値及び2クロックサイクル前から累積された以前の値で動作する。第1の乗算器は、ゼロ或いは以前の浮動小数点値を第2のオペランドアライメントユニットへ提供する。第2の乗算器は、ゼロ或いは以前の浮動小数点値を第3のオペランドアライメントユニットへ提供する。3つのラッチは、3−オペランド加算器に接続されている。実施の形態においては、第2のステージは、3−オペランド加算器を有し、この3−オペランド加算器は、3つのオペランドアライメントユニット、3−オペランド加算器に接続されたラッチ及びラッチに接続されたポストアライメントユニットによって生成されたオペランドを加算する。
マルチステージ浮動小数点アキュームレータは、乗算器と組み合わせて使用され、乗算及び累算(MAC)オペレーションを実行し、一般に、ドットプロダクト、フィルタリングなどに使用される。
本開示の種々の観点及び実施の形態は、以下に詳細に説明される。
本開示の観点及び実施の形態が、同じ参照数字が全体を通じて対応して識別される図面と関連して詳細な説明からより明らかにされる。
図1は、単一ステージ浮動小数点アキュムレータを示す。 図2は、2ステージ浮動小数点アキュムレータの実施の形態を示す。 図3は、2ステージ浮動小数点アキュムレータの他の実施の形態を示す。 図4は、乗算及び累積(MAC)ユニットを示す。 図5は、グラフィックプロセッサのブロック図を示す。 図6は、無線装置のブロック図を示す。
”例”という言葉は、ここでは”例、事例、イラストレーションとして、”の意で使用される。ここにおいて述べられる”例”としてのいくつかの実施の形態或いはデザインは、他の実施の形態或いはデザインよりも好ましく、或いは有利なように構成される必要はない。
一つのステージにおける浮動小数点累積は、下記のように表わされる。
Figure 0005086348
ここで、
nは累積される浮動小数点値のインデックス、
Xnは累積されるn次浮動小数点値、X0=0であり、
Nは累積される浮動小数点値の総数である。
一般的には、Nはいくつかの正の整数値である。
式(1)は、以下のように書き直される。
Figure 0005086348
ここで、AはA0=0でXからXについて累積された結果である。最終的な累積された結果Aは、XからXまでの全てのN個の浮動小数点値が累積された後に得られる。
図1は、単一ステージ浮動小数点アキュームレータ100のブロック図である。ラッチ110は、入力オペランドとしても参照される入力小数点値を受信し、ラッチし、累積される現在の浮動小数点値Xとしてのラッチされた値を提供する。乗算器(Mux)112は累積結果及びゼロ(0.0)を2つの入力で受信する。乗算器112は、累積が開始され、或いは禁止(disable)された場合にゼロを供給し、累積が続いている場合には、累積結果を供給する。乗算器112の出力は、式(2)における前の累積値An−1であり、Xと加算される。
オペランドアライメントユニット120、122は、それぞれオペランドX及びAn−1を受信する。ユニット120、122は、例えば、1つのオペランドの仮数をシフトし、2つのオペランドの指数が等しくなるまで、その仮数を調整することによって、2つのオペランドの仮数を位置合わせ(align)する。2−オペランド加算器140は、次に、2つの位置合わせされた仮数を加算し、結果仮数及び指数を提供する。ラッチ150は、加算器140の出力を受信し、ラッチする。ポストアライメントユニット160は、必要であれば、結果仮数をシフトし、指数を調整し、1.xxx−−xxxのフォーマットを有する正規化された仮数を得る。ここで、各”x”は1つのバイナリビットを表わす。ユニット160は、正規化された仮数を及び指数を累積結果として提供する。
浮動小数点アキュームレータ100は、2つの信号経路を有する。1つはXの第1の信号経路であり、1つはAn−1の第2の信号経路である。第1の信号経路の総遅れは、ラッチ110からラッチ150までであり、オペランドアライメントユニット120及び2−オペランド加算器140の遅れによって決定される。第2の信号経路の総遅れは、ポストアライメントユニット160、乗算器112、オペランドアライメントユニット122及び2−オペランド加算器140の遅れによって決定される。第2の信号経路の総遅れは、第1の信号経路の総遅れよりも長く、どのくらい速くラッチ110、150がクロックされることができるかを決定する。特に、ラッチのクロックスピードは、各クロック期間が第2の信号経路の総遅れよりも長くなるように選択される。この総遅れは、比較的長く、故に、浮動小数点アキュームレータ100のクロックスピードを制限する。
浮動小数点アキュームレータ100は、高性能及び高速演算論理ユニット(ALU)において使用される。浮動小数点累積が1つのクロック期間で完了しない場合には、特別のデータ依存性がALUを利用するデータパイプライン間に導入される。データパイプラインは、浮動小数点アキュームレータ100が累積結果を提供するまで、待機されることが必要とされる。このデータ依存性は、性能、特に、浮動小数点累積を大量に実行する用途にインパクトを与える。
マルチステージ浮動小数点アキュームレータは、動作速度を改善するために使用される。マルチステージ浮動小数点アキュームレータは、浮動小数点累積のステップを複数のステージに分ける。各ステージの遅れは、累積のための全てのステップの総遅れの小数部(fraction)である。このことは、マルチステージ浮動小数点アキュームレータより速いクロックスピードで動作することを可能にする。
2つのステージにおける浮動小数点累積は、以下のように表わされる。
Figure 0005086348
式(3)は、以下のように書き直すことができる。
Figure 0005086348
図2は、2つのステージの浮動小数点アキュームレータ200の実施の形態のブロック図である。ラッチ210は、入力浮動小数点値を受信し、ラッチし、累積される現在の浮動小数点値Xを提供する。乗算器212は、以前のオペランド及びゼロを受信し、累積がスタートしている場合、或いは禁止されている場合にはゼロを供給し、累積が続いている場合には、以前のオペランドを供給する。乗算器212の出力は、式(4)におけるXn−1であり、Xと加算される。乗算器214は、累積結果及びゼロを受信し、累積が最後の2クロック期間内にスタートし、或いは禁止されている場合に、ゼロを供給し、累積結果が続いている場合には累積結果を提供する。乗算器214の出力は、式(4)における以前の累積値An−2であり、Xと加算される。浮動小数点アキュームレータ200は、2クロックサイクル遅れを有するパイプラインである。従って、ユニット260からの現在の累積結果は、2クロックサイクルより前の以前の累積値である。
オペランドアライメントユニット220、222、224は、それぞれオペランドX,Xn−1,An−2を受信する。ユニット220、222、224は、3つのオペランドの仮数の位置合わせする。この位置合わせは、例えば、必要であれば、3つの全てのオペランドが等しくなるまで、1つ以上のオペランドの1つ以上の仮数をシフトし、それらの指数を調整することにより行なわれる。ラッチ230、232、234は、それぞれユニット220、222、224の出力を受信し、ラッチする。3−オペランド加算器240は、ラッチ230、232、234からの3つの位置合わせされた仮数を合計し、結果の仮数及び指数を供給する。ラッチ250は加算器240の出力を受信し、ラッチする。ポストアライメントユニット260は、必要であれば、結果の仮数をシフトし、指数を調整し、正規化された仮数を取得する。ユニット260は、累積結果を供給する。
浮動小数点アキュームレータ200は、2つのステージを有する。第1のステージは、乗算器212からラッチ234までを含むものとして考える。第2のステージは、3−オペランド加算器240、ラッチ250及びポストアライメントユニット260を含むものとして考える。一般的に、各ステージは、機能ロジック及び少なくとも1つのラッチ或いはレジスタを有し、これらは、ステージ内のどこにでも配置することができる。ラッチは、ステージの中間及び/又は最終結果を格納するために使用される。各ステージは、各クロック期間毎に更新される。
浮動小数点アキュームレータ200は3つの信号経路を有する。Xの第1の信号経路、Xn−1の第2の信号経路、An−2の第3の信号経路である。第1の信号経路は、2つのセグメントに分けられる。すなわち、(1) ラッチ210からラッチ230までの第1のセグメントであり、オペランドアライメントユニット220の遅れによって決定される遅れを有する。(2) ラッチ230からラッチ250までの第2のセグメントであり、3−オペランド加算器240の遅れによって決定される遅れを有する。第2の信号経路は、(1) 乗算器212からラッチ232までの第1のセグメントであり、乗算器212及びオペランドアライメントユニット222の遅れによって決定される遅れを有し、(2) ラッチ232からラッチ250までの第2のセグメント、に分けられる。第3の信号経路は、(1) ラッチ250からラッチ234までの第1のセグメントであり、ポストアライメントユニット260、乗算器214及びオペランドアライメントユニット224の遅れによって決定される遅れを有し、(2)ラッチ234からラッチ250までの第2のセグメント、に分けられる。各3つの信号経路は、従って、2つのセグメントに分けられる。第2のセグメントは、全ての3つの信号経路で同じある。
浮動小数点アキュームレータ200は、従って、4つの異なるセグメントを有する。3つのオペランドの3つの第1のセグメントと、共通の第2のセグメントである。全ての4つのセグメント最も長い遅れは、どのくらい速くラッチをクロックできるかを決定する。この最も長い遅れは、浮動小数点アキュームレータ100の第2の信号経路総遅れよりもかなり短い。したがって、浮動小数点アキュームレータ200は、浮動小数点アキュームレータ100よりもより高いクロックで動作可能である。
表1は、XからXまでのN個の浮動小数点値の累積のラッチ210、乗算器212、214及びポストアライメントユニット260の出力を示す。ラッチ210は、各クロックサイクル1からNまでの現在の浮動小数点値を供給する。乗算器212は、クロックサイクル1についてゼロを供給し、各クロックサイクル2からNについて以前の浮動小数点値を提供する。乗算器214は、各クロックサイクル1、2についてゼロを供給し、各クロックサイクル3からNについて以前の累積値を供給する。クロックサイクル3及びその後について、ユニット260の出力は、同じクロックサイクルにおける乗算器214の出力に表われる。表1における”−”は"don't care"を示し、どのような値でも良い。
Figure 0005086348
図2及び表1に示すように、浮動小数点アキュームレータ200は、2クロックサイクル遅れを有するパイプラインである。最終結果Aは、最後の浮動小数点値Xを浮動小数点アキュームレータ200を供給した2クロックサイクル後に取得される。
浮動小数点アキュームレータ200は、2クロックサイクル早くから累積結果AN−2を使用する。これは、累積結果についての信号経路をより小さい遅れを有する2つのセグメントに分けられることを可能にする。この分割は、また、図1の2−オペランド加算器140よりも少し長い遅れを有する3−オペランド加算器240を使用する浮動小数点アキュームレータ200という結果になる。
クロックスピードの可能性のある改良は、特定の例によって図示される。この例においては、浮動小数点アキュームレータ100、200内において、乗算器112、214は0.2ナノ秒(ns)の遅れを有し、オペランドアライメントユニット122、224は1.0nsの遅れを有し、2−オペランド加算器140は2.0nsの遅れを有し、3−オペランド加算器240は2.4nsの遅れを有し、ポストアライメントユニット160、260は1.0nsの遅れを有する。浮動小数点アキュームレータ100については、AN−1の信号経路が4.2nsの総遅れを有し、アキュームレータ100は、238メガヘルツ(MHz)までのクロックスピードで動作可能である。浮動小数点アキュームレータ200については、第1のセグメントの遅れは、2.2nsであり、第2のセグメントの遅れは、2.4nsである。浮動小数点アキュームレータ200は、次に、416MHzまでのクロックスピードで動作可能である。改良の程度は、他の設計では異なる。
図2は、累積結果についての第3の信号経路を分割する特定の実施の形態を示す。第3の信号経路は、さらに、他の方法で分割することができる。例えば、ラッチ250はポストアライメントユニット260の後に(前の代わりに)配置しても良い。第1のセグメント、次に、乗算器214及びオペランドアライメントユニット224を有し、第2のセグメントは3−オペランド加算器240及びポストアライメントユニット260を有する。一般的に、第3の信号経路は、2つのセグメントの遅れが出来る限り一致するように分割されるので、2つのセグメントの遅れの間の差は出来る限り小さくなる。
図3は、2ステージ浮動小数点アキュームレータ300の実施の形態のブロック図である。浮動小数点アキュームレータ300は、乗算器212、214以外の図2における浮動小数点アキュームレータ200の全てのユニットを含む。ラッチ230の出力は、直接オペランドアライメントユニット222に供給される。ポストアライメントユニット260の出力は、直接オペランドアライメントユニット224に供給される。ラッチ230、232、234、250は、累積が開始された時に、これらラッチをゼロにリセットするリセット信号を受信する。この実施の形態は、乗算器212、214及び、これら乗算器の関連する遅れを取り除き、浮動小数点アキュームレータ300をより高いクロック速度で動作させることを可能にする。
浮動小数点累積は、他の機能と関連して行なわれる。例えば、乗算及び累積(MAC)動作は、通常種々の応用に使用される。2つのステージの乗算及び累積は、以下のように表わされる。
Figure 0005086348
ここで、Y=C・D・C及びDは、乗算され、累積される浮動小数点オペランドのi次の組である。
式(5)は、以下のように書き直される。
Figure 0005086348
図4は、MACユニット400の実施の形態のブロック図である。MACユニット400は、2−オペランド乗算器208及び2ステージ浮動小数点アキュームレータ200を含む。乗算器208は、乗算され、累積される2つのオペランドを受信し、この2つのオペランドを乗算し、その結果をラッチ210に供給する。浮動小数点アキュームレータ200は、図2において述べたように、ラッチ210からの結果で累積を実行する。
MACユニット400は、グラフィック、デジタル信号処理などのような種々の用途に使用される。MACユニット400は、浮動小数点の2つのシーケンス、{C,C,...,C}及び{D,D,...,D}のドット積(dot product)を以下のように実行する。A=C・D+C・D+...+C・D ドット積は、グラフィックにおけるオブジェクトの衝突のためのフィルタリング、相関、物理計算などに広く使用される。MACユニット400は、また、浮動小数点値のシーケンスをスケーラでスケールし、スケールスケールされた値のシーケンスを累積するのに使用される。
累積は、他の機能と組み合わされて使用されることが可能である。例えば、乗算器208は、スケーラ乗算器、加算器、ディバイダー(divider)、要素機能、シフターなどと置換しても良い。
浮動小数点累積は、2以上のステージで実行されても良い。例えば、3ステージ浮動小数点累積は以下のように表わされる。
Figure 0005086348
式(7)は、以下のように書き換えることができる。
Figure 0005086348
式(7)及び(8)は、3クロックサイクル前からの累積結果AN−3を使用する。このことは、累積結果の信号経路が小さな遅れを有する3つのセグメントに分割されることを可能にする。例えば、追加のラッチが図2のポストアライメントユニット260の後に挿入されても良い。累積結果の第3の信号経路は、次に、3つのセグメントに分割され、浮動小数点アキュームレータは、より速いクロックスピードでさえも動作できる。4オペランド加算器は、式(8)における4つのオペランドを加算するのに使用される。
ここにおいて述べられるマルチステージ浮動小数点アキュームレータは、グラフィックプロセッサ(例えば、シェーダ)、グラフィック処理ユニット(GPUs)、デジタル信号プロセッサ(DSPs)、リスクコンピュータ(RISCs)、アドバンスRISCマシーン(ARMs)などのような種々の種類のプロセッサにおいて使用することができる。
図5は、一般的に、L≧1の場合のL個のグラフィックアプリケーション/プログラムをサポートするグラフィックプロセッサ500の実施の形態のブロック図を示す。L個のグラフィックアプリケーションは、ビデオゲーム、グラフィックなどのためのものであり、並行(コンカレント)に動作する。グラフィックプロセッサ500は、シェーダコア502、テキスチャエンジン504及びキャッシュメモリシステム506を含む。シェーダコア502は、シェーディングのようなグラフィック処理を実行し、これは、ライティング、シャドウイングなどを含む非常に複雑なグラフィック処理である。テキスチャリングは、テキスチャテーブル/画像の色を有する画像のピクセルの色を変更することにより実現される。キャッシュメモリシステム506は1つ以上のキャッシュを含む。これは、データ、シェーダコア502及びテキスチャエンジン504への命令を格納することができる高速メモリである。
シェーダコア502内において、乗算器510はL個のグラフィックアプリケーションからスレッドを受信し、これらスレッドをスレッドスケジューラ512に供給する。スレッドスケジューラ512は、種々の機能を実行し、スレッドの実行をスケジュールし、管理する。命令キャッシュ514はスレッドの命令を格納する。これら命令は、各スレッドに対して実行される特定の動作を示し、キャッシュメモリシステム506及び/又はメインメモリからロードされる。ALU516は演算動作、論理動作、フォーマット変換などを実行する。ALU516は、1つ以上のマルチステージ浮動小数点アキュームレータ(Acc)を実行する。一定バッファ518は、ALU516によって使用される一定値を格納する。負荷制御ユニット520は、シェーダコア502内の種々のユニットのデータ及び命令のフローを制御する。出力バッファ522は、ALU516、544からの中間及び最終結果を格納する。デマルチプレクサー(Demux)524は、出力バッファ522からの実行されたスレッドの最終結果を受信し、これら結果をグラフィックアプリケーションに供給する。
テキスチャエンジン504内において、テキスチャアドレス生成器540はテキスチャエンジン504によって、実行される各ピクセルの位置を計算する。テキスチャキャッシュ542は、テキスチャエンジン504のピクセルを格納する。ALU544は、ピクセルの計算を実行し、出力バッファ522に格納され直される中間結果を提供する。ALU544は、1つ以上のマルチステージ浮動小数点アキュームレータを実行する。
図6は、無線通信システムにおける無線装置600の実施の形態のブロック図を示す。無線装置600は、セルラー電話、端末、ハンドセット、パーソナルデジタルアシスタント(PDA)或いは他の装置であっても良い。無線通信システムは、符号拡散多重アクセス(CDMA)システム、移動通信グローバルシステム(GSM)システム或いは他のシステムであっても良い。
無線装置600は、受信経路及び送信経路を介して双方向通信を提供することができる。受信経路上では、基地局によって送信された信号は、アンテナ612によって受信され、受信器(RCVR)614に供給される。受信器614は、受信した信号を調整し、デジタル化し、サンプルを更なる処理のためのデジタルセクション620へ供給する。送信経路では、トランスミッタ(TMTR)616は、デジタルセクション620からの送信されたデータを受信し、アンテナ612を介して基地局へ送信された変調された信号を生成する。
デジタルセクション620は、例えば、モデムプロセッサ622、ビデオプロセッサ624、コントローラ/プロセッサ626、ディスプレイプロセッサ628、ARM/DSP632、グラフィックプロセッサ634、内部メモリ636及び外部バスインターフェイス(EBI)638のような種々の処理、インターフェイス及びメモリユニットを有する。モデムプロセッサ622は、データ伝送及び受信(例えば、符号化、変調、復調及び復号化)の処理を実行する。ビデオプロセッサ624は、カムコーダ、ビデオ再生及びビデオ会議のようなビデオコンテンツ(例えば、静止画像、動画像、及び動テキスト)を処理する。コントローラ/プロセッサ626は、デジタル部620内の種々の処理及びインターフェイスユニットの動作を管理する。ディスプレイプロセッサ628は、処理を行ない、ディスプレイユニット630上のビデオ、グラフィック及びテキストの表示を容易にする。
ARM/DSP632は、無線装置600の種々のタイプの処理を実行する。グラフィックプロセッサ634は、グラフィック処理を実行する。プロセッサ622から634は、それぞれ1つ以上のマルチステージ浮動小数点アキュームレータを実現する。内部メモリ636は、デジタルセクション620内の種々のユニットのデータ及び/又は命令を格納する。EBI638は、デジタルセクション(例えば、内部メモリ636)とメインメモリ640との間のデータの伝送を容易にする。
ここにおいて述べたマルチステージ浮動小数点アキュームレータは、種々のハードウェアユニットによって実現される。例えば、浮動小数点アキュームレータは、ASICs、DSPs、デジタル信号処理装置(DSPDs)、プログラマブル論理装置(PLDs)、電界プログラマブルゲートアレイ(FPGAs)、プロセッサ、コントローラ、マイクロコントローラ、マイクロプロセッサ、電子装置及び他の電子装置によって実現される。
開示された実施の形態の前述の記載により、当業者が、この開示を作成し、使用することを可能にするものである。これら実施の形態の種々の変形は、当業者にとって容易であることは明らかであり、ここにおいて定義された広義の原則は、本開示の精神或いは観点を離れることなく、他の実施の形態に適用される。したがって、開示はここにおける実施の形態に限定されるものではなく、ここにおいて開示された原則及び新規な特徴に合致する広義の観点に従うものである。
以下の記載は、出願当初の特許請求の範囲の記載に実質的に等しい記載を追記したものである。
[1] 複数の浮動小数点値の累積を実行するように動作可能であって、各ステージが前記ステージの少なくとも1つの結果を格納するように動作可能な少なくとも1つのラッチを有する浮動小数点アキュームレータを具備するプロセッサ。
[2] 前記浮動小数点アキュームレータは、少なくとも2クロックサイクル前からの累積結果を使用する累積を実行するように動作可能である[1]のプロセッサ。
[3] 前記浮動小数点アキュームレータは、2つのステージを有するパイプラインであって、2クロックサイクルの遅れを有する[1]のプロセッサ。
[4] 前記浮動小数点アキュームレータは、
現在の浮動小数点値のための第1のオペランドアライメントユニットと、
以前の浮動小数点値のための第2のオペランドアライメントユニットと、
以前の累積値のための第3のオペランドユニットと
を具備する[1]のプロセッサ。
[5] 前記浮動小数点アキュームレータは、さらに、
ゼロ或いは以前の浮動小数点値を前記第2のオペランドアライメントユニットに供給するように動作可能な第1のマルチプレクサと、
ゼロ或いは以前の浮動小数点値を前記第3のオペランドアライメントユニットに供給するように動作可能な第2のマルチプレクサと
を具備する[4]のプロセッサ。
[6] 前記浮動小数点アキュームレータは、さらに、
第1、第2及び第3のオペランドアライメントユニットにそれぞれ接続された第1、第2及び第3のラッチを具備する[4]のプロセッサ。
[7] 前記浮動小数点アキュームレータは、さらに、前記第1、第2及び第3のオペランドアライメントによって生成されたオペランドを加算するように動作可能な3−オペランド加算器を具備する[4]のプロセッサ。
[8] 前記浮動小数点アキュームレータは、さらに、現在の浮動小数点値、以前の浮動小数点値及び以前の累積値を加算するように動作する3−オペランド加算器を具備する[1]のプロセッサ。
[9] 前記浮動小数点アキュームレータは、さらに、
前記3−オペランド加算器に接続されたラッチと、
前記ラッチに接続されたポストアライメントユニットと
を具備する[8]のプロセッサ。
[10] 入力オペランドを乗算し、複数の浮動小数点値を浮動小数点アキュームレータに供給するように動作可能な乗算器をさらに具備する[1]のプロセッサ。
[11] 前記乗算器及び浮動小数点アキュームレータは、オペランドの2つのシーケンスを乗算し、累積するように動作可能である[10]のプロセッサ。
[12] 複数の累積値の累積を実行するように動作可能であって、少なくとも2つのステージを有し、各ステージはステージの少なくとも1つの結果を格納するように動作可能な少なくとも1つのラッチを有する浮動小数点アキュームレータを具備する集積回路。
[13] 前記浮動小数点アキュームレータは、少なくとも2クロックサイクル前からの累積結果を使用する累積を実行するように動作可能なである[12]の集積回路。
[14] 前記浮動小数点アキュームレータは、
現在の浮動小数点値のための第1のオペランドアライメントユニットと、
以前の浮動小数点値のための第2のオペランドアライメントユニットと、
以前の累積値のための第3のオペランドユニットと
を具備する[12]の集積回路。
[15] 前記浮動小数点アキュームレータは、さらに、前記第1、第2及び第3のオペランドアライメントによって生成されたオペランドを加算するように動作可能な3−オペランド加算器を具備する[14]の集積回路。
[16] 前記浮動小数点アキュームレータは、さらに、
前記3−オペランド加算器に接続された第4のラッチと、
前記第4のラッチに接続されたポストアライメントユニットと
を具備する[15]の集積回路。
[17] 入力オペランドを乗算し、複数の浮動小数点値を浮動小数点アキュームレータに供給するように動作可能な乗算器をさらに具備する[12]の集積回路。
[18] 少なくとも1つの演算論理ユニット(ALU)と、各ALUは、複数の浮動小数点値の累積を実行するように動作可能であって、少なくとも2つのステージを有し、
前記ALUに接続されたメモリと
を具備するグラフィックプロセッサ。
[19] 前記浮動小数点アキュームレータは、
現在の浮動小数点値のための第1のオペランドアライメントユニットと、
以前の浮動小数点値のための第2のオペランドアライメントユニットと、
以前の累積値のための第3のオペランドユニットと、
前記第1、第2及び第3のオペランドアライメントによって生成されたオペランドを加算するように動作可能な3−オペランド加算器と
を具備する[18]のグラフィックプロセッサ。
[20] 各ALUは、さらに、
入力オペランドを乗算し、複数の浮動小数点値を浮動小数点アキュームレータに供給するように動作可能な乗算器を具備する[18]のグラフィックプロセッサ。
[21] グラフィック処理を実行するように動作可能なシェーダコアであって、第1のALUをさらに具備する[18]のグラフィックプロセッサ。
[22] テキスチャマッピングを実行するように動作可能であって、第2のALUを有するテキスチャエンジンをさらに具備する[21]のグラフィックプロセッサ。
[23] 複数の浮動小数点値の累積を実行するように動作可能であって、少なくとも2つのステージを有するグラフィックプロセッサと、
前記グラフィックプロセッサに接続されたメモリと
を具備する無線装置。

Claims (23)

  1. 複数の浮動小数点値の累積を実行するように動作可能であって、加算器及び少なくとも2つのステージを有し、各ステージはステージの少なくとも1つの結果を格納するように動作可能な少なくとも1つのラッチを有し、前記加算器は、現在の浮動小数点値、1つ以上の浮動小数点遅れ値、各浮動小数点遅れ値は少なくとも1つのクロックサイクル遅れを有し、及び少なくとも2つのクロックサイクル遅れを有する累積浮動小数点値を有する入力を加算するように動作可能であるマルチステージ浮動小数点アキュームレータを具備するプロセッサ。
  2. 前記浮動小数点アキュームレータは、少なくとも2つのクロックサイクル後の累積浮動小数点として、前記加算器による結果出力が前記加算器に入力されるように、累積を実行するように動作可能である請求項1記載のプロセッサ。
  3. 前記浮動小数点アキュームレータは、少なくとも2つのステージを有し、少なくとも2つのクロックサイクル遅れを有するパイプラインである請求項1記載のプロセッサ。
  4. 前記浮動小数点アキュームレータは、
    現在の浮動小数点値のための第1のオペランドアライメントユニットと、
    1つ以上の第2のオペランドアライメントユニットと、各1つ以上の第2のオペランドアライメントユニットは、前記1つ以上の浮動小数点遅れ値のうちの1つのためのものであり、
    前記累積浮動小数点値のための第3のオペランドユニットと
    を具備する請求項1のプロセッサ。
  5. 前記浮動小数点アキュームレータは、さらに、
    1つ以上の第1のマルチプレクサと、各1つ以上の第1のマルチプレクサは1つ以上の浮動小数点遅れ値のうちの1つためのものであり、ゼロ或いは対応する浮動小数点遅れ値を前記第2のオペランドアライメントのうちの対応する1つに提供するように動作可能であり、
    ゼロ或いは前記累積浮動小数点値を前記第3のオペランドアライメントユニットに供給するように動作可能な第2のマルチプレクサと
    を具備する請求項4のプロセッサ。
  6. 前記浮動小数点アキュームレータは、さらに、
    前記第1のオペランドアライメントユニットに接続された第1ラッチと、前記1つ以上の第2のオペランドアライメントユニットに接続された1つ以上の第2ラッチと、前記第3のオペランドアライメントユニットに接続された第3ラッチと有することを請求項4のプロセッサ。
  7. 前記浮動小数点アキュームレータ加算器は、前記第1、1つ以上の第2及び第3のオペランドアライメントによって生成されたオペランドを加算するように動作可能である請求項4のプロセッサ。
  8. 前記加算器は、1つの3−オペランド加算器を有し、
    前記3−オペランド加算器は、現在の浮動小数点値、1つの浮動小数点遅れ値及び累積浮動小数点値を有する入力を加算するように動作可能である請求項1記載のプロセッサ。
  9. 前記浮動小数点アキュームレータの少なくとも1つのラッチは、さらに、
    前記加算器に接続されたラッチと、
    前記加算器に接続されたラッチに接続されたポストアライメントユニットと
    を具備する請求項1のプロセッサ。
  10. 入力オペランドを乗算し、複数の浮動小数点値を浮動小数点アキュームレータに供給するように動作可能な乗算器をさらに具備する請求項1のプロセッサ。
  11. 前記乗算器及び浮動小数点アキュームレータは、オペランドの2つのシーケンスを乗算し、累積するように動作可能である請求項10のプロセッサ。
  12. 複数の浮動小数点値の累積を実行するように動作可能であって、加算器及び少なくとも2つのステージを有し、各ステージはステージの少なくとも1つの結果を格納するように動作可能な少なくとも1つのラッチを有し、前記加算器は、現在の浮動小数点値、1つ以上の浮動小数点遅れ値、各浮動小数点遅れ値は少なくとも1つのクロックサイクル遅れを有し、及び少なくとも2つのクロックサイクル遅れを有する累積浮動小数点値を有する入力を加算するように動作可能であるマルチステージ浮動小数点アキュームレータを具備する集積回路。
  13. 前記浮動小数点アキュームレータは、少なくとも2つのクロックサイクル後の累積浮動小数点として、前記加算器による結果出力が前記加算器に入力されるように、累積を実行するように動作可能である請求項12記載の集積回路。
  14. 前記浮動小数点アキュームレータは、
    現在の浮動小数点値のための第1のオペランドアライメントユニットと、
    1つ以上の第2のオペランドアライメントユニットと、各1つ以上の第2のオペランドアライメントユニットは、前記1つ以上の浮動小数点遅れ値のうちの1つのためのものであり、
    前記累積浮動小数点値のための第3のオペランドユニットと
    を具備する請求項12記載の集積回路。
  15. 前記浮動小数点アキュームレータは、さらに、前記第1、第2及び第3のオペランドアライメントによって生成されたオペランドを加算するように動作可能である3−オペランド加算器を有する請求項14記載の集積回路。
  16. 前記浮動小数点アキュームレータは、さらに、
    前記3−オペランド加算器に接続されたラッチと、
    前記ラッチに接続されたポストアライメントユニットと
    を具備する請求項15の集積回路。
  17. 入力オペランドを乗算し、複数の浮動小数点値を浮動小数点アキュームレータに供給するように動作可能な乗算器をさらに具備する請求項12の集積回路。
  18. 少なくとも1つの演算論理ユニット(ALU)と、各ALUは、複数の浮動小数点値の累積を実行するように動作可能であって、加算器及び少なくとも2つのステージを有し、各ステージはステージの少なくとも1つの結果を格納するように動作可能な少なくとも1つのラッチを有し、前記加算器は、現在の浮動小数点値、1つ以上の浮動小数点遅れ値、各浮動小数点遅れ値は少なくとも1つのクロックサイクル遅れを有し、及び少なくとも2つのクロックサイクル遅れを有する累積浮動小数点値を有する入力を加算するように動作可能であるマルチステージ浮動小数点アキュームレータと、
    前記ALUに接続されたメモリと
    を具備するグラフィックプロセッサ。
  19. 前記浮動小数点アキュームレータは、
    現在の浮動小数点値のための第1のオペランドアライメントユニットと、
    1つ以上の第2のオペランドアライメントユニットと、各1つ以上の第2のオペランドアライメントユニットは、前記1つ以上の浮動小数点遅れ値のうちの1つのためのものであり、
    前記累積浮動小数点値のための第3のオペランドユニットと、
    前記第1、1つ以上の第2及び第3のオペランドアライメントによって生成されたオペランドを加算するように動作可能な加算器と、
    を具備する請求項18のグラフィックプロセッサ。
  20. 各ALUは、さらに、
    入力オペランドを乗算し、複数の浮動小数点値を浮動小数点アキュームレータに供給するように動作可能な乗算器を具備する請求項18のグラフィックプロセッサ。
  21. 前記少なくとも1つのALUを使用するグラフィック処理を実行するように動作可能なシェーダコアをさらに具備する請求項18のグラフィックプロセッサ。
  22. 前記少なくとも1つのALUを使用するテキスチャマッピングを実行するように動作可能なテキスチャエンジンをさらに具備する請求項18のグラフィックプロセッサ。
  23. 複数の浮動小数点値の累積を実行するように動作可能であって、加算器及び少なくとも2つのステージを有し、各ステージはステージの少なくとも1つの結果を格納するように動作可能な少なくとも1つのラッチを有し、前記加算器は、現在の浮動小数点値、1つ以上の浮動小数点遅れ値を有し、各浮動小数点遅れ値は少なくとも1つのクロックサイクル遅れを有し、及び少なくとも2つのクロックサイクル遅れを有する累積浮動小数点値を有する入力を加算するように動作可能であるマルチステージ浮動小数点アキュームレータを有するグラフィックプロセッサを具備する無線装置。
JP2009525707A 2006-08-18 2007-08-17 マルチステージ浮動小数点アキュームレータ Expired - Fee Related JP5086348B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/506,349 US7543013B2 (en) 2006-08-18 2006-08-18 Multi-stage floating-point accumulator
US11/506,349 2006-08-18
PCT/US2007/076242 WO2008022331A2 (en) 2006-08-18 2007-08-17 Multi-stage floating-point accumulator

Publications (2)

Publication Number Publication Date
JP2010501938A JP2010501938A (ja) 2010-01-21
JP5086348B2 true JP5086348B2 (ja) 2012-11-28

Family

ID=39083186

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009525707A Expired - Fee Related JP5086348B2 (ja) 2006-08-18 2007-08-17 マルチステージ浮動小数点アキュームレータ

Country Status (8)

Country Link
US (1) US7543013B2 (ja)
EP (1) EP2057535B1 (ja)
JP (1) JP5086348B2 (ja)
KR (1) KR101085810B1 (ja)
CN (1) CN101506771B (ja)
AT (1) ATE487981T1 (ja)
DE (1) DE602007010468D1 (ja)
WO (1) WO2008022331A2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101847087B (zh) * 2010-04-28 2012-03-28 中国科学院自动化研究所 一种支持定浮点可重构的横向求和网络结构
CN102445606A (zh) * 2010-09-30 2012-05-09 上海华建电力设备股份有限公司 电力监测终端的功能优化方法
CN102033732B (zh) 2010-12-17 2012-07-18 浙江大学 基于fpga的高速低延迟浮点累加器及其实现方法
CN103176767B (zh) * 2013-03-01 2016-08-03 浙江大学 一种低功耗高吞吐的浮点数乘累加单元的实现方法
US9575725B1 (en) 2014-03-18 2017-02-21 Altera Corporation Specialized processing block with embedded pipelined accumulator circuitry
CN106485315B (zh) * 2015-10-08 2019-06-04 上海兆芯集成电路有限公司 具有输出缓冲器反馈与遮蔽功能的神经网络单元
CN107305485B (zh) * 2016-04-25 2021-06-08 中科寒武纪科技股份有限公司 一种用于执行多个浮点数相加的装置及方法
CN111221496B (zh) * 2018-11-26 2023-06-13 北京华航无线电测量研究所 一种使用fpga实现浮点数据累加的方法
US10891991B2 (en) * 2018-11-26 2021-01-12 Gsi Technology Inc. Massively parallel, associative multiplier accumulator
US11188329B1 (en) * 2020-06-24 2021-11-30 Micron Technology, Inc. Dynamic precision bit string accumulation
KR20230082173A (ko) * 2021-12-01 2023-06-08 에스케이하이닉스 주식회사 높은 동작 속도를 위한 누산기, 이를 포함하는 연산 로직 회로, 및 프로세싱-인-메모리 장치

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4866652A (en) 1987-09-01 1989-09-12 Weitek Corporation Floating point unit using combined multiply and ALU functions
US4841467A (en) * 1987-10-05 1989-06-20 General Electric Company Architecture to implement floating point multiply/accumulate operations
JP2693800B2 (ja) 1988-12-28 1997-12-24 甲府日本電気株式会社 浮動小数点データ総和演算回路
JPH03163662A (ja) * 1989-11-21 1991-07-15 Mitsubishi Electric Corp 浮動小数点累算器
JPH04151729A (ja) * 1990-09-10 1992-05-25 Mitsubishi Electric Corp 浮動小数点累算器
JPH05197741A (ja) * 1991-06-06 1993-08-06 Lsi Logic Corp インターリーブド乗算器累算器
US6247036B1 (en) * 1996-01-22 2001-06-12 Infinite Technology Corp. Processor with reconfigurable arithmetic data path
US6446195B1 (en) * 2000-01-31 2002-09-03 Intel Corporation Dyadic operations instruction processor with configurable functional blocks
GB2409074B (en) 2001-03-14 2005-08-03 Micron Technology Inc Arithmetic pipeline
US7080111B2 (en) * 2001-06-04 2006-07-18 Intel Corporation Floating point multiply accumulator
US20030154227A1 (en) 2002-02-08 2003-08-14 Intel Corporation Multi-threaded multiply accumulator

Also Published As

Publication number Publication date
DE602007010468D1 (de) 2010-12-23
KR20090031594A (ko) 2009-03-26
WO2008022331A2 (en) 2008-02-21
EP2057535A2 (en) 2009-05-13
EP2057535B1 (en) 2010-11-10
US20080046495A1 (en) 2008-02-21
CN101506771A (zh) 2009-08-12
CN101506771B (zh) 2013-01-02
KR101085810B1 (ko) 2011-11-22
US7543013B2 (en) 2009-06-02
JP2010501938A (ja) 2010-01-21
ATE487981T1 (de) 2010-11-15
WO2008022331A3 (en) 2008-05-22

Similar Documents

Publication Publication Date Title
JP5086348B2 (ja) マルチステージ浮動小数点アキュームレータ
JP5089776B2 (ja) 浮動小数点演算のための再構成アレイプロセッサ
CA2641334C (en) Floating-point processor with reduced power requirements for selectable subprecision
KR100955557B1 (ko) 선택가능 준정밀도를 가진 부동―소수점 프로세서
KR101395260B1 (ko) 마이크로프로세서 및 마이크로프로세서 상에서의 향상된 정밀 곱들의 합 계산 방법
Nam et al. Power and area-efficient unified computation of vector and elementary functions for handheld 3D graphics systems
US8037119B1 (en) Multipurpose functional unit with single-precision and double-precision operations
CN111767516A (zh) 用于利用所选择的舍入来执行浮点加法的系统和方法
US20230047935A1 (en) Carry chain for simd operations
US6351760B1 (en) Division unit in a processor using a piece-wise quadratic approximation technique
US7640285B1 (en) Multipurpose arithmetic functional unit
US9417843B2 (en) Extended multiply
EP0877315A2 (en) Data processing circuit
US9619205B1 (en) System and method for performing floating point operations in a processor that includes fixed point operations
US5805489A (en) Digital microprocessor device having variable-delay division hardware
Kumar et al. Design and development of FPGA based low power pipelined 64-Bit RISC processor with double precision floating point unit
Anido et al. Interactive ray tracing using a SIMD reconfigurable architecture
US6725360B1 (en) Selectively processing different size data in multiplier and ALU paths in parallel
US20030145030A1 (en) Multiply-accumulate accelerator with data re-use
TWI258698B (en) Static floating-point processor suitable for embedded digital signal processing and shift control method thereof
Kumar et al. FPGA Based Implementation of Pipelined 32-bit RISC Processor with Floating Point Unit
Tsao et al. Parameterized and low power DSP core for embedded systems
EP1237070A2 (en) Denormalization circuit
Hsiao et al. Design of a low-cost floating-point programmable vertex processor for mobile graphics applications based on hybrid number system
CN121722353A (zh) 一种基于risc-v处理器的乘累加运算电路及指令集扩展方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110125

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110414

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110927

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20111227

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120110

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120124

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120131

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120221

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120228

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120308

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

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

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20150914

Year of fee payment: 3

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

LAPS Cancellation because of no payment of annual fees