JP2005539292A - 信号伝播を終了させる機構を有するプログラマブルパイプラインファブリック - Google Patents
信号伝播を終了させる機構を有するプログラマブルパイプラインファブリック Download PDFInfo
- Publication number
- JP2005539292A JP2005539292A JP2004529344A JP2004529344A JP2005539292A JP 2005539292 A JP2005539292 A JP 2005539292A JP 2004529344 A JP2004529344 A JP 2004529344A JP 2004529344 A JP2004529344 A JP 2004529344A JP 2005539292 A JP2005539292 A JP 2005539292A
- Authority
- JP
- Japan
- Prior art keywords
- information
- register
- value
- last
- read
- 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
- 239000004744 fabric Substances 0.000 title description 13
- 230000007246 mechanism Effects 0.000 title description 2
- 238000000034 method Methods 0.000 claims abstract description 25
- 230000000873 masking effect Effects 0.000 claims description 8
- 230000001902 propagating effect Effects 0.000 claims 3
- 230000008569 process Effects 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 230000003068 static effect Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30141—Implementation provisions of register files, e.g. ports
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3243—Power saving in microcontroller unit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
- G06F9/383—Operand prefetching
- G06F9/3832—Value prediction for operands; operand history buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Logic Circuits (AREA)
- Executing Machine-Instructions (AREA)
- Power Sources (AREA)
- Advance Control (AREA)
Abstract
レジスタが最後に使用されていることを決定するために、「レジスタの使用」情報を格納し使用することにより、電力消費量の節減を達成する方法及び装置について開示する。レジスタの使用情報は、特定のレジスタに対して「最後に読み出された」情報の形態をとることができる。最後に読み出された情報は、読み出された後、レジスタの値をゼロに強制するために用いられるか、又はそのレジスタだけをクロックし、他のレジスタをマスクオフするように用いられる。レジスタの使用情報を用いて電力節約するための幾つかの方法とハードウエアの変形例についても開示する。
Description
連邦政府の資金援助による研究に関する陳述
この発明は、少なくとも一部分は、契約番号DABT63−96−C−0083のDARPA−ITO/TTOによる資金の援助を通じて開発されたもので、連邦政府は、この発明の権利を有することができる。
この発明は、少なくとも一部分は、契約番号DABT63−96−C−0083のDARPA−ITO/TTOによる資金の援助を通じて開発されたもので、連邦政府は、この発明の権利を有することができる。
本発明は、リコンフィギュラブル・アーキテクチャに関するもので、より具体的には、情報をパイプラインのように処理するのに用いられるリコンフィギュラブル・アーキテクチャに関する。
従来、リコンフィギュラブル演算のための方法として、ユーザの定義されたアプリケーションを実行するために、プログラマブルハードウエアを静的にコンフィギュアすることが行われている。このようなコンフィギュレーションの静的性質は、2つの問題を引き起こす。その1つは、より多くのハードウエアを必要とすることであり、もう1つは、単一のハードウエアデザインでは、将来のプロセス・ジェネレーションで不可避的に利用されるようになるであろう追加のリソースを利用できないことである。パイプライン化されたリコンフィギュレーションと称される技術は、そのハードウエアの迅速なリコンフィギュレーションを通じて、小さなピースのハードウエア上で、大きな論理コンフィギュレーションを実行する(implement)。この技術の場合、コンパイラは、固定ハードウエアの制約を満足させる手段を担うことはできなくなる。また、デザインの性能向上は、そのデザインに割り当てられたハードウエアの量に比例する。
パイプライン化コンフィギュレーションは、単一の静的コンフィギュレーションを、アプリケーションのパイプラインステージに対応する複数のピースに分割することにより、パイプライン化演算を仮想化することを含んでいる。各パイプラインステージは、1サイクル毎に1つずつ、ファブリックの中へロードされる。これは、ファブリックの中にコンフィギュレーションの全体が一時に存在しない場合でも、演算の実行を可能にする。
図1は、仮想プロセスを示すもので、3ステージのファブリックに仮想化された5ステージのパイプラインを示している。図1Aは、5ステージのアプリケーションを示し、6連続サイクルにおける各々の論理(仮想)パイプラインステージの状態を示している。図1Bは、物理ステージ(physical stages)がこのアプリケーションをエグゼキュート(execute)するときのファブリック内の物理ステージの状態を示している。この例では、仮想パイプステージ1は、サイクル1でコンフィギュアされ、次のサイクルでエグゼキュートできる状態にあり、2つのサイクルに対してエグゼキュートする。物理パイプステージ4は無い。それゆえ、サイクル4では、第4番目の仮想パイプステージは物理ステージ1でコンフィギュアされ、第1の仮想ステージを取り替える。一旦パイプラインが一杯になると、5サイクル毎に2連続サイクルに対して2つの結果を生じる。例えば、サイクル2、3、7、8、...は入力を消費し、サイクル6、7、11、12、...は出力を発生する。
図2は、パイプライン化ファブリックのアーキテクチュラルクラスのアブストラクトビューである。複数のプロセッシングエレメント(PEs)の各ロウは、それに関連のある相互接続と共に、ストライプと称される。各々のプロセッシングエレメント(PE)は、典型的には、演算論理ユニット(ALU)とパスレジスタファイルを含んでいる。各々のALUは、ルックアップテーブル(LUTs)と、キャリーチェーン、ゼロ検出等のための追加回路を含んでいる。デザイナーは、一組のNBビット幅ALUsを用いて、組合せ論理を実装する。ALUの動作は静的であり、特定の仮想ストライプは物理ストライプに存在する。デザイナーは、ALUsのキャリーラインについて、カスケード、チェーン又は他の接続を行ない、よりワイドなALUを構築し、相互接続ネットワークを介してPEsどうしをチェーンし、複合的な組合せ機能を構築する。
パイプライン・リコンフィギュレーションのために重要なエネーブリング構造の1つは、パスレジスタファイルである。パスレジスタファイルの一例を図3に示している。パスレジスタファイル(10)は、4つのレジスタ(12)(14)(16)(18)(これらは任意のビット幅を有することができる)と、この図の中で4つのマルチプレクサ(20)(22)(24)(26)からなる書き込みポートと、書き込みアドレスデコーダ(28)と、この図の中で読み出しアドレスに応答する4〜1のマルチプレクサ(30)からなる読み出しポートと、を具えている。図3の構造では、このレジスタファイル(10)に接続された機能ユニットは、レジスタファイルから一の値を読み出すことができるし、また、機能ユニットは、一の値を、固有レジスタ(specific registers)(12)(14)(16)(18)の1つに書き込むことができる。レジスタ(12)(14)(16)(18)の1つへ、書き込みポートによる値の書き込みが行われない場合、先のストライプにおける先のパスレジスタファイルの中の対応するパスレジスタからの値が、ライン(32)(34)(36)(38)を通じて、夫々、レジスタ(12)(14)(16)(18)の中へ書き込まれる。
図4は、4つのパスレジスタファイル(42)(44)(46)(48)のアプリケーションへの使用例を示している。この図において、パスレジスタファイル(42)(44)(46)(48)はリング型に接続されているが、そうでなくてもよい。図4では、レジスタファイル(42)(44)(46)(48)の各々について、レジスタは1つだけが示されているが、どのレジスタファイルもレジスタの数は任意である。図4において、機能ユニット1が発生したデータは、1つのレジスタファイル(44)を通って、機能ユニット2へ進む。
図4の構造の主な問題は、機能ユニット2だけに用いられるべき値が、その後のストライプにおける他のパスレジスタファイル(46)(48)(42)でも、引き続き存続することである。もし、その値が、このレジスタを使用する他のストライプによって上書きされる(overwritten)と、その値は、他の機能ユニットに伝播し、機能ユニット1に戻る。この動作(activity)は、演算に役立つものでないので、相当な電力の無駄になる。
パイプラインのリコンフィギュラブル・デバイスのパスレジスタファイルにおいて、電力消費に関連する問題とは、チップ内にある先のアプリケーションからの古い値が、チップの中を伝播され続けて、対象の演算とは無関係であるにも拘わらず、電力を消費することである。それゆえ、演算に必要でなくなった信号を終了させるための機構をパイプラインファブリックの中に設ける必要がある。
<発明の要旨>
本発明は、「レジスタ使用(register use)」情報を格納して使用し、最後に使用されるレジスタであることを決定し、節電を達成できる方法及び装置に関するものである。レジスタ使用情報は、特定のレジスタに対して、「最後の読み出し(last read)」情報の形態をとることもできる。最後読み出し情報は、読み出しが終わった後に、レジスタの値を強制的に一定値にするために用いられるか、又は、他のレジスタのマスクを外して、そのレジスタだけをクロックするのに用いられる。「レジスタ使用」情報を使用して節電を達成するための方法及びハードウエアについて、幾つかの変形例が開示されている。これらの利点及その他については、以下に記載する発明の詳細な説明によって明らかになるであろう。
本発明は、「レジスタ使用(register use)」情報を格納して使用し、最後に使用されるレジスタであることを決定し、節電を達成できる方法及び装置に関するものである。レジスタ使用情報は、特定のレジスタに対して、「最後の読み出し(last read)」情報の形態をとることもできる。最後読み出し情報は、読み出しが終わった後に、レジスタの値を強制的に一定値にするために用いられるか、又は、他のレジスタのマスクを外して、そのレジスタだけをクロックするのに用いられる。「レジスタ使用」情報を使用して節電を達成するための方法及びハードウエアについて、幾つかの変形例が開示されている。これらの利点及その他については、以下に記載する発明の詳細な説明によって明らかになるであろう。
<発明の詳細な説明>
図5は、好ましくない信号伝播を終了させるための本発明の一実施例を示している。図5を参照すると、既知の如く、各々の物理ストライプは、例えば、コンフィギュレーションワードを物理ストライプに書き込むことにより、仮想ストライプでコンフィギュアされる。コンフィギュレーション管理及びデータ管理の詳細な説明を記載した文献がある[Schmit, et al, "Managing Pipeline-ReconfigurableFPGAs"published in ACM 6th International Symposium on FPGAs, February 1998]。この文献の全体はその引用を以て本願への記載加入とする。コンフィギュレーションワードを物理ストライプへ書き込むタスクのより詳細については、前記文献を参照することができる。リコンフィギュラブル・ファブリックの構造と動作に関するさらなる詳細については、文献[Schmit, et al,"PipeRench : a virtualized programmable data path in 0.18 Micron Technology", in Proceedings of the IEEE Custom Integrated Circuits Conference (CICC), 2002]、文献[Schmit, "PipeRench : a reconfigurable, architectural and compiler", IEEE Computer, pages 70-76 (April 2000)]、文献[Schmit,"Incremental Reconfiguration for Pipelined Applications", Proceedings of the IEEE Symposium on FPGAs for Custom Computing Machines, pp. 47-55, 1997]、及び文献[Schmit et al, "PipeRench : A Coprocessor for Streaming Multimedia Acceleration", International Symposium on Computer Architecture, pp. 38-49, 1999]を参照することができ、これらの文献は引用を以て本願への記載加入とする。
図5は、好ましくない信号伝播を終了させるための本発明の一実施例を示している。図5を参照すると、既知の如く、各々の物理ストライプは、例えば、コンフィギュレーションワードを物理ストライプに書き込むことにより、仮想ストライプでコンフィギュアされる。コンフィギュレーション管理及びデータ管理の詳細な説明を記載した文献がある[Schmit, et al, "Managing Pipeline-ReconfigurableFPGAs"published in ACM 6th International Symposium on FPGAs, February 1998]。この文献の全体はその引用を以て本願への記載加入とする。コンフィギュレーションワードを物理ストライプへ書き込むタスクのより詳細については、前記文献を参照することができる。リコンフィギュラブル・ファブリックの構造と動作に関するさらなる詳細については、文献[Schmit, et al,"PipeRench : a virtualized programmable data path in 0.18 Micron Technology", in Proceedings of the IEEE Custom Integrated Circuits Conference (CICC), 2002]、文献[Schmit, "PipeRench : a reconfigurable, architectural and compiler", IEEE Computer, pages 70-76 (April 2000)]、文献[Schmit,"Incremental Reconfiguration for Pipelined Applications", Proceedings of the IEEE Symposium on FPGAs for Custom Computing Machines, pp. 47-55, 1997]、及び文献[Schmit et al, "PipeRench : A Coprocessor for Streaming Multimedia Acceleration", International Symposium on Computer Architecture, pp. 38-49, 1999]を参照することができ、これらの文献は引用を以て本願への記載加入とする。
本発明の目的の1つは、レジスタファイルの読み出しが、アプリケーションの中の当該データ値の最後の読み出しかどうかを示すストライプのエンコーディングの中(例えば、コンフィギュレーションワードの中)に、幾つかの追加情報を含めることである。「最後の読み出し(last read)」情報は、仮想ストライプ情報を発生させるコンパイラ又は物理デザインツールによって作成されることができるし、或はまた、仮想ストライプ群を分析して、最後の読み出しであることを決定する別個のプログラムによって行なうこともできる。アプリケーションにおける最初と最後のストライプは、特例を提供する。仮想アプリケーションの最後のストライプでは、その後のストライプは無い。それゆえ、レジスタファイルの中の値でさらに読み出すものは無い。最初の仮想ストライプでは、最初の仮想ストライプの前の物理ストライプのレジスタファイルにその時点であるどの値も使用されることはない。アプリケーションの最初と最後のストライプ以外にストライプについては、読み出されるレジスタの値が最後であるという情報(「最後の読み出し情報」とも称される)が、節電のための多くの手段に用いられることができる。
図5は、最後の読み出しの後に値をマスキングすることにより、電力消費を少なくするために、最後の読み出しを用いる一実施例を示している。図5では、説明を簡素化するために、4つのレジスタファイル(42)(44)(46)(48)は、夫々、1つのレジスタ(42')(44')(46')(48')を有している。しかしながら、実際は、例えば図3に示されるように、各レジスタファイルは複数のレジスタを有することは理解されるであろう。また、各レジスタは1ビットよりも多く格納できることは理解されるであろう。前述の文献に記載された実際のパイプレンチ(PipeRench)の実装において、各レジスタファイルの中の各レジスタは8ビットを格納する。図5の実施例において、最後の読み出し情報は、ファブリック内の順次ストライプの値を一定値に固定するのに用いられる。図5の実施例では、レジスタファイル(42)より前又は該ファイルの中に配置されたAND(52)ゲート、レジスタファイル(44)より前又は該ファイルの中に配置されたAND(54)ゲート、レジスタファイル(46)より前又は該ファイルの中に配置されたAND(56)ゲート、及びレジスタファイル(48)より前又は該ファイルの中に配置されたAND(58)ゲートで達成される。レジスタ(44')から読み出された値が、読み出される必要のある値の最後であると仮定した場合、ANDゲート(56)の入力端子の1つにゼロを入力すると、ANDゲート(56)の出力端子の値と、その後のパスレジスタファイルの値もまた、強制的にゼロにされる。他のANDゲート(52)(54)(58)の入力端子に入力された値は、レジスタ(44')によって作成された信号の伝播を終わらせる上で意味をもたない。ANDゲートの位置に用いられることのできる他のゲートとして、ORゲート、NANDゲートがある。入力の1つにおける制御値に基づいて、出力を強制(force)するゲートのように、単調関数を示すどのタイプのゲートでも用いられることができる。
レジスタ(44')によって出力された値は、その値を強制的にゼロにすることにより、ANDゲート(56)によって伝播が防止されて、終了となることは認識されるであろう。レジスタにおいて、クロッキング値が一定であると、クロッキング値が変化する場合よりも、電力消費は少ない。最後の読み出しレジスタに応答して、適当なマルチプレクサに対するマルチプレクサの読み出しビットをマスキングすることによっても同様な結果が達成されるので、レジスタによって出力される値は、もはや必要とされず、読み出されない。
最後の読み出し情報を用いて、信号の伝播を停止させ、電力の節約をする他の方法を図6に示している。図6の回路は、ANDゲート(52)(54)(56)(58)がクロック信号(60)を受信するために配置されている点以外は、図5の回路と同様である。ANDゲート(52)(54)(56)(58)によって出力されたクロック信号は、夫々、レジスタ(42')(44')(46')(48')に入力される。レジスタの電力節約のために、最後の読み出し情報が用いられる他の方法は、レジスタのクロッキングを停止させることである。これは、図6に示されるように、クロック信号(60)をそれらのレジスタ(42')(46')(48')へマスキング(ブロッキング)することによって行われる。レジスタ(42')(46')(48')は、ANDゲート(52)(56)(58)の入力端子の1つに、夫々、ゼロを入力することにより、未使用である。使用中のレジスタ(44')だけが、ANDゲート(54)の入力端子の1つに1を入力することによって実際にクロックされる。これは、大きなクロック分配電力と、さらには、レジスタ自体に分散される電力を節電する。ANDゲート(52)(54)(56)(58)に入力される値(例えば、0100)は、クロッキング用マスク(clocking mask)と称される。
図7は、図6に示される回路の少し複雑な実施例を示しており、複数のゲートとクロッキングマスクをゲートに供給する代わりに、情報は、複数のマスクユニット(62)(64)(66)(68)へ供給され、レジスタファイル(42)(44)(46)(48)内のレジスタが、夫々、クロックされるべきかどうかについて、部分的に決定される。図7の構成は、ストライプ(レジスタファイル)毎に異なるクロックマスクの値を計算するために、マスクユニット(62)(64)(66)(68)の追加の回路と、1マスクユニットにつき2つのANDゲートを必要とする。クロックマスクビットは、各レジスタファイルの各レジスタの中の「最も最近(most recently)」に起こったことに基づいて決定される。最も最近に起こったことは、入力「ReadAdd0」「ReadAdd1」「WriteAdd」「LastRead0」「LastRead1」及び「LastVirtual」の他、先のマスクユニットの状態に関する情報に基づいて決定される。そのレジスタが「最後の読み出し」であった場合、クロックはマスクが外される。そのレジスタが、「最後の読み出し」であったよりも最近に書き込まれた場合、クロックは有効になる(enabled)。これは、上記の入力を受信する小さな有限状態機械で実施されることができる。
図8に示されるように、この状態機械において、そのレジスタが最後の仮想ストライプではなく、このストライプの中に書き込まれた(書き込みアドレス(write address)によって指示されるように)か、又は先のストライプの中にクロックされ、最後の読み出しでなかった(読み出しアドレス及びそのポートに対応する最後の読み出しビットで指示されるように)場合、レジスタファイルのレジスタはクロックされることになる。
図9は、図6の回路をローカルマスクユニットとして供されるように変更された回路を示している。
先の実施例は、節電のためには、値が伝播すべきでないことを決定するために、その値を強制的に一定値(例えば、ゼロ)にするか、又はレジスタをクロックしないことにより、レジスタの値が最後の読み出しであるかどうかについて、全く同じ情報を使用している。パスレジスタファイルが2以上のレジスタを含むとき、リードポートアドレス(どのレジスタがアクセスされるかを特定する)と、「最後の読み出し」と示されたビットが合成され、アプリケーションでどの値が最後に読み出されるかが決定される。この情報をエンコードする他の方法もあるが、現在のところ、あまり効果的なものはない。例えば、情報と読み出しポートアドレスを合成しなくてもよいように、各レジスタファイルの各レジスタに対して、明示的に使用中の(in-use)ビットをもつことができる。このように、本発明は、電力節約のために、どんなレジスタ使用(register use)情報をも用いることを対象とするものである。
さらに、最初の仮想ストライプか又は最後の仮想ストライプであるかについてのストライプの情報もまた、節電のために、マスクユニットによって用いられることができる。アプリケーションは、最初の仮想ストライプにて、先のストライプからもたらされるどのデータも、このアプリケーションには意味がないことを知る。この偽データは、ファブリックのストライプで実行された先の計算結果であり得る。結果として、ストライプが最初の仮想ストライプであることを知らされたマスクユニットは、最初の仮想ストライプを含む物理ストライプに先行して、物理ストライプからの任意のデータについて、クロックをマスクするか、又はデータをゲートすることができる。
図10は、4つのレジスタ、2つのリード(read)ポート、1つのライト(write)ポート及び4つのゲート群を有する複合レジスタファイルを示しており、これは、最後の一定値に読み出されたレジスタから、出力値を作ることができる。図11は、図10と同じパラメータを有すると共に、マスクユニットによって生成される別個のクロックをもつレジスタファイルを示している。図11のレジスタファイルは、2つのレジスタを含むファイルに減じられたとしても、図7で用いられ、(44)をがり替えられる。
最後に、最初と最後の仮想ストライプの特別な場合に対応するためには、レジスタファイルは、使われていないレジスタファイルエントリをマスクするか(例えば、図10参照)か、又は、例えば、別個のクロック信号を各レジスタに供給することにより、それらのクロックを停止させる(gated)べきである。
本発明の望ましい実施例を記載したが、当該分野の専門家であれば、多くの変形及び変更を行なうことはできるであろう。本発明は、前記の記載ではなく、特許請求の範囲の記載によって規定される。
Claims (16)
- 複数のストライプの中に組織化された複数のレジスタを含むデバイスで実施される方法であって、少なくともいくつかのストライプに対して、レジスタの使用に関する情報を提供し、該情報を、電力消費量を低減するために使用することを含んでいる、方法。
- 情報の提供は、読み出される必要があるレジスタの中の最後の値に関する情報を提供することを含んでいる請求項1の方法。
- 情報の使用は、最後に読み出された信号の値を、強制的に一定値にすることを含んでいる請求項2の方法。
- 情報の使用は、その後のストライプで使用されるデータが含まれるそれらレジスタだけをクロックすることを含んでいる請求項2の方法。
- 前記情報からクロッキング用マスクを作成することをさらに含んでいる請求項4の方法。
- ビットを、各レジスタの状態に対応するメモリの中で維持することをさらに含んでいる請求項1の方法。
- 複数のストライプの中に組織化された複数のレジスタを含むデバイスにおいて、最後に読み出された信号が伝播するの防止する方法であって、レジスタ内の値が読み出される必要のある最後に関する情報を提供し、該情報を使用して、最後に読み出された値を一定値に強制することを含んでいる、方法。
- 情報の使用は、最後に読み出された信号の値を、最後の読み出しに関する情報を受信するゲートに入力し、該ゲートの出力をゼロに強制することを含んでいる請求項7の方法。
- 複数のストライプの中に組織化された複数のレジスタを含むデバイスにおいて、最後に読み出された信号が伝播するの防止する方法であって、レジスタ内の値が読み出される必要のある最後に関する情報を提供し、該情報を使用して、全部より少ない数のレジスタをクロックすることを含んでいる、方法。
- 情報の使用は、ストライプをクロックするのに用いられたクロック信号をマスキングすることを含んでいる請求項9の方法。
- 前記マスキングするステップは、前記情報を、クロックパルスを受信する複数のゲートへ入力し、前記入力情報に基づいてストライプをクロックすることを含んでいる請求項10の方法。
- ストライプをクロックするのに用いられたクロック信号をマスキングするために、マスキングビットの値を局部的に決定することをさらに含んでいる請求項10の方法。
- マスキングビットの値を局部的に決定するステップは、読み出しアドレス情報及び書き込みアドレス情報と、最後に読み出された情報であるマスキングビットの値から決定することを含んでいる請求項12の方法。
- チェーンコンフィギュレーションの中で互いに相互接続された複数のパスレジスタファイルを形成するために相互接続された複数のレジスタと、
少なくとも1つが、前記パスレジスタファイルの各ファイル間で接続された複数の機能ユニットと、
隣接するパスレジスタファイルの間で伝播する値を一定値に強制するために、隣接する2つのパスレジスタファイルの間に接続された少なくとも1つのゲートと、を具えているリコンフィギュラブル装置。 - 少なくとも1つのゲートは、単調関数を示すゲートを含んでいる請求項14の装置。
- 互いに直列に相互接続された複数のパスレジスタファイルを形成するために相互接続された複数のレジスタと、
1つが、前記パスレジスタファイルの間で接続された複数の機能ユニットと、
クロックパルス源と、
最後に読み出された情報に基づいて、複数のレジスタの内の幾つかをクロックするために、前記クロックパルスと、最後に読み出された情報を受信する複数のゲートと、を具えている装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/222,608 US7131017B2 (en) | 2002-08-16 | 2002-08-16 | Programmable pipeline fabric having mechanism to terminate signal propagation |
PCT/US2003/025298 WO2004017222A2 (en) | 2002-08-16 | 2003-08-14 | Programmable pipeline fabric having mechanism to terminate signal propagation |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005539292A true JP2005539292A (ja) | 2005-12-22 |
Family
ID=31715014
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004529344A Pending JP2005539292A (ja) | 2002-08-16 | 2003-08-14 | 信号伝播を終了させる機構を有するプログラマブルパイプラインファブリック |
Country Status (6)
Country | Link |
---|---|
US (2) | US7131017B2 (ja) |
EP (1) | EP1535145A2 (ja) |
JP (1) | JP2005539292A (ja) |
CN (1) | CN100409179C (ja) |
AU (1) | AU2003265422A1 (ja) |
WO (1) | WO2004017222A2 (ja) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4143907B2 (ja) * | 2002-09-30 | 2008-09-03 | ソニー株式会社 | 情報処理装置および方法、並びにプログラム |
US7395411B2 (en) * | 2005-03-14 | 2008-07-01 | Sony Computer Entertainment Inc. | Methods and apparatus for improving processing performance by controlling latch points |
US7398153B2 (en) * | 2005-03-31 | 2008-07-08 | Trimble Navigation Limited | Portable motion-activated position reporting device |
JP4621604B2 (ja) * | 2006-02-20 | 2011-01-26 | 株式会社東芝 | バス装置、バスシステムおよび情報転送方法 |
US20090055632A1 (en) * | 2007-08-22 | 2009-02-26 | Chao-Wu Chen | Emulation Scheme for Programmable Pipeline Fabric |
JP5231800B2 (ja) * | 2007-12-26 | 2013-07-10 | 株式会社東芝 | 半導体集積回路装置および半導体集積回路装置のクロック制御方法 |
TW201037626A (en) * | 2009-04-01 | 2010-10-16 | Novatek Microelectronics Corp | Method for accessing image data and related apparatus |
US9354874B2 (en) | 2011-10-03 | 2016-05-31 | International Business Machines Corporation | Scalable decode-time instruction sequence optimization of dependent instructions |
US8612959B2 (en) | 2011-10-03 | 2013-12-17 | International Business Machines Corporation | Linking code for an enhanced application binary interface (ABI) with decode time instruction optimization |
US8615745B2 (en) | 2011-10-03 | 2013-12-24 | International Business Machines Corporation | Compiling code for an enhanced application binary interface (ABI) with decode time instruction optimization |
US8756591B2 (en) | 2011-10-03 | 2014-06-17 | International Business Machines Corporation | Generating compiled code that indicates register liveness |
US9286072B2 (en) | 2011-10-03 | 2016-03-15 | International Business Machines Corporation | Using register last use infomation to perform decode-time computer instruction optimization |
US9690583B2 (en) | 2011-10-03 | 2017-06-27 | International Business Machines Corporation | Exploiting an architected list-use operand indication in a computer system operand resource pool |
US9697002B2 (en) | 2011-10-03 | 2017-07-04 | International Business Machines Corporation | Computer instructions for activating and deactivating operands |
US10078515B2 (en) | 2011-10-03 | 2018-09-18 | International Business Machines Corporation | Tracking operand liveness information in a computer system and performing function based on the liveness information |
US9329869B2 (en) | 2011-10-03 | 2016-05-03 | International Business Machines Corporation | Prefix computer instruction for compatibily extending instruction functionality |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5604909A (en) * | 1993-12-15 | 1997-02-18 | Silicon Graphics Computer Systems, Inc. | Apparatus for processing instructions in a computing system |
US5666300A (en) * | 1994-12-22 | 1997-09-09 | Motorola, Inc. | Power reduction in a data processing system using pipeline registers and method therefor |
US5983339A (en) | 1995-08-21 | 1999-11-09 | International Business Machines Corporation | Power down system and method for pipelined logic functions |
US6247134B1 (en) | 1999-03-31 | 2001-06-12 | Synopsys, Inc. | Method and system for pipe stage gating within an operating pipelined circuit for power savings |
US6393597B1 (en) * | 1999-06-01 | 2002-05-21 | Sun Microsystems, Inc. | Mechanism for decoding linearly-shifted codes to facilitate correction of bit errors due to component failures |
US6393579B1 (en) | 1999-12-21 | 2002-05-21 | Intel Corporation | Method and apparatus for saving power and improving performance in a collapsable pipeline using gated clocks |
US6609209B1 (en) * | 1999-12-29 | 2003-08-19 | Intel Corporation | Method and apparatus for reducing the power consumed by a processor by gating the clock signal to pipeline stages |
US6965991B1 (en) * | 2000-05-12 | 2005-11-15 | Pts Corporation | Methods and apparatus for power control in a scalable array of processor elements |
-
2002
- 2002-08-16 US US10/222,608 patent/US7131017B2/en not_active Expired - Fee Related
-
2003
- 2003-08-14 AU AU2003265422A patent/AU2003265422A1/en not_active Abandoned
- 2003-08-14 CN CNB038242761A patent/CN100409179C/zh not_active Expired - Fee Related
- 2003-08-14 JP JP2004529344A patent/JP2005539292A/ja active Pending
- 2003-08-14 EP EP03788420A patent/EP1535145A2/en not_active Withdrawn
- 2003-08-14 WO PCT/US2003/025298 patent/WO2004017222A2/en active Application Filing
-
2006
- 2006-10-05 US US11/543,717 patent/US20070234089A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
WO2004017222A2 (en) | 2004-02-26 |
CN1688968A (zh) | 2005-10-26 |
WO2004017222A3 (en) | 2004-10-07 |
CN100409179C (zh) | 2008-08-06 |
AU2003265422A1 (en) | 2004-03-03 |
AU2003265422A8 (en) | 2004-03-03 |
US7131017B2 (en) | 2006-10-31 |
US20070234089A1 (en) | 2007-10-04 |
EP1535145A2 (en) | 2005-06-01 |
US20040034804A1 (en) | 2004-02-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20070234089A1 (en) | Programmable pipeline fabric having mechanism to terminate signal propagation | |
CN109716318B (zh) | 配置硬件在运行时期间多种模式下操作的装置和方法 | |
Cong et al. | A fully pipelined and dynamically composable architecture of CGRA | |
KR100638703B1 (ko) | 데이터 프로세싱 시스템용 셀룰러 엔진 | |
CN103793203B (zh) | 响应于输入数据值降低fma单元中的功率消耗 | |
US8473880B1 (en) | Synchronization of parallel memory accesses in a dataflow circuit | |
US7263602B2 (en) | Programmable pipeline fabric utilizing partially global configuration buses | |
JP7183197B2 (ja) | 高スループットプロセッサ | |
Di Carlo et al. | Microprocessor fault-tolerance via on-the-fly partial reconfiguration | |
Schölzel | Software-based self-repair of statically scheduled superscalar data paths | |
Kohútka et al. | Rocket queue: New data sorting architecture for real-time systems | |
Abdelhadi et al. | Modular switched multiported SRAM-based memories | |
US9110524B1 (en) | High throughput finite state machine | |
US10534625B1 (en) | Carry chain logic in processor based emulation system | |
IT202000013390A1 (it) | Una piattaforma informatica per prevenire attacchi ai canali laterali | |
Tina et al. | Performance improvement of MIPS Architecture by Adding New features | |
Kohútka et al. | Reliable real-time task scheduler based on Rocket Queue architecture | |
Kung et al. | VLSI design for massively parallel signal processors | |
US7007059B1 (en) | Fast pipelined adder/subtractor using increment/decrement function with reduced register utilization | |
Shekhar et al. | Application Specific Instruction set Processors: redefining hardware-software boundary | |
US20040250052A1 (en) | Digital logic unit that can be reconfigured | |
US8607181B1 (en) | Method for converting a single channel hardware module into a multi-channel module | |
Ram et al. | Design and implementation of run time digital system using field programmable gate array–improved dynamic partial reconfiguration for efficient power consumption | |
Subhashini et al. | FPGA-Based 128-Bit RISC Processor Using Pipelining | |
Chauhan et al. | Reconfiguration of fpga for domain specific applications using embedded system approach |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060731 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20081118 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20090414 |