JP2001167066A - プロセッサ間通信方法及びマルチプロセッサシステム - Google Patents

プロセッサ間通信方法及びマルチプロセッサシステム

Info

Publication number
JP2001167066A
JP2001167066A JP34854599A JP34854599A JP2001167066A JP 2001167066 A JP2001167066 A JP 2001167066A JP 34854599 A JP34854599 A JP 34854599A JP 34854599 A JP34854599 A JP 34854599A JP 2001167066 A JP2001167066 A JP 2001167066A
Authority
JP
Japan
Prior art keywords
bus
time
data
channel
register
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP34854599A
Other languages
English (en)
Inventor
Hideyuki Shimonishi
英之 下西
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP34854599A priority Critical patent/JP2001167066A/ja
Priority to US09/730,533 priority patent/US20010003834A1/en
Publication of JP2001167066A publication Critical patent/JP2001167066A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges

Abstract

(57)【要約】 【課題】 多数のプロセッサを含むマルチプロセッサシ
ステムにおいて、階層的なプロセッサ間通信を実現し、
高速なプロセッサ間通信を可能にする。 【解決手段】 各プロセッシングエレメント2-1 〜2-24
は、同一のレジスタファイルを物理的に共有する複数の
プロセッサから構成され、プロセッシングエレメント内
ではレジスタ共有によるプロセッサ間通信を行う。幾つ
かのプロセッシングエレメント毎に同じ局所的バス3-1
〜3-12に接続され、局所的バスはブリッジ4-1 〜4-12お
よび大域的バス5-1 〜5-14によって相互に接続される。
近距離のプロセッシングエレメント間では1つの局所的
バス経由で通信し、遠距離のプロセッシングエレメント
間では複数の局所的バス及び大域的バスを経由して通信
する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はマルチプロセッサシ
ステムにおけるプロセッサ間通信方法に関し、特にプロ
セッサ内のレジスタファイルの内容をプロセッサ間で交
換する方法及び階層的な通信機構を有するマルチプロセ
ッサシステムに関する。
【0002】
【従来の技術】従来、マルチプロセッサシステムにおけ
るプロセッサ間通信方法としては以下のような方法が提
案されている。
【0003】第1の従来方法は、プロセッサ間でメモリ
もしくはキャッシュを共有する方法である。プロセッサ
間でデータの受渡しが必要な場合、送信側のプロセッサ
が、送信データを共有されているキャッシュもしくはメ
モリに書き出し、受信側のプロセッサが該キャッシュも
しくはメモリからデータの読み出しを行う。例えば特許
第2533162号公報には、各プロセッサ共有のメモ
リを有し、各プロセッサとメモリの間をバスで接続する
ことにより、各プロセッサがそれぞれ有するレジスタフ
ァイル間での通信を共有されたメモリを介して行う方法
が記載されている。また、例えば1次キャッシュをプロ
セッサ毎に持ち、2次キャッシュを共有する構成の場
合、それぞれの1次キャッシュおよび共有の2次キャッ
シュを結ぶバスを設け、前記バスを用いて1次キャッシ
ュと2次キャッシュの間でデータを交換する。文献"Eva
liation of Design Alternatives for a Multiprocesso
r,"(B. A. Nayfeh et. al., ISCA '96, pp67-71, 199
6.)では1次キャッシュを共有するモデルや、2次キャ
ッシュを共有するモデル、メモリを共有するモデルが紹
介されている。
【0004】第2の従来方法は、全てのプロセッサでレ
ジスタファイルを共有する方法である。本方法では、プ
ロセッサ毎独立のレジスタファイルを持たず、全てのプ
ロセッサが同時に読み書きできるよう複数のポートを備
えたレジスタファイルを全プロセッサで共用する。例え
ば特開平10−78880号公報では、マルチスレッド
実行方式に関わるプロセッサ間通信方法が提案されてお
り、その中でレジスタファイルを共有することによるプ
ロセッサ間通信も提案されている。
【0005】第3の従来方法は、各プロセッサ毎に独立
のレジスタファイルを持ち、各レジスタファイルの間で
レジスタの内容をコピーすることによりプロセッサ間の
通信を行う方法である。各レジスタファイルは対応する
プロセッサが読み書きを行うポートだけでなく、他のレ
ジスタファイルに対して直接データを送受信するための
ポートを持ち、このポートを介して各レジスタの内容を
コピーする。レジスタファイル間では複数のレジスタの
内容を同時に送受信できる通信路を持つため、複数のレ
ジスタを同時にコピーすることが可能である。例えば特
開平−1078880号公報による方法では、各レジス
タファイルをバスに接続して任意のレジスタファイル間
で多対多の通信を行う方法や、各レジスタファイルをリ
ング状に接続して隣接するレジスタファイル間でのみ通
信を行う方法が提案されている。
【0006】
【発明が解決しようとする課題】第1の従来方法では、
レジスタファイル上のデータをプロセッサ間で通信する
には送信元のプロセッサがレジスタファイル上のデータ
を共有されたキャッシュあるいはメモリに転送し、受信
側のプロセッサがキャッシュあるいはメモリ上のデータ
をレジスタに転送しなければならず、プロセッサ間通信
に要する時間がどうしても長くなる傾向がある。これに
対して、第2の従来方法は、送信元のプロセッサが使用
しているレジスタを他のプロセッサが参照可能であり、
物理的なデータの移動を行うことなくプロセッサ間の通
信を行うことができ、また、第3の従来方法は、キャッ
シュやメモリを経由せずに各レジスタファイルの間でレ
ジスタの内容がコピーでき、何れも第1の従来方法に比
べて、プロセッサ間通信に要する時間を短縮できる。
【0007】しかし、第2の従来方法では、レジスタフ
ァイルをプロセッサ間で共有するが故にプロセッサの数
が増えるにつれて個々のプロセッサが高速にレジスタフ
ァイルにアクセスすることが困難になってくる。レジス
タファイルには読み書きのためのポートが各プロセッサ
分必要であり、このポート数が増加するとアクセスの動
作速度が低下するからである。
【0008】また、第3の従来方法も、各レジスタファ
イルをバスに接続する方法では、プロセッサの数が増え
るにつれてレジスタファイル間で高帯域な通信を行うこ
とが困難になってくる。1つのバスを複数のレジスタフ
ァイルで共有するため、レジスタファイルの数が増加す
ると1つのレジスタファイルあたりの通信容量が減少
し、またバスに接続されるレジスタファイルの数が増加
すると、バスの動作速度が低下し、バスの帯域が減少す
るからである。さらに、各レジスタファイルをリング状
に接続する方法では、隣接するレジスタファイルの間で
のみレジスタ内容のコピーが可能であるため、送信元の
プロセッサが隣接するプロセッサ以外のプロセッサと通
信する際は、その間に位置する全てのプロセッサを順次
に経由する必要があり、任意のプロセッサ間で通信を行
う必要がある場合に高速なプロセッサ間通信が困難にな
る。
【0009】
【発明の目的】本発明は以上の問題点に鑑み発案された
ものであり、多数のプロセッサを含むマルチプロセッサ
システムにおいても高速なプロセッサ間通信を実現する
ことを目的をする。
【0010】
【課題を解決するための手段】本発明では、マルチプロ
セッサシステムを構成するプロセッサ群をプロセッシン
グエレメントという複数のグループに分割し、同じプロ
セッシングエレメントに属するプロセッサ間では同一の
レジスタファイルを物理的に共有することでプロセッサ
間通信を行い、異なるプロセッシングエレメントに属す
るプロセッサ間ではバス経由でレジスタファイルの内容
を直接転送することでプロセッサ間通信を行う。このよ
うな方法によれば、相互に通信する頻度の高い幾つかの
プロセッサ毎にレジスタファイルを物理的に共有させる
ことで、それらのプロセッサ間で高速なプロセッサ間通
信が可能になり、また、レジスタファイルを物理的に共
有しないプロセッサ間でもバス経由によるレジスタファ
イルの直接転送でプロセッサ間通信が行える。
【0011】プロセッシングエレメント間をつなぐバス
としては、レジスタファイルに含まれる各レジスタに1
対1に対応するチャネルを有するバスを使用することで
高帯域な通信が実現できる。また、レジスタファイルに
含まれるレジスタの数より少ないチャネル数のバスを使
用し、複数のレジスタで1つのチャネルを共用すれば、
その分バスの帯域は減少するが、ハードウェア量が少な
く済む。
【0012】プロセッシングエレメント間をつなぐバス
は、1本のバスであっても良いが、1本のバスを多数の
プロセッシングエレメントで共有するとバス競合の確率
が高まって効率的な通信が困難になる。そこで本発明で
は、複数のバス及びバス間で相互にデータの中継を行う
ブリッジから構成されるバス構造を使用し、プロセッシ
ングエレメント群を複数のグループに分割し、同じグル
ープに属するプロセッシングエレメント間は同じ1つの
バス経由で通信し、異なるグループに属するプロセッシ
ングエレメント間はブリッジを用いて複数のバス経由で
通信する。より具体的には、複数の局所的バス、1以上
の大域的バス及びバス間で相互にデータの中継を行うブ
リッジから構成されるバス構造を使用し、プロセッシン
グエレメント群を複数のグループに分割し、同じグルー
プに属するプロセッシングエレメント間は同じ1つの局
所的バス経由で通信し、異なるグループに属するプロセ
ッシングエレメント間はブリッジを用いて複数のバス経
由で通信する。このような方法によれば、相互に通信す
る頻度の高い幾つかのプロセッシングエレメント毎に同
じ局所的バスに接続することでそれらのプロセッシング
エレメント間では1本のバス経由による高速なプロセッ
サ間通信が可能になり、また、異なる局所的バスに接続
されるプロセッシングエレメント間でも複数の局所的バ
ス、ブリッジ及び大域的バス経由によるレジスタファイ
ルの直接転送でプロセッサ間通信が行える。
【0013】局所的バスおよび局所的バス間を相互に接
続するための大域的バスから構成される階層的なバス構
造を使用する場合、異なるプロセッサ間通信で生じ得る
各バス上での競合を如何に解消するかが1つの課題であ
る。各バス毎に設けたバス調停回路や全バス共通に設け
た1つのバス調停回路によって動的にバス競合を解消す
る方法は多くのハードウェアが必要になる上、バス調停
に要する時間がオーバヘッドとなる。そこで本発明で
は、プロセッシングエレメント間をバス経由でつなぐル
ートであって他のルートとバス競合が発生しない1以上
のルートを事前に決定し、該決定したルートによるプロ
セッサ間通信のみを行わせる。これにより、少ないハー
ドウェアでオーバヘッドの少ないプロセッサ間通信が可
能となる。
【0014】また本発明では、より高帯域なプロセッサ
間通信を実現するために、異なるプロセッサ間通信でバ
スを時分割的に使用する方法、バスを1レジスタ分の幅
に相当するチャネルと呼ぶ通信路に分割して異なるプロ
セッサ間通信で同じバスを空間分割的に使用する方法、
それらを組み合わせた方法を採用する。
【0015】異なるプロセッサ間通信でバスを時分割的
に使用する場合、プロセッシングエレメント間をバス経
由でつなぐルートであって他のルートと同一バス上で時
間的に競合が発生しない1以上のルート及び各ルートの
各バスの使用時刻を事前に決定し、この決定されたルー
ト及び使用時刻によるプロセッサ間通信のみを行わせ
る。これを実現する具体的な方法は、第1の方法とし
て、プロセッサを時刻に同期させて動作させ、前記決定
されたルート及び使用時刻によるプロセッサ間通信のみ
実施するよう各プロセッサをプログラミングしておき、
各ブリッジは前記決定されたルート及び使用時刻による
プロセッサ間通信のみデータの中継動作を行う方法があ
る。
【0016】また第2の方法として、プロセッシングエ
レメント内のレジスタファイルの内容を該プロセッシン
グエレメントに属するプロセッサからの送信要求に従っ
てバス経由で送信する制御を司る送信制御部で、前記決
定されたルート及び使用時刻によるプロセッサ間通信の
み実施されるよう制御し、各ブリッジは前記決定された
ルート及び使用時刻によるプロセッサ間通信のみデータ
の中継動作を行う方法がある。具体的には、時刻による
入出力制御を行うためのタイムテーブルをプロセッシン
グエレメント内に、また時刻による中継制御を行うため
のタイムテーブルをブリッジ内にそれぞれ設け、これら
のタイムテーブルを用いることよってプロセッシングエ
レメントにおける入出力制御及びブリッジにおける経路
制御を時刻に対して一意に定め、プロセッサから送信要
求が行われたときにプロセッシングエレメント内の送信
制御部は時刻を元にタイムテーブルを参照してレジスタ
からバスへのデータの出力制御を行い、ブリッジは時刻
を元にタイムテーブルを参照してバス間のデータの中継
処理を行い、さらにプロセッシングエレメント内の受信
制御部は時刻を元にタイムテーブルを参照してバスから
レジスタへのデータの入力制御を行う。あるいは、コネ
クション番号もしくはデータの宛先による入出力制御を
行うためのコネクションテーブル及び時刻による入出力
制御を行うためのタイムテーブルをプロセッシングエレ
メント内に、コネクション番号もしくはデータの宛先に
よる中継制御を行うためのコネクションテーブルをブリ
ッジ内に、コネクション番号もしくはデータの宛先を制
御情報として伝達するための制御用チャネルをバス内に
それぞれ設け、プロセッサからデータを出力する際には
コネクション番号もしくは宛先を制御情報として送信要
求を行い、プロセッシングエレメント内の送信制御部は
制御情報を元にコネクションテーブル及びタイムテーブ
ルを参照してバスへのデータ及び制御情報の出力制御を
行い、ブリッジは制御チャネルから受信した制御情報を
元にコネクションテーブルを参照してバス間のデータ及
び制御情報の中継処理を行い、さらにプロセッシングエ
レメント内の受信制御部は受信した制御情報を元にコネ
クションテーブルを参照してバスからレジスタへのデー
タの入力制御を行う。
【0017】異なるプロセッサ間通信で同じバスを空間
分割的に使用する場合、プロセッシングエレメント間を
バス経由でつなぐルートであって他のルートと同一バス
の同一チャネル上で競合が発生しない1以上のルートを
事前に決定し、バスをチャネル単位で空間分割的に使用
することにより、前記決定されたルートによるプロセッ
サ間通信のみを行わせる。これを実現する具体的な方法
は、第1の方法として、前記決定されたルートによるプ
ロセッサ間通信のみ実施するよう各プロセッサをプログ
ラミングしておき、各ブリッジは前記決定されたルート
によるプロセッサ間通信のみデータの中継動作を行う方
法がある。
【0018】また第2の方法として、プロセッシングエ
レメント内のレジスタファイルの内容を該プロセッシン
グエレメントに属するプロセッサからの送信要求に従っ
てバス経由で送信する制御を司る送信制御部で、前記決
定されたルートによるプロセッサ間通信のみ実施される
よう制御し、各ブリッジは前記決定されたルートによる
プロセッサ間通信のみデータの中継動作を行う方法があ
る。具体的には、入出力制御を行うための接続テーブル
をプロセッシングエレメント内にチャネル毎に設け、中
継制御を行うための接続テーブルをブリッジ内にチャネ
ル毎に設け、これらの接続テーブルを用いることよって
プロセッシングエレメントにおける入出力制御及びブリ
ッジにおける経路制御を各チャネル別に定め、プロセッ
サからデータを出力する際には1つ以上のレジスタを選
んで送信要求を行い、プロセッシングエレメント内の送
信制御部は送信要求が行われた各レジスタに対応するチ
ャネルに関する接続テーブルを参照して各レジスタから
バスへのデータの出力制御をチャネル毎に行い、ブリッ
ジは各チャネルに関する接続テーブルを参照してバス間
のデータの中継処理をチャネル毎に行い、さらにプロセ
ッシングエレメント内の受信制御部は各チャネルに関す
る接続テーブルを参照してバスからレジスタへのデータ
の入力制御をチャネル毎に行う。
【0019】異なるプロセッサ間通信でバスを時分割的
かつ空間分割的に使用する場合、プロセッシングエレメ
ント間をバス経由でつなぐルートであって他のルートと
同一バスの同一チャネル上で時間的に競合が発生しない
1以上のルート及び各ルートの各バスのチャネルの使用
時刻を事前に決定し、バスをチャネル単位で時分割的か
つ空間分割的に使用することにより、前記決定されたル
ート及び使用時刻によるプロセッサ間通信のみを行わせ
る。これを実現する具体的な方法は、第1の方法とし
て、プロセッサを時刻に同期させて動作させ、前記決定
されたルート及び使用時刻によるプロセッサ間通信のみ
実施するよう各プロセッサをプログラミングしておき、
各ブリッジは前記決定されたルート及び使用時刻による
プロセッサ間通信のみデータの中継動作を行う方法があ
る。
【0020】また第2の方法として、プロセッシングエ
レメント内のレジスタファイルの内容を該プロセッシン
グエレメントに属するプロセッサからの送信要求に従っ
てバス経由で送信する制御を司る送信制御部で、前記決
定されたルート及び使用時刻によるプロセッサ間通信の
み実施されるよう制御し、各ブリッジは前記決定された
ルート及び使用時刻によるプロセッサ間通信のみデータ
の中継動作を行う方法がある。具体的には、時刻による
入出力制御を行うためのタイムテーブルをプロセッシン
グエレメント内に、また時刻による中継制御を行うため
のタイムテーブルをブリッジ内にそれぞれチャネル毎に
設け、これらのタイムテーブルを用いることよってプロ
セッシングエレメントにおける入出力制御及びブリッジ
における経路制御を各チャネル毎に時刻に対して一意に
定め、プロセッサから送信要求が行われたときにプロセ
ッシングエレメント内の送信制御部は時刻を元に各タイ
ムテーブルを参照してレジスタからバスへのデータの出
力制御をチャネル毎に行い、ブリッジは時刻を元に各タ
イムテーブルを参照してバス間のデータの中継処理をチ
ャネル毎に行い、さらにプロセッシングエレメント内の
受信制御部は時刻を元に各タイムテーブルを参照してバ
スからレジスタへのデータの入力制御をチャネル毎に行
う。あるいは、コネクション番号もしくはデータの宛先
による入出力制御を行うためのコネクションテーブル及
び時刻による入出力制御を行うためのタイムテーブルを
プロセッシングエレメント内に、コネクション番号もし
くはデータの宛先による中継制御を行うためのコネクシ
ョンテーブルをブリッジ内に、コネクション番号もしく
はデータの宛先を制御情報として伝達するための制御用
チャネルをバス内にそれぞれチャネル毎に設け、プロセ
ッサからデータを出力する際にはコネクション番号もし
くは宛先を制御情報として送信要求を行い、プロセッシ
ングエレメント内の送信制御部は制御情報を元に各コネ
クションテーブル及び各タイムテーブルを参照してバス
へのデータ及び制御情報の出力制御をチャネル毎に行
い、ブリッジは制御チャネルから受信した制御情報を元
に各コネクションテーブルを参照してバス間のデータ及
び制御情報の中継処理をチャネル毎に行い、さらにプロ
セッシングエレメント内の受信制御部は受信した制御情
報を元に各コネクションテーブルを参照してバスからレ
ジスタへのデータの入力制御をチャネル毎に行う。
【0021】前述した第2の方法を用いる場合、各プロ
セッシングエレメント内の送信制御部は、送信要求が出
された後、実際にデータがバスに出力されるまでの間、
送信要求にかかるレジスタに対するプロセッサからの書
き込みを禁止する。また、受信予定のレジスタファイル
の内容を読み出し禁止にしておき、受信制御部がバス経
由で受信したデータをプロセッシングエレメント内のレ
ジスタファイルに入力した時点で読み出し可能に変更す
る。
【0022】
【発明の実施の形態】次に本発明の実施の形態の例につ
いて図面を参照して詳細に説明する。
【0023】
【実施例1】図1は本発明を適用したマルチプロセッサ
システムの第一の実施例の構成を示すブロック図であ
る。本実施例においてマルチプロセッサシステム1は、
1つのレジスタファイル及びこれを共有する複数のプロ
セッサを含む複数のプロセッシングエレメント2-1 〜2-
24、近接するプロセッシングエレメント間で通信を行う
ための局所的バス3-1 〜3-12、離れたプロセッシングエ
レメント間で通信を行うための大域的バス5-1 〜5-14、
大域的バス間および局所的バスと大域的バス間を接続す
るブリッジ4-1 〜4-12で構成される。以下では局所的バ
スと大域的バスを区別せずに呼ぶ場合、単にバスと呼
ぶ。
【0024】ここで、プロセッシングエレメント間が近
接するとは、例えばマルチプロセッサシステム1を構成
するプロセッサが1つの半導体上に集積されている場
合、その半導体上での距離が近い場合を指す。この場
合、局所的バス3-1 〜3-12および大域的バス5-1 〜5-1
4、ブリッジ4-1 〜4-12も同じ半導体上に集積される。
また、各プロセッサを別々の半導体上に集積し、これら
複数の半導体が基板上に実装されている場合、その基板
上での距離が近い場合を指す。この場合、局所的バス3-
1 〜3-12および大域的バス5-1 〜5-14、ブリッジ4-1 〜
4-12は基板上に実装される。多くのプロセッサ及びバス
を1つの半導体上に集積する1つの利点は、プロセッサ
間の通信に大きな帯域幅を取ることができることであ
る。また、各プロセッサを別々の半導体上に実装した場
合であっても、実装技術の進展によりプロセッサ間の通
信に従来より大きな帯域幅をとることが可能である。
【0025】プロセッシングエレメントは、マルチプロ
セッサシステム1上で2次元配列状に配置され、局所的
バスを用いて横方向に隣接した1つ以上のプロセッシン
グエレメント間で通信を行う。各局所的バスにはそれぞ
れ1つのブリッジが接続されており、横方向の大域的バ
ス5-1 〜5-6 及び縦方向の大域的バス5-7 〜5-14によっ
て前記ブリッジ間の通信を行う。横方向の大域的バスは
横方向に隣接した1つ以上のブリッジを接続し、図1の
ように複数の大域的バスを用いて横方向の一列のブリッ
ジを接続する。隣接する2つの横方向の大域的バスはそ
の端点において1つのブリッジに接続され、このブリッ
ジを介して通信を行う。縦方向の大域的バスは縦方向に
隣接した1つ以上のブリッジを接続する。縦方向の大域
的バスも、横方向の大域的バスと同様に、複数の大域的
バスを用いて縦方向の一列のブリッジを接続する。局所
的バス及び大域的バスは後述するように複数のチャネル
で構成される。
【0026】図2は、本実施例におけるプロセッシング
エレメント2-1 の構成を示す。プロセッシングエレメン
ト2-2 〜2-24も全てプロセッシングエレメント2-1 と同
様の構成である。プロセッシングエレメント2-1 は、レ
ジスタファイル20と、このレジスタファイル20を共有す
る形で相互に通信するプロセッサ21-1〜21-2で構成され
る。レジスタファイル20は、プロセッサ21-1〜21-2で物
理的に共有される複数のレジスタ22-1〜22-3、各レジス
タに対してそれぞれ1つずつ接続する送信ゲート23-1〜
23-3及び受信ゲート24-1〜24-3、全送信ゲートを制御す
る送信制御部25、全受信ゲートを制御する受信制御部2
6、送信制御部25と受信制御部26に局所的バスとレジス
タの間の接続情報を与える接続テーブル27、各プロセッ
サ21-1〜21-2からの送信要求の和をとる論理和回路28で
構成される。本例では、3つのレジスタ22-1〜22-3を2
台のプロセッサ21-1〜21-2で共有したが、共有レジスタ
数は3つに限定されず、またプロセッサ数も2台に限定
されない。
【0027】また図2に示すように、局所的バス3-1 は
複数のチャネル31-1-1〜31-1-3で構成される。各チャネ
ルは本実施例ではレジスタファイル上の各レジスタ22-1
〜22-3と1対1に対応する。各チャネル31-1-1〜31-1-3
は、1レジスタ分の幅に相当するデータチャネルであ
る。
【0028】図3は、本実施例におけるブリッジ4-1 の
構成を示す。ブリッジ4-2 〜4-12も基本的に本図と同様
の構成であるが、ブリッジに接続されるバスの数によっ
て中継回路内のレジスタ42-1〜42-3及び選択回路43-1〜
43-3の個数が異なる。ブリッジ4-1 は各バスの同じチャ
ネル毎に設けられた中継回路41-1〜41-3と、各バス間の
接続情報を与える接続テーブル44とで構成され、中継回
路41-1は各バス毎に設けられたレジスタ42-1〜42-3とそ
の出力の何れか1つを選択してバスに出力する選択回路
43-1〜43-3とで構成される。中継回路41-2及び41-3は中
継回路41-1と同じ構成であるため、ここではその構成を
省略した。
【0029】また、図3に示すように、大域的バス5-1
及び5-7 は局所的バス3-1 と同じく、それぞれ同じ数の
複数のチャネル51-1-1〜51-1-3、チャネル51-7-1〜51-7
-3で構成される。
【0030】本実施例においては、プロセッシングエレ
メント間をバス経由でつなぐルートであって他のルート
とバス競合が発生しない1以上のルートを事前に決定
し、この決定したルートによるプロセッサ間通信のみを
許可する。例えば図1において、プロセッシングエレメ
ント2-1 とプロセッシングエレメント2-24との間をバス
経由でつなぐルートとしては、例えば局所的バス3-1 →
大域的バス5-7 →大域低バス5-11→大域的バス5-5 →大
域的バス5-6 →局所的バス3-12のルートがある。若し、
このルートによるプロセッサ間通信を許可した場合、こ
のルートが使用するバスを使う他のルートによるプロセ
ッサ間通信は許可しない。しかし、このルートが使用し
ないバスを使う他のルートであれば許可できる。例え
ば、プロセッシングエレメント2-3 からプロセッシング
エレメント2-8 へのルートである、局所的バス3-2 →大
域的バス5-1 →大域的バス5-2 →局所的バス3-4 のルー
トによるプロセッサ間通信は可能である。
【0031】プロセッサ間通信を許可するプロセッシン
グエレメントの組及びそれに使うルートが決定したら、
そのルートによるプロセッサ間通信のみ許可するよう
に、各プロセッシングエレメント内の接続テーブル27及
び各ブリッジ内の接続テーブル44の内容を事前に設定す
る。接続テーブル27の設定例を図4に、接続テーブル44
の設定例を図5にそれぞれ示す。
【0032】図4を参照すると、プロセッシングエレメ
ント2-1 内の接続テーブル27は、各レジスタ22-1〜22-3
毎に、当該レジスタを局所的バス3-1 に接続可能か否か
の情報を送受信別に保持する。図4の例ではレジスタ22
-1及びレジスタ22-2は局所的バスにデータの送信が可能
であり、レジスタ22-2及びレジスタ22-3は局所的バスか
らのデータの受信が可能であることを示している。ここ
で、接続テーブル27は基本的には接続可、接続不可の何
れかを示す1ビットの情報で足りる。図4の例で、レジ
スタ別および送受信別に可否を設定してあるのは、真に
送受信の必要なレジスタのみを送受信することで、送受
信不要なレジスタを送受信することによる無駄なバス駆
動を抑え、消費電力を削減するためである。他のプロセ
ッシングエレメント内の接続テーブルも、許可されたル
ートによるプロセッサ間通信のみが可能なように設定さ
れる。
【0033】図5を参照すると、ブリッジ4-1 内の接続
テーブル44は、各バス内のそれぞれのチャネルに対し
て、該チャネルに送信するデータを受信するバスを記述
する。図5の例では、局所的バス3-1 のチャネル1は送
信が不可能であり、チャネル2、3には大域的バス5-7
の同チャネルから受信したデータを送信することが可能
であることを示している。他のブリッジ内の接続テーブ
ルも、許可されたルートによるプロセッサ間通信のみが
可能なように設定される。
【0034】次に図1から図5を参照して本実施例のマ
ルチプロセッサシステムにおけるプロセッサ間通信の動
作を説明する。
【0035】まず、同じプロセッシングエレメントに属
するプロセッサ間での通信を説明する。図2を参照する
と、同じプロセッシングエレメントに属するプロセッサ
21-1〜21-2は、プロセッサ毎独立のレジスタファイルを
持たず、第2の従来技術と同様に複数のプロセッサが同
時に読み書きできるよう複数のポートを備えたレジスタ
22-1〜22-3を物理的に共用する。このため、送信元のプ
ロセッサが使用しているレジスタを他のプロセッサが参
照することで、物理的なデータの移動を行うことなくプ
ロセッサ間の通信が行われる。
【0036】次に、プロセッシングエレメント2-1 及び
2-2 を用いて、同じ局所的バスに接続されたプロセッシ
ングエレメント間での通信を説明する。ただし、ここで
はプロセッシングエレメント2-1 及び2-2 の構成が同じ
であるため、共に図2を参照する。プロセッシングエレ
メント2-1 内のプロセッサ21-1もしくは21-2が送信制御
部25に対して送信要求を行うと、送信制御部25は接続テ
ーブル27を参照して送信の可否および送信可能な場合は
送信を行うレジスタを決定する。プロセッサによる送信
要求では各レジスタについてそれぞれ送信を行うか否か
を指定し、複数のプロセッサからの送信要求は論理和回
路28によって各レジスタ毎にそれぞれの論理和をとって
送信制御部25に伝えられる。送信要求が行われたレジス
タが接続テーブル27において送信可能であると示されて
いる場合、送信制御部25は該レジスタに対応する送信ゲ
ートに対して送信要求を伝える。送信ゲートは送信要求
が伝えられると、レジスタの内容を局所的バス3-1 に出
力する。送信要求が行われたレジスタが接続テーブル27
において送信不可であると記されている場合には、送信
制御部25はこの送信要求を却下し、送信ゲートには指示
を与えない。
【0037】プロセッシングエレメント2-2 では、受信
制御部26によって受信ゲート24-1〜24-3の開閉を制御す
る。受信制御部26では接続テーブル27を参照し、受信可
能とされているレジスタに関して、該レジスタに対応す
る受信ゲートに受信可能であることを伝える。受信ゲー
トは局所的バスを監視し、接続されたチャネル上に他の
プロセッシングエレメントによってデータが出力されて
おり、かつ受信制御部によって受信が許可されている場
合は局所的バスからレジスタへとデータを入力する。
【0038】同じ局所的バスに接続されたプロセッシン
グエレメント間での通信は、以上のようにして実現さ
れ、それに要する時間は1クロックである。つまり、或
るクロックで送信側プロセッシングエレメントのレジス
タファイルから送信されたデータは次のクロックで受信
側プロセッシングエレメントのレジスタファイルに書き
込まれる。
【0039】次に、離れたプロセッシングエレメント間
での通信を説明する。例として、プロセッシングエレメ
ント2-1 及び2-24間の通信が、局所的バス3-1 →大域的
バス5-7 →大域的バス5-11→大域的バス5-5 →大域的バ
ス5-6 →局所的バス3-12のルートで事前に許可されてい
るものとして、そのルートによる通信を説明する。
【0040】プロセッシングエレメント2-1 から局所的
バス3-1 へのデータ出力は、プロセッシングエレメント
2-1 からプロセッシングエレメント2-2 への通信で説明
した場合と同様に行われる。ブリッジ4-1 は、接続され
ている局所的バス3-1 もしくは大域的バス5-1 、5-7 上
の各チャネルにデータが出力されていると、これを中継
回路41-1〜41-3内のレジスタに取り込む。選択回路では
接続テーブル44を参照し、自らが接続されているバスに
対して、該テーブルで指示されたバスから入力したデー
タを出力する。このようにしてプロセッシングエレメン
ト2-1 から局所的バス3-1 に出力されたデータは大域的
バス5-1 に中継される。ブリッジ4-5 、4-9 、4-11、4-
12も同様にしてデータの中継を行い、最終的にデータは
局所的バス3-12に到達する。プロセッシングエレメント
2-24は、プロセッシングエレメント2-1 からプロセッシ
ングエレメント2-2 への通信で説明した場合と同様にし
て、局所的バス3-12上に出力されたデータをレジスタフ
ァイルに取り込む。
【0041】異なる局所的バスに接続されたプロセッシ
ングエレメント間での通信は、以上のようにして実現さ
れ、それに要する時間は、経由するブリッジの数をnと
すると、1+nクロックである。即ち、各ブリッジはバ
スを流れるデータを選択的に受信して、そのデータを次
のクロックで出力するというスイッチ動作を行うため、
同じ局所的バスに接続されたプロセッシングエレメント
間での通信に比べて、経由するブリッジの段数分の遅延
が加算される。
【0042】本実施例のマルチプロセッサシステムで
は、同じプロセッシングエレメント内のプロセッサ間で
はレジスタファイルを物理的に共有している為、瞬時の
プロセッサ間通信が可能であり、また同じ局所的バスに
接続されたプロセッシングエレメント間では高々1クロ
ックで通信できる。従って、各プロセッシングエレメン
ト毎にそれぞれ独立な並列処理を割り当てたり、同じ局
所的バスに接続された2つのプロセッシングエレメント
単位でそれぞれ独立な並列処理を割り当てることで、複
数の並列処理を高速に実行することが可能となる。ま
た、異なる局所的バスに接続されたプロセッシングエレ
メント間でも大域的バスおよびブリッジ経由による通信
が可能であるため、異なる局所的バスに接続された2つ
のプロセッシングエレメント単位でそれぞれ独立な並列
処理を割り当てることもできる。
【0043】
【実施例2】本発明を適用したマルチプロセッサシステ
ムの第2の実施例の全体構成は図1に示された構成と同
様であり、本実施例ではプロセッシングエレメント及び
ブリッジの構成が異なる。
【0044】図6は、本実施例におけるプロセッシング
エレメント100 の構成を示す。プロセッシングエレメン
ト100 は第1の実施例によるプロセッシングエレメント
2-1〜2-24とほぼ同様の構成であり、異なる点は、レジ
スタファイル101 において接続テーブル27がなく、接続
テーブル27に代わって送信制御部104 及び受信制御部10
5 に各時刻毎の接続情報を与えるタイムテーブル102 、
及びタイムテーブル102 に現在時刻を与えるタイマ103
を有することであり、さらに送信制御部104 及び受信制
御部105 の動作が第1の実施例とは異なる。また、同じ
プロセッシングエレメントに属するプロセッサ21-1〜21
-2で物理的に共有されるレジスタ106-1〜106-3 は、デ
ータを保持するだけでなく、書き込み可否と読み出し可
否の状態も保持するため、書き込み禁止フラグ、読み出
し禁止フラグを有する。さらに本プロセッシングエレメ
ント100 の動作モードを指定するモードフラグ107 が設
けられている。
【0045】図7は、本実施例におけるブリッジ110 の
構成を示す。ブリッジ110 は第1の実施例によるブリッ
ジ4-1 〜4-12とほぼ同様の構成であり、異なる点は接続
テーブル44がなく、接続テーブル44に代わって中継回路
41-1〜41-3に各時刻毎の接続情報を与えるタイムテーブ
ル112 、及びタイムテーブル112 に現在時刻を与えるタ
イマ111 を有することである。
【0046】本実施例においても第1の実施例と同じ
く、プロセッシングエレメント間をバス経由でつなぐル
ートであって他のルートとバス競合が発生しない1以上
のルートを事前に決定する。しかし、本実施例では、局
所的バス及び大域的バスを時分割的に使用することによ
り、送信時刻をずらせば他のルートとバス競合が発生し
ないルートによるプロセッサ間通信も可能にする。例え
ば図1において、プロセッシングエレメント2-1 とプロ
セッシングエレメント2-24との間をバス経由でつなぐル
ートとしては、例えば局所的バス3-1 →大域的バス5-7
→大域低バス5-11→大域的バス5-5 →大域的バス5-6 →
局所的バス3-12のルートR1がある。このルートR1に
よるプロセッサ間通信を許可した場合、第1の実施例で
は、ルートR1が使用するバスを使う他のルートによる
プロセッサ間通信は許可できなかった。しかし、ルート
R1によって各バスが使用される時刻を予めスケジュー
ルしておけば、そのバスがルートR1によって使用され
ない時刻に他のルートで使用することができる。
【0047】そこで本実施例では、各プロセッシングエ
レメント内および各ブリッジ内に設けたタイマ103 およ
び111 を全て同期させ、時刻1から1時刻ずつカウント
アップして時刻nに達したら、次は再び時刻1に戻って
カウントアップを続けるような周期的カウンタとする。
そして、時刻1から時刻nまでを1周期とし、その1周
期内にバス競合が発生しないような各プロセッサ間通信
の送信スケジュールを事前に割り付ける。例えば、前記
ルートR1は、局所的バス3-1 を時刻1、大域的バス5-
7 を時刻2、…、局所的バス3-12を時刻6にそれぞれ使
用するようにスケジュールし、例えばプロセッシングエ
レメント2-2 と2-10間のプロセッサ間通信に使うルート
R2は、局所的バス3-1 を時刻2、大域的バス5-7 を時
刻3、局所的バス3-5 を時刻4にそれぞれ使用するよう
にスケジュールする。1周期は、少なくとも最長距離の
ルートがスケジュールできる周期以上あれば良く、より
長くすることもできる。同じルートによるプロセッサ間
通信を1周期内に複数スケジュールすることも可能であ
る。
【0048】このようにして各プロセッサ間通信の送信
スケジュールが決定したら、その送信スケジュールによ
るプロセッサ間通信のみ許可するように、各プロセッシ
ングエレメント内のタイムテーブル102 及び各ブリッジ
内のタイムテーブル112 の内容を事前に設定する。タイ
ムテーブル102 の設定例を図8に、タイムテーブル112
の設定例を図9にそれぞれ示す。
【0049】図8を参照すると、各プロセッシングエレ
メント内のタイムテーブル102 は各時刻及び各レジスタ
毎に、レジスタの内容を局所的バスに送信可能か否か
と、局所的バス上のデータをレジスタに受信可能か否か
の情報を保持する。図7の例では時刻1に、レジスタ10
6-1 及びレジスタ106-2 が局所的バスに対してデータの
送信が可能であり、レジスタ106-2 及びレジスタ106-3
が局所的バスからのデータの受信が可能であり、さら
に、時刻2では一切のデータの送信及び受信が不可能で
あることが示されている。ここで、タイムテーブル102
は基本的には各時刻毎に接続可否を示す1ビットの情報
で足りる。図8の例で、レジスタ別および送受信別に可
否を設定してあるのは、無駄なレジスタの送受信を防止
するためである。
【0050】図9を参照すると、各ブリッジ内のタイム
テーブル112 は、各バス内のそれぞれのチャネルに対し
て、該チャネルに送信するデータを受信するバスを各時
刻毎に記述する。図9の例では、局所的バス3-1 の各チ
ャネルに対して、時刻1にはチャネル1及び2は送信不
可能であり、チャネル3には大域的バス5-7 の同チャネ
ルから受信したデータを送信可能であり、時刻2には各
チャネル共データの送信は不可能であることを示してい
る。
【0051】次に図6から図9を参照して本実施例のマ
ルチプロセッサシステムにおけるプロセッサ間通信の動
作を、第1の実施例との差異を中心に説明する。なお、
本実施例の全体的な動作は第一の実施例と同様であるた
め、ここではプロセッシングエレメント100 及びブリッ
ジ110 の動作を説明する。
【0052】プロセッシングエレメント100 は同期動作
モードと非同期動作モードの2種類の動作モードを持
ち、何れの動作モードで立ち上げられたかがモードフラ
グ107に設定されている。同期動作モードで動作するプ
ロセッシングエレメント内の全てのプロセッサは、タイ
マ103 と同様なタイマによってお互いに同期して事前の
送信スケジュール通りに動作するようプログラミングさ
れており、レジスタファイル及びブリッジとも同期して
動作する。すなわちこれらは全て同じ時刻を用いて動作
しており、確認や応答を行わなくても通信を行うことが
できる。対して非同期動作モードで動作するプロセッシ
ングエレメント内のプロセッサはそれぞれ同期を取らず
に動作しており、レジスタファイル及びブリッジとも同
期していないため、プロセッサ間で通信を行う際には何
らかの制御が必要である。
【0053】まずはじめに同期動作モードにおけるプロ
セッシングエレメント100 の動作を説明する。プロセッ
シングエレメント100 内のプロセッサ21-1もしくは21-2
が送信制御部104 に対して送信要求を行うと、送信制御
部104 はタイムテーブル102を参照して送信を行うレジ
スタを決定する。プロセッサによる送信要求では各レジ
スタについてそれぞれ送信を行うか否かを指定し、複数
のプロセッサからの送信要求は論理和回路28によって各
レジスタ毎にそれぞれの論理和をとって送信制御部104
に伝えられる。送信要求が行われたレジスタが、タイム
テーブル102 においてタイマ103 により与えられた時刻
に送信可能であると示されていると、送信制御部104 は
該レジスタに対応する送信ゲートに対して送信要求を伝
える。送信ゲートは送信要求が伝えられると、レジスタ
の内容を局所的バス3-1 に出力する。プロセッサによっ
て送信要求が行われたレジスタが、タイムテーブル102
において送信不可であると示されている場合、送信制御
部104 はこの送信要求を却下する。ただし、プロセッサ
とレジスタファイルは同期して動作しているため、タイ
ムテーブル102 の設定もしくはプロセッサに与えるプロ
グラムに誤りが無い限り、このような事は発生しない。
【0054】次に非同期動作モードにおけるプロセッシ
ングエレメント100 の動作を説明する。プロセッシング
エレメント100 内のプロセッサ21-1もしくは21-2が送信
制御部104 に対して送信要求を行うと、送信制御部104
はタイムテーブル103 を参照して送信を行うレジスタを
決定する。送信要求が行われたレジスタが送信可能と判
断された場合の動作は、同期動作モードの場合の動作と
同様である。非同期動作モードではプロセッサとレジス
タファイルは同期していないため、送信要求が送信不可
能と判断されるレジスタがある。この場合、該レジスタ
に対する送信要求を送信制御部104 内で保持し、該レジ
スタの書き込み禁止フラグをセットして書き込み禁止に
設定する。時刻が経過し、保持されている送信要求にか
かるレジスタが送信可能となれば、送信制御部104 は該
レジスタに対応する送信ゲートに対して送信要求を伝
え、同時に該レジスタに対する送信要求を廃棄し且つ書
き込み禁止フラグをリセットして書き込み禁止状態を解
除する。
【0055】受信制御部105 による局所的バスからレジ
スタへのデータ出力の動作は第1の実施例と同様である
が、本実施例においてはタイムテーブル102 から受信制
御部105 に与えられる接続情報が時刻毎に変化する。も
しプロセッサ21-1〜21-2がレジスタに対して読み出し禁
止を設定している場合、該レジスタに対してデータの受
信があれば受信制御部105 は該レジスタの読み出し禁止
を解除する。これは非同期動作モードのプロセッシング
エレメントにおいて、必要なデータが到着するまで該デ
ータを格納する予定であるレジスタを読み出し禁止にし
て、データがまだ到着していないことを示すためであ
る。
【0056】本実施例におけるブリッジの動作は第1の
実施例におけるブリッジ4-1 の動作とほぼ同様であり、
異なる点はタイムテーブル112 から与えられる接続情報
が時刻毎に変化することである。
【0057】本実施例のマルチプロセッサシステムは、
局所的バスおよび大域的バスを時分割的に使用するた
め、第1の実施例のマルチプロセッサシステムと異な
り、全てのプロセッシングエレメント間に通信のルート
を設定することが可能である。なお、送信側プロセッシ
ングエレメント及び受信側プロセッシングエレメントは
共に同じ動作モードに設定しておくのが基本であるが、
送信側プロセッシングエレメントが同期動作モードの場
合、受信側プロセッシングエレメントは非同期動作モー
ドであっても良い。
【0058】
【実施例3】本発明を適用したマルチプロセッサシステ
ムの第3の実施例の全体構成は図1に示された構成と同
様であり、本実施例ではプロセッシングエレメント及び
ブリッジの構成が異なる。また本実施例ではバス上にデ
ータだけが送信されるのではなく、データの通信経路を
制御するための制御情報としてコネクション番号も同時
に送信される。そのため、後述するように局所的バス及
び大域的バスはそれぞれ1つの制御チャネルを持つ。
【0059】図10は、本実施例におけるプロセッシン
グエレメント120 の構成を示し、併せて局所的バスの構
成を示している。全ての局所的バスは、局所的バス3-1
に例示するようにデータ用のチャネル31-1-1〜31-1-3に
加えて、1つの制御チャネル32-1を有する。また、プロ
セッシングエレメント120 は第1の実施例によるプロセ
ッシングエレメント2-1 〜2-24とほぼ同様の構成であ
り、異なる点は、レジスタファイル121 において接続テ
ーブル27がなく、接続テーブル27に代わって送信制御部
124 及び受信制御部125 に接続情報を与えるコネクショ
ンテーブル122 及びタイムテーブル123 と、タイムテー
ブル123 に現在時刻を与えるタイマ128 とを有すること
であり、さらに送信制御部124 及び受信制御部125 の動
作が異なる。またプロセッシングエレメント120 では論
理和回路を持たず、各プロセッサ127-1 〜127-2 がそれ
ぞれ直接送信制御部124 に接続されている。レジスタ12
6-1〜126-3 はデータを保持するだけでなく、書き込み
可否と読み出し可否の情報も保持するため、書き込み禁
止フラグ及び読み出し禁止フラグを有する。さらに本プ
ロセッシングエレメント120 の動作モードを指定するモ
ードフラグ107 が設けられている。
【0060】図11は、本実施例におけるブリッジ130
の構成を示し、併せて大域的バスの構成を示している。
全ての大域的バスは、大域的バス5-1 、5-7 に例示する
ようにデータ用のチャネル51-1-1〜51-1-3、51-7-1〜51
-7-3に加えて、1つの制御チャネル52-1、52-7を有す
る。ブリッジ130 は第1の実施例によるブリッジ4-1 〜
4-12とほぼ同様の構成であり、異なる点は接続テーブル
44がなく、制御チャネル上の制御情報の中継を行う中継
回路41-4、制御チャネル上の制御情報をもとに中継回路
41-1〜41-4に接続情報を与える中継制御部131 、中継制
御部131 にコネクション情報を与えるコネクションテー
ブル132 を有することである。
【0061】本実施例においても第1の実施例と同じ
く、プロセッシングエレメント間をバス経由でつなぐル
ートであって他のルートとバス競合が発生しない1以上
のルートを事前に決定する。また第2の実施例と同じ
く、局所的バス及び大域的バスを時分割的に使用するこ
とにより、送信時刻をずらせば他のルートとバス競合が
発生しないルートによるプロセッサ間通信も可能にす
る。しかし、本実施例では、データの通信経路を制御す
るための制御情報としてコネクション番号を使用するこ
とにより、ブリッジ経由の通信ルート数が少ない場合
に、そのブリッジで保有すべきテーブルの容量を削減し
ている。即ち第2の実施例では、各ブリッジは、自ブリ
ッジを経由するルートの数に関係なく時刻1から時刻n
までのエントリを持つタイムテーブルが必要であった
が、本実施例では、自ブリッジを経由するルートの数分
だけのエントリを持つコネクションテーブルで済む。
【0062】また、本実施例では、バス競合が発生する
複数のルートによるプロセッサ間通信であっても、それ
ら複数のルートによるプロセッサ間通信が同時に起動さ
れない場合には、実際にはバス競合が起きない点に着目
し、送信元プロセッサが同じ時刻にそれぞれ異なるプロ
セッサ間通信を択一的に起動できるようにしている。例
えば図1において、プロセッシングエレメント2-1 とプ
ロセッシングエレメント2-24との間を、局所的バス3-1
→大域的バス5-7 →大域低バス5-11→大域的バス5-5 →
大域的バス5-6 →局所的バス3-12のルートR1で通信す
る第1のプロセッサ間通信と、プロセッシングエレメン
ト2-1 とプロセッシングエレメント2-10との間を、局所
的バス3-1 →大域的バス5-7 →局所的バス3-5 のルート
R2で通信する第2のプロセッサ間通信とを許可する場
合、第2の実施例では、プロセッシングエレメント2-1
から局所的バス3-1 にデータを出力する時刻を第1及び
第2のプロセッサ間通信でずらす必要がある。本実施例
では、第1のプロセッサ間通信と第2のプロセッサ間通
信とが同時に起動されないことを前提に、その双方の通
信を許可し、プロセッサからの送信要求時に何れの通信
を望むのかを、コネクション番号と呼ぶ番号によって指
定させる。本実施例においてはコネクション番号として
任意の番号を用いる。第1および第2のプロセッサ間通
信が同時に起動されないようにすることを含め、競合す
るプロセッサ間通信が同時に起動されないようにするに
は、プロセッサ側で保証する方法と、レジスタファイル
の送信制御部側で保証する方法とがある。前者は同期動
作モードによる方法であり、後者は第2の実施例と同様
なタイムテーブルによる方法である。
【0063】各プロセッサ間通信の送信スケジュールが
決定したら、その送信スケジュールによるプロセッサ間
通信のみ許可するように、各プロセッシングエレメント
内のコネクションテーブル122 及び各ブリッジ内のコネ
クションテーブル132 の内容を事前に設定し、また各プ
ロセッシングエレメント内のタイムテーブル123 の内容
を事前に設定する。コネクションテーブル122 の設定例
を図12に、タイムテーブル123 の設定例を図13に、
コネクションテーブル132 の設定例を図14にそれぞれ
示す。
【0064】図12を参照すると、各プロセッシングエ
レメント内のコネクションテーブル122 は各コネクショ
ン番号及び各レジスタ毎に、レジスタの内容を局所的バ
スに送信可能か否かと、局所的バス上のデータをレジス
タに受信可能か否かの情報を保持する。図11の例で
は、コネクション1に対してはレジスタ126-1 及びレジ
スタ126-2 から局所的バスにデータの送信が可能であ
り、レジスタ126-2 及びレジスタ126-3 は局所的バスか
らのデータの受信が可能であり、コネクション2では一
切のデータの送信及び受信は不可能であることを示して
いる。
【0065】図13を参照すると、各プロセッシングエ
レメント内のタイムテーブル123 は各コネクション番号
毎に、各時刻における送信可否を保持する。図13の例
では、時刻1においてコネクション1及び2による送信
が可能であり、時刻2では全てのコネクションが送信不
可であることを示している。
【0066】図14を参照すると、各ブリッジ内のコネ
クションテーブル132 は、各バスに対して、該バスから
受信したデータの送信先となるバス及び送信時に使用す
るコネクション番号を記述する。図14の例では、局所
的バス3-1 の各チャネルからは、コネクション1のデー
タを受信してこれを大域的バス5-1 の各チャネルにコネ
クション2として送信し、コネクション3のデータを受
信してこれを大域的バス5-7 の各チャネルにコネクショ
ン1として送信することを示している。なお、コネクシ
ョン番号の変更は全てのコネクションで必要であるとは
限られないため、新コネクション番号がNULLの場合
もあり、その場合、ブリッジはコネクション番号の変更
は行わない。
【0067】次に図10から図14を参照して本実施例
のマルチプロセッサシステムにおけるプロセッサ間通信
の動作を説明する。なお、本実施例の全体的な動作は第
1の実施例と同様であるため、ここではプロセッシング
エレメント120 及びブリッジ130 の動作を説明する。
【0068】本実施例においても第2の実施例と同じく
プロセッシングエレメント120 は同期動作モードと非同
期動作モードの2種類の動作モードを持つ。まずはじめ
に同期動作モードにおけるプロセッシングエレメント12
0 の動作を説明する。
【0069】プロセッシングエレメント120 内のプロセ
ッサ127-1 もしくは127-2 が送信制御部124 に対して送
信要求を行うと、送信制御部124 はコネクションテーブ
ル122 を参照して送信を行うレジスタを決定する。プロ
セッサによる送信要求では送信を行うコネクション番号
が送信制御部124 に対して出力される。送信制御部124
は与えられたコネクション番号でコネクションテーブル
122 を参照し、送信を行うレジスタを決定し、該レジス
タに対応する送信ゲートに対して送信要求を伝え、コネ
クション番号を制御チャネル32-1に出力する。送信ゲー
トは送信要求が伝えられると、レジスタの内容を局所的
バス3-1 に出力する。同期動作モードの場合、それぞれ
のプロセッサは同期して動作しているため、各プロセッ
サのプログラムに誤りが無い限り、複数のプロセッサが
同時に送信制御部124 に対して送信要求を行うことはな
い。万一同時に送信要求が行われた場合、送信制御部12
4は送信要求を廃棄して良い。また、同期動作モードの
場合、異なるプロセッシングエレメントから途中のバス
を競合するようなデータの送信は行われないため、プロ
セッシングエレメントでは送信制御に際してタイムテー
ブル123 は使用しない。
【0070】次に非同期動作モードにおけるプロセッシ
ングエレメント120 の動作を説明する。プロセッシング
エレメント120 内のプロセッサ127-1 もしくは127-2 が
送信制御部124 に対して送信要求を行うと、送信制御部
はタイムテーブル123 及びコネクションテーブル122 を
参照して送信を行うレジスタを決定する。非同期動作モ
ードのプロセッシングエレメント内のプロセッサは他の
プロセッサと同期して動作していないため、該プロセッ
サの要求通りに送信制御を行った場合、いずれかのバス
上で他のプロセッサから出力されたデータと競合が発生
する可能性がある。そのため非同期動作モードではタイ
ムテーブル123 にあらかじめ競合が発生しないような送
信スケジュールが設定されており、送信制御部124 はこ
のテーブルに従って送信制御を行う。
【0071】送信制御部124 では、それぞれのプロセッ
サから送信要求が与えられると、まずタイムテーブル12
3 をタイマ128 の現在時刻および送信要求中のコネクシ
ョン番号で参照して送信の可否を決定する。もし複数の
送信要求が同時に送信可能である場合、これらの中から
1つだけ送信要求を選択する。選択された送信要求に対
する動作は同期動作モードの場合の動作と同様であり、
コネクションテーブル122 を参照して送信を行うレジス
タを決定してからデータの送信を行う。送信不可能と判
断された送信要求及び、送信可能であるが選択されなか
った送信要求は送信制御部124 内で保持され、コネクシ
ョンテーブル122 を参照して該送信要求に対応するレジ
スタを特定し、これらのレジスタを書き込み禁止に設定
する。時刻が経過し、保持されている送信要求が送信可
能となりかつ送信制御部124 によって選択されれば、同
期動作モードの場合と同様にしてデータの送信を行う。
そして該送信要求を解除し、送信を行ったレジスタに対
する全ての送信要求が解除されれば該レジスタの書き込
み禁止を解除する。
【0072】受信制御部125 は制御チャネル32-1を監視
しながら受信ゲート24-1〜24-3の開閉を制御する。受信
制御部125 が制御チャネル32-1からコネクション番号を
受信すると、該コネクション番号を用いてコネクション
テーブル122 を参照する。そしてコネクションテーブル
122 上で受信可能とされているレジスタに関して、該レ
ジスタに対応する受信ゲートに受信可能であることを伝
える。受信ゲートは局所的バス3-1 を監視し、接続され
たチャネル上にデータが出力されており、かつ受信制御
部125 によって受信が許可されている場合は、局所的バ
ス3-1 からレジスタへとデータを入力する。もしプロセ
ッサ127-1 〜127-2 がレジスタに対して読み出し禁止を
設定している場合、該レジスタに対してデータの受信が
あれば受信制御部125 は該レジスタの読み出し禁止を解
除する。これは非同期動作モードのプロセッシングエレ
メントにおいて、必要なデータが到着するまで該データ
を格納する予定であるレジスタを読み出し禁止にして、
データがまだ到着していないことを示すためである。
【0073】ブリッジ130 は接続されている局所的バス
3-1 もしくは大域的バス5-1 、5-7上の各チャネルにデ
ータが出力されていると、これを中継回路41-1〜41-3内
のレジスタに取り込む。また各バス上の制御チャネルに
コネクション番号が出力されていると、中継制御部131
はこれを取り込み、コネクションテーブル132 を参照し
て該コネクションの宛先を決定し、中継回路41-1〜41-4
内の該コネクションの宛先となる選択回路に対して、受
信元のバスを伝える。そして中継制御部131 はコネクシ
ョン番号の付け替えを行い、新たなコネクション番号を
中継回路41-4内のレジスタへと送信する。中継回路41-1
〜41-4内の選択回路では、中継制御部131 によって指示
されたバスに接続されたレジスタからのデータを、自ら
が接続されているバスに対して出力する。
【0074】ここで、本実施例においてブリッジ130 内
でコネクション番号の付け替えを行うのは、異なるプロ
セッサ間通信でも同じコネクション番号を指定できるよ
うにして、プロセッサが送信要求を出す際のコネクショ
ン番号の総数を削減するためである。つまり、例えば図
15に示されるように、バスB1、ブリッジ4a、バスB3、
ブリッジ4b、バスB5を経由するコネクションC1と、バス
B2、ブリッジ4a、バスB3、ブリッジ4b、バスB4を経由す
るコネクションC2との2つのコネクションを考えた場
合、同じバスB3を使うので、そのバスB3上ではコネクシ
ョンC1とC2とは異なるコネクション番号を付与する必要
がある。しかし、バスB3以外のバスでは同じコネクショ
ン番号であっても支障はない。そこで、コネクションC
1、C2の送信側プロセッサおよび受信側プロセッサでは
同じコネクション番号(例えば1)を使用し、ブリッジ
4aは例えばバスB2から入るコネクションC2についてコネ
クション番号を1から例えば2に付け替え、ブリッジ4b
では、バスB3から入るコネクションC2のコネクション番
号を2から1に戻す。これによって、異なるプロセッサ
間通信でも同じコネクション番号を使って送受信でき
る。なお、コネクション番号を付け替えない実施例も本
発明に含まれることは言うまでもない。
【0075】本実施例のマルチプロセッサシステムは、
局所的バスおよび大域的バスを時分割的に使用するた
め、第1の実施例のマルチプロセッサシステムと異な
り、全てのプロセッシングエレメント間に通信のルート
を設定することが可能である。また、ブリッジを経由す
るコネクション数が少ない場合には第2の実施例に比べ
てブリッジが保有すべきテーブルのサイズを小さくでき
る。なお、送信側プロセッシングエレメント及び受信側
プロセッシングエレメントは共に同じ動作モードに設定
しておくのが基本であるが、送信側プロセッシングエレ
メントが同期動作モードの場合、受信側プロセッシング
エレメントは非同期動作モードであっても良い。
【0076】
【実施例4】本発明を適用したマルチプロセッサシステ
ムの第4の実施例の構成は図1に示された構成と同様で
あり、本実施例ではプロセッシングエレメント及びブリ
ッジの構成が異なる。また本実施例では、データの通信
経路を制御するためのコネクション番号が第3の実施例
のように各バス毎ではなく、各チャネル毎に独立に送信
される。そのため、後述するように局所的バス及び大域
的バスは各チャネル毎独立に制御チャネルを持つ。
【0077】図16は、本実施例におけるプロセッシン
グエレメント140 の構成を示し、併せて局所的バス3-1
の構成を示す。全ての局所的バスは、局所的バス3-1 に
例示するように、データ用のチャネル31-1-1〜31-1-3に
加えて、各チャネルに1対1に対応する制御チャネル32
-1-1〜32-1-3を有する。プロセッシングエレメント140
は第3の実施例によるプロセッシングエレメント120 と
ほぼ同様の構成であり、異なる点は、レジスタファイル
141 において送信制御部144-1 〜144-3 及び受信制御部
145-1 〜145-3 、コネクションテーブル122-1 〜122-3
、タイムテーブル123-1 〜123-3 を各レジスタ毎に有
することであり、また、送信制御部144-1〜144-3 及び
受信制御部145-1 〜145-3 の動作も異なる。コネクショ
ンテーブル122-1 〜122-3 及びタイムテーブル123-1 〜
123-3 の構成は、各レジスタ毎に分けている点を除いて
第3の実施例と同様である。
【0078】図17は、本実施例におけるブリッジ150
の構成を示し、併せて大域的バスの構成を示す。全ての
大域的バスは、大域的バス5-1 、5-7 に例示するよう
に、データ用のチャネル51-1-1〜51-1-3、51-7-1〜51-7
-3に加えて、各チャネルに1対1に対応する制御チャネ
ル52-1-1〜52-1-3、52-7-1〜52-7-3を有する。ブリッジ
150 は第3の実施例によるブリッジ130 とほぼ同様の構
成であり、異なる点は中継回路41-4〜41-6及び中継制御
部151-1 〜151-3 、コネクションテーブル132-1〜132-3
を共有ではなく各チャネル毎に有することである。中
継制御部151-1 〜151-3 は第3の実施例における中継制
御部131 の機能を各チャネル毎に分けたものであり、中
継回路41-4〜41-6及びコネクションテーブル132-1 〜13
2-3 は、それぞれ第3の実施例における中継回路及びコ
ネクションテーブルを各チャネル毎に分けたものに相当
する。
【0079】本実施例では、局所的バス及び大域的バス
が各チャネル毎独立に制御チャネルを持つため、チャネ
ル単位で通信の制御を行うことにより、時分割による多
重通信だけでなく空間分割による多重通信も行う。例え
ば図1において、プロセッシングエレメント2-1 とプロ
セッシングエレメント2-24との間を、局所的バス3-1→
大域的バス5-7 →大域低バス5-11→大域的バス5-5 →大
域的バス5-6 →局所的バス3-12のルートR1で通信する
第1のプロセッサ間通信と、プロセッシングエレメント
2-1 とプロセッシングエレメント2-10との間を、局所的
バス3-1 →大域的バス5-7 →局所的バス3-5 のルートR
2で通信する第2のプロセッサ間通信とを許可する場
合、第2の実施例では、プロセッシングエレメント2-1
から局所的バス3-1 にデータを出力する時刻を第1及び
第2のプロセッサ間通信でずらす必要があった。また第
3の実施例では、第1のプロセッサ間通信と第2のプロ
セッサ間通信とが同時に起動されないようにする必要が
あった。しかし、本実施例では、第1のプロセッサ間通
信で送られるレジスタに対応するチャネルと第2のプロ
セッサ間通信で送られるレジスタに対応するチャネルと
が競合しない限り、空間分割的に多重通信できる。従っ
て、これまでの各実施例よりスケジュールできるプロセ
ッサ間通信の数が増大する。
【0080】時分割による多重通信および空間分割によ
る多重通信を前提として各プロセッサ間通信の送信スケ
ジュールが決定したら、その送信スケジュールによるプ
ロセッサ間通信のみ許可するように、各プロセッシング
エレメント内のコネクションテーブル122-1 〜122-3 及
び各ブリッジ内のコネクションテーブル132-1 〜132-3
の内容を事前に設定し、また各プロセッシングエレメン
ト内のタイムテーブル123-1 〜123-3 の内容を事前に設
定する。
【0081】次に図16及び図17を参照して本実施例
のマルチプロセッサシステムにおけるプロセッサ間通信
の動作を、第3の実施例との相違点を中心に説明する。
なお、本実施例の全体的な動作は第1ないし第3の実施
例と同様であるため、ここではプロセッシングエレメン
ト140 及びブリッジ150 の動作を説明する。
【0082】本実施例においても第3の実施例と同じく
プロセッシングエレメント140 は同期動作モードと非同
期動作モードの2種類の動作モードを持つ。まずはじめ
に同期動作モードにおけるプロセッシングエレメント14
0 の動作を説明する。
【0083】プロセッサが送信要求を行う場合、全ての
送信制御部144-1 〜144-3 に対してコネクション番号を
伝える。本実施例においては各チャネル毎独立に制御チ
ャネルが用意されていて同じバス上で複数のコネクショ
ンが同時に通信可能であるため、複数のプロセッサが同
時に送信要求を行うことができる。送信制御部144-1〜1
44-3 は各プロセッサから要求されたコネクション番号
でコネクションテーブル122-1 〜122-3 を参照し、それ
ぞれの送信要求に対して、該送信制御部に対応するレジ
スタの送信可否を調べる。同期動作モードの場合、それ
ぞれのプロセッサは同期して動作しているため、各プロ
セッサのプログラムに誤りが無い限り、同一のレジスタ
において複数のプロセッサから与えられた送信要求が同
時に送信可能となることはない。万一同時に複数の送信
要求が送信可能となった場合には、これらの送信要求を
廃棄して良い。そして送信可能となったレジスタでは、
対応する送信制御部から送信ゲートに対して送信要求が
伝られ、対応する制御チャネルへ送信要求が許可された
コネクション番号を出力する。送信ゲートは送信要求が
伝えられると、レジスタの内容を局所的バス3-1 に出力
する。同期動作モードの場合、異なるプロセッシングエ
レメントから途中のバスを競合するようなデータの送信
は行われないため、プロセッシングエレメントでは送信
制御に際してタイムテーブル123-1 〜123-3 は使用しな
い。
【0084】次に非同期動作モードにおけるプロセッシ
ングエレメント140 の動作を説明する。本実施例におい
ても第3の実施例と同様に、非同期動作モードではタイ
ムテーブル123-1 〜123-3 にあらかじめ競合が発生しな
いような送信スケジュールが設定されており、送信制御
部144-1 〜144-3 はこのテーブルに従って送信制御を行
う。各送信制御部144-1 〜144-3 ではプロセッサから送
信要求が与えられると、タイムテーブル123-1 〜123-3
及びコネクションテーブル122-1 〜122-3 を参照してそ
れぞれの送信要求に対して送信の可否を決定する。もし
複数の送信要求が同時に送信可能である場合、これらの
中から1つだけ送信要求を選択する。選択された送信要
求に対する動作は同期動作モードの場合の動作と同様で
ある。送信不可能と判断された送信要求及び、送信可能
であるが選択されなかった送信要求は送信制御部144-1
〜144-3 内で保持され、該送信要求に対応するレジスタ
を書き込み禁止に設定する。時間が経過し、保持されて
いる送信要求が送信可能となり且つ送信制御部によって
選択されれば、送信制御部は対応する送信ゲートに対し
て送信要求を伝え、対応する制御チャネルに送信要求が
許可されたコネクション番号を出力する。そして、この
送信要求を解除し、もし該送信制御部において全ての送
信要求が解除されれば、対応するレジスタに対する書き
込み禁止を解除する。
【0085】受信制御部145-1 〜145-3 は制御チャネル
32-1-1〜32-1-3を監視しながら受信ゲート24-1〜24-3の
開閉を制御する。各受信制御部145-1 〜145-3 はそれぞ
れが接続されている制御チャネルからコネクション番号
を受信すると、該コネクション番号を用いてコネクショ
ンテーブル122-1 〜122-3 を参照する。そして該受信制
御部に対応するレジスタが受信可能であると判明すれ
ば、該受信制御部が接続されている受信ゲートに対して
局所的バスからレジスタへのデータの入力を指示する。
もしプロセッサ127-1 〜127-2 がレジスタに対して読み
出し禁止を設定している場合、該レジスタに対してデー
タの受信があれば受信制御部145-1 〜145-3 は該レジス
タの読み出し禁止を解除する。
【0086】本実施例においてはブリッジ150 では、各
チャネル毎に完全に独立して動作する。ブリッジ150 は
接続されている局所的バス3-1 もしくは大域的バス5-1
、5-7 上の各チャネルにデータが出力されていると、
これを中継回路41-1〜41-3内のレジスタに取り込む。ま
た各バス上の制御チャネルにコネクション番号が出力さ
れていると、中継制御部151-1 〜151-3 はこれを取り込
み、コネクションテーブル132-1 〜132-3 を参照して該
コネクションの宛先を決定し、中継回路41-1〜41-6内の
該コネクションの宛先となるバスに対応する選択回路に
対して、受信元のバスを伝える。そして中継制御部は必
要に応じてコネクション番号の付け替えを行い、新たな
コネクション番号を中継回路41-4〜41-6内のレジスタへ
と送信する。選択回路では、中継制御部によって指示さ
れたバスから入力したデータを、自らが接続されている
バスに対して出力する。
【0087】本実施例のマルチプロセッサシステムは、
局所的バスおよび大域的バスを時分割的かつ空間分割的
に使用するため、各バスのより一層の有効利用が可能で
ある。なお、送信側プロセッシングエレメント及び受信
側プロセッシングエレメントは共に同じ動作モードに設
定しておくのが基本であるが、送信側プロセッシングエ
レメントが同期動作モードの場合、受信側プロセッシン
グエレメントは非同期動作モードであっても良い。
【0088】なお、第4の実施例では、図16に示した
ようにレジスタファイル141 においてコネクションテー
ブル122-1 〜122-3 、タイムテーブル123-1 〜123-3 を
各レジスタ毎に設けたが、第3の実施例と同様なコネク
ションテーブル122 及びタイムテーブル123 を送信制御
部144-1 〜144-3 及び受信制御部145-1 〜145-3 で共通
に使用するようにしても良い。但し、この場合は1つの
プロセッシングエレメントから同時に複数のコネクショ
ンによる送信、受信は行えない。
【0089】
【実施例5】本発明を適用したマルチプロセッサシステ
ムの第5の実施例の全体構成は図1に示された構成と同
様であり、本実施例ではプロセッシングエレメント及び
ブリッジの構成が異なる。本実施例では第3の実施例と
同じく、局所的バス及び大域的バスはそれぞれ1つの制
御チャネルを持つ。本実施例と第3の実施例の最も異な
る点は、本実施例においてはコネクション番号として任
意の番号を用いるのではなく、宛先とするプロセッシン
グエレメントが一意に特定できる番号を用いることであ
る。
【0090】プロセッシングエレメント番号としては、
例えば、図18に示すように格子状に配列された各プロ
セッシングエレメントに割り当てたXY座標値(例えば
図18の横方向をX軸、縦方向をY軸とする)を用いる
ことができる。コネクション番号として用いるこれらの
XY座標値を、以下「データの宛先」と呼ぶ。
【0091】図19は、本実施例におけるプロセッシン
グエレメント160 の構成を示す。プロセッシングエレメ
ント160 は第3の実施例によるプロセッシングエレメン
ト120 とほぼ同様の構成であり、異なる点はコネクショ
ンテーブル122 を有しないことである。なお、タイムテ
ーブル123 では、図13のコネクション1〜3の箇所に
データの宛先が設定される。
【0092】図20は、本実施例におけるブリッジ170
の構成を示す。ブリッジ170 は第3の実施例によるブリ
ッジ130 とほぼ同様の構成であり、異なる点はコネクシ
ョンテーブル172 の設定内容にある。図21に、ブリッ
ジ4-7 に設けられるコネクションテーブル172 の設定例
を示す。
【0093】図21を参照すると、ブリッジ4-7 内のコ
ネクションテーブル172 は、各バスに対して、そのバス
から受信して中継すべきデータのXY座標値とそのデー
タの送信先となるバスを記述する。図21の例は、デー
タの宛先のX座標に見合った位置までX軸方法に先ず中
継し、しかる後にY軸方向に中継するX軸優先方式の例
を示す。例えば、局所的バス3-7 の各チャネルからは、
X>6のXY座標値を宛先とするデータを受信してこれ
を大域的バス5-4 に送信し、X<5のXY座標値を宛先
とするデータを受信してこれを大域的バス5-3 に送信す
る。また、大域的バス5-3 の各チャネルからは、X>6
のXY座標値を宛先とするデータを受信してこれを大域
的バス5-4 に送信し、X=5or6かつY>2のXY座
標値を宛先とするデータを受信してこれを大域的バス5-
9 に送信し、X=5or6かつY<2のXY座標値を宛
先とするデータを受信してこれを大域的バス5-13に送信
し、X=5or6かつY=2のXY座標値を宛先とする
データを受信してこれを局所的バス3-7 に送信する。他
の大域的バス5-4 、5-9 、5-13についても同様に定義さ
れる。また、ブリッジ4-7 以外の他のブリッジについて
も同様に定義される。
【0094】次に図18及び図21を参照して本実施例
のマルチプロセッサシステムにおけるプロセッサ間通信
の動作を、第3の実施例との差異を中心に説明する。な
お、本実施例の全体的な動作は第1ないし第3の実施例
と同様であるため、ここではプロセッシングエレメント
160 及びブリッジ170 の動作を説明する。
【0095】本実施例においても第3の実施例と同じく
プロセッシングエレメント160 は同期動作モードと非同
期動作モードの2種類の動作モードを持つ。まずはじめ
に同期動作モードにおけるプロセッシングエレメント16
0 の動作を説明する。
【0096】プロセッサによる送信要求では送信を行う
レジスタとデータの宛先の両方が送信制御部164 に出力
されるが、それぞれのプロセッサは同期して動作してい
るため設定を誤らない限り複数のプロセッサが同時に送
信制御部164 に対して送信要求を行うことはない。万一
同時に送信要求が行われた場合、送信制御部164 は送信
要求を廃棄して良い。そして送信制御部164 は送信要求
されたレジスタに対応する送信ゲートに対して送信要求
を伝え、プロセッサから与えられたデータの宛先を制御
チャネル32-1に出力する。送信ゲートは送信要求が伝え
られると、レジスタの内容を局所的バス3-1 に出力す
る。同期動作モードのプロセッシングエレメントでは送
信制御に際してタイムテーブル123 は使用しない。
【0097】次に非同期動作モードにおけるプロセッシ
ングエレメント160 の動作を説明する。本実施例におい
ても第3の実施例と同様に、非同期動作モードではタイ
ムテーブル123 にあらかじめ競合が発生しないような送
信スケジュールが設定されており、送信制御部164 はこ
のテーブルに従って送信制御を行う。送信制御部164で
はそれぞれのプロセッサから与えられた送信要求に対し
て、データの宛先でタイムテーブルを参照し、送信の可
否を決定する。もし複数の送信要求が同時に送信可能で
ある場合、これらの中から1つだけ送信要求を選択す
る。選択された送信要求に対する動作は同期動作モード
の場合の動作と同様である。送信不可能と判断された送
信要求及び、送信可能であるが選択されなかった送信要
求は送信制御部164 内で保持され、該送信要求に対応す
るレジスタを書き込み禁止に設定する。時刻が経過し、
保持されている送信要求が送信可能となりかつ送信制御
部164 によって選択されれば、送信制御部164 は該送信
要求に対応するレジスタの送信ゲートに対して送信要求
を伝え、データの宛先を制御チャネルに出力する。そし
て該送信要求を解除し、送信を行ったレジスタに対する
全ての送信要求が解除されれば該レジスタの書き込み禁
止を解除する。
【0098】受信制御部165 は制御チャネル32-1を監視
しながら受信ゲート24-1〜24-3の開閉を制御する。受信
制御部125 が制御チャネルからデータの宛先を受信する
と、該データの宛先が自分自身であるかを判定し、デー
タの宛先が自分自身であれば全受信ゲートに対して受信
可能であることを伝える。受信ゲートは局所的バスを監
視し、接続されたチャネル上にデータが出力されてお
り、かつ受信制御部125によって受信が許可されている
場合は局所的バスからレジスタへとデータを入力する。
もしプロセッサ127-1 〜127-2 がレジスタに対して読み
出し禁止を設定している場合、該レジスタに対してデー
タの受信があれば受信制御部165 は該レジスタの読み出
し禁止を解除する。
【0099】ブリッジ170 は接続されている局所的バス
3-1 もしくは大域的バス5-1 、5-7上の各チャネルにデ
ータが出力されていると、これを中継回路41-1〜41-3内
のレジスタに取り込む。また各バス上の制御チャネルに
データの宛先が出力されていると、中継制御部171 はこ
れを取り込み、データの宛先とコネクションテーブル17
2 とから、中継動作の必要性および必要な場合のデータ
出力先となるバスを特定する。そして中継制御部171
は、中継動作が必要な場合、中継回路41-1〜41-4内の出
力先となるバスに対応する選択回路に対して、受信元の
バスを伝える。そして中継制御部171 はデータの宛先の
付け替えを行わずに、データの宛先を中継回路41-4内の
レジスタへと送信する。選択回路では、中継制御部171
によって指示されたバスからデータを入力し、自らが接
続されているバスに対して出力する。
【0100】本実施例では、XY座標値といった各プロ
セッシングエレメントを一意に特定するデータの宛先に
よって各ブリッジの中継動作を制御しており、各ブリッ
ジ内のコネクションテーブルの容量は、コネクション数
にかかわらず一定にすることができる。なお、図21に
例示したコネクションテーブルは、X軸優先方式を採用
したが、データの宛先のY座標に見合った位置までY軸
方法に先ず中継し、しかる後にX軸方向に中継するY軸
優先方式を採用することも可能である。また、X軸優先
方式によるコネクションテーブルとY軸優先方式による
コネクションテーブルの双方を設け、送信側プロセッサ
が送信要求時にデータの宛先と共に何れの方式を使うか
を示す識別子を指定し、この識別子を制御チャネルでデ
ータの宛先と一緒に伝搬させ、各ブリッジはこの識別子
で指定された方式のコネクションテーブルを使用するよ
うにしても良い。
【0101】以上、幾つかの実施例を挙げて本発明を説
明したが、本発明は以上の実施例にのみ限定されず、そ
の他各種の付加変更が可能である。
【0102】例えば第4の実施例では、空間分割による
多重通信だけでなく時分割による多重通信も可能にした
が、他の実施例として、時分割による多重通信は行わ
ず、空間分割による多重通信だけを行うようにしても良
い。この場合、第1の実施例で使用した接続テーブルを
各チャネル別に設け、チャネル単位で経路制御すれば良
い。すなわち、入出力制御を行うための接続テーブルを
プロセッシングエレメント内にチャネル毎に設け、中継
制御を行うための接続テーブルをブリッジ内にチャネル
毎に設け、これらの接続テーブルを用いることによって
プロセッシングエレメントにおける入出力制御及びブリ
ッジにおける経路制御を各チャネル別に定める。そし
て、プロセッサからデータを出力する際には1つ以上の
レジスタを選んで送信要求を行い、プロセッシングエレ
メント内の送信制御部は送信要求が行われた各レジスタ
に対応するチャネルに関する接続テーブルを参照して各
レジスタからバスへのデータの出力制御をチャネル毎に
行い、ブリッジは各チャネルに関する接続テーブルを参
照してバス間のデータの中継処理をチャネル毎に行い、
さらにプロセッシングエレメント内の受信制御部は各チ
ャネルに関する接続テーブルを参照してバスからレジス
タへのデータの入力制御をチャネル毎に行う。
【0103】また第4の実施例では、コネクションテー
ブルを用いたが、第2の実施例のようなタイムテーブル
を各チャネル別に持つことで時分割的かつ空間分割的な
多重通信を行うようにしても良い。すなわち、時刻によ
る入出力制御を行うためのタイムテーブルをプロセッシ
ングエレメント内に、また時刻による中継制御を行うた
めのタイムテーブルをブリッジ内にそれぞれチャネル毎
に設け、これらのタイムテーブルを用いることによって
プロセッシングエレメントにおける入出力制御及びブリ
ッジにおける経路制御を各チャネル毎に時刻に対して一
意に定める。そして、プロセッサから送信要求が行われ
たときにプロセッシングエレメント内の送信制御部は時
刻を元に各タイムテーブルを参照してレジスタからバス
へのデータの出力制御をチャネル毎に行い、ブリッジは
時刻を元に各タイムテーブルを参照してバス間のデータ
の中継処理をチャネル毎に行い、さらにプロセッシング
エレメント内の受信制御部は時刻を元に各タイムテーブ
ルを参照してバスからレジスタへのデータの入力制御を
チャネル毎に行う。
【0104】また、これまで説明した各実施例では、プ
ロセッシングエレメント内のレジスタ数とバスのチャネ
ル数が同じであり、レジスタとチャネルとが1対1に対
応していたが、レジスタの数より少ないチャネル数のバ
スを使用し、複数のレジスタで1つのチャネルを共用す
るようにして良い。この考えを第1の実施例に適用した
場合のプロセッシングエレメント180 の構成例を図22
に示す。
【0105】図22を参照すると、レジスタファイル20
内の各レジスタ22-1〜22-3と局所的バス3-1 内の各チャ
ネル31-1-1〜31-1-2は1対1に対応しておらず、同一の
チャネルに複数のレジスタが接続されている。即ち、レ
ジスタ22-1とチャネル31-1-1とは1対1に対応している
が、レジスタ22-2とレジスタ22-3は同じチャネル31-1-2
に接続されている。どのレジスタをチャネルに1対1に
対応させ、どの複数のレジスタを同じチャネルに接続さ
せるかは、各レジスタの通信頻度に応じて決定すれば良
い。ブリッジの構成は第1の実施例におけるブリッジの
構成とほぼ同様に図3に示したように構成されるが、ブ
リッジではプロセッシングエレメントと異なり、チャネ
ルと中継回路41-1〜41-3は1対1に対応させるため、ブ
リッジ内の中継回路数が少なくなる。異なるレジスタが
同一のチャネルを使用するため、同じチャネルに接続さ
れたレジスタの間では1つのレジスタのみが通信可能で
あるが、ハードウェア量を削減できる。図22は第1の
実施例に適用したものであるが、他の実施例においても
複数のレジスタで1つのチャネルを共用するようにして
良い。
【0106】また、以上の実施例では、局所的バスを相
互に接続する形態として図1に示される形態を採用した
が、各局所的バスから他の全ての局所的バスに至るルー
トが確保されていれば、どのような形態であっても良
い。他の形態の一例を図23に示す。
【0107】図23に示した例は、横方向に大域的バス
を持たず、その代わりブリッジで横方向に隣接する2つ
の局所的バスを接続したものである。この場合、例えば
プロセッシングエレメント2-1 からプロセッシングエレ
メント2-24への通信は以下のように行われる。まずプロ
セッシングエレメント2-1 から局所的バス3-1 へデータ
が出力されると、ブリッジ4-1 によってこのデータは大
域的バス5-7 へと中継される。そしてブリッジ4-5 及び
4-9 によってデータは局所的バス3-10に到達し、ブリッ
ジ4-10及び4-11によってデータは局所的バス3-10及び3-
11を経由して、最終的に局所的バス3-12へと到達する。
プロセッシングエレメント2-24は局所的バス3-12上に出
力されたデータをレジスタファイルに取り込む。他の例
として、縦方向に大域的バスを持たず、その代わりにブ
リッジで縦方向に隣接する2つの局所的バスを接続した
形態や、それぞれの局所的バスおよび大域的バスを2重
化した形態等が採用可能である。
【0108】図1に示される接続形態では、遠距離のプ
ロセッシングエレメントを低遅延で接続できる利点があ
る。これに対して図23に示される接続形態では、横方
向に大域的バスを持たないため遠距離間の遅延量は図1
のものに比べて大きくなるが、回路規模的に有利であ
る。
【0109】本発明のマルチプロセッサシステムは、汎
用的な処理を行うマルチプロセッサシステムであっても
良く、或る処理、例えば通信処理に特化した専用のマル
チプロセッサシステムであっても良い。一般に通信処理
ではヘッダ処理やバッファ処理、スケジューリング処理
等の多くの処理を各セル/パケット毎に行わなければな
らず、非常に高い処理能力と実時間性が要求される。し
かし、通信処理は汎用処理と異なって各処理の並列度が
高く、それらの処理が或る程度固定的であり、各セル/
パケット毎に同じ処理を繰り返せば良い。例えばネット
ワークスイッチ内での処理は、セルやパケットの入力処
理や出力処理、各種テーブルの管理、ルーティングプロ
トコルやシグナリングの処理等に分類でき、これらの処
理は独立して並列に実行可能であり、またこれらの処理
を更に細分化してパイプライン処理を行うことができ
る。例えば入力処理はヘッダ処理からポリシング/マー
キング処理、キューイング処理というように処理を分割
することができ、分割された処理間では前の処理から後
ろの処理へと1方向の依存関係しか存在しないため、効
率良くパイプライン処理することができる。さらに、通
信処理はこのように固定的な処理の繰り返しであり、こ
れをさらに実時間通信に限定すると、各プロセッシング
エレメントは同期的に動作させることが可能となる。そ
のため、予め通信スケジュールを決定してからプログラ
ムを作成することによってバス上での競合を解消する前
述した同期動作モードによる競合の調停が可能である。
【0110】以上の各実施の形態において、マルチプロ
セッサシステム内で処理すべきデータを外部から入力し
たり、その逆にマルチプロセッサシステム内で処理され
たデータを外部に出力する入出力インタフェース、RA
M等の外部メモリをアクセスするためのメモリインタフ
ェース、内蔵メモリ、各種演算を高速に行うコプロセッ
サ等は、各プロセッシングエレメント毎に設けるように
しても良く、また、全てのプロセッシングエレメント或
いは複数のプロセッシングエレメント毎に共通に設ける
ようにしても良い。後者の場合、入出力インタフェー
ス、メモリインタフェース、内蔵メモリ、コプロセッサ
等は例えば何れかの大域的バスに接続して、任意のプロ
セッシングエレメントからのアクセスを可能にする。こ
の場合、プロセッシングエレメント内のプロセッサは、
例えば図24に示すように、プログラムメモリ311 、命
令デコーダ312 、演算器313 、アドレス生成器314 で構
成できる。各プロセッサ21-1等はそれぞれがプログラム
用のメモリ311 を内蔵するが、通信処理に特化した場
合、処理が小規模で固定的であるため、その規模は小さ
く済む。演算器313 は通信処理に特化した場合、ビット
演算およびシフト演算機能の性能は高くする必要がある
が、算術演算機能は簡略化して良い。アドレス生成器31
4 はプログラムメモリ311 に与えるアドレスを生成し、
命令デコーダ312はプログラムメモリ311 から読み出さ
れた命令を解釈して命令の実行を指示する。
【0111】
【発明の効果】以上説明したように本発明によれば以下
のような効果が得られる。
【0112】レジスタファイルを共有することによるプ
ロセッサ間通信とバス経由でレジスタファイルの内容を
直接転送することによるプロセッサ間通信との階層的な
プロセッサ間通信が可能となる。このため、相互に通信
する頻度の高い幾つかのプロセッサ毎にレジスタファイ
ルを物理的に共有させることで、それらのプロセッサ間
で高速なプロセッサ間通信が可能になり、また、レジス
タファイルを物理的に共有しないプロセッサ間でもバス
経由によるレジスタファイルの直接転送でプロセッサ間
通信が行える。
【0113】プロセッシングエレメント間をつなぐバス
として、レジスタファイルに含まれる各レジスタに1対
1に対応するチャネルを有するバスを使用することで、
高帯域な通信が実現できる。
【0114】プロセッシングエレメント間をつなぐバス
として、レジスタファイルに含まれるレジスタの数より
少ないチャネル数のバスを使用し、複数のレジスタで1
つのチャネルを共用することで、バスの帯域は減少する
が、ハードウェア量が少なくなる。
【0115】複数のバス及びバス間で相互にデータの中
継を行うブリッジから構成される階層的なバス構造を使
用したことにより、相互に通信する頻度の高い幾つかの
プロセッシングエレメント毎に同じ局所的バスに接続す
ることでそれらのプロセッシングエレメント間では1本
のバス経由による高速なプロセッサ間通信が可能にな
り、また、異なる局所的バスに接続されるプロセッシン
グエレメント間でも複数の局所的バス、ブリッジ及び大
域的バス経由によるレジスタファイルの直接転送でプロ
セッサ間通信が行える。
【0116】プロセッシングエレメント間をバス経由で
つなぐルートであって他のルートとバス競合が発生しな
い1以上のルートを事前に決定し、該決定したルートに
よるプロセッサ間通信のみを行わせることで、複雑なバ
ス調停回路が不要になり、少ないハードウェアでオーバ
ヘッドの少ないプロセッサ間通信が可能となる。
【0117】異なるプロセッサ間通信でバスを時分割的
に使用する方法、バスを1レジスタ分の幅に相当するチ
ャネルと呼ぶ通信路に分割して異なるプロセッサ間通信
で同じバスを空間分割的に使用する方法、それらを組み
合わせた方法を採用することにより、より高帯域なプロ
セッサ間通信が可能となる。
【図面の簡単な説明】
【図1】本発明を適用したマルチプロセッサシステムの
第1の実施例の構成を示すブロック図である。
【図2】第1の実施例におけるプロセッシングエレメン
トの構成を示す図である。
【図3】第1の実施例におけるブリッジの構成を示す図
である。
【図4】第1の実施例におけるプロセッシングエレメン
ト内の接続テーブルの構成を示す図である。
【図5】第1の実施例におけるブリッジ内の接続テーブ
ルの構成を示す図である。
【図6】第2の実施例におけるプロセッシングエレメン
トの構成を示す図である。
【図7】第2の実施例におけるブリッジの構成を示す図
である。
【図8】第2の実施例におけるプロセッシングエレメン
ト内のタイムテーブルの構成を示す図である。
【図9】第2の実施例におけるブリッジ内のタイムテー
ブルの構成を示す図である。
【図10】第3の実施例におけるプロセッシングエレメ
ントの構成を示す図である。
【図11】第3の実施例におけるブリッジの構成を示す
図である。
【図12】第3の実施例におけるプロセッシングエレメ
ント内のコネクションテーブルの構成を示す図である。
【図13】第3の実施例におけるプロセッシングエレメ
ント内のタイムテーブルの構成を示す図である。
【図14】第3の実施例におけるブリッジ内のコネクシ
ョンテーブルの構成を示す図である。
【図15】第3の実施例においてコネクション番号をブ
リッジ内で付け替える理由の説明図である。
【図16】第4の実施例におけるプロセッシングエレメ
ントの構成を示す図である。
【図17】第4の実施例におけるブリッジの構成を示す
図である。
【図18】第5の実施例において各プロセッシングエレ
メントに付与されたXY座標値の一例を示す図である。
【図19】第5の実施例におけるプロセッシングエレメ
ントの構成を示す図である。
【図20】第5の実施例におけるブリッジの構成を示す
図である。
【図21】第5の実施例における各ブリッジ内の設けら
れたコネクションテーブルの内容例を示す図である。
【図22】プロセッシングエレメントの他の構成例を示
す図である。
【図23】本発明を適用したマルチプロセッサシステム
の他の実施例の構成を示すブロック図である。
【図24】各プロセッシングエレメント内のプロセッサ
の構成例を示すブロック図である。
【符号の説明】
1…マルチプロセッサシステム 2-1 〜2-24…プロセッシングエレメント 3-1 〜3-12…局所的バス 4-1 〜4-12…ブリッジ 5-1 〜5-14…大域的バス 20…レジスタファイル 21-1〜21-2…プロセッサ 22-1〜22-3…レジスタ 23-1〜23-3…送信ゲート 24-1〜24-3…受信ゲート 25…送信制御部 26…受信制御部 27…接続テーブル 28…論理和回路

