JP4128447B2 - 並列演算及び並列メモリーアクセスのためのスケーラブルなインターコネクト構造 - Google Patents

並列演算及び並列メモリーアクセスのためのスケーラブルなインターコネクト構造 Download PDF

Info

Publication number
JP4128447B2
JP4128447B2 JP2002536883A JP2002536883A JP4128447B2 JP 4128447 B2 JP4128447 B2 JP 4128447B2 JP 2002536883 A JP2002536883 A JP 2002536883A JP 2002536883 A JP2002536883 A JP 2002536883A JP 4128447 B2 JP4128447 B2 JP 4128447B2
Authority
JP
Japan
Prior art keywords
data
node
logic
storage
interconnect
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.)
Expired - Fee Related
Application number
JP2002536883A
Other languages
English (en)
Other versions
JP2004531783A (ja
Inventor
ヘッセ、ジョン
リード、コーク・エス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Interactic Holdings LLC
Original Assignee
Interactic Holdings LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Interactic Holdings LLC filed Critical Interactic Holdings LLC
Publication of JP2004531783A publication Critical patent/JP2004531783A/ja
Application granted granted Critical
Publication of JP4128447B2 publication Critical patent/JP4128447B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations 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/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17356Indirect interconnection networks
    • G06F15/17368Indirect interconnection networks non hierarchical topologies
    • G06F15/17375One dimensional, e.g. linear array, ring

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)

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リングの全長Fを200ビットとし、64ビットが複数のロジックモジュールL内に格納され、残りの136ビットはFIFOの直列接続されたレジスタ内に格納されるようにすることができる。システム全体に供給されるクロックがFIFO要素及びシフトレジスタに接続され、データビットを“バケツリレー”式に次の位置へと進ませる。サイクル時間(cycle period)は、データがFIFOリングのちょうど1サイクルを完了するのに要するクロック周期で表される時間として定義される。サイクル時間の整数値は構成要素の数で表したFIFOリングの長さに等しい。例えば、200個の構成要素(即ち、長さ200)からなるリングでは、サイクル時間は200システムクロック周期となる。システムは、異なるレートで動作する局所的なクロックまたはタイミングソースを有することも可能である。実施例によって、システムの全てのFIFOリングが同じ長さを有しても、所定の最小長さの整数倍でばらついた長さを有してもよい。別の実施例では、一つのリングが複数の並列経路を備えたバス構造を有し、リング内に保持されるデータ量がリング長さFの整数倍となるようにすることもできる。
【0011】
汎用システム100では、トップスイッチは、システム最大長さまでの様々な長さを有するパケットを扱うことが可能である。ある用途では、パケットは全て同じ長さを有することもできる。一般的には、様々な長さを有するパケットがトップスイッチに入力される。パケットの長さはPで表され、PはFを越えない。
【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】
以下の表に、パケットフィールドの簡単な説明を示す。
Figure 0004128447
【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を通過しターゲット出力リングZ(J=AD1)へ到達する。リングZ=Zは、出力ライン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フィールドはトップスイッチのターゲットリングZ306を指定する(ここでJ=AD1)。ノードS(図示せず)及びノードT(図示せず)がメッセージタイミングを規定するべく定められる。ノードSはリングRのノード330として定められ、ノードTはリングZのノード312として定められ、ノードSはノードTに制御ライン328を通じて制御信号を送るように配置される。グローバルタイミング信号に基づき、リングRのノード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上のあるノードNは、トップスイッチ内のより高いレベルにあるノードWにノードNにおいて非ブロック状態であることを通知するべく制御信号を送る。この制御信号は、ノードNからデータを受け取る位置にあるノードNにデータをルーティングする許可をノード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の長さは循環するパケットが常にリング上に完全に納まるように設定される。別の言い方をすると、パケット長さPはリング長さFを越えることはない。
【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ビットB408と同時にロジックモジュールに到達する。循環するデータの相対的なタイミングは、リング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ビットDはボトムスイッチまたはボトムスイッチへとデータを転送するコンセントレータへと送られる位置にある。プロセスは図4Cに示すように続く。ロジックモジュールは第2のDATAビットDをコンセントレータへ送る一方、データリングRから第3のDATAビットDを読み込む。プロセスの終了時、パケット全体が通信リング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フィールドはスコアボード機能に用いられる。あるシステムがBより少ない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を有し、ある条件の下では、システムは所定のパケットペイロードを集合C内の全ての出力ポートに送る。集合C、C、C、...、CJ−1の各々は出力ポートのセットからなり、Jより小さい特定の整数Nに対し、集合C内の全てのポートが、単一のマルチキャスト要求の結果、同じ特定のパケットを受信することができる。
【0093】
マルチキャストインターコネクト構造700は記憶リングR 704内に集合Cの出力アドレスのセットを格納する。リングの各々はFMAX個のアドレスを格納する容量を有する。示されている例では、図7に示されたリングRはFMAX=5個のアドレスを格納する容量を有する。
【0094】
スイッチの構成及びサイズは様々なものを用いることができる。一実施例では、ボトムスイッチは64個の出力ポートを有する。出力ポートアドレスは6ビットバイナリパターンで格納することができる。リングRはF、F、F、F及びFのラベルが付された5つのフィールド702を有し、これらのフィールドに集合Cの出力ポート位置が保持される。各フィールドは7ビット長さである。7つのビットの内、第1ビットは、Cの位置がそのフィールドの次の6ビットに格納されている場合、1にセットされる。そうでない場合、第1ビットは0にセットされる。
【0095】
少なくとも2種類のパケットがマルチキャストロジックモジュールMLM714に到達し得る。それらパケットには、MULTICAST READパケットとMULTICAST WRITEパケットが含まれる。
【0096】
パケットの第1のタイプ、PW、はMULTICAST WRITE処理を指定するOP1フィールドを有する。WRITEパケットは通信リング302に到達し、以下の形式を有する:
|PAYLOAD|OP1|BIT|
【0097】
PAYLOADは、鎖状につながったフィールドF、F、F、F及びFに等しい。パケットPWはMLM714が適切な時間にFの第1ビットを読み取るのに適した位置において通信リング302に到達する。MLMは、図6を参照して上述したWRITE動作と同様に、PAYLOADの第1ビットをリングRに書き込む。
【0098】
図7はマルチキャスト機能をサポートする特別なハードウェアDPIM714に接続されたロジックモジュールを示している。WRITE要求に応答して、システムは処理を実行し、それによってフィールドF、F、F、F及びFはリング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フィールドはCのフィールドの一つからのターゲットアドレスによって置換される。OP1フィールドは、特定のパケットまたは応用のために用いても用いなくてもよい。パケットのグループがボトムスイッチ112に以下の形式で入力する:
|PAYLOAD|OP2|AD2|BIT|
【0102】
アドレスフィールドAD2はリングRフィールドから来ている。処理フィールドOP2及びPAYLOADはMULTICAST READパケットに由来する。
【0103】
示されている例では、ターゲットアドレスAD1に位置する記憶リングR 704は3つの出力ポートアドレス、例えば、3、8及び17を格納する。出力アドレス3がフィールドFに格納されている。アドレス3の最上位ビット(most significant bit)が最初に現れ、その後に次に重要なビットが続くというようにして続いていく。従って、10進数の整数3を表す標準的な6ビットバイナリパターンは000011となる。これらヘッダビットは、最上位ビットから最下位ビットの順に用いられる。ヘッダビットは最上位ビットが最初にくるように格納すると都合がよく、その結果、フィールドFにおいて、ターゲット出力3を表すフィールドは6ビットパターン110000によって表される。タイミングビットを含むフィールドF全体は7ビットパターン1100001を有する。同様に、フィールドFは10進数の8をパターン0001001として格納する。フィールドFは10進数の17を1000101として格納する。更なる出力ポートはアドレス指定されていないため、フィールドF及びFは全てゼロ(0000000)に設定される。
【0104】
ライン722上の制御信号はボトムスイッチにおける非ブロック状態を示し、パケットがライン718を通じて入力するのを許可する。ボトムスイッチからロジックモジュール714へとライン722を通じて送られる制御信号がビジー状態を示しているときは、スイッチへのデータの送付はなされない。“非ビジー”制御信号がMLMに達すると、リングR内のアドレスのデータフィールドが、読み取りユニット(reading unit)708及びボトムスイッチ112へと応答を生成し送付するのに適切な位置に置かれる。ロジックモジュールに“非ビジー”信号が到達した後の適切な時間において、MLMは複数のMULTICAST READ応答パケットをボトムスイッチ112を通じてアドレスの集合Cに送り始める。
【0105】
システムは、アドレスAD1にあるDPIMへMULTICAST READパケットを送った後、そのパケットのPAYLOADフィールドをリングR 704に格納された集合Cに格納された複数のアドレスにマルチキャストする能力を有する。
【0106】
典型的には、上記したようなマルチキャストシステムは様々な演算及びデータ記憶タスクを実行することが可能なハードウェアを含む。示した例では、マルチキャスト能力は、マルチキャストアドレスを保持し転送するべく特別に構成されたDPIMユニット700を使用することにより達成される。
【0107】
上記したマルチキャスト機能の一般化は、単一のパケットMが集合C内のメンバーシップを指定するアドレスを有する出力ポートの所定のサブセットへと送られるようなモードである。どのメンバーに送出されるべきかを示すビットマスクは送出マスク(send mask)と呼ばれる。一例では、アドレス3、8及び17が集合Cの3つのメンバーである。送出マスク0、0、1、0、1はリストCの第1及び第3出力ポートがパケットを受信するべきであることを示す。応答パケットは出力ポート3及び17にマルチキャストされる。一例では、制御信号により、全入力ポートがパケットを受信することが可能な状態にあるかどうか、或いは、1または複数の入力ポートがブロックされているかどうかが示される。
【0108】
別の例では、ブロックされていない出力ポートのリストが格納される。このリストは、ブロックマスクと呼ばれるマスクである。送出マスク内のN番目の位置における値1は、CのN番目のメンバーに送出することが望まれていることを示す。ブロックマスクのN番目の位置における値1は、CのN番目のメンバーがブロックされておらず、従って送出可能であることを示す。両マスクのN番目の位置の値が1のとき、リストのN番目の出力ポートへとパケットMが送られる。
【0109】
送出マスクによって示されたサブセットに対応して、C内に列挙された出力ポートのサブセットにマルチキャストされるパケットは以下の形式を有する:
PAYLOAD|OP2|Mask|マルチキャストOp|AD1|BIT|
【0110】
パケットはシステムのトップスイッチに入る。アドレスフィールドAD2に通常格納されるアドレスはアドレスフィールドAD1内に格納されたデータ内に含まれ、従って、アドレスフィールドAD2は用いられない。
【0111】
図7を参照すると、BITフィールド及びOP1コードはリングCまたはリングZからロジックモジュール714へと送られる。送出マスク及びブロックマスクも同時にロジックモジュールに入る。送出マスクのJ番目のビットが1で且つブロックマスクのJ番目のビットも1の場合、PAYLOADがアドレスFに送られる。残りの処理は、マスクのないマルチキャストモードと同様に進行する。
【0112】
集合C内の出力ポートのセットはp、p、...、pで示される。出力ポートは複数のグループに分割されるが、これらグループは、最大で、データ記憶リングR上に格納することが可能な数のCのメンバーを含む。データリングRが5つの出力アドレスを有し、集合Cが9つの出力ポートを有する場合、最初の4つの出力ポートはグループ0に格納され、次の4つの出力ポートはグループ1に格納され、残りの出力ポートはグループ3に格納される。出力ポートシーケンスp、p、...、pはq00、q01、q02、q03、q10、q11、q12、q13、q20とインデックス付けすることもできる。このようにして、ターゲットの物理的アドレスをグループ番号とアドレスフィールドインデックスを示す2つの整数により完全に記述することができる。
【0113】
いくつかの応用においては、パケットのペイロードは以下の情報を担う:
出力ポートセットのどのポートがアドレスの位置を特定するのに用いられたかを示すCのサブスクリプトN、
アドレスが配置されているCのグループ、
アドレスが所属するグループのメンバー、
パケットが入力されるスイッチの入力ポート。
【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は、間接アドレス指定を用いたマルチキャスト処理を実行するための構造及び技法を示す模式的なブロック図である。

Claims (49)

  1. 並列データ処理装置であって、
    複数の位置を通信可能に相互接続するインターコネクト構造(100)と、
    記インターコネクト構造に接続され、前記インターコネクト構造を介して、位置としてアクセス可能な1つ又は複数の動的プロセッサ・イン・メモリー式ロジックモジュール(DPIM)記憶要素(114)であって、前記DPIM記憶要素は、記憶要素Wを位置Lに含み、前記記憶要素Wは、対をなす同期された先入れ先出し(FIFO)記憶リング(304)に接続された複数の記憶部分を有する、該DPIM記憶要素(114)と、
    前記インターコネクト構造に接続され、前記インターコネクト構造の位置としてアクセス可能な複数の演算ユニット(126)とを有し、
    前記複数の演算ユニットが、前記インターコネクト構造を介して、前記1つ又は複数の記憶要素のデータにアクセスし、前記演算ユニットが、演算ユニットC1及び演算ユニットC2を含み、前記演算ユニットC1及びC2が、前記記憶要素Wの異なる前記記憶部分から同時に読み取り、前記記憶要素Wの前記記憶部分のデータ内容を異なるターゲット位置に転送することを特徴とする装置。
  2. 並列データ処理装置であって、
    複数の位置を通信可能に相互接続するインターコネクト構造(100)と、
    記インターコネクト構造に接続され、対をなす同期された先入れ先出し(FIFO)記憶リング(304)に接続された、前記インターコネクト構造を介して、位置としてアクセス可能な1つ又は複数の動的プロセッサ・イン・メモリー式ロジックモジュール(DPIM)記憶要素(114)であって、前記DPIM記憶要素は、位置L1及び位置L2にそれぞれ記憶要素W1及び記憶要素W2を含む、該DPIM記憶要素(114)と、
    前記インターコネクト構造に接続され、前記インターコネクト構造の位置としてアクセス可能な複数の演算ユニット(126)とを有し、
    前記複数の演算ユニットが、前記インターコネクト構造を介して、前記1つ又は複数の記憶要素からデータをアクセス可能であって、前記演算ユニットが、演算ユニットC1及び演算ユニットC2を含み、前記演算ユニットC1が、前記記憶要素W1及びW2からのデータに対して同時に読み取り及び演算を行い、前記演算ユニットC2が、前記演算ユニットC1による読み取り及び演算とオーバラップする時点で、前記記憶要素W1及びW2からのデータを読み取り及び演算を行うことを特徴とする装置。
  3. 並列データ処理装置であって、
    複数の位置を通信可能に相互接続するインターコネクト構造(100)と、
    記インターコネクト構造に接続され、前記インターコネクト構造を介して、位置としてアクセス可能な1つ又は複数の動的プロセッサ・イン・メモリー式ロジックモジュール(DPIM)記憶要素(114)であって、前記記憶要素Wは、対をなす同期された先入れ先出し(FIFO)記憶リング(304)に接続され、前記DPIM記憶要素は、複数の記憶部分を有するワードW1を記憶するべき循環シフトレジスタR1を含む、該DPIM記憶要素(114)と、
    前記インターコネクト構造に接続され、前記インターコネクト構造の位置としてアクセス可能な複数の演算ユニット(126)とを有し、
    前記複数の演算ユニットが、前記ワードW1の異なる前記記憶部分に対し、同時に演算することを特徴とする装置。
  4. 対をなす同期された先入れ先出し(FIFO)記憶リング(304)に接続された前記記憶要素が、複数の記憶部分を有するワードW2を記憶するべき循環シフトレジスタR2(302)を含み、
    前記複数の演算ユニットが、前記ワードW2に対し演算を実行するのに、前記ワードW1内の情報を利用することを特徴とする請求項3に記載の装置。
  5. データの伝送のために階層をなして相互接続された複数のノード(330)を含むインターコネクト構造(100)であって、データを取り扱い、更にノードに於けるデータの衝突を予測し、前記階層により定められる優先順序に基づき前記データ衝突を解決するようなロジック(114)を含む、該インターコネクト構造(100)と、
    前記インターコネクト構造に接続され、データに含まれる通信情報に基づき前記インターコネクト構造にデータを分配する第1のスイッチ(110)と、
    対をなす同期された先入れ先出し(FIFO)記憶リング(304)を介して前記インターコネクト構造に接続され、前記データに対する処理を実行す複数のロジックモジュール(114)と、
    前記複数のロジックモジュールに接続され、前記複数のロジックモジュールからデータを受け取る第2のスイッチ(112)とを有することを特徴とする装置。
  6. 前記複数のロジックモジュールに接続され、かつ前記第1のスイッチに接続された複数のインターコネクトモジュールを更に有し、前記インターコネクトモジュールが、前記ロジックモジュールに於けるデータトラフィックを監視し、データ衝突を回避するために前記第1のスイッチによるデータ注入のタイミングを制御することを特徴とする請求項5に記載の装置。
  7. 前記第1のスイッチが複数の出力ポートを有し、当該装置が、更に、前記第1のスイッチに接続され、かつ前記複数のロジックモジュールに接続された複数のインターコネクトモジュールを有し、前記複数のインターコネクトモジュールが、それぞれ前記複数の出力ポートに関連付けられていることを特徴とする請求項5に記載の装置。
  8. 前記複数のロジックモジュールが、前記複数のロジックモジュールの一つにより実行されるべき処理を決定するためにデータ内の情報を利用するロジックを含むことを特徴とする請求項5に記載の装置。
  9. 前記複数のロジックモジュールが、ロード、記憶、読み取り及び書き込みを含むデータ転送処理と、AND、OR、NOR、NAND、排他的AND、排他的OR及びビットテストを含む論理演算と、加算、減算、乗算、除算及び超越関数を含む算術演算とから選択されたロジック機能を備えた複数の異なるロジック要素タイプを有することを特徴とする請求項5に記載の装置。
  10. 前記第1のスイッチに接続され、かつ前記複数のロジックモジュールに接続された複数のインターコネクトモジュールを更に有し、前記インターコネクトモジュールが、前記ロジックモジュールに於けるデータトラフィックを監視可能で、データを保持し、集中するためのバッファ及び集信装置を有し、データ衝突を回避するために前記第1のスイッチによるデータ注入のタイミングを制御可能であることを特徴とする請求項5に記載の装置。
  11. 前記第1及び第2のスイッチと、前記複数のインターコネクト構造と、前記複数のインターコネクトモジュールとによりインターコネクトユニットが形成され、当該装置が更に、前記複数のインターコネクト構造に接続され、前記インターコネクトユニット外にデータを転送し、かつトップスイッチにデータを転送するべく配置された1つ又は複数の演算ユニット(126)を有することを特徴とする請求項5に記載の装置。
  12. 前記第1及び第2のスイッチと、前記複数のインターコネクト構造と、前記複数のインターコネクトモジュールとによりインターコネクトユニットが形成され、当該装置が更に、前記インターコネクトユニット外にデータを転送し、かつトップスイッチにデータを転送するべく配置された1つ又は複数のメモリーユニット(126)を有することを特徴とする請求項5に記載の装置。
  13. 前記トップ及びボトムスイッチが、複数の異なるビット長のデータを取り扱うことを特徴とする請求項5に記載の装置。
  14. 前記ロジックモジュールが、ダイナミック・プログラム・イン・メモリーであることを特徴とする請求項5に記載の装置。
  15. 当該装置が、データペイロードを取扱い可能なペイロードフィールドと、処理されるべきデータを保持する記憶位置を指定する第1のアドレスと、前記第1のアドレスに保持されたデータに対して実行されるべき処理を指定する第1の処理コードと、前記第1のアドレス記憶位置からのデータに対して処理を行うオプションデバイスを指定する第2のアドレスと、前記第1のアドレス記憶位置からのデータに対して前記第2のアドレスデバイスが行うべき処理を指定する第2の処理コードとを含む情報及びデータフィールドを備えたデータメッセージに対して処理を行うことを特徴とする請求項5に記載の装置。
  16. 当該装置が、データパケットが存在することを示すフィールドと、データペイロードを担うことが可能なペイロードフィールドと、処理されるべきデータを保持する記憶位置を指定する第1のアドレスと、前記第1のアドレスに保持されたデータに対して実行されるべき処理を指定する第1の処理コードと、前記第1のアドレス記憶位置からのデータに対して処理を行うオプションデバイスを指定する第2のアドレスと、前記第1のアドレス記憶位置からのデータに対して前記第2のアドレスデバイスが行うべき処理を指定する第2の処理コードとを含む情報及びデータフィールドを備えたデータメッセージに対して処理を行うことを特徴とする請求項5に記載の装置。
  17. 前記第2のスイッチに接続された1つまたは複数の演算ユニット(126)を更に有し、前記第2のスイッチが、前記1つまたは複数の演算ユニットに対してデータパケットを転送可能であって、当該装置が演算エンジンをなすことを特徴とする請求項5に記載の装置。
  18. 複数の記憶部分を有し、かつ前記インターコネクト構造に接続され、前記インターコネクト構造を介して、位置としてアクセス可能な1つ又は複数の動的プロセッサ・イン・メモリー式ロジックモジュール(DPIM)記憶要素であって、前記DPIM記憶要素は、対をなす同期された先入れ先出し(FIFO)記憶リング(304)に接続された複数の記憶部分を有する、該DPIM記憶要素と、
    前記インターコネクト構造に接続され、前記インターコネクト構造の位置としてアクセス可能な複数の演算ユニット(126)とを更に有し、
    前記複数の演算ユニットが、前記インターコネクト構造を介して、前記1つ又は複数の記憶要素のデータにアクセスし、前記演算ユニットが、第1の演算ユニット及び第2の演算ユニットを含み、前記第1及び第2の演算ユニットが、前記記憶要素の異なる前記記憶部分から同時に読み取り、前記記憶要素の前記記憶部分のデータ内容を異なるターゲット位置に転送することを特徴とする請求項5に記載の装置。
  19. 前記インターコネクト構造に接続され、前記インターコネクト構造を介して、位置としてアクセス可能な1つ又は複数の動的プロセッサ・イン・メモリー式ロジックモジュール(DPIM)記憶要素(116)と、
    前記インターコネクト構造に接続され、前記インターコネクト構造の位置としてアクセス可能な複数の演算ユニット(126)とを更に有し、
    前記複数の演算ユニットが、前記インターコネクト構造を介して、前記1つ又は複数の記憶要素からデータをアクセス可能であって、前記演算ユニットが、第1の演算ユニット及び第2の演算ユニットを含み、前記第1の演算ユニットが、2つの前記記憶要素からのデータに対して同時に読み取り及び演算を行い、前記第2の演算ユニットが、前記第1の演算ユニットによる読み取り及び演算とオーバラップする時点で、2つの前記記憶要素からのデータに対して読み取り及び演算を行うことを特徴とする請求項5に記載の装置。
  20. 対をなす同期された先入れ先出し(FIFO)記憶リング(304)を介して、複数の位置を通信可能に相互接続する階層インターコネクト構造をなすように接続され、データを伝送し、データを取り扱い、かつノードに於けるデータの衝突を予測し、少なくとも部分的に前記階層により定められる優先順序に基づき前記データ衝突を解決する複数のロジックモジュール(114)と、
    前記インターコネクト構造に接続され、データに含まれる通信情報に基づき前記複数のロジックモジュールにデータを分配する第1のスイッチ(110)と、
    前記複数のロジックモジュールに接続され、前記複数のロジックモジュールからデータを受け取る第2のスイッチ(112)とを有することを特徴とする装置。
  21. 前記複数のロジックモジュールの1つが、データ通信リング(302)と、データ記憶リング(304)とを有し、前記データ通信リング及びデータ記憶リングが循環FIFOからなることを特徴とする請求項20に記載の装置。
  22. 前記複数のロジックモジュールの1つが、データ通信リング(302)と、データ記憶リング(304)とを有し、前記データ通信リング及びデータ記憶リングが循環FIFOからなり、データの一要素が単一のメモリーFIFOに保持され、前記データ要素がデータ記憶リング内を循環する間に、前記データが前記ロジックモジュールにより変形されることを特徴とする請求項20に記載の装置。
  23. 前記複数のロジックモジュールの1つが、データ通信リング(302)と、データ記憶リング(304)とを有し、前記データ通信リング及びデータ記憶リングが循環FIFOからなり、データの一要素が単一のメモリーFIFOに保持され、前記単一のメモリーFIFOは、プログラム命令及びデータの両者を保持可能であることを特徴とする請求項20に記載の装置。
  24. 前記複数のロジックモジュールの1つが、データ通信リングと、データ記憶リングとを有し、前記データ通信リングが、該データ通信リングに接続された前記第1のスイッチのボトムレベルのリングのミラーイメージであることを特徴とする請求項20に記載の装置。
  25. データ通信リングと、複数のデータ記憶リングとを更に有し、前記ロジックモジュールの1つまたは複数のものが、前記データ通信リング及びデータ記憶リングに関連付けられていることを特徴とする請求項20に記載の装置。
  26. データ通信リングと、複数のデータ記憶リングとを更に有し、前記ロジックモジュールの1つまたは複数のものが、前記データ通信リング及びデータ記憶リングに関連付けられており、前記ロジックモジュールの複数のものが同一のロジック要素タイプを有することを特徴とする請求項20に記載の装置。
  27. データ通信リングと、複数のデータ記憶リングとを更に有し、前記ロジックモジュールの1つまたは複数のものが、前記データ通信リング及びデータ記憶リングに関連付けられており、前記ロジックモジュールの複数のものが複数の異なるロジック要素タイプを有することを特徴とする請求項20に記載の装置。
  28. データ通信リングと、複数のデータ記憶リングとを更に有し、前記ロジックモジュールの1つまたは複数のものが、前記データ通信リング及びデータ記憶リングに関連付けられており、前記ロジックモジュールの複数のものが、ロード、記憶、読み取り及び書き込みを含むデータ転送処理と、AND、OR、NOR、NAND、排他的AND、排他的OR及びビットテストを含む論理演算と、加算、減算、乗算、除算及び超越関数を含む算術演算とから選択されたロジック機能を備えた複数の異なるロジック要素タイプを有することを特徴とする請求項20に記載の装置。
  29. 前記第1のスイッチに接続され、かつ前記複数のロジックモジュールに接続された複数のインターコネクトモジュールを更に有し、前記インターコネクトモジュールが、前記ロジックモジュールに於けるデータトラフィックを監視可能で、データを保持し、集中するためのバッファ及びコンセントレータを有し、データ衝突を回避するために前記第1のスイッチによるデータ注入のタイミングを制御可能であることを特徴とする請求項20に記載の装置。
  30. データ通信リング(302)と、複数のデータ記憶リング(304)とを更に有し、前記データ記憶リングが、複数のソースから同時にアクセス可能であって、複数の目的位置に同時に転送可能なデータを記憶することを特徴とする請求項20に記載の装置。
  31. 前記ロジックモジュールが、ダイナミック・プログラム・イン・メモリー式ロジックモジュールであることを特徴とする請求項20に記載の装置。
  32. マルチプル・アクセス・メモリー及び演算装置であって、
    対をなす同期された先入れ先出し(FIFO)記憶リング(304)に接続されたメモリーデバイスを含む複数のロジックデバイスと、
    データ及び処理コードを前記ロジックデバイスにルーティングするために前記ロジックデバイスに接続されたインターコネクト構造とを有し、前記インターコネクト構造が、更に、
    複数のノード(330)と、
    前記複数のノードに関連付けられた複数の動的プロセッサ・イン・メモリー式ロジックモジュール(DPIM)ロジック要素(114)と、
    送信ノードとして機能するノードから受信ノードとして機能するノードに向けてデータを転送するように、それぞれが、選択されたノードを互いに接続する複数のメッセージインターコネクトパスと、
    送信ノードから前記受信ノードに関連付けられたロジック要素に向けて制御信号を転送するように、それぞれが、選択されたノードを互いに接続する複数の制御信号インターコネクトパスとを有し、
    前記複数のノードが、
    互いに異なるノードA、B及びXと、
    ノードBのためのルーティングを決定するようにノードBに関連付けられたロジックLと、
    送信ノードとして機能するノードBから受信ノードとして機能するノードXに至るメッセージインターコネクトパスと、
    送信ノードとして機能するノードAから受信ノードとして機能するノードXに至るメッセージインターコネクトパスと、
    送信ノードとして機能するノードAからロジックLに至る制御信号インターコネクトパスとを有し、
    前記制御信号が、ノードAからノードXへのデータの転送を、ノードBからノードXへのデータの転送に対して優先的に行われるようにすることを特徴とする装置。
  33. マルチプル・アクセス・メモリー及び演算装置であって、
    対をなす同期された先入れ先出し(FIFO)記憶リング(304)に接続されたメモリーデバイスを含む複数のロジックデバイス(114)と、
    データ及び処理コードを前記ロジックデバイスにルーティングするために選択された形態に前記複数のロジックデバイスを相互接続するインターコネクト構造とを有し、前記インターコネクト構造が、更に、
    互いに異なるノードA、B及びXを含む複数のノード(330)と、
    前記複数のノードのノードを選択的に互いに接続する複数のインターコネクトパスとを有し、
    前記インターコネクトパスが、制御信号を制御信号送信ノードから制御信号利用ノードに関連付けられたロジックに制御信号を転送する制御信号インターコネクトパスと、送信ノードから受信ノードにデータを転送するデータインターコネクトパスとを有し、
    ノードBが、データをノードX及びYに転送するためのデータインターコネクトパスを含み、
    ノードAが、制御信号をノードBに関連付けられたロジックLに転送するための制御信号インターコネクトパスを有し、
    ノードBに到達するメッセージMについて、ノードAが制御信号CをロジックLに転送し、ロジックLが制御信号Cを利用して、メッセージMをノードX及びYのいずれに転送するべきかを決定するように、ロジックLが機能し得ることを特徴とする装置。
  34. ノードBに到達するメッセージM’が、ノードX、Y及びBのいずれとも異なるノードDに転送されるように、ロジックLが機能し得ることを特徴とする請求項33に記載のマルチプル・アクセス・メモリー及び演算装置。
  35. マルチプル・アクセス・メモリー及び演算装置であって、
    対をなす同期された先入れ先出し(FIFO)記憶リング(304)に接続されたメモリーデバイスを含む複数のロジックデバイス(114)と、
    データ及び処理コードを前記ロジックデバイスにルーティングするために選択された形 態に前記複数のロジックデバイスを相互接続するインターコネクト構造とを有し、前記インターコネクト構造が、更に、
    ノードA及びB並びにノードセットPを含み、ノードA及びBが、ノードセットP以外の互いに異なるノードからなり、ノードBがノードセットPの全てのノードに向けてデータを転送する複数のノード(330)と、
    前記複数のノードのノードを選択的に互いに接続する複数のインターコネクトパスとを有し、
    前記ノードが、受信ノード及び送信ノードを含む対をなすノードとして選択され、前記送信ノードは前記受信ノードにデータを転送するべく適合され、前記複数のインターコネクトパスが、データインターコネクトパス及び制御インターコネクトパスを含み、前記制御インターコネクトパスが、前記複数のノードのノードを、制御信号を制御信号利用ノードに関連付けられたロジックに転送するべき制御信号送信ノードとして互いに選択的に接続し、
    前記複数の制御インターコネクトパスが、ノードAからノードBに関連付けられたロジックLに至る制御インターコネクトパスを含み、ロジックLが、ノードAからの制御信号を利用して、ノードBが、ノードセットPのいずれのノードにデータを転送するべきかを決定することを特徴とする装置。
  36. マルチプル・アクセス・メモリー及び演算装置であって、
    対をなす同期された先入れ先出し(FIFO)記憶リング(304)に接続されたメモリーデバイスを含む複数のロジックデバイス(114)と、
    データ及び処理コードを前記ロジックデバイスにルーティングするために前記ロジックデバイスに接続されたインターコネクト構造とを有し、前記インターコネクト構造が、更に、
    ノードA及びB並びにノードセットPを含み、ノードA及びBが、ノードセットP以外の互いに異なるノードからなり、ノードBがノードセットPの全てのノードに向けてデータを転送する複数のノード(330)と、
    受信ノード及び送信ノードを含む対をなすノードとして選択され、前記送信ノードは前記受信ノードにデータを転送するべく適合された、前記複数のノード中のノードを互いに選択的に接続する複数のインターコネクトパスと、
    ノードAに関連付けられ、ノードAからのデータをどこにルーティングするべきかを決定可能なロジックLと、
    ノードBに関連付けられ、ノードBからのデータをどこにルーティングするべきかを決定可能なロジックLとを有し、
    ロジックLがロジックLとは異なり、ロジックLが、ロジックLにより決定される情報を利用して、ノードBがノードセットP中のどのノードにデータを転送するべきかを決定することを特徴とする装置。
  37. ノードBが、ノードセットPのノード出力にデータを転送可能であることを特徴とする請求項36に記載のマルチプル・アクセス・メモリー及び演算装置。
  38. マルチプル・アクセス・メモリー及び演算装置であって、
    対をなす同期された先入れ先出し(FIFO)記憶リング(304)に接続されたメモリーデバイスを含む複数のロジックデバイス(114)と、
    データ及び処理コードを前記ロジックデバイスにルーティングするために選択された形態に前記複数のロジックデバイスを相互接続するインターコネクト構造とを有し、前記インターコネクト構造が、更に、
    それぞれ、複数のデータ入力ポート、複数のデータ出力ポート及びノードを通過するデータの流れを制御するロジック要素を含み、互いに異なるノードA、B、X及びYを含む複数のノード(330)と、
    前記複数のノードのノードを互いに選択的に接続する複数のインターコネクトパスとを有し、
    前記インターコネクトパスが、制御信号を制御信号送信ノードから制御信号利用ノードに関連付けられたロジックに転送する制御信号インターコネクトパスと、データ送信ノードからデータ受信ノードにデータを転送するデータインターコネクトパスとを有し、前記データインターコネクトパスが、前記データ出力ポート及びデータ入力ポートを互いに選択的に接続し、前記制御インターコネクトパスが、制御信号送信ノードから、制御信号に依存するデータの流れを有するノードに関連付けられたロジック要素に制御信号を転送するように、ノードとロジック要素を互いに選択的に接続し、
    ノードBが、ノードAからの制御信号を利用して、ノードBを通過するメッセージMのルーティングを決定するロジックLに関連付けられており、ノードAから受信された制御信号Cにより、メッセージMがノードXに転送されるようにし、ノードAから受信された制御信号C’により、メッセージMがノードBからノードYに転送されるようにしたことを特徴とする装置。
  39. ノードAからの制御信号が、制御信号C及び制御信号C’のいずれであるかによって、ノードBを通過するメッセージM’のルーティングが変更されないことを特徴とする請求項38に記載のマルチプル・アクセス・メモリー及び演算装置。
  40. ノードBに送られる制御信号が、ノードAのデータ出力ポートから取り出されることを特徴とする請求項38に記載のマルチプル・アクセス・メモリー及び演算装置。
  41. マルチプル・アクセス・メモリー及び演算装置であって、
    対をなす同期された先入れ先出し(FIFO)記憶リング(304)に接続されたメモリーデバイスを含む複数のロジックデバイス(114)と、
    データ及び処理コードを前記ロジックデバイスにルーティングするために選択された形態に前記複数のロジックデバイスを相互接続するインターコネクト構造とを有し、前記インターコネクト構造が、更に、
    ノードX及びノードXにデータを転送する複数のノードを含むノードセットPを有する複数のノード(330)と、
    前記複数のノードのノードを互いに選択的に接続する複数のインターコネクトパスとを有し、
    前記インターコネクトパスが、送信ノードから受信ノードにデータを転送するデータインターコネクトパスを有し、ノードXにデータを転送することについて最も高い優先順序を有するノードが、ノードXにデータを転送するのをブロックされることのないように、ノードセットP中のノードが、ノードXにデータを転送することについての優先順序関係を与えられていることを特徴とする装置。
  42. ノードXにデータを転送することについて、ノードセットP中のノードAよりも低い優先順序を有するノードBからノードXに転送されたデータによって、ノードAがノードXにデータを転送するのをブロックされることのないようにしたことを特徴とする請求項41に記載のマルチプル・アクセス・メモリー及び演算装置。
  43. ノードXにデータを転送可能なノードセットP中のノード間の優先順序が、前記インターコネクト構造内に於ける、ノードセットP中の個々のノードの位置に依存することを特徴とする請求項41に記載のマルチプル・アクセス・メモリー及び演算装置。
  44. 演算システムで使用するための演算装置であって、
    第1及び第2の同期された先入れ先出し(FIFO)記憶リング(302、304)と、
    前記第1及び第2の同期された先入れ先出し(FIFO)記憶リングに接続された、前記第1及び第2の同期されたFIFO記憶リングのそれぞれの少なくとも1つのビットにアクセスする、1以上の動的プロセッサ・イン・メモリー式ロジックモジュール(DPIM)(114)とを有することを特徴とする演算装置。
  45. コンピュータシステムのクロックへの接続手段をさらに有し、
    前記第1及び第2の同期されたFIFO記憶リングは、バケツリレー方式で次の位置に進む複数のビットを有し、前記クロックの1サイクル時間は、前記FIFO記憶リングの ビットが1サイクルを完全に終了する時間によって規定されることを特徴とする請求項44に記載の演算装置。
  46. 前記第1及び第2の同期されたFIFO記憶リング(302、304)以外の、1以上の他の同期されたFIFO記憶リング(306)を更に有し、
    前記1以上のDPIM(114)が、前記第1及び第2の同期されたFIFO記憶リング(302、304)及び前記1以上の他の同期されたFIFO記憶リング(306)のデータに同時にアクセスすることを特徴とする請求項44に記載の演算装置。
  47. 1つのクロック時間に前記第1及び第2の同期されたFIFO記憶リング(302、304)のそれぞれの2ビットを読み出すように、前記1以上のDPIM(114)が位置付けられていることを特徴とする請求項44に記載の演算装置。
  48. 前記1以上のDPIM(114)は、データパケットを受信したとき、そのデータパケットを他のFIFO記憶リングに転送する処理、そのパケットに含まれるデータを利用する処理、及びそのデータパケットを前記装置の外部に即座に送信する処理のなかの1以上の処理を実行することを特徴とする請求項44に記載の演算装置。
  49. 前記1以上のDPIM(114)は、一度の複数のFIFO記憶リングの複数のビットにアクセスすることを特徴とする請求項44に記載の演算装置。
