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

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

Info

Publication number
JPH02118756A
JPH02118756A JP1234495A JP23449589A JPH02118756A JP H02118756 A JPH02118756 A JP H02118756A JP 1234495 A JP1234495 A JP 1234495A JP 23449589 A JP23449589 A JP 23449589A JP H02118756 A JPH02118756 A JP H02118756A
Authority
JP
Japan
Prior art keywords
processor
message
processors
map
messages
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.)
Granted
Application number
JP1234495A
Other languages
English (en)
Other versions
JPH0792791B2 (ja
Inventor
Philip M Neches
フイリツプ・マルコム・ネチス
David H Hartke
デビツド・ヘンリイ・ハートク
Richard C Stockton
リチヤード・クラレンス・ストツクトン
Martin C Watson
マーチン・キヤメロン・ワトソン
David Cronshaw
デビツド・クロンシヨウ
Jack E Shemer
ジヤツク・エバード・シエマー
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.)
Teradata Corp
Original Assignee
Teradata 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 Teradata Corp filed Critical Teradata Corp
Publication of JPH02118756A publication Critical patent/JPH02118756A/ja
Publication of JPH0792791B2 publication Critical patent/JPH0792791B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 (産業上の利用分野) マルチプロセッサ・システム、同システムにおけるメツ
セージの転送経路制御システムとその方法及びデータ処
理方法に関するものである。
(従来の技術) 高い信顆性を備えた形式の電子計算機(エレクトロニッ
ク・コンピュータ)が出現して以来、この技術分野に従
事する者が考察を重ねてきたシステムに、複数のコンピ
ュータを使用するシステムであってそれらのコンピュー
タが相互に関連性を保ちつつ動作することによって、所
与の1つのタスクの全体が実行されるようにしたシステ
ムがある。そのようなマルチプロセッサ・システムのう
ちのあるシステムでは、1つの大型コンピュータが、そ
れ自身の優れた速度と容重とを利用してプログラムの複
雑な部分を実行すると共に、複雑さの程度の低いタスク
や緊急度の低いタスクについては、それを小型で速度の
遅い衛星プロセッサに委任しく割当て)、それによって
、この大型コンピユータの負担やこの大型コンピュータ
に対するリクエストの量が減少するようにしたものがあ
る。この場合、大型コンピュータは、サブタスクの割当
てを行なうこと、小型プロセッサ(=上記衛星プロセッ
サ)を常に作動状態に保つこと、それらの小型プロセッ
サの使用可能性と動作効率とを確認すること、それに統
一された結果が得られるようにすることを担当しなけれ
ばならない。
以上とは別の方式を採用している別種のマルチプロセッ
サ・システムのなかには、多数のプロセッサと1つの共
通バス・システムとを使用するシステムであってそれら
の複数のプロセッサには本質的に互いに等しい機能が付
与されているシステムがある。この種のシステムにおい
ては、しばしば、他の部分からは独立した制御用コンピ
ュータないし制御システムを用いて、所与のサブタスク
に関する個々のプロセッサの使用可能性並びに処理能力
を監視することと、プロセッサ間のタスク及び情報の転
送経路を制御することとが行なわれている。また、プロ
セッサそれ自体が、他のプロセッサのステータス並びに
利用可能性の監視と、メツセージ及びプログラムの転送
経路の決定とを行なえるように、夫々のプロセッサの構
成及び動作が設定されているものもある。以上の種々の
システムに共通する重大な欠点は、オーバーヘッド機能
及び保守機能を実行するために、ソフトウェアが必要と
され且つ動作時間が消費されるということにあり、そし
てそれによって、本来の目的の実行に影響が及ぶことに
なる。転送経路の決定及び監視に関する仕事量が、それ
らの仕事に関与するプロセッサの総数の2次の関数で増
加して、ついにはオーバーヘッド機能のために不適当な
迄の努力が費やされるようになることもある。
以下の数件の特許公報は従来技術の例を示すものである
米国特許公報第3,962,685号 −ベル・イール(Belle l5le)同第3,96
2,706号 −デニス(Dennis)地間第4,0
96,5δ6号 −ボーリー(Borie)地間第4,
096,567号 −ミラード(Millard)地間
第4,130,865号 −ハート(Heart)地間
第4,136,386号 一アヌーンチアータ(Annunxiata)地間第4
,145,739号 −ダニング(DunnIng)地
間第4,151,592号 −スズキ(Suzuki)
他初期のバイナック(Btnac  : 2個の互いに
パラレルに接続されたプロセッサを用いる)や、それに
類似した種々のシステムが使用されていた頃から既に、
マルチプロセッサ方式は冗長性を備えた実行能力を提供
するものであって、そのため動作するシステムの全体の
信頼性を著しく向上させ得るものであるということが認
識されていた。実際にマルチプロセッサ・システムを構
成するということに対しては、これまでのところ、かな
りの制約が存在しているが、その制約は主としてソフト
ウェアが膨大なものとなってしまうことに起因する制約
である。にもかかわらず、例えばリアルタイムの用途等
のように、システムのダウンタイム(運転休止時間)が
容認され得ないような種々の状況においては、マルチプ
ロセッサ動作が特に有利であるため、これまでに様々な
マルチプロセッサ・システムが開発されてきたが、ただ
し、それらのシステムは動作自体は良好であるが、オー
バーヘッドのためにソフトウェアと動作時間のかなりの
分量を割かなければならないものであった。そのような
従来のシステムは、米国特許公報第3,445,822
号、同第3,566.363号、及び同第3.593,
300号にその具体例が示されている。これらの特許公
報はいずれも、複数のコンピュータがそれらの間で共用
される1つのメイン・メモリをアクセスするようにした
システムに関するものであり、このシステムにおいては
更に、タスクを個々のプロセッサに好適に割当てるため
に、処理能力と処理要求量とが比較されるようになって
いる。
従来技術の更に別の例としては、米国特許公報第4,0
99,233号がある。この公報のシステムでは、複数
のブロモ・・ノサが1つのバスを共用しておリ、また、
バッファ・レジスタを内蔵している制御ユニットを用い
て送信側ミニプロセッサと受信側ミニプロセッサとの間
のデータ・ブロックの転送が行なわれる。このシステム
のコンセプトは、欧州において分散型の郵便物分類シス
テムに利用されている。
米国特許公報第4,228,496号は、商業的に成功
したマルチプロセッサ・システムに関するものであり、
このシステムでは、複数のプロセッサの間に設けられた
複数のバスがバス・コントローラに接続されており、こ
のバス・コントローラが、データ送出状況の監視と、プ
ロセッサ間で行なわれる複数のデータ転送に対する優先
順位の判定を行なっている。また、各々のプロセッサは
、複数の周辺装置のうちのある1つの装置を制御するよ
うに接続可能となっている。
ゼロックス、ヒユーレット・パラカード、及びインテル
によって共同で推進されている「イーサネット」システ
ム(”Etherneピsystem )  (米国特
許公報第4,063,220号及び同第4.Q’19,
024号)は、複数のプロセッサ並びに周辺装置の間の
相互通信の問題に対処するための、更に別の方式を提示
している。全てのユニット(=プロセッサや周辺装置等
)はそれらのユニットの間で共用される多重アクセス・
ネットワークに接続されており、そしてそれらのユニッ
トは優先権を獲得すべく互いに競合することになる。衝
突検出は時刻優先方式で行なわれており、そのために、
大域的な処理能力を制御することと、コーデイネートす
ることと、明確に把握することとが、容易でなくなって
いる。
以上に説明した種々のシステムをそれらの細部まで完全
に理解するためには、以上に言及した特許公報やその他
の関連参考文献を詳細に分析する必要がある。しかしな
がら、タスクの分担が行なわれる場合にはそれらのシス
テムはいずれも、データ転送に関する優先権の判定やプ
ロセッサの選択を行なうために膨大な量の相互通信と管
理制御とが必要とされるということだけは、簡単に概観
するだけでも理解されよう、システムを拡張して更に多
くのプロセッサを含むようにする場合にどのような問題
が発生するかは異なったシステムの夫々ごとに違ってく
るため一様ではないが、しかしながら以上のシステムは
いずれも、そのような拡張を行なえばシステム・ソフト
ウェアや応用プログラミング、ハードウェア、或いはそ
れら3つの全てが複雑化することになる。また、若干の
考察により理解されることであるが、1組ないし2組の
論理的に受動的なオーミック・バスが採用されているた
めに、それに固有の制約がマルチプロセンサ・システム
の規模と能力とに対して課せられている。相互通信をよ
り容易に行なえるようにするために採用可能な技法には
様々なものがあり、その−例としては、最近発行された
米国特許公報第4,240,143号に示されていると
ころの、サブシステムを大域的資源にグループ分けする
という技法等があるが、しかしながら、非常に多くのプ
ロセッサが用いられている場合には当然のことながら利
用できるトラフィックの量はその限界に達してしまい、
また、遅延時間が様々な値を取るということによって、
克服し難い問題が生じている。1個ないし複数個のプロ
セッサがロック・アウト状態ないしデッドロック状態に
なるという状況が発生することもあり、そのような状況
に対処するには、問題を解決するための更なる回路とソ
フトウェアとが必要とされる。以上から、プロセッサの
個数を、例えば1024個というような個数にまで大幅
に拡張することは、従来は実際的でなかったことが明ら
かである。
多くの様々な応用用途において、以上に説明した既存の
諸技法の制約から逃れて、最新の技法を最大源に利用す
ることが望まれている。現在採用可能な技法のうちで最
も低コストの技法は、大量生産されているマイクロプロ
セッサと、大容量の回転ディスク型の記憶装置とを基礎
とした技法であり、そのような記憶装置の例としては、
密閉式ケースの内部においてヘッドとディスクとの間の
間隔を非常に小さいものとした、ウィンチエスタ・テク
ノロジー製の装置等がある。マルチプロセッサ・システ
ムを拡張するに際しては、ソフトウエアが不適当な迄に
複雑化することなくシステムを拡張できることが要望さ
れており、更には、ソフトウェアがその拡張に伴なって
複雑化することが全くないようにして拡張できることす
ら要望されている。また更に、機能の全体を、限定され
たないしは反復して実行される複数の処理タスクへと動
的に細分できる分散型構造をもつような特徴を有する計
算機問題を処理できる能力が要望されている。略々全て
のデータベース・マシンが、そのような問題分野に属し
ており、また、この問題分野には更に、ソート処理、パ
ターンの認識及び相関算出処理、デジタル・フィルタリ
ング処理、大規模マトリクスの計算処理、物理的な系の
シュミレーション、等々のその他の典型的な問題例も含
まれる。これらのいずれの処理が行なわれる状況におい
ても、個々に処理される複数のタスクを比較的簡明なも
のとし、しかもそれらのタスクを広範に分散することが
要求され、そのため、瞬間的タスク負荷が大きなものと
なる。そのような状況が、従来のマルチプロセッサ・シ
ステムに非常な困難を伴なわせていたのであり、その理
由は、そのような状況はオーバーヘッドに費やされる時
間とオーバーヘッドのためのソフトウェアの量とを増大
させる傾向を有していること、並びに、システムを構成
する上で実際上の支障が生じてくることにある0例えば
受動的な共用バスが採用されている場合には、伝播速度
並びにデータ転送所要時間が、トランザクションを処理
する上での可能処理速度に対する絶対的な障壁を成して
いる。
従ってデータベース・マシンは、マルチプロセッサ・シ
ステムの改良が必要とされていることの好い例である。
大規模データベース・マシンを構成する上での基本的な
方式にはこれまでに3種類の方式が提案されており、そ
れらは、階層方式、ネットワーク方式、それにリレーシ
ョナル方式である。これらのうちでリレーショナル方式
のデータベース・マシンは、関係(リレーション)を示
す表を用いることによって、ユーザが複雑な系の中の所
与のデータに容易にアクセスできるようにするものであ
り、この方式のマシンは、強力な潜在能力を有するもの
であると認識されている。この従来技術について説明し
ている代表的な刊行物には、例えばI EEEコンピュ
ータ・マガジンの1979年3月号の第28頁に掲載さ
れている、D、C,P、スミス並びにJ、M、スミスに
よる「リレーショナル・データベース・マシン」という
表題の論文(article entitled ”R
e1ationalData  Ba5e  Mach
ine  、  published  by  D、
C,PSmith and J、M、 5Illith
、 in the March 1979issue 
of IEEE Computer magazine
、 p−28)、米国特許公報第4,221,003号
、並びに同公報中に引用されている諸論文等がある。
また、ソーティング・マシンは、コンピユーテイング・
アーキテクチャの改良が必要とされていることの好い例
である。ソーティング・マシン理論の概説は、D、E、
クヌース(にnuth)著「サーチング及びソーティン
グ」の第220〜第246頁 (”Searching
  and  Sorting”  by  D、E、
  Knuth。
pp、220−246. published (19
73) by Addison−Wesley Pub
lishingにO,、Reading、 Massa
chu−setts)に記載されている。この文献には
様々なネットワーク並びにアルゴリズムが開示されてお
り、それらの各々に付随する制約を理解するためにはそ
れらを詳細に考察しなけらばならないが、ただしそれら
について−数的に言えることは、それらはいずれも、ソ
ーティングという特定の目的だけを指向した、特徴的に
複雑な方式であるということである。更に別の例として
、L、A、モラー(L、^、Mo1laar )によっ
て提示されているものがあり、これは、rIEEE・ト
ランザクション・オン・コンピュータJ、C−28巻、
第6号(1979年6月)、第406〜413頁に掲載
されている「リスト・マーチング・ネットワークの構造
」という表題の論文(article entitle
d”A Design for a Li5t Mer
ging Network”、 inしhe  IEE
E  Transactions  on  Co[o
puters、  VolC−28No、 6. Ju
ne 1979 at pp、 40ft−41:l 
)に記載されている。この論文に提案されているネット
ワークにおいては、ネットワークのマージ・エレメント
を外部から制御するという方式が採用されており、また
、このネットワークは、特殊な機能を実行するためのプ
ログラミングを必要としている。
汎用のマルチプロセッサ・システムが実行することがで
きなければならない諸機能には、種々の方式でサブタス
クを分配する機能、サブタスクを実行しているプロセッ
サのステータスを確認する機能、メツセージのマージと
ソートを行なう機能、データを訂正及び変更する機能、
それに、いつ及びどのように資源が変化したかを(例え
ば、あるプロセッサがいつオンラインから外れ、いつオ
ンラインに復帰したかを)確認する機能等がある。以上
のような機能を実行するために、これまでは、オーバー
ヘッドのための過大なソフトウェアとハードウェアとを
用いる必要があった。
−例を挙げるならば、例えばデータベース・マシン等の
マルチプロセッサ・システムにおいては、プロセッサ間
のメツセージの転送経路を指定するに際して、特定の1
つのプロセッサを転送先として選択したり、或いは1つ
のクラスに属する複数のプロセッサを選択したり、また
更には、プロセッサそのものを指定するのではなく、ハ
ツシュ方式等によってプロセッサに分配されているデー
タベースの部分を指定するという方法で、転送先プロセ
ッサを選択するということが、しばしば必要となる。公
知のシステムの中には前置通信シーケンスを利用してい
るものがあり、それによって送信側プロセッサと、1個
或いは複数の特定の受信側プロセッサとの間のリンケー
ジを確立するようにしている。このリンケージを確立す
るためにはリクエストや肯定応答を何回も反復して送出
しなければならず、また起こり得るデッドロック状態を
克服するために、更なるハードウェア並びにソフトウェ
アを使用しなければならない。前首通信シーケンスを利
用していないシステムでは、1つのプロセッサによって
、或いはバス・コントローラによって管制が行なわれて
おり、この管制は、送信側プロセッサが送信準備完了状
態にあること、受信側プロセッサが受信準備完了状態に
あること、これらのプロセッサの間のリンケージからそ
の他のプロセッサが締め出されていること、並びに無関
係な送信が行なわれていないことを、確認するためのも
のである。この場合にもまた、オーバーヘッドに依存す
ることと、デッドロックを回避するために複雑とならざ
るを得ないこととによって、システムを拡張する(例え
ばプロセッサの個数を16個以上にする)につれて保守
機能が不適当な迄に膨張してしまうのである。
最近のマルチプロセッサ・システムに要求されている要
件の更に別の例として、1個或いは複数個のプロセッサ
によって実行されているサブタスクのステータスを、シ
ステムが確実に判定するための方法に関係するものがあ
る。基本的に要求されている点は、所与のプロセッサに
対してそのプロセッサのステータスについての問合せを
行なう能力を備えていなければならないということであ
り、しかも、そのステータスがその間合せよって彫りを
及ぼされることがないように、且つ、応答の内容に多義
性が生しることがないように、その問合せが行なわれな
ければならないということである。ステータス表示のテ
ストとセットとを中断のない一連の操作として行なう機
能を特徴的に表わすための用語として、現在当業界にお
いては「セマフォ(semaphore) Jという用
語が使用されている。このセマフォという特徴を備えて
いることは望ましいことであるが、ただし、この特徴を
組込むに際しては、実行効率の低下やオーバーヘッドの
負荷の増加を伴なわないようにしなければならない。こ
のようなステータスの判定は、更にマルチプロセッサ・
システムにおいてソート/マージ動作を実行する際に極
めて重要なものとなるが、それは、大きなタスクの中に
含まれている複数のサブタスクの夫々の処理結果を組み
合わせるためには、それらのサブタスクが適切に処理完
了された後でなければ1つに組み合わせることができな
いからである。更に別の要件として、プロセッサがその
「現在」ステータスを報告できなければならないこと、
そしてサブタスクの実行は、マルチプロセッサの動作シ
ーケンスに対して割込みと変更とが繰返されても、ただ
1回だけ行なわれるようにしなけわばならないというこ
とがある。
殆どの既存のシステムでは、プロセッサの実行ルーチン
が中断可能とされているためにこの点に関して重大な問
題が生じている。即ち、容易に理解されることであるが
、複数のプロセッサが互いに関連を有する複数のサブタ
スクを実行しているような場合には、それらの個々のプ
ロセッサのレディネス状態の程度(=どのような動作が
可能な状態にあるかの程度)についての間合せとそわに
対する応答とに関わる動作シーケンスが膨大なオーバー
ヘッドを必要とすることがあり、しかも、そのための専
用のオーバーヘッドは、プロセッサの個数が増大するに
従っていよいよ不適当なまでに増大する。
(発明が解決しようとする問題点) 以上に述べたところの例を示す従来のマルチプロセッサ
・システムにおける典型的な短所は、いわゆるr分散更
新」の問題に関するものであり、この問題は即ち、複数
個の処理装置の各々にそのコピーが格納されている情報
を更新する必要があるということである。ここで言う情
報とは、データ・レコードから成る情報の場合もあり、
また、システムの動作を制御するために用いられる情報
の場合もある。このシステムの動作の制御とは、例えば
、必要なステップが誤って重複実行されたり全く実行さ
れなかったりすることのないようにして、処理が開始さ
れ、停止され、再開され、−時中断され、或いはロール
・バックないしロール・フィワードされるようにするこ
と等の制御のことである。従来のシステムにおいては、
分散更新の問題の種々の解決法はいずれもかなりの制約
を伴なうものであった。それらの解決法の中には、−度
に2個のプロセッサだけを対象としているに過ぎないも
のもある。また更に別の解決法として相互通信プロトコ
ルを利用しているものも幾つかあるが、それらのプロト
コルは非常に複雑なため、現在でも、それらのプロトコ
ルが適切なものであることを数学的厳密さをもって証明
することには非常な困難が伴なっている。
それらのプロトコルが複雑になっている原因は、「大域
的セマフォ」を構成している、中断されることのない1
回の動作により全てのプロセッサにおいて「テスト・ア
ンド・セット」されるという外面的性質を持つ制御ビッ
トを、備える必要があるということにある。斯かる制御
ビットが複数の別々のプロセッサの内部に夫々に設けら
れ、しかもそれらのプロセッサの間の通信に付随する遅
延時間がまちまちであるため、不可避的に不完全なもの
となり得る通信チャネルによってノイズか発生され、ま
た更にエラーの発生率も増大することになる。従って「
中断されることのない1回の動作」という特徴を備える
ことは、その1つの動作を構成している複数の部分々々
が、夫々に多種多様で、しかも中断可能であり、そして
それらを同時にはアクセスすることができず、更にはそ
れらがアクセスとアクセスとの間に不調を生じがちであ
る場合には、困難を伴なうものであるということが、当
業者には容易に理解されよう。
(問題点を解決するための手段) 本発明は、要約すわば、転送先選択ワードと呼ばれる形
態の数種類の転送経路指定情報のうちの1つないし複数
種類の情報を内包しているメツセージを、複数のプロセ
ッサのうちの異なったプロセッサ、ないしはそれらのう
ちの幾つかのプロセッサの組合せへ伝送するためのシス
テム及び方法を提供するものである。プロセッサはイン
ターフェイスを有しており、このインターフェイスは、
メモリを含むと共に、メツセージに内包されている情報
に基づいて個々のプロセッサがそのメツセージに内包さ
れているデータないし命令を処理ないし実行すべきか否
かを直接的且つ効率的に判定するものである。
(作用) 以上の構成により、個々のプロセッサをただの1つだけ
をアドレスすることも、複数のプロセッサを1つのクラ
スとしてアドレスすることも、また、ハッシング・モー
ドを利用して個々のプロセッサが分担しているデータベ
ースの部分を指定することも、いずれも可能となってい
る。この特徴は、従来の方式の、メツセージの中にアド
レスを内包されると共に各装置がメツセージの中に含ま
ねている自身のアドレスを識別するという方式ど比較し
て、はるかに精緻で強力なものである。
(以下余白) (実施例) 以下、この発明の実施例を図面を参照して説明する。
(データベース管理システム) 第1図に総括的に示されているシステムは、本発明の概
念をデータベース管理に応用したものを具体例として示
すものである。更に詳細に説明すると、このシステムは
一つまたは複数のホスト・コンピュータ・システム10
.12と協働するように構成されており、それらのホス
ト・コンピュータ・システムは、例えばIBM370フ
ァミリーまたはDEC−FDP−11フアミリーに属す
るコンピュータ・システム等であって、この具体例の目
的に沿うように既存の一般的なオペレーティング・シス
テム及び応用ソフトウェアで動作するようになっている
。IBMの用語法に拠れば、ホスト・コンピュータ・と
データベース・コンピュータとの間の主要相互通信回線
網はチャネルと呼ばれており、また同じものがDECの
用語法に拠れば「ユニバス」または「マスバス」或いは
それらの用語を多少変形した用語で呼ばれている。
以」二のコンピュ−タ・システムのうちのし)ずれかが
用いられるにせよ、或いは他のメーカーのメインフレー
ム・コンピュータが用いられるにせよ、このチャネル、
即ちバスは、そこへデータベース・タスク及びサブタス
クが送出されるところのオーミックな転送経路、即ち論
理的に受動的な転送経路である。
第1図の具体例は、ホスト・システム10.12に組み
合わされたバックエンド・プロセッサ?’1 合体を示
している。この図のシステムは、タスク及びサブタスク
をホスト・システムから受入れ、莫大なデータベース記
憶情報のうちの該当する部分を参照し、そして適切な処
理済メツセージ或いは応答メツセージを返すというもの
であり、それらの動作は、このバックエンド・プロセッ
サ複合体の構成の如何にかかわらず、それ程高度ではな
いソフトウェアによる管理以外は、ホスト・システムに
は要求されない方式で実行されるようになっCいる。従
って、ユーザのデータベースを新たな方式のマルチプロ
セッサ・システムとして構成することが可能とされてお
り、このマルチプロセッサ・システムにおいては、デー
タを、容量を大幅に拡張することのできるリレーショナ
ル・データベース・ファイルとして組織することができ
、しかもこの拡張は、ユーザのホスト・システムの内部
に備えられているオペレーティング・システムや既存の
応用ソフトウェアを変更する必要なしに行なうことがで
きるようになっている。独立システム(スタンド・アロ
ーン・システム)として構成した具体例について、以下
に第20図を参照しつつ説明する。
当業者には理解されるように、リレーショナル・データ
ベース管理に関する動作機能は、1つの動作機能の全体
を、少なくとも一時的には他から独立して処理可能な複
数の処理タスクへと分割することができるような動作機
能である。その理由は、リレーショナル・データベース
では記憶されている複数のデータ・エントりがアドレス
・ポインタによって相互依存的に連結されていないから
である。更に当業者には理解されるように、リレーショ
ナル・データベース管理以外にも、限定されたタスクな
いし反復実行されるタスクを動的に小区分して独立的に
処理するこという方法を用い得るようなの多くのデータ
処理環境が存在している。従って、本発明の詳細な説明
するに際しては、特に要望が強くまた頻繁に聞かれると
ころの、データベース管理における処理の問題に関連さ
せて説明するが、しかしながら本明細書に開示する新規
な方法並びに構成は、それ以外にも広範な用途を持つも
のである。
大規模なデータ管理システムは、複数のブロセッザ(マ
ルチプル・ブロセッザ)を使用する場合には潜在的な利
点と不可避的に付随する困難との両方を備えることにな
る。何億個にも及ぶ莫大な数のエントリ(記述項)を、
記憶装置の中に、容易にかつ迅速にアクセスできる状態
で保持しなければならない、一方、リレーショナル・デ
ータベースのフォーマットとしておけば、広範なデータ
・エントリ及び情報の取り出し動作を同時並行的に実行
することができる。
たたし、圧倒的大多数のデータベース・システムにおい
ては、データベースの完全性(インテグリテイ)を維持
することが、トランザクション・データを迅速に処理す
ることと同様に重要となっている。データの完全性は、
ハードウェアの故障や停電、それにその他のシステム動
作に関わる災害の、その前後においても維持されていな
ければならない。更には、データベース・システムは、
応用ソフ)・ウェア・コードの中のバグ(bug)をは
じめとするユーザ側のエラーの後始末を行なうために、
データベースを以前の既知の状態に復元できる能力を備
えていなければならない。しかも、データが誤って失わ
れたり入力されたりすることがあってはならず、また、
イベントが新たなデータに関係するものであるのか、或
いは過去のエラーの訂正に関係するものであるのか、そ
れともデータベースの一部分の校正に関係するものであ
るのかに応じて、ある特定のエントリに関係しているデ
ータベース部分の全てが変更されるようになっていなけ
ればならない。
従って、完全性のためには、データのロールパック及び
回復の動作、誤りの検出及び修正の動作、並びにシステ
ムの個々の部分のステータスの変化の検出及びその補償
の動作に加えて、更に、ある程度の冗長度もデータベー
スシステムには必要である。これらの目的を達成するた
めには、システムが多くの異なりた特殊なモードで用い
られなければならないこともあり得る。
さらに、最近のシステムでは、その形式がa雑なものに
なりがちな任意内容の間合せ(discre−tion
ary query)を受入れる能力と、必要とあらば
相互作用的な方式で応答する能力とを持っていることが
要求される。たとえその問合せが複雑なものであったと
しても、システムにアクセスしようとする人達がそのシ
ステムの熟練者であることを要求されるようなことがあ
ってはならない。
大規模生産の業務に関連して生じるかも知れない任意内
容の問合せの例には、次のようなものがある。
A、生産管理を行なう管理者が、在庫品のうちの1品目
についてのリストを要求するのみならず、生産高が前年
同月比で少なくとも10%以上低下している部品の、そ
の月間生産高を超えているような全ての部品在庫を明記
した在庫品リストを、要求するかもしれない。
B マーケティング・マネージャーが、ある特定の勘定
が90日延滞を生じているか否かを間合せるばかりでな
く、特に不景気な地域に在住している過去に120日を
超過したことのある顧客に関して、−律に90日の受取
債権を要求するかもしれない。
C人事担当の重役が、所与の1年間に2週間を超える病
欠のあった従業員の全てを一覧表にすることを求めるの
みならず、直前の5年間のうちの2年以上について、そ
の釣のシーズンの間に1週間以上の病欠をした10年勤
続以上の長期勤続従業員の全てを一覧表にすることを求
めるかもしれない。
以」二の例のいずれにおいても、ユーザは、コンピユー
タに格納されている情報をそれまでにはなされなかった
方法で関連付けることによって、事業において直面して
いる本当の問題を見極めようとするわけである。その問
題を生じている分野に関してユーザが経験を積んでいれ
ば、従ってユーザに直感力と想像力とがあれば、コンピ
ュータの訓練を受けたことのない専門家が、複雑な問合
せを処理できるデータベースシステムを自由自在に使用
できるのである。
最近のマルチプロセッサ・システムは、これらのように
多くの、そしてしばしば互いに相反する要求事項に対し
ては、倉入りに作成されたオーバーヘッド用ソフトウェ
ア・システム並びに保守用ソフトウェア・システムを用
いることによって対応しようと努めているのであるが、
それらのソフトウェア・システムは本質的にシステムを
容易に拡張することの妨げとなるものである。しかしな
がら、拡張性という概念は強く求められている概念であ
り、その理由は、業務ないし事業が成長すると、それに
付随して既存のデータベース管理システムを拡張して使
用を継続することが望まれるようになり、この場合、新
しいシステムとソフトウェアの採用を余(1なくされる
ことは好まれないからである。
マルチプロセッサ・アレイ 第1図について説明すると、本発明に係る典型的な一具
体例のシステムは多数のマイクロプロセッサを含んでお
り、それらのマイクロプロセッサには重要な2つの重要
な種類があり、それらは本明細書では夫々、インターフ
ェイス・プロセッサ(IFP)とアクセス・モジエール
・プロセッサ(AMP)と称することにする。図中には
2個の1FP14.16が示されており、それらの各々
は別々のホスト・コンピュータ10ないし12の入出力
装置に接続されている。多数のアクセス・モジュール・
プロセッサ1 B=23もまた、このマルチプロセッサ
・アレイとも称すべきものの中に含まれている。ここで
の「アレイ」という用語は、おおむね整然とした直線状
或いはマトリックス状に配列された、1組のプロセッサ
・二ニット、集合とされたプロセッサ・ユニット、ない
しは複数のプロセッサ・ユニットを指す、−数的な意味
で用いられており、従って、最近「アレイ・プロセッサ
]と呼ばれるようになったものを意味するのではない。
図中には、このシステムの概念を簡明化した例を示すた
めに僅かに8個のマイクロプロセッサが示されているが
、はるかに多くの(FP及びAMPを用いることが可能
であり、通常は用いられることになる。
IFP14.16及びAMP18〜23は、内部ハスと
周辺装置コントローラにダ、イレクト・メモリ・アクセ
スをするメイン・メモリとを有しているインテル808
6型16ビットマイクロプロセツサを内蔵している。い
ろいろなメーカーの非常に多様なマイクロプロセッサ及
びマイクロプロセッサシステム製品の任意のものを利用
できる。
この「マイクロプロセッサ」は、このアレイの中で使用
できるコンピュータないしプロセッサの形式の具体的な
一例に過ぎず、なぜならば、このシステムの概念は、用
途によつ°C必要とされる計算力がミニコンピユータま
たは大型コンピュータのものである場合には、それらを
使ってうまく利用できるからである。この16ビットの
マイクロプロセッサは、相当のデータ処理力を備え、し
かも広範な種々の利用可能なハードウェア及びソフトウ
ェアのオプションに置換えることができる標準的な置換
え可能な構成とされている、低コストの装置の有利な一
例である。
IFPとAMPとは互いに類似の、能動ロジックと制御
ロジックとびインターフェイスとを含む回路、マイクロ
プロセッサ、メモリ、及び内部バスを採用しており、そ
れらについては夫々第1図と第8図とを参照しつつ後に
説明する。ただし、これら二つのプロセッサ形式は、夫
々のプロセッサ形式に関連する周辺装置の性質、及びそ
れらの周辺装置に対する制御ロジックが異なっている。
当業者には容易に理解されるように、異なった周辺装置
コントローラを備え異なった機能的任務を付与されたそ
の他のプロセッサ形式を本発明に組入れることも容易で
ある。
各マイクロプロセッサには高速ランダム・アクセス・メ
モリ26(第8図に関連して説明する)が備えられてお
り、この高速ランダム・アクセス・メモリは、入出力メ
ツセージのバッファリングを行うことに加え、システム
の他の部分と独特な方法で協働することによって、メツ
セージ管理を行なう。手短に説明すると、この高速ラン
ダム・アクセス・メモリ26は、可変長の入力メツセー
ジ(この入力のことを「受信」という)のための循環バ
ッファとして働き、シーケンシャルにメツセージを出力
するための(この出力のことを「送信Jという)メモリ
として機能し、ハツシュ・マツピング・モード及び他の
モードで用いるためのテーブル索引部分を組込み、そし
て受信メツセージ及び送信メツセージを整然と順序立て
て取扱うための制御情報を記憶する。メモリ26は更に
、マルチプロセッサモード選択のとき、並びにデータ、
ステータス、制御、及び応答の各メツセージのトラフィ
ックを取扱うときに独特の役目を果たすように用いられ
る。後に詳細に説明するように、それらのメモリは更に
、メツセージの中のトランザクション・アイデンティテ
ィに基づいて局所的及び大域的なステータス判定と制御
機能とが極めて能率的な方法で処理され通信されるよう
な構成とされている。IFP14.16及びAMP18
〜23の各々に備えられている制御ロジック28(第1
3図に関連しては後に説明する)は、当該モジュール内
のデータ転送及びオーバーヘッド機能の実行に用いられ
る。
IFP14.16は各々インターフェイス制御回路30
を備えており、このインターフェイス制御回路30はI
FPをそのIFPに組み合わされているホスト・コンピ
ュータ10ないし12のチャネルまたはバスに接続して
いる。これに対してAMP18〜23では、このインタ
ーフェイス制御回路に相当する装置はディスク・コント
ローラ32であり、このディスク・コントローラ32は
一般的な構造のものであっても良く、AMP 18〜2
3を、それらに個別に組み合わせられた磁気ディスク・
ドライブ38〜43と夫々にインターフェイスするのに
用いられるものである。
磁気ディスク・ドライブ38〜43はこのデータベース
管理システムに二次記憶装置、即ち大容量記憶装置を提
供している。本実施例においては、それらの磁気ディス
ク・ドライブは例えばウィンチエスタ−・テクノロジー
(Winchestertechnology )等の
実績のある市販の製品から成るものとし、それによって
、バイト当りコストが極めて低順でしかも大容量、高ず
3頼性の記憶装置が得られるようにしている。
これらのディスク・ドライブ38〜43には、リレーシ
ョナル・データベースが分散格納方式で格納されており
、これについては第22図に簡易化した形で示されてい
る。各々のプロセッサとそれに組み合わされたディスク
・ドライブとに対しては、データベースの部分集合を成
す複数のレコードが割当てられ、この部分集合は「−次
的」部分集合であり、またそれらの−次的部分集合は互
いに素の部分集合であると共に全体として完全なデータ
ベースを構成するものである。従って0個記憶装置の各
々はこのデータベースの−を保持することになる。各々
のプロセッサには更に、バックアップ用のデータの部分
集合が割当てられ、それらのバッファラップ周部分集合
も互いに素の部分集合であり、各々がこのデータベース
のとを構成するものである。第22図から分るように、
−次的ファイルの各々は、その−次的ファイルが収容さ
れているプロセッサとは異なったプロセッサに収容され
ているバックアップ用ファイルによって複製されており
、これにより、互いに異なった分配の仕方で分配された
2つの各々が完全なデータベースが得られている。この
ように、−次的データ部分集合とバックアップ用データ
部分集合とが冗長性を持って配置されていることによっ
てデータベースの完全性(インテグリテイ)の保護がな
されており、その理由は、単発の故障であれば、大規模
な数ブロックに亙る複数のデータや複数のグループを成
す複数のりレーションに対して実質的な影響を及ぼすこ
とはあり得ないからである。
データベースの分配は、同じく第22図に示されている
ように、種々のファイルのハツシング動作と関連を有し
ており、また、ハツシュ・マツピング・データをメツセ
ージの中に組込むこととも関連を有している。各々のプ
ロセッサに収容されているファイルは、2進数列のグル
ープとして示される簡単なハツシュ・パケット(has
h bucket)によって指定されるようになってい
る。従って、それらのパケットによりて指定される関係
の表(テーブル)に基づいて、リレーショナル・データ
ベース・システムの中のりレーション(関係)及びタプ
ル(組: tuple )を配置すべき場所を定めるこ
とができる。ハツシング・アルゴリズムを利用して、こ
のリレーショナル・データベース・システムの内部にお
いて、キーからパケットの割当てが求められるようにな
っており、そのため、このデータベース・システムの拡
張及び改変を容易に行なうことができる。
記憶容量をどれ程の大きさに選択するかは、データベー
ス管理上のニーズ、トランザクションの量、及びその記
憶装置に組み合わされているマイクロプロセッサの処理
力に応じて定められるものである。複数のディスク・ド
ライブを1個のAMPに接続したり、1台のディスク・
ファイル装置を複数のAMPに接続することも可能であ
るが、そのような変更態様は通常は特殊な用途に限られ
るであろう。データベースの拡張は、典型的な一例とし
ては、マルチプロセッサ・アレイにおけるプロセッサの
個数(及びプロセッサに組み合わされたディスク・ドラ
イブの個数)を拡張することによって行なわれる。
能動ロジック・ネットワーク 秩序立ったメッセージ・パケットの流れを提供するとい
う目的とタスクの実行を容易にするという目的とは、新
規な能動ロジック・ネットワーク構成体50を中心とし
た、独特のシステム・アーキテクチュア並びにメツセー
ジ構造を深川することによって達成される。この能動ロ
ジック・ネットワーク構成体50は、複数のマイクロプ
ロセッサの複数の出力に対して、階層を登りながらそれ
らの出力を収束させて行く昇順階層を成す、複数の双方
向能動ロジック・ノード(bidirectional
active logic node) 54によって
構成されている。それらのノード54は、3つのボート
を備えた双方向回路から成るものであり、この双方向回
路はツリー・ネットワーク(tree network
:樹枝状の構造を持つネットワーク)を形成することが
でき、その場合には、そのツリー構造のベースの部分に
おいてマイクロプロセッサ14.16及び18〜23に
接続される。
当業者には理解されるように、ノードは、ロジック・ソ
ースの数が2を超えて、例えば4または8であるときに
設けることができ、この場合、同時にまた、ソース入力
の数を多くするという問題も組合せロジックを更に付加
するという問題に変換してしますことかできる。
図の参照を容易にするために、すべてのノード(N)の
うち、第1階層に属しているものはそれをプリフィック
スrIjで表わし、また第2階層に属しているものはそ
れをブリフィックスr II Jで表わし、以下同様と
する。同一の階層に属している個々のノードは、下添字
「1.2・・・」によって表わし、従って、例えば第1
階層の第4ノードであればrlN4jと表わすことがで
きる。ノードのアップ・ツリー側(即ち上流側)には「
Cボート」と名付けられた1つのボートが備えられてお
り、このCボート隣接する高位の階層に属しているノー
ドの2つのダウン・ツリー・ボートのうちの一方に接続
されており、それらのダウン・ツリー・ボートは夫々「
Aボート」及び「Bボート」と名付けられている。これ
ら複数の階層は、最上部ノード即ち頂点ノード54aへ
と収束しており、この頂点ノード54aは、上流へ向け
られたメツセージ(アップ・ツリー・メツセージ)の流
れの向きを逆転して下流方向(ダウン・ツリ一方向)へ
向ける、収束及び転回のための手段として機能している
。2組のツリー・ネットワーク50a、50bが使用さ
れており、それら2組のネットワークにおけるノードど
うし、それに相互接続部どうしは互いに並列に配置され
ており、それによって大規模システムに望まれる冗長性
を得ている。ノード54どつし、そしてそれらのネット
ワークどうしは互いに同一であるので、それらのネット
ワークのうちの一方のみを説明すれば充分である。
説明を分り易くするために先ず第1に理解しておいて頂
きたいことは、シリアルな信号列の形態とされている多
数のメッセージ・パケットが、多くのマイクロプロセッ
サの接続によって能動ロジック・ネットワーク50へ同
時に送出され、或いは同時に送出することが可能とされ
ているということである。複数の能動ロジック・ノード
54はその各々が2進数ベースで動作して2つの互いに
衝突関係にある衝突メッセージ・パケットの間の優先権
の判定を行ない、この優先権の判定は、それらのメツセ
ージパケット自体のデータ内容を用いて行なわれる。更
には、1つのネットワークの中のすべてのノード54は
1つのクロック・ソース56の制御下に置かれており、
このクロック・ソース56は、メツセージパケットの列
を頂点ノード54aへ向けて同期して進めることができ
るような態様で、それらのノード54に組み合わされて
いる。このようにして、シリアルな信号列の中の、連続
する各々のバイト等の増分セグメントが次の階層へと進
められ、このバイトの進行は、別のメツセージの中のそ
のバイトに対応するバイトがこのネットワーク50内の
別の経路をたどって同様に進行するのと同時に行なわれ
る。
互いに競合する信号列の間に優先権を付与するためのソ
ートが、アップ・ツリ一方向へ移動しているメツセージ
パケットに対して行なわれ、これによって最終的には、
頂点ノード54aから下流へ向けて方向転換されるべき
単一のメツセージ列が選択される。以上のようにシステ
ムが構成されているため最終的な優先権についての判定
をメツセージパケット内のある1つの特定の点において
行なう必要はなくなっており、そのため、個々のノード
54において実行されている2つの互いに衝突している
パケット間の2進数ベースの判定以外のものを必要とす
ることなしに、メツセージの転送を続けて行なうことが
できるようになっている。この結果、このシステムは空
間的及び時間的にメツセージの選択とデータの転送とを
行なうようになっているわけであるが、ただし、バスの
支配権を得たり、送信プロセッサあるいは受信プロセッ
サを識別したり、またはプロセッサ間のハントシェイキ
ング操作を実行する目的のために、メツセージ伝送を遅
延させるようなことはない。
更に、特に認識しておいて頂きたいことは、幾つかのプ
ロセッサが全く同一のパケットを同時に送信した場合に
は、その送信が成功したならば、それらの送信プロセッ
サの全てが成功したのと同じことになるということであ
る。この性質は時間とオーバーヘッドを節約するので大
型マルチプロセッサ複合体の有効な制御を行うのに極め
て有用である。
ノード54は更に双方向方式で作動するため、妨害を受
けることのない、下流方向へのメッセージ・パケットの
分配を可能にしている。所与のノード54において、そ
のアップ・ツリー側に設けられたボートCで受取られた
下流方向メツセージは、このノードのダウン・ツリー側
に設けられたボートA及びボートBの両方へ分配され、
更に、このノードに接続された隣接する低位の階層に属
する2つのノードの両方へ転送される。コモン・クロッ
ク回路56の制御の下にメッセージ・パケットは同期し
てダウン・ツリ一方向へ進められ、そして全てのマイク
ロプロセッサへ同時にブロードカスト(broadca
stニー斉伝達)され、それによって、1つまたは複数
のプロセッサが、所望の処理タスクの実行ができるよう
になるか、または応答を受入れることができるようにな
る。
ネットワーク50は、そのデータ転送速度が、マイクロ
プロセッサのデータ転送速度と比較してより高速であり
、典型的な例としては2倍以上の高速である。本実施例
においては、ネットワーク50は120ナノ秒のバイト
・クロック・インタバルをもっており、そのデータ転送
速度はマイクロプロセッサの5倍の速度である。各ノー
ト54は、その3つのボートの各々が、そのノードに接
続されている隣接する階層に属するノードのボートか、
或いはマイクロプロセッサに接続されており、この接続
は1組のデータ・ライン(本実施例においては10本)
と制御ライン(本実施例においては2本)とによってな
されており、2木の制御ラインは夫々、クロック信号と
コリジヨン信号(衝突信号)とに割当てられている。デ
ータ・ラインとクロック・ラインとは対になすようにし
て配線され、アップ・ツリ一方向とダウン・ツリー方向
とでは別々のラインとされている。コリジヨン・ライン
はダウン・ツリ一方向にのみ伝播を行なうものである。
以上の接続構造は全二m式のデータ経路を形成しており
、どのラインについてもその駆動方向を「反転」するの
に遅延を必要としないようになっている。
次に第3図に関して説明すると、10本のデータ・ライ
ンは、ビット0〜7で表わされている8ビット・バイト
を含んでおり、それらが10本のデータ・ラインのうち
の8本を占めている。
Cで表わされている別の1木のラインは制御ラインであ
り、このラインは特定の方法でメツセージパケットの異
なる部分を明示するのに用いられる制御シーケンスを搬
送する。10番目のビットは本実施例においては奇数パ
リティ用に使用されている。当業者には理解されるよう
に、このシステムは以上のデータ経路中のビットの数を
増減しても良く、そのようにビットの数を変更しても容
易に動作させることができる。
バイト・シーケンス(バイトの列)は、一連の複数のフ
ィールドを構成するように配列され、基本的には、コマ
ンド・フィールド、キー・フィールド、転送先選択フィ
ールド、及びデータ・フィールドに分割されている。後
に更に詳細に説明するように、メツセージはただ1つだ
けのフィールドを用いることもあり、また検出可能な「
エンド・オブ・メツセージ」コードをもって終了するよ
うになっている。メツセージ間に介在する「アイドル・
フィールド(1dle He1d :遊びフィールド)
」は、Cライン上並びにライO〜7上のとぎれのない一
連の「1」によって表わされ、いかなるメツセージパケ
ットも得られない状態にあるときには常にこれが転送さ
れている。パリティ・ラインは更に、個々のプロセッサ
のステータスの変化を独特の方式で伝えるためにも使用
される。
「アイドル状態(1dle 5tate :遊び状態)
」はメツセージとメツセージとの間に介在する状態であ
って、メッセージ・パケットの一部分ではない。メッセ
ージ・パケットは通常、タグを含む2バイトのコマンド
・ワードで始まり、このタグは、そのメツセージがデー
タ・メツセージであれば1−ランザクジョン・ナンバ(
TN)の形とされており、また、そのメツセージが応答
メツセージであれば発信元プロセッサID(OPID)
の形とされている。トランザクション・ナンバは、シス
テムの中において様々なレベルの、!!義を有するもの
であり、多くの種類の機能的通信及び制御の基礎を成す
ものとして機能するものである。パケットは、このコマ
ンド・ワードの後には、可変長のキー・フィールドと固
定長の転送先選択ワード(destination 5
election word:  D S W )との
いずれか或いは双方を含むことかでき、これらは可変長
のデータ・フィールドの先頭の部分を成すものである。
キー・フィールドは、このキー・フィールド以外の部分
においてはメツセージどうしが互いに同一であるという
場合に、それらのメセージの間のソーティングのための
判断基準を提供するという目的を果たすものである。D
SWは、多数の特別な機能の基礎を提供するものであり
、また、TNと共に特に注意するのに値するものである
このシステムは、ワード同期をとられているインターフ
ェイスを用いて動作するようになっており、パケットを
送信しようとしている全てのプロセッサは、コマンド・
ワードの最初のバイトを互いに同時にネットワーク50
へ送出するようになっている。ネットワークは、これに
続く諸フィールドのデータ内容を利用して、各ノードに
おいて2進数ベースでソーティングを行ない、このソー
ティン・グは、最小の数値に(優先権が与えられるとい
う方式で行なわれる。連続するデータ・ビットの中で、
ビットCを最も大きい量である見なし、ビット0を最も
小さい量であると見なすならば、ソーティングの優先順
位は以下のようになる。
1、ネットワーク50へ最初に送出されたもの、 2 コマンド・コード(コマンド・ワード)が最小値で
あるもの、 3、キー・フィールドが最小値であるもの、4、キー・
フィールドが最短であるもの、5 データ・フィールド
(転送先選択ワードを含む)が最小値であるもの1. 6、データ・フィールドが最短であるもの。
ここで*観を説明しているという目的に鑑み、特に記し
ておかねばならないことは、ノード54において優先権
の判定が下されたならば、コリジヨン表示(−衝突表示
、以下A colまたはB colと称する)が、この
優先権の判定において敗退した方の送信を受取りだ方の
経路に返されるということである。このコリジヨン表示
によフて、送信を行なっているマイクロプロセッサは、
ネットワーク50がより高い優先順位の送信のために使
用されているため自らの送信は中止されており、従って
後刻再び送信を試みる必要があるということを認識する
ことができる。
単純化した具体例が、第2図の種々の図式に示されてい
る。この具体例は、ネットワーク50が4個の別々のマ
イクロプロセッサを用いたツリー構造に配列された高速
ランダム・アクセス・メモリと協働して動作するように
したものであり、それら4個のマイクロプロセッサは更
に詳しく説明すると、IFP14と、3個のAMP18
.19及び20とである。計10面の副因2A、2B、
・・・2Jは、その各々が、1=0からt=9までの連
続する10個の時刻標本のうちの1つに対応しており、
そしてそれらの時刻の各々における、このネットワーク
内のマイクロプロセッサの各々から送出される互いに異
なった単純化された(4個の文字からなる)シリアル・
メツセージの分配の態様、並びに、それらの種々の時刻
における、ボートとマイクロプロセッサとの間の通信の
状態を示している。単に第2図とだけ書かれている図面
は、信号の伝送の開始前のシステムの状態を示している
。以上の個々の図においては、ナル状態(null 5
tate :ゼロの状態)即ちアイドル状態であるため
には、1口」で表される伝送が行なわれていなければな
らないものとしている。最小値をとるデータ内容が優先
権を有するという取決めがあるため、第2A図中のAM
P19から送出されるメッセージ・パケットrEDDV
Jが、最初にこのシステムを通して伝送されるメッセー
ジ・パケットとなる。図中の夫々のメツセージは、後に
更に詳細に説明するように、マイクロプロセッサの中の
高速ランダム・アクセス・メモリ(H。
S、RAMと呼称することもある)の内部に保持されて
いる。H,S、RAM26は、第2図には概略的に示さ
れている入力用領域と出力用領域とを有しており、パケ
ットは、1=0の時点においては、この出力領域の中に
FIFO(先入れ先出し)方式で垂直に並べて配列され
ており、それによって、転送に際しては図中のH,S、
RAM26に書込まれているカーソル用矢印に指示され
ているようにして取り出すことができるようになってい
る。この時点においては、ネットワーク50の中のすべ
ての伝送は、ナル状態即ちアイドル状態(ロ)を示して
いる。
これに対して、第2B図に示されているt=iの時点に
おいては、各々のメツセージパケットの先頭のバイトが
互いに同時にネットワーク50へ送出され、このとき全
てのノード54はいまだにアイドル状態表示を返してお
り、また、第1階層より上のすべての伝送状態もアイド
ル状態となっている。第1番目のクロック・インタバル
の間に夫々のメツセージの先頭のバイトが最下層のノー
ドIN、及びIN、の内部にセットされ、t=2におい
て(第2C図)競合に決着が付けられ、そして上流方向
への伝送と下流方向への伝送の双方が続けて実行される
。ノードIN、はその両方の入力ボートに「E」を受取
っており、そしてこれを上流方向の次の階層へ向けて転
送していて、また下流方向へは両方の送信プロセッサへ
向けて未判定の状態を表示している。しかしながらこれ
と同じ階層に属しているノードIN2は、プロセッサ1
9からのr E Jとプロセッサ20からの「P」との
間の衝突に際しての優先権の判定を、「E」の方に優先
権があるものと判定しており、そして、ボートAをアッ
プ・ツリー側のボートCに結合する一方、マイクロプロ
セッサ20へBcal信号を返している。B cal信
号がマイクロプロセッサ20へ返されると、IN2ノー
ドは実際上、その六入カボートがC出力ボートにロック
されたことになり、それによって、マイクロプロセッサ
19からのシリアルな信号列が頂点ノードII 81へ
伝送されるようになる。
IN、ノードにおいては最初の二つの文字はどちらもr
EDJであり、そのため第2C図に示すように、このノ
ードではt=2の時刻には、判定を下すことは不可能と
なっている。更には、3つのマイクロプロセッサ14.
15及び19から送出された共通の先頭の文字「E」は
、t=3(第2D図)の時刻にII N 1頂点ノード
に達し、そしてこの文字「E」は、同じくそれら全ての
メツセージに共通する第2番目の文字「D」がこの頂点
ノードII 81へ転送されるときに、その転送の向き
を反転されて下流方向へ向けられる。この時点ではノー
ドIN+は未だ判定を下せない状態にあるが、しかしな
がらこのときには、一連のマイクロプロセッサ14.1
8及び19からの夫々の第3番目の文字「F」、r E
 J及びr D JがこのノードIN、へ送信されつつ
ある。マイクロプロセッサ20がB cot信号を受取
るということはこのプロセッサ20が優先権を得るため
の競合において敗退したことを意味しており、それゆえ
このプロセッサ20はB cal信号を受取ったならば
アイドル表示(ロ)を送出し、またそれ以降もこのアイ
ドル表示(ロ)だけを送出する。夫々の出力バッファに
書込まれている夫々のカーソル矢印は、マイクロプロセ
ッサ20はその初期状態に戻されているがその他のマイ
クロプロセッサは連続する一連の文字を送り続けている
ことを示している。従ってt=4(第2E図)の時刻に
おける重要な出来事は、ノードIN、のボートに関する
判定が行なわれることと、それに、先頭の文字(’EJ
 )が、全てのラインを通って第1階層のノード階層へ
向けて反転伝送されることである。
t−5(第2F図)の時刻には2回目の衝突が表示され
、この場合、ノートII N IのBボートが競合に勝
利し、A colが発生される。
続く数回のクロック・タイムの間は、シリアルな信号列
の下流方向へのブロードカストが継続して行なわれ、t
−6(第2G図)の時刻には、メツセージの先頭の文字
が全てのH,S、RAM26の入力用領域の部分の中に
セットされる。ここでもう1つ注意しておいて頂きたい
ことは、ノードI 、N 、において先に行なわれた優
先権の判定はこの時点において無効とされるということ
であり、その理由は、プロセッサ18から送出された第
3番目の文字(’E」)がマイクロプロセッサ19から
送出された第3番目の文字(’DJ )との競合に敗退
したときに、より高位の階層のノードII N 1から
A colの表示がなされるためである。第2H図中に
おいてカーソル矢印が表わしているように、マイクロプ
ロセッサ14.18及び20はそれらの初期状態に戻さ
れており、また、勝利したマイクロプロセッサ19は、
その全ての送信をt=4の時刻に既に完了している。第
2H図、第2I図、及び第2J図から分るように、全て
の入力バッファの中へ、次々に優先メツセージrEDD
VJがロードされて行く。t=8(第2I図)において
、このメツセージは既に第1μ皆層から流れ出てしまっ
ており、また、頂点ノードII N 、はt=7におい
て既にリセットされた状態になっているが、それは、マ
イクロプロセッサへ向けて最後の下流方向文字か転送さ
れるときには、既にアイドル信号だけか互いに競合して
いるからである。t=9(第2J図)の時刻には、第1
1@層に属しているノートIN、及びIN2はリセット
されており、そして、敗退したマイクロプロセッサ14
.18及び20の全ては、ネットワークが再びアイドル
を指示しているときにメツセージの先頭の文字を送出す
ることによって、ネッ1−ワーク上における優先権を得
るための競合を再度行なうことになる。実際には後に説
明するように、勝利lノたマイクロプロセッサへ肯定応
答信号が伝送されるのであるが、このことは、本発明を
最大限に一般化したものにとっては必須ではない。
メツセージがこのようにして全てのマイクロプロセッサ
へブロードカストされた後には、このメツセージは、必
要に応じてそれらのマイクロプロセッサのいずれかによ
って、或いはそれらの全てによって利用される。どれ程
のマイクロプロセッサによって利用されるかは、動作の
モードと実行される機能の如何に応じて異なるものであ
り、それらの動作モードや機能には様々なバリエーショ
ンが存在する。
(大域的な相互通信と制御) 一群の互いに競合するメツセージのうちの1つのメツセ
ージに対してネッ]・ワークが優先権を与える方法とし
て上に説明した具体例は、プライマリ・データ・メツセ
ージの転送に関する例である。しかしながら、複雑なマ
ルチプロセッサ・システムが、現在求められている良好
な効率と多用途に亙る汎用性とを備えるためには、その
他の多くの種類の通信とコマンドとを利用する必要があ
る。備λられていなけわばならない主要な機能には、プ
ライマリ・データの転送に加えて、広い意味でマルチプ
ロセッサのモードと呼ぶことのできるもの、メツセージ
に対する肯定応答、ステータス表示、並びに制御信号が
含まれている。以下の童は、種々のモート並びにメツセ
ージが、どのようにして優先権付与のためのソーティン
グと通信とを行なうソーティング・コミュニケーション
・ネットワークと協働するかについて、大域的な観点か
ら、即ちマルチプロセッサ・システムの観点から説明し
た概観を提示するものである。更に詳細に理解するため
には、第8図及び第13図と、それらの図についての後
述の説明とを参照されたい。
一斉分配モード、即ちブロードカスト・モードにおいて
は、メツセージは特定の1個または複数個の受信プロセ
ッサを明示することなく、全てのプロセッサへ同時に送
達される。このモードが用いられるのは、典型的な例を
挙げるならば、応答、ステータス間合せ、コマンド、及
び制御機能に関してである。
受信プロセッサが明示されている必要がある場合には、
メッセージ・パケットそれ自体の中に含まねている転送
先選択情報が、そのパケットを局所的に(=個々のプロ
セッサにおいて)受入れるか拒絶するかを判断するため
の判定基準を提供するようになっている。例を挙げれば
、受信プロセッサ・モジュールの内部のインターフェイ
ス・ロジックが、高速RAM26に記憶されているマツ
プ1^報に従って、そのパケットのデータがそのインタ
ーフェイス・ロジックが組込まれている特定のプロセッ
サが関与する範囲に包含されるものか否かを識別する。
高速RAM内のマツプ・ビットを種々に設定することに
よって様々な選択方式の判定基準を容易に設定すること
ができ、それらの選択方式には、例えば、特定の受信プ
ロセッサの選択、(「ハツシング」により)格納されて
いるデータベースの一部分の選択、ロジカル・プロセス
・タイプ(「クラス」)の選択、等々がある。
ブロードカストを局所的アクセス制御(=個々のプロセ
ッサにおいて実行されるアクセス制御)と共に用いるこ
とは、データベース管理システムにとっては特に有益で
あり、それは、小さなオーバーヘッド用ソフトウェアし
か必要とせずに、広範に分散されたリレーショナル・デ
ータベースの任意の部分や、複数の大域的に既知となっ
ているロジカル・プロセスのうちの任意のものの分散さ
れた局所的コピーに、アクセスすることができるからで
ある。従ってこのシステムは、メツセージの転送先とし
て、1つの転送先プロセッサを特定して選択することも
でき、また、1つのクラスに属する複数の資源を特定し
てj1択することもできる更にまた、ハイ・レベルのデ
ータベース間合せは、しばしば、データベースの別々の
部分の間の相互参照と、所与のタスクについての一貫性
を有するレファレンス(識別情報)とを必要とする。
メツセージに組込まれたトランザクション・ナンバ(T
N)は種々の特質を持つものであるが、その中でも特に
、そのような大域的なトランザクションのアイデンティ
ティ(同定情報)及びレファレンスを提供するものであ
る。多数のタスクを、互いに非同期的に動作するローカ
ル・プロセッサ・モジュール(局所的プロセッサ・モジ
ュール)によって同時並行的に処理することができるよ
うになっており、また、各々のタスクないしサブタスク
は適当なTNを持つようにされている。TNとDSW(
転送先選択ワード)とコマンドとを様々に組合わせて用
いることによって、実質的に無限の融通性が達成される
ようになっている。その割当てと処理とが非同期的に行
なわれている極めて多数のタスクに対して、広範なソー
ト/マージ動作(sort/merge operat
ion)を適用することができるようになっている。T
Hについては、それを割当てることと放棄することとが
可能となっており、またマージ動作については、その開
始と停止とが可能とされている。ある種のメツセージ、
例えば継続メツセージ等については、その他のメツセー
ジの伝送に優先する優先権を持つようにすることができ
る。TNと、それにそのTNに関するステータスを更新
するローカル・プロセッサとを利用することにより、た
だ1つの問合せだけで所与のTNについての大域的資源
のステータスを判定することができるようになっている
。分散型の更新もまた一回の通信で達成できるようにな
っている。本発明のシステムは、以上の全ての機能が、
ソフトウェアを拡張したりオーバーヘッドの負担を著し
く増大させることなく、実行されるようにするものであ
る。
本発明を用いるならばその結果として、従来技術におい
て通常見られる個数のマイクロプロセッサよりはるかに
多くの個数のプロセッサを備えたマルチプロセッサ・シ
ステムを、問題タスクに対して非常に効果的に動作させ
ることが可能になる。現在ではマイクロプロセッサは低
価格となっているため、問題領域において高性能を発揮
するシステムを、それも単に「ロー」パワー(“raw
power)が高性能であるというだけではないシステ
ムを、実現することができる。
全てのメツセージのタイプと種々のサブタイプとを包含
する一貫性のある優先順位プロトコルが、ネットワーク
に供給される種々様々なメツセージの全てを包括するよ
うに定められている。応答メツセージ、ステータス・メ
ツセージ、並びに制御メツセージはプライマリ・データ
・メツセージとは異なる形式のメツセージであるが、そ
れらも同じように、ネットワークの競合/マージ動作(
contention/merge operatio
n)を利用し、そしてそれによって、転送されている間
に優先権の付与を受ける。本システムにおける応答メツ
セージは、肯定応答(ACK)か、否定応答(NAK)
か、或いは、そのプロセッサがそのメツセージに対して
有意義な処理を加えるための資源を持っていないことを
表わす表示(「非該当プロセッサ(not appli
cable processor) J −N A P
 )である。NAK応答は、ロック(lock)状態、
エラー状態、ないしはオーバーラン(overrun 
)状態を表示する幾つかの異なったタイプのうちのいず
れであっても良い。発信元プロセッサは1つだけである
ことも複数個ある場合もあるが、発信元プロセッサはメ
ツセージの送信を終了した後には以上のような応答を必
要とするため、応答メツセージにはプライマリ・データ
・メツセージより高位の優先順位が与えられている。
本システムは更に5ACKメツセージ(ステータス肯定
応答メツセージ: 5tatus acknowled
g−ment n+essage)を用いており、この
5ACKメツセージは、特定のタスク即ちトランザクシ
ョンに関する、ある1つのローカル・プロセッサのレデ
ィネス状態(どのような動作が可能であるかという状、
態: readiness 5tate )を表示する
ものである。この5ACK応答の内容は局所的に(=個
々のプロセッサにおいて、即ちローカル・ブロセッサに
おいて)更新されると共に、ネットワークからアクセス
できる状態に保持される。斯かる5ACK応答は、ネッ
トワークのマージ動作と組合わされることによって、所
与のタスク即ちトランザクションに関する単一の間合せ
による大域的ステータス報告が得られるようにしている
。ステータス応答は優先順位プロトコルに従うため、あ
る1つのトランザクション・ナンバに関する応答のうち
のデータ内容が最小の応答が自動的に優先権を得ること
になり、それによって最低のレディネス状態が大域的な
システム状態として確定され5しかもこれは中断される
ことのない1回の動作によって行なわれる。更に、この
よりな5ACK表示はある種のプライマリ・メツセージ
と共に用いられることもあり、それによって、例えばシ
ステムの初期化やロックアウト動作等の、様々なプロト
コルが設定される。
種々のメツセージのタイプに関する優先順位プロトコル
は先ず最初にコマンド・コードについて定義されており
、このコマンド・コードは、第11図に示すように各メ
ツセージ及び応答の先頭に立つコマンド・ワードの、そ
の最初の6ビットを使用している。これによってメツセ
ージのタイプ及びサブタイプに関して充分な区別付けが
できるようになっているが、ただし、より多段階の区別
付けをするようにすることも可能である。
第11図を参照すれば分るように、本実施例においては
、5ACK応答は7つの異なったステータス・レベルを
区別して表わす(更には優先権判定・のための基準をも
提供する)ものとされている。
応答メツセージの場合には、以上の6ビットの後に、1
0ビットの0PIDの形式としたタグが続く(第3図参
照)。TNと0PIDとはいずれも更なるソーティング
用判定基準としての機能を果たすことができ、その理由
は、これらのTNと0PIDとはタグ領域の内部におい
て異なったデータ内容を持つからである。
各プライマリ・メツセージがネットワークを介して伝送
された後には、全てのプロセッサのインターフェイス部
が、たとえそれがNAPであろうとも、ともかく応答メ
ツセージを発生する。それらの応答メツセージもまたネ
ットワーク上で互いに競合し、それによって、単一また
は共通の勝利した応答メツセージが全てのプロセッサへ
ブロードカストされる。敗退したメツセージパケットは
後刻再び同時送信を試みられることになるが、この再度
の同時送信は非常に短い遅延の後に行なわれ、それによ
ってネットワークが実質的に連続的に使用されているよ
うにしている。複数のプロセッサがACK応答を送出し
た場合には、それらのACK応答は0PIDに基づいて
ソーティングされることになる。
本発明を用いるならばその結果として、タスクの開始と
停止と制御、並びにタスクに対する問合せを、極めて多
数の物理的プロセッサによって、しかも僅かなオーバー
ヘッドで、実行することが可能となる。このことは、多
数のプロセッサのロー・パワー(raw power 
)を問題状態の処理のために効果的に使うことを可能と
しており、なぜな・ちば、このロー・パワーのうちシス
テムのコープイネ−ジョン(coordination
)及び制御に割かれてしまう量が極めて少なくて済むか
らである。
コープイネ−ジョンと制御のオーバーヘッドは、いかな
る分散型処理システムにおいても、その効率に対する根
本的な制約を成すものである。
大域的な制御(即ちネットワークの制御)を目的として
いる場合には、種々のタイプの制御通信が用いられる。
従って、「マージ停止」、「ステータス要求」、及び「
マージ開始」の各メツセージや、あるタスクの割当ての
ためのメツセージ並びにあるタスクの放棄のためのメツ
セージは、データ・メツセージと同、−のフォーマット
とされており、それ故それらのメツセージもまた、ここ
ではプライマリ・メツセージと称することにする。
それらの制御メツセージも同様にTNを含んでおり、そ
して優先順位プロトコルの中の然るべき位置に位置付け
られている。このことについては後に第10図及び第1
1図に関して説明することにする。
「大域的セマフォ・バッファ・システム」という用語を
先に使用したのは、第1図に示された高速ランダム・ア
クセス・メモリ26及び制御ロジック28が、マルチプ
ロセッサのモードの選択とステータス表示及び制御指示
の双方向通信との両方において、重要な役割りを果たし
ているという事実があるからである。この大域的セマフ
ォ・バッファ・システムはアクセスの二重性を提供する
ものであり、このアクセスの二m性とは、高速で動作す
るネットワーク構造体50とそれより低速で動作するマ
イクロプロセッサとの双方が、メモリ26内のメツセー
ジ、応答、制御、ないしはステータス表示を、遅延なし
に、そしてネットワークとマイクロプロセッサとの間の
直接通信を必要とすることなく、参照することができる
ようにしているということである。これを実現するため
に、制御ロジック28が、メモリ26を差込みワード・
サイクル(interleaved woed cyc
le)で時間多重化(タイム・マルチブレクシング)し
てネットワーク50とマイクロプロセッサとへ接続して
おり、これによって結果的に、メモリ26を共通してア
クセスすることのできる別々のボートが作り上げられて
いるのと同じことになっている。大域的資源、即ちネッ
トワーク50と複数のマイクロプロセッサとは、トラン
ザクション・ナンバを、メモリ26のうちのトランザク
ションのステータスを格納するために割振られている部
分へのロケートを行なうアドレス・ロケータとして、利
用することができる。局所的なレベル(−個々のプロセ
ッサのレベル)において、あらゆる種類の使用可能状態
を包含する所与のトランザクションに関するサブタスク
のステータスを、マイクロプロセッサの制御の下にメモ
リ26の内部で更新し、そして制御ロジック28によっ
てバッファ・システムにロックするということが行なわ
れる。7種類の異なった作動可能状態のうちの1つを用
いることによって、エントリをメモリ26の異なった専
用部分から好適に取出すことができるようになっている
。ネットワークから問合せを受取ったならば、プロセッ
サのステータスの通信が行なわれて(即ち「セマフォ」
が読出されて)、それに対する優先権の判定がネットワ
ークの中で行なわれ、その際、完了の程度の最も低いレ
ディネス状態が優先権を得るようになっている0以上の
構成によって、1つの間合せに対する全てのプロセッサ
からの迅速なハードウェア的応答が得られるようになっ
ている。従って所与のタスクに関する分散された複数の
サブタスクの全てが実行完了されているか否かについて
、遅滞なく、且つソフトウェアを用いることなく、知る
ことができる。更にこのシステムでは、通信を行なうプ
ロセッサ・モジニールのいずわもがトランザクション・
ナンバの割当てを行なえるようになっており、このトラ
ンザクション・ナンバ割当ては、使用可能な状態にある
トランザクション・ナンバを、メツセージに使用し或い
は各々の大域的セマフォ・バッファ・システム内におい
て使用するために割当てる動作である。
以上の、トランザクションのアイデンティティとステー
タス表示とを統合した形で使用するということの好適な
具体的態様には、複数のプロセッサの各々が所与の判定
基準に関わる全てのメツセージを順序正しく送出するこ
とを要求されるようにした、複合的マージ動作がある。
もし従来技術に係るシステムであれば、先ず各々のプロ
セッサが自身のタスクを受取ってその処理を完了し、然
る後にその処理の結果を、最終的なマージ動作を実行す
るある種の「マスク」プロセッサへ転送するという方式
を取らねばならないであろう。従ってそのマスタプロセ
ッサが、そのシステムの効率に対する重大なネックとな
るわけである。
大域的しディネス状態が、作用が及ぶプロセッサの全て
が準備のできた状態にあるということを確証したならば
、夫々のプロセッサに備えられたメモリ26における最
高の優先順位を有するメツセージが互いに同時にネット
ワークへ送出され、そしてそれらのメツセージに対して
は、萌述の如く、マージが行なわれる間に優先権の判定
がなされる。幾つものグループのメツセージについて次
々と再送信の試みがなされ、その結果、複数のメツセー
ジを当該トランザクション・ナンバに関優先順位の高い
ものから低いものへと順に並べ、その最後には最低の優
先順位のものがくるようにした、シリアルなメツセージ
列が発生される。特別のコマンド・メツセージに従って
、このシステムは、マージ動作をその途中で停止するこ
とと途中から再開することとが可能とされており、その
ため、互いに同時刻に実行の途中にある複数のマージ動
作が、このネットワーク50を共有しているという状態
が存在し得るようになっており、それによってこのシス
テムの責源を極めて有効に利用することが可能となって
いる。
従って、いかなる時刻においても、このネットワーク5
0に接続されている動作中のプロセッサの全てが、様々
なトランザクション・ナンバに関係した複数のメツセー
ジに関する動作を互いに非同期的に実行していられるよ
うになっている。
1つのステータス間合せによって同一のトランザクショ
ン・ナンバ即ち「現在」トランザクション・ナンバの参
照が行なわれたなら、全てのプロセッサが、用意されて
いるステータス・レベルのうちの1つをもって互いに同
期して応答を行なう。
例を挙げると、「マージ開始(ST八へT MERGE
 )Jメツセージは、ある特定のトランザクション・ナ
ンバによって指定される大域的セマフォのテスト(=調
査)を行なわせ、もしこのテストの結果得られた大域的
状態が「準備完了」状態であれば(即ち「送信準備完了
(SEND READY) Jまたは「受信準備完了(
RECEIVE READY ) J (7)イずれか
び状態であれば)、現在トランザクション・ナンバ(p
resent transaction nui+be
r : P T N )の値がこの「マージ開始」メツ
セージに含まれて伝送されたTHの値に等しくセットさ
れる。(もしテストの結果得られた大域的状態が「準備
完了」状態でなかったならば、PTNの値はrTNo(
これはトランザクション・ナンバ(TN)が「0」であ
るという意味である)」という値に戻されることになる
)。
更には「マージ停止(STOP MERGE) Jメツ
セージも、現在トランザクション・ナンバを「0」にリ
セットする。このようにしてrTNOJは、ある1つの
プロセッサから他の1つのプロセッサへのメツセージ(
ポイント・ツー・ポイント・メツセージ)のために使用
される「デイフォルト」値のトランザクション・ナンバ
として利用されている。別の言い方をすれば、このrT
NOJによって、「ノン・マージ(non−1lerg
e ) Jモードの動作が指定されるのである。
この大域的相互通信システムは、メツセージの構成につ
いては第3A、第3B、第3C,及び第11図に示され
ているものを、また、高速ランダム・アクセス・メモリ
26の構成については第8図及び第10図に示されてい
るものを採用している。更に詳細な説明は、後に第5、
第7、第9、及び第13図に関連させて行なうことにす
る。
第3A〜第3C図及び第11図から分るように、応答に
用いられるコマンド・コードはOOから0F(16進数
)までであり、また、プライマリ・メツセージに用いら
れるコマンド・コードは10(16進数)からより大き
な値に互っている。従りて応答はプライマリ・メツセー
ジに対して優先し、第11図に示した並べ順では最小の
値が先頭にくるようにしである。
高速RAMメモリ26“ (第8図)の内部の1つの専
用格納領域(同図において「トランザクション・ナンバ
」と書かれている領域)が、第12図のワード・フォー
マット(前述の7種類のレディネス状態、TN割当済状
態、並びにTN非割当状態)を格納するために使用され
ている。
このメモリ26”のその他の複数の専用部分のなかには
、入力(受信メツセージ)のための循環バッファと、出
力メツセージのための格納空間とが含まれている。この
メモリ26”のもう1つの別の分離領域がメツセージ完
了ベクトル領域として使用されており、この領域は、送
信完了した出力メツセージにポインタを置(ことができ
るようにするものであり、これによって、出力メツセー
ジの格納空間を有効に利用できるようになっている。
以上から理解されるように、メモリ26及び制御ロジッ
ク28については、それらのキューイング(queui
ng )機能並びにデータ・バッファリング機能は確か
に重要なものであるが、それらと共に、大域的トランザ
クションを個々のプロセッサに関して分散させて処理す
るところの多重共同動作が独特の重要性を有するものと
なっている。
(能動ロジック・ノード) 冗長性をもって配設されている2つのネットワークのい
ずれにおいても、第1図の複数の能動ロジック・ノー 
ド54は夫々が互いに同一の構成とされているが、ただ
し例外として、各ネットワークの頂点にある方向反転ノ
ード54だけは、上流側ボートを備えず、その替わりに
、下流方向へ方向反転するための単なる信号方向反転経
路を備えている。第4図に示すように、1個のノード5
4を、機能に基づいて2つのグループに大きく分割する
ことができる。それらの機能的グループのうちの一方は
メツセージと並びにコリジヨン信号(衝突番号)の伝送
に関係するものであり、他方は共通りロック信号の発生
並びに再伝送に関係するものである。クロック信号に対
しては、異なったノードにおける夫々のクロック信号の
間にスキューが存在しないように、即ちゼロ・スキュー
となるように、同期が取られる。以上の2つの機能グル
ープは互いに独立したものではなく、その理由は、ゼロ
・スキュー・クロック回路が信号伝送システムの重要な
部分を形成しているからである。ワード・クロック(シ
リアルな2つのバイトからなる)とバイト・クロックと
の両方が用いられる。ここで特に述べておくと、この能
動ロジック・ノード54の状態を設定ないしリセットす
る際にも、また、異なった動作モードを設定する際にも
、この能動ロジック・ノード54を外部から制御する必
要はなく、また実際にそのような制御が行なわねること
はない。更には、夫々のノード54が互いに同一の構造
であるため、最近のIC技術を使用してそれらのノード
を大量生産することが可能であり、それによって、信顆
性を向上させつつ、かなりのコストの低下を実現するこ
とができる。
先に言及したA、、B及びCの夫々の「ボート」は、そ
の各々が10本の入力データ・ラインと10本の出力デ
ータ・ラインとを備えている。
例えばAボートでは、入力ラインはAIで表わされ、出
力ラインはAOで表わされている。各々のボート毎に、
上流方向クロック・ライン及び下流方向クロック・ライ
ンと共に、1本の「コリジヨン」ライン(即ち「衝突」
ライン)が用いられている(例えばAボートにはA c
olが用いられている)。Aボート及びBボートの夫々
のデータ・ラインはマルチプレクサ60に接続されてお
り、このマルチプレクサ60は、互いに競合する2つの
ワードのうちの優先する方のワード、或いはくそれらの
競合ワードが互いに同一の場合には)その共通ワードを
、データ信号COとして、上流側ボート(Cボート)に
接続されているアップ・レジスタ62ヘスイツチングし
て接続する。これと同時に、より高位の階層のノードか
ら送出されてCボートで受取られた下流方向データが、
ダウン・レジスタ64内へシフト・インされ、そしてそ
こからシフト・アウトされて、Aボート及びBボートの
両方に出力として発生する。
バイトからなるシリアルな上流方向への信号列のうちの
一方はブロックされ得るわけであるが、しかしながらそ
れによって上流方向ないし下流方向への余分な遅延が発
生することはなく、そして複数のワードが、ワード・ク
ロック並びにバイト・クロックの制御の下に、切れ目の
ない列を成して、アップ・レジスタ62及びダウン・レ
ジスタ64を通して進められて行くのである。
Aボート及びBボートへ同時に供給された互いに競合す
るバイトどうしは、第1及び第2のパリティ検出器66
.67へ送られると共に比較器70へも送られ、この比
較器70は、8個のデータビットと1個の制御ビットと
に基づいて、最小の値のデータ内容が優先権を得るとい
う方式で優先権の判定を行なう。この優先権判定のため
のプロトコルにおいては、「アイドル」信号、即ちメツ
セージが存在していないときの信号は、とぎれることな
く続く「1」の列とされている。パリティ・エラーは、
例えば過剰な雑音の存在等の典型的な原因や、その他の
、信号伝送ないし回路動作に影響を与える何らかの要因
によって生じ得るものである。しかしながら本実施例の
システムにおいては、パリティ・エラー表示は、更に別
の重要な用途のためにも利用されている。即ち、あるマ
イクロプロセッサが動作不能状態へ、移行すると、その
8行がそのたび毎にマーキングされ、このマーキングは
、パリティ・ラインを含めた全ての出力ラインが高レベ
ルになる(即ちその値が「1)になる)ことによって行
なわれ、従ってそれによフて奇数パリティ・エラー状態
が発生されるようになっている。このパリティ・エラー
表示は、1つのエラーが発生したならネットワーク内を
「マーカ(marker) Jとして伝送され、このマ
ーカによって、システムは、大域的資源に変化が生じた
ことを識別すると共にその変化がどのようなものかを判
定するためのプロシージャを開始することができるよう
になっている。
1対のパリティ検出器66.67と比較器70とは、信
号を制御回路72へ供給しており、この制御回路72は
、優先メツセージ・スイッチング回路74を含み、また
、優先権の判定かさなれたならば比較器70の出力に応
答してマルチプレクサ60を2つの状態のうちのいずれ
かの状態にロックするように構成されており、更に、下
流方向へのコリジヨン信号を発生並びに伝播するように
構成されている。移行パリティ・エラー伝播回路76の
名前のいわれは、この回路が、先に説明した同時に全て
のラインが「1」とされるパリティ・エラー状態をネッ
トワークの中に強制的に作り出すものだからである。リ
セット回路78はこのノードを初期状態に復帰させるた
めのものであり、エンド・オブ・メツセージ(end 
of messa3eEOM)検出器80を含んでいる
以上に説明した諸機能並びに後に説明する諸機能が実行
されるようにするためには、各々の能動ロジック・ノー
ドにおいてマイクロプロセッサ・チップを使用してそれ
らの機能を実行するようにしても良いのであるが、しか
しながら、第5図の状態図と以下に記載する論理式とに
従フてそれらの機能が実行されるようにすることによっ
て、更に容易に実行することが可能となる。第5図の状
態図において、状態SOはアイドル状態を表わすと共に
、互いに競合しているメツセージどうしが同一であるた
めに、一方のボートを他方のボートに優先させる判定が
下されていない状態をも表わしている。S1状態及びS
2状態は夫々、Aボートが優先されている状態及びBボ
ートが優先されている状、態である。従って、BIのデ
ータ内容がAIのデータ内容より大きく且つAIにパリ
ティ・エラーが存在していない場合、または、BIにパ
リティ・エラーが存在している場合(これらのAIにパ
リティ・エラーが存在していないという条件と、BIに
パリティ・エラーが存在しているという条件とは、夫々
、AlPE及びBIPEと表記され、フリップ・フロッ
プの状態によって表わされる)には、Aボートが優先さ
れている。
AIとBIとに関して以上と逆の論理状態(論理条件)
は、この装ばか52状態へ移行すべき状態(条件)とし
て存在するものである。より高位のl!l1層のノード
から、その階層において衝突が発生した旨の表示が発せ
られたならば、その表示は、下流方向信号の中に入れら
れてC0LINとして送り返されてくる。この装置は、
それがsO状態、S1状態、及びS2状態のうちのいず
れの状態にあった場合であってもS3状憇へと移行し、
そしてこのコリジヨン信号を下流方向へA col及び
B cal として転送する。S1状態ないしはS2状
態にあるときには、このノードは既に判定を下している
ため、同様の方式でコリジヨン信号が下流方向へ、より
低位の階層の(2つの)ノードへと送出されており、こ
のとき、優先メツセージスイッチング回路74は、状況
に応じてAボート或いはBボートにロックされている。
リセット回路78はEOM検出器80を含んでおり、こ
の検出器80を用いて、ノードのS3からSOへのリセ
ット(第5図)が行なわれる。
第1のリセットモードは、第6図に示すようにプライマ
リ・メツセージの中のデータ・フィールドを終結させて
いるエンド・オブ・メツセージ(EOM)フィールドを
利用するものである。
1つのグループを成す複数のフリップ・フロップと複数
のゲートとを用いて、次式の論理状態が作り出される。
URINC−URC−URCDLY ここで、URCはアップ・レジスタの中の制御ビットを
表わし、URINCはこのアップ・レジスタへ入力され
る入力信号の中の制御ビットの値を表わし、モしてU 
RCD LYはアップ・レジスタ遅延フリップ・フロッ
プ内のC値(=制御ビットの値)を表わしている。
第6図に示すように、制御ビットの列の中の、連続する
2個のビットを1組としたビット対(ビット・ベア)が
、ある種のフィールドを明示すると共に、1つのフィー
ルドから次のフィールドへの移行を明示するようにしで
ある1例を挙げると、アイドル時に用いられる「1」の
みが続く制御ビット状態から、「Oll」のビット・シ
ーケンス(−ビット対)への移行は、フィールドの開始
を明示するものである。この、「0.1」のシーケンス
は、データ・フィールドの開始を識別するのに用いられ
る。これに続く「1.0」の制御ビットのストリング(
列)は、内部フィールドないしはサブフィールドを表示
しており、またエンド・オプ・メツセージ(EOM)は
「Olo」の制御ビット対によって識別される。「1.
0」のビット対のストリングのあとに「0.0」のビッ
ト対がくる状態は、他にはない状態であり、容易に識別
することができる。URINC信号、URC信号、及び
URCDLY信号はまとめてアンド(論理積)をとられ
、これらの各々の信号は互いにバイト・クロック1つ分
づつ遅延した関係にある。それらのアンドをとった結果
得られる信号の波形は、メッセージ・パケットが始まる
までは高レベルで、この開始の時点において低レベルに
転じ、そしてこのデータ(=メッセージ・パケット)が
続いている間、低レベルにとどまる波形である。この波
形は、EOMが発生されてからバイト・クロック2つ分
が経過した後に、高レベルへ復帰する。この、波形UR
INC−URC−URCDLYが正に転じる遷移によっ
て、EOMが検出される。第5図に付記されているよう
に、この正遷移によってSlまたはS2からSOへの復
帰動作がトリガされるのである。
より高位の階層のノードがリセットされると、それによ
ってC0LIN状態となり、これは衝突状態が消失した
ことを表わす。この論理状態は、S3から基底状態であ
るSOへの復帰動作を開始させる。ン主意して頂きたい
ことは、このC0LIN状態は、エンド・オブ・メツセ
ージがネットワーク50の階層を次々と「走り抜けて」
いくのにつれて、下方へ、それらの階層へ伝播していく
ということである。以上のようにして、各々のノードは
メツセージの長さの長短にかかわらず自己リセットでき
るようになっている。更に注意して頂きたいことは、ネ
ットワークの初期状態の如何にかかわらず、アイ1〜ル
信号が供給されたならば全てのノードがSO状態にリセ
ットされるということである。
コリジヨン信号は複数のプロセッサ・モジュールにまで
戻される。それらのモジュールはこのコリジヨン状態情
報を記憶し、そしてアイドル・シーケンスを送信する動
作へと復帰し、このアイドル・シーケンスの送信は競合
において勝利を得たプロセッサが送信を続けている間中
行なわれている。プロセッサは、C0LINからC0L
INへの遷移を検出し次第、新たな送信を開始すること
ができるようにされている。更にこれに加えて、プロセ
ッサは、Nをネットワーク内の階層の数とするとき、2
N個のバイト・クロックの時間に互ってアイドル信号を
受信し続けたならば新たな送信を開始することができる
ようにされており、それは、このような状況もまた、前
者の状況と同じく、先に行なわれた送信がこのネットワ
ーク内に残ってはいないということを表わすものだから
である。これらの新たな送信を可能にするための方式の
うちの後者に依れば、初めてネットワークに参加するプ
ロセッサが、トラフィックさえ小さければネットワーク
との間でメツセージ同期状態に入ることができ、そのた
めこの初参加のプロセッサは、このネットワーク上の他
のプロセッサとの間の相互通信を開始する際して、別の
プロセッサからのポーリングを待つ必要がない。
パリティ・エラー状態は第5図の状態図の中にに記され
ているが、次の論理式に従って設定されるものである。
PE5IG  −八IPE −AIPEDLY  ◆ 
BIPE −BIPEDLYこのPES I Gの論理
状態が真であるならば、アップ・レジスタへの入力信号
URINは、(URIN O・・・URIN 7、C,
P=1・・・1.1.1)である。上の論理式を満足す
るために、移行パリティ・エラー伝播回路76は、Al
PE用、即ち八入力のパリティ・エラー用フリップ・フ
ロップと、遅延フリップ・フロップ(AIPEDLY)
とを含んでいる。後者のフリップ・フロップは、AlP
Eの設定状態に従って、それよりバイト・クロック1つ
労連れて状態を設定される。従って八入力に関して言え
ば、AlPE用フリップ・フロップがパリティ・エラー
によってセット状態とされたときに、PES I G値
がバイト・クロック1つ分の間ハイ・レベルとなり、そ
のため、このPES I G信号はパリティ・エラーの
最初の表示がなされたときに1回だけ伝播されるわけで
ある。複数のデータ・ビット、制御ビット、並びにパリ
ティ・ビットの全てが「1」の値であるときにもこれと
同じ状態が生じるが、それは、大域的資源の状態につい
ての先に説明した移行が発生したときに生じる状態であ
る。それによって全てのラインがハイ・レベルに転じ、
全てが「1」の状態を強制的に作り出されて総数偶数状
態(奇数パリティ状態)が確立され、その結果、先に説
明した状態にAlPEフリップ・フロップとAIPED
LYフリップ・フロップとがセットされてパリティ・エ
ラーを表示するようになる0以上の構成は、Bポートで
受取ったメッセージ・パケットがパリティ・エラー、或
いはステータスの変化を表示するための強制的パリティ
表示を含んでいる場合にも、同様の方式で動作する。
雑音の影響やその他の変動要素に起因して発生するパリ
ティ・エラーは、通常は、プロセッサの動作に影響を及
ぼすことはなく、その理由は、冗長性を有する二重のネ
ットワークを用いているからである。監視(モニタ)や
保守のためには、インジケータ・ライト(=表示灯:不
図示)を用いてパリティ・エラーの発生を表示するよう
にする。ただし、ステータスの変化を示す1回のみ伝播
するパリティ・エラーについては、それによって、その
変化の重要性を評価するためのルーチンが開始される。
第4図に示すようにこのノード54に使用されているク
ロッキング・システムは、ネットワーク内に用いられて
いる階層の数にかかわらず、全てのノード要素における
クロックとクロックとの間のスキュー(skew)がゼ
ロとなるようにするための、即ちゼロ・スキュー状、態
を保持するための、独特の手段を提供するものである。
クロック回路86は、第1及び第2の排他的ORゲート
88.89を含んでおり、夫々AとBで示されているそ
れらの排他的ORゲートの出力は、加算回路92によっ
て、それらの間に減算(即ちrB−AJの演算)が行な
われるように結合されており、この加算回路92の出力
は、低域フィルタ94を通された後に、フェーズ・ロッ
ク・ループである発振器(PLO)96から送出される
出力の位相を制御している。第1の排他的ORゲート8
8への入力は、このPLO96の出力と、隣接するより
高位の階層のノード要素から絶縁駆動回路97を介して
供給される下流方向クロックとである。このクロックの
ラインには「ワード・クロック」と記されており、この
ワード・クロックは、隣接するより高位の階層から既知
の遅延での後に得られるものであり、そしてこの同じク
ロック信号が、もう1つの絶縁駆動回路98を介して、
隣接するより高い階層のそのノードへ返されるようにな
っている。第2の排他的ORゲート89への入力は、こ
のワード・クロックと、隣接するより低位の階層からの
クロック・フィードバックとから成り、この低位の階層
も同様に、このPLO96から信号を受取っている。
上記のワード・クロック・ラインは、第3の排他的OR
ゲート100の2つの入力へ接続されており、それら両
方の入力は、直接的に接続されているものと、τC遅延
線101を介して接続されているものとである。これに
よって、ワード・クロックの2倍の周波数をもち、この
ワード・クロックに対してタイミングの合った、バイト
・クロック信号を得ている。
以上のクロック回路86の作用は、第7図のタイミング
・ダイアグラムを参照すればより良く理解できよう。ク
ロック・アウト信号(クロック出力信号)は、PLO9
6の出力である。このクロッキング・システムの最大の
目的は、ネットワーク内の全てのノードに関するクロッ
ク出力信号どうしの間にゼロ・タイム・スキュー状態を
保持することにあるのであるから、当然のことながら、
それらのクロック出力信号どうしはその公称周波数もま
た互いに同一でなければならばい。ノード間の伝送ライ
ンによる遅延では、略々一定の値になるようにするが、
この遅延の値それ自体は長い時間に設定することも可能
である。ここに開示している方法を採用するならば、ネ
ットワーク並びにノードのバイト・クロック速度を実機
システムにおいて採用されている速度(公称120ns
)とした場合に、28フイート(8,53m)もの長さ
にすることが可能である。当業者には容易に理解される
ように、可能最大個数のプロセッサ・モジュールが目い
っばいに実装されいるのではないネットワークには、更
に階層を付加することによって、この28フイートの整
数倍の長さを容易に得ることができる。その場合、それ
に対応して待ち時間、即ちそのネットワークを通して行
なわれる伝送の伝送時間は増大する。
第7図中のクロック・アウト信号のすぐ下の波形によっ
て示されているように、隣接するより高位の階層から得
られるワード・クロックはクロック・アウト信号と同じ
ような波形であるが、ただしてだけ遅れている。このワ
ード・クロックが、全てのノードに共通する根本的タイ
ミング基準を成すのであるが、そのようなことが可能で
あるのは、個々のクロック・アウト信号の前縁をその回
路の内部で制御することができ、そしてそれらの前縁を
ワード・クロックに先行させることによって、全てのノ
ードが同期した状態に保持されるようにすることができ
るからである。波形A及び波形Bを参照すると分るよう
に、第1のORゲート88が発生するパルスAは、ワー
ド・クロックの前縁の位置で終了しており、一方、第2
のORゲート89が発生するパルスBは、その前縁がワ
ード・クロックの前縁と一致している。このBパルスの
後縁は、隣接するより低位の階層のモジュールからのフ
ィードバック・パルスの開始の位置に定められ、このフ
ィードバック・パルスはでたけ遅延しているため、Bパ
ルスはその持続時間が定となっている。クロック回路8
6は、パルスAの持続時間をパルスBの持続時間と同一
に保持するように作用するが、そのように作用する理由
は、PLO96の位相を進めて同期状態が確立されるよ
うにするにつれて、加算回路92の出力信号(減算rB
−AJを行なった信号)がゼロへ近付いて行くからであ
る。実際には、破線で示されているように好適な位置よ
り先行していることも遅れていることもあるA信号の前
縁に対して調節を加えて、このA信号の前縁がワード・
クロックの前縁より時間でだけ先行する位置にくるよう
にする。全てのノードにおいて、クロック・アウト信号
の前縁がこの好適公称位置に位置するようになれば、ワ
ード・クロックどうしの間にゼロ・スキュー状態が存在
することになる。従ってネットワークに接続されている
夫々のプロセッサは、あるプロセッサから別のプロセッ
サまでの経路の全長に関する制約から解放されているが
、それは、遅延が累積することが無いということと、伝
播時間に差が生じないということとに因るものである。
二倍周波数のバ、イト・クロックを発生させるために、
遅延線101によって、遅延時間τCだけ遅れたワード
・クロックが複製されており、この遅延線101もゲー
ト100へ信号を供給している。従って、第7図中のバ
イト・クロックと記されている波形から分るように、ワ
ード・クロックの前縁と後縁の両方の位置に、持続時間
τCを有するバイト・クロック・パルスが発生される。
このパルスの発生は、各々のワード・クロックのインタ
バルの間に2回づつ生じており、しかも、全てノードに
おいて、ワード・クロックと同期して生じている。以上
の説明においては、ノードとノードとの間の伝送ライン
によって発生される遅延は階層から階層への伝送方向が
どちら方向であっても殆ど同一であり、そのため、事実
上、このシステム内の全てのワード・クロック並びにバ
イト・クロックが、互いに安定な位相関係に保たれると
いうことを、当然の前提としている。従って局所的に(
=個々のノードの内部で)発生されるバイト・クロック
は、各々のノードにおいて、メツセージの2バイト・ワ
ード(=2個のバイトから成るワード)の、その個々の
バイトのためのクロッキング機能を提供している。
以上の能動ロジック・ノードは、同時に送出されたメッ
セージ・パケットどうしの間の競合をそのデータ内容に
基づいて決着させるようにしている場合には常に、潜在
的な利点を有するものである。これに対し、例えば、1
981年2月17日付で発行された米国特許第4251
879号公報「デジタル通信ネットワークのための速度
非依存型アービタ・スイッチ(5peed Indep
endentArbiter 5w1tch for 
Digital CommunicationNbi*
orks) Jに示されているものをはじめとする、大
多数の公知にシステムは、時間的に最初に受信された信
号がどれであるのかを判定することを目積しており、外
部に設けた処理回路または制御回路を使用するものとな
っている。
(プロセッサ・モジエール) 第1図の、システム全体の概略図の中に図示されている
個々のプロセッサは、夫々、インターフェイス・プロセ
ッサ(IFP)14及び16と、アクセス・モジュール
・プロセッサ(AMP)18〜23の具体例として示さ
れており、また、これらのプロセッサは、大まかに複数
の主要要素に再区分しである。これらのプロセッサ・モ
ジュール(I FP及びAMP)の構成についての更に
詳細な具体例は、第1図の機能的な大まかな再区分との
間に対応関係を有するものとなるが、ただしそればかり
でなく、かなり多くの更なる再区分をも示すものとなる
。本明細書で使用するところの「プロセッサ・モジュー
ル」なる用語は、第8図に図示されているアセンブリの
全体を指すものであり、このアセンブリは、以下に説明
する任意選択の要素を備えることによって、IFP或い
はAMPのいずれかとして機能することができるように
なる。また、「マイクロプロセッサ・システム」という
用語は、マイクロプロセッサ105を内蔵したシステム
103を指すものであり、ここでマイクロプロセッサ1
05は、例えば、インテル8086型(Intel 8
086) 16ビット・マイクロフロセッサ等である。
このマイクロプロセッサ105のアドレス・バス並びに
データ・バスは、マイクロプロセッサ・システム103
の内部において、例えばメインRAM107等の一般的
な周辺システム、並びに周辺機器コントローラ109に
接続されている。この周辺機器コントローラ109は、
プロセッサ・モジュールがAMPでありしかも周辺機器
がディスク・ドライブ111である場合に用い得るもの
の一例として示すものである。これに対して、このプロ
セッサ・モジュールをIFPとして働かせる場合には、
破線で描いた長方形の中に示されているように、このコ
ントローラ即ちインターフェイスを、例えばチャネル・
インターフェイスに取り替えれば良い。そのような具体
例のIFPは、ホスト・システムのチャネル即ちバスと
の間の通信を行なうものとなる。
このマイクロプロセッサ・システム103には従来の一
般的なコントローラやインターフェイスを用いることが
できるので、それらのコントローラやインターフェイス
については更に詳細に説明する必要はない。
1つのマイクロプロセッサ毎に1台のディスク・ドライ
ブを用いることが費用と性能の両方の面において有利で
あるということを示し得ることに注目すべきである。そ
のような方式が有利であるということは、データベース
に関しては一般的に言えることであるが、ただし、とき
には、1つのマイクロプロセッサが複数の二次記憶装置
にアクセスできるようにマイクロプロセッサを構成する
ことが有益なこともある。概略図においては、図を簡明
にするために、その他の通常用いられているサブシステ
ムが組み込まれている点については図示省略しである。
この省略されたサブシステムは例えば割込みコントロー
ラ等であり、割込みコントローラは、半導体を製造して
いるメーカーが自社製のシステムに組み合わせて使用す
るために供給しているものである。また、本発明が提供
し得る冗長性とイ8顆性とを最大限に達成することので
きる、プロセッサ・モジュールへ電源を供給するために
適切な手段を、講じることの重要性についても当業者に
は理解されよう。
マイクロプロセッサ・システム103における任意選択
要素として示されている周辺機器コントローラ109と
チャネル・インターフェイスとは、第1図中のIFPイ
ンターフェイスとディスク・コントローラとに相当する
ものである。これに対して第1図の高速RAM26は、
実際には、第1のH,S、RAM26°と第2のH,S
、RAM26“とから成っており、それらの各々は、タ
イム・マルチブレクシング(時間多重化)によって、機
能の上からは事実上の3−ボート・デバイスとされてお
り、それらのボートのうちの1つ(図中に「C」と記さ
れているボート)を介してマイクロプロセッサのバス・
システムと接続されている。H,S、RAM26°、2
6”の各々は、夫々に第1ないし第2のネットワーク・
インターフェイス120.120° と協働し、それに
よって、夫々が第1及び第2のネットワーク50a及び
50b(これらのネットワークは第8図には示されてい
ない)と、入力(受信)ボートA及び出力(送信)ボー
トBを介して通信を行なうようになっている。このよう
に互いに冗長性を有する2つのシステムとなっているた
め、第2のネットワーク・インターフェイス12o°と
第2のH,S、RAM26”を詳細に説明するだけで良
い。ネットワーク・インターフェイス12o1120°
については第13図に関連して更に詳細に示され説明さ
れているが、それらは、大きく再区分するならば以下の
4つの主要部分に分けることができる。
第2のネットワーク50bからの10本の入力ラインを
、インターフェイス・データ・バス並びにインターフェ
イス・アドレス・バスを介してH,S、RAM26”の
Aボートへ接続している、入力レジスタ・アレイ/コン
トロール回路122゜ 第2のネットワーク50bへの出力ラインを、インター
フェイス・データ・バス並びにインターフェイス・アド
レス・バスと、第2のH,S、RAM26″のBボート
とへ接続している、出力レジスタ・アレイ/コントロー
ル回路124゜ インターフェイス・アドレス・バス並びにインターフェ
イス・データ・バスと、H,S、RAM 26”のAポ
ート並びにBポートとへ接続された、マイクロプロセッ
サ・バス・インターフェイス/コントロール回1126
゜ ネットワークからワード・クロックを受取り、そして、
インターフェイス120“を制御するための互いに同期
し且つ適切な位相関係にある複数のクロックを発生する
、クロック発生回路128゜ 第2のネットワーク・インターフェイス120゛とH,
S、RAM26”とは、マイクロプロセッサ・システム
103と協働することによって、高速で動作するネット
ワークとそれと比較してより低速で動作するプロセッサ
との間のデータ転送をコーデイネートしており、また更
に、それらの異なったシステム(=ネットワーク・シス
テムとプロセッサ・システム)の間で交換されるメツセ
ージの、待ち行列を作る機能も果たしている。マイクロ
プロセッサ・バス・インターフェイス/コントロール回
路126は、マイクロプロセッサ・システムと協働して
(読出し/書込み機能R/W機能)を実行するためのも
のであると言うことができ、このマイクロプロセッサ・
システムは(少なくともそれがインテル8086型であ
る場合には)H,S、RAM26”に直接データを書込
む能力と、このH,S、RAM26”からデータを受取
る能力とを備え、でいる。
IFPの構造とAMPの構造とは、その作用に関しては
互いに類似したものであるが、しかしながら、H,S、
RAM26”の内部の入力メツセージ格納領域の大きさ
と出力メツセージ格納領域の大きさとに関しては、IF
PとAMPとの間に相当の差異が存在することがある。
リレーショナル・データベース・システムにおいては、
IFPは、ネットワークを絶えず利用してホスト・コン
ピュータの要求を満たせるようにするために、H,S、
RAM26”の内部に、高速ネットワークから新たなメ
ツセージを受取るための、大きな入力メツセージ格納空
間を備えている。AMPについてはこれと逆のことが言
え、それは、高速ネットワークへ送出される処理済メセ
ージ・パケットのために、より多くの格納空間が使用で
きるようになっていなければならないからである。Hl
S、RAM26″はマイクロプロセッサ・システム10
3の中のメインRAM107と協働しての動作も行ない
、このメインRAM107は各々のネットワークのため
のメツセージ・バッファ・セクションを備えている。
マイクロプロセッサ・システム103のための、メイン
RAM107内部のシステム・アドレス空間の割当ての
態様は第9図に示されており、それについて簡単に説明
しておく。−数的な方式に従って、ランダム・アクセス
のための記憶容量が増加された場合に使用される拡張用
の空間を残すようにしてシステム・ランダム・アクセス
機能に割当てられたアドレスと、I10アドレス空間と
、ROM及びFROM (EPROMを含ム)ノ機能の
ために割当てられたアドレス空間とを有するものとなっ
ている。更に、システム・アドレス空間のうちの幾つか
の部分が、夫々、第1及び第2の高速RAM26°  
26″から送られてくるメッセージ・パケットと、それ
らの高速RAMへ送り出されるメッセージ・パケットの
ために割当てられている。これによってシステムの動作
に非常な融通性が得られており、それは、マイクロプロ
セッサ105がH,S、RAM26”をアドレスするこ
とが可能であるようにしても、メインRAM107の働
きによって、ソフトウェアとハードウェアとの相互依存
性に殆ど拘束されないようにできるからである。
再び第8図を関して説明するが、既に述べたように、2
つの方向からアクセスすることのできるH、S、RAM
26”は、マルチプロセッサ・千−1〜の制御、分散型
の更新、並びにメッセージ・パケットの流れの管理にお
ける、中心的機能を実行するように構成されている。こ
れらの目的や更に別の目的を達成するために、H,S、
RAM26°は複数の異なった内部セクタに区分されて
いる。第8図に示されている様々なセクタの相対的な配
置の態様は、このシステムの中の個々のプロセッサ・モ
ジュールの全てにおいて採用されているものであり、ま
た、それらのセクタの境界を指定している具体的なアド
レスは、実際のあるシステムにおいて用いられているア
ドレスを示すものである。ここで注意して頂きたいこと
は、これらのメモリ・セクタの大きさとそれらの相対的
な配置とは、具体的なシステムの状況次第で大きく変り
得るものだということである。図示例では16ビットの
メモリ・ワードが採用されている。
選択マツプ及び応答ディレクトリは、初期設定の間に一
度だけ書込めば良いような種類の専用ルックアップ・テ
ーブルであり、一方、トランザクション・ナンバ・セク
ションの方は、動的改定自在な(=動作している間に何
度も内容を変更することができるようにした)ルックア
ップ・テーブルを提供している。
選択マツプのメモリ・セクションはロケーション0から
始まっているが、この具体例では、基本的にこのメモリ
・セクションの内部において4つの異なったマツプが使
用されるようになっており、それらのマツプは相互に関
連する方式で利用されるものである。メッセージ・パケ
ットの中に内包されている転送先選択ワード(dest
inationselection word : D
 S W )が、H,S、RAM26“内の専用の選択
