JP2555451B2 - マルチプロセッサ・システムにおけるメッセ−ジ・パケットのマ−ジ方法 - Google Patents

マルチプロセッサ・システムにおけるメッセ−ジ・パケットのマ−ジ方法

Info

Publication number
JP2555451B2
JP2555451B2 JP1234501A JP23450189A JP2555451B2 JP 2555451 B2 JP2555451 B2 JP 2555451B2 JP 1234501 A JP1234501 A JP 1234501A JP 23450189 A JP23450189 A JP 23450189A JP 2555451 B2 JP2555451 B2 JP 2555451B2
Authority
JP
Japan
Prior art keywords
message
processor
processors
network
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP1234501A
Other languages
English (en)
Other versions
JPH02138656A (ja
Inventor
フイリツプ・マルコム・ネチス
デビツド・ヘンリイ・ハートク
リチヤード・クラレンス・ストツクトン
マーチン・キヤメロン・ワトソン
デビツド・クロンシヨウ
ジヤツク・エバード・シエマー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Teradata Corp
Original Assignee
Teradata Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US06/250,094 external-priority patent/US4445171A/en
Priority claimed from US06/250,022 external-priority patent/US4412285A/en
Application filed by Teradata Corp filed Critical Teradata Corp
Publication of JPH02138656A publication Critical patent/JPH02138656A/ja
Application granted granted Critical
Publication of JP2555451B2 publication Critical patent/JP2555451B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

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

Description

【発明の詳細な説明】 (産業上の利用分野) マルチプロセッサ・システムにおけるメッセージ・パ
ケットのマージ方法及びメッセージの発信方法及びマル
チプレキシング方法に関するものである。
(従来の技術) 高い信頼性を備えた形式の電子計算機(エレクトロニ
ック・コンピュータ)が出現して以来、この技術分野に
従事する者が考察を重ねてきたシステムに、複数のコン
ピュータを使用するシステムであってそれらのコンピュ
ータが相互に関連性を保ちつつ動作することによって、
所与の1つのタスクの全体が実行されるようにしたシス
テムがある。そのようなマルチプロセッサ・システムの
うちのあるシステムでは、1つの大型コンピュータが、
それ自身の優れた速度と容量とを利用してプログラムの
複雑な部分を実行すると共に、複雑さの程度の低いタス
クや緊急度の低いタスクについては、それを小型で速度
の遅い衛星プロセッサに委任し(割当て)、それによっ
て、この大型コンピュータの負担やこの大型コンピュー
タに対するリクエストの量が減少するようにしたものが
ある。この場合、大型コンピュータは、サブタスクの割
当てを行なうこと、小型プロセッサ(=上記衛星プロセ
ッサ)を常に作動状態に保つこと、それらの小型プロセ
ッサの使用可能性と動作効率とを確認すること、それに
統一された結果が得られるようにすることを担当しなけ
ればならない。
以上とは別の方式を採用している別種のマルチプロセ
ッサ・システムのなかには、多数のプロセッサと1つの
共通バス・システムとを使用するシステムであってそれ
らの複数のプロセッサには本質的に互いに等しい機能が
付与されているシステムがある。この種のシステムにお
いては、しばしば、他の部分からは独立した制御用コン
ピュータないし制御システムを用いて、所与のサブタス
クに関する個々のプロセッサの使用可能性並びに処理能
力を監視することと、プロセッサ間のタスク及び情報の
転送経路を制御することが行なわれている。また、プロ
セッサそれ自体が、他のプロセッサのステータス並びに
利用可能性の監視と、メッセージ及びプログラムの転送
経路の決定とを行なえるように、夫々のプロセッサの構
成及び動作が設定されているものもある。以上の種々の
システムに共通する重大な欠点は、オーバーヘッド機能
及び保守機能を実行するために、ソフトウェアが必要と
され且つ動作時間が消費されるということにあり、そし
てそれによって、本来の目的の実行に影響が及ぶことに
なる。転送経路の決定及び監視に関する仕事量が、それ
らの仕事に関与するプロセッサの総数の2次の関数で増
加して、ついにはオーバーヘッド機能のために不適当な
迄の努力が費やされるようになることもある。
以下の数件の特許公報は従来技術の例を示すものであ
る。
初期のバイナック(“Binac":2個の互いにパラレルに
接続されたプロセッサを用いる)や、それに類似した種
々のシステムが使用されていた頃から既に、マルチプロ
セッサ方式は冗長性を備えた実行能力を提供するもので
あって、そのため動作するシステムの全体の信頼性を著
しく向上させ得るものであるということが認識されてい
た。実際にマルチプロセッサ・システムを構成するとい
うことに対しては、これまでのところ、かなりの制約が
存在しているが、その制約は主としてソフトウェアが膨
大なものとなってしまうことに起因する制約である。に
もかかわらず、例えばリアルタイムの用途等のように、
システムのダウンタイム(運転休止時間)が容認され得
ないような種々の状況においては、マルチプロセッサ動
作が特に有利であるため、これまでに様々なマルチプロ
セッサ・システムが開発されてきたが、ただし、それら
のシステムは動作自体は良好であるが、オーバーヘッド
のためにソフトウェアと動作時間のかなりの分量を割か
なければならないものであった。そのような従来のシス
テムは、米国特許公報第3,445,822号、同第3,566,363
号、及び同第3,593,300号にその具体例が示されてい
る。これらの特許公報はいずれも、複数のコンピュータ
がそれらの間で共用される1つのメイン・メモリをアク
セスするようにしたシステムに関するものであり、この
システムにおいては更に、タスクを個々のプロセッサに
好適に割当てるために、処理能力と処理要求量とが比較
されるようになっている。
従来技術の更に別の例としては、米国特許公報第4,09
9,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.スミスによる「リレーシ
ョ・データベース・マシン」という表題の論文(articl
e entitled“Relational Data Base Machine",publishe
d by D.C.P.Smith and J.M.Smith,in the March 1979 i
ssue of IEEE Computer magazine,p.28)、米国特許公
報第4,221,003号、並びに同公報中に引用されている諸
論文等がある。
また、ソーティング・マシンは、コンピューティング
・アーキテクチャの改良が必要とされていることの好い
例である。ソーティング・マシン理論の概説は、D.E.ク
ヌース(Knuth)著「サーチング及びソーティング」の
第220〜第246頁(“Searching and Sorting"by D.E.Knu
th,pp.220-246,published(1973)by Addison-Wesley P
ublishing Co.,Reading,Massachusetts)に記載されて
いる。この文献には様々なネットワーク並びにアルゴリ
ズムが開示されており、それらの各々に付随する制約を
理解するためにはそれらを詳細に考察しなければならな
いが、ただしそれらについて一般的に言えることは、そ
れらはいずれも、ソーティングという特定の目的だけを
指向した、特徴的に複雑な方式であるということであ
る。更に別の例として、L.A.モラー(L.A.Mollaar)に
よって提示されているものがあり、これは、「IEEE・ト
ランザクション・オン・コンピュータ」、C-28巻、第6
号(1979年6月)、第406〜413頁に掲載されている「リ
スト・マージング・ネットワークの構造」という表題の
論文(article entitled“A Design for a List Mergin
g Network",in the IEEE Transactions on Computers,V
ol.C-28 No.6,June 1979 at pp.406-413)に記載されて
いる。この論文に提案されているネットワークにおいて
は、ネットワークのマージ・エレメントを外部から制御
するという方式が採用されており、また、このネットワ
ークは、特殊な機能を実行するためのプログラミングを
必要としている。
汎用のマルチプロセッサ・システムが実行することが
できなければならない諸機能には、種々の方式でサブタ
スクを分配する機能、サブタスクを実行しているプロセ
ッサのステータスを確認する機能、メッセージのマージ
とソートを行なう機能、データを訂正及び変更する機
能、それに、いつ及びどのように資源が変化したかを
(例えば、あるプロセッサがいつオンラインから外れ、
いつオンラインに復帰したかを)確認する機能等があ
る。以上のような機能を実行するために、これまでは、
オーバーヘッドのための過大なソフトウェアとハードウ
ェアとを用いる必要があった。
一例を挙げるならば、例えばデータベース・マシン等
のマルチプロセッサ・システムにおいては、プロセッサ
間のメッセージの転送経路を指定するに際して、特定の
1つのプロセッサを転送先として選択したり、或いは1
つのクラスに属する複数のプロセッサを選択したり、ま
た更には、プロセッサそのものを指定するのではなく、
ハッシュ方式等によってプロセッサに分配されているデ
ータベースの部分を指定するという方法で、転送先プロ
セッサを選択するということが、しばしば必要となる。
公知のシステムの中には前置通信シーケンスを利用して
いるものがあり、それによって送信側プロセッサと、1
個或いは複数の特定の受信側プロセッサとの間のリンケ
ージを確立するようにしている。このリンケージを確立
するためにはリクエストや肯定応答を何回も反復して送
出しなければならず、また起こり得るデッドロック状態
を克服するために、更なるハードウェア並びにソフトウ
ェアを使用しなければならない。前置通信シーケンスを
利用していないシステムでは、1つのプロセッサによっ
て、或いはバス・コントローラによって管制が行なわれ
ており、この管制は、送信側プロセッサが送信準備完了
状態にあること、受信側プロセッサが受信準備完了状態
にあること、これらのプロセッサの間のリンケージから
その他のプロセッサが締め出されていること、並びに無
関係な送信が行なわれていないことを、確認するための
ものである。この場合にもまた、オーバーヘッドに依存
することと、デッドロックを回避するために複雑となら
ざるを得ないこととによって、システムを拡張する(例
えばプロセッサの個数を16個以上にする)につれて保守
機能が不適当な迄に膨張してしまうのである。
最近のマルチプロセッサ・システムに要求されている
要件の更に別の例として、1個或いは複数個のプロセッ
サによって実行されているサブタスクのステータスを、
システムが確実に判定するための方法に関係するものが
ある。基本的に要求されている点は、所与のプロセッサ
に対してそのプロセッサのステータスについての問合せ
を行なう能力を備えていなければならないということで
あり、しかも、そのステータスがその問合せによって影
響を及ぼされることがないように、且つ、応答の内容に
多義性が生じることがないように、その問合せが行なわ
なければならないということである。ステータス表示の
テストとセットとを中断のない一連の操作として行なう
機能を特徴的に表わすための用語として、現在当業界に
おいては「セマフォ(semaphore)」という用語が使用
されている。このセマフォという特徴を備えていること
は望ましいことであるが、ただし、この特徴を組込むに
際しては、実行効率の低下やオーバーヘッドの負荷の増
加を伴なわないようにしなければならない。このような
ステータスの判定は、更にマルチプロセッサ・システム
においてソート/マージ動作を実行する際に極めて重要
なものとなるが、それは、大きなタスクの中に含まれて
いる複数のサブタスクの夫々の処理結果を組み合わせる
ためには、それらのサブタスクが適切に処理完了された
後でなければ1つに組み合わせることができないからで
ある。更に別の要件として、プロセッサがその「現在」
ステータスを報告できなければならないこと、そしてサ
ブタスクの実行は、マルチプロセッサの動作シーケンス
に対して割込みと変更とが繰返されても、ただ1回だけ
行なわれるようにしなければならないということがあ
る。殆どの既存のシステムでは、プロセッサの実行ルー
チンが中断可能とされているためにこの点に関して重大
な問題が生じている。即ち、容易に理解されることであ
るが、複数のプロセッサが互いに関連を有する複数のサ
ブタスクを実行しているような場合には、それらの個々
のプロセッサのレディネス状態の程度(=どのような動
作が可能な状態にあるかの程度)についての問合せとそ
れに対する応答とに関わる動作シーケンスが膨大なオー
バーヘッドを必要とすることがあり、しかも、そのため
の専用のオーバーヘッドは、プロセッサの個数が増大す
るに従っていよいよ不適当なまでに増大する。
(発明が解決しようとする問題点) 以上に述べたところの例を示す従来のマルチプロセッ
サ・システムにおける典型的な短所は、いわゆる「分散
更新」の問題に関するものであり、この問題は即ち、複
数個の処理装置の各々にそのコピーが格納されている情
報を更新する必要があるということである。ここで言う
情報とは、データ・レコードから成る情報の場合もあ
り、また、システムの動作を制御するために用いられる
情報の場合もある。このシステムの動作の制御とは、例
えば、必要なステップが誤って重複実行されたり全く実
行されなかったりすることのないようにして、処理が開
始され、停止され、再開され、一時中断され、或いはロ
ール・バックないしロール・フォワードされるようにす
ること等の制御のことである。従来のシステムにおいて
は、分散更新の問題の種々の解決法はいずれもかなりの
制約を伴なうものであった。それらの解決法の中には、
一度に2個のプロセッサだけを対象としているに過ぎな
いものもある。また更に別の解決法として相互通信プロ
トコルを利用しているものも幾つかあるが、それらのプ
ロトコルは非常に複雑なため、現在でも、それらのプロ
トコルが適切なものであることを数学的厳密さをもって
証明することには非常な困難が伴なっている。
それらのプロトコルが複雑になっている原因は、「大
域的セマフォ」を構成している、中断されることのない
1回の動作により全てのプロセッサにおいて「テスト・
アンド・セット」されるという外面的性質を持つ制御ビ
ットを、備える必要があるということにある。斯かる制
御ビットが複数の別々のプロセッサの内部に夫々に設け
られ、しかもそれらのプロセッサの間の通信に付随する
遅延時間がまちまちであるため、不可避的に不完全なも
のとなり得る通信チャネルによってノイズが発生され、
また更にエラーの発生率も増大することになる。従って
「中断されることのない1回の動作」という特徴を備え
ることは、その1つの動作を構成している複数の部分々
々が、夫々に多種多様で、しかも中断可能であり、そし
てそれらを同時にはアクセスすることができず、更には
それらがアクセスとアクセスとの間に不調を生じがちで
ある場合には、困難を伴なうものであるということが、
当業者には容易に理解されよう。
(問題点を解決するための手段) 本発明は、要約すれば、多くの異なったトランザクシ
ョンが同時に異なった複数のプロセッサにおいて非同期
的に処理されている場合に、複数の異なったプロセッサ
からの処理済みデータ並びに関連データが、互いに同時
に実行されしかも夫々がシーケンシャルに実行される複
数の動作によって、正しい順序にアセンブルされる方法
を、提供するものである。個々の各々のプロセッサは、
実行を完了した各々のトランザクションごとに、当該ト
ランザクションに関連する処理済みメッセージをアセン
ブルし、そしてそのアセンブルされたメッセージを優先
順位に従って、そのメッセージと競合する他のプロセッ
サからの当該トランザクションに関連する最優先メッセ
ージと同時に送出しようと試みる。1つのトランザクシ
ョンに関するそれらの互いに競合する複数のメッセージ
は伝送されている間にソートされ、それによって、競合
を勝ち抜くメッセージがその状況において更なる処理を
行なうことなく選択される。以上の処理シーケンスは、
所与の1つのトランザクションに関与している全てのプ
ロセッサからの全てのメッセージが最終的に適切な順序
で受信されるまで反復して実行される。
(実施例) 以下、この発明の実施例を図面を参照して説明する。
(データベース管理システム) 第1図に総括的に示されているシステムは、本発明の
概念をデータベース管理に応用したものを具体例として
示すものである。更に詳細に説明すると、このシステム
は一つまたは複数のホスト・コンピュータ・システム1
0、12と協働するように構成されており、それらのホス
ト・コンピュータ・システムは、例えばIBM370ファミリ
ーまたはDEC-PDP-11ファミリーに属するコンピュータ・
システム等であって、この具体例の目的に沿うように既
存の一般的なオペレーティング・システム及び応用ソフ
トウェアで動作するようになっている。IBMの用語法に
拠れば、ホスト・コンピュータ・とデータベース・コン
ピュータとの間の主要相互通信回線網はチャネルと呼ば
れており、また同じものがDECの用語法に拠れば「ユニ
バス」または「マスバス」或いはそれらの用語を多少変
形した用語で呼ばれている。以上のコンピュータ・シス
テムのうちのいずれかが用いられるにせよ、或いは他の
メーカーのメインフレーム・コンピュータが用いられる
にせよ、このチャネル、即ちバスは、そこへデータベー
ス・タスク及びサブタスクが送出されるところのオーミ
ックな転送経路、即ち論理的に受動的な転送経路であ
る。
第1図の具体例は、ホスト・システム10、12に組み合
わされたバックエンド・プロセッサ複合体を示してい
る。この図のシステムは、タスク及びサブタスクをホス
ト・システムから受入れ、莫大なデータベース記憶情報
のうちの該当する部分を参照し、そして適切な処理済メ
ッセージ或いは応答メッセージを返すというものであ
り、それらの動作は、このバックエンド・プロセッサ複
合体の構成の如何にかかわらず、それ程高度ではないソ
フトウェアによる管理以外は、ホスト・システムには要
求されない方式で実行されるようになっている。従っ
て、ユーザのデータベースを新たな方式のマルチプロセ
ッサ・システムとして構成することが可能とされてお
り、このマルチプロセッサ・システムにおいては、デー
タを、容量を大幅に拡張することのできるリレーショナ
ル・データベース・ファイルとして組織することがで
き、しかもこの拡張は、ユーザのホスト・システムの内
部に備えられているオペレーティング・システムや既存
の応用ソフトウェアを変更する必要なしに行なうことが
できるようになっている。独立システム(スタンド・ア
ローン・システム)として構成した具体例について、以
下に第20図を参照しつつ説明する。
当業者には理解されるように、リレーショナル・デー
タベース管理に関する動作機能は、1つの動作機能の全
体を、少なくとも一時的には他から独立して処理可能な
複数の処理タスクへと分割することができるような動作
機能である。その理由は、リレーショナル・データベー
スでは記憶されている複数のデータ・エントリがアドレ
ス・ポインタによって相互依存的に連結されていないか
らである。更に当業者には理解されるように、リレーシ
ョナル・データベース管理以外にも、限定されたタスク
ないし反復実行されるタスクを動的に小区分して独立的
に処理するこという方法を用い得るようなの多くのデー
タ処理環境が存在している。従って、本発明の具体例を
説明するに際しては、特に要望が強くまた頻繁に聞かれ
るところの、データベース管理における処理の問題に関
連させて説明するが、しかしながら本明細書に開示する
新規な方法並びに構成は、それ以外にも広範な用途を持
つものである。
大規模なデータ管理システムは、複数のプロセッサ
(マルチプル・プロセッサ)を使用する場合には潜在的
な利点と不可避的に付随する困難との両方を備えること
になる。何億個にも及ぶ莫大な数のエントリ(記述項)
を、記憶装置の中に、容易にかつ迅速にアクセスできる
状態で保持しなければならない。一方、リレーショナル
・データベースのフォーマットとしておけば、広範なデ
ータ・エントリ及び情報の取り出し動作を同時並行的に
実行することができる。
ただし、圧倒的大多数のデータベース・システムにお
いては、データベースの完全性(インテグリティ)を維
持することが、トランザクション・データを迅速に処理
することと同様に重要となっている。データの完全性
は、ハードウェアの故障や停電、それにその他のシステ
ム動作に関わる災害の、その前後においても維持されて
いなければならない。更には、データベース・システム
は、応用ソフトウェア・コードの中のバグ(bug)をは
じめとするユーザ側のエラーの後始末を行なうために、
データベースを以前の既知の状態に復元できる能力を備
えていなければならない。しかも、データが誤って失わ
れたり入力されたりすることがあってはならず、また、
イベントが新たなデータに関係するものであるのか、或
いは過去のエラーの訂正に関係するものであるのか、そ
れともデータベースの一部分の校正に関係するものであ
るのかに応じて、ある特定のエントリに関係しているデ
ータベース部分の全てが変更されるようになっていなけ
ればならない。
従って、完全性のためには、データのロールバック及
び回復の動作、誤りの検出及び修正の動作、並びにシス
テムの個々の部分のステータスの変化の検出及びその補
償の動作に加えて、更に、ある程度の冗長度もデータベ
ースシステムには必要である。これらの目的を達成する
ためには、システムが多くの異なった特殊なモードで用
いられなければならないこともあり得る。
さらに、最近のシステムでは、その形式が複雑なもの
になりがちな任意内容の問合せ(discretionary quer
y)を受入れる能力と、必要とあらば相互作用的な方式
で応答する能力とを持っていることが要求される。たと
えその問合せが複雑なものであったとしても、システム
にアクセスしようとする人達がそのシステムの熟練者で
あることを要求されるようなことがあってはならない。
大規模生産の業務に関連して生じるかも知れない任意
内容の問合せの例には、次のようなものがある。
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個のマ
イクロプロセッサが示されているが、はるかに多くのIF
P及び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をそのI
FPに組み合わされているホスト・コンピュータ10ないし
12のチャネルまたはバスに接続している。これに対して
AMP18〜23では、このインターフェイス制御回路に相当
する装置はディスク・コントローラ32であり、このディ
スク・コントローラ32は一般的な構造のものであっても
良く、AMP18〜23を、それらに個別に組み合わせられた
磁気ディスク・ドライブ38〜43と夫々にインターフェイ
スするのに用いられるものである。
磁気ディスク・ドライブ38〜43はこのデータベース管
理システムに二次記憶装置、即ち大容量記憶装置を提供
している。本実施例においては、それらの磁気ディスク
・ドライブは例えばウィンチェスター・テクノロジー
(Winchester technology)等の実績のある市販の製品
から成るものとし、それによって、バイト当りコストが
極めて低廉でしかも大容量、高信頼性の記憶装置が得ら
れるようにしている。
これらのディスク・ドライブ38〜43には、リレーショ
ナル・データベースが分散格納方式で格納されており、
これについては第22図に簡易化した形で示されている。
各々のプロセッサとそれに組み合わされたディスク・ド
ライブとに対しては、データベースの部分集合を成す複
数のレコードが割当てられ、この部分集合は「一次的」
部分集合であり、またそれらの一次的部分集合は互いに
素の部分集合であると共に全体として完全なデータベー
スを構成するものである。従ってn個記憶装置の各々は
このデータベースの1/nを保持することになる。各々の
プロセッサには更に、バックアップ用のデータの部分集
合が割当てられ、それらのバックアッップ用部分集合も
互いに素の部分集合であり、各々がこのデータベースの
1/nを構成するものである。第22図から分るように、一
次的ファイルの各々は、その一次的ファイルが収容され
ているプロセッサとは異なったプロセッサに収容されて
いるバックアップ用ファイルによって複製されており、
これにより、互いに異なった分配の仕方で分配された2
つの各々が完全なデータベースが得られている。このよ
うに、一次的データ部分集合とバックアップ用データ部
分集合とが冗長性を持って配置されていることによって
データベースの完全性(インテグリティ)の保護がなさ
れており、その理由は、単発の故障であれば、大規模な
数ブロックに亙る複数のデータや複数のグループを成す
複数のリレーションに対して実質的な影響を及ぼすこと
はあり得ないからである。
データベースの分配は、同じく第22図に示されている
ように、種々のファイルのハッシング動作と関連を有し
ており、また、ハッシュ・マッピング・データをメッセ
ージの中に組込むこととも関連を有している。各々のプ
ロセッサに収容されているファイルは、2進数列のグル
ープとして示される簡単なハッシュ・バケット(hash b
ucket)によって指定されるようになっている。従っ
て、それらのバケットによって指定される関係の表(テ
ーブル)に基づいて、リレーショナル・データベース・
システムの中のリレーション(関係)及びタプル(組:t
uple)を配置すべき場所を定めることができる。ハッシ
ング・アルゴリズムを利用して、このリレーショナル・
データベース・システムの内部において、キーからバケ
ットの割当てが求められるようになっており、そのた
め、このデータベース・システムの拡張及び改変を容易
に行なうことができる。
記憶容量をどれ程の大きさに選択するかは、データベ
ース管理上のニーズ、トランザクションの量、及びその
記憶装置に組み合わされているマイクロプロセッサの処
理力に応じて定められるものである。複数のディスク・
ドライブを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」で表わし、以下同様とす
る。同一の階層に属している個々のノードは、下添字「
12…」によって表わし、従って、例えば第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)の形とされている。ト
ランザクション・ナンバは、システムの中において様々
なレベルの意義を有するものであり、多くの種類の機能
的通信及び制御の基礎を成すものとして機能するもので
ある。パケットは、このコマンド・ワードの後には、可
変長のキー・フィールドと固定長の転送先選択ワード
(destination 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番目のクロック・インタバルの間
に夫々のメッセージの先頭のバイトが最下層のノードIN
1及びIN2の内部にセットされ、t=2において(第2C
図)競合に決着が付けられ、そして上流方向への伝送と
下流方向への伝送の双方が続けて実行される。ノードIN
1はその両方の入力ポートに「E」を受取っており、そ
してこれを上流方向の次の階層へ向けて転送していて、
また下流方向へは両方の送信プロセッサへ向けて未判定
の状態を表示している。しかしながらこれと同じ階層に
属しているノードIN2は、プロセッサ19からの「E」と
プロセッサ20からの「P」との間の衝突に際しての優先
権の判定を、「E」の方に優先権があるものと判定して
おり、そして、ポートAをアップ・ツリー側のポートC
に結合する一方、マイクロプロセッサ20へBcol信号を返
している。Bcol信号がマイクロプロセッサ20へ返される
と、IN2ノードは実際上、そのA入力ポートがC出力ポ
ートにロックされたことになり、それによって、マイク
ロプロセッサ19からのシリアルな信号列が頂点ノードII
N 1へ伝送されるようになる。
IN1ノードにおいては最初の二つの文字はどちらも「E
D」であり、そのため第2C図に示すように、このノード
ではt=2の時刻には、判定を下すことは不可能となっ
ている。更には、3つのマイクロプロセッサ14、15及び
19から送出された共通の先頭の文字「E」は、t=3
(第2D図)の時刻にII N 1頂点ノードに達し、そしてこ
の文字「E」は、同じくそれら全てのメッセージに共通
する第2番目の文字「D」がこの頂点ノードII N1へ転
送されるときに、その転送の向きを反転されて下流方向
へ向けられる。この時点ではノード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回目
の衝突が表示され、この場合、ノードII N1のBポート
が競合に勝利し、Acolが発生される。
続く数回のクロック・タイムの間は、シリアルな信号
列の下流方向へのブロードカストが継続して行なわれ、
t=6(第2G図)の時刻には、メッセージの先頭の文字
が全てのH.S.RAM26の入力用領域の部分の中にセットさ
れる。ここでもう1つ注意しておいて頂きたいことは、
ノードIN1において先に行なわれた優先権の判定はこの
時点において無効とされるということであり、その理由
は、プロセッサ18から送出された第3番目の文字
(「E」)がマイクロプロセッサ19から送出された第3
番目の文字(「D」)との競合に敗退したときに、より
高位の階層のノードII N1からAcolの表示がなされるた
めである。第2H図中においてカーソル矢印が表わしてい
るように、マイクロプロセッサ14、18及び20はそれらの
初期状態に戻されており、また、勝利したマイクロプロ
セッサ19は、その全ての送信をt=4の時刻に既に完了
している。第2H図、第2I図、及び第2J図から分るよう
に、全ての入力バッファの中へ、次々に優先メッセージ
「EDDV」がロードされて行く。t=8(第2I図)におい
て、このメッセージは既に第1階層から流れ出てしまっ
ており、また、頂点ノードII N1は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 ope
ration)を適用することができるようになっている。TN
については、それを割当てることと放棄することとが可
能となっており、またマージ動作については、その開始
と停止とが可能とされている。ある種のメッセージ、例
えば継続メッセージ等については、その他のメッセージ
の伝送に優先する優先権を持つようにすることができ
る。TNと、それにそのTNに関するステータスを更新する
ローカル・プロセッサとを利用することにより、ただ1
つの問合せだけで所与のTNについての大域的資源のステ
ータスを判定することができるようになっている。分散
型の更新もまた一回の通信で達成できるようになってい
る。本発明のシステムは、以上の全ての機能が、ソフト
ウェアを拡張したりオーバーヘッドの負担を著しく増大
させることなく、実行されるようにするものである。
本発明を用いるならばその結果として、従来技術にお
いて通常見られる個数のマイクロプロセッサよりはるか
に多くの個数のプロセッサを備えたマルチプロセッサ・
システムを、問題タスクに対して非常に効果的に動作さ
れることが可能になる。現在ではマイクロプロセッサは
低価格となっているため、問題領域において高性能を発
揮するシステムを、それも単に「ロー」パワー(“raw"
power)が高性能であるというだけではないシステム
を、実現することができる。
全てのメッセージのタイプと種々のサブタイプとを包
含する一貫性のある優先順位プロトコルが、ネットワー
クに供給される種々様々なメッセージの全てを包括する
ように定められている。応答メッセージ、ステータス・
メッセージ、並びに制御メッセージはプライマリ・デー
タ・メッセージとは異なる形式のメッセージであるが、
それらも同じように、ネットワークの競合/マージ動作
(contention/merge operation)を利用し、そしてそれ
によって、転送されている間に優先権の付与を受ける。
本システムにおける応答メッセージは、肯定応答(AC
K)か、否定応答(NAK)か、或いは、そのプロセッサが
そのメッセージに対して有意義な処理を加えるための資
源を持っていないことを表わす表示(「非該当プロセッ
サ(not applicable processor)」−NAP)である。NAK
応答は、ロック(lock)状態、エラー状態、ないしはオ
ーバーラン(overrun)状態を表示する幾つかの異なっ
たタイプのうちのいずれであっても良い。発信元プロセ
ッサは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ポートにはAcolが用いられている)。Aポー
ト及びBポートの夫々のデータ・ラインはマルチプレク
サ60に接続されており、このマルチプレクサ60は、互い
に競合する2つのワードのうちの優先する方のワード、
或いは(それらの競合ワードが互いに同一の場合には)
その共通ワードを、データ信号C0として、上流側ポート
(Cポート)に接続されているアップ・レジスタ62へス
イッチングして接続する。これと同時に、より高位の階
層のノードから送出されてCポートで受取られた下流方
向データが、ダウン・レジスタ64内へシフト・インさ
れ、そしてそこからシフト・アウトされて、Aポート及
びBポートの両方に出力として発生する。
バイトからなるシリアルな上流方向への信号列のうち
の一方はブロックされ得るわけであるが、しかしながら
それによって上流方向ないし下流方向への余分な遅延が
発生することはなく、そして複数のワードが、ワード・
クロック並びにバイト・クロックの制御の下に、切れ目
のない列を成して、アップ・レジスタ62及びダウン・レ
ジスタ64を通して進められて行くのである。
Aポート及びBポートへ同時に供給された互いに競合
するバイトどうしは、第1及び第2のパリティ検出器6
6、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にパリティ・エラー
が存在しているという条件とは、夫々、▲▼及
びBIPEと表記され、フリップ・フロップの状態によって
表わされる)には、Aポートが優先されている。AIとBI
とに関して以上と逆の論理状態(論理条件)は、この装
置がS2状態へ移行すべき状態(条件)として存在するも
のである。より高位の階層のノードから、その階層にお
いて衝突が発生した旨の表示が発せられたならば、その
表示は、下流方向信号の中に入れられてCOL INとして送
り返されてくる。この装置は、それがS0状態、S1状態、
及びS2状態のうちのいずれの状態にあった場合であって
もS3状態へと移行し、そしてこのコリジョン信号を下流
方向へAcol及びBcolとして転送する。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状態にリ
セットされるということである。
コリジョン信号は複数のプロセッサ・モジュールにま
で戻される。それらのモジュールはこのコリジョン状態
情報を記憶し、そしてアイドル・シーケンスを送信する
動作へと復帰し、このアイドル・シーケンスの送信は競
合において勝利を得たプロセッサが送信を続けている間
中行なわれている。プロセッサは、COL INから▲
▼への遷移を検出し次第、新たな送信を開始するこ
とができるようにされている。更にこれに加えて、プロ
セッサは、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遅延線
101を介して接続されているものとである。これによっ
て、ワード・クロックの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の持続時間と同一に
保持するように作用するが、そのように作用する理由
は、PLO96の位相を進めて同期状態が確立されるように
するにつれて、加算回路92の出力信号(減算「B−A」
を行なった信号)がゼロへ近付いて行くからである。実
際には、破線で示されているように好適な位置より先行
していることも遅れていることもあるA信号の前縁に対
して調節を加えて、このA信号の前縁がワード・クロッ
クの前縁より時間τだけ先行する位置にくるようにす
る。全てのノードにおいて、クロック・アウト信号の前
縁がこの好適公称位置に位置するようになれば、ワード
・クロックどうしの間にゼロ・スキュー状態が存在する
ことになる。従ってネットワークに接続されている夫々
のプロセッサは、あるプロセッサから別のプロセッサま
での経路の全長に関する制約から開放されているが、そ
れは、遅延が累積することが無いということと、伝播時
間に差が生じないということとに因るものである。
二倍周波数のバイト・クロックを発生させるために、
遅延線101によって、遅延時間τcだけ遅れたワード・
クロックが複製されており、この遅延線101もゲート100
へ信号を供給している。従って、第7図中のバイト・ク
ロックと記されている波形から分るように、ワード・ク
ロックの前縁と後縁の両方の位置に、持続時間τcを有
するバイト・クロック・パルスが発生される。このパル
スの発生は、各々のワード・クロックのインタバルの間
に2回づつ生じており、しかも、全てノードにおいて、
ワード・クロックと同期して生じている。以上の説明に
おいては、ノードとノードとの間の伝送ラインによって
発生される遅延は階層から階層への伝送方向がどちら方
向であっても殆ど同一であり、そのため、事実上、この
システム内の全てのワード・クロック並びにバイト・ク
ロックが、互いに安定な位相関係に保たれるということ
を、当然の前提としている。従って局所的に(=個々の
ノードの内部で)発生されるバイト・クロックは、各々
のノードにおいて、メッセージの2バイト・ワード(=
2個のバイトから成るワード)の、その個々のバイトの
ためのクロッキング機能を提供している。
以上の能動ロジック・ノードは、同時に送出されたメ
ッセージ・パケットどうしの間の競合をそのデータ内容
に基づいて決着させるようにしている場合には常に、潜
在的な利点を有するものである。これに対し、例えば、
1981年2月17日付で発行された米国特許第4251879号公
報「デジタル通信ネットワークのための速度非依存型ア
ービタ・スイッチ(Speed Independent Arbiter Switch
for Digital Communication Nbiworks)」に示されて
いるものをはじめとする、大多数の公知にシステムは、
時間的に最初に受信された信号がどれであるのかを判定
することを目指しており、外部に設けた処理回路または
制御回路を使用するものとなっている。
(プロセッサ・モジュール) 第1図の、システム全体の概略図の中に図示されてい
る個々のプロセッサは、夫々、インターフェイス・プロ
セッサ(IFP)14及び16と、アクセス・モジュール・プ
ロセッサ(AMP)18〜23の具体例として示されており、
また、これらのプロセッサは、大まかに複数の主要要素
に再区分してある。これらのプロセッサ・モジュール
(IFP及びAMP)の構成についての更に詳細な具体例は、
第1図の機能的な大まかな再区分との間に対応関係を有
するものとなるが、ただしそればかりでなく、かなり多
くの更なる再区分をも示すものとなる。本明細書で使用
するところの「プロセッサ・モジュール」なる用語は、
第8図に図示されているアセンブリの全体を指すもので
あり、このアセンブリは、以下に説明する任意選択の要
素を備えることによって、IFP或いはAMPのいずれかとし
て機能することができるようになる。また、「マイクロ
プロセッサ・システム」という用語は、マイクロプロセ
ッサ105を内蔵したシステム103を指すものであり、ここ
でマイクロプロセッサ105は、例えば、インテル8086型
(Intel 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及び50b(これらのネットワークは第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.R
AM26″とは、マイクロプロセッサ・システム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のための、メインR
AM107内部のシステム・アドレス空間の割当ての態様は
第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つの異なったマップが
使用されるようになっており、それらのマップは相互に
関連する方式で利用されるものである。メッセージ・パ
ケットの中に内包されている転送先選択ワード(destin
ation selection word:DSW)が、H.S.RAM26″内の専用
の選択マップと共同するようにして用いられる。この転
送先選択ワードは、計16個のビットから成り、そしてそ
のうちの12個のビット・ポジションを占めるマップ・ア
ドレスとその他の4個のビットを占めるマップ選択デー
タとを含むものとされている。H.S.RAMの先頭の1024個
の16ビット・メモリ・ワードは、その各々が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が送信すべきメッセージをも
つようになると、ステータス表示は「送信準備完了(se
nd ready)」に変る。マイクロプロセッサ・システム10
3は、ステータス表示を更新することに加えて、第12図
のワード・フォーマットを用いて「ネクスト・メッセー
ジ・ベクタ」の値をH.S.RAM26″へ入力する。この入力
されたエントリは、該当する出力メッセージをH.S.RAM2
6″のどのロケーションから取り出せば良いかを明示す
るものである。このベクタは、ある特定のTNに関係する
複数の出力メッセージを1本につなげる(=チェーン
(chain)する)ために、ネットワーク・インターフェ
イス120′において内部的に使用されるものである。
以上の機能に関連した機能が、「受信準備完了(rece
ive 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)
に基づいて動作するようになっており、この場合、その
PTNが外部的に、ネットワークからの命令によって指定
されたものであろうとも、また、連続した動作を実行し
ている間に内部的に発生されたものであろうとも、同じ
ことである。マージ動作が実行されているときには、プ
ロセッサ・モジュールは、大域的レファレンス、即ちト
ランザクション・アイデンティティ(=トランザクショ
ン識別するための情報)を利用してその動作を実行して
いるのであり、このトランザクション・アイデンティテ
ィは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が、
「IO GATE」、「RECV GATE」、並びに「SEND GATE」と
称されるタイミング波形(以下、ゲート信号ともいう)
を作り出しており、これらのタイミング波形は、ワード
周期の互いに連続する3等分されたインタバルの夫々を
表示するものである。これらのインタバルには、「IOフ
ェイズ」、「受信フェイズ」、「送信フェイズ」という
該当する名称がつけられている。上記ゲート信号によっ
て定められたこれらのフェイズは、その各々が更に、
「IO CLK」信号、「RECV CLK」信号、並びに「SEND CL
K」信号によって、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)」という用語は、ネ
ットワークから入力してきて循環バッファの中の「PU
T」という格納ロケーションへ入力されるメッセージを
指し示すためにに用いられることもあり、また、この入
力の後に、そのようにして循環バッファ内へ入力された
メッセージをマイクロプロセッサへ転送するが、その転
送のことを指し示すために用いられることもある。この
マイクロプロセッサへの転送が行なわれるときには、
「GET」の値が、マイクロプロセッサ・システムへ転送
すべき受信メッセージの取出しを実行するに際しシステ
ムがどのロケーションから連続した取出し動作を行なう
べきかを指定する。ランダム・アクセス・メモリ168の
アクセスに用いられる複数のアドレス値が、GETレジス
タ172、TOPレジスタ174、PUTカウンタ175、及びBOTTMレ
ジスタ176に夫々入力されている。PUTカウンタ175は、B
OTTOMレジスタ176によって指定されている初期位置から
1づつインクリメントされることによって更新される。
TOPレジスタ174は、もう一方の側の境界の指標を与える
ものである。TOPの値とBOTTMの値とはいずれも、ソフト
ウェア制御によって操作することができ、それによっ
て、受信メッセージ・バッファの大きさとH.S.RAMにお
ける絶対格納ロケーションとの両方を変更することが可
能となっている。PUTレジスタの内容がTOPレジスタの内
容に等しくなったならばPUTレジスタはリセットされてB
OTTOMレジスタの内容と等しくされ、それによって、こ
のバッファを循環バッファとして利用できるようになっ
ている。以上のGETレジスタ、TOPレジスタ、BOTTOMレジ
スタ、並びにPUTカウンタは、入力メッセージ用循環バ
ッファと出力メッセージ完了循環バッファとの両方を管
理するのに用いられている。
GETレジスタ172への入力はソフトウェアの制御下にお
いて行なわれるが、それは、バッファ中においてそのと
き取扱われているメッセージの長さに応じて、次のアド
レス(ネクスト・アドレス)が決定されるからである。
GETレジスタ172、PUTカウンタ175、並びにTOPレジスタ1
74の夫々の出力に接続された比較回路178と179は、オー
バラン状態を検出及び表示するために使用されている。
オーバラン状態はGETの値とPUTの値とが等しい値に設定
された場合や、GETの値をTOPの値より大きな値に設定し
ようとする試みがなされた場合に生じる状態である。こ
れらのいずれの場合にも、オーバランのステータス表示
が送出されることになり、しかもこのステータス表示は
オーバラン状態が訂正されるまで送出され続けることに
なる。
「受信メッセージ」循環バッファを構成し動作させる
際の、以上のような連続的な方式は、このシステムに特
に適した方式である。衝突(コンフリクト)を回避する
ための相互チェックを可能としておくことによって、
「PUT」をハードウェアで管理し、且つ「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、送信データ長さカウンタ2
24、及び送信キー長さカウンタ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)に係るプライマリ・メッセ
ージ(一次メッセージ)のDATA(データ)、STOP(停
止)、STATUS(ステータス)、RELQ(放棄)、ASGN(割
当)及びSTRT(開始)と、それに対応する応答メッセー
ジのLOCK(ロック)、TNER(TNエラー)、OVER(オーバ
ラン)、第12図に対応する9種の異なったステータス応
答、ACKR(確認応答)及びNAPR(否対応プロセッサ応
答)との組合せ関係を示す。テーブル内の点線は、点線
上が特定の応答を示すものであり、点線下が特定の処理
を示す。テーブル内で使用されているシンボルの意味
は、テーブルの下に記載されている。一次メッセージ
は、データ・メッセージ又は制御メッセージに拘わらず
必ずトランザクション番号(TN)を持つ。
ネットワークを介してあるTNを有する一次メッセージ
送信されてくると、各ステーションのネットワーク・イ
ンターフェイス・セクション120は、そのTNに係るサブ
タスクの処理状態等に応じて各種の応答メッセージを発
生させる。本願発明に係るシステムにおいて用いられる
応答メッセージは、肯定的応答(ACK)、否定応答(NA
K)、又は自己が要求のデータ・リソースを有していな
い旨の応答である非対応プロセッサ応答(NAP)が用い
られる。NAK応答は、数種の異なったタイプがあり、停
止(LOCK)、TNエラー(TNER)、バッファ等のオーバー
ラン(OVER)等の要因による。
ここではさらに、自己のステーションにおけるプロセ
ッサが特定タスクの処理に関して送信の準備完了状態を
表すステータス肯定応答(SACK)を用いている。また、
このSACKを表す信号は、特定の一次メッセージと共に用
いられて各種プロトコル、例えばシステムの初期設定、
ロックアウト処理を行わせるのに用いる。SACK応答は、
第11図に示すとおり、それぞれ異なった意味を表示する
9つのステータス・レベルを持ち、そのワード・フォー
マットは第12図に示すとおりである。複数のTNに係る複
数のサブ・タスク処理を担当しているステーションにお
いて、各々のサブ・タスク処理のステータス・レベルを
処理経過に応じて常時アップデートしておくのは、該ス
テーションにおけるプロセッサの責任である。第12図に
おいて、「ビズィ」と「ウェイティング」の状態とは、
共に割り当てられた特定のサブタスクに関し、次段のフ
ェイズに移りつつ状態であることを表す。
プロセッサ・モジュール103が送信すべきあるメッセ
ージを有していたとすると、そのステータスは「送信準
備完了」である。「受信準備完了」とは、予め設定され
ていたTNを有するメッセージの受信に対し、当該プロセ
ッサ・モジュールが受入可能であることをあらわす。用
いられるべき複数のTN値は予め各ステーションのH.S.RA
M内に初期設定されているが、動作中に放棄されたり、
新たなTNが割り当てられたりされる。「アサインド」と
「アンアサインド」は、該ステーションにおいてはその
TNが設定されているか否かの応答である。
このように、送信メッセージが如何なるタスクに係る
ものであるかをシステム内の各ステーションが同義的に
認識させるTNが含まれることから、あるメッセージがネ
ットワークにおいて一括伝送されてきても、個々のステ
ーションにおいては該伝送されてきたメッセージがどの
タスクに関するものであるかが特定できるので、複数の
タスクをシステム内において同時に処理できるのであ
る。
第17図と第19図のいずれにおいても、条件判断に関し
ては、その多くのものが複数の判断を同時に実行するこ
とができるようになっているが、これに対して状態ステ
ップの方は、1つづつ変更されていくようになってい
る。いずれの場合においても、送信動作と受信動作とは
外部からの制御を必要せずに定められた進行速度で進め
られて行く動作であり、それは、メッセージの構成とネ
ットワークの動作方式とが既に説明したようになってい
るためである。
典型的なプロセッサ・システムやマルチプロセッサ・
システムにおいて採用されている多くの特徴には、本発
明に密接な関係を持ってはいないものがあり、従ってそ
れらについては特に記載しない。それらの特徴の中に
は、パリティ・エラー回路、割込み回路、それに、ワッ
チドッグ・タイマや極めて多様な記験機能等の活動をモ
ニタするための種々の手段等がある。
ここで、本願発明に係るシステムにおいて複数のタス
クを同時に取り扱う場合について、これまでの記載を総
括する。
本願発明に係るコンピューティグ・システムを構成す
る各プロセッサ間で送受信される全てのメッセージは、
第3図に示すようなメッセージ・フォーマットから成
り、図3A及びBに示すとおり、その先頭部分には6ビッ
トのコマンド・コード及び10ビットのタグ・フィールド
から成るコマンド・ワードを有する。さらに、第11図に
示すように、10ビットの該タグ・フィールドにおいて
は、メッセージが、一次メッセージであればトランザク
ション・ナンバ(TN)を、その一次メッセージに対する
応答メッセージであれば発信元ID番号(OPID)を必ず持
つ。あるタスクを所定(単数又は複数)のプロセッサに
処理させるために通信ネットワークに送出されるメッセ
ージは一次メッセージであり、該タスクはこのTNという
識別番号により同定されることとなる。各プロセッサに
おいて使用される予定の複数のTN値は、各構成プロセッ
サにおける高速RAM(H.S.RAM)中の所定アドレス(図8
においてはH.S.RAMにおける0400乃至0500)に通常初期
設定される。また該TN値は、一次メッセージとして所定
の指令コード(コマンド・コード)により、途中で新た
なTNを割り当てたり、放棄することができる(第11
図)。
一次メッセージは、TNの他、さらに該メッセージが受
信されるべき単数又は複数の転送先プロセッサを直接的
又は間接的に指示するための転送先選択ワード(DSW)
を有する(第3図A及びB)。従って、TN、DSW及びコ
マンド・コードを様々に組み合わせて使用することによ
り、システム内相互通信機能の広範な融通性が達成され
得るのである。一次メッセージは大きく2種類に分類さ
れる。一つは、あるタスクを分散処理させるため又はあ
るタスクのデータを伴う処理結果を他のプロセッサに伝
送するためのものであり、可変長データのキーフィール
ド・データ・メッセージとデータ・フィールドを有する
「データ・メッセージ」(第3図A、第11図)と呼ぶ。
他の一つは、該タスク・メッセージの処理結果のステー
タスを問い合せたり、該タスク・メッセージの送信前に
新たなTNを割り当てたりまたは使用済みのTNを放棄した
り、前記ステータスの問い合せの結果ある特定のTNに係
るタスク処理に関連する全プロセッサから肯定的応答を
受信した場合に、該処理結果を一斉に送信すべき旨の指
令であるマージ開始若しくはその停止を指示するための
「制御/ステータス・メッセージ」(第3図B、第11
図)である。本実施例においては、第11図に示すよう
に、それぞれ異なった特定のTN値を割り当てた前記デー
タ・メッセージ(一次メッセージ)の送出に11個の指令
コード(「11」乃至「1B」)を同時に使用できるように
している。
前記データ・メッセージまたはステータス・メッセー
ジの如何に拘わらず自己宛に送出されてきた最終の一次
メッセージのコマンド・コード内のタグ部分に記載され
ているTNが現在TNとして扱われ、この値は各プロセッサ
におけるネットワーク・インターフェイス(第8図及び
第13図)内の現在TNカウンタ(206)内においてインタ
ーフェイス自身により更新・格納される。システム内の
各構成プロセッサは、複数のタスク処理に関連していた
としても、上述のとおり、一次メッセージには必ずTNを
含むので、これにより如何なるタスクに係る制御若しく
はステータス応答が要求されているのかを認識でき、要
求されたTNに係る応答を応答メッセージのフォーマット
(第3図C、第11図の指令コード「00」乃至「0F」)で
送出する。応答メッセージに係る指令コードは一次メッ
セージに係る指令コードよりも若い数値であるから、ネ
ットワーク内において優先的に伝送され、その発信元は
OPIDによって特定される。
第8図のブロック図に示すように、各ステーションに
おいては、ネットワーク・インターフェイス120は、プ
ロセッサモジュール103とは別個に、能動ロジック・ネ
ットワークと同期して動作しており、全二重通信構成の
通信ネットワークから送られてきたメッセージはH.S.RA
Mの所定アドレスに順次格納される。また、同インター
フェイスは、受信と共に所定のTNに係る応答を該ネット
ワークのタイミング(第7図)で送出するのである。ス
テータス要求等を受けた場合は、現在TNに係る応答メッ
セージの送出を最優先する。各ステーションにおけるプ
ロセサ・モジュール103は、該ステーション内のH.S.RAM
内に格納されているメッセージを順次自己のメインRAM1
07内に取り込み、必要な処理若しくは検索を行いその結
果を出力メッセージとして前記H.S.RAM内の所定アドレ
スに順次格納しておく。このように、プロセッサ・ムジ
ュール103は、ネットワークからのメッセージの受信及
び該メッセージのH.S.RAM内への格納及び処理結果若し
くは応答メッセージのネットワークへの送出制御には直
接関係せず、これらはネットワーク・インターフェイス
が担当している。
ネットワーク・インターフェイス120、H.S.RAM26及び
ムロセッサ・モジュール103相互間は、時分割バス(第1
4図)によって接続されているので、ネットワークと同
期して動作する該インターフェイス120とプロセッサ・
モジュール103はそれぞれ独自のタイミングで動作して
いる。つまり、それぞれが相手の動作に関わり合うこと
なくH.S.RAMをアクセスすることができるのである。H.
S.RAM内に格納されているDSW,TN、データメッセージ・
ポインタ及び応答ディレクトリの初期設定、割り振り、
変更等は、ネットワークを介して他のプロセッサが行う
ことができるし、当該ステーション内のプロセッサ103
からのアクセスにより行うこともができる。
このように、システムを構成する各ステーションは、
同時に複数のタスク処理に関連していたとしても、受信
した一次メッセージ内のTNに基づいて、該一次メッセー
ジが如何なるタスクに係る処理、検索若しくはステータ
ス応答を要求されているのかを認識でき、要求されたTN
に係る応答を所定の応答メッセージのフォーマットにて
発信元IDを付して応答できるのである。該一次メッセー
ジの発信元プロセッサはこれらの応答メッセージがどの
プロセッサから送られてきたかを該発信元IDにより認識
するのである。
このように、あるプロセサが所与のタスクに対して同
一のTNを付した複数のサブタスクを一次メッセージとし
てDSWにより指定した関連プロセッサに伝送して該サブ
タスクの処理を各々の関連プロセッサに割り当てる場
合、それぞれの関連プロセッサのステータス問合わせ
(ステータス・リクエスト)及び処理結果の送出要求
(マージ開始)等は、すべて該サブタスクに付されたTN
を付して行われる。各ステーションにおいては自己に割
り当てられたサブタスクの処理を行い、ステータスと共
に自己のH.S.RAM内の所定アドレスのメモリ(循環バッ
ファ)に格納しておく。特定のTNに係るステータス応答
又は処理結果送出のリクエストを受けた場合は、各ステ
ーションにおけるネットワーク・インターフェイス120
は該TNを現在TN(PTN)として、該TNに係る応答又は処
理結果をネットワーク手段50に一斉に送出する。ネット
ワーク手段に送出された応答又は処理結果はネットワー
ク内のノードを通過する毎に優先権プロトコル(第2
図)に従って選択(ソート)され、該サブタスク処理の
要求元プロセッサには、該TNに係るサブタスクの処理結
果がそのメッセージ・コードの優先度の高い順に連続し
て(マージされて)送信されてくることとなる。当該処
理結果は、該ステーションにおけるネットワーク・イン
ターフェイス120にて、H.S.RAM内の所定範囲のアドレス
に一連の処理結果として格納される。
(システムの動作の具体例) 以下に説明するのは、第1図、第8図、及び第13図を
総合したシステムが、ネットワーク及びH.S.RAMと協働
しつつ種々の動作モードで内部的にどのように働くかを
示す幾つかの具体例である。それらの具体例は、優先順
位規定と、ここで採用されているアドレッシング方式
と、トランザクション・アイデンティティとの間の相互
関係が、どのようにして局所的制御と大域的相互通信と
の両方の機能を提供するのかを示すものである。
プライマリ・データ・メッセージの送受信 ここでは、その他の図に加えて更に第16図についても
説明するが、第16図は、プライマリ・メッセージの最終
的な受入れに関わる諸状態の、簡略化した状態ダイアグ
ラムである。メッセージがバッファ或いはメモリに受信
されても、図示の論理的状態が満たされないうちは、受
入れ(アクセプタンス)が達成されたことにはならな
い。図ではイベント(事象)のシリアルな列として示さ
れているが、本来は複数の判定がパラレルに、即ち同時
に行なわれるようになっており、それは、夫々の条件が
互いに関与しないものであったり、或いは、ある動作段
階へ達するための中間段階の飛越しが、回路によって行
なわれたりするためである。
第1図のネットワークの上のメッセージは、第13A図
の受信ネットワーク・データ・レジスタ146の中を、EOM
状態が識別されるまでの間通過させられ、その状態が識
別されたときに、メッセージが完了したことが認識され
る。「ロック(LOCK)」状態が存在している場合には、
システムは第8図のH.S.RAM26″の中の応答ディレクト
リを参照して、NAK/LOCK拒絶メッセージを送出する。
そうでない場合、即ち「ロック」状態が存在していな
い場合には、システムはマップ比較チェックへ移り、こ
のチェックは第13A図に示したインターフェイスの中のD
SW管理セクション190の内部で実行される。「マップ出
力=1」で表わされる、適切な比較結果が存在している
場合には、システムはそのメッセージを受信し続けるこ
とができる。そのような比較結果が存在していない場合
には、そのメッセージは拒絶され、NAPが送出される。
該当するマップが判定されたならば、それによってシ
ステムはTNステータスを検査する準備が整ったことにな
り、このTNステータスの検査は第8図に示されているTN
のディレクトリを参照することによって行なわれる(こ
こでTNステータスとは厳密には所与のTNに関するプロセ
ッサのステータスのことであり、従ってH.S.RAM内のTN
アドレスに格納されているエントリによって表わされて
いるレディネス状態のことである)。更に詳しく説明す
ると、このTNステータスの検査は、局所的ステータス
(=個々のプロセッサ・モジュールのステータス)が
「受信準備完了」であるか否かを判定するために行なわ
れる。ここでは、先行するあるプライマリ・メッセージ
によってTNの割当てが既になされているものと仮定して
いる。
この検査の結果、TNが「実行終了(done)」状態、
「非関与プロセッサ」状態、または「イニシャル」状態
のいずれかのステータスであることが判明した場合に
は、「NAP」拒絶メッセージが送出される(ここでTNと
いっているのは、厳密にはH.S.RAM内のTNアドレスに格
納されているエントリのことであるが、以下、混同のお
それのない限りこのエントリのことも単にTNと称するこ
とにする)。もしこの判明したステータスが、他の規定
外の状態であったならば、送出される拒絶メッセージは
「NAK/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」だけ進められ、このオーバラン状態
は、PUTが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
=PUTとなっている場合には、処理せねばならない出力
メッセージはもはや存在していない。そうでない場合に
は、更に別の出力メッセージが成功裏に送信を完了した
状態にあるので、それらの出力メッセージを処理せねば
ならない。この処理には、H.S.RAMの出力バッファの格
納空間を空きスペースに戻すことが含まれており、従っ
てこのスペースを他のパケットのために再使用すること
ができる。
ここで注目しておくべき重要なことは、出力メッセー
ジ完了循環バッファと入力メッセージ循環バッファとは
互いに別個のものであり、そのためこれら2つの循環バ
ッファは、夫々が別々のPUT、GET、TOP、及びBOTの各ポ
インタによって管理されているということである。構成
のしかたによっては、第13図に示されているように、こ
れら両方の循環バッファが、循環バッファ管理ハードウ
ェア170を共用するようにもできるが、そのような構成
が必須なわけではない。
初期設定の手順 各プロセッサ・モジュールは、そのプロセッサ・モジ
ュール自身の高速ランダム・アクセス・メモリ168(第1
3図)の内部の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 identifica
tion:DPID)を入れて使用する。第8図を参照しつつ説
明すると、このDPIDの値を用いて各々の受信プロセッサ
・モジュールのH.S.RAM26″の選択マップ部分がアドレ
スされると、転送先として意図された特定のプロセッサ
・モジュールだけが、肯定的な応答を発生してそのメッ
セージを受入れる。肯定応答が送信され、しかもそれが
最終的に成功裏に受信されたならば、両者のプロセッサ
は、要求されている将来の動作のいずれでも実行できる
状態になる。
ある1つのメッセージを、ある1つの制御プロセスに
関係する、1つのクラスに属する複数のプロセッサが受
信すべき場合には、DSW内のマップ・ニブルとマップ・
アドレスとによって、H.S.RAMの選択マップ部分の中の
対応するセクションが指定される。そして、全ての受信
プロセッサが夫々に肯定応答を送出し、それらの肯定応
答は、発信元プロセッサ・モジュールへ到達するための
競合を、この通信のための往復送受信が最終的に完了す
るまで続けることになる。
全域ブロードカスト・モードのプロセッサ通信は、プ
ライマリ・データ・メッセージ、ステータス・メッセー
ジ、制御メッセージ、並びに応答メッセージの、各メッ
セージの通信に用いることができる。優先順位プロトコ
ルと、優先権を付与する機能を備えたネットワークと
の、両者の固有の能力によって、その種のメッセージを
その他の種類のメッセージのシーケンスの中に容易に挿
入できるようになっている。
ハッシング・モードのプロセッサ選択は、リレーショ
ナル・データベース・システムにおけるデータ処理のタ
スクを実行する際には、他から飛び抜けて多用されるプ
ロセッサ選択方式である。一次的データ(=バックアッ
プ用ではないメインのデータ)についての互いに素の
(=同一の要素を共有しない)複数のデータ部分集合
と、バックアップ用データについての互いに素の複数の
データ部分集合とが、適当なアルゴリズムに従って、異
った複数の二次記憶装置の中に分配されている。1つの
プロセッサが一次的データの部分集合を分担し別の1つ
のプロセッサがバックアップ用データの部分集合を分担
しているためにそれら2つのプロセッサが同時に応答し
た場合には、一次的データについてのメッセージの方に
優先権が与えられる。この条件が補償されるようにする
ためには、優先順位のより高いコマンド・コード(第12
図参照)を選択するようにすれば良い。データベースの
信頼性及び完全性の維持も、以上の様々なマルチプロセ
ッサ・モードを利用することによって達成され、その場
合、発生した個々の状況に対して最も有利なようにそれ
らのモードが適用される。例を挙げるならば、一次的デ
ータのある部分集合を分担している二次記憶装置が故障
した場合には、特別のプロセッサ対プロセッサ通信を利
用してそれを更新することができる。またエラーの訂正
やデータベースの一部分のロールバックは、これと同様
の方式で、或いはクラス・モードで動作させることによ
って、行なうことができる。
トランザクション・ナンバの例 トランザクション・ナンバという概念により、マルチ
プロセッサ・システムの制御のための新規にして強力な
ハードウェア機構が得られている。本システムにおいて
は、トランザクション・ナンバは「大域的セマフォ」を
構成しており、また、ネットワークに対するメッセージ
の送受信と、複数のプロセッサに分配されたある1つの
所与のタスクのレディネス状態の確認との夫々におい
て、重要な役割りを果たしている。
トランザクション・ナンバ(TN)は、H.S.RAM26の中
の16ビット・ワードとして物理的に実現されている。こ
のワードは、様々な機能を果たせるように、第12図に示
すようなフォーマットとされている。TNはH.S.RAMに格
納されるため、マイクロプロセッサ105とネットワーク
・インターフェイス120とのいずれからもアクセスする
ことができる。
大域的セマフォ 「セマフォ」という用語は、コンピュータ科学関係の
文献において、互いに非同期的に実行される複数の処理
の制御に用いられる変数を指し示すための用語として、
一般的に使用されるようになっている。セマフォは、中
断されることのない1回の操作でそれを「テスト・アン
ド・セット」することができるという性質をもってい
る。
一例として、「アンアサインド(UNASSIGNED:割当て
がなされていない状態)」と、「アサインド(ASSIGNE
D:割当てがなされている状態)」との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によるT
Nのアクセスとが、決して同時に行なわれないようにし
ているということがある。本実施例においては、これ
は、受信状態制御回路260から読出し/書込み状態制御
回路270へ送られている信号によって達成されており、
この信号は、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が、受信中のメッセージは当該ネットワーク・イ
ンターフェイスに組合わされているマイクロプロセッサ
105によって処理されることを意図したものか否かの判
定を、迅速に下せるようにするための複数のモードであ
る。既に説明したように、受信メッセージの中に含まれ
ている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つへ渡される(即ちコー
ディネータの仕事が委任される)。以上の複数の関与プ
ロセッサ(それら以外の全てのプロセッサ・モジョール
はそのトランザクション・ナンバに関しては非関与プロ
セッサである)の各々は、このように規定されたマージ
のタスクに関するメッセージ・パケットを受信してそれ
に対する肯定応答を送出した後には、そのプロセッサ自
身のサブタスクの実行を、そのステータス・レベルを適
宜更新しながら進行させて行く。そして、マージ・コー
ディネータの仕事を委任されているプロセッサがそれ自
身のタスクを終了したならば、そのプロセッサは、その
他の全ての関与プロセッサに対して、当該トランザクシ
ョン・ナンバに関するステータスを知らせるよう、ステ
ータス・リクエストを送出し、それによって、関与プロ
セッサのうちでレディネス状態が最低のプロセッサを表
示している応答を受取ることができる。マージ動作の制
御は、このレディネス状態が最低のプロセッサへ渡さ
れ、この後には、このプロセッサが、自身の作業が終了
した際にその他全ての関与プロセッサをポーリングする
ことができるようになる。以上のプロセスは、必要とあ
らば、関与プロセッサの全てが準備完了状態となってい
ることを示す応答が受信されるまで、続けさせることが
できる。そのような応答が受信された時点においてコー
ディネータとして働いていたプロセッサは、続いて、DS
Wを利用して当該クラスに属している関与プロセッサを
識別しつつ、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」)と、マージ・モード(「TN
0」以外の全てのTN)とを、選択に応じて区別するとい
う性質を本来的に備えている。更に、メッセージ・パケ
ットにはDSWが含まれている。このDSWは、実質的に、転
送先プロセッサとマルチプロセッサ動作のモードとを指
定するものであり、この指定は、特定のプロセッサの指
定、複数のプロセッサから成るクラスの指定、或いはハ
ッシングの指定によって行なわれ、本実施例において
は、ハッシングは、リレーショナル・データベースの一
部分へのハッシングである。ネットワーク50を介してタ
ーゲット・プロセッサ(指定転送先プロセッサ)へブロ
ードカストされるメッセージ・パケットは、そのプロセ
ッサにおいて局所的に受入れられて(=そのプロセッサ
自身への受入れが適当であるとの判断がそのプロセッサ
自身によってなされて)、そして、受信した旨の認証が
肯定応答(ACK)によって行なわれる。プロセッサ14、1
6及び18〜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との間で何回かの「タスク・リクエスト
/タスク応答」サイクルを実行することができ、また、
データを実際に処理して、ホスト・コンピュータからの
リクエストを満足させることができる。以上の処理シー
ケンスにおいては、上に挙げたタスク・リクエストとタ
スク応答とから成るサイクルが用いられ、また、そのサ
イクルは任意の長さに亙って継続することがてきる。続
いて、IFP14ないし16は、IFPインターフェイスを介して
ホスト・コンピュータと通信する。ホスト・コンピュー
タへのこの応答は、単に、ホスト・コンピュータ10また
は12が次の複雑な問合せを発生するために必要とするデ
ータを提供するためのものであることもある。
(独立型マルチプロセッサシステム) 第1図に関連して先に説明した本発明に係るシステム
の基本的実施例は、ホスト・コンピュータ並びに現在使
用されているホスト・コンピュータ用のソフトウェア・
パッケージと組み合わせて使用することのできる、後置
プロセッサ(バックエンド・プロセッサ)の例を示すも
のである。しかしながら、既に言及したように、本発明
は広範な種々の処理用途において、また特に、大容量の
中央処理能力を必要とすることなく処理タスクを容易に
細分及び分配できるような種類の処理用途において、格
別の利点を有するものである。第20図は、本発明に係る
独立型(スタンド・アローン型)マルチプロセッサ・シ
ステムの簡単な構成の一実施例を図示している。第20図
において、複数のプロセッサ300はいずれもインターフ
ェイス302を介して能動ロジック・ネットワーク304へ接
続されており、このネットワークは既に説明したものと
同様のネットワークである。データの完全性を強化する
ために、冗長性を有する能動ロジック・ネットワーク30
4を採用するようにしても良い。この実施例において
も、プロセッサ300には16ビット・マイクロプロセッサ
・チップを使用することができ、また、充分な容量のメ
インRAMメモリを組込むことができるようになってい
る。この図には9つのプロセッサ300のみが示されてお
り、また、それらのプロセッサの各々には異なった種類
の周辺機器が接続されているが、これは、このシステム
の多用途性を示すためである。実際には、このシステム
は更に多くのプロセッサをネットワークに備えることに
よりはるかに効率的になるのであるが、しかしながら、
比較的少数のプロセッサしか備えていない場合であって
も、システムの信頼性とデータの完全性と関して格別の
利点が得られるものである。
この実施例においては、複数のプロセッサ300を不便
のない充分な距離をとって互いから物理的に離隔させる
ことができ、それは、データ転送速度が先の実施例につ
いて述べた速度である場合にノード間の最大間隔が28フ
ィート(5.5m)にもなるため、大規模なアレイを成す複
数のプロセッサを、建物の1つのフロア、ないしは隣接
する幾つかのフロアの上に、むやみに込み合うことのな
いように設置して、利用することができるからである。
独立型システムでは、先に説明した後置プロセッサの
実施例の場合と比較して、周辺機器コントローラ並びに
周辺機器それ自体に、はるかに多くの種類のものが用い
られる。ここでは便宜的に、個々の入出力デバイスは、
夫々が別個のプロセッサに接続されているものとする。
例えば、キーボード312とディスプレイ314とを備えた入
出力端末装置310は、端末コントローラ320を介して、同
端末装置310のためのプロセッサ300に接続されている。
ただし、比較的動作速度が遅い端末装置の場合には、か
なりの規模の端末装置ネットワークを1個の16ビット・
プロセッサで制御することも不可能ではない。この図示
の入出力端末装置は、手動操作キーボード等の手動操作
入力処理装置がどのようにしてシステムに接続されるの
かについての一例を示しているにすぎない。プロセッサ
300の処理能力を利用してこの端末装置310をワードプロ
セッサとして構成することもでき、そしてこのワードプ
ロセッサが、ネットワーク304を介してデータベースや
他のワードプロセッサ、或いは種々の出力装置と通信で
きるようにすることもできる。例えばリジッド・ディス
ク・ドライブ322等の大容量二次記憶装置を、ディスク
コントローラ324を介して、その記憶装置のためのプロ
セッサに接続することができる。また、容易に理解され
るように、大規模システムには、より多数のディスク・
ドライブを用いたり、或いは異なった形態の大容量記憶
装置を用いるようにすれば良い。プリンタ326並びにプ
ロッタ330等の出力装置は、夫々、プリンタ・コントロ
ーラ328とプロッタ・コントローラ332とを介して、それ
らの出力装置のためのプロセッサ300にインターフェイ
スしている。不図示の他のシステムとの間の対話は通信
コントローラ338を介して、そして通信システム336を経
由して行なわれ、通信システム336としては例えば、テ
レタイプ・ネットワーク(TTY)や、更に大規模なネッ
トワークのうちの1つ(例えばエサーネット(Etherne
t))等が用いられる。プロセッサ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)発明者 デビツド・ヘンリイ・ハートク アメリカ合衆国カリフオルニア州ロス・ アンゼルス・サウス・ジエネシー1427 (72)発明者 リチヤード・クラレンス・ストツクトン アメリカ合衆国カリフオルニア州ノース リツジ・メリオン・ドライブ19005 (72)発明者 マーチン・キヤメロン・ワトソン アメリカ合衆国カリフオルニア州ノース リツジ・キヤブリオール・アベニユー 11112 (72)発明者 デビツド・クロンシヨウ アメリカ合衆国カリフオルニア州トラン ス・タワーズ・ストリート5635 (72)発明者 ジヤツク・エバード・シエマー アメリカ合衆国カリフオルニア州ロス・ アンゼルス・オーシヤーノ・ドライブ 270 (56)参考文献 米国特許4251879(US,A) IBM Technical Dis closure Bulletin22 (12)P.5450−5452(1980)

