JP2005509930A - カスタムループアクセラレータ等で使用する記憶システム - Google Patents

カスタムループアクセラレータ等で使用する記憶システム Download PDF

Info

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
Application number
JP2002575782A
Other languages
English (en)
Inventor
マイケル・シュランスカー
シャイル・エイ・グプタ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
HP Inc
Original Assignee
Hewlett Packard Co
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 Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of JP2005509930A publication Critical patent/JP2005509930A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30134Register stacks; shift registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/325Address 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つの位相線がある。
記憶レジスタは、第1のシフトセルを有するシフトセルの線形に接続されたアレイを有する。
各シフトセルは、入力ポートと、出力ポートと、シフト制御ポートと、ORゲートと、を有する。
各シフトセルは、入力ポートにおいてシフトセルに格納される値を受取り、その格納される値は、シフト制御ポートにおける制御信号に応じて格納される。
ORゲートは、シフトイネーブルポートに接続された出力と、そのシフトセルが制御信号を受取る各サイクルに対して1つの入力と、を有し、その入力は、そのサイクルに対応する位相線に接続される。
第1のシフトセルの入力ポートは、結果出力に接続される。
複数のかかる計算ユニットを互いに接続することにより、ループアクセラレータを形成することができる。
アクセラレータは、Πサイクルのうちの選択された1つにおいて、計算ユニットのうちの1つの少なくとも1つのシフトセル出力を、計算ユニットのうちの別のものの機能ユニットの入力に結合する、クロスコネクト回路を有する。
本発明によれば、ループを高速化する改良されたハードウェアアクセラレータアーキテクチャが提供される。
また、本発明によれば、ハードウェアアクセラレータ等で使用される高速記憶システムが提供される。
本発明がその利点を提供する方法は、従来技術によるハードウェアループアクセラレータ10のブロック図である図1を参照してより容易に理解することができる。
アクセラレータ10は、複数の機能ユニット12と、ループの1反復において生成された、ループのいずれか後の反復において必要とされる結果を格納するレジスタファイル14と、を有する。
機能ユニットは、一般に、非常に高速で動作しているため、レジスタファイルもまた非常に高速で動作しなければならない。
このため、レジスタファイルのコストは、ループアクセラレータのコストの大部分である。
図1に示す方式を実施する一方法は、一続きのシフトレジスタを使用して中間結果を保持する、ということである。
シフトレジスタを利用するハードウェアループアクセラレータを、図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内にシフトされる必要はない。
さらに、1つまたは複数のセルが保持され、他のセルがシフトしてもよい。
したがって、データを記憶レジスタからシフトアウトすることなく、デッド値に上書きすることができる。
このため、記憶レジスタの長さは、最も長く残る結果の生存期間によるのではなくその時々でライブとなる結果の最大数によって確定される。
したがって、本発明による記憶レジスタは、従来のシフトレジスタベースの記憶レジスタより大幅に小さくなる。
セルの数を低減することはまた、相互接続コストを低減するのにも役立つ。
同じ記憶セルからおよび同じ機能ユニットにより2つのオペランドが読出される(別々の瞬間に)場合、単一データパスが、マルチプレクサを必要とすることなく両方のデータ転送をサポートしてもよい。
かかるハードウェアの概観を提供したが、本発明による記憶レジスタが制御される方法を、より詳細に説明する。
上述したように、ループは、結果のストリームを生成するために入力データのストリームに繰返し適用される、ループ主要部における演算のネットワークから構成される。
カスタムアクセラレータにおける機能ユニット内の隣接するループ反復の実行間の開始間隔を、Πで示す。
1のΠは、初期化の期間後にサイクル毎にループ主要部の計算を完了する、実行速度に対応する。
本発明の記憶レジスタは、Π>1設計を効率的にサポートするように設計される。
それらは、レジスタ要件とともに、かかる低コストカスタムアクセラレータにおけるスイッチング要件も低減するよう役立つ。
本発明による記憶レジスタを制御するために必要な位相バス線の最大数はΠである、ということに留意しなければならない。
書込みポートが取付けられた記憶レジスタの第1のセル42は、値のストリームをセル内に生成する機能ユニット32に接続される。
機能ユニットにより新たなライブ値が生成される時はいつでも、新たな値は第1のセルにシフトされる。
後続するセルは、先のセルからシフトアウトされる値を保持する。
後続するセルへのシフトは、先のセル内の値がライブであり、先のセルが別のライブ値を受入れるためにシフトしなければならない場合、すなわち、その先行者が、シフトアウトされなければならないライブ値を保持する場合に、発生する。
Πサイクル毎に新たな反復が開始されるため、各サイクルに1つで、プログラムされなければならないΠ個のシフトパターンがある。
したがって、各パターンは、異なる位相バス線によって確定される。
特定のセルがk番目のサイクルでシフトされる場合、そのセルのORゲートは、k番目の位相線に接続された入力を有する。
セルがシフトされない場合、かかる接続は行われない。
たとえば、図3において、ORゲート38は、位相線41に接続された入力を有しておらず、そのためセル40は位相線41に対応するサイクルでシフトしない。
対照的に、セル40は、位相線44および45に対応するサイクルでシフトする。
本質的に、シフトパターンは、ORゲート入力と位相バス線との間の接続を設定することによってプログラムされる。
そして、アクセラレータの動作中、位相線は、コントローラ39によりサイクル毎に1回、順次アサートされ、関連する記憶セルはそれらの内容を下方にシフトさせる。
記憶レジスタ31を、位相線に永久的に配線されたORゲートを有するカスタムハードウェアで実施することができる。
しかしながら、記憶レジスタ31を、プログラマブルゲートアレイと他の形態のプログラマブルハードウェアで実施してもよい。
かかる場合、ORゲートと位相線との間の接続を、スイッチ46等のプログラマブルスイッチング素子を介して行ってもよい。
正確に記憶レジスタ内ですべてのシフトが発生する時を明確に定義することにより、記憶レジスタのシフト履歴から、記憶レジスタ内の各値が各瞬間に存在する場所を追跡することが可能である。
特定の瞬間に後続する演算により値が読出される場合、その値がその瞬間に格納されている記憶レジスタ素子が識別される。
そして、ハードウェアデータパスは、その瞬間、必要なデータ転送をサポートするために、データを保持しているレジスタ素子からデータを必要とする機能ユニットポートに接続される。
このように、本発明の記憶レジスタは、機能ユニット間のオペランドの順序付けを制御することができる。
記憶レジスタから特定の機能ユニットへデータを転送するためのタップ点は、機能ユニットによって読出されなければならないライブ値を保持する記憶レジスタセルにおいてのみ実施されればよい。
ここで図4を参照する。
図4は、本発明による2つの機能ユニットアセンブリ101および102を有するループアクセラレータ100のブロック図である。
上述したデータパスは、配線接続されてもよく、あるいは、機能ユニットアセンブリの記憶レジスタの出力をアクセラレータのあらゆる関数発生器の関連する入力に接続するクロスコネクトスイッチ103等のスイッチングネットワークの何らかの形態で、提供されてもよい。
特定の接続は、計算の段階によって確定され、それを、コントローラのうちの1つかまたはループアクセラレータのすべての機能ユニットのアクティビティを調整する別個のコントローラにより、クロスコネクトスイッチに通信することができる。
特定の機能ユニット出力がループ中にいかなる機能ユニットにもルーティングされない場合、クロスコネクトスイッチの対応するスイッチを省略することができ、それによりアクセラレータのコストが低減する。
値を、第1のセル以外のセルの記憶レジスタに入力してもよい、ということに留意しなければならない。
ここで図5を参照する。
図5は、本発明による記憶レジスタ51を利用し、記憶レジスタ51への追加の入力を有する、本発明によるハードウェアアクセラレータの1つの機能ユニットアセンブリ50のブロック図である。
この実施形態では、マルチプレクサ53は、コントローラ59の制御の下、記憶レジスタ51に新たな値を導入するために使用することができる入力55を提供する。
この入力を、図3に示すクロスコネクトスイッチ等の接続経路を介して他の機能ユニットに接続することができる。
代替的に、この入力をアクセラレータの異なるレジスタに接続することができる。
かかる追加の入力は、ループ計算の開始前に機能ユニットを初期化する際に有用である。
さらに、かかる入力は、共通レジスタかまたは仮想レジスタへの繰返される条件付き割当をサポートする。
上述した実施形態で利用される制御方式は、未符号化フォーマットでタイムモジュロΠをブロードキャストする位相バスに依存する。
位相バスはΠ本のワイヤからなり、i番目のワイヤが、正確にiのΠを法とする剰余であるサイクルで所定値(たとえば1)を有する。
しかしながら、他の制御方式を実現することも可能である。
ここで図6を参照する。
図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つの結果を生成する機能ユニットに関して論考した。
しかしながら、当業者には、これが、各機能ユニットが結果を出力する最高速度である、ということが認められよう。
サイクルによっては、機能ユニットのうちの1つまたは複数は出力を生成しなくてもよい。
実際には、その機能ユニットは、当該サイクルでヌル出力を生成する。
たとえば、浮動小数点ユニットは結果を完了するために2サイクルが必要であるが、他の機能ユニットは1サイクルのみが必要である。
かかる2サイクルシーケンスの第1のサイクルでは、その機能ユニットに接続された記憶レジスタは、いかなる新たな値もシフトさせない。
上述した説明と添付図面とから、当業者には本発明のあらゆる変更態様が明らかとなろう。
したがって、本発明は、以下の特許請求の範囲の適用範囲によってのみ限定されるべきである。
本発明は、コンピュータハードウェアに利用可能である。
従来技術によるハードウェアループアクセラレータ10のブロック図である。 シフトレジスタを利用するハードウェアループアクセラレータのブロック図である。 本発明による記憶レジスタ31を利用するハードウェアアクセラレータの1つの機能ユニットアセンブリ30のブロック図である。 本発明による2つの機能ユニットアセンブリ101および102を有するループアクセラレータ100のブロック図である。 本発明による記憶レジスタ51を利用し記憶レジスタ51への追加の入力を有する、本発明によるハードウェアアクセラレータの1つの機能ユニットアセンブリ50のブロック図である。 Π未満のワイヤを有するバスを利用する本発明の実施形態のブロック図である。 記憶レジスタにおけるセルのシフトを制御するために2つのモジュロバスを利用する本発明の実施形態を示す。
符号の説明
30・・・機能ユニットアセンブリ、
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)

  1. ループ計算において使用する計算ユニット(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)をさらに備える、記憶レジスタと
    を具備する計算ユニット。
  2. 計算ユニット(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記載の計算ユニット。
  3. 計算ユニット(30、50、100)であって、
    前記第1の位相バス(37、237、337)は、
    前記カウンタの前記値の2進コード化表現を含み、前記シフト制御回路(34、38、201、203)は、そのシフトセル(33、40、42、205、206、305、306)がシフトする各サイクルに対して前記制御信号を生成する比較器
    を備える
    請求項1記載の計算ユニット。
  4. 計算ユニット(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記載の計算ユニット。
  5. 計算ユニット(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記載の計算ユニット。
  6. 計算ユニット(30、50、100)であって、
    プログラマブルゲートアレイで実施される
    請求項1記載の計算ユニット。
  7. 計算ユニット(30、50、100)であって、
    前記ORゲート(34、38)のうちの1つの前記入力のうちの1つは、プログラマブルスイッチ(46)によって前記位相線のうちの1つに接続される
    請求項2記載の計算ユニット。
  8. Πサイクル毎にループの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)と
    を具備する
    ループアクセラレータ。
  9. 記憶入力ポートにおいて受取られた値を格納する記憶レジスタであって、
    前記サイクルの各々に対応して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)の線形に接続されたアレイと
    を具備する記憶レジスタ。
  10. 前記シフトセル(33、40、42、205、305、306)のうちの少なくとも1つは、前記位相線のうちの1つに接続されない
    請求項9記載の記憶レジスタ。
  11. 前記ORゲートのうちの1つの前記入力のうちの1つは、プログラマブルスイッチ(46)により前記位相線のうちの1つに接続される
    請求項9記載の記憶レジスタ。
JP2002575782A 2001-03-23 2002-03-21 カスタムループアクセラレータ等で使用する記憶システム Pending JP2005509930A (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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