JP2002536883A 2000-10-19 2001-10-19 並列演算及び並列メモリーアクセスのためのスケーラブルなインターコネクト構造 Expired - Fee Related JP4128447B2 (ja)

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 JP2004531783A (ja) 2004-10-14
JP4128447B2 true JP4128447B2 (ja) 2008-07-30

Family

ID=24785344

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002536883A Expired - Fee Related JP4128447B2 (ja) 2000-10-19 2001-10-19 並列演算及び並列メモリーアクセスのためのスケーラブルなインターコネクト構造

Country Status (7)

Country Link
EP (1) EP1360595A2 (ja)
JP (1) JP4128447B2 (ja)
CN (1) CN100341014C (ja)
AU (1) AU2002229127A1 (ja)
CA (1) CA2426422C (ja)
MX (1) MXPA03003528A (ja)
WO (1) WO2002033565A2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
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 (zh) * 2010-04-20 2013-04-10 清华大学 基于分合思想的并行计算硬件结构
CN102542525B (zh) * 2010-12-13 2014-02-12 联想(北京)有限公司 一种信息处理设备以及信息处理方法
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 (fr) * 2018-06-29 2021-01-01 Vsora Acces memoire de processeurs
US10872038B1 (en) * 2019-09-30 2020-12-22 Facebook, Inc. Memory organization for matrix processing
CN117294412B (zh) * 2023-11-24 2024-02-13 合肥六角形半导体有限公司 基于单比特位移的多通道串转并自动对齐电路及方法

