JPH0750463B2 - マルチプロセッサ・システムにおけるメッセージ送信及び受信方法 - Google Patents

マルチプロセッサ・システムにおけるメッセージ送信及び受信方法

Info

Publication number
JPH0750463B2
JPH0750463B2 JP1234500A JP23450089A JPH0750463B2 JP H0750463 B2 JPH0750463 B2 JP H0750463B2 JP 1234500 A JP1234500 A JP 1234500A JP 23450089 A JP23450089 A JP 23450089A JP H0750463 B2 JPH0750463 B2 JP H0750463B2
Authority
JP
Japan
Prior art keywords
message
processor
processors
network
response
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP1234500A
Other languages
English (en)
Other versions
JPH02118763A (ja
Inventor
フイリツプ・マルコム・ネチス
デビツド・ヘンリイ・ハートク
リチヤード・クラレンス・ストツクトン
マーチン・キヤメロン・ワトソン
デビツド・クロンシヨウ
ジヤツク・エバード・シエマー
Original Assignee
テラデータ・コーポレーション
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US06/250,022 external-priority patent/US4412285A/en
Priority claimed from US06/250,094 external-priority patent/US4445171A/en
Application filed by テラデータ・コーポレーション filed Critical テラデータ・コーポレーション
Publication of JPH02118763A publication Critical patent/JPH02118763A/ja
Publication of JPH0750463B2 publication Critical patent/JPH0750463B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

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

Description

【発明の詳細な説明】 (産業上の利用分野) マルチプロセッサ・システムにおける適正作動確認方
法、及びプライマリ・データ・メッセージの送受信方法
及び処理方法に関するものである。
(従来の技術) 高い信頼性を備えた形式の電子計算機(エレクトロニッ
ク・コンピュータ)が出現して以来、この技術分野に従
事する者が考察を重ねてきたシステムに、複数のコンピ
ュータを使用するシステムであってそれらのコンピュー
タが相互に関連性を保ちつつ動作することによって、所
与の1つのタスクの全体が実行されるようにしたシステ
ムがある。そのようなマルチプロセッサ・システムのう
ちのあるシステムでは、1つの大型コンピュータが、そ
れ自信の優れた速度と容量とを利用してプログラムの複
雑な部分を実行すると共に、複雑さの程度の低いタスク
や緊急度の低いタスクについては、それを小型で速度の
遅い衛星プロセッサに委任し(割当て)、それによっ
て、この大型コンピュータの負担やこの大型コンピュー
タに対するリクエストの量が減少するようにしたものが
ある。この場合、大型コンピュータは、サブタスクの割
当てを行なうこと、小型プロセッサ(=上記衛星プロセ
ッサ)を常に作動状態に保つこと、それらの小型プロセ
ッサの使用可能性と動作効率とを確認すること、それに
統一された結果が得られるようにすることを担当しなけ
ればならない。
以上とは別の方式を採用している別種のマルチプロセッ
サ・システムのなかには、多数のプロセッサと1つの共
通バス・システムとを使用するシステムであってそれら
の複数のプロセッサには本質的に互いに等しい機能が付
与されているシステムがある。この種のシステムにおい
ては、しばしば、他の部分からは独立した制御用コンピ
ュータないし制御システムを用いて、所与のサブタスク
に関する個々のプロセッサの使用可能性並びに処理能力
を監視することと、プロセッサ間のタスク及び情報の転
送経路を制御することとが行なわれている。また、プロ
セッサそれ自体が、他のプロセッサのステータス並びに
利用可能性の監視と、メッセージ及びプログラムの転送
経路の決定とを行なえるように、夫々のプロセッサの構
成及び動作が設定されているものもある。以上の種々の
システムに共通する重大な欠点は、オーバーヘッド機能
及び保守機能を実行するために、ソフトウェアが必要と
され且つ動作時間が消費されるということにあり、そし
てそれによって、本来の目的の実行に影響が及ぶことに
なる。転送経路の決定及び監視に関する仕事量が、それ
らの仕事に関与するプロセッサの総数の2次の関数で増
加して、ついにはオーバーヘッド機能のために不適当な
迄の努力が費やされるよになることもある。
以下の数件の特許公報は従来技術の例を示すものであ
る。
初期のバイナック(“Binac":2個の互いにパラレルに接
続されたプロセッサを用いる)や、それに類似した種々
のシステムが使用されていた頃から既に、マルチプロセ
ッサ方式は冗長性を備えた実行能力を提供するものであ
って、そのため動作するシステムの全体の信頼性を著し
く向上させ得るものであるということが認識されてい
た。実際にマルチプロセッサ・システムを構成するとい
うことに対しては、これまでのところ、かなりの制約が
存在しているが、その制約は主としてソフトウェアが膨
大なものとなってしまうことに起因する制約である。に
もかかわらず、例えばリアルタイムの用途等のように、
システムのダウンタイム(運転休止時間)が容認され得
ないような種々の状況においては、マルチプロセッサ動
作が特に有利であるため、これまでに様々なマルチプロ
セッサ・システムが開発されてきたが、ただし、それら
のシステムは動作自体は良好であるが、オーバーヘッド
のためにソフトウェアと動作時間のかなりの分量を割か
なければならないものであった。そのような従来のシス
テムは、米国特許公報第3,445,822号、同第3,566,363
号、及び同第3,593,300号にその具体例が示されてい
る。これらの特許公報はいずれも、複数のコンピュータ
がそれらの間で共用される1つのメイン・メモリをアク
セスするようにしたシステムに関するものであり、この
システムにおいては更に、タスクを個々のプロセッサに
好適に割当てるために、処理能力と処理要求量とが比較
されるようになっている。
従来技術の更に別の例としては、米国特許公報第4,099,
233号がある。この公報のシステムでは、複数のプロセ
ッサが1つのバスを共用しており、また、バッファ・レ
ジスタを内蔵している制御ユニットを用いて送信側ミニ
プロセッサと受信側ミニプロセッサとの間のデータ・ブ
ロックの転送が行なわれる。このシステムのコンセプト
は、欧州において分散型の郵便物分類システムに利用さ
れている。
米国特許公報第4,228,496号は、商業的に成功したマル
チプロセッサ・システムに関するものであり、このシス
テムでは、複数のプロセッサの間に設けられた複数のバ
スがバス・コントローラに接続されており、このバス・
コントローラが、データ送出状況の監視と、プロセッサ
間で行なわれる複数のデータ転送に対する優先順位の判
定を行なっている。また、各々のプロセッサは、複数の
周辺装置のうちのある1つの装置を制御するように接続
可能となっている。
ゼロックス、ヒューレット・パッカード、及びインテル
によって共同で推進されている「イーサネット」システ
ム(“Ethernet"system)(米国特許公報第4,063,220号
及び同第4,099,024号)は、複数のプロセッサ並びに周
辺装置の間の相互通信の問題に対処するための、更に別
の方式を提示している。全てのユニット(=プロセッサ
や周辺装置等)はそれらのユニットの間で共用される多
重アクセス・ネットワークに接続されており、そしてそ
れらのユニットは優先権を獲得すべく互いに競合するこ
とになる。衝突検出は時刻優先方式で行なわれており、
そのために、大域的な処理能力を制御することと、コー
ディネートすることと、明確に把握することとが、容易
でなくなっている。
以上に説明した種々のシステムをそれらの細部まで完全
に理解するためには、以上に言及した特許公報やその他
の関連参考文献を詳細に分析する必要がある。しかしな
がら、タスクの分担が行なわれる場合にはそれらのシス
テムはいずれも、データ転送に関する優先権の判定やプ
ロセッサの選択を行なうために膨大な量の相互通信と管
理制御とが必要とされるということだけは、簡単に概観
するだけでも理解されよう。システムを拡張して更に多
くのプロセッサを含むようにする場合にどのような問題
が発生するかは異なったシステムの夫々ごとに違ってく
るため一様ではないが、しかしながら以上のシステムは
いずれも、そのような拡張を行なえばシステム・ソフト
ウェアや応用プログラミング、ハードウェア、或いはそ
れら3つの全てが複雑化することになる。また、若干の
考察により理解されることであるが、1組ないし2組の
理論的に受動的なオーミック・バスが採用されているた
めに、それに固有の制約がマルチプロセッサ・システム
の規模と能力とに対して課せられている。相互通信をよ
り容易に行なえるようにするために採用可能な技法には
様々なものがあり、その一例としては、最近発行された
米国特許公報第4,240,143号に示されているところの、
サブシステムを大域的資源にグループ分けするという技
法等があるが、しかしながら、非常に多くのプロセッサ
が用いられている場合には当然のことながら利用できる
トラフィックの量はその限界に達してしまい、また、遅
延時間が様々な値を取るということによって、克服し難
い問題が生じている。1個ないし複数個のプロセッサが
ロック・アウト状態ないしデッドロック状態になるとい
う状況が発生することもあり、そのような状況に対処す
るには、問題を解決するための更なる回路とソフトウェ
アとが必要とされる。以上から、プロセッサの個数を、
例えば1024個というような個数にまで大幅に拡張するこ
とは、従来は実際的でなかったことが明らかである。
多くの様々な応用用途において、以上に説明した既存の
諸技法の制約から逃れて、最新の技法を最大源に利用す
ることが望まれている。現在採用可能な技法のうちで最
も低コストの技法は、大量生産されているマイクロプロ
セッサと、大容量の回転ディスク型の記憶装置とを基礎
とした技法であり、そのような記憶装置の例としては、
密閉式ケースの内部においてヘッドとディスクとの間の
間隔を非常に小さいものとした、ウインチェスタ・テク
ノロジー製の装置等がある。マルチプロセッサ・システ
ムを拡張するに際しては、ソフトウェアが不適当な迄に
複雑化することなくシステムを拡張できることが要望さ
れており、更には、ソフトウェアがその拡張に伴なって
複雑化することが全くないようにして拡張できることす
ら要望されている。また更に、機能の全体を、限定され
たないしは反復して実行される複数の処理タスクへと動
的に細分できる分散型構造をもつような特徴を有する計
算機問題を処理できる能力が要望されている。略々全て
のデータベース・マシンが、そのような問題分野に属し
ており、また、この問題分野には更に、ソート処理、パ
ターンの認識及び相関算出処理、デジタル・フィルタリ
ング処理、大規模マトリクスの計算処理、物理的な系の
シュミレーション、等々のその他の典型的な問題例も含
まれる。これらのいずれの処理が行なわれる状況におい
ても、個々に処理される複数のタスクを比較的簡明なも
のとし、しかもそれらのタスクを広範に分散することが
要求され、そのため、瞬間的タスク負荷が大きなものと
なる。そのような状況が、従来のマルチプロセッサ・シ
ステムに非常な困難を伴なわせていたのであり、その理
由は、そのような状況はオーバーヘッドに費やされる時
間とオーバーヘッドのためのソフトウェアの量とを増大
させる傾向を有していること、並びに、システムを構成
する上で実際上の支障が生じてくることにある。例えば
受動的な共用バスが採用されている場合には、伝播速度
並びにデータ転送所要時間が、トランザクションを処理
する上での可能処理速度に対する絶対的な障壁を成して
いる。
従ってデータベース・マシンは、マルチプロセッサ・シ
ステムの改良が必要とされていることの好い例である。
大規模データベース・マシンを構成する上での基本的な
方式にはこれまでに3種類の方式が提案されており、そ
れらは、階層方式、ネットワーク方式、それにリレーシ
ョナル方式である。これらのうちでリレーショナル方式
のデータベース・マシンは、関係(リレーション)を示
す表を用いることによって、ユーザが複雑な系の中の所
与のデータに容易にアクセスできるようにするものであ
り、この方式のマシンは、強力な潜在能力を有するもの
であると認識されている。この従来技術について説明し
ている代表的な刊行物には、例えばIEEEコンピュータ・
マガジンの1979年3月号の第28頁に掲載されている、D.
C.P.スミス並びにJ.M.スミスによる「リレーショナル・
データベース・マシン」という表題の論文(article en
titled“Relational Data Base Machine",published by
D.C.P.Smith and J.M.Smith,in the March 1979 issue
of IEEE Computer magazine,p.28)、米国特許公報第
4,221,003号、並びに同公報中に引用されている諸論文
等がある。
また、ソーティング・マシンは、コンピューティング・
アーキテクチャの改良が必要とされていることの好い例
である。ソーティング・マシン理論の概説は、D.E.クヌ
ース(Knuth)著「サーチング及びソーティング」の第2
20〜第246頁(“Searching and Sorting"by D.E.Knuth,
pp.220-246,published(1973)by Addison-Wesley Publ
ishing Co.,Reading,Massachusetts)に記載されてい
る。この文献には様々なネットワーク並びにアルゴリズ
ムが開示されており、それらの各々に付随する制約を理
解するためにはそれらを詳細に考察しなけらばならない
が、ただしそれらについて一般的に言えることは、それ
らはいずれも、ソーティングという特定の目的だけを指
向した、特徴的に複雑な方式であるということである。
更に別の例として、L.A.モラー(L.A.Mollaar)によっ
て提示されているものがあり、これは、「IEEE・トラン
ザクション・オン・コンピュータ」、C-28巻、第6号
(1979年6月)、第406〜413頁に掲載されている「リス
ト・マージング・ネットワークの構造」という表題の論
文(article entitled“A Design for a List Merging
Network",in the IEEE Transactions on Computers,Vo
l.C-28 No.6,June 1979 at pp.406-413)に記載されて
いる。この論文に提案されているネットワークにおいて
は、ネットワークのマージ・エレメントを外部から制御
するという方式が採用されており、また、このネットワ
ークは、特殊な機能を実行するためのプログラミングを
必要としている。
汎用のマルチプロセッサ・システムが実行することがで
きなければならない諸機能には、種々の方式でサブタス
クを分配する機能、サブタスクを実行しているプロセッ
サのステータスを確認する機能、メッセージのマージと
ソートを行なう機能、データを訂正及び変更する機能、
それに、いつ及びどのように資源が変化したかを(例え
ば、あるプロセッサがいつオンラインから外れ、いつオ
ンラインに復帰したかを)確認する機能等がある。以上
のような機能を実行するために、これまでは、オーバー
ヘッドのための過大なソフトウェアとハードウェアとを
用いる必要があった。
一例を挙げるならば、例えばデータベース・マシン等の
マルチプロセッサ・システムにおいては、プロセッサ間
のメッセージの転送経路を指定するに際して、特定の1
つのプロセッサを転送先として選択したり、或いは1つ
のクラスに属する複数のプロセッサを選択したり、また
更には、プロセッサそのものを指定するのではなく、ハ
ッシュ方式等によってプロセッサに分配されているデー
タベースの部分を指定するという方法で、転送先プロセ
ッサを選択するということが、しばしば必要となる。公
知のシステムの中には前置通信シーケンスを利用してい
るものがあり、それによって送信側プロセッサと、1個
或いは複数の特定の受信側プロセッサとの間のリンケー
ジを確立するようにしている。このリンケージを確立す
るためにはリクエストや肯定応答を何回も反復して送出
しなければならず、また起こり得るデッドロック状態を
克服するために、更なるハードウェア並びにソフトウェ
アを使用しなければならない。前置通信シーケンスを利
用していないシステムでは、1つのプロセッサによっ
て、或いはバス・コントローラによって管制が行なわれ
ており、この管制は、送信側プロセッサが送信準備完了
状態にあること、受信側プロセッサが受信準備完了状態
にあること、これらのプロセッサの間のリンケージから
その他のプロセッサが締め出されていること、並びに無
関係な送信が行なわれていないことを、確認するための
ものである。この場合にもまた、オーバーヘッドに依存
することと、デッドロックを回避するために複雑となら
ざるを得ないこととによって、システムを拡張する(例
えばプロセッサの個数を16個以上にする)につれて保守
機能が不適当な迄に膨張してしまうのである。
最近のマルチプロセッサ・システムに要求されている要
件の更に別の例として、1個或いは複数個のプロセッサ
によって実行されているサブタスクのステータスを、シ
ステムが確実に判定するための方法に関係するものがあ
る。基本的に要求されている点は、所与のプロセッサに
対してそのプロセッサのステータスについての問合せを
行なう能力を備えていなければならないということであ
り、しかも、そのステータスがその問合せよって影響を
及ぼされることがないように、且つ、応答の内容に多義
性が生じることがないように、その問合せが行なわれな
ければならないということである。ステータス表示のテ
ストとセットとを中断のない一連の操作として行なう機
能を特徴的に表わすための用語として、現在当業界にお
いては「セマフォ(semaphore)」という用語が使用さ
れている。このセマフォという特徴を備えていることは
望ましいことであるが、ただし、この特徴を組込むに際
しては、実行効率の低下やオーバーヘッドの負荷の増加
を伴なわないようにしなければならない。このようなス
テータスの判定は、更にマルチプロセッサ・システムに
おいてソート/マージ動作を実行する際に極めて重要な
ものとなるが、それは、大きなタスクの中に含まれてい
る複数のサブタスクの夫々の処理結果を組み合わせるた
めには、それらのサブタスクが適切に処理完了された後
でなければ1つに組み合わせることができないからであ
る。更に別の要件として、プロセッサがその「現在」ス
テータスを報告できなければならないこと、そしてサブ
タスクの実行は、マルチプロセッサの動作シーケンスに
対して割込みと変更とが繰返されても、ただ1回だけ行
なわれるようにしなければならないということがある。
殆どの既存のシステムでは、プロセッサの実行ルーチン
が中断可能とされているためにこの点に関して重大な問
題が生じている。即ち、容易に理解されることである
が、複数のプロセッサが互いに関連を有する複数のサブ
タスクを実行しているような場合には、それらの個々の
プロセッサのレディネス状態の程度(=どのような動作
が可能な状態にあるかの程度)についての問合せとそれ
に対する応答とに関わる動作シーケンスが膨大なオーバ
ーヘッドを必要とすることがあり、しかも、そのための
専用のオーバーヘッドは、プロセッサの個数が増大する
に従っていよいよ不適当なまでに増大する。
(発明が解決しようとする問題点) 以上に述べたところの例を示す従来のマルチプロセッサ
・システムにおける典型的な短所は、いわゆる「分散更
新」の問題に関するものであり、この問題は即ち、複数
個の処理装置の各々にそのコピーが格納されている情報
を更新する必要があるということである。ここで言う情
報とは、データ・レコードから成る情報の場合もあり、
また、システムの動作を制御するために用いられる情報
の場合もある。このシステムの動作の制御とは、例え
ば、必要なステップが誤って重複実行されたり全く実行
されなかったりすることのないようにして、処理が開始
され、停止され、再開され、一時中断され、或いはロー
ル・バックないしロール・フォワードされるようにする
こと等の制御のことである。従来のシステムにおいて
は、分散更新の問題の種々の解決法はいずれもかなりの
制約を伴なうものであった。それらの解決法の中には、
一度に2個のプロセッサだけを対象としているに過ぎな
いものもある。また更に別の解決法として相互通信プロ
トコルを利用しているものも幾つかあるが、それらのプ
ロトコルは非常に複雑なため、現在でも、それらのプロ
トコルが適切なものであることを数学的厳密さをもって
証明することには非常な困難が伴なっている。
それらのプロトコルが複雑になっている原因は、「大域
的セマフォ」を構成している、中断されることのない1
回の動作により全てのプロセッサにおいて「テスト・ア
ンド・セット」されるという外面的性質を持つ制御ビッ
トを、備える必要があるということにある。斯かる制御
ビットが複数の別々のプロセッサの内部に夫々に設けら
れ、しかもそれらのプロセッサの間の通信に付随する遅
延時間がまちまちであるため、不可避的に不完全なもの
となり得る通信チャネルによってノイズが発生され、ま
た更にエラーの発生率も増大することになる。従って
「中断されることのない1回の動作」という特徴を備え
ることは、その1つの動作を構成している複数の部分々
々が、夫々に多種多様で、しかも中断可能であり、そし
てそれらを同時にはアクセスすることができず、更には
それらがアクセスとアクセスとの間に不調を生じがちで
ある場合には、困難を伴なうものであるということが、
当業者には容易に理解されよう。
(問題点を解決するための手段) 本発明は、要約すれば、複数のプロセッサが互いに関連
した複数のタスクを処理すべき場合に、タスク情報の送
信と、全てのプロセッサが個々にそのタスクに関する適
切なメッセージを受信したことの認証とのために、ただ
2つのステップしか必要とされない方法を提供するもの
である。先ず第1に、共通メッセージが能動判定ネット
ワークを介して全てのプロセッサへブロードカストされ
る。続いて、全てのプロセッサが、所定の規約に従って
選択された肯定応答データを内包している複数のメッセ
ージをもって同時に応答する。ネットワークは、これら
のメッセージをそれら全てのプロセッサへ向けて送り返
すように伝送しつつ、認証を否定しているメッセージ、
或いは適切な受信を認証している共通メッセージを選択
する。
(実施例) 以下、この発明の実施例を図面を参照して説明する。
(データベース管理システム) 第1図に総括的に示されているシステムは、本発明の概
念をデータベース管理に応用したものを具体例として示
すものである。更に詳細に説明すると、このシステムは
一つまたは複数のホスト・コンピュータ・システム10、
12と協働するように構成されており、それらのホスト・
コンピュータ・システムは、例えばIBM370ファミリーま
たはDEC-PDP-11ファミリーに属するコンピュータ・シス
テム等であって、この具体例の目的に沿うように既存の
一般的なオペレーティング・システム及び応用ソフトウ
ェアで動作するようになっている。IBMの用語法に拠れ
ば、ホスト・コンピュータ・とデータベース・コンピュ
ータとの間の主要相互通信回線網はチャネルと呼ばれて
おり、また同じものがDECの用語法に拠れば「ユニバ
ス」または「マスバス」或いはそれらの用語を多少変形
した用語で呼ばれている。以上のコンピュータ・システ
ムのうちのいずれかが用いられるにせよ、或いは他のメ
ーカーのメインフレーム・コンピュータが用いられるに
せよ、このチャネル、即ちバスは、そこへデータベース
・タスク及びサブタスクが送出されるところのオーミッ
クな転送経路、即ち論理的に受動的な転送経路である。
第1図の具体例は、ホスト・システム10、12に組み合わ
されたバックエンド・プロセッサ複合体を示している。
この図のシステムは、タスク及びサブタスクをホスト・
システムから受入れ、莫大なデータベース記憶情報のう
ちの該当する部分を参照し、そして適切な処理済メッセ
ージ或いは応答メッセージを返すというものであり、そ
れらの動作は、このバックエンド・プロセッサ複合体の
構成の如何にかかわらず、それ程高度ではないソフトウ
ェアによる管理以外は、ホスト・システムには要求され
ない方式で実行されるようになっている。従って、ユー
ザのデータベースを新たな方式のマルチプロセッサ・シ
ステムとして構成することが可能とされており、このマ
ルチプロセッサ・システムにおいては、データを、容量
を大幅に拡張することのできるリレーショナル・データ
ベース・ファイルとして組織することができ、しかもこ
の拡張は、ユーザのホスト・システムの内部に備えられ
ているオペレーティング・システムや既存の応用ソフト
ウェアを変更する必要なしに行なうことができるように
なっている。独立システム(スタンド・アローン・シス
テム)として構成した具体例について、以下に第20図を
参照しつつ説明する。
当業者には理解されるように、リレーショナル・データ
ベース管理に関する動作機能は、1つの動作機能の全体
を、少なくとも一時的には他から独立して処理可能な複
数の処理タスクへと分割することができるような動作機
能である。その理由は、リレーショナル・データベース
では記憶されている複数のデータ・エントリがアドレス
・ポインタによって相互依存的に連結されていないから
である。更に当業者には理解されるように、リレーショ
ナル・データベース管理以外にも、限定されたタスクな
いし反復実行されるタスクを動的に小区分して独立的に
処理するこという方法を用い得るようなの多くのデータ
処理環境が存在している。従って、本発明の具体例を説
明するに際しては、特に要望が強くまた頻繁に聞かれる
ところの、データベース管理における処理の問題に関連
させて説明するが、しかしながら本明細書に開示する新
規な方法並びに構成は、それ以外にも広範な用途を持つ
ものである。
大規模なデータ管理システムは、複数のプロセッサ(マ
ルチプル・プロセッサ)を使用する場合には潜在的な利
点と不可避的に付随する困難との両方を備えることにな
る。何億個にも及ぶ莫大な数のエントリ(記述項)を、
記憶装置の中に、容易にかつ迅速にアクセスできる状態
で保持しなければならない。一方、リレーショナル・デ
ータベースのフォーマットとしておけば、広範なデータ
・エントリ及び情報の取り出し動作を同時並行的に実行
することができる。
ただし、圧倒的大多数のデータベース・システムにおい
ては、データベースの完全性(インテグリティ)を維持
することが、トランザクション・データを迅速に処理す
ることと同様に重要となっている。データの完全性は、
ハードウェアの故障や停電、それにその他のシステム動
作に関わる災害の、その前後においても維持されていな
ければならない。更には、データベース・システムは、
応用ソフトウェア・コードの中のバグ(bug)をはじめ
とするユーザ側のエラーの後始末を行なうために、デー
タベースを以前の既知の状態に復元できる能力を備えて
いなければならない。しかも、データが誤って失われた
り入力されたりすることがあってはならず、また、イベ
ントが新たなデータに関係するものであるのか、或いは
過去のエラーの訂正に関係するものであるのか、それと
もデータベースの一部分の校正に関係するものであるの
かに応じて、ある特定のエントリに関係しているデータ
ベース部分の全てが変更されるようになっていなければ
ならない。
従って、完全性のためには、データのロールバック及び
回復の動作、誤りの検出及び修正の動作、並びにシステ
ムの個々の部分のステータスの変化の検出及びその補償
の動作に加えて、更に、ある程度の冗長度もデータベー
スシステムには必要である。これらの目的を達成するた
めには、システムが多くの異なった特殊なモードで用い
られなければならないこともあり得る。
さらに、最近のシステムでは、その形式が複雑なものに
なりがちな任意内容の問合せ(discretionary query)
を受入れる能力と、必要とあらば相互作用的な方式で応
答する能力とを持っていることが要求される。たとえそ
の問合せが複雑なものであったとしても、システムにア
クセスしようとする人達がそのシステムの熟練者である
ことを要求されるようなことがあってはならない。
大規模生産の業務に関連して生じるかも知れない任意内
容の問合せの例には、次のようなものがある。
A.生産管理を行なう管理者が、在庫品のうちの1品目に
ついてのリストを要求するのみならず、生産高が前年同
月比で少なくとも10%以上低下している部品の、その月
間生産高を超えているような全ての部品在庫を明記した
在庫品リストを、要求するかもしれない。
B.マーケティング・マネージャーが、ある特定の勘定が
90日延滞を生じているか否かを問合せるばかりでなく、
特に不景気な地域に在住している過去に120日を超過し
たことのある顧客に関して、一律に90日の受取債権を要
求するかもしれない。
C.人事担当の重役が、所与の1年間に2週間を超える病
欠のあった従業員の全てを一覧表にすることを求めるの
みならず、直前の5年間のうちの2年以上について、そ
の釣のシーズンの間に1週間以上の病欠をした10年勤続
以上の長期勤続従業員の全てを一覧表にすることを求め
るかもしれない。
以上の例のいずれにおいても、ユーザは、コンピュータ
に格納されている情報をそれまでにはなされなかった方
法で関連付けることによって、事業において直面してい
る本当の問題を見極めようとするわけである。その問題
を生じている分野に関してユーザが経験を積んでいれ
ば、従ってユーザに直感力と想像力とがあれば、コンピ
ュータの訓練を受けたことのない専門家が、複雑な問合
せを処理できるデータベースシステムを自由自在に使用
できるのである。
最近のマルチプロセッサ・システムは、これらのように
多くの、そしてしばしば互いに相反する要求事項に対し
ては、念入りに作成されたオーバーヘッド用ソフトウェ
ア・システム並びに保守用ソフトウェア・システムを用
いることによって対応しようと努めているのであるが、
それらのソフトウェア・システムは本質的にシステムを
容易に拡張することの妨げとなるものである。しかしな
がら、拡張性という概念は強く求められている概念であ
り、その理由は、業務ないし事業が成長すると、それに
付随して既存のデータベース管理システムを拡張して使
用を継続することが望まれるようになり、この場合、新
しいシステムとソフトウェアの採用を余儀なくされるこ
とは好まれないからである。
マルチプロセッサ・アレイ 第1図について説明すると、本発明に係る典型的な一具
体例のシステムは多数のマイクロプロセッサを含んでお
り、それらのマイクロプロセッサには重要な2つの重要
な種類があり、それらは本明細書では夫々、インターフ
ェイス・プロセッサ(IFP)とアクセス・モジュール・
プロセッサ(AMP)と称することにする。図中には2個
のIFP14、16が示されており、それらの各々は別々のホ
スト・コンピュータ10ないし12の入出力装置に接続され
ている。多数のアクセス・モジュール・プロセッサ18〜
23もまた、このマルチプロセッサ・アレイとも称すべき
ものの中に含まれている。ここでの「アレイ」という用
語は、おおむね整然とした直線状或いはマトリックス状
に配列された、1組のプロセッサ・ユニット、集合とさ
れたプロセッサ・ユニット、ないしは複数のプロセッサ
・ユニットを指す、一般的な意味で用いられており、従
って、最近「アレイ・プロセッサ」と呼ばれるようにな
ったものを意味するのではない。図中には、このシステ
ムの概念を簡明化した例を示すために僅かに8個のマイ
クロプロセッサが示されているが、はるかに多くのIFP
及びAMPを用いることが可能であり、通常は用いられる
ことになる。
第1図にしめされているシステムを総括的に説明する
と、インターフェイス・プロセッサは、ホスト・コンピ
ュータから、処理すべき種々のタスクを受取り、夫々の
タスクに固有の識別情報(トランザクション・ナンバ
ー:TN)を割当てる。さらに、インターフェイス・プロ
セッサは、個々のタスクを複数のアクセス・モデュール
・プロセッサにおいて分散処理されるべき複数のサブタ
スクを作成し、それを能動ロジック・ネットワーク構造
に送出する。個々のサブタスクは前記識別情報を有す
る。前記ネットワーク構造は、サブタスクを全てのプロ
セッサに所定の時間遅れをもってブロードカスト(一括
送信)する。個々のアクセス・モデュール・プロセッサ
は、受信したサブタスクが自己に割当てられているディ
スクのメモリの更新ないしは読み出しを要求するもので
あれば、それを処理し、その結果をインターフェイス・
プロセッサからの前記識別情報に基づく要求によって前
記ネットワーク構造に送出する。
IFP14、16及びAMP18〜23は、内部バスと周辺装置コント
ローラにダイレクト・メモリ・アクセスをするメイン・
メモリとを有しているインテル8086型16ビットマイクロ
プロセッサを内蔵している。いろいろなメーカーの非常
に多様なマイクロプロセッサ及びマイクロプロセッサシ
ステム製品の任意のものを利用できる。この「マイクロ
プロセッサ」は、このアレイの中で使用できるコンピュ
ータないしプロセッサの一形式の具体的な一例に過ぎ
ず、なぜならば、このシステムの概念は、用途によって
必要とされる計算力がミニコンピュータまたは大型コン
ピュータのものである場合には、それらを使ってうまく
利用できるからである。この16ビットのマイクロプロセ
ッサは、相当のデータ処理力を備え、しかも広範な種々
の利用可能なハードウェア及びソフトウェアのオプショ
ンに置換えることができる標準的な置換え可能な構成と
されている、低コストの装置の有利な一例である。
IFPとAMPとは互いに類似の、能動ロジックと制御ロジッ
クとびインターフェイスとを含む回路、マイクロプロセ
ッサ、メモリ、及び内部バスを採用しており、それらに
ついては夫々第1図と第8図とを参照しつつ後に説明す
る。ただし、これら二つのプロセッサ形式は、夫々のプ
ロセッサ形式に関連する周辺装置の性質、及びそれらの
周辺装置に対する制御ロジックが異なっている。当業者
には容易に理解されるように、異なった周辺装置コント
ローラを備え異なった機能的任務を付与されたその他の
プロセッサ形式を本発明に組入れることも容易である。
各マイクロプロセッサには高速ランダム・アクセス・メ
モリ26(第8図に関連して説明する)が備えられてお
り、この高速ランダム・アクセス・メモリは、入出力メ
ッセージのバッファリングを行うことに加え、システム
の他の部分と独特な方法で協働することによって、メッ
セージ管理を行なう。手短に説明すると、この高速ラン
ダム・アクセス・メモリ26は、可変長の入力メッセージ
(この入力のことを「受信」という)のための循環バッ
ファとして働き、シーケンシャルにメッセージを出力す
るための(この出力のことを「送信」という)メモリと
して機能し、ハッシュ・マッピング・モード及び他のモ
ードで用いるためのテーブル索引部分を組込み、そして
受信メッセージ及び送信メッセージを整然と順序立てて
取扱うための制御情報を記憶する。メモリ26は更に、マ
ルチプロセッサモード選択のとき、並びにデータ、ステ
ータス、制御、及び応答の各メッセージのトラフィック
を取扱うときに独特の役目を果たすように用いられる。
後に詳細に説明するように、それらのメモリは更に、メ
ッセージの中のトランザクション・アイデンティティに
基づいて局所及び大域的なステータス判定と制御機能と
が極めて能率的な方法で処理され通信されるような構成
とされている。IFP14、16及びAMP18〜23の各々に備えら
れている制御ロジック28(第13図に関連しては後に説明
する)は、当該モジュール内のデータ転送及びオーバー
ヘッド機能の実行に用いられる。
IFP14、16は各々インターフェイス制御回路30を備えて
おり、このインターフェイス制御回路30はIFPをそのIFP
に組み合わされているホスト・コンピュータ10ないし12
のチャネルまたはバスに接続している。これに対してAM
P18〜23では、このインターフェイス制御回路に相当す
る装置はディスク・コントローラ32であり、このディス
ク・コントローラ32は一般的な構造のものであっても良
く、AMP18〜23を、それらに個別に組み合わせられた磁
気ディスク・ドライブ38〜43と夫々にインターフェイス
するのに用いられるものである。
磁気ディスク・ドライブ38〜43はこのデータベース管理
システムに二次記憶装置、即ち大容量記憶装置を提供し
ている。本実施例においては、それらの磁気ディスク・
ドライブは例えばウィンチェスター・テクノロジー(Wi
nchester technology)等の実績のある市販の製品から
成るものとし、それによって、バイト当りコストが極め
て低廉でしかも大容量、高信頼性の記憶装置が得られる
ようにしている。
これらのディスク・ドライブ38〜43には、リレーショナ
ル・データベースが分散格納方式で格納されており、こ
れについては第22図に簡易化した形で示されている。各
々のプロセッサとそれに組み合わされたディスク・ドラ
イブとに対しては、データベースの部分集合を成す複数
のレコードが割当てられ、この部分集合は「一次的」部
分集合であり、またそれらの一次的部分集合は互いに素
の部分集合であると共に全体として完全なデータベース
を構成するものである。従ってn個記憶装置の各々はこ
のデータベースの1/nを保持することになる。各々のプ
ロセッサには更に、バックアップ用のデータの部分集合
が割当てられ、それらのバックアップ用部分集合も互い
に素の部分集合であり、各々がこのデータベースの1/n
を構成するものである。第22図から分るように、一次的
ファイルの各々は、その一次的ファイルが収容されてい
るプロセッサとは異なったプロセッサに収容されている
バックアップ用ファイルによって複製されており、これ
により、互いに異なった分配の仕方で分配された2つの
各々が完全なデータベースが得られている。このよう
に、一次的データ部分集合とバックアップ用データ部分
集合とが冗長性を持って配置されていることによってデ
ータベースの完全性(インテグリティ)の保護がなされ
ており、その理由は、単発の故障であれば、大規模な数
ブロックに亙る複数のデータや複数のグループを成す複
数のリレーションに対して実質的な影響を及ぼすことは
あり得ないからである。
データベースの分配は、同じく第22図に示されているよ
うに、種々のファイルのハッシング動作と関連を有して
おり、また、ハッシュ・マッピング・データをメッセー
ジの中に組込むこととも関連を有している。各々のプロ
セッサに収容されているファイルは、2進数列のグルー
プとして示される簡単なハッシュ・バケット(hash buc
ket)によって指定されるようになっている。従って、
それらのバケットによって指定される関係の表(テーブ
ル)に基づいて、リレーショナル・データベース・シス
テムの中のリレーション(関係)及びタプル(組:tupl
e)を配置すべき場所を定めることができる。ハッシン
グ・アルゴリズムを利用して、このリレーショナル・デ
ータベース・システムの内部において、キーからバケッ
トの割当てが求められるようになっており、そのため、
このデータベース・システムの拡張及び改変を容易に行
なうことができる。
記憶容量をどれ程の大きさに選択するかは、データベー
ス管理上のニーズ、トランザクションの量、及びその記
憶装置に組み合わされているマイクロプロセッサの処理
力に応じて定められるものである。複数のディスク・ド
ライブを1個のAMPに接続したり、1台のディスク・フ
ァイル装置を複数のAMPに接続することも可能である
が、そのような変更態様は通常は特殊な用途に限られる
であろう。データベースの拡張は、典型的な一例として
は、マルチプロセッサ・アレイにおけるプロセッサの個
数(及びプロセッサに組み合わされたディスク・ドライ
ブの個数)を拡張することによって行なわれる。
能動ロジック・ネットワーク 秩序立ったメッセージ・パケットの流れを提供するとい
う目的とタスクの実行を容易にするという目的とは、新
規な能動ロジック・ネットワーク構成体50を中心とし
た、独特のシステム・アーキテクチュア並びにメッセー
ジ構造を採用することによって達成される。この能動ロ
ジック・ネットワーク構成体50は、複数のマイクロプロ
セッサの複数の出力に対して、階層を登りながらそれら
の出力を収束させて行く昇順階層を成す、複数の双方向
能動ロジック・ノード(bidirectional active logic n
ode)54によって構成されている。それらのノード54
は、3つのポートを備えた双方向回路から成るものであ
り、この双方向回路はツリー・ネットワーク(tree net
work:樹枝状の構造を持つネットワーク)を形成するこ
とができ、その場合には、そのツリー構造のベースの部
分においてマイクロプロセッサ14、16及び18〜23に接続
される。
当業者には理解されるように、ノードは、ロジック・ソ
ースの数が2を超えて、例えば4または8であるときに
設けることができ、この場合、同時にまた、ソース入力
の数を多くするという問題も組合せロジックを更に付加
するという問題に変換してしますことができる。
図の参照を容易にするために、すべてのノード(N)の
うち、第1階層に属しているものはそれをプリフィック
ス「I」で表わし、また第2階層に属しているものはそ
れをプリフィックス「II」で表わし、以下同様とする。
同一の階層に属している個々のノードは、下添字「
1、2…」によって表わし、従って、例えば第1階層の第
4ノードであれば「IN4」と表わすことができる。ノー
ドのアップ・ツリー側(即ち上流側)には「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の制御の下にメッセージ・パケットは同期してダ
ウン・ツリー方向へ進められ、そして全てのマイクロプ
ロセッサへ同時にブロードカスト(broadcast:一斉伝
達)され、それによって、1つまたは複数のプロセッサ
が、所望の処理タスクの実行ができるようになるか、ま
たは応答を受入れることができるようになる。
ネットワーク50は、そのデータ転送速度が、マイクロプ
ロセッサのデータ転送速度と比較してより高速であり、
典型的な例としては2倍以上の高速である。本実施例に
おいては、ネットワーク50は120ナノ秒のバイト・クロ
ック・インタバルをもっており、そのデータ転送速度は
マイクロプロセッサの5倍の速度である。各ノード54
は、その3つのポートの各々が、そのノードに接続され
ている隣接する階層に属するノードのポートか、或いは
マイクロプロセッサに接続されており、この接続は1組
のデータ・ライン(本実施例においては10本)と制御ラ
イン(本実施例においては2本)とによってなされてお
り、2本の制御ラインは夫々、クロック信号とコリジョ
ン信号(衝突信号)とに割当てられている。データ・ラ
インとクロック・ラインとは対になすようにして配線さ
れ、アップ・ツリー方向とダウン・ツリー方向とでは別
々のラインとされている。コリジョン・ラインはダウン
・ツリー方向にのみ伝播を行なうものである。以上の接
続構造は全二重式のデータ経路を形成しており、どのラ
インについてもその駆動方向を「反転」するのに遅延を
必要としないようになっている。
次に第3図に関して説明すると、10本のデータ・ライン
は、ビット0〜7で表わされている8ビット・バイトを
含んでおり、それらが10本のデータ・ラインのうちの8
本を占めている。Cで表わされている別の1本のライン
は制御ラインであり、このラインは特定の方法でメッセ
ージパケットの異なる部分を明示するのに用いられる制
御シーケンスを搬送する。10番目のビットは本実施例に
おいては奇数パリティ用に使用されている。当業者には
理解されるように、このシステムは以上のデータ経路中
のビットの数を増減しても良く、そのようにビットの数
を変更しても容易に動作させることができる。
バイト・シーケンス(バイトの列)は、一連の複数のフ
ィールドを構成するように配列され、基本的には、コマ
ンド・フィールド、キー・フィールド、転送先選択フィ
ールド、及びデータ・フィールドに分割されている。後
に更に詳細に説明するように、メッセージはただ1つだ
けのフィールドを用いることもあり、また検出可能な
「エンド・オブ・メッセージ」コードをもって終了する
ようになっている。メッセージ間に介在する「アイドル
・フィールド(idle field:遊びフィールド)」は、C
ライン上並びにライ0〜7上のとぎれのない一連の
「1」によって表わされ、いかなるメッセージパケット
も得られない状態にあるときには常にこれが転送されて
いる。パリティ・ラインは更に、個々のプロセッサのス
テータスの変化を独特の方式で伝えるためにも使用され
る。
「アイドル状態(idle state:遊び状態)」はメッセー
ジとメッセージとの間に介在する状態であって、メッセ
ージ・パケットの一部分ではない。メッセージ・パケッ
トは通常、タグを含む2バイトのコマンド・ワードで始
まり、このタグは、そのメッセージがデータ・メッセー
ジであればトランザクション・ナンバ(TN)の形とされ
ており、また、そのメッセージが応答メッセージであれ
ば発信元プロセッサID(OPID)の形とされている。トラ
ンザクション・ナンバは、システムの中において様々な
レベルの意義を有するものであり、多くの種類の機能的
通信及び制御の基礎を成すものとして機能するものであ
る。パケットは、このコマンド・ワードの後には、可変
長のキー・フィールドと固定長の転送先選択ワード(de
stination selection word:DSW)とのいずれか或いは双
方を含むことができ、これらは可変長のデータ・フィー
ルドの先頭の部分を成すものである。キー・フィールド
は、このキー・フィールド以外の部分においてはメッセ
ージどうしが互いに同一であるという場合に、それらの
メセージの間のソーティングのための判断基準を提供す
るという目的を果たすものである。DSWは、多数の特別
な機能の基礎を提供するものであり、また、TNと共に特
に注意するのに値するものである。
このシステムは、ワード同期をとられているインターフ
ェイスを用いて動作するようになっており、パケットを
送信しようとしている全てのプロセッサは、コマンド・
ワードの最初のバイトを互いに同時にネットワーク50へ
送出するようになっている。ネットワークは、これに続
く諸フィールドのデータ内容を利用して、各ノードにお
いて2進数ベースでソーティングを行ない、このソーテ
ィングは、最小の数値に優先権が与えられるという方式
で行なわれる。連続するデータ・ビットの中で、ビット
Cを最も大きい量である見なし、ビット0を最も小さい
量であると見なすならば、ソーティングの優先順位は以
下のようになる。
1.ネットワーク50へ最初に送出されたもの、 2.コマンド・コード(コマンド・ワード)が最小値であ
るもの、 3.キー・フィールドが最小値であるもの、 4.キー・フィールドが最短であるもの、 5.データ・フィールド(転送先選択ワードを含む)が最
小値であるもの、、 6.データ・フィールドが最短であるもの。
ここで概観を説明しているという目的に鑑み、特に記し
ておかねばならないことは、ノード54において優先権の
判定が下されたならば、コリジョン表示(=衝突表示、
以下AcolまたはBcolと称する)が、この優先権の判定に
おいて敗退した方の送信を受取った方の経路に返される
ということである。このコリジョン表示によって、送信
を行なっているマイクロプロセッサは、ネットワーク50
がより高い優先順位の送信のために使用されているため
自らの送信は中止されており、従って後刻再び送信を試
みる必要があるということを認識することができる。
単純化した具体例が、第2図の種々の図式に示されてい
る。この具体例は、ネットワーク50が4個の別々のマイ
クロプロセッサを用いたツリー構造に配列された高速ラ
ンダム・アクセス・メモリと協働して動作するようにし
たものであり、それら4個のマイクロプロセッサは更に
詳しく説明すると、IFP14と、3個のAMP18、19及び20と
である。計10面の副図2A、2B、…2Jは、その各々が、t
=0からt=9までの連続する10個の時刻標本のうちの
1つに対応しており、そしてそれらの時刻の各々におけ
る、このネットワーク内のマイクロプロセッサの各々か
ら送出される互いに異なった単純化された(4個の文字
からなる)シリアル・メッセージの分配の態様、並び
に、それらの種々の時刻における、ポートとマイクロプ
ロセッサとの間の通信の状態を示している。単に第2図
とだけ書かれている図面は、信号の伝送の開始前のシス
テムの状態を示している。以上の個々の図においては、
ナル状態(null state:ゼロの状態)即ちアイドル状態
であるためには、「□」で表される伝送が行なわれてい
なければならないものとしている。最小値をとるデータ
内容が優先権を有するという取決めがあるため、第2A図
中のAMP19から送出されるメッセージ・パケット「EDD
V」が、最初にこのシステムを通して伝送されるメッセ
ージ・パケットとなる。図中の夫々のメッセージは、後
に更に詳細に説明するように、マイクロプロセッサの中
の高速ランダム・アクセス・メモリ(H.S.RAMと呼称す
ることもある)の内部に保持されている。H.S.RAM26
は、第2図には概略的に示されている入力用領域と出力
用領域とを有しており、パケットは、t=0の時点にお
いては、この出力領域の中にFIFO(先入れ先出し)方式
で垂直に並べて配列されており、それによって、転送に
際しては図中のH.S.RAM26に書込まれているカーソル用
矢印に指示されているようにして取り出すことができる
ようになっている。この時点においては、ネットワーク
50の中のすべての伝送は、ナル状態即ちアイドル状態
(□)を示している。
これに対して、第2B図に示されているt=1の時点にお
いては、各々のメッセージパケットの先頭のバイトが互
いに同時にネットワーク50へ送出され、このとき全ての
ノード54はいまだにアイドル状態表示を返しており、ま
た、第1階層より上のすべての伝送状態もアイドル状態
となっている。第1番目のクロック・インタバルの間に
夫々のメッセージの先頭のバイトが最下層のノードIN1
及びIN2の内部にセットされ、t=2において(第2C
図)競合に決着が付けられ、そして上流方向への伝送と
下流方向への伝送の双方が続けて実行される。ノードIN
1はその両方の入力ポートに「E」を受取っており、そ
してこれを上流方向の次の階層へ向けて転送していて、
また下流方向へは両方の送信プロセッサへ向けて未判定
の状態を表示している。しかしながらこれと同じ階層に
属しているノードIN2は、プロセッサ19からの「E」と
プロセッサ20からの「P」との間の衝突に際しての優先
権の判定を、「E」の方に優先権があるものと判定して
おり、そして、ポートAをアップ・ツリー側のポートC
に結合する一方、マイクロプロセッサ20へBcol信号を返
している。Bcol信号がマイクロプロセッサ20へ返される
と、IN2ノードは実際上、そのA入力ポートがC出力ポ
ートにロックされたことになり、それによって、マイク
ロプロセッサ19からのシリアルな信号列が頂点ノードII
N1へ伝送されるようになる。
IN1ノードにおいては最初の二つの文字はどちらも「E
D」であり、そのため第2C図に示すように、このノード
ではt=2の時刻には、判定を下すことは不可能となっ
ている。更には、3つのマイクロプロセッサ14、15及び
19から送出された共通の先頭の文字「E」は、t=3
(第2D図)の時刻にIIN1頂点ノードに達し、そしてこの
文字「E」は、同じくそれら全てのメッセージに共通す
る第2番目の文字「D」がこの頂点ノードIIN1へ転送さ
れるときに、その転送の向きを反転されて下流方向へ向
けられる。この時点ではノードIN1は未だ判定を下せな
い状態にあるが、しかしながらこのときには、一連のマ
イクロプロセッサ14、18及び19からの夫々の第3番目の
文字「F」、「E」及び「D」がこのノードIN1へ送信
されつつある。マイクロプロセッサ20がBcol信号を受取
るということはこのプロセッサ20が優先権を得るための
競合において敗退したことを意味しており、それゆえこ
のプロセッサ20はBcol信号を受取ったならばアイドル表
示(□)を送出し、またそれ以降もこのアイドル表示
(□)だけを送出する。夫々の出力バッファに書込まれ
ている夫々のカーソル矢印は、マイクロプロセッサ20は
その初期状態に戻されているがその他のマイクロプロセ
ッサは連続する一連の文字を送り続けていることを示し
ている。従ってt=4(第2E図)の時刻における重要な
出来事は、ノードIN1のポートに関する判定が行なわれ
ることと、それに、先頭の文字(「E」)が、全てのラ
インを通って第1階層のノード階層へ向けて反転伝送さ
れることである。t=5(第2F図)の時刻には2回目の
衝突が表示され、この場合、ノードIIN1のBポートが競
合に勝利し、Acolが発生される。
続く数回のクロック・タイムの間は、シリアルな信号列
の下流方向へのブロードカストが継続して行なわれ、t
=6(第2G図)の時刻には、メッセージの先頭の文字が
全てのH.S.RAM26の入力用領域の部分の中にセットされ
る。ここでもう1つ注意しておいて頂きたいことは、ノ
ードIN1において先に行なわれた優先権の判定はこの時
点において無効とされるということであり、その理由
は、プロセッサ18から送出された第3番目の文字
(「E」)がマイクロプロセッサ19から送出された第3
番目の文字(「D」)との競合に敗退したときに、より
高位の階層のノードIIN1からAcolの表示がなされるため
である。第2H図中においてカーソル矢印が表わしている
ように、マイクロプロセッサ14、18及び20はそれらの初
期状態に戻されており、また、勝利したマイクロプロセ
ッサ19は、その全ての送信をt=4の時刻に既に完了し
ている。第2H図、第2I図、及び第2J図から分るように、
全ての入力バッファの中へ、次々に優先メッセージ「ED
DV」がロードされて行く。t=8(第2I図)において、
このメッセージは既に第1階層から流れ出てしまってお
り、また、頂点ノードIIN1はt=7において既にリセッ
トされた状態になっているが、それは、マイクロプロセ
ッサへ向けて最後の下流方向文字が転送されるときに
は、既にアイドル信号だけが互いに競合しているからで
ある。t=9(第2J図)の時刻には、第1階層に属して
いるノードIN1及びIN2はリセットされており、そして、
敗退したマイクロプロセッサ14、18及び20の全ては、ネ
ットワークが再びアイドルを指示しているときにメッセ
ージの先頭の文字を送出することによって、ネットワー
ク上における優先権を得るための競合を再度行なうこと
になる。実際には後に説明するように、勝利したマイク
ロプロセッサへ肯定応答信号が伝送されるのであるが、
このことは、本発明を最大限に一般化したものにとって
は必須ではない。
メッセージがこのようにして全てのマイクロプロセッサ
へブロードカストされた後には、このメッセージは、必
要に応じてそれらのマイクロプロセッサのいずれかによ
って、或いはそれらの全てによって利用される。どれ程
のマイクロプロセッサによって利用されるかは、動作の
モードと実行される機能の如何に応じて異なるものであ
り、それらの動作モードや機能には様々なバリエーショ
ンが存在する。
(大域的な相互通信と制御) 一群の互いに競合するメッセージのうちの1つのメッセ
ージに対してネットワークが優先権を与える方法として
上に説明した具体例は、プライマリ・データ・メッセー
ジの転送に関する例である。しかしながら、複雑なマル
チプロセッサ・システムが、現在求められている良好な
効率と多用途に亙る汎用性とを備えるためには、その他
の多くの種類の通信とコマンドとを利用する必要があ
る。備えられていなければならない主要な機能には、プ
ライマリ・データの転送に加えて、広い意味でマルチプ
ロセッサのモードと呼ぶことのできるもの、メッセージ
に対する肯定応答、ステータス表示、並びに制御信号が
含まれている。以下の章は、種々のモード並びにメッセ
ージが、どのようにして優先権付与のためのソーティン
グと通信とを行なうソーティング・コミュニケーション
・ネットワークと協働するかについて、大域的な観点か
ら、即ちマルチプロセッサ・システムの観点から説明し
た概観を提示するものである。更に詳細に理解するため
には、第8図及び第13図と、それらの図についての後述
の説明とを参照されたい。
一斉分配モード、即ちブロードカスト・モードにおいて
は、メッセージは特定の1個または複数個の受信プロセ
ッサを明示することなく、全てのプロセッサへ同時に送
達される。このモードが用いられるのは、典型的な例を
挙げるならば、応答、ステータス問合せ、コマンド、及
び制御機能に関してである。
受信プロセッサが明示されている必要がある場合には、
メッセージ・パケットそれ自体の中に含まれている転送
先選択情報が、そのパケットを局所的に(=個々のプロ
セッサにおいて)受入れるか拒絶するかを判断するため
の判定基準を提供するようになっている。例を挙げれ
ば、受信プロセッサ・モジュールの内部のインターフェ
イス・ロジックが、高速RAM26に記憶されているマップ
情報に従って、そのパケットのデータがそのインターフ
ェイス・ロッジクが組込まれている特定のプロセッサが
関与する範囲に包含されるものか否かを識別する。高速
RAM内のマップ・ビットを種々に設定することによって
様々な選択方式の判定基準を容易に設定することがで
き、それらの選択方式には、例えば、特定の受信プロセ
ッサの選択、(「ハッシング」により)格納されている
データベースの一部分の選択、ロジカル・プロセス・タ
イプ(「クラス」)の選択、等々がある。ブロードカス
トを局所的アクセス制御(=個々のプロセッサにおいて
実行されるアクセス制御)と共に用いることは、データ
ベース管理システムにとっては特に有益であり、それ
は、小さなオーバーヘッド用ソフトウェアしか必要とせ
ずに、広範に分散されたリレーショナル・データベース
の任意の部分や、複数の大域的に既知となっているロジ
カル・プロセスのうちの任意のものの分散された局所的
コピーに、アクセスすることができるからである。従っ
てこのシステムは、メッセージの転送先として、1つの
転送先プロセッサを特定して選択することもでき、ま
た、1つのクラスに属する複数の資源を特定して選択す
ることもできる 更にまた、ハイ・レベルのデータベース問合せは、しば
しば、データベースの別々の部分の間の相互参照と、所
与のタスクについての一貫性を有するレファレンス(識
別情報)とを必要とする。メッセージに組込まれたトラ
ンザクション・ナンバ(TN)は種々の特質を持つもので
あるが、その中でも特に、そのような大域的なトランザ
クションのアイデンティティ(同定情報)及びレファレ
ンスを提供するものである。多数のタスクを、互いに非
同期的に動作するローカル・プロセッサ・モジュール
(局所的プロセッサ・モジュール)によって同時並行的
に処理することができるようになっており、また、各々
のタスクないしサブタスクは適当なTNを持つようにされ
ている。TNとDSW(転送先選択ワード)とコマンドとを
様々に組合わせて用いることによって、実質的に無限の
融通性が達成されるようになっている。その割当てと処
理とが非同期的に行なわれている極めて多数のタスクに
対して、広範なソート/マージ動作(sort/merge opera
tion)を適用することができるようになっている。TNに
ついては、それを割当てることと放棄することとが可能
となっており、またマージ動作については、その開始と
停止とが可能とされている。ある種のメッセージ、例え
ば継続メッセージ等については、その他のメッセージの
伝送に優先する優先権を持つようにすることができる。
TNと、それにそのTNに関するステータスを更新するロー
カル・プロセッサとを利用することにより、ただ1つの
問合せだけで所与のTNについての大域的資源のステータ
スを判定することができるようになっている。分散型の
更新もまた一回の通信で達成できるようになっている。
本発明のシステムは、以上の全ての機能が、ソフトウェ
アを拡張したりオーバーヘッドの負担を著しく増大させ
ることなく、実行されるようにするものである。
本発明を用いるならばその結果として、従来技術におい
て通常見られる個数のマイクロプロセッサよりはるかに
多くの個数のプロセッサを備えたマルチプロセッサ・シ
ステムを、問題タスクに対して非常に効果的に動作させ
ることが可能になる。現在ではマイクロプロセッサは低
価格となっているため、問題領域において高性能を発揮
するシステムを、それも単に「ロー」パワー(“raw"po
wer)が高性能であるというだけではないシステムを、
実現することができる。
全てのメッセージのタイプと種々のサブタイプとを包含
する一貫性のある優先順位プロトコルが、ネットワーク
に供給される種々様々なメッセージの全てを包括するよ
うに定められている。応答メッセージ、ステータス・メ
ッセージ、並びに制御メッセージはプライマリ・データ
・メッセージとは異なる形式のメッセージであるが、そ
れらも同じように、ネットワークの競合/マージ動作
(contention/merge operation)を利用し、そしてそれ
によって、転送されている間に優先権の付与を受ける。
本システムにおける応答メッセージは、肯定応答(AC
K)か、否定応答(NAK)か、或いは、そのプロセッサが
そのメッセージに対して有意義な処理を加えるための資
源を持っていないことを表わす表示(「非該当プロセッ
サ(not applicable processor)」‐NAP)である。NAK
応答は、ロック(lock)状態、エラー状態、ないしはオ
ーバーラン(overrun)状態を表示する幾つかの異なっ
たタイプのうちのいずれであっても良い。ここで、ロッ
ク(lock)状態とは、プロセッサ・モデュールを構成す
るハードウェアの一部が動作不能の状態にあることをい
う。発信元プロセッサは1つだけであることも複数個あ
る場合もあるが、発信元プロセッサはメッセージの送信
を終了した後には以上のような応答を必要とするため、
応答メッセージにはプライマリ・データ・メッセージよ
り高位の優先順位が与えられている。
本システムは更にSACKメッセージ(ステータス肯定応答
メッセージ:status acknowledgment message)を用いて
おり、このSACKメッセージは、特定のタスク即ちトラン
ザクションに関する、ある1つのローカル・プロセッサ
のレディネス状態(どのような動作が可能であるかとい
う状態:readiness state)を表示するものである。この
SACK応答の内容は局所的に(=個々のプロセッサにおい
て、即ちローカル・プロセッサにおいて)更新されると
共に、ネットワークからアクセスできる状態に保持され
る。斯かるSACK応答は、ネットワークのマージ動作と組
合わされることによって、所与のタスク即ちトランザク
ションに関する単一の問合せによる大域的ステータス報
告が得られるようにしている。ステータス応答は優先順
位プロトコルに従うため、ある1つのトランザクション
・ナンバに関する応答のうちのデータ内容が最小の応答
が自動的に優先権を得ることになり、それによって最低
のレディネス状態が大域的なシステム状態として確定さ
れ、しかもこれは中断されることのない1回の動作によ
って行なわれる。更に、このようなSACK表示はある種の
プライマリ・メッセージと共に用いられることもあり、
それによって、例えばシステムの初期化やロックアウト
動作等の、様々なプロトコルが設定される。
種々のメッセージのタイプに関する優先順位プロトコル
は先ず最初にコマンド・コードについて定義されてお
り、このコマンド・コードは、第11図に示すように各メ
ッセージ及び応答の先頭に立つコマンド・ワードの、そ
の最初の6ビットを使用している。これによってメッセ
ージのタイプ及びサブタイプに関して充分な区別付けが
できるようになっているが、ただし、より多段階の区別
付けをするようにすることも可能である。第11図を参照
すれば分るように、本実施例においては、SACK応答は7
つの異なったステータス・レベルを区別して表わす(更
には優先権判定のための基準をも提供する)ものとされ
ている。応答メッセージの場合には、以上の6ビットの
後に、10ビットのOPIDの形式としたタグが続く(第3図
参照)。TNとOPIDとはいずれも更なるソーティング用判
定基準としての機能を果たすことができ、その理由は、
これらのTNとOPIDとはタブ領域の内部において異なった
データ内容を持つからである。
各プライマリ・メッセージがネットワークを介して伝送
された後には、全てのプロセッサのインターフェイス部
が、たとえそれがNAPであろうとも、ともかく応答メッ
セージを発生する。それらの応答メッセージもまたネッ
トワーク上で互いに競合し、それによって、単一または
共通の勝利した応答メッセージが全てのプロセッサへブ
ロードカストされる。敗退したメッセージパケットは後
刻再び同時送信を試みられることになるが、この再度の
同時送信は非常に短い遅延の後に行なわれ、それによっ
てネットワークが実質的に連続的に使用されているよう
にしている。複数のプロセッサがACK応答を送出した場
合には、それらのACK応答はOPIDに基づいてソーティン
グされることになる。
本発明を用いるならばその結果として、タスクの開始と
停止と制御、並びにタスクに対する問合せを、極めて多
数の物理的プロセッサによって、しかも僅かなオーバー
ヘッドで、実行することが可能となる。このことは、多
数のプロセッサのロー・パワー(raw power)を問題状
態の処理のために効果的に使うことを可能としており、
なぜならば、このロー・パワーのうちシステムのコーデ
ィネーション(coordination)及び制御に割かれてしま
う量が極めて少なくて済むからである。コーディネーシ
ョンと制御のオーバーヘッドは、いかなる分散型処理シ
ステムにおいても、その効率に対する根本的な制約を成
すものである。
大域的な制御(即ちネットワークの制御)を目的として
いる場合には、種々のタイプの制御通信が用いられる。
従って、「マージ停止」、「ステータス要求」、及び
「マージ開始」の各メッセージや、あるタスクの割当て
のためのメッセージ並びにあるタスクの放棄のためのメ
ッセージは、データ・メッセージと同一のフォーマット
とされており、それ故それらのメッセージもまた、ここ
ではプライマリ・メッセージと称することにする。それ
らの制御メッセージも同様にTNを含んでおり、そして優
先順位プロトコルの中の然るべき位置に位置付けられて
いる。このことについては後に第10図及び第11図に関し
て説明することにする。
「大域的セマフォ・バッファ・システム」という用語を
先に使用したのは、第1図に示された高速ランダム・ア
クセス・メモリ26及び制御ロジック28が、マルチプロセ
ッサのモードの選択とステータス表示及び制御指示の双
方向通信との両方において、重要な役割りを果たしてい
るという事実があるからである。この大域的セマフォ・
バッファ・システムはアクセスの二重性を提供するもの
であり、このアクセスの二重性とは、高速で動作するネ
ットワーク構造体50とそれより低速で動作するマイクロ
プロセッサとの双方が、メモリ26内のメッセージ、応
答、制御、ないしはステータス表示を、遅延なしに、そ
してネットワークとマイクロプロセッサとの間の直接通
信を必要とすることなく、参照することができるように
しているということである。これを実現するために、制
御ロジック28が、メモリ26を差込みワード・サイクル
(interleaved woed cycle)で時間多重化(タイム・マ
ルチプレクシング)してネットワーク50とマイクロプロ
セッサとへ接続しており、これによって結果的に、メモ
リ26を共通してアクセスすることのできる別々のポート
が作り上げられているのと同じことになっている。大域
的資源、即ちネットワーク50と複数のマイクロプロセッ
サとは、トランザクション・ナンバを、メモリ26のうち
のトランザクションのステータスを格納するために割振
られている部分へのロケートを行なうアドレス・ロケー
タとして、利用することができる。局所的なレベル(=
個々のプロセッサのレベル)において、あらゆる種類の
使用可能状態を包含する所与のトランザクションに関す
るサブタスクのステータスを、マイクロプロセッサの制
御の下にメモリ26の内部で更新し、そして制御ロジック
28によってバッファ・システムにロックするということ
が行なわれる。7種類の異なった作動可能状態のうちの
1つを用いることによって、エントリをメモリ26の異な
った専用部分から好適に取出すことができるようになっ
ている。ネットワークから問合せを受取ったならば、プ
ロセッサのステータスの通信が行なわれて(即ち「セマ
フォ」が読出されて)、それに対する優先権の判定がネ
ットワークの中で行なわれ、その際、完了の程度の最も
低いレディネス状態が優先権を得るようになっている。
以上の構成によって、1つの問合せに対する全てのプロ
セッサからの迅速なハードウェア的応答が得られるよう
になっている。従って所与のタスクに関する分散された
複数のサブタスクの全てが実行完了されているか否かに
ついて、遅滞なく、且つソフトウェアを用いることな
く、知ることができる。更にこのシステムでは、通信を
行なうプロセッサ・モジュールのいずれもがトランザク
ション・ナンバの割当てを行なえるようになっており、
このトランザクション・ナンバ割当ては、使用可能な状
態にあるトランザクション・ナンバを、メッセージに使
用し或いは各々の大域的セマフォ・バッファ・システム
内において使用するために割当てる動作である。
以上の、トランザクションのアイデンティティとステー
タス表示とを統合した形で使用するということの好適な
具体的態様には、複数のプロセッサの各々が所与の判定
基準に関わる全てのメッセージを順序正しく送出するこ
とを要求されるようにした、複合的マージ動作がある。
もし従来技術に係るシステムであれば、先ず各々のプロ
セッサが自身のタスクを受取ってその処理を完了し、然
る後にその処理の結果を、最終的なマージ動作を実行す
るある種の「マスタ」プロセッサへ転送するという方式
を取らねばならないであろう。従ってそのマスタプロセ
ッサが、そのシステムの効率に対する重大なネックとな
るわけである。
大域的レディネス状態が、作用が及ぶプロセッサの全て
が準備のできた状態にあるということを確証したなら
ば、夫々のプロセッサに備えられたメモリ26における最
高の優先順位を有するメッセージが互いに同時にネット
ワークへ送出され、そしてそれらのメッセージに対して
は、前述の如くマージが行なわれる間に優先権の判定が
なされる。幾つものグループのメッセージについて次々
と再送信の試みがなされ、その結果、複数のメッセージ
を当該トランザクション・ナンバに関優先順位の高いも
のから低いものへと順に並べ、その最後には最低の優先
順位のものがくるようにした、シリアルなメッセージ列
が発生される。特別のコマンド・メッセージに従って、
このシステムは、マージ動作をその途中で停止すること
と途中から再開することとが可能とされており、そのた
め、互いに同時刻に実行の途中にある複数のマージ動作
が、このネットワーク50を共有しているという状態が存
在し得るようになっており、それによってこのシステム
の資源を極めて有効に利用することが可能となってい
る。
従って、いかなる時刻においても、このネットワーク50
に接続されている動作中のプロセッサの全てが、様々な
トランザクション・ナンバに関係した複数のメッセージ
に関する動作を互いに非同期的に実行していられるよう
になっている。1つのステータス問合わせによって同一
のトランザクション・ナンバ即ち「現在」トランザクシ
ョン・ナンバの参照が行なわれたなら、全てのプロセッ
サが、用意されているステータス・レベルのうちの1つ
をもって互いに同期して応答を行なう。例を挙げると、
「マージ開始(START MERGE)」メッセージは、ある特
定のトランザクション・ナンバによって指定される大域
的セマフォのテスト(=調査)を行なわせ、もしこのテ
ストの結果得られた大域的状態が「準備完了」状態であ
れば(即ち「送信準備完了(SEND READY)」または「受
信準備完了(RECEIVE READY)」のいずれかび状態であ
れば)、現在トランザクション・ナンバ(present tran
saction number:PTN)の値がこの「マージ開始」メッセ
ージに含まれて伝送されたTNの値に等しくセットされ
る。(もしテストの結果得られた大域的状態が「準備完
了」状態でなかったならば、PTNの値は「TN0(これはト
ランザクション・ナンバ(TN)が「0」であるという意
味である)」という値に戻されることになる)。
更には「マージ停止(STOP MERGE)」メッセージも、現
在トランザクション・ナンバを「0」にリセットする。
このようにして「TN0」は、ある1つのプロセッサから
他の1つのプロセッサへのメッセージ(ポイント・ツー
・ポイント・メッセージ)のために使用される「ディフ
ォルト」値のトランザクション・ナンバとして利用され
ている。別の言い方をすれば、この「TN0」によって、
「ノン・マージ(non-merge)」モードの動作が指定さ
れるのである。
この大域的相互通信システムは、メッセージの構成につ
いては第3A、第3B、第3C、及び第11図に示されているも
のを、また、高速ランダム・アクセス・メモリ26の構成
については第8図及び第10図に示されているものを採用
している。更に詳細な説明は、後に第5、第7、第9、
及び第13図に関連させて行なうことにする。
第3A〜第3C図及び第11図から分るように、応答に用いら
れるコマンド・コードは00から0F(16進数)までであ
り、また、プライマリ・メッセージに用いられるコマン
ド・コードは10(16進数)からより大きな値に亙ってい
る。従って応答はプライマリ・メッセージに対して優先
し、第11図に示した並べ順では最小の値が先頭にくるよ
うにしてある。
高速RAMメモリ26″(第8図)の内部の1つの専用格納
領域(同図において「トランザクション・ナンバ」と書
かれている領域)が、第12図のワード・フォーマット
(前述の7種類のレディネス状態、TN割当済状態、並び
にTN非割当状態)を格納するために使用されている。こ
のメモリ26″のその他の複数の専用部分のなかには、入
力(受信メッセージ)のための循環バッファと、出力メ
ッセージのための格納空間とが含まれている。このメモ
リ26″のもう1つの別の分離領域がメッセージ完了ベク
トル領域として使用されており、この領域は、送信完了
した出力メッセージにポインタを置くことができるよう
にするものであり、これによって、出力メッセージの格
納空間を有効に利用できるようになっている。
以上から理解されるように、メモリ26及び制御ロジック
28については、それらのキューイング(queuing)機能
並びにデータ・バッファリング機能は確かに重要なもの
であるが、それらと共に、大域的トランザクションを個
々のプロセッサに関して分散させて処理するところの多
重共同動作が独特の重要性を有するものとなっている。
(能動ロジック・ノード) 冗長性をもって配設されている2つのネットワークのい
ずれにおいても、第1図の複数の能動ロジック・ノード
54は夫々が互いに同一の構成とされているが、ただし例
外として、各ネットワークの頂点にある方向反転ノード
54だけは、上流側ポートを備えず、その替わりに、下流
方向へ方向反転するための単なる信号方向反転経路を備
えている。第4図に示すように、1個のノード54を、機
能に基づいて2つのグループに大きく分割することがで
きる。それらの機能的グループのうちの一方はメッセー
ジと並びにコリジョン信号(衝突番号)の伝送に関係す
るものであり、他方は共通クロック信号の発生並びに再
伝送に関係するものである。クロック信号に対しては、
異なったノードにおける夫々のクロック信号の間にスキ
ューが存在しないように、即ちゼロ・スキューとなるよ
うに、同期が取られる。以上の2つの機能グループは互
いに独立したものではなく、その理由は、ゼロ・スキュ
ー・クロック回路が信号伝送システムの重要な部分を形
成しているからである。ワード・クロック(シリアルな
2つのバイトからなる)とバイト・クロックとの両方が
用いられる。ここで特に述べておくと、この能動ロジッ
ク・ノード54の状態を設定ないしリセットする際にも、
また、異なった動作モードを設定する際にも、この能動
ロジック・ノード54を外部から制御する必要はなく、ま
た実際にそのような制御が行なわれることはない。更に
は、夫々のノード54が互いに同一の構造であるため、最
近のIC技術を使用してそれらのノードを大量生産するこ
とが可能であり、それによって、信頼性を向上させつ
つ、かなりのコストの低下を実現することができる。
先に言及したA、B及びCの夫々の「ポート」は、その
各々が10本の入力データ・ラインと10本の出力データ・
ラインとを備えている。例えばAポートでは、入力ライ
ンAIで表わされ、出力ラインはA0で表わされている。各
々のポート毎に、上流方向クロック・ライン及び下流方
向クロック・ラインと共に、1本の「コリジョン」ライ
ン(即ち「衝突」ライン)が用いられている(例えばA
ポートにはA colが用いられている)。Aポート及びB
ポートの夫々のデータ・ラインはマルチプレクサ60に接
続されており、このマルチプレクサ60は、互いに競合す
る2つのワードのうちの優先する方のワード、或いは
(それらの競合ワードが互いに同一の場合には)その共
通ワードを、データ信号C0として、上流側ポート(Cポ
ート)に接続されているアップ・レジスタ62へスイッチ
ングして接続する。これと同時に、より高位の階層のノ
ードから送出されてCポートで受取られた下流方向デー
タが、ダウン・レジスタ64内へシフト・インされ、そし
てそこからシフト・アウトされて、Aポート及びBポー
トの両方に出力として発生する。
バイトからなるシリアルな上流方向への信号列のうちの
一方はブロックされ得るわけであるが、しかしながらそ
れによって上流方向ないし下流方向への余分な遅延が発
生することはなく、そして複数のワードが、ワード・ク
ロック並びにバイト・クロックの制御の下に、切れ目の
ない列を成して、アップ・レジスタ62及びダウン・レジ
スタ64を通して進められて行くのである。
Aポート及びBポートへ同時に供給された互いに競合す
るバイトどうしは、第1及び第2のパリティ検出器66、
67へ送られると共に比較器70へも送られ、この比較器70
は、8個のデータビットと1個の制御ビットとに基づい
て、最小の値のデータ内容が優先権を得るという方式で
優先権の判定を行なう。この優先権判定のためのプロト
コルにおいては、「アイドル」信号、即ちメッセージが
存在していないときの信号は、とぎれることなく続く
「1」の列とされている。パリティ・エラーは、例えば
過剰な雑音の存在等の典型的な原因や、その他の、信号
伝送ないし回路動作に影響を与える何らかの要因によっ
て生じ得るものである。しかしながら本実施例のシステ
ムにおいては、パリティ・エラー表示は、更に別の重要
な用途のためにも利用されている。即ち、あるマイクロ
プロセッサが動作不能状態へ移行すると、その移行がそ
のたび毎にマーキングされ、このマーキングはパリティ
・ラインを含めた全ての出力ラインが高レベルになる
(即ちその値が「1」になる)ことによって行なわれ、
従ってそれによって奇数パリティ・エラー状態が発生さ
れるようになっている。このパリティ・エラー表示は、
1つのエラーが発生したならネットワーク内を「マーカ
(marker)」として伝送され、このマーカによって、シ
ステムは、大域的資源に変化が生じたことを識別すると
共にその変化がどのようなものかを判定するためのプロ
シージャを開始することができるようになっている。
1対のパリティ検出器66、67と比較器70とは、信号を制
御回路72へ供給しており、この制御回路72は、優先メッ
セージ・スイッチング回路74を含み、また、優先権の判
定がさなれたならば比較器70の出力に応答してマルチプ
レクサ60を2つの状態のうちいずれかの状態にロックす
るように構成されており、更に、下流方向へのコリジョ
ン信号を発生並びに伝播するように構成されている。移
行パリティ・エラー伝播回路76の名前のいわれは、この
回路が、先に説明した同時に全てのラインが「1」とさ
れるパリティ・エラー状態をネットワークの中に強制的
に作り出すものだからである。リセット回路78はこのノ
ードを初期状態に復帰させるためのものであり、エンド
・オブ・メッセージ(end of message:EOM)検出器80を
含んでいる。
以上に説明した諸機能並びに後に説明する諸機能が実行
されるようにするためには、各々の能動ロジック・ノー
ドにおいてマイクロプロセッサ・チップを使用してそれ
らの機能を実行するようにしても良いのであるが、しか
しながら、第5図の状態図と以下に記載する論理式とに
従ってそれらの機能が実行されるようにすることによっ
て、更に容易に実行することが可能となる。第5図の状
態図において、状態S0はアイドル状態を表わすと共に、
互いに競合しているメッセージどうしが同一であるため
に、一方のポートを他方のポートに優先させる判定が下
されていない状態をも表わしている。S1状態及びS2状態
は夫々、Aポートが優先されている状態及びBポートが
優先されている状態である。従って、BIのデータ内容が
AIのデータ内容より大きく且つAIにパリティ・エラーが
存在していない場合、または、BIにパリティ・エラーが
存在している場合(これらのAIにパリティ・エラーが存
在していないという条件と、BIにパリティ・エラーが存
在しているという条件とは、夫々、▲▼及びBI
PEと表記され、フリップ・フロップの状態によって表わ
される)には、Aポートが優先されている。AIとBIとに
関して以上と逆の論理状態(論理条件)は、この装置が
S2状態へ移行すべき状態(条件)として存在するもので
ある。より高位の階層のノードから、その階層において
衝突が発生した旨の表示が発せられたならば、その表示
は、下流方向信号の中に入れられてCOLINとして送り返
されてくる。この装置は、それがS0状態、S1状態、及び
S2状態のうちのいずれの状態にあった場合であってもS3
状態へと移行し、そしてこのコリジョン信号を下流方向
へA col及びB colとして転送する。S1状態ないしはS2状
態にあるときには、このノードは既に判定を下している
ため、同様の方式でコリジョン信号が下流方向へ、より
低位の階層の(2つの)ノードへと送出されており、こ
のとき、優先メッセージスイッチング回路74は、状況に
応じてAポート或いはBポートにロックされている。
リセット回路78はEOM検出器80を含んでおり、この検出
器80を用いて、ノードのS3からS0へのリセット(第5
図)が行なわれる。第1のリセットモードは、第6図に
示すようにプライマリ・メッセージの中のデータ・フィ
ールドを終結させているエンド・オブ・メッセージ(EO
M)フィールドを利用するものである。1つのグループ
を成す複数のフリップ・フロップと複数のゲートとを用
いて、次式の論理状態が作り出される。
URINC・URC・URCDLY ここで、URCはアップ・レジスタの中の制御ビットを表
わし、URINCはこのアップ・レジスタへ入力される入力
信号の中の制御ビットの値を表わし、そしてURCDLYはア
ップ・レジスタ遅延フリップ・フロップ内のC値(=制
御ビットの値)を表わしている。
第6図に示すように、制御ビットの列の中の、連続する
2個のビットを1組としたビット対(ビット・ペア)
が、ある種のフィールドを明示すると共に、1つのフィ
ールドから次のフィールドへの移行を明示するようにし
てある。例を挙げると、アイドル時に用いられる「1」
のみが続く制御ビット状態から、「0、1」のビット・
シーケンス(=ビット対)への移行は、フィールドの開
始を明示するものである。この、「0、1」のシーケン
スは、データ・フィールドの開始を識別するのに用いら
れる。これに続く「1、0」の制御ビットのストリング
(列)は、内部フィールドないしはサブフィールドを表
示しており、またエンド・オブ・メッセージ(EOM)は
「0、0」の制御ビット対によって識別される。「1、
0」のビット対のストリングのあとに「0、0」のビッ
ト対がくる状態は、他にはない状態であり、容易に識別
することができる。URINC信号、URC信号、及びURCDLY信
号はまとめてアンド(論理積)をとられ、これらの各々
の信号は互いにバイト・クロック1つ分づつ遅延した関
係にある。それらのアンドをとった結果得られる信号の
波形は、メッセージ・パケットが始まるまでは高レベル
で、この開始の時点において低レベルに転じ、そしてこ
のデータ(=メッセージ・パケット)が続いている間、
低レベルにとどまる波形である。この波形は、EOMが発
生されてからバイトクロック2つ分が経過した後に、高
レベルへ復帰する。この、波形URINC・URC・URCDLYが正
に転じる遷移によって、EOMが検出される。第5図に付
記されているように、この正遷移によってS1またはS2か
らS0への復帰動作がトリガされるのである。
より高位の階層のノードがリセットされると、それによ
って▲▼状態となり、これは衝突状態が消失
したことを表わす。この論理状態は、S3から基底状態で
あるS0への復帰動作を開始させる。注意して頂きたいこ
とは、この▲▼状態は、エンド・オブ・メッ
セージがネットワーク50の階層を次々と「走り抜けて」
いくのにつれて、下方へ、それらの階層へ伝播していく
ということである。以上のようにして、各々のノードは
メッセージの長さの長短にかかわらず自己リセットでき
るようになっている。更に注意して頂きたいことは、ネ
ットワークの初期状態の如何にかかわらず、アイドル信
号が供給されたならば全てのノードがS0状態にリセット
されるということである。
コリジョン信号は複数のプロセッサ・モジュールにまで
戻される。それらのモジュールはこのコリジョン状態情
報を記憶し、そしてアイドル・シーケンスを送信する動
作へと復帰し、このアイドル・シーケンスの送信は競合
において勝利を得たプロセッサが送信を続けている間中
行なわれている。プロセッサは、COLINから▲
▼への遷移を検出し次第、新たな送信を開始すること
ができるようにされている。更にこれに加えて、プロセ
ッサは、Nをネットワーク内の階層の数とするとき、2N
個のバイト・クロックの時間に亙ってアイドル信号を受
信し続けたならば新たな送信を開始することができるよ
うにされており、それは、このような状況もまた、前者
の状況と同じく、先に行なわれた送信がこのネットワー
ク内に残ってはいないということを表わすものだからで
ある。これらの新たな送信を可能にするための方式のう
ちの後者に依れば、初めてネットワークに参加するプロ
セッサが、トラフィックさえ小さければネットワークと
の間でメッセージ同期状態に入ることができ、そのため
この初参加のプロセッサは、このネットワーク上の他の
プロセッサとの間の相互通信を開始する際して、別のプ
ロセッサからのポーリングを待つ必要がない。
パリティ・エラー状態は第5図の状態図の中にに記され
ているが、次の論理式に従って設定されるものである。
PESIG=AIPE・▲▼+BIPE・▲
▼ このPESIGの論理状態が真であるならば、アップ・レジ
スタへの入力信号URINは、(URIN 0…URIN 7、C、P=
1…1、1、1)である。上の論理式を満足するため
に、移行パリティ・エラー伝播回路76は、AIPE用、即ち
A入力のパリティ・エラー用フリップ・フロップと、遅
延フリップ・フロップ(AIPEDLY)とを含んでいる。後
者のフリップ・フロップは、AIPEの設定状態に従って、
それよりバイト・クロック1つ分遅れて状態を設定され
る。従ってA入力に関して言えば、AIPE用フリップ・フ
ロップがパリティ・エラーによってセット状態とされた
ときに、PESIG値がバイト・クロック1つ分の間ハイ・
レベルとなり、そのため、このPESIG信号はパリティ・
エラーの最初の表示がなされたときに1回だけ伝播され
るわけである。複数のデータ・ビット、制御ビット、並
びにパリティ・ビットの全てが「1」の値であるときに
もこれと同じ状態が生じるが、それは、大域的資源の状
態についての先に説明した移行が発生したときに生じる
状態である。それによって全てのラインがハイ・レベル
に転じ、全てが「1」の状態を強制的に作り出されて総
数偶数状態(奇数パリティ状態)が確立され、その結
果、先に説明した状態にAIPEフリップ・フロップとAIPE
DLYフリップ・フロップとがセットされてパリティ・エ
ラーを表示するようになる。以上の構成は、Bポートで
受取ったメッセージ・パケットがパリティ・エラー、或
いはステータスの変化を表示するための強制的パリティ
表示を含んでいる場合にも、同様の方式で動作する。
雑音の影響やその他の変動要素に起因して発生するパリ
ティ・エラーは、通常は、プロセッサの動作に影響を及
ぼすことはなく、その理由は、冗長性を有する二重のネ
ットワークを用いているからである。監視(モニタ)や
保守のためには、インジケータ・ライト(=表示灯:不
図示)を用いてパリティ・エラーの発生を表示するよう
にする。ただし、ステータスの変化を示す1回のみ伝播
するパリティ・エラーについては、それによって、その
変化の重要性を評価するためのルーチンが開始される。
第4図に示すようにこのノード54に使用されているクロ
ッキング・システムは、ネットワーク内に用いられてい
る階層の数にかかわらず、全てのノード要素におけるク
ロックとクロックとの間のスキュー(skew)がゼロとな
るようにするための、即ちゼロ・スキュー状態を保持す
るための、独特の手段を提供するものである。クロック
回路86は、第1及び第2の排他的ORゲート88、89を含ん
でおり、夫々AとBで示されているそれらの排他的ORゲ
ートの出力は、加算回路92によって、それらの間に減算
(即ち「B−A」の演算)が行なわれるように結合され
ており、この加算回路92の出力は、低域フィルタ94を通
された後に、フェーズ・ロック・ループである発振器
(PLO)96から送出される出力の位相を制御している。
第1の排他的ORゲート88への入力は、このPLO96の出力
と、隣接するより高位の階層のノード要素から絶縁駆動
回路97を介して供給される下流方向クロックとである。
このクロックのラインには「ワード・クロック」と記さ
れており、このワード・クロックは、隣接するより高位
の階層から既知の遅延τの後に得られるものであり、そ
してこの同じクロック信号が、もう1つの絶縁駆動回路
98を介して、隣接するより高い階層のそのノードへ返さ
れるようになっている。第2の排他的ORゲート89への入
力は、このワード・クロックと、隣接するより低位の階
層からのクロック・フィードバックとから成り、この低
位の階層も同様に、このPLO96から信号を受取ってい
る。
上記のワード・クロック・ラインは、第3の排他的ORゲ
ート100の2つの入力へ接続されており、それら両方の
入力は、直接的に接続されているものと、τc遅延線10
1を介して接続されているものとである。これによっ
て、ワード・クロックの2倍の周波数をもち、このワー
ド・クロックに対してタイミングの合った、バイト・ク
ロック信号を得ている。
以上のクロック回路86の作用は、第7図のタイミング・
ダイアグラムを参照すればより良く理解できよう。クロ
ック・アウト信号(クロック出力信号)は、PLO96の出
力である。このクロッキング・システムの最大の目的
は、ネットワーク内の全てのノードに関するクロック出
力信号どうしの間にゼロ・タイム・スキュー状態を保持
することにあるのであるから、当然のことながら、それ
らのクロック出力信号どうしはその公称周波数もまた互
いに同一でなければならばい。ノード間の伝送ラインに
よる遅延τは、略々一定の値になるようにするが、この
遅延の値それ自体は長い時間に設定することも可能であ
る。ここに開示している方法を採用するならば、ネット
ワーク並びにノードのバイト・クロック速度を実機シス
テムにおいて採用されている速度(公称120ns)とした
場合に、28フィート(8.53m)もの長さにすることが可
能である。当業者には容易に理解されるように、可能最
大個数のプロセッサ・モジュールが目いっぱいに実装さ
れているのではないネットワークには、更に階層を付加
することによって、この28フィートの整数倍の長さを容
易に得ることができる。その場合、それに対応して待ち
時間、即ちそのネットワークを通して行なわれる伝送の
伝送時間は増大する。
第7図中のクロック・アウト信号のすぐ下の波形によっ
て示されているように、隣接するより高位の階層から得
られるワード・クロックはクロック・アウト信号と同じ
ような波形であるが、ただしτだけ遅れている。このワ
ード・クロックが、全てのノードに共通する根本的タイ
ミング基準を成すのであるが、そのようなことが可能で
あるのは、個々のクロック・アウト信号の前縁をその回
路の内部で制御することができ、そしてそれらの前縁を
ワード・クロックに先行させることによって、全てのノ
ードが同期した状態に保持されるようにすることができ
るからである。波形A及び波形Bを参照すると分るよう
に、第1のORゲート88が発生するパルスAは、ワード・
クロックの前縁の位置で終了しており、一方、第2のOR
ゲート89が発生するパルスBは、その前縁がワード・ク
ロックの前縁と一致している。このBパルスの後縁は、
隣接するより低位の階層のモジュールからのフィードバ
ック・パルスの開始の位置に定められ、このフィードバ
ック・パルスはτだけ遅延しているため、Bパルスはそ
の持続時間が一定となっている。クロック回路86は、パ
ルスAの持続時間をパルスBの持続時間と同一に保持す
るように作用するが、そのように作用する理由は、PLO9
6の位相を進めて同期状態が確立されるようにするにつ
れて、加算回路92の出力信号(減算「B−A」を行なっ
た信号)がゼロへ近付いて行くからである。実際には、
破線で示されているように好適な位置より先行している
ことも遅れていることもあるA信号の前縁に対して調節
を加えて、このA信号の前縁がワード・クロックの前縁
より時間τだけ先行する位置にくるようにする。全ての
ノードにおいて、クロック・アウト信号の前縁がこの好
適公称位置に位置するようになれば、ワード・クロック
どうしの間にゼロ・スキュー状態が存在することにな
る。従ってネットワークに接続されている夫々のプロセ
ッサは、あるプロセッサから別のプロセッサまでの経路
の全長に関する制約から開放されているが、それは、遅
延が累積することが無いということと、伝播時間に差が
生じないということとに因るものである。
二倍周波数のバイト・クロックを発生させるために、遅
延線101によって、遅延時間τcだけ遅れたワード・ク
ロックが複製されており、この遅延線101もゲート100へ
信号を供給している。従って、第7図中のバイト・クロ
ックと記されている波形から分るように、ワード・クロ
ックの前縁と後縁の両方の位置に、持続時間τcを有す
るバイト・クロック・パルスが発生される。このパルス
の発生は、各々のワード・クロックのインタバルの間に
2回づつ生じており、しかも、全てノードにおいて、ワ
ード・クロックと同期して生じている。以上の説明にお
いては、ノードとノードとの間の伝送ラインによって発
生される遅延は階層から階層への伝送方向がどちら方向
であっても殆ど同一であり、そのため、事実上、このシ
ステム内の全てのワード・クロック並びにバイト・クロ
ックが、互いに安定な位相関係に保たれるということ
を、当然の前提としている。従って局所的に(=個々の
ノードの内部で)発生されるバイト・クロックは、各々
のノードにおいて、メッセージの2バイト・ワード(=
2個のバイトから成るワード)の、その個々のバイトの
ためのクロッキング機能を提供している。
以上の能動ロジック・ノードは、同時に送出されたメッ
セージ・パケットどうしの間の競合をそのデータ内容に
基づいて決着させるようにしている場合には常に、潜在
的な利点を有するものである。これに対し、例えば、19
81年2月17日付で発行された米国特許第4251879号公報
「デジタル通信ネットワークのための速度非依存型アー
ビタ・スイッチ(Speed Independent Arbiter Switch f
or Digital Communication Nbiworks)」に示されてい
るものをはじめとする、大多数の公知にシステムは、時
間的に最初に受信された信号がどれであるのかを判定す
ることを目指しており、外部に設けた処理回路または制
御回路を使用するものとなっている。
(プロセッサ・モジュール) 第1図の、システム全体の概略図の中に図示されている
個々のプロセッサは、夫々、インターフェイス・プロセ
ッサ(IFP)14及び16と、アクセス・モジュール・プロ
セッサ(AMP)18〜23の具体例として示されており、ま
た、これらのプロセッサは、大まかに複数の主要要素に
再区分してある。これらのプロセッサ・モジュール(IF
P及びAMP)の構成についての更に詳細な具体例は、第1
図の機能的な大まかな再区分との間に対応関係を有する
ものとなるが、ただしそればかりでなく、かなり多くの
更なる再区分をも示すものとなる。本明細書で使用する
ところの「プロセッサ・モジュール」なる用語は、第8
図に図示されているアセンブリの全体を指すものであ
り、このアセンブリは、以下に説明する任意選択の要素
を備えることによって、IFP或いはAMPのいずれかとして
機能することができるようになる。また、「マイクロプ
ロセッサ・システム」という用語は、マイクロプロセッ
サ105を内蔵したシステム103を指すものであり、ここで
マイクロプロセッサ105は、例えば、インテル8086型(I
ntel 8086)16ビット・マイクロプロセッサ等である。
このマイクロプロセッサ105のアドレス・パス並びにデ
ータ・パスは、マイクロプロセッサ・システム103の内
部において、例えばメインRAM107等の一般的な周辺シス
テム、並びに周辺機器コントローラ109に接続されてい
る。この周辺機器コントローラ109は、プロセッサ・モ
ジュールがAMPでありしかも周辺機器がディスク・ドラ
イブ111である場合に用い得るものの一例として示すも
のである。これに対して、このプロセッサ・モジュール
をIFPとして働かせる場合には、破線で描いた長方形の
中に示されているように、このコントローラ即ちインタ
ーフェイスを、例えばチャネル・インターフェイスに取
り替えれば良い。そのような具体例のIFPは、ホスト・
システムのチャネル即ちバスとの間の通信を行なうもの
となる。このマイクロプロセッサ・システム103には従
来の一般的なコントローラやインターフェイスを用いる
ことができるので、それらのコントローラやインターフ
ェイスについては更に詳細に説明する必要はない。
1つのマイクロプロセッサ毎に1台のディスク・ドライ
ブを用いることが費用と性能の両方の面において有利で
あるということを示し得ることに注目すべきである。そ
のような方式が有利であるということは、データベース
に関しては一般的に言えることであるが、ただし、とき
には、1つのマイクロプロセッサが複数の二次記憶装置
にアクセスできるようにマイクロプロセッサを構成する
ことが有益なこともある。概略図においては、図を簡明
にするために、その他の通常用いられているサブシステ
ムが組み込まれている点については図示省略してある。
この省略されたサブシステムは例えば割込みコントロー
ラ等であり、割込みコントローラは、半導体を製造して
いるメーカーが自社製のシステムに組み合わせて使用す
るために供給しているものである。また、本発明が提供
し得る冗長性と信頼性とを最大限に達成することのでき
る、プロセッサ・モジュールへ電源を供給するために適
切な手段を、講じることの重要性についても当業者には
理解されよう。
マイクロプロセッサ・システム103における任意選択要
素として示されている周辺機器コントローラ109とチャ
ネル・インターフェイスとは、第1図中のIFPインター
フェイスとディスク・コントローラとに相当するもので
ある。これに対して第1図の高速RAM26は、実際には、
第1のH.S.RAM26′と第2のH.S.RAM26″とから成ってお
り、それらの各々は、タイム・マルチブレクシング(時
間多重化)によって、機能の上からは事実上の3−ポー
ト・デバイスとされており、それらのポートのうちの1
つ(図中に「C」と記されているポート)を介してマル
チプロセッサのバス・システムと接続されている。H.S.
RAM26′、26″の各々は、夫々に第1ないし第2のネッ
トワーク・インターフェイス120、120′と協働し、それ
によって、夫々が第1及び第2のネットワーク50a及び5
0b(これらのネットワークは第8図には示されていな
い)と、入力(受信)ポートA及び出力(送信)ポート
Bを介して通信を行なうようになっている。このように
互いに冗長性を有する2つのシステムとなっているた
め、第2のネットワーク・インターフェイス120′と第
2のH.S.RAM26″を詳細に説明するだけで良い。ネット
ワーク・インターフェイス120、120′については第13図
に関連して更に詳細に示され説明されているが、それら
は、大きく再区分するならば以下の4つの主要部分に分
けることができる。
第2のネットワーク50bからの10本の入力ラインを、イ
ンターフェイス・データ・バス並びにインターフェイス
・アドレス・バスを介してH.S.RAM26″のAポートへ接
続している、入力レジスタ・アレイ/コントロール回路
122。
第2のネットワーク50bへの出力ラインを、インターフ
ェイス・データ・バス並びにインターフェイス・アドレ
ス・バスと、第2のH.S.RAM26″のBポートとへ接続し
ている、出力レジスタ・アレイ/コントロール回路12
4。
インターフェイス・アドレス・バス並びにインターフェ
イス・データ・バスと、H.S.RAM26″のAポート並びに
Bポートとへ接続された、マイクロプロセッサ・バス・
インターフェイス/コントロール回路126。
ネットワークからワード・クロックを受取り、そして、
インターフェイス120′を制御するための互いに同期し
且つ適切な位相関係にある複数のクロックを発生する、
クロック発生回路128。
第2のネットワーク・インターフェイス120′とH.S.RAM
26″とは、マイクロプロセッサ・システム103と協働す
ることによって、高速で動作するネットワークとそれと
比較してより低速で動作するプロセッサとの間のデータ
転送をコーディネートしており、また更に、それらの異
なったシステム(=ネットワーク・システムとプロセッ
サ・システム)の間で交換されるメッセージの、待ち行
列を作る機能も果たしている。マイクロプロセッサ・バ
ス・インターフェイス/コントロール回路126は、マイ
クロプロセッサ・システムと協働して(読出し/書込み
機能:R/W機能)を実行するためのものであると言うこと
ができ、このマイクロプロセッサ・システムは(少なく
ともそれがインテル8086型である場合には)H.S.RAM2
6″に直接データを書込む能力と、このH.S.RAM26″から
データを受取る能力とを備えている。
IFPの構造とAMPの構造とは、その作用に関しては互いに
類似したものであるが、しかしながら、H.S.RAM26″の
内部の入力メッセージ格納領域の大きさと出力メッセー
ジ格納領域の大きさとに関しては、IFPとAMPとの間に相
当の差異が存在することがある。リレーショナル・デー
タベース・システムにおいては、IFPは、ネットワーク
を絶えず利用してホスト・コンピュータの要求を満たせ
るようにするために、H.S.RAM26″の内部に、高速ネッ
トワークから新たなメッセージを受取るための、大きな
入力メッセージ格納空間を備えている。AMPについては
これと逆のことが言え、それは、高速ネットワークへ送
出される処理済メセージ・パケットのために、より多く
の格納空間が使用できるようになっていなければならな
いからである。H.S.RAM26″はマイクロプロセッサ・シ
ステム103の中のメインRAM107と協働しての動作も行な
い、このメインRAM107は各々のネットワークのためのメ
ッセージ・バッファ・セクションを備えている。
マイクロプロセッサ・システム103のための、メインRAM
107内部のシステム・アドレス空間の割当ての態様は第
9図に示されており、それについて簡単に説明してお
く。一般的な方式に従って、ランダム・アクセスのため
の記憶容量が増加された場合に使用される拡張用の空間
を残すようにしてシステム・ランダム・アクセス機能に
割当てられたアドレスと、I/Oアドレス空間と、ROM及び
PROM(EPROMを含む)の機能のために割当てられたアド
レス空間とを有するものとなっている。更に、システム
・アドレス空間のうちの幾つかの部分が、夫々、第1及
び第2の高速RAM26′、26″から送られてくるメッセー
ジ・パケットと、それらの高速RAMへ送り出されるメッ
セージ・パケットのために割当てられている。これによ
ってシステムの動作に非常な融通性が得られており、そ
れは、マイクロプロセッサ105がH.S.RAM26″をアドレス
することが可能であるようにしても、メインRAM107の働
きによって、ソフトウェアとハードウェアとの相互依存
性に殆ど拘束されないようにできるからである。
再び第8図を関して説明するが、既に述べたように、2
つの方向からアクセスすることのできるH.S.RAM26″
は、マルチプロセッサ・モードの制御、分散型の更新、
並びにメッセージ・パケットの流れの管理における、中
心的機能を実行するように構成されている。これらの目
的や更に別の目的を達成するために、H.S.RAM26″は複
数の異なった内部セクタに区分されている。第8図に示
されている様々なセクタの相対的な配置の態様は、この
システムの中の個々のプロセッサ・モジュールの全てに
おいて採用されているものであり、また、それらのセク
タの境界を指定している具体的なアドレスは、実際のあ
るシステムにおいて用いられているアドレスを示すもの
である。ここで注意して頂きたいことは、これらのメモ
リ・セクタの大きさとそれらの相対的な配置とは、具体
的なシステムの状況次第で大きく変り得るものだという
ことである。図示例では16ビットのメモリ・ワードが採
用されている。選択マップ及び応答ディレクトリは、初
期設定の間に一度だけ書込めば良いような種類の専用ル
ックアップ・テーブルであり、一方、トランザクション
・ナンバ・セクションの方は、動的改定自在な(=動作
している間に何度も内容を変更することができるように
した)ルックアップ・テーブルを提供している。
選択マップのメモリ・セクションはロケーション0から
始まっているが、この具体例では、基本的にこのメモリ
・セクションの内部において4つの異なったマップが使
用されるようになっており、それらのマップは相互に関
連する方式で利用されるものである。メッセージ・パケ
ットの中に内包されている転送先選択ワード(destinat
ion selection word:DSW)が、H.S.RAM26″内の専用の
選択マップと共同するようにして用いられる。この転送
先選択ワードは、計16個のビットから成り、そしてその
うちの12個のビット・ポジションを占めるマップ・アド
レスとその他の4個のビットを占めるマップ選択データ
とを含むものとされている。H.S.RAMの先頭の1024個の1
6ビット・メモリ・ワードは、その各々が4つのマップ
・アドレス値を含んでいる。DSWに明示されているアド
レス値に従ってH.S.RAMへ1回のメモリ・アクセスを行
なうだけで、4つの全てのマップにつてのマップ・ビッ
トが得られ、その一方で、そのDSWに含まれているマッ
プ選択ビットが、どのマップを用いるべきかを決定する
ようになっている。
第15図は、以上のマップ・セクションの概念的な構造を
示しており、同図においては、各々のマップがあたかも
物理的に分離した4096×1ビットのRAMから成るもので
あるかのように図示されている。実施する際の便宜を考
慮に入れれば、第8図に示されているように、全てのマ
ップ・データがH.S.RAMの単一の部分に格納されるよう
にするのが便利である。DSW管理セクション190(第13
図)が、H.S.RAMの1個の16ビット・ワードから得られ
る第15図の4つのマップの、その各々からの4個のビッ
トに対するマルチプレクシング動作を制御している。当
業者には理解されるように、この方式の利点は、H.S.RA
Mのその他の部分をアクセスするのに用いられるのと同
じ手段を用いて、プロセッサがマップを初期設定できる
という点にある。
更には、3つの異なったクラス(分類)の転送先選択ワ
ードが使用され、またそれに対応して、選択マップの格
納ロケーションが、ハッシュ選択部分、クラス選択部
分、及び転送先プロセッサ識別情報(destination proc
essor identification:DPID)選択部分に分割されてい
る。このDPIDは、当該プロセッサ105が、そのメッセー
ジ・パケットの転送先として意図された特定のプロセッ
サであるか否かを明示するものである。これに対して、
クラス選択部分は、当該プロセッサが、そのメッセージ
・パケットを受取るべき特定の処理クラスに属する複数
のプロセッサのうちの1つであるか否か、即ちそのプロ
セッサ・グループのメンバーであるか否かを明示するも
のである。ハッシュ値は、リレーショナル・データベー
ス・システムの内部にデータベースが分配される際の分
配方法に応じて格納されており、この分配方法は、その
システムに採用されている、特定のリレーションのため
のアルゴリズム、並びに分散格納方式に従ったものとな
る。この具体例におけるハッシュ値は、プロセッサの指
定をするに際しては、そのプロセッサがそのデータに対
して一次的な責任とバックアップ用の責任とのいずれか
一方をもつものとして指定することができるようになっ
ている。従って、以上の複数の選択マップによって、H.
S.RAM26″を直接アドレスして、プロセッサが転送先で
あるか否かを判断する、という方法を取れるようになっ
ている。この機能は、優先権を付与されたメッセージを
全てのネットワーク・インターフェイス120へブロード
カストするという方法と互いに相い補う、相補的な機能
であり、そして割込みを行なうことなくマイクロプロセ
ッサ105のステータスの局所的なアクセスができるよう
にしている機能でもある。
H.S.RAM26″の中の、他の部分からは独立した1つのセ
クションが、大域的に分散されている諸活動のチェック
及び制御をするための中枢的な手段として機能してい
る。既に述べたように、また第3図に示されているよう
に、ネットワーク50bへ送出され、またこのネットワー
ク50bから受取る種々の処理の夫々に対しては、トラン
ザクション・ナンバ(TN)が割当てられている。メッセ
ージの中にTNが内包されているのは、各々のプロセッサ
・システム103が自ら受容したサブタスクを互いに独立
して実行する際の大域的なトランザクション・アイデン
ティティ(トランザクション識別情報)とするためであ
る。H.S.RAM26″内の、複数の使用可能なトランザクシ
ョン・ナンバのアドレスを格納するための専用のブロッ
クが、それらのサブタスクを実行する際にマイクロプロ
セッサ・システム103によって局所的に制御及び更新さ
れるステータス・エントリ(=ステータスについての記
述項)を収容している。TNは、相互通信機能が実行され
る際に、局所的にもまた大域的にも、様々な異なった利
用法で用いられる。トランザクション・ナンバは、サブ
タスクを識別するため、データを呼出すため、コマンド
を与えるため、メッセージの流れを制御するため、並び
に大域的な処理のダイナミクスの種類を特定するために
用いられる。トランザクション・ナンバは、大域的通信
の実行中に割当てたり、放棄したり、変更したりするこ
とができる。これらの特徴については以下の記載におい
て更に詳細に説明する。
TNの特徴のうち、最も複雑ではあるがおそらく最も効果
的な特徴と言えるのは、ソート・ネットワーク(ソーテ
ィング機能を有するネットワーク)と協働することによ
って、所与の制御処理に関するローカル・プロセッサ
(=個々のプロセッサ・モジュール)のステータスの分
散型更新を可能にするという、その能力である。各々の
制御処理(即ちタスクないしマルチプロセッサの活動)
はそれ自身のTNをもっている。
レディネス状態(プロセッサがどのような動作をする準
備が整っているかの状態)の値が、H.S.RAM26″のトラ
ンザクション・ナンバ・セクションに保持されるように
なっており、このレディネス状態の値は、マイクロプロ
セッサ・システム103の制御の下に局所的に(=個々の
プロセッサ・モジュールの内部で)変更される。マイク
ロプロセッサ・システム103は、第10図の応答ディレク
トリの中の適当なエントリ(例えばSACK/Busy)(アド
レスは「050D(16進数)」)を初期設定することがで
き、そしてそれによって複製されたとおりのイメージを
転送することによって、このSACK/Busyのステータス
の、H.S.RAM26″への入力する。あるTNアドレス(=ト
ランザクション・ナンバに対応する格納位置)に入力さ
れているエントリは、H.S.RAM26″のAポート及びBポ
ートを介して、そしてインターフェイス120′を経由し
て、ネットワーク50bからアクセスすることが可能とな
っている。問合せは、ステータス・リクエスト(ステー
タス要求)のコマンド・コード(第11図参照)とTNとを
含む「ステータス・リクエスト」メッセージを用いて行
われる。インターフェイス120′は、指定されたTNのTN
アドレスに格納されている内容を用いて、然るべきフォ
ーマットで書かれた応答メッセージを格納している応答
ディレクトリを参照する。所与のTNに関する大域的ステ
ータス問合せを第2のネットワーク・インターフェイス
120′が受取ったならば、それによって、ハードウェア
的な制御しか受けていない直接的な応答が引き出され
る。前置通信は不要であり、また、マイクロプロセッサ
・システム103が割込みを受けたり影響を及ぼされたり
することもない。しかしながら、「ロック(lock)」表
示がインターフェイス120′へ転送されることによって
ステータスの設定が行なわれた場合には、マイクロプロ
セッサ・システム103は割込みを禁止し、またインター
フェイス120′が、アドレス「0501(16進数)」から得
られるロック・ワードを、後刻その排除が行なわれるま
で通信し続ける。
レディネス状態のワード・フォーマットは、第12図の
「ビズィ(busy:動作実行中の状態)」から「イニシャ
ル(initial:初期状態)」までの7種類の状態で示さ
れ、この第12図は、実際のあるシステムにおいて採用さ
れている有用な一具体例を図示している。レディネス状
態をより多くの種類に分類するような変更例やより少な
い種類に分類する変更例も可能であるが、同図に示され
ている7種類の状態を用いることによって、多くの用途
に適する広範な制御を行なうことができる。H.S.RAM2
6″の中の個々のTNの状態レベル(=個々のTNアドレス
に格納されているエントリが表わしているレディネス状
態のレベル)を継続的に更新し、それによって、サブタ
スクの利用可能性やサブタスクの処理の進捗状況が反映
されるようにしておくことは、マイクロプロセッサ・シ
ステムの責任とされている。このような更新は、第12図
に示されたフォーマットを用いて、H.S.RAM26″内のTN
アドレスに書込みを行なうことによって、容易に実行す
ることができる。
第10図において、各々のステータス応答(状態応答)
は、「05」から「0D」(16進数)までのものについて
は、いずれもその先頭の部分がステータス肯定応答コマ
ンド・コード(status acknowledgment command code:S
ACK)で始まっている。ネットワークへ送出されるそれ
らのSACK応答は、実際には、第10図のコマンド・コード
と、第12図のワード・フォーマットの数字部分と、発信
元プロセッサID(OPID)とから構成されており、これに
ついては第11図に示すとおりである。従って、それらの
SACK応答は、第11図に示された総合的優先順位規約の内
部において、ひとまとまりの優先順位サブグループを形
成している。OPIDが優先順位規約に関して意味を持って
いるわけは、たとえば、複数のプロセッサがある1つの
TNに関して働いているが、ただしそれらのいずれもが
「ビズィ」状態にあるという場合には、ブロードカスト
される最優先メッセージの判定がこのOPIDに基づいて行
なわれることになるからである。転送並びにシステムの
コーディネーションも、このデータ(OPID)に基づいて
行うことができる。
SACKメッセージ(=SACK応答)に対して優先順位規約が
定められていることと、複数のマイクロプロセッサ・シ
ステム103から同時に応答が送出されるようにしたこと
と、ネットワーク50bにおいて動的に(=伝送を行ない
ながら)優先権の判定が行なわれるようにしたこととに
よって、従来のシステムと比較して、所与のタスクに関
する大域的資源のステータスの判定が、大幅に改善され
た方法で行なわれるようになっている。それによって得
られる応答は、一義性を持ち、規定にない状態を表わす
ことは決してなく、更には、ソフトウェアを必要とせず
ローカル・プロセッサ(=個々のプロセッサ・モジュー
ル)に時間を消費させることもない。従って、例えば、
タスクの実行を妨げる頻繁なステータス要求によってデ
ッドロックが生じてしまうようなことは決してない。様
々なステータス・レベルにおいて、マルチプロセッサの
多くの任意選択動作を利用することができる。ローカル
・プロセッサどうしが互いに独立して動作を続けること
ができ、しかも単一の問合せによって、1つの、大域的
な、優先権を与えられた応答が引き出されるということ
は、かつてなかったことである。
第12図に示されている一連の状態について、ここで幾ら
か詳しく説明しておけば、理解に役立つであろう。「ビ
ズィ」状態と「ウェイティング(waiting:待ち)」状態
とは、割当てられた、即ち委任されたサブタスクに関し
て、次第により完成に近い段階へとこれから進んで行く
ことになる状態であり、「ウェイティング」状態の方
は、更なる通信ないしイベントを必要としている状態を
表わしている。これらの「ビズィ」並びに「ウェイティ
ング」の状態は、TNのステータスがより高いレベルへと
上昇して行き、ついにはそのTNに関するメッセージ・パ
ケットを送信ないし受信できるステータス・レベルにま
で到達するという、レベル上昇の例を示すものである。
一方、メッセージ・パケットを送信ないし受信する際に
は、以上とはまた別のTNの特徴である、メッセージ制御
におけるTNの能力が発揮されることになる。マイクロプ
ロセッサ・システム103が送信すべきメッセージをもつ
ようになると、ステータス表示は「送信準備完了(send
ready)」に変る。マイクロプロセッサ・システム103
は、ステータス表示を更新することに加えて、第12図の
ワード・フォーマットを用いて「ネクスト・メッセージ
・ベクタ」の値をH.S.RAM26″へ入力する。この入力さ
れたエントリは、該当する出力メッセージをH.S.RAM2
6″のどのロケーションから取り出せば良いかを明示す
るものである。このベクタは、ある特定のTNに関係する
複数の出力メッセージを1本につなげる(=チェーン
(chain)する)ために、ネットワーク・インターフェ
イス120′において内部的に使用されるものである。
以上の機能に関連した機能が、「受信準備完了(receiv
e ready)」状態の間に実行される。この「受信準備完
了」状態においては、TNの格納ロケーション(=TNアド
レス)に、マイクロプロセッサ・システム103から得ら
れる入力メッセージ・カウント値が保持されるようにな
っており、この入力メッセージ・カウント値は、所与の
TNに関連して受信することのできるメッセージの個数に
関係した値である。このカウント値は、入力メッセージ
が次々と転送されて来るのに合せてデクリメントされ、
ついにはゼロになることもある。ゼロになったならばそ
れ以上のメッセージを受取ることはできず、オーバラン
(overrun)状態の表示がなされることになる。以上の
ようにして、TNを利用してネットワーク50bとマイクロ
プロセッサ・システム103との間の伝送の速度を調節す
ることができるようになっている。
局所的な(=個々のプロセッサについての)局面につい
て説明すると、個々のプロセッサにおいては、処理が実
行されている間、TNは送信メッセージ及び受信メッセー
ジの中に、システム全体で通用する一定不変の基準とし
て保持されている。「TN0」状態、即ちディフォルト状
態は、メッセージをノン・マージ・モードで用いるべき
であるという事実を明示するための、局所的コマンドと
しての機能をも果たすものである。
更に大域的な観点から説明すると、「TN0」と、「TN>
0」である種々の値とを、互いに異なる性質のものとし
て区別することによって、TNを利用している複数のコマ
ンド機能のうちの1つのコマンド機能が規定されてい
る。即ち、そのようにTNを区別することによって、「マ
ージ/ノン・マージ」のいずれかを表わす特性記述(キ
ャラクタライゼーション)が各々のメッセージ・パケッ
トに付随することになり、それによって、複数のメッセ
ージに対して優先権の判定とソートとを行なうという、
有力なシステムの動作方式が得られているのである。同
様に、「アサインド(Assigned:割当てがなされている
状態)」、「アンアサインド(Unassigned:割当てがな
されていない状態)」、「非関与プロセッサ(Non-Part
icipant)」、並びに「イニシャル」というステータス
を用いて、大域的相互通信と制御の機能が遂行されるよ
うになっている。「アンアサインド」状態は、それ以前
にプロセッサがTNを放棄した場合の状態であり、従って
それは、TNを再活性化させる新たなプライマリ・メッセ
ージを受取る必要がある状態である。もし状態表示が
「アサインド」であるべきときにプロセッサが「アンア
サインド」を表示しているならば、これはTNが適切に入
力されなかったということを示しているのであるから、
訂正動作が実行されなければならない。もしTNが「アン
アサインド」であるべきときに「アサインド」となって
いるならば、これは、不完全な転送が行なわれている
か、或いは新たな1つのTNを求めて2つのプロセッサの
間で競合が行なわれていることの表われである場合があ
る。これらの「アサインド」と「アンアサインド」と
は、いずれもレディネス状態としては扱われず、その理
由は、それらの表示がなされている段階では、プロセッ
サは、まだそのTNに関する作業を始めていない状態にあ
るからである。
更には、「イニシャル」状態と「非関与プロセッサ」状
態も、大域的資源の関係で重要である。オン・ラインに
入ろうとしているプロセッサ、即ち、このシステムへの
加入手続きを行なわなければならないプロセッサは「イ
ニシャル」状態にあり、この態は、このプロセッサをオ
ン・ラインへ入れるためには管理上のステップを踏む必
要があることを表わしている。所与のタスクに関して
「非関与プロセッサ」状態にあるプロセッサは、局所的
にはいかなる処理も実行する必要はないが、しかしなが
らこのTNを追跡監視することにより、このTNが不注意に
より不適切に使用されることのないようにする必要があ
る。
再び第10図に関して説明すると、H.S.RAM26″の専用デ
ィレクトリ即ち参照セクションは、以上に説明したタイ
プ以外にも、ハードウェア的に応答を発生させるために
使用される、優先順位を付与された、複数のその他のタ
イプのメッセージも含んでいる。NA(not assigned:
「割当てを受けていない」の意)というエントリは、将
来の使用に備えて準備され、使用可能な状態で保持され
ている。3種類の異なったタイプのNAK応答(オーバラ
ン、TNエラー、ロック(Locked)の各NAK応答)は、そ
のデータ内容が最も小さな値とされており、従って最も
高い優先順位にあるが、それは、それらのNAK応答がエ
ラー状態を示すものだからである。複数のSACK応答の後
にACK応答、そしてNAP応答(非該当プロセッサ応答)が
続き、それらは優先順位が低下して行く順序で並べられ
ている。この具体例の構成では、2つの応答用コマンド
・コードが機能を割当てられておらず(即ちNAとされて
おり)、それらは将来の使用に備えて使用可能な状態と
されている。以上に説明したディレクトリは、ソフウェ
アによって初期設定することができしかもハードウェア
によって利用されるため、広範な種々の応答メッセージ
・テキストのうちからどのようなものでも、迅速に且つ
柔軟性をもって発生させることができる。
以上のディレクトリの中の、その他の部分からは独立し
ている1つの独立部分を使用して、TOP、GET、PUT、並
びにBOTTOMの夫々のアドレス、即ち、入力メッセージの
ための循環バッファの機能に関するポインタと、それに
完了出力メッセージのポインタとが、格納されている。
こらのポインタは、夫々、入力メッセージの管理と出力
メッセージの管理とにあてられているH.S.RAM26″の夫
々の専用セクタと協働して機能を果たすようになってい
る。入力メッセージのためには循環バッファ方式が用い
られており、この場合、H.S.RAM26″のディレクトリ・
セクションに格納されている「TOP」が、入力メッセー
ジのための上限アドレス位置を指定する可変アドレスと
なっている。同じディレクトリ・セクションに格納され
ている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図中の
最下段のグループは、優先順位の高い方から低い方へ向
かって、ステータス応答を得ることを必要とする唯一の
タイプのステータス・メッセージであるステータス・リ
クエスト・メッセージ、「TN放棄」と「TN割当て」とを
要求する夫々の制御メッセージ、そして、更に優先順位
の低い「マージ開始」制御メッセージを含んでいる。
以上の構成は、後に説明する更に詳細な具体例から明ら
かなように、多くの用途に用い得る動作を可能とするも
のである。プロセッサ・モジュールは、現在トランザク
ション・ナンバ(present transaction number:PTN)に
基づいて動作するようになっており、この場合、そのPT
Nが外部的に、ネットワークからの命令によって指定さ
れたものであろうとも、また、連続した動作を実行して
いる間に内部的に発生されたものであろうとも、同じこ
とである。マージ動作が実行されているときには、プロ
セッサ・モジュールは、大域的レファレンス、即ちトラ
ンザクション・アイデンティティ(=トランザクション
識別するための情報)を利用してその動作を実行してい
るのであり、このトランザクション・アイデンティティ
はTNによって定められている。マージ動作の開始、停
止、及び再開は、簡単なメッセージの変更だけを利用し
て行なわれる。サブタスクが、メッセージをマージする
ことを必要としていない場合や、他のメッセージとの間
に特に関係をもっていないメッセージ・パケットが発生
されたような場合には、それらのメッセージは「TN0」
に対して出力するための待ち行列(キュー)を成すよう
に並べられ、そして、現在トランザクション・ナンバに
よって定められた、基本状態即ちディフォルト状態(0
である)が真状態を維持している間に転送が行なわれ
る。この「TN0」状態は、マージ・モードが用いられて
いないときには、メッセージを転送のための待ち行列を
成すように並べることを可能にしている。
(ネットワーク・インターフェイス・システム) これより第13図に関して説明するが、同図は、本発明の
システムに用いるのに適したインターフェイス回路の一
具体例を更に詳細に示すものである。この「ネットワー
ク・インターフェイス・システム」の章の説明には本発
明を理解する上では必ずしも必要ではない多数の詳細な
特徴が含まれているが、それらの特徴は、実機のシステ
ムには組み込まれているものであり、それゆえ本発明の
要旨に対する種々の具体例の位置付けを明確にするため
に説明中に含めることにした。具体的なゲーティングの
ための構成並びに詳細構造であって、本発明の主題では
なく、しかも周知の手段に関するものについては、多種
多様な代替構成を採用することも可能であるので、説明
を省略ないし簡略化することにした。第13図は、第8図
に示されている第2のネットワーク・インターフェイス
120′並びにH.S.RAM26″の詳細図である。2つのネット
ワークのための夫々のインターフェイス120、120′は互
いに同様の方式で機能しており、それゆえ、一方のみに
ついて説明すれば十分である。
第13A図において、同図のインターフェイスに接続され
ている方の能動ロジック・ネットワーク50からの入力
は、マルチプレクサ142と公知のパリティ・チェック回
路144とを介して、ネットワーク・メッセージ管理回路1
40へ供給されている。マルチプレクサ142は更にマイク
ロプロセッサ・システムのデータ・バスに接続されてお
り、これによって、このデータ・バスを介してメッセー
ジ管理回路140へアクセスすることが可能となってい
る。この特徴により、マイクロプロセッサ・システム
が、インターフェイスをステップ・バイ・ステップ・テ
スト・モードで動作させることが可能となっており、そ
して、このインターフェイスがネットワークとあたかも
オン・ライン状態で接続されているかのように、データ
の転送が行なわれるようになっている。ネットワークか
らの入力は受信用ネットワーク・データ・レジスタ146
へ供給されるが、その際、直接このレジスタ146の第1
のセクションへ入力されるバイト・データと、受信用バ
イト・バッファ148を介してこのレジスタ146へ入力され
るバイト・データとがあり、受信用バイト・バッファ14
8は、第1のセクションへのバイト・データの入力が行
なわれた後に、自らのバイト・データをこのレジスタ14
6の別のセクションへ入力する。これによって、受信し
た各々のワードを構成している2つのバイトの両方が、
受信用ネットワーク・データ・レジスタ146に入力さ
れ、そしてそこに、利用可能な状態で保持されることに
なる。
これから伝送される出力メッセージは、送信用ネットワ
ーク・データ・レジスタ150へ入力され、また、通常の
パリティ発生回路132の内部においてパリティ・ビット
が付加される。メッセージは、ネットワーク・メッセー
ジ管理回路140からそれに接続されているネットワーク
へ送出されるか、或いは、(テスト・モードが用いられ
る場合には)マイクロプロセッサ・システム・データ・
バスへ送出される。このインターフェイスの内部におけ
るメッセージ管理を行う目的で、ランダム・アクセス・
メモリ168に格納されている送信メッセージのフォーマ
ットは、メッセージ・データと共に識別用データをも含
むものとされている。第21A図から分るように、コマン
ド、タグ、キー、並びにDSWのいずれをも、これから伝
送されるプライマリ・データに組合わせておくことがで
きる。
第13A図に示されている構成は、本質的に第8図に示さ
れている構成と同一であるが、ただし第8図では、イン
ターフェイス・データ・バス並びにインターフェイス・
アドレス・バスが、H.S.RAM26″の入力ポートAと入力
ポートBとに別々に接続され、また、マイクロプロセッ
サ・システム103のアドレス・バス並びにデータ・バス
が、独立したCポートに接続されているように図示され
ている。しかしながら実際には、第13A図から分るよう
に、このような互いに独立した2方向からのアクセス
は、このインターフェイスの内部において行なわれるH.
S.RAM26″における入力アドレス機能及び出力アドレス
機能の時分割マルチプレクシングによって達成されてい
る。マイクロプロセッサのデータ・バスとアドレス・バ
スとは、夫々ゲート145と149とを介してインターフェイ
スの夫々のバスに接続されており、それによってマイク
ロプロセッサが非同期的に、それ自身の内部クロックに
基づいて動作できるようになっている。
採用されているタイミング体系は、クロック・パルス
と、位相制御波形と、位相細分波形とに基づいたものと
なっており、この位相細分波形は、インターフェイス・
クロック回路156(第13図)によって発生され、また第1
4図に示すタイミング関係をもつものとなっている(第1
4図についても後に説明する)。インターフェイス・ク
ロック回路156は最も近くのノードからネットワーク・
ワード・クロックを受取っており、またフェイズ・ロッ
ク・クロック・ソース157は、第4図に関連して先に説
明した如きゼロ・タイム・スキューを維持するための手
段を含んでいる。240nsのネットワーク内の公称ネット
ワーク・ワード・クロック速度が、インターフェイス・
クロック回路156の内部において時間的に細分され、こ
れが行なわれるのは、フェイズ・ロックされた状態に保
持されている倍周器(詳細には示さない)が、持続時間
が40nsの基準周期を定める高速クロック(第14図にPLCL
Kとして示されている)を提供しているからである。基
本的なワード周期を定めているのは、全周期が240nsで
半サイクルごとに反転する、図中にCLKSRAと記されてい
る周期信号である。このCLKSRAと同一の周波数と持続時
間とをもつ信号が他に2つ、PLCLKに基づいて分周器158
によって発生されており、これらの信号は夫々がCLKSRA
からPLCLKの1サイクル分及び2サイクル分だけ遅延し
た時刻に発生されており、また、夫々がCLKSRB及びCLKS
RCという名称を与えられている。
以上の諸々の信号に基づいて、制御ロジック159が、「I
O GATE」、「RECV GATE」、並びに「SEND GATE」と称さ
れるタイミング波形(以下、ゲート信号ともいう)を作
り出しており、これらのタイミング波形は、ワード周期
の互いに連続する3等分されたインタバルの夫々を表示
するものである。これらのインタバルには、「IOフェイ
ズ」、「受信フェイズ」、「送信フェイズ」という該当
する名称がつけられている。上記ゲート信号によって定
められたこれらのフェイズは、その各々が更に、「IO C
LK」信号、「RECV CLK」信号、並びに「SEND CLK」信号
によって、2つの等分された半インタバルへと細分され
ており、これらの細分信号は、各々のフェイズの後半部
分を定めている。バイト・クロッキング機能は、「BYTE
CTRL」信号と「BYTE CLK」信号とによって管理されて
いる。
以上のIOフェイズ、RECVフェイズ(受信フェイズ)、及
びSENDフェイズ(送信フェイズ)は、ランダム・アクセ
ス・メモリ168とマイクロプロセッサ・システムのバス
が、時分割多重化(タイム・マルチプレクシング)され
た動作を行なえるようにするための、基礎を提供するも
のである。インターフェイスは、高速ネットワークとの
間で、1回のワード周期あたり1個のワードしか受信な
いし送信することができず、しかも明らかに、受信と送
信とは決して同時には行なわれない。マイクロプロセッ
サ・システムとの間で行なわれる転送の転送速度は、こ
のネットワークとの間の転送速度よりかなり低くなって
いるが、たとえ両者が等しい速度であったとしても、イ
ンターフェイス回路の能力にとって過大な負担となるこ
とはない。このインターフェイスのシステムの構成は、
ランダム・アクセス・メモリ168へのダイレクト・アク
セスによって大部分の動作が実行されるようになってお
り、従って内部的な処理つまりソフトウェアが、殆んど
必要とされないようになっている。従って、このシステ
ムが各々のワード周期の中の連続する複数のフェイズを
周期的に経過していくにつれて、複数のワードが次々
に、しかも互いに衝突することなく、それらのワードの
ための所定の複数の信号経路に沿って進められて行き、
それによって種々の機能が実行されるようになってい
る。例を挙げれば、バスへのメッセージの送出が、マイ
クロプロセッサからのメッセージの受取りの合間に行な
われるようにし、しかもそれらの各々がメモリ168の異
なった部分を用いて交互に行なわれるようにすることが
できる。
マイクロプロセッサ・システムのデータ・バスとネット
ワーク・インターフェイスとの間の相互通信は、IO管理
回路160(このIOのことを読出し/書込み(Read/Writ
e)と言うこともある)の中で行われる。マイクロプロ
セッサ・システムから送られてくるワードをゲーティン
グするための書込みゲート162と、マイクロプロセッサ
・システムへワードを送り出すためのシステム読出しレ
ジスタ164とによって、マイクロプロセッサのバスと、
ネットワーク・インターフェイスへのバス・インターフ
ェイスとの間が接続されている。
更にメモリ・アドレス・レジスタ165とパリティ発生器
/チェック回路166とが、ネットワーク・インターフェ
イス・サブシステムに組込まれている。この具体例で
は、前記高速メモリ(=H.S.RAM)は4Kワード×17ビッ
トのランダム・アクセス・メモリ168から成り、このメ
モリの内部的な再区分のしかたと、このメモリの内部に
設けられている複数の専用メモリ領域部分の使用法とに
ついては、既に説明したとおりである。このランダム・
アクセス・メモリの大きさ(=容量)は、具体的な個々
の用途における必要に合わせて、縮小したり拡張したり
することが容易にできる。
受信メッセージ・バッファ管理回路170が、マイクロプ
ロセッサのデータ・バスに接続されており、更にはメモ
リ168のアドレス・バスにも接続されている。「受信メ
ッセージ(received messages)」という用語は、ネッ
トワークから入力してきて循環バッファの中の「PUT」
という格納ロケーションへ入力されるメッセージを指し
示すためにに用いられることもあり、また、この入力の
後に、そのようにして循環バッファ内へ入力されたメッ
セージをマイクロプロセッサへ転送するが、その転送の
ことを指し示すために用いられることもある。このマイ
クロプロセッサへの転送が行なわれるときには、「GE
T」の値が、マイクロプロセッサ・システムへ転送すべ
き受信メッセージの取出しを実行するに際しシステムが
どのロケーションから連続した取出し動作を行なうべき
かを指定する。ランダム・アクセス・メモリ168のアク
セスに用いられる複数のアドレス値が、GETレジスタ17
2、TOPレジスタ174、PUTカウンタ175、及びBOTTMレジス
タ176に夫々入力されている。PUTカウンタ175は、BOTTO
Mレジスタ176によって指定されている初期位置から1づ
つインクリメントされることによって更新される。TOP
レジスタ174は、もう一方の側の境界の指標を与えるも
のである。TOPの値とBOTTMの値とはいずれも、ソフトウ
ェア制御によって操作することができ、それによって、
受信メッセージ・バッファの大きさとH.S.RAMにおける
絶対格納ロケーションとの両方を変更することが可能と
なっている。PUTレジスタの内容がTOPレジスタの内容に
等しくなったならばPUTレジスタはリセットされてBOTTO
Mレジスタの内容と等しくされ、それによって、このバ
ッファを循環バッファとして利用できるようになってい
る。以上のGETレジスタ、TOPレジスタ、BOTTOMレジス
タ、並びにPUTカウンタは、入力メッセージ用循環バッ
ファと出力メッセージ完了循環バッファとの両方を管理
するのに用いられている。
GETレジスタ172への入力はソフトウェアの制御下におい
て行なわれるが、それは、バッファ中においてそのとき
取扱われているメッセージの長さに応じて、次のアドレ
ス(ネクスト・アドレス)が決定されるからである。GE
Tレジスタ172、PUTカウンタ175、並びにTOPレジスタ174
の夫々の出力に接続された比較回路178と179は、オーバ
ラン状態を検出及び表示するために使用されている。オ
ーバラン状態はGETの値とPUTの値とが等しい値に設定さ
れた場合や、GETの値をTOPの値より大きな値に設定しよ
うとする試みがなされた場合に生じる状態である。これ
らのいずれの場合にも、オーバランのステータス表示が
送出されることになり、しかもこのステータス表示はオ
ーバラン状態が訂正されるまで送出され続けることにな
る。
「受信メッセージ」循環バッファを構成し動作させる際
の、以上のような連続的な方式は、このシステムに特に
適した方式である。衝突(コンフリクト)を回避するた
めの相互チェックを可能としておくことによって、「PU
T」をハードウェアで管理し、且つ「GET」を動的に管理
することができるようになっている。しかしながら、こ
れ以外の方式のバッファ・システムを採用することも可
能である。ただしその場合には、おそらく回路並びにソ
フトウェアに関して、ある程度の余分な負担が加わるこ
とになろう。ここで第21B図について触れておくと、メ
モリ168の内部に格納されている受信メッセージのフォ
ーマットは更に、マップ結果、データ長さ、並びにキー
長さの形の識別データを含んでおり、それらのデータが
どのようにして得られるかについては後に説明する。
このインターフェイスの内部のDSW管理セクション190
は、転送先選択ワード・レジスタ192を含んでおり、こ
の転送先選択ワード・レジスタ192へは、これからアド
レス・バスへ転送される転送先選択ワード(DSW)が入
力される。DSWを使用してメモリ168の専用DSWセクショ
ンをアドレスすると、このメモリ168からデータ・バス
上へ送出された出力がデータを返し、このデータに基づ
いてDSW管理セクション190が、そのメッセージパケット
が当該プロセッサを転送先としたものであるか否かを判
定することができるようになっている。第13A図から分
るように、転送先選択ワードは、2ビットのマップ・ニ
ブル(nybl)アドレスと、10ビットのマップ・ワード・
アドレスと、マップ選択のための4ビットとから成って
いる。これらのうちの「ニブル」アドレスは、メモリ16
8からのワードのサブセクションを記述するのに用いら
れている。マップ選択のための4ビットは、マップ結果
比較器194へ供給され、この比較器194はマルチプレクサ
196を介してメモリ168から関連したマップ・データを受
取っている。マルチプレクサ196は16ビットのデータを
受取っており、この16個のビットは、DSWの中に含まれ
ているマップ・ワード・アドレスの10ビットによって指
定されるアドレスに格納されている4つの異なったマッ
プ・データ・ニブルを表わしている。メモリ168は、こ
こで行なわれる比較が容易なように、その専用マップ・
セクションが特に比較に適した形態に構成されている。
マルチプレクサ196へその制御のために供給されてい
る、DSWの中の残りの2ビットによって、4つのマップ
・ニブルのうちの該当する1つのマップ・ニブルが選択
される。比較が行なわれ、その比較の結果得られたマッ
プ・コードが、マップ結果レジスタ197へ入力され、そ
してメモリ168へ入力されている入力メッセージの中へ
挿入される。もし、この比較の結果、選択されたマップ
のいずれの中にも「1」のビットが存在していないこと
が判明した場合には、「拒絶」信号が発生されて、当該
プロセッサ・モジュールはそのメッセージ・パケットを
受取るものとして意図されてはいないことが表示され
る。
第15図について説明すると、同図には、メモリ168の専
用の転送先選択セクションを細分するための好適な方法
であってしかもマップ結果の比較を行うための好適な方
法が、概略的に図示されている。各々のマップは4096ワ
ード×1ビットで構成されており、更に、個別プロセッ
サID用セクタ、クラスID用セクタ、及びハッシング用セ
クタに細分されている(第8図参照)。12個のアドレス
・ビット(10ビットのマップ・アドレスと2ビットのニ
ブル)を用いて、共通マップ・アドレスが選択される
と、それによって各々のマップから1ビット出力が得ら
れる。(第13図のマルチプレクサとそのニブルは、図を
簡明にするために第15図には示してない)。それら4つ
のパラレルなビット出力は、4つのANDゲートから成るA
NDゲート群198において、マップ選択のための4ビット
と比較することができるようになっており、その結果、
1つ以上の一致が得られた場合には、ORゲート199の出
力が「真」状態になる。このマップ結果は、第13A図の
マップ結果レジスタ197へ入力することができ、それに
よって、そのメッセージがメモリ168に受入れられるよ
うになる。以上とは異なる場合には、そのメッセージは
拒絶され、NAKが送信されることになる。
コマンド・ワード管理セクション200は、コマンド・ワ
ードを受取るコマンド・レジスタ202を含んでいる。コ
マンド・ワードのTNフィールドは、それを用いてアドレ
ス・バスをアクセスすることができ、そのアクセスによ
って、指標とされている受信TNが調べられて適当な応答
メッセージが決定される(第18図参照)。更には、「マ
ージ開始」コマンドが実行されているときには、TNフィ
ールドからPTNR(現在トランザクション・ナンバ・レジ
スタ)206へのデータ転送経路が確保されており、これ
は、「マージ開始」コマンドに合わせてPTN(現在トラ
ンザクション・ナンバ)の値を変更できるようにするた
めである。
メモリ168へ入力された入力メッセージは、第21図に関
して説明すると、アドレス・ベクタを利用できるように
するために、データ・フィールドやキー・フィールドが
用いられている場合にはそれらのフィールドの長さ値を
も含むものとなっている。それらの長さ値は、受信デー
タ長さカウンタ210と受信キー長さカウンタ211とによっ
て求められ、これらのカウンタの各々は、入力ソースか
ら夫々のカウンタに該当するフィールドが提供される際
に、それらのフィールドに含まれている一連のワードの
個数を数えるようになっている。
更には、送信メッセージ管理セクション220が用いられ
ており、このセクションは、処理済のパケットをメモリ
168に格納するための受入れ機能と、それらの格納され
たパケットを後刻ネットワークへ送出する機能とを包含
している。このセクション220は、送信トランザクショ
ン・ベクタ・カウンタ222、送信データ長さカウンタ22
4、及び送信キー長さカウンタ226を含んでおり、これら
のカウンタはデータ・バスに、双方向的に接続されてい
る。送信トランザクション・ベクタ・カウンタ222はア
ドレス・バスに接続されており、一方、送信データ長さ
カウンタ224はアドレス発生器228に接続されていて、こ
のアドレス発生器228が更にアドレス・バスに接続され
ている。出力バッファ・セクションと第8図の出力メッ
セージ完了ベクタ・セクションを構成する循環バッファ
との両方を用いてメッセージの送出が行なわれる。ただ
しこの具体例では、複数のメッセージ・パケットが逐次
入力された後に、それらが今度はベクタによって定めら
れた順序で取出されるようになっている。
このインターフェイスの内部においては、独立した夫々
の動作フェイズが、互いに排他的な時間に実行されるよ
うになっており、このような時分割方式を採用したこと
によって、メモリ168は、ネットワークのクロック速度
でネットワークからのメッセージ・パケットを受取って
供給することと、内部的な動作を効率的な高い速度で実
行することと、それ自身の遅いクロック速度で非同期的
に動作しているマイクロプロセッサ・システムとの間で
通信を行なうこととが、可能とされている。様々なカウ
ンタやレジスタへ向けたメッセージのゲーティング動作
を制御するために、位相制御回路が制御ビットに応答し
て動作しており、制御ビットは、コマンド、DSW、デー
タ、それにメッセージ内の個々のフィールドを示すその
他の信号を発生するものである。送信状態制御回路25
0、受信状態制御回路260、並びにR/W(読出し/書込
み)状態制御回路270は、クロック・パルスを受取り、
データ内のフィールドを識別し、そして、送信、受信、
それにプロセッサのクロック動作が行われている間の、
データの流れのシーケンシングを制御するものである。
このインターフェイスの制御は3つの有限状態マシン
(FSM)によって行われ、それらのFSMは、その各々が送
信フェイズ、受信フェイズ、及びプロセッサ(R/W)フ
ェイズのためのものである。それらのFSMは、プログラ
マブル・ロジック・アレイ(PLA)、状態レジスタ、並
びにアクションROMを使用して、一般的な方式で構成さ
れている。各々のFSMは、ネットワークのクロック・サ
イクルの1回ごとに1つ次の状態へ進められる。発生す
べき制御信号の数が多いため、PLAの出力はさらにアク
ションROMによって符号化される。当業者には容易に理
解されるように、ネットワークの動作のために必然的に
必要となる、FSMモード用に書かれ、それゆえ一般的な
細部構造と動作とをもつ制御シーケンスの翻訳は、仕事
量こそ多いものの単純なタスクである。
第17図及び第19図の状態ダイアグラムと第18図のマトリ
クス・ダイアグラムとを添付図面中に含めてあるのは、
かなり複雑なシステムに採用することのできる内部構造
設計上の特徴に関する、包括的な細目を提示するためで
ある。第17図は受信フェイズに関する図、第19図は送信
フェイズに関する図であり、これらの図において用いら
れている表記法は、この明細書及び図面の他の場所で用
いられている表記法に対応している。例えば次の用語が
そうである。
RKLC=Receive Key Length Counter (受信キー長さカウンタ) RDLA=Receive Data Length Counter (受信データ長さカウンタ) RNDR=Receive Network Data Word Register (受信ネットワーク・データ・ワード・レジス
タ) PUTC=Put Counter (PUTカウンタ) GETR=Get Register (GETレジスタ) 従って状態ダイアグラムは、第13図及び明細書と対照さ
せて参照すれば、略々説明なしでも理解することができ
る。それらの状態ダイアグラムは、複雑なメッセージ管
理並びにプロセッサ相互間通信に関わる、様々なシーケ
ンスと条件文とを詳細に示している。第17図(第17A
図)において、「応答を発生せよ」と「応答を復号せ
よ」とのラベルが書込まれている夫々の状態、並びに破
線の長方形で示されている夫々の条件文は、第18図のマ
トリクス・ダイアグラムに記載されている、指定された
応答及び動作に従うものである。第18図は、所与のTNに
関するプライマリ・メッセージとレディネス状態との任
意の組み合わせに対し、発生される応答と実行される動
作との両方を示すものである。当然のことであるが、正
常なシステムの動作がなされているときには、ある程度
のメッセージの拒絶はあるものの、エラー状態はまれに
しか発生しない。
第17図と第19図のいずれにおいても、条件判断に関して
は、その多くのものが複数の判断を同時に実行すること
ができるようになっているが、これに対して状態ステッ
プの方は、1つづつ変更されていくようになっている。
いずれの場合においても、送信動作と受信動作とは外部
からの制御を必要せずに定められた進行速度で進められ
て行く動作であり、それは、メッセージの構成とネット
ワークの動作方式とが既に説明したようになっているた
めである。
典型的なプロセッサ・システムやマルチプロセッサ・シ
ステムにおいて採用されている多くの特徴には、本発明
に密接な関係を持ってはいないものがあり、従ってそれ
らについては特に記載しない。それらの特徴の中には、
パリティ・エラー回路、割込み回路、それに、ワッチド
ッグ・タイマや極めて多様な記験機能等をモニタするた
めの種々の手段等がある。
(システムの動作の具体例) 以下に説明するのは、第1図、第8図、及び第13図を総
合したシステムが、ネットワーク及びH.S.RAMと協働し
つつ種々の動作モードで内部的にどのように働くかを示
す幾つかの具体例である。それらの具体例は、優先順位
規定と、ここで採用されているアドレッシング方式と、
トランザクション・アイデンティティとの間の相互関係
が、どのようにして局所的制御と大域的相互通信との両
方の機能を提供するのかを示すものである。
プライマリ・データ・メッセージの送受信 ここでは、その他の図に加えて更に第16図についても説
明するが、第16図は、プライマリ・メッセージの最終的
な受入れに関わる諸状態の、簡略化した状態ダイアグラ
ムである。メッセージがバッファ或いはメモリに受信さ
れても、図示の論理的状態が満たされないうちは、受入
れ(アクセプタンス)が達成されたことにはならない。
図ではイベント(事象)のシリアルな列として示されて
いるが、本来は複数の判定がパラレルに、即ち同時に行
なわれるようになっており、それは、夫々の条件が互い
に関与しないものであったり、或いは、ある動作段階へ
達するための中間段階の飛越しが、回路によって行なわ
れたりするためである。
第1図のネットワークの上のメッセージは、第13A図の
受信ネットワーク・データ・レジスタ146の中を、EOM状
態が識別されるまでの間通過させられ、その状態が識別
されたときに、メッセージが完了したことが認識され
る。「ロック(LOCK)」状態が存在している場合には、
システムは第8図のH.S.RAM26″の中の応答ディレクト
リを参照して、NAK/LOCK拒絶メッセージを送出する。
そうでない場合、即ち「ロック」状態が存在していない
場合には、システムはマップ比較チェックへ移り、この
チェックは第13A図に示したインターフェイスの中のDSW
管理セクション190の内部で実行される。「マップ出力
=1」で表わされる、適切な比較結果が存在している場
合には、システムはそのメッセージを受信し続けること
ができる。そのような比較結果が存在していない場合に
は、そのメッセージは拒絶され、NAPが送出される。
該当するマップが判定されたならば、それによってシス
テムはTNステータスを検査する準備が整ったことにな
り、このTNステータスの検査は第8図に示されているTN
のディレクトリを参照することによって行なわれる(こ
こでTNステータスとは厳密には所与のTNに関するプロセ
ッサのステータスのことであり、従ってH.S.RAM内のTN
アドレスに格納されているエントリによって表わされて
いるレディネス状態のことである)。更に詳しく説明す
ると、このTNステータスの検査は、局所的ステータス
(=個々のプロセッサ・モジュールのステータス)が
「受信準備完了」であるか否かを判定するために行なわ
れる。ここでは、先行するあるプライマリ・メッセージ
によってTNの割当てが既になされているものと仮定して
いる。
この検査の結果、TNが「実行終了(done)」状態、「非
関与プロセッサ」状態、または「イニシャル」状態のい
ずれかのステータスであることが判明した場合には、
「NAP」拒絶メッセージが送出される(ここでTNといっ
ているのは、厳密にはH.S.RAM内のTNアドレスに格納さ
れているエントリのことであるが、以下、混同のおそれ
のない限りこのエントリのことも単にTNと称することに
する)。もしこの判明したステータスが、他の規定外の
状態であったならば、送出される拒絶メッセージは「NA
K/TNエラー」であり、以上の2つのタイプの拒絶メッセ
ージもまた、第8図の応答ディレクトリから取り出され
る。ステータスが「受信準備完了」であったならば、更
にもう1つの別の判定が行なわれることになる。
このもう1つの別の判定とは、「入力オーバラン」に関
するものであり、この判定は、既に説明したように、第
13A図の入出力管理バッファ・セクション170の内部にお
いて、GETアドレスとPUTアドレスとを比較することによ
って行なわれる。更にはトランザクション・ナンバも、
受信メッセージ・カウントの値がゼロでないかどうかに
ついて検査され、このカウント値がゼロであれば、それ
は、同じく入力オーバランを表示しているのである。オ
ーバラン状態が存在している場合には、「NAK/入力オー
バラン」が送出されてそのメッセージは拒絶される。
以上のすべて条件が満足されていたならば、H.S.RAM2
6″内の応答ディレクトリから「ACK」メッセージ(肯定
応答メッセージ)が取り出されてネットワーク上へ送出
され、他のプロセッサ・モジュールとの間で優先権が争
われることになる。それらの他のプロセッサ・モジュー
ルのうちには、同じように受信メッセージに対する肯定
応答を送出したものもあるかもしてない。この時点で、
もしネットワークから受取る共通応答メッセージ(この
「共通」とはマージされたという意味である)が「AC
K」メッセージであって、従って、受信プロセッサ・モ
ジュールとして選択された「全ての」プロセッサ・モジ
ュールが、先に受信したメッセージの受入れが可能であ
ることが明示されている場合には、その受信メッセージ
の受入れがなされる。もしこの応答が「ACK」以外のい
ずれかの形であれば、先の受信メッセージは「全ての」
プロセッサから拒絶される。
受信並びに応答についてのこの具体例においては、プラ
イマリ・メッセージが受信された後には、全てのプロセ
ッサが、ACK応答、NAK応答、及びNAP応答のうちのいず
れか1つを発生することに注目されたい。プロセッサ
は、これらの応答メッセージのうちのいずれか1つを受
取ったならば、その直後にプライマリ・メッセージの伝
送を試みることができる。(プロセッサは、この伝送の
試みを、ネットワークを通り抜けるための合計待ち時間
相当の遅延に等しいかまたはそれより大きい遅延の後に
行なうこともでき、それについては既に「能動ロジック
・ノード」の章で説明したとおりである)。もう1つ注
目して頂きたいことは、もし、幾つかのプロセッサが互
いに「同一の」メッセージを送信したならば、結果的に
それらのメッセージの全てがネットワーク上の競合を勝
ち抜いたことになることも、あり得るということであ
る。その場合には、それらの送信プロセッサの「全て」
がACK応答を受取ることになる。このことは、後出の具
体例で詳細に説明する、ブロードカスト(一斉伝送)及
び大域的セマフォ・モードの動作に関して重要である。
実際に使用されている本発明の実機例は、これまでに説
明したものに加えて更により多くの種類の応答を含むと
共に様々な動作を実行するようになっている。第18図は
それらの応答と動作とを、LOCK、TNエラー、及びオーバ
ランの各割込み状態、予め識別されている9つの異なっ
たステータス・レベル、それに肯定応答(ACK)及び非
該当プロセッサ応答に対するものとして、縦列に並べた
各項目で示している。
あるプロセッサ・モジュールがメッセージの送信準備を
完了したときには、第13図のPTNレジスタ206に格納され
ているPTN値は使用可能状態となっており、従って必要
とされるのはTNステータスが「送信準備完了」状態にあ
ることの確認だけである。第12図から分るように、「送
信準備完了」のエントリ(記述項)は、出力メッセージ
のためのネクスト・メッセージ・ベクタ・アドレスを含
んでいる。アセンブルが完了した出力メッセージはネッ
トワーク上へ送出され、そしてもし競合に敗退したなら
ば、PTNが途中で変更されない限り、伝送が成功するま
でこの送出動作が反復され、そして成功したなら応答を
受取ることになる。伝送が成功して肯定応答を受取った
ならば、アドレス・ベクタが変更される。ネクスト・メ
ッセージ・ベクタが、現在メッセージの中の第2番目の
ワード(第21A図)から取り出され、このワードは送信
トランザクション・ベクタ・カウンタ222からランダム
・アクセス・メモリ168へ転送される。出力メッセージ
・セクションがオーバラン状態になければ、PUTカウン
タ175が「1」だけ進められ、このオーバラン状態は、P
UTがGETに等しくなることによって表示される。尚、送
信トランザクション・ベクタ・カウンタ222から転送さ
れるネクスト・メッセージ、ベクタは、H.S.RAMの中の
現在トランザクション・ナンバ・レジスタ206によって
指定されているトランザクション・ナンバ・アドレスへ
入力される。もし、この新たなTNが「送信準備完了」状
態のものであれば、この入力されたベクタの値は、再
び、このトランザクション・アイデンティティに関係し
ている次のメッセージ(ネクスト・メッセージ)の格納
位置を指し示している。H.S.RAMの中に格納されている
出力メッセージのフォーマットについては、第21図を参
照されたい。
ただし、メッセージを送出する際のメッセージ管理に
は、PTNの内部的な、或いは外部からの変更をはじめと
する、多くの異なった形態の動作を含ませておくことが
できる。エラー状態、オーバラン状態、ないしロック状
態によって、システムがトランザクション・ナンバを
「TN0」にシフトするようにしておくことができ、この
シフトによって、システムはノン・マージ・モードに復
帰し、そして「TN0」におけるステータスの検査を、
「送信準備完了」状態が識別されるか或いは新たなTNの
割当てがなされるまで、続けることになる。かなり複雑
な具体例に採用することのできる状態並びに条件を示し
たものとして、第19図(第19A図)のフローチャートを
参照されたい。
出力メッセージ完了バッファの例 メッセージの伝送の完了が「ロック(LOCK)」を除いた
その他の任意の応答メッセージによって明示されたなら
ば、新たに完了した出力メッセージ・バッファを指し示
すポインタが、H.S.RAMの出力メッセージ完了循環バッ
ファ・セクション(第8図参照)に格納される。このポ
インタは、上記出力メッセージ・バッファのアドレスを
表わす単なる16ビット・ワードである。(出力メッセー
ジ・バッファのフォーマットは第21図に示されている。
出力メッセージ・バッファには、ネットワークから受取
った応答メッセージを記録する場所が含まれていること
に注目されたい)。
出力メッセージ完了循環バッファは、ネットワーク・イ
ンタフェースのハードウェア120と、マイクロプロセッ
サ105の上に置かれた監視プログラムとの間の、通信の
機能を果たすものである。このマイクロプロセッサの中
に備えられているプログラムは、これから出力されるメ
ッセージをH.S.RAMの中に格納する。これに続く次の例
で詳細に説明するが、複数の出力メッセージを一緒に鎖
状に連結し(チェーンし)、しかもその際、TNがこの鎖
(チェーン)の先頭のポインタとして働くようにするこ
とができ、これによって作業の複雑なシーケンスを形成
することができる。その他の特徴としては、ネットワー
クを複数のTNの間で多重化即ち時分割(マルチプレクシ
ング)することができるため(これについても後に詳述
する)、ネットワーク内の諸処に存在する様々な事象に
応じた種々の順序でメッセージを出力することができ
る。
更にまた、伝送に成功したパケットによって占められて
いたH.S.RAM内の格納空間を迅速に回復し、それによっ
てその格納空間を、これから出力される別の出力パケッ
トのために再使用できるようにすることが重要である。
出力メッセージ完了循環バッファが、この機能を果たし
ている。
あるデータ・メッセージの送信が成功裏に終了して「ロ
ック」応答以外の応答を受信したならば、ネットワー
ク、インターフェイスは、H.S.RAM内の「0510(16進
数)」に格納されているPUTポインタ(第10図参照)を
「1」だけ進め、また、この送信が完了したばかりの出
力メッセージの先頭のワードのアドレスをPUTレジスタ
内のアドレスへ格納する。(PUTポインタの値が「0512
(16進数)」に格納されているTOPポインタの値より大
きくなると、PUTポインタは「0513(16進数)」に格納
されているBOTポインタ(=BOTTOMポインタ)と同じに
なるように最初にリセットされる)。PUTポインタがGET
ポインタ(格納位置「0511(16進数)」)より大きくな
るようならば、循環バッファが、オーバランしているの
であり、そのため「エラー割込み」がマイクロプロセッ
サへ向けて発生される。
マイクロプロセッサの内部で実行されているソフトウェ
アによって、GETポインタが指示している出力メッセー
ジ・バッファが非同期的に調べられる。プロセッサは、
実行を要求された何らかの処理を完了したならば、GET
ポインタを「1」だけ進める(このGETの値は、TOPの値
より大きくなるとBOTの値にリセットされる)。GET=PU
Tとなっている場合には、処理せねばならない出力メッ
セージはもはや存在していない。そうでない場合には、
更に別の出力メッセージが成功裏に送信を完了した状態
にあるので、それらの出力メッセージを処理せねばなら
ない。この処理には、H.S.RAMの出力バッファの格納空
間を空きスペースに戻すことが含まれており、従ってこ
のスペースを他のパケットのために再使用することでき
る。
ここで注目しておくべき重要なことは、出力メッセージ
完了循環バッファと入力メッセージ循環バッファとは互
いに別個のものであり、そのためこれら2つの循環バッ
ファは、夫々が別々のPUT、GET、TOP、及びBOTの各ポイ
ンタによって管理されているということである。構成の
しかたによっては、第13図に示されているように、これ
ら両方の循環バッファが、循環バッファ管理ハードウェ
ア170を共用するようにもできるが、そのような構成が
必須なわけではない。
初期設定の手順 各プロセッサ・モジュールは、そのプロセッサ・モジュ
ール自身の高速ランダム・アクセス・メモリ168(第13
図)の内部のTNをアクセスする機能を備えており、この
メモリ168には、潜在的に使用可能な複数のTNの、その
ディレクトリが含まれている。ただし、割当てられてい
ないTNは、そのTNに関連付けられている格納位置に格納
されているトランザクション・ナンバ値によって、割当
てられていない旨が明確に表示されている。従って、マ
イクロプロセッサ・システム103は、割当てられていな
いトランザクション・ナンバを識別し、そしてそれらの
うちの1つを、所与のトランザクション・アイデンティ
ティに関して他のプロセッサ・モジュールとの間の通信
を開始するのに使用するために選択することができる。
トランザクション・ナンバは、ローカル・マイクロプロ
セッサ(=プロセッサ・モジュール内のマイクロプロセ
ッサ)の制御の下に、局所的に割当てられ且つ更新され
るが、ネットワーク内の全域における大域的制御は、
「TN放棄命令」及び「TN割当命令」というプライマリ制
御メッセージを用いて行なわれる。同一のTNを要求する
可能性のある互いに競合する複数のプロセッサ・モジュ
ールの間にデッドロック状態が発生することは決してな
く、そのわけは、ネットワークが、より小さな番号を付
けられているプロセッサの方に優先権を与えるからであ
る。そのTNを得ようとしたプロセッサのうちで優先権を
得られなかった残りのプロセッサは「NAK/TNエラー」応
答を受取ることになり、この応答は、それらのプロセッ
サが別のTNを確保することを試みなければならないとい
うことを表示するものである。従って、それらのトラン
ザクション・アイデンティティの確保並びに照合を、シ
ステムの内部で及び局所的に行なう際の、完全なフレキ
シビリティが得られている。
更に注目して頂きたいことは、TNの反復使用は、「TN
0」である基本伝送モードと、TNがゼロより大きいマー
ジ・モードとの間の、シフトによって行なわれていると
いうことである。従ってこのシステムは、ただ1回のTN
のブロードカスト式の伝送によって、その動作の焦点だ
けでなくその動作の性質をも変えることができる。
大域的ステータスの変化を伝達するための更に別の、そ
して特に有用な方式は、第4図に関して既に説明した強
制パリティ・エラーの伝播である。この独特の表示方式
は、その他の伝送の間にはさみ込まれて伝送されると、
中止されたシステム資源が調査され、そして適切な動作
が実行されることになる。
プロセッサ対プロセッサ通信 プロセッサ通信として、2種類の特別の形態のものがあ
り、その一方は特定の1つの転送先プロセッサへ向けて
行なわれる通信であり、他方は、1つのクラスに属する
複数のプロセッサを転送先として行なわれる通信であ
る。これらの両タイプの伝送はいずれもDSWを利用して
おり、また、これらの伝送はいずれも、ノン・マージ・
モードのブロードカストによって実行される。
特に1つの発信元プロセッサと1つの転送先プロセッサ
との間での通信を行なう際には、DSWの中に転送先プロ
セッサ識別情報(destination processor identificati
on:DPID)を入れて使用する。第8図を参照しつつ説明
すると、このDPIDの値を用いて各々の受信プロセッサ・
モジュールのH.S.RAM26″の選択マップ部分がアドレス
されると、転送先として意図された特定のプロセッサ・
モジュールだけが、肯定的な応答を発生してそのメッセ
ージを受入れる。肯定応答が送信され、しかもそれが最
終的に成功裏に受信されたならば、両者のプロセッサ
は、要求されている将来の動作のいずれでも実行できる
状態になる。
ある1つのメッセージを、ある1つの制御プロセスに関
係する、1つのクラスに属する複数のプロセッサが受信
すべき場合には、DSW内のマップ・ニブルとマップ・ア
ドレスとによって、H.S.RAMの選択マップ部分の中の対
応するセクションが指定される。そして、全ての受信プ
ロセッサが夫々に肯定応答を送出し、それらの肯定応答
は、発信元プロセッサ・モジュールへ到達するための競
合を、この通信のための往復送受信が最終的に完了する
まで続けることになる。
全域ブロードカスト・モードのプロセッサ通信は、プラ
イマリ・データ・メッセージ、ステータス・メッセー
ジ、制御メッセージ、並びに応答メッセージの、各メッ
セージの通信に用いることができる。優先順位プロトコ
ルと、優先権を付与する機能を備えたネットワークと
の、両者の固有の能力によって、その種のメッセージを
その他の種類のメッセージのシーケンスの中に容易に挿
入できるようになっている。
ハッシング・モードのプロセッサ選択は、リレーショナ
ル・データベース・システムにおけるデータ処理のタス
クを実行する際には、他から飛び抜けて多用されるプロ
セッサ選択方式である。一次的データ(=バックアップ
用ではないメインのデータ)についての互いに素の(=
同一の要素を共有しない)複数のデータ部分集合と、バ
ックアップ用データについての互いに素の複数のデータ
部分集合とが、適当なアルゴリズムに従って、異った複
数の二次記憶装置の中に分配されている。1つのプロセ
ッサが一次的データの部分集合を分担し別の1つのプロ
セッサがバックアップ用データの部分集合を分担してい
るためにそれら2つのプロセッサが同時に応答した場合
には、一次的データについてのメッセージの方に優先権
が与えられる。この条件が補償されるようにするために
は、優先順位のより高いコマンド・コード(第12図参
照)を選択するようにすれば良い。データベースの信頼
性及び完全性の維持も、以上の様々なマルチプロセッサ
・モードを利用することによって達成され、その場合、
発生した個々の状況に対して最も有利なようにそれらの
モードが適用される。例を挙げるならば、一次的データ
のある部分集合を分担している二次記憶装置が故障した
場合には、特別のプロセッサ対プロセッサ通信を利用し
てそれを更新することができる。またエラーの訂正やデ
ータベースの一部分のロールバックは、これと同様の方
式で、或いはクラス・モードで動作させることによっ
て、行なうことができる。
トランザクション・ナンバの例 トランザクション・ナンバという概念により、マルチプ
ロセッサ・システムの制御のための新規にして強力なハ
ードウェア機構が得られている。本システムにおいて
は、トランザクション・ナンバは「大域的セマフォ」を
構成しており、また、ネットワークに対するメッセージ
の送受信と、複数のプロセッサに分配されたある1つの
所与のタスクのレディネス状態の確認との夫々におい
て、重要な役割りを果たしている。
トランザクション・ナンバ(TN)は、H.S.RAM26の中の1
6ビット・ワードとして物理的に実現されている。この
ワードは、様々な機能を果たせるように、第12図に示す
ようなフォーマットとされている。TNはH.S.RAMに格納
されるため、マイクロプロセッサ105とネットワーク・
インターフェイス120とのいずれからもアクセスするこ
とができる。
大域的セマフォ 「セマフォ」という用語は、コンピュータ科学関係の文
献において、互いに非同期的に実行される複数の処理の
制御に用いられる変数を指し示すための用語として、一
般的に使用されるようになっている。セマフォは、中断
されることのない1回の操作でそれを「テスト・アンド
・セット」することができるという性質をもっている。
一例として、「アンアサインド(UNASSIGNED:割当てが
なされていない状態)」と、「アサインド(ASSIGNED:
割当てがなされている状態)」との2つの状態を取り得
るセマフォ変数について考察することにする。この場合
には、テスト・アンド・セット動作は次のように定義さ
れる:もしセマフォが「アンアサインド」状態にあった
ならば、そのセマフォを「アサインド」状態にセットし
て成功を表示すること;反対にセマフォが既に「アサイ
ンド」状態にあったならば、そのセマフォを「アサイン
ド」状態のままにしておいて「失敗」を表示すること。
従って、このセマフォに拠れば、セマフォのテスト・ア
ンド・セットに成功した処理は自らのタスクを続行する
ことができ、一方、それに失敗した処理は、そのセマフ
ォが「アンアサインド」状態にリセットされるのを待つ
か、或いは、等価の別の資源を制御している別のセマフ
ォをテスト・アンド・セットすることを試みるかの、い
ずれかを余儀なくされる。容易に理解できることである
が、仮にテスト・アンド・セット動作が中断されるよう
なことがあり得るとするならば、2つの処理が同時に同
じ資源にアクセスしてしまう可能性が生じ、それによっ
て予測することのできない誤った結果が生じてしまうお
それがある。
いかなるマルチプロセッサ・システムも、システムの資
源へのアクセスを制御するために、セマフォと同一視す
ることのできる概念を、ハードウェアによって実際に具
体化している。しかしながら、従来のシステムは、1コ
ピーのセマフォ(=部数が1部のセマフォ、即ち1箇所
だけに設けられるセマフォ)しか維持することができな
い。そこで、複数コピーのセマフォ(=部数が複数のセ
マフォ、即ち複数箇所に設けられるセマフォ)を、各プ
ロセッサに1コピーづつ設けて維持するようにすれば、
単にテストするだけのセマフォのアクセスのために競合
が発生する回数を低減するという目的と、後に説明する
その他の用途に多価のセマフォ変数を利用するという目
的との、双方のために望ましい。問題は、セマフォの多
数のコピーに対し、完全に同期した操作を加えねばなら
ないということであり、もしこのことが守られなかった
ならば、それを強化するためにセマフォが設けられてい
るところの、資源へのアクセスの完全性が失われてしま
うことになる。
複数コピーのセマフォ、即ち「大域的」セマフォは、本
システムによって提供される。次に示す表は、大域的セ
マフォに関する動作を、単一セマフォ(1コピーのセマ
フォ)と対比したものである。
本実施例のシステムにおいては、「TN割当(ASSIGN T
N)」コマンドと「TN放棄(RELIN-QUISH TN)」コマン
ドとが、大域的セマフォとして利用されているトランザ
クション・ナンバに対するテスト・アンド・セット機能
とリセット機能とを夫々に担っている。第12図について
説明すると、「NAK/TNエラー」応答が失敗を表示し、一
方、「SACK/アサインド」応答が成功を表示する。
複数のノードを同期してクロッキングするために用いら
れている同期クロッキング方式や、全てのプロセッサへ
同時に最優先パケットを伝送するブロードカスト動作を
はじめとする、このネットワークの特質は、大域的セマ
フォという概念を実際に具体化する上での基礎を成すも
のである。この概念が実施されているために、このシス
テムは所望のシステム資源の複数のコピーの、その割付
け(アロケーション)、割付け解除(デアロケーショ
ン)、並びにアクセスの制御を、単にその資源にTNを付
与することによって行なえるようになっている。ここで
注目すべき重要なことは、分散された資源の制御を、単
一セマフォの場合と略々同程度の小規模なソフトウェア
・オーバヘッドで、実行できるようになっているという
ことである。このことは従来のシステムに対する非常な
進歩であり、なぜならば、従来のシステムは、分散型の
資源を管理できないか、或いは、複雑なソフトウェアに
よるプロトコルが必要とされ且つハードウェア的なネッ
クを生じてしまうかの、いずれかだからである。
レディネス状態 「ビズィ(BUSY)」、「ウェイティング(WAITIN
G)」、「標準完了(READY)」(送信と受信の夫々の準
備完了)、「終了(DONE)」、及び「非関与プロセッサ
(NON-PARTICIPANT)」から成る1組の値(第12図参
照)が、あるTNを付与されたタスクの、そのレディネス
状態を速やかに確認する能力を提供している。このシス
テムでは、以上の各状態の意味するところは、次の表が
示すようになっている。
「TN割当」コマンドを用いて、タスクへのTNの付与が動
的に行なわれるようになっている。成功表示(「TN割
当」メッセージに対する「SACK/アサインド」応答)
は、すべての動作可能なプロセッサが成功裏にTNのタス
クへの割当てを完了したことを示す。第11図に関して注
目すべきことは、「NAK/TNエラー」応答は高い優先順位
(小さな値)をもっているため、いずれかのプロセッサ
のネットワーク・インターフェイス120がTNの使用に関
する衝突を検出したならば、全てのプロセッサが失敗応
答を受取るということである。更に、ネットワーク上を
伝送されるこの失敗応答のOPID(発信元プロセッサID)
フィールドは、衝突のあったプロセッサのうちの第1番
目の(付された番号が最小の)プロセッサを表示するこ
とになる。この事実は、診断ルーチンに利用される。
各々のプロセッサは、ソフトウェアの働きにより、タス
クを処理し、そしてTNを「ビズィ」、「ウェイティン
グ」、「送信準備完了」、「受信準備完了」、「終了」
または「非関与プロセッサ」のうちの該当するものにセ
ットする。最初の「TN割当」を発令したプロセッサを含
めどのプロセッサも、任意の時刻に、「ステータス・リ
クエスト」コマンド或いは「マージ開始」コマンドを発
令することによって、タスク(TN)がどの程度に完了し
ているかという状態を容易に確認することができる。
「ステータス・リクエスト」は、多価の(=多種の値を
取り得る)大域的セマフォの1回のテストと同じことで
ある。第11図から分るように、優先順位が最も高いステ
ータス応答(SACK)メッセージがネットワーク上の競合
を勝ち抜き、その結果、最も低いレディネス状態が表示
されることになる。更に、そのOPIDフィールドは、その
最低のレディネス状態にあるプロセッサのうちの第1番
目の(付された番号が最小の)プロセッサのアイデンテ
ィティ(素性)を表示することになる。
この後者の特性を用いて、複数のプロセッサに分配され
たタスクの完了を「待機」するための、「ノン・ビズィ
(non-bysy)」の形態が定められている。最初に「TN割
当」を発令したプロセッサは初代の「ウェイト・マス
タ」であるとされる。このプロセッサは次に、任意の基
準に基づいて、他のいずれかのプロセッサを新たな「ウ
ェイト・マスタ」に指定する。この新たな「ウェイト・
マスタ」は、それ自身が所望のレディネス状態に到達し
たならば、「マージ開始」或いは「ステータス・リクエ
スト」のいずれかを発令することによって、全てのプロ
セッサに対する問合せを行なう。もし他のプロセッサの
全てが準備完了状態となっていたならば、SACKがその旨
を表示することになる。もし幾つかのプロセッサが尚、
準備完了状態にはなかったならば、SACK応答のOPIDフィ
ールドが、レディネス状態が最低のプロセッサのうちの
第1番目のものを表示することになる。「ウエイト・マ
スタ」はそのプロセッサに対し、新しい「ウエイト・マ
スタ」になるように命令する。結局最後には全てのプロ
セッサが準備完了状態となるのであるが、それまでの
間、このシステムは、少なくとも一つのプロセッサが準
備完了状態に到達したことを知らされる都度、ステータ
スの問合せを試みるだけである。従ってこのシステム
は、結果を出さずに資源を消費する周期的なステータス
問合せという負担を負わされることがない。更にこの方
式によれば、最後に完了する処理が終了した丁度その時
刻に、全てのプロセッサが仕事を完了したということを
システムが確実に知ることになる。当業者には理解され
るように、本発明の概念の範囲内でその他の多種多様な
「待機」の形態を採用することができる。
「マージ開始」コマンドは、1つの特殊な種類のテスト
・アンド・セット命令である。大域的セマフォのステー
タスが「送信準備完了」または「受信準備完了」である
場合には、現在トランザクション・ナンバ・レジスタ
(PTNR)206(第13図参照)が「マージ開始」メッセー
ジ(第3図参照)内のトランザクション・ナンバの値に
セットされ、これによってPTNRレジスタの設定が行なわ
れる。動作中のプロセッサのいずれかが、より低位のレ
ディネス状態にある場合には、PTNRの値は変更されな
い。
「マージ停止」コマンドは、以上の動作に対応するリセ
ット動作中であって、すべての動作中のプロセッサのPT
NRを無条件に「TN0」にリセットするものである。
後に説明するように、PTNRによって指定されている現在
大域的タスク(current global task)に関係するメッ
セージだけが、ネットワーク・インターフェイス120か
ら出力されるようになっている。従って、「マージ開
始」コマンド及び「マージ停止」コマンドは、複数のタ
スクの間でネットワークを時間多重化、即ち時分割(タ
イム・マルチプレクシング)することのできる能力を提
供しており、従ってそれら複数のタスクは、任意に中
止、及び/または再開することができるようになってい
る。
本発明の細部の特徴で重要なものに、ネットワーク・イ
ンターフェイス120が、ネットワークからのコマンドに
よるTNのアクセスと、マイクロプロセッサ105によるTN
のアクセスとが、決して同時に行なわれないようにして
いるということがある。本実施例においては、これは、
受信状態制御回路260から読出し/書込み状態制御回路2
70へ送られている信号によって達成されており、この信
号は、TNを変更する可能性のあるネットワークからのコ
マンドの処理が行なわれているときには必ず「肯定」状
態とされている。この信号が「肯定」状態にある短い時
間の間は、プロセッサは、H.S.RAMへのアクセスを、制
御回路270によって禁止されている。当業者には理解さ
れるように、本発明の範囲内で、以上の構成の代りにな
る多種多様な代替構成を採用することができる。
受信制御 TNの更に別の機能に、入力メッセージの制御がある。
「TN割当」コマンドを用いることによって、所与のタス
クに対して、複数のプロセッサにおける入力メッセージ
・ストリームを関連付けることができる。所与のプロセ
ッサの中の当該タスクに割当てられているTNが「受信準
備完了」にセットされているときには、そのTNは更に、
そのプロセッサが受入れる用意のあるパケットの個数を
表わすカウント値を併せて表示している(第12図)。ネ
ットワーク・インターフェイス120は、個々のパケット
を成功裏に受信するたび毎にこのカウント値をデクリメ
ントし(このデクリメントはTNのワードから算術的に
「1」を減じることによって行なわれる)、このデクリ
メントはこのカウント値がゼロに達するまで続けられ
る。カウント値がゼロに達したときには「NACK/オーバ
ラン」応答が発生され、それによって、パケットを送出
しているプロセッサに対し、このNACK応答を発している
プロセッサがより多くの入力パケットを受入れる用意が
できるまで待機しなければならないことが知らされる。
更にまた、第18図から分るように、このときにはPTNRの
「TN0」へのリセットも併せて行なわれる。
以上の動作メカニズムにより、ネットワークを流通する
パケットの流れの制御を直截的に行なえるようになって
いる。またそれによって、1つのプロセッサに未処理の
パケットが多量に詰め込まれることがないように、そし
てそのプロセッサがシステムにとってのネックになって
しまうことがないように、保証されている。
送信制御 第21A図について説明すると、同図から分るように、H.
S.RAMに格納されている各メッセージは、新TNベクタ
(=ネクスト・メッセージ・ベクタ)の値を収容するた
めのフィールドを含んでいる。メッセージを送信してそ
れに対する応答を成功裏に受信したならば、この送信し
たばかりのメッセージに含まれていた新TNベクタが、H.
S.RAMの中の現在トランザクション・ナンバを格納する
ためのアドレスへ(PTNRから転送されて)格納される。
従って、TNは個々のメッセージが送出されるたび毎に更
新され、また、メッセージの伝送に成功した際にはTNが
自動的に所望の状態にセットされるようにすることが可
能となっている。
第12図について説明すると、「送信準備完了」のTNのフ
ォーマットは、14ビットのH.S.RAM内のアドレスを含ん
でおり、このアドレスは、所与のタスク(TN)に関して
次に出力すべきパケットを指し示すのに用いられてい
る。従って、H.S.RAMの中に格納されているTNは、種々
のタスクに関するメッセージの、先入先出式(FIFO)待
ち行列の、その先頭を指し示すヘッド・ポインタとして
の機能も果たしている。従って、所与の1つのタスク
(TN)に関する限りにおいては、各プロセッサは、新TN
ベクタのチェーンによって定められた順序で、パケット
の送出を試みることになる。
先に説明した、複数のTN(タスク)の間でネットワーク
を高速で多重化(マルチプレクシング)するための機構
と組合わせることによって、多くのプロセッサの間に分
配された何組もの複雑な組合せのタスクを、極めて小規
模なソフトウェア・オーバヘッドで管理できるようにな
ることは明らかである。ネットワークと、インターフェ
イスと、プロセッサとの共同動作によって提供されてい
る構成は、そのコピーを数百個のプロセッサの間に分配
することができ、更には数千個のプロセッサの間にすら
分配することのできる資源及びタスクに対して、資源の
割付けと割付け解除、タスクの中止と再開、それにその
他の制御を行なうための好適な構成である。
DSW(転送先選択ワード)の例 転送先選択ワード(第3図)は、DSWロジック190(第13
図)及びH.S.RAM26(第8図)のDSWセクションと協働す
ることによって、以下のことを可能とする複数のモード
を提供するものである。即ち、それらのモードとは、各
々の受信プロセッサのネットワーク・インターフェイス
120が、受信中のメッセージは当該ネットワーク・イン
ターフェイスに組合わされているマイクロプロセッサ10
5によって処理されることを意図したものか否かの判定
を、迅速に下せるようにするための複数のモードであ
る。既に説明したように、受信メッセージの中に含まれ
ている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組得
られている。ハッシュト・モード(hashed mode)にお
いては、二次記憶装置に格納されているレコードのため
のキーが、ハッシング・アルゴリズムに従って設定さ
れ、それによって0から4095までの間の「パケット」の
割当てが行なわれる。所与の「パケット」に収容されて
いるレコードを担当しているプロセッサは、そのアドレ
スが当該パケットのパケット・ナンバに対応しているマ
ップ・ビットの中に「1」のビットがセットされてい
る。その他のビットは「0」にされている。複数個のマ
ップ・ビットをセットするだけで、所与のプロセッサに
複数のパケットを担当させることができる。
この実施例の構成においては、容易に理解されるよう
に、マップ・ビットのセッティングを以下の方式で行な
えるようになっている。即ち、その方式とは、所与の1
つのマップ選択ビットについては、各ビット・アドレス
がただ一つのプロセッサにおいてのみ「1」にセットさ
れており、しかも、いかなるビット・アドレスも必ずい
ずれかのプロセッサにおいて「1」にセットされている
という方式である。この方式を採用したことの直接の結
果として、各々のプロセッサ(AMP)が、データベース
のレコードの互いに別個で互いに素の部分集合を分担
し、しかも、システムの全体としては、レコードの全て
を含む完全な集合が存在するようになっている。
以上の具体例はリレーショナル・データベースの課題を
例に引いて説明されているが、当業者には容易に理解さ
れるように、課題の互いに素の部分集合をマルチプロセ
ッサ復合体の中の個々のプロセッサに分担させることが
できる課題領域であればどのような課題領域にでも、こ
れと同じ方式を適用することができる。
更にもう1つ注目に値することは、完全なマップを2つ
備えることによって、以上に説明した方式を、一方のマ
ップによれば所与のあるプロセッサに割当てられている
パケットを、他方のマップにおいてはそれとは異なった
プロセッサに割当て得るように、構成することができる
ということである。ここで、一方のマップを「一次的」
なものとし、他方のマップを「バックアップ用」のもの
とすれば、直接の帰結として、所与のあるプロセッサ上
では一次的なものであるレコードが、別のプロセッサ上
では確実にバックアップされるようにすることができ
る。更に、所与の1つのプロセッサをバックアップする
プロセッサの個数については、いかなる制約もない。
当業者には理解されるように、本発明の範囲内で実現で
きる互いに別個のマップの数は3以上にすることもで
き、また、パケットの数も任意の個数とすることができ
る。
クラス 先に説明したプロセッサ・アドレスとハッシュ・マップ
のいずれの場合にも、全てのプロセッサについてその所
与の1つのビット・アドレスを調べれば、そのビット・
アドレスが1つのプロセッサにおいてだけ「1」にセッ
トされており、その他の全てのプロセッサ内の対応する
ビット・アドレスは「0」にセットされていることが分
かる。しかしながら、複数のプロセッサ内において対応
するビット・アドレスが「1」にセットされているよう
な方式も可能であるし、有用でもある。この方式は「ク
ラス・アドレス」モードといわれる方式である。
クラス・アドレスは、そのコピーが複数のプロセッサ内
に存在する処理手順ないし機能の名称と考えることがで
きる。当該する処理手順ないし機能を備えているプロセ
ッサは、いずれも対応するビット・アドレスに「1」ビ
ットがセットされている。
クラス・アドレスへ宛ててメッセージを送出するために
は、DSW(第3図)内の該当するクラス・アドレスがセ
ットされる。H.S.RAMの中の該当する位置のビットが
「1」にセットされていることによって当該クラスに
「所属」していることが示されている全ての動作可能な
プロセッサは、その送出されたメッセージ・パケットに
対して「ACK」で応答することになる。当該クラスに所
属していないプロセッサはNAPで応答する。
従ってDSWは、マルチプロセッサ・システム内のメッセ
ージの流れを制御するのに必要な経路指定計算がハード
ウェアによって行なわれるようにしている。また、プロ
グラムを、システムの様々な機能がいずれのプロセッサ
の中に備えられているのかという知識とは、無関係なも
のとすることができる。更には、マップはH.S.RAMの一
部であり、従ってマイクロプロセッサ105からアクセス
できるため、ある機能を1つのプロセッサから別のプロ
セッサへ動的に再配置することが可能である。
マージの例 複雑なマルチプロセッサ・システムにおいては、一連の
相互に関連した複数の動作の実行が、タスクによって必
要とされることがある。これは特に、複雑な問合せを取
扱うリレーショナル・データベース・システムについて
言えることであり、そのようなデータベース・システム
においては、データをアセンブルしてファイルを形成
し、しかもアセンブルされた後には特定の方式で複数の
プロセッサへ再分配できるようなファイルを形成するた
めに、複数の二次記憶装置を参照することが必要とされ
ることがある。以下に示す例は、第1、第8、及び13図
のシステムが、TNと、DSWと、それに大域的セマフォと
に対して操作を加えることによって、そのような機能を
いかに容易に実行できるようになっているかを、手短に
説明するものである。
まず第1に、マージ・コーディネータ(典型的な例とし
てはマージ・コーディネータはIFP14ないし16である
が、必ずしもそれに限られるものではない)が、ある1
つのファイルをマージして形成することになる(即ちデ
ータ・ソースとして機能する)1つのクラスに属する複
数のAMPを、(AMP18〜23の中から)識別する。割当てが
なされていない1つのTNが選択され、そしてデータ・ソ
ース機能を識別するために割当てられる。このファイル
を別の1組のAMP(それらは元のデータ・ソースのプロ
セッサであってもよい)へ分配ないしハッシングするす
るという第2の主要機能に対しては、そのときまで割当
てをされていなかった別のTNが割当てられる。
このマージ機能のためのコーディネータは、第1のTNに
関係するファイルの、マージングの作業を行なうことに
なるクラスに属する複数のプロセッサを、DSWを用いて
識別する。このマージングの作業に関する関与プロセッ
サは、そのTNのステータスのレベルを上昇させて「ビズ
ィ」または「ウェイティング」ステータスとし、その後
に、マージ動作の制御が、マージ動作に関与している関
与プロセッサのうちの1つへ渡される(即ちコーディネ
ータの仕事が委任される)。以上の複数の関与プロセッ
サ(それら以外の全てのプロセッサ・モジュールはその
トランザクション・ナンバに関しては非関与プロセッサ
である)の各々は、このように規定されたマージのタス
クに関するメッセージ・パケットを受信してそれに対す
る肯定応答を送出した後には、そのプロセッサ自身のサ
ブタスクの実行を、そのステータス・レベルを適宜更新
しながら進行させて行く。そして、マージ・コーディネ
ータの仕事を委任されているプロセッサがそれ自身のタ
スクを終了したならば、そのプロセッサは、その他の全
ての関与プロセッサに対して、当該トランザクション・
ナンバに関するステータスを知らせるよう、ステータス
・リクエストを送出し、それによって、関与プロセッサ
のうちでレディネス状態が最低のプロセッサを表示して
いる応答を受取ることができる。マージ動作の制御は、
このレディネス状態が最低のプロセッサへ渡され、この
後には、このプロセッサが、自身の作業が終了した際に
その他全ての関与プロセッサをポーリングすることがで
きるようになる。以上のプロセスは、必要とあらば、関
与プロセッサの全てが準備完了状態となっていることを
示す応答が受信されるまで、続けさせることができる。
そのような応答が受信された時点においてコーディネー
タとして働いていたプロセッサは、続いて、DSWを利用
して当該クラスに属している関与プロセッサを識別しつ
つ、H.S.RAM26へのメッセージの転送を開始し、このメ
ッセージの転送に伴なって、ステータス・レベルが該当
する出力メッセージ・ベクタ情報により「送信準備完
了」へと更新される。これに続いて実行されるポーリン
グの結果、全ての関与AMPが送信準備完了状態にあるこ
とが判明したならば、コーディネータは、その特定のTN
についてのマージ開始コマンドを発令する。
マージ動作が実行されている間に、処理済のデータ・パ
ケットは、結果をリレーショナル・データベースに従っ
て二次記憶装置へ分配するための1つのクラスに属する
複数のプロセッサ・モジュールへ宛てて、転送されるこ
とになる。それらの複数のプロセッサが、このとき発信
元となっている複数のプロセッサと同じものであると否
とにかかわらず、この分配に関与するクラスに所属する
関与プロセッサ(即ち上記受信プロセッサ)は、DSWに
よって識別され、またそのトランザクションは新たなTN
によって識別される。この新しいトランザクションに関
わる関与プロセッサの全てに対して、この新たなTNが割
当てられることになり、また、それらの関与プロセッサ
は、それらのレディネス状態のレベルを上昇させて「受
信準備完了」とすることになる。このDSWは、クラス指
定ではなく、ハッシング選択指定のものとすることもで
きるが、いずれの場合においても、マージが実行されて
いる間は、関与プロセッサの全てが、ブロードカストさ
れるメッセージを受信できる状態におかれている。「マ
ージ開始」が発令されたならば、送出動作に関与すべき
送出関与プロセッサの各々から複数のメッセージ・パケ
ットが、しかも夫々のプロセッサから互いに同時に、ネ
ットワーク上へ送出され、それらのメッセージ・パケッ
トに対しては動的に(=伝送中に)優先権の判定が行な
われる。各々の送出関与プロセッサが、それ自身の1組
のメッセージを送信完了したならば、それらの各々の送
出関与プロセッサは、一定の形に定められている「エン
ド・オブ・ファイル(End of File)」メッセージの送
信を試み、この「エンド・オブ・ファイル」メッセージ
は種々のデータメッセージより優先順位が低い。関与プ
ロセッサの全てが「エンド・オブ・ファイル」メッセー
ジを送出するようになるまでは、この「エンド・オブ・
ファイル」メッセージはデータ・メッセージとの競合に
敗退し続け、そして全ての関与プロセッサから送出され
るようになったならば、ようやく、「エンド・オブ・フ
ァイル」メッセージの転送が達成される。この転送が達
成されると、コーディネータは「エンド・オブ・マージ
(End of Merge)」メッセージを送出し、また、それに
続いて「TN放棄」を実行することができ、この「TN放
棄」によってこのトランザクションは終了する。オーバ
ラン状態、エラー状態、ないしはロック状態に対して
は、マージ即ち送信を始めからやり直すことによって適
切に対処することができる。
ある1つのTNに関するマージ動作が終了したならば、こ
のシステムは、TNのシーケンスの中の、続く次のTNへと
シフトすることができる。この新たなTNに該当する複数
のメッセージ・パケットの待ち行列を、各々のプロセッ
サ・モジュールが作り終ったならば、それらのプロセッ
サ・モジュールは、マージ動作を実行させるためのネッ
トワークに対する働きかけを再び開始することが可能と
なる。個別に実行されるプロセッサ内マージ動作に加
え、更に以上のようにネットワーク内マージ動作が効率
的に利用されるために、このシステムは、従来のシステ
ムに対して著しく優れた、極めて大規模なソート/マー
ジ・タスクを実行することができるようになっている。
本発明を採用した場合に、システム内のある1つのファ
イルをソートするために必要な時間は、レコードの個数
をn個、プロセッサの個数をm個とするとき、以下の式
で表わすことができる。
この式において、C2は定数であり、この実施例に関して
は、100バイト・メッセージが用いられている場合には
約10マイクロ秒と見積られ、またC1は、典型的な16ビッ
ト・マイクロプロセッサが使用されている場合に、約1
ミリ秒と見積られる定数である。様々に組み合わせたn
とmとの組み合せに対する、概略のソート/マージ時間
が、秒を単位として次の表に示されており、それらの値
は100バイト・レコードが用いられている場合の値であ
る。
以上の表に示されている具体例の数字を従来のシステム
と比較して評価するのは容易なことではない。その理由
は、相互に関連を有する2種類のソート処理シーケンス
(プロセッサによるソートとネットワークによるソー
ト)が関与しているからであり、また、そもそも、かか
る能力を有するシステムが殆んど存在していないからで
ある。更に本システムではその長さが長大でしかも可変
なメッセージがソート及びマージされるのに対して、一
般的な多くのソート能力は、数バイトないし数ワードに
ついて能力評価がなされている。
更に別の重要な要因として、本システムはマルチプロセ
ッサそのものであって、ソート/マージ処理の専用シス
テムではないということがある。本システムは、局所的
にも大域的にも、マージ動作とノン・マージ動作との間
を完全なフレキシビリティをもってシフトすることがで
き、しかもこのシフトを、ソフトウェア的な不利益を生
じることなく、また、システム効率に損失を生じさせる
こともなく、行なえるようになっている。
タスク・リクエスト/タスク応答のサイクルの例 第1図に関し、ネットワーク50に接続されているプロセ
ッサ14、16、ないし18〜23はいずれも、他の1個または
複数個のプロセッサにタスクを実行させるためのタスク
・リクエストを、メッセージ・パケットの形態の然るべ
きフォーマットで形成する機能を有している。リレーシ
ョナル・データベース・システムにおいては、これらの
タスクの殆んどはホスト・コンピュータ10、12をその発
生源とし、インターフェイス・プロセッサ14、16を介し
てシステム内へ入力されるものであるが、ただし、この
ことは必要条件ではない。然るべきフォーマットで形成
されたこのメッセージ・パケットは、他のプロセッサか
らのパケットとの間で争われるネットワーク上の競合の
中へ投入され、そして、他のタスクの優先順位のレベル
並びにこのプロセッサにおける動作状態のレベル次第
で、時には優先権を得ることになる。タスクは、1つの
メッセージ・パケットによってその内容を指定されてい
ることもあり、また、複数の継続パケットによって指定
されていることもあるが、後に続く継続パケットは、デ
ータ・メッセージのグループ(第11図参照)の中では比
較的高い優先順位レベルを割当てられ、それによって、
後に続く部分を受信するに際しての遅延ができるだけ短
くなるようにしている。
メッセージ・パケットには、トランザクション・アイデ
ンティティ(=トランザクション識別情報)が、トラン
ザクション・ナンバの形で含まれている。このトランザ
クション・ナンバは、処理結果を引き出す上での方式に
関するモードであるノン・マージ・モード即ちディフォ
ルト・モード(「TN0」)と、マージ・モード(「TN0」
以外の全てのTN)とを、選択に応じて区別するという性
質を本来的に備えている。更に、メッセージ・パケット
にはDSWを含まれている。このDSWは、実質的に、転送先
プロセッサとマルチプロセッサ動作のモードとを指定す
るものであり、この指定は、特定のプロセッサの指定、
複数のプロセッサから成るクラスの指定、或いはハッシ
ングの指定によって行なわれ、本実施例においては、ハ
ッシングは、リレーショナル・データベースの一部分へ
のハッシングである。ネットワーク50を介してターゲッ
ト・プロセッサ(指定転送先プロセッサ)へブロードカ
ストされるメッセージ・パケットは、そのプロセッサに
おいて局所的に受入れられて(=そのプロセッサ自身へ
の受入れが適当であるとの判断がそのプロセッサ自身に
よってなされて)、そして、受信した旨の認証が肯定応
答(ACK)によって行なわれる。プロセッサ14、16及び1
8〜23の全てが、EOM(エンド・オブ・メッセージ)のあ
とに続いてネットワーク50へ互いに同時に応答を送出す
るが、しかしながら、指定転送先プロセッサから送出さ
れたACKが優先権を獲得し、そして発信元プロセッサに
受信されることになる。
続いて、指定転送先プロセッサは、送られてきたメッセ
ージが、局所H.S.RAM(=個々のプロセッサ・モジュー
ルに備えられているH.S.RAM)とインターフェイス120と
(第8図及び第13図)を介して局所マイクロプロセッサ
に転送されるときに、このリクエスト・パケット(=送
られてきたメッセージ)が要求している処理を非同期的
に(=当該プロセッサ・モジュール以外の要素とは同期
せずに)実行する。リレーショナル・データベースに関
するタスクが実行される場合には、DSWは互いに素のデ
ータ部分重合(この部分集合はその部分集合のためのデ
ィスク・ドライブに格納されている)のある部分を指定
するのが通常の例であるが、ただし、時には、格納され
ているデータベースを参照することを必要としないタス
クが実行されることもある。特定の演算やアルゴリズム
を個々のプロセッサによって実行するようにしても良
く、また指定転送先プロセッサとして複数のプロセッサ
が指定された場合には、それらのプロセッサの各々が、
タスク全体の互いに素の部分集合についての仕事を実行
するようにすることができる。可変長のメッセージ・パ
ケットは、リクエスト・メッセージによって、実行すべ
き動作とデータベース・システム内の参照すべきファイ
ルとの指定が行なえるように構成されている。ここで注
意すべきことは、所与の1つのタスクに関するメッセー
ジ・パケットが大量に存在している場合もあるというこ
とであり、その場合には、ネットワークの内部で行なわ
れるソートのための弁別基準となる適当な特徴を付与す
るために、任意採用可能なキー・フィールド(第3図)
が重要になってくるということである。
応答を行なおうとしている各プロセッサによって発生さ
れるタスク応答パケットは、マイクロプロセッサから、
第1図の制御ロジック28を介して局所H.S.RAM26へと転
送され、そこでは、タスク応答パケットは、第21A図の
送出メッセージ・フォーマットの形で格納される。タス
ク応答が、継続パケットの使用を必要とするものである
場合には、そのような継続パケットは先頭パケットの後
に続いて、ただし継続のためのより高い優先順位を与え
られた上で、送出される。システムがマージ・モードで
動作しており、且つ、各々のプロセッサがある1つのト
ランザクション・ナンバに関する多数のパケットを発生
している場合には、それらのパケットを先ず局所的に
(=個々のプロセッサの内部において)ソート順でチェ
ーンし、その後に、ネットワーク50上でマージを行なう
ことによって大域的なソート順に並べるようにすること
ができる。
タスク結果パケットは、プロセッサ14、16及び18〜23か
らネットワーク50へ、同時送出パケット群を成すように
送出され、そして1つの最優先メッセージ・パケット
が、所定のネットワーク遅延ののちに、全てのプロセッ
サへブロードカストにより送り返される。それらのタス
ク結果パケットの転送は、そのタスクの性質に応じて、
最初にリクエスト・メッセージを発信した発信元プロセ
ッサをその転送先として行なわれることもあり、また、
1個ないし複数個の他のプロセッサを転送先として行な
われることもあり、更には、既に説明した複数のマルチ
プロセッサ・モードのうちのいずれのモードで転送を行
なうこともできる。リレーショナル・データベース・シ
ステムにおいて最も一般的に行なわれる事例は、ハッシ
ングを利用して転送先の選択を行ないつつ、マージと再
分配とを同時に実行するというものである。従ってその
ことからも理解されるように、「タスク・リクエスト/
タスク応答」のサイクルの中では、各々のプロセッサ
が、発信元プロセッサとしても、コーディネータ・プロ
セッサとしても、また、応答側プロセッサとしても動作
することができ、更には、それらの3つの全てとして動
作することもできるようになっている。多くの「タスク
・リクエスト/タスク応答」サイクルが関与してくるた
め、プロセッサ14、16及び18〜23、並びにネットワーク
50は、それらのタスクの間で多重化(マルチプレクシン
グ)されるが、ただしこの多重化は、時間を基準にする
と共に更に優先順位をも基準にして行なわれる。
複雑な問合せの例 リレーショナル・データベース・システムにおいては、
ホスト・コンピュータ10、12を利用して、また更に、タ
プル(tuples)と一次的データ及びバックアップ用デー
タの互いに素のデータ部分集合とを規定するアルゴリズ
ムに従ってリレーショナル・データベースを複数のディ
スク・ドライブ38〜43の間に分配するようにした分配法
を利用して、複雑な問合せがホスト・コンピュータ10ま
たは12から、IFP14または16を介してシステムへ入力さ
る。この入力された問合せのメッセージ・パケットは、
先ず最初にIFP14または16によって詳細に解析され、こ
の解析は、ホスト・コンピュータからのメッセージを、
AMP18〜23に対してタスクの実行を要求するための複数
のタスク・リクエストへと変換するために行なわれるも
のである。IFP14ないし16は、その動作を開始するに際
して、1個ないし複数個の特定のAMPから情報を引き出
すためのリクエスト・パケットを送出し、それによっ
て、ホスト・コンピュータからのメッセージの詳細な解
析に必要なシステム内データを得ることが必要な場合も
ある。ホスト・コンピュータからのリクエストの処理に
必要なデータを得たならば、IFP14ないし16は、AMP18〜
23との間で何回かの「タスク・リクエスト/タスク応
答」サイクルを実行することができ、また、データを実
際に処理して、ホスト・コンピュータからのリクエスト
を満足させることができる。以上の処理シーケンスにお
いては、上に挙げたタスク・リクエストとタスク応答と
から成るサイクルが用いられ、また、そのサイクルは任
意の長さに亙って継続することができる。続いて、IFP1
4ないし16は、IFPインターフェイスを介してホスト・コ
ンピュータと通信する。ホスト・コンピュータへのこの
応答は、単に、ホスト・コンピュータ10または12が次の
複雑な問合せを発生するために必要とするデータを提供
するためのものであることもある。
(独立型マルチプロセッサシステム) 第1図に関連して先に説明した本発明に係るシステムの
基本実施例は、ホスト・コンピュータ並びに現在使用さ
れているホスト・コンピュータ用のソフトウェア・パッ
ケージと組み合わせて使用することのできる、後置プロ
セッサ(バックエンド・プロセッサ)の例を示すもので
ある。しかしながら、既に言及したように、本発明は広
範な種々の処理用途において、また特に、大容量の中央
処理能力を必要とすることなく処理タスクを容易に細分
及び分配できるような種類の処理用途において、格別の
利点を有するものである。第20図は、本発明に係る独立
型(スタンド・アローン型)マルチプロセッサ・システ
ムの簡単な構成の一実施例を図示している。第20図にお
いて、複数のプロセッサ300はいずれもインターフェイ
ス302を介して能動ロジック・ネットワーク304へ接続さ
れており、このネットワークは既に説明したものと同様
のネットワークである。データの完全性を強化するため
に、冗長性を有する能動ロジック・ネットワーク304を
採用するようにしても良い。この実施例においても、プ
ロセッサ300には16ビット・マイクロプロセッサ・チッ
プを使用することができ、また、充分な容量のメインRA
Mメモリを組込むことができるようになっている。この
図には9つのプロセッサ300のみが示されており、ま
た、それらのプロセッサの各々には異なった種類の周辺
機器が接続されているが、これは、このシステムの多用
途性を示すためである。実際には、このシステムは更に
多くのプロセッサをネットワークに備えることによりは
るかに効率的になるのであるが、しかしながら、比較的
少数のプロセッサしか備えていない場合であっても、シ
ステムの信頼性とデータの完全性と関して格別の利点が
得られるものである。
この実施例においては、複数のプロセッサ300を不便の
ない充分な距離をとって互いから物理的に離隔させるこ
とができ、それは、データ転送速度が先の実施例につい
て述べた速度である場合にノード間の最大間隔が28フィ
ート(5.5m)にもなるため、大規模なアレイを成す複数
のプロセッサを、建物の1つのフロア、ないしは隣接す
る幾つかのフロアの上に、むやみに込み合うことのない
ように設置して、利用することができるからである。
独立型システムでは、先に説明した後置プロセッサの実
施例の場合と比較して、周辺機器コントローラ並びに周
辺機器それ自体に、はるかに多くの種類のものが用いら
れる。ここでは便宜的に、個々の入出力デバイスは、夫
々が別個のプロセッサに接続されているものとする。例
えば、キーボード312とディスプレイ314とを備えた入出
力端末装置310は、端末コントローラ320を介して、同端
末装置310のためのプロセッサ300に接続されている。た
だし、比較的動作速度が遅い端末装置の場合には、かな
りの規模の端末装置ネットワークを1個の16ビット・プ
ロセッサで制御することも不可能ではない。この図示の
入出力端末装置は、手動操作キーボード等の手動操作入
出力処理装置がどのようにしてシステムに接続されるの
かについての一例を示しているにすぎない。プロセッサ
300の処理能力を利用して端末装置310をワードプロセッ
サとして構成することもでき、そしてこのワードプロセ
ッサが、ネットワーク304を介してデータベースや他の
ワードプロセッサ、或いは種々の出力装置と通信できる
ようにすることもできる。例えばリジッド・ディスク・
ドライブ322等の大容量二次記憶装置を、ディスクコン
トローラ324を介して、その記憶装置のためのプロセッ
サに接続することができる。また、容易に理解されるよ
うに、大規模システムには、より多数のディスク・ドラ
イブを用いたり、或いは異なった形態の大容量記憶装置
を用いるようにすれば良い。プリンタ326並びにプロッ
タ330等の出力装置は、夫々、プリンタ・コントローラ3
28とプロッタ・コントローラ332とを介して、それらの
出力装置のためのプロセッサ300にインターフェイスし
ている。不図示の他のシステムとの間の対話は通信コン
トローラ338を介して、そして通信システム336を経由し
て行なわれ、通信システム336としては例えば、テレタ
イプ・ネットワーク(TTY)や、更に大規模なネットワ
ークのうちの1つ(例えばエサーネット(Ethernet))
等が用いられる。プロセッサ300のうちの幾つかが、周
辺装置を接続することなく単にネットワーク304に接続
されることもある(不図示)。
双方向のデータ転送が行なわれる可能性があるのは、テ
ープ・ドライブ(テープ駆動機構)340及びテープ・ド
ライブ・コントローラ342が用いられている場合、それ
に、コントローラ346が接続されたフロッピ・ディスク
・ドライブ344が用いられている場合等である。一般に
テープ・ドライブは、オン・ライン接続して使用する際
の大きな記憶容量を提供するばかりでなく、ディスク・
ドライブのバックアップにも利用可能である。このバッ
クアップの目的には、密閉式リジッド・ディスク装置
に、ある時点までに格納されたデータを保存するために
テープが用いられる。このようなバックアップ動作は、
通常、低負荷の時間帯(例えば夜間または週末等)に行
なわれるため、ネットワーク304を用いて長い「ストリ
ーミング」転送を行なうことができる。更には、システ
ムの初期設定の際のプログラムの入力のためには、フロ
ッピ・ディスク・ドライブ344が使用されることがある
ため、ネットワークの使用時間のうち幾分かをこの「ス
トリーミング」のモードにあてて、かなりの量のデータ
を転送することもできる。光学文字読取器350は、更に
別の入力データのソースとして機能するものであり、そ
の入力データは、そのコントローラ352を介してシステ
ムへ入力される。尚、単に「他の装置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の技術を利用してプ
ロセッサのコストと周辺装置のコストとを含めた全体の
コストに対して相対的に低コストで、信頼性の高い回路
を組込むことができるようになっているのである。
ソフトウェアに時間と経費とを費やさねばならないの
は、データベース管理等の問題領域のタスクに関係する
ような、重要な部分についてだけに限定さている。例を
挙げれば、本システムの構成に拠れば、データベースの
完全性を維持するために必要な諸機能の全てを、メッセ
ージ・パケットの構成並びにネットワークの構成に基づ
く範囲内で実行し得るようになっている。ポーリング、
ステータスの変更、並びにデータの復旧等の機能はシス
テムの内部において実行される。
更に別の重要な考慮すべき点として、本発明のネットワ
ークは、その高速データ転送の性能が、従来のオーミッ
クな配線バスに充分匹敵する程に優れたものであるとい
うことがある。複数のメッセージ・パケットが互いに同
時に送出され、それらが伝送されている間に優先権の判
定がなされるため、従来の方式においてステータス・リ
クエストとそれに対する応答の送出、並びに優先権の判
定に伴っていた遅延が、回避されているからである。更
には、プロセッサの個数が莫大な個数であってもノード
間の接続構造の長さを所定の長さ以下に抑えることが可
能であるため、バス内の伝播時間がデータ転送速度に対
する制約となることがない。
本システムは、マイクロプロセッサ及びネットワークの
使用効率という点において最適状態に迫るものであるこ
とが判明している。これらの点に関して重要なことは、
全てのマイクロプロセッサがビズィ状態に保たれるよう
にすることと、ネットワークが一杯に有効利用されるよ
うにすることである。「IFP−ネットワーク−AMP」の構
成は、事実上それらのことを可能にしており、その理由
は、自らが送出したメッセージ・パケットが優先権を獲
得するための競合において敗退したマイクロプロセッサ
は、なるたけ早い適当な時刻に再度送信を試みるだけで
良く、そのためバスのデューティ・サイクルが高いレベ
ルに維持されるからである。高速ランダム・アクセス・
メモリもまたこの効果を得るために寄与しており、なぜ
ならば、高速ランダム・アクセス・メモリは処理すべき
入力メッセージ・パケットと送出すべき出力メッセージ
・パケットとの両方をその内部に集積しているため、各
々のプロセッサが作業のバックログを常時入手できると
共に、ネットワークもまたメッセージパケットのバック
ログを入手できるようになっているからである。全ての
入力バッファが満杯になったならば、プロセッサがその
事実を知らせる表示をネットワーク上へ送出する。ま
た、IFPに用いられている、ホスト・コンピュータから
のメッセージを受取るための入力バッファが満杯になっ
たならば、そのことを知らせる表示がチャネル上に送出
される。従って本システムは、内部的にもまた外部的に
も自己調歩式となっている。
本システムは、以上に説明したようなアーキテクチャと
メッセージの構成とを利用することによって、汎用マル
チプロセッサ・システムに必要とされるその他の多くの
機能をも実行できるように構成されている。例えば従来
技術においては、大域的資源のステータスの変化を評価
及び監視するための方式に関して非常な注意が払われて
いた。これに対して本発明に拠れば、パリティ・エラー
の発生とプロセッサの使用可能性の変化という事実との
両方を伝達するための手段として、パリティ・チャネル
のみが備えられ使用されている。1個ないし複数個のプ
ロセッサがシャット・ダウンした場合には、そのシャッ
ト・ダウンが、その発生と略々同時にシステム中に伝達
され、それによって割込みシーケンスの実行を開始する
ことができるようになっている。複数の応答を優先順位
に従ってソートするという方式が採用されているため、
大域的な能力の変化が生じた場合にその変化がどのよう
な性質のものであるかを、従来と比較してはるかに小規
模の回路とシステム・オーバヘッドとによって特定する
ことが可能となっている。
大域的セマフォと能動ロジック・ネットワークとを採用
したことによって達成されている、1回の問合せにより
優先権の判定を経て得られる大域的応答は、非常に深い
システム的な意味を持っている。この方式により問合せ
をブロードカストすることによって曖昧性のない一義的
な大域的結果が得られるため、複雑なソフトウェア並び
にオーバヘッドが不要とされている。分散型更新等のス
テータス設定動作は、多数の同時動作が複数の異なった
プロセッサで実行されている際にも実行可能となってい
る。
本システムは更に、以上のようなネットワークとトラン
ザクション・ナンバと転送先選択ワードとを用いること
によって、マルチプロセッサ・システムにおける仕事の
分配並びに処理結果の収集に関する優れた能力を発揮し
ている。種々のマルチプロセッサ・モードと制御メッセ
ージとを利用することができ、また、優先順位プロトコ
ルを操作するだけで、優先順位の種々のレベルを容易に
設定しまた変更することができるようになっている。全
てのプロセッサへ同時にブロードカストすることのでき
る能力と、ネットワーク中でメッセージのソートを行な
える能力とが組み合わされることによって、いかなるプ
ロセッサ・グループ或いはいかなる個々のプロセッサを
転送先とすることも可能となっていると共に、処理結果
を適切な順序で引き出すことも可能となっている。従っ
て、リレーショナル・データベース・システムに対する
複雑な問合せが入力されたならば、そのことによってデ
ータベース動作に必要なあらゆる処理シーケンスが開始
されるようになっている。
本システムの更に別の利点は、リレーショナル・データ
ベース・システム等のマルチプロセッサ・システムに、
容易に冗長性を導入できることにある。二重ネットワー
クと二重インターフェイスとを備えているため、一方の
ネットワークが何らかの原因で故障した場合にもシステ
ムが動作し続けられるようにする冗長性が得られてい
る。データベースを互いに素の一次的部分集合とバック
アップ用部分集合という形で分配してあるため、データ
喪失の確率が最小のレベルにまで低減されている。故障
が発生したり変更が加えられたりした場合にも、用途の
広い種々の制御機能が利用可能であるためにデータベー
スの完全性を維持し得るようになっている。
【図面の簡単な説明】
第1図は、新規な双方向ネットワークを含む、本発明に
係るシステムのブロック図である。 第2図及び第2A図〜第2J図は、第1図に示された簡単な
構造の実施例のネットワークにおけるデータ信号並びに
制御信号の伝送の態様を示す、時間の経過に沿った連続
する一連の説明図であり、第2図は信号伝送の開始前の
時点における状態を示す図、また、第2A図〜第2J図は、
夫々、t=0からt=9までの連続する10箇所の時点に
おける時間標本の一つに対応している図である。 第3図は、第1図に示されたシステムに採用されている
メッセージ・パケットの構成を図示する説明図である。 第4図は、第1図に示された新規な双方向ネットワーク
用いられている能動ロジック・ノード並びにクロック回
路に関する、同ネットワークの更なる細部構造を示すブ
ロック図である。 第5図は、前記能動ロジック・ノードの内部の様々な動
作状態を示す、状態図である。 第6図は、前記能動ロジック・ノードの内部において行
なわれるエンド・オブ・メッセージの検出動作を説明す
るためのタイミング・ダイアグラムである。 第7図は、第4図に示したロック回路の動作を説明する
ための、タイミング波形のダイアグラムである。 第8図は、第1図に示したシステムに使用することので
きる、高速ランダム・アクセス・メモリを含むプロセッ
サ・モジュールのブロック図である。 第9図は、第8図に示したマイクロプロセッサ・システ
ムのメインRAMの内部のアドレスの割当て状況を示す図
である。 第10図は、第8図に示された高速ランダム・アクセス・
メモリの、1つの参照部分の内部におけるデータの配置
態様のブロック図である。 第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図は、データベース・システム内の複数の異なった
プロセッサの間にデータベースの夫々の部分を分配する
ための、分配方式の可能な一例を示す簡略化した模式図
である。 10、12……ホスト・コンピュータ、14、16……インター
フェイス・プロセッサ、18〜23……アクセス・モジュー
ル・プロセッサ、24……マイクロプロセッサ、26……高
速ランダム・アクセス・メモリ、28……制御ロジック、
32……ディスク・コントローラ、38〜43……ディスク・
ドライブ、50……能動ロジック・ネットワーク構造、54
……ノード、56……クロック・ソース、120、120′……
ネットワーク・インターフェイス、103……マイクロプ
ロセッサ・システム。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 リチヤード・クラレンス・ストツクトン アメリカ合衆国カリフオルニア州ノースリ ツジ・メリオン・ドライブ19005 (72)発明者 マーチン・キヤメロン・ワトソン アメリカ合衆国カリフオルニア州ノースリ ツジ・キヤブリオール・アベニユー11112 (72)発明者 デビツド・クロンシヨウ アメリカ合衆国カリフオルニア州トラン ス・タワーズ・ストリート5635 (72)発明者 ジヤツク・エバード・シエマー アメリカ合衆国カリフオルニア州ロス・ア ンゼルス・オーシヤーノ・ドライブ270

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】ネットワークによって互いに接続された複
    数のプロセッサの間で通信を行い、所与のタスク・メッ
    セージの転送先として意図された全てのプロセッサが当
    該タスク・メッセージを正しく受信したことを確認する
    ための方法であって、 所与の優先順位を有する互いに競業する複数のタスク・
    メッセージを複数のプロセッサから全ての前記プロセッ
    サへ同時に送出するステップと、 前記ネットワーク内において、送出されたそれらのタス
    ク・メッセージを伝送しつつそれらのソートを行って1
    つの最優先タスク・メッセージを全ての前記プロセッサ
    へ送達するステップと、 送達されたタスク・メッセージに対して、所与の優先順
    位を有する応答メッセージを送出することによって、全
    ての前記プロセッサにおいて同時に応答するステップで
    あって、前記優先順位は、転送先プロセッサからの応答
    に関しては適正受信応答の方が拒絶応答より優先順位を
    低く定められており、またいかなる応答メッセージもタ
    スク・メッセージに優先するように定められている、ス
    テップと、 前記ネットワーク内において、送出された複数の応答メ
    ッセージを伝送しつつそれらのソートを行って優先順位
    の高い順に該複数の応答メッセージを、全ての前記プロ
    セッサへ順次送達するステップと、 前記応答メッセージが適正受信を示している場合に、前
    記タスク・メッセージを送出したプロセッサが、一連の
    前記複数の応答メッセージを前記ネットワーク経由で受
    け入れるステップと、 からなるマルチプロセッサ・システムにおけるメッセー
    ジ送信及び受信方法。
  2. 【請求項2】前記タスク・メッセージの送達先として意
    図されていないプロセッサは、前記適正受信の応答メッ
    セージよりも低い優先順位が与えられる応答メッセージ
    を送出するようにした、特許請求の範囲第1項のマルチ
    プロセッサ・システムにおけるメッセージ送信及び受信
    方法。
  3. 【請求項3】前記拒絶応答のメッセージは、当該プロセ
    ッサにおいて受信用メッセージを格納するバッファが満
    杯状態を示すバッファ・オーバーラン、受信した前記所
    与のタスク・メッセージの同一性を表す番号であるトラ
    ンザクション・ナンバが予め設定されていなかったタス
    ク・メッセージを受信した場合のTNエラー、ないしは当
    該プロセッサを構成するハードウェアの一部が動作不能
    の状態であることをを示すロック状態の何れかの場合に
    応答する、特許請求の範囲第1項のマルチプロセッサ・
    システムにおけるメッセージ送信及び受信方法。
  4. 【請求項4】個々の前記プロセッサは、受信したタスク
    ・メッセージにかかる前記トランザクション・ナンバが
    予め定められた自己が関与すべきものであるか否かを調
    べることによって、当該プロセッサが非関与若しくは初
    期状態にある場合は、当該プロセッサは該タスク・メッ
    セージに非該当である旨の応答メッセージを送出する、
    特許請求の範囲第3項のマルチプロセッサ・システムに
    おけるメッセージ送信及び受信方法。
  5. 【請求項5】送出された前記タスク・メッセージ若しく
    は前記応答メッセージが、該メッセージの転送先として
    意図されたプロセッサのすべてによって適正に受信され
    なかった場合には、適正に受信されるまで反復して該メ
    ッセージを送出するステップを更に有する、特許請求の
    範囲第1項のマルチプロセッサ・システムにおけるメッ
    セージ送信及び受信方法。
  6. 【請求項6】前記タスク・メッセージは関与すべき他の
    プロセッサが処理もしくは応答すべきことを要求する一
    次メッセージであり、一次メッセージと応答メッセージ
    は、個々のプロセッサから前記ネットワークに対して同
    時に送出されうる、特許請求の範囲第1項のマルチプロ
    セッサ・システムにおけるメッセージ送信及び受信方
    法。
  7. 【請求項7】前記タスク・メッセージの送出は、エンド
    ・オブ・メッセージ・コードの送出をもって終了し、前
    記応答メッセージの送出は、前記エンド・オブ・メッセ
    ージ・コードの受信後に他の前記プロセッサから同時に
    送出されるようにした、特許請求の範囲第1項のマルチ
    プロセッサ・システムにおけるメッセージ送信及び受信
    方法。
JP1234500A 1981-04-01 1989-09-07 マルチプロセッサ・システムにおけるメッセージ送信及び受信方法 Expired - Lifetime JPH0750463B2 (ja)

Applications Claiming Priority (4)

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

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
JPH02118763A JPH02118763A (ja) 1990-05-07
JPH0750463B2 true JPH0750463B2 (ja) 1995-05-31

Family

ID=26940538

Family Applications (13)

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

Family Applications Before (6)

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

Family Applications After (6)

Application Number Title Priority Date Filing Date
JP1234494A Expired - Lifetime JP2607696B2 (ja) 1981-04-01 1989-09-07 マルチプロセッサシステム及びその利用方法
JP1234501A Expired - Lifetime JP2555451B2 (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 マルチプロセッサ・システム
JP3263081A Expired - Lifetime JP2651473B2 (ja) 1981-04-01 1991-09-12 マルチプロセッサ・システムにおけるメッセージの通信制御方法
JP3263082A Expired - Lifetime JP2628811B2 (ja) 1981-04-01 1991-09-12 マルチプロセッサ・システムにおけるタスクの処理及びメッセージの送受信制御方法

Country Status (1)

Country Link
JP (13) JPH0619762B2 (ja)

Families Citing this family (9)

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

Family Cites Families (5)

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

Also Published As

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

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
US4543630A (en) Data processing systems and methods
US4945471A (en) Message transmission system for selectively transmitting one of two colliding messages based on contents thereof
Agrawal et al. An efficient and fault-tolerant solution for distributed mutual exclusion
EP0234803B1 (en) Method for the dynamic partitioning of parallel processors
US5410710A (en) Multiprocessor programmable interrupt controller system adapted to functional redundancy checking processor systems
JP2555450B2 (ja) マルチプロセッサ・システム
Sha et al. Real-time computing with IEEE futurebus+
Neches The Ynet: An interconnect structure for a highly concurrent data base computer system
CA1198523A (en) Multi-processor intercommunication system and method
Zwaenepoel Implementation and Performance of Pipes in the V-System
Thiel The VAX/VMS distributed lock manager
Sharma Robust Replication Control Using Primary Copy Method
JPS6240545A (ja) 障害検出方式