JP4338730B2 - プロセッサアレイ - Google Patents

プロセッサアレイ Download PDF

Info

Publication number
JP4338730B2
JP4338730B2 JP2006502194A JP2006502194A JP4338730B2 JP 4338730 B2 JP4338730 B2 JP 4338730B2 JP 2006502194 A JP2006502194 A JP 2006502194A JP 2006502194 A JP2006502194 A JP 2006502194A JP 4338730 B2 JP4338730 B2 JP 4338730B2
Authority
JP
Japan
Prior art keywords
bus
primary
processor
primary bus
array
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
JP2006502194A
Other languages
English (en)
Other versions
JP2006518069A (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 JP2006518069A publication Critical patent/JP2006518069A/ja
Application granted granted Critical
Publication of JP4338730B2 publication Critical patent/JP4338730B2/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/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Exchange Systems With Centralized Control (AREA)
  • Eye Examination Apparatus (AREA)
  • Bus Control (AREA)

Description

本発明はプロセッサアレイに係わり、特に、マルチビット、双方向性、高帯域通信を、一つのプロセッサに一時的に、或いは、全プロセッサに又はプロセッサのサブセットに同時に実施する必要がある大規模プロセッサアレイに関する。このような通信は、プロセッサにプログラムをロードしたり、プロセッサからステータス又は処理結果の情報をリードバックしたり、又は個々のプロセッサの同期開始、停止又はシングルステップといった、データ通信に必要である。
特許文献1は、各々のプロセッサ(アレイエレメント)がオペレーティングプログラムを構成する命令を格納する必要があり、オペレーティングプログラムを要望どおりに動作するよう制御する必要がある大規模プロセッサを記載している。アレイエレメントは一つのエレメントから他のエレメントにデータをパスするので、プロセッサが少なくともほぼ同期化されていることが重要である。したがって、同時に(即ちプログラムを開始)開始しなければならない。同様に、もし、一時的に停止し再度開始する際も、同時に停止しなければならない。
英国特許第2370380号明細書
大量のアレイエレメントにより、比較的大容量の命令、データ、レジスタファイル等を格納するので、各々のアレイエレメントに対し即座にプログラムをロードできる利便性がある。
プロセッサアレイのサイズにより、各アレイエレメント間のクロックスキューの量を最小化することが困難であり、実際には、アレイエレメントに電力供給する観点から、所定量のクロックスキューを有することには利点がある。即ち、アレイエレメントはお互いに1クロックサイクルの範囲で同期化する必要があることである。
プロセッサのアレイを同期制御する最も簡略化した解決策として、並列状に配置したアレイエレメントに制御信号を送信することである。しかしながら、アレイが一定以上の大きさを超えると扱いにくくなるという制約がある。信号が最も遠い位置にあるアレイエレメントに到達するのに1クロックサイクルを超える程、送信される距離が長くなると、制御信号を効率よく送信し、全ての動作条件において端点到達時間のバランスをとることが困難となる。このことが、適用できるクロックスピードの上限値、即ち通信のバンド幅を設定してしまうこととなる。さらに、このアプローチは、あるモードでは一度に一つのプロセッサに対してのみ通信し、別のモードでは全プロセッサに対し一度に通信を行う点においても、適していない。
多数の端点に対する高帯域通信において、パケット交換又は回路交換方式のネットワークが良い解決策である。しかしながら、この解決策では、全ての端点において一般的に同期化しないという欠点がある。近隣の端点よりも、離れている端点の方が待ち時間が長くなる。さらに、ネットワークのノードが高度で且つ複雑である必要がある。
さらに、拡張性の観点も考慮する必要がある。あるプロセッサアレイで効果がある設計でも、僅かに規模の大きいアレイでは再設計しなければならないかもしれない。また、規模の小さいアレイに対しては、比較的非効率であるかもしれない。
本発明によれば、特許請求の範囲に記載された発明が提供される。
図1はプロセッサ4のアレイを示しており、全てのアレイはバス5上の列ドライバ1に接続している。図に示すように、アレイは、アレイエメント4を水平の行及び垂直の列に配置することにより構成しているが、本発明では、アレイエレメントの実際の物理的な配置は重要ではない。各行のアレイエレメントは、サブグループ6に分けられる。一つのサブグループ6内のアレイエレメント4は、各々の行ノード3を経由して、水平バスセグメント7上に接続される。水平バスセグメント7は、各々の列ノード2を経由して、垂直バスセグメント8上に接続される。各サブグループ6は、列ノード2が1クロックサイクル内での通信を可能とするアレイエレメントを含む。したがって、垂直バス8は1次バスとして、列ノード2は1次バスノードとして、水平バスセグメント7は2次バスとして、行バスノード3は2次バスノードとしての役割を担う。
各々の垂直バス8は、図5を参照して下記で詳細に記載されるように、個々の列ドライバ1により稼動する。これは、通信ルーティング及び節電の手段としての役割を担う。
各々のバス5、7、8は、明確にするために単線として示されているが、実際には、単一方向性、マルチビットバスの各々方向に伸長するペアである。
列ノード2は、図2及び3で示されるように、2つの異なる構成を有する。図2は、垂直パイプラインステージ無しの列ノードを示し、図3は垂直パイプラインステージ有りの列ノードを示す。
図2に示されている列ノード10において、垂直バス8の発信部分は列ドライバ1からデータを送信し、ノード10を経由してインレット12からアウトレット15に伝達する。さらに、データはコネクション26で取り出され、バス25に送信される。バス25は、水平バスセグメント7の送信部分13に、短いタップ付遅延線18を経由して接続される。タップ付遅延線18は、水平バスセグメント7に対する信号を所定の整数のクロック数により遅延することが可能とする。水平バスセグメント7のリターンパス部分14は、データを列ドライバ1に送信し、さらに短いタップ付遅延線19を経由してバス20に接続される。遅延線19は、所定の整数のクロック数によりリターン信号を遅延する。遅延線19の遅延は、遅延線18の遅延と等しいことが好ましい。しかしながら、全ての端点に送信する信号の遅延の合計と全ての端点から受信する信号の遅延の合計が等しくなるように、各々のノード10の遅延を設定することができれば、遅延線19の遅延は、遅延線18の遅延と異なる値とすることが可能である。バス20は、出力部分11のリターンパス垂直バス信号を形成するために、ビット単位、論理的OR機能17内で、入力部分16において受信した垂直バスのリターンパスと結合する。
図3は、列ノード22の他の形態を示している。列ノード22の構成要素は、図2で示された列ノード10の構成要素と同一の機能を有しており、同一の参照番号が付与されているので、ここでは再度説明することはしない。列ノード10と比較すると、列ノード22は垂直パイプラインステージを有する。したがって、パイプラインレジスタ23が垂直バス8の出力部分に挿入され、出力信号を1クロックサイクルにて遅延する。さらに、パイプラインレジスタ24が垂直バス8のリターンパスに挿入され、リターン信号を同様に1クロックサイクルにて遅延する。
列ノード10と22の双方は、アレイエレメント4のサブグループ6に対し、垂直バス8と水平バス7間の接合を備える。列ノード22は、垂直パイプラインステージを有し、全垂直バスパスを1クロックサイクルより長くすることが可能である。垂直パイプラインステージ無しの列ノード10は、パイプラインステージを垂直バスパスに加えることなく、接合を備えることが可能である。2つの種類の列ノードをお互いに用いることにより、下記で詳細に説明するように、クロックスピードを減じることなく、全パイプラインの階層を不必要に大きく且つ非効率とすることなく、高帯域通信を可能とする充分なパイプラインを備えることができる。
図4は、図1で示された行ノード3を詳細に示した図である。水平バス7の出力部分は列ドライバ1からデータを送信し、インレット51からアウトレット53にノードを経由して伝達する。データは、接続50において取り出され、さらにバス60に向けて送信される。バス60はアレイエレメントインタフェース57に接続される。
アレイエレメントインタフェース57は、図1に示すように、バス55及び56を経由して、アレイエレントの一つに接続される。アレイエレメントインタフェース57はバスプロトコルを解釈し、受信した通信がこの行ノードに接続された特定のアレイエレメントを対象としたものかを判断する。この行ノード3に接続されたアレイエレメントから読み取られた情報はインタフェース57内で受信され、バス59に出力される。列ドライバ1に対しデータを送信する水平バス7のリターンパス部分は、入力部54にて受信される。バス59は、水平バス7のリターンパスと共に、ビット単位で、論理的OR機能58にて結合され、出力部52用のリターンパス水平信号を形成する。
図5は、図1で示された行サブグループ6を詳細に示した図である。この図で示した例では、サブグループ6は4つのアレイエレメント4を含んでいる。しかしながら、列ドライバ1が1クロックサイクル内で効率的に通信が可能であるエレメント数に依存するので、サブグループ内でエレメント数が4つより多い又は少ない場合も想定される。4つのアレイエレメント4は、行ノード3を経由して水平バス7に接続される。データは、発信水平バスセグメント13(図2及び3で示すように)で受信され、水平バスセグメント13のリターンパス部分14(図2及び図3で示すように)上で出力される。発信水平バスセグメントは遠端62において接続されていない状態となる。リターンパス水平バスセグメントは論理的全零又は接地により、遠端63にて終端処理がなされる。これにより、任意の水平ノード3を経由してバス7上で論理的にORが取られてしまうようなリターンパスデータの破壊を回避することができる。
図6は、図1で示された列ドライバ1を詳細に示した図である。ここで示した例において、列数は4つであるが、列数は4つより多く又は少ないことが想定される。アレイエレメント4に対する発信データは、バス31上でアレイコントロールプロセッサ(図示せず)から受信され、各列に接続されている4つの各垂直バスの出力部33、35、37、39と平行に配線されている。バス31は、出力部33、35、37、39に、各々ビット単位で、論理的AND機能43を経由して接続される。論理的AND機能43は、イネーブル信号44をプロトコル監視ブロックから受信する。プロトコル監視ブロック42は、バス31上の通信をデータ間のアドレス信号を基に監視し、各々の列に対し必要に応じて個別に又は全部を有効とするイネーブル信号を生成する。
各々の列に接続された各々の4つの垂直バスのリターンパス部分34、36、38、40は、ビット単位で、論理的OR機能41に結合され、アレイエレント4からアレイコントロールプロセッサにデータを通信する全般のリターンパスバス32を生成する。
図6で示されたように、列ドライバは4つの列に接続される。しかしながら、アレイが多数のエレメント4を含む場合、及び/又はサブグループ6が少数のエレメント4しか含まない場合、列数が大きくなる場合がある。このような場合、全ての端点とのやりとりに対する遅延を同一とするための追加的なパイプラインステージが必要となるかもしれない。例えば、追加的パイプラインレジスタは一つ又は一つ以上の分岐点33−40にて、及び/又はORゲート41に対する一つ又は一つ以上の入力部にて、及び/又はANDゲートに対する一つ又は一つ以上の入力部にて、具備するかもしれない。
したがって、全般的な発信パスバスは、複数のパイプラインステージ及び複数の高レベルスイッチングに対し、単純な平行接続の構成を有する。高レベルスイッチングは、アレイエレメントアドレッシングの部分的な機能を担い、電力の節約にも寄与する。
全般的なリターンパスバスは、複数のパイプラインステージを備えた単純な論理的OR論理入力である。バスは定常的な待ち時間を有し、アレイコントロールプロセッサは一度に一つのアレイエレメントのみから読み出し、アドレス指定されていないアレイエレメントはバス上に論理的全零を送信するので、調整を必要としない。
これにより、リードアクセスの密結合したパイプラインとトリステートバスの使用を回避することを可能とする。
図7及び8は、可能性のある2つの列ノードの配置を示している。これらの双方の配置は、列バスドライバに近い列ノードは、列バスドライバに遠い列ノードよりも、タップ付遅延線を通してより長い時間の遅延を生じる。
図7において、図3にて示されているように、列バスドライバに最も近い列ノードは垂直パイプラインステージであるノード22であり、図7では黒点にて表されている。その後に続く各4番目の列ノードは垂直パイプラインステージを有し、図2にて示されているように、残りの列ノードは垂直パイプラインステージではないノード10であり、図7において白点にて表されている。図8において、図3にて示されているように、列バスドライバに最も近い列ノードは垂直パイプラインステージであるノード22であり、図8では黒点にて表されている。その後に続く各3番目の列ノードは垂直パイプラインステージを有し、図2にて示されているように、残りの列ノードは垂直パイプラインステージではないノード10であり、図8において白点にて表されている。垂直パイプラインステージであるノード間の実際の距離は、物理的な実施要綱に依存する。距離は、垂直パイプラインステージであるノード数を最小値とし、全ての操作状況に対するバスの操作を正常なものとするよう維持していかなければならない。垂直パイプラインステージのノードは、規則的に又は不規則的に配置されるかもしれない。これは、帯域ではなく全般的な待ち時間を変えているので、本アプローチの拡張性を示している。
図7及び8は、各列ノードにおけるタップ付遅延線18、19の典型的な構成を示している。図7において、列バスドライバ1から最も遠い位置にある列ノード、即ちノード74から開始し、タップ付遅延線18、19は最小遅延時間となる、この例においては零クロックサイクルとなる遅延時間Dを有する。次に、遅延時間は列を上方に移動するにつれて割り当てられ、パイプライン化したノード22を通過する毎に遅延時間が1クロックサイクル増加する。したがって、図7において、このノードにおける水平分岐点がパイプラインレジスタ23,24の後となるので、パイプライン化ノード75上のタップ付遅延線18、19の遅延時間は未だD=0となる。 次のノード76は、遅延時間D=1クロックサイクルを有するタップ付遅延線18,19により構成される。このプロセスは、列バスドライバに最も近い列ノードに到達するまで、繰り返される。したがって、水平バスセグメント上の全ての端点に対し、列の上端とのやりとりに関し同一の待ち時間を有する。
タップ付遅延線構成の同様のパターンは、図8において示されている。したがって、列バスドライバ1から最も遠い位置にある列ノード78において、タップ付遅延線18、19は最小遅延時間となる、この例においては零クロックサイクルとなる遅延時間Dを有する。この場合もやはり、遅延時間は列を上方に移動するにつれて割り当てられ、パイプライン化したノード22を通過する毎に遅延時間が1クロックサイクル増加する。したがって、図8において、ノード79は、遅延時間D=1クロックサイクルを有するタップ付遅延線18,19により構成される。このプロセスは、列バスドライバに最も近い列ノードに到達するまで、繰り返される。
タップ付遅延線18の遅延時間が零クロックサイクルとして設定されると、そのタップ付遅延線に接続した端点は、実際には前の垂直バスパイプラインレジスタ23により作動する。このことは、パイプラインレジスタ上へのローディングを過剰に増加させるかもしれない。したがって、実際にこのローディングを減少させるために、タップ付遅延線18、19の最小遅延時間を零クロックサイクルではなく、1クロックサイクルとして選択することができる。
個々のアレイエレメントのアドレス指定は、行、垂直バス列及びサブグループ列としてのこのバス構成上を通信する信号内でエンコードされる。列バスドライバ1は、列が選択的に許可されるよう、又は放送タイプのアドレスが使用された場合は全ての列を許可するよう、垂直バス列情報をデコードすることができる。行ノード3は行情報及びサブグループ列情報をデコードする。したがって、それらの位置情報から割り出された情報に基づいて構成されなければならない。列ノード2は、ここで示されている本発明の実施例においては、この精度において節電化は複雑性のオーバヘッドと比較して価値がないので、行情報を積極的にはデコードしない。しかしながら、他の実施例において、列ノードは、バスプロトコルを監視することにより、列ドライバ及び行ノードが実施するのと同様にデコードする。
アレイエレメントはバス操作が到達し、全てのアドレスの特徴が一致した時にアドレス指定される。もし、単一のアドレス指定がされた場合は、宛先アレイエレメントは、行アドレスとサブグループ列アドレスとが一致した場合に通信をデコードする。もし、1アレイエレメントより多くアレイエレメントと通信するために、放送タイプのアドレスが使用される場合は、行ノードは、アレイエレメントタイプといった他の識別パラメータに基づいて、識別しなければならない。放送アドレス指定は、個別の制御線又は“予備の”アドレスの内で、最も効率良いいずれかにより、フラグすることができる。
同期開始、停止、シングルステッピング等のアレイエレメントの制御は、アレイエレメント内の制御レジスタ位置に所定のデータを記載することにより達成することができる。放送通信において、これらを一緒にアドレス指定するために、これらの制御位置は各アレイエレメントのメモリマップ上で同一の位置に配置しなければならない。アレイエレメントに対し1ステップで開始した後に停止するよう指示する、シングルステップ制御コマンド発行することは、通信プロトコルにおけるアドレス指定トークン信号オーバヘッドが開始及び停止コマンドが接近するのを防止する観点から、有益である。
さらに、例えば、ノードの所定の位置においてバッファーを配置(信号を高速化又は遅延するため)することによるレジスタのセットアップ又は保留違反といった大規模なクロックスキューによる問題点を回避する上でも、有用である。例えば、図2又は3に示された列ノード場合、遅延バッファーは保留違反を防止するためにバス20及び25内に、タップポイント26前後の垂直バス8内に、及びORゲート17の後に、挿入される。図4に示された行ノードの場合では、遅延バッファーは保留違反を防止するために、バス59に挿入される。
したがって、ほぼ定常的な待ち時間を達成するための配置が具備される。最も遠くに配置するアレイエレメントとの通信は、距離に応じて適切にパイプライン化されている。これに対し、最も近くにあるアレイエレメントとの通信は、全ての端点に対する待ち時間が同一のクロックサイクルであるように、意図的に過剰にパイプライン化される。これにより、高帯域が達成され、再設計することなく拡張性を持たせることが可能である。
通信自体はトークン化したストリームの形態をとる。プロセッサアレイは、アレイエレメントのメモリマップとして、各アレイエレメントがプログラム、データ、制御位置の独自のメモリマップを持つ階層メモリマップとして見なされる。トークンは、アレイエレメントアドレス、サブアドレス、リード/ライトデータをフラッグするのに使用される。制御機能用に、並列式に配置された全アレイエレメントに対しアドレス指定をする特定の予備アドレスが割り当てられる。
トークン化通信プロトコルは、下記に詳細に説明するように、本プロセッサアレイとともに使用される。
出力バスは、4つのアクティブ−高フラグ及び16ビットデータ領域をもつ20ビットバスである。
Figure 0004338730
リターンバスはアクティブ−高有効フラグ及び16ビットデータ領域をもつ17ビットバスである。
Figure 0004338730
VALIDフラグは、アレイエレメントの全アドレス空間が充分に埋まっていない場合、必要となる。さもなければ、欠陥アドレスとデータがたまたま零であったデータとを区別することが困難となる可能性がある。
ベーシックライト操作:発信バスに送信される一連のコマンドが下記のとおりである。
AEID,<array element address>
ADDR, <register / memory location>
WRITE, <data word>
ユーザは、複数の位置に、上記の一連のコマンドを必要に応じて繰り返すことにより、次々に書き出すことができる。
AEID,<array element address 1>
ADDR, <register / memory location in array element 1>
WRITE, <data word>
AEID,<array element address 2>
ADDR, <register / memory location in array element 2>
WRITE, <data word> 等。
AEIDが同一である場合は、繰り返す必要はない。
AEID,<array element address 1>
ADDR, <register / memory location 1>
WRITE, <data word for location 1 in array element 1>
ADDR, <register / memory location 2>
WRITE, <data word for location 2 in array element 1> 等。
いずれの場合にも、データはアレイエレメントが存在し、レジスタ又はメモリ位置が存在し、書き込み可能であれば、アレイエレメントに書き出される(一部の位置は、読み出し専用かもしれない、又はアレイエレメントが停止状態であり作動していない時に書き込みが可能かもしれない)。
自動インクリメントライト操作:一アレイエレメント内の複数の連続的なレジスタ又はメモリ位置に書き込む際の時間を節約するために、例えばアレイエレメントプログラムをロードする場合、WRITEコマンドを繰り返して使用する。行ノード内のインタフェースは、アレイエレメント内に使用したアドレスを自動的にインクリメントする。
例えば、
AEID,<array element address>
ADDR, <starting register or memory location - “A”>
WRITE, <data word for location A>
WRITE, <data word for location A+1>
WRITE, <data word for location A+2>
WRITE, <data word for location A+3> 等。
メモリマップ内に空間がある場合、又は他のアレイエレメントに移動する必要がある場合は、自動インクリメント用の新規の開始点を設定するために、ADDR又はAEIDフラグを使用する。
例えば、
AEID,<array element address>
ADDR, <starting register or memory location - “A”>
WRITE, <data word for location A>
WRITE, <data word for location A+1>
WRITE, <data word for location A+2>
ADDR, <new starting register or memory location - “B”>
WRITE, <data word for location B>
WRITE, <data word for location B+1>
AEID,<new array element address>
ADDR, <register or memory location>
WRITE, <data word> 等。
非インクリメントライト操作:レジスタ及びメモリ位置アドレスの自動インクリメントを無効にし、ADDRフラッグ及びWRITEフラグを保持する場合。
AEID,<array element address>
ADDR, <register location - “A”>
ADDR, WRITE, <data for location A>
ADDR, WRITE, <new data for location A>
プロセッサアレイが作動している際に、コマンド3と4の間、バス操作が長期間にわたって停止する可能性がある。実際には、これらのバスが連続して操作される必要はない。どの時点においても、任意の停止時間が生じる可能性がある。プロトコルは、いかなる中断をしない状態機械のような働きをする。
放送ライト操作:全アレイエレメントに対し即座に、又はアレイエレメントのサブセットに対しグループ毎に、書き込むことが可能である。この放送アドレス指定は過剰の制御信号により示されるか、又はAEIDアドレスに特定の数字を用いることにより達成することできる。
英国特許第2370380号明細書は、プロセッサアレイに適用しており、アレイ全体が個々のエレメントを対象に15ビット範囲内でアドレス指定をすることが可能であり、16ビットAEIDアドレスの最上位ビットは、放送タイプ通信が稼動中であることを示すために確保することができる。
一アレイエレメントアドレス指定ではなく、放送アドレス指定を選択するために、AEIDデータ領域にMSBを設定する。下位ビットは、アドレス指定したいアレイエレメントタイプを表現するために用いることができる。ここで例示するプロセッサアレイでは、8アレイエレメントタイプであり、宛先は行ノード構成内に配線されている。
Figure 0004338730
例えば、全タイプ7アレイエレメントにアドレス指定する場合は、
AEID,<0x8040>
ADDR, <…> 等となる。
全タイプ1、タイプ2及びタイプ4アレイエレメントを一緒にアドレス指定する場合は、
AEID,<0x800b>
ADDR, <…>
ベーシックリードリクエスト操作:基本的な読み込み操作は、基本的な書き出し操作に似ている。最後のフラッグが異なっているが、そのデータ領域は無視される。
AEID,<array element address>
ADDR,<register or memory location>
READ, <don’t care>
位置は、アレイエレメントが存在し、レジスタ又はメモリ位置が存在し、読取り可能であれば、読み込まれる(一部の位置は、アレイエレメントが停止状態であり作動していない時に読取りが可能かもしれない)。アレイエレメントから読み込まれるデータワードは、リターンバスバスを経由して送信され、この例では、後に実施する検索処理のためにFIFO内に格納される。
自動インクリメントリード操作:対応するライト操作に似ている。
AEID,<array element address>
ADDR,<starting register or memory location - “A”>
READ, <don’t care> データはA位置より取られる。
READ, <don’t care> データはA+1位置より取られる。等
非インクリメントリード操作:レジスタ及びメモリ位置アドレスの自動インクリメントを無効にし、ADDRフラグ及びREADフラグを保持する場合。
AEID,<array element address>
ADDR,<register location - “A”>
ADDR, READ, <don’t care> データはA位置より取られる。
ADDR, READ, <don’t care> データはA位置より取られる。
レジスタを診断情報のために取り出す場合、例えばビットエラー率の測定基準とする場合には、有用である。
放送リード操作:ここで例示しているプロセッサアレイのハードウェアは、放送入力の有益性は多少制限があるが、放送入力の可能性を除外しない。複数のアレイエレメントからのリードバックデータはビット単位のORedである。或る特定のものを見つけるために、個々に調査する前に、複数のアレイエレメント内の同一レジスタが零であるかを手早くチェックする方が効率的かもしれない。
コンポジット操作:上記に示すように、バスのトークン化により、多数の任意の長さのコマンドの並び替え、及び頻繁に用いられるコマンドのショートカットを可能とする。例えば、メモリの連続する位置に対する読み込み及び書き出しといった一部のメモリテストを実施するストリームを生成するのに有効であるかもしれない。
AEID,<array element address>
ADDR,<starting memory location - “A”>
ADDR, READ, <don’t care> (データはA位置より取られ、アドレスはインクリメントされない)。
WRITE, <data word> (データはA位置に書き出され、アドレスはインクリメントされる)。
ADDR, READ, <don’t care> (データはA+1位置より取られ、アドレスはインクリメントされない)。
WRITE, <another data word> (他のデータはA+1位置に書き出され、アドレスはインクリメントされる)。等
ここでは、アレイエレメントの効率的な同期化処理を可能とするプロセッサアレイ及びそこに用いられる通信プロトコルについて記載している。
本発明によるプロセッサアレイのブロック概略図である。 図1のアレイ内の1次ノードの第一態様のブロック概略図である。 図1のアレイ内の1次ノードの第二態様のブロック概略図である。 図1のアレイ内の2次ノードのブロック概略図である。 図1のアレイの一部分の拡大ブロック概略図である。 図1のアレイの第二部分の拡大ブロック概略図である。 図1のアレイが使用されている状態の部分を示した図である。 図1のアレイが使用されている状態の部分を示した図である。

Claims (14)

  1. 各々が1次バスドライバに接続し、かつ複数の1次バスノードを持つ複数の1次バスと、
    前記複数の1次バスノードに接続する複数の2次バスと、
    各々が前記複数の2次バスの内一つの2次バスに接続する複数のプロセッサエレメントと、
    前記プロセッサエレメント間の処理において所定の同期性を達成するために、前記1次バスノードに関連し、異なる2次バスに接続するプロセッサエレメントとの通信を異なる量により遅延する遅延エレメントと、を具備し、
    前記複数の1次バスノードは、前記1次バス内に設けられた所定の遅延時間を有する垂直パイプラインステージを備える構成の1次バスノードと、前記1次バス内に垂直パイプラインステージを具備しない構成の1次バスノードとを含み、
    前記2次バスノードはそれぞれ遅延線を有し、
    前記遅延エレメントは前記垂直パイプラインステージと前記遅延線とを含むプロセッサアレイ。
  2. 前記1次バスドライバから前記プロセッサエレメントにデータを転送し、前記プロセッサエレメントから前記1次バスドライバにデータを転送する、前記1次及び2次バスの各々が双方向性のバスである、請求項1記載のプロセッサアレイ。
  3. 各々の1次バスノードが各々の1次バス上の1次バスドライバからの信号を取り出すタップと、取り出し信号を遅延する遅延線とを具備する、請求項1記載のプロセッサアレイ。
  4. 少なくとも複数の前記1次バスノードが、各々の1次バス上の1次バスドライバからの信号を遅延する前記遅延エレメントを具備する、請求項3記載のプロセッサアレイ。
  5. 各々の1次バスノードが、各々の2次バスからの信号を各々の1次バス上に結合する装置と、各々の2次バスからの信号を遅延する遅延線とを具備する、請求項1記載のプロセッサアレイ。
  6. 結合する装置がビット単位の論理的ORゲートを具備する、請求項5記載のプロセッサアレイ。
  7. 少なくとも複数の前記1次バスノードが、各々の1次バス上の1次バスドライバに対する信号を遅延する前記遅延エレメントを具備する、請求項5記載のプロセッサアレイ。
  8. 各々のプロセッサエレメントが各々の2次バスノード上で各々の2次バスに接続している、請求項1記載のプロセッサアレイ。
  9. 各々の2次バスノードが各々の2次バス上の1次バスドライバからの信号を取り出すタップと、取り出し信号が接続されたプロセッサエレメントを対象としているかを判定するインタフェースとを具備する、請求項1記載のプロセッサアレイ。
  10. 各々の2次バスノードが、各々のプロセッサエレメントからの信号を各々の2次バス上に結合する装置を具備する、請求項1記載のプロセッサアレイ。
  11. 結合する装置がビット単位の論理的ORゲートを具備する、請求項10記載のプロセッサアレイ。
  12. 1次バスドライバが、入力バスと、前記複数の1次バスのうちどの1次バスが前記入力バス上のデータを受信すべきかを判断する検出器とを含む、請求項1記載のプロセッサアレイ。
  13. 1次バスドライバの入力バスが、各々のANDゲートの第一入力を経由して前記複数の1次バスの各々との接続を持ち、前記検出器が、前記複数の1次バスの内一つが前記入力バス上にデータを受信すべきと判断した時に、各々のANDゲートの第2入力にイネーブル信号を送信するよう処理する、請求項12記載のプロセッサアレイ。
  14. 1次バスドライバに物理的に近い1次バスノードに関連する遅延エレメントは、当該近い1次バスノードに接続する2次バスに接続しているプロセッサエレメントとの通信を、1次バスドライバから物理的に遠くにある1次バスノードに関連する遅延エレメントが当該遠い1次バスノードに接続する2次バスに接続しているプロセッサエレメントとの通信を遅延させる遅延時間よりも長い遅延時間で遅延させる請求項1記載のプロセッサアレイ。
JP2006502194A 2003-01-27 2004-01-26 プロセッサアレイ Expired - Fee Related JP4338730B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB0301863A GB2397668B (en) 2003-01-27 2003-01-27 Processor array
PCT/GB2004/000255 WO2004068362A1 (en) 2003-01-27 2004-01-26 Processor array

Publications (2)

Publication Number Publication Date
JP2006518069A JP2006518069A (ja) 2006-08-03
JP4338730B2 true JP4338730B2 (ja) 2009-10-07

Family

ID=9951897

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006502194A Expired - Fee Related JP4338730B2 (ja) 2003-01-27 2004-01-26 プロセッサアレイ

Country Status (9)

Country Link
US (1) US7574582B2 (ja)
EP (1) EP1588276B1 (ja)
JP (1) JP4338730B2 (ja)
CN (1) CN100422977C (ja)
AT (1) ATE359558T1 (ja)
DE (1) DE602004005820T2 (ja)
ES (1) ES2285415T3 (ja)
GB (1) GB2397668B (ja)
WO (1) WO2004068362A1 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1614030B1 (en) * 2003-04-07 2015-11-04 Koninklijke Philips N.V. Data processing system with clustered ilp processor
JP4388557B2 (ja) * 2007-01-11 2009-12-24 株式会社日立製作所 画像処理システム
US7902862B2 (en) * 2007-09-14 2011-03-08 Agate Logic, Inc. High-bandwidth interconnect network for an integrated circuit
CN101320364A (zh) * 2008-06-27 2008-12-10 北京大学深圳研究生院 一种阵列处理器结构
US8122226B2 (en) * 2009-04-16 2012-02-21 Vns Portfolio Llc Method and apparatus for dynamic partial reconfiguration on an array of processors
KR101565172B1 (ko) * 2010-01-15 2015-11-02 삼성전자주식회사 대규모 병렬 프로세서 어레이 시스템의 데이터 처리 장치 및 방법
CN102446157B (zh) * 2010-10-12 2013-09-18 无锡江南计算技术研究所 基于阵列结构的处理器核心的通信方法及通信装置
US10313641B2 (en) * 2015-12-04 2019-06-04 Google Llc Shift register with reduced wiring complexity
GB2580165B (en) 2018-12-21 2021-02-24 Graphcore Ltd Data exchange in a computer with predetermined delay

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4380046A (en) * 1979-05-21 1983-04-12 Nasa Massively parallel processor computer
US4574345A (en) * 1981-04-01 1986-03-04 Advanced Parallel Systems, Inc. Multiprocessor computer system utilizing a tapped delay line instruction bus
US4622632A (en) * 1982-08-18 1986-11-11 Board Of Regents, University Of Washington Data processing system having a pyramidal array of processors
JPS59132070A (ja) * 1983-01-18 1984-07-30 Mitsubishi Electric Corp アレイ演算用デ−タ処理装置
US5152000A (en) * 1983-05-31 1992-09-29 Thinking Machines Corporation Array communications arrangement for parallel processor
US4720780A (en) * 1985-09-17 1988-01-19 The Johns Hopkins University Memory-linked wavefront array processor
US4736291A (en) * 1985-11-22 1988-04-05 Texas Instruments Incorporated General-purpose array processor
US5036453A (en) * 1985-12-12 1991-07-30 Texas Instruments Incorporated Master/slave sequencing processor
IT1184015B (it) * 1985-12-13 1987-10-22 Elsag Sistema multiprocessore a piu livelli gerarchici
GB2211638A (en) * 1987-10-27 1989-07-05 Ibm Simd array processor
US5109329A (en) * 1987-02-06 1992-04-28 At&T Bell Laboratories Multiprocessing method and arrangement
US4943912A (en) * 1987-10-13 1990-07-24 Hitachi, Ltd. Parallel processor system having control processor and array control apparatus for selectively activating different processors
US4890279A (en) * 1988-09-26 1989-12-26 Pacific Bell Multiplexer and computer network using the same
AU647086B2 (en) * 1990-01-30 1994-03-17 Johnson Service Company Networked facilities management system
US6928500B1 (en) * 1990-06-29 2005-08-09 Hewlett-Packard Development Company, L.P. High speed bus system that incorporates uni-directional point-to-point buses
US5265207A (en) * 1990-10-03 1993-11-23 Thinking Machines Corporation Parallel computer system including arrangement for transferring messages from a source processor to selected ones of a plurality of destination processors and combining responses
US5752067A (en) * 1990-11-13 1998-05-12 International Business Machines Corporation Fully scalable parallel processing system having asynchronous SIMD processing
US5790879A (en) * 1994-06-15 1998-08-04 Wu; Chen-Mie Pipelined-systolic single-instruction stream multiple-data stream (SIMD) array processing with broadcasting control, and method of operating same
GB2293468B (en) * 1994-09-21 1999-09-29 Sony Uk Ltd Data processing systems
JPH08297652A (ja) * 1995-04-25 1996-11-12 Nippon Steel Corp アレイプロセッサ
US5570045A (en) * 1995-06-07 1996-10-29 Lsi Logic Corporation Hierarchical clock distribution system and method
KR100197407B1 (ko) * 1995-12-28 1999-06-15 유기범 전전자 교환기에 있어서 프로세서들간 통신버스구조
US5805839A (en) * 1996-07-02 1998-09-08 Advanced Micro Devices, Inc. Efficient technique for implementing broadcasts on a system of hierarchical buses
US5719445A (en) * 1996-12-23 1998-02-17 Sgs-Thomson Microelectronics, Inc. Input delay control
JP2976932B2 (ja) * 1997-06-09 1999-11-10 日本電気株式会社 画像照合回路および画像照合集積回路
US6122677A (en) * 1998-03-20 2000-09-19 Micron Technology, Inc. Method of shortening boot uptime in a computer system
US6393026B1 (en) * 1998-09-17 2002-05-21 Nortel Networks Limited Data packet processing system and method for a router
GB2370380B (en) 2000-12-19 2003-12-31 Picochip Designs Ltd Processor architecture

Also Published As

Publication number Publication date
ES2285415T3 (es) 2007-11-16
CN100422977C (zh) 2008-10-01
EP1588276A1 (en) 2005-10-26
US7574582B2 (en) 2009-08-11
DE602004005820T2 (de) 2008-01-10
US20060155956A1 (en) 2006-07-13
JP2006518069A (ja) 2006-08-03
ATE359558T1 (de) 2007-05-15
GB0301863D0 (en) 2003-02-26
WO2004068362A1 (en) 2004-08-12
CN1761954A (zh) 2006-04-19
GB2397668A (en) 2004-07-28
DE602004005820D1 (de) 2007-05-24
GB2397668B (en) 2005-12-07
EP1588276B1 (en) 2007-04-11

Similar Documents

Publication Publication Date Title
US6950910B2 (en) Mobile wireless communication device architectures and methods therefor
JP4024875B2 (ja) 異なるデータ・レートで動作するネットワーク・ポートに関して、共用メモリへのアクセスを調停する方法および装置
CN100444131C (zh) 具有仲裁分组协议的存储器仲裁系统及方法
EP0993680B1 (en) Method and apparatus in a packet routing switch for controlling access at different data rates to a shared memory
US10282343B2 (en) Semiconductor device
JP4338730B2 (ja) プロセッサアレイ
KR100839593B1 (ko) 온칩 네트워크의 병렬성을 높이기 위한 슬레이브 네트워크인터페이스 회로 및 그 시스템
US20050160202A1 (en) Direct memory access device
JP2007034392A (ja) 情報処理装置及びデータ処理方法
JP2005234932A (ja) マトリックス状バス接続システムとその低電力方法
KR100772287B1 (ko) 대규모 병렬 프로세서 어레이를 메모리 어레이에 비트직렬 방식으로 접속하는 방법 및 장치
CN112882986B (zh) 一种带有超节点以及超节点控制器的众核处理器的应用方法
JPH1196072A (ja) メモリアクセス制御回路
US20030093595A1 (en) Apparatus and method for distribution of signals from a high level data link controller to multiple digital signal processor cores
JP4193746B2 (ja) マトリックス状バス接続システム
JP4430053B2 (ja) 半導体メモリシステムおよび半導体メモリチップ
KR100388342B1 (ko) 비동기 및 동기 프로토콜을 갖는 멀티 포트 메모리
JP2007504549A (ja) データ処理システム
US8127108B2 (en) Apparatus, system and method for prefetching data in bus system
JPH0479422A (ja) 送信制御回路
KR100487218B1 (ko) 칩 내장형 버스를 인터페이스하기 위한 장치 및 방법
JP3930899B1 (ja) デジタル回路装置
JP2596654B2 (ja) 通信網ノード
JP2006107022A (ja) 階層化されたリングによるモジュール間通信方法および装置
JP2817974B2 (ja) バスインターフェイス装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070123

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20071205

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071218

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080317

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080403

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080618

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

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

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130710

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

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

LAPS Cancellation because of no payment of annual fees