JPH0991262A - マルチプロセッサシステム - Google Patents

マルチプロセッサシステム

Info

Publication number
JPH0991262A
JPH0991262A JP7264661A JP26466195A JPH0991262A JP H0991262 A JPH0991262 A JP H0991262A JP 7264661 A JP7264661 A JP 7264661A JP 26466195 A JP26466195 A JP 26466195A JP H0991262 A JPH0991262 A JP H0991262A
Authority
JP
Japan
Prior art keywords
node
data
instruction
command
field
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
JP7264661A
Other languages
English (en)
Inventor
Tetsuo Kawada
哲郎 河田
Norihiko Kuroishi
範彦 黒石
Kenichi Kawachi
賢一 河内
Nobuaki Miyagawa
宣明 宮川
Reiji Aihara
玲二 相原
Mitsumasa Koyanagi
光正 小柳
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.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
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 Fuji Xerox Co Ltd filed Critical Fuji Xerox Co Ltd
Priority to JP7264661A priority Critical patent/JPH0991262A/ja
Publication of JPH0991262A publication Critical patent/JPH0991262A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)
  • Computer And Data Communications (AREA)
  • Small-Scale Networks (AREA)

Abstract

(57)【要約】 【課題】 リングバス形状の通信機能をプロセッサエレ
メントを構成するVLSIチップの中に埋め込むことに
より、分散メモリ型マルチプロセッサシステムを構築す
る場合において、高い通信性能と低コスト性を実現する
システムアーキテクチャおよびVLSIチップアーキテ
クチャを提供する。 【解析手段】 リング形状の通信ネットワークを有し、
マスタ・スレーブ形式により通信を行うマルチプロセッ
サシステムにおいて、各々のプロセッサエレメントに、
各ノード毎にノードIDを設定するノードIDレジスタ
と、ID設定フラグを設け、ID設定フラグがリセット
されている場合に、前記ノードID設定命令に付加され
ているノードIDを前記ノードIDレジスタに設定し、
前記ID設定フラグをセットし、前記ノードID設定命
令を下流のノードに伝えない制御処理を行い、前記ID
設定フラグが設定されている場合には、前記ノードID
設定命令を下流のノードに伝える制御処理を行う。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、リングバス形式の
通信ネットワークを用いた分散メモリ型のマルチプロセ
ッサシステムに関し、特に、マルチプロセッサシステム
を構成する要素のプロセッサエレメントを、プロセッサ
間通信,データ転送,同期,並列演算などの処理機構を
有するVLSI(大規模半導体集積回路)チップで構成
し、高い通信機能と低コスト性を実現するVLSIチッ
プアーキテクチャを有するマルチプロセッサシステムに
関するものである。
【0002】
【従来の技術】従来から、マルチプロセッサシステムを
構成する場合の問題点の1つとして、プロセッサ間通信
やデータ転送の性能と経済性とのトレードオフがあげら
れる。すなわち、プロセッサ間通信やデータ転送の性能
を高めるためには、通信ネットワークが複雑化し、コス
トの上昇をもたらす。また、逆に、コストを押えるため
には、プロセッサ間通信やデータ転送の性能が悪くなっ
てしまう。
【0003】前者の例として、全てのプロセッサが1対
1の専用バスで結合された完全結合ネットワークでは、
データ転送は高速であるが、プロセッサ数Nに対して、
通信ネットワークは、O(N^2)の規模となり、コス
トの上昇をもたらす。また、後者の例では、通信ネット
ワークとして共有バスを用いた場合、コストは低くなる
が、データ転送の幅が小さくなり、通信性能は悪くな
る。
【0004】このため、例えば、通信性能を比較的高く
保ったまま、コストを押えるための1つのアプローチと
して、VLSI製造技術を利用して、プロセッサ間通信
に係わる全ての機能を単一のVLSIチップとして製造
することや、通信機能をプロセッサと同一のVLSIチ
ップ上に製造する試みがある。
【0005】しかし、従来においては、分散メモリを有
するMIMD(multiple instruction multiple data s
tream)型マルチプロセッサシステムにおいて、VLS
I製造技術による通信機能の実現性を考慮して、コスト
性能比の高いアーキテクチャの提案がなされていなかっ
た。
【0006】これらの技術に関係すると思われる従来技
術の一例をあげれば、例えば、特開昭62−18850
号公報で提案されている「リングネットワークの同報通
信制御方式」または特開平4−156655号公報で提
案されている「プロセッサ間通信方式」がある。これら
の通信制御方式または通信方式においては、リング状に
接続された通信ネットワークを介したデータ転送に専用
の小容量のデータバッファを用いる。このため、通信相
手のノードの状態によっては、データ転送を開始するこ
とができなかったり、また、通信相手となるノードの状
態を予め知っておくことが必要となり、ノード状態に関
するデータ転送のために、余分な通信トラフィックが増
えたり、ノード状態を監視するための専用の信号線が必
要となるなどの問題があった。
【0007】また、別の一例をあげれば、特開昭62−
145348号公報で提案されている「識別番号設定方
式」があげられるが、この識別番号設定方式では、演算
回路や信号線の専用化が避られず、非常の多くの数のプ
ロセッサエレメントから成るマルチプロセッサシステム
を構成する上での経済性が損なわれる。
【0008】
【発明が解決しようとする課題】ところで、このような
専用回路は、通信機能とプロセッサとが一体化された場
合には、汎用の演算器で代替することができる。したが
って、本発明の目的は、リングバス形状の通信機能をプ
ロセッサエレメントを構成するVLSIチップの中に埋
め込むことにより、分散メモリ型マルチプロセッサシス
テムを構築する場合において、高い通信性能と低コスト
性を実現するシステムアーキテクチャおよびVLSIチ
ップアーキテクチャを提供することにある。
【0009】
【課題を解決するための手段】上述のような目的を達成
するため、本発明のマルチプロセッサシステムは、第1
の特徴として、プロセッサエレメントを有する複数のノ
ードがリングバス形式の通信ネットワークを介して接続
され、マスター・スレーブ形式でノード間のデータ通信
を行い、各ノードのプロセッサエレメントにおいてデー
タ処理を行うマルチプロセッサシステムにおいて、各々
のプロセッサエレメントが、各ノード毎に設けられるノ
ードIDを設定するノードIDレジスタ(44)と、各
ノード毎に設けられるノードIDが設定されたか否かを
示すID設定フラグを格納するID設定フラグレジスタ
(43)と、該ID設定フラグをシステムのリセット時
にリセットするリセット手段(27)と、マスターノー
ドとスレーブノードとの区別を設定するノード種別設定
手段(43)と、前記ノード種別設定手段がマスターノ
ードに設定された場合に、それぞれに異なるノードID
を設定するノードID設定命令を発行する命令発行手段
(27)と、前記ノード種別設定手段がスレーブノード
に設定された場合に、前記ID設定フラグがリセットさ
れている場合に、前記ノードID設定命令に付加されて
いるノードIDを前記ノードIDレジスタに設定し、前
記ID設定フラグをセットし、前記ノードID設定命令
を下流のノードに伝えない制御処理を行い、前記ID設
定フラグが設定されている場合には、前記ノードID設
定命令を下流のノードに伝える制御処理を行う制御手段
(27)とを備えることを特徴とする。
【0010】また、第2の特徴として、本発明のマルチ
プロセッサシステムは、同じく、プロセッサエレメント
を有する複数のノードがリングバス形式の通信ネットワ
ークを介して接続され、マスター・スレーブ形式でノー
ド間のデータ通信を行い、各ノードのプロセッサエレメ
ントにおいてデータ処理を行うマルチプロセッサシステ
ムにおいて、各々のプロセッサエレメントが、プロセッ
サ間通信のために割り当てられた命令コードを入力しそ
の内容をデコードしプロセッサ間通信に必要な制御信号
を生成する制御回路(27)と、該制御信号に基づいて
パケット形式で転送される1つあるいは複数からなるデ
ータのヘッダ部を組み立てるヘッダ部生成回路(38)
と、ノード内部のデータを一時的に蓄える出力バッファ
(32)と、リングバスからのデータ入力と前記ヘッダ
部生成回路の出力と前記出力バッファからのデータの3
者を入力してその1つを選択するマルチプレクサ(2
9)と、該マルチプレクサの出力を1クロック遅延させ
次のノードへ出力するラッチ回路(30)とを備えるこ
とを特徴とする。
【0011】また、本発明のマルチプロセッサシステム
は、第3の特徴として、同じく、プロセッサエレメント
を有する複数のノードがリングバス形式の通信ネットワ
ークを介して接続され、マスター・スレーブ形式でノー
ド間のデータ通信を行い、各ノードのプロセッサエレメ
ントにおいてデータ処理を行うマルチプロセッサシステ
ムにおいて、各ノードのプロセッサエレメントを介して
伝搬される専用の割込み信号線と、前記割込み信号線に
より各ノードのプロセッサエレメントが通常のデータ通
信よりも優先度の高い割り込みを他プロセッサエレメン
トに伝える通信制御処理手段(27)とを備えることを
特徴とする。
【0012】また、第4の特徴として、本発明のマルチ
プロセッサシステムは、同じく、プロセッサエレメント
を有する複数のノードがリングバス形式の通信ネットワ
ークを介して接続され、マスター・スレーブ形式でノー
ド間のデータ通信を行い、各ノードのプロセッサエレメ
ントにおいてデータ処理を行うマルチプロセッサシステ
ムにおいて、ノード間のデータ転送に係る制御データを
記述するディスクリプタを格納する記憶手段と、前記デ
ィスクリプタへのポインタを設定するポインタレジスタ
群と、データ転送を処理する毎に該ポインタレジスタに
設定されたポインタを更新する更新手段とを備える特徴
とする。
【0013】また、この場合において、本発明のマルチ
プロセッサシステムでは、第5の特徴として、前記ディ
スクリプタが、次ディスクリプタへのポインタと、送受
信データが格納されるメモリブロックへのポインタと、
データ長とを含むことを特徴とする。
【0014】また、第6の特徴として、ここでの本発明
のマルチプロセッサシステムは、各々のプロセッサエレ
メントが、前記ノード種別設定手段に外部入力信号が与
えられることにより、マスターノードまたはスレーブノ
ードのプロセッサエレメントとして機能させることを特
徴とする。その場合、第7の特徴としては、スレーブノ
ードとして機能するプロセッサエレメントは、リセット
解除後に、待機モードに入り、マスターノードのプロセ
ッサエレメントから送信される割り込み信号により、再
起動されることを特徴とする。また、第8の特徴とし
て、スレーブノードとして機能するプロセッサエレメン
トは、リセット解除後の待機モードにおいて、リングバ
スを介して送信されるプログラムまたはデータを、ロー
カルメモリに格納することを特徴とする。
【0015】このような様々な特徴を有する本発明のマ
ルチプロセッサシステムによれば、コスト性能比の良い
マルチプロセッサシステムの構築が容易に可能となる。
具体的に説明すると、リング形状の通信ネットワークを
有し、マスタ・スレーブ形式により通信を行うマルチプ
ロセッサシステムにおいて、各々のプロセッサエレメン
トに、各ノード毎にノードIDを設定するノードIDレ
ジスタと、ID設定フラグを設けることにより、専用の
演算回路や信号線を必要とすることなく、ID設定フラ
グを用いて効率的にノードIDを設定するとことが可能
になる。
【0016】また、ID設定フラグは、システムのリセ
ット時にリセットされ、マスターノードのプロセッサエ
レメントが、ノードIDを設定するためのノードID設
定命令を用いて、それぞれ異なるノードIDを付加した
ノードID設定命令をスレーブノードの個数分だけ当該
ノードID設定命令を発行する。スレーブノードのプロ
セッサエレメントは、ノードID設定命令を受け取った
時、ID設定フラグがリセットされている場合には、
ノードID設定命令に付加されているノードIDをノー
ドIDレジスタに設定し、前記ID設定フラグをセッ
トし、前記命令を下流ノードに伝えない。また、スレ
ーブノードのプロセッサエレメントは、ID設定フラグ
が設定されている場合には、ノードID設定命令を下
流のノードに伝えるだけで何もしない。このような各ノ
ードのプロセッサエレメントの動作により、各ノードの
プロセッサエレメントにおいて、効率的にノードIDを
設定するとことが可能になる。
【0017】また、マルチプロセッサシステムを構成す
る各々のノードのプロセッサエレメントは、パケット形
式のバスデータ通信命令のヘッダ部を生成するへッダ部
生成回路と、ノード内部のデータを一時的に蓄える出力
バッファと、リングバスデータ入力とへッダ部生成回路
の出力とデータ出力バッファの3者を入力して1つの選
択するマルチプレクサと、マルチプレクサの出力を1ク
ロック遅延させ、次ノードのへの出力とするラッチ回路
とを備えており、これらの回路要素により、リングバス
により接続された各々のノードにおいて、データ転送す
る場合に、ノード当たりのデータの伝搬を1クロックサ
イクルで行うことができ、このため、同期方式よりデー
タ転送を行うことができ、高速にノード間のデータ通信
が可能になる。
【0018】また、ここでのマルチプロセッサシステム
においては、各プロセッサエレメントを介して伝搬され
る専用の割り込み信号線を備えており、この割り込み信
号線を用いることにより、通常の通信よりも優先度の高
い割り込みとして、他ノードのプロセッサエレメントに
順次に伝えるように動作する。これにより、システムに
異常事態が発生した場合にも、効率的な対処が可能とな
る。
【0019】また、各ノードの間のデータ転送のため、
データ転送の制御データを記述しているディスクリプタ
へのポインタを設定するポインタレジスタ群と、データ
転送を処理する毎にこれらのポインタレジスタに設定さ
れたポインタを更新する更新手段を備えており、ここで
のデータ転送に係わるディスクリプタが、次ディスクリ
プタへのポインタと、送受信データが格納されるメモリ
ブロックへのポインタと、送受信データが格納されるメ
モリブロックへのポインタと、データ長とを保持してい
る。このため、ここでの更新手段により、ポインタを更
新するのみで、ディスクリプタの状態を伝えられ、この
ため、効率的なデータ転送が高速に行える。
【0020】また、ここでのマルチプロセッサシステム
を構成する各々のプロセッサエレメントの回路構成は、
マスターノード用とスレーブノード用とでそれぞれに専
用の回路構成とすることなく、共通の回路構成として、
VLSI(大規模半導体集積回路)チップにより構成
し、ソフトウェア処理によりマスターノード用またはス
レーブノード用として動作する。このため、ノード種別
設定手段を設け、その設定に応じて、つまり、外部入力
信号により、マスターノード用のプロセッサエレメント
として機能するか、スレーブノード用のプロセッサエレ
メントとして機能するかを識別できるようにする。マス
ターノード用のプロセッサエレメントとして機能する場
合に、初期状態のシステムリセット解除後、ノードID
設定命令を発行する。スレーブノード用のプロセッサエ
レメントとして機能する場合には、初期状態のシステム
リセット解除後、待機モードに入り、マスターノード用
のプロセッサエレメントから送信されるプログラム等の
データによって、ローカルメモリを初期化した後、割込
み信号により再起動される。
【0021】
【発明の実施の形態】以下、本発明を実施する形態につ
いて、具体的に図面を参照して説明する。図1は、本発
明を一態様で実施するマルチプロセッサシステムの全体
の構成を示すブロック図である。図1において、10は
リングバス、11はマスターノード、12は第1番目の
スレーブノード、13は第n番目のスレーブノード、1
4はホストインターフェイスバス、15はバス交換器、
16はホストコンピュータ、17はプロセッサエレメン
ト、18はローカルメモリ、19はインターフェイス回
路、20は周辺回路である。
【0022】リングバス10は、1方向のみにデータの
情報が伝達されるバスである。ここでのリングバス10
に対して、マスタノード11およびスレーブノード(1
2,13)の(N+1)個のノードがリング状につなが
る。マスターノード11のノード番号を“0”とし、各
ノードのノード番号は、リングバス10のバスデータ出
力方向の1つ先のノードのノード番号が、リングバスの
バスデータ入力方向の1つ手前のノードのノード番号に
“1”を加えた値となっている。すなわち、マスターノ
ード11を起点のノード(ノード番号“0”)として、
N個のノードのノード番号は、1,2,3,…,(N−
2),(N−1),Nとなる。
【0023】マスターノード11は、リングバス10に
よる通信を制御するノードであり、基本的な動作モード
においては、マスターノード11に属するプロセッサエ
レメント17のみが、リングバス通信命令を発行でき
る。また、マスターノード11のプロセッサエレメント
17に接続されているローカルバスには、ローカルメモ
リ18,インターフェイス回路19,周辺回路20が接
続されている。
【0024】個々のスレーブノード12〜スレーブノー
ド13は、リングバス通信命令を解釈して実行する。各
々のスレーブノード(12,13)は、プロセッサエレ
メント(12a,13a)およびローカルメモリ(12
b,13b)を備えており、該ローカルバスにより、プ
ロセッサエレント(12a,13a)とローカルメモリ
(12b,13b)とが結合される。スレーブノードの
ローカルバスには、ローカルメモリのみが接続される。
これに対して、マスターノード11のローカルバスに
は、前述したように、ローカルメモリ18が接続される
と共に、インターフェイス回路19,周辺回路20が接
続されており、このインターフェイス回路19に、バス
交換器15を介して、ホストコンピュータ16が接続さ
れる。これによって、ホストコンピュータ16は、バス
交換器15,ホストインターフェイスバス14,インタ
ーフェイス回路19を介して、マスターノード11のロ
ーカルメモリ18に対するデータの読み出しおよび書き
込みが行われる。
【0025】マスターノード11およびその他のスレー
ブノード(12,13)における各々のプロセッサエレ
メント(17,12a,13a)の内部の回路構成は、
全て同じ構成となっており、マスターノード用とスレー
ブノード用とでそれぞれに専用の回路構成とすることな
く、VLSI(半導体集積回路装置)チップにより構成
される。次に、このようなプロセッサエレメントの内部
の回路構成について説明する。
【0026】図2は、プロセッサエレメントの内部構成
を示すブロック図である。図2において、17はプロセ
ッサエレメント、21はリングバスインターフェイスユ
ニット(RBIU)、22は内部データバス、23は整
数演算ユニット(IAU)、24は浮動小数点演算ユニ
ット(FAU)、25は命令キャッシュユニット(IC
U)、26はメモリインターフェイスユニット(MI
U)である。
【0027】リングバスインターフェイスユニット21
は、リングバスによるバス通信の制御処理を行い、バス
通信命令の発行,解釈,制御,実行を行う。主な外部イ
ンターフェイス信号の信号線として、リングバス入力、
リングバス出力,バス通信命令入力(バスコマンド入
力,トークン入力,パリティ入力),バス通信命令出力
(バスコマンド出力,トークン出力,パリティ出力),
割り込み入力,割り込み出力,バスウェイト入力,バス
ウェイト出力の各々の信号線が設けられており、これら
の入力線および出力線が隣の他のプロセッサエレメント
のリングバスインターフェイスユニットの対応の信号線
と直列に接続される。また、後述するように、リングバ
スインターフェイスユニット21には、プロセッサ間通
信のために割り当てられた命令コードを入力しその内容
をデコードしプロセッサ間通信に必要な制御信号を生成
する制御回路を含んでいる。リングバスインターフェイ
スユニット21の主な内部インターフェイスは、内部デ
ータバス22である。内部データバス22には、整数演
算ユニット(IAU)23,浮動小数点演算ユニット
(FAU)24,命令キャッシュユニット(ICU)2
5,メモリインターフェイスユニット(MIU)26が
接続され、これらとリングバスインターフェイスユニッ
ト21との間のデータ伝送が行われる。
【0028】整数演算ユニット23は、算術演算ユニッ
ト(ALU)、レジスタファイルなどを含み、整数演算
の制御処理を行う。この整数演算ユニット23は、命令
キャッシュユニット25に命令アドレスを出力し、命令
キャッシュユニット25から入力される命令を解釈して
実行する命令処理機構を含んでいる。
【0029】浮動小数点演算ユニット24は、浮動小数
点加減算器,浮動小数点乗算器,浮動小数点レジスタフ
ァイルを含んでおり、浮動小数点演算の処理制御を行
う。この演算処理の制御は、浮動小数点演算ユニット2
4が、命令キャッシュユニット25から入力される命令
を解釈し、その内容に従って、浮動小数点演算の処理を
実行する。
【0030】命令キャッシュユニット25は、整数演算
ユニット23から命令アドレスを入力し、内部キャッシ
ュメモリに対応する命令があれば(キャッシュヒッ
ト)、それを出力する。また、内部キャッシュメモリに
対応する命令がない場合には(キャッシュミス)、メモ
リインターフェイスユニット26を通じて外部メモリ
(ローカルメモリ)から必要な命令を含むデータブロッ
クを入力し、入力したデータブロックのデータから整数
演算ユニット23に対する命令を出力する。
【0031】メモリインターフェイスユニット26は、
プロセッサエレメント17の外部に接続される外部メモ
リ(ローカルメモリ)との間でのデータの読み出し、書
き込みを行う制御処理を行う。ここでのメモリに対する
データの読み出しおよび書き込みの制御処理は、次のよ
うなタスク〜タスクの4種類のタスクとして、メモ
リインターフェイス処理を実行する。すなわち、 タスク:整数演算ユニット23のデコードするロード
/ストア命令に必要な処理を行うタスク。 タスク:浮動小数点演算ユニット24の内部に外部メ
モリからのデータを連続的に格納し、また、逆に、浮動
小数点演算ユニット24から外部メモリにデータを連続
的に格納するタスク。 タスク:命令キャッシュユニット25のキャッシュミ
スに必要な処理(外部メモリから必要な命令を含むブロ
ックを入力し、入力したブロックのデータから命令を出
力する処理)を行うタスク。 タスク:リングバスインターフェイスユニット21を
介してリングバスから入力されるデータを外部メモリに
書き込む。また、逆にリングバスインターフェイスユニ
ット21を介してリングバスへ出力されるデータを外部
メモリから読み出すタスク。
【0032】これらの4種類のタスクの関するメモリイ
ンターフェイスユニット26と、整数演算ユニット2
3,浮動小数点演算ユニット24,命令キャッシュユニ
ット25,リングバスインターフェイスユニット21と
の間のデータ転送は、すベて内部データバス22を介し
て行われる。従って、リングバスネットワークを介した
データ転送は、内部の演算ユニット(23,24)の処
理とは完全に独立して行うことができる。また、ネット
ワーク間のデータ転送は、内部データバス22やメモリ
インターフェイスユニット26を占有することになるた
め、他の演算ユニットとの競合が起こる。その場合、ネ
ットワーク間のデータ転送の処理の方に優先権が与えら
れるので、この間、他の演算ユニットがこれらのリソー
スを要求した場合には待たされる。
【0033】図3は、プロセッサエレメントの各ユニッ
トのレジスタにおいて保持されるデータの種類を示す図
である。図2に示すプロセッサエレメントを構成する各
ユニットのブロックに対応して、リングバスインターフ
ェイスユニット21,整数演算ユニット23,浮動小数
点演算ユニット24,命令キャッシュユニット25,メ
モリインターフェイスユニット26におけるそれぞれの
内部レジスタが示されている。
【0034】図3に示すように、リングバスインターフ
ェイスユニット21には、入力バッファレジスタ(IB
R)、出力FIFOメモリ(OFR)、ノードIDレジ
スタ(NIDR)、グループIDレジスタ(GID
R)、Test&Setフラグレジスタ(TSFR)、
Test&Setコマンドレジスタ(TSCR)、イン
タラプトベクトルレジスタ(INTVSR)、リングバ
スインターフェイスユニットコントロール/ステイタス
レジスタ(RCSR)が含まれている。
【0035】また、整数演算ユニット23には、汎用レ
ジスタ(R0〜R31)、整数演算ユニットコントロー
ル/ステイタスレジスタ(ICSR)、トラップアドレ
スレジスタ(TRAR)が含まれている。浮動小数点演
算ユニット24には、浮動小数点レジスタ(FR0〜F
R15)、浮動小数点ベクトルステイタスレジスタ(F
VSR)、浮動小数点FIFOメモリ(FFIFO(3
2))、浮動小数点演算ユニットコントロール/ステイタ
スレジスタ(FCSR)が含まれている。
【0036】また、命令キャッシュユニット25には、
キャッシュメモリ(CM)、タグメモリ(TM)が含ま
れている。そして、メモリインターフェイスユニット2
2には、リングバス命令ポインタ(CMDP)、SEN
D令令ポインタ(SENDRP)、RTRV命令ポイン
タ(RTRVRP)、メモリブロックポインタ(MEM
BP)、メモリカウンタ(MCNT)、メモリインター
フェイスユニットコントロール/ステイタスレジスタ
(MCSR)のレジスタ群が含まれている。これらのレ
ジスタを用いて、データが一時的に格納され、このプロ
セッサエレメントにおけるデータ処理が進められる。
【0037】図4は、リングバスインターフェイスユニ
ットの内部の回路構成を示すブロック図であり、リング
バスインターフェイスユニットにおけるリングバスに対
するデータの流れを主として示している。図4におい
て、22は内部データバスであり、図3に示す内部デー
タバス22に接続される。27はリングバスインターフ
ェイスユニット制御回路(RBIU制御回路)、28は
リングバスデータ入力の信号線、29はマルチプレク
サ、30はラッチ回路、31はリングバスデータ出力の
信号線である。また、32は出力FIFOメモリ、33
は入力FIFOメモリ、35は比較器、36はリングバ
スデータ入力方向の外部入出力制御信号群、37はリン
グバスデータ出力方向の外部入出力制御信号群、38は
へッダ部生成回路である。39は他ユニット(IAU,
FAU,ICU,MIU)から入力される制御信号群、
40は他ユニットへ出力される制御信号群、41は当該
リングバスインターフェイスユニット(RBIU)の内
部制御信号群、42はレジスタファイル、43はリング
バスインターフェイスユニットコントロール/ステイタ
スレジスタ(RCSR)、44はノードIDレジスタ
(NIDR)、45はグループIDレジスタ(GID
R)である。
【0038】ここでのリングバスインターフェイスユニ
ットの動作を説明する前に、まず、リングバスインター
フェイスユニット/ステイタスレジスタ(RCSR)4
3による制御機能について説明する。図5は、リングバ
スインターフェイスユニットコントロール/ステイタス
レジスタ(RCSR)のビット構成を示す図である。リ
ングバスインターフェイスユニットコントロール/ステ
イタスレジスタ(RCSR)の各ビットの持つ意味は、
プロセッサエレメントを構成するプロセッサアーキテク
チャとして、次のように定められている。 第0ビット(MODE0);現在、Mode0の動作モ
ードである。 第1ビット(MODE1);現在、Mode1の動作モ
ードである。 第2ビット(MODE2);現在、Mode2の動作モ
ードである。 第3ビット(MODEX);現在、ModeXの動作モ
ードである。 第4ビット(IFE);入力FIFOメモリが空であ
る。 第5ビット(OFE);出力FIFOメモリが空であ
る。 第6ビット(OFF);出力FIFOメモリが一杯であ
る。 第7ビット(AND);各プロセッサエレメントの対応
のビット(状態ビット)のAND演算を行う。 第8ビット(OR);各プロセッサエレメントの対応の
ビット(状態ビット)のOR演算を行う。 第9ビット(CFF);TEST/TESTR/RTR
V/RTRVAの各命令のコマンドパケットの復帰を示
す。 第10ビット(STATF);STATコマンドが実行
中であることを示している。 第11ビット(NID);ノードIDがセットされてい
る状態であることを示す。 第12ビット(KPTK);トークンの要求を示す。 第13ビット(AN);アクティブノードであることを
示す。 第14ビット(MN);マスターノードであることを示
す。 第15ビット(INTC);リングバス命令ポインタ
(CMDP)に対応する割り込み発生フラグである。 第16ビット(INTCM);リングバス命令ポインタ
(CMDP)に対応する割り込みマスクフラグである。 第17ビット(INTS);SEND命令ポインタ(S
ENDRP)に対応する割り込み発生フラグである。 第18ビット(INTSM);SEND命令ポインタ
(SENDRP)に対応する割り込みマスクフラグであ
る。 第19ビット(INTR);データ回収命令ポインタ
(RTRVRP)に対応する割り込み発生フラグであ
る。 第20ビット(INTRM);データ回収命令ポインタ
(RTRVRP)に対応する割り込みマスクフラグであ
る。
【0039】リングバスインターフェイスユニットコン
トロール/ステイタスレジスタ(RCSR)は、リング
バスインターフェイスユニットのレジスタファイル(4
2:図4)に備えられ、これらのビット内容より、リン
グバスインターフェイスユニットの制御動作が行われ
る。このビット構成において、第0ビット〜第3ビット
は、リングバスインターフェイスユニット(RBIU)
が動作する各々の動作モードを表し、常に、これらのう
ちの1ビットだけがセットされている。リセット時に
は、第0ビットのみが“1”にセットされて、第1ビッ
ト〜第3ビットはリセットされる。また、第4ビット〜
第6ビットは、入出力バッファ(入力FIFOメモリ,
出力FIFOメモリ)のステイタスを表示するビットで
ある。第7ビット〜第8ビットは、STAT命令に関す
るステイタスビットであり、第9ビットは、TEST/
TESTR/RTRV/RTRVA命令の各命令の処理
が完了したことを表すステイタスビットである。また、
第10ビットは、STAT命令(状態検査命令)の処理
結果として得られる第7ビット〜第8ビットのステイタ
スが有効であることを示すステイタスビットである。
【0040】また、第11ビットは、ノードIDレジス
タの内容の有効/無効を示すステイタスビットであり、
プロセッサエレメントのチップのリセット時に、このビ
ットもリセットされる。第12ビット〜第13ビット
は、次に説明するMode1の動作モードにおいて用いら
れる通信要求のステイタスビットであり、第12ビット
は、トークンを要求している状態を表し、すなわち、通
信命令の発行を要求している状態を表している。また、
第13ビットは、トークンを自ノードが持っている状態
を表している。
【0041】第14ビットは、自ノードがマスターノー
ドであるか、または、スレーブノードであるかを表すス
テイタスビットであり、つまり、自ノードのプロセッサ
エレメントがマスターノードしての動作をするか、また
は、スレーブノードとして動作するかを表している。こ
の第14ビットは、外部入力信号によりセットされ、そ
のままこのビットの値に反映される。電源につながれて
いる場合(“1”にセットされている場合)は、マスタ
ーノードの動作を行い、グランドにつながれている場合
(“0”にセットされている場合)は、スレーブノード
の動作を行う。
【0042】また、第15ビット〜第16ビットは、次
に説明するリングバス命令(CMD命令,CMDA命
令)の処理が完了したとき、命令発行ノードにおいてセ
ットされる割り込みビットと、割り込みを有効化/無効
化するマスクビットである。また、第17ビット〜第1
8ビットは、次に説明する転送命令(SEND命令,S
ENDA命令)の処理が完了したとき、命令発行ノード
においてセットされる割り込みビットと、割り込みを有
効化/無効化するマスクビットである。また、第19ビ
ット〜第20ビットは、次に説明するデータ回収命令
(RTRV命令,RTRVA命令)の処理が完了したと
き、命令発行ノードにおいてセットされる割り込みビッ
トと、割り込みを有効化/無効化するマスクビットであ
る。
【0043】次に、本実施例のマルチプロセッサシステ
ムにおいて、プロセッサ間通信により、データ通信を行
うリングバスインターフェイス機能について説明する。
この場合、マルチプロセッサシステムにおいては、4つ
の動作モード(Mode0,Mode1,Mode2,ModeX)
によって、プロセッサ間のデータ通信を行う他に、他の
プロセッサエレメントのステイタスチェック機能、他の
プロセッサへの割り込み機能が備えられている。
【0044】データ転送における転送モードは、Mode
0,Mode1,Mode2,ModeXの4つの動作モードの
いずれかで行われる。Mode0の動作モードは、マスタ
ーノードが複数のスレーブノードに対して、リングバス
上の全てのデータ転送を管理・制御するデータ転送モー
ドである。したがって、この場合には、マスターノード
の制御によりデータ転送が行われる。Mode1の動作モ
ードは、リングバス上につながるノード(プロセッサエ
レメント)の中で、トークンを持つ1つのアクティブノ
ード(プロセッサエレメント)がその他のパッシブノー
ドに対してリングバス上の全てのデータ転送を管理・制
御するデータ転送モードである。したがって、この場合
には、トークンを有する1つのノード(アクティブノー
ドのプロセッサエレメント)によってデータ転送が制御
される。
【0045】また、Mode2の動作モードは、リングバ
スで前後につながれた2つのノードの組み合せが、それ
ぞれ独自にデータ転送を行うモードである。したがっ
て、この場合には、各々のノードの制御により個別にデ
ータ転送が行われる。また、ModeXの動作モードは、
対故障モードである。ノードの機能に故障が発見された
場合に設定されるモードである。ModeXの動作モード
に設定されている(ModeXの状態にある)ノードは、
リングバス全体としての機能を損なわないように、常に
データをそのまま受け渡す。つまり、この場合のMode
Xの動作モードに設定されているノードは、リングバス
上に存在しないことと同じになる。
【0046】次に、このような動作モードで用いられる
リングバス命令について特明する。次にリングバス命令
の一覧を示す。 SEND : データ転送命令 SENDA : アドレス付データ転送命令 RTRV : データ回収命令 RTRVA : アドレス付データ回収命令 MODE0 : Mode0へのモード切り替え命令 MODE1 : Mode1へのモード切り替え命令 MODE2 : Mode2へのモード切り替え命令 MODEX : ModeXへのモード切り替え命令 SETNID: ノードID設定命令 SETGID: グループID設定命令 STAT : ステイタス回収命令 RESNID: ノードIDリセット命令 TESTS : Test&Set命令 TESTR : Test&Reset命令 INTH : ハードウェアインタラプト命令 INTS : ソフトウェアインタラプト命令 BNOP : BUSNOP命令(ノーオペレーショ
ン命令)
【0047】これらのリングバス命令は、整数演算ユニ
ッット(IAU)23の命令セットの内に割り当てられ
ており、整数演算ユニッット23がこれらのリングバス
命令を受け付けて、読み込みデコードして解析し、各々
の演算制御信号を送出する。つまり、整数演算ユニッッ
ト23がリングバス命令を入力してデコードすると、制
御信号群39の信号線を通じて、リングバスインターフ
ェイスユニット制御回路27に伝えられるので、リング
バスインターフェイスユニット制御回路27では、その
リングバス命令の対応の制御動作を行う。
【0048】Mode0およびMode1の動作モードにおい
て、リングバス命令を発行できるのは、前述したよう
に、マスターノード(あるいはアクティブノード)だけ
であり、スレーブノード(あるいはパッシブノード)
は、命令を受け取って解釈し実行するだけである。ただ
し、INTH命令(ハードウェア割り込み)は、スレー
ブノード(あるいはパッシブノード)において発行可能
である。このINTH命令によるハードウェア割り込み
は、割り込み信号線により各ノードのプロセッサエレメ
ントに伝えられる。
【0049】Mode2の動作モードにおいては、全ての
ノードは、INTH命令以外の命令を発行できない。リ
ングバス命令のパケットフォーマットのデータ構造の例
を、図6に示している。図6は、SEND命令のパケッ
トフォーマットを示す図である。図6において、100
はSEND命令のパケットフォーマット、100aは命
令フィールド、100bはデータ長フィールド、100
cはソースフィールド、100dはディスティネーショ
ンフィールドである。また、100eはダミーパケッ
ト、100fはデータパケットをそれぞれ示している。
【0050】図6に示すように、リングバス命令のパケ
ットフォーマット100は、64ビットのパケットの1
個乃至複数個から構成されており、その内容は、命令パ
ケット(ヘッダ部)およびそれに続くデータパケット
(データ部)から構成されている。これらの命令パケッ
トおよびデータパケットの各パケットが1クロック当た
り1個づつ、単独で、あるいは連続してリングバス上を
伝搬してゆき、各ノードに当該リングバス命令の命令パ
ケットおよびデータパケットのパケットフォーマットの
全体が伝えられる。この場合、例えば、図4に示すよう
に、1つのノードを通過するため、リングバスデータ入
力28からリングバスデータ出力31まで伝搬される場
合に、ラッチ回路70を介して同期がとられて伝達され
るので、1クロックサイクルの遅延が生ずる。従って、
1ノード当たり1クロックサイクルの遅延を伴って、命
令パケットおよびデータパケットは、リングバス上の各
ノードを伝搬してゆく。図6に示すようなリングバス命
令のパケットフォーマットのデータパケット(リングバ
ス命令)は、リングバス上を一巡し、命令を発行したノ
ードまで伝えられて、そこで伝搬は止められる。
【0051】リングバス上の各ノードのノードアドレス
は、ノードIDとグループIDにより設定される。ノー
ドIDは“0”〜“32767”(15ビットの2進
数)の範囲で、各ノードIDが一意となるように設定さ
れ、グループIDは“0”〜“14”(15ビットの各
々のビット位置)の範囲で各ノードに設定される。
【0052】このため、リングバス命令の中の命令パケ
ット中のソースIDフィールド(以下srcフィールド
と称する)100cには、パケットを発行したノードの
ノードID(15ビットの2進数)の値がそのまま格納
される。また、送信する相手先を指定するディスティネ
ーションノードIDフィールド(以下destフィール
ドと称する)100dの指定には、単一ノード指定(ユ
ニキャスト)、複数ノード指定(マルチキャスト)、全
ノード指定(ブロードキャスト)があり、それぞれの指
定に応じて、ノードIDまたはグループIDの値が設定
される。
【0053】単一ノード指定の場合は、destフィー
ルド100dには、指定するノードのノードIDがその
まま設定される。この場合、destフィールドのMS
B(第15ビット)が“0”であり、第0ビットから第
14ビットに、指定する相手ノードのノードIDの値
が、そのまま格納される。また、複数ノード指定の場合
には、destフィールド100dのMSB(第15ビ
ット)が“1”とされ、第0ビットから第14ビットの
ビット位置において、グループIDに対応する位置に設
定された“1”のビットが、そのグループIDを指定し
ていることになる。例えば、destフィールド100
dに設定されたビット表現のアドレス“1000000
000000101”の指定では、MSB(第15ビッ
ト)が“1”であり、複数ノード指定(マルチキャス
ト)の指示がなされたことであり、その第0ビットから
第14ビットのビット位置から、グループIDが“0”
または“2”のノードを選択することを意味している。
このように、destフィールド100dに設定された
ビット位置により、それぞれのノードを指定する。した
がって、ここでは、全ノード指定(ブロードキャスト)
の場合には、第0ビットから第15ビットの全てを
“1”として、全てのノードの指定を指示するようにし
ている。次に、個々のリングバス命令について、その命
令が実行される場合の動作例について説明する。
【0054】SEND命令(データ転送命令) 前述した図6に当該SEND命令のパケットフォーマッ
トのデータ構造が示されており、図6を参照して説明す
る。SEND命令を実行するマスターノードあるいはア
クティブノードのプロセッサエレントにおいては、リン
グバスインターフェイスユニット21から、SEND命
令のパケットフォーマット100に従って、転送するデ
ータを送出する。
【0055】この場合、SEND命令のパケットフォー
マット100において、最初の命令パケットの命令フィ
ールド100aに格納する命令コードは、整数演算ユニ
ット23から受け取って格納する。また、発信元を示す
srcフィールド100cのノードIDの値としては、
ノードIDレジスタ(NIDR)44の値が格納され
る。そして、データ長フィールド(以下lenフィール
ドと称する)100b,destフィールド100d,
およびデータパケット100fに、それぞれ格納する値
は、次に説明するようなデータ構造に従ってメモリアク
セスを行って、データ読み出し処理を行い、ローカルメ
モリから読み出して格納する。また、命令パケット(1
00a〜100d)とデータパケット100fとの間
は、データ読み出しのタイミング調整に応じてダミーパ
ケット100eが挿入される。このSEND命令のパケ
ットフォーマット100においては、2つのダミーパケ
ットが挿入されている。
【0056】図7は、SEND命令実行時に用いられる
データ読み出しのためのデータ構造を説明する図であ
る。図7に示すように、リングバス命令ポインタ(CM
DP)47には、この場合のデータ読み出しのためのデ
ータ構造へのポインタが予め設定されている。メモリイ
ンターフェイスユニット(MIU)26は、リングバス
命令ポインタ(CMDP)47の内容をメモリアドレス
として出力することにより、ローカルメモリ中に格納さ
れているディスクリプタブロック(desc)120を
アクセスする。ディスクリプタブロック(desc)1
20には、図7に示すように、ディスクリプタポインタ
フィールド(desp)120a,メモリブロックポイ
ンタフィールド(memp)120b,データ長フィー
ルド(len)120d,および、送信先アドレスフィ
ールド(dest)120fが設けられている。各フィ
ールドにデータを格納するように64ビットのパケット
2つに対応する領域が割り当てられるが、使用されない
領域は未使用領域120c,120eとして残される。
【0057】ディスクリプタポインタフィールド(de
sp)120aには、データが継続する場合の次のディ
スクリプタポインタの先頭アドレスが設定される。次の
SEND命令のために、リングバス命令ポインタ(CM
DP)47には、当該ディスクリプタポインタ(des
p)120aの値が入れられる。メモリブロックポイン
タフィールド(memp)120bには、転送すベきデ
ータ領域121の先頭アドレスが設定される。当該メモ
リブロックポインタフィールド(memp)120bの
値は、メモリインタフェースユニット(MIU)26の
レジスタ群のメモリブロックポインタ(MEMBP)に
書き込まれ、データの読み出しの際、当該メモリブロッ
クポインタ(MEMBP)のデータ値が、インクリメン
トされながら、アドレスとして出力される。
【0058】データ長フィールド(len)120dに
は、SEND命令のパケットフォーマット100のle
nフィールド100bに格納されるデータ長が設定され
る。また、この場合に、データ長は、メモリインタフェ
ースユニット(MIU)26のレジスタ群のメモリカウ
ンタ(MCNT)に設定されて、転送すべきデータ領域
121のデータの数を数えるために用いられる。また、
送信先アドレスフィールド(dest)120fには、
SEND命令のパケットフォーマット100のdest
フィールド100dに設定される送信先アドレスが設定
される。
【0059】このようなデータ構造によるメモリアクセ
スから読み出され、転送されるデータは、ローカルメモ
リからローカルバス、メモリインターフェイスユニット
(MIU)26、内部データバス22を通って、リング
バスインターフェイスユニット21に送られ、リングバ
ス上に送出される。リングバスインターフェイスユニッ
ト21においては、図4に示すように、内部データバス
22を通じて読み出されたデータは、出力FIFOメモ
リ32に蓄えられ、マルチプレクサ29,ラッチ回路3
0を介して、リングバスデータ出力31の信号線から出
力される。この場合のデータ転送タイミングは、図8に
示されている。
【0060】図8は、SEND命令によるデータ送信の
データ転送タイミングを説明するイミングチャートであ
る。つまり、図8に示すように、SEND命令が発行さ
れる場合は、第1クロックにおいて、コマンド出力信号
によって、リングバス命令の発行が指示され、そのクロ
ックのタイミングで、リングバスデータ出力として、以
降にパケットフォーマットのパケットが順次に出力され
る。リングバスデータ出力には、まず、命令パケット
(Header)が送出され、続いてデータパケットが送出さ
れる。その場合において、転送されるベきデータの読み
出しが開始され、ローカルメモリからローカルバス、内
部データバスを介してデータが読み出されるが、第2ク
ロックにおいて、転送データ(第1番目のデータパケッ
ト)がローカルバスに載せられ、続く、第3クロックに
おいて、転送データ(第1番目のデータパケット)が内
部データバスに載せられる。そして、転送データ(第1
番目のデータパケット)が、リングバスデータ出力とし
て送出されるのは、第4クロックになってからである。
このため、ここでは、2つのダミーパケット(Dummy)
が、命令パケット(Header)の後に続いて送出され、第
4クロック以降に、第1番目のデータパケットが送出さ
れる。
【0061】次に、このようなSEND命令のパケット
を受け取ったスレーブノードあるいはパッシブノードに
おけるデータ受信動作について説明する。スレーブノー
ドあるいはパッシブノードのプロセッサエレメントにお
いては、リングバスインターフェイスユニット21にお
いて、図4に示すように、リングバスデータ入力28か
らSEND命令のパケットを受け取るので、比較器35
により、パケットフォーマット100のdestフィー
ルド100dのノードアドレスの値と、ノードIDレジ
スタ(NIDR)44またはグループIDレジスタ45
に設定されたノードアドレスの値とを比較する。この場
合、比較器35は、destフィールド100dのMS
B(第15ビット)が“0”であれば、destフィー
ルド100dのノードアドレスの値と、ノードIDレジ
スタ(NIDR)44との比較を行い、また、dest
フィールド100dのMSB(第15ビット)が“1”
であれば、destフィールド100dのノードアドレ
スの値と、グループIDレジスタ(GIDR)45との
ビット位置での比較を行う。
【0062】この比較演算の結果、もし、ノードアドレ
スのアドレス条件が一致すれば、当該SEND命令の命
令パケットに続くデータパケットは、リングバスデータ
入力28から入力されて、入力FIFOメモリ33に格
納される。また、ノードアドレスのアドレス条件が一致
しない場合には、リングバスデータ入力28から入力さ
れた命令パケットおよびデータパケットは、マルチプレ
クサ29、ラッチ回路30、リングバスデータ出力31
を介して、そのまま出力される。
【0063】なお、ノードアドレスのアドレス条件が一
致する場合には、リングバスデータ入力28から入力さ
れた命令パケットおよびデータパケットを、次のノード
に出力することはしない(このルールは以下に説明する
全ての命令に適用される)。入力FIFOメモリ33に
格納されたデータパケットは、前述の場合と同様なデー
タ構造によるメモリアクセス手法に従って、内部データ
バス22,ローカルバスを経て、ローカルメモリの所定
のアドレスに格納される。
【0064】図9は、SEND命令実行時に用いられる
データ格納のためのデータ構造を説明する図である。図
9に示すように、この場合のディスクリプタブロックの
データ構造によるメモリアクセスにおいては、SEND
命令ポインタ(SENDRP)48には、このデータ構
造へのポインタが予め設定されている。メモリインタフ
ェースユニット(MIU)26は、SEND命令ポイン
タ(SENDRP)48をメモリアドレスとして出力す
ることにより、ローカルメモリ中のディスクリプタブロ
ック(desc)122をアクセスする。この場合のデ
ィスクリプタブロック(desc)122には、図9に
示すように、ディスクリプタポインタフィールド(de
sp)122a,メモリブロックポインタフィールド
(memp)122b,データ長フィールド(len)
122d,および、送信元アドレスフィールド(sr
c)122eが設けられている。各フィールドにデータ
を格納するように64ビットのパケット2つに対応する
領域が割り当てられるが、使用されない領域は未使用領
域122c,122fとして残される。
【0065】ディスクリプタポインタフィールド(de
sp)122aには、次のディスクリプタポインタの先
頭アドレスが設定される。次のSEND命令のために、
SEND命令ポインタ(SENDRP)48には、当該
ディスクリプタポインタ(desp)122aの値が入
れられる。メモリブロックポインタフィールド(mem
p)122bには、送られてきたデータを格納すベきデ
ータ領域123の先頭アドレスが設定される。当該メモ
リブロックポインタフィールド(memp)122bの
値は、メモリインターフェイスユニット26のレジスタ
群のメモリブロックポインタ(MEMBP)に書き込ま
れ、データ書込みの際、当該メモリブロックポインタ
(MEMBP)の値がインクリメントしながら、アドレ
スとして出力される。データ長フィールド(len)1
22dには、送られてきたSEND命令のパケットフォ
ーマット100のlenフィールド100bが書き込ま
れる。また、このデータ長フィールド(len)122
dの値は、メモリインターフェイスユニット26のレジ
スタ群のメモリカウンタ(MCNT)に設定されて、デ
ータ領域123のデータの数を数えるために用いられ
る。なお、この場合の送信元アドレスフィールド(sr
c)122eには、パケットフォーマット100のsr
cフィールド100cに入れられた送信元アドレスが設
定される。
【0066】このデータ構造によるメモリアクセスによ
って書き込まれるデータは、入力FIFOメモリ33
(図4),内部データバス22,ローカルバスを通して
ローカルメモリに転送される。この場合のデータ転送タ
イミングが、図10に示されている。図10は、SEN
D命令によるデータ受信処理のデータ取り込みタイミン
グを説明するタイミングチャートである。図10に示す
ように、SEND命令のパケットによるデータ転送を受
け付けて、受信処理を開始する場合、命令パケットのノ
ードアドレスのアドレス条件が一致すると、データパケ
ットを順次に受信して入力FIFOメモリ33に一時的
に格納する。
【0067】この場合において、リングバスデータ入力
から、データが入力されてから内部データバスに転送さ
れるまでの間に、9クロックサイクル遅れている理由
は、受信ノードのプロセッサエレメントにおいて、内部
データバス22の使用のための使用権を得て、ディスク
リプタブロック(desc)122を読み出し、各レジ
スタにデータ書込み制御のためのデータを設定する処理
を終える時間として、9クロックサイクルのサイクル数
を要するからである。ここでの9クロックサイクルの遅
れ時間は、データパケットが入力FIFOメモリ33に
格納されて吸収される。
【0068】SENDA命令(アドレス付きデータ転送
命令) 図11は、SENDA命令のパケットフォーマットを示
す図である。図11において、101はSENDA命令
のパケットフォーマット、101aは命令フィールド、
101bはデータ長フィールド、101cはソースフィ
ールド、101dはディスティネーションフィールド、
101eはアドレスフィールドである。また、101f
はダミーパケット、101gはデータパケットをそれぞ
れ示している。ここでのSENDA命令のパケットフォ
ーマット101は、前述のSEND命令のパケットフォ
ーマット100の各フィールドに加えて、更にアドレス
フィールド101eが付加されている。
【0069】このようなSENDA命令を実行するマス
ターノードあるいはアクティブノードにおいては、その
プロセッサエレレメントのリングバスインターフェイス
ユニット(RBIU)21において、図11に示すよう
なSENDA命令のパケットフォーマット101に従っ
て、命令パケットによるアドレスの付加と共に、データ
パケットにより転送するデータを送出する。
【0070】この場合、SENDA命令のパケットフォ
ーマット101においては、前述の場合と同様に、最初
の命令パケットの命令フィールド101aに格納する命
令コードは、整数演算ユニット23から受け取って格納
する。また、発信元を示すノードIDを格納するソース
フィールド(以下srcフィールドと称する)101c
のノードIDの値としては、ノードIDレジスタ(NI
DR)44の値が格納される。データ長を格納するデー
タ長フィールド(以下lenフィールドと称する)10
1b,送信先を格納するディスティネーションフィール
ド(以下destフィールドと称する)101d,デー
タパケット101fに格納する値は、次に説明するよう
なデータ構造によりメモリアクセスを行い、データ読み
出し処理を行い、ローカルメモリから読み出して格納す
る。また、命令パケット(100a〜100e)とデー
タパケット101gとの間は、データ読み出しのタイミ
ング調整に応じてダミーパケット101fが挿入され
る。ここでは、1つのダミーパケットが挿入される。
【0071】SENDA命令によるデータ転送の動作
は、基本的には、SEND命令の場合と同様であるが、
その相違点は、データの送り先のメモリアドレスを格納
するアドレスフィールド101eが、命令パケットに付
加されており、そのメモリアドレスに係る処理が加わる
ことである。図12は、SENDA命令の実行時に用い
られるメモリアクセスのためのデータ構造を示す図であ
る。図12を参照して、この場合のメモリアクセスにつ
いて説明する。
【0072】リングバス命令ポインタ(CMDP)47
には、このデータ構造へのポインタが予め設定される。
メモリインターフェイスユニット(MIU)26は、リ
ングバス命令ポインタ(CMDP)47をメモリアドレ
スとして出力することにより、ローカルメモリの中に格
納されているディスクリタポインタブロック(des
c)124をアクセスする。
【0073】ディスクリタポインタブロック(des
c)124の構造は、データの送り先のメモリアドレス
を格納するアドレスフィールド124gが付加されてい
ることを除いて、前述した図7のディスクリタポインタ
ブロック(desc)120と同様である。すなわち、
図12に示すように、ディスクリプタブロック(des
c)124には、ディスクリプタポインタフィールド
(desp)124a,メモリブロックポインタフィー
ルド(memp)124b,データ長フィールド(le
n)124d,送信先アドレスフィールド(dest)
124f,およびアドレスフィールド(addr)12
4gが設けられている。この場合、各フィールドにデー
タを格納するように64ビットのパケット3つに対応す
る領域が割り当てられる。また、ここにおいても、使用
されない領域は,未使用領域124c,124eとして
残される。
【0074】ディスクリプタポインタフィールド(de
sp)124aには、データが継続する場合の次のディ
スクリプタポインタの先頭アドレスが設定される。次の
SENDA命令のために、リングバス命令ポインタ(C
MDP)47には、当該ディスクリプタポインタ(de
sp)124aの値が入れられる。メモリブロックポイ
ンタフィールド(memp)124bには、転送すベき
データ領域125の先頭アドレスが設定される。当該メ
モリブロックポインタフィールド(memp)124b
の値は、メモリインタフェースユニット(MIU)26
のレジスタ群のメモリブロックポインタ(MEMBP)
に書き込まれ、データの読み出しの際、当該メモリブロ
ックポインタ(MEMBP)のデータ値が、インクリメ
ントされながら、アドレスとして出力される。
【0075】また、データ長フィールド(len)12
4dには、パケットフォーマット101のlenフィー
ルド101bに格納されるデータ長が設定される。ま
た、この場合に、データ長は、メモリインタフェースユ
ニット(MIU)26のレジスタ群のメモリカウンタ
(MCNT)に設定されて、転送すべきデータ領域12
5のデータの数を数えるために用いられる。送信先アド
レスフィールド(dest)124fには、パケットフ
ォーマット101のdestフィールド101dに設定
される送信先アドレスが設定される。アドレスフィール
ド(addr)124gには、データの送り先のメモリ
アドレスを格納するアドレスフィールド101eの値が
格納される。
【0076】このようなデータ構造によるメモリアクセ
スから読み出され、転送されるデータは、前述のSEN
D命令の場合と同様に、ローカルメモリからローカルバ
ス、メモリインターフェイスユニット(MIU)26、
そして、内部データバス22を通って、リングバスイン
ターフェイスユニット21に送られ、リングバス上に送
出される。リングバスインターフェイスユニット21に
おいては、図4に示すように、内部データバス22を通
じて読み出されたデータは、出力FIFOメモリ32に
蓄えられ、マルチプレクサ29,ラッチ回路30を介し
て、リングバスデータ出力31の信号線から出力され
る。この場合のデータ転送タイミングが、図13に示さ
れている。
【0077】図13は、SENDA命令によるデータ送
信のデータ転送タイミングを説明するタイミングチャー
トである。この場合、図13に示すように、SENDA
命令が発行される場合は、第1クロックにおいて、コマ
ンド出力信号によって、リングバス命令の発行が指示さ
れ、そのクロックのタイミングで、リングバスデータ出
力として、以降にパケットフォーマットのパケットが順
次に出力される。ここでは、リングバス命令の命令パケ
ットにアドレスが付加されるため、2つの命令パケット
(Header1, Header2)が送出される。このため、リン
グバスデータ出力には、まず、第1番目の命令パケット
(Header1)が送出され、続いて、第2番目の命令パケ
ット(Header3)が送出される。そして、データパケッ
トが送出される。この場合にも、転送されるベきデータ
の読み出しが開始され、ローカルメモリからローカルバ
ス、内部データバスを介してデータが読み出されるが、
第2クロックにおいて、転送データ(第1番目のパケッ
ト)がローカルバスに載せられるので、続く、第3クロ
ックにおいて、転送データ(第1番目のパケット)が内
部データバスに載せられる。したがって、第1番目のパ
ケットの転送データが、リングバスデータ出力に送出さ
れるタイミングは、第4クロックになってからである。
このため、ここでは、1つのダミーパケット(Dummy)
が、命令パケット(Header1,Header2)の後に続いて
送出され、第4クロック以降に、第1番目のデータパケ
ットが送出される。
【0078】次に、このようなSENDA命令のパケッ
トを受け取ったスレーブノードあるいはパッシブノード
におけるデータ受信動作について説明する。スレーブノ
ードあるいはパッシブノードのプロセッサエレメントに
おいては、リングバスインターフェイスユニット21に
おいて、前述の図4に示すように、リングバスデータ入
力28からSENDA命令のパケットを受け取るので、
比較器35により、パケットフォーマット101のde
stフィールド101dのノードアドレスの値と、ノー
ドIDレジスタ(NIDR)44またはグループIDレ
ジスタ45に設定されたノードアドレスの値とを比較す
る。この場合において、比較器35は、destフィー
ルド101dのMSB(第15ビット)が“0”であれ
ば、destフィールド101dのノードアドレスの値
と、ノードIDレジスタ(NIDR)44との比較を行
う。destフィールド101dのMSB(第15ビッ
ト)が“1”であれば、destフィールド101dの
ノードアドレスの値と、グループIDレジスタ(GID
R)45とのビット位置での比較を行う。
【0079】比較演算の結果、もし、ノードアドレスの
アドレス条件が一致すれば、当該SENDA命令のパケ
ットのデータパケットは、リングバスデータ入力28か
ら入力されて、入力FIFOメモリ33に格納される。
また、ノードアドレスのアドレス条件が一致しない場合
には、リングバスデータ入力28から入力されたパケッ
トは、マルチプレクサ29、ラッチ回路30、リングバ
スデータ出力31を介して、そのまま出力される。
【0080】この場合、SENDA命令を受け取ったス
レーブノードあるいはパッシブノードは、アドレスが条
件が合致すれば、データパケットを入力FIFOメモリ
33に格納し、データパケットをローカルメモリに書き
込む処理を行うが、SENDA命令を受け取ったスレー
ブノードあるいはパッシブノードは、データのメモリへ
の格納のために、前述のようなデータ構造は用いない。
【0081】つまり、SENDA命令では、データを格
納するためのアドレスが付加されているので、命令パケ
ットの中のaddrフィールド101eのアドレスを、
直接にメモリインタフェースユニット(MIU)26の
メモリブロックポインタ(MEMBP)に書き込み、ま
た、命令パケットのlenフィールド101bのデータ
長を、メモリカウンタ(MCNT)に入れて、ローカル
メモリに書き込むデータの数を数えるために用いる。書
き込まれるデータは、入力FIFOメモリ33(図
4),内部データバス22,ローカルバスを通してロー
カルメモリに転送される。この場合のデータ転送タイミ
ングが、図14に示されている。
【0082】図14は、SENDA命令による受信ノー
ドにおける内部データ転送タイミングを示すタイミング
チャートである。図14に示すように、SENDA命令
のパケットによるデータ転送を受け付けて、受信処理を
開始する場合、命令パケットのノードアドレスのアドレ
ス条件が一致すると、データパケットを順次に受信して
入力FIFOメモリ33に一時的に格納する。
【0083】この場合において、リングバスデータ入力
から、データが入力されてから内部データバスに転送さ
れるまでの間に、9クロックサイクル遅れている理由
は、受信ノードのプロセッサエレメントにおいて、内部
データバス22の使用のための使用権を得て、前述のよ
うに、アドレスおよびデータ長をそれぞれのレジスタに
設定し、データ書込み制御のための処理を終えるのに、
それだけのサイクル数を要するからである。この9クロ
ックサイクルの遅れ時間は、データパケットが入力FI
FOメモリ33に格納されて吸収される。
【0084】RTRV(データ回収命令) 図15は、RTRV命令のパケットフォーマットを示す
図である。図15において、102はRTRV命令のパ
ケットフォーマット、102aは命令フィールド、10
2bはデータ長フィールド(以下lenフィールドと称
する)、102cはソースフィールド(以下srcフィ
ールドと称する)、102dはディスティネーションフ
ィールド(以下destフィールドと称する)である。
また、102eはダミーパケット、102fはデータパ
ケットをそれぞれ示している。
【0085】RTRV命令を実行するマスターノードあ
るいはアクティブノードのプロセッサエレメントは、そ
のリングバスインターフェイスユニット(RBIU)に
おいて、図15に示すパケットフォーマット102に従
って、RTRV命令のパケットを送出する。ただし、こ
のリングバス命令を実行する場合、RTRV命令を発行
するノードは、RTRV命令のパケットフォーマット1
02の命令フィールド102a,lenフィールド10
2b,srcフィールド102c,destフィールド
102dから成る最初の64ビットの命令パケットのみ
を送出する。また、この場合のlenフィールド102
bおよびdestフィールド102dに格納するデータ
長およびノードIDの値は、前述した図7に示されるよ
うなデータ構造と同様なデータ構造によりメモリアクセ
スを行い、SEND命令のメモリアクセスのためのデー
タ構造と同様のデータ構造から読み出される。RTRV
命令は、単一ノード指定(ユニキャスト)のみに有効で
ある。
【0086】リングバス上において、RTRV命令の命
令パケットを受け取ったスレーブノードあるいはパッシ
ブノードは、そのプロセッサエメレントのリングバスイ
ンターフェイスユニット21において、図4に示すよう
に、リングバスデータ入力28からRTRV命令の命令
パケットを受け取るので、比較器35により、パケット
フォーマット102のdestフィールド102dのノ
ードアドレスの値と、ノードIDレジスタ(NIDR)
44またはグループIDレジスタ45に設定されたノー
ドアドレスの値とを比較する。なお、この場合は、単一
ノード指定(ユニキャスト)のみが有効であり、実質的
にはノードIDの比較のみが行われる。
【0087】もし、ノードIDの比較により、ノードア
ドレスの条件が合致すれば、当該ノードが転送データを
送信する処理を行うので、前述のSEND命令の動作と
同様に、図9に示されるように、SEND命令ポインタ
(SENDRP)48からリンクされるデータ構造と同
様のデータ構造を用いてメモリアクセスを行い、ローカ
ルメモリからデータを読み出し、リングバス上に転送デ
ータを送出する処理を行う。ただし、このRTRV命令
による動作において、メモリアクセスのためのデータ構
造の先頭アドレスを格納するレジスタが、RTRV命令
を受け取るノードの場合は、メモリインターフェイスユ
ニット26のレジスタ群のRTRV命令ポインタ(RT
RVRP)となる。つまり、図9において、SEND命
令ポインタ(SENDRP)48のデータに替えて、R
TRV命令ポインタ(RTRVRP)のデータが用いら
れ、同様なデータ構造によりメモリアクセスが行われ
る。
【0088】この場合、メモリインタフェースユニット
(MIU)26は、RTRV命令ポインタ(RTRVR
P)の値をメモリアドレスとして出力することにより、
ローカルメモリ中のディスクリプタブロック(des
c)122をアクセスする。ディスクリプタブロック
(desc)122には、ディスクリプタポインタフィ
ールド(desp)122a,メモリブロックポインタ
フィールド(memp)122b,データ長フィールド
(len)122d,および、送信元アドレスフィール
ド(src)122eが設けられる。
【0089】RTRV命令の命令パケットを受信したノ
ードにおいて、そのデータの読み出しは、次のように行
われる。受け取った命令パケットの中のlenフィール
ド102bのデータ長は、メモリインターフェイスユニ
ット26において、RTRV命令ポインタによりアクセ
スされるディスクリプタのデータ長フィールド(122
d)に書き込まれ、更に、メモリカウンタ(MCNT)
に書き込まれて、読み出すデータの数を数えるために用
いられる。また、命令パケット中のsrcフィールド1
02cは、RTRV命令用ディスクリプタブロック(d
esc)122の送信元アドレスフィールド(src)
122eに書き込まれる。データはディスクリプタブロ
ックタブロック(desc)122のメモリブロックポ
インタフィールド(memp)122bが指示するアド
レスを先頭として読み出され、内部データバス22,出
力FIFOメモリ32,マルチプレクサ29,ラッチ回
路30,リングバスデータ出力31の経路を経て、リン
グバス上に送出される。
【0090】この場合のRTRV命令を受信したスレー
ブノードまたはパッシブノードにおけるデータ読み出し
のタイミングが、図16に示されている。図16は、R
TRV命令によるデータ送信のデータ転送タイミングを
説明するタイミングチャートである。図16に示すよう
に、RTRV命令の命令パケット(Header)を、リング
バスデータ入力により、コマンド入力信号と共に受け取
ると、次のクロックサイクルにおいて、当該ノードから
転送データを送出するため、同じくRTRV命令の命令
パケット(Header)をリングバスデータ出力として、コ
マンド出力信号と共に送出する。そして、データパケッ
トを送出できるタイミングになるまで、リングバスデー
タ出力として、ダミーパケット(Dummy)を連続して送
出する。この間、当該ノードのプロセッサエレメントで
は、内部データバス22の使用のための使用権を得て、
ローカルメモリのメモリアクセスのためのディスクリプ
タ(desc)122に対する処理を終えるのに、9ク
ロックサイクルの時間を要する。この処理時間の経過
後、読み出された第1番目のデータがローカルバスに載
せられ、続いて、次のクロックサイクルにおいて、読み
出された第1番目のデータが、メモリインターフェイス
ユニット26から内部データバスに載せられ、次のクロ
ックサイクルにおいて、リングバスインターフェイスユ
ニット21からリンクバスデータ出力として送出され
る。この間、リングバスインターフェイスユニット21
においては、ダミーパケット(Dummy)を連続して送出
する。
【0091】このようにして、RTRV命令に対して
は、該当ノードから転送データがリングバス上に送出さ
れる処理が行われる。一方、RTRV命令を発行したマ
スターノードあるいはアクチィブノードにおいては、R
TRV命令がリングバス上を一巡して戻ったきた時に、
前述した図7に示されるように、リングバス命令ポイン
タ(CMDP)47によるメモリアクセスで用いるデー
タ構造に従って、転送されてくるデータパケットを入力
し、当該データをローカルメモリに書き込む。
【0092】図17は、RTRV命令による転送データ
を受信したノードにおけるデータ書き込みのタイミング
を示すタイミングチャートである。図17を参照して、
ここでのRTRV命令による転送データを受信したマス
ターノードまたはアクティブノードにおけるデータ書き
込みのタイミングを説明する。前述したように、図7に
示すデータ構造によるメモリアクセスによって書き込ま
れるデータは、入力FIFOメモリ33(図4),内部
データバス22,ローカルバスを通してローカルメモリ
に転送されるが、RTRV命令では、当該命令パケット
によるデータ転送を受け付けて、受信処理を開始する。
この場合にも、前述したように、転送データを送出する
該当ノードにおいて、データの読み出しまでに9クロッ
クサイクルの時間を必要とし、更に、読み出されたデー
タがリングバス上に載せられまでに2クロックサイクル
の時間を要するので、ダミーパケットを経て、11クロ
ックサイクルの後にデータパケットが転送されてくる。
【0093】したがって、RTRV命令の命令パケット
(Header)によるデータ転送を受けて、ダミーパケット
の受信し、11クロックサイクルの後に、第1番目のデ
ータパケットを受信する。受信したデータパケットは、
順次に入力FIFOメモリ33に一時的に格納し、内部
データバス,メモリインターフェイスユニット,ローカ
ルバスを経て、ローカルメモリに書き込まれる。
【0094】RTRVA命令(アドレス付データ回収命
令) 図18は、RTRVA命令のパケットフォーマットを示
す図である。図18において、103はRTRVA命令
のパケットフォーマット、103aは命令フィールド、
103bはデータ長フィールド、103cはソースフィ
ールド、103dはディスティネーションフィールド、
103eはアドレスフィールドである。また、103f
はダミーパケット、103gはデータパケットをそれぞ
れ示している。ここでのRTRVA命令のパケットフォ
ーマット103は、前述のRTRV命令のパケットフォ
ーマット102の各フィールドに加えて、更にアドレス
フィールド103eが付加されている。
【0095】RTRVA命令を実行するマスターノード
あるいはのアクティブノードは、そのプロセッサエレメ
ントのリングバスインターフェイス(RBIU)21か
ら、図18に示すようなRTRVA命令のパケットフォ
ーマット103に従って、RTRVA命令の命令パケッ
トのデータを送出する。この場合においても、RTRV
命令の動作と同様に、RTRVA命令を発行するノード
は、RTRVA命令のパケットフォーマット103にお
いて、その命令フィールド103a,データ長フィール
ド(以下lenフィールドと称する)103b,ソース
フィールド(以下srcフィールドと称する)103
c,ディスティネーシュンフィールド(以下destフ
ィールドと称する)103d,アドレスフィールド(以
下addrフィールドと称する)103eから成る最初
の64ビットの2つの命令パケットのデータのみを送出
する。この場合のlenフィールド103b,dest
フィールド103d,およびaddrフィールド103
eに格納するデータ長,ノードID,アドレスの値は、
前述した図12に示されるようなデータ構造と同様なデ
ータ構造によりメモリアクセスを行い、SENDA命令
のメモリアクセスのためのデータ構造と同様のデータ構
造から読み出される。RTRVA命令は、単一ノード指
定(ユニキャスト)のみ有効である。
【0096】このRTRVA命令によるデータ転送の動
作は、基本的には、前述したRTRV動作と同様であ
り、その相異点は、当該命令にメモリアクセスのための
アドレスが命令パケットに付加されていることであり、
そのためのメモリアドレスに係る処理が加わることであ
る。
【0097】次に、RTRVA命令を受け取ったスレー
ブノードあるいはパッシブノードの動作を説明する。リ
ングバス上において、RTRVA命令の命令パケット
(Header1)を受け取ったスレーブノードあるいはパッ
シブノードは、そのプロセッサエメレントのリングバス
インターフェイスユニット21において、図4に示すよ
うに、リングバスデータ入力28からRTRVA命令の
第1番目の命令パケット(Header1)を受け取り、図4
に示すように、比較器35により、パケットフォーマッ
ト103のdestフィールド103dのノードアドレ
スの値と、ノードIDレジスタ(NIDR)44または
グループIDレジスタ45に設定されたノードアドレス
の値とを比較する。なお、この場合は、単一ノード指定
(ユニキャスト)のみが有効であるので、実質的にはノ
ードIDの比較のみが行われる。
【0098】ノードIDの比較により、ノードアドレス
の条件が合致すれば、当該ノードが転送データを送信す
る処理を行うので、前述のSENDA命令の動作と同様
に、第2番目の命令パケット(Header2)によるアドレ
スを用いて、メモリアクセスを行って、ローカルメモリ
からデータを読み出し、リングバス上に転送データを送
出する処理を行う。すなわち、アドレスの条件が合致す
れば、命令パケット中のlenフィールド103bのデ
ータ長と、addrフィールド103eのアドレスを用
いて、ローカルメモリからデータを読み出して、リング
バス上に送出する。lenフィールド103bのデータ
長の値は、メモリカウンタ(MCNT)に書き込まれ
て、読み出すデータの数を数えるために利用される。a
ddrフィールド103eは、メモリブロックポインタ
(MEMBP)に書き込まれる。
【0099】ローカルメモリから読み出されたデータ
は、内部データバス22,出力FIFOメモリ32,マ
ルチプレクサ29,ラッチ回路30,リングバスデータ
出力31の経路により出力される。RTRVA命令を受
信したスレーブノードまたはパッシブノードにおけるデ
ータ読み出しのタイミングを、図19に示している。
【0100】図19は、RTRVA命令によるデータ送
信のデータ転送タイミングを説明するタイミングチャー
トである。図19に示すように、RTRVA命令の第1
番目の命令パケット(Header1)を、リングバスデータ
入力により、コマンド入力信号と共に受け取ると、次の
クロックサイクルにおいて、当該ノードから転送データ
を送出するため、同じくRTRVA命令の命令パケット
(Header1)をリングバスデータ出力として、コマンド
出力信号と共に送出する。また、この場合、続いて、ア
ドレスを含む第2番目の命令パケット(Header2)が、
リングバスデータ入力により受けるので、1つのクロッ
クサイクルだけ遅れて、当該ノードから同じくRTRV
A命令の第2番目の命令パケット(Header2)をリング
バスデータ出力として送出される。
【0101】そして続いてデータパケットを送出できる
タイミングになるまで、リングバスデータ出力として、
ダミーパケット(Dummy)を連続して送出する。この
間、当該ノードのプロセッサエレメントでは、内部デー
タバス22の使用のための使用権を得て、ローカルメモ
リのメモリアクセスのためのアドレス設定に対する処理
を終えるのに、9クロックサイクルの時間を要する。こ
の処理時間の経過後、読み出された第1番目のデータが
ローカルバスに載せられ、続いて、次のクロックサイク
ルにおいて、読み出された第1番目のデータが、メモリ
インターフェイスユニット26から内部データバスに載
せられ、次のクロックサイクルにおいて、リングバスイ
ンターフェイスユニット21からリンクバスデータ出力
として送出される。この間、リングバスインターフェイ
スユニット21においては、ダミーパケット(Dummy)
を連続して送出されるので、この場合には、9つのダミ
ーパケットが送出される。
【0102】このようにして、RTRVA命令に対して
は、該当ノードから転送データがリングバス上に送出さ
れる処理が行われる。一方、RTRVA命令を発行した
マスターノードあるいはアクチィブノードにおいては、
RTRVA命令がリングバス上を一巡して戻ったきた時
に、前述した図12に示されるように、リングバス命令
ポインタ(CMDP)47からディスクリプタブロック
を用いるデータ構造に従ってメモリアクセスを行い、転
送されてくるデータパケットを入力し、当該データをロ
ーカルメモリに書き込む。
【0103】図20は、RTRVA命令による転送デー
タを受信したノードにおけるデータ書き込みのタイミン
グを示すタイミングチャートである。図20を参照し
て、ここでのRTRVA命令による転送データを受信し
たマスターノードまたはアクティブノードにおけるデー
タ書き込みのタイミングを説明する。前述したように、
図12に示すデータ構造によるメモリアクセスによって
書き込まれるデータは、入力FIFOメモリ33(図
4),内部データバス22,ローカルバスを通してロー
カルメモリに転送されるが、この場合には、RTRVA
命令の命令パケットによるデータ転送を受け付けて、受
信処理を開始する。前述したように、転送データを送出
する該当ノードにおいて、RTRVA命令を受けて、デ
ータの読み出しまでに9クロックサイクルの時間を必要
とし、更に、読み出されたデータがリングバス上に載せ
られるまでに2クロックサイクルの時間を要するので、
命令パケットから9個のダミーパケットを経て、11ク
ロックサイクルの後にデータパケットが送られてくる。
【0104】したがって、RTRVA命令の命令パケッ
ト(Header1,Header2)によるデータ転送を受けて、
9個のダミーパケットの受信の後に、つまり、命令パケ
ットの受信始の後、11クロックサイクルの後に、第1
番目のデータパケットを受信する。受信したデータパケ
ットは、順次に入力FIFOメモリ33に一時的な格納
され、内部データバス,メモリインターフェイスユニッ
ト,ローカルバスを経て、ローカルメモリに書き込まれ
る。
【0105】MODE0命令,MODE1命令,MOD
E2命令,MODEX命令(Mode0,Mode1,Mode
2,ModeXへのモード切替え命令) 次に、モード切替え命令などのその他のリングバス命令
について説明する。図21は、MODE0命令およびM
ODE1命令のパケットフォーマットを示す図である。
また、図22は、MODE2命令のパケットフォーマッ
トを示す図であり、図23は、MODE3命令のパケッ
トフォーマットを示す図である。これらのモード切替え
命令が実行されると、リングバスに接続された全てのノ
ードあるいは指定されたノードが、指定されたモードに
切り替えられる。
【0106】これらのモード切り替え命令のパケットフ
ォーマット(104,105,106)においては、図
21,図22,および図23に示されるように、命令パ
ケットの中の命令フィールド(104a,105a,1
06a)により、切り替える動作モードの種類を指定
し、ディスティネーションフィールド(104d,10
5d,106d)によって、動作モードを切り替えるノ
ードを指定する。また、ソースフィールド(104c,
105c,106c)により、命令の発行元のノードI
Dを指定しておく。
【0107】これらのモード切り替え命令パケットをリ
ングバス上に送出した場合、指定された該当のノードに
おいては、現在のモードが、リングバスインターフェイ
スユニットコントロール/ステイタスレジスタ(RCS
R)43における第0ビット〜第3ビットのMode0,
Mode1,Mode2,ModeXのフラグビットに反映され
ているので、その内容に応じて、これらのフラグビット
をモード切り替え命令パケットの指定に従って切り替え
る。なお、Mode2の動作モードからの他の動作モード
に切り替える場合、これらのモード切り替え命令によっ
ては、動作モードが切り替えられないので、INTH命
令(ハードウェア割り込み命令)により行われる。つま
り、Mode2では、INTH命令以外のリンクバス命令
を受け付けないからである。
【0108】SETNID命令(ノードID設定命令) 図24は、SETNID命令のパケットフォーマットを
示す図である。図24において、107はSETNID
命令のパケットフォーマット、107aは命令フィール
ド、107bは設定ノードIDフィールド(nid)、
107cはソースフィールド(src)、107dはデ
ィスティネーションフィールド(BROADCAST)
である。
【0109】リンクバス構成のマルチプロセッサシステ
ムにおいては、リセット直後、各スレーブノードのプロ
セッサエレメントには、それぞれのノードIDが付与さ
れておらず、また、リングバスインターフェイスユニッ
トコントロール/ステイタスレジスタ(RCSR)43
の第11ビットのNIDフラグビットは“0”になって
いる。この場合、マスターノードが、SETNID命令
を実行することにより、1命令に付き、1つのスレーブ
ノードのノードIDを設定する。マスターノードの整数
演算ユニット(IAU)23は、SETNID命令を、
設定するノードIDをオペランドとして、設定ノードI
Dフィールド(nid)107bに設定して、当該SE
TNID命令を実行する。
【0110】スレーブノードに設定するノードIDは、
SETNID命令のパケットフォーマット107の設定
ノードフィールド(nid)107bに入れられて送出
されるので、SETNID命令を受け取ったスレーブノ
ードは、当該ノードのリングバスインターフェイスユニ
ットコントロール/ステイタスレジスタ(RCSR)4
3の第11ビットのNIDフラグビットを調ベ、NID
フラグビットが“0”であれば、当該SETNID命令
の設定ノードフィールド(nid)107bの値を、ノ
ードIDレジスタ(NIDR)44に書き込み、その
後、NIDフラグビットを“1”として、当該SETN
ID命令を次ノード以降に出力しない。また、既にNI
Dフラグビットが“1”であれば、SETNID命令に
対しては、何もしないで、当該SETNID命令をその
まま次ノードに送出する。
【0111】RESNID命令(ノードIDリセット命
令) 図25は、RESNID命令のパケットフォーマットを
示す図である。図25において、108はSETNID
命令のパケットフォーマット、108aは命令フィール
ド、108cはソースフィールド(src)、108d
はディスティネーションフィールド(dest)であ
る。RESNID命令は、リングバス構成のマルチプロ
セッサシステムにおいて、該当ノードのノードIDを再
設定する場合に用いられる。このリングバス命令を受け
取り、アドレス条件が一致したノードは、当該ノードの
リングバスインターフェイスユニットコントロール/ス
テイタスレジスタ(RCSR)43の第11ビットのN
IDフラグビットをリセットする。つまり、NIDフラ
グビットを“0”とする。これにより、このスレーブノ
ードにおいては、前述したSETNID命令により、新
たにノードIDを設定することができるようになる。
【0112】SETGID命令(グループID設定命
令) 図26は、SETGID命令のパケットフォーマットを
示す図である。図26において、109はSETGID
命令のパケットフォーマット、109aは命令フィール
ド、109bは設定グループノードIDフィールド(g
id)、109cはソースフィールド(src)、10
9dはディスティネーションフィールド(dest)で
ある。
【0113】リンクバス構成のマルチプロセッサシステ
ムにおいては、それぞれの処理の対象のスレーブノード
(プロセッサエレメント)を同時に複数個指定するた
め、ノードIDに加えてグループIDを設定できるよう
なシステムアキーテクチャを採用している。このための
グループIDの設定は、SETGID命令を用いて設定
する。スレーブノードにおいては、図26に示すような
SETGID命令を受け取ると、ディスティネーション
フィールド(dest)109dによって指定するノー
ドIDに従ってノードアドレスの条件が一致したノード
は、当該SETGID命令109の設定グループノード
IDフィールド(gid)109bの内容を、グループ
IDレジスタ(GIDR)45に設定する。
【0114】STAT命令(ステイタス命令) 図27は、STAT命令のパケットフォーマットを示す
図である。図27において、110はSTAT命令のパ
ケットフォーマット、110aは命令フィールド、11
0bは状態ビットフィールド(st)、110cはソー
スフィールド(src)、110dはディスティネーシ
ョンフィールド(dest)である。このSTAT命令
は、指定されたノードにおける状態ビットと、当該ST
AT命令の状態ビットフィールド(st)110bの状
態ビットとの間で、AND論理演算またはOR論理演算
を行い、各ノードにおける状態ビットを検査するリング
バス命令である。
【0115】マスターノードあるいはアクティブノード
は、STAT命令を発行する際、このSTAT命令のパ
ケットフォーマット110の状態ビットフィールド(s
t)110bの初期値として、AND論理演算のための
ANDビットを“1”とし、OR論理演算のためのOR
ビットを“0”として、STAT命令を送出する。この
STAT命令をリングバスから受けたスレーブノードま
たはパッシブノードにおいては、ディスティネーション
フィールド(dest)110dのノードIDによるア
ドレス条件が合致したノードは、状態ビットフィールド
(st)110bのANDビットと、当該ノードのリン
グバスインターフェイスユニットコントロール/ステイ
タスレジスタ(RCSR)43の第7ビットのANDフ
ラグビットとの論理AND演算を実行する。また、状態
ビットフィールド(st)110bのORビットと、当
該ノードのリングバスインターフェイスユニットコント
ロール/ステイタスレジスタ(RCSR)43の第8ビ
ットのORフラグビットとの論理OR演算を実行する。
そして、その演算結果を再び、状態ビットフィールド
(st)110bに入れ、当該STAT命令を次のノー
ドに送出する。STAT命令を受けても、アドレス条件
が合致しないノードは、何もせず、当該STAT命令を
そのまま次のノードに送出する。
【0116】STAT命令を発行したマスターノードあ
るいはアクティブノードは、戻ってきたSTAT命令の
状態ビットフィールド(st)110bを、当該ノード
のリングバスインターフェイスユニットコントロール/
ステイタスレジスタ(RCSR)43の第7ビットのA
NDフラグビット,第8ビットのORフラグビットに反
映させて、該当ノードの状態を得る。この場合、各々の
ノードの状態を検査するためのSTAT命令のリングバ
ス上への送出は、整数演算ユニット(IAU)23か
ら、STAT命令を1回実行してから、STAT命令を
終らせるためのBNOP命令を実行するまで、毎サイク
ル毎にSTAT命令を発行する。
【0117】TESTS命令/TESTR命令(Test
&Set/Test&Reset命令) 図28は、TESTS命令のパケットフォーマットを示
す図である。図28において、111はTESTS命令
のパケットフォーマット、111aは命令フィールド、
111bはマスクビットフィールド(mask)、11
1cはソースフィールド(src)、111dはディス
ティネーションフィールド(dest)をそれぞれ示し
ている。また、図29は、TESTR命令のパケットフ
ォーマットを示す図であり、図29において、112は
TESTR命令のパケットフォーマットを示し、112
aは命令フィールド、112bはマスクビットフィール
ド(mask)、112cはソースフィールド(sr
c)、112dはディスティネーションフィールド(d
est)をそれぞれ示している。
【0118】マスターノードあるいはアクティブノード
が、TESTS命令またはTESTR命令を発行する
際、TESTS命令のパケットフォーマット111のマ
スクビットフィールド111bまたはTESTR命令の
パケットフォーマット112のマスクビットフィールド
112bの初期値が、整数演算ユニット(IAU)23
が命令を実行する時のオペランドして与えられ、TES
TS命令のディスティネーションフィールド111dま
たはTESTR命令のディスティネーションフィールド
112dに、対象ノードのノードIDの値が設定され
る。これらの値は、内部データバス22,出力FIFO
メモリ32などを通じて出力され、リングバスインター
フェイスユニット21から、TESTS命令またはTE
STR命令として出力される。
【0119】これらのTESTS命令またはTESTR
命令の命令パケットを受けて、ノードIDのアドレス条
件が合致したスレーブノード(あるいはパッシブノー
ド)は、次の動作を行う。つまり、TESTS命令の場
合には、入力されたマスクビットフィールド111bが
“1”のビットについてのみ、Test&Setフラグレジ
スタ(TSFR)46の対応するビットをマスクビット
フィールド111bの対応するビットに入れて、同時
に、Test&Setフラグレジスタ(TSFR)46のビ
ットを“1”とする。また、TESTR命令の場合に
は、入力されたマスクビットフィールド112bが
“1”のビットについてのみ、Test&Setフラグレジ
スタ(TSFR)46の対応するビットをマスクビット
フィールド111bの対応するビットに入れて、同時
に、Test&Setフラグレジスタ(TSFR)46のビ
ットを“0”とする。これにより、Test&Setフラグ
レジスタ(TSFR)46の対応するビットの状態を検
査し、その内容に応じてフラグをセット/リセットでき
る。
【0120】INTH命令(ハードウェア割り込み命
令) 図30は、INTH命令のパケットフォーマットを示す
図である。図30において、113はINTH命令のパ
ケットフォーマット、113aは命令フィールド、11
3bはベクトルフィールド(vector)、113c
はソースフィールド(src)、113dはディスティ
ネーションフィールド(BROADCAST)をそれぞ
れ示している。INTH命令は、全てのノードが発行す
ることができる。このINTH命令は、次の2つの目的
で用いられる。
【0121】その1つの目的は、Mode2の動作モード
からMode0の動作モードへのモード切り替えである。
Mode2の動作モードでは、INTH命令以外のリング
バス命令は無効とされ、全てのリングバスデータ入力2
8からの入力は、データと見做される。そこで、特別の
信号であるリングバスデータ入力方向の外部入出力制御
信号群36の中のリンググバス割り込み入力を用いて、
INTH命令の入力されるタイミングを転送し、Mode
2の動作モードにおける通常のデータ転送と区別し、こ
れにより、Mode2の動作モードからMode0の動作モー
ドへのモード切り替えを行う。
【0122】INTH命令の他の1つの目的は、スレー
ブノードで発生した演算例外等の例外の発生の状態をマ
スターノードや他のスレーブノードに対して伝えること
である。割り込み発生要因は、ベクタデータとして、I
NTH命令のパケットフォーマット113のベクトルフ
ィールド(vector)113bに設定して伝えられ
る。この場合のINTH命令は、他のリングバス命令よ
りも優先権を持ち、実行中の他の転送データのパケット
との同期はとられない。なお、割り込み発生要因は、I
NTH命令のベクトルフィールド(vector)11
3bに入れられて伝えられるので、割り込みを受け付け
たノードは、当該割り込み発生要因に応じての処理を行
う。
【0123】INTS命令(ソフトウェア割り込み命
令) 図31は、INTS命令のパケットフォーマットを示す
図である。図31において、114はINTS命令のパ
ケットフォーマット、114aは命令フィールド、11
4bはベクトルフィールド(vector)、114c
はソースフィールド(src)、114dはディスティ
ネーションフィールド(dest)をそれぞれ示してい
る。
【0124】INTS命令は、マスターノードあるいは
アクティブノードが、スレーブノードあるいはハッシブ
ノードにソフトウェア的な手続き(処理プログラム)に
よりイベントの発生を知らせるための割り込み処理とし
て用いられる。このイベントの種類は、割り込み発生要
因を示すベクタデータとして、INTS命令のベクトル
フィールド(vector)114bに入れられて伝え
られる。
【0125】BNOP命令(バスノーオペレーション命
令) 図32は、BNOP命令のパケットフォーマットを示す
図である。図32において、115はBNOP命令のパ
ケットフォーマット、115aは命令フィールド、11
5cはソースフィールド(src)、115dはディス
ティネーションフィールド(dest)をそれぞれ示し
ている。BNOP命令は、マスターノードあるいはアク
ティブノードが、Mode1の動作モードにおいて、トー
クンをリリースするため、また、STAT命令を終らせ
るために用いられる。
【0126】次に、システムの初期動作について、図1
を用いて説明する。ホストコンピュータ16は、バス交
換器15,インターフェイス回路19を介して、マスタ
ーノード11におけるローカルメモリ18に、プログラ
ムおよびデータをダウンロードする。この間、マスター
ノード11のプロセッサエレメント17,スレーブノー
ド12〜13のプロセッサエレメント12a〜13a
は、共通のリセット信号により、リセットしておく。
【0127】ホストコンピュータ16から、マスターノ
ード11のローカルメモリ18へのプログラムおよび初
期データのダウンロードが終了した時点で、プロセッサ
エレメント(17,12a,13a)に対するリセット
信号を解除する。このとき、リセット解除と同時に、マ
スターノード11のプロセッサエレメント17は、ロー
カルメモリ18から命令をフェッチして、プログラムの
実行を開始する。スレーブノード12,13のプロセッ
サエレメント12a,13aは、リセット信号が解除さ
れても、命令のフェッチとプログラムの実行は行わな
い。なぜならば、スレーブノード12,13のローカル
メモリ12b,13bは、初期化されていないからであ
る。
【0128】スレーブノード12,13のプロセッサエ
レメント12a,13aは、命令のフェッチ,デコー
ド,実行などを行わない待機状態に入る。この状態にお
いて、図2に示すように、プロセッサエレメントの構成
要素の整数演算ユニット(IAU)23,浮動小数点演
算ユニット(FAU)24,命令キャッシュユニット
(ICU)25は何もしないが、リングバスインターフ
ェイスユニット(RBIU)21およびメモリインター
フェイスユニット(MIU)26は動作可能となってい
る。つまり、リングバスを介して与えられる命令の実行
は可能であり、リングバス命令の実行のみが行われる状
態にある。
【0129】したがって、この状態において、マスター
ノード11のプロセッサエレメント17は、スレーブノ
ード12,13のプロセッサエレメント12a,13a
を起動するために、次の3つの手続きの処理を行う。 1)まず、SETNID命令を用いて、全てのスレーブ
ノードのノードIDを設定する。 2)次に、設定したノードIDによりスレーブノードを
特定し、SETGID命令を用いて、全てのスレーブノ
ードのグループIDを設定する。 3)次に、SENDA命令を用いて、全てのスレーブノ
ードのローカルメモリにプログラムおよび初期データを
ダウンロードする。なお、プログラムおよび初期データ
が全てのスレーブノードについて同一である場合は、全
ノード指定(ブロードキャスト)によりSENDA命令
を送る。その他の場合には、先に設定しているノードI
DまたはグループIDを用いてスレーブノードを特定
し、SENDA命令をユニキャスト指定またはマルチキ
ャスト指定により送出する。
【0130】以上に、説明したように、マスターノード
のプロセッサエレメントとスレーブノードのプロセッサ
エレメントでは、その処理機能に違いがあるが、ほとん
ど同様であり、2つのプロセッサエレメントは、同一の
VLSIとして設計および製造することができる。これ
により、複数ノードから構成されるマルチプロセッサシ
ステムを構築する場合のコストの低減が計られる。
【0131】そこで、1つのプロセッサエレメントは、
マスターノードのプロセッサエレメントと、スレーブノ
ードのプロセッサエレメントの2つの処理機能を兼ね備
えるて構成する。個々のプロセッサエレメントが、どち
らのエレメントとして動作するかは、MNフラグビット
の設定値により定めるので、外部入力信号のMN信号に
より決めるようにする。つまり、MN信号が電源レベル
ならば、マスターノードのプロセッサエレメントとして
機能し、グランドレベルならば、スレーブノードのプロ
セッサエレメントして機能するように構成される。
【0132】
【発明の効果】以上、説明したように、本発明のマルチ
プロセッサシステムによれば、リングバス形状の通信ネ
ットワークを有し、マスター/スレーブ方式でデータ通
信を行うマルチプロセッサシステムを構成する場合に、
各ノード毎にノードID設定用のレジスタと、ノードI
D設定ビットと、ノードID設定用の命令の一連の処理
機構とを備えることにより、専用の演算回路や信号線を
必要としないで、効率的に、マルチプロセッサシステム
の各ノードに対するノードIDの設定方法が可能とな
る。
【0133】また、マルチプロセッサシステムを構成す
る要素のノードのプロセッサエレメントは、パケットフ
ォーマットのバス通信命令(リングバス命令)のヘッダ
部を生成するヘッダ部生成回路と、ノード内部のデータ
を一時的に蓄える出力バッファと、リングバスデータ入
力,ヘッダ部生成回路の出力,およびデータ出力バッフ
ァの出力の3者を入力し1つを選択するマルチプレクサ
と、マルチプレクサの出力を1クロック遅延させ次のノ
ードへの出力とするラッチ回路とを備えることにより、
リングバス上をリングバス命令またはデータなどを転送
する場合に、ノード当たりのデータの伝搬を1クロック
サイクルで同期して行うことができ、データ転送上のボ
トルネックが生ずることなく、より高速なデータ通信が
可能となった。
【0134】また、本発明のマルチプロセッサシステム
においては、各プロセッサを介して伝搬される専用の割
り込み信号線を備えられており、通常の通信よりも、優
先度の高い割り込みを他ノードのプロセッサに伝えるよ
うにしている。これにより、システムに異常事態が発生
した場合に効率的な対処が可能となった。
【0135】また、ノードのプロセッサエレメントに、
データ転送に係わるディスクリプタブロックへのポイン
タを設定するポイントレジスタ群と、データ転送を処理
する毎に、これらのポインタレジスタに設定されたポイ
ンタを更新する手段を備え、データ転送に係わるディス
クプタブロックに、次ディスクリプタブロックへのポイ
ンタと、送受信データが格納されるメモリブロックへの
ポインタと、データ長とを格納するフィールドを備える
ことにより、高速で効率的にデータ転送が可能になっ
た。
【0136】また、本発明のマルチプロセッサシステム
を構成する要素(プロセッサエレメント)を半導体集積
回路装置により構成し、半導体集積回路装置に対し外部
入力信号によりマスタプロセッサか、スレーブプロセッ
サかを識別して動作させるように構成する。この場合、
スレーブプロセッサがリセット解除後、待機モードに入
り、マスタープロセッサから送信されるプログラム等の
データで、ローカルメモリを初期化した後に、割り込み
により、再起動されるように構成したことにより、マス
タープロセッサとスレーブプロセッサのVLSI製造技
術を用いた設計を共通に行うことが可能となり、ひいて
は、マルチプロセッサシステムの設計における経済効率
が高まる。
【図面の簡単な説明】
【図1】 図1は本発明を一態様で実施するマルチプロ
セッサシステムの全体の構成を示すブロック図、
【図2】 図2はプロセッサエレメントの内部構成を示
すブロック図、
【図3】 図3はプロセッサエレメントの各ユニットの
レジスタにおいて保持されるデータの種類を示す図、
【図4】 図4はリングバスインターフェイスユニット
の内部の回路構成を示すブロック図、
【図5】 図5はリングバスインターフェイスユニット
コントロール/ステイタスレジスタ(RCSR)のビッ
ト構成を示す図、
【図6】 図6はSEND命令のパケットフォーマット
を示す図、
【図7】 図7はSEND命令実行時に用いられるデー
タ読み出しのためのデータ構造を説明する図、
【図8】 図8はSEND命令によるデータ送信のデー
タ転送タイミングを説明するイミングチャート、
【図9】 図9はSEND命令実行時に用いられるデー
タ格納のためのデータ構造を説明する図、
【図10】 図10はSEND命令によるデータ受信処
理のデータ取り込みタイミングを説明するタイミングチ
ャート、
【図11】 図11はSENDA命令のパケットフォー
マットを示す図、
【図12】 図12はSENDA命令の実行時に用いら
れるメモリアクセスのためのデータ構造を示す図、
【図13】 図13はSENDA命令によるデータ送信
のデータ転送タイミングを説明するタイミングチャー
ト、
【図14】 図14はSENDA命令による受信ノード
における内部データ転送タイミングを示すタイミングチ
ャート、
【図15】 図15はRTRV命令のパケットフォーマ
ットを示す図、
【図16】 図16はRTRV命令によるデータ送信の
データ転送タイミングを説明するタイミングチャート、
【図17】 図17はRTRV命令による転送データを
受信したノードにおけるデータ書き込みのタイミングを
示すタイミングチャート、
【図18】 図18はRTRVA命令のパケットフォー
マットを示す図、
【図19】 図19はRTRVA命令によるデータ送信
のデータ転送タイミングを説明するタイミングチャー
ト、
【図20】 図20はRTRVA命令による転送データ
を受信したノードにおけるデータ書き込みのタイミング
を示すタイミングチャート、
【図21】 図21はMODE0命令およびMODE1
命令のパケットフォーマットを示す図、
【図22】 図22はMODE2命令のパケットフォー
マットを示す図、
【図23】 図23はMODE3命令のパケットフォー
マットを示す図、
【図24】 図24はSETNID命令のパケットフォ
ーマットを示す図、
【図25】 図25はRESNID命令のパケットフォ
ーマットを示す図、
【図26】 図26はSETGID命令のパケットフォ
ーマットを示す図、
【図27】 図27はSTAT命令のパケットフォーマ
ットを示す図、
【図28】 図28はTESTS命令のパケットフォー
マットを示す図、
【図29】 図29はTESTR命令のパケットフォー
マットを示す図、
【図30】 図30はINTH命令のパケットフォーマ
ットを示す図、
【図31】 図31はINTS命令のパケットフォーマ
ットを示す図、
【図32】 図32はBNOP命令のパケットフォーマ
ットを示す図。
【符号の説明】
10…リングバス、11…マスターノード、12…第1
番目のスレーブノード、13…第n番目のスレーブノー
ド、14…ホストインターフェイスバス、15…バス交
換器、16…ホストコンピュータ、17…プロセッサエ
レメント、18…ローカルメモリ、19…インターフェ
イス回路、20…周辺回路、21…リングバスインター
フェイスユニット(RBIU)、22…内部データバ
ス、23…整数演算ユニット(IAU)、24…浮動小
数点演算ユニット(FAU)、25…命令キャッシュユ
ニット(ICU)、26…メモリインターフェイスユニ
ット(MIU)、27…リングバスインターフェイスユ
ニット制御回路、28…リングバスデータ入力の信号
線、29…マルチプレクサ、30…ラッチ回路、31…
リングバスデータ出力の信号線、32…出力FIFOメ
モリ、33…入力FIFOメモリ、35…比較器、36
…リングバスデータ入力方向の外部入出力制御信号群、
37…リングバスデータ出力方向の外部入出力制御信号
群、38…へッダ部生成回路、39…他ユニットから入
力される制御信号群、40…他ユニットへ出力される制
御信号群、41…内部制御信号群、42…レジスタファ
イル、43…リングバスインターフェイスユニットコン
トロール/ステイタスレジスタ(RCSR)、44…ノ
ードIDレジスタ(NIDR)、45…グループIDレ
ジスタ(GIDR)、47…リングバス命令ポインタ
(CMDP)、48…SEND命令ポインタ(SEND
RP)、100…SEND命令のパケットフォーマッ
ト、100a…命令フィールド、100b…データ長フ
ィールド、100c…ソースフィールド、100d…デ
ィスティネーションフィールド、100e…ダミーパケ
ット、100f…データパケット、101…SENDA
命令のパケットフォーマット、101a…命令フィール
ド、101b…データ長フィールド、101c…ソース
フィールド、101d…ディスティネーションフィール
ド、101e…アドレスフィールド、101f…ダミー
パケット、101g…データパケット、102…RTR
V命令のパケットフォーマット、102a…命令フィー
ルド、102b…データ長フィールド、102c…ソー
スフィールド、102d…ディスティネーションフィー
ルド、102e…ダミーパケット、102f…データパ
ケット、103…RTRVA命令のパケットフォーマッ
ト、103a…命令フィールド、103b…データ長フ
ィールド、103c…ソースフィールド、103d…デ
ィスティネーションフィールド、103e…アドレスフ
ィールド、103f…ダミーパケット、103g…デー
タパケット、107…SETNID命令のパケットフォ
ーマット、107a…命令フィールド、107b…設定
ノードIDフィールド、107c…ソースフィールド、
107d…ディスティネーションフィールド、108…
SETNID命令のパケットフォーマット、108a…
命令フィールド、108c…ソースフィールド、108
d…ディスティネーションフィールド、109…SET
GID命令のパケットフォーマット、109a…命令フ
ィールド、109b…設定グループノードIDフィール
ド、109c…ソースフィールド、109d…ディステ
ィネーションフィールド、110…STAT命令のパケ
ットフォーマット、110a…命令フィールド、110
b…状態ビットフィールド、110c…ソースフィール
ド、110d…ディスティネーションフィールド、11
1…TESTS命令のパケットフォーマット、111a
…命令フィールド、111b…マスクビットフィール
ド、111c…ソースフィールド、111d…ディステ
ィネーションフィールド、112…TESTR命令のパ
ケットフォーマット、112a…命令フィールド、11
2b…マスクビットフィールド、112c…ソースフィ
ールド、112d…ディスティネーションフィールド、
113…INTH命令のパケットフォーマット、113
a…命令フィールド、113b…ベクトルフィールド、
113c…ソースフィールド、113d…ディスティネ
ーションフィールド、114…INTS命令のパケット
フォーマット、114a…命令フィールド、114b…
ベクトルフィールド、114c…ソースフィールド、1
14d…ディスティネーションフィールド、115…B
NOP命令のパケットフォーマット、115a…命令フ
ィールド、115c…ソースフィールド、115d…デ
ィスティネーションフィールド、120…ディスクリプ
タブロック、120a…ディスクリプタポインタフィー
ルド、120b…メモリブロックポインタフィールド、
120c…未使用領域、120d…データ長フィール
ド、120e…未使用領域、120f…送信先アドレス
フィールド、121…データ領域、122…ディスクリ
プタブロック、122a…ディスクリプタポインタフィ
ールド、122b…メモリブロックポインタフィール
ド、122c…未使用領域、122d…データ長フィー
ルド、122e…送信元アドレスフィールド、122f
…未使用領域、123…データ領域、124…ディスク
リプタブロック、124a…ディスクリプタポインタフ
ィールド、124b…メモリブロックポインタフィール
ド、124c…未使用領域、124d…データ長フィー
ルド、124e…未使用領域、124f…送信先アドレ
スフィールド、124g…アドレスフィールド、125
…データ領域。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 宮川 宣明 神奈川県海老名市本郷2274番地 富士ゼロ ックス株式会社内 (72)発明者 相原 玲二 広島県東広島市鏡山一丁目4−2 広島大 学内 (72)発明者 小柳 光正 宮城県仙台市青葉区新巻字青葉 東北大学 内

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】 プロセッサエレメントを有する複数のノ
    ードがリングバス形式の通信ネットワークを介して接続
    され、マスター・スレーブ形式でノード間のデータ通信
    を行い、各ノードのプロセッサエレメントにおいてデー
    タ処理を行うマルチプロセッサシステムにおいて、各々
    のプロセッサエレメントが、 各ノード毎に設けられるノードIDを設定するノードI
    Dレジスタと、 各ノード毎に設けられるノードIDが設定されたか否か
    を示すID設定フラグを格納するID設定フラグレジス
    タと、 該ID設定フラグをシステムのリセット時にリセットす
    るリセット手段と、 マスターノードとスレーブノードとの区別を設定するノ
    ード種別設定手段と、 前記ノード種別設定手段がマスターノードに設定された
    場合に、それぞれに異なるノードIDを設定するノード
    ID設定命令を発行する命令発行手段と、 前記ノード種別設定手段がスレーブノードに設定された
    場合に、前記ID設定フラグがリセットされている場合
    に、前記ノードID設定命令に付加されているノードI
    Dを前記ノードIDレジスタに設定し、前記ID設定フ
    ラグをセットし、前記ノードID設定命令を下流のノー
    ドに伝えない制御処理を行い、前記ID設定フラグが設
    定されている場合には、前記ノードID設定命令を下流
    のノードに伝える制御処理を行う制御手段とを備えるこ
    とを特徴とするマルチプロセッサシステム。
  2. 【請求項2】 プロセッサエレメントを有する複数のノ
    ードがリングバス形式の通信ネットワークを介して接続
    され、マスター・スレーブ形式でノード間のデータ通信
    を行い、各ノードのプロセッサエレメントにおいてデー
    タ処理を行うマルチプロセッサシステムにおいて、各々
    のプロセッサエレメントが、 プロセッサ間通信のために割り当てられた命令コードを
    入力しその内容をデコードしプロセッサ間通信に必要な
    制御信号を生成する制御回路と、 該制御信号に基づいてパケット形式で転送される1つあ
    るいは複数からなるデータのヘッダ部を組み立てるヘッ
    ダ部生成回路と、 ノード内部のデータを一時的に蓄える出力バッファと、 リングバスからのデータ入力と前記ヘッダ部生成回路の
    出力と前記出力バッファからのデータの3者を入力して
    その1つを選択するマルチプレクサと、 該マルチプレクサの出力を1クロック遅延させ次のノー
    ドへ出力するラッチ回路とを備えることを特徴とするマ
    ルチプロセッサシステム。
  3. 【請求項3】 プロセッサエレメントを有する複数のノ
    ードがリングバス形式の通信ネットワークを介して接続
    され、マスター・スレーブ形式でノード間のデータ通信
    を行い、各ノードのプロセッサエレメントにおいてデー
    タ処理を行うマルチプロセッサシステムにおいて、 各ノードのプロセッサエレメントを介して伝搬される専
    用の割込み信号線と、 前記割込み信号線により各ノードのプロセッサエレメン
    トが通常のデータ通信よりも優先度の高い割り込みを他
    プロセッサエレメントに伝える通信制御処理手段とを備
    えることを特徴とするマルチプロセッサシステム。
  4. 【請求項4】 プロセッサエレメントを有する複数のノ
    ードがリングバス形式の通信ネットワークを介して接続
    され、マスター・スレーブ形式でノード間のデータ通信
    を行い、各ノードのプロセッサエレメントにおいてデー
    タ処理を行うマルチプロセッサシステムにおいて、 ノード間のデータ転送に係る制御データを記述するディ
    スクリプタを格納する記憶手段と、 前記ディスクリプタへのポインタを設定するポインタレ
    ジスタ群と、 データ転送を処理する毎に該ポインタレジスタに設定さ
    れたポインタを更新する更新手段とを備える特徴とする
    マルチプロセッサシステム。
  5. 【請求項5】 請求項4に記載のマルチプロセッサシス
    テムにおいて、 前記ディスクリプタは、次ディスクリプタへのポインタ
    と、送受信データが格納されるメモリブロックへのポイ
    ンタと、データ長とを含むことを特徴とするマルチプロ
    セッサシステム。
  6. 【請求項6】 プロセッサエレメントを有する複数のノ
    ードがリングバス形式の通信ネットワークを介して接続
    され、マスター・スレーブ形式でノード間のデータ通信
    を行い、各ノードのプロセッサエレメントにおいてデー
    タ処理を行うマルチプロセッサシステムにおいて、 各々のプロセッサエレメントは、前記ノード種別設定手
    段に外部入力信号が与えられることにより、マスターノ
    ードまたはスレーブノードのプロセッサエレメントとし
    て機能させることを特徴とするマルチプロセッサシステ
    ム。
  7. 【請求項7】 請求項6に記載のマルチプロセッサシス
    テムにおいて、 スレーブノードとして機能するプロセッサエレメント
    は、リセット解除後に、待機モードに入り、マスターノ
    ードのプロセッサエレメントから送信される割り込み信
    号により、再起動されることを特徴とするマルチプロセ
    ッサシステム。
  8. 【請求項8】 請求項7に記載のマルチプロセッサシス
    テムにおいて、 スレーブノードとして機能するプロセッサエレメント
    は、リセット解除後の待機モードにおいて、リングバス
    を介して送信されるプログラムまたはデータを、ローカ
    ルメモリに格納することを特徴とするマルチプロセッサ
    システム。