Family Cites Families (4)

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

Also Published As

Publication number Publication date
JP2004531783A (ja) 2004-10-14
MXPA03003528A (es) 2005-01-25
CA2426422A1 (en) 2002-04-25
AU2002229127A1 (en) 2002-04-29
CA2426422C (en) 2012-04-10
EP1360595A2 (en) 2003-11-12
CN1489732A (zh) 2004-04-14
CN100341014C (zh) 2007-10-03
WO2002033565A2 (en) 2002-04-25
WO2002033565A3 (en) 2003-08-21

Similar Documents

Publication Publication Date Title
KR900006791B1 (ko) 패킷 스위치식 다중포트 메모리 n×m 스위치 노드 및 처리 방법
JP3532574B2 (ja) トーラス相互結合網のための適応ルーティング機構
US5623698A (en) Memory interconnect network having separate routing networks for inputs and outputs using switches with FIFO queues and message steering bits
US5797035A (en) Networked multiprocessor system with global distributed memory and block transfer engine
Tamir et al. Dynamically-allocated multi-queue buffers for VLSI communication switches
US4621359A (en) Load balancing for packet switching nodes
US4920484A (en) Multiprocessor/memory interconnection network wherein messages sent through the network to the same memory are combined
US5175733A (en) Adaptive message routing for multi-dimensional networks
Duato et al. Performance evaluation of adaptive routing algorithms for k-ary n-cubes
JP4128447B2 (ja) 並列演算及び並列メモリーアクセスのためのスケーラブルなインターコネクト構造
US20050036445A1 (en) Processing data packets
US9930117B2 (en) Matrix vector multiply techniques
JP2023531137A (ja) オン・チップ・ルーター
JP3704367B2 (ja) スイッチ回路
US20050038902A1 (en) Storing data packets
Sharif et al. Design and simulations of a serial-link interconnection network for a massively parallel computer system
Prakash et al. VLSI implementation of a wormhole router using virtual channels
Gaizauskas et al. Formation of multiple filaments in transparent solids
Yoo et al. Multistage ring network: a new multiple ring network for large scale multiprocessors
Moret Computational Sciences Workshop Los Alamos National Laboratories and The University of New Mexico Summer 1995
Bhatt et al. The Fluent abstract machine
Sayankar et al. A Dynamic NOC Arbitration Technique using Combination of VCT and XY Routing
Lee Design of a Parallel Computer Network Interface Controller
Wang et al. An Effective Approach for Multicast on Multi-core Architecture

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