Claims (34)

    【特許請求の範囲】
  1. 【請求項1】 マルチプロセッサシステムを構成するプ
    ロセッサ間でレジスタファイルの内容を交換するプロセ
    ッサ間通信方法において、 マルチプロセッサシステムを構成するプロセッサ群をプ
    ロセッシングエレメントという複数のグループに分割
    し、同じプロセッシングエレメントに属するプロセッサ
    間では同一のレジスタファイルを物理的に共有すること
    でプロセッサ間通信を行い、異なるプロセッシングエレ
    メントに属するプロセッサ間ではバス経由でレジスタフ
    ァイルの内容を直接転送することでプロセッサ間通信を
    行うプロセッサ間通信方法。
  2. 【請求項2】 レジスタファイルに含まれる各レジスタ
    に1対1に対応するチャネルを有するバスを使用した請
    求項1記載のプロセッサ間通信方法。
  3. 【請求項3】 レジスタファイルに含まれるレジスタの
    数より少ないチャネル数のバスを使用し、複数のレジス
    タで1つのチャネルを共用する請求項1記載のプロセッ
    サ間通信方法。
  4. 【請求項4】 複数のバス及びバス間で相互にデータの
    中継を行うブリッジから構成されるバス構造を使用し、
    プロセッシングエレメント群を複数のグループに分割
    し、同じグループに属するプロセッシングエレメント間
    は同じ1つのバス経由で通信し、異なるグループに属す
    るプロセッシングエレメント間はブリッジを用いて複数
    のバス経由で通信する請求項2または3記載のプロセッ
    サ間通信方法。
  5. 【請求項5】 複数の局所的バス、1以上の大域的バス
    及びバス間で相互にデータの中継を行うブリッジから構
    成されるバス構造を使用し、プロセッシングエレメント
    群を複数のグループに分割し、同じグループに属するプ
    ロセッシングエレメント間は同じ1つの局所的バス経由
    で通信し、異なるグループに属するプロセッシングエレ
    メント間はブリッジを用いて複数のバス経由で通信する
    請求項2または3記載のプロセッサ間通信方法。
  6. 【請求項6】 プロセッシングエレメント間をバス経由
    でつなぐルートであって他のルートとバス競合が発生し
    ない1以上のルートを事前に決定し、該決定したルート
    によるプロセッサ間通信のみを行わせる請求項4または
    5記載のプロセッサ間通信方法。
  7. 【請求項7】 プロセッシングエレメント間をバス経由
    でつなぐルートであって他のルートと同一バス上で時間
    的に競合が発生しない1以上のルート及び各ルートの各
    バスの使用時刻を事前に決定し、バスを時分割的に使用
    することにより、前記決定されたルート及び使用時刻に
    よるプロセッサ間通信のみを行わせる請求項4または5
    記載のプロセッサ間通信方法。
  8. 【請求項8】 プロセッサを時刻に同期させて動作さ
    せ、前記決定されたルート及び使用時刻によるプロセッ
    サ間通信のみ実施するよう各プロセッサをプログラミン
    グしておき、各ブリッジは前記決定されたルート及び使
    用時刻によるプロセッサ間通信のみデータの中継動作を
    行うことで、 バスを時分割的に使用する請求項7記載のプロセッサ間
    通信方法。
  9. 【請求項9】 プロセッシングエレメント内のレジスタ
    ファイルの内容を該プロセッシングエレメントに属する
    プロセッサからの送信要求に従ってバス経由で送信する
    制御を司る送信制御部で、前記決定されたルート及び使
    用時刻によるプロセッサ間通信のみ実施されるよう制御
    し、各ブリッジは前記決定されたルート及び使用時刻に
    よるプロセッサ間通信のみデータの中継動作を行うこと
    で、 バスを時分割的に使用する請求項7記載のプロセッサ間
    通信方法。
  10. 【請求項10】 時刻による入出力制御を行うためのタ
    イムテーブルをプロセッシングエレメント内に、また時
    刻による中継制御を行うためのタイムテーブルをブリッ
    ジ内にそれぞれ設け、これらのタイムテーブルを用いる
    ことよってプロセッシングエレメントにおける入出力制
    御及びブリッジにおける経路制御を時刻に対して一意に
    定め、 プロセッサから送信要求が行われたときにプロセッシン
    グエレメント内の送信制御部は時刻を元にタイムテーブ
    ルを参照してレジスタからバスへのデータの出力制御を
    行い、ブリッジは時刻を元にタイムテーブルを参照して
    バス間のデータの中継処理を行い、さらにプロセッシン
    グエレメント内の受信制御部は時刻を元にタイムテーブ
    ルを参照してバスからレジスタへのデータの入力制御を
    行うことで、 バスを時分割的に使用する請求項7記載のプロセッサ間
    通信方法。
  11. 【請求項11】 コネクション番号もしくはデータの宛
    先による入出力制御を行うためのコネクションテーブル
    及び時刻による入出力制御を行うためのタイムテーブル
    をプロセッシングエレメント内に、コネクション番号も
    しくはデータの宛先による中継制御を行うためのコネク
    ションテーブルをブリッジ内に、コネクション番号もし
    くはデータの宛先を制御情報として伝達するための制御
    用チャネルをバス内にそれぞれ設け、 プロセッサからデータを出力する際にはコネクション番
    号もしくは宛先を制御情報として送信要求を行い、プロ
    セッシングエレメント内の送信制御部は制御情報を元に
    コネクションテーブル及びタイムテーブルを参照してバ
    スへのデータ及び制御情報の出力制御を行い、ブリッジ
    は制御チャネルから受信した制御情報を元にコネクショ
    ンテーブルを参照してバス間のデータ及び制御情報の中
    継処理を行い、さらにプロセッシングエレメント内の受
    信制御部は受信した制御情報を元にコネクションテーブ
    ルを参照してバスからレジスタへのデータの入力制御を
    行うことで、 バスを時分割的に使用する請求項7記載のプロセッサ間
    通信方法。
  12. 【請求項12】 プロセッシングエレメント間をバス経
    由でつなぐルートであって他のルートと同一バスの同一
    チャネル上で競合が発生しない1以上のルートを事前に
    決定し、バスをチャネル単位で空間分割的に使用するこ
    とにより、前記決定されたルートによるプロセッサ間通
    信のみを行わせる請求項4または5記載のプロセッサ間
    通信方法。
  13. 【請求項13】 前記決定されたルートによるプロセッ
    サ間通信のみ実施するよう各プロセッサをプログラミン
    グしておき、各ブリッジは前記決定されたルートによる
    プロセッサ間通信のみデータの中継動作を行うことで、 バスを空間分割的に使用する請求項12記載のプロセッ
    サ間通信方法。
  14. 【請求項14】 プロセッシングエレメント内のレジス
    タファイルの内容を該プロセッシングエレメントに属す
    るプロセッサからの送信要求に従ってバス経由で送信す
    る制御を司る送信制御部で、前記決定されたルートによ
    るプロセッサ間通信のみ実施されるよう制御し、各ブリ
    ッジは前記決定されたルートによるプロセッサ間通信の
    みデータの中継動作を行うことで、 バスを空間分割的に使用する請求項12記載のプロセッ
    サ間通信方法。
  15. 【請求項15】 入出力制御を行うための接続テーブル
    をプロセッシングエレメント内にチャネル毎に設け、中
    継制御を行うための接続テーブルをブリッジ内にチャネ
    ル毎に設け、これらの接続テーブルを用いることよって
    プロセッシングエレメントにおける入出力制御及びブリ
    ッジにおける経路制御を各チャネル別に定め、 プロセッサからデータを出力する際には1つ以上のレジ
    スタを選んで送信要求を行い、プロセッシングエレメン
    ト内の送信制御部は送信要求が行われた各レジスタに対
    応するチャネルに関する接続テーブルを参照して各レジ
    スタからバスへのデータの出力制御をチャネル毎に行
    い、ブリッジは各チャネルに関する接続テーブルを参照
    してバス間のデータの中継処理をチャネル毎に行い、さ
    らにプロセッシングエレメント内の受信制御部は各チャ
    ネルに関する接続テーブルを参照してバスからレジスタ
    へのデータの入力制御をチャネル毎に行うことで、 バスを空間分割的に使用する請求項12記載のプロセッ
    サ間通信方法。
  16. 【請求項16】 プロセッシングエレメント間をバス経
    由でつなぐルートであって他のルートと同一バスの同一
    チャネル上で時間的に競合が発生しない1以上のルート
    及び各ルートの各バスのチャネルの使用時刻を事前に決
    定し、バスをチャネル単位で時分割的かつ空間分割的に
    使用することにより、前記決定されたルート及び使用時
    刻によるプロセッサ間通信のみを行わせる請求項4また
    は5記載のプロセッサ間通信方法。
  17. 【請求項17】 プロセッサを時刻に同期させて動作さ
    せ、前記決定されたルート及び使用時刻によるプロセッ
    サ間通信のみ実施するよう各プロセッサをプログラミン
    グしておき、各ブリッジは前記決定されたルート及び使
    用時刻によるプロセッサ間通信のみデータの中継動作を
    行うことで、 バスを時分割的かつ空間分割的に使用する請求項16記
    載のプロセッサ間通信方法。
  18. 【請求項18】 プロセッシングエレメント内のレジス
    タファイルの内容を該プロセッシングエレメントに属す
    るプロセッサからの送信要求に従ってバス経由で送信す
    る制御を司る送信制御部で、前記決定されたルート及び
    使用時刻によるプロセッサ間通信のみ実施されるよう制
    御し、各ブリッジは前記決定されたルート及び使用時刻
    によるプロセッサ間通信のみデータの中継動作を行うこ
    とで、 バスを時分割的かつ空間分割的に使用する請求項16記
    載のプロセッサ間通信方法。
  19. 【請求項19】 時刻による入出力制御を行うためのタ
    イムテーブルをプロセッシングエレメント内に、また時
    刻による中継制御を行うためのタイムテーブルをブリッ
    ジ内にそれぞれチャネル毎に設け、これらのタイムテー
    ブルを用いることよってプロセッシングエレメントにお
    ける入出力制御及びブリッジにおける経路制御を各チャ
    ネル毎に時刻に対して一意に定め、 プロセッサから送信要求が行われたときにプロセッシン
    グエレメント内の送信制御部は時刻を元に各タイムテー
    ブルを参照してレジスタからバスへのデータの出力制御
    をチャネル毎に行い、ブリッジは時刻を元に各タイムテ
    ーブルを参照してバス間のデータの中継処理をチャネル
    毎に行い、さらにプロセッシングエレメント内の受信制
    御部は時刻を元に各タイムテーブルを参照してバスから
    レジスタへのデータの入力制御をチャネル毎に行うこと
    で、 バスを時分割的かつ空間分割的に使用する請求項16記
    載のプロセッサ間通信方法。
  20. 【請求項20】 コネクション番号もしくはデータの宛
    先による入出力制御を行うためのコネクションテーブル
    及び時刻による入出力制御を行うためのタイムテーブル
    をプロセッシングエレメント内に、コネクション番号も
    しくはデータの宛先による中継制御を行うためのコネク
    ションテーブルをブリッジ内に、コネクション番号もし
    くはデータの宛先を制御情報として伝達するための制御
    用チャネルをバス内にそれぞれチャネル毎に設け、 プロセッサからデータを出力する際にはコネクション番
    号もしくは宛先を制御情報として送信要求を行い、プロ
    セッシングエレメント内の送信制御部は制御情報を元に
    各コネクションテーブル及び各タイムテーブルを参照し
    てバスへのデータ及び制御情報の出力制御をチャネル毎
    に行い、ブリッジは制御チャネルから受信した制御情報
    を元に各コネクションテーブルを参照してバス間のデー
    タ及び制御情報の中継処理をチャネル毎に行い、さらに
    プロセッシングエレメント内の受信制御部は受信した制
    御情報を元に各コネクションテーブルを参照してバスか
    らレジスタへのデータの入力制御をチャネル毎に行うこ
    とで、 バスを時分割的かつ空間分割的に使用する請求項16記
    載のプロセッサ間通信方法。
  21. 【請求項21】 コネクション番号もしくはデータの宛
    先による入出力制御を行うためのコネクションテーブル
    及び時刻による入出力制御を行うためのタイムテーブル
    をプロセッシングエレメント内に設けると共に、コネク
    ション番号もしくはデータの宛先による中継制御を行う
    ためのコネクションテーブルをブリッジ内に、コネクシ
    ョン番号もしくはデータの宛先を制御情報として伝達す
    るための制御用チャネルをバス内にそれぞれチャネル毎
    に設け、 プロセッサからデータを出力する際にはコネクション番
    号もしくは宛先を制御情報として送信要求を行い、プロ
    セッシングエレメント内の送信制御部は制御情報を元に
    コネクションテーブル及びタイムテーブルを参照してバ
    スへのデータ及び制御情報の出力制御をチャネル毎に行
    い、ブリッジは制御チャネルから受信した制御情報を元
    に各コネクションテーブルを参照してバス間のデータ及
    び制御情報の中継処理をチャネル毎に行い、さらにプロ
    セッシングエレメント内の受信制御部は受信した制御情
    報を元にコネクションテーブルを参照してバスからレジ
    スタへのデータの入力制御をチャネル毎に行うことで、 バスを時分割的かつ空間分割的に使用する請求項16記
    載のプロセッサ間通信方法。
  22. 【請求項22】 各プロセッシングエレメント内の送信
    制御部は、送信要求が出された後、実際にデータがバス
    に出力されるまでの間、送信要求にかかるレジスタに対
    するプロセッサからの書き込みを禁止する請求項10、
    11、15、19、20または21記載のプロセッサ間
    通信方法。
  23. 【請求項23】 受信予定のレジスタファイルの内容を
    読み出し禁止にしておき、受信制御部がバス経由で受信
    したデータをプロセッシングエレメント内のレジスタフ
    ァイルに入力した時点で読み出し可能に変更する請求項
    10、11、15、19、20、21または22記載の
    プロセッサ間通信方法。
  24. 【請求項24】 同一のレジスタファイルを物理的に共
    有する複数のプロセッサを含む複数のプロセッシングエ
    レメントと、近接する幾つかのプロセッシングエレメン
    トのレジスタファイルどうしを相互に接続する局所的バ
    ス、該局所的バスどうしを接続するための1以上の大域
    的バスおよびバス間で相互にデータの中継を行う1以上
    のブリッジから構成されるバス構造とを備えたマルチプ
    ロセッサシステム。
  25. 【請求項25】 前記それぞれのバスは、レジスタファ
    イルに含まれる各レジスタに1対1に対応するチャネル
    を有する請求項24記載のマルチプロセッサシステム。
  26. 【請求項26】 前記それぞれのバスは、レジスタファ
    イルに含まれるレジスタの数より少ない数のチャネルを
    有する請求項24記載のマルチプロセッサシステム。
  27. 【請求項27】 各プロセッシングエレメントのレジス
    タファイルに、時刻による入出力制御を行うためのタイ
    ムテーブルと、プロセッサから送信要求が行われたとき
    に時刻を元にタイムテーブルを参照してレジスタからバ
    スへのデータの出力制御を行う送信制御部と、時刻を元
    にタイムテーブルを参照してバスからレジスタへのデー
    タの入力制御を行う受信制御部とを備え、 各ブリッジに、時刻による中継制御を行うためのタイム
    テーブルと、時刻を元にタイムテーブルを参照してバス
    間のデータの中継処理を行う中継回路とを備え、 バスを時分割的に使用する構成を有する請求項25また
    は26記載のマルチプロセッサシステム。
  28. 【請求項28】 各バスに、コネクション番号もしくは
    データの宛先を制御情報として伝達するための制御用チ
    ャネルを備え、 各プロセッシングエレメントのレジスタファイルに、コ
    ネクション番号もしくはデータの宛先による入出力制御
    を行うためのコネクションテーブル及び時刻による入出
    力制御を行うためのタイムテーブルと、プロセッサから
    コネクション番号もしくは宛先を制御情報とした送信要
    求が行われたときにその制御情報を元にコネクションテ
    ーブル及びタイムテーブルを参照してバスへのデータ及
    び制御情報の出力制御を行う送信制御部と、バスから受
    信した制御情報を基にコネクションテーブルを参照して
    バスからレジスタへのデータの入力制御を行う受信制御
    部とを備え、 各ブリッジに、コネクション番号もしくはデータの宛先
    による中継制御を行うためのコネクションテーブルと、
    制御チャネルから受信した制御情報を元にコネクション
    テーブルを参照してバス間のデータ及び制御情報の中継
    処理を行う中継制御部および中継回路とを備え、 バスを時分割的に使用する構成を有する請求項25また
    は26記載のマルチプロセッサシステム。
  29. 【請求項29】 各プロセッシングエレメントのレジス
    タファイルに、入出力制御を行うためのチャネル毎の接
    続テーブルと、プロセッサから送信するレジスタを指定
    した送信要求が行われたとき、送信要求が行われた各レ
    ジスタに対応するチャネルに関する接続テーブルを参照
    して各レジスタからバスへのデータの出力制御をチャネ
    ル毎に行う送信制御部と、各チャネルに関する接続テー
    ブルを参照してバスからレジスタへのデータの入力制御
    をチャネル毎に行う受信制御部とを備え、 各ブリッジに、中継制御を行うためのチャネル毎の接続
    テーブルと、各チャネルに関する接続テーブルを参照し
    てバス間のデータの中継処理をチャネル毎に行う中継回
    路とを備え、 バスを空間分割的に使用する構成を有する請求項25ま
    たは26記載のマルチプロセッサシステム。
  30. 【請求項30】 各プロセッシングエレメントのレジス
    タファイルに、時刻による入出力制御を行うためのチャ
    ネル毎のタイムテーブルと、プロセッサから送信要求が
    行われたときに時刻を元に各タイムテーブルを参照して
    レジスタからバスへのデータの出力制御をチャネル毎に
    行う送信制御部と、時刻を元に各タイムテーブルを参照
    してバスからレジスタへのデータの入力制御をチャネル
    毎に行う受信制御部とを備え、 各ブリッジに、時刻による中継制御を行うためのチャネ
    ル毎のタイムテーブルと、時刻を元に各タイムテーブル
    を参照してバス間のデータの中継処理をチャネル毎に行
    う中継回路とを備え、 バスを時分割的かつ空間分割的に使用する構成を有する
    請求項25または26記載のマルチプロセッサシステ
    ム。
  31. 【請求項31】 各バスに、コネクション番号もしくは
    データの宛先を制御情報として伝達するための制御用チ
    ャネルをそれぞれチャネル毎に備え、 各プロセッシングエレメントのレジスタファイルに、コ
    ネクション番号もしくはデータの宛先による入出力制御
    を行うためのチャネル毎のコネクションテーブル及び時
    刻による入出力制御を行うためのチャネル毎のタイムテ
    ーブルと、プロセッサからコネクション番号もしくは宛
    先を制御情報とした送信要求が行われたときに、制御情
    報を元に各コネクションテーブル及び各タイムテーブル
    を参照してバスへのデータ及び制御情報の出力制御をチ
    ャネル毎に行う送信制御部と、バスから受信した制御情
    報を元に各コネクションテーブルを参照してバスからレ
    ジスタへのデータの入力制御をチャネル毎に行う受信制
    御部とを備え、 各ブリッジに、コネクション番号もしくはデータの宛先
    による中継制御を行うためのチャネル毎のコネクション
    テーブルと、制御チャネルから受信した制御情報を元に
    各コネクションテーブルを参照してバス間のデータ及び
    制御情報の中継処理をチャネル毎に行う中継制御部およ
    び中継回路とを備え、 バスを時分割的かつ空間分割的に使用する構成を有する
    請求項25または26記載のマルチプロセッサシステ
    ム。
  32. 【請求項32】 各バスに、コネクション番号もしくは
    データの宛先を制御情報として伝達するための制御用チ
    ャネルをそれぞれチャネル毎に備え、 各プロセッシングエレメントのレジスタファイルに、コ
    ネクション番号もしくはデータの宛先による入出力制御
    を行うためのコネクションテーブル及び時刻による入出
    力制御を行うためのタイムテーブルと、プロセッサから
    コネクション番号もしくは宛先を制御情報とした送信要
    求が行われたときに、制御情報を元にコネクションテー
    ブル及びタイムテーブルを参照してバスへのデータ及び
    制御情報の出力制御をチャネル毎に行う送信制御部と、
    バスから受信した制御情報を元にコネクションテーブル
    を参照してバスからレジスタへのデータの入力制御をチ
    ャネル毎に行う受信制御部とを備え、 各ブリッジに、コネクション番号もしくはデータの宛先
    による中継制御を行うためのチャネル毎のコネクション
    テーブルと、制御チャネルから受信した制御情報を元に
    各コネクションテーブルを参照してバス間のデータ及び
    制御情報の中継処理をチャネル毎に行う中継制御部およ
    び中継回路とを備え、 バスを時分割的かつ空間分割的に使用する構成を有する
    請求項25または26記載のマルチプロセッサシステ
    ム。
  33. 【請求項33】 各プロセッシングエレメント内の送信
    制御部は、送信要求が出された後、実際にデータがバス
    に出力されるまでの間、送信要求にかかるレジスタに対
    するプロセッサからの書き込みを禁止する構成を有する
    請求項27、28、29、30、31または32記載の
    マルチプロセッサシステム。
  34. 【請求項34】 受信予定のレジスタファイルの内容を
    読み出し禁止にしておき、受信制御部がバス経由で受信
    したデータをプロセッシングエレメント内のレジスタフ
    ァイルに入力した時点で読み出し可能に変更する構成を
    有する請求項27、28、29、30、31、32また
    は33記載のマルチプロセッサシステム。
