JP2011503733A - リコンフィギュラブルな浮動小数点レベルおよびビットレベルのデータ処理ユニット - Google Patents
リコンフィギュラブルな浮動小数点レベルおよびビットレベルのデータ処理ユニット Download PDFInfo
- Publication number
- JP2011503733A JP2011503733A JP2010533431A JP2010533431A JP2011503733A JP 2011503733 A JP2011503733 A JP 2011503733A JP 2010533431 A JP2010533431 A JP 2010533431A JP 2010533431 A JP2010533431 A JP 2010533431A JP 2011503733 A JP2011503733 A JP 2011503733A
- Authority
- JP
- Japan
- Prior art keywords
- floating point
- unit
- bit
- data processing
- alu
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
Landscapes
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Mathematical Optimization (AREA)
- Computing Systems (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Nonlinear Science (AREA)
- General Engineering & Computer Science (AREA)
- Advance Control (AREA)
- Logic Circuits (AREA)
Abstract
リコンフィギュラブルなデータ処理ユニットの複数の固定小数点ユニットのブロックが、該ブロック内に固定実装された共通の同じハードウェアによって、浮動小数点数を効率的に演算する機能を支援する。
Description
本発明はデータ処理に関し、とりわけ、浮動小数点数の処理を高速化するために本発明にしたがって拡張されたリコンフィギュラブルなデータ処理ユニットと、データ処理および/またはビットデータ処理方法とに関するが、これらに限定されない。
データ処理方法、ならびに相応の最適化された従来のプロセッサ
リコンフィギュラブルなアーキテクチャとはとりわけ、動作中に多数の機能および/または相互接続を行うことができるモジュール(VPU)を指し、とりわけ、実行時間で別のユニットおよび/または要素を妨害せずに可変の要素の多数の機能および/または相互接続を行うことができるモジュールを指すが、このようなモジュールに限定されることはない。このような要素には、算術論理ユニット、FPGA領域、入出力セル、記憶セル、アナログユニット等が含まれる。このようなモジュールは、たとえばVPUという呼称で知られている。このVPUは典型的には、1次元または多次元に配置されPAEと称される算術ユニットおよび/または論理ユニットおよび/またはアナログユニットおよび/または記憶ユニットおよび/または接続ユニットおよび/または周辺通信ユニット(IO)を含み、これらは相互に直接接続されているか、または1つまたは複数のバスシステムによって接続されている。PAEは任意の構成、組合せおよび階層で配置され、このように配置されたPAEはPAEアレイまたは略してPAと称される。PAEアレイまたはPAEアレイの一部に、コンフィギュレーションユニット配属させることができる。基本的にはVPUモジュールの他に、たとえばちょうどFPGA、DPGA、トランスピュータのような、シストリックアレイ、ニューロネットワーク、マルチプロセッサシステム、複数の演算装置および/または論理セルを備えたプロセッサ、クロスバー回路等の接続ネットワークモジュール等が公知である。本発明による要素、すなわち本願で開示する浮動小数点構成は、たとえば比較的初期のバーテックスシリーズのザイリンクスモジュールおよび/または別のFPGAないしはDSPないしはプロセッサに容易に組み込むことができる。
リコンフィギュラブルなアーキテクチャとはとりわけ、動作中に多数の機能および/または相互接続を行うことができるモジュール(VPU)を指し、とりわけ、実行時間で別のユニットおよび/または要素を妨害せずに可変の要素の多数の機能および/または相互接続を行うことができるモジュールを指すが、このようなモジュールに限定されることはない。このような要素には、算術論理ユニット、FPGA領域、入出力セル、記憶セル、アナログユニット等が含まれる。このようなモジュールは、たとえばVPUという呼称で知られている。このVPUは典型的には、1次元または多次元に配置されPAEと称される算術ユニットおよび/または論理ユニットおよび/またはアナログユニットおよび/または記憶ユニットおよび/または接続ユニットおよび/または周辺通信ユニット(IO)を含み、これらは相互に直接接続されているか、または1つまたは複数のバスシステムによって接続されている。PAEは任意の構成、組合せおよび階層で配置され、このように配置されたPAEはPAEアレイまたは略してPAと称される。PAEアレイまたはPAEアレイの一部に、コンフィギュレーションユニット配属させることができる。基本的にはVPUモジュールの他に、たとえばちょうどFPGA、DPGA、トランスピュータのような、シストリックアレイ、ニューロネットワーク、マルチプロセッサシステム、複数の演算装置および/または論理セルを備えたプロセッサ、クロスバー回路等の接続ネットワークモジュール等が公知である。本発明による要素、すなわち本願で開示する浮動小数点構成は、たとえば比較的初期のバーテックスシリーズのザイリンクスモジュールおよび/または別のFPGAないしはDSPないしはプロセッサに容易に組み込むことができる。
同出願人の以下の特許出願ならびにここで挙げられた特許出願に関連する本願出願後の出願に、VPU技術の重要な側面が記載されていることを述べておく:
P 44 16 881.0-53, DE 197 81 412.3, DE 197 81 483.2,
DE 196 54 846-2-53, DE 196 54 593.5-53, DE 197 04 044.6-53,
DE 198 80 129.7, DE 198 61 088.2-53, DE 199 80 312.9,
PCT/DE 00/01869, DE 100 36 627.9-33, DE 100 28 397.7,
DE 101 10 530.4, DE 101 11 014.6, PCT/EP 00/10516,
EP 01 102 674.7, DE 102 06 856.9, 60/317,876,
DE 102 02 044.2, DE 101 29 237.6-53, DE 101 39 170.6,
PCT/EP 03/09957, PCT/EP 2004/006547, EP 03 015 015.5,
PCT/EP 2004/009640, PCT/EP 2004/003603, EP 04 013 557.6,
PACT62, PACT68。
P 44 16 881.0-53, DE 197 81 412.3, DE 197 81 483.2,
DE 196 54 846-2-53, DE 196 54 593.5-53, DE 197 04 044.6-53,
DE 198 80 129.7, DE 198 61 088.2-53, DE 199 80 312.9,
PCT/DE 00/01869, DE 100 36 627.9-33, DE 100 28 397.7,
DE 101 10 530.4, DE 101 11 014.6, PCT/EP 00/10516,
EP 01 102 674.7, DE 102 06 856.9, 60/317,876,
DE 102 02 044.2, DE 101 29 237.6-53, DE 101 39 170.6,
PCT/EP 03/09957, PCT/EP 2004/006547, EP 03 015 015.5,
PCT/EP 2004/009640, PCT/EP 2004/003603, EP 04 013 557.6,
PACT62, PACT68。
開示目的で挙げた上記の文献はとりわけ、アーキテクチャ要素やトリガ手法等の接続関係、コンフィギュレーションおよび構成の特性および詳細の点で組み入れられており、本願発明を限定するためのものではなく、とりわけ、これらの文献に記載された定義等を提示するためのものであることに留意すべきである。
図1に、リコンフィギュラブルなデータ処理ユニットの構成の一例を示す。リコンフィギュラブルなデータ処理ユニットはたとえば、FPGA(たとえばXILINX Virtex,ALTERA)またはリコンフィギュラブルプロセッサ(たとえばPACT XPP,AMBRIC,MATHSTAR,STRECH)またはプロセッサ(たとえばSTRETCHPROCESSOR,CRADLE,CLEARSPEED,INTEL,AMD,ARM)とすることができる。または、リコンフィギュラブルなデータ処理ユニットをこれらの構成に基づいて構成するか、またはこれらのプロセッサ等に接続することができる。有利には粗粒度でありかつ/または粗粒度/細粒度が混在した、リコンフィギュラブルのデータ処理セル(0101)が2次元または多次元のアレイ(0103)で配置されている。1つの実施形態では、さらにこのアレイの縁辺にメモリセル(0102)が設けられる。有利には各セルの機能を個別に、またはセル群の機能を一緒に、実行時間中に構成することができる。この構成において特に有利には、このコンフィギュレーションおよび/またはリコンフィギュレーションが実行時間中に、再構成すべきでないセルに影響を及ぼすことなく行われる。
これらのセルはネットワーク(0104)を介して相互に接続され、該ネットワークも有利には、実行時間中に該ネットワークの接続構造および/またはトポロジが自由に構成可能および/または再構成可能であるように構成されている。この構成において有利には、このコンフィギュレーションおよび/またはリコンフィギュレーションが実行時間中に、再構成すべきでないネットワーク区分に影響を及ぼすことなく行われる。リコンフィギュラブルプロセッサはデータおよび/またはアドレスをIOユニット(0105)によって周辺装置および/またはメモリと交換する。このIOユニット(0105)は、アドレス発生器、FIFOおよびキャッシュ等を有することができる。
図2に、リコンフィギュラブルセルの構成の一例を示す。このリコンフィギュラブルセルはたとえば、粗粒度のデータ処理セル(0101)またはメモリセル(0102)または論理処理セル(たとえば、FPGA技術で使用されるようなLUTベースのCLB等)として具現化することができる。このリコンフィギュラブルセルはネットワーク(0104)に接続するための端子を有し、オペランドを該ネットワークから取り出すためのユニット(0104a)と、該ネットワークに結果を割り込ませるためのユニット(0104b)とが設けられるように、この端子は設けられている。セルは水平方向および/または垂直方向にカスケード接続されることにより、上方のセルのバス接続装置(0104b)が下方のセルのバス取り出しユニット(0104a)のバスに接続するようにされる。
セルのコア(0201)に、セル機能に応じて異なって構成できるユニットが設けられており、このユニットはたとえば、粗粒度の演算ユニット、メモリ、論理ユニット(FPGA)または固定実装されたASICとして構成することができる。本願明細書において、下記では典型例として、16ビット幅の粗粒度のDSPユニットおよび/またはプロセッサ状の演算ユニット(ALU)を取り上げる。
有利には少なくともこのコア(0201)に制御ユニットが所属しており(0204)、この制御ユニットはデータ処理のシーケンスを制御し(0205)、かつ/または、たとえば繰上げ(CARRY)、正負(NEGATIVE)、比較値(ZERO、GREATER、LESS、EQUAL)等の状態情報(TRIGGER)を処理し、かつ/または計算のためにコアに転送し(0205)、かつ/または該コアから受け取る(0205)。制御ユニット(0204)はTRIGGERをネットワークから取り出し、かつ/または該ネットワークに接続することができる。
1つの実施形態では、上位のネットワークから下位のネットワークへデータを伝送するか(0202)または下位のネットワークから上位のネットワークへデータを伝送する(0203)ためのユニットがコア(0201)に並列に設けられており、有利には側方に設けられている。有利には側方に設けられるユニット(0202または/および0203)において、有利には、データ転送手段の他にデータ処理手段も設けられ、このデータ処理手段はたとえば、該ユニットによって伝送されるデータフローの算術演算(加算、減算、シフト演算等のALU演算)および/またはデータ結合演算を行うために構成されており、たとえば多重化、非多重化、マージ、スワップ、ソート等の結合演算を行うために構成されている。これら双方のユニットは有利には、データ処理機能の他にさらにTRIGGERの転送も、たとえばFPGAのようなルックアップテーブル(LUT)によるTRIGGERの処理も行えるように構成されている。
以下では、ネットワーク端子が配属されたコアをCOREとも称する。ネットワーク端子が配属された側方のユニットは、データ転送が上方から下方へ行われる場合にはFREGと称し、ないしはデータ転送が下方から上方へ行われる場合にはBREGと称する。
CORE、FREGおよびBREGから成るセルはPAE(Processing Array Element)と称する。COREがたとえば演算装置(ALU)を有する場合、これはALU‐PAEである。COREにメモリ(RAM)が実装される場合、これはRAM‐PAEである。別の任意のCORE実装も可能であり、とりわけ、たとえばLP‐PAEでのFPGA状の論理処理ユニット(Logic Processing=LP)が可能である。
有利にはネットワークには、データおよび/またはTRIGGERの交換を同期するために同期手段が備えられており、たとえばハンドシェイク線路、トリガ信号転送部が備えられており、特に有利にはマスキング可能なトリガベクトル信号転送部等が備えられている。同出願人のRDY/ACKプロトコルも参照されたい。
従来技術のリコンフィギュラブルセルは、個々の信号(ビット)をルックアップテーブル(LUT)のようにFPGA状に処理するために構成されており、かつ/または粗粒度の演算装置を有する。この粗粒度の演算装置は典型的には、幅が典型的には4〜48ビットの領域内にある整数値(固定小数点数)を計算する演算装置である。浮動小数点数の面倒な計算はこのようなセルによってサポートされないが、多数のセルの接続をコンフィギュレートすることによって計算することができる。しかし、セルの接続のコンフィギュレートは特に非効率的である。というのも、多数のセルが必要とされ、ネットワークを介して多くのデータを転送しなければならないからである。このことにより電気消費量が上昇し、多数のセルの接続が非効率的であることにより、浮動小数点数の計算のパフォーマンスが格段に低減される。
浮動小数点数演算を個々のセルに実装することは有利でないことが証明されている。というのも、浮動小数点数演算は多くのハードウェア資源を必要とし、さらに、浮動小数点数の幅は典型的な固定小数点値(たとえば16ビット)より大きいからである(単精度=32ビット、倍精度=64ビット)。このことにより、バスシステムを浮動小数点数の幅に適合しなければならなくなるが、典型的には固定小数点数の計算の方が行われる頻度が高い場合には、このような幅の適合は特に面積非効率的となる。リコンフィギュラブルのデータ処理装置が主に浮動小数点数の計算に使用される場合であっても、倍精度の浮動小数点数の幅に対してバスシステムを構築するのはなお非効率的である。というのも、実用的にはたいてい、単精度数が使用されるからである。以下では、とりわけバスシステムの使用をより効率的にできる構成を説明する。以下の説明は、固定小数点数に対して最適化されたPAEの粒度に基づいているが、本発明は、単精度数に対して最適化されたPAEに適用することができ、とりわけ、複数の個々のPAEが同時に、複数の固定小数点数の計算をそれぞれSIMDのように計算するために構成されている場合に適用することができる。
本発明は、リソース効率およびパフォーマンス効率が高い最適化された浮動小数点処理の具現化を開示する。
本発明の課題は、産業的に利用するための新規のものを提供することである。
図3に本発明の構成の一例を示す。この構成はこの例では4つのALU‐PAE(ALU‐PAE1〜ALU‐PAE4)から構成され、各ALU‐PAEもまた、FREG、BREGおよびCOREから構成されている({FREG1,BREG1,CORE1},{FREG2,BREG2,CORE2}・・・)。この実施例では、個々のデータワードは16ビット幅であるから、バスは16ビット幅であり、FREG、BREGおよびCOREのオペランドおよび結果は16ビットであるか、または乗算結果が32ビットとなる。(ここでは本願の開示のために、たとえば同期信号、トリガ信号、トリガ情報等を一緒に転送できるようにするためにデータバスの幅をデータワードより大きくできることは考慮しない。その他の点で、別個の同期ネットワークおよび/またはトリガネットワークないしは同期線路および/またはトリガ線路を設けられること、かつ/または、これらを構成するための回路手段、たとえばこれらをリコンフィギュラブルに構成するための回路手段を設けられることを述べておく)。wは、ALU‐PAEで計算できる固定小数点数の幅(たとえば16ビット)であり、pは、実装すべき浮動小数点ユニットの幅(たとえば、単精度ではp=32であり、倍精度ではp=64)であるとする。
ALU‐PAEは典型的には、少なくとも2つのオペランド入力側AおよびBを有する。これらのオペランド入力側の幅は典型的には、計算できる固定小数点数の幅に相応するが、必ずしもこの固定小数点数の幅に相応する必要はない。
複数のALU‐PAEがまとめられて新たな階層(Box)が構成され、これらの複数のALU‐PAEは、新たな階層のAfixオペランド入力側の幅とBfixオペランド入力側の幅との和が、浮動小数点ユニットのオペランドAfloatないしはBfloatの所要幅に相応するようにまとめられる。換言すると、以下の関係式が成り立つ。
n=幅(Afloat)/幅(Aint)
したがって、幅(Afloat)=Σ(Aint[0〜n])
ないしは
n=p/w したがってp=Σw[0〜n]。
したがって、幅(Afloat)=Σ(Aint[0〜n])
ないしは
n=p/w したがってp=Σw[0〜n]。
このようにして、この新たな階層(Box)内に幅Afloat=pの浮動小数点演算ユニットが具現化される。このことにより、以下の利点が得られる。
1.浮動小数点演算ユニットの資源がn個の固定小数点演算ユニット(ALU‐PAE)に分配される。典型的な用途では、必要とされる浮動小数点演算数が固定小数点演算より少ないので、このように固定小数点演算ユニットに分配させることにより、最適なリソースの使用比率が十分に理想的になる。
2.1つの浮動小数点接続にまとめられる固定小数点数ネットワーク接続の数を多くすることにより、固定小数点ユニット(ALU‐PAE)の幅のために実装された固定小数点数ネットワークを変更無しで浮動小数点数に適用することができる。
図3に、4つのALU‐PAE(ALU‐PAE1={FREG1,CORE1,BREG1},ALU‐PAE2={FREG2,CORE2,BREG2}・・・)から成る本発明の構成を示す。2つのALU‐PAEであるALU‐PAE1およびALU‐PAE2から成る第1のボックスには付加的に、単精度浮動小数点演算装置(0301)が実装される。この付加的な浮動小数点演算装置は、従来のアレイ要素には設けられていない。またこの付加的な浮動小数点演算装置は、既存の回路を単純に構築して組み立てられるのではなく、むしろ、付加的な浮動小数点演算手段の動作のためだけに設けられる回路要素が使用される。しかしこの回路要素は、単独では使用することができない回路要素である。すなわち、浮動小数点演算装置の専用の付加的なハードウェア無しでは決して浮動小数点演算に良好に使用することができない回路要素である。0401はALU‐PAE1およびALU‐PAE2の入力側をオペランド入力側として使用し、両ALUの出力側を結果出力側として使用する。浮動小数点数の数値フォーマット(この実施例では32ビット)は、まとめられた複数の(この実施例では2つの)固定小数点バスを介して(この実施例では16ビットで)伝送される。
第2のボックス(DOUBLE2)では、‐DOUBLE1で説明したのと同様に‐、ALU‐PAEであるALU‐PAE3とALU‐PAE4とがまとめられて別の単精度浮動小数点演算装置を構成する(0302)。すなわち、別の付加的な浮動小数点演算装置が設けられる。
さらに、ボックスDOUBLE1およびDOUBLE2から成る第3のボックス(QUAD)が形成される。このボックスは4つのALU‐PAEから構成され、(この実施例では)オペランドAおよびBに対してそれぞれ4×16ビット=64ビットの入力側を有し、その結果に対して該入力側のビット数に相応する数の出力側を有する。オペランド入力側および結果出力側の幅は、QUAD内で64ビット倍精度の浮動小数点演算装置を具現化するのに十分になる。こうするためには、‐本発明では上記の実施例においてボックス内にすでに付加的にハードウェア実装されている上記2つの単精度計算装置の他に‐倍精度計算装置として構成される別の付加的な浮動小数点演算装置が設けられる。インタリーブは必ずしも必要というわけではないことに留意されたい。もっぱら倍精度計算装置のみが必要であることが事前に分かっている場合には、場合によっては2つの単精度計算装置を個々のボックスに設けることなく、直接、もっぱら1つの倍精度計算装置のみを設けることもできる。逆のこともあり得る。セルフィールド内に混合形態を設けることもできる。有利にはとりわけ、ローごとおよび/またはカラムごとに浮動小数点演算装置(Floating Point Unit)を設ける。
図3に、図1に示したリコンフィギュラブルデータ処理ユニットの一部分のみを示す。同図に示した構造は、データ処理ユニット全体にわたってスケーリングすることができる。すなわち、データ処理ユニットのすべてのPAEを適切に複数のボックスにまとめることができる。さらに、実用的に必要とされる浮動点パフォーマンスが比較的低い場合には、データ処理ユニットの一部のみが本発明の浮動小数点構造を有する構成も可能である。この構成は有利にはカラムごとに行われる。すなわち、PAEはカラムに適切にまとめられる。
浮動小数点演算装置に状態マシンを配属することは必ずしも必要というわけではないが、このことは可能である。しかし、状態マシンが特に有利なのは、ルート計算および/または除算等の反復が典型的に必要であるか、または必要になる可能性がある場合である。このような場合、浮動小数点演算装置または少なくともその一部は、有利にはレジスタを有するか、または別のメモリアクセス手段を有し、たとえば、関数(三角関数および/または別の関数)のためのルックアップテーブルを格納することができるアレイ内の記憶素子にアクセスすることにより、しかもコンフィギュラブル形態および/または固定組み込みで設けられている。とりわけ、すべてまたは1つの浮動小数点演算装置を繰り返して設ける場合、および/または、すべてまたは1つの浮動小数点演算装置を異なって使用する場合、とりわけシーケンサのように使用する場合にはさらに、かつ/または付加的に、オペランド出力側からオペランド入力側へフィードバックを設けるのが有利である。なお、すべてまたは1つの浮動小数点演算装置をこのように設けたり使用することだけに限定されることはない。場合によっては、状態信号をフィードバックすることも可能であることを述べておく。
図4aでは概観しやすくするため、図3中に示され明確に有利な構成を再度示し、また、DOUBLEボックスおよびQUADボックスも示している。
図4bに、ALU‐PAEの浮動小数点データフォーマットと固定小数点フォーマットとのマッピングを示す。同図では4つのALU‐PAE(0410)と、4つの16ビットのワードフォーマット(0411)とを示す。その下に(0411)、2つの32ビットの浮動小数点数のワード幅を示しており、その下方に(0412)に32ビット浮動小数点数のワード幅を示す。
0414は2つの32ビット単精度浮動小数点数のマッピングを示し、0415は、64ビット倍精度浮動小数点数に対応する相応のマッピングを示す。sは正負符号を示す(Sign)。
重要な問題は、たとえばオーバーフロー、アンダーフロー、0および誤った数値表現(Not a Number=NaN)で割る除算等のエラー信号をどのように処理するかである。典型的には浮動小数点演算装置を1つだけ有するプロセッサでは、典型的には、エラーの発生を表示するための割込み(interrupt)がトリガされる。多数の浮動小数点演算装置を任意の配置、トポロジおよび順番でネットワークによって接続できるデータフローアーキテクチャでは、割込みのトリガないしはエラー原因の検出を行うのは容易ではない。
使用領域に応じて本発明では、以下の方法および構造を使用する。下記に挙げる実施形態が有利であることが明らかであっても、これらの実施形態を実施する必要はなく、とりわけこれらの実施形態をすべて実施しなければならないわけではない。
A)すべての浮動小数点演算装置のエラー表示を線路網に接続し、該線路網は上位のユニットに対してエラーの発生を表示する。このことは、結果を処理する上位のユニットにおいて割込みをトリガすることによって行うことができる。各浮動小数点演算装置がこの発生したエラー状態を記憶する。すなわちたとえば、オーバーフロー、アンダーフロー、0および誤った数値表現(Not a Number=NaN)で割る除算を記憶する。このメモリに、結果を処理する上位のユニットが問い合わせることができ、典型的には常時問い合わせることができ、有利には、エラー識別に対する応答で問い合わせることができる。エラー関連の情報を受動的に得る代わりに、択一的および/または付加的に、能動的に関連箇所に伝送できることも述べておく。この問い合わせはたとえばJTAGによって行うことができ、とりわけ、上位または外部のユニットで実行されるデバッグソフトウェアがエラー状態を問い合わせることができる。
B)それに対する択一的方法は、リコンフィギュラブルデータ処理ユニット内においてエラー信号(たとえばオーバーフロー、アンダーフロー、0および誤った数値表現(Not a Number=NaN)による除算)をTRIGGERネットワークに接続する方法である。TRIGGERネットワークはこのエラー信号を、次にデータを処理する浮動小数点演算装置へ転送し、該浮動小数点演算装置は入力されたこのエラー信号を、たとえば固有の計算装置に発生したエラーとOR結合し、TRIGGERネットワーク上でデータと一緒に転送する。したがってこの方法では、データネットワーク上で伝送される‐有利にはすべての‐浮動小数点データワードとともに、エラー識別結果をTRIGGERネットワーク上で同時に伝送する。このことをすべてのネットワーク接続で実施する必要はなく、用途に依存して、データ接続のうち少なくとも幾つかでこのような転送を行うだけで十分である。さらに、リコンフィギュラブルデータ処理ユニットの(有利には)すべての生成された演算結果とともに、該演算結果が適正であるかまたはエラーであることを示すエラー状態が出力される。誤った結果が発生した場合には、同様に、該結果をさらに処理する上位のユニットにおいて割込みを生成し、かつ/または、結果のエラー状態を、該結果を処理する上位のユニットが問い合わせることができる。
方法A)と同様に、各浮動小数点演算装置がこの発生したエラー状態を記憶することができる。すなわちたとえば、オーバーフロー、アンダーフロー、0および誤った数値表現(Not a Number=NaN)で割る除算を記憶することができる。このメモリに上位のユニットが常時問い合わせることができ、有利には、エラーであると識別された結果の発生に対する応答で問い合わせることができる。このような問い合わせはたとえばJTAGによって行うことができ、とりわけ、上位または外部のユニットで実行されるデバッグソフトウェアがエラー状態を問い合わせることができる。
図4cに一例として、浮動小数点演算装置における複数の異なるエラー状態(イベント)の結合を示す。内部に発生したエラーは、各オペランド(たとえばAおよびB)のその時点で入力されたエラー信号と結合され、結果とともに転送される。
アーキテクチャの使用領域に応じて、倍精度浮動点数ないしは多倍精度浮動点数を計算するため、または、SIMDごとに2つのシングル(ないしはマルチプル‐ハーフ)浮動点数を計算するためには、2つの単精度浮動小数点演算装置および/または1つの倍精度浮動小数点演算装置を具現化する代わりに、QUADあたり1つまたは複数のSIMD浮動小数点演算装置を具現化するのが有利である場合がある。このことに関しては、Libo Huang, Li Shen, Kaui Dai, Zhiying Wang による "A New Archtecture For Multiple-Precision Floating-Point Multiply-Add Fused Unit Design",School of Computer, National University of Defense Technology, Changsha, 410073, P.R.China を引用する。この文献の記載内容はすべて、本願の開示内容に含まれるものとする。浮動小数点演算装置の機能範囲に関しては、浮動小数点演算装置を乗算、加算および減算のために構成され、有利にはルート計算および除算のためにも構成するだけで十分である。しかし、より複雑な演算装置で別の関数を実装することは排除されず、またたとえば、とりわけ>、<、=、>0、<0、=0等の比較関数や、とりわけ、たとえば倍精度から整数への変換等のフォーマット変換機能も実装することを排除することもない。
さらに幾つかの使用領域では、複数のPAEをまとめてDOUBLEを構成する代わりに、1つのPAE内で処理幅を拡大してバス幅も拡大し、幅全体の計算を実行するかまたは比較的小さい幅の複数の計算を同時実行できるように、PAE内の固定小数点演算装置をSIMD演算装置として構成することも有利であり、たとえば、1つの32ビット計算を実行するか、または2つの16ビット計算を同時に行うか、または1つの16ビット計算と2つの8ビット計算とを同時に実行するか、または4つの8ビット計算を同時に実行できるようにすることができる。
このことに関しては図5を参照されたい。同図では同出願人の16ビットのXPP‐III アーキテクチャが、SIMD機能を有する32ビットに拡張されており、このことによって各ALU‐PAEが単精度浮動小数点計算も実行することができる。
さらにこの方法では、ALU‐PAEをまとめて処理幅を拡大することもでき、たとえば、2つの32ビットSIMD/単精度ALU‐PAEによって64ビット倍精度DOUBLE(以前はQUAD)を構成することができる。
有利には浮動小数点演算装置は、該浮動小数点演算装置が高い周波数で動作できるようにするための1つまたは複数の内部レジスタ段、いわゆるパイプライン段を有する。このことはとりわけ、同出願人の PACT XPP Technologie のデータフローアーキテクチャのようなデータフローアーキテクチャで非常に有利である。というのも、このようなアーキテクチャでは典型的には、パイプラインストールが無いかまたはごく僅かであるからだ。さらに、このプロセッサモデルはコンフィギュレーション内のループを十分に回避するので、パイプラインを使用する際のパフォーマンスに悪影響を及ぼすフィードバック作用が生じない。このことに関してはとりわけ、同出願人のコンパイラ関連の特許出願を参照されたい。この特許出願の記載内容はすべて、本願の開示内容に含まれるものとする。
ここで、上記の有利な実施形態では、いずれにせよ必要とされるバス構造ないしは線路構造が、組み込まれたアレイ回路に設けられ、有利にはボックスの出力側に設けられ、有利には、従来の演算装置からの出力信号すなわち固定小数点演算装置からの出力信号と浮動小数点演算装置からの出力信号とを択一的にバスまたは別の出力要素に接続するためのボックスマルチプレクサの出力側に設けられることに留意されたい。このようなボックスマルチプレクサではこれらの出力信号は、たとえばメモリやI/Oポート等に接続される。1つの有利な実施形態では、このマルチプレクサは個別セル内の整数演算装置から供給されるか、または2つの個別セルを組み合わせたボックスの単精度浮動小数点演算装置から供給されるか、または1つのダブルボックスの倍精度演算装置から供給される。データの他に、適切なトリガ信号および/または同期信号および/または制御信号も一緒に多重化できることを述べておく。
本発明の別の対象は、ブール演算(BPU Bit Processing Unit)を処理するための効率的なユニットである。実用的にはたとえば、以下の計算がこのようなユニットに特に重要である:
状態マシン(state machine)の具現化
符号化器および復号化器の具現化
たとえばDES/3DESで必要とされるような、ビットレベルでの置換の実行
たとえば擬似ノイズ発生器等のシリアルビット算術の実装
状態マシン(state machine)の具現化
符号化器および復号化器の具現化
たとえばDES/3DESで必要とされるような、ビットレベルでの置換の実行
たとえば擬似ノイズ発生器等のシリアルビット算術の実装
たとえばALU等の粗粒度の演算装置は、例として挙げた用途には不向きである。というのも、個々のビットを計算するのに必要とされる演算ステップが非常に多くなり、それと同時に、幅が大きいデータワード(たとえば16ビット)のうち実際に使用されるのは数ビットだけであることが多く、典型的なケースでは1ビットのみになることも多いからである。
従来技術のFPGA技術(たとえばザイリンクス社、アルテラ社)は確かに、例として挙げたすべての関数を実行できるが、所要面積、コンフィギュレーションビット数および電気消費量に対する効率は比較的低い。
本発明のBPUの構成は、どちらかというとロジックネットワークに任意に使用できることを目的にしておらず、特に以下の機能に特化される:
1.状態マシンの構成
2.カウンタおよびシフタの構成
3.(たとえばDESのための)ビット置換器の構成
4.条件付きマルチプレクサの構成
5.(たとえば擬似ノイズ発生器のための)高密度かつ高効率のビットシリアル演算の構築
1.状態マシンの構成
2.カウンタおよびシフタの構成
3.(たとえばDESのための)ビット置換器の構成
4.条件付きマルチプレクサの構成
5.(たとえば擬似ノイズ発生器のための)高密度かつ高効率のビットシリアル演算の構築
本発明で第一に重要な観点は、高密度かつ高効率のビットシリアル演算を実行するためのハードウェア要素の実装である。
とりわけ、条件付きマルチプレクサをハードウェアで直接サポートすることも、本発明の別の重要な観点であると見られる。たとえば任意のビット置換、ビット抽出またはビット組み合わせを行うために任意の多重化機能をビットレベルで保証することの特別な重要性の他に、各任意の組合せネットワークをマルチプレクサに構成することもできる。Verilog または VHDL 等のハードウェア設計言語(HDL)は基本的に、条件付き多重化演算を使用することをベースとする。この条件付き多重化演算は、合成ツールによってゲートネットワークリストに転換される。
下記で説明するアーキテクチャによって、HDL構成のシミュレートをより簡単かつより迅速にすることができる。それに対し、FPGAアーキテクチャのための従来技術の合成ツールの実行時間は数時間から数日にまで及ぶので、シミュレートをより迅速に行えるようになることは著しく有利である。
とりわけHDLは、プログラマによってより最適に記述することができる。というのもプログラマは、その基礎となるハードウェアを簡単かつ根本的に理解できるので、コード、算術/アーキテクチャおよび実装を格段に良好に最適化できるからである。確かに、従来技術の合成ツールではたいてい、実に良好な自動最適化技術を実現することができるが、このような自動最適化技術はしばしば、特に脆弱かつ重要なコード箇所で動作不全になることが多い。それと同時に、このような合成ツールはハードウェアにどのような影響も直接及ぼすことができるので、最適な具現化はほとんど不可能であることが多い。
条件付きマルチプレクサはHDLにおいて典型的な構成であり、それと同時に、複雑なロジックを表す基本的なモデルも形成する:
var1 = if (bool_func1) ? (bool_func2): (bool_func3)ブール関数 bool_func1 が真である場合、変数var1にブール関数 bool_func2 が割り当てられ、そうでない場合には bool_func3 が割り当てられる。
var1 = if (bool_func1) ? (bool_func2): (bool_func3)ブール関数 bool_func1 が真である場合、変数var1にブール関数 bool_func2 が割り当てられ、そうでない場合には bool_func3 が割り当てられる。
本発明では論理処理ユニットは、bool_func1 の論理的真理ないしは論理値を評価する比較器を有する。この論理的真理ないしは論理値の評価は有利には、通常の高速比較器によって行われ、この比較器はたとえば、XORゲートを結合して構成される。この評価の結果(TRUE/FALSE <=> 1/0)は1つまたは複数のマルチプレクサへ転送され、該1つまたは複数のマルチプレクサは結果に応じて(TRUE=1である場合)bool_func2 を出力var1に接続するか、または(FALSE=0である場合)bool_func3 を接続する。ここではマルチプレクサは1ビット幅であるかまたは複数ビット幅であり、有利にはハードウェア実装によって、最適な混合形態を実施することができる。
さらに有利には、ハードウェア実装によって、マルチプレクサの前に簡単な論理結合(ブール関数)を行うための手段を設ける。たとえば、各マルチプレクサ入力側より前に、2つの入力信号を任意にブール結合するかまたは2つの入力信号のうち1つのみを直接転送するための2重ルックアップテーブルを具現化することができる。
図6に、本発明のBPUの別の実施形態を示す。同図では、コンフィギュレート可能な論理フィールド(フィールドプログラマブルゲートアレイ、FPGA)の4×4の抜粋を示す。各ゲートは3入力3出力ルックアップテーブル(LUT、0601)を基礎とし、このルックアップテーブルは、3つの各出力側ごとに独立したルックアップ関数を3つすべての入力すべてに基づいて計算する。従来技術のFPGAと対照的に、個々のセルはレジスタ機能を有さず、複数のセル(この実施例では4×4行列)から成るセットに対してレジスタが側縁において配属されている(この実施例では南側および東側の側縁)。LUT(0602)の側縁の各出力側にレジスタ(0603)がコンフィギュレート可能に配属されており、該レジスタ(0603)は、出力信号をレジスタ遅延して転送するためにオンされるか、または該レジスタをマルチプレクサ機能によって迂回することができる。このレジスタを迂回することは、出力信号を遅延無しで転送することに相応する。
LUTは上位のバスシステムから入力信号を受け取り、この入力信号の受け取りはマルチプレクサによってコンフィギュレートすることができる(0604)。さらに、レジスタ値(f[0..2][0..2])をLUT入力側にフィードバックすることもできる。このフィードバックも、マルチプレクサ(0604)を介してコンフィギュレートすることができる。
図中の4×4行列は自由にカスケード接続することができるので、コンフィギュレート可能な大きな論理フィールドを構成することができる。
本発明のBPUの重要な側面は、タイミングの予測を改善することと、非同期のフィードバックによって回路が物理的に破壊される原因となるいわゆる無遅延フィードバックループを防止することである。こうするためには、以下の規則を実装する:データは北方向および南方向のうち1方向のみと、東方向および西方向のうち1方向のみとに、論理フィールドで転送される。
図6中の実施例では、主信号伝送方向は北から南への方向のカラムであり、繰り上げに関しては、西から東への方向の列内で信号を転送することができる。対角線上の信号伝送も、北南方向において行うことができる。
図7に、図6に示された本発明のBPUを同出願人のVPUアーキテクチャに組み込む一例を示す。このことに関しては、同出願人のすべてのなされた特許出願の内容全体を、本願発明の開示内容とする。この回路はバス入力インタフェース(0701)を有し、該バス入力インタフェース(0701)はコンフィギュレート可能なバスシステムからデータおよび/またはトリガを受け取る。バス出力インタフェース(0702)が、一方の論理フィールド(0703)によって生成された信号をデータバスおよび/またはトリガバスに接続する。論理フィールド0703は図6に示された複数のBPUを含み、これらのBPUはタイル状に多次元で配置されている。矢印は論理アレイ内の信号の伝送方向を示しており、図6中の記載に相応する。
バスインタフェースおよび論理フィールドに、自由にプログラミング可能な状態マシン(0704)が所属しており、この状態マシン(0704)は、バス転送の順序制御および/または制御信号の生成および/または同期化タスクを行う。
とりわけPACT02およびPACT08から公知であるように、VPU技術は、データ転送および/またはトリガ転送の自動同期を行うためのハンドシェイクプロトコルを有する。本発明のBPUをVPU技術において使用する場合、状態マシン(0704)はさらに、とりわけ入力バスおよび/または出力バスのバスプロトコルのハンドシェイク(RDY/ACK)を管理する。
バス入力インタフェース(0701)および/またはバス出力インタフェース(0702)からの信号は制御のために状態マシンへ転送され、状態マシンは相応のインタフェースに対してデータ転送を制御するための制御信号を生成する。さらに、状態マシンは論理フィールド(0703)から信号を受け取ることにより、該論理フィールド(0703)の内部状態に応答することができる。それとは逆に、状態マシンは制御信号を論理フィールドへ伝送することができる。
状態マシンは有利には、論理フィールドを使用するフレキシビリティを最大にするため、広範な領域においてプログラミング可能に構成される。しかし有利には、状態マシンの動作が危険な状態に陥りやすい部分は、たとえばバスのハンドシェイクプロトコル等は固定実装される。このことにより、BPUの基本的機能がシステムレベルで保証される。バス転送全体がシステムレベルで、状態マシンの固定実装された部分によって定義ごとに適正に動作する。このことにより、システムレベルでのプログラミングおよびデバッギングが格段に容易になる。
状態マシン(0704)のこのような固定実装部分に、プログラマが実際のアプリケーションに依存して論理フィールドの制御を具現化できる自由にプログラミング可能な部分が割り当てられる。
Claims (1)
- 複数の粗粒度の固定小数点演算ユニットが、各ブロックごとに浮動小数点ユニットを構成するように複数のブロックにまとめられていることを特徴とする、リコンフィギュラブルなデータ処理ユニット。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102007055131 | 2007-11-17 | ||
DE102007056806 | 2007-11-23 | ||
DE102008014705 | 2008-03-18 | ||
PCT/DE2008/001892 WO2009062496A1 (de) | 2007-11-17 | 2008-11-17 | Rekonfiguri erbare fliesskomma- und bit- ebenen datenverarbeitungseinheit |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011503733A true JP2011503733A (ja) | 2011-01-27 |
Family
ID=40384208
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010533431A Pending JP2011503733A (ja) | 2007-11-17 | 2008-11-17 | リコンフィギュラブルな浮動小数点レベルおよびビットレベルのデータ処理ユニット |
Country Status (5)
Country | Link |
---|---|
US (1) | US20100281235A1 (ja) |
EP (1) | EP2220554A1 (ja) |
JP (1) | JP2011503733A (ja) |
DE (1) | DE112008003643A5 (ja) |
WO (1) | WO2009062496A1 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9465578B2 (en) * | 2013-12-13 | 2016-10-11 | Nvidia Corporation | Logic circuitry configurable to perform 32-bit or dual 16-bit floating-point operations |
US10409614B2 (en) | 2017-04-24 | 2019-09-10 | Intel Corporation | Instructions having support for floating point and integer data types in the same register |
US10474458B2 (en) | 2017-04-28 | 2019-11-12 | Intel Corporation | Instructions and logic to perform floating-point and integer operations for machine learning |
US20220180467A1 (en) | 2019-03-15 | 2022-06-09 | Intel Corporation | Systems and methods for updating memory side caches in a multi-gpu configuration |
BR112021016106A2 (pt) | 2019-03-15 | 2021-11-09 | Intel Corp | Processador gráfico de propósito geral, método e sistema de processamento de dados |
US11934342B2 (en) | 2019-03-15 | 2024-03-19 | Intel Corporation | Assistance for hardware prefetch in cache access |
Family Cites Families (99)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US36988A (en) * | 1862-11-25 | Improvement in the refining and manufacture of sugar | ||
US56062A (en) * | 1866-07-03 | Improved machine for making nuts | ||
US3564506A (en) * | 1968-01-17 | 1971-02-16 | Ibm | Instruction retry byte counter |
US3753008A (en) * | 1970-06-20 | 1973-08-14 | Honeywell Inf Systems | Memory pre-driver circuit |
US5459846A (en) * | 1988-12-02 | 1995-10-17 | Hyatt; Gilbert P. | Computer architecture system having an imporved memory |
US3754211A (en) * | 1971-12-30 | 1973-08-21 | Ibm | Fast error recovery communication controller |
US3956589A (en) * | 1973-11-26 | 1976-05-11 | Paradyne Corporation | Data telecommunication system |
US4151611A (en) * | 1976-03-26 | 1979-04-24 | Tokyo Shibaura Electric Co., Ltd. | Power supply control system for memory systems |
US4594682A (en) * | 1982-12-22 | 1986-06-10 | Ibm Corporation | Vector processing |
US4646300A (en) * | 1983-11-14 | 1987-02-24 | Tandem Computers Incorporated | Communications method |
US4748580A (en) * | 1985-08-30 | 1988-05-31 | Advanced Micro Devices, Inc. | Multi-precision fixed/floating-point processor |
US5070475A (en) * | 1985-11-14 | 1991-12-03 | Data General Corporation | Floating point unit interface |
US4760525A (en) * | 1986-06-10 | 1988-07-26 | The United States Of America As Represented By The Secretary Of The Air Force | Complex arithmetic vector processor for performing control function, scalar operation, and set-up of vector signal processing instruction |
US5119290A (en) * | 1987-10-02 | 1992-06-02 | Sun Microsystems, Inc. | Alias address support |
CA1286421C (en) * | 1987-10-14 | 1991-07-16 | Martin Claude Lefebvre | Message fifo buffer controller |
US5081575A (en) * | 1987-11-06 | 1992-01-14 | Oryx Corporation | Highly parallel computer architecture employing crossbar switch with selectable pipeline delay |
US5031179A (en) * | 1987-11-10 | 1991-07-09 | Canon Kabushiki Kaisha | Data communication apparatus |
NL8800071A (nl) * | 1988-01-13 | 1989-08-01 | Philips Nv | Dataprocessorsysteem en videoprocessorsysteem, voorzien van een dergelijk dataprocessorsysteem. |
US4939641A (en) * | 1988-06-30 | 1990-07-03 | Wang Laboratories, Inc. | Multi-processor system with cache memories |
US5245616A (en) * | 1989-02-24 | 1993-09-14 | Rosemount Inc. | Technique for acknowledging packets |
WO1991011765A1 (en) * | 1990-01-29 | 1991-08-08 | Teraplex, Inc. | Architecture for minimal instruction set computing system |
US5036493A (en) * | 1990-03-15 | 1991-07-30 | Digital Equipment Corporation | System and method for reducing power usage by multiple memory modules |
CA2045773A1 (en) * | 1990-06-29 | 1991-12-30 | Compaq Computer Corporation | Byte-compare operation for high-performance processor |
JPH04328657A (ja) * | 1991-04-30 | 1992-11-17 | Toshiba Corp | キャッシュメモリ |
JP2572522B2 (ja) * | 1992-05-12 | 1997-01-16 | インターナショナル・ビジネス・マシーンズ・コーポレイション | コンピューティング装置 |
US5821885A (en) * | 1994-07-29 | 1998-10-13 | Discovision Associates | Video decompression |
US5339840A (en) * | 1993-04-26 | 1994-08-23 | Sunbelt Precision Products Inc. | Adjustable comb |
US5435000A (en) * | 1993-05-19 | 1995-07-18 | Bull Hn Information Systems Inc. | Central processing unit using dual basic processing units and combined result bus |
US5581734A (en) * | 1993-08-02 | 1996-12-03 | International Business Machines Corporation | Multiprocessor system with shared cache and data input/output circuitry for transferring data amount greater than system bus capacity |
US5502838A (en) * | 1994-04-28 | 1996-03-26 | Consilium Overseas Limited | Temperature management for integrated circuits |
US6064819A (en) * | 1993-12-08 | 2000-05-16 | Imec | Control flow and memory management optimization |
US5677909A (en) * | 1994-05-11 | 1997-10-14 | Spectrix Corporation | Apparatus for exchanging data between a central station and a plurality of wireless remote stations on a time divided commnication channel |
US5584013A (en) * | 1994-12-09 | 1996-12-10 | International Business Machines Corporation | Hierarchical cache arrangement wherein the replacement of an LRU entry in a second level cache is prevented when the cache entry is the only inclusive entry in the first level cache |
US5603005A (en) * | 1994-12-27 | 1997-02-11 | Unisys Corporation | Cache coherency scheme for XBAR storage structure with delayed invalidates until associated write request is executed |
JP3598139B2 (ja) * | 1994-12-28 | 2004-12-08 | 株式会社日立製作所 | データ処理装置 |
US5682491A (en) * | 1994-12-29 | 1997-10-28 | International Business Machines Corporation | Selective processing and routing of results among processors controlled by decoding instructions using mask value derived from instruction tag and processor identifier |
US5778237A (en) * | 1995-01-10 | 1998-07-07 | Hitachi, Ltd. | Data processor and single-chip microcomputer with changing clock frequency and operating voltage |
ZA965340B (en) * | 1995-06-30 | 1997-01-27 | Interdigital Tech Corp | Code division multiple access (cdma) communication system |
US5784313A (en) * | 1995-08-18 | 1998-07-21 | Xilinx, Inc. | Programmable logic device including configuration data or user data memory slices |
CA2166369C (en) * | 1995-12-29 | 2004-10-19 | Robert J. Blainey | Method and system for determining inter-compilation unit alias information |
US5898602A (en) * | 1996-01-25 | 1999-04-27 | Xilinx, Inc. | Carry chain circuit with flexible carry function for implementing arithmetic and logical functions |
US5727229A (en) * | 1996-02-05 | 1998-03-10 | Motorola, Inc. | Method and apparatus for moving data in a parallel processor |
JP3934710B2 (ja) * | 1996-09-13 | 2007-06-20 | 株式会社ルネサステクノロジ | マイクロプロセッサ |
US5832288A (en) * | 1996-10-18 | 1998-11-03 | Samsung Electronics Co., Ltd. | Element-select mechanism for a vector processor |
US5895487A (en) * | 1996-11-13 | 1999-04-20 | International Business Machines Corporation | Integrated processing and L2 DRAM cache |
US5913925A (en) * | 1996-12-16 | 1999-06-22 | International Business Machines Corporation | Method and system for constructing a program including out-of-order threads and processor and method for executing threads out-of-order |
GB2323188B (en) * | 1997-03-14 | 2002-02-06 | Nokia Mobile Phones Ltd | Enabling and disabling clocking signals to elements |
US5996048A (en) * | 1997-06-20 | 1999-11-30 | Sun Microsystems, Inc. | Inclusion vector architecture for a level two cache |
US6058266A (en) * | 1997-06-24 | 2000-05-02 | International Business Machines Corporation | Method of, system for, and computer program product for performing weighted loop fusion by an optimizing compiler |
US6072348A (en) * | 1997-07-09 | 2000-06-06 | Xilinx, Inc. | Programmable power reduction in a clock-distribution circuit |
US6026478A (en) * | 1997-08-01 | 2000-02-15 | Micron Technology, Inc. | Split embedded DRAM processor |
US6078736A (en) * | 1997-08-28 | 2000-06-20 | Xilinx, Inc. | Method of designing FPGAs for dynamically reconfigurable computing |
US6212544B1 (en) * | 1997-10-23 | 2001-04-03 | International Business Machines Corporation | Altering thread priorities in a multithreaded processor |
JPH11147335A (ja) * | 1997-11-18 | 1999-06-02 | Fuji Xerox Co Ltd | 描画処理装置 |
US6075935A (en) * | 1997-12-01 | 2000-06-13 | Improv Systems, Inc. | Method of generating application specific integrated circuits using a programmable hardware architecture |
US6260114B1 (en) * | 1997-12-30 | 2001-07-10 | Mcmz Technology Innovations, Llc | Computer cache memory windowing |
US6096091A (en) * | 1998-02-24 | 2000-08-01 | Advanced Micro Devices, Inc. | Dynamically reconfigurable logic networks interconnected by fall-through FIFOs for flexible pipeline processing in a system-on-a-chip |
US6298043B1 (en) * | 1998-03-28 | 2001-10-02 | Nortel Networks Limited | Communication system architecture and a connection verification mechanism therefor |
US6456628B1 (en) * | 1998-04-17 | 2002-09-24 | Intelect Communications, Inc. | DSP intercommunication network |
US6173419B1 (en) * | 1998-05-14 | 2001-01-09 | Advanced Technology Materials, Inc. | Field programmable gate array (FPGA) emulator for debugging software |
US6052524A (en) * | 1998-05-14 | 2000-04-18 | Software Development Systems, Inc. | System and method for simulation of integrated hardware and software components |
US6449283B1 (en) * | 1998-05-15 | 2002-09-10 | Polytechnic University | Methods and apparatus for providing a fast ring reservation arbitration |
WO2001006371A1 (en) * | 1998-07-21 | 2001-01-25 | Seagate Technology Llc | Improved memory system apparatus and method |
US6289369B1 (en) * | 1998-08-25 | 2001-09-11 | International Business Machines Corporation | Affinity, locality, and load balancing in scheduling user program-level threads for execution by a computer system |
US20020152060A1 (en) * | 1998-08-31 | 2002-10-17 | Tseng Ping-Sheng | Inter-chip communication system |
US7100026B2 (en) * | 2001-05-30 | 2006-08-29 | The Massachusetts Institute Of Technology | System and method for performing efficient conditional vector operations for data parallel architectures involving both input and conditional vector values |
US6249756B1 (en) * | 1998-12-07 | 2001-06-19 | Compaq Computer Corp. | Hybrid flow control |
WO2000034883A2 (en) * | 1998-12-11 | 2000-06-15 | Microsoft Corporation | Accelerating a distributed component architecture over a network using an implicit flow control |
US6694434B1 (en) * | 1998-12-23 | 2004-02-17 | Entrust Technologies Limited | Method and apparatus for controlling program execution and program distribution |
US6496902B1 (en) * | 1998-12-31 | 2002-12-17 | Cray Inc. | Vector and scalar data cache for a vector multiprocessor |
US6321298B1 (en) * | 1999-01-25 | 2001-11-20 | International Business Machines Corporation | Full cache coherency across multiple raid controllers |
US6191614B1 (en) * | 1999-04-05 | 2001-02-20 | Xilinx, Inc. | FPGA configuration circuit including bus-based CRC register |
GB9909196D0 (en) * | 1999-04-21 | 1999-06-16 | Texas Instruments Ltd | Transfer controller with hub and ports architecture |
US6624819B1 (en) * | 2000-05-01 | 2003-09-23 | Broadcom Corporation | Method and system for providing a flexible and efficient processor for use in a graphics processing system |
US6845445B2 (en) * | 2000-05-12 | 2005-01-18 | Pts Corporation | Methods and apparatus for power control in a scalable array of processor elements |
US6725334B2 (en) * | 2000-06-09 | 2004-04-20 | Hewlett-Packard Development Company, L.P. | Method and system for exclusive two-level caching in a chip-multiprocessor |
US7164422B1 (en) * | 2000-07-28 | 2007-01-16 | Ab Initio Software Corporation | Parameterized graphs with conditional components |
EP1182559B1 (en) * | 2000-08-21 | 2009-01-21 | Texas Instruments Incorporated | Improved microprocessor |
JP2002123563A (ja) * | 2000-10-13 | 2002-04-26 | Nec Corp | コンパイル方法および合成装置ならびに記録媒体 |
US20020099759A1 (en) * | 2001-01-24 | 2002-07-25 | Gootherts Paul David | Load balancer with starvation avoidance |
US6836849B2 (en) * | 2001-04-05 | 2004-12-28 | International Business Machines Corporation | Method and apparatus for controlling power and performance in a multiprocessing system according to customer level operational requirements |
WO2002103532A2 (de) * | 2001-06-20 | 2002-12-27 | Pact Xpp Technologies Ag | Verfahren zur bearbeitung von daten |
US7036114B2 (en) * | 2001-08-17 | 2006-04-25 | Sun Microsystems, Inc. | Method and apparatus for cycle-based computation |
US6625631B2 (en) * | 2001-09-28 | 2003-09-23 | Intel Corporation | Component reduction in montgomery multiplier processing element |
US6668237B1 (en) * | 2002-01-17 | 2003-12-23 | Xilinx, Inc. | Run-time reconfigurable testing of programmable logic devices |
US20030154349A1 (en) * | 2002-01-24 | 2003-08-14 | Berg Stefan G. | Program-directed cache prefetching for media processors |
US20030226056A1 (en) * | 2002-05-28 | 2003-12-04 | Michael Yip | Method and system for a process manager |
AU2003286131A1 (en) * | 2002-08-07 | 2004-03-19 | Pact Xpp Technologies Ag | Method and device for processing data |
WO2005010632A2 (en) * | 2003-06-17 | 2005-02-03 | Pact Xpp Technologies Ag | Data processing device and method |
US6957306B2 (en) * | 2002-09-09 | 2005-10-18 | Broadcom Corporation | System and method for controlling prefetching |
US7571303B2 (en) * | 2002-10-16 | 2009-08-04 | Akya (Holdings) Limited | Reconfigurable integrated circuit |
US7299458B2 (en) * | 2002-10-31 | 2007-11-20 | Src Computers, Inc. | System and method for converting control flow graph representations to control-dataflow graph representations |
US7155708B2 (en) * | 2002-10-31 | 2006-12-26 | Src Computers, Inc. | Debugging and performance profiling using control-dataflow graph representations with reconfigurable hardware emulation |
US7412581B2 (en) * | 2003-10-28 | 2008-08-12 | Renesas Technology America, Inc. | Processor for virtual machines and method therefor |
US7299339B2 (en) * | 2004-08-30 | 2007-11-20 | The Boeing Company | Super-reconfigurable fabric architecture (SURFA): a multi-FPGA parallel processing architecture for COTS hybrid computing framework |
US7455450B2 (en) * | 2005-10-07 | 2008-11-25 | Advanced Micro Devices, Inc. | Method and apparatus for temperature sensing in integrated circuits |
US7759968B1 (en) * | 2006-09-27 | 2010-07-20 | Xilinx, Inc. | Method of and system for verifying configuration data |
US8463835B1 (en) * | 2007-09-13 | 2013-06-11 | Xilinx, Inc. | Circuit for and method of providing a floating-point adder |
US20090193384A1 (en) * | 2008-01-25 | 2009-07-30 | Mihai Sima | Shift-enabled reconfigurable device |
-
2008
- 2008-11-17 EP EP08850421A patent/EP2220554A1/de not_active Ceased
- 2008-11-17 WO PCT/DE2008/001892 patent/WO2009062496A1/de active Application Filing
- 2008-11-17 JP JP2010533431A patent/JP2011503733A/ja active Pending
- 2008-11-17 DE DE112008003643T patent/DE112008003643A5/de not_active Withdrawn
- 2008-11-17 US US12/743,356 patent/US20100281235A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
WO2009062496A1 (de) | 2009-05-22 |
DE112008003643A5 (de) | 2010-10-28 |
EP2220554A1 (de) | 2010-08-25 |
US20100281235A1 (en) | 2010-11-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102073481B (zh) | 多核dsp可重构专用集成电路系统 | |
CN103793203B (zh) | 响应于输入数据值降低fma单元中的功率消耗 | |
CN111566623A (zh) | 用于可配置空间加速器中的集成性能监视的装置、方法和系统 | |
US20120191767A1 (en) | Circuit which Performs Split Precision, Signed/Unsigned, Fixed and Floating Point, Real and Complex Multiplication | |
Allan et al. | Parameterised floating-point arithmetic on FPGAs | |
JP2010539582A (ja) | 浮動小数点演算のための再構成アレイプロセッサ | |
JP2011503733A (ja) | リコンフィギュラブルな浮動小数点レベルおよびビットレベルのデータ処理ユニット | |
Li et al. | Time-multiplexed FPGA overlay architectures: A survey | |
Abdelhamid et al. | A highly-efficient and tightly-connected many-core overlay architecture | |
Perera et al. | Analysis of single-chip hardware support for mobile and embedded applications | |
KR20200139178A (ko) | 집적 회로를 위한 데이터 프로세싱 엔진 타일 아키텍처 | |
Véstias | High-performance reconfigurable computing granularity | |
Abdelhamid et al. | A scalable many-core overlay architecture on an HBM2-enabled multi-die FPGA | |
Hussain et al. | HARP 2: An X-Scale Reconfigurable Accelerator-Rich Platform for Massively-Parallel Signal Processing Algorithms | |
US11250105B2 (en) | Computationally efficient general matrix-matrix multiplication (GeMM) | |
Patle et al. | Implementation of Baugh-Wooley Multiplier Based on Soft-Core Processor | |
Brunelli et al. | A vhdl model and implementation of a coarse-grain reconfigurable coprocessor for a risc core | |
José et al. | A many-core co-processor for embedded parallel computing on FPGA | |
Sano et al. | Performance evaluation of finite-difference time-domain (FDTD) computation accelerated by FPGA-based custom computing machine | |
Vestias | High-performance reconfigurable computing | |
US20090063821A1 (en) | Processor apparatus including operation controller provided between decode stage and execute stage | |
Kim et al. | Hierarchical reconfigurable computing arrays for efficient CGRA-based embedded systems | |
Véstias et al. | A many-core overlay for high-performance embedded computing on FPGAs | |
Ferreira et al. | Reducing interconnection cost in coarse-grained dynamic computing through multistage network | |
Hussain et al. | Design of a hybrid multicore platform for high performance reconfigurable computing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20101228 |