マツプと共同するようにして用いられる。この転送先選
択ワードは、計16個のビットから成り、そしてそのう
ちの12個のビット・ポジションを占めるマップ・アド
レスとその他の4個のビットを占めるマツプ選択データ
とを含むものとされている。H,S、RAMの先頭の1
024個の16ビット・メモリ・ワードは、その各々が
4つのマップ・アドレス値を含んでいる。DSWに明示
されているアドレス値に従ってH,S、RAMへ1回の
メモリ・アクセスを行なうだけで、4つの全てのマツプ
にってのマツプ・ビットが得られ、その一方で、そのD
SWに含まれているマツプ選択ビットが、どのマツプを
用いるべきかを決定するようになっている。
第15図は、以上のマツプ・セクションの概念的な構造
を示しており、同図においては、各々のマツプがあたか
も物理的に分離した4096X1ビットのRAMから成
るものであるかのように図示されている。実施する際の
便宜を考慮に入れれば、第8図に示されているように、
全てのマツプ・データがH,S、RAMの単一の部分に
格納されるようにするのが便利である。DSW管理セク
ション190(第13図)が、H,S、RAMの1個の
16ビット・ワードから得られる第15図の4つのマツ
プの、その各々からの4個のビットに対するマルチブレ
クシング動作を制御している。当業者には理解されるよ
うに、この方式の利点は、H,S、RAMのその他の部
分をアクセスするのに用いられるのと同じ手段を用いて
、プロセッサがマツプを初期設定できるという点にある
更には、3つの異なったクラス(分類)の転送先選択ワ
ードが使用され、またそれに対応して、選択マツプの格
納ロケーションが、ハツシュ選択部分、クラス選択部分
、及び転送先プロセッサ識別情報(destinati
on processor 1dentificati
on:DPID)選択部分に分割されている。このDP
IDは、当該プロセッサ105が、そのメッセージ・パ
ケットの転送先として意図された特定のプロセッサであ
るか否かを明示するものである。これに対して、クラス
選択部分は、当該プロセッサが、そのメッセージ・パケ
ットを受取るべき特定の処理クラスに属する複数のプロ
セッサのうちの1つであるか否か、即ちそのプロセッサ
・グループのメンバーであるか否かを明示するものであ
る。ハツシュ値は、リレーショナル・データベース・シ
ステムの内部にデータベースが分配される際の分配方法
に応じて格納されており、この分配方法は、そのシステ
ムに採用されている、特定のりレーションのためのアル
ゴリズム、並びに分散格納方式に従ったものとなる。こ
の具体例におけるハツシュ値は、プロセッサの指定をす
るに際しては、そのプロセッサがそのデータに対して一
次的な責任とバックアップ用の責任とのいずれか一方を
もつものとして指定することができるようになっている
。従って、以上の複数の選択マツプによって、H,S、
RAM26″を直接アドレスして、プロセッサが転送先
であるか否かを判断する、という方法を取れるようにな
っている。この機能は、優先権を付与されたメツセージ
を全てのネットワーク・インターフェイス120ヘブロ
ードカストするという方法と互いに相い補う、相補的な
機能であり、そして割込みを行なうことなくマイクロプ
ロセッサ105のステータスの局所的なアクセスができ
るようにしている機能でもある。
H,S、RAM26’の中の、他の部分からは独立した
1つのセクションが、大域的に分散されている諸活動の
チエツク及び制御をするための中枢的な手段として機能
している。既に述べたように、また第3図に示されてい
るように、ネットワーク50bへ送出され、またこのネ
ットワーク50bから受取る種々の処理の夫々に対して
は、トランザクション・ナンバ(TN)が割当てられて
いる。メツセージの中にTNが内包されているのは、各
々のプロセッサ・システム103が自ら受容したサブタ
スクを互いに独立して実行する際の大域的なトランザク
ション・アイデンティティ(トランザクション識別情報
)とするためである。H,S、RAM26”内の、複数
の使用可能なトランザクション・ナンバのアドレスを格
納するための専用のブロックが、それらのサブタスクを
実行する際にマイクロプロセッサ・システム103によ
って局所的に制御及び更新されるステータス・エントリ
(=ステータスについての記述項)を収容している。T
Nは、相互通信機能が実行される際に、局所的にもまた
大域的にも、様々な異なった利用法で用いられる。トラ
ンザクション・ナンバは、サブタスクを識別するため、
データを呼出すため、コマンドを与えるため、メツセー
ジの流れを制御するため、並びに大域的な処理のダイナ
ミクスの種類を特定するために用いられる。トランザク
ション・ナンバは、大域的通信の実行中に割当てたり、
放棄したり、変更したりすることができる。これらの特
徴については以下の記載において更に詳細に説明する。
TNの特徴のうち、最も?3!雑ではあるがおそらく最
も効果的な特徴と言えるのは、ソート・ネットワーク(
ソーティング機能を有するネットワーク)と協働するこ
とによって、所与の制8!A埋に関するローカル・プロ
セッサ(=個々のプロセッサ・モジュール)のステータ
スの分散型更新を可能にするという、その能力である。
各々の制御処理(即ちタスクないしマルチプロセッサの
活動)はそれ自身のTNをもっている。
レディネス状態(プロセッサがどのような動作をする準
備が整っているかの状態)の値が、H。
S、RAM26”のトランザクション・ナンバ・セクシ
ョンに保持されるようになっており、このレディネス状
態の値は、マイクロプロセッサ・システム103の制御
の下に局所的に(=個々のプロセッサ・モジュールの内
部で)変更される。マイクロプロセッサ・システム10
3は、第10図の応答ディレクトリの中の適当なエント
リ(例えば5ACK/BLIS3F)(アドレスはr0
50D(16進数)」)を初期設定することができ、そ
してそれによって複製されたとおりのイメージを転送す
ることによって、この5ACK/Busyのステータス
の、H,S、RAM26”への入力する。あるTNアド
レス(=トランザクション・ナンバに対応する格納位置
)に入力されているエントリは、H,S、RAM26“
のAポート及びBボートを介して、そしてインターフェ
イス120゛を経由して、ネットワーク50bからアク
セスすることが可能となっている。間合せは、ステータ
ス・リクエスト(ステータス要求)のコマンド・コード
(第11図参照)とTNとを含む「ステータス・リクエ
スト」メツセージを用いて行われる。インターフェイス
120°は、指定されたTNのTNアドレスに格納され
ている内容を用いて、然るべきフォーマットで書かれた
応答メツセージを格納している応答ディレクトリを参照
する。所与のTNに関する大域的ステータス問合せを第
2のネットワーク・インターフェイス120゛が受取フ
たならば、それによって、ハードウェア的な制御しか受
けていない直接的な応答が引き出される。前置通信は不
要であり、また、マイクロプロセッサ・システム103
が割込みを受けたり影響を及ぼされたりすることもない
、しかしながら、「ロック(lock) J表示がイン
ターフェイス120°へ転送されることによってステー
タスの設定が行なわれた場合には、マイクロプロセッサ
・システム103は割込みを禁止し、またインターフェ
イス120“が、アドレスr0501(16進数)」か
ら得られるロック・ワードを、後刻その排除が行なわれ
るまで通信し続ける。
レディネス状態のワード・フォーマットは、第12図の
「ビズイ(busy:u作実行中の状態)」から「イニ
シャル(1nitial  :初期状態)」までの7種
類の状態で示され、この第12図は、実際のあるシステ
ムにおいて採用されている有用な−具体例を図示してい
る。レディネス状態をより多くの種類に分類するような
変更例やより少ない種類に分類する変更例も可能である
が、同図に示されている7種類の状態を用いることによ
って、多くの用途に適する広範な制御を行なうことがで
きる。H,S、RAM26”の中の個々のTHの状態レ
ベル(=個々のTNアドレスに格納されているエントリ
が表わしているレディネス状態のレベル)を継続的に更
新し、それによって、サブタスクの利用可能性やサブタ
スクの処理の進捗状況が反映されるようにしておくこと
は、マイクロプロセッサ・システムの責任とされている
。このような更新は、第12図に示されたフォーマット
を用いて、H,S、RAM26’内のTNアドレスに書
込みを行なうことによって、容易に実行することができ
る。
第10図において、各々のステータス応答(状態応答)
は、「05」からrODJ  (16進数)までのもの
については、いずれもその先頭の部分がステータス肯定
応答コマンド・コード(statusacknowle
dgment coIIlmand code : S
 A CK )で始まっている。ネットワークへ送出さ