JP34854599A 1999-12-08 1999-12-08 プロセッサ間通信方法及びマルチプロセッサシステム Pending JP2001167066A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP34854599A JP2001167066A (ja) 1999-12-08 1999-12-08 プロセッサ間通信方法及びマルチプロセッサシステム
US09/730,533 US20010003834A1 (en) 1999-12-08 2000-12-07 Interprocessor communication method and multiprocessor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP34854599A JP2001167066A (ja) 1999-12-08 1999-12-08 プロセッサ間通信方法及びマルチプロセッサシステム

Publications (1)

Publication Number Publication Date
JP2001167066A true JP2001167066A (ja) 2001-06-22

Family

ID=18397742

Family Applications (1)

Application Number Title Priority Date Filing Date
JP34854599A Pending JP2001167066A (ja) 1999-12-08 1999-12-08 プロセッサ間通信方法及びマルチプロセッサシステム

Country Status (2)

Country Link
US (1) US20010003834A1 (ja)
JP (1) JP2001167066A (ja)

Cited By (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006524850A (ja) * 2003-04-04 2006-11-02 ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト データ処理方法およびデータ処理装置
JP2009110512A (ja) * 2007-10-29 2009-05-21 Internatl Business Mach Corp <Ibm> ネットワークオンチップ、およびネットワークオンチップで以ってデータを処理する方法
JP2009531771A (ja) * 2006-05-21 2009-09-03 インターナショナル・ビジネス・マシーンズ・コーポレーション 集積回路においてコア間でデータを転送する方法及び装置
US7822968B2 (en) 1996-12-09 2010-10-26 Martin Vorbach Circuit having a multidimensional structure of configurable cells that include multi-bit-wide inputs and outputs
US7822881B2 (en) 1996-12-27 2010-10-26 Martin Vorbach Process for automatic dynamic reloading of data flow processors (DFPs) and units with two- or three-dimensional programmable cell architectures (FPGAs, DPGAs, and the like)
US7840842B2 (en) 2001-09-03 2010-11-23 Martin Vorbach Method for debugging reconfigurable architectures
US7899962B2 (en) 1996-12-20 2011-03-01 Martin Vorbach I/O and memory bus system for DFPs and units with two- or multi-dimensional programmable cell architectures
US7996827B2 (en) 2001-08-16 2011-08-09 Martin Vorbach Method for the translation of programs for reconfigurable architectures
US8058899B2 (en) 2000-10-06 2011-11-15 Martin Vorbach Logic cell array and bus system
US8099618B2 (en) 2001-03-05 2012-01-17 Martin Vorbach Methods and devices for treating and processing data
US8156284B2 (en) 2002-08-07 2012-04-10 Martin Vorbach Data processing method and device
US8209653B2 (en) 2001-09-03 2012-06-26 Martin Vorbach Router
US8230411B1 (en) 1999-06-10 2012-07-24 Martin Vorbach Method for interleaving a program over a plurality of cells
US8250503B2 (en) 2006-01-18 2012-08-21 Martin Vorbach Hardware definition method including determining whether to implement a function as hardware or software
US8281265B2 (en) 2002-08-07 2012-10-02 Martin Vorbach Method and device for processing data
US8301872B2 (en) 2000-06-13 2012-10-30 Martin Vorbach Pipeline configuration protocol and configuration unit communication
JP2013516006A (ja) * 2009-12-29 2013-05-09 エンパイア テクノロジー ディベロップメント エルエルシー エネルギー効率のよいマルチコアプロセッサのための共用メモリ
USRE44365E1 (en) 1997-02-08 2013-07-09 Martin Vorbach Method of self-synchronization of configurable elements of a programmable module
JP2013532331A (ja) * 2010-06-29 2013-08-15 インテル・コーポレーション 第1コア型と第2コア型を結合することにより電力性能効率を改善させる装置、方法及びシステム
US8686475B2 (en) 2001-09-19 2014-04-01 Pact Xpp Technologies Ag Reconfigurable elements
US8686549B2 (en) 2001-09-03 2014-04-01 Martin Vorbach Reconfigurable elements
US8812820B2 (en) 2003-08-28 2014-08-19 Pact Xpp Technologies Ag Data processing device and method
US8819505B2 (en) 1997-12-22 2014-08-26 Pact Xpp Technologies Ag Data processor having disabled cores
CN104011676A (zh) * 2011-12-20 2014-08-27 国际商业机器公司 用于跨过多个硬件线程的虚拟线程的细粒度并行的低延迟变量转移网络
US8914590B2 (en) 2002-08-07 2014-12-16 Pact Xpp Technologies Ag Data processing method and device
US9037807B2 (en) 2001-03-05 2015-05-19 Pact Xpp Technologies Ag Processor arrangement on a chip including data processing, memory, and interface elements
JP2020109605A (ja) * 2018-12-31 2020-07-16 グラフコアー リミテッドGraphcore Limited マルチスレッドプロセッサのレジスタファイル

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9250908B2 (en) 2001-03-05 2016-02-02 Pact Xpp Technologies Ag Multi-processor bus and cache interconnection system
US7844796B2 (en) 2001-03-05 2010-11-30 Martin Vorbach Data processing device and method
US9411532B2 (en) 2001-09-07 2016-08-09 Pact Xpp Technologies Ag Methods and systems for transferring data between a processing device and external devices
US9552047B2 (en) 2001-03-05 2017-01-24 Pact Xpp Technologies Ag Multiprocessor having runtime adjustable clock and clock dependent power supply
US9436631B2 (en) 2001-03-05 2016-09-06 Pact Xpp Technologies Ag Chip including memory element storing higher level memory data on a page by page basis
US9141390B2 (en) 2001-03-05 2015-09-22 Pact Xpp Technologies Ag Method of processing data with an array of data processors according to application ID
US7233998B2 (en) * 2001-03-22 2007-06-19 Sony Computer Entertainment Inc. Computer architecture and software cells for broadband networks
US10031733B2 (en) 2001-06-20 2018-07-24 Scientia Sol Mentis Ag Method for processing data
US7085866B1 (en) * 2002-02-19 2006-08-01 Hobson Richard F Hierarchical bus structure and memory access protocol for multiprocessor systems
US6959372B1 (en) * 2002-02-19 2005-10-25 Cogent Chipware Inc. Processor cluster architecture and associated parallel processing methods
US9170812B2 (en) 2002-03-21 2015-10-27 Pact Xpp Technologies Ag Data processing system having integrated pipelined array data processor
US8015303B2 (en) * 2002-08-02 2011-09-06 Astute Networks Inc. High data rate stateful protocol processing
WO2005010632A2 (en) * 2003-06-17 2005-02-03 Pact Xpp Technologies Ag Data processing device and method
US7394284B2 (en) 2002-09-06 2008-07-01 Pact Xpp Technologies Ag Reconfigurable sequencer structure
US7814218B1 (en) 2002-10-17 2010-10-12 Astute Networks, Inc. Multi-protocol and multi-format stateful processing
US8151278B1 (en) 2002-10-17 2012-04-03 Astute Networks, Inc. System and method for timer management in a stateful protocol processing system
US7596621B1 (en) * 2002-10-17 2009-09-29 Astute Networks, Inc. System and method for managing shared state using multiple programmed processors
US20070124565A1 (en) * 2003-06-18 2007-05-31 Ambric, Inc. Reconfigurable processing array having hierarchical communication network
US20070165547A1 (en) * 2003-09-09 2007-07-19 Koninklijke Philips Electronics N.V. Integrated data processing circuit with a plurality of programmable processors
WO2008045341A1 (en) * 2006-10-05 2008-04-17 Arc International Inter-processor communication method
US7765382B2 (en) * 2007-04-04 2010-07-27 Harris Corporation Propagating reconfiguration command over asynchronous self-synchronous global and inter-cluster local buses coupling wrappers of clusters of processing module matrix
JP5233449B2 (ja) * 2008-07-02 2013-07-10 日本電気株式会社 署名生成装置、ならびに、署名検証装置
US20140067601A1 (en) * 2012-09-06 2014-03-06 Sap Ag Supply chain finance planning
US9804979B2 (en) * 2014-12-29 2017-10-31 Sandisk Technologies Llc Ring bus architecture for use in a memory module
US11570045B2 (en) 2018-09-28 2023-01-31 Xilinx, Inc. Network interface device
US11537541B2 (en) 2018-09-28 2022-12-27 Xilinx, Inc. Network interface device and host processing device
US11082364B2 (en) 2019-04-25 2021-08-03 Xilinx, Inc. Network interface device
US11012411B2 (en) * 2018-11-05 2021-05-18 Xilinx, Inc. Network interface device

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5293500A (en) * 1989-02-10 1994-03-08 Mitsubishi Denki K.K. Parallel processing method and apparatus
DE4129614C2 (de) * 1990-09-07 2002-03-21 Hitachi Ltd System und Verfahren zur Datenverarbeitung
DE69327504T2 (de) * 1992-10-19 2000-08-10 Koninkl Philips Electronics Nv Datenprozessor mit Operationseinheiten, die gemeinsam Gruppen von Registerspeichern benutzen
JP2970553B2 (ja) * 1996-08-30 1999-11-02 日本電気株式会社 マルチスレッド実行方法
KR100243100B1 (ko) * 1997-08-12 2000-02-01 정선종 다수의 주프로세서 및 보조 프로세서를 갖는 프로세서의구조 및 보조 프로세서 공유 방법
US6320845B1 (en) * 1998-04-27 2001-11-20 Cisco Technology, Inc. Traffic management and flow prioritization on a routed computer network

Cited By (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8156312B2 (en) 1996-12-09 2012-04-10 Martin Vorbach Processor chip for reconfigurable data processing, for processing numeric and logic operations and including function and interconnection control units
US7822968B2 (en) 1996-12-09 2010-10-26 Martin Vorbach Circuit having a multidimensional structure of configurable cells that include multi-bit-wide inputs and outputs
US7899962B2 (en) 1996-12-20 2011-03-01 Martin Vorbach I/O and memory bus system for DFPs and units with two- or multi-dimensional programmable cell architectures
US8195856B2 (en) 1996-12-20 2012-06-05 Martin Vorbach I/O and memory bus system for DFPS and units with two- or multi-dimensional programmable cell architectures
US7822881B2 (en) 1996-12-27 2010-10-26 Martin Vorbach Process for automatic dynamic reloading of data flow processors (DFPs) and units with two- or three-dimensional programmable cell architectures (FPGAs, DPGAs, and the like)
USRE45223E1 (en) 1997-02-08 2014-10-28 Pact Xpp Technologies Ag Method of self-synchronization of configurable elements of a programmable module
USRE45109E1 (en) 1997-02-08 2014-09-02 Pact Xpp Technologies Ag Method of self-synchronization of configurable elements of a programmable module
USRE44383E1 (en) 1997-02-08 2013-07-16 Martin Vorbach Method of self-synchronization of configurable elements of a programmable module
USRE44365E1 (en) 1997-02-08 2013-07-09 Martin Vorbach Method of self-synchronization of configurable elements of a programmable module
US8819505B2 (en) 1997-12-22 2014-08-26 Pact Xpp Technologies Ag Data processor having disabled cores
US8468329B2 (en) 1999-02-25 2013-06-18 Martin Vorbach Pipeline configuration protocol and configuration unit communication
US8230411B1 (en) 1999-06-10 2012-07-24 Martin Vorbach Method for interleaving a program over a plurality of cells
US8726250B2 (en) 1999-06-10 2014-05-13 Pact Xpp Technologies Ag Configurable logic integrated circuit having a multidimensional structure of configurable elements
US8312200B2 (en) 1999-06-10 2012-11-13 Martin Vorbach Processor chip including a plurality of cache elements connected to a plurality of processor cores
US8301872B2 (en) 2000-06-13 2012-10-30 Martin Vorbach Pipeline configuration protocol and configuration unit communication
US9047440B2 (en) 2000-10-06 2015-06-02 Pact Xpp Technologies Ag Logical cell array and bus system
US8058899B2 (en) 2000-10-06 2011-11-15 Martin Vorbach Logic cell array and bus system
US8471593B2 (en) 2000-10-06 2013-06-25 Martin Vorbach Logic cell array and bus system
US9075605B2 (en) 2001-03-05 2015-07-07 Pact Xpp Technologies Ag Methods and devices for treating and processing data
US9037807B2 (en) 2001-03-05 2015-05-19 Pact Xpp Technologies Ag Processor arrangement on a chip including data processing, memory, and interface elements
US8099618B2 (en) 2001-03-05 2012-01-17 Martin Vorbach Methods and devices for treating and processing data
US8312301B2 (en) 2001-03-05 2012-11-13 Martin Vorbach Methods and devices for treating and processing data
US7996827B2 (en) 2001-08-16 2011-08-09 Martin Vorbach Method for the translation of programs for reconfigurable architectures
US8869121B2 (en) 2001-08-16 2014-10-21 Pact Xpp Technologies Ag Method for the translation of programs for reconfigurable architectures
US8429385B2 (en) 2001-09-03 2013-04-23 Martin Vorbach Device including a field having function cells and information providing cells controlled by the function cells
US8407525B2 (en) 2001-09-03 2013-03-26 Pact Xpp Technologies Ag Method for debugging reconfigurable architectures
US7840842B2 (en) 2001-09-03 2010-11-23 Martin Vorbach Method for debugging reconfigurable architectures
US8069373B2 (en) 2001-09-03 2011-11-29 Martin Vorbach Method for debugging reconfigurable architectures
US8686549B2 (en) 2001-09-03 2014-04-01 Martin Vorbach Reconfigurable elements
US8209653B2 (en) 2001-09-03 2012-06-26 Martin Vorbach Router
US8686475B2 (en) 2001-09-19 2014-04-01 Pact Xpp Technologies Ag Reconfigurable elements
US8281265B2 (en) 2002-08-07 2012-10-02 Martin Vorbach Method and device for processing data
US8156284B2 (en) 2002-08-07 2012-04-10 Martin Vorbach Data processing method and device
US8914590B2 (en) 2002-08-07 2014-12-16 Pact Xpp Technologies Ag Data processing method and device
JP2006524850A (ja) * 2003-04-04 2006-11-02 ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト データ処理方法およびデータ処理装置
US8812820B2 (en) 2003-08-28 2014-08-19 Pact Xpp Technologies Ag Data processing device and method
US8250503B2 (en) 2006-01-18 2012-08-21 Martin Vorbach Hardware definition method including determining whether to implement a function as hardware or software
JP2009531771A (ja) * 2006-05-21 2009-09-03 インターナショナル・ビジネス・マシーンズ・コーポレーション 集積回路においてコア間でデータを転送する方法及び装置
JP2009110512A (ja) * 2007-10-29 2009-05-21 Internatl Business Mach Corp <Ibm> ネットワークオンチップ、およびネットワークオンチップで以ってデータを処理する方法
JP2013516006A (ja) * 2009-12-29 2013-05-09 エンパイア テクノロジー ディベロップメント エルエルシー エネルギー効率のよいマルチコアプロセッサのための共用メモリ
US9367462B2 (en) 2009-12-29 2016-06-14 Empire Technology Development Llc Shared memories for energy efficient multi-core processors
JP2013532331A (ja) * 2010-06-29 2013-08-15 インテル・コーポレーション 第1コア型と第2コア型を結合することにより電力性能効率を改善させる装置、方法及びシステム
CN104011676A (zh) * 2011-12-20 2014-08-27 国际商业机器公司 用于跨过多个硬件线程的虚拟线程的细粒度并行的低延迟变量转移网络
JP2015501056A (ja) * 2011-12-20 2015-01-08 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 複数のハードウェア・スレッドにわたる仮想スレッドの細粒化並列処理のための低遅延変数伝達ネットワークを利用する回路装置、集積回路デバイス、プログラム製品および方法(複数のハードウェア・スレッドにわたる仮想スレッドの細粒化並列処理のための低遅延変数伝達ネットワーク)
JP2020109605A (ja) * 2018-12-31 2020-07-16 グラフコアー リミテッドGraphcore Limited マルチスレッドプロセッサのレジスタファイル

Also Published As

Publication number Publication date
US20010003834A1 (en) 2001-06-14

Similar Documents

Publication Publication Date Title
JP2001167066A (ja) プロセッサ間通信方法及びマルチプロセッサシステム
US8194690B1 (en) Packet processing in a parallel processing environment
JP2021519464A (ja) 相互接続に関連付けられている仮想チャネルを介するトランザクションの部分のアービトレーション
US7881321B2 (en) Multiprocessor node controller circuit and method
US7526350B2 (en) Method and device to process digital media streams
US6674720B1 (en) Age-based network arbitration system and method
KR100250437B1 (ko) 라운드로빈 중재 및 적응 경로 제어를 수행하는경로제어 장치
JP4808513B2 (ja) システムオンチップの大域的非同期通信アーキテクチャ
US7380102B2 (en) Communication link control among inter-coupled multiple processing units in a node to respective units in another node for request broadcasting and combined response
US20080209135A1 (en) Data processing system, method and interconnect fabric supporting destination data tagging
JP2003178039A (ja) 分散共有仮想メモリーとその構成方法
JP2006254450A (ja) 大域的非同期ネットワークオンチップシステムにおける通信ノードアーキテクチャ
JP2007109040A (ja) 情報処理装置、情報処理システム、通信中継装置および通信制御方法
Rexford et al. A router architecture for real-time point-to-point networks
US20060179253A1 (en) Data processing system, method and interconnect fabric that protect ownership transfer with a protection window extension
WO2008057830A2 (en) Using a pool of buffers for dynamic association with a virtual channel
US11730325B2 (en) Dual mode interconnect
US20050041655A1 (en) Method and apparatus for routing packets that have ordering requirements
US20060179197A1 (en) Data processing system, method and interconnect fabric having a partial response rebroadcast
US7221678B1 (en) Method and apparatus for routing packets
US7274692B1 (en) Method and apparatus for routing packets that have multiple destinations
US20080181244A1 (en) Data processing system, method and interconnect fabric for improved communication in a data processing system
US20060176885A1 (en) Data processing system, method and interconnect fabric having an address-based launch governor
US20080109586A1 (en) System and method for arbitration for virtual channels to prevent livelock in a richly-connected multi-processor computer system
JP3925105B2 (ja) マルチプロセッサシステム