Claims (6)

    (57)【特許請求の範囲】
  1. 【請求項1】ネットワーク手段により相互接続された複
    数のプロセッサにおいて所定のタスクに対する複数のサ
    ブタスクを処理し、処理して得られたメッセージ・パケ
    ットを正しい順序でマージする方法であって、 (a)前記サブタスクを個別に割当てる為のサブタスク
    割当てメッセージを、前記ネットワーク手段を介して前
    記複数のプロセッサへ送出するステップと、 (b)前記複数のプロセッサの各々において、割当てら
    れたサブタスクを非同期的に実行処理し、割当てられた
    サブタスクに応じた処理済みメッセージ・パケットを発
    生するステップと、 (c)前記処理済みメッセージ・パケットを個々のプロ
    セッサにおいて、所定の優先順位に従う順番に並べて連
    結するステップと、 (d)前記ネットワーク手段を介し、前記複数のプロセ
    ッサへ同時にマージ開始命令を送出するステップと、 (e)同時に個々のプロセッサから当該プロセッサにお
    いて最高の優先権を有するメッセージ・パケットを前記
    ネットワーク手段上に送出し、且つ、該ネットワーク手
    段により、それらの同時送出メッセージ・パケットのデ
    ータ内容に従ってそれらの同時送出メッセージ・パケッ
    トの中の1つのメッセージ・パケットに最優先権を付与
    してこの最優先権の付与されたメッセージ・パケットの
    伝播を継続させるステップと、 (f)前回の優先権の付与において敗退したメッセージ
    ・パケットと新たなメッセージ・パケットとによる前記
    同時送出と前記優先権付与とを、当該タスクに関する全
    てのメッセージ・パケットが正しい順序で送出を完了さ
    れるまで、反復して行うステップと、 からなる、マルチプロセッサ・システムにおけるメッセ
    ージ・パケットのマージ方法。
  2. 【請求項2】個々の前記サブタスク割当てメッセージに
    は、当該サブタスクに係るタスクの同一性を認識するた
    めの識別コードを含む、特許請求の範囲第1項記載のマ
    ルチプロセッサ・システムにおけるメッセージ・パケッ
    トのマージ方法。
  3. 【請求項3】前記(e)のステップ中に、マージ動作の
    一時停止を行うためのコマンド・メッセージを送出する
    ステップと、該マージ動作の再開を行うためのコマンド
    ・メッセージを送出するステップとを含む、特許請求の
    範囲第1項記載のマルチプロセッサ・システムにおける
    メッセージ・パケットのマージ方法。
  4. 【請求項4】前記(c)のステップ後であって前記
    (d)のステップ前に、前記複数のプロセッサのレディ
    ネス状態を判定するステップと、該レディネス状態が最
    低のプロセッサへマージ動作の制御を渡すステップとを
    更に含み、このレディネス状態が最低のプロセッサが、
    自らのタスクの分担部分を処理完了したときに、マージ
    を開始する事が可能か否かの確認を行うようにした、特
    許請求の範囲第1項記載のマルチプロセッサ・システム
    におけるメッセージ・パケットのマージ方法。
  5. 【請求項5】前記(e)のステップにおいて、メッセー
    ジ・パケットを前記ネットワーク手段上に送出する際、
    自らのメッセージ・パケットの送出を完了したプロセッ
    サの各々からエンド・オブ・ファイル・データを送出す
    るステップと、全ての関連プロセッサがエンド・オブ・
    ファイル・データを送出完了したときにエンド・オブ・
    マージ・データを送出するステップとを更に含んでい
    る、特許請求の範囲第1項記載のマルチプロセッサ・シ
    ステムにおけるメッセージ・パケットのマージ方法。
  6. 【請求項6】前記(c)のステップにおいて、複数のサ
    ブタスクの処理済みメッセージ・パケットをネクスト・
    メッセージ・ベクタと共に自己のバッファ・メモリ内に
    順列的に格納しておくために、個々のプロセッサにおけ
    るメッセージ・パケットの連なり方であるメッセージ・
    パケットの局所的チェーンを表示するステップを更に含
    んでいる、特許請求の範囲第1項記載のマルチプロセッ
    サ・システムにおけるメッセージ・パケットのマージ方
    法。