れるそれらの5ACK応答は、実際には、第10図のコ
マンド・コードと、第12図のワード・フォーマットの
数字部分と、発信元プロセッサID(OPID)とから
構成されており、これについては第11図に示すとおり
である。従って、それらの5ACK応答は、第11図に
示された総合的優先順位規約の内部において、ひとまと
まりの優先順位サブグループを形成している。0PID
が優先順位規約に関して意味を持っているわけは、たと
えば、複数のプロセッサがある1つのTHに関して働い
ているが、ただしそれらのいずれもが「ビズイ」状態に
あるという場合には、ブロードカストされる最優先メツ
セージの判定がこの0PIDに基づいて行なわれること
になるからである。転送並びにシステムのコープイネ−
ジョンも、このデータ(OPID)に基づいて行うこと
ができる。
5ACKメツセージ(=SACK応答)に対して優先順
位規約が定められていることと、複数のマイクロプロセ
ッサ・システム103から同時に応答が送出されるよう
にしたことと、ネットワーク50bにおいて動的に(冨
伝送を行ないながら)優先権の判定が行なわれるように
したこととによって、従来のシステムと比較して、所与
のタスクに関する大域的資源のステータスの判定が、大
幅に改善された方法で行なわれるようになっている。そ
れによって得られる応答は、−確性を持ち、規定にない
状態を表わすことは決してなく、更には、ソフトウェア
を必要とせずローカル・プロセッサ(=個々のプロセッ
サ・モジュール)に時間を費消させることもない。従っ
て、例えば、タスクの実行を妨げる頻繁なステータス要
求によってデッドロックが生じてしまうようなことは決
してない。様々なステータス・レベルにおいて、マルチ
プロセッサの多くの任意選択動作を利用することができ
る。ローカル・プロセッサどうしが互いに独立して動作
を続けることができ、しかも車−の間合せによって、1
つの、大域的な、優先権を与えられた応答が引き出され
るということは、かつてなかったことである。
第12図に示されている一連の状態について、ここで幾
らか詳しく説明しておけば、理解に役立つであろう、「
ビズイ」状態と「ウェイティング(waiting:待
ち)」状態とは、割当てられた、即ち委任されたサブタ
スクに関して、次第により完成に近い段階へとこれから
進んで行くことになる状態であり、rウェイティング」
状態の方は、更なる通信ないしイベントを必要としてい
る状態を表わしている。これらの「ビズイ」並びに「ウ
ェイティング」の状態は、THのステータスがより高い
レベルへと上昇して行き、ついにはそのTHに関するメ
ッセージ・パケットを送信ないし受信できるステータス
・レベルにまで到達するという、レベル上昇の例を示す
ものである。
一方、メッセージ・パケットを送信ないし受信する際に
は、以上とはまた別のTNの特徴である、メツセージ制
御におけるTHの能力が発揮されることになる。マイク
ロプロセッサ・システム103が送信すべきメツセージ
をもつようになると、ステータス表示は「送信準備完了
(5endready) Jに変る。マイクロプロセッ
サ・システム103は、ステータス表示を更新すること
に加えて、第12図のワード・フォーマットを用いて「
ネクスト・メツセージ・ベクタ」の値をHlS、RAM
26”へ入力する。この入力されたエントリは、該当す
る出力メツセージをH,S、RAM26“のどのロケー
ションから取り出せば良いかを明示するものである。こ
のベクタは、ある特定のTHに関係する複数の出力メツ
セージを1木につなげる(2チエーン(chain )
する)ために、ネットワーク・インターフェイス120
゜において内部的に使用されるものである。
以上の機能に関連した機能が、「受信準備完了(rec
eive ready ) J状態の間に実行される。
この「受信準備完了」状態においては、THの格納ロケ
ーション(=TNアドレス)に、マイクロプロセッサ・
システム103から得られる入力メツセージ・カウント
値が保持されるようになっており、この入力メツセージ
・カウント値は、所与のTNに関連して受信することの
できるメツセージの個数に関係した値である。このカウ
ント値は、入力メツセージが次々と転送されて来るのに
合せてデクリメントされ、ついにはゼロになることもあ
る。ゼロになったならばそれ以上のメツセージを受取る
ことはできず、オーバラン(overrun )状態の
表示がなされることになる。以上のようにして、TNを
利用してネットワーク50bとマイクロプロセッサ・シ
ステム103との間の伝送の速度を調節することができ
るようなっている。
局Pfr的な(=個々のプロセッサについての)局面に
ついて説明すると、個々のプロセッサにおいては、処理
が実行されている間、TNは送信メツセージ及び受信メ
ツセージの中に、システム全体で通用する一定不変の基
準として保持されている。rTNOJ状態、即ちデイフ
ォルト状態は、メツセージをノン・マージ・モードで用
いるべきであるという事実を明示するための、局所的コ
マンドとしての機能をも果たすものである。
更に大域的な観点から説明すると、rTNOJと、rT
N>OJである種々の値とを、互いに異なる性質のもの
として区別することによって、TNを利用している複数
のコマンド機能のうちの1つのコマンド機能が規定され
ている。即ち、そのようにTNを区別することによって
、「マージ/ノン・マージ」のいずれかを表わす特性記
述(キャラクタライゼーション)が各々のメッセージ・
パケットに付随することになり、それによって、複数の
メツセージに対して優先権の判定とソートとを行なうと
いう、有力なシステムの動作方式が得られているのであ
る。同様に、「アサインド(Assigned +割当
てがなされている状態)」、「アンアサインド(Una
ssigned :割当てがなされていない状態)」、
「非関与プロセッサ(Non−Participant
 ) J 、並びに「イニシャル」というステータスを