JP7264661A 1995-09-20 1995-09-20 マルチプロセッサシステム Pending JPH0991262A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP7264661A JPH0991262A (ja) 1995-09-20 1995-09-20 マルチプロセッサシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7264661A JPH0991262A (ja) 1995-09-20 1995-09-20 マルチプロセッサシステム

Publications (1)

Publication Number Publication Date
JPH0991262A true JPH0991262A (ja) 1997-04-04

Family

ID=17406457

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7264661A Pending JPH0991262A (ja) 1995-09-20 1995-09-20 マルチプロセッサシステム

Country Status (1)

Country Link
JP (1) JPH0991262A (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001005776A (ja) * 1999-04-29 2001-01-12 Canon Inc バスアーキテクチャ及びそれを用いた情報処理装置
WO2004003773A1 (ja) * 2002-06-28 2004-01-08 Mitsubishi Denki Kabushiki Kaisha 識別符号付与装置及び方法
JP2005346669A (ja) * 2004-06-07 2005-12-15 Canon Inc データ転送方法、データ転送装置、プログラム及び記憶媒体
JP2010244512A (ja) * 2009-03-17 2010-10-28 Canon Inc データ処理装置およびデータ処理方法またはプログラム
JP2011022714A (ja) * 2009-07-14 2011-02-03 Canon Inc データ処理装置
JP2012008976A (ja) * 2010-06-28 2012-01-12 Canon Inc データ処理装置、データ処理方法、およびプログラム
US8774234B2 (en) 2009-06-25 2014-07-08 Canon Kabushiki Kaisha Data processing apparatus, data processing method, and computer-readable storage medium
JP2022526929A (ja) * 2019-03-27 2022-05-27 グラフコアー リミテッド 複数の組み込みリングを有するネットワークコンピュータ
JP2022545115A (ja) * 2019-08-22 2022-10-25 グーグル エルエルシー オンチップ動作の初期化

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001005776A (ja) * 1999-04-29 2001-01-12 Canon Inc バスアーキテクチャ及びそれを用いた情報処理装置
WO2004003773A1 (ja) * 2002-06-28 2004-01-08 Mitsubishi Denki Kabushiki Kaisha 識別符号付与装置及び方法
JP2005346669A (ja) * 2004-06-07 2005-12-15 Canon Inc データ転送方法、データ転送装置、プログラム及び記憶媒体
KR100769612B1 (ko) * 2004-06-07 2007-10-23 캐논 가부시끼가이샤 데이터 전송방법 및 데이터 전송장치
JP2010244512A (ja) * 2009-03-17 2010-10-28 Canon Inc データ処理装置およびデータ処理方法またはプログラム
US9225547B2 (en) 2009-03-17 2015-12-29 Canon Kabushiki Kaisha Apparatus, method, and medium for controlling transmission of data
US20140254601A1 (en) * 2009-06-25 2014-09-11 Canon Kabushiki Kaisha Data processing apparatus, data processing method, and computer-readable storage medium
US8774234B2 (en) 2009-06-25 2014-07-08 Canon Kabushiki Kaisha Data processing apparatus, data processing method, and computer-readable storage medium
US8995476B2 (en) * 2009-06-25 2015-03-31 Canon Kabushiki Kaisha Data processing apparatus, data processing method, and computer-readable storage medium
JP2011022714A (ja) * 2009-07-14 2011-02-03 Canon Inc データ処理装置
US9239811B2 (en) 2009-07-14 2016-01-19 Canon Kabushiki Kaisha Data processing apparatus and data processing method
JP2012008976A (ja) * 2010-06-28 2012-01-12 Canon Inc データ処理装置、データ処理方法、およびプログラム
US9053225B2 (en) 2010-06-28 2015-06-09 Canon Kabushiki Kaisha Data processing apparatus, data processing method, and storage medium
JP2022526929A (ja) * 2019-03-27 2022-05-27 グラフコアー リミテッド 複数の組み込みリングを有するネットワークコンピュータ
JP2022527066A (ja) * 2019-03-27 2022-05-30 グラフコアー リミテッド 環状コンピュータネットワークにおけるリングの組み込み
JP2022545115A (ja) * 2019-08-22 2022-10-25 グーグル エルエルシー オンチップ動作の初期化

Similar Documents

Publication Publication Date Title
US8489858B2 (en) Methods and apparatus for scalable array processor interrupt detection and response
US6594713B1 (en) Hub interface unit and application unit interfaces for expanded direct memory access processor
US7840914B1 (en) Distributing computations in a parallel processing environment
US6865663B2 (en) Control processor dynamically loading shadow instruction register associated with memory entry of coprocessor in flexible coupling mode
US20070255894A1 (en) Vector processor
US20070234009A1 (en) Processor having a dedicated hash unit integrated within
JPH0773149A (ja) データ処理システムとその方法
US20040205719A1 (en) Hop method for stepping parallel hardware threads
JPH0635877A (ja) アレイ・プロセッサ
WO2012068494A2 (en) Context switch method and apparatus
WO2001016715A9 (en) Branch instructions in a multithreaded parallel processing system
US20190138492A1 (en) Memory Network Processor
US11816485B2 (en) Nested loop control
US6735690B1 (en) Specifying different type generalized event and action pair in a processor
US5497496A (en) Superscalar processor controlling fetching of instructions based upon number of empty instructions registers detected for each cycle
JPH0991262A (ja) マルチプロセッサシステム
US20220365787A1 (en) Event handling in pipeline execute stages
EP1083487A2 (en) Configuration bus reconfigurable/reprogrammable interface for expanded direct memory access processor
Taylor et al. The raw prototype design document
US20230359385A1 (en) Quick clearing of registers
JP3841967B2 (ja) マイクロプロセッサ
JPH03201031A (ja) 情報処理装置
US7127589B2 (en) Data processor
US20050033938A1 (en) Network processing system, core language processor and method of executing a sequence of instructions in a stored program
JPH10502756A (ja) ベクトルプロセッサのためのチャンク連鎖