JP1234501A 1981-04-01 1989-09-07 マルチプロセッサ・システムにおけるメッセ−ジ・パケットのマ−ジ方法 Expired - Lifetime JP2555451B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US250022 1981-04-01
US06/250,094 US4445171A (en) 1981-04-01 1981-04-01 Data processing systems and methods
US06/250,022 US4412285A (en) 1981-04-01 1981-04-01 Multiprocessor intercommunication system and method
US250094 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
JPH02138656A JPH02138656A (ja) 1990-05-28
JP2555451B2 true JP2555451B2 (ja) 1996-11-20

Family

ID=26940538

Family Applications (13)

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

Family Applications Before (5)

Application Number Title Priority Date Filing Date
JP1234491A Expired - Lifetime JP2555450B2 (ja) 1981-04-01 1989-09-07 マルチプロセッサ・システム
JP1234493A Granted JPH02118747A (ja) 1981-04-01 1989-09-07 メッセージ伝送ネットワーク、バス・ネットワーク、及びメッセージを複数のプロセッサヘブロードカストする方法
JP1234495A Expired - Fee Related JPH0792791B2 (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 マルチプロセッサシステム及びその利用方法

Family Applications After (7)

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

Country Status (1)

Country Link
JP (13) JP2555450B2 (ja)

Families Citing this family (9)

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

Family Cites Families (5)

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

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
IBM Technical Disclosure Bulletin22(12)P.5450−5452(1980)

Also Published As

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

Similar Documents

Publication Publication Date Title
EP0233993B1 (en) Message transmission network
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
US4945471A (en) Message transmission system for selectively transmitting one of two colliding messages based on contents thereof
US5276899A (en) Multi processor sorting network for sorting while transmitting concurrently presented messages by message content to deliver a highest priority message
US5859981A (en) Method for deadlock-free message passing in MIMD systems using routers and buffers
JP2002517035A (ja) リアルタイムスケジューリングロジックおよび時間確定的アーキテクチャを使用する分散コンピューティング環境
JP2555451B2 (ja) マルチプロセッサ・システムにおけるメッセ−ジ・パケットのマ−ジ方法
CA1198523A (en) Multi-processor intercommunication system and method
Liu et al. Decoupling control and data transmission in RDMA enabled cloud data centers
Marovac On interprocess interaction in distributed architectures
Concepcion Trans. Nat. Acad. Sci & Tech.(Phils.) 1987.9: 51� 63
Kawsar et al. An efficient token based algorithm for mutual exclusion in distributed system
Zheng et al. A new backup model based on SAN system