用いて、大域的相互通信と制御の機能が遂行されるよう
になっている。「アンアサインド」状態は、それ以前に
プロセッサがTNを放棄した場合の状態であり、従って
それは、TNを再活性化させる新たなプライマリ・メツ
セージを受取る必要がある状態である。もし状態表示が
「アサインド」であるべきときにプロセッサが「アンア
サインド」を表示しているならば、これはTNが適切に
入力されなかったということを示しているのであるから
、訂正動作が実行されなければならない。もしTNが「
アンアサインド」であるべきときに「アサインド」とな
っているならば、これは、不完全な転送が行なわれてい
るか、或いは新たな1つのTNを求めて2つのプロセス
サの間で競合が行なわれていることの表われである場合
がある。これらの「アサインド」と「アンアサインド」
とは、いずれもレディネス状態としては扱われず、その
理由は、それらの表示がなされている段階では、プロセ
ッサは、まだそのTNに関する作業を始めていない状態
にあるからである。
更には、「イニシャル」状態と「非関与プロセッサ」状
態も、大域的資源の関係で重要である。
オン・ラインに入ろうとしているプロセッサ、即ち、こ
のシステムへの加入手続きを行なわなければならないプ
ロセッサは「イニシャル」状態にあり、この態は、この
プロセッサをオン・ラインへ入れるためには管理上のス
テップを踏む必要があることを表わしている。所与のタ
スクに関して「非関与プロセッサ」状態にあるプロセッ
サは、局所的にはいかなる処理も実行する必要はないが
、しかしながらこのTNを追跡監視することにより、こ
のTNが不注意により不適切に使用されることのないよ
うにする必要がある。
再び第10図に関して説明すると、)1.S、RAM2
6“の専用ディレクトリ即ち参照セクションは、以上に
説明したタイプ以外にも、ハードウェア的に応答を発生
させるために使用される、優先順位を付与された、複数
のその他のタイプのメツセージも含んでいる。 N A
 (not assigned:「割当てを受けていな
い」の意)というエントリは、将来の使用に備えて準備
され、使用可能な状態で保持されている。3種類の異な
ったタイプのNAK応答(オーバラン、TNエラー ロ
ック(Locked)の各NAK応答)は、そのデータ
内容が最も小さな値とされており、従って最も高い優先
順位にあるが、それは、それらのNAK応答がエラー状
態を示すものだからである。複数の5ACK応答の後に
ACK応答、モしてNAP応答(非該当プロセッサ応答
)が続き、それらは優先順位が低下して行く順序で並べ
られている。この具体例の構成では、2つの応答用コマ
ンド・コードが機能を割当てられておらず(即ちNAと
されており)、それらは将来の使用に備えて使用可能な
状態とされている。以上に説明したディレクトリは、ソ
フウエアによって初期設定することができしかもハード
ウェアによって利用されるため、広範な種々の応答メツ
セージ・テキストのうちからどのようなものでも、迅速
に且つ柔軟性をもって発生させることができる。
以上のディレクトリの中の、その他の部分からは独立し
ている1つの独立部分を使用して、TOP、GET%P
UT、並びにBOTTOMの夫々のアドレス、即ち、入
力メツセージのための循環バッファの機能に関するポイ
ンタと、それに完了出力メツセージのポインタとが、格
納されている。こらのポインタは、夫々、入力メツセー
ジの管理と出力メツセージの管理とにあてられているH
、S、RAM26″の夫々の専用セクタと協働して機能
を果たすようになっている。入力メツセージのためには
循環バッファ方式が用いられており、この場合、H,S
、RAM26”のディレクトリ・セクションに格納され
ているrTOPJが、入力メツセージのための上限アド
レス位置を指定する可変アドレスとなっている。同じデ
ィレクトリ・セクションに格納されているPUTアドレ
スは、次に受信するメツセージを回路がどこに格納すべ
きかというアドレス位置を指定するものである。GET
アドレスは、ソフトウェアがバッファの空白化を行なっ
ているアドレス位置をハードウェアで認識できるように
するために、ソフトウェアによって設定され且つ更新さ
れ続けるものである。
入力メツセージ・バッファの管理は、PUTをバッファ
の下限(bottom)のアドレスにセットし、そして
GETアドレスがTOPに等しくなっている状態から開
始するという方法で、行なわれる。ソフトウェアによっ
て定められている動作上のルールは、GETがPUTと
等しい値にセットされてはならないということであり、
もしそのようにセットされたならば、不定状態(アンビ
ギュアス・コンデイション)が生じてしまうことになる
。入力メツセージがH,S、RAM26”の中の入力メ
ツセージ・バッファへ入力されると、メツセージそれ自
体の中に含まれているメツセージ長さ値が、次に入力し
て来るメツセージの始点を決定し、続いて、ディレクト
リに格納されているPUTアドレスに対し、次に入力し
て来るメツセージを受入れるべきバッファ内の格納ロケ
ーションを表示させるための変更が加えられる。以上の
ようにしたため、マイクロプロセッサ・システム103
は、自らの作業能力が許すときに、入力メツセージの取
り出しを行なうことができるようになっている。
H,S、RAM26”内の出力メッセージ格納空間に格
納されているデータは、他の部分からは独立した循環バ
ッファの内部に保持されている出力メツセージ完了ベク
トル、並びにH,S、RAM26”内のネクスト・メツ
セージ・ベクタと共に用いられる。個々のメツセージの
編集(アセンブル)並びに格納は、任意のロケーション
において行なうことができ、また、互いに関連する複数
のメツセージについては、それらをネットワーク上へ送
出するためのつなぎ合わせ(チェーン)を行なうことが
できるようになっている。H,S。
RAM26”のディレクトリ・セクションでは、TOP
、BOTTOM、PUT、並びにGETの夫々のアドレ
スが既に説明したようにして入力され且つ更新されてお
り、それによって、出力メツセージ完了バッファ内のロ
ケーションについての動的な現在指標が維持されている
。メツセージ完了ベクタは、出力メツセージ格納空間内
に格納されているメツセージであってしかも既に適切に
転送がなされたことが受信した応答によって示されてい
るメツセージを指し示すための、指標となるアドレスを
構成している。後に説明するように、このシステムは、
マイクロプロセッサ・システム103が出力メツセージ
の入力を容易に行なえるようにしている一方で、このマ
イクロプロセッサ・システム103が複雑な連結ベクタ
・シーケンスを整然とした方式で扱えるようにしており
、それによって、出力メツセージ格納空間が効率的に使
用され、メツセージ・チェーンの転送ができるようにし
ている。
応答に関連して先に説明した第11図のプロトコルは、
応答に続けてプライマリ・メツセージについても規定さ
れている。複数種類の応答メツセージが互いに連続して
並べられており、16進数のコマンド・コードが昇順に
図示されている。プライマリ・メツセージのグループの
中では、マージ停止メツセージ(このメツセージは、基
本的制御メツセージであるノン・マージ制御メツセージ
でもある)が、そのデータ内容が最小値となっており、
従って最高の優先順位にある。このメツセージは、ネッ
トワーク内並びにプロセッサ・モジュールにおけるマー
ジ・モードを終了させる、制御通信を構成している。
極めて多くの異なったタイプのプライマリ・データ・メ
ツセージを昇順の優先順位を定めて利用することができ
、またそれらには、応用上の要求事項とシステム的な要
求事項とに基づいて、優先順位に関する分類を加えるこ
とができる。先に述べたように、他のメツセージの後に
続けられる継続メツセージに対しては、それに関する先
行メッセージ・パケットからの連続性を維持できるよう
にするために、高い優先順位をもたせるようにすること
ができる。
4種類のプライマリ・メツセージから成る、第11図中
の最下段のグループは、優先順位の高い方から低い方へ
向かって、ステータス応答を得ることを必要とする唯一
のタイプのステータス・メツセージであるステータス・
リクエスト・メツセージ、rTN放棄」とrTN割当て
」とを要求する夫々の制御メツセージ、そして、更に優
先順位の低い「マージ開始」制御メツセージを含んでい
る。
以上の構成は、後に説明する更に詳細な具体例から明ら
かなように、多くの用途に用い得る動作を可能とするも
のである。プロセッサ・モジュールは、現在トランザク
ション・ナンバ(presenttransactio
n nuIIlber : P T N )に基づいて
動作するようになっており、この場合、そのPTNが外
部的に、ネットワークからの命令によって指定されたも
のであろうとも、また、連続した動作を実行している間
に内部的に発生されたものであろうとも、同じことであ
る。マージ動作が実行されているときには、プロセッサ
・モジュールは、大域的レファレンス、即ちトランザク
ション・アイデンティティ(=トランザクション識別す
るための十青報)を利用してその動作を実行しているの
であり、このトランザクション・アイデンティティはT
Hによって定められている。マージ動作の開始、停止、
及び再開は、簡単なメツセージの変更だけを利用して行
なわれる。サブタスクが、メツセージをマージすること
を必要としていない場合や、他のメツセージとの間に特
に関係をもっていないメッセージ・パケットが発生され
たような場合には、それらのメツセージはrTNOJに
対して出力するための待ち行列(キュー)を成すように
並べられ、そして、現在トランザクション・ナンバによ
って定められた、基本状態即ちデイフォルト状態(0で
ある)が真状態を維持している間に転送が行なわれる。
このrTNOJ状態は、マージ・モードが用いられてい
ないときには、メツセージを転送のための待ち行列を成
すように並べることを可能にしている。
(ネットワーク・インターフェイス・システム)これよ
り第13図に関して説明するが、同図は、本発明のシス
テムに用いるのに適したインターフェイス回路の一具体
例を更に詳細に示すものである。この「ネットワーク・
インターフェイス・システム」の章の説明には本発明を
理解する上では必ずしも必要ではない多数の詳細な特徴
が含まれているが、それらの特徴は、実機のシステムに
は組み込まれているものであり、それゆえ本発明の要旨
に対する種々の具体例の位置付けを明確にするために説
明中に含めることにした。具体的なゲーティングのため
の構成並びに詳細構造であって、本発明の主題ではなく
、しかも周知の手段に関するものについては、多種多様
な代替構成を採用することも可能であるので、説明を省
略ないし簡略化することにした。第13図は、第8図に
示されている第2のネットワーク・インターフェイス1
20“並びにH,S、RAM26″の詳細図である。2
つのネットワークのための夫々のインターフェイス12
0,120’ は互いに同様の方式で機能しており、そ
れゆえ、一方のみについて説明すれば十分である。
第13A図において、同図のインターフェイスに接続さ
れている方の能動ロジック・ネットワーク50からの入
力は、マルチプレクサ142と公知のパリティ・チエツ
ク回路144とを介して、ネットワーク・メツセージ管
理回路140へ供給されている。マルチプレクサ142
は更にマイクロプロセッサ・システムのデータ・バスに
接続されており、これによって、このデータ・バスを介
してメツセージ管理回路140ヘアクセスすることが可
能となっている。この特徴により、マイクロプロセッサ
・システムが、インターフェイスをステップ・パイ・ス
テップ・テスト・モードで動作させることが可能となっ
ており、そして、このインターフェイスがネットワーク
とあたかもオン・ライン状態で接続されているかのよう
に、データの転送が行なわれるようになっている。ネッ
トワークからの入力は受信用ネットワーク・データ・レ
ジスタ146へ供給されるが、その際、直接このレジス
タ146の第1のセクションへ入力されるバイト・デー
タと、受信用バイト・バッファ148を介してこのレジ
スタ146へ入力されるバイト・データとがあり、受信
用バイト・バッファ148は、第1のセクションへのバ
イト・データの入力が行なわれた後に、自らのバイト・
データをこのレジスタ148の別のセクションへ入力す
る。これによって、受信した各々のワードを構成してい
る2つのバイトの両方が、受信用ネットワーク・データ
・レジスタ146に入力され、そしてそこに、利用可能
な状態で保持されることになる。
これから伝送される出力メツセージは、送信用ネットワ
ーク・データ・レジスタ150へ入力され、また、通常
のパリティ発生回路132の内部においてパリティ・ビ
ットが付加される。メツセージは、ネットワーク・メツ
セージ管理回路!40からそれに接続されているネット
ワークへ送出されるか、或いは、(テスト・モードが用
いられる場合には)マイクロプロセッサ・システム・デ
ータ・バスへ送出される。このインターフェイスの内部
におけるメツセージ管理を行う目的で、ランダム・アク
セス・メモリ168に格納されている送信メツセージの
フォーマットは、メツセージ・データと共に識別用デー
タをも含むものとされている。第21A図から分るよう
に、コマンド、タグ、キー、並びにDSWのいずれをも
、これから伝送されるプライマリ・データに組合わせて
おくことができる。
第13A図に示されている構成は、本質的に第8図に示
されている構成と同一であるが、ただし第8図では、イ
ンターフェイス・データ・バス並びにインターフェイス
・アドレス・バスが、H,S、RAM26″の入力ボー
トAと入力ボートBとに別々に接続され、また、マイク
ロプロセッサ・システム103のアドレス・バス並びに
データ・バスが、独立したCボートに接続されているよ
うに図示されている。しかしながら実際には、第13A
図から分るように、このような互いに独立した2方向か
らのアクセスは、このインターフェイスの内部において
行なわれるH、S、RAM26“における入力アドレス
機能及び出力アドレス機能の時分割マルチブレクシング
によって達成されている。マイクロプロセッサのデータ
・バスとアドレス・バスとは、夫々ゲート145と14
9とを介してインターフェイスの夫々のバスに接続され
ており、それによってマイクロプロセッサが非同期的に
、それ自身の内部クロックに基づいて動作できるように
なっている。
採用されているタイミング体系は、クロック・パルスと
、位相制御波形と、位相細分波形とに基づいたものとな
っており、この位相細分波形は、インターフェイス・ク
ロック回路156(第13図)によって発生され、また
第14図に示すタイミング関係をもつものとなっている
(第14図についても後に説明する)。インターフェイ
ス・クロック回路156は最も近くのノードからネット
ワーク・ワード・クロックを受取っており、またフェイ
ズ・ロック・クロック・ソース157は、第4図に関連
して先に説明した如きゼロ・タイム・スキューを維持す
るための手段を含んでいる。
240nsのネットワーク内の公称ネットワーク・ワー
ド・クロック速度が、インターフェイス・クロック回路
156の内部において時間的に細分され、これが行なわ
れるのは、フェイズ・ロックされた状態に保持されてい
る倍周器(詳細には示さない)が、持続時間が40ns
の基準周期を定める高速クロック(第14図にPLCL
Kとして示されている)を提供しているからである。基
本的なワード周期を定めているのは、全周期が240n
sで半サイクルごとに反転する、図中にCLKSRAと
記されている周期信号である。このCLKSRAと同一
の周波数と持続時間とをもつ信号が他に2つ、PLCL
Kに基づいて分周器158によって発生されており、こ
れらの信号は夫々がCLKSRAからPLCLKの1サ
イクル分及び2サイクル分だけ遅延した時刻に発生され
ており、また、夫々がCLKSRB及びCLKSRCと
いう名称を与えられている。
以上の諸々の信号に基づいて、制御ロジック159が、
rIo  GATEJ、rRE、CV  GATEJ 
、並びにrSEND  GATEJ と称されるタイミ
ング波形(以下、ゲート信号ともいう)を作り出してお
り、これらのタイミング波形は、ワード周期の互いに連
続する3等分されたインタバルの夫々を表示するもので
ある。これらのインタバルには、「工0フェイズ」、「
受信フェイズ」、「送信フェイズ」という該当する名称
がつけられている。上記ゲート信号によって定められた
これらのフェイズは、その各々が更に、「■OCLKJ
信号、rRECV  CLKJ信号、並びにrSEND
  CLKJ信号によって、2つの等分された半インタ
