JP2004531783A - Scalable interconnect structure for parallel operations and parallel memory access - Google Patents
Scalable interconnect structure for parallel operations and parallel memory access Download PDFInfo
- Publication number
- JP2004531783A JP2004531783A JP2002536883A JP2002536883A JP2004531783A JP 2004531783 A JP2004531783 A JP 2004531783A JP 2002536883 A JP2002536883 A JP 2002536883A JP 2002536883 A JP2002536883 A JP 2002536883A JP 2004531783 A JP2004531783 A JP 2004531783A
- Authority
- JP
- Japan
- Prior art keywords
- data
- node
- logic
- interconnect
- ring
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17356—Indirect interconnection networks
- G06F15/17368—Indirect interconnection networks non hierarchical topologies
- G06F15/17375—One dimensional, e.g. linear array, ring
Abstract
いくつかの革新的技術を用いることで複数のプロセッサが同じデータに並列アクセスすることが可能である。第1に、複数の離れたプロセッサが同じデータ位置からの読み取りを要求することができ、それらの要求をオーバラップした期間において処理することが可能である。第2に、複数のプロセッサが同じ位置にあるデータにアクセスでき、同じデータに対し読み取り、書き込みまたはマルチ処理をオーバラップした期間に行うことが可能である。第3に、一つのデータパケットを複数位置にマルチキャストすることができ、また、複数パケットを複数セットのターゲット位置にマルチキャストすることができる。Several processors allow multiple processors to access the same data in parallel. First, multiple distant processors can request reads from the same data location, and those requests can be processed in overlapping periods. Second, multiple processors can access data at the same location and can read, write, or multi-process the same data during overlapping periods. Third, one data packet can be multicast to multiple locations and multiple packets can be multicast to multiple sets of target locations.
Description
【0001】
(発明の背景)
高度な並列演算を行うシステムで生じている問題に、複数のプロセッサへの十分なデータフローの供給がある。米国特許第5,996,020号及び米国特許第6,289,021号には、ネットワークのデータフローを大幅に改善する広帯域で低遅延なインターコネクト(相互接続)構造が開示されている。ネットワークにおける並列メモリーアクセス及び演算をサポートすることにより、そのような広帯域・低遅延インターコネクト構造を十分に活用し得るシステムが必要とされている。
【0002】
(発明の要約)
いくつかの革新的技術を用いることで複数のプロセッサが同じデータに並列アクセスすることが可能である。第1に、複数の離れたプロセッサが同じデータ位置からの読み取りを要求することができ、それらの要求をオーバラップした期間において処理することが可能である。第2に、複数のプロセッサが同じ位置にあるデータにアクセスでき、同じデータに対し読み取り、書き込みまたはマルチ処理をオーバラップした期間に行うことが可能である。第3に、一つのデータパケットを複数位置にマルチキャストすることができ、また、複数パケットを複数セットのターゲット位置にマルチキャストすることができる。
【0003】
以下の説明において、“パケット”という用語は、好適にはシリアル形式のデータユニットを指す。パケットの例としては、インターネットプロトコル(IP)パケット、イーサネット(登録商標)フレーム、ATMセル、スイッチファブリックセグメント(switch−fabric segments)があり、それらには、より大きなフレームまたはパケットの一部、スーパーコンピュータのプロセッサ間メッセージ、及びメッセージ長さが有限の他のデータメッセージタイプを含まれる。
【0004】
本明細書に開示されるシステムは、あるスイッチに到達した複数パケットが同じ位置にあるデータにアクセスする場合に通信において発生するのと同様の問題を解決する。
【0005】
他のマルチレベル最小ロジックネットワーク構造(Multiple Level Minimum Logic structures)を、多種多様なプロセッサ及びコンピュータ、メモリーデバイス、ロジックデバイスを含む多くの非常に有用な装置及びシステムにおいて、基本構築ブロック(fundamental building block)として用いることができる。そのような装置及びシステムの例としては、並列ランダムアクセスメモリー(PRAM)及び並列演算エンジンがある。これらの装置及びシステムは、内蔵記憶装置またはメモリー及びロジック回路とともにネットワーク接続構造を基本構築ブロックとして含む。データ記憶装置は先入れ先出し(FIFO)リングの形態とすることができる。
【0006】
(詳細な説明)
以下に説明する好適実施例の新規であると考えられる特徴は特許請求の範囲に規定される。しかし、構造及び処理方法の両方に関連する本発明の実施例は添付の図面を参照しつつ以下の説明を読むことにより最も良く理解されるだろう。
【0007】
図1の模式的なブロック図には、1または複数のネットワークインターコネクト構造(network interconnect structure)を含む構築ブロックから形成された汎用システム100の例が示されている。図示されている例では、汎用システム100は、ネットワークインターコネクト構造から形成されたトップスイッチ100とボトムスイッチ112とを有する。“ネットワークインターコネクト構造”という用語は他のインターコネクト構造を指すこともできる。別のシステムでは、ネットワークインターコネクト構造から形成される更に別の要素を含むこともできる。汎用システム100には、基本的な例示的システムの中核要素として含まれ得る様々な構成要素が示されている。ある実施例では、中核要素に加えて別の要素も含まれる。他の要素には、1)共有メモリー、2)トップスイッチとボトムスイッチの間の直接接続130、3)ボトムスイッチとI/Oとの間の直接接続140、及び、4)ロジックユニット114とボトムスイッチ112との間に接続されるコンセントレータ(concentrator)などが含まれ得る。
【0008】
汎用システム100はトップスイッチ110を有しており、このトップスイッチ110は、入力データパケットを入力ライン136から、または、外部ソース及び可能ならばボトムスイッチからバス130を通じて受信し、受信したパケットを動的プロセッサ・イン・メモリー式ロジックモジュール(dynamic processor−in−memory logic module:DPIM)114へと配布する入力ターミナルとして機能する。トップスイッチ110は、パケットヘッダ内に格納された通信情報に基づき汎用システム100内におけるパケットのルーティングを行う。パケットはトップスイッチ110からDPIMモジュール114へと送られる。DPIMモジュール114からトップスイッチ110への制御信号により、衝突を防ぐべくパケット入力のタイミングが制御される。これにより、そのような制御がない場合に発生し得るDPIM内のデータまたはボトムスイッチ内のデータとの衝突が防止される。このシステムは、出力ライン及びバス130、132、134及び136を用いて、更なる演算要素、通信要素、記憶要素及び他の要素(図示せず)に情報を転送することもできる。
【0009】
データパケットはトップスイッチ110に入り、各パケットのアドレスフィールドに基づいてターゲットDPIM114へと送られる。パケット内に含まれる情報を可能ならば他の情報と共に用いて、ロジックDPIM114によりパケットまたはDPIMメモリー内に含まれるデータに対して実行される処理を決定することができる。例えば、パケット内の情報により、DPIMメモリー内に格納されたデータを変形(modify)したり、DPIMメモリー内に含まれるデータをボトムスイッチ112へと送ったり、或いは、DPIMロジックモジュールによって生成された他のデータがボトムスイッチから出力されるようにすることができる。DPIMからのパケットはボトムスイッチへと送られる。汎用システム100の他のオプションとして、演算ユニット(computational unit)またはメモリーユニット或いはその両方を含むことができる。演算ユニット126はI/Oユニット124を通じてシステム100の外部またはトップスイッチ110或いはその両方へとデータパケットを送るべく配置することができる。ボトムスイッチがトップスイッチへとパケットを送る場合、パケットは直接送ることもできるし、或いは、システム100のサブコンポーネントである集積回路の間のタイミング及び制御を扱う1または複数のインターコネクトモジュール(図示せず)を介して送ることもできる。
【0010】
システムの一実施例では、データ記憶装置はDPIM114内の先入れ先出し(FIFO)データ記憶リングR、及び、演算ユニット(CU)126に関連づけられた通常のデータ記憶装置の形態を有する。FIFOリングは、環状接続された複数の単ビットシフトレジスタからなる。FIFOリングは2種類の構成要素を含む。第1の例では、従来知られているが、FIFOリングは、隣接する単ビットシフトレジスタにのみ接続され単純なFIFO310を形成する複数の単ビットシフトレジスタを有する。第2の例では、リングの他のシフトレジスタは、例えばロジックモジュール114のようなシステムの他の要素内に含まれる単ビットまたはマルチビットレジスタからなる。これら2種類の構成要素は直列に接続されリングを形成する。例えば、FIFOリングの全長FLを200ビットとし、64ビットが複数のロジックモジュールL内に格納され、残りの136ビットはFIFOの直列接続されたレジスタ内に格納されるようにすることができる。システム全体に供給されるクロックがFIFO要素及びシフトレジスタに接続され、データビットを“バケツリレー”式に次の位置へと進ませる。サイクル時間(cycle period)は、データがFIFOリングのちょうど1サイクルを完了するのに要するクロック周期で表される時間として定義される。サイクル時間の整数値は構成要素の数で表したFIFOリングの長さに等しい。例えば、200個の構成要素(即ち、長さ200)からなるリングでは、サイクル時間は200システムクロック周期となる。システムは、異なるレートで動作する局所的なクロックまたはタイミングソースを有することも可能である。実施例によって、システムの全てのFIFOリングが同じ長さを有しても、所定の最小長さの整数倍でばらついた長さを有してもよい。別の実施例では、一つのリングが複数の並列経路を備えたバス構造を有し、リング内に保持されるデータ量がリング長さFLの整数倍となるようにすることもできる。
【0011】
汎用システム100では、トップスイッチは、システム最大長さまでの様々な長さを有するパケットを扱うことが可能である。ある用途では、パケットは全て同じ長さを有することもできる。一般的には、様々な長さを有するパケットがトップスイッチに入力される。パケットの長さはPLで表され、PLはFLを越えない。
【0012】
同様に、ボトムスイッチも様々な長さのパケットを扱うことができる。汎用システム100の典型的な実施例では、DPIMロジックモジュール114及びCU126の機能及び動作に応じて異なるビット長さを有するデータが生成される。DPIMは独立して機能することができ、または、これらDPIMからデータを集め、システム100の内または外にあるDPIMまたは他の要素にデータを供給することが可能な、図示しない複数のシステムがあってもよい。
【0013】
図2の模式的ブロック図は、図1に含まれるよりも少ない数の構築ブロックから形成された並列ランダムアクセスメモリー(PRAM)システム200の例を示している。このPRAMシステムは、ネットワークインターコネクト構造から形成されるトップスイッチ110、コンセントレータ150及びボトムスイッチ112を有している。またこのシステムは、データを格納する複数のDPIM114を含む。これらのDPIMユニットは通常READ及びWRITE機能を実行することができ、それによりシステムを並列ランダムアクセスメモリーとして使用することが可能となっている。
【0014】
例示している実施例では、トップスイッチ110に入力されるデータパケットは次の形式を有する:
ペイロード|処理コード2|アドレス2|処理コード1|アドレス1|タイミングビット
これは以下のように表すことができる:
PAYLOAD|OP2|AD2|OP1|AD1|BIT
【0015】
PAYLOADフィールドのビット数はPayLで表す。OP2及びOP1のビット数はそれぞれOP2L及びOP1Lで表す。AD2及びAD1のビット数はそれぞれAD2L及びAD1Lで表す。BITフィールドの長さは好適実施例では1ビットである。
【0016】
以下の表に、パケットフィールドの簡単な説明を示す。
【0017】
BITフィールドは最初にスイッチに入るが、パケットが存在することを示すべく常に1にセットされる。BITフィールドは“トラフィックビット(traffic bit)”とも呼ばれる。AD1フィールドはパケットをトップスイッチを通じてそのパケットのターゲットDPIMへと導くのに用いられる。トップスイッチ110を複数の階層レベル及びコラムをなすように構成し、パケットがこれらのレベルを通過するようにすることができる。パケットがトップスイッチ110の新たなレベルに入るたび、AD1フィールドの1ビットが除去され、それによりAD1フィールドは短くなる。システム200も同じ技法を用いる。パケットがトップスイッチ110を出るとき、AD1フィールドには何も残らない。従って、パケットはトップスイッチを出るとき以下の形式を有する:
PAYLOAD|OP2|AD2|OP1|BIT
【0018】
システム100及び200は複数のDPIMユニットを有する。図3はDPIMユニットの一例を図示するとともにDPIMとトップスイッチ110及びボトムスイッチ112との間のデータ及び制御接続路を示す模式的ブロック図である。図3には4つのデータインターコネクト構造Z、C、R及びBが示されている。インターコネクト構造Zはトップスイッチ110内に配置されたFIFOリングとすることができる。インターコネクト構造C及びRはDPIMモジュール内に配置されたFIFOリングからなる。いくつかの実施例では、DPIMはデータを直接ボトムスイッチへ送る。それらの実施例では、ボトムスイッチがインターコネクト構造である場合、インターコネクト構造BはFIFOリングである。図1及び7はコンセントレータを有さないシステムを図示し、図2、3、4A及び5はコンセントレータを含むシステムを示している。
【0019】
データはトップスイッチ110を通過しターゲット出力リングZJ(J=AD1)へ到達する。リングZ=ZJは、出力ライン326に接続された複数のノード330を有する。DPIMモジュールは“データ通信リング”と呼ばれるパケット受信リングC 302及び1または複数の“データ記憶リング”R 304を有する。図3に示したDPIMは単一のデータ記憶リングRを有する。各構造Z、C、R及びBは、相互接続された複数の単ビットFIFOノードを含む。構造内のノードのいくつかは単一のデータ入力ポート及び単一のデータ出力ポートを有し、インターコネクトされて単純なマルチノードFIFOを形成する。構造内の他のノードは更なるデータ入力ポート、更なるデータ出力ポート或いはその両方を有する。またこれらノードは制御信号出力ポートまたは制御信号入力ポートを有することもできる。リングZはリングCから制御信号を受信し、データをロジックモジュールL 314に送る。リングC及びRはロジックモジュールL 314に対しデータの送受信を行う。FIFO B 380はロジックモジュールLに制御信号を送り、ロジックモジュールLからデータを受け取る。一つのDPIMは、インターコネクト構造またはFIFO B内の複数の入力ポートへとデータを送ることが可能な複数のロジックモジュールを有することができる。DPIMからのデータは、システムBのトップレベル内へと複数の列(rows)をなすように送り込むことができる。DPIMの数はメモリー位置の数と同じとすることができ、その場合、各DPIMは1ワードのデータを格納する単一の記憶リングRを有する。別の方法として、一つのDPIMユニットが複数の記憶リングRを含むものとすることもできる。アドレスAD1フィールドの一部によって、または、処理OP1フィールドの一部によって特定の記憶リングを同定することができる。
【0020】
パケット移動のタイミングは4つのリングで同期がとられている。パケットがリング内を循環する際、パケットはBITフィールドに関して整合される。整合の有益な結果として、リングCはリングZに制御信号328を送り、Z内のノードがCへとパケットを送るのを許可または禁止する。リングCのノード330から許可を受信すると、リングZ上のノード312はロジックモジュールLにパケットを送ることができ、ロジックモジュールはパケットを即座にビットシリアルに処理する位置に置かれる。同様に、データ記憶リングR内を循環しているパケットはリングCと同期され、それによりパケットがそれぞれのリングを循環する際にそれぞれのビットがロジックモジュールLにより好適に処理される。データ記憶リングRは、後述するいくつかの新規な用途において用いることが可能なメモリー要素として機能する。複数のDPIMがトップスイッチと同じチップ上にはない場合、リングZのノードとロジックモジュールLとの間を結ぶ別個のデータ通信リング(図示せず)を用いてチップ間のタイミング及び制御を行うこともできる。
【0021】
記憶リングR内のデータは、トップスイッチのZリング306内のパケットの一部と整合及びオーバラップし、サイクル時間において同時に発生する複数のパケットによりトップスイッチ110からアクセス可能である。複数のロジックモジュール314がデータ通信リングC及びデータ記憶リングRに関連づけられている。一つのロジックモジュールLはリングC及びRからデータを読み出し、ある条件の下でデータに対して処理を施し、リングC及びRに書き込むことができる。更にロジックモジュールLはボトムスイッチ112またはコンセントレータにあるFIFO308のノード320へパケットを送ることができる。複数のDPIMがボトムスイッチと同じチップ上にない場合、インターコネクト構造Bのノード320とロジックモジュールL 314とを結ぶ別個のデータ通信リング(図示せず)を用いてチップ間のタイミング及び制御を行うことができる。また、一つのデバイスが1サイクル時間において通信リングの複数のビットにアクセスする必要がある場合にも、タイミング及び制御動作のために別個のデータ通信リングを用いることができる。
【0022】
パケットはロジックモジュール314を通じて通信リングCに入る。パケットはロジックモジュールLから出て、入力チャネルを通じて様々な角度でボトムスイッチに入る。
【0023】
汎用システム100のいくつかの例では、DPIM114のリングC及びRに沿ったロジックモジュールの全てが同じタイプであり、同様のロジック機能を実行する。他の例では、複数の異なるロジックモジュールタイプが用いられ、特定のDPIMのリングRに格納されたデータに対し複数のロジック機能を実行することが可能である。データがリングRを循環する際、ロジックモジュールL 314はデータを変形(modify)することができる。ロジックモジュールは、リングC及びリングRから、及びリングZ上のノードからモジュールをシリアルに通過するデータビットに作用する。典型的なロジック機能には、(1)ロード、記憶、読み出し、書き込みのようなデータ転送処理、(2)AND、OR、NOR、NAND、排他的OR、ビットテストなどの論理演算、及び(3)加算、減算、乗算、除算、超越関数などのような算術演算が含まれる。多数の他のタイプの論理演算を含むこともできる。ロジックモジュールの機能はロジックモジュールにハードワイア化することも、あるいは、ロジックモジュールに送られたパケットからロジックモジュールへとロードされるソフトウェアによって実現することもできる。ある実施例では、特定のデータ記憶リングRに関連する複数のロジックモジュールは独立して動作する。他の実施例では、ロジックモジュールのグループからデータを受信することができる別個のシステム(図示せず)によって複数のロジックモジュールグループが制御される。更に別の実施例では、ロジックモジュール制御システムはロジックモジュールから受信したデータに対して制御命令を実行する。
【0024】
図1及び図2において、各DPIMは一つのリングR及び一つのリングCを有する。システム100の別の実施例では、特定のDPIM114が複数のRリングを有する。このような複数Rリングの実施例において、一つのロジックモジュール314がCリング及び全てのRリングからのデータに同時にアクセスすることが可能である。同時アクセスによって、ロジックモジュールが1または複数のRリング上のデータを、Rリングの内容に基づき、且つ、関連する通信リングC及び受信されたパケットの内容にも基づいて、変形することが可能となる。
【0025】
ロジックモジュールによって実行される典型的な機能は、リングRに保持されたデータに関連してパケットのPAYLOADフィールドに保持されたデータに対してなされる、OP1フィールドに指定された処理の実行である。ある特定の例では、処理OP1は、パケットのPAYLOAD内のデータをアドレスAD1にあるリングR内に格納されたデータに加えることを指示する。その結果得られる和はアドレスAD2のボトムスイッチのターゲットポートへと送られる。OP1処理のデータフィールドに保持された命令によって指示され、ロジックモジュールは複数の処理を実行することができる。例えば、リングR 304内のデータを変更なくそのままとすることができる。ロジックモジュールはリングR 304内のデータをPAYLOADフィールドの内容で置き換えることもできる。或いは、ロジックモジュールLはPAYLOADフィールド内に保持されたデータを、リングR 304及びPAYLOADフィールド内に保持されていた内容に対して行った処理の結果で置き換えることもできる。別の例では、メモリーFIFOはデータだけでなくプログラム命令も格納することができる。
【0026】
通信リングC及び記憶リングRに関連する複数タイプのロジックモジュール314を含む汎用システム100は、ある処理を実行するのに用いられる特定のロジックモジュールを指定するのにOP1フィールドの1または複数のビットを用いることができる。ある実施例では、複数のロジックモジュールが同じデータに対して複数の処理を実行する。アドレスAD1=xのロジックモジュールのセットは、アドレスAD1=yのロジックモジュールのセットとは異なる処理を実行することができる。
【0027】
汎用システム100内を通るデータパケットの移動効率はデータフローのタイミングに依存する。いくつかのシステムでは、ロジックモジュールに関連づけられたバッファ(図示せず)がデータ転送のタイミングの維持に寄与する。多くの実施例で、タイミングはデータをバッファリングすることなく維持される。汎用システム100のインターコネクト構造は、好適なことに、データの効率的な並列演算、生成及びアクセスを実現する動作タイミングを有する。
【0028】
少なくとも1つのスイッチ、データ記憶リング304のグループ、及び関連するロジックモジュール314を含む複数の構成要素からなる汎用システム100は、様々な演算及び通信スイッチを実現するのに用いることができる。演算及び通信スイッチの例としては、インターネットスイッチングシステムで用いられるIPパケットルータまたはスイッチ、特殊用途ソーティングエンジン(sorting engine)、汎用コンピュータ、或いは、汎用または特定機能を有する多くの並列演算システムがある。
【0029】
図2の模式的なブロック図には、ネットワークインターコネクト構造を基本要素として用いて形成された並列ランダムアクセスメモリー(PRAM)が示されている。このPRAMは、複数のソースから同時にアクセス可能で且つ複数の送付先へ同時に送ることが可能なデータを格納する。このPRAMはトップスイッチ110を有しているが、トップスイッチ110のターゲットリングからパケットを受信する通信リングを有しても有さなくてもよい。通信リングを有さないインターコネクト構造では、リングZがロジックモジュールを通過する。トップスイッチ110は、ターゲットリングの各々からのT個の出力ポート210を有する。典型的なPRAMシステム200では、アドレス位置の数は、システムのI/Oポートの数より多い。例えば、PRAMシステムは、DPIMに格納された64Kワードのデータにアクセスする128個のI/Oポートを有する。AD1フィールドは64K個のDPIMアドレス114を可能とするべく16ビット長さとなっている。AD2フィールドは、128個の出力ポート204を可能とするべく8ビット長さとなっており、7ビットがアドレスを保持し、1ビットはアドレスのBIT2部分である。トップスイッチは128個の入力ポート202と、それぞれ出力ポート206を介したDPIMユニットへの多重接続を有する64K個のZリング(図示せず)とを有する。コンセントレータ150は64K(65536)個の入力ポート208と128個の出力ポート210とを有する。ボトムスイッチ112は128個の入力ポートと128個の出力ポート204とを有する。コンセントレータは、トップ及びボトムスイッチ及びロジックモジュールと同じ入力及び出力に対する制御タイミング及び信号規則に従う。
【0030】
別の態様として、トップスイッチはより少ない数の出力Zリング及び関連するDPIMを有することもできる。DPIMユニットが複数のRリングを有し、トータルのデータサイズは変わらないようにすることも可能である。
【0031】
図2に示されているPRAMは、通信リングC 302及び記憶リングR 304に直結したロジックモジュール314を含むDPIMユニット114を有している。DPIMユニット114は、出力データをボトムスイッチ112に供給するパケットコンセントレータ150に接続している。
【0032】
図3を参照すると、リングC上のノード330はトップスイッチのリングZ上のノード312に制御信号を送り、リングZの個々のノード312がロジックモジュールLへとパケットを送るのを許可する。リングZからパケットを受け取ると、ロジックモジュールLは幾つかの処理の一つを実行することができる。第1に、ロジックモジュールLはパケットのCリング上への載置(placing)を開始することができる。第2に、ロジックモジュールLはパケット内のデータを即座に使用開始することができる。第3に、ロジックモジュールLは生成されたパケットをCリング上に置くことなくコンセントレータ150に即座に送付し始めることができる。あるロジックモジュールLiがパケットPをCリング上に置き始めることができ、そのロジックモジュールLiがリング上に幾つかビットを置いた後、別のロジックモジュールLk(ここでk>i)がそれらのビットの処理及び除去を開始することができる。ある場合には、パケットP全体がリングC上に置かれることがない。ロジックモジュールはデータをCリングまたはRリングへと挿入することができ、或いは、データをコンセントレータ150に送ることもできる。コンセントレータに入るデータの制御にはコンセントレータからのライン324上の信号も用いられる。あるリングRに関連づけられた複数のロジックモジュール314は、そのリングRに関連づけることが可能な補助デバイス(図示せず)との付加的な送受信用相互接続を有することもできる。補助デバイスはシステムの目的及び機能に応じて様々な構造を有し様々な機能を奏することができる。補助デバイスの一例としてはシステムコントローラがある。
【0033】
ある実施例では、PRAM200は、全て同じロジックタイプを有し同じ機能を奏する複数のロジックモジュール314を含むDPIMを有する。
【0034】
別の実施例では、特定のアドレスにある第1のDPIM Sが異なるタイプ及び機能の複数のロジックモジュールを有することができる。第2のDPIM Tは第1のDPIM Sと比較して同じまたは異なるタイプのロジックモジュールを有することができる。PRAMの一応用例では、1データワードが一つの記憶リングRに格納される。データがリングR内を循環する際、ロジックモジュールはデータを変形することができる。このPRAMでは、ロジックモジュールはデータだけでなくプログラム命令も格納可能な記憶リングRの内容を変形する。
【0035】
このPRAMは、以下のように定義されるフィールドを含むように定められたパケットを用いてデータの記憶及び検索をする:
PAYLOAD|OP2|AD2|OP1|AD1|BIT
【0036】
パケットが存在することを示すべく1にセットされたBITフィールドが汎用システム100に入る。AD1フィールドは、所望のデータを含むデータ記憶リングR 304を含む特定のDPIMのアドレスを指定する。トップスイッチはアドレスAD1によって指定されたDPIM(AD1)にパケットを送る。示される例では、OP1フィールドは実行される処理を指定する単ビットからなる。例えば、論理値1はREAD要求を、論理値0はWRITE要求を指定する。
【0037】
READ要求では、位置AD1にあるDPIM内の受信ロジックモジュールがリングR上に格納されたデータをボトムスイッチ112のアドレスAD2へ送信する。WRITE要求では、パケットのPAYLOADフィールドがアドレスAD1のリングR上に置かれる。AD2はREAD要求においてボトムスイッチ112を通じてデータのルーティングをするのに用いられる宛先アドレスであり、メモリーの内容が送られるべき場所を指定する。OP2は所望に応じてアドレスAD2に位置するデバイスが送られてきたデータに対して実行すべき処理を記述する。処理OP1がREAD要求の場合、READ要求を実行するロジックモジュールはPAYLOADフィールドを用いない。
【0038】
一実施例では、PRAMはただ一つのタイプのロジックモジュール(READ及びWRITE処理の両方を実行するタイプ)を含む。PRAMの別の実施例では、別個のREAD要素とWRITE要素を備えたような、別のタイプのロジックモジュールが用いられる。
【0039】
図2及び図3を参照すると、図示されているPRAM200は適時にトップスイッチ110に入ってくるパケットを受信することにより処理を開始する。パケットPはトップスイッチ内をルーティングされアドレスAD1に位置するターゲットリングZに到達する。パケットのAD1フィールドはトップスイッチのターゲットリングZJ306を指定する(ここでJ=AD1)。ノードS(図示せず)及びノードT(図示せず)がメッセージタイミングを規定するべく定められる。ノードSはリングRJのノード330として定められ、ノードTはリングZJのノード312として定められ、ノードSはノードTに制御ライン328を通じて制御信号を送るように配置される。グローバルタイミング信号に基づき、リングRJのノードS 330はノードSにおけるタイミングビット到達時間を特定する。タイミングビット到達時間にノードSに値1のタイミングビットが到達すると、ノードSはライン328を通じてリングZ上のノードT 312にブロック信号(blocking signal)を送り、ノードTがパケットをライン326を通じてロジックユニットLへと送るのを禁止する。タイミングビット到達時間にノードSが値1のビットを受信しない場合、ノードCからノードSに入ってきているメッセージはなく、ノードSはノードTへ非ブロック(non−blocking)制御信号を送る。グローバルタイミングはノードTにおける制御信号到達時間が、リングZまたはトップスイッチ内においてリングZより一つ上のレベルに位置するノードUからノードTへのメッセージ到達時間と同時になるようになっている。トップスイッチ110を出るパケットはノード312からライン326を通じてロジックモジュールへと向かう。ロジックモジュールは通信リングC 302上にパケットを置く、或いは、リングC上に置くことなく即座にパケットを処理することができる。このとき、パケットPは以下の形式を有する:
PAYLOAD|OP2|AD2|OP1|BIT
【0040】
パケットPはリングZからライン326を通じてロジックモジュールLへと送られる。パケットPがロジックモジュールLへの移動を開始するとき、リングZ上のあるノードNZは、トップスイッチ内のより高いレベルにあるノードWにノードNZにおいて非ブロック状態であることを通知するべく制御信号を送る。この制御信号は、ノードNZからデータを受け取る位置にあるノードNXにデータをルーティングする許可をノードWに与える。ロジックモジュールLはライン326を通じて到達するパケット及びリングC上から到達するパケットに対しタイミングに関して同様に作用する。パケットPがロジックモジュールLに入ると、ロジックモジュールLはOP1フィールド内のコマンドを解析(parse)し実行する。
【0041】
示されている実施例では、通信リングCは記憶リングRと同じ長さを有する。ビットは共通クロックによって支配されるレートでビットシリアルにリングC及びR内を移動する。パケットのPAYLOADフィールドの第1ビットはリングRのDATAフィールドの第1ビットと整合される。従って、READ要求の場合、リングR内のデータはパケットのペイロード部にコピーされる。WRITE要求の場合、パケットのペイロード部内のデータをパケットから記憶リングRへと転送することができる。
【0042】
READ要求
READ要求では、パケットPは以下の形式を有する:
PAYLOAD|OP2|AD2|OP1|AD1|BIT
【0043】
パケットはトップスイッチに入る。一般に、アドレスAD1のDPIMのロジックモジュールは、処理コードOP1フィールドを調べることでREAD要求を同定する。ロジックモジュールはパケットのPAYLOADフィールドをリングRからのDATAフィールドで置き換える。そうして、更新されたパケットはコンセントレータを通じてボトムスイッチへ送られ、そこからアドレスAD2にある演算ユニット(CU)126または他のデバイスへと送られる。CUまたは他のデバイスはPAYLOADフィールドに関連して処理コード2(OP2)によって指定された命令を実行することができる。
【0044】
パケットPはリングZ上のノードT 312に入る。ノードTは、ノードTに入るパケットPのタイミングビット及びリングC上のノード330からの非ブロック制御信号に応答して、パケットPをデータパス326を通じてロジックモジュールLへと送り始める。BIT及びOP1フィールドがロジックモジュールLに入るとき、コンセントレータ150或いはコンセントレータがない場合にはボトムスイッチがメッセージを受け取ることが可能であるかどうかを示すライン324上の制御信号もロジックモジュールLに到達する。制御信号がコンセントレータはメッセージを受け取ることができない旨示す場合、ロジックモジュールLはパケットをリングCへと転送し始める。パケットPはリングC上の次のロジックモジュールへと移動する。
【0045】
ある時点で、リングC上のロジックモジュールの一つが、階層のより下方からノットビジー制御信号を受信する。そのとき、ロジックモジュールLはインターコネクト構造Bの入力ノード320へのパケットPの転送を開始する。
【0046】
READ要求では、ロジックモジュールはOP1フィールドをパケットから取り出し、コンセントレータの入力ノード320へとパス322を通じてパケットの送出を開始する。まず、ロジックモジュールはBITフィールドを、続いてAD2フィールドを、そしてOP2フィールドを送る。記憶リングRのDATAフィールドの第1ビットがロジックモジュールに達するのと同時にOP2フィールドの最終ビットがロジックモジュールを離れるようにタイミングがセットされる。ロジックモジュールは記憶リングR内のDATAフィールドは不変のままとし、下流に送られるパケットのPAYLOADフィールドにDATAのコピーを入れ、コンセントレータへビットシリアルにパケットを送り続ける。リングR内のデータは不変のまま維持される。
【0047】
パケットはコンセントレータに入るとき及びそれを出るとき変化なく、ボトムスイッチ112に入るとき以下の形式を有する:
DATA|OP2|AD2|BIT
【0048】
PAYLOADフィールドはこの時点ではリングRからのDATAフィールドを含む。パケットがボトムスイッチ内をルーティングされる際、AD2フィールドは除去される。パケットはボトムスイッチのアドレスAD2に位置する出力ポート204から送出される。送出時、パケットは以下の形式を有する:
DATA|OP2|BIT
【0049】
OP2フィールドは様々な方法で使用可能なコードである。一つの用途は、ボトムスイッチ出力デバイスがPAYLOADフィールドに格納されているデータに対し行う処理を示すことである。
【0050】
PRAMのインターコネクト構造はデータの効率的、並列生成及びアクセスを実現する循環タイミング(circular timing)を本質的に有する。例えば、異なる入力ポート202に位置する複数の外部ソースが特定のDPIM114にある同じDATAフィールドに対するREAD処理を要求することができる。複数のREAD要求は異なるノード312においてトップスイッチの特定のターゲットリングZ306に入ることができ、その後、そのターゲットDPIMの異なるロジックモジュールLに入る。これらREAD要求は同じサイクル時間においてリングC上の異なるロジックモジュールに入ることができる。通信リングC 320及びメモリーリングR 304はコンセントレータの入力インターコネクト構造B及びトップスイッチのターゲットリングZ内のパケットの動きに関して常に同期している。
【0051】
READ要求は常に、リングRからのデータを送出パケットの適切なPAYLOAD位置に付加するのに適した時間にロジックモジュールに到達する。その有益な結果として、リングR内の同じデータに対する複数の要求を同時に発行することが可能となる。同じDATAフィールドが複数の要求によりアクセスされる。リングRからのデータは複数の最終送付先に送られる。複数のREAD処理は並列に実行され、送付されるパケットは複数の出力ポート204に同時に到達する。複数のREAD要求は、異なるロジックモジュールによってリングR内の異なる場所から同時に読み取りを行うことにより、オーバラップして実行される。更に、他の複数のREAD要求がPRAMメモリーの異なるアドレスにおいて同じサイクル時間において実行される。
【0052】
システムタイミングにより、複数のREAD要求はオーバラップして、効率的且つ並列に実行される。図4A、4B及び4Cは単一のREADに対するタイミングを図示している。記憶リングRは通信リングCと同じ長さである。リングRは長さPayLの循環データ414を含む。リングR内の残りの記憶要素はゼロまたは“ブランク(blank)”とするか、或いは、無視され任意の値をとることができる。BLANKフィールド412はDATAフィールド414に含まれないビットのセットである。
【0053】
図4Aを参照すると、各リングC及びRの一部が特定のDPIMのロジックモジュールを通過している。ロジックモジュールは、リングCを構成するシフトレジスタのセットの少なくとも2つのビットと、リングRを構成するシフトレジスタの少なくとも2つのビットを含む。ある実施例では、DPIM314は複数のロジックモジュール314を含む。ロジックモジュールは、1クロック時間で通信リング302の2ビットを読み込むよう配置される。グローバル信号(図示せず)によって指示される時間において、ロジックモジュールはBITフィールドとOP1フィールドを調べる。示されている例では、ロジックモジュールはOP1フィールド及びBITフィールドの全体を一緒に読み込む。別の実施例では、OP1及びBITフィールドを複数動作により読むことも可能である。READ要求では、ブロックされていないロジックモジュール314が適切な時間にパケットをコンセントレータまたはボトムスイッチに送り、パケットがコンセントレータまたはボトムスイッチの入力内の他のビットと整合するようにする。
【0054】
READ要求では、ブロックされたロジックモジュールがパケットをリングC上に置くと、そのパケットは次のロジックモジュールへと移動する。次のロジックモジュールはブロックされていてもされていなくてもよい。後続のロジックモジュールがブロックされている場合、そのブロックされたロジックモジュールもリングC上のパケットを同様に次のモジュールへ送る。パケットが右端のロジックモジュールLRに入り、この右端のロジックモジュールLRがブロックされている場合、ロジックモジュールLRはパケットをリングC上のFIFOを通過するよう送る。FIFOを出るとパケットは左端のロジックモジュールに入る。パケットは、ブロックされていないロジックモジュールに出会うまで循環する。リングCの長さは循環するパケットが常にリング上に完全に納まるように設定される。別の言い方をすると、パケット長さPLはリング長さFLを越えることはない。
【0055】
READ動作では、パケットは次の形式を有する:
|PAYLOAD|OP2|AD2|OP1|AD1|BIT|
【0056】
パケットはトップスイッチに挿入される。アドレスフィールドAD1は所望のデータを含むリングR 304のターゲットアドレスを示す。アドレスフィールドAD2は、結果が送られるボトムスイッチの出力ポート204のターゲットアドレスである。処理コードOP2は出力デバイスによって実行されるべき処理を指定する。
【0057】
ある典型的な実施例では、出力デバイスは入力デバイスと同じである。従って、単一のデバイスがPRAMの入力202及び出力204ポートに接続される。READ要求では、PAYLOADフィールドはロジックモジュールによって無視されるので、どのような値でもよい。一方、WRITE動作では、PAYLOADフィールドはアドレスAD1のDPIMに関連づけられたリングR 304上に置かれるデータを含む。ロジックモジュールから送り出される変形されたパケットは以下の形式を有する:
|DATA|OP2|AD2|BIT|
【0058】
ボトムスイッチに入るデータは以下の形式を有する:
|DATA|OP2|AD2|BIT|
【0059】
データは、アドレスフィールドAD2によって指定された出力ポートを通じてボトムスイッチから送り出され、ここでDATAはリングRのデータフィールド414である。
【0060】
図4A、4B及び4Cは通信リングC、データ記憶リングR及びコンセントレータBの間のタイミングを表している。複数の並列なFIFOをバス構造で有するリングを含む実施例では、ロジックモジュール314は一度に複数のビットを読み込むことができる。本実施例では、ロジックモジュールLはクロック時間ごとに1ビットのみを受け取る。コンセントレータBはロジックモジュールからパケットを受け取ることができるFIFO308上の複数の入力ノード320を含む。ロジックモジュールは入力ポート322を通じてコンセントレータのトップレベルにデータを注入するべく配置される。
【0061】
図4Aを参照すると、BITフィールド402は1にセットされ、データリングR上のBLANKフィールド412の第1ビットB0408と同時にロジックモジュールに到達する。循環するデータの相対的なタイミングは、リングR内のDATAの第1ビットが(ライン410で示すように)リングC内の要求パケットのペイロードフィールドの第1ビットと整合するように調整される。
【0062】
既にコンセントレータB内にあり、コンセントレータの別のノードからノード316へと入ろうとしているデータは、パス322を通じて上方からノード316に入ろうとするデータに対して優先する。グローバルパケット到達タイミング信号(図示せず)により、パケットが入り得る時間についてノード316に情報が伝えられる。既にコンセントレータ内にあるパケットがノード316に入る場合、ノード316はそれに接続されたロジックモジュールに対しパス324を通じてブロック信号を出す。ブロック信号に応答して、上述したように、ロジックモジュールLは通信リングCへとREAD要求パケットを送る。階層の下方からブロック信号が送られてこない場合、ロジックモジュールLはノード316の下流のコンセントレータB内の入力ノード320へとライン322を通じてパケットを送る。
【0063】
図4Aは時間T=0におけるREAD要求を示している(ここでT=0は、要求を受け取ったロジックモジュールによる要求処理の開始時間)。この時点で、ロジックモジュールは、READ要求を受け取ったのかどうか及び受け取った要求が下方からブロックされていないかどうか判断するのに十分な情報を有している。特に、ロジックモジュールはBIT及びOP1フィールドを調べ、以下の3つの条件について応答する:
下方からライン324を通じてビジー信号は受信されていない、
BIT=1、及び
OP1=READ要求。
【0064】
これら3つの条件が満たされた場合、ロジックモジュールは次時間ステップでREAD処理を開始するのに準備完了となる。OP1=WRITEの場合、ロジックモジュールは次時間ステップでWRITE処理を開始する。
【0065】
図4B及び図4Cはブロック信号がノード316からロジックモジュールへ送られない場合の進行中のREAD要求を示す。
【0066】
図4BはT=1におけるREAD要求を示す。リングZ、C及びR内の全データビットは一つ右にシフトされる。リングの右端のビットはFIFOに入る。またFIFOは左端の要素に1ビット供給する。ロジックモジュールはBITフィールドをライン322を通じてコンセントレータの入力ポートへ送る。シフト後、Cリングのレジスタはパケットの第2及び第3ビット、即ち1ビットからなるOP1フィールド及びAD2フィールドの第1ビットを含む。ロジックモジュールはリングRのBLANKフィールドの第2及び第3ビット、即ちB1及びB2を含む。PRAM200の典型的な動作では、リングZからのパケットは図示されているロジックモジュールの左に位置するロジックモジュール(図示せず)に入るものとすることができる。この場合、パケットの全体はリングC内に含まれない。パケットの残りはトップスイッチ110内にある、または、入力ポートからトップスイッチを通ってリングZから出つつロジックモジュールL 314に入るという“ワームホール(wormholing)”プロセスにあるものとすることができる。図4A、4B及び4Cは理解が容易なように全体がリングC上に含まれるREAD要求パケットを示している。
【0067】
次のAD2L+OP2L個のステップで、ロジックモジュールLはAD2及びOP2フィールドを読み取り入力ポート320へコピーする。この時点で、コンセントレータは、BITフィールド、AD2フィールド及びOP2フィールドをビットシリアルに受信したこととなる。コンセントレータはこのシーケンスを、DATAフィールド414の第1ビットがロジックモジュールLに到達する前に、ワームホール式に受け取り処理する。ロジックモジュールLがリングC上のAD2及びOP2を読み込む間、リングR上のBLANKフィールド412はロジックモジュールLを通過し、無視される。ロジックモジュールは、リングRのDATAフィールドの第1ビットが到達するのと同時(ライン410で示した)に通信リングC内のパケットのPAYLOADセクションの第1ビットを読み取るように配置されている。
【0068】
ロジックモジュールLは出力データを2方向に送る。第1に、ロジックモジュールLはゼロ化されたパケット(zeroed packet)をリングCに戻す。第2に、ロジックモジュールLはDATAフィールドを下流に送る。リングCに戻される全ビットはゼロ430にセットされ、リングC上の後続のロジックモジュールがREAD処理を繰り返さないようにされる。別の方法として、代わりにロジックモジュールLが要求を問題なく処理したら要求パケットを通信リングCから除去してもよく、その場合、同じリング上の他のロジックモジュールが同じサイクル時間において他の要求パケットを受け付けることが可能となるという利点が得られる。パケットはロジックモジュールによって好適にワームホール式に処理され、それにより、1サイクル時間において複数の異なるパケットを特定の一つのDPIMにより処理することができる。
【0069】
時間K+1では、ペイロードの第1ビットはロジックモジュールLによりゼロで置き換えられる位置にあり、リングRの第1ビットD1はボトムスイッチまたはボトムスイッチへとデータを転送するコンセントレータへと送られる位置にある。プロセスは図4Cに示すように続く。ロジックモジュールは第2のDATAビットD2をコンセントレータへ送る一方、データリングRから第3のDATAビットD3を読み込む。プロセスの終了時、パケット全体が通信リングRから取り除かれ、パケットは次の形式を有する:
|DATA|OP2|AD2|BIT|
【0070】
パケットはコンセントレータの入力ポート320またはボトムスイッチへと送られる。DATAはリングRのDATAフィールドからコンセントレータへとコピーされる。データリングR内のDATAフィールド414は変化しない。
【0071】
図5を参照すると、ロジックモジュールL1 504とL2 502が同時にREAD要求を実行する。異なる要求パケットP1及びP2が一般に異なる入力ポート202から送られてきてトップスイッチに入り、単一のDPIMにおいてワームホール式に複数のREAD要求が処理される。図示した例では、全ての要求は同じPRAMアドレスに対するものであり、それはそれぞれの要求パケットのAD1フィールドにて指定される。パケットP1及びP2はそれぞれターゲットDPIM内の異なるロジックモジュールL1及びL2に到達する。各ロジックモジュールは互いに独立して要求を処理する。示した例では、最初に到達したREAD要求P2がモジュールL2 502により処理されている。モジュールL2は既にBITフィールド、OP1フィールド、及びAD2フィールドの5ビットを読み込んで処理している。またモジュールL2は既にBITフィールド及びAD2フィールドの4ビットをコンセントレータの入力ノード512へと送っている。同様に、モジュールL1は既にパケットP1のAD2フィールドの2つのビットを読み込んで処理しており、第1のAD2ビットを下方のノード514へと送っている。2つのパケットのAD2フィールドは異なっており、その結果、DATAフィールド414はボトムスイッチの2つの異なる出力ポートに送られる。2つ目の要求は最初の要求から数クロック時間だけ遅れて発生し、これら2つの要求の処理はオーバラップしてなされる。DPIMはT個のロジックモジュールを有し、同じサイクル時間においてT個のREAD要求を処理する能力を有する。READ要求を処理した結果として、ロジックモジュールは常にリングC上にゼロ430を置く。
【0072】
要求及び応答をそれぞれトップスイッチ及びボトムスイッチ内をワームホール式にルーティングすることにより、任意の入力ポートが他の入力ポートと同時に要求パケットを送ることが可能となる。一般に、任意の入力ポート202はREAD要求を他の入力ポートから同時に送られてくる要求とは独立して任意のDPIMに送ることができる。PRAM200は、複数の要求元からの単一のデータベースに対する並列でオーバラップしたアクセスをサポートし、同じデータ位置に対する複数の要求をサポートする。
【0073】
WRITE要求
WRITE要求でも、パケットのAD1フィールドはトップスイッチ内におけるパケットのルーティングに用いられる。パケットは所定位置でトップスイッチのノード312を出てリングCに入る。OP1フィールドはWRITE要求を指定する。WRITE要求では、コンセントレータへはデータは送付されない。従って、ロジックモジュールはコンセントレータからの制御信号を無視する。ロジックモジュールはコンセントレータの入力ポート320に“0”を送り、パケットは送られないとの情報を伝える。リングZのWRITE要求は、リングC上で遭遇する最初のロジックモジュールに常に入ることができる。
【0074】
説明の簡便化のため、要求パケットをリングC内に示す。より典型的な動作では、要求はトップスイッチを通ってロジックモジュールへとワームホール式に送られる。WRITE要求に対して、ロジックモジュールはOP1とPAYLOADフィールド以外のフィールドの情報は無視する。
【0075】
図6は時間T=K+5におけるWRITE要求を図示している。リングC上のWRITEパケット及びリングR上のデータは共に同期してロジックモジュールを通って回る。OP2フィールドの最終ビットは、ロジックモジュールが記憶リングRのBLANKフィールドの最終ビットと整合されるのと同時に、ロジックモジュールによって捨てられる。パケットのPAYLOADフィールドの第1ビットがロジックモジュールに到達すると、ロジックモジュールLはリングCから第1ビットを取り除き、その第1ビットをリングRのDATAフィールド内に置く。プロセスはPAYLOADフィールドの全体が通信リングからリングRのDATAフィールドへと転送されるまで続く。ロジックモジュールLはパケットをゼロ化し、望ましくはリングCからパケットを除去して他のロジックモジュールがそのWRITE動作を繰り返さないようにする。
【0076】
視覚的に理解し易いように、図6はリングCからリングRへと移動中のデータパケットを示している。データは通常、トップスイッチから到達する。より詳細には、データはトップスイッチ上に散布される。
【0077】
一つのDPIMに複数のRリングが設けられる別の実施例では、DPIMモジュールのアドレスはAD1フィールドに格納され、DPIMモジュール内の所与のRリングのアドレスは拡張されたOP1フィールドの一部として格納される。一つのDPIMメモリーモジュールに8つのRリングが設けられた例では、OP1フィールドは4ビット長さを有し、第1ビットがREADまたはWRITE動作を示し、次の3つのビットがどのRリングに対して要求がなされているのかを示す。DPIMの各々に複数のRリングが含まれる場合、トップスイッチ内のレベルの数及びコンセントレータ内のレベルの数が低減される。
【0078】
一つのDPIM内に複数のRリングを設けることにより、より多くのデータ及びより多くのロジックをモジュール内に必要とし且つより複雑なOP1コードを必要とするような、より複雑な動作も可能となる。例えば、DPIMへの要求を、全てのRリングの中で最大の値を送る要求としたり、Rリングのサブセットの値の合計を送る要求としたりすることができる。また、DPIM要求を、所定のタイプのデータの効率的な検索を可能とするべく、指定されたサブフィールドを含むワードの各コピーを計算されたアドレスに送る要求とすることもできる。
【0079】
示されているPRAMシステムでは、BLANKフィールドは無視され、任意の値を有することができる。別の実施例では、様々な処理を補助するべくBLANKフィールドを定義してもよい。一実施例では、BLANKフィールドはスコアボード機能に用いられる。あるシステムがBLより少ないN個のプロセッサを有し、DATAフィールドが上書き可能となる前にN個のプロセッサ全てがDATAフィールドを読み取らなければならないとする。新たなDATA値が記憶リングRに置かれるとき、BLANKフィールドは全てゼロに設定される。N個のプロセッサのうちプロセッサWがデータを読み取ると、BLANKのビットWが1にセットされる。BLANKの適切なNビットのサブフィールドが全て1の状態に設定されたときのみ、リングRのDATA部の上書きを行うことができる。BLANKフィールドは再リセットされて全てゼロになる。
【0080】
このようなスコアボード機能は多数あるBLANKフィールドの使用法の一つにすぎない。当業者であれば、演算及び通信における様々な応用のためBLANKフィールドを効果的に使用することが可能だろう。
【0081】
いくつかの実施例では、DPIM内の複数のロジックモジュールが互いに通信する(intercommunicate)ことができなければならない。そのような応用の例としては、非同期転送モード(ATM)インターネットスイッチに用いられるリーキーバケット・アルゴリズム(leaky bucket algorithm)がある。例示した並列アクセスメモリー200では、演算ロジックモジュール314は、READ要求エントリーの受信に応じてローカルカウンタ(図示せず)に信号を送る。一つのDPIM内の2つの演算ロジックモジュールが同時に読み取りパケットの第1ビットを受信することはなく、従って、共通のDPIMバス(図示せず)を好適に用いて全ロジックモジュールに接続されたカウンタを動かすことができる。カウンタは全ての演算ロジックモジュールに応答することができ、それにより、“リーキー・バケットがあふれた”場合、適切なロジックモジュールの全てが通知を受け、その情報に対してAD2及びOP2フィールドを変形することで応答し、適切な宛先に対して適切な応答を生成する。
【0082】
図1を参照すると、基本要素としてネットワークインターコネクト構造を用いて構築された演算エンジン(computational engine)100が模式的なブロック図に示されている。演算エンジンの様々な実施例は、図1の説明において上述した汎用システム100の中核要素を含む。演算システムである演算エンジンの例では、ボトムスイッチ112は、1または複数のプロセッサ及びメモリーまたは記憶装置を含む演算ユニット126にパケットを送る。図3を参照すると、リングRに関連づけられた演算ロジックモジュールがシステム全体の演算機能の一部を実行する。ボトムスイッチ112からデータを受信する演算ユニット126は更なる論理処理を実行する。
【0083】
ロジックモジュールは、演算エンジンに望まれる全体的な機能に応じて従来のプロセッサ処理及び新規なプロセッサ処理の両方を実行する。
【0084】
システム100の第1の例はスケーラブルな並列演算システムである。処理の一側面において、システムは、SORT処理の並列比較サブオペレーションを含む並列SORTを実行する。ロジックモジュールLはパケットから第1データ要素を受け取り、記憶リングR 304から第2データ要素を受け取る。ロジックモジュールは2つのデータ要素のうち大きい方を記憶リングR上に置き、小さい方をPAYLOADフィールドに置き、更に、小さい方の値をパケットのAD2フィールド内の所定のアドレスに送る。図3に示すように、2つのそのようなロジックモジュールが直列に接続されている場合、第2のロジックモジュールは数クロックサイクル内に第1のロジックモジュールから来るデータについて第2の比較を実行することができる。このような比較及び置換プロセスは多くのソーティングアルゴリズムにおいて共通の作業単位であり、従来技術をよく知っているものであれば、このような比較及び置換プロセスを用いてより大きな並列ソーティングエンジンを形成することが可能である。
【0085】
当業者であれば、広い範囲のシステム応用に用いることが可能な多くの有用なロジックモジュール314を形成することができるだろう。単一のロジックモジュールが多くの処理を行うことも、あるいは、異なる種類のロジックモジュールを形成し各ユニットがより少ない数のタスクを実行するようにすることも可能である。
【0086】
システム100には2種類の処理ユニットが含まれている。即ち、DPIM114内のユニットと演算ユニットCU 126内のユニットである。DPIMはビットシリアルなデータ移動を扱い、大量のデータの移動を伴うような演算を実行する。CUは1または複数の汎用プロセッサのようなプロセッサ及び通常のRAMを含む。CUは、該CUに与えられるデータセットについて“大量データ処理(number crunching)”動作を実行し、パケットの生成、転送及び受信を行う。DPIMの重要な機能の一つは、小さい遅延で、並列に、且つ後の処理に都合のよい形式でデータをCUに供給することである。
【0087】
機能の一例では、演算問題の大きな領域を互いに重ならないサブ領域の集まりに分解することができる。CUは、そのCUによって実行される演算に大きく貢献する各サブ領域からの所定のタイプのデータを受信するように選択することができる。DPIMはデータを用意し、結果を適切なCUに送る。例えば、領域は10回の移動で可能な全てのチェスの位置とし、サブ領域は所与の一対の動きから8回の動きで可能な全ての位置を含むものとすることができる。DPIMは見込みのありそうな最初の動き対のみを、最も見込みのありそうなものから最も見込みの薄いものへと順に並べられたデータとともに、CUに戻す。
【0088】
別の応用では、領域は3次元空間での複数の対象物(objects)の表現を含み、各サブ領域はその空間の区切られた部分からなる。ある特定の例では、関心のある状態が、関心のある物体(body)に働く所定のしきい値を越えた重力の状態として定義される。DPIMは、関心のある状態と整合するデータを含むサブ領域からデータをCUに送る。
【0089】
図1に示したスケーラブルなシステム、及び、スケーラブルなシステムの中核要素を用いた実施例は、スーパーコンピュータでの応用に適するように構築することもできる。スーパーコンピュータでの応用では、複数のCUは適切な形式で且つタイムリーに並列にデータを受信する。これらCUは並列にデータを処理し、処理結果を送付し、後の相互作用に対する要求を生成する。
【0090】
DPIMはブックキーパー(bookkeeper)及びタスクスケジューラとしても有用である。一例として、集合(collection)Hの複数(K個)の演算ユニット(CU)を用いるタスクスケジューラがある。集合HのCUは、通常、並列演算で様々なタスクを実行する。タスクを終了すると、K個のCUのうちN個に新たなタスクが割り当てられる。少なくともKビットのデータを格納することができるデータ記憶リングRはK長さのワードWをゼロ化する。ワードW内の各ビット位置はコレクションHの特定のCUに関連づけられている。あるCUが割り当てられたタスクを完了すると、そのCUはリングRを含むDPIMにパケットMを送る。データ記憶リングR上のロジックモジュールL1は、パケットMを送出したCUに関連づけられたビット位置に1を挿入することでワードWを変形する。データ記憶リングR上の別のロジックモジュールL2はワードW内の1の数を追跡する。ワードWがNビットを有する場合、H内のN個のアイドルCUが新たなタスクを開始する。これら新たなタスクは一つのパケットをN個のプロセッサにマルチキャストすることにより開始される。集合Hの部分集合(subcollection)にマルチキャストを行う効率的な方法について以下に説明する。
【0091】
図7を参照すると、間接アドレス指定を用いてマルチキャスト動作を実行するための構造及び技法が模式的ブロック図に示されている。パケットを対応するアドレスにより指定された複数の宛先にマルチキャストすることは、演算及び通信の用途においてとても有用な機能である。単一の第1アドレスが第2アドレスの集合を指す。これら第2アドレスはマルチチャストされるパケットペイロードのコピーの宛先である。
【0092】
いくつかの実施例では、インターコネクト構造システムが出力ポートの集合Cを有し、ある条件の下では、システムは所定のパケットペイロードを集合C0内の全ての出力ポートに送る。集合C0、C1、C2、...、CJ−1の各々は出力ポートのセットからなり、Jより小さい特定の整数Nに対し、集合CN内の全てのポートが、単一のマルチキャスト要求の結果、同じ特定のパケットを受信することができる。
【0093】
マルチキャストインターコネクト構造700は記憶リングR 704内に集合CNの出力アドレスのセットを格納する。リングの各々はFMAX個のアドレスを格納する容量を有する。示されている例では、図7に示されたリングRはFMAX=5個のアドレスを格納する容量を有する。
【0094】
スイッチの構成及びサイズは様々なものを用いることができる。一実施例では、ボトムスイッチは64個の出力ポートを有する。出力ポートアドレスは6ビットバイナリパターンで格納することができる。リングRはF0、F1、F2、F3及びF4のラベルが付された5つのフィールド702を有し、これらのフィールドに集合CNの出力ポート位置が保持される。各フィールドは7ビット長さである。7つのビットの内、第1ビットは、CNの位置がそのフィールドの次の6ビットに格納されている場合、1にセットされる。そうでない場合、第1ビットは0にセットされる。
【0095】
少なくとも2種類のパケットがマルチキャストロジックモジュールMLM714に到達し得る。それらパケットには、MULTICAST READパケットとMULTICAST WRITEパケットが含まれる。
【0096】
パケットの第1のタイプ、PW、はMULTICAST WRITE処理を指定するOP1フィールドを有する。WRITEパケットは通信リング302に到達し、以下の形式を有する:
|PAYLOAD|OP1|BIT|
【0097】
PAYLOADは、鎖状につながったフィールドF0、F1、F2、F3及びF4に等しい。パケットPWはMLM714が適切な時間にF0の第1ビットを読み取るのに適した位置において通信リング302に到達する。MLMは、図6を参照して上述したWRITE動作と同様に、PAYLOADの第1ビットをリングRに書き込む。
【0098】
図7はマルチキャスト機能をサポートする特別なハードウェアDPIM714に接続されたロジックモジュールを示している。WRITE要求に応答して、システムは処理を実行し、それによってフィールドF0、F1、F2、F3及びF4はリングZ及びCからデータ記憶リングR 304に転送される。パケットはBIT=1により示され、BIT=0のときパケットの残りは常に無視される。処理コードフィールドOP1がBITフィールドの後に続く。MULTICAST WRITE処理では、OP1はペイロードをパケットから記憶リングに転送し、そのとき記憶リング上にあるデータを置き換えるべきであることを示す。データはMLMから記憶リングへとシリアル転送される。
【0099】
例えば、データは右端のライン334を通じて転送される。データは記憶リング704上に置かれるのに適切な時間及び位置に適切な形式で到達する。MULTICAST WRITE処理では、ボトムスイッチからMLMへライン722を通じて送られる制御信号は無視することができる。
【0100】
MULTICAST READ要求を示す別のタイプのパケット、PR、が通信リング302に到達することもあり、以下の形式を有する:
|PAYLOAD|OP2|BLANK|OP1|BIT|
【0101】
BLANK部は、例えば、6ビット長さである。BLANKフィールドはCNのフィールドの一つからのターゲットアドレスによって置換される。OP1フィールドは、特定のパケットまたは応用のために用いても用いなくてもよい。パケットのグループがボトムスイッチ112に以下の形式で入力する:
|PAYLOAD|OP2|AD2|BIT|
【0102】
アドレスフィールドAD2はリングRフィールドから来ている。処理フィールドOP2及びPAYLOADはMULTICAST READパケットに由来する。
【0103】
示されている例では、ターゲットアドレスAD1に位置する記憶リングR 704は3つの出力ポートアドレス、例えば、3、8及び17を格納する。出力アドレス3がフィールドF0に格納されている。アドレス3の最上位ビット(most significant bit)が最初に現れ、その後に次に重要なビットが続くというようにして続いていく。従って、10進数の整数3を表す標準的な6ビットバイナリパターンは000011となる。これらヘッダビットは、最上位ビットから最下位ビットの順に用いられる。ヘッダビットは最上位ビットが最初にくるように格納すると都合がよく、その結果、フィールドF0において、ターゲット出力3を表すフィールドは6ビットパターン110000によって表される。タイミングビットを含むフィールドF0全体は7ビットパターン1100001を有する。同様に、フィールドF1は10進数の8をパターン0001001として格納する。フィールドF2は10進数の17を1000101として格納する。更なる出力ポートはアドレス指定されていないため、フィールドF3及びF4は全てゼロ(0000000)に設定される。
【0104】
ライン722上の制御信号はボトムスイッチにおける非ブロック状態を示し、パケットがライン718を通じて入力するのを許可する。ボトムスイッチからロジックモジュール714へとライン722を通じて送られる制御信号がビジー状態を示しているときは、スイッチへのデータの送付はなされない。“非ビジー”制御信号がMLMに達すると、リングR内のアドレスのデータフィールドが、読み取りユニット(reading unit)708及びボトムスイッチ112へと応答を生成し送付するのに適切な位置に置かれる。ロジックモジュールに“非ビジー”信号が到達した後の適切な時間において、MLMは複数のMULTICAST READ応答パケットをボトムスイッチ112を通じてアドレスの集合CNに送り始める。
【0105】
システムは、アドレスAD1にあるDPIMへMULTICAST READパケットを送った後、そのパケットのPAYLOADフィールドをリングR 704に格納された集合CNに格納された複数のアドレスにマルチキャストする能力を有する。
【0106】
典型的には、上記したようなマルチキャストシステムは様々な演算及びデータ記憶タスクを実行することが可能なハードウェアを含む。示した例では、マルチキャスト能力は、マルチキャストアドレスを保持し転送するべく特別に構成されたDPIMユニット700を使用することにより達成される。
【0107】
上記したマルチキャスト機能の一般化は、単一のパケットMが集合CN内のメンバーシップを指定するアドレスを有する出力ポートの所定のサブセットへと送られるようなモードである。どのメンバーに送出されるべきかを示すビットマスクは送出マスク(send mask)と呼ばれる。一例では、アドレス3、8及び17が集合CNの3つのメンバーである。送出マスク0、0、1、0、1はリストCNの第1及び第3出力ポートがパケットを受信するべきであることを示す。応答パケットは出力ポート3及び17にマルチキャストされる。一例では、制御信号により、全入力ポートがパケットを受信することが可能な状態にあるかどうか、或いは、1または複数の入力ポートがブロックされているかどうかが示される。
【0108】
別の例では、ブロックされていない出力ポートのリストが格納される。このリストは、ブロックマスクと呼ばれるマスクである。送出マスク内のN番目の位置における値1は、CNのN番目のメンバーに送出することが望まれていることを示す。ブロックマスクのN番目の位置における値1は、CNのN番目のメンバーがブロックされておらず、従って送出可能であることを示す。両マスクのN番目の位置の値が1のとき、リストのN番目の出力ポートへとパケットMが送られる。
【0109】
送出マスクによって示されたサブセットに対応して、CN内に列挙された出力ポートのサブセットにマルチキャストされるパケットは以下の形式を有する:
PAYLOAD|OP2|Mask|マルチキャストOp|AD1|BIT|
【0110】
パケットはシステムのトップスイッチに入る。アドレスフィールドAD2に通常格納されるアドレスはアドレスフィールドAD1内に格納されたデータ内に含まれ、従って、アドレスフィールドAD2は用いられない。
【0111】
図7を参照すると、BITフィールド及びOP1コードはリングCまたはリングZからロジックモジュール714へと送られる。送出マスク及びブロックマスクも同時にロジックモジュールに入る。送出マスクのJ番目のビットが1で且つブロックマスクのJ番目のビットも1の場合、PAYLOADがアドレスFJに送られる。残りの処理は、マスクのないマルチキャストモードと同様に進行する。
【0112】
集合CN内の出力ポートのセットはp0、p1、...、pmで示される。出力ポートは複数のグループに分割されるが、これらグループは、最大で、データ記憶リングR上に格納することが可能な数のCNのメンバーを含む。データリングRが5つの出力アドレスを有し、集合CNが9つの出力ポートを有する場合、最初の4つの出力ポートはグループ0に格納され、次の4つの出力ポートはグループ1に格納され、残りの出力ポートはグループ3に格納される。出力ポートシーケンスp0、p1、...、p9はq00、q01、q02、q03、q10、q11、q12、q13、q20とインデックス付けすることもできる。このようにして、ターゲットの物理的アドレスをグループ番号とアドレスフィールドインデックスを示す2つの整数により完全に記述することができる。
【0113】
いくつかの応用においては、パケットのペイロードは以下の情報を担う:
出力ポートセットのどのポートがアドレスの位置を特定するのに用いられたかを示すCNのサブスクリプトN、
アドレスが配置されているCNのグループ、
アドレスが所属するグループのメンバー、
パケットが入力されるスイッチの入力ポート。
【0114】
第2番目と第3番目の情報は、qのメンバーの2つのインデックスを示しており、これら2つのインデックスからpのインデックスを容易に計算することができる。これらの情報を担うパケットに対し、PAYLOADフィールドは以下の形式を有する。
N|qの第1サブスクリプト|qの第2サブスクリプト|入力ポート番号|
【0115】
図7は、マルチキャスティングにおいて間接アドレスを用いるシステムも示している。より単純な動作は、単一の出力ポートを間接アドレス指定することである。間接アドレス指定の一例では、データ記憶リングRは間接アドレスを表す単一のフィールドを含む。例えば、アドレス17にあるDPIMの記憶リングRは値153を含む。アドレス17に送られたパケットはボトムスイッチの出力ポート153へと送られる。
【0116】
本明細書中に説明する実施例では、所与のリングRに関連する全てのロジックモジュールはボトムスイッチ112にデータを送る。あるDPIMがトラフィックバーストを、別のDPIMユニットが比較的少量のトラフィックをボトムスイッチに送る場合、これらリングRは、同じリングではなく、リングBのグループにパケットを送る。更に別の例では、これらリングRはパケットをコンセントレータ150に送り、コンセントレータ150がデータをボトムスイッチ112に伝える。
【0117】
上記したシステムでは、データ記憶リングR 304及び通信リングR 302内の情報は環状に接続されたFIFOの態様で循環する。一変形例は、リングR 704内の情報が静止しているシステムである。トップスイッチ110内のレベルゼロのリングからのデータが静的バッファに入るよう接続することができる。静的バッファ内のデータは上記した循環モデルと論理的には等価な態様で相互作用することができる。静的モデルの利点はデータをより効率的に格納することが可能になる点にある。
【0118】
本説明では、データXが、データYを保持するリングRに送られる。演算リングCは入力信号としてデータXとデータYのストリームを両方とも受信し、データXとYに数学的な関数Fを実行し、演算の結果をターゲット出力ポートに送る。ターゲットはリングRのフィールドまたはパケットのAD2フィールドに格納可能である。別の方法として、ターゲットをF(X,Y)の結果によるものとしたり、別の関数G(X,Y)により生成されるものとすることもできる。
【0119】
別の応用では、複数の処理をデータX及びデータYに対して実行することができ、その結果を複数の宛先に転送することができる。例えば、関数F(X,Y)の結果がアドレスAD2により指定された宛先に送られる。また関数H(X,Y)の結果をパケットのアドレスAD3によって指定された宛先に送ることができる。多重処理により、システム100が多岐に渡る変換を並列に効率よく実行することが可能となるという利点が得られる。
【0120】
2つの引数X及びYに対してより込み入った算術関数を実行するのに加えて、関数FがXまたはYの一方のみの関数となるよう、より単純なタスクが実行されるようにすることも可能である。単純な関数F(X)またはF(Y)の結果は別の関数G(X)により生成された、または、アドレスAD2によって指定された宛先に送られる。
【0121】
本発明を様々な実施例に基づいて説明したが、これら実施例は例示であって本発明の範囲を限定するものではないことを理解されたい。これら説明した実施例の様々な変形、変更、追加及び改良が可能である。例えば、当業者であれば開示した構造及び方法を提供するのに必要なステップを容易に具現することが可能であり、また、プロセスパラメータ、材料、及び寸法は例としてのみ与えられたのであって、所望の機能特性または本発明の範囲内の変形を実現するべく調節可能であることが理解されるだろう。開示した実施例の変形及び変更は本明細書の記載に基づいて、特許請求の範囲に記載した本発明の思想及び範囲を逸脱することなく可能である。
【0122】
当業者は、本発明の範囲内でいくつかの有用な変形及び変更をなす能力を有するだろう。そのような変形及び変更のいくつかの例は列挙したが、他のシステムにも適用され得る。
【図面の簡単な説明】
【図1】
図1は複数のネットワークインターコネクト構造を含む構築ブロックから形成された汎用システムの例を示す模式的なブロック図である。
【図2】
図2は基本要素としてネットワークインターコネクト構造を用いて形成された例えば並列ランダムアクセスメモリー(PRAM)のような並列メモリー構造を示す模式的なブロック図である。
【図3】
図3は、通信リング、複数のロジックモジュール、循環FIFOデータ記憶リングへの接続、及びボトムスイッチの上部レベルへの接続を示すトップスイッチの下部レベルの図である。
【図4A】
図4A、4B及び4Cは、通信リング及び循環FIFOデータ記憶リングを通るデータの動きを示すブロック図である。図4AはREAD及びWRITE要求の両方に当てはまる。図4B及び4Cは処理中のREAD要求に当てはまる。
【図4B】
図4A、4B及び4Cは、通信リング及び循環FIFOデータ記憶リングを通るデータの動きを示すブロック図である。図4AはREAD及びWRITE要求の両方に当てはまる。図4B及び4Cは処理中のREAD要求に当てはまる。
【図4C】
図4A、4B及び4Cは、通信リング及び循環FIFOデータ記憶リングを通るデータの動きを示すブロック図である。図4AはREAD及びWRITE要求の両方に当てはまる。図4B及び4Cは処理中のREAD要求に当てはまる。
【図5】
図5は、オーバラップした期間に発生する同じ循環データ記憶リングから読み出しを行う2つの読み出し命令を実行しているインターコネクト構造の一部を示している。読み出されたデータは第2スイッチに入ってそこで異なるターゲットへと振り向けられる。
【図6】
図6は、WRITE命令を実行しているインターコネクト構造の一部を示している。
【図7】
図7は、間接アドレス指定を用いたマルチキャスト処理を実行するための構造及び技法を示す模式的なブロック図である。[0001]
(Background of the Invention)
A problem that has arisen in systems that perform highly parallel operations is the provision of sufficient data flow to multiple processors. U.S. Pat. Nos. 5,996,020 and 6,289,021 disclose broadband, low-latency interconnect structures that significantly improve data flow in a network. There is a need for a system that can take full advantage of such a wideband, low-latency interconnect structure by supporting parallel memory access and operations in a network.
[0002]
(Summary of the Invention)
Several processors allow multiple processors to access the same data in parallel. First, multiple distant processors can request reads from the same data location, and those requests can be processed in overlapping periods. Second, multiple processors can access data at the same location and can read, write, or multi-process the same data during overlapping periods. Third, one data packet can be multicast to multiple locations and multiple packets can be multicast to multiple sets of target locations.
[0003]
In the following description, the term "packet" preferably refers to a data unit in serial form. Examples of packets include Internet Protocol (IP) packets, Ethernet frames, ATM cells, switch-fabric segments, which include portions of larger frames or packets, supercomputers, and the like. And other data message types with a finite message length.
[0004]
The system disclosed herein solves a similar problem that occurs in communications when multiple packets arriving at a switch access data at the same location.
[0005]
Other Multi-Level Minimum Logic structures can be implemented in a wide variety of processors and many highly useful devices and systems, including computers, memory devices, and logic devices, in a fundamental building block. Can be used as Examples of such devices and systems include parallel random access memory (PRAM) and parallel computing engines. These devices and systems include a network connection structure as a basic building block along with internal storage or memory and logic circuits. The data storage device may be in the form of a first in first out (FIFO) ring.
[0006]
(Detailed description)
The novel features of the preferred embodiment described below are set forth in the appended claims. However, embodiments of the invention relating to both structure and processing methods will be best understood from the following description read in conjunction with the accompanying drawings.
[0007]
The schematic block diagram of FIG. 1 shows an example of a general-
[0008]
The general-
[0009]
Data packets enter the
[0010]
In one embodiment of the system, the data storage has the form of a conventional first-in first-out (FIFO) data storage ring R in
[0011]
In the general-
[0012]
Similarly, the bottom switch can handle packets of various lengths. In an exemplary embodiment of general-
[0013]
The schematic block diagram of FIG. 2 illustrates an example of a parallel random access memory (PRAM)
[0014]
In the illustrated embodiment, the data packet input to
Payload | Processing code 2 | Address 2 |
This can be expressed as:
PAYLOAD | OP2 | AD2 | OP1 | AD1 | BIT
[0015]
The number of bits in the PAYLOAD field is represented by PayL. The bit numbers of OP2 and OP1 are represented by OP2L and OP1L, respectively. The bit numbers of AD2 and AD1 are represented by AD2L and AD1L, respectively. The length of the BIT field is one bit in the preferred embodiment.
[0016]
The following table gives a brief description of the packet fields.
[0017]
The BIT field enters the switch first, but is always set to 1 to indicate that a packet is present. The BIT field is also called "traffic bit". The AD1 field is used to direct the packet through the top switch to the packet's target DPIM. The
PAYLOAD | OP2 | AD2 | OP1 | BIT
[0018]
[0019]
The data passes through the
[0020]
The timing of packet movement is synchronized by four rings. As the packet circulates through the ring, the packet is matched with respect to the BIT field. As a beneficial result of the match, ring C sends a
[0021]
The data in the storage ring R matches and overlaps with some of the packets in the Z ring 306 of the top switch and is accessible from the
[0022]
The packet enters the communication ring C through the
[0023]
In some examples of general-
[0024]
1 and 2, each DPIM has one ring R and one ring C. In another embodiment of the
[0025]
A typical function performed by the logic module is the execution of the processing specified in the OP1 field on the data held in the PAYLOAD field of the packet in relation to the data held in ring R. In one particular example, operation OP1 indicates that the data in PAYLOAD of the packet is to be added to the data stored in ring R at address AD1. The resulting sum is sent to the target port of the bottom switch at address AD2. Instructed by the instruction held in the data field of the OP1 process, the logic module can execute a plurality of processes. For example, the data in
[0026]
The general-
[0027]
The efficiency of moving data packets through the general-
[0028]
The
[0029]
The schematic block diagram of FIG. 2 shows a parallel random access memory (PRAM) formed using a network interconnect structure as a basic element. The PRAM stores data that can be accessed simultaneously from a plurality of sources and can be simultaneously sent to a plurality of destinations. The PRAM has a
[0030]
Alternatively, the top switch may have a lower number of output Z-rings and associated DPIM. It is also possible that the DPIM unit has a plurality of R-rings so that the total data size does not change.
[0031]
The PRAM shown in FIG. 2 has a
[0032]
Referring to FIG. 3,
[0033]
In one embodiment,
[0034]
In another embodiment, the first DPIM S at a particular address may have multiple logic modules of different types and functions. The second DPIM T may have the same or a different type of logic module compared to the first DPIM S. In one application of the PRAM, one data word is stored in one storage ring R. As data circulates through ring R, the logic module can transform the data. In this PRAM, the logic module modifies the contents of the storage ring R that can store not only data but also program instructions.
[0035]
This PRAM stores and retrieves data using packets defined to include fields defined as follows:
PAYLOAD | OP2 | AD2 | OP1 | AD1 | BIT
[0036]
A BIT field set to 1 to indicate that a packet is present enters general-
[0037]
In the READ request, the receiving logic module in the DPIM at the position AD1 transmits the data stored on the ring R to the address AD2 of the
[0038]
In one embodiment, the PRAM includes only one type of logic module (the type that performs both READ and WRITE operations). In another embodiment of the PRAM, another type of logic module is used, such as with separate READ and WRITE elements.
[0039]
Referring to FIGS. 2 and 3, the illustrated
PAYLOAD | OP2 | AD2 | OP1 | BIT
[0040]
Packet P is sent from ring Z to logic module L via
[0041]
In the embodiment shown, communication ring C has the same length as storage ring R. The bits move through the rings C and R bit serially at a rate governed by the common clock. The first bit of the PAYLOAD field of the packet is aligned with the first bit of the Ring R DATA field. Therefore, in the case of a READ request, the data in the ring R is copied to the payload of the packet. In the case of a WRITE request, the data in the payload portion of the packet can be transferred from the packet to the storage ring R.
[0042]
READ request
For a READ request, packet P has the following format:
PAYLOAD | OP2 | AD2 | OP1 | AD1 | BIT
[0043]
Packets enter the top switch. Generally, the DPIM logic module at address AD1 identifies the READ request by examining the opcode OP1 field. The logic module replaces the PAYLOAD field of the packet with the DATA field from ring R. The updated packet is then sent to the bottom switch through the concentrator and from there to the arithmetic unit (CU) 126 at address AD2 or another device. The CU or other device can execute the instruction specified by the processing code 2 (OP2) in connection with the PAYLOAD field.
[0044]
Packet P enters
[0045]
At some point, one of the logic modules on ring C receives a not busy control signal from below the hierarchy. At that time, the logic module L starts transferring the packet P to the
[0046]
In the READ request, the logic module extracts the OP1 field from the packet and starts sending the packet to the
[0047]
Packets remain unchanged when entering and leaving the concentrator, and have the following form when entering the bottom switch 112:
DATA | OP2 | AD2 | BIT
[0048]
The PAYLOAD field now contains the DATA field from ring R. As packets are routed through the bottom switch, the AD2 field is removed. The packet is transmitted from the
DATA | OP2 | BIT
[0049]
The OP2 field is a code that can be used in various ways. One use is to show the processing that the bottom switch output device performs on the data stored in the PAYLOAD field.
[0050]
The interconnect structure of a PRAM inherently has circular timing to achieve efficient, parallel generation and access of data. For example, multiple external sources located at
[0051]
The READ request always arrives at the logic module at a suitable time to add data from ring R to the appropriate PAYLOAD location of the outgoing packet. The beneficial result is that multiple requests for the same data in ring R can be issued simultaneously. The same DATA field is accessed by multiple requests. Data from ring R is sent to multiple final destinations. The plurality of READ processes are executed in parallel, and the transmitted packet reaches the plurality of
[0052]
Depending on system timing, multiple READ requests overlap and are executed efficiently and in parallel. 4A, 4B and 4C illustrate the timing for a single READ. The storage ring R is the same length as the communication ring C. Ring R includes
[0053]
Referring to FIG. 4A, a portion of each ring C and R has passed through a particular DPIM logic module. The logic module includes at least two bits of a set of shift registers forming a ring C and at least two bits of a shift register forming a ring R. In one embodiment,
[0054]
In a READ request, when a blocked logic module places a packet on ring C, the packet moves to the next logic module. The next logic module may or may not be blocked. If a subsequent logic module is blocked, that blocked logic module also sends the packet on ring C to the next module. If the packet enters the rightmost logic module LR and the rightmost logic module LR is blocked, the logic module LR sends the packet through the FIFO on ring C. Upon exiting the FIFO, the packet enters the leftmost logic module. Packets cycle until a non-blocked logic module is encountered. The length of the ring C is set so that the circulating packet always completely fits on the ring. In other words, the packet length PLIs the ring length FLNever exceed.
[0055]
In a READ operation, the packet has the following format:
| PAYLOAD | OP2 | AD2 | OP1 | AD1 | BIT |
[0056]
The packet is inserted into the top switch. Address field AD1 indicates the target address of
[0057]
In one exemplary embodiment, the output device is the same as the input device. Thus, a single device is connected to the
| DATA | OP2 | AD2 | BIT |
[0058]
The data entering the bottom switch has the following format:
| DATA | OP2 | AD2 | BIT |
[0059]
Data is sent from the bottom switch through the output port specified by address field AD2, where DATA is
[0060]
4A, 4B and 4C show the timing between communication ring C, data storage ring R and concentrator B. In embodiments that include a ring having multiple parallel FIFOs in a bus structure,
[0061]
Referring to FIG. 4A, the
[0062]
Data already in concentrator B and trying to enter
[0063]
FIG. 4A shows a READ request at time T = 0 (where T = 0 is the start time of request processing by the logic module that received the request). At this point, the logic module has enough information to determine whether a READ request has been received and whether the received request has been blocked from below. In particular, the logic module examines the BIT and OP1 fields and responds for the following three conditions:
No busy signal is received from below through
BIT = 1, and
OP1 = READ request.
[0064]
If these three conditions are met, the logic module is ready to start the READ operation at the next time step. If OP1 = WRITE, the logic module starts the WRITE process in the next time step.
[0065]
4B and 4C illustrate an ongoing READ request when no block signal is sent from
[0066]
FIG. 4B shows a READ request at T = 1. All data bits in rings Z, C and R are shifted right by one. The rightmost bit of the ring enters the FIFO. The FIFO supplies one bit to the leftmost element. The logic module sends the BIT field over
[0067]
In the next AD2L + OP2L steps, the logic module L reads the AD2 and OP2 fields and copies them to the
[0068]
The logic module L sends output data in two directions. First, the logic module L returns a zeroed packet to the ring C. Second, logic module L sends the DATA field downstream. All bits returned to ring C are set to zero 430 to prevent subsequent logic modules on ring C from repeating the READ operation. Alternatively, if the logic module L successfully processes the request, the request packet may be removed from the communication ring C, in which case another logic module on the same ring may be able to remove another request packet in the same cycle time. This has the advantage that it is possible to accept The packets are preferably processed by the logic module in a wormhole manner, so that a plurality of different packets can be processed by one specific DPIM in one cycle time.
[0069]
At
| DATA | OP2 | AD2 | BIT |
[0070]
The packet is sent to the
[0071]
Referring to FIG. 5, the
[0072]
By routing the request and response in a wormhole manner within the top and bottom switches, respectively, any input port can send request packets simultaneously with other input ports. In general, any
[0073]
WRITE request
Even in the WRITE request, the AD1 field of the packet is used for routing the packet in the top switch. The packet exits the
[0074]
The request packet is shown in ring C for simplicity of explanation. In a more typical operation, a request is wormholed through a top switch to a logic module. In response to the WRITE request, the logic module ignores information in fields other than the OP1 and PAYLOAD fields.
[0075]
FIG. 6 illustrates a WRITE request at time T = K + 5. The WRITE packet on ring C and the data on ring R together go through the logic module in synchronization. The last bit of the OP2 field is discarded by the logic module at the same time that the logic module is matched with the last bit of the BLANK field of the storage ring R. When the first bit of the PAYLOAD field of the packet reaches the logic module, logic module L removes the first bit from ring C and places the first bit in the data field of ring R. The process continues until the entire PAYLOAD field has been transferred from the communication ring to the Ring R DATA field. Logic module L zeroes the packet and preferably removes the packet from ring C so that no other logic module repeats its WRITE operation.
[0076]
FIG. 6 shows a data packet moving from ring C to ring R for visual comprehension. Data usually arrives from the top switch. More specifically, the data is scattered on the top switch.
[0077]
In another embodiment where a single DPIM is provided with multiple R rings, the address of the DPIM module is stored in the AD1 field and the address of a given R ring in the DPIM module is stored as part of the extended OP1 field. Is done. In an example in which one DPIM memory module is provided with eight R rings, the OP1 field has a length of 4 bits, the first bit indicates a READ or WRITE operation, and the next three bits indicate which R ring To indicate if a request has been made. If each DPIM includes multiple R-rings, the number of levels in the top switch and the number of levels in the concentrator are reduced.
[0078]
Providing multiple R-rings within a single DPIM also allows for more complex operations that require more data and more logic in the module and require more complex OP1 code. . For example, the request to the DPIM can be a request to send the largest value among all the R rings, or a request to send the sum of values of a subset of the R rings. Also, the DPIM request can be a request to send each copy of the word containing the specified subfield to the calculated address to enable efficient retrieval of certain types of data.
[0079]
In the PRAM system shown, the BLANK field is ignored and can have any value. In another embodiment, a BLANK field may be defined to assist in various operations. In one embodiment, the BLANK field is used for a scoreboard function. A system is BLSuppose we have fewer N processors and all N processors must read the DATA field before the DATA field can be overwritten. When a new DATA value is placed on storage ring R, the BLANK field is set to all zeros. When the processor W among the N processors reads the data, the bit W of BLANK is set to one. Only when all the appropriate N-bit subfields of BLANK are set to “1”, the data portion of the ring R can be overwritten. The BLANK field is reset again to all zeros.
[0080]
Such a scoreboard function is just one of many uses for the BLANK field. Those skilled in the art will be able to effectively use the BLANK field for various applications in computing and communications.
[0081]
In some embodiments, multiple logic modules in the DPIM must be able to intercommunicate with each other. An example of such an application is a leaky bucket algorithm used in asynchronous transfer mode (ATM) Internet switches. In the illustrated
[0082]
Referring to FIG. 1, a schematic block diagram illustrates a
[0083]
The logic module performs both conventional and new processor processing depending on the overall function desired for the computing engine.
[0084]
A first example of the
[0085]
Those skilled in the art will be able to form many
[0086]
The
[0087]
In one example of a function, a large area of a computational problem can be broken down into a set of non-overlapping sub-areas. A CU may choose to receive certain types of data from each sub-region that contribute significantly to the operations performed by the CU. DPIM prepares the data and sends the result to the appropriate CU. For example, the region may be all chess positions possible in 10 movements, and the sub-region may include all positions in 8 movements from a given pair of movements. DPIM returns only the first likely motion pair to the CU, with data ordered from most likely to least likely.
[0088]
In another application, a region includes a representation of a plurality of objects in a three-dimensional space, and each sub-region comprises a partitioned portion of the space. In one particular example, a state of interest is defined as a state of gravity above a predetermined threshold acting on a body of interest. DPIM sends data to the CU from sub-regions containing data consistent with the state of interest.
[0089]
The scalable system shown in FIG. 1 and the embodiment using the core elements of the scalable system can be constructed to be suitable for supercomputer applications. In supercomputer applications, multiple CUs receive data in an appropriate format and in a timely manner in parallel. These CUs process data in parallel, send processing results, and generate requests for later interaction.
[0090]
DPIM is also useful as a bookkeeper and task scheduler. As an example, there is a task scheduler using a plurality (K) of arithmetic units (CUs) of a collection H. The CUs in set H typically perform various tasks in parallel operations. When the task is completed, a new task is assigned to N of the K CUs. A data storage ring R capable of storing at least K bits of data nullifies a K-length word W. Each bit position in word W is associated with a particular CU of collection H. When a CU completes its assigned task, it sends a packet M to the DPIM containing ring R. The logic module L1 on the data storage ring R transforms the word W by inserting a 1 into the bit position associated with the CU that sent the packet M. Another logic module L2 on data storage ring R tracks the number of ones in word W. If the word W has N bits, the N idle CUs in H start a new task. These new tasks are started by multicasting one packet to N processors. An efficient method for multicasting to a subset of the set H is described below.
[0091]
Referring to FIG. 7, a schematic block diagram illustrates the structure and technique for performing a multicast operation using indirect addressing. Multicasting a packet to a plurality of destinations specified by corresponding addresses is a very useful function in computing and communication applications. A single first address points to a set of second addresses. These second addresses are the destination of the copy of the packet payload to be multi-chasted.
[0092]
In some embodiments, the interconnect structure system has a set C of output ports, and under certain conditions, the system0To all output ports in Set C0, C1, C2,. . . , CJ-1Consists of a set of output ports, for a particular integer N less than J, the set CNCan receive the same particular packet as a result of a single multicast request.
[0093]
The
[0094]
Various configurations and sizes of switches can be used. In one embodiment, the bottom switch has 64 output ports. The output port address can be stored in a 6-bit binary pattern. Ring R is F0, F1, F2, F3And F4Has five
[0095]
At least two types of packets may reach the multicast
[0096]
The first type of packet, PW, has an OP1 field that specifies MULTICAST WRITE processing. The WRITE packet reaches
| PAYLOAD | OP1 | BIT |
[0097]
PAYLOAD is a field F connected in a chain.0, F1, F2, F3And F4be equivalent to. The packet PW is transmitted to the
[0098]
FIG. 7 shows a logic module connected to
[0099]
For example, data is transferred over the
[0100]
Another type of packet, PR, indicating a MULTICAST READ request may arrive on the
| PAYLOAD | OP2 | BLANK | OP1 | BIT |
[0101]
The BLANK section is, for example, 6 bits long. BLANK field is CNIs replaced by the target address from one of the fields. The OP1 field may or may not be used for a particular packet or application. A group of packets enters the
| PAYLOAD | OP2 | AD2 | BIT |
[0102]
The address field AD2 comes from the ring R field. The processing fields OP2 and PAYLOAD are derived from a MULTICAST READ packet.
[0103]
In the example shown,
[0104]
The control signal on
[0105]
After sending a MULTICAST READ packet to the DPIM at address AD1, the system stores the PAYLOAD field of the packet in the set C stored in ring R 704.NHas the ability to multicast to multiple addresses stored in
[0106]
Typically, such multicast systems include hardware capable of performing various computation and data storage tasks. In the example shown, multicast capability is achieved by using a specially configured
[0107]
The generalization of the multicast function described above is that a single packet M is a set CNIs a mode that is sent to a predetermined subset of output ports whose addresses specify membership in the The bit mask indicating which members should be sent is called a send mask. In one example, addresses 3, 8, and 17 are set CNAre three members. Sending
[0108]
In another example, a list of unblocked output ports is stored. This list is a mask called a block mask. The
[0109]
Corresponding to the subset indicated by the outgoing mask, CNPackets that are multicast to a subset of the output ports listed in have the following format:
PAYLOAD | OP2 | Mask | Multicast Op | AD1 | BIT |
[0110]
Packets enter the top switch of the system. The address normally stored in the address field AD2 is included in the data stored in the address field AD1, and therefore, the address field AD2 is not used.
[0111]
Referring to FIG. 7, the BIT field and the OP1 code are sent from the ring C or the ring Z to the
[0112]
Set CNThe set of output ports in is p0, P1,. . . , PmIndicated by The output ports are divided into groups, each of which has at most a number of Cs that can be stored on the data storage ring R.NIncluding members. Data ring R has five output addresses and set CNHas nine output ports, the first four output ports are stored in
[0113]
In some applications, the packet payload carries the following information:
C indicating which port of the output port set was used to locate the addressNSubscript N,
C where the address is locatedNGroup of
Member of the group to which the address belongs,
Input port of the switch to which the packet is input.
[0114]
The second and third pieces of information indicate the two indices of the members of q, and the index of p can be easily calculated from these two indices. For a packet carrying these pieces of information, the PAYLOAD field has the following format.
N | first subscript of q | second subscript of q | input port number |
[0115]
FIG. 7 also shows a system that uses indirect addresses in multicasting. A simpler operation is to indirectly address a single output port. In one example of indirect addressing, data storage ring R includes a single field representing an indirect address. For example, the DPIM storage ring R at address 17 contains the value 153. The packet sent to the address 17 is sent to the output port 153 of the bottom switch.
[0116]
In the embodiment described herein, all logic modules associated with a given ring R send data to the
[0117]
In the system described above, the information in the data
[0118]
In this description, data X is sent to a ring R that holds data Y. Arithmetic ring C receives both streams of data X and data Y as input signals, performs a mathematical function F on data X and Y, and sends the result of the operation to the target output port. The target can be stored in the ring R field or the AD2 field of the packet. Alternatively, the target may be based on the result of F (X, Y) or may be generated by another function G (X, Y).
[0119]
In another application, multiple operations can be performed on data X and data Y, and the results can be forwarded to multiple destinations. For example, the result of the function F (X, Y) is sent to the destination specified by the address AD2. Further, the result of the function H (X, Y) can be sent to the destination specified by the address AD3 of the packet. Multiple processing has the advantage that
[0120]
In addition to performing more complicated arithmetic functions on the two arguments X and Y, it is also possible to perform simpler tasks such that the function F is a function of only one of X or Y. It is possible. The result of the simple function F (X) or F (Y) is generated by another function G (X) or sent to the destination specified by address AD2.
[0121]
Although the present invention has been described based on various embodiments, it should be understood that these embodiments are illustrative and do not limit the scope of the present invention. Various modifications, changes, additions and improvements of the described embodiments are possible. For example, those skilled in the art can readily implement the steps necessary to provide the disclosed structures and methods, and the process parameters, materials, and dimensions are provided only as examples. , It will be appreciated that it can be adjusted to achieve desired functional characteristics or variations within the scope of the invention. Modifications and changes of the disclosed embodiments are possible based on the description of the present specification without departing from the spirit and scope of the present invention described in the appended claims.
[0122]
Those skilled in the art will have the ability to make some useful variations and modifications within the scope of the invention. Some examples of such variations and modifications have been listed, but may be applied to other systems.
[Brief description of the drawings]
FIG.
FIG. 1 is a schematic block diagram showing an example of a general-purpose system formed from building blocks including a plurality of network interconnect structures.
FIG. 2
FIG. 2 is a schematic block diagram showing a parallel memory structure such as a parallel random access memory (PRAM) formed using a network interconnect structure as a basic element.
FIG. 3
FIG. 3 is a lower level view of the top switch showing the communication ring, the plurality of logic modules, connections to the circular FIFO data storage ring, and the lower level switch to the upper level.
FIG. 4A
4A, 4B and 4C are block diagrams illustrating the movement of data through a communication ring and a circular FIFO data storage ring. FIG. 4A applies to both READ and WRITE requests. 4B and 4C apply to a READ request in progress.
FIG. 4B
4A, 4B and 4C are block diagrams illustrating the movement of data through a communication ring and a circular FIFO data storage ring. FIG. 4A applies to both READ and WRITE requests. 4B and 4C apply to a READ request in progress.
FIG. 4C
4A, 4B and 4C are block diagrams illustrating the movement of data through a communication ring and a circular FIFO data storage ring. FIG. 4A applies to both READ and WRITE requests. 4B and 4C apply to a READ request in progress.
FIG. 5
FIG. 5 shows a portion of an interconnect structure executing two read instructions that read from the same circular data storage ring that occurs during an overlap period. The read data enters a second switch where it is directed to a different target.
FIG. 6
FIG. 6 shows a part of the interconnect structure executing the WRITE instruction.
FIG. 7
FIG. 7 is a schematic block diagram illustrating the structure and technique for performing a multicast operation using indirect addressing.
Claims (43)
複数の位置をインターコネクトするためのインターコネクト構造(100)と、
複数の記憶部分を有する記憶要素Wを位置Lに含み、前記インターコネクト構造に接続され、前記インターコネクト構造を介して、位置としてアクセス可能な1つ又は複数の記憶要素(114)と、
前記インターコネクト構造に接続され、前記インターコネクト構造の位置としてアクセス可能な複数の演算ユニット(126)とを有し、
前記複数の演算ユニットが、前記インターコネクト構造を介して、前記1つ又は複数の記憶要素からデータをアクセス可能であって、前記演算ユニットが、演算ユニットC1及び演算ユニットC2を含み、前記演算ユニットC1及びC2が、前記記憶要素Wの異なる前記記憶部分から同時に読み取り、前記記憶要素Wの前記記憶部分のデータ内容を異なるターゲット位置に転送可能であることを特徴とする装置。A parallel data processing device,
An interconnect structure (100) for interconnecting a plurality of locations;
One or more storage elements (114) comprising at location L a storage element W having a plurality of storage parts, connected to said interconnect structure and accessible as a location via said interconnect structure;
A plurality of operation units (126) connected to the interconnect structure and accessible as locations of the interconnect structure;
The plurality of arithmetic units are capable of accessing data from the one or more storage elements via the interconnect structure, the arithmetic units including an arithmetic unit C1 and an arithmetic unit C2, and the arithmetic unit C1 And C2 can simultaneously read from different storage portions of the storage element W and transfer data content of the storage portion of the storage element W to different target locations.
複数の位置をインターコネクトするためのインターコネクト構造(100)と、
位置L1及び位置L2にそれぞれ記憶要素W1及び記憶要素W2を含み、前記インターコネクト構造に接続され、前記インターコネクト構造を介して、位置としてアクセス可能な1つ又は複数の記憶要素(114)と、
前記インターコネクト構造に接続され、前記インターコネクト構造の位置としてアクセス可能な複数の演算ユニット(126)とを有し、
前記複数の演算ユニットが、前記インターコネクト構造を介して、前記1つ又は複数の記憶要素からデータをアクセス可能であって、前記演算ユニットが、演算ユニットC1及び演算ユニットC2を含み、前記演算ユニットC1が、前記記憶要素W1及びW2からのデータに対して同時に読み取り及び演算可能であって、前記演算ユニットC2が、前記演算ユニットC1による読み取り及び演算とオーバラップする時点で、前記記憶要素W1及びW2からのデータを読み取り及び演算可能であることを特徴とする装置。A parallel data processing device,
An interconnect structure (100) for interconnecting a plurality of locations;
One or more storage elements (114) including storage elements W1 and W2 at locations L1 and L2, respectively, connected to said interconnect structure and accessible as locations via said interconnect structure;
A plurality of operation units (126) connected to the interconnect structure and accessible as locations of the interconnect structure;
The plurality of operation units can access data from the one or more storage elements via the interconnect structure, and the operation units include an operation unit C1 and an operation unit C2, and the operation unit C1 Can simultaneously read and operate on the data from the storage elements W1 and W2, and when the operation unit C2 overlaps with the reading and operation by the operation unit C1, the storage elements W1 and W2 A device capable of reading and calculating data from the device.
複数の位置をインターコネクトするためのインターコネクト構造(100)と、
複数の記憶部分を有するワードW1を記憶するべき循環シフトレジスタR1を含み、前記インターコネクト構造に接続され、前記インターコネクト構造を介して、位置としてアクセス可能な1つ又は複数の記憶要素(114)と、
前記インターコネクト構造に接続され、前記インターコネクト構造の位置としてアクセス可能な複数の演算ユニット(126)とを有し、
前記複数の演算ユニットが、前記ワードW1の異なる前記記憶部分に対し、同時に演算可能であることを特徴とする装置。A parallel data processing device,
An interconnect structure (100) for interconnecting a plurality of locations;
One or more storage elements (114), including a circular shift register R1 to store the word W1 having a plurality of storage portions, connected to the interconnect structure and accessible as a location via the interconnect structure;
A plurality of operation units (126) connected to the interconnect structure and accessible as locations of the interconnect structure;
Apparatus, wherein the plurality of operation units can operate simultaneously on different storage portions of the word W1.
前記複数の演算ユニットが、前記ワードW2に対し演算を実行するのに、前記ワードW1内の情報を利用可能であることを特徴とする請求項3に記載の装置。Said storage element includes a circular shift register R2 (302) to store a word W2 having a plurality of storage portions;
4. The apparatus of claim 3, wherein the plurality of arithmetic units can use information in the word W1 to perform an operation on the word W2.
前記インターコネクト構造に接続され、データに含まれる通信情報に基づき前記インターコネクト構造にデータを分配する第1のスイッチ(110)と、
前記インターコネクト構造に接続され、前記データに対する処理を実行することが可能な複数のロジックモジュール(114)と、
前記複数のロジックモジュールに接続され、前記複数のロジックモジュールからデータを受け取る第2のスイッチ(112)とを有することを特徴とする装置。Logic for handling data, including a plurality of nodes (330) interconnected in a hierarchy, predicting data collisions at the nodes, and resolving the data collisions based on a priority order defined by the hierarchy. An interconnect structure (100) including (114);
A first switch (110) connected to the interconnect structure and distributing data to the interconnect structure based on communication information included in the data;
A plurality of logic modules (114) connected to the interconnect structure and capable of executing processing on the data;
A second switch (112) connected to the plurality of logic modules and receiving data from the plurality of logic modules.
前記インターコネクト構造に接続され、前記インターコネクト構造の位置としてアクセス可能な複数の演算ユニット(126)とを更に有し、
前記複数の演算ユニットが、前記インターコネクト構造を介して、前記1つ又は複数の記憶要素からデータをアクセス可能であって、前記演算ユニットが、第1の演算ユニット及び第2の演算ユニットを含み、前記第1及び第2の演算ユニットが、前記記憶要素の異なる前記記憶部分から同時に読み取り、前記記憶要素の前記記憶部分のデータ内容を異なるターゲット位置に転送可能であることを特徴とする請求項5に記載の装置。One or more storage elements having a plurality of storage portions and connected to the interconnect structure and accessible as locations via the interconnect structure;
A plurality of arithmetic units (126) connected to the interconnect structure and accessible as locations of the interconnect structure;
The plurality of operation units can access data from the one or more storage elements via the interconnect structure, and the operation units include a first operation unit and a second operation unit; 6. The storage device according to claim 5, wherein the first and second arithmetic units are capable of simultaneously reading from different storage portions of the storage element and transferring data contents of the storage portion of the storage element to different target locations. An apparatus according to claim 1.
前記インターコネクト構造に接続され、前記インターコネクト構造の位置としてアクセス可能な複数の演算ユニット(126)とを更に有し、
前記複数の演算ユニットが、前記インターコネクト構造を介して、前記1つ又は複数の記憶要素からデータをアクセス可能であって、前記演算ユニットが、第1の演算ユニット及び第2の演算ユニットを含み、前記第1の演算ユニットが、2つの前記記憶要素からのデータに対して同時に読み取り及び演算可能であって、前記第2の演算ユニットが、前記第1の演算ユニットによる読み取り及び演算とオーバラップする時点で、2つの前記記憶要素からのデータに対して読み取り及び演算可能であることを特徴とする請求項5に記載の装置。One or more storage elements (116) connected to the interconnect structure and accessible as a location via the interconnect structure;
A plurality of arithmetic units (126) connected to the interconnect structure and accessible as locations of the interconnect structure;
The plurality of operation units can access data from the one or more storage elements via the interconnect structure, and the operation units include a first operation unit and a second operation unit; The first arithmetic unit can read and operate on data from the two storage elements simultaneously, and the second arithmetic unit overlaps with the reading and arithmetic by the first arithmetic unit. Apparatus according to claim 5, wherein data can be read and operated on from two of said storage elements at a time.
前記インターコネクト構造に接続され、データに含まれる通信情報に基づき前記複数のロジックモジュールにデータを分配する第1のスイッチ(110)と、
前記複数のロジックモジュールに接続され、前記複数のロジックモジュールからデータを受け取る第2のスイッチ(112)とを有することを特徴とする装置。A plurality of logics connected in a hierarchical interconnect structure to handle data, predict data collisions at nodes, and resolve the data collisions based at least in part on a priority order defined by the hierarchy. A module (114);
A first switch connected to the interconnect structure and distributing data to the plurality of logic modules based on communication information included in the data;
A second switch (112) connected to the plurality of logic modules and receiving data from the plurality of logic modules.
メモリーデバイスを含む複数のロジックデバイスと、
データ及び処理コードを前記ロジックデバイスにルーティングするために前記ロジックデバイスに接続されたインターコネクト構造とを有し、前記インターコネクト構造が、更に、
複数のノード(330)と、
前記複数のノードに関連付けられた複数のロジック要素(114)と、
送信ノードとして機能するノードから受信ノードとして機能するノードに向けてデータを転送するように、それぞれが、選択されたノードを互いに接続する複数のメッセージインターコネクトパスと、
送信ノードから前記受信ノードに関連付けられたロジック要素に向けて制御信号を転送するように、それぞれが、選択されたノードを互いに接続する複数の制御信号インターコネクトパスとを有し、
前記複数のノードが、
互いに異なるノードA、B及びXと、
ノードBのためのルーティングを決定するようにノードBに関連付けられたロジックLBと、
送信ノードとして機能するノードBから受信ノードとして機能するノードXに至るメッセージインターコネクトパスと、
送信ノードとして機能するノードAから受信ノードとして機能するノードXに至るメッセージインターコネクトパスと、
送信ノードとして機能するノードAからロジックLBに至る制御信号インターコネクトパスとを有し、
前記制御信号が、ノードAからノードXへのデータの転送を、ノードBからノードXへのデータの転送に対して優先的に行われるようにすることを特徴とする装置。A multiple access memory and arithmetic unit,
Multiple logic devices, including memory devices,
An interconnect structure connected to the logic device for routing data and processing code to the logic device, wherein the interconnect structure further comprises:
A plurality of nodes (330);
A plurality of logic elements (114) associated with the plurality of nodes;
A plurality of message interconnect paths, each connecting the selected nodes to each other, so as to transfer data from the node functioning as the transmitting node to the node functioning as the receiving node;
Each having a plurality of control signal interconnect paths connecting the selected nodes to each other, so as to transfer control signals from a transmitting node toward a logic element associated with the receiving node;
The plurality of nodes are:
Nodes A, B and X different from each other;
A logic L B associated with the node B to determine routing for a Node B,
A message interconnect path from node B functioning as a sending node to node X functioning as a receiving node;
A message interconnect path from node A functioning as a sending node to node X functioning as a receiving node;
And a control signal interconnect path from the node A functions as a transmitting node to the logic L B,
The apparatus according to claim 1, wherein the control signal causes the transfer of data from the node A to the node X to be performed preferentially with respect to the transfer of data from the node B to the node X.
メモリーデバイスを含む複数のロジックデバイス(114)と、
データ及び処理コードを前記ロジックデバイスにルーティングするために前記ロジックデバイスに接続されたインターコネクト構造とを有し、前記インターコネクト構造が、更に、
互いに異なるノードA、B及びXを含む複数のノード(330)と、
前記複数のノードのノードを選択的に互いに接続する複数のインターコネクトパスとを有し、
前記インターコネクトパスが、制御信号を制御信号送信ノードから制御信号利用ノードに関連付けられたロジックに制御信号を転送する制御信号インターコネクトパスと、送信ノードから受信ノードにデータを転送するデータインターコネクトパスとを有し、
ノードBが、データをノードX及びYに転送するためのデータインターコネクトパスを含み、
ノードAが、制御信号をノードBに関連付けられたロジックLBに転送するための制御信号インターコネクトパスを有し、
ノードBに到達するメッセージMについて、ノードAが制御信号CをロジックLBに転送し、ロジックLBが制御信号Cを利用して、メッセージMをノードX及びYのいずれに転送するべきかを決定するように、ロジックLBが機能し得ることを特徴とする装置。A multiple access memory and arithmetic unit,
A plurality of logic devices (114) including a memory device;
An interconnect structure connected to the logic device for routing data and processing code to the logic device, wherein the interconnect structure further comprises:
A plurality of nodes (330) including different nodes A, B and X;
A plurality of interconnect paths for selectively connecting the nodes of the plurality of nodes to each other,
The interconnect path has a control signal interconnect path for transferring a control signal from a control signal transmitting node to a logic associated with a control signal using node, and a data interconnect path for transferring data from a transmitting node to a receiving node. And
Node B includes a data interconnect path for transferring data to nodes X and Y,
Node A has a control signal interconnect path for transferring the control signal to the logic L B associated with a Node B,
For a message M to reach a Node B, Node A forwards the control signal C to the logic L B, the logic L B is using a control signal C, and should forward the message M to one of the nodes X and Y as determining, and wherein the logic L B can function.
メモリーデバイスを含む複数のロジックデバイス(114)と、
データ及び処理コードを前記ロジックデバイスにルーティングするために前記ロジックデバイスに接続されたインターコネクト構造とを有し、前記インターコネクト構造が、更に、
ノードA及びB並びにノードセットPを含み、ノードA及びBが、ノードセットP以外の互いに異なるノードからなり、ノードBがノードセットPの全てのノードに向けてデータを転送可能であるような複数のノード(330)と、
前記複数のノードのノードを選択的に互いに接続する複数のインターコネクトパスとを有し、
前記ノードが、受信ノード及び送信ノードを含む対をなすノードとして選択され、前記送信ノードは前記受信ノードにデータを転送するべく適合され、前記複数のインターコネクトパスが、データインターコネクトパス及び制御インターコネクトパスを含み、前記制御インターコネクトパスが、前記複数のノードのノードを、制御信号を制御信号利用ノードに関連付けられたロジックに転送するべき制御信号送信ノードとして互いに選択的に接続し、
前記複数の制御インターコネクトパスが、ノードAからノードBに関連付けられたロジックLBに至る制御インターコネクトパスを含み、ロジックLBが、ノードAからの制御信号を利用して、ノードBが、ノードセットPのいずれのノードにデータを転送するべきかを決定することを特徴とする装置。A multiple access memory and arithmetic unit,
A plurality of logic devices (114) including a memory device;
An interconnect structure connected to the logic device for routing data and processing code to the logic device, wherein the interconnect structure further comprises:
A plurality of nodes including nodes A and B and a node set P, wherein the nodes A and B are composed of different nodes other than the node set P, and the node B can transfer data to all the nodes of the node set P. A node (330) of
A plurality of interconnect paths for selectively connecting the nodes of the plurality of nodes to each other,
The node is selected as a paired node that includes a receiving node and a transmitting node, the transmitting node is adapted to transfer data to the receiving node, and the plurality of interconnect paths comprise a data interconnect path and a control interconnect path. Comprising, the control interconnect path selectively connects the nodes of the plurality of nodes to each other as a control signal transmitting node to transfer a control signal to a logic associated with a control signal using node,
The plurality of control interconnect path comprises a control interconnect path leading to the logic L B associated from node A to node B, the logic L B is, by utilizing the control signal from the node A, is a Node B, node set An apparatus for determining which node of P to forward data to.
メモリーデバイスを含む複数のロジックデバイス(114)と、
データ及び処理コードを前記ロジックデバイスにルーティングするために前記ロジックデバイスに接続されたインターコネクト構造とを有し、前記インターコネクト構造が、更に、
ノードA及びB並びにノードセットPを含み、ノードA及びBが、ノードセットP以外の互いに異なるノードからなり、ノードBがノードセットPの全てのノードに向けてデータを転送可能であるような複数のノード(330)と、
受信ノード及び送信ノードを含む対をなすノードとして選択され、前記送信ノードは前記受信ノードにデータを転送するべく適合された、前記複数のノード中のノードを互いに選択的に接続する複数のインターコネクトパスと、
ノードAに関連付けられ、ノードAからのデータをどこにルーティングするべきかを決定可能なロジックLAと、
ノードBに関連付けられ、ノードBからのデータをどこにルーティングするべきかを決定可能なロジックLBとを有し、
ロジックLAがロジックLBとは異なり、ロジックLBが、ロジックLAにより決定される情報を利用して、ノードBがノードセットP中のどのノードにデータを転送するべきかを決定することを特徴とする装置。A multiple access memory and arithmetic unit,
A plurality of logic devices (114) including a memory device;
An interconnect structure connected to the logic device for routing data and processing code to the logic device, wherein the interconnect structure further comprises:
A plurality of nodes including nodes A and B and a node set P, wherein the nodes A and B are composed of different nodes other than the node set P, and the node B can transfer data to all the nodes of the node set P. A node (330) of
A plurality of interconnect paths selectively connecting nodes among the plurality of nodes to each other, the plurality of interconnect paths being selected as a paired node including a receiving node and a transmitting node, the transmitting node being adapted to transfer data to the receiving node; When,
Logic L A associated with node A and capable of determining where to route data from node A;
Associated with a Node B, and a where possible decide to route logic L B data from a Node B,
Unlike logic L A logic L B, the logic L B is, by using the information determined by the logic L A, the node B determines whether to forward the data to which node in the node set P An apparatus characterized by the above.
メモリーデバイスを含む複数のロジックデバイス(114)と、
データ及び処理コードを前記ロジックデバイスにルーティングするために前記ロジックデバイスに接続されたインターコネクト構造とを有し、前記インターコネクト構造が、更に、
それぞれ、複数のデータ入力ポート、複数のデータ出力ポート及びノードを通過するデータの流れを制御するロジック要素を含み、互いに異なるノードA、B、X及びYを含む複数のノード(330)と、
前記複数のノードのノードを互いに選択的に接続する複数のインターコネクトパスとを有し、
前記インターコネクトパスが、制御信号を制御信号送信ノードから制御信号利用ノードに関連付けられたロジックに転送する制御信号インターコネクトパスと、データ送信ノードからデータ受信ノードにデータを転送するデータインターコネクトパスとを有し、前記データインターコネクトパスが、前記データ出力ポート及びデータ入力ポートを互いに選択的に接続し、前記制御インターコネクトパスが、制御信号送信ノードから、制御信号に依存するデータの流れを有するノードに関連付けられたロジック要素に制御信号を転送するように、ノードとロジック要素を互いに選択的に接続し、
ノードBが、ノードAからの制御信号を利用して、ノードBを通過するメッセージMのルーティングを決定するロジックLBに関連付けられており、ノードAから受信された制御信号Cにより、メッセージMがノードXに転送されるようにし、ノードAから受信された制御信号C’により、メッセージMがノードBからノードYに転送されるようにしたことを特徴とする装置。A multiple access memory and arithmetic unit,
A plurality of logic devices (114) including a memory device;
An interconnect structure connected to the logic device for routing data and processing code to the logic device, wherein the interconnect structure further comprises:
A plurality of nodes (330), each including a plurality of data input ports, a plurality of data output ports, and a logic element for controlling a flow of data passing through the nodes, and including nodes A, B, X and Y different from each other;
A plurality of interconnect paths for selectively connecting the nodes of the plurality of nodes to each other,
The interconnect path has a control signal interconnect path for transferring a control signal from a control signal transmitting node to a logic associated with a control signal using node, and a data interconnect path for transferring data from a data transmitting node to a data receiving node. Wherein the data interconnect path selectively connects the data output port and the data input port to each other, and wherein the control interconnect path is associated with a node having a data flow dependent on a control signal from a control signal transmitting node. Selectively connect nodes and logic elements to each other to transfer control signals to the logic elements,
Node B, by using the control signal from the node A, are associated with a logic L B that determines the routing of message M passing through the node B, the control signal C received from the node A, the message M is Apparatus characterized in that the message M is transferred from the node B to the node Y by a control signal C ′ received from the node A so as to be transferred to the node X.
メモリーデバイスを含む複数のロジックデバイス(114)と、
データ及び処理コードを前記ロジックデバイスにルーティングするために前記ロジックデバイスに接続されたインターコネクト構造とを有し、前記インターコネクト構造が、更に、
ノードX及びノードXにデータを転送可能な複数のノードを含むノードセットPを有する複数のノード(330)と、
前記複数のノードのノードを互いに選択的に接続する複数のインターコネクトパスとを有し、
前記インターコネクトパスが、送信ノードから受信ノードにデータを転送するデータインターコネクトパスを有し、ノードXにデータを転送することについて最も高い優先順序を有するノードが、ノードXにデータを転送するのをブロックされることのないように、ノードセットP中のノードが、ノードXにデータを転送することについての優先順序関係を与えられていることを特徴とする装置。A multiple access memory and arithmetic unit,
A plurality of logic devices (114) including a memory device;
An interconnect structure connected to the logic device for routing data and processing code to the logic device, wherein the interconnect structure further comprises:
A plurality of nodes (330) having a node set P including a node X and a plurality of nodes capable of transferring data to the node X;
A plurality of interconnect paths for selectively connecting the nodes of the plurality of nodes to each other,
Wherein the interconnect path has a data interconnect path that transfers data from a sending node to a receiving node, and blocks a node having the highest priority for transferring data to node X from transferring data to node X. Wherein the nodes in the node set P are given a priority order for transferring data to the node X so as not to be performed.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US69360300A | 2000-10-19 | 2000-10-19 | |
PCT/US2001/050543 WO2002033565A2 (en) | 2000-10-19 | 2001-10-19 | Scaleable interconnect structure for parallel computing and parallel memory access |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004531783A true JP2004531783A (en) | 2004-10-14 |
JP4128447B2 JP4128447B2 (en) | 2008-07-30 |
Family
ID=24785344
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002536883A Expired - Fee Related JP4128447B2 (en) | 2000-10-19 | 2001-10-19 | Scalable interconnect structure for parallel computing and parallel memory access |
Country Status (7)
Country | Link |
---|---|
EP (1) | EP1360595A2 (en) |
JP (1) | JP4128447B2 (en) |
CN (1) | CN100341014C (en) |
AU (1) | AU2002229127A1 (en) |
CA (1) | CA2426422C (en) |
MX (1) | MXPA03003528A (en) |
WO (1) | WO2002033565A2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102542525A (en) * | 2010-12-13 | 2012-07-04 | 联想(北京)有限公司 | Information processing equipment and information processing method |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8605099B2 (en) * | 2008-03-31 | 2013-12-10 | Intel Corporation | Partition-free multi-socket memory system architecture |
CN101833439B (en) * | 2010-04-20 | 2013-04-10 | 清华大学 | Parallel computing hardware structure based on separation and combination thought |
US10168923B2 (en) | 2016-04-26 | 2019-01-01 | International Business Machines Corporation | Coherency management for volatile and non-volatile memory in a through-silicon via (TSV) module |
US10236043B2 (en) * | 2016-06-06 | 2019-03-19 | Altera Corporation | Emulated multiport memory element circuitry with exclusive-OR based control circuitry |
FR3083350B1 (en) * | 2018-06-29 | 2021-01-01 | Vsora | PROCESSOR MEMORY ACCESS |
US10872038B1 (en) * | 2019-09-30 | 2020-12-22 | Facebook, Inc. | Memory organization for matrix processing |
CN117294412B (en) * | 2023-11-24 | 2024-02-13 | 合肥六角形半导体有限公司 | Multi-channel serial-parallel automatic alignment circuit and method based on single bit displacement |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4977582A (en) * | 1988-03-31 | 1990-12-11 | At&T Bell Laboratories | Synchronization of non-continuous digital bit streams |
US5043981A (en) * | 1990-05-29 | 1991-08-27 | Advanced Micro Devices, Inc. | Method of and system for transferring multiple priority queues into multiple logical FIFOs using a single physical FIFO |
US5923654A (en) * | 1996-04-25 | 1999-07-13 | Compaq Computer Corp. | Network switch that includes a plurality of shared packet buffers |
US6289021B1 (en) * | 1997-01-24 | 2001-09-11 | Interactic Holdings, Llc | Scaleable low-latency switch for usage in an interconnect structure |
-
2001
- 2001-10-19 CN CNB018208878A patent/CN100341014C/en not_active Expired - Fee Related
- 2001-10-19 MX MXPA03003528A patent/MXPA03003528A/en active IP Right Grant
- 2001-10-19 WO PCT/US2001/050543 patent/WO2002033565A2/en active Application Filing
- 2001-10-19 CA CA2426422A patent/CA2426422C/en not_active Expired - Fee Related
- 2001-10-19 EP EP01987920A patent/EP1360595A2/en not_active Withdrawn
- 2001-10-19 JP JP2002536883A patent/JP4128447B2/en not_active Expired - Fee Related
- 2001-10-19 AU AU2002229127A patent/AU2002229127A1/en not_active Abandoned
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102542525A (en) * | 2010-12-13 | 2012-07-04 | 联想(北京)有限公司 | Information processing equipment and information processing method |
Also Published As
Publication number | Publication date |
---|---|
MXPA03003528A (en) | 2005-01-25 |
EP1360595A2 (en) | 2003-11-12 |
CN1489732A (en) | 2004-04-14 |
JP4128447B2 (en) | 2008-07-30 |
CA2426422A1 (en) | 2002-04-25 |
CA2426422C (en) | 2012-04-10 |
WO2002033565A2 (en) | 2002-04-25 |
AU2002229127A1 (en) | 2002-04-29 |
WO2002033565A3 (en) | 2003-08-21 |
CN100341014C (en) | 2007-10-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR900006791B1 (en) | Packet switched multiport memory nxm switch node and processing method | |
US4621359A (en) | Load balancing for packet switching nodes | |
JP3599197B2 (en) | An interconnect network that connects processors to memory with variable latency | |
JP3532574B2 (en) | Adaptive routing mechanism for torus interconnected networks | |
US5797035A (en) | Networked multiprocessor system with global distributed memory and block transfer engine | |
Duato et al. | Performance evaluation of adaptive routing algorithms for k-ary n-cubes | |
KR20220004216A (en) | Control Flow Barriers and Reconfigurable Data Processors | |
JP4128447B2 (en) | Scalable interconnect structure for parallel computing and parallel memory access | |
EP0199757B1 (en) | Instruction flow computer | |
US20050036445A1 (en) | Processing data packets | |
Yokota et al. | A prototype router for the massively parallel computer RWC-1 | |
Balakrishnan et al. | A priority-based flow control mechanism to support real-time traffic in pipelined direct networks | |
JP3704367B2 (en) | Switch circuit | |
Balakrishnan et al. | Providing message delivery guarantees in pipelined flit-buffered multiprocessor networks | |
US20050038902A1 (en) | Storing data packets | |
Liu et al. | Performance Evaluations Of Adaptive Wormhole Routing In 3D Mesh Networks | |
Prakash et al. | VLSI implementation of a wormhole router using virtual channels | |
Khonsari et al. | Performance modelling of a true fully adaptive routing algorithm | |
Heath et al. | Design and performance of a modular hardware process mapper (scheduler) for a real-time token controlled data driven multiprocessor architecture | |
Frazier | Buffering and flow control in communication switches for scalable multicomputers | |
Smai et al. | Evaluation of a priority flow control scheme for multicomputer networks | |
Gaizauskas et al. | Formation of multiple filaments in transparent solids | |
Rangarajan et al. | Hardware Implementation of Pipeline Based Router Design for On-Chip Network | |
Lee | Design of a Parallel Computer Network Interface Controller | |
Abdalla | Performance Analysis of Multicomputer Interconnection Network Designs |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20041007 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20061228 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070123 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20070423 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20070501 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20070523 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20070530 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070625 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20080422 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080514 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110523 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120523 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120523 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130523 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |