JP2005509930A - カスタムループアクセラレータ等で使用する記憶システム - Google Patents
カスタムループアクセラレータ等で使用する記憶システム Download PDFInfo
- Publication number
- JP2005509930A JP2005509930A JP2002575782A JP2002575782A JP2005509930A JP 2005509930 A JP2005509930 A JP 2005509930A JP 2002575782 A JP2002575782 A JP 2002575782A JP 2002575782 A JP2002575782 A JP 2002575782A JP 2005509930 A JP2005509930 A JP 2005509930A
- Authority
- JP
- Japan
- Prior art keywords
- shift
- cell
- port
- cycle
- input
- 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
- 238000004364 calculation method Methods 0.000 claims description 31
- 239000004020 conductor Substances 0.000 claims description 2
- 230000004044 response Effects 0.000 claims description 2
- 210000000352 storage cell Anatomy 0.000 abstract description 7
- 210000004027 cell Anatomy 0.000 description 49
- 238000010586 diagram Methods 0.000 description 11
- 238000000034 method Methods 0.000 description 3
- 230000000712 assembly Effects 0.000 description 2
- 238000000429 assembly Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 239000004071 soot Substances 0.000 description 1
- 238000012360 testing method Methods 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
-
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
-
- 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/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/30134—Register stacks; shift registers
-
- 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/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
- G06F9/325—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for loops, e.g. loop detection or loop counter
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Logic Circuits (AREA)
- Complex Calculations (AREA)
- Executing Machine-Instructions (AREA)
Abstract
【解決手段】記憶レジスタ31は、シフトイネーブル線35上の信号SEが所定レベルにある時はいつでも新たな結果をシフトインする複数の記憶セル33から構成される。SEがローである時、記憶セルはその古い値を維持し、SEがハイである時、記憶セルの入力から新たな値がラッチされる。SE信号は、位相バス信号と呼ぶ複数の信号線37に接続されるORゲート34によって生成される。記憶レジスタエントリがサイクル毎にシフトされる必要はない。したがって、データを記憶レジスタからシフトアウトすることなく、デッド値に上書きすることができる。このため、記憶レジスタの長さは、最も長く残る結果の生存期間によるのではなくその時々でライブとなる結果の最大数によって確定される。
Description
ループは、結果のストリームを生成するために入力データのストリームに繰返し適用される演算のネットワークから構成される。
カスタム集積回路も同様に、かかるループを利用する。
概して、これらのハードウェア構造は、ループの異なる反復を行う複数の機能ユニットを使用して、複数のループ反復の計算をオーバーラップさせることによりループを計算するために必要な時間を低減する。
ループの主要部において別個の機能ユニットが各演算を実行する場合に、最も高度なオーバーラップが得られ、クロックサイクル毎に新たな反復が開始される。
この場合、ハードウェア機能ユニットとプログラムグラフ内の演算との間に単純な一対一対応があり、同様に、プログラムグラフのデータフローエッジと実際のハードウェアデータパスとの間にも単純な対応がある。
単純な一対一ソリューションは、サイクル毎にすべてがビジーであるリソースのセットが最小であるという特徴を有するため、非常に効率的である。
しかしながら、かかる設計は、しばしば非常にコストがかかる。
それよりコストのかからない設計は、複数の機能ユニットを使用してオーバーラップした計算を提供するが、機能ユニットの集合体がΠサイクル(Π>1)毎に1つのループ反復を開始するのみである、方式を利用する。
これらの値を、これらの値を必要とする機能ユニットのすべてにアクセス可能である何らかの形態の高速記憶域に格納しなければならない。
この記憶域のコストは、ハードウェアループアクセラレータのコストの大部分に相当する。
本発明のさらなる目的は、ハードウェアアクセラレータ等で使用される高速記憶システムを提供することである。
本計算ユニットは、機能ユニットと、複数の位相線と、記憶レジスタと、を有する。
計算ユニットは、Πサイクル毎にループの1反復を開始するようにプログラムされる。
機能ユニットは、各サイクルに1つの計算結果を出力する結果出力を有する。
Πサイクルの各々に対応する1つの位相線がある。
記憶レジスタは、第1のシフトセルを有するシフトセルの線形に接続されたアレイを有する。
各シフトセルは、入力ポートと、出力ポートと、シフト制御ポートと、ORゲートと、を有する。
各シフトセルは、入力ポートにおいてシフトセルに格納される値を受取り、その格納される値は、シフト制御ポートにおける制御信号に応じて格納される。
ORゲートは、シフトイネーブルポートに接続された出力と、そのシフトセルが制御信号を受取る各サイクルに対して1つの入力と、を有し、その入力は、そのサイクルに対応する位相線に接続される。
第1のシフトセルの入力ポートは、結果出力に接続される。
複数のかかる計算ユニットを互いに接続することにより、ループアクセラレータを形成することができる。
アクセラレータは、Πサイクルのうちの選択された1つにおいて、計算ユニットのうちの1つの少なくとも1つのシフトセル出力を、計算ユニットのうちの別のものの機能ユニットの入力に結合する、クロスコネクト回路を有する。
また、本発明によれば、ハードウェアアクセラレータ等で使用される高速記憶システムが提供される。
アクセラレータ10は、複数の機能ユニット12と、ループの1反復において生成された、ループのいずれか後の反復において必要とされる結果を格納するレジスタファイル14と、を有する。
機能ユニットは、一般に、非常に高速で動作しているため、レジスタファイルもまた非常に高速で動作しなければならない。
このため、レジスタファイルのコストは、ループアクセラレータのコストの大部分である。
シフトレジスタを利用するハードウェアループアクセラレータを、図2において20で示す。
アクセラレータ20では、各機能ユニット22は、その結果を、一続きのセル25から構成されたシフトレジスタ24に出力する。
マルチプレクサ26は、隣接する機能ユニットが使用するためにシフトレジスタに格納された値のうちの1つを選択する手段を提供する。
結果が複数の機能ユニットによって必要とされる場合、追加のマルチプレクサを含めてもよい。
結果は、依然として必要とされる場合、「ライブ(live)」であると言われる。
最も長く残る(longest-lived)結果が、シフトレジスタの長さを確定する。
シフトレジスタは、ライブ結果の後に計算された結果を、これら結果が「デッド(dead)」、すなわち将来の計算で必要とされない場合であっても、すべて格納しなければならない、ということに留意すべきである。
このため、この従来技術によるアクセラレータの形態は、非常に大型のシフトレジスタとマルチプレクサとを必要とし、それによりアクセラレータのコストが増大する。
ここで図3を参照する。
図3は、本発明による記憶レジスタ31を利用するハードウェアアクセラレータの1つの機能ユニットアセンブリ30のブロック図である。
記憶レジスタ31は、シフトイネーブル線35上の信号(SE)が所定レベルにある時はいつでも新たな結果をシフトインする、複数の記憶セル33から構成される。
SEがローである時、記憶セルはその古い値を維持し、SEがハイである時、記憶セルの入力から新たな値がラッチされる。
SE信号は、位相バス信号と呼ぶ複数の信号線37に接続されるORゲート34によって生成される。
記憶レジスタエントリがサイクル毎にシフトされる必要はない、ということは留意しなければならない。
たとえば、機能ユニット32によって計算されている現結果が将来の計算で必要とされない場合、その結果は記憶レジスタ31内にシフトされる必要はない。
したがって、データを記憶レジスタからシフトアウトすることなく、デッド値に上書きすることができる。
このため、記憶レジスタの長さは、最も長く残る結果の生存期間によるのではなくその時々でライブとなる結果の最大数によって確定される。
したがって、本発明による記憶レジスタは、従来のシフトレジスタベースの記憶レジスタより大幅に小さくなる。
セルの数を低減することはまた、相互接続コストを低減するのにも役立つ。
同じ記憶セルからおよび同じ機能ユニットにより2つのオペランドが読出される(別々の瞬間に)場合、単一データパスが、マルチプレクサを必要とすることなく両方のデータ転送をサポートしてもよい。
上述したように、ループは、結果のストリームを生成するために入力データのストリームに繰返し適用される、ループ主要部における演算のネットワークから構成される。
カスタムアクセラレータにおける機能ユニット内の隣接するループ反復の実行間の開始間隔を、Πで示す。
1のΠは、初期化の期間後にサイクル毎にループ主要部の計算を完了する、実行速度に対応する。
本発明の記憶レジスタは、Π>1設計を効率的にサポートするように設計される。
それらは、レジスタ要件とともに、かかる低コストカスタムアクセラレータにおけるスイッチング要件も低減するよう役立つ。
本発明による記憶レジスタを制御するために必要な位相バス線の最大数はΠである、ということに留意しなければならない。
機能ユニットにより新たなライブ値が生成される時はいつでも、新たな値は第1のセルにシフトされる。
後続するセルは、先のセルからシフトアウトされる値を保持する。
後続するセルへのシフトは、先のセル内の値がライブであり、先のセルが別のライブ値を受入れるためにシフトしなければならない場合、すなわち、その先行者が、シフトアウトされなければならないライブ値を保持する場合に、発生する。
したがって、各パターンは、異なる位相バス線によって確定される。
特定のセルがk番目のサイクルでシフトされる場合、そのセルのORゲートは、k番目の位相線に接続された入力を有する。
セルがシフトされない場合、かかる接続は行われない。
たとえば、図3において、ORゲート38は、位相線41に接続された入力を有しておらず、そのためセル40は位相線41に対応するサイクルでシフトしない。
対照的に、セル40は、位相線44および45に対応するサイクルでシフトする。
本質的に、シフトパターンは、ORゲート入力と位相バス線との間の接続を設定することによってプログラムされる。
そして、アクセラレータの動作中、位相線は、コントローラ39によりサイクル毎に1回、順次アサートされ、関連する記憶セルはそれらの内容を下方にシフトさせる。
しかしながら、記憶レジスタ31を、プログラマブルゲートアレイと他の形態のプログラマブルハードウェアで実施してもよい。
かかる場合、ORゲートと位相線との間の接続を、スイッチ46等のプログラマブルスイッチング素子を介して行ってもよい。
特定の瞬間に後続する演算により値が読出される場合、その値がその瞬間に格納されている記憶レジスタ素子が識別される。
そして、ハードウェアデータパスは、その瞬間、必要なデータ転送をサポートするために、データを保持しているレジスタ素子からデータを必要とする機能ユニットポートに接続される。
このように、本発明の記憶レジスタは、機能ユニット間のオペランドの順序付けを制御することができる。
記憶レジスタから特定の機能ユニットへデータを転送するためのタップ点は、機能ユニットによって読出されなければならないライブ値を保持する記憶レジスタセルにおいてのみ実施されればよい。
図4は、本発明による2つの機能ユニットアセンブリ101および102を有するループアクセラレータ100のブロック図である。
上述したデータパスは、配線接続されてもよく、あるいは、機能ユニットアセンブリの記憶レジスタの出力をアクセラレータのあらゆる関数発生器の関連する入力に接続するクロスコネクトスイッチ103等のスイッチングネットワークの何らかの形態で、提供されてもよい。
特定の接続は、計算の段階によって確定され、それを、コントローラのうちの1つかまたはループアクセラレータのすべての機能ユニットのアクティビティを調整する別個のコントローラにより、クロスコネクトスイッチに通信することができる。
特定の機能ユニット出力がループ中にいかなる機能ユニットにもルーティングされない場合、クロスコネクトスイッチの対応するスイッチを省略することができ、それによりアクセラレータのコストが低減する。
ここで図5を参照する。
図5は、本発明による記憶レジスタ51を利用し、記憶レジスタ51への追加の入力を有する、本発明によるハードウェアアクセラレータの1つの機能ユニットアセンブリ50のブロック図である。
この実施形態では、マルチプレクサ53は、コントローラ59の制御の下、記憶レジスタ51に新たな値を導入するために使用することができる入力55を提供する。
この入力を、図3に示すクロスコネクトスイッチ等の接続経路を介して他の機能ユニットに接続することができる。
代替的に、この入力をアクセラレータの異なるレジスタに接続することができる。
かかる追加の入力は、ループ計算の開始前に機能ユニットを初期化する際に有用である。
さらに、かかる入力は、共通レジスタかまたは仮想レジスタへの繰返される条件付き割当をサポートする。
位相バスはΠ本のワイヤからなり、i番目のワイヤが、正確にiのΠを法とする剰余であるサイクルで所定値(たとえば1)を有する。
しかしながら、他の制御方式を実現することも可能である。
図6は、Πより少ないワイヤを有するバスを利用する本発明の実施形態のブロック図である。
本発明のこの実施形態では、タイムモジュロΠが、コントローラ239により符号化タイムバス237で2進数でブロードキャストされる。
これには、Πが大きい場合は、ブロードキャストされるワイヤがはるかに少ないことが必要であるが、また、セルの各々が、各セルがシフトするようにスケジュールされる既知の時刻に対して符号化タイムバスでブロードキャストされる値をテストする、1つまたは複数の比較器を含むことが必要である。
201〜203で、例示的な比較器を示す。
たとえば、Π=8のシステムの制御バスでは、必要なワイヤは3つのみである。
第3および第4のサイクルでシフトするセル206を考慮する。
当該セルは、201および202で示す2つの比較器を有する。
これらは、バス上にこれらの2つの値を検出し、これらの条件のいずれかにおいて正確にシフトを発生させるためにORゲート204によって結合される論理信号を生成する。
セル205等のセルが1カウント値でのみシフトする場合、1つの比較器203を利用しORゲートを省略してもよい。
ここで、図7を参照する。
図7は、記憶レジスタにおけるセルのシフトを制御するために337および338で示す2つのモジュロバスを利用する、本発明の実施形態を示す。
各バスは、モジュロカウンタから作動され、バス337および338に対応するモジュロカウンタを、夫々339および340で示す。
かかる実施形態では、各モジュロカウンタは、コントローラ335により所定初期状態に設定される。
各カウンタのカウントは、共通クロック信号によって制御される。
カウンタが調子を合せてカウントするために、これらカウンタを相互接続するためのいかなる位相バスも他の配線(クロックを除く)も不要である。
カウンタは、未符号化位相バス信号かまたは符号化タイムバス信号を生成することができる。
図7に示す実施例では、カウンタ339は符号化バス信号を生成し、カウンタ340は未符号化バス信号を生成する。
各シフトセルを、シフトを制御するために最も近接しているかまたは最も都合のよいコントローラに取付けることができる。
図に示す実施例では、シフトセル306は比較器301および302を介してバス337に接続され、シフトセル305はバス338に接続される。
シフト信号を復号化する手段は、セルが接続されるバスのタイプによって確定される。
このため、セル306は、図6に関して論考したタイプの比較器を利用し、セル305は、ORゲート304を介して個々のバス線に直接接続される。
たとえば、いくつかのセルがモジュロカウンタの1つまたは2つの状態でのみシフトする場合、これらのセルを、未使用導体が見つからない未符号化バスに接続することができる。
しかしながら、当業者には、これが、各機能ユニットが結果を出力する最高速度である、ということが認められよう。
サイクルによっては、機能ユニットのうちの1つまたは複数は出力を生成しなくてもよい。
実際には、その機能ユニットは、当該サイクルでヌル出力を生成する。
たとえば、浮動小数点ユニットは結果を完了するために2サイクルが必要であるが、他の機能ユニットは1サイクルのみが必要である。
かかる2サイクルシーケンスの第1のサイクルでは、その機能ユニットに接続された記憶レジスタは、いかなる新たな値もシフトさせない。
したがって、本発明は、以下の特許請求の範囲の適用範囲によってのみ限定されるべきである。
31・・・記憶レジスタ、
32・・・機能ユニット、
33・・・セル、
34・・・ORゲート、
35・・・シフトイネーブル線、
37・・・信号線、
100・・・ループアクセラレータ、
101,102・・・機能ユニットアセンブリ、
103・・・クロスコネクトスイッチ、
50・・・機能ユニットアセンブリ、
51・・・記憶レジスタ、
53・・・マルチプレクサ、
55・・・入力、
59・・・コントローラ、
201〜203・・・比較器、
205,206・・・セル、
237・・・符号化タイムバス、
239・・・コントローラ、
204・・・ORゲート、
301,302・・・比較器、
304・・・ORゲート、
305,306・・・シフトセル、
335・・・コントローラ、
337,338・・・バス、
339,340・・・カウンタ、
Claims (11)
- ループ計算において使用する計算ユニット(30、50、100)であって、Πサイクル毎に該ループの1反復を開始する計算ユニット(30、50、100)であり、
計算結果を出力する結果出力を有する機能ユニット(32、52)と、
各サイクルでインクリメントされサイクル毎にリセットされる値を有する第1のカウンタ(339)と、
該第1のカウンタ(339)値によって確定される状態を有する第1の位相バス(37、237、337)と、
第1のシフトセル(42、206、306)を有するシフトセル(33、40、42、205、206、305、306)の線形に接続されたアレイを備え、各シフトセル(33、40、42、205、206、305、306)は入力ポート、出力ポートおよびシフト制御ポート(35)を有し、各シフトセル(33、40、42、205、206、305、306)は該入力ポートにおいて該シフトセル(33、40、42、205、206、305、306)に格納される前記値を受取り、該格納される値は、前記シフト制御ポート(35)における制御信号に応じて格納され、前記第1のシフトセル(42、206、306)の入力ポートは前記結果出力に接続され、各シフトセル(33、40、42、205、206、305、306)は、前記シフト制御ポート(35)において前記制御信号を生成するために前記第1の位相バス(37、237、337)と該シフト制御ポート(35)とに接続されたシフト制御回路(34、38、201、203)をさらに備える、記憶レジスタと
を具備する計算ユニット。 - 計算ユニット(30、50、100)であって、
前記第1の位相バス(37、237、337)は、
1つが前記サイクルの各々に対応する導体(41、44、45)を備え、前記シフト制御回路(34、38、201、203)は、前記シフトイネーブルポートに接続された出力と、そのシフトセル(33、40、42、205、206、305、306)がシフトする各サイクルに対して1つの入力と、を有し、その入力がそのサイクルに対応する前記位相線に接続される、ORゲート(34、38)
を備える
請求項1記載の計算ユニット。 - 計算ユニット(30、50、100)であって、
前記第1の位相バス(37、237、337)は、
前記カウンタの前記値の2進コード化表現を含み、前記シフト制御回路(34、38、201、203)は、そのシフトセル(33、40、42、205、206、305、306)がシフトする各サイクルに対して前記制御信号を生成する比較器
を備える
請求項1記載の計算ユニット。 - 計算ユニット(30、50、100)であって、
各サイクルでインクリメントされサイクル毎にリセットされる値を有する第2のカウンタ(340)と、
前記第1および第2のカウンタ(340)に対し夫々第1および第2の初期値をとらせる回路(335)と、
前記第2のカウンタ(340)値によって確定される状態を有する第2の位相バス(338)と
をさらに具備し、
前記シフトセル(33、40、42、205、206、305、306)のうちの少なくとも1つは、
前記第2の位相バスに接続されたそのシフト制御回路(34、38、201、203)
を有する
請求項1記載の計算ユニット。 - 計算ユニット(30、50、100)であって、
第1および第2の入力と出力とを有するマルチプレクサ(26)
をさらに具備し、
該第1の入力が前記シフトセル(33、40、42、205、206、305、306)のうちの1つの前記出力に接続され、該マルチプレクサ(26)入力が該シフトセル(33、40、42、205、206、305、306)のうちの異なる1つの前記入力に接続される
請求項1記載の計算ユニット。 - 計算ユニット(30、50、100)であって、
プログラマブルゲートアレイで実施される
請求項1記載の計算ユニット。 - 計算ユニット(30、50、100)であって、
前記ORゲート(34、38)のうちの1つの前記入力のうちの1つは、プログラマブルスイッチ(46)によって前記位相線のうちの1つに接続される
請求項2記載の計算ユニット。 - Πサイクル毎にループの1反復を開始するループアクセラレータ(100)であって、複数の計算ユニット(30、50、100)を備えたループアクセラレータ(100)であり、該計算ユニット(30、50、100)の各々が、
計算結果を出力する結果出力を有するプログラムされた機能ユニット(32、52)と、
前記サイクルの各々に対応する位相線と、
第1のシフトセル(42、206、306)を有するシフトセル(33、40、42、205、206、305、306)の線形に接続されたアレイを備え、各シフトセル(33、40、42、205、206、305、306)は入力ポート、出力ポート、シフト制御ポート(35)およびORゲート(34、38)を有し、各シフトセル(33、40、42、205、206、305、306)は該入力ポートにおいて該シフトセル(33、40、42、205、206、305、306)に格納される前記値を受取り、該格納された値は、前記シフト制御ポート(35)における制御信号に応じて格納され、前記ORゲート(34、38)は、前記シフトイネーブルポートに接続された出力と、そのシフトセル(33、40、42、205、206、305、306)が前記制御信号を受取る各サイクルに対して1つの入力と、を有し、その入力がそのサイクルに対応する前記位相線に接続され、前記第1のシフトセル(42、206、306)の前記入力ポートは前記結果出力に接続される記憶レジスタと、
前記計算ユニット(30、50、100)のうちの1つの少なくとも1つのシフトセル(33、40、42、205、206、305、306)出力を前記サイクルのうちの選択された1つにおいて該計算ユニット(30、50、100)のうちの別のものの機能ユニット(32、52)の入力に連結するクロスコネクト回路(103)と
を具備する
ループアクセラレータ。 - 記憶入力ポートにおいて受取られた値を格納する記憶レジスタであって、
前記サイクルの各々に対応して1つの、複数の位相線と、
第1のシフトセル(42、206、306)を有するシフトセル(33、40、42、205、206、305、306)の線形に接続されたアレイであり、各シフトセル(33、40、42、205、206、305、306)は入力ポート、出力ポート、シフト制御ポート(35)およびORゲート(34、38)を有し、各シフトセル(33、40、42、205、206、305、306)は前記入力ポートにおいて該シフトセル(33、40、42、205、206、305、306)に格納される前記値を受取り、該格納されるはずの値は前記シフト制御ポート(35)における制御信号に応じて格納され、前記ORゲート(34、38)は、前記シフトイネーブルポートに接続された出力と、そのシフトセル(33、40、42、205、206、305、306)が前記制御信号を受取る各サイクルに対して1つの入力と、を有し、その入力がそのサイクルに対応する前記位相線に接続され、前記第1のシフトセル(42、206、306)の前記入力ポートは前記記憶入力ポートに接続される、シフトセル(33、40、42、205、206、305、306)の線形に接続されたアレイと
を具備する記憶レジスタ。 - 前記シフトセル(33、40、42、205、305、306)のうちの少なくとも1つは、前記位相線のうちの1つに接続されない
請求項9記載の記憶レジスタ。 - 前記ORゲートのうちの1つの前記入力のうちの1つは、プログラマブルスイッチ(46)により前記位相線のうちの1つに接続される
請求項9記載の記憶レジスタ。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/816,851 US6766445B2 (en) | 2001-03-23 | 2001-03-23 | Storage system for use in custom loop accelerators and the like |
PCT/US2002/008815 WO2002077794A2 (en) | 2001-03-23 | 2002-03-21 | Storage system for use in custom loop accelerators and the like |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005509930A true JP2005509930A (ja) | 2005-04-14 |
Family
ID=25221773
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002575782A Pending JP2005509930A (ja) | 2001-03-23 | 2002-03-21 | カスタムループアクセラレータ等で使用する記憶システム |
Country Status (5)
Country | Link |
---|---|
US (1) | US6766445B2 (ja) |
EP (1) | EP1388048B1 (ja) |
JP (1) | JP2005509930A (ja) |
DE (1) | DE60221515T2 (ja) |
WO (1) | WO2002077794A2 (ja) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030105617A1 (en) * | 2001-12-05 | 2003-06-05 | Nec Usa, Inc. | Hardware acceleration system for logic simulation |
US7206927B2 (en) * | 2002-11-19 | 2007-04-17 | Analog Devices, Inc. | Pipelined processor method and circuit with interleaving of iterative operations |
EP1934845A4 (en) * | 2005-09-28 | 2010-05-19 | Liga Systems Inc | EQUIPMENT ACCELERATION SYSTEM FOR LOGICAL SIMULATION USING LOCAL CAGE MEMORY LOCAL SHIFT REGISTER |
US7444276B2 (en) * | 2005-09-28 | 2008-10-28 | Liga Systems, Inc. | Hardware acceleration system for logic simulation using shift register as local cache |
US20070074000A1 (en) * | 2005-09-28 | 2007-03-29 | Liga Systems, Inc. | VLIW Acceleration System Using Multi-state Logic |
US20070073999A1 (en) * | 2005-09-28 | 2007-03-29 | Verheyen Henry T | Hardware acceleration system for logic simulation using shift register as local cache with path for bypassing shift register |
KR100781358B1 (ko) * | 2005-10-21 | 2007-11-30 | 삼성전자주식회사 | 데이터 처리 시스템 및 그의 데이터 처리방법 |
US8266414B2 (en) | 2008-08-19 | 2012-09-11 | Freescale Semiconductor, Inc. | Method for executing an instruction loop and a device having instruction loop execution capabilities |
CN104301000A (zh) * | 2013-07-18 | 2015-01-21 | 中兴通讯股份有限公司 | 利用样点级加速器进行数据处理的方法和样点级加速器 |
US9697005B2 (en) * | 2013-12-04 | 2017-07-04 | Analog Devices, Inc. | Thread offset counter |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS531023B2 (ja) * | 1971-12-30 | 1978-01-13 | ||
US3944989A (en) * | 1972-11-17 | 1976-03-16 | Takachiho Koeki Kabushiki Kaisha | Pattern information memory using circulating memories |
US4097920A (en) * | 1976-12-13 | 1978-06-27 | Rca Corporation | Hardware control for repeating program loops in electronic computers |
US4437166A (en) * | 1980-12-23 | 1984-03-13 | Sperry Corporation | High speed byte shifter for a bi-directional data bus |
FR2601491B1 (fr) | 1986-07-10 | 1992-09-04 | Cit Alcatel | Memoire de file d'attente |
US4899307A (en) | 1987-04-10 | 1990-02-06 | Tandem Computers Incorporated | Stack with unary encoded stack pointer |
JPH0391188A (ja) | 1989-09-04 | 1991-04-16 | Matsushita Electric Ind Co Ltd | Fifoメモリ |
US5958048A (en) * | 1996-08-07 | 1999-09-28 | Elbrus International Ltd. | Architectural support for software pipelining of nested loops |
US6226776B1 (en) | 1997-09-16 | 2001-05-01 | Synetry Corporation | System for converting hardware designs in high-level programming language to hardware implementations |
-
2001
- 2001-03-23 US US09/816,851 patent/US6766445B2/en not_active Expired - Lifetime
-
2002
- 2002-03-21 JP JP2002575782A patent/JP2005509930A/ja active Pending
- 2002-03-21 EP EP02715184A patent/EP1388048B1/en not_active Expired - Lifetime
- 2002-03-21 DE DE60221515T patent/DE60221515T2/de not_active Expired - Lifetime
- 2002-03-21 WO PCT/US2002/008815 patent/WO2002077794A2/en active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
WO2002077794A3 (en) | 2003-12-04 |
US20020138718A1 (en) | 2002-09-26 |
EP1388048A2 (en) | 2004-02-11 |
DE60221515D1 (de) | 2007-09-13 |
EP1388048B1 (en) | 2007-08-01 |
US6766445B2 (en) | 2004-07-20 |
WO2002077794A2 (en) | 2002-10-03 |
DE60221515T2 (de) | 2008-01-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114586004B (zh) | 静默可重新配置数据处理器 | |
JP3674515B2 (ja) | アレイ型プロセッサ | |
JP4637123B2 (ja) | データ処理方法およびデータ処理ユニット、コンフィギュレーション化可能なエレメントのダイナックな再コンフィギュレーション方法、システムおよびプロセス | |
TWI771675B (zh) | 控制流程屏障和可重組態的資料處理器 | |
JPS5936857A (ja) | プロセツサユニツト | |
JPS61248135A (ja) | パイプライン式プロセツサ及びその制御方法 | |
EP0114191B1 (en) | Microword control system utilizing overlapped programmable logic arrays | |
JP2005509930A (ja) | カスタムループアクセラレータ等で使用する記憶システム | |
US20060004980A1 (en) | Address creator and arithmetic circuit | |
US7016349B1 (en) | Logic for generating multicast/unicast address (es) | |
JP3770203B2 (ja) | クロスバの高速化方法及びクロスバの高速化方式 | |
US7917707B2 (en) | Semiconductor device | |
US7191314B2 (en) | Reconfigurable CPU with second FSM control unit executing modifiable instructions | |
EP1686460A2 (en) | Method and apparatus for efficient and flexible sequencing of data processing units extending VLIW architecture | |
US7287151B2 (en) | Communication path to each part of distributed register file from functional units in addition to partial communication network | |
JP2001195353A (ja) | Dma転送システム | |
JP2820462B2 (ja) | データ列発生装置 | |
CN100365567C (zh) | 微控制器 | |
RU2134448C1 (ru) | Однородная вычислительная среда с двуслойной программируемой структурой | |
JPH09101889A (ja) | パイプライン演算装置 | |
KR100293438B1 (ko) | 시디엠에이 이동통신교환기의 프로세서간 직렬통신시 연속적인 데이터 프레임 생성장치 | |
JP3103746B2 (ja) | 半導体遅延装置 | |
SU1751767A1 (ru) | Устройство дл контрол тестопригодных программ | |
JPH1091216A (ja) | プログラマブル半導体デバイス | |
JPH04293127A (ja) | 逐次実行制御装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070424 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20070723 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20070730 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071024 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20071128 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080228 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20080228 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20080603 |