バルへと細分されており、これらの細分信号は、各々の
フェイズの後半部分を定めている。バイト・クロッキン
グ機能は、rBYTE  CTRLJ信号とrBYTE
  CLKJ信号とによって管理されている。
以上の10フエイズ、RECVフェイズ(受信フェイズ
)、及び5ENDフエイズ(送信フェイズ)は、ランダ
ム・アクセス・メモリ168とマイクロプロセッサ・シ
ステムのバスが、時分割多重化(タイム・マルチブレク
シング)された動作を行なえるようにするための、基礎
を提供するものである。インターフェイスは、高速ネッ
トワークとの間で、1回のワード周期あたり1個のワー
ドしか受信ないし送信することができず、しかも明らか
に、受信と送信とは決して同時には行なわれない。マイ
クロプロセッサ・システムとの間で行なわれる転送の転
送速度は、このネットワークとの間の転送速度よりかな
り低くなフているが、たとえ両者が等しい速度であった
としても、インターフェイス回路の能力にとって過大な
負担となることはない。このインターフェイスのシステ
ムの構成は、ランダム・アクセス・メモリ168へのダ
イレクト・アクセスによって大部分の動作が実行される
ようになっており、従って内部的な処理つまりソフトウ
ェアが、殆んど必要とされないようになっている。従っ
て、このシステムが各々のワード周期の中の連続する複
数のフェイズを周期的に経過していくにつれて、複数の
ワードが次々に、しかも互いに衝突することなく、それ
らのワードのための所定の複数の信号経路に沿って進め
られて行き、それによって種々の機能が実行されるよう
になっている。例を挙げれば、バスへのメツセージの送
出が、マイクロプロセッサからのメツセージの受取りの
合間に行なわれるようにし、しかもそれらの各々がメモ
リ168の異なった部分を用いて交互に行なわれるよう
にすることができる。
マイクロプロセッサ・システムのデータ・バスとネット
ワーク・インターフェイスとの間の相互通信は、IO管
理回路160(この■0のことを読出し/書込み(Re
ad/Write)と言うこともある)の中で行われる
。マイクロプロセッサ・システムから送られてくるワー
ドをゲーティングするための書込みゲート162と、マ
イクロプロセッサ・システムへワードを送り出すための
システム読出しレジスタ164とによって、マイクロプ
ロセッサのバスと、ネットワーク・インターフェイスへ
のバス・インターフェイスとの間が接続されている。
更にメモリ・アドレス・レジスタ165とパリティ発生
器/チエツク回路166とが、ネットワーク・インター
フェイス・サブシステムに組込まれている。この具体例
では、前記高速メモリ(=H,S、RAM)は4にワー
ドX17ビットのランダム・アクセス・メモリ168か
ら成り、このメモリの内部的な再区分のしかたと、この
メモリの内部に設けられている複数の専用メモリ領域部
分の使用法とについては、既に説明したとおりである。
このランダム・アクセス・メそりの大きざ(=容量)は
、具体的な個々の用途における必要に合わせて、縮小し
たり拡張したりすることが容易にできる。
受信メツセージ・バッファ管理回路170が、マイクロ
プロセッサのデータ・バスに接続されており、更にはメ
モリ168のアドレス・バスにも接続されている。「受
信メツセージ(receivedmessages) 
Jという用語は、ネットワークから入力してきて循環バ
ッファの中のrPUTJという格納ロケーションへ入力
されるメツセージを指し示すためにに用いられることも
あり、また、この入力の後に、そのようにして循環バッ
ファ内へ入力されたメツセージをマイクロプロセッサへ
転送するが、その転送のことを指し示すために用いられ
ることもある。このマイクロプロセッサへの転送が行な
われるときには、rGETJの値が、マイクロプロセッ
サ・システムへ転送すべき受信メツセージの取出しを実
行するに際しシステムがどのロケーションから連続した
取出し動作を行なうべきかを指定する。ランダム・アク
セス・メモリ168のアクセスに用いられる複数のアド
レス値が、GETL/ジスタ172、TOPレジスタ1
74、PUTカウンタ175、及びBOTTMレジスタ
176に夫々入力されている。PUTカウンタ175は
、BOTTOML/ジスタ176によって指定されてい
る初期位置から1づつインクリメントされることによっ
て更新される。TOPレジスタ174は、もう一方の側
の境界の指標を与えるものである。TOPの値とBOT
TMの値とはいずれも、ソフトウェア制御によって操作
することができ、それによって、受信メツセージ・バッ
ファの大きさとH,S、RAMにおける絶対格納ロケー
ションとの両方を変更することが可能となっている。P
LITレジスタの内容がTOPレジスタの内容に等しく
なったならばPUTレジスタはリセットされて8077
0Mレジスタの内容と等しくされ、それによって、この
バッファを循環バッファとして利用できるようになって
いる。
以上のGETレジスタ、TOPレジスタ、BOTTOM
レジスタ、並びにPUTカウンタは、入力メツセージ用
循環バッファと出力メツセージ完了循環バッファとの両
方を管理するのに用いられている。
GETレジスタ172への入力はソフトウェアの制御下
において行なわれるが、それは、バッファ中においてそ
のとき取扱われているメツセージの長さに応して、次の
アドレス(ネクスト・アドレス)が決定されるからであ
る。GETレジスタ172、PUTカウンタ175、並
びにTOPレジスタ174の夫々の出力に接続された比
較回路178と179は、オーバラン状態を検出及び表
示するために使用されている。オーバラン状態はGET
の値とPUTの値とが等しい値に設定された場合や、G
ETの値をTOPの値より大きな値に設定しようどする
試みがなされた場合に生じる状態である。これらのいず
れの場合にも、オーバランのステータス表示が送出され
ることになり、しかもこのステータス表示はオーバラン
状態が訂正されるまで送出され続けることになる。
「受信メツセージ」循環バッファを構成し動作させる際
の、以上のような連続的な方式は、このシステムに特に
適した方式である。衝突(コンフリクト)を回避するた
めの相互チエツクを可能としておくことによって、rP
UTJをハードウェアで管理し、]つrGETJを動的
に管理することができるようになっている。しかしなが
ら、これ以外の方式のバッファ・システムを採用するこ
とも可能である。ただしその場合には、おそらく回路並
びにソフトウェアに関して、ある程度の余分な負担が加
わることになろう。ここで第21B図について触れてお
くと、メモリ168の内部に格納されている受信メツセ
ージのフォーマットは更に、マツプ結果、データ長さ、
並びにキー長さの形の識別データを含んでおり、それら
のデータがどのようにして得られるかについては後に説
明する。
このインターフェイスの内部のDSW管理セクション1
90は、転送先選択ワード・レジスタ192を含んでお
り、この転送先選択ワード・レジスタ192へは、これ
からアドレス・バスへ転送される転送先選択ワード(D
SW)が入力される。DSWを使用してメモリ168の
専用DSWセクションをアドレスすると、このメモリ1
68からデータ・バス上へ送出された出力がデータを返
し、このデータに基づいてD S W管理セクション1
90が、そのメツセージパケットが当言亥プロセッサを
転送先としたものであるか否かを判定することができる
ようになっている。第13A図から分るように、転送先
選択ワードは、2ビットのマップ・ニブル(nybl)
アト1/又と、10ビットのマップ・ワード・アドレス
と、マツプ選択のための4ビットとから成っている。こ
れらのうちの「ニブル」アドレスは、メモリ168から
のワードのサブセクションを記述するのに用いられてい
る。マツプ選択のための4ビットは、マツプ結果比較器
194へ供給され、この比較器194はマルチプレクサ
196を介してメモリ168から関連したマツプ・デー
タを受取っている。マルチプレクサ196は16ビット
のデータを受取っており、この16個のビットは、DS
Wの中に含まれているマップ・ワード・アドレスの10
ビットによって指定されるアドレスに格納されている4
つの異なったマツプ・データ・ニブルを表わしている。
メモリ168は、ここで行なわれる比較が容易なように
、その専用マツプ・セクションが特に比較に通した形態
に構成されている。マルチプレクサ196へその制御の
ために供給されている、DSWの中の残りの2ビットに
よって、4つのマップ・ニブルのうちの該当する1つの
マップ・ニブルが選択される。比較が行なわれ、その比
較の結果得られたマツプ・コードが、マツプ結果レジス
タ197へ入力され、そしてメモリ168へ入力されて
いる入力メツセージの中へ挿人される。
もし、この比較の結果、選択されたマツプのいずれの中
にも「1」のビットか存在していないことが判明した場
合には、「拒絶」信号が発生されて、当該プロセッサ・
モジュールはそのメッセージ・パケットを受取るものと
して意図されてはいないことが表示される。
第15図について説明すると、同図には、メモリ168
の専用の転送先選択セクションを細分するための好適な
方法であってしかもマツプ結果の比較を行うための好適
な方法が、概略的に図示されている。各々のマツプは4
096ワード×1ビットで構成されており、更に、個別
プロセッサID用セクタ、クラスID用セクタ、及びハ
ツシング用セクタに細分されている(第8図参照)。
12個のアドレス・ビット(10ビットのマップ・アド
レスと2ビットのニブル)を用いて、共通マップ・アド
レスが選択されると、それによって各々のマツプから1
ビット出力が得られる。
(第13図のマルチプレクサとそのニブルは、図を簡明
にするために第15図には示してない)。
それら4つのパラレルなビット出力は、4つのANDゲ
ートから成るANDゲート群198において、マツプ選
択のための4ビットと比較することができるようになっ
ており、その結果、1つ以上の一致が得られた場合には
、ORゲート199の出力が「真」状態になる。このマ
ツプ結果は、第13A図のマツプ結果レジスタ197へ
入力することができ、それによって、そのメツセージが
メモリ168に受入れられるようになる。以上とは異な
る場合には、そのメツセージは拒絶され、NAKが送信
されることになる。
コマンド・ワード管理セクション200は、コマンド・
ワードを受取るコマンド・レジスタ202を含んでいる
。コマンド・ワードのTNフィールドは、それを用いて
アドレス・バスをアクセスすることができ、そのアクセ
スによって、指標とされている受信TNが調べられて適
当な応答メツセージが決定される(第18図参照)、更
には、「マージ開始」コマンドが実行されているときに
は、TNフィールドからPTNR(現在トランザクショ
ン・ナンバ・レジスタ)206へのデータ転送経路が確
保されており、これは、「マージ開始」コマンドに合わ
せてPTN (現在トランザクション・ナンバ)の値を
変更できるようにするためである。
メモリ168へ入力された入力メツセージは、第21図
に関して説明すると、アドレス・ベクタを利用できるよ
うにするために、データ・フィールドやキー・フィール
ドが用いられている場合にはそれらのフィールドの長さ
値をも含むものとなっている。それらの長さ値は、受信
データ長さカウンタ210と受信キー長さカウンタ21
1とによって求められ、これらのカウンタの各々は、入
力ソースから夫々のカウンタに該当するフィールドが提
供される際に、それらのフィールドに含まれている一連
のワードの個数を数えるようになっている。
更には、送信メツセージ管理セクション220が用いら
れており、このセクションは、処理済のパケットをメモ
リ16Bに格納するための受入れ機能と、それらの格納
されたパケットを後刻ネットワークへ送出する機能とを
包含している。このセクション220は、送信トランザ
クション・ベクタ・カウンタ222、送信データ長さカ
ウンタ224、及び送信キー長さカウンタ226を含ん
でおり、これらのカウンタはデータ・バスに、双方向的
に接続されている。送信トランザクション・ベクタ・カ
ウンタ222はアドレス・バスに接続されており、一方
、送信データ長さカウンタ224はアドレス発生器22
8に接続されていて、このアドレス発生器228が更に
アドレス・バスに接続されている。出力バッファ・セク
ションと第8図の出力メツセージ完了ベクタ・セクショ
ンを構成する循環バッファとの両方を用いてメツセージ
の送出が行なわれる。ただしこの具体例では、複数のメ
ッセージ・パケットが逐次入力された後に、それらが今
度はベクタによって定められた順序で取出されるように
なっている。
このインターフェイスの内部においては、独立した夫々
の動作フェイズが、互いに排他的な時間に実行されるよ
うになっており、このような時分割方式を採用したこと
によって、メモリ168は、ネットワークのクロック速
度でネットワークからのメッセージ・パケットを受取っ
て供給することと、内部的な動作を効率的な高い速度で
実行することと、それ自身の遅いクロック速度で非同期
的に動作しているマイクロプロセッサ・システムとの間
で通信を行なうこととが、可能とされている。様々なカ
ウンタやレジスタへ向けたメツセージのゲーティング動
作を制御するために、位相制御回路が制御ビットに応答
して動作しており、制御ビットは、コマンド、DSW、
データ、それにメツセージ内の個々のフィールドを示す
その他の信号を発生するものである。送信状態制御回路
250、受信状態制御回路260、並びにR/W(読出
し/書込み)状態制御回路270は、クロック・パルス
を受取り、データ内のフィールドを識別し、そして、送
信、受イ8、それにプロセッサのクロック動作が行なわ
れている間の、データの流れのシーケンシングを制御す
るものである。
このインターフェイスの制御は3つの有限状態マシン(
FSM)によって行われ、それらのFSMは、その各々
が送信フェイズ、受信フェイズ、及びプロセッサ(R/
W)フェイズのためのものである。それらのFSMは、
プログラマブル・ロジック・アレイ(PLA)、状態レ
ジスタ、並びにアクションROMを使用して、−数的な
方式で構成されている。各々のFSMは、ネットワーク
のクロック・サイクルの1回ごとに1つ次の状態へ進め
られる。発生すべき制御信号の数が多いため、PLAの
出力はさらにアクションROMによって符号化される。
当業者には容易に理解されるように、ネットワークの動
作のために必然的に必要となる、FSMモード用に書か
れ、それゆえ−数的な細部構造と動作とをもつ制御シー
ケンスの翻訳は、仕事ユこそ多いものの単純なタスクで
ある。
第17図及び第19図の状態ダイアグラムと第18図の
マトリクス・ダイアグラムとを添(1図面中に含めであ
るのは、かなり複雑なシステムに採用することのできる
内部構造設計上の特徴に関する、包括的な細目を提示す
るためである。
第17図は受信フェイズに関する図、第19図は送信フ
ェイズに関する図であり、これらの図において用いられ
ている表記法は、この明細書及び図面の他の場所で用い
られている表記法に対応している。例えば次の用語がそ
うである。
RKl、[:  =  Receive  Key  
Length  (:ounter(受信キー長さカウ
ンタ) RDLA = Receive Data Lengt
h Counter(受信データ長さカウンタ) RNDR= Receive Network Dat
a Word Register(受(Xネットワーク
・データ・ワード・レジスタ) PIJTC= Put  Counter(P U T
カウンタ) GETR=Get Register (GETレジスタ) 従って状態ダイアグラムは、第13図及び明細書と対照
させて参照すれば、略々説明なしでも理解することがで
きる。それらの状態ダイアグラムは、複雑なメツセージ
管理並びにプロセッサ相互間通信に関わる、様々12シ
ーケンスと条件文とを詳細に示lノでいる。第17図(
第17A図)において、「応答を発生せよ」と「応答を
復号せよ」とのラベルが書込まれている夫々の状態、並
びに破線の長方形で示されている夫々の条件文は、第1
8図のマトリクス・ダイアグラムに記載されている、指
定された応答及び動作に従うものである。第18図は、
所与のTNに関するプライマリ・メツセージとレディネ
ス状態との任意の組み合わせに対し、発生される応答と
実行される動作との両方を示すものである。当然のこと
であるが、正常なシステムの動作がなされているときに
は、ある程度のメツセージの拒絶はあるものの、エラー
状態はまれにしか発生しない。
第17図と第19図のいずれにおいても、条件判断に関
しては、その多くのものが複数の判断を同時に実行する
ことができるようになっているが、これに対して状態ス
テップの方は、1つづつ変更されていくようになってい
る。いずれの場合においても、送信動作と受信動作とは
外部からのホ1]御を必要せずに定められた進行速度で
進められて行く動作であり、それは、メツセージの構成
とネットワークの動作方式とが既に説明したようになっ
ているためである。
典型的なプロセッサ・システムやマルチプロセッサ・シ
ステムにおいて採用されている多くの特徴には、本発明
に密接な関係を持ってはいないものがあり、従ってそれ
らについては特に記載しない。それらの特徴の中には、
パリティ・エラー回路、割込み回路、それに、ワッチド
ッグ・タイマや極めて多様な記験機能等の活動をモニタ
するための種々の手段等がある。
(システムの動作の具体例) 以下に説明するのは、第1図、第8図、及び第13図を
総合したシステムが、ネットワーク及びH,S、RAM
と協働しつつ種々の動作モードで内部的にどのように働
くかを示す幾つかの具体例である。それらの具体例は、
優先順位規定と、ここで採用されているアドレッシング
方式と、トランザクション・アイデンティティとの間の
相互関係が、どのようにして局所的制御と大域的相互通
信との両方の機能を提供するのかを示すものである。
プライマリ・データ・メツセージの゛ 信ここでは、そ
の他の図に加えて更に第16図についても説明するが、
第16図は、プライマリ・メツセージの最終的な受入れ
に関わる諸状態の、簡略化した状態ダイアグラムである
。メツセージがバッファ或いはメモリに受信されても、
図示の論理的状態が満たされないうちは、受入れ(アク
セプタンス)が達成されたことにはならない。図ではイ
ベント(事象)のシリアルな列として示されているが、
本来は複数の判定がパラレルに、即ち同時に行なわれる
ようになっており、それは、夫々の条件が互いに関与し
ないものであったり、或いは、ある動作段階へ達するた
めの中間段階の飛越しが、回路によって行なわれたりす
るためである。
第1図のネットワークの上のメツセージは、第13A図
の受信ネットワーク・データ・レジスタ146の中を、
EOM状態が識別されるまでの間通過させられ、その状
態が識別されたときに、メツセージが完了したことが認
識される。「ロック(LOCK) J状態が存在してい
る場合には、システムは第8図のH,S、RAM26“
の中の応答ディレクトリを参照して、NAK/LOCK
拒絶メツセージを送出する。
そうでない場合、即ち「ロック」状態が存在していない
場合には、システムはマツプ比較チエツクへ移り、この
チエツクは第13A図に示したインターフェイスの中の
DSW管理セクション190の内部で実行される。「マ
ツプ出力=1」で表わされる、適切な比較結果が存在し
ている場合には、システムはそのメツセージを受信し続
けることができる。そのような比較結果が存在していな
い場合には、そのメツセージは拒絶され、NAPが送出
される。
該当するマツプが判定されたならば、それによってシス
テムはTNステータスを検査する準備が整ったことにな
り、このTNステータスの検査は第8図に示されている
THのディレクトリを参照することによって行なわれる
(ここでTNステータスとは厳密には所与のTNに関す
るプロセッサのステータスのことであり、従ってH,S
、RAM内のTNアドレスに格納されているエントリに
よって表わされているレディネス状態のことである)、
更に詳しく説明すると、このTNステータスの検査は、
局所的ステータス(=個々のプロセッサ・モジュールの
ステータス)が「受信準備完了」であるか否かを判定す
るために行なわれる。
ここでは、先行するあるプライマリ・メツセージによっ
てTNの割当てが既になされているものと仮定している
この検査の結果、TNが「実行終了(done) J状
態、「非関与プロセッサ」状態、または「イニシャル」
状態のいずれかのステータスであることが判明した場合
には、rNAPJ拒絶メツセージが送出される(ここで
TNといっているのは、厳密にはH,S、RAM内のT
Nアドレスに格納されているエントリのことであるが、
以下、混同のおそれのない限りこのエントリのことも単
にTNと称することにする)。もしこの判明したステー
タスが、他の規定外の状態であったならば、送出される
拒絶メツセージはrNAK/TNNAK/であり、以上
の2つのタイプの拒絶メツセージもまた、第8図の応答
ディレクトリから取り出される。ステータスが「受信準
備完了」であったならば、更にもう1つの別の判定が行
なわれることになる。
このもう1つの別の判定とは、「入力オーバラン」に関
するものであり、この判定は、既に説明したように、第
13A図の入出力管理バッファ・セクション170の内
部において、GETアドレスとPUTアドレスとを比較
することによって行なわれる。更にはトランザクション
・ナンバも、受信メツセージ・カウントの値がゼロでな
いかどうかについて検査され、このカウント値がゼロで
あれば、それは、同じく入力オーパランを表示している
のである。オーバラン状態が存在している場合には、r
NAK/入カオーバカオーバランされてそのメツセージ
は拒絶される。
以上のすべて条件が満足されていたならば、H,S、R
AM26”内の応答ディレクトリからrAcKJメツセ
ージ(肯定応答メツセージ)が取り出されてネタ1−ワ
ーク上へ送出され、他のプロセッサ・モジュールとの間
で優先権が争われることになる。それらの他のプロセッ
サ・モジュールのうちには、同しように受信メツセージ
に対する肯定応答を送出したものもあるかもしてない。
この時点で、もしネットワークから受取る共通応答メツ
セージ(この「共通」とはマージされたという意味であ
る)がrACKJメツセージであって、従って、受イε
プロセッサ・モジュールとして選択された「全ての」プ
ロセッサ・モジュールが、先に受信したメツセージの受
入れが可能であることが明示されている場合には、その
受信メツセージの受入れがなされる。もしこの応答がr
ACKJ以外のいずれかの形であれば、先の受信メツセ
ージは「全ての」プロセッサから拒絶される。
受信並びに応答についてのこの具体例においては、プラ
イマリ・メツセージが受信された後には、全てのプロセ
ッサが、ACK応答、NAK応答、及びNAP応答のう
ちのいずれか1つを発生することにン主目されたい。プ
ロセッサは、これらの応答メツセージのうちのいずれか
1つを受取ったならば、その直後にプライマリ・メツセ
ージの伝送を試みることができる。(プロセッサは、こ
の伝送の試みを、ネットワークを通り抜けるための合計
待ち時間相当の遅延に等しいかまたはそれより大きい遅
延の後に行なうこともでき、それについては既に「能動
ロジック・ノード」の意で説E月したとおりである)。
もう1つ(1目して頂きたいことは、もし、幾つかのプ
ロセッサが互いに「同一の」メツセージを送信したなら
ば、結果的にそれらのメツセージの全てがネットワーク
上の競合を勝ち扱いたことになることも、あり得るとい
うことである。その場合には、それらの送信プロセッサ
の「全て」がACK応答を受取ることになる。このこと
は、後出の具体例で詳細に説明する、ブロードカスト(
−斉伝送)及び大域的セマフォ・モードの動作に関して
重要である。
実際に使用されている本発明の実機例は、これまでに説
明したものに加えて更により多くの種類の応答を含むと
共に様々な動作を実行するようになっている。第18図
はそれらの応答と動作とを、LOCK、TNエラー、及
びオーバランの各別込み状態、予め識別されている9つ
の異なったステータス・レベル、それに肯定応答(AC
K)及び非該当プロセッサ応答に対するものとして、縦
列に並べた各項目で示している。
あるプロセッサ・モジュールがメツセージの送信準備を
完了したときには、第13図のPTNレジスタ206に
格納されているPTN値は使用可能状態となっており、
従って必要とされるのはTNステータスが「送信準備完
了」状態にあることの確認だけである。第12図から分
るように、「送信準備完了」のエントリ(記述項)は、
出力メツセージのためのネクスト・メツセージ・ベクタ
・アドレスを含んでいる。アセンブルが完了した出力メ
ツセージはネットワーク上へ送出され、そしてもし競合
に敗退したならば、PTNが途中で変更されない限り、
伝送が成功するまでこの送出動作が反復され、そして成
功したなら応答を受取ることになる。伝送が成功して肯
定応答を受取ったならば、アドレス・ベクタが変更され
る。ネクスト・メツセージ・ベクタが、現在メツセージ
の中の第2番目のワード(第21A図)から取り出され
、このワードは送信トランザクション・ベクタ・カウン
タ222からランダム・アクセス・メモリ168へ転送
される。出力メッセージ・セクションがオーバラン状態
になければ、PUTカウンタ175が「1」だけ進めら
れ、このオーバラン状態は、PUTがGETに等しくな
ることによって表示される。尚、送信トランザクション
・ベクタ・カウンタ222から転送されるネクスト・メ
ツセージ・ベクタは、H,S、RAMの中の現在トラン
ザクション・ナンバ・レジスタ206によって指定され
ているトランザクション・ナンバ・アドレスへ入力され
る。もし、この新たなTNが「送信準備完了」状態のも
のであれば、この入力されたベクタの値は、再び、この
トランザクション・アイデンティティに関係している次
のメツセージ(ネクスト・メツセージ)の格納位置を指
し示している。H,S、RAMの中に格納されている出
力メツセージのフォーマットについては、第21図を参
照されたい。
ただし、メツセージを送出する際のメツセージ管理には
、PTHの内部的な、或いは外部からの変更をはじめと
する、多くの異なった形態の動作を含ませておくことが
できる。エラー状態、オーバラン状態、ないしロック状
態によって、システムがトランザクション・ナンバをr
TNOJにシフトするようにしておくことができ、この
シフトによって、システムはノン・マージ・モードに復
帰し、そしてrTNOJにおけるステータスの検査を、
「送信準備完了」状態が識別されるか或いは新たなTN
の割当てがなされるまで、続けることになる。かなり複
雑な具体例に採用することのできる状態並びに条件を示
したものとして、第19図(第19A図)のフローチャ
ートを参照されたい。
出 メツセージ完 バッファの例 メツセージの伝送の完了が「ロック(LOCK)」を除
いたその他の任意の応答メツセージによって明示された
ならば、新たに完了した出力メツセージ・バッファを指
し示すポインタが、H,S、RAMの出力メツセージ完
了循環バッファ・セクション(第8図参照)に格納され
る。このポインタは、上記出力メツセージ・バッファの
アドレスを表わす車なる16ビット・ワードである。(
出力メツセージ・バッファの)オーマットは第21図に
示されている。出力メツセージ・バッファには、ネット
ワークから受取った応答メツセージを記録する場所が含
まれていることに注目されたい)。
出力メツセージ完了循環バッファは、ネットワーク・イ
ンタフェースのハードウェア120と、マイクロプロセ
ッサ105の上に置かれた監視プログラムとの間の、通
信の機能を果たすものである。このマイクロプロセッサ
の中に備えられているプログラムは、これから出力され
るメツセージをH,S、RAMの中に格納する。これに
続く次の例で詳細に説明するが、複数の出力メツセージ
を一緒に鎮状に連結しくチェーンし)、シかもその際、
TNがこの鎖(チェーン)の先頭のポインタとして働く
ようにすることができ、これによって作業の複雑なシー
ケンスを形成することができる。その他の特徴としては
、ネットワークを複数のTNの間で多重化即ち時分割(
マルチブレクシング)することができるため(これにつ
いても後に詳述する)、ネットワーク内の諸処に存在す
る様々な事象に応じた種々の順序でメツセージを出力す
ることができる。
更にまた、伝送に成功したパケットによって占められて
いたH、S、RAM内の格納空間を迅速に回復し、それ
によってその格納空間を、これから出力される別の出力
パケットのために再使用でとるようにすることが重要で
ある。出力メツセージ完了循環バッファが、この機能を
果たしている。
あるデータ・メツセージの送信が成功裏に終了して「ロ
ック」応答以外の応答を受信したならば、ネットワーク
・インターフェイスは、HoS、RAM内のr0510
(16進数)」に格納されているPtJTポインタ(第
10図参照)を「1」だけ進め、また、この送信が完了
したばかりの出力メツセージの先頭のワードのアドレス
をPUTレジスタ内のアドレスへ格納する。(PUTポ
インタの値がr0512(16進数)」に格納されてい
るTOPポインタの値より大きくなると、PUTポイン
タはr0513(16進数)」に格納されているBOT
ポインタ(=BOTTOMポインタ)と同じになるよう
に最初にリセットされる)。PUTポインタがGETポ
インタ(格納位置r0511(16進数)」)より大き
くなるようならば、循環バッファが、オーバランしてい
るのであり、そのため「エラー割込み」がマイクロプロ
セッサへ向けて発生される。
マイクロプロセッサの内部で実行されているソフトウェ
アによって、GETポインタが指示している出力メツセ
ージ・バッファが非同期的に調べらねる。プロセッサは
、実行を要求された何らかの処理を完了したならば、G
ETポインタを「1」だけ進める(このGETの値は、
TOPの値より大きくなるとBOTの値にリセットされ
る)。GET=PUTとなっている場合には、処理せね
ばならない出力メツセージはもはや存在していない。そ
うでない場合には、更に別の出力メツセージが成功裏に
送信を完了した状態にあるので、それらの出力メツセー
ジを処理せねばならない。この処理には、H,S、RA
Mの出力バッファの格納空間を空きスペースに戻すこと
が含まれており、従ってこのスペースを他のパケットの
ために再使用することできる。
ここで注目しておくべき重要なことは、出力メツセージ
完了循環バッファと入力メツセージ循環バッファとは互
いに別個のものであり、そのためこれら2つの循環バッ
ファは、夫々が別々のPUT、GET、TOP、及びB
OTの各ポインタによって管理されているということで
ある。構成のしかたによっては、第13図に示されてい
るように、これら両方の循環バッファが、循環バッファ
管理ハードウェア170を共用するようにもできるが、
そのような構成が必須なわけではない。
吸腹ユ定旦王I 各プロセッサ・モジュールは、そのプロセッサ・モジュ
ール自身の高速ランダム・アクセス・メモリ168(第
13図)の内部のTNをアクセスする機能を備えており
、このメモリ168には、潜在的に使用可能な複数のT
Nの、そのディレクトリが含まれている。ただし、割当
てられていないTNは、そのTHに関連付けられている
格納位置に格納されているトランザクション・ナンバ値
によって、割当てられていない旨が明確に表示されてい
る。従って、マイクロプロセッサ・システム103は、
割当てられていないトランザクション・ナンバを識別し
、そしてそれらのうちの1つを、所与のトランザクショ
ン・アイデンティティに関して他のプロセッサ・モジュ
ールとの間の通信を開始するのに使用するために選択す
ることができる。
トランザクション・ナンバは、ローカル・マイクロプロ
セッサ(=プロセッサ・モジュール内のマイクロプロセ
ッサ)の制御の下に、局所的に割当てられ且つ更新され
るが、ネットワーク内の全域における大域的制御は、r
TN放棄命令」及びrTN割当命令」というプライマリ
制御メツセージを用いて行なわれる。同一のTNを要求
する可能性のある互いに競合する複数のプロセッサ・文
ジュールの間にデッドロック状態が発生することは決し
てなく、そのわけは、ネットワークが、より小さな番号
を付りられているプロセッサの方に優先権を与えるから
である。そのTNを得ようとしたプロセッサのうちで1
先権を得られなかった残りのプロセッサはrNAK/T
Nエラー」応答を受取ることになり、この応答は、それ
らのプロセッサが別のTNを確保することを試みなけれ
ばならないということを表示するものである。従って、
それらのトランザクション・アイデンティティの確保並
びに照合を、システムの内部で及び局新約に行なう際の
、完全なフレキシビリティが得られている。
更に注目して頂きたいことは、THの反復使用は、rT
NOJである基本伝送モードと、TNがゼロより大きい
マージ・モードとの間の、シフトによって行なわれてい
るということである。従ってこのシステムは、ただ1回
のTNのブロードカスト式の伝送によって、その動作の
焦点だけでなくその動作の性質をも変えることができる
大域的ステータスの変化を伝達するための更に別の、そ
して特に有用な方式は、第4図に関して既に説明した強
制パリティ・エラーの伝播である。この独特の表示方式
は、その他の伝送の間にはさみ込まれて伝送されると、
中止されたシステム資源が調査され、そして適切な動作
が実行されることになる。
プロセッサ対プロセッサ通信 プロセッサ通信として、2種類の特別の形態のものがあ
り、その一方は特定の1つの転送先プロセッサへ向けて
行なわれる通信であり、他方は、1つのクラスに属する
複数のプロセッサを転送先として行なわれる通信である
。これらの両タイプの伝送はいずれもDSWを利用して
おり、また、これらの伝送はいずれも、ノン・マージ・
モードのブロードカストによって実行される。
特に1つの発信元プロセッサと1つの転送先プロセッサ
との間での通信を行なう際には、DSWの中に転送先プ
ロセッサ識別情報(destinationproce
ssor 1dentification : D P
 I D )を入れて使用する。第8図を参照しつつ説
明すると、このDPIDの値を用いて各々の受信プロセ
ッサ・モジュールのH,S、RAM26“の選択マツプ
部分がアドレスされると、転送先として意図された特定
のプロセッサ・モジュールだけが、肯定的な応答を発生
してそのメツセージを受入れる。肯定応答が送信され、
しかもそれが最終的に成功裏に受信されたならば、両者
のプロセッサは、要求されている将来の動作のいずれで
も実行できる状態になる。
ある1つのメツセージを、ある1つの制御プロセスに関
係する、1つのクラスに属する複数のプロセッサが受信
すべき場合には、DSW内のマップ・ニブルとマップ・
アドレスとによって、HlS、RAMの選択マツプ部分
の中の対応するセクションが指定される。そして、全て
の受信プロセッサが夫々に肯定応答を送出し、それらの
肯定応答は、発信元プロセッサ・モジュールへ到達する
ための競合を、この通信のための往復送受信が最終的に
完了するまで続けることになる。
全域ブロードカスト・モードのプロセッサ通信は、プラ
イマリ・データ・メツセージ、ステータス・メツセージ
、制御メツセージ、並びに応答メツセージの、各メツセ
ージの通信に用いることができる。優先順位プロトコル
と、優先権を付与する機能を備えたネットワークとの、
両者の固有の能力によって、その種のメツセージをその
他の種類のメツセージのシーケンスの中に容易に挿入で
きるようになフている。
ハッシング・モードのプロセッサ選択は、リレーショナ
ル・データベース・システムにおけるデータ処理のタス
クを実行する際には、他から飛び抜けて多用されるプロ
セッサ選択方式である。
−次的データ(=バックアップ用ではないメインのデー
タ)についての互いに素の(=同一の要素を共有しない
)複数のデータ部分集合と、バックアップ用データにつ
いての互いに素の複数のデータ部分集合とが、適当なア
ルゴリズムに従って、異った複数の二次記憶装置の中に
分配されている。1つのプロセッサが一次的データの部
分集合を分担し別の1つのプロセッサがバックアップ用
データの部分集合を分担しているためにそれら2つのプ
ロセッサが同時に応答した場合には、次的データについ
てのメツセージの方に優先権が与えられる。この条件が
補償されるようにするためには、優先順位のより高いコ
マンド・コード(第12図参照)を選択するようにすれ
ば良い。
データベースの信頼性及び完全性の維持も、以上の様々
なマルチプロセッサ・モードを利用することによって達
成され、その場合、発生した個々の状況に対して最も有
利なようにそれらのモードが適用される。例を挙げるな
らば、−次的データのある部分集合を分担している二次
記憶装置が故障した場合には、特別のプロセッサ対プロ
セッサ通信を利用してそれを更新することができる。ま
たエラーの訂正やデータベースの一部分のロールバック
は、こわど同様の方式で、或いはクラス・モードで動作
させることによって、行なうことができる。
トランザクション・ナンバの例 トランザクション・ナンバという概念により、マルチプ
ロセッサ・システムの制御のための新規にして強力なハ
ードウェア機構が得られている。
本システムにおいては、トランザクション・ナンバは「
大域的セマフォ」を構成しており、また、ネットワーク
に対するメツセージの送受信と、複数のプロセッサに分
配されたある1つの所与のタスクのレディネス状態の確
認との夫々において、重要な役割りを果たしている。
トランザクション・ナンバ(TN)は、HlS、RAM
26の中の16ビット・ワードとじて物理的に実現され
ている。このワードは、様々な機能を果たせるように、
第12図に示すようなフォーマットとされている。TN
はH,S、RAMに格納されるため、マイクロプロセッ
サ105とネットワーク・インターフェイス120との
いずれからもアクセスすることができる。
大域的セマフォ 「セマフォ」という用語は、コンピュータ科学関係の文
献において、互いに非同期的に実行される複数の処理の
制御に用いられる変数を指し示すための用語として、−
数的に使用されるようになっている。セマフォは、中断
されることのない1回の操作でそれを「テスト・アンド
・セット」することができるという性質をもっている。
−例として、「アンアサインド(IJNAssIGNE
D :割当てがなされていない状態)」と、「アサイン
ド(ASSIGNED :割当てがなされている状態)
」との2つの状態を取り得るセマフォ変数について考察
することにする。この場合には、テスト・アンド・セッ
ト動作は次のように定義される:もしセマフォが「アン
アサインド」状態にあったならば、そのセマフォを「ア
サインド」状態にセットして成功を表示すること;反対
にセマフォが既に「アサインド」状態にあったならば、
そのセマフォを「アサインド」状態のままにしておいて
「失敗」を表示すること。従りて、このセマフォに拠れ
ば、セマフォのテスト・アンド・セットに成功した処理
は自らのタスクを続行することができ、方、それに失敗
した処理は、そのセマフォが「アンアサインド」状態に
リセットされるのを待つか、或いは、等価の別の資源を
制御している別のセマフォをテスト・アンド・セットす
ることを試みるかの、いずれかを余儀なくされる。容易
に理解できることであるが、仮にテスト・アンド・セッ
ト動作が中断されるようなことがあり得るとするならば
、2つの処理が同時に同じ資源にアクセスしてしまう可
能性が生じ、それによって予測することのできない誤っ
た結果が生じてしまうおそれがある。
いかなるマルチプロセッサ・システムも、システムの資
源へのアクセスを制御するために、セマフォと同一視す
ることのできる概念を、ハードウェアによって実際に具
体化している。しかしながら、従来のシステムは、1コ
ピーのセマフォ(=部数が1部のセマフォ、即ち1箇所
だけに設けられるセマフォ)しか維持することができな
い、そこで、複数コピーのセマフォ(=部数が複数のセ
マフォ、即ち複数箇所に設けられるセマフォ)を、各プ
ロセッサに1コピーづつ設けて維持するようにすれば、
単にテストするだけのセマフォのアクセスのために競合
が発生する回数を低減するという目的と、後に説明する
その他の用途に多価のセマフォ変数を利用するという目
的との、双方のために望ましい。問題は、セマフォの多
数のコピーに対し、完全に同期した操作を加えねばなら
ないということであり、もしこのことが守られなかった
ならば、それを強化するためにセマフォが設けられてい
るところの、資源へのアクセスの完全性が失われてしま
うことになる。
複数コピーのセマフォ、即ち「大域的」セマフ才は、本
システムによって提供される。次に示す表は、大域的セ
マフォに関する動作を、単一セマフォ(1コピーのセマ
フォ)と対比したものである。
(以下余白) 本実施例のシステムにおいては、rTN割当(ASSI
GN TN ) JコマンドとrTN放棄(RELIN
−QIIISHTN)Jコマンドとが、大域的セマフォ
として利用されているトランザクション・ナンバに対す
るテスト・アンド・セット機能とリセット機能とを夫々
に担フている。第12図について説明すると、rNAK
/TNエラー」応答が失敗を表示し、一方、rSACK
/アサインド」応答が成功を表示する。
複数のノードを同期してクロッキングするために用いら
れている同期クロッキング方式や、全てのプロセッサへ
同時に最優先パケットを伝送するブロードカスト動作を
はじめとする、このネットワークの特質は、大域的セマ
フォという概念を実際に具体化する上での基礎を成すも
のである。この概念が実施されているために、このシス
テムは所望のシステム資源の複数のコピーの、その割付
け(アロケーション)、割付は解除(デアロケーション
)、並びにアクセスの制御を、単にその資源にTNを付
与することによって行なえるようになっている。ここで
注目すべき重要なことは、分散された資源の制御を、単
一セマフォの場合と略々同程度の小規模なソウトウエア
・オーバヘッドで、実行できるようになっているという
ことである。このことは従来のシステムに対する非常な
進歩であり、なぜならば、従来のシステムは、分散型の
資源を管理できないか、或いは、複雑なソフトウェアに
よるプロトコルが必要とされ且つハードウェア的なネッ
クを生じてしまうかの、いずれかだからである。
レディネス状態 「ビズイ (BUSY) J、rウェイティング(WA
ITING ) J、「準備完了(READY ) J
  (送信と受信の夫々の準備完了)、「終了(DON
E) J、及び「非関与プロセッサ(NON−PART
TCIPANT ) Jから成る1組の値(第12図参
照)が、あるTNを付与されたタスクの、そのレディネ
ス状態を速やかに確認する能力を提供している。このシ
ステムでは、以上の各状態の意味するところは、次の表
が示すようになっている。
rTN割当」コマンドを用いて、タスクへのTNの付与
が動的に行なわれるようになっている。成功表示(rT
N割当」メツセージに対するrSACK/アサインド」
応答)は、すべての動作可能なプロセッサが成功裏にT
Nのタスクへの割当てを完了したことを示す。第11図
に関して注目すべきことは、rNAK/TNエラー」応
答は高い優先順位(小さな値)をもっているため、いず
れかのプロセッサのネットワーク・インターフェイス1
20がTNの使用に関する衝突を検出したならば、全て
のプロセッサが失敗応答を受取るということである。更
に、ネットワーク上を伝送されるこの失敗応答の0PI
D(発信元プロセッサID)フィールドは、衝突のあっ
たプロセッサのうちの第1番目の(付された番号が最小
の)プロセッサを表示することになる。この事実は、診
断ルーチンに利用される。
各々のプロセッサは、ソフトウェアの働きにより、タス
クを処理し、そしてTNを「ビズイ」、「ウェイティン
グ」、「送信準備完了」、「受信準備完了」、「終了」
または「非関与プロセッサ」のうちの該当するものにセ
ットする。最初のrTN割当」を発令したプロセッサを
含めどのプロセッサも、任意の時刻に、「ステータス・
リクエスト」コマンド或いはrマージ開始」コマンドを
発令することによって、タスク(TN)がどの程度に完
了しているかという状態を容易に確認することができる
「ステータス・リクエスト」は、多価の(=多種の値を
取り得る)大域的セマフィの1回のテストと同じことで
ある。第11図から分るように、優先j順位が最も高い
ステータス応答(SACK)メツセージがネットワーク
上の競合を勝ち抜き、その結果、最も低いレディネス状
態が表示されることになる。更に、その0PIDフイー
ルドは、その最低のレディネス状態にあるプロセッサの
うちの第1番目の(付さねた番号が最小の)プロセッサ
のアイデンティティ(LIJl:)を表示することにな
る。
この後者の特性を用いて、複数のプロセッサに分配され
たタスクの完了を「待機コするための、「ノン・ビズイ
(non−t)ysy) Jの形態が定められている。
最初にrTN割当」を発令したプロセッサは初代の「ウ
ェイト・マスク」であるとされる。このプロセッサは次
に、任意の基準に基づいて、他のいずれかのプロセッサ
を新たな「ウェイト・マスク」に指定する。この新たな
「ウェイト・マスク」は、それ自身が所望のレディネス
状態に到達したならば、「マージ開始」或いは「ステー
タス・リクエスト」のいずれかを発令することによって
、全てのプロセッサに対する問合せを行なう。もし他の
プロセッサの全てが準備完了状態となっていたならば、
5ACKがその旨を表示することになる。もし幾つかの
プロセッサが尚、準備完了状態にはなかったならば、5
ACK応答の0PIDフイールドが、レディネス状態が
最低のプロセッサのうちの第1番目のものを表示するこ
とになる。「ウェイト・マスタ」はそのプロセッサに対
し、新しい「ウェイト・マスタ」になるように命令する
。結局最後には全てのプロセッサが準備完了状態となる
のであるが、それまでの間、このシステムは、少なくと
も一つのプロセッサが準備完了状態に到達したことを知
らされる都度、ステータスの問合せを試みるだけである
。従ってこのシステムは、結果を出さずに資源を消費す
る周期的なステータス間合せという負担を負わされるこ
とがない。更にこの方式によれば、最後に完了する処理
が終了した丁度その時刻に、全てのプロセッサが仕事を
完了したということをシステムが確実に知ることになる
。当業者には理解されるように、本発明の概念の範囲内
でその他の多種多様な「待機」の形態を採用することが
できる。
「マージ開始」コマンドは、1つの特殊な種類のテスト
・アンド・セット命令である。大域的セマフォのステー
タスが「送信準備完了」または「受信準備完了」である
場合には、現在トランザクション・ナンバ・レジスタ(
PTNR)206(第13図参照)が「マージ開始」メ
ツセージ(第3図参照)内のトランザクション・ナンバ
の値にセットされ、これによってPTNRレジスタの設
定が行なわれる。動作中のプロセッサのいずれかが、よ
り低位のレディネス状態にある場合には、PTNRの値
は変更されない。
「マージ停止」コマンドは、以上の動作に対応するリセ
ット動作であって、すべての動作中のプロセッサのPT
NRを無条件にrTNOJにリセットするものである。
後に説朗するように、PTNRによって指定されている
現在大域的タスク(current globalta
sk )に関係するメツセージだけが、ネットワーク・
インターフェイス120から出力されるようになっCい
る。従って、「マージ開始」コマンド及び「マージ停止
」コマンドは、複数のタスクの間でネットワークを時間
多重化、即ち時分割(タイム・マルチプレクシング)す
ることのできる能力を提供しており、従ってそれら複数
のタスクは、任意に中止、及び/または再開することが
できるようになっている。
本発明の細部の特徴で重要なものに、ネットワーク・イ
ンターフェイス120が、ネットワークからのコマンド
によるTNのアクセスと、マイクロプロセッサ105に
よるTNのアクセスとが、決して同時に行なわれないよ
うにしているということがある。本実施例においては、
これは、受信状態制御回路260から読出し/書込み状
態制御回路270へ送られている信号によって達成され
ており、この信号は、TNを変更する可能性のあるネッ
トワークからのコマンドの処理が行なわれているときに
は必ず「肯定」状態とされている。
この信号が「肯定」状態にある短い時間の間は、プロセ
ッサは、H,S、RAMへのアクセスを、制御回路27
0によって禁止されている。当業者には理解されるよう
に、本発明の範囲内で、以上の構成の代りになる多種多
様な代替構成を採用することができる。
受信制御 TNの更に別の機能に、入力メツセージの制御がある。
rTN割当」コマンドを用いることによって、所与のタ
スクに対して、複数のプロセッサにおける大力メツセー
ジ・ストリームを関連付けることができる。所与のプロ
セッサの中の当該タスクに割当てられているTNが「受
信準備完了」にセットされているときには、そのTNは
更に、そのプロセッサが受入れる用意のあるパケットの
個数を表わすカウント値を併せて表示している(第12
図)、ネットワーク・インターフェイス120は、個々
のパケットを成功裏に受信するたび毎にこのカウント値
をデクリメントしくこのデクリメントはTNのワードか
ら算術的に「1」を減じることによって行なわれる)、
このデクリメントはこのカウント値がゼロに達するまで
続けられる。カウント値がゼロに達したときにはrNA
CK/オーバラン」応答が発生され、それによって、パ
ケットを送出しているプロセッサに対し、このNACK
応答を発しているプロセッサがより多くの入力パケット
を受入れる用意ができるまで待機しなければならないこ
とが知らされる。更にまた、第18図から分るように、
このときにはPTNRのrTNOJへのリセットも併せ
て行なわれる。
以上の動作メカニズムにより、ネットワークを流通する
パケットの流れの制御を直裁的に行なえるようになって
いる。またそれによって、1つのプロセッサに未処理の
パケットが多量に詰め込まれることがないように、そし
てそのプロセッサがシステムにとってのネックになって
しまうことがないように、保証されている。
盛j冒連碑 H21,A図について説明すると、同図から分るように
、H,S、RAMに格納されている各メツセージは、新
丁Nベクタ(=ネクスト・メツセージ・ベクタ)の値を
収容するためのフィールドを含んでいる。メツセージを
送信してそれに対する応答を成功裏に受信したならば、
この送信したばかりのメツセージに含まれていた新TN
ベクタが、H,S、RAMの中の現在トランザクション
・ナンバを格納するためのアドレスへ(PTNRから転
送されて)格納される。従って、TNは個々のメツセー
ジが送出されるたび毎に更新され、また、メツセージの
伝送に成功した際にはTNが自動的に所望の状態にセッ
トされるようにすることが可能となっている。
第12図について説明すると、「送信準備完了」のTN
のフォーマットは、14ビットのHlS、RAM内のア
ドレスを含んでおり、このアドレスは、所与のタスク(
TN)に関して次に出力すべきパケットを指し示すのに
用いられている。
従って、H,S、RAMの中に格納されているTNは、
種々のタスクに関するメツセージの、先人先出式(F 
I FO)待ち行列の、その先頭を指し示すヘッド・ポ
インタとしての機能も果たしている。従って、所与の1
つのタスク(TN)に関する限りにおいては、各プロセ
ッサは、新TNベクタのチェーンによって定められた順
序で、パケットの送出を試みることになる。
先に説明した、複数のTN(タスク)の間でネットワー
クを高速で多重化(マルチブレクシング)するための機
構と組合わせることによって、多くのプロセッサの間に
分配された何組もの複雑な組合せのタスクを、極めて小
規模なソフトウェア・オーバヘッドで管理できるように
なることは明らかである。ネットワークと、インターフ
ェイスと、プロセッサとの共同動作によって提供されて
いる構成は、そのコピーを数百個のプロセッサの間に分
配することができ、更には数十個のプロセッサの間にす
ら分配することのできる資源及びタスクに対して、資源
の割付けと割付は解除、タスクの中止と再開、それにそ
の他の制御を行なうための好適な構成である。
DSW(転送先選択ワード)の例 転送先選択ワード(第3図)は、DSWロジック190
(第13図)及びH,S、RAM26(第8図)のDS
Wセクションと協働することによって、以下のことを可
能とする複数のモードを12供するものである。即ち、
それらのモードとは、各々の受信プロセッサのネットワ
ーク・インターフェイス120が、受信中のメツセージ
は当11亥ネットワーク・インターフェイスに組合わさ
れているマイクロプロセッサ105によって処理される
ことを4意図したものか否かの判定を、迅速に下せるよ
うにするための複数のモードである。既に説明したよう
に、受信メツセージの中に含まれているDSWは、H,
S、RAMのDSWセクションに格納されているニブル
を選択すると共に、そのニブルと比較される。
プロセッサ・アドレス 第8図に示されているように、H,S、RAMのDSW
セクションの1つの部分がプロセッサ・アドレス選択ニ
ブルの格納にあてられている。本システムにおいては、
搭載可能な1024個のプロセッサの各々に対して、H
,S、RAMのこの部分に含まれているビット・アドレ
スのうちの1つが関連付けられている。当該プロセッサ
のID(アイデンティティ)に関連付けられたビット・
アドレスのビットは「1」にセットされており、一方、
このセクション内のその他の全てのビットは「0」にさ
れている。従って各々のプロセッサは、このセクション
の中の1つのビットだけが「1」にセットされている。
ハツシュ・マップ H,S、RAMのDSWセクションの別の1つの部分が
、ハッシュ・マップ(複数)の格納にあてられている。
本システムにおいては、マツプ選択ビットのうちの2つ
のビットがそれらのハッシュ・マップにあてられており
、それによりて、4096個の可能な値を全て含む完全
な集合が2組得られている。ハッシュト・モード(ha
shedmode )においては、二次記憶装置に格納
されているレコードのためのキーが、ハツシング・アル
ゴリズムに従って設定され、それによってOから409
5までの間の「パケット」の割当てが行なわれる。所与
の「パケット」に収容されているレコードを担当してい
るプロセッサは、そのアドレスが当該パケットのパケッ
ト・ナンバに対応しているマツプ・ビットの中に「1」
のビットがセットされている。その他のビットは「0」
にされている。複数個のマツプ・ビットをセットするだ
けで、所与のプロセッサに複数の一パケットを担当させ
ることができる。
この実施例の構成においては、容易に理解されるように
、マツプ・ビットのセツティングを以下の方式で行なえ
るようになっている。即ち、その方式とは、所与の1つ
のマツプ選択ビットについては、各ビット・アドレスが
ただ一つのプロセッサにおいてのみ「1」にセットされ
ており、しかも、いかなるビット・アドレスも必ずいず
れかのプロセッサにおいて「1」にセットされていると
いう方式である。この方式を採用したことの直接の結果
として、各々のプロセッサ(AMP)が、データベース
のレコードの互いに別個で互いに素の部分集合を分担し
、しかも、システムの全体としては、レコードの全てを
含む完全な集合が存在するようになっている。
以上の具体例はリレーショナル・データベースの課題を
例に引いて説明されているが、当業者には容易に理解さ
れるように、課題の互いに素の部分集合をマルチプロセ
ッサ復合体の中の個々のプロセッサに分担させることが
できる課題領域であればどのような課題領域にでも、こ
れと同じ方式を適用することができる。
更にもう1つ注目に値することは、完全なマツプを2つ
備えることによって、以上に説明した方式を、一方のマ
ツプによれば所与のあるプロセッサに割当てられている
パケットを、他方のマツプにおいてはそれとは異なった
プロセッサに割当て得るように、構成することができる
ということである。ここで、一方のマツプを「−次的」
なものとし、他方のマツプを「バックアップ用」のもの
とすれば、直接の帰結として、所与のあるプロセッサ上
では一次的なものであるレコードが、別のプロセッサ上
では確実にバックアップされるようにすることができる
。更に、所与の1つのプロセッサをバックアップするプ
ロセッサの個数については、いかなる制約もない。
当業者には理解されるように、本発明の範囲内で実現で
きる互いに別個のマツプの数は3以上にすることもでき
、また、パケットの数も任意の個数とすることができる
クラス 先に説明したプロセッサ・アドレスとハッシュ・マップ
のいずれの場合にも、全てのプロセッサについてその所
与の1つのビット・アドレスを調べれば、そのビット・
アドレスが1つのプロセッサにおいてだけ「1」にセッ
トされており、その他の全てのプロセッサ内の対応する
ビット・アドレスは「0」にセットされていることが分
かる。
しかしながら、複数のプロセッサ内において対応するビ
ット・アドレスが「1」にセットされているような方式
も可能であるし、有用でもある。この方式は「クラス・
アドレス」モードといわれる方式である。
クラス・アドレスは、そのコピーが複数のプロセッサ内
に存在する処理手順ないし機能の名称と考えることがで
きる。該当する処理手順ないし機能を備えているプロセ
ッサは、いずれも対応するビット・アドレスに「1」ビ
ットがセットされている。
クラス・アドレスへ宛ててメツセージを送出するために
は、DSW(第3図)内の該当するクラス・アドレスが
セットされる。H,S、RAMの中の該当する位置のビ
ットが「1」にセットされていることによって当該クラ
スに「所属」していることが示されている全ての動作可
能なプロセッサは、その送出されたメッセージ・パケッ
トに対してrAcKJで応答することになる。当該クラ
スに所属していないプロセッサはNAPで応答する。
従ってDSWは、マルチプロセッサ・システム内のメツ
セージの流れを制御するのに必要な経路指定計算がハー
ドウェアによって行なわれるようにしている。また、プ
ログラムを、システムの様々な機能がいずれのプロセッ
サの中に備えられているのかという知識とは、無関係な
ものとすることができる。更には、マツプはH,S、R
AMの一部であり、従ってマイクロプロセッサ105か
らアクセスできるため、ある機能を1つのプロセッサか
ら別のプロセッサへ動的に再配置することが可能である
マージの例 複雑なマルチプロセッサ・システムにおいては、一連の
相互に関連した複数の動作の実行が、タスクによって必
要とされることがある。これは特に、複雑な問合せを取
扱うリレーショナル・データベース・システムについて
言えることであり、そのようなデータベース・システム
においては、データをアセンブルしてファイルを形成し
、しかもアセンブルされた後には特定の方式で複数のプ
ロセッサへ再分配できるようなファイルを形成するため
に、複数の二次記憶装置を参照することが必要とされる
ことがある。以下に示す例は、第1、第8、及び13図
のシステムが、TNと、DSWと、それに大域的セマフ
ォとに対して操作を加えることによって、そのような機
能をいかに容易に実行できるようになっているかを、手
短に説明するものである。
まず第1に、マージ・コーデイネータ(典型的な例とし
てはマージ・コーデイネータはIFP14ないし16で
あるが、必ずしもそれに限られるものではない)が、あ
る1つのファイルをマージして形成することになる(即
ちデータ・ソースとして機能する)1つのクラスに属す
る複数のAMPを、(AMP18〜23の中から)識別
する6割当てがなされていない1つのTNが選択され、
そしてデータ・ソース機能を識別するために割当てられ
る。このファイルを別の1組のAMP(それらは元のデ
ータ・ソースのプロセッサであってもよい)へ分配ない
しハツシングするするという第2の主要機能に対しては
、そのときまで割当てをされていなかった別のTNが割
当てられる。
このマージ機能のためのコーデイネータは、第1のTN
に関係するファイルの、マーリングの作業を行なうこと
になるクラスに属する複数のプロセッサを、DSWを用
いて識別する。このマーリングの作業に関与する関与プ
ロセッサは、そのTNのステータスのレベルを上昇させ
て「ビズイ」または「ウェイティング」ステータスとし
、その後に、マージ動作の制御が、マージ動作に関与し
ている関与プロセッサのうちの1つへ渡される(即ちコ
ーデイネータの仕事か委任される)。
以上の複数の関与プロセッサ(それら以外の全てのプロ
セッサ・モジュールはそのトランザクション・ナンバに
関しては非関与プロセッサである)の各々は、このよう
に規定されたマージのタスクに関するメッセージ・パケ
ットを受信してそれに対する肯定応答を送出した後には
、そのプロセッサ自身のサブタスクの実行を、そのステ
ータス・レベルを適宜更新しながら進行させて行く、そ
して、マージ・コーデイネータの仕事を委任されている
プロセッサがそれ自身のタスクを終了したならば、その
プロセッサは、その他の全ての関与プロセッサに対して
、当該トランザクション・ナンバに関するステータスを
知らせるよう、ステータス・リクエストを送出し、それ
によって、関与プロセッサのうちでレディネス状態が最
低のプロセッサを表示している応答を受取ることができ
る。
マージ動作の制御は、このレディネス状態が最低のプロ
セッサへン度され、この後には、このプロセッサが、自
身の作業が終了した際にその地金ての関与プロセッサを
ポーリングすることができるようになる。以上のプロセ
スは、必要とあらば、関与プロセッサの全てが準備完了
状態となっていることを示す応答が受信されるまで、続
けさせることができる。そのような応答が受信された時
点においてコーデイネータとして働いていたプロセッサ
は、続いて、DSWを利用して当該クラスに属している
関与プロセッサを識別しつつ、H,S。
RAM26へのメツセージの転送を開始し、このメツセ
ージの転送に伴なって、ステータス・レベルが該当する
出力メツセージ・ベクタ情報により「送信準備完了」へ
と更新される。これに続いて実行されるポーリングの結
果、全ての関与AMPが送信準備完了状態にあることが
判明したならば、コーデイネータは、その特定のTHに
ついてのマージ開始コマンドを発令する。
マージ動作が実行されている間に、処理済のデータ・パ
ケットは、結果をリレーショナル・データベースに従っ
て二次記憶装置へ分配するための1つのクラスに属する
複数のプロセッサ・モジュールへ宛てて、転送されるこ
とになる。それらの複数の受信プロセッサが、このとき
発信元となっている複数のプロセッサと同じものである
と否とにかかわらず、この分配に関与するクラスに所属
する関与プロセッサ(即ち上記受信プロセッサ)は、D
SWによって識別され、またそのトランザクションは新
たなTHによって識別される。この新しいトランザクシ
ョンに関わる関与プロセッサの全てに対して、この新た
なTNが割当てられることになり、また、それらの関与
プロセッサは、それらのレディネス状態のレベルを上昇
させて「受信準備完了」とすることになる。このDSW
は、クラス指定ではなく、ハッシング選択指定のものと
することもできるが、いずれの場合においても、マージ
が実行されている間は、関与プロセッサの全てが、ブロ
ードカストされるメツセージを受信できる状態におかれ
ている。「マージ開始」が発令されたならば、送出動作
に関与すべき送出関与プロセッサの各々から複数のメッ
セージ・パケットが、しかも夫々のプロセッサから互い
に同時に、ネットワーク上へ送出され、それらのメッセ
ージ・パケットに対しては動的に(=伝送中に)優先権
の判定が行なわれる。各々の送出関与プロセッサが、そ
れ自身の1組のメツセージを送信完了したならば、それ
らの各々の送出関与プロセッサは、一定の形に定められ
ている「エンド・オブ・ファイル(End of Fi
le ) Jメツセージの送信を試み、この「エンド・
オブ・ファイル」メツセージは種々のデータメツセージ
より優先順位が低い。関与プロセッサの全てが「エンド
・オブ・ファイル」メツセージを送出するようになるま
では、この「エンド・オブ・ファイル」メツセージはデ
ータ・メツセージとの競合に敗退し続け、そして全ての
関与プロセッサから送出されるようになったならば、よ
うやく、「エンド・オブ・ファイル」メツセージの転送
が達成される。この転送が達成されると、コーデイネー
タは「エンド・オブ・マージ(End of Merg
e) 」メツセージを送出し、また、それに続いてrT
N放棄」を実行することができ、このrTN放棄」によ
ってこのトランザクションは終了する。オーバラン状態
、エラー状態、ないしはロック状態に対しては、マージ
即ち送信を始めからやり直すことによりて適切に対処す
ることができる。
ある1つのTNに関するマージ動作が終了したならば、
このシステムは、THのシーケンスの中の、続く次のT
Nへとシフトすることができる。
この新たなTNに該当する複数のメッセージ・パケット
の待ち行列を、各々のプロセッサ・モジュールが作り終
ったならば、それらのプロセッサ・モジュールは、マー
ジ動作を実行させるためのネットワークに対する働きか
けを再び開始することが可能となる。個別に実行される
プロセッサ内マージ動作に加え、更に以上のようにネッ
トワーク内マージ動作が効率的に利用されるために、こ
のシステムは、従来のシステムに対して著しく優れた、
極めて大規模なソート/マージ・タスクを実行すること
ができるようになっている。本発明を採用した場合に、
システム内のある1つのファイルをソートするために必
要な時間は、レコードの個数をn個、プロセッサの個数
をm個とするとき、以下の式で表わすことができる。
m         m この式において、C2は定数であり、この実施例に関し
ては、100バイト・メツセージが用いられている場合
には約10マイクロ秒と見積られ、またC1は、典型的
な16ビット・マイクロプロセッサが使用されている場
合に、約1ミリ秒と見積られる定数である。様々に組み
合わせたnとmとの組合せに対する、概略のソー1−/
マージ時間が、秒を単位として次の表に示されており、
それらの値は100バイト・レコードが用いられている
場合の値である。
(以下余白) 以上の表に示されている具体例の数字を従来のシステム
と比較して評価するのは容易なことではない。その理由
は、相互に関連を有する2種類のソート処理シーケンス
(プロセッサによるソートとネットワークによるソート
)が関与しているからであり、また、そもそも、かかる
能力を有するシステムが殆んど存在していないからであ
る。更に、本システムではその長さが長大でしかも可変
なメツセージがソート及びマージされるのに対して、−
数的な多くのソート能力は、数バイトないし数ワードに
ついて能力評価がなされている。
更に別の重要な要因として、本システムはマルチプロセ
ッサそのものであって、ソート/マージ処理の専用シス
テムではないということがある。
本システムは、局所的にも大域的にも、マージ動作とノ
ン・マージ動作との間を完全なフレキシビリティをもっ
てシフトすることができ、しかもこのシフトを、ソフト
ウェア的な不利益を生じることなく、また、システム効
率に損失を生じさせることもなく、行なえるようになっ
ている。
タスク・リクエスト/タスク応答のサイクルの例 第1図に関し、ネットワーク50に接続されているプロ
セッサ14.16、ないし18〜23はいずれも、他の
1個または複数個のプロセッサにタスクを実行させるた
めのタスク・リクエストを、メッセージ・パケットの形
態の然るべきフォーマットで形成する機能を有している
。リレーショナル・データベース・システムにおいては
、これらのタスクの殆んどはホスト・コンピュータ10
.12をその発生源とし、インターフェイス・プロセッ
サ14.16を介してシステム内へ入力されるものであ
るが、ただし、このことは必要条件ではない。然るべき
フォーマットで形成されたこのメッセージ・パケットは
、他のプロセッサからのパケットとの間で争われるネッ
トワーク上の競合の中へ没入され、そして、他のタスク
の優先順位のレベル並びにこのプロセッサにおける動作
状態のレベル次第で、時には優先権を得ることになる。
タスクは、1つのメツセージ・バケットによってその内
容を指定されていることもあり、また、複数の継続パケ
ットによって指定されていることもあるが、後に続く継
続パケットは、データ・メツセージのグループ(第11
図参照)の中では比較的高い優先順位レベルを割当てら
れ、それによって、後に続く部分を受信するに際しての
遅延ができるだけ短くなるようにしている。
メッセージ・パケットには、トランザクション・アイデ
ンティティ (=トランザクション識別情報)が、トラ
ンザクション・ナンバの形で含まれている。このトラン
ザクション・ナンバは、処理結果を引き出す上での方式
に関するモードであるノン・マージ・モード即ちデイフ
ォルト・モード(rTNOJ )と、マージ・モード(
rTNOJ以外の全てのTN)とを、選択に応じて区別
するという性質を本来的に備えている。更に、メッセー
ジ・パケットにはDSWが含まれている。このDSWは
、実質的に、転送先プロセッサとマルチプロセッサ動作
のモードとを指定するものであり、この指定は、特定の
プロセッサの指定、複数のプロセッサから成るクラスの
指定、或いはハツシングの指定によって行なわれ、本実
施例においては、ハッシングは、リレーショナル・デー
タベースの一部分へのハツシングである。ネットワーク
50を介してターゲット・プロセッサ(指定転送先プロ
セッサ)へブロードカストされるメッセージ・パケット
は、そのプロセッサにおいて局所的に受入れられて(=
そのプロセッサ自身への受入れが適当であるとの判断が
そのプロセッサ自身によってなされて)、そして、受信
した旨の認証が肯定応答(ACK)によって行なわれる
。プロセッサ14.16及び18〜23の全てが、EO
M(エンド・オブ・メツセージ)のあとに続いてネット
ワーク50へ互いに同時に応答を送出するが、しかしな
がら、指定転送先プロセッサから送出されたACKが優
先権を獲得し、そして発信元プロセッサに受信されるこ
とになる。
続いて指定転送先プロセッサは、送られてきたメツセー
ジが、局所H,S、RAM (=個々のプロセッサ・モ
ジュールに備えられているH、S。
RAM)とインターフェイス120と(第8図及び第1
3図)を介して局所マイクロプロセッサに転送されると
きに、このリクエスト・パケット(=送られてきたメツ
セージ)が要求している処理を非同期的に(=当該プロ
セッサ・モジュール以外の要素とは同期せずに)実行す
る。リレーショナル・データベースに関するタスクが実
行される場合には、DSWは互いに素のデータ部分集合
(この部分集合はその部分集合のためのディスク・ドラ
イブに格納されている)のある部分を指定するのが通常
の例であるが、ただし、時には、格納されているデータ
ベースを参照することを必要としないタスクが実行され
ることもある。特定の演算やアルゴリズムを個々のプロ
セッサによって実行するようにしても良く、また指定転
送先プロセッサとして複数のプロセッサが指定された場
合には、それらのプロセッサの各々が、タスク全体の互
いに素の部分集合についての仕事を実行するようにする
ことができる。可変長のメッセージ・パケットは、リク
エスト・メツセージによって、実行すべき動作とデータ
ベース・システム内の参照すべきファイルとの指定が行
なえるように構成されている。ここで注意すべきことは
、所与の1つのタスクに関するメッセージ・パケットが
大量に存在している場合もあるということであり、その
場合には、ネットワークの内部で行なわれるソートのた
めの弁別基準となる適当な特徴を付与するために、任意
採用可能なキー・フィールド(第3図)が重要になって
くるということである。
応答を行なおうとしている各プロセッサによって発生さ
れるタスク応答パケットは、マイクロプロセッサから、
第1図の制御ロジック28を介して局所H,S、RAM
2.6へと転送され、そこでは、タスク応答パケットは
第21A図の送出メツセー、ジ・フォーマットの形で格
納される。タスク応答が、継続パケットの使用を必要と
するものである場合には、そのような継続パケットは先
頭パケットの後に続・いて、ただし継続のためのより高
い優先順位を与えられた上で、送出される。システムが
マージ・モードで動作しており、且つ、各々のプロセッ
サかある1つのトランザクション・ナンバに関する多数
のパケットを発生している場合には、それらのパケット
を先ず局所的に(=個々のプロセッサの内部において)
ソート類でチェーンし、その後に、ネットワーク50上
でマージを行なうことによって大域的なソート類に並べ
るようにすることができる。
タスク結果パケットは、プロセッサ14.16及び18
〜23からネットワーク50へ、同時送出パケット群を
成すように送出され、そして1つの最優先メッセージ・
パケットが、所定のネットワーク遅延ののちに、全ての
プロセッサへブロードカストにより送り返される。それ
らのタスク結果パケットの転送は、そのタスクの性質に
応じて、最初にリクエスト・メツセージを発信した発信
元プロセッサをその転送先として行なわれることもあり
、また、1個ないし複数個の他のプロセッサを転送先と
して行なわれることもあり、更には、既に説明した複数
のマルチプロセッサ・モードのうちのいずれのモードで
転送を行なうこともできる。リレーショナル・データベ
ース・システムにおいて最も一般的に行なわれる事例は
、ハツシングを利用して転送先の選択を行ないつつ、マ
ージと再分配とを同時に実行するというものである。従
ってそのことからも理解されるように、「タスク・リク
エスト/タスク応答」のサイクルの中では、各々のプロ
セッサが、発信元プロセッサとしても、コーデイネータ
・プロセッサとしても、また、応答側プロセッサとして
も動作することができ、更には、それらの3つの全てと
して動作することもできるようになっている。多くの「
タスク・リクエスト/タスク応答」サイクルが関与して
くるため、プロセッサ14.16及び18〜23、並び
にネットワーク50は、それらのタスクの間で多重化(
マルチブレクシング)されるが、ただしこの多重化は、
時間を基準にすると共に更に優先順位をも基準にして行
なわれる。
楳jヒ1可澄」し1倒 リレーショナル・データベース・システムにおいては、
ホスト・コンピュータ10.12を利用して、また更に
、タプル(tuples)と−次的データ及びバックア
ップ用データの互いに素のデータ部分集合とを規定する
アルゴリズムに従ってリレーショナル・データベースを
複数のディスク・ドライブ38〜43の間に分配するよ
うにした分配法を利用して、複雑な問合せがホスト・コ
ンピュータ10または12から、I FPI 4または
16を介してシステムへ入力される。この入力された問
合せのメッセージ・パケットは、先ず最初にIFP14
または16によって詳細に解析され、この解析は、ホス
ト・コンピュータからのメツセージを、AMP18〜2
3に対してタスクの実行を要求するための複数のタスク
・リクエストへと変換するために行なわれるものである
。IFP14ないし16は、その動作を開始するに際し
て、1個ないし複数個の特定のAMPから情報を引き出
すためのリクエスト・パケットを送出し、それによって
、ホスト・コンピュータからのメツセージの詳細な解析
に必要なシステム内データを得ることが必要な場合もあ
る。ホスト・コンピュータからのリクエストの処理に必
要なデータを得たならば、IFP14ないし16は、A
MP18〜23との間で何回かの「タスク・リクエスト
/タスク応答」サイクルを実行することができ、また、
データを実際に処理して、ホスト・コンピュータからの
リクエストを満足させることができる。以上の処理シー
ケンスにおいては、上に挙げたタスク・リクエストとタ
スク応答とから成るサイクルが用いられ、また、そのサ
イクルは任意の長さに亙って継続することができる。続
いて、IFP14ないし16は、IFPインターフェイ
スを介してホスト・コンピュータと通信する。ホスト・
コンピュータへのこの応答は、単に、ホスト・コンピュ
ータ10または12が次の複雑な問合せを発生するため
に必要とするデータを提供するためのものであることも
ある。
(独立型マルチプロセッサシステム) 第1図に関連して先に説明した本発明に係るシステムの
基本的実施例は、ホスト・コンピュータ並びに現在使用
されているホスト・コンピュータ用のソフトウェア・パ
ッケージと組み合わせて使用することのできる、後置プ
ロセッサ(バックエンド・プロセッサ)の例を示すもの
である。しかしながら、既に言及したように、本発明は
広範な種々の処理用途において、また特に、大容量の中
央処理能力を必要とすることなく処理タスクを容易に細
分及び分配できるような種類の処理用途(おいて、格別
の利点を有するものである。第20図は、本発明に係る
独立型(スタンド・アローン型)マルチプロセッサ・シ
ステムの簡単な構成の一実施例を図示している。第20
図において、複数のプロセッサ300はいずれもインタ
ーフェイス302を介して能動ロジック・ネットワーク
304へ接続されており、このネットワークは既に説明
したものと同様のネットワークである。データの完全性
を強化するために、冗長性を有する能動ロジック・ネッ
トワーク304を採用するようにしても良い。この実施
例においても、プロセッサ300には16ビット・マイ
クロプロセッサ・チップを使用することができ、また、
充分な容量のメインRAMメモリを組込むことができる
ようになっている。この図には9つのプロセッサ300
のみが示されており、また、それらのプロセッサの各々
には異なった種類の周辺機器が接続されているが、これ
は、このシステムの多用途性を示すためである。実際に
は、このシステムは更に多くのプロセッサをネットワー
クに備えることによりはるかに効率的になるのであるが
、しかしながら、比較的少数のプロセッサしか備えてい
ない場合であっても、システムの信頼性とデータの完全
性と関して格別の利点が得られるものである。
この実施例においては、複数のプロセッサ300を不便
のない充分な距離をとって互いから物理的に離隔させる
ことができ、それは、データ転送速度が先の実施例につ
いて述べた速度である場合にノード間の最大間隔が28
フイート(5,5n+)にもなるため、大規模なアレイ
を成す複数のプロセッサを、建物の1つのフロア、ない
しは隣接する幾つかのフロアの上に、むやみに込み合う
ことのないように設置して、利用することができるから
である。
独立型システムでは、先に説明した後置プロセッサの実
施例の場合と比較して、周辺機器コントローラ並びに周
辺機器それ自体に、はるかに多くの種類のものが用いら
れる。ここでは便宜的に、個々の人出力デバイスは、夫
々が別個のプロセッサに接続されているものとする。例
えば、キーボード312とデイスプレィ314とを備え
た入出力端末装置310は、端末コントローラ320を
介して、同端末装置310のためのプロセッサ300に
接続されている。ただし、比較的動作速度が遅い端末装
置の場合には、かなりの規模の端末装置ネットワークを
1個の16ビット・プロセッサで制御することも不可能
ではない。この図示の入出力4末装置は、手jJJ操作
キーボード等の手!!n J’作入力処理装ゴがどのよ
うにしてシステムに接続されるのかについての一例を示
しているにすぎない、プロセッサ300の処理能力を利
用してこの端末装置310をワードプロセッサとして構
成することもでき、そしてこのワードプロセッサが、ネ
ットワーク304を介してデータベースや他のワードプ
ロセッサ、或いは種々の出力装置と通信できるようにす
ることもできる。例えばリジッド・ディスク・ドライブ
322等の大容量二次記憶装置を、ディスクコントロー
ラ324を介して、その記憶装置のためのプロセッサに
接続することができる。また、容易に理解されるように
、大規模システムには、より多数のディスク・ドライブ
を用いたり、或いは異なった形態の大容量記憶装置を用
いるようにすれば良い。プリンタ326並びにプロッタ
330等の出力装置は、夫々、プリンタ・コントローラ
328とプロッタ・コントローラ332とを介して、そ
れらの出力装置のためのプロセッサ300にインターフ
ェイスしている。不図示の他のシステムとの間の対話は
通信コントローラ338を介して、そして通信システム
336を経由して行なわれ、通信システム336として
は例えば、テレタイプ・ネットワーク(TTY)や、更
に大規模なネットワークのうちの1つ(例えばエサ−ネ
ット(Ethernet) )等が用いられる。プロセ
ッサ300のうちの幾つかが、周辺装置を接続すること
なく単にネットワーク304に接続されることもある(
不図示)。
双方向のデータ転送が行なわれる可能性があるのは、テ
ープ・ドライブ(テープ駆動機構)340及びテープ・
ドライブ・コントローラ342が用いられている場合、
それに、コントローラ346が接続されたフロッピ・デ
ィスク・ドライブ344が用いられている場合等である
一般にテープ・ドライブは、オン・ライン接続して使用
する際の大きな記憶容量を提供するばかりでなく、ディ
スク・ドライブのバックアップにも利用可能である。こ
のバックアップの目的には、密閉式リジッド・ディスク
装置に、ある時点までに格納されたデータを保存するた
めにテープが用いられる。このようなバックアップ動作
は、通常、低負荷の時間IF(例えば夜間または週末等
)に行なわれるため、ネットワーク304を用いて長い
「ストリーミング」転送を行なうことができる。更には
、システムの初期設定の際のプログラムの入力のために
は、フロッピ・ディスク・ドライブ344が使用される
ことがあるため、ネットワークの使用時間のうちの幾分
かをこの「ストリーミング」のモードにあてて、かなり
の量のデータを転送することもできる。光学文字読取器
350は、更に別の入力データのソースとして機能する
ものであり、その入力データは、そのコントローラ35
2を介してシステムへ入力される。
尚、単に「他の装置354」とだけ記されている周辺装
置は、コントローラ356を介してシステムに接続する
ことによって、必要に応じたその他の機能を発揮するよ
うにすることができるものである。
別々のプロセッサ・モジュールから夫々のメッセージ・
パケットを互いに同時に送出し、そしてそれらのメッセ
ージ・パケットに対して優先権の判定を行なって、1つ
の、或いは共通の最優先メッセージ・パケットが所定の
一定の時間内に全てのプロセッサ・モジュールへ同時に
ブロードカストされるようにするという方式を使用して
いるため、オン・ライン状態にある個々のプロセッサの
いずれもが、このシステム内の他のプロセッサ・モジュ
ールに等しくアクセスできるようになっている。優先順
位を付与されたトランザクション・ナンバ並びにレディ
ネス状態表示と、メツセージ内に含まれた転送先選択エ
ントリとを利用しているこの大域的セマフォ・システム
によって、どのプロセッサもコントローラとして働くこ
とが可能となっているため、このシステムは、階層的な
方式でも、また非階層的な方式でも動作可能となってい
る。本システムが、ソフトウェアの精査や変更を必要と
することなく拡張或いは縮小することができるというこ
とも、非常に重要である。
既に説明したメツセージ長さよりかなり長いが、なお比
較的長さの限られているメツセージに対するアクセスが
必要な場合であっても、そのようなアクセスを実行する
ことができる。例を挙げれば、複雑なコンピュータ・グ
ラフィクス装置(不図示)に関して、精巧な2次元図形
及び3次図形を作成するために、膨大なデータベースの
特定の部分にだけアクセスすることが必要とされる場合
がある。また、ワード・プロセッサ・システムに関して
、オペレータ(操作者)の操作速度が遅いために、デー
タベースのうちから、−度に僅かなデータのシーケンス
のみが必要とされる場合もある。これらの状況、並びに
それに類似した状況においては、本システムの、可変長
のメツセージを取扱うことのできる能力、並びに継続メ
ツセージに優先権を付与することのできる能力が有益な
ものとなる。処理能力を集中させることを必要とする状
況や、甚だしく長いメツセージの転送を必要とする状況
は、このシステムの使用に限界を与えるが、それ以外の
状況においては、本システムは非常に有利に機能する。
種々の異なったデータ形式の操作とそれに伴なうのソー
ト機能ないしマージ機能に関わる動的な状況は、いずれ
も本発明が有利に機能する状況に該当する。複雑なデ−
タを収集し、照合し、そして解析することを含む経営意
志決定はその種の状況の一例であり、また、定期刊行物
のための、映像入力や図形入力の作成及び編集も、その
−例である。
(結論) 当業者には明らかなように、第1図のシステムは、ソフ
トウェアを変更することを必要とせずにそこに含まれる
プロセッサの個数を任意の個数に(ただしデータ転送容
量によって決定される実際上の限界の個数までに)拡張
することが可能である。更にこれも明らかなことである
が、同図のシステムは、夫々の処理装置のステータスの
確認、タクス並びにプロセッサの優先順位の設定、それ
にプロセッサの処理能力の効率的な利用の確保のための
、管理及びオーバーヘットのソフトウェアの必要量を大
幅に減少させている。
明白な利益が得られるのは、データベース・システムや
、その他の、データベース・システムと同様に1つのタ
スクの全体を、互いに独立して処理することのできる複
数のサブタスクへ細分することが適当なシステム等の場
合である。例えばリレーショナル・データベースに関し
て言えば、二次記憶装置の容量が格段に増大した場合に
も、更なるデータベースを一次的データとバックアップ
・データとからなるデータ構造の中に適切に統合するだ
けで良いのである。換言すれば、ネットワークを限りな
く拡張することが可能であり、それが可能であるのは、
標準化された交点装置即ちノードを2進数的に発展して
行く接続方式で連結しているために、それらの個々のノ
ードにおいて実行される機能が拡張によって変化するこ
とがないからである。更には、ノードの動作についての
設定処理シーケンスや外部制御も不要である。従って本
発明に係るシステムが、第1図に示されているように、
1台ないし複数台のホスト・コンピュータのバックエン
ド・プロセッサとして機能するように接続されている場
合には、システムのユーザはオペレーティング・システ
ムのソフトウェアも、応用ソフトウェアも変更すること
なしに、データベースを任意に拡張(或いは縮小)する
ことができる。ホスト・プロセッサ・システム(=ホス
ト・コンピュータ)の側から見れば、このバックエンド
・プロセッサはその構成の如何にかかわらず「透明な」
ものとなっており、なぜならばその構成が変化してもこ
のバックエンド・プロセッサとホスト・プロセッサ・シ
ステムとの間の対話の態様には変化は生じないからであ
る。このバックエンド・プロセッサに別のホスト・プロ
セッサ・システムの仕事をさせるように切り換えるため
には、単にIFPがその新たなホスト・プロセッサ・シ
ステムのチャネルないしパスとの間で適切に会話するよ
うにするだけで良い。
ある実機の具体例におけるネットワークの構成に拠れば
、ネットワーク内のメツセージ転送に甚だしい遅延を生
じることなく、またプロセッサ間の競合に起因する不適
当な程の遅延も生じることなしに、1つのアレイに10
24個までのマイクロプロセッサを包含して使用するこ
とができるようになっている。本明細書で説明した実施
例を、1024個を超えるプロセッサを含むように拡張
するにはどのようにすれば良いかは、当業者には明白で
あろう。1つのシステムに1024個のプロセッサを用
いる場合、実機の具体例では能動ノード間の最大ライン
長さは28フイートになることが分っており、このライ
ン長さであればアレイを構成する上で問題が生じること
はない。ネットワークに起因する遅延時間は、いかなる
メツセージについても一定の時間2τNであり、ここで
てはバイト・クロックの間隔、Nは階層構造の中の階層
の数である。明らかに、階層を更に1つ増すことによっ
てプロセッサの個数を倍にしても、遅延時間は僅かに増
加するに過ぎない、データ・メツセージであれば略々必
然的に長いメツセージとなるため(約200バイト程度
の長さとなる)、また、競合するメツセージの全てにつ
いての優先権の判定が、データをネットワークに沿って
転送している間に行なわれるため、このネットワークは
従来のシステムと比較して、はるかに高い利用効率でデ
ータ・メツセージの転送を行なえるものとなっている。
本システムの重要な経済上の特徴並びに動作上の特徴の
なかには、標準化された能動ロジック回路がソフトウェ
アの替わりに、そして更にはネットワーク・システムに
おけるファームウェアの替わりにも用いられているとい
う事実によって得られている特徴がある。即ちこの事実
によって、近代的なLSI並びにVLSIの技術を利用
してプロセッサのコストと周辺装置のコストとを含めた
全体のコストに対して相対的に低コストで、信頼性の高
い回路を組込むことができるようになっているのである
ソフトウェアに時間と経費とを費やさねばならないのは
、データベース管理等の問題領域のタスクに関係するよ
うな、重要な部分についてだけに限定されている。例を
挙げれば、本システムの構成に拠れば、データベースの
完全性を維持するために必要な諸機能の全てを、メッセ
ージ・パケットの構成並びにネットワークの構成に基づ
く範囲内で実行し得るようになっている。ポーリング、
ステータスの変更、並びにデータの復旧等の機能はシス
テムの内部において実行される。
更に別の重要な考慮すべき点として、本発明のネットワ
ークは、その高速データ転送の性能が、従来のオーミン
クな配線バスに充分匹敵する程に優れたものであるとい
うことがある。複数のメッセージ・パケットが互いに同
時に送出され、それらが伝送されている間に優先権の判
定がなされるため、従来の方式においてステータス・リ
クエストとそれに対する応答の送出、並びに優先権の判
定に伴なっていた遅延が、回避されているからである。
更には、プロセッサの個数が莫大な個数であってもノー
ド間の接続構造の長さを所定の長さ以下に抑えることが
可能であるため、パス内の伝播時間がデータ転送速度に
対する制約となることがない。
本システムは、マイクロプロセッサ及びネットワークの
使用効率という点において最適状態に迫るものであるこ
とが判明している。これらの点に関して重要なことは、
全てのマイクロプロセッサがビズイ状態に保たれるよう
にすることと、ネットワークが一杯に有効利用されるよ
うにすることとである。MFP−ネットワーク−AMP
Jの構成は、事実上それらのことを可能にしており、そ
の理由は、自らか送出したメッセージ・パケットが優先
権を獲得するための競合において敗退したマイクロプロ
セッサは、なるたけ早い適当な時刻に再度送信を試みる
だけで良く、そのためバスのデユーティ・サイクルが高
いレベルに維持されるからである。高速ランダム・アク
セス・メモリもまたこの効果を得るために寄与しており
、なぜならば、高速ランダム・アクセス・メモリは処理
すべき入力メッセージ・パケットと送出すべき出力メッ
セージ・パケットとの両方をその内部に集積しているた
め、各々のプロセッサが作業のバックログを常時人手で
きると共に、ネットワークもまたメツセージパケットの
バックログを入手できるようになっているからである。
全ての入力バッファが満杯になったならば、プロセッサ
がその事実を知らせる表示をネットワーク上へ送出する
また、IFPに用いられている、ホスト・コンビエータ
からのメツセージを受取るための入力バッファが満杯に
なったならば、そのことを知らせる表示がチャネル上に
送出される。従って本システムは、内部的にもまた外部
的にも自己調歩式となっている。
本システムは、以上に説明したようなアーキテクチャと
メツセージの構成とを利用することによって、汎用マル
チプロセッサ・システムに必要とされるその他の多くの
機能をも実行できるように構成されている。例えば従来
技術においては、大域的資源のステータスの変化を評価
及び監視するための方式に関して非常な注意が払われて
いた。
これに対して本発明に拠れば、パリティ・エラーの発生
とプロセッサの使用可能性の変化という事実との両方を
伝達するための手段として、パリティ・チャネルのみが
備えられ使用されている。
を曹ないし複数個のプロセッサがシャット・ダウンした
場合には、そのシャット・ダウンが、その発生と略々同
時にシステム中に伝達され、それによって割込みシーケ
ンスの実行を開始することができるようになっている。
複数の応答を優先順位に従フてソートするという方式が
採用されているため、大域的な能力の変化が生じた場合
にその変化がどのような性質のものであるかを、従来と
比較してはるかに小規模の回路とシステム・オーバヘッ
ドとによって特定することが可能となっている。
大域的セマフォと能動ロジック・ネットワークとを採用
したことによって達成されている、1回の間合せにより
優先権の判定を経て得られる大域的応答は、非常に深い
システム的な意味を持っている。この方式により問合せ
をブロードカストすることによって曖昧性のない一義的
な大域的結果が得られるため、複雑なソフトウェア並び
にオーバヘッドが不要とされている。分散型更新等のス
テータス設定動作は、多数の同時動作が複数の異なった
プロセッサで実行されている際にも実行可能となってい
る。
本システムは更に、以上のようなネットワークとトラン
ザクション・ナンバと転送先選択ワードとを用いること
によって、マルチプロセッサ・システムにおける仕事の
分配並びに処理結果の収集に関する優れた能力を発揮し
ている。種々のマルチプロセッサ・モードと制御メツセ
ージとを利用することができ、また、優先順位プロトコ
ルを操作するだけで、優先順位の種々のレベルを容易に
設定しまた変更することができるようになっている。全
てのプロセッサへ同時にブロードカストすることのでき
る能力と、ネットワーク中でメツセージのソートを行な
える能力とが組み合わさることによって、いかなるプロ
セッサ・グループ或いはいかなる個々のプロセッサを転
送先とすることも可能となっていると共に、処理結果を
適切な順序で引き出すことも可能となりている。従って
、リレーショナル・データベース・システムに対する複
雑な問合せが入力されたならば、そのことによってデー
タベース動作に必要なあらゆる処理シーケンスが開始さ
れるようになっている。
本システムの更に別の利点は、リレーショナル・データ
ベース・システム等のマルチプロセッサ・システムに、
容易に冗長性を導入できることにある。二重ネットワー
クと二重インターフェイスとを備えているため、一方の
ネットワークが何らかの原因で故障した場合にもシステ
ムが動作し続けられるようにする冗長性が得られている
。データベースを互いに素の一時的部分集合とバックア
ップ用部分集合という形で分配しであるため、データ喪
失の確率が最小のレベルにまで低減されている。故障が
発生したり変更が加えられたりした場合にも、用途の広
い種々の制御機能が利用可能であるためにデータベース
の完全性を維持し得るようになっている。
【図面の簡単な説明】
第1図は、新規な双方向ネットワークを含む、本発明に
係るシステムのブロック図である。 第2図および第2A図〜第2J図は、第1図に示された
簡単な構造の実施例のネットワークにおけるデータ信号
並びに制御信号の伝送の態様を示す、時間の経過に沿ワ
た連続する一連の説明図であり、第2図は信号伝送の開
始前の時点における状態を示す図、また、第2A図〜第
2J図は、夫々、1=0からt=9までの連続する10
箇所の時点における時間標本の一つに対応している図で
ある。 第3図は、第1図に示されたシステムに採用されている
メッセージ・パケットの構成を図示する説明図である。 第4図は、第1図に示された新規な双方向ネットワーク
用いられている能動ロジック・ノード並びにクロック回
路に関する、同ネットワークの更なる細部構造を示すブ
ロック図である。 第5図は、前記能動ロジック・ノードの内部の様々な動
作状態を示す、状態図である。 第6図は、前記能動ロジック・ノードの内部において行
なわれるエンド・オブ・メツセージの検出動作を説明す
るためのタイミング・ダイアグラムである。 第7図は、第4図に示したクロック回路の動作を説明す
るための、タイミング波形のダイアグラムである。 第8図は、第1図に示したシステムに使用することので
きる、高速ランダム・アクセス・メモリを含むプロセッ
サ・モジュールのブロック図である。 第9図は、第8図に示したマイクロプロセッサ・システ
ムのメインRAMの内部のアドレスの割当て状況を示す
図である。 第10図は、第8図に示された高速ランダム・アクセス
・メモリの、1つの参照部分の内部におけるデータの配
R態様のブロック図である。 第11図は、前記システムに用いられているメツセージ
の優先順位プロトコルを示すチャートである。 第12図は、トランザクション・ナンバのワード・フォ
ーマットを図示する説明図である。 第13図および第13A図は、第1図及び第8図に示し
たシステムの、その内部に備えられている各プロセッサ
モジュールに用いられているインターフェイス回路のブ
ロック図であり、第13図の右側に第13A図を置くこ
とによって1枚につながる図である。 第14図は、第13図のインターフェイス回路において
用いられている様々なりロック波形及びフェイズ波形を
図示するタイミング・ダイアグラムである。 第15図は、転送先選択ワードに基づいてマツピングを
行なうための、メモリ構成の更なる詳細とマツピングの
一方式とを図示するブロック図である。 第16図は、入力データ・メツセージを受信した際のス
テータスの変化を示す、簡略化したフローチャートであ
る。 第17図および第17A図は、メツセージの受信が行な
われているときのステータスの変化を示すフローチャー
トであり、第17図を第17A図の上縁部に接して並べ
ることにより1枚につながる図である。 第18図は、様々なプライマリ・メツセージとそれらに
対して発生される種々の応答との間の関係、並びに、様
々なプライマリ・メツセージとそれらに応答して実行さ
れる動作との間の関係を示す表である。 第19図および第19A図は、メツセージの送信が行な
われているときのステータスの変化を示すフローチャー
トであり、第19図を第19A図の上縁部に接して並べ
ることにより1枚につながる図である。 第20図は、本発明に係るスタンド・アローン型システ
ムのブロック図である。 第21図は第21A図及び第21B図から成り、前記高
速ランダム・アクセス・メモリに格納されているメツセ
ージを示す図である。 第22図は、データベース・システム内の複数の異なっ
たプロセッサの間にデータベースの夫々の部分を分配す
るための、分配方式の可能な一例を示す簡略化した模式
図である。 18〜23−−アクセス・モジュール・プロセッサ、 24−一マイクロプロセッサ、 26−一高速ランダム・アクセス・メモリ、28−一制
御ロシック、 32−−ディスク・コントローラ、 38〜43−−ディスク・ドライブ、 50−一能動ロシック・ネットワーク構造、54−一ノ
ード、 56−−クロツク・ソース、 120.120° −−ネットワーク・インターフェイ
ス、 !03−−マイクロプロセッサ・システム。

Claims (22)

    【特許請求の範囲】
  1. (1)相互接続ネットワークを介して互いに通信を行な
    う複数のプロセッサを有するシステムであって、 複数のバッファ・メモリ手段を備え、該バッファ・メモ
    リ手段の各々は、前記複数のプロセッサのうちの夫々別
    個のプロセッサと前記ネットワークとの間に接続されて
    おり、且つ、該バッファ・メモリ手段の各々は、専用参
    照セクションを含んでおり、 前記プロセッサは、前記専用セクションを参照するため
    の選択フィールドを含むメッセージを発生するものであ
    り、 複数のインターフェイス手段を備え、該インターフェイ
    ス手段の各々は、前記複数のプロセッサのうちの夫々別
    個のプロセッサと組み合され且つ前記ネットワークに接
    続されており、且つ、該インターフェイス手段の各々は
    、前記選択フィールドに応答して前記バッファ・メモリ
    手段の中の前記専用セクションを参照することにより信
    号を発生するものであり、該信号は、当該選択フィール
    ドを含んでいるメッセージが、当該インターフェイス手
    段に組み合されているプロセッサを送信先として意図し
    たものであるか否かを、そのプロセッサに対して表示す
    る信号であり、 相互接続ネットワーク手段を備え、該ネットワーク手段
    は、該ネットワーク手段上の複数のメッセージのうちか
    ら適切な1つのメッセージを前記インターフェイス手段
    へ送達することによって、その適切なメッセージをその
    転送先として意図したプロセッサへ転送するものである
    、 システム。
  2. (2)前記バッファ・メモリ手段がランダム・アクセス
    ・メモリを含んでおり、該ランダム・アクセス・メモリ
    はマップ参照セクションを画成しているルックアップ・
    テーブル・セクションを有しており、且つ、前記選択フ
    ィールドが、前記マップ参照セクションをアドレスする
    ためのアドレス情報を含んでいる、請求項1記載のシス
    テム。
  3. (3)前記複数のバッファ・メモリ手段の各々の前記ル
    ックアップ・テーブル・セクションが複数の単ビット・
    アドレスを含んでおり、それらの単ビット・アドレスの
    各々は、当該バッファ・メモリ手段に組み合されている
    プロセッサが、前記選択フィールドを内包しているメッ
    セージを受信すべき複数のプロセッサから成るクラスに
    所属しているか否かを表示するように、特定のビット設
    定がなされている、請求項2記載のシステム。
  4. (4)相互接続ネットワークを介して互いに通信を行な
    う複数のプロセッサを有するシステムであって、 複数のバッファ手段を備え、該バッファ手段の各々は、
    前記複数のプロセッサのうちの夫々別個のプロセッサに
    対応し且つその対応プロセッサに接続されており、且つ
    、該バッファ手段の各々は、少なくとも1つの専用マッ
    プ参照セクションを含んでおり、該マップ参照セクショ
    ンは、メッセージの選択フィールド内のデータが、当該
    メッセージがその対応プロセッサに対し、個別的にない
    しは1つのクラスに所属するものとして、関係を有して
    いることを表示しているか否かを判定するための情報を
    格納しており、 前記複数のプロセッサは、メッセージが関係を有してい
    る全ての転送先プロセッサの夫々に対応しているバッフ
    ァ手段の専用マップ参照セクションを参照するための選
    択フィールドを含むメッセージを発生するものであり、 複数のインターフェイス手段を備え、該インターフェイ
    ス手段の各々は、前記複数のプロセッサのうちの夫々別
    個のプロセッサに対応しており、且つ、該インターフェ
    イス手段の各々は、前記ネットワークと、対応するプロ
    セッサと、その対応するプロセッサに対応しているバッ
    ファ手段とに接続されており、且つ、該インターフェイ
    ス手段の各々は、受取ったメッセージの選択フィールド
    に応答して、対応するプロセッサに組み合わされている
    バッファ手段の中の専用セクションを参照し、それによ
    り、該専用セクションに格納されている情報に応答して
    信号を発生するものであり、該信号は、当該受取りメッ
    セージが対応プロセッサを転送先として意図したもので
    あることを当該選択フィールドが示しているか否かをそ
    の対応プロセッサに対して表示する信号であり、 相互接続ネットワーク手段を備え、該ネットワーク手段
    は、前記複数のプロセッサを前記インターフェイス手段
    と前記バッファ手段とに接続しており、且つ、該ネット
    ワーク手段は、前記複数のプロセッサの全てから互いに
    競合する複数のメッセージを受取り、それらの競合メッ
    セージのデータ内容に応答してそれらの競合メッセージ
    の間の優先権の判定を行ない、それによって適切な1つ
    のメッセージを前記複数のインターフェイス手段の全て
    へ送達するものであり、それによって、ソフトウェアと
    前記プロセッサとの間の相互作用なしにメッセージがそ
    のメッセージに対応するプロセッサへ到達することがで
    きる、 システム。
  5. (5)前記バッファ手段が高速ランダム・アクセス・メ
    モリを含んでおり、前記専用マップ参照セクションが、
    該ランダム・アクセス・メモリ内の、ハッシュ選択部分
    とクラス選択部分と転送先プロセッサ同定部分とを画成
    している一連の格納位置を含んでおり、且つ、メッセー
    ジの中の前記選択フィールドが、前記ランダム・アクセ
    ス・メモリ内の前記格納位置を選択するためのアドレス
    を含んでおり、該格納位置の記憶内容は、あるメッセー
    ジを特定のプロセッサが使用すべきか否かを指定するも
    のであり、更に、前記専用マップ参照セクションは、夫
    々の別個のプロセッサの間ではその構成は互いに同一で
    あるがそのデータ内容が互いに異なっている、請求項4
    記載のシステム。
  6. (6)前記専用マップ参照セクションが複数のマップを
    含んでおり、且つ、メッセージの中の前記選択フィール
    ドがマップ・アドレス情報とマップ選択情報とを含んで
    いる、請求項5記載のシステム。
  7. (7)前記複数のマップの各々が複数の単ビット格納位
    置を含んでおり、それらの単ビット格納位置は、あるメ
    ッセージがあるプロセッサに該当するか否かの該当性を
    表示する選定されたビット値を収容しており、且つ、前
    記マップ選択情報は、マップ選択コードを構成する複数
    のビットを含んでおり、更に、前記システムが、前記マ
    ップ選択コードに従って特定のマップから情報を引き出
    すための手段を含んでいる、請求項6記載のシステム。
  8. (8)前記選択フィールドが、マップ・ニブルを有する
    固定長の転送先選択ワードと、マップ・ワード・アドレ
    スと、マップ選択ビットとを含み、且つ、前記システム
    が、アドレスされた格納位置から選定されたビットが読
    み出されない場合にはあるメッセージをあるプロセッサ
    のためのものではないとして拒絶するための手段を含ん
    でいる、請求項7記載のシステム。
  9. (9)マルチプロセッサ・システムにおける複数のプロ
    セッサの間のメッセージの転送経路を制御するためのシ
    ステムであって、 前記プロセッサの各々に設けられた、メッセージのシリ
    アルな列を送出するためのインターフェイス手段を備え
    、それらのメッセージには、メッセージ内の転送先選択
    ワードという形態の転送先判定基準が含まれており、 前記インターフェイス手段の各々に設けられたルックア
    ップ・テーブル手段を備え、該ルックアップ・テーブル
    手段は、複数のアドレスを有する1つないし複数の専用
    セクションを含んでおり、それらのアドレスは、転送先
    を記述(キャラクタライス)している複数のビット値を
    格納しており、 前記インターフェイス手段の各々に接続されたネットワ
    ーク手段を備え、該ネットワーク手段は、前記インター
    フェイス春暖から互いに同時に送出された複数のメッセ
    ージのうちからの1つの優先メッセージを、前記インタ
    ーフェイス手段の全てへ送達するための手段であり、 前記インターフェイス手段の各々に設けられたアドレス
    /判定/格納手段を備え、該アドレス/判定/格納手段
    は、前記1つの優先メッセージの中の転送先選択ワード
    に応答して前記ルックアップ・テーブル手段をアドレス
    し、そのアドレスに対する応答として得られる記述(キ
    ャラクタライゼーション)に基づいて、ある特定のプロ
    セッサが当該メッセージの転送先とされているか否かを
    判定し、そしてその特定のプロセッサを転送先としてい
    るメッセージを格納するための手段であり、且つ、前記
    インターフェイス手段は、それに組み合わされたプロセ
    ッサとの間でメッセージの送受を行なうように接続され
    ている、 システム。
  10. (10)前記ルックアップ・テーブル手段が、前記転送
    先選択ワードを用いてアドレスすることのできる複数の
    格納位置を有するランダム・アクセス・メモリ手段を含
    み、且つ、前記インターフェイス手段が、前記ランダム
    ・アクセス・メモリ手段を前記ネットワーク手段と当該
    インターフェイス手段に組み合わされたプロセッサとの
    間で時分割(タイム・シェアリング)するための手段を
    含み、且つ、前記ランダム・アクセス・メモリ手段が、
    前記ネットワーク手段との間でメッセージのそうじゅを
    行なうための循環バッファ手段を含んでいる、請求項9
    記載のシステム。
  11. (11)前記転送先選択ワードが、個別モード、クラス
    ・モード、及びハッシュ・モードの夫々のアドレスを指
    定する固定長のワードであり、ビット値を格納している
    前記ルックアップ・テーブル手段内の前記アドレスが、
    該固定長ワードを用いて選択することが可能とされてお
    り、前記インターフェイス手段が、そのようにしてアド
    レスされたビット値に応答してメッセージを当該プロセ
    ッサで受入れ、或いは拒絶するための手段を含んでおり
    、且つ、前記インターフェイス手段が、前記ランダム・
    アクセス・メモリ手段に接続されたインターフェイス・
    バス手段と、前記プロセッサと前記インターフェイス・
    バス手段と前記インターフェイスとを接続しているプロ
    セッサ・バス手段とを更に備えている、請求項10記載
    のシステム。
  12. (12)マルチプロセッサ・システムにおける複数のプ
    ロセッサの間のメッセージの転送経路を制御するための
    システムであって、 前記プロセッサの各々に設けられた、メッセージのシリ
    アルな列を送出するための送出手段を備え、それらのメ
    ッセージには転送先選択データが含まれており、該転送
    先選択データは、特定のプロセッサを同定するデータ、
    処理のクラスを同定するデータ、並びにハッシング値デ
    ータのうちのいずれかであり、 前記インターフェイス手段の各々に設けられたルックア
    ップ・テーブル手段を備え、該ルックアップ・テーブル
    手段は、複数の異なった転送先選択判定基準を設定して
    いる互いに別個に形成された少なくとも3つのセクショ
    ンを含んでおり、それらのセクションには、個別にプロ
    セッサを特定する個別プロセッサ特定セクションと、プ
    ロセッサのクラスを指定するプロセッサ・クラス・セク
    ションと、ハッシュ値を指定するハッシュ値セクション
    とが含まれており、 前記複数のプロセッサの各々に接続された送達手段を備
    え、該送達手段は、前記複数のプロセッサから互いに同
    時に送出された複数のメッセージのうちからの1つの優
    先メッセージを、前記複数のプロセッサの全てへ送達す
    るための手段であり、 前記インターフェイス手段の各々に設けられたアドレス
    /判定手段を備え、該アドレス/判定手段は、前記1つ
    の優先メッセージの中の転送先選択データに応答して、
    その転送先選択データを用いて直接的に前記ルックアッ
    プ・テーブル手段をアドレスし、それによって、ある特
    定のプロセッサが当該メッセージの転送先とされている
    か否かを判定するための手段であり、その際、プロセッ
    サの選択を、種々のマルチプロセッサ・モードのうちの
    1つに従って行なうことが可能とされており、それらの
    マルチプロセッサ・モードには、転送先選択データのエ
    ントリが欠落している場合の全域的ブロードカスト・モ
    ードが含まれている、システム。
  13. (13)1つの優先メッセージを送達するための前記送
    達手段が、能動ロジック・ネットワークを含んでおり、
    前記ルックアップ・テーブル手段が、高速ランダム・ア
    クセス・メモリとアクセス手段とを含み、該アクセス手
    段は、前記ランダム・アクセス・メモリを、前記ルック
    アップ・テーブル手段に組み合わされているプロセッサ
    からも前記能動ロジック・ネットワークからも独立して
    アクセスするための手段であり、且つ、前記アクセス手
    段が、アドレスされている格納位置に記憶されている値
    を転送先選択データの少なくとも一部分と比較するため
    の比較手段を含んでいる、請求項12記載のシステム。
  14. (14)相互接続ネットワークを介して互いに通信を行
    なう複数のプロセッサを有するシステムであって、 複数のバッファ手段を備え、該バッファ手段の各々は、
    前記複数のプロセッサのうちの夫々別個のプロセッサに
    組み合わされており、該バッファ手段の各々は、前記ネ
    ットワークとその組み合わされているプロセッサとに接
    続されており、且つ、該バッファ手段の各々は、専用の
    メモリ参照セクションを含んでおり、該専用メモリ参照
    セクションは、夫々に異なった選択モードを提供する少
    なくとも2つの異なった種類の選択マップを有しており
    、 前記プロセッサは、前記選択マップを参照するための選
    択データを含むメッセージを発生するものであり、 複数のインターフェイス手段を備え、該インターフェイ
    ス手段の各々は、前記複数のプロセッサのうちの夫々別
    個のプロセッサと、そのプロセッサに接続されているバ
    ッファ手段と、前記ネットワークとに接続されており、
    且つ、該インターフェイス手段の各々は、前記選択デー
    タに応答して前記バッファ手段の中の前記選択マップを
    参照することにより、当該選択データを含んでいるメッ
    セージが、当該インターフェイス手段に組み合されてい
    るプロセッサを送信先として意図したものであることを
    当該選択データが示しているか否かを判定するものであ
    り、且つ、該インターフェイス手段の各々は、当該イン
    ターフェイス手段に組み合されているプロセッサを送信
    先として意図したメッセージの受信を制御するように接
    続されている、 システム。
  15. (15)前記相互接続ネットワークが、メッセージを前
    記複数のプロセッサへ同時に付与するための手段を含ん
    でおり、前記バッファ手段の各々が少なくとも3つの参
    照セクションを含んでおり、それらの参照セクションの
    うちの第1のセクションは個別のプロセッサを指定する
    ように構成されており、第2のセクションはクラス・コ
    ードによって複数のプロセッサを指定するように構成さ
    れており、そして第3のセクションは分散されているデ
    ータのハッシュ・マップを提供するように構成されてお
    り、且つ、前記インターフェイス手段が、選択データと
    参照値とに応答してハッシングの結果得られたデータを
    メッセージの中に含ませるための手段を更に含んでおり
    、且つ、前記バッファ手段が、当該バッファ手段に組み
    合わされたプロセッサを転送先として意図したメッセー
    ジを格納するように接続されている受信メッセージ・セ
    クションを含んでいる、請求項14記載のシステム。
  16. (16)少なくとも前記バッファ手段の前記ハッシュ・
    マップ・セクションが、複数の部分に分割されており、
    それらの複数の部分の各々は、異なったマップ選択コー
    ドによって特定されると共に1つのマップ・アドレスに
    よって共通してアドレスされるものであり、前記メッセ
    ージには転送先選択ワードが含まれており、該転送先選
    択ワードはマップ選択コード部分とマップ・アドレス部
    分とを内包しており、前記インターフェイス手段の各々
    が、マップ・アドレスを用いて前記バッファ手段をアド
    レスするための手段を含み、 前記インターフェイス手段が更に比較器手段を含み、該
    比較器手段は、前記マップ・アドレス部分と、前記マッ
    プ選択コード部分と、それらの部分によつてアドレスさ
    れた前記バッファ手段の記憶内容とに応答して、当該メ
    ッセージが当該インターフェイス手段に組み合わされて
    いるプロセッサを転送先として意図したものか否かを判
    定するための手段である、 請求項15記載のシステム。
  17. (17)前記転送先選択ワードが、マップ・ワード・ア
    ドレス・ビットと、マップ選択ビットと、マップ・ニブ
    ル・ビットとを内包する固定長ワードであり、 前記バッファ手段の前記ハッシュ・マップ部分が、互い
    に異なった複数のマップを含み、前記マップ選択ビット
    が、それらのうちのいずれのマップを使用すべきかを指
    定し、前記マップ・ニブル・ビットを用いて前記バッフ
    ァ手段からのワードのサブセクションが指定される、 請求項16記載のシステム。
  18. (18)複数のプロセッサ・モジュールを用いてデータ
    を処理するための方法であって、属性を表わす属性表示
    メッセージを内包している情報パケットを、前記複数の
    プロセッサ・モジュールの全てへ同時にブロードカスト
    するステップと、 前記プロセッサ・モジュールにおいて、前記情報パケッ
    ト内の命令を実行すべき個々のプロセッサ・モジュール
    を、前記情報パケット内の前記属性表示メッセージに基
    づいて判定するステップと、 前記複数のプロセッサ・モジュールの全てへ同時にブロ
    ードカストされる、属性表示メッセージを内包している
    処理済みの情報パケットを、発生するステップと、 を含む方法。
  19. (19)前記属性表示メッセージが、ハッシュ・マップ
    ・アドレスと、プロセッサ・モジュールのクラスと、個
    々のプロセッサ・モジュールとを指定するための固定長
    ワードを含み、且つ、この固定長ワードを前記プロセッ
    サ・モジュールにおいて使用することにより、前記プロ
    セッサ・モジュールに予め格納されている情報が読出さ
    れ、それによって、特定のプロセッサ・モジュールをい
    ずれのメッセージ・パケットがその転送先として意図し
    ているのかが示される、請求項18記載の方法。
  20. (20)ハッシュ・マップと、プロセッサ・モジュール
    のクラスと、個々のプロセッサ・モジュールとの夫々に
    ついての識別データを、各々のプロセッサ・モジュール
    のメモリの中の選択されたアドレスに入力することによ
    って初期化を行なうステップと、情報パケット内の前記
    固定長ワードを使用して該メモリから識別データを直接
    的に読出すステップとを更に含む、請求項19記載の方
    法。
  21. (21)マルチプロセッサ・システムにおける複数のプ
    ロセッサの間のメッセージの転送経路を制御するための
    方法であって、 前記プロセッサの各々において、送出されるメッセージ
    の中に属性値を挿入するステップと、連続する複数のタ
    イム・フレームの間に、属性値を内包している互いに競
    合する複数のメッセージを互いに同時に送出するステッ
    プと、 同時送出された前記競合メッセージを、連続する複数の
    タイム・フレームの間に、伝送しつつマージし、それと
    同時に、対を成す互いに競合する2つのメッセージの間
    の優先権の判定を、最終的に1つの優先メッセージが得
    られるまで行なうステップと、 前記優先メッセージを前記複数のプロセッサの全てへ同
    時にブロードカストするステップと、前記複数のプロセ
    ッサの各々において、前記属性値を使用して、当該属性
    値を内包しているメッセージを当該プロセッサが受入れ
    るべきか否かを判定するステップと、 を含む方法。
  22. (22)各々のプロセッサのルックアップ・レーブルの
    特定のアドレスに、あるメッセージが当該プロセッサを
    転送先として意図したものか否かを示すデータを初期に
    格納するステップと、前記属性値を固定ワード長のアド
    レスとしてメッセージの中に挿入するステップと、各々
    のプロセッサにおいて、前記アドレスによって指定され
    た前記ルックアップ・テーブルのデータを読出し、それ
    によって、当該プロセッサが当該メッセージを受入れる
    べきか否かを判定するステップとを更に含む、請求項2
    1記載の方法。
JP1234495A 1981-04-01 1989-09-07 マルチプロセッサ・システムにおけるメッセージ通信制御システム Expired - Fee Related JPH0792791B2 (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

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP57052374A Division JPS57201931A (en) 1981-04-01 1982-04-01 Data processing apparatus and method

Publications (2)

Publication Number Publication Date
JPH02118756A true JPH02118756A (ja) 1990-05-07
JPH0792791B2 JPH0792791B2 (ja) 1995-10-09

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 After (12)

Application Number Title Priority Date Filing Date
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 マルチプロセッサ・システムにおけるメッセージの通信制御方法

Country Status (1)

Country Link
JP (13) JPH0792791B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5842207A (en) * 1991-07-10 1998-11-24 Hitachi, Ltd. Method for storing records of a distributed database by plural processors to provide a host processor with sorted records belonging to one of a plurality of key sections

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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消息的智能用电与需求侧响应方法、系统及装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS568950A (en) * 1979-07-03 1981-01-29 Nippon Telegr & Teleph Corp <Ntt> Multiple address communication system

Family Cites Families (4)

* 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
US4412285A (en) * 1981-04-01 1983-10-25 Teradata Corporation Multiprocessor intercommunication system and method
JPH0697823B2 (ja) * 1988-07-15 1994-11-30 三菱電機株式会社 電動機及びその製造方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS568950A (en) * 1979-07-03 1981-01-29 Nippon Telegr & Teleph Corp <Ntt> Multiple address communication system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5842207A (en) * 1991-07-10 1998-11-24 Hitachi, Ltd. Method for storing records of a distributed database by plural processors to provide a host processor with sorted records belonging to one of a plurality of key sections

Also Published As

Publication number Publication date
JPH02118763A (ja) 1990-05-07
JPH0750463B2 (ja) 1995-05-31
JPH02140035A (ja) 1990-05-29
JP2651473B2 (ja) 1997-09-10
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
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
Siegel et al. Using the multistage cube network topology in parallel supercomputers
WO2020232875A1 (zh) 一种基于Actor模型的任务调度方法、装置及存储介质
JPH0241553A (ja) データ処理システム及び同期方法
JPH02118756A (ja) マルチプロセッサ・システムにおけるメッセージ通信制御システム
Villadangos et al. Efficient leader election in complete networks
Reynolds et al. Isotach networks
CA1198523A (en) Multi-processor intercommunication system and method
Jensen A distributed function computer for real-time control
CN115643205B (zh) 数据生产和消费主体的通信控制单元、及相关装置和方法
WO2024007395A1 (zh) 一种基于硬件加速的时间敏感网络高效配置方法及系统
Marovac On interprocess interaction in distributed architectures
Concepcion Trans. Nat. Acad. Sci & Tech.(Phils.) 1987.9: 51� 63
Ashraf Routing in multicomputer networks: A classification and comparison
Moose et al. Link models for networks with dynamic topologies
Döring et al. Flexibility for SCI-networks with rule-based routing
Moose Jr with Dynamic Topologies
Doskocz Performance analysis of the simultaneous optical multiprocessor exchange bus architecture
JPH02219334A (ja) 排他制御処理方式