JP4818920B2 - 複数のプログラム可能なプロセッサを有する集積データ処理回路 - Google Patents

複数のプログラム可能なプロセッサを有する集積データ処理回路 Download PDF

Info

Publication number
JP4818920B2
JP4818920B2 JP2006525933A JP2006525933A JP4818920B2 JP 4818920 B2 JP4818920 B2 JP 4818920B2 JP 2006525933 A JP2006525933 A JP 2006525933A JP 2006525933 A JP2006525933 A JP 2006525933A JP 4818920 B2 JP4818920 B2 JP 4818920B2
Authority
JP
Japan
Prior art keywords
router
circuit
processor
processors
address
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
JP2006525933A
Other languages
English (en)
Other versions
JP2007505383A (ja
Inventor
メンノ、エム.リンドウェル
エドウィン、イェー.ファン、ダレン
Original Assignee
シリコン ハイブ ビー・ヴィー
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 シリコン ハイブ ビー・ヴィー filed Critical シリコン ハイブ ビー・ヴィー
Publication of JP2007505383A publication Critical patent/JP2007505383A/ja
Application granted granted Critical
Publication of JP4818920B2 publication Critical patent/JP4818920B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
    • G06F15/8023Two dimensional arrays, e.g. mesh, torus
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements

Landscapes

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

Description

本発明は、二次元マトリックス状に配置された複数のプログラム可能なプロセッサを有する集積データ処理回路に関する。
並列プロセッサのアレイは、技術として既知である。潜在的に、そのようなアレイは、タスクの処理を高速に並列で実行することを容易にする。実際には、そのようなアレイのスピードは、複数のプロセッサ間の通信の必要性に依存することが、知られている。様々な通信アーキテクチャが提案されている。
独国特許出願公開第3812823号明細書(DE 3812823)は、トランスピュータ(transputer)のネットワークを開示する。(初めはInmosにより作成された)トランスピュータは、プロセッサと、一般的に4つの通信チャネルとを含んでおり、この通信チャネルを介して、プロセッサは、アレイ内で隣接する4つのプロセッサと結合されることができる。複数のプロセッサ間の通信は、チャネルを介して流れる。アレイ内で直接は隣接しない2つのプロセッサの間でメッセージを通信しなければならない場合には、メッセージは、仲介するコンピュータを介して、伝わる。チャネルは、ブロードキャストメッセージ(すべてのトランスピュータを意図している)も、サポートしている。トランスピュータは、まず受信した場合、ブロードキャストメッセージを隣接するすべてのトランスピュータに、伝えることができる。
実際には、互いに離れたトランスピュータ間の通信における仲介するトランスピュータの利用は、負荷が大きすぎることが、証明されている。このため、独国特許出願公開第3812823号明細書では、メッセージ送信を処理するために、トランスピュータに加えて、通信プロセッサを利用することを開示している。
他の例では、富士通AP1000並列コンピュータは、マトリックス内に組織された複数のセルの一部である複数のプロセッサを開示している(別のセルが、別のプリント回路基板上に含まれている)。セル間の通信のためのいわゆるTネットと、ホストからセルへのブロードキャスト通信のためのBネットとを含む、複数の通信ネットワークを、この並列コンピュータは使用している。プロセッサの隣の各セルは、ルーティングコントローラを含んでおり、Tネットは、セルの各ルーティングコントローラを、4つの隣接するセルのルーティングコントローラと、連結する。ルーティングコントローラは、プロセッサ間のメッセージのルーティングが可能である。Bネットは多数のバスを備えており、それぞれが、プロセッサのグループと、バスと通信するためのリング通信構造とに、結合されている。ホストコンピュータは、リング構造に結合されている。
潜在的に高い処理スピードが与えられると、多くの異なる分野について、特定用途向け集積回路(Application Specific Integrated Circuits)でプロセッサアレイを用いることが魅力的となる。このような異なる分野をサポートするためには、任意のサイズのプロセッサアレイの回路記述を自動的に生成するために、設計ライブラリーを提供することが望ましい。しかしながら、通信構造の設計は、設計ボトルネックを引き起こす。既知の通信構造は、拡大縮小が容易ではない。すなわち、それらは最適であるにしても、特定範囲のサイズを有するアレイについてのみである。通信待ち時間は、アレイがスケールアップすると、増大する。これは、最適な結果のためには、通信構造がアレイのサイズに応じて再設計されなければならないことを、意味している。これは、ライブラリが非効率的なプロセッサアレイを生成するか、若しくは、設計し難くさせる。
数ある中でも、拡大縮小可能な通信構成を有する効率的なプロセッサアレイを提供することが、本発明の1つの目的である。
数ある中でも、効率的なプロセッサアレイとその通信構造の回路設計の生成を自動化する設計生成器を提供することが、本発明の1つの目的である。
本発明は、請求項1に係る集積データ処理回路に適用される。本発明によれば、少なくとも2つの通信構造が、集積回路上のアレイ内のプロセッサ間の通信のために、用いられる。オペランドベースで最も近接する隣接の通信がプロセッサ間で用いられるため、アドレスを転送する必要もなく、極めて効率的に、プロセッサは隣にオペランドを転送することができる。さらに、ツリー構造の通信ネットワークが用いられており、ルートルーター回路から、指定されたプロセッサに、アドレスを有するメッセージを転送するルーター回路が設けられている。各ルーター回路は、ツリーの中でプロセッサへのパスの一部を選択する。このため、十分なサイズのアレイにおいては、ツリーの中でルーター回路の少なくとも2段のレベルがあり、各レベルのルーターは、例えばメッセージのアドレスから異なる部分を取得して、ツリーの次のレベルのどのルーター回路にメッセージをルーティングするかを決定する。このため、マトリックスは、ツリー構造におけるルーター回路のレベル数を変えることにより、容易に大きさ調整をすることができる。好ましくは、ツリーのすべてのレベルのすべてのルーター回路は、ツリーの次のレベルのルーター又はプロセッサへ、予め定められた同じ数の出力数を有している。これはさらに、自動設計を簡単にする。
1つの実施形態では、ツリーは4段である。典型的な4段ツリーでは、プロセッサのマトリックスは、ロー及びカラムの四角形状のマトリックスであり、ローの数とカラムの数はともに、同じ2のべき乗である。ツリーの最も下位レベルでは、マトリックスは、それぞれが2ロー及びカラムまで拡大された四角形のアレイに、区分されており、最も下位レベルのルーター回路は、それぞれ、各四角形で4つのプロセッサへの接続を有している。次の上位レベルでは、四角形のアレイは2×2の上位レベルの四角領域に、区分され、次の上位レベルにあるルーター回路は、それぞれ、四角領域における4つのルーター回路などへの接続を有している。
さらなる実施形態においては、ツリー構造が、アレイからのメッセージをプロセッサ間で送信するためにも、用いられる。この場合、メッセージは最初に、プロセッサからツリーのルートルーター回路に向けて、送信元のプロセッサと目的のプロセッサの双方をカバーするルーターに到達するまで、進んで行き、そして、目的のプロセッサへ向けて折り返す。さらなる実施形態においては、アービタ回路は、好ましくは、各ルーター回路について設けられており、ルーター回路からのメッセージがプロセッサからのメッセージと衝突する場合、及び/又は、複数のプロセッサからのメッセージが衝突する場合を、処理する。
図1は、ホストコンピュータ10と、プロセッサ12のアレイ(明瞭化のために参照番号を1つだけ付している)と、ルーター回路16、18、19とを有する回路を示している。複数のプロセッサは、最も近くに隣接するコネクション14(明瞭化のために参照番号を1つだけ付している)を介して、接続されている。ホストコンピュータ10は、ツリー構造のルーター回路16、18、19を介して、プロセッサ12に接続されている。
図2は、ツリー構造の構成図を示している(最も近くに隣接するコネクション14はこの図から省かれている)。ツリー構造は、ルーター回路16、18、19のいくつかのレイヤーを備えている。ホストコンピュータ10は、ルートルーター回路19に接続されており、同様に、ルートルーター回路19は4つの次の下位レベルのルーター回路18に接続されており、同様に、ルーター回路18は4つの次の次のレベルのルーター回路16(明瞭化のために参照番号を1つだけ付している)にそれぞれ接続されており、同様に、ルーター回路16は4つのプロセッサ12にそれぞれ接続されており、プロセッサ12はツリー構造の最下位レベルでリーフを形成している。
図3は、プロセッサ12の一実施形態を示している。プロセッサは処理回路20(これは数値演算ユニット、命令メモリ、プログラムカウンタなどのような機能ユニットを含んでいてもよい)と、レジスタファイル22と、メモリ24と、出力ユニット26と、複数の入力ユニット28a−dとを含んでいる。処理回路20は、レジスタファイル22に結合されたオペランド読み込み入力と結果出力とを、有している。入力ユニット28a−dは、隣接するプロセッサ(図示せず)からオペランドを受信する働きをするとともに、レジスタファイル22に結合されており、このため、処理回路20は入力ユニット28a−dからオペランドを読み込むことができる。処理回路20の結果出力は、出力選択出力21とともに、出力ユニット26に結合されている。出力ユニット26の出力は、それぞれの隣接するプロセッサ(図示せず)に、オペランドを出力する働きをする。メモリ24は、処理回路20に結合されており、このため、処理回路20は、メモリ24からデータを読み出し、メモリ24にデータを書き込むために、メモリ24をアドレス指定することができる。メモリ24は、ルーター回路の1つ(図示せず)と結合する入力と出力25を有している。
動作については、プロセッサ12は命令のプログラムを実行する。利用可能な命令セットは、入力ユニット28a−dから、選択された隣接するプロセッサ12からのオペランドを受け取る命令を含んでいる。この命令セットは、出力ユニット26を介して、選択された隣接するプロセッサ12に結果のオペランドを出力する命令も、含んでいる。命令LOAD A,Bのような例では、Aは、伝達されるオペランドのレジスタアドレスであり、Bは、レジスタAからのオペランドが伝達される隣接プロセッサを識別するための仮想レジスタアドレスである。このようなLOAD命令は、従来のフェッチ、デコード、実行、書き込みの命令サイクルで、実行することができる。この種の通信は完全に局所的であり、1つの隣接するプロセッサ12への書き込みは、他のプロセッサ12に影響を及ぼさないことは、明らかである。
ルーター回路16、18、19は、ホストコンピュータ10からプロセッサ12にメッセージを通信するために使用される。典型的なメッセージは、メッセージの意図しているプロセッサ12のアドレスAを含んでおり、メッセージペイロードデータを従えている。好ましくは、アドレスは、プロセッサ12の1つを個別に識別するのに必要な程度のビット数を含んでいる。64個のプロセッサ12のアレイである場合には、好ましくは、アドレスは6ビットを含んでいる。
図4は、ルーター回路の一例を示している。ルーター回路は、アドレスの最初の2ビットを格納するために、デマルチプレクサ回路40と2ビットレジスタ42とを含んでいる。2ビットレジスタ42は、デマルチプレクサ回路40をコントロールし、2ビットにより選択された出力の1つに、受信したメッセージをルーティングする。
動作については、ホストコンピュータ10が、ルートルーター回路19にメッセージを送信する。ルートルーター回路19は、メッセージのアドレスAから最初の2ビットを抜き出し、これら2つのビットを用いて、ルートルーター回路19が、好ましくはアドレスAの最初の2ビット抜きで、メッセージを選択的に送信する次のレベルのルーター回路18の選択を制御する。
選択された次のレベルのルーター回路18は、メッセージを受信し、メッセージの元のアドレスAの第3及び第4ビットを抜き出す(ルートルーター回路19がアドレスAの元の最初の2ビットを削除した場合には、アドレスの最初の2つの受信ビットである)。選択された次のレベルのルーター回路18は、これら2ビットを用いて、次のレベルのルーター回路18が、好ましくはアドレスAの最初の2ビット抜きで(これらは元は第3及び第4ビットである)、メッセージを選択的に送信する次の次のレベルのルーター回路16の選択を制御する。
同様に、選択されたより下位レベルのルーター回路16は、元のアドレスから第5及び第6ビットを抜き出し、これらのビットを用いて、プロセッサ12の1つを選択することを制御し、選択されたプロセッサにメッセージを送信する。メッセージは、メモリ24(例えば、標準的なバッファエリア、又は、メッセージ内のさらなるアドレスによりアドレス指定された位置)にデータを書き込むために、用いられる。
ルーター回路16、18、19のそれぞれでアドレスAの頭の2ビットを使用し、残りのビットを送信することは、情報をバッファするのに必要な最小限の同型のルーター回路16、18、19を用いることができるようにした、有利な実施形態に過ぎないと、認識されるべきである。本発明から逸脱することなく、ルーター回路16、18、19は、ルーティングを制御するアドレスのビットの他の部分を用いるようにしてもよい。好ましくは、特定のレベルにあるすべてのルーター回路16、18、19は、アドレスから同じビットを用いるが、これも必ずしも必須ではなく、ホストコンピュータ10が適切なアドレスを供給する限り、どのプロセッサ12にも到達できる。使用したビットを取り除く代わりに、すべてのビットを送信してもよく、この場合、異なるレベルにあるルーターは、アドレスの異なるビットを使用するようにプログラムされてもよく、或いは、ルーターはビットを再配置してもよい(例えば、ビットをシフトし、シフトしてメッセージの一端から溢れ出たビットを他端にシフトして戻す)。
さらなる実施形態においては、マルチキャストをサポートしており、メッセージはマスクビットMを備えており、各マスクビットは、各アドレスビットについて設けられていてもよいし、アドレスビットのペアについて設けられていてもよいし、アドレスビットの大きなグループについて設けられていてもよい。マスクビットがセットされている場合、ルーター回路16、18、19は、対応するアドレスビットを「ドントケア」として扱い、次の下位のルーター回路又はアドレスビットの種々の値により指定されたプロセッサ12に、メッセージを送信する。このため、例えば、3マスクビットを設けることにより、各レベルのルーター回路16、18、19は、選択したプロセッサの下位レベルのルーター回路、又は、すべてに、ブロードキャストするように設定することができる。例えば、マスクビット011では、ルートルーター回路19は、メッセージを選択したルーター回路に送信し、すべての下位レベルのルーター回路のビットは、すべての下位レベルの回路にメッセージを送信し、16個のプロセッサが指定される。
図1及び図2に示された系統的アーキテクチャは、単に例示であると、認識されるべきである。すべてのプロセッサ12が同じレベルに属する必要はなく、いずれかのルーティング回路の代わりに、プロセッサがツリー構造に属していてもよい。これは例えば、プロセッサの数が2のべき乗でない場合に、行われてもよい。原則としては、プロセッサは、1つより多いルーター回路に接続されることができる(プロセッサは多重入力を有している)。このため、プロセッサは、1つより多いアドレスを有していてもよい。1対4のルーター回路の代わりに、他の分岐割合を用いることもできる(好ましくは、1対4又は1対8のような2のべき乗)。
プロセッサの2×2のブロックをルーター回路に接続する代わりに、形又はサイズの異なる他の領域を用いてもよい。
さらなる実施形態においては、プロセッサ12は、ルーター回路までさらなるメッセージを送信するように構成されている。プロセッサ12からのメッセージは、他のプロセッサ12及び/又はホストコンピュータ10を選択することのできるアドレスを、含んでいる。基本的には、この実施形態のルーター回路は、2つの部分を備えており、1つがメッセージの下り送信(プロセッサ12向け)であり、1つが上り送信(プロセッサ12から離れる)である。さらに、上り部分から下り部分へのさらなるメッセージを送信するための、交点接続が設けられている。下り部分は、大部分が、先に述べたのと同様である。ルーター回路の上り部分は、下位レベルのルーター回路又はプロセッサにメッセージを配信するデマルチプレクサ40の代わりに、下位レベルのルーター回路又はプロセッサ12の選択された1つからのさらなるメッセージを転送するためにマルチプレクサを用いることを除いて、下り部分と同様である。交点接続は、上り方向に転送されたさらなるメッセージが、ルーター回路により「送達(served)」されるプロセッサを指定しているかどうかをチェックするように構成されている(つまり、これは下り方向にメッセージを転送することにより到達できる)。もしそうであれば、さらなるメッセージは、下り部分に送り込まれ、さきに述べたように送信される。さらなるメッセージについては、下り方向のメッセージと同じタイプのアドレスを、用いてもよい。しかしながら、1つの実施形態では、プロセッサに相対的なアドレスが用いられる。例えば、送信元のアドレスがビット(a0、a1、a2…)を含んでおり、宛先のアドレスがビット(b0、b1、b2…)を含んでいる場合、さらなるメッセージの相対アドレスCは、(a0+b0、a1+b1、c2+c2…)である。ここでは、「+」は排他的論理和(exclusive OR)を示している。この場合、ルーター回路において、相対アドレスC内で上位レベルルーター回路により用いられるすべてのアドレスビットがゼロであるかを確認することにより、メッセージを上り方向から下り方向の送信にクロスオーバーすべきかどうかを、検出することができる。ルーター回路がさらなるメッセージを上り方向に転送する場合、ルーター回路又はプロセッサ12のどれから、さらなるメッセージを受信したかの選択に対応するアドレスビットを、変更する。
例えば、アドレス010111のプロセッサ12がアドレス011001のプロセッサに、さらなるメッセージを送信する場合、相対アドレスCは001110である。アドレスCを受信すると、下位レベルのルーター回路16は、Cの最初の4ビットがゼロでないことを決定し、このため、最後の2ビットを修正した後に、次の上位レベルのルーター回路18に、さらなるメッセージを送信し、これにより、アドレスはC’=001101となる。次の上位レベルのルーター回路18は、Cの最初の2ビットがゼロであることを決定し、このため、ビットC”=001001に中央部分のペアを修正した後に、下り送信に送信する。このアドレスの最後の4ビットは、これからは、下り方向のルーティングを制御するために、用いられる。このようにした場合、ルーターは、それが送達されるマトリックスの部分ではなく、それが用いられるレベルだけに適合されている必要がある。
好ましくは、調停機構が、メッセージが衝突しないようにするために、用いられる。原則として、これは、メッセージの衝突が起きないようにプロセッサとホストプロセッサのプログラムを配置した場合には、必要でない。この場合、メッセージが検出されるとすぐ、メッセージを転送してよい(例えば、異なる送信元からのメッセージ信号の論理ORを送信することにより、及び、メッセージがなければ、メッセージ信号を論理ゼロにすることにより)。
しかしながら、好ましくは、少なくとも、ホストコンピュータ10からのメッセージとプロセッサ12からのメッセージの間の衝突は、検出され、例えばホストコンピュータ10からのメッセージに所定の優先度を与えることにより、調停される。これは、プロセッサで実行しているプログラムとは独立しているホストコンピュータ10から、メッセージを送信することを可能にする。さらなる実施形態においては、プロセッサ12からのメッセージ同士の衝突も、調停される。これは、いかなる組み合わせのプログラムを実行することも、可能にする。調停回路は、上り及び下りのパス及び交点結合に平行に、設けられている。例えば規約上のリクエスト及びアクノーレッジハンドシェークのような、任意の調停機構を用いてもよい。本実施形態では、プロセッサ12及びホストコンピュータ10は、メッセージを送信すべき場合、リクエスト信号をアサートし、アービタは、(a)どのリクエストに回答するかを選択し、(b)メッセージの宛先に向けてリクエストを送信し、(c)宛先からのリクエストのアクノーレッジを受信し、(d)送信元にアクノーレッジを送信する。勿論、デイジーチェーン調停又はI2Cバスなどに用いられるような、他の既知の種類の調停構造が用いられてもよい。
図5及び図6は、リクエストとアクノーレッジハンドシェークを用いるルーター回路の1つの実施形態の一部を示している。基本的に、図5は、ルーター回路のメッセージ部を示しており、図6は、ハンドシェーク部を示している。2つの部分は同様の構成を備えており、1つが上流から下流に、もう1つが下流から上流である2つの並列パスを有しているとともに、2つのパス間のクロスオーバーを有している。
図5は、図4に示した構成要素であるデマルチプレクサ40と2ビットレジスタ42とを含んでいる。2ビットレジスタ42からの選択信号は、Aで示されている。さらに、図5は、「下流から」、つまり下位レベルのルーター回路又はプロセッサからのメッセージを多重化する第1マルチプレクサ50を示している。アドレス検出器52は、下流からのメッセージのアドレスが、ルーター回路により送達される領域内のプロセッサを指定しているかどうかを検出し、もしそうであれば、メッセージをクロスオーバーさせる信号Cを生成する。第2デマルチプレクサ54は、信号Dの制御に基づいて、下流からのメッセージを、第2マルチプレクサ54又は上位レベルのルーター回路に送信する。第2マルチプレクサ56は、「上流から」、つまり上位レベルのルーター回路又は中央プロセッサから受信したメッセージを、デマルチプレクサ40と2ビットレジスタ42とに、多重化送信する。
図6は、ルーター回路のハンドシェーク部を示している。この部分は、「下流」プロセッサ及びルーター回路へのハンドシェークインターフェースを有する第1ハンドシェークマルチプレクサ回路60を、含んでいる。ハンドシェークマルチプレクサ回路60は、必要であれば未決のリクエストの間の調停を行い、勝ったリクエストにアクノーレッジをし、勝ったリクエストの信号線B上に、リクエスト及び信号のフォローを生成する。信号線Bは、図5の第1マルチプレクサ50で転送されたメッセージからの入力を、制御する。リクエストデマルチプレクサ64は、図5のクロスオーバー選択信号Cにより制御され、「上流」のルーター回路へのリクエスト又は第2ハンドシェークマルチプレクサ回路66へのクロスオーバーのリクエストのフォローを、送信する(リクエストのフォローは、信号Cを生成するために解析されたメッセージの指定を認めるために、遅延をともなって生成されてもよいと、理解されるべきである)。
第2ハンドシェークマルチプレクサ回路66は、必要であれば、未決のクロスオーバーリクエストと上流からのリクエストとの間を調停し、勝ったリクエストにアクノーレッジをし、勝ったリクエストの信号線D上に、リクエスト及び信号のさらなるフォローを生成する。信号Dは、第2マルチプレクサ56を制御する。リクエストのさらなるフォローは、第2ハンドシェークデマルチプレクサ68に送信され、第2ハンドシェークデマルチプレクサ68は、2ビットレジスタ42からの信号Aにより選択された、選択ルーター回路の「上流から」のハンドシェークのためのハンドシェーク入力に、リクエストのさらなるフォローを送信する(そのうえ、リクエストのさらなるフォローは、メッセージから信号Cの生成をための余裕をみて、遅延をともなって生成されてもよい)。マルチプレクサ64及びデマルチプレクサ60、68は、選択されたハンドシェークコネクションを介して、互いに反対方向に、リクエスト及びアクノーレッジ信号を送信する。これらハンドシェーク回路60、66、68自体は既知である。
本発明は、集積回路レイアウトの自動生成で容易に調整することのできる極めて標準的な構成に適用されることに、既に気づくであろう。設計段階において、プロセッサのマトリックスのサイズは、応用分野に応じて選択される。複数のプロセッサが配置され、隣接するプロセッサが接続される。ツリー構造のレベル数は、プロセッサ数に応じて選択される(マトリックスの幅と長さの最大値に任意的に依存する)。複数のルーター回路が各レベルに追加され、上位及び下位レベルのルーター回路、又は、プロセッサ12若しくはホストコンピュータ10に接続される。ルーター回路がアドレスビットを取り除き又は再構成して、関連するビットがメッセージ内の同じ位置に常にある場合、ルーター回路はそれが用いられるレベルに応じて順応する必要すらない。
本発明に係るこれら及び他の目的並びに利点は、以下の図面の描写により図示されるであろう。
図1は、プロセッサのアレイを示している。 図2は、ツリー構造を示している。 図3は、プロセッサを示している。 図4は、ルーター回路を示している。 図5は、さらなるルーター回路のメッセージ部分を示している。 図6は、さらなるルーター回路のハンドシェーク部分を示している。

Claims (11)

  1. 二次元マトリックスに配置された複数のプログラム可能なプロセッサであって、各プロセッサはマトリックス内で隣接するプロセッサへのプライベートなオペランド転送接続を有する、プロセッサと、
    ツリー構造で互いにプロセッサに階層的に結合されたルーター回路を備える通信構造であって、前記プロセッサはツリー構造のリーフノードを形成しており、ルーター回路は、ツリー構造の中のパスを選択的に経由して、ルートルーター回路から、指定されたプロセッサに、アドレスを用いて、メッセージをルーティングするように構成されており、ルーター回路はそれぞれアドレスの制御に基づいてパスの一部を選択する、通信構造と、
    とを備えることを特徴とする集積データ処理回路。
  2. プロセッサはそれぞれ、プライベートなオペランド転送接続の選択した1つを介して、コマンドのオペランドを転送するコマンドをサポートする、ことを特徴とする請求項1に記載の集積データ処理回路。
  3. 前記アドレスは複数のビットを含んでおり、各ルーター回路はビットの一部を選択するように構成されており、前記ルーター回路は、前記一部のビットに基づいて、ツリー構造における直ぐ後継のルーター回路及び/又はプロセッサにルーティングする制御をするだけであり、ルートルーター回路から各プロセッサへの各パスに沿って連なる複数のルーター回路は、それぞれ、異なる部分を選択する、ことを特徴とする請求項1に記載のデータ処理回路。
  4. 個々のルーター回路のそれぞれがマトリックス内の1つの領域に関連づけられており、ツリー構造の中で直接的又は間接的にルーター回路に結合されたプロセッサのいくつかを前記領域は含んでおり、階層的に上位のルーター回路に関連づけられた階層的に上位の領域は、階層的に上位のルーター回路に直接接続される階層的に下位のルーター回路の空間的に分離された複数の後継の領域に区分される、ことを特徴とする請求項1に記載のデータ処理回路。
  5. 前記ツリー構造は4段ツリーを形成し、各ルーター回路は、階層的に下位の4つのルーター回路及び/又はプロセッサに結合されており、上位の領域を、階層的に下位の4つのルーター回路及び/又はプロセッサのそれぞれ1つに関連づけられた4つの四分円状に区分する、ことを特徴とする請求項4に記載のデータ処理回路。
  6. 前記アドレスは複数のビットを含んでおり、各ルーター回路は一部の2ビットを選択するように構成されており、前記ルーター回路は、前記一部のビットに基づいて、ツリー構造の中で直ぐ後継のルーター回路及び/又はプロセッサにルーティングする制御をするだけであり、ルートルーター回路から各プロセッサへの各パスに沿って連なるルーター回路は、それぞれ、異なる部分を選択する、ことを特徴とする請求項5に記載のデータ処理回路。
  7. 前記ルーター回路は、さらに、
    前記プロセッサのうちの特定の第1のプロセッサへのさらなるアドレスを有している、前記プロセッサのうちの特定の第2のプロセッサからの、さらなるメッセージを、
    前記ルートルーター回路に向かう第1方向のツリー構造の中の第1のサブパスを介して、
    指定された前記第1のプロセッサに送達するルーター回路に、前記さらなるメッセージが到達するまで、ルーティングし、
    続いて、ツリー構造の中で前記プロセッサの第1のプロセッサに向かう第2のサブパスを介して送信すべく、クロスオーバーするように、構成されており、
    前記ルーター回路は、前記さらなるアドレスの制御に基づいて、前記第1及び第2のサブパスを選択する、
    ことを特徴とする請求項1に記載のデータ処理回路。
  8. 複数のアービタ回路を備えており、それそれがルーター回路の1つに関連づけられており、前記ルートルーター回路からのメッセージとクロスオーバーした前記さらなるメッセージとの間における衝突を調停するように、構成されている、ことを特徴とする請求項7に記載のデータ処理回路。
  9. 前記アービタ回路は、異なるプロセッサからの前記さらなるメッセージ同士の衝突を、調停するように構成されている、ことを特徴とする請求項8に記載のデータ処理回路。
  10. 処理で使用するためのパラメータを、前記プロセッサの選択された1つに、メッセージ内で送信するように構成された、共通コントロールユニットを、備えることを特徴とする請求項1に記載のデータ処理回路。
  11. 集積回路の製造方法であって、
    プロセッサの2次元マトリックスの大きさを選択し、
    設計コンピュータで、前記マトリックス内に、プロセッサをレイアウトする命令を生成し、
    前記設計コンピュータで、前記マトリックス内で隣接するプロセッサのペアの間に、プライベートなオペランド転送接続をレイアウトする命令を生成し、
    ツリー構造で互いにプロセッサに階層的に結合されたルーター回路をレイアウトし、前記プロセッサはツリー構造のリーフノードを形成しており、ルーター回路は、ツリー構造の中のパスを選択的に経由して、ルートルーター回路から、指定されたプロセッサに、アドレスを用いて、メッセージをルーティングするように構成されており、ルーター回路はそれぞれアドレスの制御に基づいてパスの一部を選択し、前記設計コンピュータは、ツリー構造におけるルーター回路のレベル数を選択し、
    生成されたレイアウトに基づいて、集積回路を製造する、
    ことを特徴とする方法。
JP2006525933A 2003-09-09 2004-08-20 複数のプログラム可能なプロセッサを有する集積データ処理回路 Expired - Fee Related JP4818920B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP03103322.8 2003-09-09
EP03103322 2003-09-09
PCT/IB2004/051510 WO2005024644A2 (en) 2003-09-09 2004-08-20 Integrated data processing circuit with a plurality of programmable processors

Publications (2)

Publication Number Publication Date
JP2007505383A JP2007505383A (ja) 2007-03-08
JP4818920B2 true JP4818920B2 (ja) 2011-11-16

Family

ID=34259263

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006525933A Expired - Fee Related JP4818920B2 (ja) 2003-09-09 2004-08-20 複数のプログラム可能なプロセッサを有する集積データ処理回路

Country Status (8)

Country Link
US (1) US20070165547A1 (ja)
EP (1) EP1665065B1 (ja)
JP (1) JP4818920B2 (ja)
KR (1) KR101200598B1 (ja)
CN (1) CN1849598A (ja)
AT (1) ATE374973T1 (ja)
DE (1) DE602004009324T2 (ja)
WO (1) WO2005024644A2 (ja)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070124565A1 (en) * 2003-06-18 2007-05-31 Ambric, Inc. Reconfigurable processing array having hierarchical communication network
JP4755033B2 (ja) * 2006-07-05 2011-08-24 ルネサスエレクトロニクス株式会社 半導体集積回路
US20080052429A1 (en) * 2006-08-28 2008-02-28 Tableau, Llc Off-board computational resources
US20080052525A1 (en) * 2006-08-28 2008-02-28 Tableau, Llc Password recovery
US20080052490A1 (en) * 2006-08-28 2008-02-28 Tableau, Llc Computational resource array
US20080126472A1 (en) * 2006-08-28 2008-05-29 Tableau, Llc Computer communication
US7962717B2 (en) * 2007-03-14 2011-06-14 Xmos Limited Message routing scheme
WO2008154775A1 (en) * 2007-06-20 2008-12-24 Agate Logic, Inc. A programmable interconnect network for logic array
JP4676463B2 (ja) * 2007-07-13 2011-04-27 株式会社日立製作所 並列計算機システム
US7826455B2 (en) * 2007-11-02 2010-11-02 Cisco Technology, Inc. Providing single point-of-presence across multiple processors
CN101320364A (zh) * 2008-06-27 2008-12-10 北京大学深圳研究生院 一种阵列处理器结构
US8307116B2 (en) * 2009-06-19 2012-11-06 Board Of Regents Of The University Of Texas System Scalable bus-based on-chip interconnection networks
US10698859B2 (en) * 2009-09-18 2020-06-30 The Board Of Regents Of The University Of Texas System Data multicasting with router replication and target instruction identification in a distributed multi-core processing architecture
KR101594853B1 (ko) * 2009-11-27 2016-02-17 삼성전자주식회사 컴퓨터 칩, 및 상기 컴퓨터 칩에서의 정보 라우팅 방법
CN102063408B (zh) * 2010-12-13 2012-05-30 北京时代民芯科技有限公司 一种多核处理器片内数据总线
JP5171971B2 (ja) * 2011-01-17 2013-03-27 ルネサスエレクトロニクス株式会社 半導体集積回路
WO2013106210A1 (en) 2012-01-10 2013-07-18 Intel Corporation Electronic apparatus having parallel memory banks
EP2923279B1 (en) * 2012-11-21 2016-11-02 Coherent Logix Incorporated Processing system with interspersed processors; dma-fifo
US10452399B2 (en) 2015-09-19 2019-10-22 Microsoft Technology Licensing, Llc Broadcast channel architectures for block-based processors
US11062203B2 (en) * 2016-12-30 2021-07-13 Intel Corporation Neuromorphic computer with reconfigurable memory mapping for various neural network topologies
US10713558B2 (en) * 2016-12-30 2020-07-14 Intel Corporation Neural network with reconfigurable sparse connectivity and online learning
US10963379B2 (en) 2018-01-30 2021-03-30 Microsoft Technology Licensing, Llc Coupling wide memory interface to wide write back paths
CN111866069A (zh) * 2020-06-04 2020-10-30 西安万像电子科技有限公司 数据处理方法及装置

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4251861A (en) * 1978-10-27 1981-02-17 Mago Gyula A Cellular network of processors
US4860201A (en) * 1986-09-02 1989-08-22 The Trustees Of Columbia University In The City Of New York Binary tree parallel processor
EP0360527B1 (en) * 1988-09-19 1995-01-04 Fujitsu Limited Parallel computer system using a SIMD method
US5161156A (en) * 1990-02-02 1992-11-03 International Business Machines Corporation Multiprocessing packet switching connection system having provision for error correction and recovery
DE4129614C2 (de) * 1990-09-07 2002-03-21 Hitachi Ltd System und Verfahren zur Datenverarbeitung
US5561768A (en) * 1992-03-17 1996-10-01 Thinking Machines Corporation System and method for partitioning a massively parallel computer system
US6000024A (en) * 1997-10-15 1999-12-07 Fifth Generation Computer Corporation Parallel computing system
US6622233B1 (en) * 1999-03-31 2003-09-16 Star Bridge Systems, Inc. Hypercomputer
US6745317B1 (en) * 1999-07-30 2004-06-01 Broadcom Corporation Three level direct communication connections between neighboring multiple context processing elements
JP2001167066A (ja) * 1999-12-08 2001-06-22 Nec Corp プロセッサ間通信方法及びマルチプロセッサシステム
US20030123492A1 (en) * 2001-05-14 2003-07-03 Locke Samuel Ray Efficient multiplexing system and method

Also Published As

Publication number Publication date
KR101200598B1 (ko) 2012-11-12
DE602004009324D1 (de) 2007-11-15
JP2007505383A (ja) 2007-03-08
DE602004009324T2 (de) 2008-07-10
CN1849598A (zh) 2006-10-18
EP1665065B1 (en) 2007-10-03
EP1665065A2 (en) 2006-06-07
KR20060131730A (ko) 2006-12-20
US20070165547A1 (en) 2007-07-19
WO2005024644A3 (en) 2005-05-06
ATE374973T1 (de) 2007-10-15
WO2005024644A2 (en) 2005-03-17

Similar Documents

Publication Publication Date Title
JP4818920B2 (ja) 複数のプログラム可能なプロセッサを有する集積データ処理回路
US9384165B1 (en) Configuring routing in mesh networks
US8050256B1 (en) Configuring routing in mesh networks
US8151088B1 (en) Configuring routing in mesh networks
EP0197103B1 (en) Load balancing for packet switching nodes
US11003604B2 (en) Procedures for improving efficiency of an interconnect fabric on a system on chip
KR100812225B1 (ko) 멀티프로세서 SoC 플랫폼에 적합한 크로스바 스위치구조
CN101841471B (zh) 具有连接成多维矩阵的节点的系统及其控制方法以及设备
US20140115218A1 (en) ASYMMETRIC MESH NoC TOPOLOGIES
JPH08185380A (ja) 並列計算機
US20070143578A1 (en) System and method for message passing fabric in a modular processor architecture
CN111630505A (zh) 深度学习加速器系统及其方法
US11730325B2 (en) Dual mode interconnect
CN116235469A (zh) 网络芯片和网络设备
US11615053B2 (en) Routing in a network of processors
US7206889B2 (en) Systems and methods for enabling communications among devices in a multi-cache line size environment and disabling communications among devices of incompatible cache line sizes
US20230305991A1 (en) Network Computer with Two Embedded Rings
EP2405362B1 (en) A connection arrangement
JP3950048B2 (ja) 複数の制御回線を用いた多重最小論理網においてスループットを増大させる拡張可能な装置および方法
US11704270B2 (en) Networked computer with multiple embedded rings
US11520726B2 (en) Host connected computer network
US20050050233A1 (en) Parallel processing apparatus
US20230280907A1 (en) Computer System Having Multiple Computer Devices Each with Routing Logic and Memory Controller and Multiple Computer Devices Each with Processing Circuitry
JP2008176394A (ja) マルチプロセッサシステム
US20230283547A1 (en) Computer System Having a Chip Configured for Memory Attachment and Routing

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20070511

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070817

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20071101

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080229

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080304

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090619

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20110419

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: 20110831

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140909

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees