JP2651473B2 - マルチプロセッサ・システムにおけるメッセージの通信制御方法 - Google Patents

マルチプロセッサ・システムにおけるメッセージの通信制御方法

Info

Publication number
JP2651473B2
JP2651473B2 JP3263081A JP26308191A JP2651473B2 JP 2651473 B2 JP2651473 B2 JP 2651473B2 JP 3263081 A JP3263081 A JP 3263081A JP 26308191 A JP26308191 A JP 26308191A JP 2651473 B2 JP2651473 B2 JP 2651473B2
Authority
JP
Japan
Prior art keywords
message
processor
network
processors
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP3263081A
Other languages
English (en)
Other versions
JPH05324573A (ja
Inventor
フィリップ・マルコム・ネチス
デビッド・ヘンリイ・ハートク
リチャード・クラレンス・ストックトン
マーチン・キャメロン・ワトソン
デビッド・クロンショウ
ジャック・エバート・シエマー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
TERADEETA CORP
Original Assignee
TERADEETA 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
Priority claimed from US06/250,094 external-priority patent/US4445171A/en
Priority claimed from US06/250,022 external-priority patent/US4412285A/en
Application filed by TERADEETA CORP filed Critical TERADEETA CORP
Publication of JPH05324573A publication Critical patent/JPH05324573A/ja
Application granted granted Critical
Publication of JP2651473B2 publication Critical patent/JP2651473B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)
  • Computer And Data Communications (AREA)
  • Small-Scale Networks (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Information Transfer Systems (AREA)
  • Information Transfer Between Computers (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、マルチプロセッサ・シ
ステムにおける各プロセッサ間で送受信されるメッセー
ジの通信制御方法に関する。
【0002】
【従来の技術】高い信頼性を備えた形式の電子計算機
(エレクトロニック・コンピュータ)が出現して以来、
この技術分野に従事する者が考察を重ねてきたシステム
に、複数のコンピュータを使用するシステムであってそ
れらのコンピュータが相互に関連性を保ちつつ動作する
ことによって、所与の1つのタスクの全体が実行される
ようにしたシステムがある。そのようなマルチプロセッ
サ・システムのうちのあるシステムでは、1つの大型コ
ンピュータが、それ自身の優れた速度と容量とを利用し
てプログラムの複雑な部分を実行すると共に、複雑さの
程度の低いタスクや緊急度の低いタスクについては、そ
れを小型で速度の遅い衛星プロセッサに委任し(割当
て)、それによって、この大型コンピュータの負担やこ
の大型コンピュータに対するリクエストの量が減少する
ようにしたものがある。この場合、大型コンピュータ
は、サブタスクの割当てを行なうこと、小型プロセッサ
(=上記衛星プロセッサ)を常に作動状態に保つこと、
それらの小型プロセッサの使用可能性と動作効率とを確
認すること、それに統一された結果が得られるようにす
ることを担当しなければならない。
【0003】以上とは別の方式を採用している別種のマ
ルチプロセッサ・システムのなかには、多数のプロセッ
サと1つの共通バス・システムとを使用するシステムで
あってそれらの複数のプロセッサには本質的に互いに等
しい機能が付与されているシステムがある。この種のシ
ステムにおいては、しばしば、他の部分からは独立した
制御用コンピュータないし制御システムを用いて、所与
のサブタスクに関する個々のプロセッサの使用可能性並
びに処理能力を監視することと、プロセッサ間のタスク
及び情報の転送経路を制御することとが行なわれてい
る。また、プロセッサそれ自体が、他のプロセッサのス
テータス並びに利用可能性の監視と、メッセージ及びプ
ログラムの転送経路の決定とを行なえるように、夫々の
プロセッサの構成及び動作が設定されているものもあ
る。以上の種々のシステムに共通する重大な欠点は、オ
ーバーヘッド機能及び保守機能を実行するために、ソフ
トウェアが必要とされ且つ動作時間が消費されるという
ことにあり、そしてそれによって、本来の目的の実行に
影響が及ぶことになる。転送経路の決定及び監視に関す
る仕事量が、それらの仕事に関与するプロセッサの総数
の2次の関数で増加して、ついにはオーバーヘッド機能
のために不適当な迄の努力が費やされるようになること
もある。
【0004】以下の数件の特許公報は従来技術の例を示
すものである。
【0005】米国特許公報第3,962,685 号−ベル・イー
ル(Belle Isle) 同第3,962,706 号−デニス(Dennis)他 同第4,096,566 号−ボーリー(Borie) 他 同第4,096,567 号−ミラード(Millard) 他 同第4,130,865 号−ハート(Heart) 他 同第4,136,386 号−アヌーンチアータ(Annunziata)他 同第4,145,739 号−ダニング(Dunning) 他 同第4,151,592 号−スズキ(Suzuki)他 初期のバイナック("Binac" :2個の互いにパラレルに
接続されたプロセッサを用いる)や、それに類似した種
々のシステムが使用されていた頃から既に、マルチプロ
セッサ方式は冗長性を備えた実行能力を提供するもので
あって、そのため動作するシステムの全体の信頼性を著
しく向上させ得るものであるということが認識されてい
た。実際にマルチプロセッサ・システムを構成するとい
うことに対しては、これまでのところ、かなりの制約が
存在しているが、その制約は主としてソフトウェアが膨
大なものとなってしまうことに起因する制約である。に
もかかわらず、例えばリアルタイムの用途等のように、
システムのダウンタイム(運転休止時間)が容認され得
ないような種々の状況においては、マルチプロセッサ動
作が特に有利であるため、これまでに様々なマルチプロ
セッサ・システムが開発されてきたが、ただし、それら
のシステムは動作自体は良好であるが、オーバーヘッド
のためにソフトウェアと動作時間のかなりの分量を割か
なければならないものであった。そのような従来のシス
テムは、米国特許公報第3,445,822 号、同第3,566,363
号、及び同第3,593,300 号にその具体例が示されてい
る。これらの特許公報はいずれも、複数のコンピュータ
がそれらの間で共用される1つのメイン・メモリをアク
セスするようにしたシステムに関するものであり、この
システムにおいては更に、タスクを個々のプロセッサに
好適に割当てるために、処理能力と処理要求量とが比較
されるようになっている。
【0006】従来技術の更に別の例としては、米国特許
公報第4,099,233 号がある。この公報のシステムでは、
複数のプロセッサが1つのバスを共用しており、また、
バッファ・レジスタを内蔵している制御ユニットを用い
て送信側ミニプロセッサと受信側ミニプロセッサとの間
のデータ・ブロックの転送が行なわれる。このシステム
のコンセプトは、欧州において分散型の郵便物分類シス
テムに利用されている。
【0007】米国特許公報第4,228,496 号は、商業的に
成功したマルチプロセッサ・システムに関するものであ
り、このシステムでは、複数のプロセッサの間に設けら
れた複数のバスがバス・コントローラに接続されてお
り、このバス・コントローラが、データ送出状況の監視
と、プロセッサ間で行なわれる複数のデータ転送に対す
る優先順位の判定を行なっている。また、各々のプロセ
ッサは、複数の周辺装置のうちのある1つの装置を制御
するように接続可能となっている。
【0008】ゼロックス、ヒューレット・パッカード、
及びインテルによって共同で推進されている「イーサネ
ット」システム("Ethernet" system )(米国特許公報
第4,063,220 号及び同第4,099,024 号)は、複数のプロ
セッサ並びに周辺装置の間の相互通信の問題に対処する
ための、更に別の方式を提示している。全てのユニット
(=プロセッサや周辺装置等)はそれらのユニットの間
で共用される多重アクセス・ネットワークに接続されて
おり、そしてそれらのユニットは優先権を獲得すべく互
いに競合することになる。衝突検出は時刻優先方式で行
なわれており、そのために、大域的な処理能力を制御す
ることと、コーディネートすることと、明確に把握する
こととが、容易でなくなっている。
【0009】以上に説明した種々のシステムをそれらの
細部まで完全に理解するためには、以上に言及した特許
公報やその他の関連参考文献を詳細に分析する必要があ
る。しかしながら、タスクの分担が行なわれる場合には
それらのシステムはいずれも、データ転送に関する優先
権の判定やプロセッサの選択を行なうために膨大な量の
相互通信と管理制御とが必要とされるということだけ
は、簡単に概観するだけでも理解されよう。システムを
拡張して更に多くのプロセッサを含むようにする場合に
どのような問題が発生するかは異なったシステムの夫々
ごとに違ってくるため一様ではないが、しかしながら以
上のシステムはいずれも、そのような拡張を行なえばシ
ステム・ソフトウェアや応用プログラミング、ハードウ
ェア、或いはそれら3つの全てが複雑化することにな
る。また、若干の考察により理解されることであるが、
1組ないし2組の論理的に受動的なオーミック・バスが
採用されているために、それに固有の制約がマルチプロ
セッサ・システムの規模と能力とに対して課せられてい
る。相互通信をより容易に行なえるようにするために採
用可能な技法には様々なものがあり、その一例として
は、最近発行された米国特許公報第4,240,143 号に示さ
れているところの、サブシステムを大域的資源にグルー
プ分けするという技法等があるが、しかしながら、非常
に多くのプロセッサが用いられている場合には当然のこ
とながら利用できるトラフィックの量はその限界に達し
てしまい、また、遅延時間が様々な値を取るということ
によって、克服し難い問題が生じている。1個ないし複
数個のプロセッサがロック・アウト状態ないしデッドロ
ック状態になるという状況が発生することもあり、その
ような状況に対処するには、問題を解決するための更な
る回路とソフトウェアとが必要とされる。以上から、プ
ロセッサの個数を、例えば1024個というような個数
にまで大幅に拡張することは、従来は実際的でなかった
ことが明らかである。
【0010】多くの様々な応用用途において、以上に説
明した既存の諸技法の制約から逃れて、最新の技法を最
大源に利用することが望まれている。現在採用可能な技
法のうちで最も低コストの技法は、大量生産されている
マイクロプロセッサと、大容量の回転ディスク型の記憶
装置とを基礎とした技法であり、そのような記憶装置の
例としては、密閉式ケースの内部においてヘッドとディ
スクとの間の間隔を非常に小さいものとした、ウインチ
ェスタ・テクノロジー製の装置等がある。マルチプロセ
ッサ・システムを拡張するに際しては、ソフトウェアが
不適当な迄に複雑化することなくシステムを拡張できる
ことが要望されており、更には、ソフトウェアがその拡
張に伴なって複雑化することが全くないようにして拡張
できることすら要望されている。また更に、機能の全体
を、限定されたないしは反復して実行される複数の処理
タスクへと動的に細分できる分散型構造をもつような特
徴を有する計算機問題を処理できる能力が要望されてい
る。略々全てのデータベース・マシンが、そのような問
題分野に属しており、また、この問題分野には更に、ソ
ート処理、パターンの認識及び相関算出処理、デジタル
・フィルタリング処理、大規模マトリクスの計算処理、
物理的な系のシュミレーション、等々のその他の典型的
な問題例も含まれる。これらのいずれの処理が行なわれ
る状況においても、個々に処理される複数のタスクを比
較的簡明なものとし、しかもそれらのタスクを広範に分
散することが要求され、そのため、瞬間的タスク負荷が
大きなものとなる。そのような状況が、従来のマルチプ
ロセッサ・システムに非常な困難を伴なわせていたので
あり、その理由は、そのような状況はオーバーヘッドに
費やされる時間とオーバーヘッドのためのソフトウェア
の量とを増大させる傾向を有していること、並びに、シ
ステムを構成する上で実際上の支障が生じてくることに
ある。例えば受動的な共用バスが採用されている場合に
は、伝播速度並びにデータ転送所要時間が、トランザク
ションを処理する上での可能処理速度に対する絶対的な
障壁を成している。
【0011】従ってデータベース・マシンは、マルチプ
ロセッサ・システムの改良が必要とされていることの好
い例である。大規模データベース・マシンを構成する上
での基本的な方式にはこれまでに3種類の方式が提案さ
れており、それらは、階層方式、ネットワーク方式、そ
れにリレーショナル方式である。これらのうちでリレー
ショナル方式のデータベース・マシンは、関係(リレー
ション)を示す表を用いることによって、ユーザが複雑
な系の中の所与のデータに容易にアクセスできるように
するものであり、この方式のマシンは、強力な潜在能力
を有するものであると認識されている。この従来技術に
ついて説明している代表的な刊行物には、例えばIEE
Eコンピュータ・マガジンの1979年3月号の第28
頁に掲載されている、D. C. P. スミス並びにJ.
M. スミスによる「リレーショナル・データベース・マ
シン」という表題の論文(article entitled "Relation
al Data Base Machine", published by D.C.P. Smith a
nd J.M. Smith, in the March 1979 issue of IEEE Com
puter magazine, p. 28 )、米国特許公報第4,221,003
号、並びに同公報中に引用されている諸論文等がある。
【0012】また、ソーティング・マシンは、コンピュ
ーティング・アーキテクチャの改良が必要とされている
ことの好い例である。ソーティング・マシン理論の概説
は、D. E. クヌース(Knuth)著「サーチング及びソー
ティング」の第220〜第246頁("Searching and S
orting" by D.E. Knuth, pp.220-246, published (197
3) by Addison- Wesley Publishing Co., Reading, Mas
sachusetts)に記載されている。この文献には様々なネ
ットワーク並びにアルゴリズムが開示されており、それ
らの各々に付随する制約を理解するためにはそれらを詳
細に考察しなけらばならないが、ただしそれらについて
一般的に言えることは、それらはいずれも、ソーティン
グという特定の目的だけを指向した、特徴的に複雑な方
式であるということである。更に別の例として、L.
A. モラー(L.A.Mollaar )によって提示されているも
のがあり、これは、「IEEE・トランザクション・オ
ン・コンピュータ」、C−28巻、第6号(1979年
6月)、第406〜413頁に掲載されている「リスト
・マージング・ネットワークの構造」という表題の論文
(article entitled "A Design for a List Merging Ne
twork", inthe IEEE Transactions on Computers, Vol.
C-28 No. 6, June 1979 at pp. 406-413 )に記載され
ている。この論文に提案されているネットワークにおい
ては、ネットワークのマージ・エレメントを外部から制
御するという方式が採用されており、また、このネット
ワークは、特殊な機能を実行するためのプログラミング
を必要としている。
【0013】汎用のマルチプロセッサ・システムが実行
することができなければならない諸機能には、種々の方
式でサブタスクを分配する機能、サブタスクを実行して
いるプロセッサのステータスを確認する機能、メッセー
ジのマージとソートを行なう機能、データを訂正及び変
更する機能、それに、いつ及びどのように資源が変化し
たかを(例えば、あるプロセッサがいつオンラインから
外れ、いつオンラインに復帰したかを)確認する機能等
がある。以上のような機能を実行するために、これまで
は、オーバーヘッドのための過大なソフトウェアとハー
ドウェアとを用いる必要があった。
【0014】一例を挙げるならば、例えばデータベース
・マシン等のマルチプロセッサ・システムにおいては、
プロセッサ間のメッセージの転送経路を指定するに際し
て、特定の1つのプロセッサを転送先として選択した
り、或いは1つのクラスに属する複数のプロセッサを選
択したり、また更には、プロセッサそのものを指定する
のではなく、ハッシュ方式等によってプロセッサに分配
されているデータベースの部分を指定するという方法
で、転送先プロセッサを選択するということが、しばし
ば必要となる。公知のシステムの中には前置通信シーケ
ンスを利用しているものがあり、それによって送信側プ
ロセッサと、1個或いは複数の特定の受信側プロセッサ
との間のリンケージを確立するようにしている。このリ
ンケージを確立するためにはリクエストや肯定応答を何
回も反復して送出しなければならず、また起こり得るデ
ッドロック状態を克服するために、更なるハードウェア
並びにソフトウェアを使用しなければならない。前置通
信シーケンスを利用していないシステムでは、1つのプ
ロセッサによって、或いはバス・コントローラによって
管制が行なわれており、この管制は、送信側プロセッサ
が送信準備完了状態にあること、受信側プロセッサが受
信準備完了状態にあること、これらのプロセッサの間の
リンケージからその他のプロセッサが締め出されている
こと、並びに無関係な送信が行なわれていないことを、
確認するためのものである。この場合にもまた、オーバ
ーヘッドに依存することと、デッドロックを回避するた
めに複雑とならざるを得ないこととによって、システム
を拡張する(例えばプロセッサの個数を16個以上にす
る)につれて保守機能が不適当な迄に膨張してしまうの
である。
【0015】最近のマルチプロセッサ・システムに要求
されている要件の更に別の例として、1個或いは複数個
のプロセッサによって実行されているサブタスクのステ
ータスを、システムが確実に判定するための方法に関係
するものがある。基本的に要求されている点は、所与の
プロセッサに対してそのプロセッサのステータスについ
ての問合せを行なう能力を備えていなければならないと
いうことであり、しかも、そのステータスがその問合せ
よって影響を及ぼされることがないように、且つ、応答
の内容に多義性が生じることがないように、その問合せ
が行なわれなければならないということである。ステー
タス表示のテストとセットとを中断のない一連の操作と
して行なう機能を特徴的に表わすための用語として、現
在当業界においては「セマフォ(semaphore)」という用
語が使用されている。このセマフォという特徴を備えて
いることは望ましいことであるが、ただし、この特徴を
組込むに際しては、実行効率の低下やオーバーヘッドの
負荷の増加を伴なわないようにしなければならない。こ
のようなステータスの判定は、更にマルチプロセッサ・
システムにおいてソート/マージ動作を実行する際に極
めて重要なものとなるが、それは、大きなタスクの中に
含まれている複数のサブタスクの夫々の処理結果を組み
合わせるためには、それらのサブタスクが適切に処理完
了された後でなければ1つに組み合わせることができな
いからである。更に別の要件として、プロセッサがその
「現在」ステータスを報告できなければならないこと、
そしてサブタスクの実行は、マルチプロセッサの動作シ
ーケンスに対して割込みと変更とが繰返されても、ただ
1回だけ行なわれるようにしなければならないというこ
とがある。殆どの既存のシステムでは、プロセッサの実
行ルーチンが中断可能とされているためにこの点に関し
て重大な問題が生じている。即ち、容易に理解されるこ
とであるが、複数のプロセッサが互いに関連を有する複
数のサブタスクを実行しているような場合には、それら
の個々のプロセッサのレディネス状態の程度(=どのよ
うな動作が可能な状態にあるかの程度)についての問合
せとそれに対する応答とに関わる動作シーケンスが膨大
なオーバーヘッドを必要とすることがあり、しかも、そ
のための専用のオーバーヘッドは、プロセッサの個数が
増大するに従っていよいよ不適当なまでに増大する。
【0016】
【発明が解決しようとする課題】以上に述べたところの
例を示す従来のマルチプロセッサ・システムにおける典
型的な短所は、いわゆる「分散更新」の問題に関するも
のであり、この問題は即ち、複数個の処理装置の各々に
そのコピーが格納されている情報を更新する必要がある
ということである。ここで言う情報とは、データ・レコ
ードから成る情報の場合もあり、また、システムの動作
を制御するために用いられる情報の場合もある。このシ
ステムの動作の制御とは、例えば、必要なステップが誤
って重複実行されたり全く実行されなかったりすること
のないようにして、処理が開始され、停止され、再開さ
れ、一時中断され、或いはロール・バックないしロール
・フォワードされるようにすること等の制御のことであ
る。従来のシステムにおいては、分散更新の問題の種々
の解決法はいずれもかなりの制約を伴なうものであっ
た。それらの解決法の中には、一度に2個のプロセッサ
だけを対象としているに過ぎないものもある。また更に
別の解決法として相互通信プロトコルを利用しているも
のも幾つかあるが、それらのプロトコルは非常に複雑な
ため、現在でも、それらのプロトコルが適切なものであ
ることを数学的厳密さをもって証明することには非常な
困難が伴なっている。
【0017】それらのプロトコルが複雑になっている原
因は、「大域的セマフォ」を構成している、中断される
ことのない1回の動作により全てのプロセッサにおいて
「テスト・アンド・セット」されるという外面的性質を
持つ制御ビットを、備える必要があるということにあ
る。斯かる制御ビットが複数の別々のプロセッサの内部
に夫々に設けられ、しかもそれらのプロセッサの間の通
信に付随する遅延時間がまちまちであるため、不可避的
に不完全なものとなり得る通信チャネルによってノイズ
が発生され、また更にエラーの発生率も増大することに
なる。従って「中断されることのない1回の動作」とい
う特徴を備えることは、その1つの動作を構成している
複数の部分々々が、夫々に多種多様で、しかも中断可能
であり、そしてそれらを同時にはアクセスすることがで
きず、更にはそれらがアクセスとアクセスとの間に不調
を生じがちである場合には、困難を伴なうものであると
いうことが、当業者には容易に理解されよう。
【0018】
【課題を解決するための手段】本発明は、要約すれば、
転送先選択ワードと呼ばれる形態の数種類の転送経路指
定情報のうちの1つないし複数種類の情報を内包してい
るメッセージを、複数のプロセッサのうちの異なったプ
ロセッサ、ないしはそれのうちの幾つかのプロセッサの
組合わせへ伝送するためのシステム及び方法を提供する
ものである。プロセッサはインターフェイスを有してお
り、このインテーフェイスは、メモリを含むと共に、メ
ッセージに内包されている情報に基づいて個々のプロセ
ッサがそのメッセージに内包されているデータないし命
令を処理ないし実行すべきか否かを直接的かつ効率的に
判定するものである。
【0019】
【作用】以上の構成により、個々のプロセッサをただの
1つだけをアドレスすることも、複数のプロセッサを1
つのクラスとしてアドレスすることも、また、ハッシン
グ・モードを利用して個々のプロセッサが分担している
データベースの部分を指定することも、いずれも可能と
なっている。この特徴は、従来の方式の、メッセージの
中にアドレスを内包されると共に各装置がメッセージの
中に含まれている自信のアドレスを識別するという方式
と比較して、はるかに精緻で強力なものである。
【0020】
【実施例】以下、この発明の実施例を図面を参照して説
明する。
【0021】(データベース管理システム) 図1に総括的に示されているシステムは、本発明の概念
をデータベース管理に応用したものを具体例として示す
ものである。更に詳細に説明すると、このシステムは一
つまたは複数のホスト・コンピュータ・システム10、
12と協働するように構成されており、それらのホスト
・コンピュータ・システムは、例えばIBM370ファ
ミリーまたはDEC−PDP−11ファミリーに属する
コンピュータ・システム等であって、この具体例の目的
に沿うように既存の一般的なオペレーティング・システ
ム及び応用ソフトウェアで動作するようになっている。
IBMの用語法に拠れば、ホスト・コンピュータ・とデ
ータベース・コンピュータとの間の主要相互通信回線網
はチャネルと呼ばれており、また同じものがDECの用
語法に拠れば「ユニバス」または「マスバス」或いはそ
れらの用語を多少変形した用語で呼ばれている。以上の
コンピュータ・システムのうちのいずれかが用いられる
にせよ、或いは他のメーカーのメインフレーム・コンピ
ュータが用いられるにせよ、このチャネル、即ちバス
は、そこへデータベース・タスク及びサブタスクが送出
されるところのオーミックな転送経路、即ち論理的に受
動的な転送経路である。
【0022】図1の具体例は、ホスト・システム10、
12に組み合わされたバックエンド・プロセッサ複合体
を示している。この図のシステムは、タスク及びサブタ
スクをホスト・システムから受入れ、莫大なデータベー
ス記憶情報のうちの該当する部分を参照し、そして適切
な処理済メッセージ或いは応答メッセージを返すという
ものであり、それらの動作は、このバックエンド・プロ
セッサ複合体の構成の如何にかかわらず、それ程高度で
はないソフトウェアによる管理以外は、ホスト・システ
ムには要求されない方式で実行されるようになってい
る。従って、ユーザのデータベースを新たな方式のマル
チプロセッサ・システムとして構成することが可能とさ
れており、このマルチプロセッサ・システムにおいて
は、データを、容量を大幅に拡張することのできるリレ
ーショナル・データベース・ファイルとして組織するこ
とができ、しかもこの拡張は、ユーザのホスト・システ
ムの内部に備えられているオペレーティング・システム
や既存の応用ソフトウェアを変更する必要なしに行なう
ことができるようになっている。独立システム(スタン
ド・アローン・システム)として構成した具体例につい
て、以下に図33を参照しつつ説明する。
【0023】当業者には理解されるように、リレーショ
ナル・データベース管理に関する動作機能は、1つの動
作機能の全体を、少なくとも一時的には他から独立して
処理可能な複数の処理タスクへと分割することができる
ような動作機能である。その理由は、リレーショナル・
データベースでは記憶されている複数のデータ・エント
リがアドレス・ポインタによって相互依存的に連結され
ていないからである。更に当業者には理解されるよう
に、リレーショナル・データベース管理以外にも、限定
されたタスクないし反復実行されるタスクを動的に小区
分して独立的に処理するこという方法を用い得るような
の多くのデータ処理環境が存在している。従って、本発
明の具体例を説明するに際しては、特に要望が強くまた
頻繁に聞かれるところ の、データベース管理における
処理の問題に関連させて説明するが、しかしながら本明
細書に開示する新規な方法並びに構成は、それ以外にも
広範な用途を持つものである。
【0024】大規模なデータ管理システムは、複数のプ
ロセッサ(マルチプル・プロセッサ)を使用する場合に
は潜在的な利点と不可避的に付随する困難との両方を備
えることになる。何億個にも及ぶ莫大な数のエントリ
(記述項)を、記憶装置の中に、容易にかつ迅速にアク
セスできる状態で保持しなければならない。一方、リレ
ーショナル・データベースのフォーマットとしておけ
ば、広範なデータ・エントリ及び情報の取り出し動作を
同時並行的に実行することができる。
【0025】ただし、圧倒的大多数のデータベース・シ
ステムにおいては、データベースの完全性(インテグリ
ティ)を維持することが、トランザクション・データを
迅速に処理することと同様に重要となっている。データ
の完全性は、ハードウェアの故障や停電、それにその他
のシステム動作に関わる災害の、その前後においても維
持されていなければならない。更には、データベース・
システムは、応用ソフトウェア・コードの中のバグ(bu
g)をはじめとするユーザ側のエラーの後始末を行なう
ために、データベースを以前の既知の状態に復元できる
能力を備えていなければならない。しかも、データが誤
って失われたり入力されたりすることがあってはなら
ず、また、イベントが新たなデータに関係するものであ
るのか、或いは過去のエラーの訂正に関係するものであ
るのか、それともデータベースの一部分の校正に関係す
るものであるのかに応じて、ある特定のエントリに関係
しているデータベース部分の全てが変更されるようにな
っていなければならない。
【0026】従って、完全性のためには、データのロー
ルバック及び回復の動作、誤りの検出及び修正の動
作、並びにシステムの個々の部分のステータスの変化の
検出及びその補償の動作に加えて、更に、ある程度の冗
長度もデータベースシステムには必要である。これらの
目的を達成するためには、システムが多くの異なった特
殊なモードで用いられなければならないこともあり得
る。
【0027】さらに、最近のシステムでは、その形式が
複雑なものになりがちな任意内容の問合せ(discretion
ary query)を受入れる能力と、必要とあらば相互作用
的な方式で応答する能力とを持っていることが要求され
る。たとえその問合せが複雑なものであったとしても、
システムにアクセスしようとする人達がそのシステムの
熟練者であることを要求されるようなことがあってはな
らない。
【0028】大規模生産の業務に関連して生じるかも知
れない任意内容の問合せの例には、次のようなものがあ
る。
【0029】A.生産管理を行なう管理者が、在庫品の
うちの1品目についてのリストを要求するのみならず、
生産高が前年同月比で少なくとも10%以上低下してい
る部品の、その月間生産高を超えているような全ての部
品在庫を明記した在庫品リストを、要求するかもしれな
い。
【0030】B.マーケティング・マネージャーが、あ
る特定の勘定が90日延滞を生じているか否かを問合せ
るばかりでなく、特に不景気な地域に在住している過去
に120日を超過したことのある顧客に関して、一律に
90日の受取債権を要求するかもしれない。
【0031】C.人事担当の重役が、所与の1年間に2
週間を超える病欠のあった従業員の全てを一覧表にする
ことを求めるのみならず、直前の5年間のうちの2年以
上について、その釣のシーズンの間に1週間以上の病欠
をした10年勤続以上の長期勤続従業員の全てを一覧表
にすることを求めるかもしれない。
【0032】以上の例のいずれにおいても、ユーザは、
コンピュータに格納されている情報をそれまでにはなさ
れなかった方法で関連付けることによって、事業におい
て直面している本当の問題を見極めようとするわけであ
る。その問題を生じている分野に関してユーザが経験を
積んでいれば、従ってユーザに直感力と想像力とがあれ
ば、コンピュータの訓練を受けたことのない専門家が、
複雑な問合せを処理できるデータベースシステムを自由
自在に使用できるのである。
【0033】最近のマルチプロセッサ・システムは、こ
れらのように多くの、そしてしばしば互いに相反する要
求事項に対しては、念入りに作成されたオーバーヘッド
用ソフトウェア・システム並びに保守用ソフトウェア・
システムを用いることによって対応しようと努めている
のであるが、それらのソフトウェア・システムは本質的
にシステムを容易に拡張することの妨げとなるものであ
る。しかしながら、拡張性という概念は強く求められて
いる概念であり、その理由は、業務ないし事業が成長す
ると、それに付随して既存のデータベース管理システム
を拡張して使用を継続することが望まれるようになり、
この場合、新しいシステムとソフトウェアの採用を余儀
なくされることは好まれないからである。
【0034】マルチプロセッサ・アレイ 図1について説明すると、本発明に係る典型的な一具体
例のシステムは多数のマイクロプロセッサを含んでお
り、それらのマイクロプロセッサには重要な2つの重要
な種類があり、それらは本明細書では夫々、インターフ
ェイス・プロセッサ(IFP)とアクセス・モジュール
・プロセッサ(AMP)と称することにする。図中には
2個のIFP14、16が示されており、それらの各々
は別々のホスト・コンピュータ10ないし12の入出力
装置に接続されている。多数のアクセス・モジュール・
プロセッサ18〜23もまた、このマルチプロセッサ・
アレイとも称すべきものの中に含まれている。ここでの
「アレイ」という用語は、おおむね整然とした直線状或
いはマトリックス状に配列された、1組のプロセッサ・
ユニット、集合とされたプロセッサ・ユニット、ないし
は複数のプロセッサ・ユニットを指す、一般的な意味で
用いられており、従って、最近「アレイ・プロセッサ」
と呼ばれるようになったものを意味するのではない。図
中には、このシステムの概念を簡明化した例を示すため
に僅かに8個のマイクロプロセッサが示されているが、
はるかに多くのIFP及びAMPを用いることが可能で
あり、通常は用いられることになる。
【0035】IFP14、16及びAMP18〜23
は、内部バスと周辺装置コントローラにダイレクト・メ
モリ・アクセスをするメイン・メモリとを有しているイ
ンテル8086型16ビットマイクロプロセッサを内蔵
している。いろいろなメーカーの非常に多様なマイクロ
プロセッサ及びマイクロプロセッサシステム製品の任意
のものを利用できる。この「マイクロプロセッサ」は、
このアレイの中で使用できるコンピュータないしプロセ
ッサの一形式の具体的な一例に過ぎず、なぜならば、こ
のシステムの概念は、用途によって必要とされる計算力
がミニコンピュータまたは大型コンピュータのものであ
る場合には、それらを使ってうまく利用できるからであ
る。この16ビットのマイクロプロセッサは、相当のデ
ータ処理力を備え、しかも広範な種々の利用可能なハー
ドウェア及びソフトウェアのオプションに置換えること
ができる標準的な置換え可能な構成とされている、低コ
ストの装置の有利な一例である。
【0036】IFPとAMPとは互いに類似の、能動ロ
ジックと制御ロジックとびインターフェイスとを含む回
路、マイクロプロセッサ、メモリ、及び内部バスを採用
しており、それらについては夫々第1図と第18図とを
参照しつつ後に説明する。ただし、これら二つのプロセ
ッサ形式は、夫々のプロセッサ形式に関連する周辺装置
の性質、及びそれらの周辺装置に対する制御ロジックが
異なっている。当業者には容易に理解されるように、異
なった周辺装置コントローラを備え異なった機能的任務
を付与されたその他のプロセッサ形式を本発明に組入れ
ることも容易である。
【0037】各マイクロプロセッサには高速ランダム・
アクセス・メモリ26(図18に関連して説明する)が
備えられており、この高速ランダム・アクセス・メモリ
は、入出力メッセージのバッファリングを行うことに加
え、システムの他の部分と独特な方法で協働することに
よって、メッセージ管理を行なう。手短に説明すると、
この高速ランダム・アクセス・メモリ26は、可変長の
入力メッセージ(この入力のことを「受信」という)の
ための循環バッファとして働き、シーケンシャルにメッ
セージを出力するための(この出力のことを「送信」と
いう)メモリとして機能し、ハッシュ・マッピング・モ
ード及び他のモードで用いるためのテーブル索引部分を
組込み、そして受信メッセージ及び送信メッセージを整
然と順序立てて取扱うための制御情報を記憶する。メモ
リ26は更に、マルチプロセッサモード選択のとき、並
びにデータ、ステータス、制御、及び応答の各メッセー
ジのトラフィックを取扱うときに独特の役目を果たすよ
うに用いられる。後に詳細に説明するよう に、それら
のメモリは更に、メッセージの中のトランザクション・
アイデンティティに基づいて局所的及び大域的なステー
タス判定と制御機能とが極めて能率的な方法で処理され
通信されるような構成とされている。IFP14、16
及びAMP18〜23の各々に備えられている制御ロジ
ック28(図23及び図24に関連しては後に説明す
る)は、当該モジュール内のデータ転送及びオーバーヘ
ッド機能の実行に用いられる。
【0038】IFP14、16は各々インターフェイス
制御回路30を備えており、このインターフェイス制御
回路30はIFPをそのIFPに組み合わされているホ
スト・コンピュータ10ないし12のチャネルまたはバ
スに接続している。これに対してAMP18〜23で
は、このインターフェイス制御回路に相当する装置はデ
ィスク・コントローラ32であり、このディスク・コン
トローラ32は一般的な構造のものであっても良く、A
MP18〜23を、それらに個別に組み合わせられた磁
気ディスク・ドライブ38〜43と夫々にインターフェ
イスするのに用いられるものである。
【0039】磁気ディスク・ドライブ38〜43はこの
データベース管理システムに二次記憶装置、即ち大容量
記憶装置を提供している。本実施例において は、それ
らの磁気ディスク・ドライブは例えば ウィンチェスタ
ー・テクノロジー(Winchester technology )等の実績
のある市販の製品から成るものとし、それによって、バ
イト当りコストが極めて低廉でしかも大容量、高信頼性
の記憶装置が得られるようにしている。
【0040】これらのディスク・ドライブ38〜43に
は、リレーショナル・データベースが分散格納方式で格
納されており、これについては図35に簡易化した形で
示されている。各々のプロセッサとそれに組み合わされ
たディスク・ドライブとに対しては、データベースの部
分集合を成す複数のレコードが割当てられ、この部分集
合は「一次的」部分集合であり、またそれらの一次的部
分集合は互いに素の部分集合であると共に全体として完
全なデータベースを構成するものである。従ってn個記
憶装置の各々はこのデータベースの1/nを保持するこ
とになる。各々のプロセッサには更に、バックアップ用
のデータの部分集合が割当てられ、それらのバックアッ
ップ用部分集合も互いに素の部分集合であり、各々がこ
のデータベースの1/nを構成するものである。図35
から分るように、一次的ファイルの各々は、その一次的
ファイルが収容されているプロセッサとは異なったプロ
セッサに収容されているバックアップ用ファイルによっ
て複製されており、これにより、互いに異なった分配の
仕方で分配された2つの各々が完全なデータベースが得
られている。このように、一次的データ部分集合とバッ
クアップ用データ部分集合とが冗長性を持って配置され
ていることによってデータベースの完全性(インテグリ
ティ)の保護がなされており、その理由は、単発の故障
であれば、大規模な数ブロックに亙る複数のデータや複
数のグループを成す複数のリレーションに対して実質的
な影響を及ぼすことはあり得ないからである。
【0041】データベースの分配は、同じく図35に示
されているように、種々のファイルのハッシング動作と
関連を有しており、また、ハッシュ・マッピング・デー
タをメッセージの中に組込むこととも関連を有してい
る。各々のプロセッサに収容されているファイルは、2
進数列のグループとして示される簡単なハッシュ・バケ
ット(hash bucket)によって指定されるようになってい
る。従って、それらのバケットによって指定される関係
の表 (テーブル)に基づいて、リレーショナル・デー
タベース・システムの中のリレーション(関係)及びタ
プル(組:tuple)を配置すべき場所を定めることがで
きる。ハッシング・アルゴリズムを利用して、このリレ
ーショナル・データベース・システムの内部において、
キーからバケットの割当てが求められるようになってお
り、そのため、このデータベース・システムの拡張及び
改変を容易に行なうことができる。
【0042】記憶容量をどれ程の大きさに選択するか
は、データベース管理上のニーズ、トランザクションの
量、及びその記憶装置に組み合わされているマイクロプ
ロセッサの処理力に応じて定められるものである。複数
のディスク・ドライブを1個のAMPに接続したり、1
台のディスク・ファイル装置を複数のAMPに接続する
ことも可能であるが、そのような変更態様は通常は特殊
な用途に限られるであろう。データベースの拡張は、典
型的な一例としては、マルチプロセッサ・アレイにおけ
るプロセッサの個数(及びプロセッサに組み合わされた
ディスク・ドライブの個数)を拡張することによって行
なわれる。
【0043】能動ロジック・ネットワーク 秩序立ったメッセージ・パケットの流れを提供するとい
う目的とタスクの実行を容易にするという目的とは、新
規な能動ロジック・ネットワーク構成体50を中心とし
た、独特のシステム・アーキテクチュア並びにメッセー
ジ構造を採用することによって達成される。この能動ロ
ジック・ネットワーク構成体50は、複数のマイクロプ
ロセッサの複数の出力に対して、階層を登りながらそれ
らの出力を収束させて行く昇順階層を成す、複数の双方
向能動ロジック・ノード(bidirectional active logi
c node)54によって構成されている。それらのノード
54は、3つのポートを備えた双方向回路から成るもの
であり、この双方向回路はツリー・ネットワーク(tree
network:樹枝状の構造を持つネットワーク)を形成す
ることができ、その場合には、そのツリー構造のベース
の部分においてマイクロプロセッサ14、16及び18
〜23に接続される。
【0044】当業者には理解されるように、ノードは、
ロジック・ソースの数が2を超えて、例えば4または8
であるときに設けることができ、この場合、同時にま
た、ソース入力の数を多くするという問題も組合せロジ
ックを更に付加するという問題に変換してしますことが
できる。
【0045】図の参照を容易にするために、すべてのノ
ード(N)のうち、第1階層に属しているものはそれをプ
リフィックス「I」で表わし、また第2階層に属してい
るものはそれをプリフィックス「II」で表わし、以下
同様とする。同一の階層に属している個々のノードは、
下添字「1 、2 …」によって表わし、従って、例えば第
1階層の第4ノードであれば「IN4 」と表わすことが
できる。ノードのアップ・ツリー側(即ち上流側)には
「Cポート」と名付けられた1つのポートが備えられて
おり、このCポート隣接する高位の階層に属しているノ
ードの2つのダウン・ツリー・ポートのうちの一方に接
続されており、それらのダウン・ツリー・ポートは夫々
「Aポート」及び「Bポート」と名付けられている。こ
れら複数の階層は、最上部ノード即ち頂点ノード54a
へと収束しており、この頂点ノード54aは、上流へ向
けられたメッセージ(アップ・ツリー・メッセージ)の
流れの向きを逆転して下流方向(ダウン・ツリー方向)
へ向ける、収束及び転回のための手段として機能してい
る。2組のツリー・ネットワーク 50a、50bが
使用されており、それら2組のネットワークにおけるノ
ードどうし、それに相互接続部どうしは互いに並列に配
置されており、それによって大規模システムに望まれる
冗長性を得ている。ノード54どうし、そしてそれらの
ネットワークどうしは互いに同一であるので、それらの
ネットワークのうちの一方のみを説明すれば充分であ
る。
【0046】説明を分り易くするために先ず第1に理解
しておいて頂きたいことは、シリアルな信号列の形態と
されている多数のメッセージ・パケットが、多くのマイ
クロプロセッサの接続によって能動ロジック・ネットワ
ーク50ヘ同時に送出され、或いは同時に送出すること
が可能とされているということである。複数の能動ロジ
ック・ノード54はその各々が2進数ベースで動作して
2つの互いに衝突関係にある衝突メッセージ・パケット
の間の優先権の判定を行ない、この優先権の判定は、そ
れらのメッセージパケット自体のデータ内容を用いて行
なわれる。更には、1つのネットワークの中のすべての
ノード54は1つのクロック・ソース56の制御下に置
かれており、このクロック・ソース56は、メッセージ
パケットの列を頂点ノード54aへ向けて同期して進め
ることができるような態様で、それらのノード54に組
み合わされている。このようにして、シリアルな信号列
の中の、連続する各々のバイト等の増分セグメントが次
の階層へと進められ、このバイトの進行は、別のメッセ
ージの中のそのバイトに対応するバイトがこのネットワ
ーク50内の別の経路をたどって同様に進行するのと同
時に行なわれる。
【0047】互いに競合する信号列の間に優先権を付与
するためのソートが、アップ・ツリー方向へ移動してい
るメッセージパケットに対して行なわれ、これによって
最終的には、頂点ノード54aから下流へ向けて方向転
換されるべき単一のメッセージ列が選択される。以上の
ようにシステムが構成されているため最終的な優先権に
ついての判定をメッセージパケット内のある1つの特定
の点において行なう必要はなくなっており、そのため、
個々のノード54において実行されている2つの互いに
衝突しているパケット間の2進数ベースの判定以外のも
のを必要とすることなしに、メッセージの転送を続けて
行なうことができるようになっている。この結果、この
システムは空間的及び時間的にメッセージの選択とデー
タの転送とを行なうようになっているわけであるが、た
だし、バスの支配権を得たり、送信プロセッサあるいは
受信プロセッサを識別したり、またはプロセッサ間のハ
ンドシェイキング操作を実行する目的のために、メッセ
ージ伝送を遅延させるようなことはない。
【0048】更に、特に認識しておいて頂きたいこと
は、幾つかのプロセッサが全く同一のバケットを同時に
送信した場合には、その送信が成功したならば、それら
の送信プロセッサの全てが成功したのと同じことになる
ということである。この性質は時間とオーバーヘッドを
節約するので大型マルチプロセッサ複合体の有効な制御
を行うのに極めて有用である。
【0049】ノード54は更に双方向方式で作動するた
め、妨害を受けることのない、下流方向へのメッセージ
・パケットの分配を可能にしている。所与のノード54
において、そのアップ・ツリー側に設けられたポートC
で受取られた下流方向メッセージは、このノードのダウ
ン・ツリー側に設けられたポートA及びポートBの両方
へ分配され、更に、このノードに接続された隣接する低
位の階層に属する2つのノードの両方へ転送される。コ
モン・クロック回路56の制御の下にメッセージ・パケ
ットは同期してダウン・ツリー方向へ進められ、そして
全てのマイクロプロセッサへ同時にブロードカスト(br
oadcast:一斉伝達)され、それによって、1つまたは複
数のプロセッサが、所望の処理タスクの実行ができるよ
うになるか、または応答を受入れることができるように
なる。
【0050】ネットワーク50は、そのデータ転送速度
が、マイクロプロセッサのデータ転送速度と比較してよ
り高速であり、典型的な例としては2倍以上の高速であ
る。本実施例においては、ネットワーク50は120ナ
ノ秒のバイト・クロック・インタバルをもっており、そ
のデータ転送速度はマイクロプロセッサの5倍の速度で
ある。各ノード54は、その3つのポートの各々が、そ
のノードに接続されている隣接する階層に属するノード
のポートか、或いはマイクロプロセッサに接続されてお
り、この接続は1組のデータ・ライン(本実施例におい
ては10本)と制御ライン(本実施例においては2本)
とによってなされており、2本の制御ラインは夫々、ク
ロック信号とコリジョン信号(衝突信号)とに割当てら
れている。データ・ラインとクロック・ラインとは対に
なすようにして配線され、アップ・ツリー方向とダウン
・ツリー方向とでは別々のラインとされている。コリジ
ョン・ラインはダウン・ツリー方向にのみ伝播を行なう
ものである。以上の接続構造は全二重式のデータ経路を
形成しており、どのラインについてもその駆動方向を
「反転」するのに遅延を必要としないようになってい
る。
【0051】次に図13に関して説明すると、10本の
データ・ラインは、ビット0〜7で表わされている8ビ
ット・バイトを含んでおり、それらが10本のデータ・
ラインのうちの8本を占めている。Cで表わされている
別の1本のラインは制御ラインであり、このラインは特
定の方法でメッセージパケットの異なる部分を明示する
のに用いられる制御シーケンスを搬送する。10番目の
ビットは本実施例においては奇数パリティ用に使用され
ている。当業者には理解されるように、このシステムは
以上のデータ経路中のビットの数を増減しても良く、そ
のようにビットの数を変更しても容易に動作させること
ができる。
【0052】バイト・シーケンス(バイトの列)は、一
連の複数のフィールドを構成するように配列され、基本
的には、コマンド・フィールド、キー・フィールド、転
送先選択フィールド、及びデータ・フィールドに分割さ
れている。後に更に詳細に説明するように、メッセージ
はただ1つだけのフィールドを用いることもあり、また
検出可能な「エンド・オブ・メッセージ」コードをもっ
て終了するようになっている。メッセージ間に介在する
「アイドル・フィールド(idle field:遊びフィール
ド)」は、Cライン上並びにライ0〜7上のとぎれのな
い一連の「1」によって表わされ、いかなるメッセージ
パケットも得られない状態にあるときには常にこれが転
送されている。パリティ・ラインは更に、個々のプロセ
ッサのステータスの変化を独特の方式で伝えるためにも
使用される。
【0053】「アイドル状態(idle state:遊び状
態)」はメッセージとメッセージとの間に介在する状態
であって、メッセージ・パケットの一部分ではな い。
メッセージ・パケットは通常、タグを含む 2バイトの
コマンド・ワードで始まり、このタグは、そのメッセー
ジがデータ・メッセージであればトランザクション・ナ
ンバ(TN)の形とされており、また、そのメッセージ
が応答メッセージであれば発信元プロセッサID(OP
ID)の形とされている。トランザクション・ナンバ
は、システムの中において様々なレベルの意義を有する
ものであり、多くの種類の機能的通信及び制御の基礎を
成すものとして機能するものである。パケットは、この
コマンド・ワードの後には、可変長のキー・フィールド
と固定長の転送先選択ワード(destination selection
word: DSW)とのいずれか或いは双方を含むことがで
き、これらは可変長のデータ・フィールドの先頭の部分
を成すものである。キー・フィールドは、このキー・フ
ィールド以外の部分においてはメッセージどうしが互い
に同一であるという場合に、それらのメセージの間のソ
ーティングのための判断基準を提供するという目的を果
たすものである。DSWは、多数の特別な機能の基礎を
提供するものであり、また、TNと共に特に注意するの
に値するものである。
【0054】このシステムは、ワード同期をとられてい
るインターフェイスを用いて動作するようになってお
り、パケットを送信しようとしている全てのプロセッサ
は、コマンド・ワードの最初のバイトを互いに同時にネ
ットワーク50へ送出するようになっている。ネットワ
ークは、これに続く諸フィールドのデータ内容を利用し
て、各ノードにおいて2進数ベースでソーティングを行
ない、このソーティングは、最小の数値に優先権が与え
られるという方式で行なわれる。連続するデータ・ビッ
トの中で、ビットCを最も大きい量である見なし、ビッ
ト0を最も小さい量であると見なすならば、ソーティン
グの優先順位は以下のようになる。
【0055】 1.ネットワーク50へ最初に送出されたもの、 2.コマンド・コード(コマンド・ワード)が最小値で
あるもの、 3.キー・フィールドが最小値であるもの、 4.キー・フィールドが最短であるもの、 5.データ・フィールド(転送先選択ワードを含む)が
最小値であるもの、 6.データ・フィールドが最短であるもの。
【0056】ここで概観を説明しているという目的に鑑
み、特に記しておかねばならないことは、ノード54に
おいて優先権の判定が下されたならば、コリジョン表示
(=衝突表示、以下Acol またはBcol と称する)が、
この優先権の判定において敗退した方の送信を受取った
方の経路に返されるということである。このコリジョン
表示によって、送信を行なっているマイクロプロセッサ
は、ネットワーク50がより高い優先順位の送信のため
に使用されているため自らの送信は中止されており、従
って後刻再び送信を試みる必要があるということを認識
することができる。
【0057】単純化した具体例が、図2から図12まで
の種々の図式に示されている。この具体例は、ネットワ
ーク50が4個の別々のマイクロプロセッサを用いたツ
リー構造に配列された高速ランダム・アクセス・メモリ
と協働して動作するようにしたものであり、それら4個
のマイクロプロセッサは更に詳しく説明すると、IFP
14と、3個のAMP18、19及び20とである。計
10面の図3乃至図12は、その各々が、t=0からt
=9までの連続する10個の時刻標本のうちの1つに対
応しており、そしてそれらの時刻の各々における、この
ネットワーク内のマイクロプロセッサの各々から送出さ
れる互いに異なった単純化された(4個の文字からな
る)シリアル・メッセージの分配の態様、並びに、それ
らの種々の時刻における、ポートとマイクロプロセッサ
との間の通信の状態を示している。単に図2は、信号の
伝送の開始前のシステムの状態を示している。以上の個
々の図においては、ナル状態(null state:ゼロの状
態)即ちアイドル状態であるためには、「□」で表され
る伝送が行なわれていなければならないものとしてい
る。最小値をとるデータ内容が優先権を有するという取
決めがあるため、図3中のAMP19から送出されるメ
ッセージ・パケット「EDDV」が、最初にこのシステ
ムを通して伝送されるメッセージ・パケットとなる。図
中の夫々のメッセージは、後に更に詳細に説明するよう
に、マイクロプロセッサの中の高速ランダム・アクセス
・メモリ(H.S.RAMと呼称することもある)の内
部に保持されている。H.S.RAM26は、図3には
概略的に示されている入力用領域と出力用領域とを有し
ており、パケットは、t=0の時点においては、この出
力領域の中にFIFO(先入れ先出し)方式で垂直に並
べて配列されており、それによって、転送に際しては図
中のH.S.RAM26に書込まれているカーソル用矢
印に指示されているようにして取り出すことができるよ
うになっている。この時点においては、ネットワーク5
0の中のすべての伝送は、ナル状態即ちアイドル状態
(□)を示している。
【0058】これに対して、図4に示されているt=1
の時点においては、各々のメッセージパケットの先頭の
バイトが互いに同時にネットワーク50へ送出され、こ
のとき全てのノード54はいまだにアイドル状態表示を
返しており、また、第1階層より上のすべての伝送状態
もアイドル状態となっている。第1番目のクロック・イ
ンタバルの間に夫々のメッセージの先頭のバイトが最下
層のノードIN1 及びIN2 の内部にセットされ、t=
2において(図5)競合に決着が付けられ、そして上流
方向への伝送と下流方向への伝送の双方が続けて実行さ
れる。ノードIN1 はその両方の入力ポートに「E」を
受取っており、そしてこれを上流方向の次の階層へ向け
て転送していて、また下流方向へは両方の送信プロセッ
サへ向けて未判定の状態を表示している。しかしながら
これと同じ階層に属しているノードIN2 は、プロセッ
サ19からの「E」とプロセッサ20からの「P」との
間の衝突に際しての優先権の判定を、「E」の方に優先
権があるものと判定しており、そして、ポートAをアッ
プ・ツリー側のポートCに結合する一方、マイクロプロ
セッサ20へBcol 信号を返している。Bcol 信号がマ
イクロプロセッサ20へ返されると、IN2 ノードは実
際上、そのA入力ポートがC出力ポートにロックされた
ことになり、それによって、マイクロプロセッサ19か
らのシリアルな信号列が頂点ノードIN1へ伝送される
ようになる。
【0059】IN1 ノードにおいては最初の二つの文字
はどちらも「ED」であり、そのため図5に示すよう
に、このノードではt=2の時刻には、判定を下すこと
は不可能となっている。更には、3つのマイクロプロセ
ッサ14、15及び19から送出された共通の先頭の文
字「E」は、t=3(図6)の時刻にII1頂点ノード
に達し、そしてこの文字「E」は、同じくそれら全ての
メッセージに共通する第2番目の文字「D」がこの頂点
ノードIIN1へ転送されるときに、その転送の向きを
反転されて下流方向へ向けられる。この時点ではノード
IN1 は未だ判定を下せない状態にあるが、しかしなが
らこのときには、一連のマイクロプロセッサ14、18
及び19からの夫々の第3番目の文字「F」、「E」及
び「D」がこのノードIN1 へ送信されつつある。マイ
クロプロセッサ20がBcol 信号を受取るということは
このプロセッサ20が優先権を得るための競合において
敗退したことを意味しており、それゆえこのプロセッサ
20はBcol 信号を受取ったならばアイドル表示(□)
を送出し、またそれ以降もこのアイドル表示(□)だけ
を送出する。夫々の出力バッファに書込まれている夫々
のカーソル矢印は、マイクロプロセッサ20はその初期
状態に戻されているがその他のマイクロプロセッサは連
続する一連の文字を送り続けていることを示している。
従ってt=4(図7)の時刻における重要な出来事は、
ノードIN1 のポートに関する 判定が行なわれること
と、それに、先頭の文字 (「E」)が、全てのライン
を通って第1階層のノード階層へ向けて反転伝送される
ことである。t=5(図8)の時刻には2回目の衝突が
表示され、この場合、ノードIIN1 のBポートが競合
に勝利し、Acolが発生される。
【0060】続く数回のクロック・タイムの間は、シリ
アルな信号列の下流方向へのブロードカストが継続して
行なわれ、t=6(図9)の時刻には、メッセージの先
頭の文字が全てのH.S.RAM26の入力用領域の部
分の中にセットされる。ここでもう1つ注意しておいて
頂きたいことは、ノードIN1 において先に行なわれた
優先権の判定はこの時点において無効とされるというこ
とであり、その理由は、プロセッサ18から送出された
第3番目の文字(「E」)がマイクロプロセッサ19か
ら送出された第3番目の文字(「D」)との競合に敗退
したときに、より高位の階層のノードIIN1からAco
l の表示がなされるためである。図10中においてカー
ソル矢印が表わしているように、マイクロプロセッサ1
4、18及び20はそれらの初期状態に戻されており、
また、勝利したマイクロプロセッサ19は、その全ての
送信をt=4の時刻に既に完了している。図10及び図
11から分るように、全ての入力バッファの中へ、次々
に優先メッセージ「EDDV」がロードされて行く。t
=8(図11)において、このメッセージは既に第1階
層から流れ出てしまっており、また、頂点ノードIIN
1 はt=7において既にリセットされた状態になってい
るが、それは、マイクロプロセッサへ向けて最後の下流
方向文字が転送されるときには、既にアイドル信号だけ
が互いに競合しているからである。t=9(図12)の
時刻には、第1階層に属しているノードIN1 及びIN
2 はリセットされており、そして、敗退したマイクロプ
ロセッサ14、18及び20の全ては、ネットワークが
再びアイドルを指示しているときにメッセージの先頭の
文字を送出することによって、ネットワーク上における
優先権を得るための競合を再度行なうことになる。実際
には後に説明するように、勝利したマイクロプロセッサ
へ肯定応答信号が伝送されるのであるが、このことは、
本発明を最大限に一般化したものにとっては必須ではな
い。
【0061】メッセージがこのようにして全てのマイク
ロプロセッサへブロードカストされた後には、このメッ
セージは、必要に応じてそれらのマイクロプロセッサの
いずれかによって、或いはそれらの全てによって利用さ
れる。どれ程のマイクロプロセッサによって利用される
かは、動作のモードと実行される機能の如何に応じて異
なるものであり、それらの動作モードや機能には様々な
バリエーションが存在する。
【0062】(大域的な相互通信と制御) 一群の互いに競合するメッセージのうちの1つのメッセ
ージに対してネットワークが優先権を与える方法として
上に説明した具体例は、プライマリ・データ・メッセー
ジの転送に関する例である。しかしながら、複雑なマル
チプロセッサ・システムが、現在求められている良好な
効率と多用途に亙る汎用性とを備えるためには、その他
の多くの種類の通信とコマンドとを利用する必要があ
る。備えられていなければならない主要な機能には、プ
ライマリ・データの転送に加えて、広い意味でマルチプ
ロセッサのモードと呼ぶことのできるもの、メッセージ
に対する肯定応答、ステータス表示、並びに制御信号が
含まれている。以下の章は、種々のモード並びにメッセ
ージが、どのようにして優先権付与のためのソーティン
グと通信とを行なうソーティング・コミュニケーション
・ネットワークと協働するかについて、大域的な観点か
ら、即ちマルチプロセッサ・システムの観点から説明し
た概観を提示するものである。更に詳細に理解するため
には、図18、図23及び図24と、それらの図につい
ての後述の説明とを参照されたい。
【0063】一斉分配モード、即ちブロードカスト・モ
ードにおいては、メッセージは特定の1個または複数個
の受信プロセッサを明示することなく、全てのプロセッ
サへ同時に送達される。このモードが用いられるのは、
典型的な例を挙げるならば、応答、ステータス問合せ、
コマンド、及び制御機能に関してである。
【0064】受信プロセッサが明示されている必要があ
る場合には、メッセージ・パケットそれ自体の中に含ま
れている転送先選択情報が、そのパケットを局所的に
(=個々のプロセッサにおいて)受入れるか拒絶するか
を判断するための判定基準を提供するようになってい
る。例を挙げれば、受信プロセッサ・モジュールの内部
のインターフェイス・ロジックが、高速RAM26に記
憶されているマップ情報に従って、そのパケットのデー
タがそのインターフェイス・ロッジクが組込まれている
特定のプロセッサが関与する範囲に包含されるものか否
かを識別する。高速RAM内のマップ・ビットを種々に
設定することによって様々な選択方式の判定基準を容易
に設定することができ、それらの選択方式には、例え
ば、特定の受信プロセッサの選択、(「ハッシング」に
より)格納されているデータベースの一部分の選択、ロ
ジカル・プロセス・タイプ(「クラス」)の選択、等々
がある。ブロードカストを局所的アクセス制御(=個々
のプロセッサにおいて実行されるアクセス制御)と共に
用いることは、データベース管理システムにとっては特
に有益であり、それは、小さなオーバーヘッド用ソフト
ウェアしか必要とせずに、広範に分散されたリレーショ
ナル・データベースの任意の部分や、複数の大域的に既
知となっているロジカル・プロセスのうちの任意のもの
の分散された局所的コピーに、アクセスすることができ
るからである。従ってこのシステムは、メッセージの転
送先として、1つの転送先プロセッサを特定して選択す
ることもでき、また、1つのクラスに属する複数の資源
を特定して選択することもできる。
【0065】更にまた、ハイ・レベルのデータベース問
合せは、しばしば、データベースの別々の部分の間の相
互参照と、所与のタスクについての一貫性を有するレフ
ァレンス(識別情報)とを必要とする。メッセージに組
込まれたトランザクション・ナンバ(TN)は種々の特
質を持つものであるが、その中でも特に、そのような大
域的なトランザクションのアイデンティティ(同定情
報)及びレファレンスを提供するものである。多数のタ
スクを、互いに非同期的に動作するローカル・プロセッ
サ・モジュール(局所的プロセッサ・モジュール)によ
って同時並行的に処理することができるようになってお
り、また、各々のタスクないしサブタスクは適当なTN
を持つようにされている。TNとDSW(転送先選択ワ
ード)とコマンドとを様々に組合わせて用いることによ
って、実質的に無限の融通性が達成されるようになって
いる。その割当てと処理とが非同期的に行なわれている
極めて多数のタスクに対して、広範なソート/マージ動
作(sort/merge operation)を適用することができるよ
うになっている。TNについては、それを割当てること
と放棄することとが可能となっており、またマージ動作
については、その開始と停止とが可能とされている。あ
る種のメッセージ、例えば継続メッセージ等について
は、その他のメッセージの伝送に優先する優先権を持つ
ようにすることができる。TNと、それにそのTNに関
するステータスを更新するローカル・プロセッサとを利
用することにより、ただ1つの問合せだけで所与のTN
についての大域的資源のステータスを判定することがで
きるようになっている。分散型の更新もまた一回の通信
で達成できるようになっている。本発明のシステムは、
以上の全ての機能が、ソフトウェアを拡張したりオーバ
ーヘッドの負担を著しく増大させることなく、実行され
るようにするものである。
【0066】本発明を用いるならばその結果として、従
来技術において通常見られる個数のマイクロプロセッサ
よりはるかに多くの個数のプロセッサを備えたマルチプ
ロセッサ・システムを、問題タスクに対して非常に効果
的に動作させることが可能になる。現在ではマイクロプ
ロセッサは低価格となっているため、問題領域において
高性能を発揮するシステムを、それも単に「ロー」パワ
ー("raw" power)が高性能であるというだけではない
システムを、実現することができる。
【0067】全てのメッセージのタイプと種々のサブタ
イプとを包含する一貫性のある優先順位プロトコルが、
ネットワークに供給される種々様々なメッセージの全て
を包括するように定められている。応答メッセージ、ス
テータス・メッセージ、並びに制御メッセージはプライ
マリ・データ・メッセージとは異なる形式のメッセージ
であるが、それらも同じように、ネットワークの競合/
マージ動作(contention/merge operation)を利用し、
そしてそれによって、転送されている間に優先権の付与
を受ける。本システムにおける応答メッセージは、肯定
応答(ACK)か、否定応答(NAK)か、或いは、そ
のプロセッサがそのメッセージに対して有意義な処理を
加えるための資源を持っていないことを表わす表示
(「非該当プロセッサ(not applicable processor)」
−NAP)である。NAK応答は、ック(lock)状態、
エラー状態、ないしはオーバーラン(overrun)状態を
表示する幾つかの異なったタイプのうちのいずれであっ
ても良い。発信元プロセッサは1つだけであることも複
数個ある場合もあるが、発信元プロセッサはメッセージ
の送信を終了した後には以上のような応答を必要とする
ため、応答メッセージにはプライマリ・データ・メッセ
ージより高位の優先順位が与えられている。
【0068】本システムは更にSACKメッセージ(ス
テータス肯定応答メッセージ:status acknowledgment
message)を用いており、このSACKメッセージは、
特定のタスク即ちトランザクションに関する、ある1つ
のローカル・プロセッサのレディネス状態(どのような
動作が可能であるかという状態:readiness state )を
表示するものである。このSACK応答の内容は局所的
に(=個々のプロセッサにおいて、即ちローカル・プロ
セッサにおいて)更新されると共に、ネットワークから
アクセスできる状態に保持される。斯かるSACK応答
は、ネットワークのマージ動作と組合わされることによ
って、所与のタスク即ちトランザクションに関する単一
の問合せによる大域的ステータス報告が得られるように
している。ステータス応答は優先順位プロトコルに従う
ため、ある1つのトランザクション・ナンバに関する応
答のうちのデータ内容が最小の応答が自動的に優先権を
得ることになり、それによって最低のレディネス状態が
大域的なシステム状態として確定され、しかもこれは中
断されることのない1回の動作によって行なわれる。更
に、このようなSACK表示はある種のプライマリ・メ
ッセージと共に用いられることもあり、それによって、
例えばシステムの初期化やロックアウト動作等の、様々
なプロトコルが設定される。
【0069】種々のメッセージのタイプに関する優先順
位プロトコルは先ず最初にコマンド・コードについて定
義されており、このコマンド・コードは、図21に示す
ように各メッセージ及び応答の先頭に立つコマンド・ワ
ードの、その最初の6ビットを使用している。これによ
ってメッセージのタイプ及びサブタイプに関して充分な
区別付けができるようになっているが、ただし、より多
段階の区別付けをするようにすることも可能である。
図21を参照すれば分るように、本実施例においては、
SACK応答は7つの異なったステータス・レベルを区
別して表わす(更には優先権判定のための基準をも提供
する)ものとされている。応答メッセージの場合には、
以上の6ビットの後に、10ビットのOPIDの形式と
したタグが続く(図13参照)。TNとOPIDとはい
ずれも更なるソーティング用判定基準としての機能を果
たすことができ、その理由は、これらのTNとOPID
とはタグ領域の内部において異なったデータ内容を持つ
からである。
【0070】各プライマリ・メッセージがネットワーク
を介して伝送された後には、全てのプロセッサのインタ
ーフェイス部が、たとえそれがNAPであろうとも、と
もかく応答メッセージを発生する。それらの応答メッセ
ージもまたネットワーク上で互いに競合し、それによっ
て、単一または共通の勝利した応答メッセージが全ての
プロセッサへブロードカストされる。敗退したメッセー
ジパケットは後刻再び同時送信を試みられることになる
が、この再度の同時送信は非常に短い遅延の後に行なわ
れ、それによってネットワークが実質的に連続的に使用
されているようにしている。複数のプロセッサがACK
応答を送出した場合には、それらのACK応答はOPI
Dに基づいてソーティングされることになる。
【0071】本発明を用いるならばその結果として、タ
スクの開始と停止と制御、並びにタスクに対する問合せ
を、極めて多数の物理的プロセッサによって、しかも僅
かなオーバーヘッドで、実行することが可能となる。こ
のことは、多数のプロセッサのロー・パワー(raw powe
r )を問題状態の処理のために効果的に使うことを可能
としており、なぜならば、このロー・パワーのうちシス
テムのコーディネーション(coordination)及び制御に
割かれてしまう量が極めて少なくて済むからである。コ
ーディネーションと制御のオーバーヘッドは、いかなる
分散型処理システムにおいても、その効率に対する根本
的な制約を成すものである。
【0072】大域的な制御(即ちネットワークの制御)
を目的としている場合には、種々のタイプの制御通信が
用いられる。従って、「マージ停止」、「ステータス要
求」、及び「マージ開始」の各メッセージや、あるタス
クの割当てのためのメッセージ並びにあるタスクの放棄
のためのメッセージは、データ・メッセージと同一のフ
ォーマットとされており、それ故それらのメッセージも
また、ここではプライマリ・メッセージと称することに
する。それらの制御メッセージも同様にTNを含んでお
り、そして優先順位プロトコルの中の然るべき位置に位
置付けられている。このことについては後に図20及び
図21に関して説明することにする。「大域的セマフォ
・バッファ・システム」という用語を先に使用したの
は、図1に示された高速ランダム・アクセス・メモリ2
6及び制御ロジック28が、マルチプロセッサのモード
の選択とステータス表示及び制御指示の双方向通信との
両方において、重要な役割りを果たしているという事実
があるからである。この大域的セマフォ・バッファ・シ
ステムはアクセスの二重性を提供するものであり、この
アクセスの二重性とは、高速で動作するネットワーク構
造体50とそれより低速で動作するマイクロプロセッサ
との双方が、メモリ26内のメッセージ、応答、制御、
ないしはステータス表示を、遅延なしに、そしてネット
ワークとマイクロプロセッサとの間の直接通信を必要と
することなく、参照することができるようにしていると
いうことである。これを実現するために、制御ロジック
28が、メモリ26を差込みワード・サイクル(interl
eaved woed cycle)で時間多重化(タイム・マルチプレ
クシング)してネットワーク50とマイクロプロセッサ
とへ接続しており、これによって結果的に、メモリ26
を共通してアクセスすることのできる別々のポートが作
り上げられているのと同じことになっている。大域的資
源、即ちネットワーク50と複数のマイクロプロセッサ
とは、トランザクション・ナンバを、メモリ26のうち
のトランザクションのステータスを格納するために割振
られている部分へのロケートを行なうアドレス・ロケー
タとして、利用することができる。局所的なレベル(=
個々のプロセッサのレベル)において、あらゆる種類の
使用可能状態を包含する所与のトランザクションに関す
るサブタスクのステータスを、マイクロプロセッサの制
御の下にメモリ26の内部で更新し、そして制御ロジッ
ク28によってバッファ・システムにロックするという
ことが行なわれる。7種類の異なった作動可能状態のう
ちの1つを用いることによって、エントリをメモリ26
の異なった専用部分から好適に取出すことができるよう
になっている。ネットワークから問合せを受取ったなら
ば、プロセッサのステータスの通信が行なわれて(即ち
「セマフォ」が読出されて)、それに対する優先権の判
定がネットワークの中で行なわれ、その際、完了の程度
の最も低いレディネス状態が優先権を得るようになって
いる。以上の構成によって、1つの問合せに対する全て
のプロセッサからの迅速なハードウェア的応答が得られ
るようになっている。従って所与のタスクに関する分散
された複数のサブタスクの全てが実行完了されているか
否かについて、遅滞なく、且つソフトウェアを用いるこ
となく、知ることができる。更にこのシステムでは、通
信を行なうプロセッサ・モジュールのいずれもがトラン
ザクション・ナンバの割当てを行なえるようになってお
り、このトランザクション・ナンバ割当ては、使用可能
な状態にあるトランザクション・ナンバを、メッセージ
に使用し或いは各々の大域的セマフォ・バッファ・シス
テム内において使用するために割当てる動作である。
【0073】以上の、トランザクションのアイデンティ
ティとステータス表示とを統合した形で使用するという
ことの好適な具体的態様には、複数のプロセッサの各々
が所与の判定基準に関わる全てのメッセージを順序正し
く送出することを要求されるようにした、複合的マージ
動作がある。もし従来技術に係るシステムであれば、先
ず各々のプロセッサが自身のタスクを受取ってその処理
を完了し、然る後にその処理の結果を、最終的なマージ
動作を実行するある種の「マスタ」プロセッサへ転送す
るという方式を取らねばならないであろう。従ってその
マスタプロセッサが、そのシステムの効率に対する重大
なネックとなるわけである。
【0074】大域的レディネス状態が、作用が及ぶプロ
セッサの全てが準備のできた状態にあるということを確
証したならば、夫々のプロセッサに備えられたメモリ2
6における最高の優先順位を有するメッセージが互いに
同時にネットワークへ送出され、そしてそれらのメッセ
ージに対しては、前述の如く、マージが行なわれる間に
優先権の判定がなされる。幾つものグループのメッセー
ジについて次々と再送信の試みがなされ、その結果、複
数のメッセージを当該トランザクション・ナンバに関優
先順位の高いものから低いものへと順に並べ、その最後
には最低の優先順位のものがくるようにした、シリアル
なメッセージ列が発生される。特別のコマンド・メッセ
ージに従って、このシステムは、マージ動作をその途中
で停止することと途中から再開することとが可能とされ
ており、そのため、互いに同時刻に実行の途中にある複
数のマージ動作が、このネットワーク50を共有してい
るという状態が存在し得るようになっており、それによ
ってこのシステムの資源を極めて有効に利用することが
可能となっている。
【0075】従って、いかなる時刻においても、このネ
ットワーク50に接続されている動作中のプロセッサの
全てが、様々なトランザクション・ナンバに関係した複
数のメッセージに関する動作を互いに非同期的に実行し
ていられるようになっている。1つのステータス問合せ
によって同一のトランザクション・ナンバ即ち「現在」
トランザクション・ナンバの参照が行なわれたなら、全
てのプロセッサが、用意されているステータス・レベル
のうちの1つをもって互いに同期して応答を行なう。例
を挙げると、「マージ開始(START MERGE )」メッセー
ジは、ある特定のトランザクション・ナンバによって指
定される大域的セマフォのテスト(=調査)を行なわ
せ、もしこのテストの結果得られた大域的状態が「準備
完了」状態であれば(即ち「送信準備完了(SEND READ
Y)」または「受信準備完了(RECEIVE READY )」のい
ずれかび状態であれば)、現在トランザクション・ナン
バ(present transaction number:PTN)の値がこの
「マージ開始」メッセージに含まれて伝送されたTNの
値に等しくセットされる。(もしテストの結果得られた
大域的状態が「準備完了」状態でなかったならば、PT
Nの値は「TN0(これはトランザクション・ナンバ
(TN)が「0」であるという意味である)」という値
に戻されることになる)。
【0076】更には「マージ停止(STOP MERGE)」メッ
セージも、現在トランザクション・ナンバを「0」にリ
セットする。このようにして「TN0」は、ある1つの
プロセッサから他の1つのプロセッサへのメッセージ
(ポイント・ツー・ポイント・メッセージ)のために使
用される「ディフォルト」値のトランザクション・ナン
バとして利用されている。別の言い方をすれば、この
「TN0」によって、「ノン・マージ(non-merge)」
モードの動作が指定されるのである。
【0077】この大域的相互通信システムは、メッセー
ジの構成については図13(a)、(b)、(c)、及
び図21に示されているものを、また、高速ランダム・
アクセス・メモリ26の構成については図18及び図2
0に示されているものを採用している。更に詳細な説明
は、後に図15、図17、図19、図23、及び図24
に関連させて行なうことにする。
【0078】図13(a)〜図13(c)及び図21か
ら分るように、応答に用いられるコマンド・コードは0
0から0F(16進数)までであり、また、プライマリ
・メッセージに用いられるコマンド・コードは10(1
6進数)からより大きな値に亙っている。従って応答は
プライマリ・メッセージに対して優先し、図21に示し
た並べ順では最小の値が先頭にくるようにしてある。
【0079】高速RAMメモリ26" (図18)の内部
の1つの専用格納領域(同図において「トランザクショ
ン・ナンバ」と書かれている領域)が、図22のワード
・フォーマット(前述の7種類のレディネス状態、TN
割当済状態、並びにTN非割当状態)を格納するために
使用されている。このメモリ26" のその他の複数の専
用部分のなかには、入力(受信メッセージ)のための循
環バッファと、出力メッセージのための格納空間とが含
まれている。このメモリ26" のもう1つの別の分離領
域がメッセージ完了ベクトル領域として使用されてお
り、この領域は、送信完了した出力メッセージにポイン
タを置くことができるようにするものであり、これによ
って、出力メッセージの格納空間を有効に利用できるよ
うになっている。
【0080】以上から理解されるように、メモリ26及
び制御ロジック28については、それらのキューイング
(queuing )機能並びにデータ・バッファリング機能は
確かに重要なものであるが、それらと共に、大域的トラ
ンザクションを個々のプロセッサに関して分散させて処
理するところの多重共同動作が独特の重要性を有するも
のとなっている。
【0081】(能動ロジック・ノード) 冗長性をもって配設されている2つのネットワークのい
ずれにおいても、図1の複数の能動ロジック・ノード5
4は夫々が互いに同一の構成とされているが、ただし例
外として、各ネットワークの頂点にある方向反転ノード
54だけは、上流側ポートを備えず、その替わりに、下
流方向へ方向反転するための単なる信号方向反転経路を
備えている。図14に示すように、1個のノード54
を、機能に基づいて2つのグループに大きく分割するこ
とができる。それらの機能的グループのうちの一方はメ
ッセージと並びにコリジョン信号(衝突番号)の伝送に
関係するものであり、他方は共通クロック信号の発生並
びに再伝送に関係するものである。クロック信号に対し
ては、異なったノードにおける夫々のクロック信号の間
にスキューが存在しないように、即ちゼロ・スキューと
なるように、同期が取られる。以上の2つの機能グルー
プは互いに独立したものではなく、その理由は、ゼロ・
スキュー・クロック回路が信号伝送システムの重要な部
分を形成しているからである。ワード・クロック(シリ
アルな2つのバイトからなる)とバイト・クロックとの
両方が用いられる。ここで特に述べておくと、この能動
ロジック・ノード54の状態を設定ないしリセットする
際にも、また、異なった動作モードを設定する際にも、
この能動ロジック・ノード54を外部から制御する必要
はなく、また実際にそのような制御が行なわれることは
ない。更には、夫々のノード54が互いに同一の構造で
あるため、最近のIC技術を使用してそれらのノードを
大量生産することが可能であり、それによって、信頼性
を向上させつつ、かなりのコストの低下を実現すること
ができる。
【0082】先に言及したA、B及びCの夫々の「ポー
ト」は、その各々が10本の入力データ・ラインと10
本の出力データ・ラインとを備えている。例えばAポー
トでは、入力ラインはAIで表わされ、出力ラインはA
0で表わされている。各々のポート毎に、上流方向クロ
ック・ライン及び下流方向クロック・ラインと共に、1
本の「コリジョン」ライン(即ち「衝突」ライン)が用
いられている(例えばAポートにはAcol が用いられて
いる)。Aポート及びBポートの夫々のデータ・ライン
はマルチプレクサ60に接続されており、このマルチプ
レクサ60は、互いに競合する2つのワードのうちの優
先する方のワード、或いは(それらの競合ワードが互い
に同一の場合には)その共通ワードを、データ信号C0
として、上流側ポート(Cポート)に接続されているア
ップ・レジスタ62へスイッチングして接続する。これ
と同時に、より高位の階層のノードから送出されてCポ
ートで受取られた下流方向データが、ダウン・レジスタ
64内へシフト・インされ、そしてそこからシフト・ア
ウトされて、Aポート及びBポートの両方に出力として
発生する。
【0083】バイトからなるシリアルな上流方向への信
号列のうちの一方はブロックされ得るわけであるが、し
かしながらそれによって上流方向ないし下流方向への余
分な遅延が発生することはなく、そして複数のワード
が、ワード・クロック並びにバイト・クロックの制御の
下に、切れ目のない列を成して、アップ・レジスタ62
及びダウン・レジスタ64を通して進められて行くので
ある。
【0084】Aポート及びBポートへ同時に供給された
互いに競合するバイトどうしは、第1及び第2のパリテ
ィ検出器66、67へ送られると共に比較器70へも送
られ、この比較器70は、8個のデータビットと1個の
制御ビットとに基づいて、最小の値のデータ内容が優先
権を得るという方式で優先権の判定を行なう。この優先
権判定のためのプロトコルにおいては、「アイドル」信
号、即ちメッセージが存在していないときの信号は、と
ぎれることなく続く「1」の列とされている。パリティ
・エラーは、例えば過剰な雑音の存在等の典型的な原因
や、その他の、信号伝送ないし回路動作に影響を与える
何らかの要因によって生じ得るものである。しかしなが
ら本実施例のシステムにおいては、パリティ・エラー表
示は、更に別の重要な用途のためにも利用されている。
即ち、あるマイクロプロセッサが動作不能状態へ移行す
ると、その移行がそのたび毎にマーキングされ、このマ
ーキングは、パリティ・ラインを含めた全ての出力ライ
ンが高レベルになる(即ちその値が「1」になる)こと
によって行なわれ、従ってそれによって奇数パリティ・
エラー状態が発生されるようになっている。
【0085】このパリティ・エラー表示は、1つのエラ
ーが発生したならネットワーク内を「マーカ(marke
r)」として伝送され、このマーカによって、システム
は、大域的資源に変化が生じたことを識別すると共にそ
の変化がどのようなものかを判定するためのプロシージ
ャを開始することができるようになっている。
【0086】1対のパリティ検出器66、67と比較器
70とは、信号を制御回路72へ供給しており、この制
御回路72は、優先メッセージ・スイッチング回路74
を含み、また、優先権の判定がさなれたならば比較器7
0の出力に応答してマルチプレクサ60を2つの状態の
うちのいずれかの状態にロックするように構成されてお
り、更に、下流方向へのコリジョン信号を発生並びに伝
播するように構成されている。移行パリティ・エラー伝
播回路76の名前のいわれは、この回路が、先に説明し
た同時に全てのラインが「1」とされるパリティ・エラ
ー状態をネットワークの中に強制的に作り出すものだか
らである。リセット回路78はこのノードを初期状態に
復帰させるためのものであり、エンド・オブ・メッセー
ジ(endof message:EOM)検出器80を含んでい
る。
【0087】以上に説明した諸機能並びに後に説明する
諸機能が実行されるようにするためには、各々の能動ロ
ジック・ノードにおいてマイクロプロセッサ・チップを
使用してそれらの機能を実行するようにしても良いので
あるが、しかしながら、図15の状態図と以下に記載す
る論理式とに従ってそれらの機能が実行されるようにす
ることによって、更に容易に実行することが可能とな
る。図15の状態図において、状態S0はアイドル状態
を表わすと共に、互いに競合しているメッセージどうし
が同一であるために、一方のポートを他方のポートに優
先させる判定が下されていない状態をも表わしている。
S1状態及びS2状態は夫々、Aポートが優先されてい
る状態及びBポートが優先されている状態である。従っ
て、BIのデータ内容がAIのデータ内容より大きく且
つAIにパリティ・エラーが存在していない場合、また
は、BIにパリティ・エラーが存在している場合(これ
らのAIにパリティ・エラーが存在していないという条
件と、BIにパリティ・エラーが存在しているという条
件とは、夫々、AIPE及びBIPEと表記され、フリ
ップ・フロップの状態によって表わされる)には、Aポ
ートが優先されている。AIとBIとに関して以上と逆
の論理状態(論理条件)は、この装置がS2状態へ移行
すべき状態(条件)として存在するものである。より高
位の階層のノードから、その階層において衝突が発生し
た旨の表示が発せられたならば、その表示は、下流方向
信号の中に入れられてCOLINとして送り返されてく
る。この装置は、それがS0状態、S1状態、及びS2
状態のうちのいずれの状態にあった場合であってもS3
状態へと移行し、そしてこのコリジョン信号を下流方向
へAcol 及びBcol として転送する。S1状態ないしは
S2状態にあるときには、このノードは既に判定を下し
ているため、同様の方式でコリジョン信号が下流方向
へ、より低位の階層の(2つの)ノードへと送出されて
おり、このとき、優先メッセージスイッチング回路74
は、状況に応じてAポート或いはBポートにロックされ
ている。
【0088】リセット回路78はEOM検出器80を含
んでおり、この検出器80を用いて、ノードのS3から
S0へのリセット(図15)が行なわれる。第1のリセ
ットモードは、図16に示すように プライマリ・メッ
セージの中のデータ・フィールドを終結させているエン
ド・オブ・メッセージ(EOM)フィールドを利用する
ものである。1つのグループを成す複数のフリップ・フ
ロップと複数のゲートとを用いて、次式の論理状態が作
り出される。
【0089】URINC・URC・URCDLY ここで、URCはアップ・レジスタの中の制御ビットを
表わし、URINCはこのアップ・レジスタへ入力され
る入力信号の中の制御ビットの値を表わし、そしてUR
CDLYはアップ・レジスタ遅延フリップ・フロップ内
のC値(=制御ビットの値)を表わしている。
【0090】図16に示すように、制御ビットの列の中
の、連続する2個のビットを1組としたビット対(ビッ
ト・ペア)が、ある種のフィールドを明示すると共に、
1つのフィールドから次のフィールドへの移行を明示す
るようにしてある。例を挙げると、アイドル時に用いら
れる「1」のみが続く制御ビット状態から、「0、1」
のビット・シーケンス(=ビット対)への移行は、フィ
ールドの開始を明示するものである。この、「0、1」
のシーケンスは、データ・フィールドの開始を識別する
のに用いられる。これに続く「1、0」の制御ビットの
ストリング(列)は、内部フィールドないしはサブフィ
ールドを表示しており、またエンド・オブ・メッセージ
(EOM)は「0、0」の制御ビット対によって識別さ
れる。「1、0」のビット対のストリングのあとに
「0、0」のビット対がくる状態は、他にはない状態で
あり、容易に識別することができる。URINC信号、
URC信号、及びURCDLY信号はまとめてアンド
(論理積)をとられ、これらの各々の信号は互いにバイ
ト・クロック1つ分づつ遅延した関係にある。それらの
アンドをとった結果得られる信号の波形は、メッセージ
・パケットが始まるまでは高レベルで、この開始の時点
において低レベルに転じ、そしてこのデータ(=メッセ
ージ・パケット)が続いている間、低レベルにとどまる
波形である。この波形は、EOMが発生されてからバイ
ト・クロック2つ分が経過した後に、高レベルへ復帰す
る。この、波形URINC・URC・URCDLYが正
に転じる遷移によって、EOMが検出される。図15に
付記されているように、この正遷移によってS1または
S2からS0への復帰動作がトリガされるのである。
【0091】より高位の階層のノードがリセットされる
と、それによってCOLIN状態となり、これは衝突状態
が消失したことを表わす。この論理状態は、S3から基
底状態であるS0への復帰動作を開始させる。注意して
頂きたいことは、このCOLIN状態は、エンド・オブ・
メッセージがネットワーク50の階層を次々と「走り抜
けて」いくのにつれて、下方へ、それらの階層へ伝播し
ていくということである。以上のようにして、各々のノ
ードはメッセージの長さの長短にかかわらず自己リセッ
トできるようになっている。更に注意して頂きたいこと
は、ネットワークの初期状態の如何にかかわらず、アイ
ドル信号が供給されたならば全てのノードがS0状態に
リセットされるということである。
【0092】コリジョン信号は複数のプロセッサ・モジ
ュールにまで戻される。それらのモジュールはこのコリ
ジョン状態情報を記憶し、そしてアイドル・シーケンス
を送信する動作へと復帰し、このアイドル・シーケンス
の送信は競合において勝利を得たプロセッサが送信を続
けている間中行なわれている。プロセッサは、COLIN
からCOLINへの遷移を検出し次第、新たな送信を開始
することができるようにされている。更にこれに加え
て、プロセッサは、Nをネットワーク内の階層の数とす
るとき、2N個のバイト・クロックの時間に亙ってアイ
ドル信号を受信し続けたならば新たな送信を開始するこ
とができるようにされており、それは、このような状況
もまた、前者の状況と同じく、先に行なわれた送信がこ
のネットワーク内に残ってはいないということを表わす
ものだからである。これらの新たな送信を可能にするた
めの方式のうちの後者に依れば、初めてネットワークに
参加するプロセッサが、トラフィックさえ小さければネ
ットワークとの間でメッセージ同期状態に入ることがで
き、そのためこの初参加のプロセッサは、このネットワ
ーク上の他のプロセッサとの間の相互通信を開始する際
して、別のプロセッサからのポーリングを待つ必要がな
い。
【0093】パリティ・エラー状態は図15の状態図の
中に記されているが、次の論理式に従って設定されるも
のである。
【0094】PESIG = AIPE・AIPEDLY + BIPE・BIPEDLY このPESIGの論理状態が真であるならば、アップ・
レジスタへの入力信号URINは、(URIN 0…URIN 7、
C、P=1…1、1、1)である。上の論理式を満足す
るために、移行パリティ・エラー伝播回路76は、AI
PE用、即ちA入力のパリティ・エラー用フリップ・フ
ロップと、遅延フリップ・フロップ(AIPEDLY)
とを含んでいる。後者のフリップ・フロップは、AIP
Eの設定状態に従って、それよりバイト・クロック1つ
分遅れて状態を設定される。従ってA入力に関して言え
ば、AIPE用フリップ・フロップがパリティ・エラー
によってセット状態とされたときに、PESIG値がバ
イト・クロック1つ分の間ハイ・レベルとなり、そのた
め、このPESIG信号はパリティ・エラーの最初の表
示がなされたときに1回だけ伝播されるわけである。複
数のデータ・ビット、制御ビット、並びにパリティ・ビ
ットの全てが「1」の値であるときにもこれと同じ状態
が生じるが、それは、大域的資源の状態についての先に
説明した移行が発生したときに生じる状態である。それ
によって全てのラインがハイ・レベルに転じ、全てが
「1」の状態を強制的に作り出されて総数偶数状態(奇
数パリティ状態)が確立され、その結果、先に説明した
状態にAIPEフリップ・フロップとAIPEDLYフ
リップ・フロップとがセットされてパリティ・エラーを
表示するようになる。以上の構成は、Bポートで受取っ
たメッセージ・パケットがパリティ・エラー、或いはス
テータスの変化を表示するための強制的パリティ表示を
含んでいる場合にも、同様の方式で動作する。
【0095】雑音の影響やその他の変動要素に起因して
発生するパリティ・エラーは、通常は、プロセッサの動
作に影響を及ぼすことはなく、その理由は、冗長性を有
する二重のネットワークを用いているからである。監視
(モニタ)や保守のためには、インジケータ・ライト
(=表示灯:不図示)を用いてパリティ・エラーの発生
を表示するようにする。ただし、ステータスの変化を示
す1回のみ伝播するパリティ・エラーについては、それ
によって、その変化の重要性を評価するためのルーチン
が開始される。
【0096】図14に示すようにこのノード54に使用
されているクロッキング・システムは、ネットワーク内
に用いられている階層の数にかかわらず、全てのノード
要素におけるクロックとクロックとの間のスキュー(sk
ew)がゼロとなるようにするための、即ちゼロ・スキュ
ー状態を保持するための、独特の手段を提供するもので
ある。クロック回路86は、第1及び第2の排他的OR
ゲート88、89を含んでおり、夫々AとBで示されて
いるそれらの排他的ORゲートの出力は、加算回路92
によって、それらの間に減算(即ち「B−A」の演算)
が行なわれるように結合されており、この加算回路92
の出力は、低域フィルタ94を通された後に、フェーズ
・ロック・ループである発振器(PLO)96から送出
される出力の位相を制御している。第1の排他的ORゲ
ート88への入力は、このPLO96の出力と、隣接す
るより高位の階層のノード要素から絶縁駆動回路97を
介して供給される下流方向クロックとである。このクロ
ックのラインには「ワード・クロック」と記されてお
り、このワード・クロックは、隣接するより高位の階層
から既知の遅延τの後に得られるものであり、そしてこ
の同じクロック信号が、もう1つの絶縁駆動回路98を
介して、隣接するより高い階層のそのノードへ返される
ようになっている。第2の排他的ORゲート89への入
力は、このワード・クロックと、隣接するより低位の階
層からのクロック・フィードバックとから成り、この低
位の階層も同様に、このPLO96から信号を受取って
いる。
【0097】上記のワード・クロック・ラインは、第3
の排他的ORゲート100の2つの入力へ接続されてお
り、それら両方の入力は、直接的に接続されているもの
と、τc 遅延線101を介して接続されているものとで
ある。これによって、ワード・クロックの2倍の周波数
をもち、このワード・クロックに対してタイミングの合
った、バイト・クロック信号を得ている。
【0098】以上のクロック回路86の作用は、図17
のタイミング・ダイアグラムを参照すればより良く理解
できよう。クロック・アウト信号(クロック出力信号)
は、PLO96の出力である。このクロッキング・シス
テムの最大の目的は、ネットワーク内の全てのノードに
関するクロック出力信号どうしの間にゼロ・タイム・ス
キュー状態を保持することにあるのであるから、当然の
ことながら、それらのクロック出力信号どうしはその公
称周波数もまた互いに同一でなければならばい。ノード
間の伝送ラインによる遅延τは、略々一定の値になるよ
うにするが、この遅延の値それ自体は長い時間に設定す
ることも可能である。ここに開示している方法を採用す
るならば、ネットワーク並びにノードのバイト・クロッ
ク速度を実機システムにおいて採用されている速度(公
称120ns)とした場合に、28フィート(8.53
m)もの長さにすることが可能である。当業者には容易
に理解されるように、可能最大個数のプロセッサ・モジ
ュールが目いっぱいに実装されいるのではないネットワ
ークには、更に階層を付加することによって、この28
フィートの整数倍の長さを容易に得ることができる。そ
の場合、それに対応して待ち時間、即ちそのネットワー
クを通して行なわれる伝送の伝送時間は増大する。
【0099】図17中のクロック・アウト信号のすぐ下
の波形によって示されているように、隣接するより高位
の階層から得られるワード・クロックはクロック・アウ
ト信号と同じような波形であるが、ただしτだけ遅れて
いる。このワード・クロックが、全てのノードに共通す
る根本的タイミング基準を成すのであるが、そのような
ことが可能であるのは、個々のクロック・アウト信号の
前縁をその回路の内部で制御することができ、そしてそ
れらの前縁をワード・クロックに先行させることによっ
て、全てのノードが同期した状態に保持されるようにす
ることができるからである。波形A及び波形Bを参照す
ると分るように、第1のORゲート88が発生するパル
スAは、ワード・クロックの前縁の位置で終了してお
り、一方、第2のORゲート89が発生するパルスB
は、その前縁がワード・クロックの前縁と一致してい
る。このBパルスの後縁は、隣接するより低位の階層の
モジュールからのフィードバック・パルスの開始の位置
に定められ、このフィードバック・パルスはτだけ遅延
しているため、Bパルスはその持続時間が一定となって
いる。クロック回路86は、パルスAの持続時間をパル
スBの持続時間と同一に保持するように作用するが、そ
のように作用する理由は、PLO96の位相を進めて同
期状態が確立されるようにするにつれて、加算回路92
の出力信号(減算「B−A」を行なった信号)がゼロへ
近付いて行くからである。実際には、破線で示されてい
るように好適な位置より先行していることも遅れている
こともあるA信号の前縁に対して調節を加えて、このA
信号の前縁がワード・クロックの前縁より時間τだけ先
行する位置にくるようにする。全てのノードにおいて、
クロック・アウト信号の前縁がこの好適公称位置に位置
するようになれば、ワード・クロックどうしの間にゼロ
・スキュー状態が存在することになる。従ってネットワ
ークに接続されている夫々のプロセッサは、あるプロセ
ッサから別のプロセッサまでの経路の全長に関する制約
から解放されているが、それは、遅延が累積することが
無いということと、伝播時間に差が生じないということ
とに因るものである。
【0100】二倍周波数のバイト・クロックを発生させ
るために、遅延線101によって、遅延時間τc だけ遅
れたワード・クロックが複製されており、この遅延線1
01もゲート100へ信号を供給している。従って、図
17中のバイト・クロックと記されている波形から分る
ように、ワード・クロックの前縁と後縁の両方の位置
に、持続時間τc を有するバイト・クロック・パルスが
発生される。このパルスの発生は、各々のワード・クロ
ックのインタバルの間に2回づつ生じており、しかも、
全てノードにおいて、ワード・クロックと同期して生じ
ている。以上の説明においては、ノードとノードとの間
の伝送ラインによって発生される遅延は階層から階層へ
の伝送方向がどちら方向であっても殆ど同一であり、そ
のため、事実上、このシステム内の全てのワード・クロ
ック並びにバイト・クロックが、互いに安定な位相関係
に保たれるということを、当然の前提としている。従っ
て局所的に(=個々のノードの内部で)発生されるバイ
ト・クロックは、各々のノードにおいて、メッセージの
2バイト・ワード(=2個のバイトから成るワード)
の、その個々のバイトのためのクロッキング機能を提供
している。
【0101】以上の能動ロジック・ノードは、同時に送
出されたメッセージ・パケットどうしの間の競合をその
データ内容に基づいて決着させるようにしている場合に
は常に、潜在的な利点を有するものである。これに対
し、例えば、1981年2月17日付で発行された米国
特許第4251879号公報「デジタル通信ネットワー
クのための速度非依存型アービタ・スイッチ(Speed In
dependent Arbiter Switch for Digital Communication
Nbiworks)」に示されているものをはじめとする、大
多数の公知にシステムは、時間的に最初に受信された信
号がどれであるのかを判定することを目指しており、外
部に設けた処理回路または制御回路を使用するものとな
っている。
【0102】(プロセッサ・モジュール) 図1の、システム全体の概略図の中に図示されている個
々のプロセッサは、夫々、インターフェイス・プロセッ
サ(IFP)14及び16と、アクセス・モジュール・
プロセッサ(AMP)18〜23の具体例として示され
ており、また、これらのプロセッサは、大まかに複数の
主要要素に再区分してある。これらのプロセッサ・モジ
ュール(IFP及びAMP)の構成についての更に詳細
な具体例は、図1の機能的な大まかな再区分との間に対
応関係を有するものとなるが、ただしそればかりでな
く、かなり多くの更なる再区分をも示すものとなる。本
明細書で使用するところの「プロセッサ・モジュール」
なる用語は、図18に図示されているアセンブリの全体
を指すものであり、このアセンブリは、以下に説明する
任意選択の要素を備えることによって、IFP或いはA
MPのいずれかとして機能することができるようにな
る。また、「マイクロプロセッサ・システム」という用
語は、マイクロプロセッサ105を内蔵したシステム1
03を指すものであり、ここでマイクロプロセッサ10
5は、例えば、インテル8086型(Intel 8086)16
ビット・マイクロプロセッサ等である。このマイクロプ
ロセッサ105のアドレス・パス並びにデータ・パス
は、マイクロプロセッサ・システム103の内部におい
て、例えばメインRAM107等の一般的な周辺システ
ム、並びに周辺機器コントローラ109に接続されてい
る。この周辺機器コントローラ109は、プロセッサ・
モジュールがAMPでありしかも周辺機器がディスク・
ドライブ111である場合に用い得るものの一例として
示すものである。これに対して、このプロセッサ・モジ
ュールをIFPとして働かせる場合には、破線で描いた
長方形の中に示されているように、このコントローラ即
ちインターフェイスを、例えばチャネル・インターフェ
イスに取り替えれば良い。そのような具体例のIFP
は、ホスト・システムのチャネル即ちバスとの間の通信
を行なうものとなる。このマイクロプロセッサ・システ
ム103には従来の一般的なコントローラやインターフ
ェイスを用いることができるので、それらのコントロー
ラやインターフェイスについては更に詳細に説明する必
要はない。
【0103】1つのマイクロプロセッサ毎に1台のディ
スク・ドライブを用いることが費用と性能の両方の面に
おいて有利であるということを示し得ることに注目すべ
きである。そのような方式が有利であるということは、
データベースに関しては一般的に言えることであるが、
ただし、ときには、1つのマイクロプロセッサが複数の
二次記憶装置にアクセスできるようにマイクロプロセッ
サを構成することが有益なこともある。概略図において
は、図を簡明にするために、その他の通常用いられてい
るサブシステムが組み込まれている点については図示省
略してある。この省略されたサブシステムは例えば割込
みコントローラ等であり、割込みコントローラは、半導
体を製造しているメーカーが自社製のシステムに組み合
わせて使用するために供給しているものである。また、
本発明が提供し得る冗長性と信頼性とを最大限に達成す
ることのできる、プロセッサ・モジュールへ電源を供給
するために適切な手段を、講じることの重要性について
も当業者には理解されよう。
【0104】マイクロプロセッサ・システム103にお
ける任意選択要素として示されている周辺機器コントロ
ーラ109とチャネル・インターフェイスとは、図1中
のIFPインターフェイスとディスク・コントローラと
に相当するものである。これに対して図1の高速RAM
26は、実際には、第1のH. S. RAM26' と第2
のH. S. RAM26" とから成っており、それらの各
々は、タイム・マルチプレクシング(時間多重化)によ
って、機能の上からは事実上の3−ポート・デバイスと
されており、それらのポートのうちの1つ(図中に
「C」と記されているポート)を介してマイクロプロセ
ッサのバス・システムと接続されている。H. S. RA
M26' 、26" の各々は、夫々に第1ないし第2のネ
ットワーク・インターフェイス120、120' と協働
し、それによって、夫々が第1及び第2のネットワーク
50a及び50b(これらのネットワークは図18には
示されていない)と、入力(受信)ポートA及び出力
(送信)ポートBを介して通信を行なうようになってい
る。このように互いに冗長性を有する2つのシステムと
なっているため、第2のネットワーク・インターフェイ
ス120' と第2のH. S. RAM26" を詳細に説明
するだけで良い。ネットワーク・インターフェイス12
0、120' については図23及び図24に関連して更
に詳細に示され説明されているが、それらは、大きく再
区分するならば以下の4つの主要部分に分けることがで
きる。
【0105】第2のネットワーク50bからの10本の
入力ラインを、インターフェイス・データ・バス並びに
インターフェイス・アドレス・バスを介してH. S. R
AM26" のAポートへ接続している、入力レジスタ・
アレイ/コントロール回路122。
【0106】第2のネットワーク50bへの出力ライン
を、インターフェイス・データ・バス並びにインターフ
ェイス・アドレス・バスと、第2のH. S. RAM2
6" のBポートとへ接続している、出力レジスタ・アレ
イ/コントロール回路124。
【0107】インターフェイス・アドレス・バス並びに
インターフェイス・データ・バスと、H. S. RAM2
6" のAポート並びにBポートとへ接続された、マイク
ロプロセッサ・バス・インターフェイス/コントロール
回路126。
【0108】ネットワークからワード・クロックを受取
り、そして、インターフェイス120' を制御するため
の互いに同期し且つ適切な位相関係にある複数のクロッ
クを発生する、クロック発生回路128。
【0109】第2のネットワーク・インターフェイス1
20' とH. S. RAM26" とは、マイクロプロセッ
サ・システム103と協働することによって、高速で動
作するネットワークとそれと比較してより低速で動作す
るプロセッサとの間のデータ転送をコーディネートして
おり、また更に、それらの異なったシステム(=ネット
ワーク・システムとプロセッサ・システム)の間で交換
されるメッセージの、待ち行列を作る機能も果たしてい
る。マイクロプロセッサ・バス・インターフェイス/コ
ントロール回路126は、マイクロプロセッサ・システ
ムと協働して(読出し/書込み機能:R/W機能)を実
行するためのものであると言うことができ、このマイク
ロプロセッサ・システムは(少なくともそれがインテル
8086型である場合には)H. S. RAM26" に直
接データを書込む能力と、このH. S. RAM26" か
らデータを受取る能力とを備えている。
【0110】IFPの構造とAMPの構造とは、その作
用に関しては互いに類似したものであるが、しかしなが
ら、H. S. RAM26" の内部の入力メッセージ格納
領域の大きさと出力メッセージ格納領域の大きさとに関
しては、IFPとAMPとの間に相当の差異が存在する
ことがある。リレーショナル・データベース・システム
においては、IFPは、ネットワークを絶えず利用して
ホスト・コンピュータの要求を満たせるようにするため
に、H. S. RAM26" の内部に、高速ネットワーク
から新たなメッセージを受取るための、大きな入力メッ
セージ格納空間を備えている。AMPについてはこれと
逆のことが言え、それは、高速ネットワークへ送出され
る処理済メセージ・パケットのために、より多くの格納
空間が使用できるようになっていなければならないから
である。H. S. RAM26" はマイクロプロセッサ・
システム103の中のメインRAM107と協働しての
動作も行ない、このメインRAM107は各々のネット
ワークのためのメッセージ・バッファ・セクションを備
えている。
【0111】マイクロプロセッサ・システム103のた
めの、メインRAM107内部のシステム・アドレス空
間の割当ての態様は図19に示されており、それについ
て簡単に説明しておく。一般的な方式に従って、ランダ
ム・アクセスのための記憶容量が増加された場合に使用
される拡張用の空間を残すようにしてシステム・ランダ
ム・アクセス機能に割当てられたアドレスと、I/Oア
ドレス空間と、ROM及びPROM(EPROMを含
む)の機能のために割当てられたアドレス空間とを有す
るものとなっている。更に、システム・アドレス空間の
うちの幾つかの部分が、夫々、第1及び第2の高速RA
M26' 、26" から送られてくるメッセージ・パケッ
トと、それらの高速RAMへ送り出されるメッセージ・
パケットのために割当てられている。これによってシス
テムの動作に非常な融通性が得られており、それは、マ
イクロプロセッサ105がH. S. RAM26" をアド
レスすることが可能であるようにしても、メインRAM
107の働きによって、ソフトウェアとハードウェアと
の相互依存性に殆ど拘束されないようにできるからであ
る。
【0112】再び図18に関して説明するが、既に述べ
たように、2つの方向からアクセスすることのできる
H. S. RAM26" は、マルチプロセッサ・モードの
制御、分散型の更新、並びにメッセージ・パケットの流
れの管理における、中心的機能を実行するように構成さ
れている。これらの目的や更に別の目的を達成するため
に、H. S. RAM26" は複数の異なった内部セクタ
に区分されている。図18に示されている様々なセクタ
の相対的な配置の態様は、このシステムの中の個々のプ
ロセッサ・モジュールの全てにおいて採用されているも
のであり、また、それらのセクタの境界を指定している
具体的なアドレスは、実際のあるシステムにおいて用い
られているアドレスを示すものである。ここで注意して
頂きたいことは、これらのメモリ・セクタの大きさとそ
れらの相対的な配置とは、具体的なシステムの状況次第
で大きく変り得るものだということである。図示例では
16ビットのメモリ・ワードが採用されている。選択マ
ップ及び応答ディレクトリは、初期設定の間に一度だけ
書込めば良いような種類の専用ルックアップ・テーブル
であり、一方、トランザクション・ナンバ・セクション
の方は、動的改定自在な(=動作している間に何度も内
容を変更することができるようにした)ルックアップ・
テーブルを提供している。
【0113】選択マップのメモリ・セクションはロケー
ション0から始まっているが、この具体例では、基本的
にこのメモリ・セクションの内部において4つの異なっ
たマップが使用されるようになってお り、それらのマ
ップは相互に関連する方式で利用されるものである。メ
ッセージ・パケットの中に内包されている転送先選択ワ
ード(destination selection word:DSW)が、H.
S. RAM26" 内の専用の選択マップと共同するよう
にして用いられる。この転送先選択ワードは、計16個
のビットから成り、そしてそのうちの12個のビット・
ポジションを占めるマップ・アドレスとその他の4個の
ビットを占めるマップ選択データとを含むものとされて
いる。H. S. RAMの先頭の1024個の16ビット
・メモリ・ワードは、その各々が4つのマップ・アドレ
ス値を含んでいる。DSWに明示されているアドレス値
に従ってH. S. RAMへ1回のメモリ・アクセスを行
なうだけで、4つの全てのマップにつてのマップ・ビッ
トが得られ、その一方で、そのDSWに含まれているマ
ップ選択ビットが、どのマップを用いるべきかを決定す
るようになっている。
【0114】図26は、以上のマップ・セクションの概
念的な構造を示しており、同図においては、各々のマッ
プがあたかも物理的に分離した4096×1ビットのR
AMから成るものであるかのように図示されている。実
施する際の便宜を考慮に入れれば、図18に示されてい
るように、全てのマップ・データがH. S. RAMの単
一の部分に格納されるようにするのが便利である。DS
W管理セクション190(図23及び図24)が、H.
S. RAMの1個の16ビット・ワードから得られる図
26の4つのマップの、その各々からの4個のビットに
対するマルチプレクシング動作を制御している。当業者
には理解されるように、この方式の利点は、H. S. R
AMのその他の部分をアクセスするのに用いられるのと
同じ手段を用いて、プロセッサがマップを初期設定でき
るという点にある。
【0115】更には、3つの異なったクラス(分類)の
転送先選択ワードが使用され、またそれに対応して、選
択マップの格納ロケーションが、ハッシュ選択部分、ク
ラス選択部分、及び転送先プロセッサ識別情報(destin
ation processor identification:DPID)選択部分
に分割されている。このDPIDは、当該プロセッサ1
05が、そのメッセージ・パケットの転送先として意図
された特定のプロセッサであるか否かを明示するもので
ある。これに対して、クラス選択部分は、当該プロセッ
サが、そのメッセージ・パケットを受取るべき特定の処
理クラスに属する複数のプロセッサのうちの1つである
か否か、即ちそのプロセッサ・グループのメンバーであ
るか否かを明示するものである。ハッシュ値は、リレー
ショナル・データベース・システムの内部にデータベー
スが分配される際の分配方法に応じて格納されており、
この分配方法は、そのシステムに採用されている、特定
のリレーションのためのアルゴリズム、並びに分散格納
方式に従ったものとなる。この具体例におけるハッシュ
値は、プロセッサの指定をするに際しては、そのプロセ
ッサがそのデータに対して一次的な責任とバックアップ
用の責任とのいずれか一方をもつものとして指定するこ
とができるようになっている。従って、以上の複数の選
択マップによって、H. S. RAM26" を直接アドレ
スして、プロセッサが転送先であるか否かを判断する、
という方法を取れるようになっている。この機能は、優
先権を付与されたメッセージを全てのネットワーク・イ
ンターフェイス120へブロードカストするという方法
と互いに相い補う、相補的な機能であり、そして割込み
を行なうことなくマイクロプロセッサ105のステータ
スの局所的なアクセスができるようにしている機能でも
ある。
【0116】H. S. RAM26" の中の、他の部分か
らは独立した1つのセクションが、大域的に分散されて
いる諸活動のチェック及び制御をするための中枢的な手
段として機能している。既に述べたように、また図13
に示されているように、ネットワーク50bへ送出さ
れ、またこのネットワーク50bから受取る種々の処理
の夫々に対しては、トランザクション・ナンバ(TN)
が割当てられている。メッセージの中にTNが内包され
ているのは、各々のプロセッサ・システム103が自ら
受容したサブタスクを互いに独立して実行する際の大域
的なトランザクション・アイデンティティ(トランザク
ション識別情報)とするためである。H.S. RAM2
6" 内の、複数の使用可能なトランザクション・ナンバ
のアドレスを格納するための専用のブロックが、それら
のサブタスクを実行する際にマイクロプロセッサ・シス
テム103によって局所的に制御及び更新されるステー
タス・エントリ(=ステータスについての記述項)を収
容している。TNは、相互通信機能が実行される際に、
局所的にもまた大域的にも、様々な異なった利用法で用
いられる。トランザクション・ナンバは、サブタスクを
識別するため、データを呼出すため、コマンドを与える
ため、メッセージの流れを制御するため、並びに大域的
な処理のダイナミクスの種類を特定するために用いられ
る。トランザクション・ナンバは、大域的通信の実行中
に割当てたり、放棄したり、変更したりすることができ
る。これらの特徴については以下の記載において更に詳
細に説明する。
【0117】TNの特徴のうち、最も複雑ではあるがお
そらく最も効果的な特徴と言えるのは、ソート・ネット
ワーク(ソーティング機能を有するネットワーク)と協
働することによって、所与の制御処理に関するローカル
・プロセッサ(=個々のプロセッサ・モジュール)のス
テータスの分散型更新を可能にするという、その能力で
ある。各々の制御処理(即ちタスクないしマルチプロセ
ッサの活動)はそれ自身のTNをもっている。
【0118】レディネス状態(プロセッサがどのような
動作をする準備が整っているかの状態)の値が、H.
S. RAM26" のトランザクション・ナンバ・セクシ
ョンに保持されるようになっており、このレディネス状
態の値は、マイクロプロセッサ・システム103の制御
の下に局所的に(=個々のプロセッサ・モジュールの内
部で)変更される。マイクロプロセッサ・システム10
3は、図20の応答ディレクトリの中の適当なエントリ
(例えばSACK/Busy)(アドレスは「050D
(16進数)」)を初期設定することができ、そしてそ
れによって複製されたとおりのイメージを転送すること
によって、このSACK/Busyのステータスの、
H. S. RAM26" への入力する。あるTNアドレス
(=トランザクション・ナンバに対応する格納位置)に
入力されているエントリは、H. S.RAM26" のA
ポート及びBポートを介して、そしてインターフェイス
120' を経由して、ネットワーク50bからアクセス
することが可能となっている。問合せは、ステータス・
リクエスト(ステータス要求)のコマンド・コード(図
21参照)とTNとを含む「ステータス・リクエスト」
メッセージを用いて行われる。インターフェイス12
0' は、指定されたTNのTNアドレスに格納されてい
る内容を用いて、然るべきフォーマットで書かれた応答
メッセージを格納している応答ディレクトリを参照す
る。所与のTNに関する大域的ステータス問合せを第2
のネットワーク・インターフェイス120' が受取った
ならば、それによって、ハードウェア的な制御しか受け
ていない直接的な応答が引き出される。前置通信は不要
であり、また、マイクロプロセッサ・システム103が
割込みを受けたり影響を及ぼされたりすることもない。
しかしながら、「ロック(lock)」表示がインターフェ
イス120' へ転送されることによってステータスの設
定が行なわれた場合には、マイクロプロセッサ・システ
ム103は割込みを禁止し、またインターフェイス12
0' が、アドレス「0501(16進数)」から得られ
るロック・ワードを、後刻その排除が行なわれるまで通
信し続ける。レディネス状態のワード・フォーマット
は、図22の「ビズィ(busy:動作実行中の状態)」か
ら「イニシャル(initial :初期状態)」までの7種類
の状態で示され、この図22は、実際のあるシステムに
おいて採用されている有用な一具体例を図示している。
レディネス状態をより多くの種類に分類するような変更
例やより少ない種類に分類する変更例も可能であるが、
同図に示されている7種類の状態を用いることによっ
て、多くの用途に適する広範な制御を行なうことができ
る。H. S. RAM26" の中の個々のTNの状態レベ
ル(=個々のTNアドレスに格納されているエントリが
表わしているレディネス状態のレベル)を継続的に更新
し、それによって、サブタスクの利用可能性やサブタス
クの処理の進捗状況が反映されるようにしておくこと
は、マイクロプロセッサ・システムの責任とされてい
る。このような更新は、図22に示されたフォーマット
を用いて、H. S. RAM26" 内のTNアドレスに書
込みを行なうことによって、容易に実行することができ
る。
【0119】図20において、各々のステータス応答
(状態応答)は、「05」から「0D」(16進数)ま
でのものについては、いずれもその先頭の部分がステー
タス肯定応答コマンド・コード(status acknowledgmen
t command code:SACK)で始まっている。ネットワ
ークへ送出されるそれらのSACK応答は、実際には、
図20のコマンド・コードと、図22のワード・フォー
マットの数字部分と、発信元プロセッサID(OPI
D)とから構成されており、これについては図21に示
すとおりである。従って、それらのSACK応答は、図
21に示された総合的優先順位規約の内部において、ひ
とまとまりの優先順位サブグループを形成している。O
PIDが優先順位規約に関して意味を持っているわけ
は、たとえば、複数のプロセッサがある1つのTNに関
して働いているが、ただしそれらのいずれもが「ビズ
ィ」状態にあるという場合には、ブロードカストされる
最優先メッセージの判定がこのOPIDに基づいて行な
われることになるからである。転送並びにシステムのコ
ーディネーションも、このデータ(OPID)に基づい
て行うことができる。
【0120】SACKメッセージ(=SACK応答)に
対して優先順位規約が定められていることと、複数のマ
イクロプロセッサ・システム103から同時に応答が送
出されるようにしたことと、ネットワーク50bにおい
て動的に(=伝送を行ないながら)優先権の判定が行な
われるようにしたこととによって、従来のシステムと比
較して、所与のタスクに関する大域的資源のステータス
の判定が、大幅に改善された方法で行なわれるようにな
っている。それによって得られる応答は、一義性を持
ち、規定にない状態を表わすことは決してなく、更に
は、ソフトウェアを必要とせずローカル・プロセッサ
(=個々のプロセッサ・モジュール)に時間を費消させ
ることもない。従って、例えば、タスクの実行を妨げる
頻繁なステータス要求によってデッドロックが生じてし
まうようなことは決してない。様々なステータス・レベ
ルにおいて、マルチプロセッサの多くの任意選択動作を
利用することができる。ローカル・プロセッサどうしが
互いに独立して動作を続けることができ、しかも単一の
問合せによって、1つの、大域的な、優先権を与えられ
た応答が引き出されるということ は、かつてなかった
ことである。
【0121】図22に示されている一連の状態につい
て、ここで幾らか詳しく説明しておけば、理解に役立つ
であろう。「ビズィ」状態と「ウェイティング(waitin
g:待ち)」状態とは、割当てられた、即ち委任されたサ
ブタスクに関して、次第により完成に近い段階へとこれ
から進んで行くことになる状態であり、「ウェイティン
グ」状態の方は、更なる通信ないしイベントを必要とし
ている状態を表わしている。これらの「ビズィ」並びに
「ウェイティング」の状態は、TNのステータスがより
高いレベルへと上昇して行き、ついにはそのTNに関す
るメッセージ・パケットを送信ないし受信できるステー
タス・レベルにまで到達するという、レベル上昇の例を
示すものである。
【0122】一方、メッセージ・パケットを送信ないし
受信する際には、以上とはまた別のTNの特徴である、
メッセージ制御におけるTNの能力が発揮されることに
なる。マイクロプロセッサ・システム103が送信すべ
きメッセージをもつようになると、ステータス表示は
「送信準備完了(send ready)」に変る。マイクロプロ
セッサ・システム103は、ステータス表示を更新する
ことに加えて、図22のワード・フォーマットを用いて
「ネクスト・メッセージ・ベクタ」の値をH. S. RA
M26" へ入力する。この入力されたエントリは、該当
する出力メッセージをH. S. RAM26" のどのロケ
ーションから取り出せば良いかを明示するものである。
このベクタは、ある特定のTNに関係する複数の出力メ
ッセージを1本につなげる(=チェーン(chain )す
る)ために、ネットワーク・インターフェイス120'
において内部的に使用されるものである。
【0123】以上の機能に関連した機能が、「受信準備
完了(receive ready )」状態の間に実行される。この
「受信準備完了」状態においては、TNの格納ロケーシ
ョン(=TNアドレス)に、マイクロプロセッサ・シス
テム103から得られる入力メッセージ・カウント値が
保持されるようになっており、この入力メッセージ・カ
ウント値は、所与のTNに関連して受信することのでき
るメッセージの個数に関係した値である。このカウント
値は、入力メッセージが次々と転送されて来るのに合せ
てデクリメントされ、ついにはゼロになることもある。
ゼロになったならばそれ以上のメッセージを受取ること
はできず、オーバラン(overrun)状態の表示がなされ
ることになる。以上のようにして、TNを利用してネッ
トワーク50bとマイクロプロセッサ・システム103
との間の伝送の速度を調節することができるようなって
いる。
【0124】局所的な(=個々のプロセッサについて
の)局面について説明すると、個々のプロセッサにおい
ては、処理が実行されている間、TNは送信メッセージ
及び受信メッセージの中に、システム全体で通用する一
定不変の基準として保持されている。「TN0」状態、
即ちディフォルト状態は、メッセージをノン・マージ・
モードで用いるべきであるという事実を明示するため
の、局所的コマンドとしての機能をも果たすものであ
る。
【0125】更に大域的な観点から説明すると、「TN
0」と、「TN>0」である種々の値とを、互いに異な
る性質のものとして区別することによって、TNを利用
している複数のコマンド機能のうちの1つのコマンド機
能が規定されている。即ち、そのようにTNを区別する
ことによって、「マージ/ノン・マージ」のいずれかを
表わす特性記述(キャラクタライゼーション)が各々の
メッセージ・パケットに付随することになり、それによ
って、複数のメッセージに対して優先権の判定とソート
とを行なうという、有力なシステムの動作方式が得られ
ているのである。同様に、「アサインド(Assigned:割
当てがなされている状態)」、「アンアサインド(Unas
signed:割当てがなされていない状態)」、「非関与プ
ロセッサ(Non-Participant )」、並びに「イニシャ
ル」というステータスを用いて、大域的相互通信と制御
の機能が遂行されるようになっている。「アンアサイン
ド」状態は、それ以前にプロセッサがTNを放棄した場
合の状態であり、従ってそれは、TNを再活性化させる
新たなプライマリ・メッセージを受取る必要がある状態
である。もし状態表示が「アサインド」であるべきとき
にプロセッサが「アンアサインド」を表示しているなら
ば、これはTNが適切に入力されなかったということを
示しているのであるから、訂正動作が実行されなければ
ならない。もしTNが「アンアサインド」であるべきと
きに「アサインド」となっているならば、これは、不完
全な転送が行なわれているか、或いは新たな1つのTN
を求めて2つのプロセッサの間で競合が行なわれている
ことの表われである場合がある。これらの「アサイン
ド」と「アンアサインド」とは、いずれもレディネス状
態としては扱われず、その理由は、それらの表示がなさ
れている段階では、プロセッサは、まだそのTNに関す
る作業を始めていない状態にあるからである。
【0126】更には、「イニシャル」状態と「非関与プ
ロセッサ」状態も、大域的資源の関係で重要である。オ
ン・ラインに入ろうとしているプロセッサ、即ち、この
システムへの加入手続きを行なわなければならないプロ
セッサは「イニシャル」状態にあリ、この態は、このプ
ロセッサをオン・ラインへ入れるためには管理上のステ
ップを踏む必要があることを表わしている。所与のタス
クに関して「非関与プロセッサ」状態にあるプロセッサ
は、局所的にはいかなる処理も実行する必要はないが、
しかしながらこのTNを追跡監視することにより、この
TNが不注意により不適切に使用されることのないよう
にする必要がある。
【0127】再び図20に関して説明すると、H. S.
RAM26" の専用ディレクトリ即ち参照セクション
は、以上に説明したタイプ以外にも、ハードウェア的に
応答を発生させるために使用される、優先順位を付与さ
れた、複数のその他のタイプのメッセージも含んでい
る。NA(not assigned:「割当てを受けていない」の
意)というエントリは、将来の使用に備えて準備され、
使用可能な状態で保持されている。3種類の異なったタ
イプのNAK応答(オーバラン、TNエラー、ロック
(Locked)の各NAK応答)は、そのデータ内容が最も
小さな値とされており、従って最も高い優先順位にある
が、それは、それらのNAK応答がエラー状態を示すも
のだからである。複数のSACK応答の後にACK応
答、そしてNAP応答(非該当プロセッサ応答)が続
き、それらは優先順位が低下して行く順序で並べられて
いる。この具体例の構成では、2つの応答用コマンド・
コードが機能を割当てられておらず(即ちNAとされて
おり)、それらは将来の使用に備えて使用可能な状態と
されている。以上に説明したディレクトリは、ソフウェ
アによって初期設定することができしかもハードウェア
によって利用されるため、広範な種々の応答メッセージ
・テキストのうちからどのようなものでも、迅速に且つ
柔軟性をもって発生させることができる。
【0128】以上のディレクトリの中の、その他の部分
からは独立している1つの独立部分を使用して、TO
P、GET、PUT、並びにBOTTOMの夫々のアド
レス、即ち、入力メッセージのための循環バッファの機
能に関するポインタと、それに完了出力メッセージのポ
インタとが、格納されている。こらのポインタは、夫
々、入力メッセージの管理と出力メッセージの管理とに
あてられているH. S. RAM26" の夫々の専用セク
タと協働して機能を果たすようになっている。入力メッ
セージのためには循環バッファ方式が用いられており、
この場合、H. S.RAM26" のディレクトリ・セク
ションに格納されている「TOP」が、入力メッセージ
のための上限アドレス位置を指定する可変アドレスとな
っている。同じディレクトリ・セクションに格納されて
いるPUTアドレスは、次に受信するメッセージを回路
がどこに格納すべきかというアドレス位置を指定するも
のである。GETアドレスは、ソフトウェアがバッファ
の空白化を行なっているアドレス位置をハードウェアで
認識できるようにするために、ソフトウェアによって設
定され且つ更新され続けるものである。
【0129】入力メッセージ・バッファの管理は、PU
Tをバッファの下限(bottom)のアドレスにセットし、
そしてGETアドレスがTOPに等しくなっている状態
から開始するという方法で、行なわれる。ソフトウェア
によって定められている動作上のルールは、GETがP
UTと等しい値にセットされてはならないということで
あり、もしそのようにセットされたならば、不定状態
(アンビギュアス・コンディション)が生じてしまうこ
とになる。入力メッセージがH. S. RAM26" の中
の入力メッセージ・バッファへ入力されると、メッセー
ジそれ自体の中に含まれているメッセージ長さ値が、次
に入力して来るメッセージの始点を決定し、続いて、デ
ィレクトリに格納されているPUTアドレスに対し、次
に入力して来るメッセージを受入れるべきバッファ内の
格納ロケーションを表示させるための変更が加えられ
る。以上のようにしたため、マイクロプロセッサ・シス
テム103は、自らの作業能力が許すときに、入力メッ
セージの取り出しを行なうことができるようになってい
る。
【0130】H. S. RAM26" 内の出力メッセージ
格納空間に格納されているデータは、他の部分からは独
立した循環バッファの内部に保持されている出力メッセ
ージ完了ベクトル、並びにH. S. RAM26" 内のネ
クスト・メッセージ・ベクタと共に用いられる。個々の
メッセージの編集(アセンブル)並びに格納は、任意の
ロケーションにおいて行なうことができ、また、互いに
関連する複数のメッセージについては、それらをネット
ワーク上へ送出するためのつなぎ合わせ(チェーン)を
行なうことができるようになっている。H. S. RAM
26" のディレクトリ・セクションでは、TOP、BO
TTOM、PUT、並びにGETの夫々のアドレスが既
に説明したようにして入力され且つ更新されており、そ
れによって、出力メッセージ完了バッファ内のロケーシ
ョンについての動的な現在指標が維持されている。メッ
セージ完了ベクタは、出力メッセージ格納空間内に格納
されているメッセージであってしかも既に適切に転送が
なされたことが受信した応答によって示されているメッ
セージを指し示すための、指標となるアドレスを構成し
ている。後に説明するように、このシステムは、マイク
ロプロセッサ・システム103が出力メッセージの入力
を容易に行なえるようにしている一方で、このマイクロ
プロセッサ・システム103が複雑な連結ベクタ・シー
ケンスを整然とした方式で扱えるようにしており、それ
によって、出力メッセージ格納空間が効率的に使用さ
れ、メッセージ・チェーンの転送ができるようにしてい
る。
【0131】応答に関連して先に説明した図21のプロ
トコルは、応答に続けてプライマリ・メッセージについ
ても規定されている。複数種類の応答メッセージが互い
に連続して並べられており、16進数のコマンド・コー
ドが昇順に図示されている。プライマリ・メッセージの
グループの中では、マージ停止メッセージ(このメッセ
ージは、基本的制御メッセージであるノン・マージ制御
メッセージでもある)が、そのデータ内容が最小値とな
っており、従って最高の優先順位にある。このメッセー
ジは、ネットワーク内並びにプロセッサ・モジュールに
おけるマージ・モードを終了させる、制御通信を構成し
ている。
【0132】極めて多くの異なったタイプのプライマリ
・データ・メッセージを昇順の優先順位を定めて利用す
ることができ、またそれらには、応用上の要求事項とシ
ステム的な要求事項とに基づいて、優先順位に関する分
類を加えることができる。先に述べたように、他のメッ
セージの後に続けられる継続メッセージに対しては、そ
れに関する先行メッセージ・パケットからの連続性を維
持できるようにするために、高い優先順位をもたせるよ
うにすることができる。
【0133】4種類のプライマリ・メッセージから成
る、図21中の最下段のグループは、優先順位の高い方
から低い方へ向かって、ステータス応答を得ることを必
要とする唯一のタイプのステータス・メッセージである
ステータス・リクエスト・メッセージ、「TN放棄」と
「TN割当て」とを要求する夫々の制御メッセージ、そ
して、更に優先順位の低い「マージ開始」制御メッセー
ジを含んでいる。
【0134】以上の構成は、後に説明する更に詳細な具
体例から明らかなように、多くの用途に用い得る動作を
可能とするものである。プロセッサ・モジュールは、現
在トランザクション・ナンバ(present transaction nu
mber:PTN)に基づいて動作するようになっており、
この場合、そのPTNが外部的に、ネットワークからの
命令によって指定されたものであろうとも、また、連続
した動作を実行している間に内部的に発生されたもので
あろうとも、同じことである。マージ動作が実行されて
いるときには、プロセッサ・モジュールは、大域的レフ
ァレンス、即ちトランザクション・アイデンティティ
(=トランザクション識別するための情報)を利用して
その動作を実行しているのであり、このトランザクショ
ン・アイデンティティはTNによって定められている。
マージ動作の開 始、停止、及び再開は、簡単なメッセ
ージの変更だけを利用して行なわれる。サブタスクが、
メッセージをマージすることを必要としていない場合
や、他のメッセージとの間に特に関係をもっていないメ
ッセージ・パケットが発生されたような場合には、それ
らのメッセージは「TN0」に対して出力するための待
ち行列(キュー)を成すように並べられ、そして、現在
トランザクション・ナンバによって定められた、基本状
態即ちディフォルト状態(0である)が真状態を維持し
ている間に転送が行なわれる。この「TN0」状態は、
マージ・モードが用いられていないときには、メッセー
ジを転送のための待ち行列を成すように並べることを可
能にしている。
【0135】(ネットワーク・インターフェイス・シス
テム) これより図23及び図24に関して説明するが、同図
は、本発明のシステムに用いるのに適したインターフェ
イス回路の一具体例を更に詳細に示すものである。この
「ネットワーク・インターフェイス・システム」の章の
説明には本発明を理解する上では必ずしも必要ではない
多数の詳細な特徴が含まれているが、それらの特徴は、
実機のシステムには組み込まれているものであり、それ
ゆえ本発明の要旨に対する種々の具体例の位置付けを明
確にするために説明中に含めることにした。具体的なゲ
ーティングのための構成並びに詳細構造であって、本発
明の主題ではなく、しかも周知の手段に関するものにつ
いては、多種多様な代替構成を採用することも可能であ
るので、説明を省略ないし簡略化することにした。図2
3及び図24は、図18に示されている第2のネットワ
ーク・インターフェイス120' 並びにH.S.RAM
26" の詳細図である。2つのネットワークのための夫
々のインターフェイス120、120' は互いに同様の
方式で機能しており、それゆえ、一方のみについて説明
すれば十分である。
【0136】図23及び図24において、同図のインタ
ーフェイスに接続されている方の能動ロジック・ネット
ワーク50からの入力は、マルチプレクサ142と公知
のパリティ・チェック回路144とを介して、ネットワ
ーク・メッセージ管理回路140へ供給されている。マ
ルチプレクサ142は更にマイクロプロセッサ・システ
ムのデータ・バスに接続されており、これによって、こ
のデータ・バスを介してメッセージ管理回路140へア
クセスすることが可能となっている。この特徴により、
マイクロプロセッサ・システムが、インターフェイスを
ステップ・バイ・ステップ・テスト・モードで動作させ
ることが可能となっており、そして、このインターフェ
イスがネットワークとあたかもオン・ライン状態で接続
されているかのように、データの転送が行なわれるよう
になっている。ネットワークからの入力は受信用ネット
ワーク・データ・レジスタ146へ供給されるが、その
際、直接このレジスタ146の第1のセクションへ入力
されるバイト・データと、受信用バイト・バッファ14
8を介してこのレジスタ146へ入力されるバイト・デ
ータとがあり、受信用バイト・バッファ148は、第1
のセクションへのバイト・データの入力が行なわれた後
に、自らのバイト・データをこのレジスタ146の別の
セクションへ入力する。これによって、受信した各々の
ワードを構成している2つのバイトの両方が、受信用ネ
ットワーク・データ・レジスタ146に入力され、そし
てそこに、利用可能な状態で保持されることになる。
【0137】これから伝送される出力メッセージは、送
信用ネットワーク・データ・レジスタ150へ入力さ
れ、また、通常のパリティ発生回路132の内部におい
てパリティ・ビットが付加される。メッセージは、ネッ
トワーク・メッセージ管理回路140からそれに接続さ
れているネットワークへ送出されるか、或いは、(テス
ト・モードが用いられる場合には)マイクロプロセッサ
・システム・データ・バスへ送出される。このインター
フェイスの内部におけるメッセージ管理を行う目的で、
ランダム・アクセス・メモリ168に格納されている送
信メッセージのフォーマットは、メッセージ・データと
共に識別用データをも含むものとされている。図34
(a)から分るように、コマンド、タグ、キー、並びに
DSWのいずれをも、これから伝送されるプライマリ・
データに組合わせておくことができる。
【0138】図23及び図24に示されている構成は、
本質的に図18に示されている構成と同一であるが、た
だし図18では、インターフェイス・データ・バス並び
にインターフェイス・アドレス・バスが、H.S.RA
M26" の入力ポートAと入力ポートBとに別々に接続
され、また、マイクロプロセッサ・システム103のア
ドレス・バス並びにデータ・バスが、独立したCポート
に接続されているように図示されている。しかしながら
実際には、図23及び図24から分るように、このよう
な互いに独立した2方向からのアクセスは、このインタ
ーフェイスの内部において行なわれるH.S.RAM2
6" における入力アドレス機能及び出力アドレス機能の
時分割マルチプレクシングによって達成されている。マ
イクロプロセッサのデータ・バスとアドレス・バスと
は、夫々ゲート145と149とを介してインターフェ
イスの夫々のバスに接続されており、それによってマイ
クロプロセッサが非同期的に、それ自身の内部クロック
に基づいて動作できるようになっている。
【0139】採用されているタイミング体系は、クロッ
ク・パルスと、位相制御波形と、位相細分波形とに基づ
いたものとなっており、この位相細分波形は、インター
フェイス・クロック回路156(図23及び図24)に
よって発生され、また図25に示すタイミング関係をも
つものとなっている(図25についても後に説明す
る)。インターフェイス・クロック回路156は最も近
くのノードからネットワーク・ワード・クロックを受取
っており、またフェイズ・ロック・クロック・ソース1
57は、図14に関連して先に説明した如きゼロ・タイ
ム・スキューを維持するための手段を含んでいる。24
0nsのネットワーク内の公称ネットワーク・ワード・
クロック速度が、インターフェイス・クロック回路15
6の内部において時間的に細分され、これが行なわれる
のは、フェイズ・ロックされた状態に保持されている倍
周器(詳細には示さない)が、持続時間が40nsの基
準周期を定める高速クロック(図25にPLCLKとし
て示されている)を提供しているからである。基本的な
ワード周期を定めているのは、全周期が240nsで半
サイクルごとに反転する、図中にCLKSRAと記され
ている周期信号である。このCLKSRAと同一の周波
数と持続時間とをもつ信号が他に2つ、PLCLKに基
づいて分周器158によって発生されており、これらの
信号は夫々がCLKSRAからPLCLKの1サイクル
分及び2サイクル分だけ遅延した時刻に発生されてお
り、また、夫々がCLKSRB及びCLKSRCという
名称を与えられている。
【0140】以上の諸々の信号に基づいて、制御ロジッ
ク159が、「IO GATE」、「RECV GAT
E」、並びに「SEND GATE」と称されるタイミ
ング波形(以下、ゲート信号ともいう)を作り出してお
り、これらのタイミング波形は、ワード周期の互いに連
続する3等分されたインタバルの夫々を表示するもので
ある。これらのインタバルには、「IOフェイズ」、
「受信フェイズ」、「送信フェイズ」という該当する名
称がつけられている。上記ゲート信号によって定められ
たこれらのフェイズは、その各々が更に、「IO CL
K」信号、「RECV CLK」信号、並びに「SEN
D CLK」信号によって、2つの等分された半インタ
バルへと細分されており、これらの細分信号は、各々の
フェイズの後半部分を定めている。バイト・クロッキン
グ機能は、「BYTE CTRL」信号と「BYTE
CLK」信号とによって管理されている。
【0141】以上のIOフェイズ、RECVフェイズ
(受信フェイズ)、及びSENDフェイズ(送信フェイ
ズ)は、ランダム・アクセス・メモリ168とマイクロ
プロセッサ・システムのバスが、時分割多重化(タイム
・マルチプレクシング)された動作を行なえるようにす
るための、基礎を提供するものである。インターフェイ
スは、高速ネットワークとの間で、1回のワード周期あ
たり1個のワードしか受信ないし送信することができ
ず、しかも明らかに、受信と送信とは決して同時には行
なわれない。マイクロプロセッサ・システムとの間で行
なわれる転送の転送速度は、このネットワークとの間の
転送速度よりかなり低くなっているが、たとえ両者が等
しい速度であったとしても、インターフェイス回路の能
力にとって過大な負担となることはない。このインター
フェイスのシステムの構成は、ランダム・アクセス・メ
モリ168へのダイレクト・アクセスによって大部分の
動作が実行されるようになっており、従って内部的な処
理つまりソフトウェアが、殆んど必要とされないように
なっている。従って、このシステムが各々のワード周期
の中の連続する複数のフェイズを周期的に経過していく
につれて、複数のワードが次々に、しかも互いに衝突す
ることなく、それらのワードのための所定の複数の信号
経路に沿って進められて行き、それによって種々の機能
が実行されるようになっている。例を挙げれば、バスへ
のメッセージの送出が、マイクロプロセッサからのメッ
セージの受取りの合間に行なわれるようにし、しかもそ
れらの各々がメモリ168の異なった部分を用いて交互
に行なわれるようにすることができる。
【0142】マイクロプロセッサ・システムのデータ・
バスとネットワーク・インターフェイスとの間の相互通
信は、IO管理回路160(このIOのことを読出し/
書込み(Read/Write)と言うこともある)の中で行われ
る。マイクロプロセッサ・システムから送られてくるワ
ードをゲーティングするための書込みゲート162と、
マイクロプロセッサ・システムへワードを送り出すため
のシステム読出しレジスタ164とによって、マイクロ
プロセッサのバスと、ネットワーク・インターフェイス
へのバス・インターフェイスとの間が接続されている。
【0143】更にメモリ・アドレス・レジスタ165と
パリティ発生器/チェック回路166とが、ネットワー
ク・インターフェイス・サブシステムに組込まれてい
る。この具体例では、前記高速メモリ(=H.S.RA
M)は4Kワード×17ビットのランダム・アクセス・
メモリ168から成り、このメモリの内部的な再区分の
しかたと、このメモリの内部に設けられている複数の専
用メモリ領域部分の使用法とについては、既に説明した
とおりである。このランダム・アクセス・メモリの大き
さ(=容量)は、具体的な個々の用途における必要に合
わせて、縮小したり拡張したりすることが容易にでき
る。
【0144】受信メッセージ・バッファ管理回路170
が、マイクロプロセッサのデータ・バスに接続されてお
り、更にはメモリ168のアドレス・バスにも接続され
ている。「受信メッセージ(received messages) 」とい
う用語は、ネットワークから入力してきて循環バッファ
の中の「PUT」という格納ロケーションへ入力される
メッセージを指し示すためにに用いられることもあり、
また、この入力の後に、そのようにして循環バッファ内
へ入力されたメッセージをマイクロプロセッサへ転送す
るが、その転送のことを指し示すために用いられること
もある。このマイクロプロセッサへの転送が行なわれる
ときには、「GET」の値が、マイクロプロセッサ・シ
ステムへ転送すべき受信メッセージの取出しを実行する
に際しシステムがどのロケーションから連続した取出し
動作を行なうべきかを指定する。ランダム・アクセス・
メモリ168のアクセスに用いられる複数のアドレス値
が、GETレジスタ172、TOPレジスタ174、P
UTカウンタ175、及びBOTTMレジスタ176に
夫々入力されている。PUTカウンタ175は、BOT
TOMレジスタ176によって指定されている初期位置
から1づつインクリメントされることによって更新され
る。TOPレジスタ174は、もう一方の側の境界の指
標を与えるものである。TOPの値とBOTTMの値と
はいずれも、ソフトウェア制御によって操作することが
でき、それによって、受信メッセージ・バッファの大き
さとH.S.RAMにおける絶対格納ロケーションとの
両方を変更することが可能となっている。PUTレジス
タの内容がTOPレジスタの内容に等しくなったならば
PUTレジスタはリセットされてBOTTOMレジスタ
の内容と等しくされ、それによって、このバッファを循
環バッファとして利用できるようになっている。以上の
GETレジスタ、TOPレジスタ、BOTTOMレジス
タ、並びにPUTカウンタは、入力メッセージ用循環バ
ッファと出力メッセージ完了循環バッファとの両方を管
理するのに用いられている。
【0145】GETレジスタ172への入力はソフトウ
ェアの制御下において行なわれるが、それは、バッファ
中においてそのとき取扱われているメッセージの長さに
応じて、次のアドレス(ネクスト・アドレス)が決定さ
れるからである。GETレジスタ172、PUTカウン
タ175、並びにTOPレジスタ174の夫々の出力に
接続された比較回路178と179は、オーバラン状態
を検出及び表示するために使用されている。オーバラン
状態はGETの値とPUTの値とが等しい値に設定され
た場合や、GETの値をTOPの値より大きな値に設定
しようとする試みがなされた場合に生じる状態である。
これらのいずれの場合にも、オーバランのステータス表
示が送出されることになり、しかもこのステータス表示
はオーバラン状態が訂正されるまで送出され続けること
になる。
【0146】「受信メッセージ」循環バッファを構成し
動作させる際の、以上のような連続的な方式は、このシ
ステムに特に適した方式である。衝突(コンフリクト)
を回避するための相互チェックを可能としておくことに
よって、「PUT」をハードウェアで管理し、且つ「G
ET」を動的に管理することができるようになってい
る。しかしながら、これ以外の方式のバッファ・システ
ムを採用することも可能である。ただしその場合には、
おそらく回路並びにソフトウェアに関して、ある程度の
余分な負担が加わることになろう。ここで図34(b)
について触れておくと、メモリ168の内部に格納され
ている受信メッセージのフォーマットは更に、マップ結
果、データ長さ、並びにキー長さの形の識別データを含
んでおり、それらのデータがどのようにして得られるか
については後に説明する。
【0147】このインターフェイスの内部のDSW管理
セクション190は、転送先選択ワード・レジスタ 1
92を含んでおり、この転送先選択ワード・レジスタ1
92へは、これからアドレス・バスへ転送される転送先
選択ワード(DSW)が入力される。DSWを使用して
メモリ168の専用DSWセクションをアドレスする
と、このメモリ168からデータ・バス上へ送出された
出力がデータを返し、このデータに基づいてDSW管理
セクション190が、そのメッセージパケットが当該プ
ロセッサを転送先としたものであるか否かを判定するこ
とができるようになっている。図23及び図24から分
るように、転送先選択ワードは、2ビットのマップ・ニ
ブル(nybl)アドレスと、10ビットのマップ・ワード・
アドレスと、マップ選択のための4ビットとから成って
いる。これらのうちの「ニブル」アドレスは、メモリ1
68からのワードのサブセクションを記述するのに用い
られている。マップ選択のための4ビットは、マップ結
果比較器194へ供給され、この比較器194はマルチ
プレクサ196を介してメモリ168から関連したマッ
プ・データを受取っている。マルチプレクサ196は1
6ビットのデータを受取っており、この16個のビット
は、DSWの中に含まれているマップ・ワード・アドレ
スの10ビットによって指定されるアドレスに格納され
ている4つの異なったマップ・データ・ニブルを表わし
ている。メモリ168は、ここで行なわれる比較が容易
なように、その専用マップ・セクションが特に比較に適
した形態に構成されている。マルチプレクサ196へそ
の制御のために供給されている、DSWの中の残りの2
ビットによって、4つのマップ・ニブルのうちの該当す
る1つのマップ・ニブルが選択される。比較が行なわ
れ、その比較の結果得られたマップ・コードが、マップ
結果レジスタ197へ入力され、そしてメモリ168へ
入力されている入力メッセージの中へ挿入される。も
し、この比較の結果、選択されたマップのいずれの中に
も「1」のビットが存在していないことが判明した場合
には、「拒絶」信号が発生されて、当該プロセッサ・モ
ジュールはそのメッセージ・パケットを受取るものとし
て意図されてはいないことが表示される。
【0148】図26について説明すると、同図には、メ
モリ168の専用の転送先選択セクションを細分するた
めの好適な方法であってしかもマップ結果の比較を行う
ための好適な方法が、概略的に図示されている。各々の
マップは4096ワード×1ビットで構成されており、
更に、個別プロセッサID用セクタ、クラスID用セク
タ、及びハッシング用セクタに細分されている(図18
参照)。12個のアドレス・ビット(10ビットのマッ
プ・アドレスと2ビットのニブル)を用いて、共通マッ
プ・アドレスが選択されると、それによって各々のマッ
プから1ビット出力が得られる。(図23及び図24の
マルチプレクサとそのニブルは、図を簡明にするために
図26には示してない)。それら4つのパラレルなビッ
ト出力は、4つのANDゲートから成るANDゲート群
198において、マップ選択のための4ビットと比較す
ることができるようになっており、その結果、1つ以上
の一致が得られた場合には、ORゲート199の出力が
「真」状態になる。このマップ結果は、図23及び図2
4のマップ結果レジスタ197へ入力することができ、
それによって、そのメッセージがメモリ168に受入れ
られるようになる。以上とは異なる場合には、そのメッ
セージは拒絶され、NAKが送信されることになる。
【0149】コマンド・ワード管理セクション200
は、コマンド・ワードを受取るコマンド・レジスタ20
2を含んでいる。コマンド・ワードのTNフィールド
は、それを用いてアドレス・バスをアクセスすることが
でき、そのアクセスによって、指標とされている受信T
Nが調べられて適当な応答メッセージが決定される(図
30参照)。更には、「マージ開始」コマンドが実行さ
れているときには、TNフィールドからPTNR(現在
トランザクション・ナンバ・レジスタ)206へのデー
タ転送経路が確保されており、これは、「マージ開始」
コマンドに合わせてPTN(現在トランザクション・ナ
ンバ)の値を変更できるようにするためである。
【0150】メモリ168へ入力された入力メッセージ
は、図34に関して説明すると、アドレス・ベクタを利
用できるようにするために、データ・フィールドやキー
・フィールドが用いられている場合にはそれらのフィー
ルドの長さ値をも含むものとなっている。それらの長さ
値は、受信データ長さカウンタ210と受信キー長さカ
ウンタ211とによって求められ、これらのカウンタの
各々は、入力ソースから夫々のカウンタに該当するフィ
ールドが提供される際に、それらのフィールドに含まれ
ている一連のワードの個数を数えるようになっている。
【0151】更には、送信メッセージ管理セクション2
20が用いられており、このセクションは、処理済のパ
ケットをメモリ168に格納するための受入れ機能と、
それらの格納されたパケットを後刻ネットワークへ送出
する機能とを包含している。このセクション220は、
送信トランザクション・ベクタ・カウンタ222、送信
データ長さカウンタ224、及び送信キー長さカウンタ
226を含んでおり、これらのカウンタはデータ・バス
に、双方向的に接続されている。送信トランザクション
・ベクタ・カウンタ222はアドレス・バスに接続され
ており、一方、送信データ長さカウンタ224はアドレ
ス発生器228に接続されていて、このアドレス発生器
228が更にアドレス・バスに接続されている。出力バ
ッファ・セクションと図18の出力メッセージ完了ベク
タ・セクションを構成する循環バッファとの両方を用い
てメッセージの送出が行なわれる。ただしこの具体例で
は、複数のメッセージ・パケットが逐次入力された後
に、それらが今度はベクタによって定められた順序で取
出されるようになっている。
【0152】このインターフェイスの内部においては、
独立した夫々の動作フェイズが、互いに排他的な時間に
実行されるようになっており、このような時分割方式を
採用したことによって、メモリ168は、ネットワーク
のクロック速度でネットワークからのメッセージ・パケ
ットを受取って供給することと、内部的な動作を効率的
な高い速度で実行することと、それ自身の遅いクロック
速度で非同期的に動作しているマイクロプロセッサ・シ
ステムとの間で通信を行なうこととが、可能とされてい
る。様々なカウンタやレジスタへ向けたメッセージのゲ
ーティング動作を制御するために、位相制御回路が制御
ビットに応答して動作しており、制御ビットは、コマン
ド、DSW、データ、それにメッセージ内の個々のフィ
ールドを示すその他の信号を発生するものである。送信
状態制御回路250、受信状態制御回路260、並びに
R/W(読出し/書込み)状態制御回路270は、クロ
ック・パルスを受取り、データ内のフィールドを識別
し、そして、送信、受信、それにプロセッサのクロック
動作が行なわれている間の、データの流れのシーケンシ
ングを制御するものである。
【0153】このインターフェイスの制御は3つの有限
状態マシン(FSM)によって行われ、それらのFSM
は、その各々が送信フェイズ、受信フェイズ、及びプロ
セッサ(R/W)フェイズのためのものである。それら
のFSMは、プログラマブル・ロジック・アレイ(PL
A)、状態レジスタ、並びにアクションROMを使用し
て、一般的な方式で構成されている。各々のFSMは、
ネットワークのクロック・サイクルの1回ごとに1つ次
の状態へ進められる。発生すべき制御信号の数が多いた
め、PLAの出力はさらにアクションROMによって符
号化される。当業者には容易に理解されるように、ネッ
トワークの動作のために必然的に必要となる、FSMモ
ード用に書かれ、それゆえ一般的な細部構造と動作とを
もつ制御シーケンスの翻訳は、仕事量こそ多いものの単
純なタスクである。
【0154】図28及び図29、図31及び図32の状
態ダイアグラムと図30のマトリクス・ダイアグラムと
を添付図面中に含めてあるのは、かなり複雑なシステム
に採用することのできる内部構造設計上の特徴に関す
る、包括的な細目を提示するためである。
【0155】図28及び図29は受信フェイズに関する
図、図31及び図32は送信フェイズに関する図であ
り、これらの図において用いられている表記法は、この
明細書及び図面の他の場所で用いられている表記法に対
応している。例えば次の用語がそうである。
【0156】 RKLC = Receive Key Length Counter (受信キー長さカウンタ) RDLA = Receive Data Length Counter (受信データ長さカウンタ) RNDR = Receive Network Data Word Register (受信ネットワーク・データ・ワード・レジスタ) PUTC =Put Counter (PUTカウンタ) GETR =Get Register (GETレジスタ) 従って状態ダイアグラムは、図23及び図24及び明細
書と対照させて参照すれば、略々説明なしでも理解する
ことができる。それらの状態ダイアグラムは、複雑なメ
ッセージ管理並びにプロセッサ相互間通信に関わる、様
々なシーケンスと条件文とを詳細に示している。図28
及び図29において、「応答を発生せよ」と「応答を復
号せよ」とのラベルが書込まれている夫々の状態、並び
に破線の長方形で示されている夫々の条件文は、図30
のマトリクス・ダイアグラムに記載されている、指定さ
れた応答及び動作に従うものである。図30は、所与の
TNに関するプライマリ・メッセージとレディネス状態
との任意の組み合わせに対し、発生される応答と実行さ
れる動作との両方を示すものである。当然のことである
が、正常なシステムの動作がなされているときには、あ
る程度のメッセージの拒絶はあるものの、エラー状態は
まれにしか発生しない。
【0157】図28及び図29と図31及び図32のい
ずれにおいても、条件判断に関しては、その多くのもの
が複数の判断を同時に実行することができるようになっ
ているが、これに対して状態ステップの方は、1つづつ
変更されていくようになっている。いずれの場合におい
ても、送信動作と受信動作とは外部からの制御を必要せ
ずに定められた進行速度で進められて行く動作であり、
それは、メッセージの構成とネットワークの動作方式と
が既に説明したようになっているためである。
【0158】典型的なプロセッサ・システムやマルチプ
ロセッサ・システムにおいて採用されている多くの特徴
には、本発明に密接な関係を持ってはいないものがあ
り、従ってそれらについては特に記載しない。それらの
特徴の中には、パリティ・エラー回路、割込み回路、そ
れに、ワッチドッグ・タイマや極めて多様な記験機能等
の活動をモニタするための種々の手段等がある。
【0159】ここで、本願発明に係るシステムにおいて
複数のタスクを同時に取り扱う場合について、これまで
の記載を総括する。
【0160】本願発明に係るコンピューティグ・システ
ムを構成する各プロセッサ間で送受信される全てのメッ
セージは、第13図に示すようなメッセージ・フォーマ
ットから成り、図13A及びBに示すとおり、その先頭
部分には6ビットのコマンド・コード及び10ビットの
タグ・フィールドから成るコマンド・ワードを有する。
さらに、第21図に示すように、10ビットの該タグ・
フィールドにおいては、メッセージが、一次メッセージ
であればトランザクション・ナンバ(TN)を、その一
次メッセージに対する応答メッセージであれば発信元I
D番号(OPID)を必ず持つ。あるタスクを所定(単
数又は複数)のプロセッサに処理させるために通信ネッ
トワークに送出されるメッセージは一次メッセージであ
り、該タスクはこのTNという識別番号により同定され
ることとなる。各プロセッサにおいて使用される予定の
複数のTN値は、各構成プロセッサにおける高速RAM
(H.S.RAM)中の所定アドレス(図18において
はH.S.RAMにおける0400乃至0500)に通
常初期設定される。また該TN値は、一次メッセージと
して所定の指令コード(コマンド・コード)により、途
中で新たなTNを割り当てたり、放棄することができる
(第21図)。
【0161】一次メッセージは、TNの他、さらに該メ
ッセージが受信されるべき単数又は複数の転送先プロセ
ッサを直接的又は間接的に指示するための転送先選択ワ
ード(DSW)を有する(第13図A及びB)。従っ
て、TN、DSW及びコマンド・コードを様々に組み合
わせて使用することにより、システム内相互通信機能の
広範な融通性が達成され得るのである。一次メッセージ
は大きく2種類に分類される。一つは、あるタスクを分
散処理させるため又はあるタスクのデータを伴う処理結
果を他のプロセッサに伝送するためのものであり、可変
長データのキーフィールド・データ・メッセージとデー
タ・フィールドを有する「データ・メッセージ」(第1
3図A、第21図)と呼ぶ。他の一つは、該タスク・メ
ッセージの処理結果のステータスを問い合せたり、該タ
スク・メッセージの送信前に新たなTNを割り当てたり
または使用済みのTNを放棄したり、前記ステータスの
問い合せの結果ある特定のTNに係るタスク処理に関連
する全プロセッサから肯定的応答を受信した場合に、該
処理結果を一斉に送信すべき旨の指令であるマージ開始
若しくはその停止を指示するための「制御/ステータス
・メッセージ」(第13図B、第21図)である。本実
施例においては、第21図に示すように、それぞれ異な
った特定のTN値を割り当てた前記データ・メッセージ
(一次メッセージ)の送出に11個の指令コード(「1
1」乃至「1B」)を同時に使用できるようにしてい
る。
【0162】前記データ・メッセージまたはステータス
・メッセージの如何に拘わらず自己宛に送出されてきた
最終の一次メッセージのコマンド・コード内のタグ部分
に記載されているTNが現在TNとして扱われ、この値
は各プロセッサにおけるネットワーク・インターフェイ
ス(第18図及び第23図及び24図)内の現在TNカ
ウンタ(206)内においてインターフェイス自身によ
り更新・格納される。システム内の各構成プロセッサ
は、複数のタスク処理に関連していたとしても、上述の
とおり、一次メッセージには必ずTNを含むので、これ
により如何なるタスクに係る制御若しくはステータス応
答が要求されているのかを認識でき、要求されたTNに
係る応答を応答メッセージのフォーマット(第13図
C、第21図の指令コード「00」乃至「0F」)で送
出する。応答メッセージに係る指令コードは一次メッセ
ージに係る指令コードよりも若い数値であるから、ネッ
トワーク内において優先的に伝送され、その発信元はO
PIDによって特定される。
【0163】第18図のブロック図に示すように、各ス
テーションにおいては、ネットワーク・インターフェイ
ス120は、プロセッサモジュール103とは別個に、
能動ロジック・ネットワークと同期して動作しており、
全二重通信構成の通信ネットワークから送られてきたメ
ッセージはH.S.RAMの所定アドレスに順次格納さ
れる。また、同インターフェイスは、受信と共に所定の
TNに係る応答を該ネットワークのタイミング(第17
図)で送出するのである。ステータス要求等を受けた場
合は、現在TNに係る応答メッセージの送出を最優先す
る。各ステーションにおけるプロセサ・モジュール10
3は、該ステーション内のH.S.RAM内に格納され
ているメッセージを順次自己のメインRAM107内に
取り込み、必要な処理若しくは検索を行いその結果を出
力メッセージとして前記H.S.RAM内の所定アドレ
スに順次格納しておく。このように、プロセッサ・ムジ
ュール103は、ネットワークからのメッセージの受信
及び該メッセージのH.S.RAM内への格納及び処理
結果若しくは応答メッセージのネットワークへの送出制
御には直接関係せず、これらはネットワーク・インター
フェイスが担当している。
【0164】ネットワーク・インターフェイス120、
H.S.RAM26及びプロセッサ・モジュール103
相互間は、時分割バス(第25図)によって接続されて
いるので、ネットワークと同期して動作する該インター
フェイス120とプロセッサ・モジュール103はそれ
ぞれ独自のタイミングで動作している。つまり、それぞ
れが相手の動作に関わり合うことなくHS・RAMをア
クセスすることができるのである。H.S.RAM内に
格納されているDSW,TN、データメッセージ・ポイ
ンタ及び応答ディレクトリの初期設定、割り振り、変更
等は、ネットワークを介して他のプロセッサが行うこと
ができるし、当該ステーション内のプロセッサ103か
らのアクセスにより行うこともができる。
【0165】このように、システムを構成する各ステー
ションは、同時に複数のタスク処理に関連していたとし
ても、受信した一次メッセージ内のTNに基づいて、該
一次メッセージが如何なるタスクに係る処理、検索若し
くはステータス応答を要求されているのかを認識でき、
要求されたTNに係る応答を所定の応答メッセージのフ
ォーマットにて発信元IDを付して応答できるのであ
る。該一次メッセージの発信元プロセッサはこれらの応
答メッセージがどのプロセッサから送られてきたかを該
発信元IDにより認識するのである。
【0166】このように、あるプロセサが所与のタスク
に対して同一のTNを付した複数のサブタスクを一次メ
ッセージとしてDSWにより指定した関連プロセッサに
伝送して該サブタスクの処理を各々の関連プロセッサに
割り当てる場合、それぞれの関連プロセッサのステータ
ス問合わせ(ステータス・リクエスト)及び処理結果の
送出要求(マージ開始)等は、すべて該サブタスクに付
されたTNを付して行われる。各ステーションにおいて
は自己に割り当てられたサブタスクの処理を行い、ステ
ータスと共に自己のH.S.RAM内の所定アドレスの
メモリ(循環バッファ)に格納しておく。特定のTNに
係るステータス応答又は処理結果送出のリクエストを受
けた場合は、各ステーションにおけるネットワーク・イ
ンターフェイス120は該TNを現在TN(PTN)と
して、該TNに係る応答又は処理結果をネットワーク手
段50に一斉に送出する。ネットワーク手段に送出され
た応答又は処理結果はネットワーク内のノードを通過す
る毎に優先権プロトコル(第2図乃至第12図)に従っ
て選択(ソート)され、該サブタスク処理の要求元プロ
セッサには、該TNに係るサブタスクの処理結果がその
メッセージ・コードの優先度の高い順に連続して(マー
ジされて)送信されてくることとなる。当該処理結果
は、該ステーションにおけるネットワーク・インターフ
ェイス120にて、H.S.RAM内の所定範囲のアド
レスに一連の処理結果として格納される。
【0167】(システムの動作の具体例) 以下に説明するのは、図1、図18、図23、及び図2
4を総合したシステムが、ネットワーク及びH.S.R
AMと協働しつつ種々の動作モードで内部的にどのよう
に働くかを示す幾つかの具体例である。それらの具体例
は、優先順位規定と、ここで採用されているアドレッシ
ング方式と、トランザクション・アイデンティティとの
間の相互関係が、どのようにして局所的制御と大域的相
互通信との両方の機能を提供するのかを示すものであ
る。
【0168】プライマリ・データ・メッセージの送受信 ここでは、その他の図に加えて更に図27についても説
明するが、図27は、プライマリ・メッセージの最終的
な受入れに関わる諸状態の、簡略化した状態ダイアグラ
ムである。メッセージがバッファ或いはメモリに受信さ
れても、図示の論理的状態が満たされないうちは、受入
れ(アクセプタンス)が達成されたことにはならない。
図ではイベント(事象)のシリアルな列として示されて
いるが、本来は複数の判定がパラレルに、即ち同時に行
なわれるようになっており、それは、夫々の条件が互い
に関与しないものであったり、或いは、ある動作段階へ
達するための中間段階の飛越しが、回路によって行なわ
れたりするためである。
【0169】図1のネットワークの上のメッセージは、
図23及び図24の受信ネットワーク・データ・レジス
タ146の中を、EOM状態が識別されるまでの間通過
させられ、その状態が識別されたときに、メッセージが
完了したことが認識される。「ロック(LOCK)」状態が
存在している場合には、システムは図18のH.S.R
AM26" の中の応答ディレクトリを参照して、NAK
/LOCK拒絶メッセージを送出する。
【0170】そうでない場合、即ち「ロック」状態が存
在していない場合には、システムはマップ比較チェック
へ移り、このチェックは図23及び図24に示したイン
ターフェイスの中のDSW管理セクション190の内部
で実行される。「マップ出力=1」で表わされる、適切
な比較結果が存在している場合には、システムはそのメ
ッセージを受信し続けることができる。そのような比較
結果が存在していない場合には、そのメッセージは拒絶
され、NAPが送出される。
【0171】該当するマップが判定されたならば、それ
によってシステムはTNステータスを検査する準備が整
ったことになり、このTNステータスの検査は図18に
示されているTNのディレクトリを参照することによっ
て行なわれる(ここでTNステータスとは厳密には所与
のTNに関するプロセッサのステータスのことであり、
従ってH.S.RAM内のTNアドレスに格納されてい
るエントリによって表わされているレディネス状態のこ
とである)。更に詳しく説明すると、このTNステータ
スの検査は、局所的ステータス(=個々のプロセッサ・
モジュールのステータス)が「受信準備完了」であるか
否かを判定するために行なわれる。ここでは、先行する
あるプライマリ・メッセージによってTNの割当てが既
になされているものと仮定している。
【0172】この検査の結果、TNが「実行終了(don
e)」状態、「非関与プロセッサ」状態、または「イニ
シャル」状態のいずれかのステータスであることが判明
した場合には、「NAP」拒絶メッセージが送出される
(ここでTNといっているのは、厳密にはH.S.RA
M内のTNアドレスに格納されているエントリのことで
あるが、以下、混同のおそれのない限りこのエントリの
ことも単にTNと称することにする)。もしこの判明し
たステータスが、他の規定外の状態であったならば、送
出される拒絶メッセージは「NAK/TNエラー」であ
り、以上の2つのタイプの拒絶メッセージもまた、図1
8の応答ディレクトリから取り出される。ステータスが
「受信準備完了」であったならば、更にもう1つの別の
判定が行なわれることになる。
【0173】このもう1つの別の判定とは、「入力オー
バラン」に関するものであり、この判定は、既に説明し
たように、図23及び図24の入出力管理バッファ・セ
クション170の内部において、GETアドレスとPU
Tアドレスとを比較することによって行なわれる。更に
はトランザクション・ナンバも、受信メッセージ・カウ
ントの値がゼロでないかどうかについて検査され、この
カウント値がゼロであれば、それは、同じく入力オーバ
ランを表示しているのである。オーバラン状態が存在し
ている場合には、「NAK/入力オーバラン」が送出さ
れてそのメッセージは拒絶される。
【0174】以上のすべて条件が満足されていたなら
ば、H.S.RAM26" 内の応答ディレクトリから
「ACK」メッセージ(肯定応答メッセージ)が取り出
されてネットワーク上へ送出され、他のプロセッサ・モ
ジュールとの間で優先権が争われることになる。それら
の他のプロセッサ・モジュールのうちには、同じように
受信メッセージに対する肯定応答を送出したものもある
かもしてない。この時点で、もしネットワークから受取
る共通応答メッセージ(この「共通」とはマージされた
という意味である)が「ACK」メッセージであって、
従って、受信プロセッサ・モジュールとして選択された
「全ての」プロセッサ・モジュールが、先に受信したメ
ッセージの受入れが可能であることが明示されている場
合には、その受信メッセージの受入れがなされる。もし
この応答が「ACK」以外のいずれかの形であれば、先
の受信メッセージは「全ての」プロセッサから拒絶され
る。
【0175】受信並びに応答についてのこの具体例にお
いては、プライマリ・メッセージが受信された後には、
全てのプロセッサが、ACK応答、NAK応答、及びN
AP応答のうちのいずれか1つを発生することに注目さ
れたい。プロセッサは、これらの応答メッセージのうち
のいずれか1つを受取ったならば、その直後にプライマ
リ・メッセージの伝送を試みることができる。(プロセ
ッサは、この伝送の試みを、ネットワークを通り抜ける
ための合計待ち時間相当の遅延に等しいかまたはそれよ
り大きい遅延の後に行なうこともでき、それについては
既に「能動ロジック・ノード」の章で説明したとおりで
ある)。もう1つ注目して頂きたいことは、もし、幾つ
かのプロセッサが互いに「同一の」メッセージを送信し
たならば、結果的にそれらのメッセージの全てがネット
ワーク上の競合を勝ち抜いたことになることも、あり得
るということである。その場合には、それらの送信プロ
セッサの「全て」がACK応答を受取ることになる。こ
のことは、後出の具体例で詳細に説明する、ブロードカ
スト(一斉伝送)及び大域的セマフォ・モードの動作に
関して重要である。
【0176】実際に使用されている本発明の実機例は、
これまでに説明したものに加えて更により多くの種類の
応答を含むと共に様々な動作を実行するようになってい
る。図30はそれらの応答と動作とを、LOCK、TN
エラー、及びオーバランの各割込み状態、予め識別され
ている9つの異なったステータス・レベル、それに肯定
応答(ACK)及び非該当プロセッサ応答に対するもの
として、縦列に並べた各項目で示している。
【0177】あるプロセッサ・モジュールがメッセージ
の送信準備を完了したときには、図23及び図24のP
TNレジスタ206に格納されているPTN値は使用可
能状態となっており、従って必要とされるのはTNステ
ータスが「送信準備完了」状態にあることの確認だけで
ある。図22から分るように、「送信準備完了」のエン
トリ(記述項)は、出力メッセージのためのネクスト・
メッセージ・ベクタ・アドレスを含んでいる。アセンブ
ルが完了した出力メッセージはネットワーク上へ送出さ
れ、そしてもし競合に敗退したならば、PTNが途中で
変更されない限り、伝送が成功するまでこの送出動作が
反復され、そして成功したなら応答を受取ることにな
る。伝送が成功して肯定応答を受取ったならば、アドレ
ス・ベクタが変更される。ネクスト・メッセージ・ベク
タが、現在メッセージの中の第2番目のワード(図34
(a))から取り出され、このワードは送信トランザク
ション・ベクタ・カウンタ222からランダム・アクセ
ス・メモリ168へ転送される。出力メッセージ・セク
ションがオーバラン状態になければ、PUTカウンタ1
75が「1」だけ進められ、このオーバラン状態は、P
UTがGETに等しくなることによって表示される。
尚、送信トランザクション・ベクタ・カウンタ222か
ら転送されるネクスト・メッセージ・ベクタは、H.
S.RAMの中の現在トランザクション・ナンバ・レジ
スタ206によって指定されているトランザクション・
ナンバ・アドレスへ入力される。もし、この新たなTN
が「送信準備完了」状態のものであれば、この入力され
たベクタの値は、再び、このトランザクション・アイデ
ンティティに関係している次のメッセージ(ネクスト・
メッセージ)の格納位置を指し示している。H.S.R
AMの中に格納されている出力メッセージのフォーマッ
トについては、図34を参照されたい。
【0178】ただし、メッセージを送出する際のメッセ
ージ管理には、PTNの内部的な、或いは外部からの変
更をはじめとする、多くの異なった形態の動作を含ませ
ておくことができる。エラー状態、オーバラン状態、な
いしロック状態によって、システムがトランザクション
・ナンバを「TN0」にシフトするようにしておくこと
ができ、このシフトによって、システムはノン・マージ
・モードに復帰し、そして「TN0」におけるステータ
スの検査を、「送信準備完了」状態が識別されるか或い
は新たなTNの割当てがなされるまで、続けることにな
る。かなり複雑な具体例に採用することのできる状態並
びに条件を示したものとして、図31及び図32のフロ
ーチャートを参照されたい。
【0179】出力メッセージ完了バッファの例 メッセージの伝送の完了が「ロック(LOCK)」を除いた
その他の任意の応答メッセージによって明示されたなら
ば、新たに完了した出力メッセージ・バッファを指し示
すポインタが、H.S.RAMの出力メッセージ完了循
環バッファ・セクション(図18参照)に格納される。
このポインタは、上記出力メッセージ・バッファのアド
レスを表わす単なる16ビット・ワードである。(出力
メッセージ・バッファのフォーマットは図34に示され
ている。出力メッセージ・バッファには、ネットワーク
から受取った応答メッセージを記録する場所が含まれて
いることに注目されたい)。
【0180】出力メッセージ完了循環バッファは、ネッ
トワーク・インタフェースのハードウェア120と、マ
イクロプロセッサ105の上に置かれた監視プログラム
との間の、通信の機能を果たすものである。このマイク
ロプロセッサの中に備えられているプログラムは、これ
から出力されるメッセージをH.S.RAMの中に格納
する。これに続く次の例で詳細に説明するが、複数の出
力メッセージを一緒に鎖状に連結し(チェーンし)、し
かもその際、TNがこの鎖(チェーン)の先頭のポイン
タとして働くようにすることができ、これによって作業
の複雑なシーケンスを形成することができる。その他の
特徴としては、ネットワークを複数のTNの間で多重化
即ち時分割(マルチプレクシング)することができるた
め(これについても後に詳述する)、ネットワーク内の
諸処に存在する様々な事象に応じた種々の順序でメッセ
ージを出力することができる。
【0181】更にまた、伝送に成功したパケットによっ
て占められていたH.S.RAM内の格納空間を迅速に
回復し、それによってその格納空間を、これから出力さ
れる別の出力パケットのために再使用できるようにする
ことが重要である。出力メッセージ完了循環バッファ
が、この機能を果たしている。
【0182】あるデータ・メッセージの送信が成功裏に
終了して「ロック」応答以外の応答を受信したならば、
ネットワーク・インターフェイスは、H.S.RAM内
の「0510(16進数)」に格納されているPUTポ
インタ(図20参照)を「1」だけ進め、また、この送
信が完了したばかりの出力メッセージの先頭のワードの
アドレスをPUTレジスタ内のアドレスへ格納する。
(PUTポインタの値が「0512(16進数)」に格
納されているTOPポインタの値より大きくなると、P
UTポインタは「0513(16進数)」に格納されて
いるBOTポインタ(=BOTTOMポインタ)と同じ
になるように最初にリセットされる)。PUTポインタ
がGETポインタ(格納位置「0511(16進
数)」)より大きくなるようならば、循環バッファが、
オーバランしているのであり、そのため「エラー割込
み」がマイクロプロセッサへ向けて発生される。
【0183】マイクロプロセッサの内部で実行されてい
るソフトウェアによって、GETポインタが指示してい
る出力メッセージ・バッファが非同期的に調べられる。
プロセッサは、実行を要求された何らかの処理を完了し
たならば、GETポインタを「1」だけ進める(このG
ETの値は、TOPの値より大きくなるとBOTの値に
リセットされる)。GET=PUTとなっている場合に
は、処理せねばならない出力メッセージはもはや存在し
ていない。そうでない場合には、更に別の出力メッセー
ジが成功裏に送信を完了した状態にあるので、それらの
出力メッセージを処理せねばならない。この処理には、
H.S.RAMの出力バッファの格納空間を空きスペー
スに戻すことが含まれており、従ってこのスペースを他
のパケットのために再使用することできる。
【0184】ここで注目しておくべき重要なことは、出
力メッセージ完了循環バッファと入力メッセージ循環バ
ッファとは互いに別個のものであり、そのためこれら2
つの循環バッファは、夫々が別々のPUT、GET、T
OP、及びBOTの各ポインタによって管理されている
ということである。構成のしかたによっては、図23及
び図24に示されているように、これら両方の循環バッ
ファが、循環バッファ管理ハードウェア170を共用す
るようにもできるが、そのような構成が必須なわけでは
ない。
【0185】初期設定の手順 各プロセッサ・モジュールは、そのプロセッサ・モジュ
ール自身の高速ランダム・アクセス・メモリ168(図
23及び図24)の内部のTNをアクセスする機能を備
えており、このメモリ168には、潜在的に使用可能な
複数のTNの、そのディレクトリが含まれている。ただ
し、割当てられていないTNは、そのTNに関連付けら
れている格納位置に格納されているトランザクション・
ナンバ値によって、割当てられていない旨が明確に表示
されている。従って、マイクロプロセッサ・システム1
03は、割当てられていないトランザクション・ナンバ
を識別し、そしてそれらのうちの1つを、所与のトラン
ザクション・アイデンティティに関して他のプロセッサ
・モジュールとの間の通信を開始するのに使用するため
に選択することができる。
【0186】トランザクション・ナンバは、ローカル・
マイクロプロセッサ(=プロセッサ・モジュール内のマ
イクロプロセッサ)の制御の下に、局所的に割当てられ
且つ更新されるが、ネットワーク内の全域における大域
的制御は、「TN放棄命令」及び「TN割当命令」とい
うプライマリ制御メッセージを用いて行なわれる。同一
のTNを要求する可能性のある互いに競合する複数のプ
ロセッサ・モジュールの間にデッドロック状態が発生す
ることは決してなく、そのわけは、ネットワークが、よ
り小さな番号を付けられているプロセッサの方に優先権
を与えるからである。そのTNを得ようとしたプロセッ
サのうちで優先権を得られなかった残りのプロセッサは
「NAK/TNエラー」応答を受取ることになり、この
応答は、それらのプロセッサが別のTNを確保すること
を試みなければならないということを表示するものであ
る。従って、それらのトランザクション・アイデンティ
ティの確保並びに照合を、システムの内部で及び局所的
に行なう際の、完全なフレキシビリティが得られてい
る。更に注目して頂きたいことは、TNの反復使用は、
「TN0」である基本伝送モードと、TNがゼロより大
きいマージ・モードとの間の、シフトによって行なわれ
ているということである。従ってこのシステムは、ただ
1回のTNのブロードカスト式の伝送によって、その動
作の焦点だけでなくその動作の性質をも変えることがで
きる。
【0187】大域的ステータスの変化を伝達するための
更に別の、そして特に有用な方式は、図14に関して既
に説明した強制パリティ・エラーの伝播である。この独
特の表示方式は、その他の伝送の間にはさみ込まれて伝
送されると、中止されたシステム資源が調査され、そし
て適切な動作が実行されることになる。
【0188】プロセッサ対プロセッサ通信 プロセッサ通信として、2種類の特別の形態のものがあ
り、その一方は特定の1つの転送先プロセッサへ向けて
行なわれる通信であり、他方は、1つのクラスに属する
複数のプロセッサを転送先として行なわれる通信であ
る。これらの両タイプの伝送はいずれもDSWを利用し
ており、また、これらの伝送はいずれも、ノン・マージ
・モードのブロードカストによって実行される。
【0189】特に1つの発信元プロセッサと1つの転送
先プロセッサとの間での通信を行なう際には、DSWの
中に転送先プロセッサ識別情報(destination processo
r identification:DPID)を入れて使用する。図1
8を参照しつつ説明すると、このDPIDの値を用いて
各々の受信プロセッサ・モジュールのH.S.RAM2
6" の選択マップ部分がアドレスされると、転送先とし
て意図された特定のプロセッサ・モジュールだけが、肯
定的な応答を発生してそのメッセージを受入れる。肯定
応答が送信され、しかもそれが最終的に成功裏に受信さ
れたならば、両者のプロセッサは、要求されている将来
の動作のいずれでも実行できる状態になる。
【0190】ある1つのメッセージを、ある1つの制御
プロセスに関係する、1つのクラスに属する複数のプロ
セッサが受信すべき場合には、DSW内のマップ・ニブ
ルとマップ・アドレスとによって、H.S.RAMの選
択マップ部分の中の対応するセクションが指定される。
そして、全ての受信プロセッサが夫々に肯定応答を送出
し、それらの肯定応答は、発信元プロセッサ・モジュー
ルへ到達するための競合を、この通信のための往復送受
信が最終的に完了するまで続けることになる。
【0191】全域ブロードカスト・モードのプロセッサ
通信は、プライマリ・データ・メッセージ、ステータス
・メッセージ、制御メッセージ、並びに応答メッセージ
の、各メッセージの通信に用いることができる。優先順
位プロトコルと、優先権を付与する機能を備えたネット
ワークとの、両者の固有の能力によって、その種のメッ
セージをその他の種類のメッセージのシーケンスの中に
容易に挿入できるようになっている。
【0192】ハッシング・モードのプロセッサ選択は、
リレーショナル・データベース・システムにおけるデー
タ処理のタスクを実行する際には、他から飛び抜けて多
用されるプロセッサ選択方式である。一次的データ(=
バックアップ用ではないメインのデータ)についての互
いに素の(=同一の要素を共有しない)複数のデータ部
分集合と、バックアップ用データについての互いに素の
複数のデータ部分集合とが、適当なアルゴリズムに従っ
て、異った複数の二次記憶装置の中に分配されてい
る。1つのプロセッサが一次的データの部分集合を分担
し別の1つのプロセッサがバックアップ用データの部分
集合を分担しているためにそれら2つのプロセッサが同
時に応答した場合には、一次的データについてのメッセ
ージの方に優先権が与えられる。この条件が補償される
ようにするためには、優先順位のより高いコマンド・コ
ード (図22参照)を選択するようにすれば良い。デ
ータベースの信頼性及び完全性の維持も、以上の様々な
マルチプロセッサ・モードを利用することによって達成
され、その場合、発生した個々の状況に対して最も有利
なようにそれらのモードが適用される。例を挙げるなら
ば、一次的データのある部分集合を分担している二次記
憶装置が故障した場合には、特別のプロセッサ対プロセ
ッサ通信を利用してそれを更新することができる。また
エラーの訂正やデータベースの一部分のロールバック
は、これと同様の方式で、或いはクラス・モードで動作
させることによって、行なうことができる。
【0193】トランザクション・ナンバの例 トランザクション・ナンバという概念により、マルチプ
ロセッサ・システムの制御のための新規にして強力なハ
ードウェア機構が得られている。本システムにおいて
は、トランザクション・ナンバは「大域的セマフォ」を
構成しており、また、ネットワークに対するメッセージ
の送受信と、複数のプロセッサに分配されたある1つの
所与のタスクのレディネス状態の確認との夫々におい
て、重要な役割りを果たしている。
【0194】トランザクション・ナンバ(TN)は、
H.S.RAM26の中の16ビット・ワードとして物
理的に実現されている。このワードは、様々な機能を果
たせるように、図22に示すようなフォーマットとされ
ている。TNはH.S.RAMに格納されるため、マイ
クロプロセッサ105とネットワーク・インターフェイ
ス120とのいずれからもアクセスすることができる。
【0195】大域的セマフォ 「セマフォ」という用語は、コンピュータ科学関係の文
献において、互いに非同期的に実行される複数の処理の
制御に用いられる変数を指し示すための用語として、一
般的に使用されるようになっている。セマフォは、中断
されることのない 1回の操作でそれを「テスト・アン
ド・セット」することができるという性質をもってい
る。
【0196】一例として、「アンアサインド(UNASSIGN
ED:割当てがなされていない状態)」と、「アサインド
(ASSIGNED:割当てがなされている状態)」との2つの
状態を取り得るセマフォ変数について考察することにす
る。この場合には、テスト・アンド・セット動作は次の
ように定義される:もしセマフォが「アンアサインド」
状態にあったなら ば、そのセマフォを「アサインド」
状態にセットして成功を表示すること;反対にセマフォ
が既に「アサインド」状態にあったならば、そのセマフ
ォを「アサインド」状態のままにしておいて「失敗」を
表示すること。従って、このセマフォに拠れば、セマフ
ォのテスト・アンド・セットに成功した処理は自らのタ
スクを続行することができ、一方、それに失敗した処理
は、そのセマフォが 「アンアサインド」状態にリセッ
トされるのを待つか、或いは、等価の別の資源を制御し
ている別のセマフォをテスト・アンド・セットすること
を試みるかの、いずれかを余儀なくされる。容易に理解
できることであるが、仮にテスト・アンド・セット動作
が中断されるようなことがあり得るとするならば、2つ
の処理が同時に同じ資源にアクセスしてしまう可能性が
生じ、それによって予測することのできない誤った結果
が生じてしまうおそれがある。
【0197】
【00180】いかなるマルチプロセッサ・システム
も、システムの資源へのアクセスを制御するために、セ
マフォと同一視することのできる概念を、ハードウェア
によって実際に具体化している。しかしながら、従来の
システムは、1コピーのセマフォ(=部数が1部のセマ
フォ、即ち1箇所だけに設けられるセマフォ)しか維持
することができない。そこで、複数コピーのセマフォ
(=部数が複数のセマフォ、即ち複数箇所に設けられる
セマフォ)を、各プロセッサに1コピーづつ設けて維持
するようにすれば、単にテストするだけのセマフォのア
クセスのために競合が発生する回数を低減するという目
的と、後に説明するその他の用途に多価のセマフォ変数
を利用するという目的との、双方のために望ましい。問
題は、セマフォの多数のコピーに対し、完全に同期した
操作を加えねばならないということであり、もしこのこ
とが守られなかったならば、それを強化するためにセマ
フォが設けられているところの、資源へのアクセスの完
全性が失われてしまうことになる。
【0198】複数コピーのセマフォ、即ち「大域的」セ
マフォは、本システムによって提供される。次に示す表
は、大域的セマフォに関する動作を、単一セマフォ(1
コピーのセマフォ)と対比したものである。
【0199】
【表1】 本実施例のシステムにおいては、「TN割当(ASSIGN T
N )」コマンドと「TN放棄(RELIN-QUISH TN)」コマン
ドとが、大域的セマフォとして利用されているトランザ
クション・ナンバに対するテスト・アンド・セット機能
とリセット機能とを夫々に担っている。図22について
説明すると、「NAK/TNエラー」応答が失敗を表示
し、一方、「SACK/アサインド」応答が成功を表示
する。
【0200】複数のノードを同期してクロッキングする
ために用いられている同期クロッキング方式や、全ての
プロセッサへ同時に最優先パケットを伝送するブロード
カスト動作をはじめとする、このネットワークの特質
は、大域的セマフォという概念を実際に具体化する上で
の基礎を成すものである。この概念が実施されているた
めに、このシステムは所望のシステム資源の複数のコピ
ーの、その割付け(アロケーション)、割付け解除(デ
アロケーション)、並びにアクセスの制御を、単にその
資源にTNを付与することによって行なえるようになっ
ている。ここで注目すべき重要なことは、分散された資
源の制御を、単一セマフォの場合と略々同程度の小規模
なソウトウェア・オーバヘッドで、実行できるようにな
っているということである。このことは従来のシステム
に対する非常な進歩であり、なぜならば、従来のシステ
ムは、分散型の資源を管理できないか、或いは、複雑な
ソフトウェアによるプロトコルが必要とされ且つハード
ウェア的なネックを生じてしまうかの、いずれかだから
である。
【0201】レディネス状態 「ビズィ(BUSY)」、「ウェイティング(WAITING
)」、「準備完了(READY)」(送信と受信の夫々の準
備完了)、「終了(DONE)」、及び「非関与プロセッサ
(NON-PARTICIPANT )」から成る1組の値(図22参
照)が、あるTNを付与されたタスクの、そのレディネ
ス状態を速やかに確認する能力を提供している。このシ
ステムでは、以上の各状態の意味するところは、次の表
が示すようになっている。
【0202】
【表2】 「TN割当」コマンドを用いて、タスクへのTNの付与
が動的に行なわれるようになっている。成功表示(「T
N割当」メッセージに対する「SACK/アサインド」
応答)は、すべての動作可能なプロセッサが成功裏にT
Nのタスクへの割当てを完了したことを示す。図21に
関して注目すべきことは、「NAK/TNエラー」応答
は高い優先順位(小さな値)をもっているため、いずれ
かのプロセッサのネットワーク・インターフェイス12
0がTNの使用に関する衝突を検出したならば、全ての
プロセッサが失敗応答を受取るということである。更
に、ネットワーク上を伝送されるこの失敗応答のOPI
D(発信元プロセッサID)フィールドは、衝突のあっ
たプロセッサのうちの第1番目の(付された番号が最小
の)プロセッサを表示することになる。この事実は、診
断ルーチンに利用される。各々のプロセッサは、ソフト
ウェアの働きにより、タスクを処理し、そしてTNを
「ビズィ」、「ウェイティング」、「送信準備完了」、
「受信準備完了」、「終了」または「非関与プロセッ
サ」のうちの該当するものにセットする。最初の「TN
割当」を発令したプロセッサを含めどのプロセッサも、
任意の時刻に、「ステータス・リクエスト」コマンド或
いは「マージ開始」コマンドを発令することによって、
タスク(TN)がどの程度に完了しているかという状態
を容易に確認することができる。
【0203】「ステータス・リクエスト」は、多価の
(=多種の値を取り得る)大域的セマフォの1回のテス
トと同じことである。図21から分るように、優先順位
が最も高いステータス応答(SACK)メッセージがネ
ットワーク上の競合を勝ち抜き、その結果、最も低いレ
ディネス状態が表示されることになる。更に、そのOP
IDフィールドは、その最低のレディネス状態にあるプ
ロセッサのうちの第1番目の(付された番号が最小の)
プロセッサのアイデンティティ(素性)を表示すること
になる。
【0204】この後者の特性を用いて、複数のプロセッ
サに分配されたタスクの完了を「待機」するための、
「ノン・ビズィ(non-bysy)」の形態が定められてい
る。最初に「TN割当」を発令したプロセッサは初代の
「ウェイト・マスタ」であるとされる。このプロセッサ
は次に、任意の基準に基づいて、他のいずれかのプロセ
ッサを新たな「ウェイト・マスタ」に指定する。この新
たな「ウェイト・マスタ」は、それ自身が所望のレディ
ネス状態に到達したならば、「マージ開始」或いは「ス
テータス・リクエスト」のいずれかを発令することによ
って、全てのプロセッサに対する問合せを行なう。もし
他のプロセッサの全てが準備完了状態となっていたなら
ば、SACKがその旨を表示することになる。もし幾つ
かのプロセッサが尚、準備完了状態にはなかったなら
ば、SACK応答のOPIDフィールドが、レディネス
状態が最低のプロセッサのうちの第1番目のものを表示
することになる。「ウェイト・マスタ」はそのプロセッ
サに対し、新しい「ウェイト・マスタ」になるように命
令する。結局最後には全てのプロセッサが準備完了状態
となるのであるが、それまでの間、このシステムは、少
なくとも一つのプロセッサが準備完了状態に到達したこ
とを知らされる都度、ステータスの問合せを試みるだけ
である。従ってこのシステムは、結果を出さずに資源を
消費する周期的なステータス問合せという負担を負わさ
れることがない。更にこの方式によれば、最後に完了す
る処理が終了した丁度その時刻に、全てのプロセッサが
仕事を完了したということをシステムが確実に知ること
になる。当業者には理解されるように、本発明の概念の
範囲内でその他の多種多様な「待機」の形態を採用する
ことができる。
【0205】「マージ開始」コマンドは、1つの特殊な
種類のテスト・アンド・セット命令である。大域的セマ
フォのステータスが「送信準備完了」または「受信準備
完了」である場合には、現在トランザクション・ナンバ
・レジスタ(PTNR)206(図23及び図24参
照)が「マージ開始」メッセージ (図13参照)内の
トランザクション・ナンバの値にセットされ、これによ
ってPTNRレジスタの設定が行なわれる。動作中のプ
ロセッサのいずれかが、より低位のレディネス状態にあ
る場合には、PTNRの値は変更されない。
【0206】「マージ停止」コマンドは、以上の動作に
対応するリセット動作であって、すべての動作中のプロ
セッサのPTNRを無条件に「TN0」にリセットする
ものである。
【0207】後に説明するように、PTNRによって指
定されている現在大域的タスク(current global task
)に関係するメッセージだけが、ネットワーク・イン
ターフェイス120から出力されるようになっている。
従って、「マージ開始」コマンド及び「マージ停止」コ
マンドは、複数のタスクの間でネットワークを時間多重
化、即ち時分割(タイム・マルチプレクシング)するこ
とのできる能力を提供しており、従ってそれら複数のタ
スクは、任意に中止、及び/または再開することができ
るようになっている。
【0208】本発明の細部の特徴で重要なものに、ネッ
トワーク・インターフェイス120が、ネットワークか
らのコマンドによるTNのアクセスと、マイクロプロセ
ッサ105によるTNのアクセスとが、決して同時に行
なわれないようにしているということがある。本実施例
においては、これは、受信状態制御回路260から読出
し/書込み状態制御回路270へ送られている信号によ
って達成されており、この信号は、TNを変更する可能
性のあるネットワークからのコマンドの処理が行なわれ
ているときには必ず「肯定」状態とされている。この信
号が「肯定」状態にある短い時間の間は、プロセッサ
は、H.S.RAMへのアクセスを、制御回路270に
よって禁止されている。当業者には理解されるように、
本発明の範囲内で、以上の構成の代りになる多種多様な
代替構成を採用することができる。
【0209】受信制御 TNの更に別の機能に、入力メッセージの制御がある。
「TN割当」コマンドを用いることによって、所与のタ
スクに対して、複数のプロセッサにおける入力メッセー
ジ・ストリームを関連付けることができる。所与のプロ
セッサの中の当該タスクに割当てられているTNが「受
信準備完了」にセットされているときには、そのTNは
更に、そのプロセッサが受入れる用意のあるパケットの
個数を表わすカウント値を併せて表示している(図2
2)。ネットワーク・インターフェイス120は、個々
のパケットを成功裏に受信するたび毎にこのカウント値
をデクリメントし(このデクリメントはTNのワードか
ら算術的に「1」を減じることによって行なわれる)、
このデクリメントはこのカウント値がゼロに達するまで
続けられる。カウント値がゼロに達したときには「NA
CK/オーバラン」応答が発生され、それによって、パ
ケットを送出しているプロセッサに対し、このNACK
応答を発しているプロセッサがより多くの入力パケット
を受入れる用意ができるまで待機しなければならないこ
とが知らされる。更にまた、図30から分るように、こ
のときには PTNRの「TN0」へのリセットも併せ
て行なわれる。
【0210】以上の動作メカニズムにより、ネットワー
クを流通するパケットの流れの制御を直截的に行なえる
ようになっている。またそれによって、1つのプロセッ
サに未処理のパケットが多量に詰め込まれることがない
ように、そしてそのプロセッサがシステムにとってのネ
ックになってしまうことがないように、保証されてい
る。
【0211】送信制御 図34(a)について説明すると、同図から分るよう
に、H.S.RAMに格納されている各メッセージは、
新TNベクタ(=ネクスト・メッセージ・ベクタ)の値
を収容するためのフィールドを含んでいる。メッセージ
を送信してそれに対する応答を成功裏に受信したなら
ば、この送信したばかりのメッセージに含まれていた新
TNベクタが、H.S.RAMの中の現在トランザクシ
ョン・ナンバを格納するためのアドレスへ(PTNRか
ら転送されて)格納される。従って、TNは個々のメッ
セージが送出されるたび毎に更新され、また、メッセー
ジの伝送に成功した際にはTNが自動的に所望の状態に
セットされるようにすることが可能となっている。
【0212】図22について説明すると、「送信準備完
了」のTNのフォーマットは、14ビットのH.S.
RAM内のアドレスを含んでおり、このアドレスは、所
与のタスク(TN)に関して次に出力すべきパケットを
指し示すのに用いられている。従って、H.S.RAM
の中に格納されているTNは、種々のタスクに関するメ
ッセージの、先入先出式(FIFO)待ち行列の、その
先頭を指し示すヘッド・ポインタとしての機能も果たし
ている。従って、所与の1つのタスク(TN)に関する
限りにおいては、各プロセッサは、新TNベクタのチェ
ーンによって定められた順序で、パケットの送出を試み
ることになる。
【0213】先に説明した、複数のTN(タスク)の間
でネットワークを高速で多重化(マルチプレクシング)
するための機構と組合わせることによって、多くのプロ
セッサの間に分配された何組もの複雑な組合せのタスク
を、極めて小規模なソフトウェア・オーバヘッドで管理
できるようになることは明らかである。ネットワーク
と、インターフェイスと、プロセッサとの共同動作によ
って提供されている構成は、そのコピーを数百個のプロ
セッサの間に分配することができ、更には数千個のプロ
セッサの間にすら分配することのできる資源及びタスク
に対して、資源の割付けと割付け解除、タスクの中止と
再開、それにその他の制御を行なうための好適な構成で
ある。
【0214】DSW(転送先選択ワード)の例 転送先選択ワード(図13)は、DSWロジック190
(図23及び図24)及びH.S.RAM26(図1
8)のDSWセクションと協働することによって、以下
のことを可能とする複数のモードを提供するものであ
る。即ち、それらのモードとは、各々の受信プロセッサ
のネットワーク・インターフェイス120が、受信中の
メッセージは当該ネットワーク・インターフェイスに組
合わされているマイクロプロセッサ105によって処理
されることを意図したものか否かの判定を、迅速に下せ
るようにするための複数のモードである。既に説明した
ように、受信メッセージの中に含まれているDSWは、
H.S.RAMのDSWセクションに格納されているニ
ブルを選択すると共に、そのニブルと比較される。
【0215】プロセッサ・アドレス 図18に示されているように、H.S.RAMのDSW
セクションの1つの部分がプロセッサ・アドレス選択ニ
ブルの格納にあてられている。本システムにおいては、
搭載可能な1024個のプロセッサの各々に対して、
H.S.RAMのこの部分に含まれているビット・アド
レスのうちの1つが関連付けられている。当該プロセッ
サの ID(アイデンティティ)に関連付けられたビッ
ト・アドレスのビットは「1」にセットされており、一
方、このセクション内のその他の全てのビットは「0」
にされている。従って各々のプロセッサは、このセクシ
ョンの中の1つのビットだけが「1」にセットされてい
る。
【0216】ハッシュ・マップ H.S.RAMのDSWセクションの別の1つの部分
が、ハッシュ・マップ(複数)の格納にあてられてい
る。本システムにおいては、マップ選択ビットのうちの
2つのビットがそれらのハッシュ・マップにあてられて
おり、それによって、4096個の可能な値を全て含む
完全な集合が 2組得られている。ハッシュト・モード
(hashed mode )においては、二次記憶装置に格納され
ているレコードのためのキーが、ハッシング・アルゴリ
ズムに従って設定され、それによって0から4095ま
での間の「バケット」の割当てが行なわれる。所与の
「バケット」に収容されているレコードを担当している
プロセッサは、そのアドレスが当該バケットのバケット
・ナンバに対応しているマップ・ビットの中に「1」の
ビットがセットされている。その他のビットは「0」に
されている。複数個のマップ・ビットをセットするだけ
で、所与のプロセッサに複数のバケットを担当させるこ
とができる。
【0217】この実施例の構成においては、容易に理解
されるように、マップ・ビットのセッティングを以下の
方式で行なえるようになっている。即ち、その方式と
は、所与の1つのマップ選択ビットについては、各ビッ
ト・アドレスがただ一つのプロセッサにおいてのみ
「1」にセットされており、しかも、いかなるビット・
アドレスも必ずいずれかのプロセッサにおいて「1」に
セットされているという方式である。この方式を採用し
たことの直接の結果として、各々のプロセッサ(AM
P)が、データベースのレコードの互いに別個で互いに
素の部分集合を分担し、しかも、システムの全体として
は、レコードの全てを含む完全な集合が存在するように
なっている。
【0218】以上の具体例はリレーショナル・データベ
ースの課題を例に引いて説明されているが、当業者には
容易に理解されるように、課題の互いに素の部分集合を
マルチプロセッサ復合体の中の個々のプロセッサに分担
させることができる課題領域であればどのような課題領
域にでも、これと同じ方式を適用することができる。
【0219】更にもう1つ注目に値することは、完全な
マップを2つ備えることによって、以上に説明した方式
を、一方のマップによれば所与のあるプロセッサに割当
てられているバケットを、他方のマップにおいてはそれ
とは異なったプロセッサに割当て得るように、構成する
ことができるということである。ここで、一方のマップ
を「一次的」なものとし、他方のマップを「バックアッ
プ用」のものとすれば、直接の帰結として、所与のある
プロセッサ上では一次的なものであるレコードが、別の
プロセッサ上では確実にバックアップされるようにする
ことができる。更に、所与の1つのプロセッサをバック
アップするプロセッサの個数については、いかなる制約
もない。
【0220】当業者には理解されるように、本発明の範
囲内で実現できる互いに別個のマップの数は3以上にす
ることもでき、また、バケットの数も任意の個数とする
ことができる。
【0221】クラス 先に説明したプロセッサ・アドレスとハッシュ・マップ
のいずれの場合にも、全てのプロセッサについてその所
与の1つのビット・アドレスを調べれば、そのビット・
アドレスが1つのプロセッサにおいてだけ「1」にセッ
トされており、その他の全てのプロセッサ内の対応する
ビット・アドレスは「0」にセットされていることが分
かる。しかしながら、複数のプロセッサ内において対応
するビット・アドレスが「1」にセットされているよう
な方式も可能であるし、有用でもある。この方式は「ク
ラス・アドレス」モードといわれる方式である。
【0222】クラス・アドレスは、そのコピーが複数の
プロセッサ内に存在する処理手順ないし機能の名称と考
えることができる。該当する処理手順ないし機能を備え
ているプロセッサは、いずれも対応するビット・アドレ
スに「1」ビットがセットされている。
【0223】クラス・アドレスへ宛ててメッセージを送
出するためには、DSW(図13)内の該当するクラス
・アドレスがセットされる。H.S.RAMの中の該当
する位置のビットが「1」にセットされていることによ
って当該クラスに「所属」していることが示されている
全ての動作可能なプロセッサは、その送出されたメッセ
ージ・パケットに対して「ACK」で応答することにな
る。当該クラスに所属していないプロセッサはNAPで
応答する。
【0224】従ってDSWは、マルチプロセッサ・シス
テム内のメッセージの流れを制御するのに必要な経路指
定計算がハードウェアによって行なわれるようにしてい
る。また、プログラムを、システムの様々な機能がいず
れのプロセッサの中に備えられているのかという知識と
は、無関係なものとすることができる。更には、マップ
はH.S.RAMの一部であり、従ってマイクロプロセ
ッサ105からアクセスできるため、ある機能を1つの
プロセッサから別のプロセッサへ動的に再配置すること
が可能である。
【0225】マージの例 複雑なマルチプロセッサ・システムにおいては、一連の
相互に関連した複数の動作の実行が、タスクによって必
要とされることがある。これは特に、複雑な問合せを取
扱うリレーショナル・データベース・システムについて
言えることであり、そのようなデータベース・システム
においては、データをアセンブルしてファイルを形成
し、しかもアセンブルされた後には特定の方式で複数の
プロセッサへ再分配できるようなファイルを形成するた
めに、複数の二次記憶装置を参照することが必要とされ
ることがある。以下に示す例は、図1、図18、図2
3、及び図24のシステムが、TNと、DSWと、それ
に大域的セマフォとに対して操作を加えることによっ
て、そのような機能をいかに容易に実行できるようにな
っているかを、手短に説明するものである。まず第1
に、マージ・コーディネータ(典型的な例としてはマー
ジ・コーディネータはIFP14ないし16であるが、
必ずしもそれに限られるものではない)が、ある1つの
ファイルをマージして形成することになる(即ちデータ
・ソースとして機能する)1つのクラスに属する複数の
AMPを、(AMP18〜23の中から)識別する。割
当てがなされていない1つのTNが選択され、そしてデ
ータ・ソース機能を識別するために割当てられる。この
ファイルを別の1組のAMP(それらは元のデータ・ソ
ースのプロセッサであってもよい)へ分配ないしハッシ
ングするするという第2の主要機能に対しては、そのと
きまで 割当てをされていなかった別のTNが割当てら
れる。
【0226】このマージ機能のためのコーディネータ
は、第1のTNに関係するファイルの、マージングの作
業を行なうことになるクラスに属する複数のプロセッサ
を、DSWを用いて識別する。このマージングの作業に
関与する関与プロセッサは、そのTNのステータスのレ
ベルを上昇させて「ビズィ」または「ウェイティング」
ステータスとし、その後に、マージ動作の制御が、マー
ジ動作に関与している関与プロセッサのうちの1つへ渡
される(即ちコーディネータの仕事が委任される)。以
上の複数の関与プロセッサ(それら以外の全てのプロセ
ッサ・モジュールはそのトランザクション・ナンバに関
しては非関与プロセッサである)の各々は、このように
規定されたマージのタスクに関するメッセージ・パケッ
トを受信してそれに対する肯定応答を送出した後には、
そのプロセッサ自身のサブタスクの実行を、そのステー
タス・レベルを適宜更新しながら進行させて行く。そし
て、マージ・コーディネータの仕事を委任されているプ
ロセッサがそれ自身のタスクを終了したならば、そのプ
ロセッサは、その他の全ての関与プロセッサに対して、
当該トランザクション・ナンバに関するステータスを知
らせるよう、ステータス・リクエストを送出し、それに
よって、関与プロセッサのうちでレディネス状態が最低
のプロセッサを表示している応答を受取ることができ
る。マージ動作の制御は、このレディネス状態が最低の
プロセッサへ渡され、この後には、このプロセッサが、
自身の作業が終了した際にその他全ての関与プロセッサ
をポーリングすることができるようになる。以上のプロ
セスは、必要とあらば、関与プロセッサの全てが準備完
了状態となっていることを示す応答が受信されるまで、
続けさせることができる。そのような応答が受信された
時点においてコーディネータとして働いていたプロセッ
サは、続いて、DSWを利用して当該クラスに属してい
る関与プロセッサを識別しつつ、H.S.RAM26へ
のメッセージの転送を開始し、このメッセージの転送に
伴なって、ステータス・レベルが該当する出力メッセー
ジ・ベクタ情報により「送信準備完了」へと更新され
る。これに続いて実行されるポーリングの結果、全ての
関与AMPが送信準備完了状態にあることが判明したな
ら ば、コーディネータは、その特定のTNについての
マージ開始コマンドを発令する。
【0227】マージ動作が実行されている間に、処理済
のデータ・パケットは、結果をリレーショナル・データ
ベースに従って二次記憶装置へ分配するための1つのク
ラスに属する複数のプロセッサ・モジュールへ宛てて、
転送されることになる。それらの複数の受信プロセッサ
が、このとき発信元となっている複数のプロセッサと同
じものであると否とにかかわらず、この分配に関与する
クラスに所属する関与プロセッサ(即ち上記受信プロセ
ッサ)は、DSWによって識別され、またそのトランザ
クションは新たなTNによって識別される。この新しい
トランザクションに関わる関与プロセッサの全てに対し
て、この新たなTNが割当てられることになり、また、
それらの関与プロセッサは、それらのレディネス状態の
レベルを上昇させて「受信準備完了」とすることにな
る。このDSWは、クラス指定ではなく、ハッシング選
択指定のものとすることもできるが、いずれの場合にお
いても、マージが実行されている間は、関与プロセッサ
の全てが、ブロードカストされるメッセージを受信でき
る状態におかれている。「マージ開 始」が発令された
ならば、送出動作に関与すべき送出関与プロセッサの各
々から複数のメッセージ・パケットが、しかも夫々のプ
ロセッサから互いに同時に、ネットワーク上へ送出さ
れ、それらのメッセージ・パケットに対しては動的に
(=伝送中に)優先権の判定が行なわれる。各々の送出
関与プロセッサが、それ自身の1組のメッセージを送信
完了したならば、それらの各々の送出関与プロセッサ
は、一定の形に定められている「エンド・オブ・ファイ
ル(End of File )」メッセージの送信を試み、この
「エンド・オブ・ファイル」メッセージは種々のデータ
メッセージより優先順位が低い。関与プロセッサの全て
が「エンド・オブ・ファイル」メッセージを送出するよ
うになるまでは、この「エンド・オブ・ファイル」メッ
セージはデータ・メッセージとの競合に敗退し続 け、
そして全ての関与プロセッサから送出されるようになっ
たならば、ようやく、「エンド・オブ・ファイル」メッ
セージの転送が達成される。この転送が達成されると、
コーディネータは「エンド・オブ・マージ(End of Mer
ge)」メッセージを送出し、また、それに続いて「TN
放棄」を実行することができ、この「TN放棄」によっ
てこのトランザクションは終了する。オーバラン状態、
エラー状態、ないしはロック状態に対して は、マージ
即ち送信を始めからやり直すことによって適切に対処す
ることができる。
【0228】ある1つのTNに関するマージ動作が終了
したならば、このシステムは、TNのシーケンスの中
の、続く次のTNへとシフトすることができる。この新
たなTNに該当する複数のメッセージ・パケットの待ち
行列を、各々のプロセッサ・モジュールが作り終ったな
らば、それらのプロセッサ・モジュールは、マージ動作
を実行させるためのネットワークに対する働きかけを再
び開始することが可能となる。個別に実行されるプロセ
ッサ内マージ動作に加え、更に以上のようにネットワー
ク内マージ動作が効率的に利用されるために、このシス
テムは、従来のシステムに対して著しく優れた、極めて
大規模なソート/マージ・タスクを実行することができ
るようになっている。本発明を採用した場合に、システ
ム内のある1つのファイルをソートするために必要な時
間は、レコードの個数をn個、プロセッサの個数をm個
とするとき、以下の式で表わすことができる。
【0229】
【数1】 この式において、C2 は定数であり、この実施例に関し
ては、100バイト・メッセージが用いられている場合
には約10マイクロ秒と見積られ、またC1 は、典型的
な16ビット・マイクロプロセッサが使用されている場
合に、約1ミリ秒と見積られる定数である。様々に組み
合わせたnとmとの組合せに対する、概略のソート/マ
ージ時間が、秒を単位として次の表に示されており、そ
れらの値は100バイト・レコードが用いられている場
合の値である。
【0230】
【表3】 以上の表に示されている具体例の数字を従来のシステム
と比較して評価するのは容易なことではない。その理由
は、相互に関連を有する2種類のソート処理シーケンス
(プロセッサによるソートとネットワークによるソー
ト)が関与しているからであり、また、そもそも、かか
る能力を有するシステムが殆んど存在していないからで
ある。更に、本システムではその長さが長大でしかも可
変なメッセージがソート及びマージされるのに対して、
一般的な多くのソート能力は、数バイトないし数ワード
について能力評価がなされている。
【0231】更に別の重要な要因として、本システムは
マルチプロセッサそのものであって、ソート/マージ処
理の専用システムではないということがある。本システ
ムは、局所的にも大域的にも、マージ動作とノン・マー
ジ動作との間を完全なフレキシビリティをもってシフト
することができ、しかもこのシフトを、ソフトウェア的
な不利益を生じることなく、また、システム効率に損失
を生じさせることもなく、行なえるようになっている。
【0232】タスク・リクエスト/タス応答のサイクル
の例 図1に関し、ネットワーク50に接続されているプロセ
ッサ14、16、ないし18〜23はいずれも、他の1
個または複数個のプロセッサにタスクを実行させるため
のタスク・リクエストを、メッセージ・パケットの形態
の然るべきフォーマットで形成する機能を有している。
リレーショナル・データベース・システムにおいては、
これらのタスクの殆んどはホスト・コンピュータ 1
0、12をその発生源とし、インターフェイス・プロセ
ッサ14、16を介してシステム内へ入力されるもので
あるが、ただし、このことは必要条件ではない。然るべ
きフォーマットで形成されたこのメッセージ・パケット
は、他のプロセッサからのパケットとの間で争われるネ
ットワーク上の競合の中へ投入され、そして、他のタス
クの優先順位のレベル並びにこのプロセッサにおける動
作状態のレベル次第で、時には優先権を得ることにな
る。タスクは、1つのメッセージ・パケットによってそ
の内容を指定されていることもあり、また、複数の継続
パケットによって指定されていることもあるが、後に続
く継続パケットは、データ・メッセージのグループ(図
21参照)の中では比較的高い優先順位レベルを割当て
られ、それによって、後に続く部分を受信するに際して
の遅延ができるだけ短くなるようにしている。
【0233】メッセージ・パケットには、トランザクシ
ョン・アイデンティティ(=トランザクション識別情
報)が、トランザクション・ナンバの形で含まれてい
る。このトランザクション・ナンバは、処理結果を引き
出す上での方式に関するモードであるノン・マージ・モ
ード即ちディフォルト・モード(「TN0」)と、マー
ジ・モード(「TN0」以外の全てのTN)とを、選択
に応じて区別するという性質を本来的に備えている。更
に、メッセージ・パケットにはDSWが含まれている。
このDSWは、実質的に、転送先プロセッサとマルチプ
ロセッサ動作のモードとを指定するものであり、この指
定は、特定のプロセッサの指定、複数のプロセッサから
成るクラスの指定、或いはハッシングの指定によって行
なわれ、本実施例においては、ハッシングは、リレーシ
ョナル・データベースの一部分へのハッシングである。
ネットワーク50を介してターゲット・プロセッサ(指
定転送先プロセッサ)へブロードカストされるメッセー
ジ・パケットは、そのプロセッサにおいて局所的に受入
れられて(=そのプロセッサ自身への受入れが適当であ
るとの判断がそのプロセッサ自身によってなされて)、
そして、受信した旨の認証が肯定応答(ACK)によっ
て行なわれる。プロセッサ14、16及び18〜23の
全てが、EOM(エンド・オブ・メッセージ)のあとに
続いてネットワーク50へ互いに同時に応答を送出する
が、しかしながら、指定転送先プロセッサから送出され
たACKが優先権を獲得し、そして発信元プロセッサに
受信されることになる。
【0234】続いて指定転送先プロセッサは、送られて
きたメッセージが、局所H.S.RAM(=個々のプロ
セッサ・モジュールに備えられているH.S.RAM)
とインターフェイス120と(図18、図23及び図2
4)を介して局所マイクロプロセッサに転送されるとき
に、このリクエスト・パケット (=送られてきたメッ
セージ)が要求している処理を非同期的に(=当該プロ
セッサ・モジュール以外の要素とは同期せずに)実行す
る。リレーショナル・データベースに関するタスクが実
行される場合には、DSWは互いに素のデータ部分集合
(この部分集合はその部分集合のためのディスク・ドラ
イブに格納されている)のある部分を指定するのが通常
の例であるが、ただし、時には、格納されているデータ
ベースを参照することを必要としないタスクが実行され
ることもある。特定の演算やアルゴリズムを個々のプロ
セッサによって実行するようにしても良く、また指定転
送先プロセッサとして複数のプロセッサが指定された場
合には、それらのプロセッサの各々が、タスク全体の互
いに素の部分集合についての仕事を実行するようにする
ことができる。可変長のメッセージ・パケットは、リク
エスト・メッセージによって、実行すべき動作とデータ
ベース・システム内の参照すべきファイルとの指定が行
なえるように構成されている。ここで注意すべきこと
は、所与の 1つのタスクに関するメッセージ・パケッ
トが大量に存在している場合もあるということであり、
その場合には、ネットワークの内部で行なわれるソート
のための弁別基準となる適当な特徴を付与するために、
任意採用可能なキー・フィールド(図13)が重要にな
ってくるということである。
【0235】応答を行なおうとしている各プロセッサに
よって発生されるタスク応答パケットは、マイクロプロ
セッサから、図1の制御ロジック28を介して局所H.
S.RAM26へと転送され、そこでは、タスク応答パ
ケットは図34(a)の送出メッセージ・フォーマット
の形で格納される。タスク応答が、継続パケットの使用
を必要とするものである場合には、そのような継続パケ
ットは先頭パケットの後に続いて、ただし継続のための
より高い優先順位を与えられた上で、送出される。シス
テムがマージ・モードで動作しており、且つ、各々のプ
ロセッサがある1つのトランザクション・ナンバに関す
る多数のパケットを発生している場合には、それらのパ
ケットを先ず局所的に(=個々のプロセッサの内部にお
いて)ソート順でチェーンし、その後に、ネットワーク
50上でマージを行なうことによって大域的なソート順
に並べるようにすることができる。
【0236】タスク結果パケットは、プロセッサ14、
16及び18〜23からネットワーク50へ、同時送出
パケット群を成すように送出され、そして1つの最優先
メッセージ・パケットが、所定のネットワーク遅延のの
ちに、全てのプロセッサへブロードカストにより送り返
される。それらのタスク結果パケットの転送は、そのタ
スクの性質に応じて、最初にリクエスト・メッセージを
発信した発信元プロセッサをその転送先として行なわれ
ることもあり、また、1個ないし複数個の他のプロセッ
サを転送先として行なわれることもあり、更には、既に
説明した複数のマルチプロセッサ・モードのうちのいず
れのモードで転送を行なうこともできる。リレーショナ
ル・データベース・システムにおいて最も一般的に行な
われる事例は、ハッシングを利用して転送先の選択を行
ないつつ、マージと再分配とを同時に実行するというも
のである。従ってそのことからも理解されるように、
「タスク・リクエスト/タスク応答」のサイクルの中で
は、各々のプロセッサが、発信元プロセッサとしても、
コーディネータ・プロセッサとしても、また、応答側プ
ロセッサとしても動作することができ、更には、それら
の3つの全てとして動作することもできるようになって
いる。多くの「タスク・リクエスト/タスク応答」サイ
クルが関与してくるため、プロセッサ14、16及び
18〜23、並びにネットワーク50は、それらのタス
クの間で多重化(マルチプレクシング)されるが、ただ
しこの多重化は、時間を基準にすると共に更に優先順位
をも基準にして行なわれる。
【0237】複雑な問合せの例 リレーショナル・データベース・システムにおいては、
ホスト・コンピュータ10、12を利用して、また更
に、タプル(tuples)と一次的データ及びバックアップ
用データの互いに素のデータ部分集合とを規定するアル
ゴリズムに従ってリレーショナル・データベースを複数
のディスク・ドライブ38〜43の間に分配するように
した分配法を利用して、複雑な問合せがホスト・コンピ
ュータ10または12から、IFP14または16を介
してシステムへ入力される。この入力された問合せのメ
ッセージ・パケットは、先ず最初にIFP14または1
6によって詳細に解析され、この解析は、ホスト・コン
ピュータからのメッセージを、AMP18〜23に対し
てタスクの実行を要求するための複数のタスク・リクエ
ストへと変換するために行なわれるものである。IFP
14ないし16は、その動作を開始するに際して、1個
ないし複数個の特定のAMPから情報を引き出すための
リクエスト・パケットを送出し、それによって、ホスト
・コンピュータからのメッセージの詳細な解析に必要な
システム内データを得ることが必要な場合もある。ホス
ト・コンピュータからのリクエストの処理に必要なデー
タを得たならば、IFP14ないし16は、AMP18
〜23との間で何回かの「タスク・リクエスト/タスク
応答」サイクルを実行することができ、また、データを
実際に処理して、ホスト・コンピュータからのリクエス
トを満足させることができる。以上の処理シーケンスに
おいては、上に挙げたタスク・リクエストとタスク応答
とから成るサイクルが用いられ、また、そのサイクルは
任意の長さに亙って継続することができる。続いて、I
FP14ないし16は、IFPインターフェイスを介し
てホスト・コンピュータと通信する。ホスト・コンピュ
ータへのこの応答は、単に、ホスト・コンピュータ10
または12が次の複雑な問合せを発生するために必要と
するデータを提供するためのものであることもある。
【0238】(独立型マルチプロセッサシステム) 図1に関連して先に説明した本発明に係るシステムの基
本的実施例は、ホスト・コンピュータ並びに現在使用さ
れているホスト・コンピュータ用のソフトウェア・パッ
ケージと組み合わせて使用することのできる、後置プロ
セッサ(バックエンド・プロセッサ)の例を示すもので
ある。しかしながら、既に言及したように、本発明は広
範な種々の処理用途において、また特に、大容量の中央
処理能力を必要とすることなく処理タスクを容易に細分
及び分配できるような種類の処理用途において、格別の
利点を有するものである。図33は、本発明に係る独立
型(スタンド・アローン型)マルチプロセッサ・システ
ムの簡単な構成の一実施例を図示している。図33にお
いて、複数のプロセッサ300はいずれもインターフェ
イス302を介して能動ロジック・ネットワーク304
へ接続されており、このネットワークは既に説明したも
のと同様のネットワークである。データの完全性を強化
するために、冗長性を有する能動ロジック・ネットワー
ク304を採用するようにしても良い。この実施例にお
いても、プロセッサ300には16ビット・マイクロプ
ロセッサ・チップを使用することができ、また、充分な
容量のメインRAMメモリを組込むことができるように
なっている。この図には9つのプロセッサ 300のみ
が示されており、また、それらのプロセッサの各々には
異なった種類の周辺機器が接続されているが、これは、
このシステムの多用途性を示すためである。実際には、
このシステムは更に多くのプロセッサをネットワークに
備えることによりはるかに効率的になるのであるが、し
かしながら、比較的少数のプロセッサしか備えていない
場合であっても、システムの信頼性とデータの完全性と
関して格別の利点が得られるものである。
【0239】この実施例においては、複数のプロセッサ
300を不便のない充分な距離をとって互いから物理的
に離隔させることができ、それは、データ転送速度が先
の実施例について述べた速度である場合にノード間の最
大間隔が28フィート(5.5m)にもなるため、大規模なア
レイを成す複数のプロセッサを、建物の1つのフロア、
ないしは隣接する幾つかのフロアの上に、むやみに込み
合うことのないように設置して、利用することができる
からである。
【0240】独立型システムでは、先に説明した後置プ
ロセッサの実施例の場合と比較して、周辺機器コントロ
ーラ並びに周辺機器それ自体に、はるかに多くの種類の
ものが用いられる。ここでは便宜的に、個々の入出力デ
バイスは、夫々が別個のプロセッサに接続されているも
のとする。例えば、キーボード312とディスプレイ3
14とを備えた入出力端末装置310は、端末コントロ
ーラ320を介して、同端末装置310のためのプロセ
ッサ300に接続されている。ただし、比較的動作速度
が遅い端末装置の場合には、かなりの規模の端末装置ネ
ットワークを1個の16ビット・プロセッサで制御する
ことも不可能ではない。この図示の入出力端末装置は、
手動操作キーボード等の手動操作入力処理装置がどのよ
うにしてシステムに接続されるのかについての一例を示
しているにすぎない。プロセッサ300の処理能力を利
用してこの端末装置310をワードプロセッサとして構
成することもでき、そしてこのワードプロセッサが、ネ
ットワーク304を介してデータベースや他のワードプ
ロセッサ、或いは種々の出力装置と通信できるようにす
ることもできる。例えばリジッド・ディスク・ドライブ
322等の大容量二次記憶装置を、ディスクコントロー
ラ324を介して、その記憶装置のためのプロセッサに
接続することができる。また、容易に理解されるよう
に、大規模システムには、より多数のディスク・ドライ
ブを用いたり、或いは異なった形態の大容量記憶装置を
用いるようにすれば良い。プリンタ326並びにプロッ
タ330等の出力装置は、夫々、プリンタ・コントロー
ラ328とプロッタ・コントローラ332とを介して、
それらの出力装置のためのプロセッサ300にインター
フェイスしている。不図示の他のシステムとの間の対話
は通信コントローラ338を介して、そして通信システ
ム336を経由して行なわれ、通信システム336とし
ては例えば、テレタイプ・ネットワーク(TTY)や、
更に大規模なネットワークのうちの1つ(例えばエサー
ネット(Ethernet))等が用いられる。プロセッサ300
のうちの幾つかが、周辺装置を接続することなく単にネ
ットワーク304に接続されることもある(不図示)。
双方向のデータ転送が行なわれる可能性があるのは、テ
ープ・ドライブ(テープ駆動機構)340及びテープ・
ドライブ・コントローラ342が用いられている場合、
それに、コントローラ346が接続されたフロッピ・デ
ィスク・ドライブ344が用いられている場合等であ
る。一般にテープ・ドライブは、オン・ライン接続して
使用する際の大きな記憶容量を提供するばかりでなく、
ディスク・ドライブのバックアップにも利用可能であ
る。このバックアップの目的には、密閉式リジッド・デ
ィスク装置に、ある時点までに格納されたデータを保存
するためにテープが用いられる。このようなバックアッ
プ動作は、通常、低負荷の時間帯(例えば夜間または週
末等)に行なわれるため、ネットワーク304を用いて
長い「ストリーミング」転送を行なうことができる。更
には、システムの初期設定の際のプログラムの入力のた
めには、フロッピ・ディスク・ドライブ344が使用さ
れることがあるため、ネットワークの使用時間のうちの
幾分かをこの「ストリーミング」のモードにあてて、か
なりの量のデータを転送することもできる。光学文字読
取器350は、更に別の入力データのソースとして機能
するものであり、その入力データは、そのコントローラ
352を介してシステムへ入力される。尚、単に「他の
装置354」とだけ記されている周辺装置は、コントロ
ーラ356を介してシステムに接続することによって、
必要に応じたその他の機能を発揮するようにすることが
できるものである。
【0241】別々のプロセッサ・モジュールから夫々の
メッセージ・パケットを互いに同時に送出し、そしてそ
れらのメッセージ・パケットに対して優先権の判定を行
なって、1つの、或いは共通の最優先メッセージ・パケ
ットが所定の一定の時間内に全てのプロセッサ・モジュ
ールへ同時にブロードカストされるようにするという方
式を使用しているため、オン・ライン状態にある個々の
プロセッサのいずれもが、このシステム内の他のプロセ
ッサ・モジュールに等しくアクセスできるようになって
いる。優先順位を付与されたトランザクション・ナンバ
並びにレディネス状態表示と、メッセージ内に含まれた
転送先選択エントリとを利用しているこの大域的セマフ
ォ・システムによって、どのプロセッサもコントローラ
として働くことが可能となっているため、このシステム
は、階層的な方式でも、また非階層的な方式でも動作可
能となっている。本システムが、ソフトウェアの精査や
変更を必要とすることなく拡張或いは縮小することがで
きるということも、非常に重要である。
【0242】既に説明したメッセージ長さよりかなり長
いが、なお比較的長さの限られているメッセージに対す
るアクセスが必要な場合であっても、そのようなアクセ
スを実行することができる。例を挙げれば、複雑なコン
ピュータ・グラフィクス装置(不図示)に関して、精巧
な2次元図形及び3次図形を作成するために、膨大なデ
ータベースの特定の部分にだけアクセスすることが必要
とされる場合がある。また、ワード・プロセッサ・シス
テムに関して、オペレータ(操作者)の操作速度が遅い
ために、データベースのうちから、一度に僅かなデータ
のシーケンスのみが必要とされる場合もある。これらの
状況、並びにそれに類似した状況においては、本システ
ムの、可変長のメッセージを取扱うことのできる能力、
並びに継続メッセージに優先権を付与することのできる
能力が有益なものとなる。処理能力を集中させることを
必要とする状況や、甚だしく長いメッセージの転送を必
要とする状況は、このシステムの使用に限界を与える
が、それ以外の状況においては、本システムは非常に有
利に機能する。種々の異なったデータ形式の操作とそれ
に伴なうのソート機能ないしマージ機能に関わる動的な
状況は、いずれも本発明が有利に機能する状況に該当す
る。複雑なデータを収集し、照合し、そして解析するこ
とを含む経営意志決定はその種の状況の一例であり、ま
た、定期刊行物のための、映像入力や図形入力の作成及
び編集も、その一例である。
【0243】
【発明の効果】(結論) 当業者には明らかなように、図1のシステムは、ソフト
ウェアを変更することを必要とせずにそこに含まれるプ
ロセッサの個数を任意の個数に(ただしデータ転送容量
によって決定される実際上の限界の個数までに)拡張す
ることが可能である。更にこれも明らかなことである
が、同図のシステムは、夫々の処理装置のステータスの
確認、タクス並びにプロセッサの優先順位の設定、それ
にプロセッサの処理能力の効率的な利用の確保のため
の、管理及びオーバーヘットのソフトウェアの必要量を
大幅に減少させている。
【0244】明白な利益が得られるのは、データベース
・システムや、その他の、データベース・システムと同
様に1つのタスクの全体を、互いに独立して処理するこ
とのできる複数のサブタスクへ細分することが適当なシ
ステム等の場合である。例えばリレーショナル・データ
ベースに関して言えば、二次記憶装置の容量が格段に増
大した場合にも、更なるデータベースを一次的データと
バックアップ・データとからなるデータ構造の中に適切
に統合するだけで良いのである。換言すれば、ネットワ
ークを限りなく拡張することが可能であり、それが可能
であるのは、標準化された交点装置即ちノードを2進数
的に発展して行く接続方式で連結しているために、それ
らの個々のノードにおいて実行される機能が拡張によっ
て変化することがないからである。更には、ノードの動
作についての設定処理シーケンスや外部制御も不要であ
る。従って本発明に係るシステムが、図1に示されてい
るように、1台ないし複数台のホスト・コンピュータの
バックエンド・プロセッサとして機能するように接続さ
れている場合には、システムのユーザはオペレーティン
グ・システムのソフトウェアも、応用ソフトウェアも変
更することなしに、データベースを任意に拡張(或いは
縮小)することができる。ホスト・プロセッサ・システ
ム(=ホスト・コンピュータ)の側から見れば、このバ
ックエンド・プロセッサはその構成の如何にかかわらず
「透明な」ものとなっており、なぜならばその構成が変
化してもこのバックエンド・プロセッサとホスト・プロ
セッサ・システムとの間の対話の態様には変化は生じな
いからである。このバックエンド・プロセッサに別のホ
スト・プロセッサ・システムの仕事をさせるように切り
換えるためには、単にIFPがその新たなホスト・プロ
セッサ・システムのチャネルないしバスとの間で適切に
会話するようにするだけで良い。ある実機の具体例にお
けるネットワークの構成に拠れば、ネットワーク内のメ
ッセージ転送に甚だしい遅延を生じることなく、またプ
ロセッサ間の競合に起因する不適当な程の遅延も生じる
ことなしに、1つのアレイに1024個までのマイクロ
プロセッサを包含して使用することができるようになっ
ている。本明細書で説明した実施例を、1024個を超
えるプロセッサを含むように拡張するにはどのようにす
れば良いかは、当業者には明白であろう。1つのシステ
ムに1024個のプロセッサを用いる場合、実機の具体
例では能動ノード間の最大ライン長さは28フィートに
なることが分っており、このライン長さであればアレイ
を構成する上で問題が生じることはない。ネットワーク
に起因する遅延時間は、いかなるメッセージについても
一定の時間2τNであり、ここで τはバイト・クロッ
クの間隔、Nは階層構造の中の階層の数である。明らか
に、階層を更に1つ増すことによってプロセッサの個数
を倍にしても、遅延時間は僅かに増加するに過ぎない。
データ・メッセージであれば略々必然的に長いメッセー
ジとなるため(約200バイト程度の長さとなる)、ま
た、競合するメッセージの全てについての優先権の判定
が、データをネットワークに沿って転送している間に行
なわれるため、このネットワークは従来のシステムと比
較して、はるかに高い利用効率でデータ・メッセージの
転送を行なえるものとなっている。
【0245】本システムの重要な経済上の特徴並びに動
作上の特徴のなかには、標準化された能動ロジック回路
がソフトウェアの替わりに、そして更にはネットワーク
・システムにおけるファームウェアの替わりにも用いら
れているという事実によって得られている特徴がある。
即ちこの事実によって、近代的なLSI並びにVLSI
の技術を利用してプロセッサのコストと周辺装置のコス
トとを含めた全体のコストに対して相対的に低コスト
で、信頼性の高い回路を組込むことができるようになっ
ているのである。
【0246】ソフトウェアに時間と経費とを費やさねば
ならないのは、データベース管理等の問題領域のタスク
に関係するような、重要な部分についてだけに限定され
ている。例を挙げれば、本システムの構成に拠れば、デ
ータベースの完全性を維持するために必要な諸機能の全
てを、メッセージ・パケットの構成並びにネットワーク
の構成に基づく範囲内で実行し得るようになっている。
ポーリング、ステータスの変更、並びにデータの復旧等
の機能はシステムの内部において実行される。
【0247】更に別の重要な考慮すべき点として、本発
明のネットワークは、その高速データ転送の性能が、従
来のオーミックな配線バスに充分匹敵する程に優れたも
のであるということがある。複数のメッセージ・パケッ
トが互いに同時に送出され、それらが伝送されている間
に優先権の判定がなされるため、従来の方式においてス
テータス・リクエストとそれに対する応答の送出、並び
に優先権の判定に伴なっていた遅延が、回避されている
からである。更には、プロセッサの個数が莫大な個数で
あってもノード間の接続構造の長さを所定の長さ以下に
抑えることが可能であるため、バス内の伝播時間がデー
タ転送速度に対する制約となることがない。
【0248】本システムは、マイクロプロセッサ及びネ
ットワークの使用効率という点において最適状態に迫る
ものであることが判明している。これらの点に関して重
要なことは、全てのマイクロプロセッサがビズィ状態に
保たれるようにすることと、ネットワークが一杯に有効
利用されるようにすることとである。「IFP−ネット
ワーク−AMP」の構成は、事実上それらのことを可能
にしており、その理由は、自らが送出したメッセージ・
パケットが優先権を獲得するための競合において敗退し
たマイクロプロセッサは、なるたけ早い適当な時刻に再
度送信を試みるだけで良く、そのためバスのデューティ
・サイクルが高いレベルに維持されるからである。高速
ランダム・アクセス・メモリもまたこの効果を得るため
に寄与しており、なぜならば、高速ランダム・アクセス
・メモリは処理すべき入力メッセージ・パケットと送出
すべき出力メッセージ・パケットとの両方をその内部に
集積しているため、各々のプロセッサが作業のバックロ
グを常時入手できると共に、ネットワークもまたメッセ
ージパケットのバックログを入手できるようになってい
るからである。全ての入力バッファが満杯になったなら
ば、プロセッサがその事実を知らせる表示をネットワー
ク上へ送出する。また、IFPに用いられている、ホス
ト・コンピュータからのメッセージを受取るための入力
バッファが満杯になったならば、そのことを知らせる表
示がチャネル上に送出される。従って本システムは、内
部的にもまた外部的にも自己調歩式となっている。
【0249】本システムは、以上に説明したようなアー
キテクチャとメッセージの構成とを利用することによっ
て、汎用マルチプロセッサ・システムに必要とされるそ
の他の多くの機能をも実行できるように構成されてい
る。例えば従来技術においては、大域的資源のステータ
スの変化を評価及び監視するための方式に関して非常な
注意が払われていた。これに対して本発明に拠れば、パ
リティ・エラーの発生とプロセッサの使用可能性の変化
という事実との両方を伝達するための手段として、パリ
ティ・チャネルのみが備えられ使用されている。1個な
いし複数個のプロセッサがシャット・ダウンした場合に
は、そのシャット・ダウンが、その発生と略々同時にシ
ステム中に伝達され、それによって割込みシーケンスの
実行を開始することができるようになっている。複数の
応答を優先順位に従ってソートするという方式が採用さ
れているため、大域的な能力の変化が生じた場合にその
変化がどのような性質のものであるかを、従来と比較し
てはるかに小規模の回路とシステム・オーバヘッドとに
よって特定することが可能となっている。
【0250】大域的セマフォと能動ロジック・ネットワ
ークとを採用したことによって達成されている、1回の
問合せにより優先権の判定を経て得られる大域的応答
は、非常に深いシステム的な意味を持っている。この方
式により問合せをブロードカストすることによって曖昧
性のない一義的な大域的結果が得られるため、複雑なソ
フトウェア並びにオーバヘッドが不要とされている。分
散型更新等のステータス設定動作は、多数の同時動作が
複数の異なったプロセッサで実行されている際にも実行
可能となっている。
【0251】本システムは更に、以上のようなネットワ
ークとトランザクション・ナンバと転送先選択ワードと
を用いることによって、マルチプロセッサ・システムに
おける仕事の分配並びに処理結果の収集に関する優れた
能力を発揮している。種々のマルチプロセッサ・モード
と制御メッセージとを利用することができ、また、優先
順位プロトコルを操作するだけで、優先順位の種々のレ
ベルを容易に設定しまた変更することができるようにな
っている。全てのプロセッサへ同時にブロードカストす
ることのできる能力と、ネットワーク中でメッセージの
ソートを行なえる能力とが組み合わさることによって、
いかなるプロセッサ・グループ或いはいかなる個々のプ
ロセッサを転送先とすることも可能となっていると共
に、処理結果を適切な順序で引き出すことも可能となっ
ている。従って、リレーショナル・データベース・シス
テムに対する複雑な問合せが入力されたならば、そのこ
とによってデータベース動作に必要なあらゆる処理シー
ケンスが開始されるようになっている。
【0252】本システムの更に別の利点は、リレーショ
ナル・データベース・システム等のマルチプロセッサ・
システムに、容易に冗長性を導入できることにある。二
重ネットワークと二重インターフェイスとを備えている
ため、一方のネットワークが何らかの原因で故障した場
合にもシステムが動作し続けられるようにする冗長性が
得られている。データベースを互いに素の一時的部分集
合とバックアップ用部分集合という形で分配してあるた
め、データ喪失の確率が最小のレベルにまで低減されて
いる。故障が発生したり変更が加えられたりした場合に
も、用途の広い種々の制御機能が利用可能であるために
データベースの完全性を維持し得るようになっている。
【図面の簡単な説明】
【図1】新規な双方向ネットワークを含む、本発明に係
るシステムのブロック図である。
【図2】図1に示された簡単な構造の実施例のネットワ
ークにおけるデータ信号並びに制御信号の伝送の開始前
の時点における状態を示す図である。
【図3】図1に示された簡単な構造の実施例のネットワ
ークにおいてデータ信号並びに制御信号を伝送する際の
時間t=0における状態を示す図である。
【図4】図1に示された簡単な構造の実施例のネットワ
ークにおいてデータ信号並びに制御信号を伝送する際の
時間t=1における状態を示す図である。
【図5】図1に示された簡単な構造の実施例のネットワ
ークにおいてデータ信号並びに制御信号を伝送する際の
時間t=2における状態を示す図である。
【図6】図1に示された簡単な構造の実施例のネットワ
ークにおいてデータ信号並びに制御信号を伝送する際の
時間t=3における状態を示す図である。
【図7】図1に示された簡単な構造の実施例のネットワ
ークにおいてデータ信号並びに制御信号を伝送する際の
時間t=4における状態を示す図である。
【図8】図1に示された簡単な構造の実施例のネットワ
ークにおいてデータ信号並びに制御信号を伝送する際の
時間t=5における状態を示す図である。
【図9】図1に示された簡単な構造の実施例のネットワ
ークにおいてデータ信号並びに制御信号を伝送する際の
時間t=6における状態を示す図である。
【図10】図1に示された簡単な構造の実施例のネット
ワークにおいてデータ信号並びに制御信号を伝送する際
の時間t=7における状態を示す図である。
【図11】図1に示された簡単な構造の実施例のネット
ワークにおいてデータ信号並びに制御信号を伝送する際
の時間t=8における状態を示す図である。
【図12】図1に示された簡単な構造の実施例のネット
ワークにおいてデータ信号並びに制御信号を伝送する際
の時間t=9における状態を示す図である。
【図13】図1に示されたシステムに採用されているメ
ーセージ・パケットの構成を図示する説明図である。
【図14】図1に示された新規な双方向ネトワークに用
いられる能動ロジック・ノード並びにクロック回路に関
する、同ネットワークの更なる細部構造を示すブロック
図である。
【図15】前記能動ロジック・ノードの内部の様々な動
作状態を示す、状態図である。
【図16】前記能動ロジック・ノードの内部において行
なわれるエンド・オブ・メッセージの検出動作を説明す
るためのタイミング・ダイアグラムである。
【図17】図14に示したクロック回路の動作を説明す
るための、タイミング波形のダイアグラムである。
【図18】図1に示したシステムに使用することのでき
る、高速ランダム・アクセス・メモリを含むプロセッサ
・モジュールのブロック図である。
【図19】図18に示したマイクロプロセッサ・システ
ムのメインRAMの内部のアドレスの割当て状況を示す
図である。
【図20】図18に示された高速ランダム・アクセス・
メモリの、1つの参照部分の内部におけるデータの配置
態様のブロック図である。
【図21】前記システムに用いられているメッセージの
優先順位プロトコルを示すチャートである。
【図22】トランザクション・ナンバのワード・フォー
マットを図示する説明図である。
【図23】図1及び図18に示したシステムの内部に備
えられている各プロセッサモジュールに用いられている
インターフェイス回路のブロック図の左半分を示す図で
ある。
【図24】図1及び図18に示したシステムの、その内
部に備えられている各プロセッサモジュールに用いられ
ているインターフェイス回路のブロック図の右半分を示
す図である。
【図25】図23及び図24に示したインターフェイス
回路において用いられている様々なクロック波形及びフ
ェイズ波形を図示するタイミング・ダイアグラムであ
る。
【図26】転送先選択ワードに基づいてマッピングを行
なうための、メモリ構成の更なる詳細とマッピングの一
方式とを図示するブロック図である。
【図27】入力データ・メッセージを受信した際のステ
ータスの変化を示す、簡略化したフローチャートであ
る。
【図28】メッセージの受信が行なわれているときのス
テータスの変化を示すフローチャートの前半部分を示す
図である。
【図29】メッセージの受信が行なわれているときのス
テータスの変化を示すフローチャートの後半部分を示す
図である。
【図30】様々なプライマリ・メッセージとそれらに対
して発生される種々の応答との間の関係、並びに、様々
なプライマリ・メッセージとそれらに応答して実行され
る動作との間の関係を示す表である。
【図31】メッセージの送信が行なわれているときのス
テータスの変化を示すフローチャートの前半部分を示す
図である。
【図32】メッセージの送信が行なわれているときのス
テータスの変化を示すフローチャートの後半部分を示す
図である。
【図33】本発明に係るスタンド・アローン型システム
のブロック図である。
【図34】前記高速ランダム・アクセス・メモリに格納
されている送信メッセージと受信メッセージを示す図で
ある。
【図35】データベース・システム内の複数の異なった
プロセッサの間にデータベースの夫々の部分を分配する
ための、分配方式の可能な一例を示す簡略化した模式図
である。
【符号の説明】
10、12 ホスト・コンピュータ、14、16 イン
ターフェイス・プロセッサ、18〜23 アクセス・モ
ジュール・プロセッサ、24 マイクロプロセッサ、2
6 高速ランダム・アクセス・メモリ、28 制御ロジ
ック、32 ディスク・コントローラ、38〜43 デ
ィスク・ドライブ、50 能動ロジック・ネットワーク
構造、54 ノード、56 クロック・ソース、12
0、120’ ネットワーク・インターフェイス、10
3 マイクロプロセッサ・システム
───────────────────────────────────────────────────── フロントページの続き (72)発明者 リチャード・クラレンス・ストックトン アメリカ合衆国カリフォルニア州ノース リッジ・メリオン・ドライブ19005 (72)発明者 マーチン・キャメロン・ワトソン アメリカ合衆国カリフォルニア州ノース リッジ・キャブリオール・アベニュー 11112 (72)発明者 デビッド・クロンショウ アメリカ合衆国カリフォルニア州トラン ス・タワーズ・ストリート5635 (72)発明者 ジャック・エバート・シエマー アメリカ合衆国カリフォルニア州ロス・ アンゼルス・オーシャーノ・ドライブ 270 (56)参考文献 特開 昭51−81537(JP,A) 特開 昭56−8950(JP,A)

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】 マルチプロセッサ・システムを構成する
    複数のプロセッサ間における複数のメッセージの送受信
    を制御する方法であって、 前記プロセッサの各々において、送出するメッセージの
    中にメッセージの転送先を参照するための属性値を挿入
    するステップと、 連続する複数のタイム・フレーム内において、前記属性
    値を内包している互いに競合する複数のメッセージを互
    いに同時に送出するステップと、 同時に送出された前記競合するメッセージの内、対を成
    す互いに競合する2つのメッセージの間の優先権の判定
    を、メッセージの内容に基づいて最終的に1つの優先メ
    ッセージが得られるまで行うステップと、 前記優先メッセージを前記複数のプロセッサの全てへ同
    時に一括送信するステップと、 前記複数のプロセッサの各々において、前記属性値に基
    づいて当該属性値を内包しているメッセージを当該プロ
    セッサが受入れるか否かを判定するステップと、 からなる、マルチプロセッサ・システムにおけるメッセ
    ージの通信制御方法。
  2. 【請求項2】 前記属性値は、個別にプロセッサを指定
    するための情報と、プロセッサのクラスを指定するため
    の情報と、ハッシュ値を示す情報とを含む固定長ワード
    からなる、請求項1に記載のマルチプロセッサ・システ
    ムにおけるメッセージの通信制御方法。
JP3263081A 1981-04-01 1991-09-12 マルチプロセッサ・システムにおけるメッセージの通信制御方法 Expired - Lifetime JP2651473B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US250022 1981-04-01
US250094 1981-04-01
US06/250,094 US4445171A (en) 1981-04-01 1981-04-01 Data processing systems and methods
US06/250,022 US4412285A (en) 1981-04-01 1981-04-01 Multiprocessor intercommunication system and method

Publications (2)

Publication Number Publication Date
JPH05324573A JPH05324573A (ja) 1993-12-07
JP2651473B2 true JP2651473B2 (ja) 1997-09-10

Family

ID=26940538

Family Applications (13)

Application Number Title Priority Date Filing Date
JP1234495A Expired - Fee Related JPH0792791B2 (ja) 1981-04-01 1989-09-07 マルチプロセッサ・システムにおけるメッセージ通信制御システム
JP1234494A Expired - Lifetime JP2607696B2 (ja) 1981-04-01 1989-09-07 マルチプロセッサシステム及びその利用方法
JP1234493A Granted JPH02118747A (ja) 1981-04-01 1989-09-07 メッセージ伝送ネットワーク、バス・ネットワーク、及びメッセージを複数のプロセッサヘブロードカストする方法
JP1234492A Granted JPH02132560A (ja) 1981-04-01 1989-09-07 リレーショナル・データベース・マシン、データベース・コンピュータ・システム及びデータベース管理システムとその方法
JP1234498A Expired - Lifetime JPH0619762B2 (ja) 1981-04-01 1989-09-07 ネットワーク・システムのためのノード回路
JP1234491A Expired - Lifetime JP2555450B2 (ja) 1981-04-01 1989-09-07 マルチプロセッサ・システム
JP1234497A Expired - Fee Related JPH0750462B2 (ja) 1981-04-01 1989-09-07 マルチプロセッサ・システム
JP1234499A Granted JPH02118709A (ja) 1981-04-01 1989-09-07 データ伝送システム及びクロッキングシステム
JP1234500A Expired - Lifetime JPH0750463B2 (ja) 1981-04-01 1989-09-07 マルチプロセッサ・システムにおけるメッセージ送信及び受信方法
JP1234496A Expired - Lifetime JP2560118B2 (ja) 1981-04-01 1989-09-07 コンピュ−ティング・システム
JP1234501A Expired - Lifetime JP2555451B2 (ja) 1981-04-01 1989-09-07 マルチプロセッサ・システムにおけるメッセ−ジ・パケットのマ−ジ方法
JP3263082A Expired - Lifetime JP2628811B2 (ja) 1981-04-01 1991-09-12 マルチプロセッサ・システムにおけるタスクの処理及びメッセージの送受信制御方法
JP3263081A Expired - Lifetime JP2651473B2 (ja) 1981-04-01 1991-09-12 マルチプロセッサ・システムにおけるメッセージの通信制御方法

Family Applications Before (12)

Application Number Title Priority Date Filing Date
JP1234495A Expired - Fee Related JPH0792791B2 (ja) 1981-04-01 1989-09-07 マルチプロセッサ・システムにおけるメッセージ通信制御システム
JP1234494A Expired - Lifetime JP2607696B2 (ja) 1981-04-01 1989-09-07 マルチプロセッサシステム及びその利用方法
JP1234493A Granted JPH02118747A (ja) 1981-04-01 1989-09-07 メッセージ伝送ネットワーク、バス・ネットワーク、及びメッセージを複数のプロセッサヘブロードカストする方法
JP1234492A Granted JPH02132560A (ja) 1981-04-01 1989-09-07 リレーショナル・データベース・マシン、データベース・コンピュータ・システム及びデータベース管理システムとその方法
JP1234498A Expired - Lifetime JPH0619762B2 (ja) 1981-04-01 1989-09-07 ネットワーク・システムのためのノード回路
JP1234491A Expired - Lifetime JP2555450B2 (ja) 1981-04-01 1989-09-07 マルチプロセッサ・システム
JP1234497A Expired - Fee Related JPH0750462B2 (ja) 1981-04-01 1989-09-07 マルチプロセッサ・システム
JP1234499A Granted JPH02118709A (ja) 1981-04-01 1989-09-07 データ伝送システム及びクロッキングシステム
JP1234500A Expired - Lifetime JPH0750463B2 (ja) 1981-04-01 1989-09-07 マルチプロセッサ・システムにおけるメッセージ送信及び受信方法
JP1234496A Expired - Lifetime JP2560118B2 (ja) 1981-04-01 1989-09-07 コンピュ−ティング・システム
JP1234501A Expired - Lifetime JP2555451B2 (ja) 1981-04-01 1989-09-07 マルチプロセッサ・システムにおけるメッセ−ジ・パケットのマ−ジ方法
JP3263082A Expired - Lifetime JP2628811B2 (ja) 1981-04-01 1991-09-12 マルチプロセッサ・システムにおけるタスクの処理及びメッセージの送受信制御方法

Country Status (1)

Country Link
JP (13) JPH0792791B2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0522488B1 (en) * 1991-07-10 2002-02-20 Hitachi, Ltd. Method of sorting on distributed database system and method of accessing thereto
JPH0540472U (ja) * 1991-11-07 1993-06-01 大建工業株式会社 外装材取付け部材
JP2638441B2 (ja) * 1993-09-09 1997-08-06 日本電気株式会社 リレー式ファイル転送方式
JP2843768B2 (ja) * 1994-08-22 1999-01-06 日本電気株式会社 データベースアクセス制御方式
DE102004013629B4 (de) * 2004-03-19 2023-06-01 Volkswagen Ag Kommunikationssystem für ein Kraftfahrzeug
JP5093986B2 (ja) * 2005-01-19 2012-12-12 富士通株式会社 プロセッサ間通信方法及びプロセッサ間通信装置
JP5738811B2 (ja) * 2012-08-29 2015-06-24 京セラドキュメントソリューションズ株式会社 マルチプロセッシングシステムにおけるオブジェクト間通信装置
JP5738812B2 (ja) * 2012-08-29 2015-06-24 京セラドキュメントソリューションズ株式会社 マルチプロセッシングシステムにおけるオブジェクト間通信装置
CN113487151A (zh) * 2021-06-23 2021-10-08 广东润建电力科技有限公司 基于5g消息的智能用电与需求侧响应方法、系统及装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS615177B2 (ja) * 1975-01-16 1986-02-17 Hitachi Ltd
US4251879A (en) 1979-05-02 1981-02-17 Burroughs Corporation Speed independent arbiter switch for digital communication networks
JPS589624B2 (ja) * 1979-07-03 1983-02-22 日本電信電話株式会社 同報通信方式
US4412285A (en) * 1981-04-01 1983-10-25 Teradata Corporation Multiprocessor intercommunication system and method
JPH0697823B2 (ja) * 1988-07-15 1994-11-30 三菱電機株式会社 電動機及びその製造方法

Also Published As

Publication number Publication date
JPH02118763A (ja) 1990-05-07
JPH0750463B2 (ja) 1995-05-31
JPH02140035A (ja) 1990-05-29
JPH02118760A (ja) 1990-05-07
JPH02132560A (ja) 1990-05-22
JP2555451B2 (ja) 1996-11-20
JPH0792791B2 (ja) 1995-10-09
JPH0750462B2 (ja) 1995-05-31
JPH02118762A (ja) 1990-05-07
JPH02118709A (ja) 1990-05-07
JPH0619762B2 (ja) 1994-03-16
JP2560118B2 (ja) 1996-12-04
JPH0413739B2 (ja) 1992-03-10
JP2555450B2 (ja) 1996-11-20
JPH02138656A (ja) 1990-05-28
JPH0245221B2 (ja) 1990-10-08
JP2628811B2 (ja) 1997-07-09
JPH05324573A (ja) 1993-12-07
JPH02118747A (ja) 1990-05-07
JPH02118761A (ja) 1990-05-07
JP2607696B2 (ja) 1997-05-07
JPH02118756A (ja) 1990-05-07
JPH0426726B2 (ja) 1992-05-08
JPH02118759A (ja) 1990-05-07
JPH05290002A (ja) 1993-11-05

Similar Documents

Publication Publication Date Title
EP0069438B1 (en) A multiprocessor system, a system and method for intercommunicating between processors, a system for effecting data transfer, a system for controlling routing of messages, and an arrangement for ascertaining a global state of readiness of a system
US5276899A (en) Multi processor sorting network for sorting while transmitting concurrently presented messages by message content to deliver a highest priority message
EP0070083A2 (en) Computing apparatus and method of processing message packets
Thurber et al. A systematic approach to the design of digital bussing structures
JP2002517035A (ja) リアルタイムスケジューリングロジックおよび時間確定的アーキテクチャを使用する分散コンピューティング環境
WO2014008495A2 (en) Managing dependencies between operations in a distributed system
WO2020232875A1 (zh) 一种基于Actor模型的任务调度方法、装置及存储介质
JP2651473B2 (ja) マルチプロセッサ・システムにおけるメッセージの通信制御方法
Sha et al. Real-time computing with IEEE futurebus+
Reynolds et al. Isotach networks
CA1198523A (en) Multi-processor intercommunication system and method
Jensen A distributed function computer for real-time control
Lin et al. A dynamic object allocation and replication algorithm for distributed systems with centralized control
US11947517B1 (en) Stream-based transaction processing
Sharma Robust Replication Control Using Primary Copy Method
Sharma Time warp simulator designs for clusters of smps
JPH0418339B2 (ja)