JPH05324573A - マルチプロセッサ・システム、同システムにおけるメッセージの転送経路制御システムとその方法及びデータ処理方法 - Google Patents

マルチプロセッサ・システム、同システムにおけるメッセージの転送経路制御システムとその方法及びデータ処理方法

Info

Publication number
JPH05324573A
JPH05324573A JP3263081A JP26308191A JPH05324573A JP H05324573 A JPH05324573 A JP H05324573A JP 3263081 A JP3263081 A JP 3263081A JP 26308191 A JP26308191 A JP 26308191A JP H05324573 A JPH05324573 A JP H05324573A
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.)
Granted
Application number
JP3263081A
Other languages
English (en)
Other versions
JP2651473B2 (ja
Inventor
Philip M Neches
フィリップ・マルコム・ネチス
David H Hartke
デビッド・ヘンリイ・ハートク
Richard C Stockton
リチャード・クラレンス・ストックトン
Martin C Watson
マーチン・キャメロン・ワトソン
David Cronshaw
デビッド・クロンショウ
Jack E Shemer
ジャック・エバート・シエマー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Teradata Corp
Original Assignee
Teradata Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US06/250,094 external-priority patent/US4445171A/en
Priority claimed from US06/250,022 external-priority patent/US4412285A/en
Application filed by Teradata Corp filed Critical Teradata Corp
Publication of JPH05324573A publication Critical patent/JPH05324573A/ja
Application granted granted Critical
Publication of JP2651473B2 publication Critical patent/JP2651473B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 【目的】 複数のプロセッサを備えるマルチプロセッサ
・システムにおいて、プロセッサ間のメッセージの転送
経路を制御し、データ処理をなす。 【構成】複数のプロセッサ・モジュールを用いてデータ
を処理するために、属性を表わす属性表示メッセージを
内包している情報パケットを上記複数のプロセッサ・モ
ジュールの全てへ同時にブロードカストし、該プロセッ
サ・モジュールにおいて上記情報パケット内の命令を実
行すべき個々のプロセッサ・モジュールを該情報パケッ
ト内の上記属性表示メッセージに基づいて判定し、上記
複数のプロセッサ・モジュールの全てへ同時にブロード
カストされる属性表示メッセージを内包している処理済
みの情報パケットを発生することを含むことから成る方
法。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、マルチプロセッサ・シ
ステム、同システムにおけるメッセージの転送経路制御
システムとその方法及びデータ処理方法に関する。
【0002】
【従来の技術】高い信頼性を備えた形式の電子計算機
(エレクトロニック・コンピュータ)が出現して以来、
この技術分野に従事する者が考察を重ねてきたシステム
に、複数のコンピュータを使用するシステムであってそ
れらのコンピュータが相互に関連性を保ちつつ動作する
ことによって、所与の1つのタスクの全体が実行される
ようにしたシステムがある。そのようなマルチプロセッ
サ・システムのうちのあるシステムでは、1つの大型コ
ンピュータが、それ自身の優れた速度と容量とを利用し
てプログラムの複雑な部分を実行すると共に、複雑さの
程度の低いタスクや緊急度の低いタスクについては、そ
れを小型で速度の遅い衛星プロセッサに委任し(割当
て)、それによって、この大型コンピュータの負担やこ
の大型コンピュータに対するリクエストの量が減少する
ようにしたものがある。この場合、大型コンピュータ
は、サブタスクの割当てを行なうこと、小型プロセッサ
(=上記衛星プロセッサ)を常に作動状態に保つこと、
それらの小型プロセッサの使用可能性と動作効率とを確
認すること、それに統一された結果が得られるようにす
ることを担当しなければならない。
【0003】以上とは別の方式を採用している別種のマ
ルチプロセッサ・システムのなかには、多数のプロセッ
サと1つの共通バス・システムとを使用するシステムで
あってそれらの複数のプロセッサには本質的に互いに等
しい機能が付与されているシステムがある。この種のシ
ステムにおいては、しばしば、他の部分からは独立した
制御用コンピュータないし制御システムを用いて、所与
のサブタスクに関する個々のプロセッサの使用可能性並
びに処理能力を監視することと、プロセッサ間のタスク
及び情報の転送経路を制御することとが行なわれてい
る。また、プロセッサそれ自体が、他のプロセッサのス
テータス並びに利用可能性の監視と、メッセージ及びプ
ログラムの転送経路の決定とを行なえるように、夫々の
プロセッサの構成及び動作が設定されているものもあ
る。以上の種々のシステムに共通する重大な欠点は、オ
ーバーヘッド機能及び保守機能を実行するために、ソフ
トウェアが必要とされ且つ動作時間が消費されるという
ことにあり、そしてそれによって、本来の目的の実行に
影響が及ぶことになる。転送経路の決定及び監視に関す
る仕事量が、それらの仕事に関与するプロセッサの総数
の2次の関数で増加して、ついにはオーバーヘッド機能
のために不適当な迄の努力が費やされるようになること
もある。
【0004】以下の数件の特許公報は従来技術の例を示
すものである。 米国特許公報第3,962,685 号−ベル・イール(Belle Isl
e) 同第3,962,706 号−デニス(Dennis)他 同第4,096,566 号−ボーリー(Borie) 他 同第4,096,567 号−ミラード(Millard) 他 同第4,130,865 号−ハート(Heart) 他 同第4,136,386 号−アヌーンチアータ(Annunziata)他 同第4,145,739 号−ダニング(Dunning) 他 同第4,151,592 号−スズキ(Suzuki)他
【0005】初期のバイナック("Binac" :2個の互い
にパラレルに接続されたプロセッサを用いる)や、それ
に類似した種々のシステムが使用されていた頃から既
に、マルチプロセッサ方式は冗長性を備えた実行能力を
提供するものであって、そのため動作するシステムの全
体の信頼性を著しく向上させ得るものであるということ
が認識されていた。実際にマルチプロセッサ・システム
を構成するということに対しては、これまでのところ、
かなりの制約が存在しているが、その制約は主としてソ
フトウェアが膨大なものとなってしまうことに起因する
制約である。にもかかわらず、例えばリアルタイムの用
途等のように、システムのダウンタイム(運転休止時
間)が容認され得ないような種々の状況においては、マ
ルチプロセッサ動作が特に有利であるため、これまでに
様々なマルチプロセッサ・システムが開発されてきた
が、ただし、それらのシステムは動作自体は良好である
が、オーバーヘッドのためにソフトウェアと動作時間の
かなりの分量を割かなければならないものであった。そ
のような従来のシステムは、米国特許公報第3,445,822
号、同第3,566,363 号、及び同第3,593,300 号にその具
体例が示されている。これらの特許公報はいずれも、複
数のコンピュータがそれらの間で共用される1つのメイ
ン・メモリをアクセスするようにしたシステムに関する
ものであり、このシステムにおいては更に、タスクを個
々のプロセッサに好適に割当てるために、処理能力と処
理要求量とが比較されるようになっている。
【0006】従来技術の更に別の例としては、米国特許
公報第4,099,233 号がある。この公報のシステムでは、
複数のプロセッサが1つのバスを共用しており、また、
バッファ・レジスタを内蔵している制御ユニットを用い
て送信側ミニプロセッサと受信側ミニプロセッサとの間
のデータ・ブロックの転送が行なわれる。このシステム
のコンセプトは、欧州において分散型の郵便物分類シス
テムに利用されている。
【0007】米国特許公報第4,228,496 号は、商業的に
成功したマルチプロセッサ・システムに関するものであ
り、このシステムでは、複数のプロセッサの間に設けら
れた複数のバスがバス・コントローラに接続されてお
り、このバス・コントローラが、データ送出状況の監視
と、プロセッサ間で行なわれる複数のデータ転送に対す
る優先順位の判定を行なっている。また、各々のプロセ
ッサは、複数の周辺装置のうちのある1つの装置を制御
するように接続可能となっている。
【0008】ゼロックス、ヒューレット・パッカード、
及びインテルによって共同で推進されている「イーサネ
ット」システム("Ethernet" system )(米国特許公報
第4,063,220 号及び同第4,099,024 号)は、複数のプロ
セッサ並びに周辺装置の間の相互通信の問題に対処する
ための、更に別の方式を提示している。全てのユニット
(=プロセッサや周辺装置等)はそれらのユニットの間
で共用される多重アクセス・ネットワークに接続されて
おり、そしてそれらのユニットは優先権を獲得すべく互
いに競合することになる。衝突検出は時刻優先方式で行
なわれており、そのために、大域的な処理能力を制御す
ることと、コーディネートすることと、明確に把握する
こととが、容易でなくなっている。
【0009】以上に説明した種々のシステムをそれらの
細部まで完全に理解するためには、以上に言及した特許
公報やその他の関連参考文献を詳細に分析する必要があ
る。しかしながら、タスクの分担が行なわれる場合には
それらのシステムはいずれも、データ転送に関する優先
権の判定やプロセッサの選択を行なうために膨大な量の
相互通信と管理制御とが必要とされるということだけ
は、簡単に概観するだけでも理解されよう。システムを
拡張して更に多くのプロセッサを含むようにする場合に
どのような問題が発生するかは異なったシステムの夫々
ごとに違ってくるため一様ではないが、しかしながら以
上のシステムはいずれも、そのような拡張を行なえばシ
ステム・ソフトウェアや応用プログラミング、ハードウ
ェア、或いはそれら3つの全てが複雑化することにな
る。また、若干の考察により理解されることであるが、
1組ないし2組の論理的に受動的なオーミック・バスが
採用されているために、それに固有の制約がマルチプロ
セッサ・システムの規模と能力とに対して課せられてい
る。相互通信をより容易に行なえるようにするために採
用可能な技法には様々なものがあり、その一例として
は、最近発行された米国特許公報第4,240,143 号に示さ
れているところの、サブシステムを大域的資源にグルー
プ分けするという技法等があるが、しかしながら、非常
に多くのプロセッサが用いられている場合には当然のこ
とながら利用できるトラフィックの量はその限界に達し
てしまい、また、遅延時間が様々な値を取るということ
によって、克服し難い問題が生じている。1個ないし複
数個のプロセッサがロック・アウト状態ないしデッドロ
ック状態になるという状況が発生することもあり、その
ような状況に対処するには、問題を解決するための更な
る回路とソフトウェアとが必要とされる。以上から、プ
ロセッサの個数を、例えば1024個というような個数
にまで大幅に拡張することは、従来は実際的でなかった
ことが明らかである。
【0010】多くの様々な応用用途において、以上に説
明した既存の諸技法の制約から逃れて、最新の技法を最
大源に利用することが望まれている。現在採用可能な技
法のうちで最も低コストの技法は、大量生産されている
マイクロプロセッサと、大容量の回転ディスク型の記憶
装置とを基礎とした技法であり、そのような記憶装置の
例としては、密閉式ケースの内部においてヘッドとディ
スクとの間の間隔を非常に小さいものとした、ウインチ
ェスタ・テクノロジー製の装置等がある。マルチプロセ
ッサ・システムを拡張するに際しては、ソフトウェアが
不適当な迄に複雑化することなくシステムを拡張できる
ことが要望されており、更には、ソフトウェアがその拡
張に伴なって複雑化することが全くないようにして拡張
できることすら要望されている。また更に、機能の全体
を、限定されたないしは反復して実行される複数の処理
タスクへと動的に細分できる分散型構造をもつような特
徴を有する計算機問題を処理できる能力が要望されてい
る。略々全てのデータベース・マシンが、そのような問
題分野に属しており、また、この問題分野には更に、ソ
ート処理、パターンの認識及び相関算出処理、デジタル
・フィルタリング処理、大規模マトリクスの計算処理、
物理的な系のシュミレーション、等々のその他の典型的
な問題例も含まれる。これらのいずれの処理が行なわれ
る状況においても、個々に処理される複数のタスクを比
較的簡明なものとし、しかもそれらのタスクを広範に分
散することが要求され、そのため、瞬間的タスク負荷が
大きなものとなる。そのような状況が、従来のマルチプ
ロセッサ・システムに非常な困難を伴なわせていたので
あり、その理由は、そのような状況はオーバーヘッドに
費やされる時間とオーバーヘッドのためのソフトウェア
の量とを増大させる傾向を有していること、並びに、シ
ステムを構成する上で実際上の支障が生じてくることに
ある。例えば受動的な共用バスが採用されている場合に
は、伝播速度並びにデータ転送所要時間が、トランザク
ションを処理する上での可能処理速度に対する絶対的な
障壁を成している。
【0011】従ってデータベース・マシンは、マルチプ
ロセッサ・システムの改良が必要とされていることの好
い例である。大規模データベース・マシンを構成する上
での基本的な方式にはこれまでに3種類の方式が提案さ
れており、それらは、階層方式、ネットワーク方式、そ
れにリレーショナル方式である。これらのうちでリレー
ショナル方式のデータベース・マシンは、関係(リレー
ション)を示す表を用いることによって、ユーザが複雑
な系の中の所与のデータに容易にアクセスできるように
するものであり、この方式のマシンは、強力な潜在能力
を有するものであると認識されている。この従来技術に
ついて説明している代表的な刊行物には、例えばIEE
Eコンピュータ・マガジンの1979年3月号の第28
頁に掲載されている、D. C. P. スミス並びにJ.
M. スミスによる「リレーショナル・データベース・マ
シン」という表題の論文(article entitled "Relation
al Data Base Machine", published by D.C.P. Smith a
nd J.M. Smith, in the March 1979 issue of IEEE Com
puter magazine, p. 28 )、米国特許公報第4,221,003
号、並びに同公報中に引用されている諸論文等がある。
【0012】また、ソーティング・マシンは、コンピュ
ーティング・アーキテクチャの改良が必要とされている
ことの好い例である。ソーティング・マシン理論の概説
は、D. E. クヌース(Knuth)著「サーチング及びソー
ティング」の第220〜第246頁("Searching and S
orting" by D.E. Knuth, pp.220-246, published (197
3) by Addison- Wesley Publishing Co., Reading, Mas
sachusetts)に記載されている。この文献には様々なネ
ットワーク並びにアルゴリズムが開示されており、それ
らの各々に付随する制約を理解するためにはそれらを詳
細に考察しなけらばならないが、ただしそれらについて
一般的に言えることは、それらはいずれも、ソーティン
グという特定の目的だけを指向した、特徴的に複雑な方
式であるということである。更に別の例として、L.
A. モラー(L.A.Mollaar )によって提示されているも
のがあり、これは、「IEEE・トランザクション・オ
ン・コンピュータ」、C−28巻、第6号(1979年
6月)、第406〜413頁に掲載されている「リスト
・マージング・ネットワークの構造」という表題の論文
(article entitled "A Design for a List Merging Ne
twork", inthe IEEE Transactions on Computers, Vol.
C-28 No. 6, June 1979 at pp. 406-413 )に記載され
ている。この論文に提案されているネットワークにおい
ては、ネットワークのマージ・エレメントを外部から制
御するという方式が採用されており、また、このネット
ワークは、特殊な機能を実行するためのプログラミング
を必要としている。
【0013】汎用のマルチプロセッサ・システムが実行
することができなければならない諸機能には、種々の方
式でサブタスクを分配する機能、サブタスクを実行して
いるプロセッサのステータスを確認する機能、メッセー
ジのマージとソートを行なう機能、データを訂正及び変
更する機能、それに、いつ及びどのように資源が変化し
たかを(例えば、あるプロセッサがいつオンラインから
外れ、いつオンラインに復帰したかを)確認する機能等
がある。以上のような機能を実行するために、これまで
は、オーバーヘッドのための過大なソフトウェアとハー
ドウェアとを用いる必要があった。
【0014】一例を挙げるならば、例えばデータベース
・マシン等のマルチプロセッサ・システムにおいては、
プロセッサ間のメッセージの転送経路を指定するに際し
て、特定の1つのプロセッサを転送先として選択した
り、或いは1つのクラスに属する複数のプロセッサを選
択したり、また更には、プロセッサそのものを指定する
のではなく、ハッシュ方式等によってプロセッサに分配
されているデータベースの部分を指定するという方法
で、転送先プロセッサを選択するということが、しばし
ば必要となる。公知のシステムの中には前置通信シーケ
ンスを利用しているものがあり、それによって送信側プ
ロセッサと、1個或いは複数の特定の受信側プロセッサ
との間のリンケージを確立するようにしている。このリ
ンケージを確立するためにはリクエストや肯定応答を何
回も反復して送出しなければならず、また起こり得るデ
ッドロック状態を克服するために、更なるハードウェア
並びにソフトウェアを使用しなければならない。前置通
信シーケンスを利用していないシステムでは、1つのプ
ロセッサによって、或いはバス・コントローラによって
管制が行なわれており、この管制は、送信側プロセッサ
が送信準備完了状態にあること、受信側プロセッサが受
信準備完了状態にあること、これらのプロセッサの間の
リンケージからその他のプロセッサが締め出されている
こと、並びに無関係な送信が行なわれていないことを、
確認するためのものである。この場合にもまた、オーバ
ーヘッドに依存することと、デッドロックを回避するた
めに複雑とならざるを得ないこととによって、システム
を拡張する(例えばプロセッサの個数を16個以上にす
る)につれて保守機能が不適当な迄に膨張してしまうの
である。
【0015】最近のマルチプロセッサ・システムに要求
されている要件の更に別の例として、1個或いは複数個
のプロセッサによって実行されているサブタスクのステ
ータスを、システムが確実に判定するための方法に関係
するものがある。基本的に要求されている点は、所与の
プロセッサに対してそのプロセッサのステータスについ
ての問合せを行なう能力を備えていなければならないと
いうことであり、しかも、そのステータスがその問合せ
よって影響を及ぼされることがないように、且つ、応答
の内容に多義性が生じることがないように、その問合せ
が行なわれなければならないということである。ステー
タス表示のテストとセットとを中断のない一連の操作と
して行なう機能を特徴的に表わすための用語として、現
在当業界においては「セマフォ(semaphore)」という用
語が使用されている。このセマフォという特徴を備えて
いることは望ましいことであるが、ただし、この特徴を
組込むに際しては、実行効率の低下やオーバーヘッドの
負荷の増加を伴なわないようにしなければならない。こ
のようなステータスの判定は、更にマルチプロセッサ・
システムにおいてソート/マージ動作を実行する際に極
めて重要なものとなるが、それは、大きなタスクの中に
含まれている複数のサブタスクの夫々の処理結果を組み
合わせるためには、それらのサブタスクが適切に処理完
了された後でなければ1つに組み合わせることができな
いからである。更に別の要件として、プロセッサがその
「現在」ステータスを報告できなければならないこと、
そしてサブタスクの実行は、マルチプロセッサの動作シ
ーケンスに対して割込みと変更とが繰返されても、ただ
1回だけ行なわれるようにしなければならないというこ
とがある。殆どの既存のシステムでは、プロセッサの実
行ルーチンが中断可能とされているためにこの点に関し
て重大な問題が生じている。即ち、容易に理解されるこ
とであるが、複数のプロセッサが互いに関連を有する複
数のサブタスクを実行しているような場合には、それら
の個々のプロセッサのレディネス状態の程度(=どのよ
うな動作が可能な状態にあるかの程度)についての問合
せとそれに対する応答とに関わる動作シーケンスが膨大
なオーバーヘッドを必要とすることがあり、しかも、そ
のための専用のオーバーヘッドは、プロセッサの個数が
増大するに従っていよいよ不適当なまでに増大する。
【0016】
【発明が解決しようとする課題】以上に述べたところの
例を示す従来のマルチプロセッサ・システムにおける典
型的な短所は、いわゆる「分散更新」の問題に関するも
のであり、この問題は即ち、複数個の処理装置の各々に
そのコピーが格納されている情報を更新する必要がある
ということである。ここで言う情報とは、データ・レコ
ードから成る情報の場合もあり、また、システムの動作
を制御するために用いられる情報の場合もある。このシ
ステムの動作の制御とは、例えば、必要なステップが誤
って重複実行されたり全く実行されなかったりすること
のないようにして、処理が開始され、停止され、再開さ
れ、一時中断され、或いはロール・バックないしロール
・フォワードされるようにすること等の制御のことであ
る。従来のシステムにおいては、分散更新の問題の種々
の解決法はいずれもかなりの制約を伴なうものであっ
た。それらの解決法の中には、一度に2個のプロセッサ
だけを対象としているに過ぎないものもある。また更に
別の解決法として相互通信プロトコルを利用しているも
のも幾つかあるが、それらのプロトコルは非常に複雑な
ため、現在でも、それらのプロトコルが適切なものであ
ることを数学的厳密さをもって証明することには非常な
困難が伴なっている。
【0017】それらのプロトコルが複雑になっている原
因は、「大域的セマフォ」を構成している、中断される
ことのない1回の動作により全てのプロセッサにおいて
「テスト・アンド・セット」されるという外面的性質を
持つ制御ビットを、備える必要があるということにあ
る。斯かる制御ビットが複数の別々のプロセッサの内部
に夫々に設けられ、しかもそれらのプロセッサの間の通
信に付随する遅延時間がまちまちであるため、不可避的
に不完全なものとなり得る通信チャネルによってノイズ
が発生され、また更にエラーの発生率も増大することに
なる。従って「中断されることのない1回の動作」とい
う特徴を備えることは、その1つの動作を構成している
複数の部分々々が、夫々に多種多様で、しかも中断可能
であり、そしてそれらを同時にはアクセスすることがで
きず、更にはそれらがアクセスとアクセスとの間に不調
を生じがちである場合には、困難を伴なうものであると
いうことが、当業者には容易に理解されよう。
【0018】
【課題を解決するための手段】本発明は、要約すれば、
転送先選択ワードと呼ばれる形態の数種類の転送経路指
定情報のうちの1つないし複数種類の情報を内包してい
るメッセージを、複数のプロセッサのうちの異なったプ
ロセッサ、ないしはそれのうちの幾つかのプロセッサの
組合わせへ伝送するためのシステム及び方法を提供する
ものである。プロセッサはインターフェイスを有してお
り、このインテーフェイスは、メモリを含むと共に、メ
ッセージに内包されている情報に基づいて個々のプロセ
ッサがそのメッセージに内包されているデータないし命
令を処理ないし実行すべきか否かを直接的かつ効率的に
判定するものである。
【0019】
【作用】以上の構成により、個々のプロセッサをただの
1つだけをアドレスすることも、複数のプロセッサを1
つのクラスとしてアドレスすることも、また、ハッシン
グ・モードを利用して個々のプロセッサが分担している
データベースの部分を指定することも、いずれも可能と
なっている。この特徴は、従来の方式の、メッセージの
中にアドレスを内包されると共に各装置がメッセージの
中に含まれている自信のアドレスを識別するという方式
と比較して、はるかに精緻で強力なものである。
【0020】
【実施例】以下、この発明の実施例を図面を参照して説
明する。 (データベース管理システム)図1に総括的に示されて
いるシステムは、本発明の概念をデータベース管理に応
用したものを具体例として示すものである。更に詳細に
説明すると、このシステムは一つまたは複数のホスト・
コンピュータ・システム10、12と協働するように構
成されており、それらのホスト・コンピュータ・システ
ムは、例えばIBM370ファミリーまたはDEC−P
DP−11ファミリーに属するコンピュータ・システム
等であって、この具体例の目的に沿うように既存の一般
的なオペレーティング・システム及び応用ソフトウェア
で動作するようになっている。IBMの用語法に拠れ
ば、ホスト・コンピュータ・とデータベース・コンピュ
ータとの間の主要相互通信回線網はチャネルと呼ばれて
おり、また同じものがDECの用語法に拠れば「ユニバ
ス」または「マスバス」或いはそれらの用語を多少変形
した用語で呼ばれている。以上のコンピュータ・システ
ムのうちのいずれかが用いられるにせよ、或いは他のメ
ーカーのメインフレーム・コンピュータが用いられるに
せよ、このチャネル、即ちバスは、そこへデータベース
・タスク及びサブタスクが送出されるところのオーミッ
クな転送経路、即ち論理的に受動的な転送経路である。
【0021】図1の具体例は、ホスト・システム10、
12に組み合わされたバックエンド・プロセッサ複合体
を示している。この図のシステムは、タスク及びサブタ
スクをホスト・システムから受入れ、莫大なデータベー
ス記憶情報のうちの該当する部分を参照し、そして適切
な処理済メッセージ或いは応答メッセージを返すという
ものであり、それらの動作は、このバックエンド・プロ
セッサ複合体の構成の如何にかかわらず、それ程高度で
はないソフトウェアによる管理以外は、ホスト・システ
ムには要求されない方式で実行されるようになってい
る。従って、ユーザのデータベースを新たな方式のマル
チプロセッサ・システムとして構成することが可能とさ
れており、このマルチプロセッサ・システムにおいて
は、データを、容量を大幅に拡張することのできるリレ
ーショナル・データベース・ファイルとして組織するこ
とができ、しかもこの拡張は、ユーザのホスト・システ
ムの内部に備えられているオペレーティング・システム
や既存の応用ソフトウェアを変更する必要なしに行なう
ことができるようになっている。独立システム(スタン
ド・アローン・システム)として構成した具体例につい
て、以下に図20を参照しつつ説明する。
【0022】当業者には理解されるように、リレーショ
ナル・データベース管理に関する動作機能は、1つの動
作機能の全体を、少なくとも一時的には他から独立して
処理可能な複数の処理タスクへと分割することができる
ような動作機能である。その理由は、リレーショナル・
データベースでは記憶されている複数のデータ・エント
リがアドレス・ポインタによって相互依存的に連結され
ていないからである。更に当業者には理解されるよう
に、リレーショナル・データベース管理以外にも、限定
されたタスクないし反復実行されるタスクを動的に小区
分して独立的に処理するこという方法を用い得るような
の多くのデータ処理環境が存在している。従って、本発
明の具体例を説明するに際しては、特に要望が強くまた
頻繁に聞かれるところ の、データベース管理における
処理の問題に関連させて説明するが、しかしながら本明
細書に開示する新規な方法並びに構成は、それ以外にも
広範な用途を持つものである。
【0023】大規模なデータ管理システムは、複数のプ
ロセッサ(マルチプル・プロセッサ)を使用する場合に
は潜在的な利点と不可避的に付随する困難との両方を備
えることになる。何億個にも及ぶ莫大な数のエントリ
(記述項)を、記憶装置の中に、容易にかつ迅速にアク
セスできる状態で保持しなければならない。一方、リレ
ーショナル・データベースのフォーマットとしておけ
ば、広範なデータ・エントリ及び情報の取り出し動作を
同時並行的に実行することができる。ただし、圧倒的大
多数のデータベース・システムにおいては、データベー
スの完全性(インテグリティ)を維持することが、トラ
ンザクション・データを迅速に処理することと同様に重
要となっている。データの完全性は、ハードウェアの故
障や停電、それにその他のシステム動作に関わる災害
の、その前後においても維持されていなければならな
い。更には、データベース・システムは、応用ソフトウ
ェア・コードの中のバグ(bug)をはじめとするユーザ側
のエラーの後始末を行なうために、データベースを以前
の既知の状態に復元できる能力を備えていなければなら
ない。しかも、データが誤って失われたり入力されたり
することがあってはならず、また、イベントが新たなデ
ータに関係するものであるのか、或いは過去のエラーの
訂正に関係するものであるのか、それともデータベース
の一部分の校正に関係するものであるのかに応じて、あ
る特定のエントリに関係しているデータベース部分の全
てが変更されるようになっていなければならない。
【0024】従って、完全性のためには、データのロー
ルバック及び回復の動作、誤りの検出及び修正の動
作、並びにシステムの個々の部分のステータスの変化の
検出及びその補償の動作に加えて、更に、ある程度の冗
長度もデータベースシステムには必要である。これらの
目的を達成するためには、システムが多くの異なった特
殊なモードで用いられなければならないこともあり得
る。
【0025】さらに、最近のシステムでは、その形式が
複雑なものになりがちな任意内容の問合せ(discretion
ary query)を受入れる能力と、必要とあらば相互作用
的な方式で応答する能力とを持っていることが要求され
る。たとえその問合せが複雑なものであったとしても、
システムにアクセスしようとする人達がそのシステムの
熟練者であることを要求されるようなことがあってはな
らない。
【0026】大規模生産の業務に関連して生じるかも知
れない任意内容の問合せの例には、次のようなものがあ
る。 A.生産管理を行なう管理者が、在庫品のうちの1品目
についてのリストを要求するのみならず、生産高が前年
同月比で少なくとも10%以上低下している部品の、そ
の月間生産高を超えているような全ての部品在庫を明記
した在庫品リストを、要求するかもしれない。 B.マーケティング・マネージャーが、ある特定の勘定
が90日延滞を生じているか否かを問合せるばかりでな
く、特に不景気な地域に在住している過去に120日を
超過したことのある顧客に関して、一律に90日の受取
債権を要求するかもしれない。 C.人事担当の重役が、所与の1年間に2週間を超える
病欠のあった従業員の全てを一覧表にすることを求める
のみならず、直前の5年間のうちの2年以上について、
その釣のシーズンの間に1週間以上の病欠をした10年
勤続以上の長期勤続従業員の全てを一覧表にすることを
求めるかもしれない。 以上の例のいずれにおいても、ユーザは、コンピュータ
に格納されている情報をそれまでにはなされなかった方
法で関連付けることによって、事業において直面してい
る本当の問題を見極めようとするわけである。その問題
を生じている分野に関してユーザが経験を積んでいれ
ば、従ってユーザに直感力と想像力とがあれば、コンピ
ュータの訓練を受けたことのない専門家が、複雑な問合
せを処理できるデータベースシステムを自由自在に使用
できるのである。
【0027】最近のマルチプロセッサ・システムは、こ
れらのように多くの、そしてしばしば互いに相反する要
求事項に対しては、念入りに作成されたオーバーヘッド
用ソフトウェア・システム並びに保守用ソフトウェア・
システムを用いることによって対応しようと努めている
のであるが、それらのソフトウェア・システムは本質的
にシステムを容易に拡張することの妨げとなるものであ
る。しかしながら、拡張性という概念は強く求められて
いる概念であり、その理由は、業務ないし事業が成長す
ると、それに付随して既存のデータベース管理システム
を拡張して使用を継続することが望まれるようになり、
この場合、新しいシステムとソフトウェアの採用を余儀
なくされることは好まれないからである。
【0028】マルチプロセッサ・アレイ 図1について説明すると、本発明に係る典型的な一具体
例のシステムは多数のマイクロプロセッサを含んでお
り、それらのマイクロプロセッサには重要な2つの重要
な種類があり、それらは本明細書では夫々、インターフ
ェイス・プロセッサ(IFP)とアクセス・モジュール
・プロセッサ(AMP)と称することにする。図中には
2個のIFP14、16が示されており、それらの各々
は別々のホスト・コンピュータ10ないし12の入出力
装置に接続されている。多数のアクセス・モジュール・
プロセッサ18〜23もまた、このマルチプロセッサ・
アレイとも称すべきものの中に含まれている。ここでの
「アレイ」という用語は、おおむね整然とした直線状或
いはマトリックス状に配列された、1組のプロセッサ・
ユニット、集合とされたプロセッサ・ユニット、ないし
は複数のプロセッサ・ユニットを指す、一般的な意味で
用いられており、従って、最近「アレイ・プロセッサ」
と呼ばれるようになったものを意味するのではない。図
中には、このシステムの概念を簡明化した例を示すため
に僅かに8個のマイクロプロセッサが示されているが、
はるかに多くのIFP及びAMPを用いることが可能で
あり、通常は用いられることになる。
【0029】IFP14、16及びAMP18〜23
は、内部バスと周辺装置コントローラにダイレクト・メ
モリ・アクセスをするメイン・メモリとを有しているイ
ンテル8086型16ビットマイクロプロセッサを内蔵
している。いろいろなメーカーの非常に多様なマイクロ
プロセッサ及びマイクロプロセッサシステム製品の任意
のものを利用できる。この「マイクロプロセッサ」は、
このアレイの中で使用できるコンピュータないしプロセ
ッサの一形式の具体的な一例に過ぎず、なぜならば、こ
のシステムの概念は、用途によって必要とされる計算力
がミニコンピュータまたは大型コンピュータのものであ
る場合には、それらを使ってうまく利用できるからであ
る。この16ビットのマイクロプロセッサは、相当のデ
ータ処理力を備え、しかも広範な種々の利用可能なハー
ドウェア及びソフトウェアのオプションに置換えること
ができる標準的な置換え可能な構成とされている、低コ
ストの装置の有利な一例である。
【0030】IFPとAMPとは互いに類似の、能動ロ
ジックと制御ロジックとびインターフェイスとを含む回
路、マイクロプロセッサ、メモリ、及び内部バスを採用
しており、それらについては夫々第1図と第8図とを参
照しつつ後に説明する。ただし、これら二つのプロセッ
サ形式は、夫々のプロセッサ形式に関連する周辺装置の
性質、及びそれらの周辺装置に対する制御ロジックが異
なっている。当業者には容易に理解されるように、異な
った周辺装置コントローラを備え異なった機能的任務を
付与されたその他のプロセッサ形式を本発明に組入れる
ことも容易である。
【0031】各マイクロプロセッサには高速ランダム・
アクセス・メモリ26(図8に関連して説明する)が備
えられており、この高速ランダム・アクセス・メモリ
は、入出力メッセージのバッファリングを行うことに加
え、システムの他の部分と独特な方法で協働することに
よって、メッセージ管理を行なう。手短に説明すると、
この高速ランダム・アクセス・メモリ26は、可変長の
入力メッセージ(この入力のことを「受信」という)の
ための循環バッファとして働き、シーケンシャルにメッ
セージを出力するための(この出力のことを「送信」と
いう)メモリとして機能し、ハッシュ・マッピング・モ
ード及び他のモードで用いるためのテーブル索引部分を
組込み、そして受信メッセージ及び送信メッセージを整
然と順序立てて取扱うための制御情報を記憶する。メモ
リ26は更に、マルチプロセッサモード選択のとき、並
びにデータ、ステータス、制御、及び応答の各メッセー
ジのトラフィックを取扱うときに独特の役目を果たすよ
うに用いられる。後に詳細に説明するよう に、それら
のメモリは更に、メッセージの中のトランザクション・
アイデンティティに基づいて局所的及び大域的なステー
タス判定と制御機能とが極めて能率的な方法で処理され
通信されるような構成とされている。IFP14、16
及びAMP18〜23の各々に備えられている制御ロジ
ック28(図13に関連しては後に説明する)は、当該
モジュール内のデータ転送及びオーバーヘッド機能の実
行に用いられる。
【0032】IFP14、16は各々インターフェイス
制御回路30を備えており、このインターフェイス制御
回路30はIFPをそのIFPに組み合わされているホ
スト・コンピュータ10ないし12のチャネルまたはバ
スに接続している。これに対してAMP18〜23で
は、このインターフェイス制御回路に相当する装置はデ
ィスク・コントローラ32であり、このディスク・コン
トローラ32は一般的な構造のものであっても良く、A
MP18〜23を、それらに個別に組み合わせられた磁
気ディスク・ドライブ38〜43と夫々にインターフェ
イスするのに用いられるものである。
【0033】磁気ディスク・ドライブ38〜43はこの
データベース管理システムに二次記憶装置、即ち大容量
記憶装置を提供している。本実施例において は、それ
らの磁気ディスク・ドライブは例えば ウィンチェスタ
ー・テクノロジー(Winchester technology )等の実績
のある市販の製品から成るものとし、それによって、バ
イト当りコストが極めて低廉でしかも大容量、高信頼性
の記憶装置が得られるようにしている。
【0034】これらのディスク・ドライブ38〜43に
は、リレーショナル・データベースが分散格納方式で格
納されており、これについては図22に簡易化した形で
示されている。各々のプロセッサとそれに組み合わされ
たディスク・ドライブとに対しては、データベースの部
分集合を成す複数のレコードが割当てられ、この部分集
合は「一次的」部分集合であり、またそれらの一次的部
分集合は互いに素の部分集合であると共に全体として完
全なデータベースを構成するものである。従ってn個記
憶装置の各々はこのデータベースの1/nを保持するこ
とになる。各々のプロセッサには更に、バックアップ用
のデータの部分集合が割当てられ、それらのバックアッ
ップ用部分集合も互いに素の部分集合であり、各々がこ
のデータベースの1/nを構成するものである。図22
から分るように、一次的ファイルの各々は、その一次的
ファイルが収容されているプロセッサとは異なったプロ
セッサに収容されているバックアップ用ファイルによっ
て複製されており、これにより、互いに異なった分配の
仕方で分配された2つの各々が完全なデータベースが得
られている。このように、一次的データ部分集合とバッ
クアップ用データ部分集合とが冗長性を持って配置され
ていることによってデータベースの完全性(インテグリ
ティ)の保護がなされており、その理由は、単発の故障
であれば、大規模な数ブロックに亙る複数のデータや複
数のグループを成す複数のリレーションに対して実質的
な影響を及ぼすことはあり得ないからである。
【0035】データベースの分配は、同じく図22に示
されているように、種々のファイルのハッシング動作と
関連を有しており、また、ハッシュ・マッピング・デー
タをメッセージの中に組込むこととも関連を有してい
る。各々のプロセッサに収容されているファイルは、2
進数列のグループとして示される簡単なハッシュ・バケ
ット(hash bucket)によって指定されるようになってい
る。従って、それらのバケットによって指定される関係
の表 (テーブル)に基づいて、リレーショナル・デー
タベース・システムの中のリレーション(関係)及びタ
プル(組:tuple)を配置すべき場所を定めることがで
きる。ハッシング・アルゴリズムを利用して、このリレ
ーショナル・データベース・システムの内部において、
キーからバケットの割当てが求められるようになってお
り、そのため、このデータベース・システムの拡張及び
改変を容易に行なうことができる。
【0036】記憶容量をどれ程の大きさに選択するか
は、データベース管理上のニーズ、トランザクションの
量、及びその記憶装置に組み合わされているマイクロプ
ロセッサの処理力に応じて定められるものである。複数
のディスク・ドライブを1個のAMPに接続したり、1
台のディスク・ファイル装置を複数のAMPに接続する
ことも可能であるが、そのような変更態様は通常は特殊
な用途に限られるであろう。データベースの拡張は、典
型的な一例としては、マルチプロセッサ・アレイにおけ
るプロセッサの個数(及びプロセッサに組み合わされた
ディスク・ドライブの個数)を拡張することによって行
なわれる。
【0037】能動ロジック・ネットワーク 秩序立ったメッセージ・パケットの流れを提供するとい
う目的とタスクの実行を容易にするという目的とは、新
規な能動ロジック・ネットワーク構成体50を中心とし
た、独特のシステム・アーキテクチュア並びにメッセー
ジ構造を採用することによって達成される。この能動ロ
ジック・ネットワーク構成体50は、複数のマイクロプ
ロセッサの複数の出力に対して、階層を登りながらそれ
らの出力を収束させて行く昇順階層を成す、複数の双方
向能動ロジック・ノード(bidirectional active logi
c node)54によって構成されている。それらのノード
54は、3つのポートを備えた双方向回路から成るもの
であり、この双方向回路はツリー・ネットワーク(tree
network:樹枝状の構造を持つネットワーク)を形成す
ることができ、その場合には、そのツリー構造のベース
の部分においてマイクロプロセッサ14、16及び18
〜23に接続される。
【0038】当業者には理解されるように、ノードは、
ロジック・ソースの数が2を超えて、例えば4または8
であるときに設けることができ、この場合、同時にま
た、ソース入力の数を多くするという問題も組合せロジ
ックを更に付加するという問題に変換してしますことが
できる。
【0039】図の参照を容易にするために、すべてのノ
ード(N)のうち、第1階層に属しているものはそれをプ
リフィックス「I」で表わし、また第2階層に属してい
るものはそれをプリフィックス「II」で表わし、以下
同様とする。同一の階層に属している個々のノードは、
下添字「1 、2 …」によって表わし、従って、例えば第
1階層の第4ノードであれば「IN4 」と表わすことが
できる。ノードのアップ・ツリー側(即ち上流側)には
「Cポート」と名付けられた1つのポートが備えられて
おり、このCポート隣接する高位の階層に属しているノ
ードの2つのダウン・ツリー・ポートのうちの一方に接
続されており、それらのダウン・ツリー・ポートは夫々
「Aポート」及び「Bポート」と名付けられている。こ
れら複数の階層は、最上部ノード即ち頂点ノード54a
へと収束しており、この頂点ノード54aは、上流へ向
けられたメッセージ(アップ・ツリー・メッセージ)の
流れの向きを逆転して下流方向(ダウン・ツリー方向)
へ向ける、収束及び転回のための手段として機能してい
る。2組のツリー・ネットワーク 50a、50bが
使用されており、それら2組のネットワークにおけるノ
ードどうし、それに相互接続部どうしは互いに並列に配
置されており、それによって大規模システムに望まれる
冗長性を得ている。ノード54どうし、そしてそれらの
ネットワークどうしは互いに同一であるので、それらの
ネットワークのうちの一方のみを説明すれば充分であ
る。
【0040】説明を分り易くするために先ず第1に理解
しておいて頂きたいことは、シリアルな信号列の形態と
されている多数のメッセージ・パケットが、多くのマイ
クロプロセッサの接続によって能動ロジック・ネットワ
ーク50ヘ同時に送出され、或いは同時に送出すること
が可能とされているということである。複数の能動ロジ
ック・ノード54はその各々が2進数ベースで動作して
2つの互いに衝突関係にある衝突メッセージ・パケット
の間の優先権の判定を行ない、この優先権の判定は、そ
れらのメッセージパケット自体のデータ内容を用いて行
なわれる。更には、1つのネットワークの中のすべての
ノード54は1つのクロック・ソース56の制御下に置
かれており、このクロック・ソース56は、メッセージ
パケットの列を頂点ノード54aへ向けて同期して進め
ることができるような態様で、それらのノード54に組
み合わされている。このようにして、シリアルな信号列
の中の、連続する各々のバイト等の増分セグメントが次
の階層へと進められ、このバイトの進行は、別のメッセ
ージの中のそのバイトに対応するバイトがこのネットワ
ーク50内の別の経路をたどって同様に進行するのと同
時に行なわれる。
【0041】互いに競合する信号列の間に優先権を付与
するためのソートが、アップ・ツリー方向へ移動してい
るメッセージパケットに対して行なわれ、これによって
最終的には、頂点ノード54aから下流へ向けて方向転
換されるべき単一のメッセージ列が選択される。以上の
ようにシステムが構成されているため最終的な優先権に
ついての判定をメッセージパケット内のある1つの特定
の点において行なう必要はなくなっており、そのため、
個々のノード54において実行されている2つの互いに
衝突しているパケット間の2進数ベースの判定以外のも
のを必要とすることなしに、メッセージの転送を続けて
行なうことができるようになっている。この結果、この
システムは空間的及び時間的にメッセージの選択とデー
タの転送とを行なうようになっているわけであるが、た
だし、バスの支配権を得たり、送信プロセッサあるいは
受信プロセッサを識別したり、またはプロセッサ間のハ
ンドシェイキング操作を実行する目的のために、メッセ
ージ伝送を遅延させるようなことはない。
【0042】更に、特に認識しておいて頂きたいこと
は、幾つかのプロセッサが全く同一のバケットを同時に
送信した場合には、その送信が成功したならば、それら
の送信プロセッサの全てが成功したのと同じことになる
ということである。この性質は時間とオーバーヘッドを
節約するので大型マルチプロセッサ複合体の有効な制御
を行うのに極めて有用である。
【0043】ノード54は更に双方向方式で作動するた
め、妨害を受けることのない、下流方向へのメッセージ
・パケットの分配を可能にしている。所与のノード54
において、そのアップ・ツリー側に設けられたポートC
で受取られた下流方向メッセージは、このノードのダウ
ン・ツリー側に設けられたポートA及びポートBの両方
へ分配され、更に、このノードに接続された隣接する低
位の階層に属する2つのノードの両方へ転送される。コ
モン・クロック回路56の制御の下にメッセージ・パケ
ットは同期してダウン・ツリー方向へ進められ、そして
全てのマイクロプロセッサへ同時にブロードカスト(br
oadcast:一斉伝達)され、それによって、1つまたは複
数のプロセッサが、所望の処理タスクの実行ができるよ
うになるか、または応答を受入れることができるように
なる。
【0044】ネットワーク50は、そのデータ転送速度
が、マイクロプロセッサのデータ転送速度と比較してよ
り高速であり、典型的な例としては2倍以上の高速であ
る。本実施例においては、ネットワーク50は120ナ
ノ秒のバイト・クロック・インタバルをもっており、そ
のデータ転送速度はマイクロプロセッサの5倍の速度で
ある。各ノード54は、その3つのポートの各々が、そ
のノードに接続されている隣接する階層に属するノード
のポートか、或いはマイクロプロセッサに接続されてお
り、この接続は1組のデータ・ライン(本実施例におい
ては10本)と制御ライン(本実施例においては2本)
とによってなされており、2本の制御ラインは夫々、ク
ロック信号とコリジョン信号(衝突信号)とに割当てら
れている。データ・ラインとクロック・ラインとは対に
なすようにして配線され、アップ・ツリー方向とダウン
・ツリー方向とでは別々のラインとされている。コリジ
ョン・ラインはダウン・ツリー方向にのみ伝播を行なう
ものである。以上の接続構造は全二重式のデータ経路を
形成しており、どのラインについてもその駆動方向を
「反転」するのに遅延を必要としないようになってい
る。
【0045】次に図3に関して説明すると、10本のデ
ータ・ラインは、ビット0〜7で表わされている8ビッ
ト・バイトを含んでおり、それらが10本のデータ・ラ
インのうちの8本を占めている。Cで表わされている別
の1本のラインは制御ラインであり、このラインは特定
の方法でメッセージパケットの異なる部分を明示するの
に用いられる制御シーケンスを搬送する。10番目のビ
ットは本実施例においては奇数パリティ用に使用されて
いる。当業者には理解されるように、このシステムは以
上のデータ経路中のビットの数を増減しても良く、その
ようにビットの数を変更しても容易に動作させることが
できる。
【0046】バイト・シーケンス(バイトの列)は、一
連の複数のフィールドを構成するように配列され、基本
的には、コマンド・フィールド、キー・フィールド、転
送先選択フィールド、及びデータ・フィールドに分割さ
れている。後に更に詳細に説明するように、メッセージ
はただ1つだけのフィールドを用いることもあり、また
検出可能な「エンド・オブ・メッセージ」コードをもっ
て終了するようになっている。メッセージ間に介在する
「アイドル・フィールド(idle field:遊びフィール
ド)」は、Cライン上並びにライ0〜7上のとぎれのな
い一連の「1」によって表わされ、いかなるメッセージ
パケットも得られない状態にあるときには常にこれが転
送されている。パリティ・ラインは更に、個々のプロセ
ッサのステータスの変化を独特の方式で伝えるためにも
使用される。
【0047】「アイドル状態(idle state:遊び状
態)」はメッセージとメッセージとの間に介在する状態
であって、メッセージ・パケットの一部分ではな い。
メッセージ・パケットは通常、タグを含む 2バイトの
コマンド・ワードで始まり、このタグは、そのメッセー
ジがデータ・メッセージであればトランザクション・ナ
ンバ(TN)の形とされており、また、そのメッセージ
が応答メッセージであれば発信元プロセッサID(OP
ID)の形とされている。トランザクション・ナンバ
は、システムの中において様々なレベルの意義を有する
ものであり、多くの種類の機能的通信及び制御の基礎を
成すものとして機能するものである。パケットは、この
コマンド・ワードの後には、可変長のキー・フィールド
と固定長の転送先選択ワード(destination selection
word: DSW)とのいずれか或いは双方を含むことがで
き、これらは可変長のデータ・フィールドの先頭の部分
を成すものである。キー・フィールドは、このキー・フ
ィールド以外の部分においてはメッセージどうしが互い
に同一であるという場合に、それらのメセージの間のソ
ーティングのための判断基準を提供するという目的を果
たすものである。DSWは、多数の特別な機能の基礎を
提供するものであり、また、TNと共に特に注意するの
に値するものである。
【0048】このシステムは、ワード同期をとられてい
るインターフェイスを用いて動作するようになってお
り、パケットを送信しようとしている全てのプロセッサ
は、コマンド・ワードの最初のバイトを互いに同時にネ
ットワーク50へ送出するようになっている。ネットワ
ークは、これに続く諸フィールドのデータ内容を利用し
て、各ノードにおいて2進数ベースでソーティングを行
ない、このソーティングは、最小の数値に優先権が与え
られるという方式で行なわれる。連続するデータ・ビッ
トの中で、ビットCを最も大きい量である見なし、ビッ
ト0を最も小さい量であると見なすならば、ソーティン
グの優先順位は以下のようになる。 1.ネットワーク50へ最初に送出されたもの、2.コ
マンド・コード(コマンド・ワード)が最小値であるも
の、3.キー・フィールドが最小値であるもの、4.キ
ー・フィールドが最短であるもの、5.データ・フィー
ルド(転送先選択ワードを含む)が最小値であるもの、
6.データ・フィールドが最短であるもの。
【0049】ここで概観を説明しているという目的に鑑
み、特に記しておかねばならないことは、ノード54に
おいて優先権の判定が下されたならば、コリジョン表示
(=衝突表示、以下Acol またはBcol と称する)が、
この優先権の判定において敗退した方の送信を受取った
方の経路に返されるということである。このコリジョン
表示によって、送信を行なっているマイクロプロセッサ
は、ネットワーク50がより高い優先順位の送信のため
に使用されているため自らの送信は中止されており、従
って後刻再び送信を試みる必要があるということを認識
することができる。
【0050】単純化した具体例が、図2の種々の図式に
示されている。この具体例は、ネットワーク50が4個
の別々のマイクロプロセッサを用いたツリー構造に配列
された高速ランダム・アクセス・メモリと協働して動作
するようにしたものであり、それら4個のマイクロプロ
セッサは更に詳しく説明すると、IFP14と、3個の
AMP18、19及び20とである。計10面の図2
(a)、(b)、…(k)は、その各々が、t=0から
t=9までの連続する10個の時刻標本のうちの1つに
対応しており、そしてそれらの時刻の各々における、こ
のネットワーク内のマイクロプロセッサの各々から送出
される互いに異なった単純化された(4個の文字からな
る)シリアル・メッセージの分配の態様、並びに、それ
らの種々の時刻における、ポートとマイクロプロセッサ
との間の通信の状態を示している。単に図2(a)は、
信号の伝送の開始前のシステムの状態を示している。以
上の個々の図においては、ナル状態(null state:ゼロ
の状態)即ちアイドル状態であるためには、「□」で表
される伝送が行なわれていなければならないものとして
いる。最小値をとるデータ内容が優先権を有するという
取決めがあるため、図2(b)中のAMP19から送出
されるメッセージ・パケット「EDDV」が、最初にこ
のシステムを通して伝送されるメッセージ・パケットと
なる。図中の夫々のメッセージは、後に更に詳細に説明
するように、マイクロプロセッサの中の高速ランダム・
アクセス・メモリ(H.S.RAMと呼称することもあ
る)の内部に保持されている。H.S.RAM26は、
図2には概略的に示されている入力用領域と出力用領域
とを有しており、パケットは、t=0の時点において
は、この出力領域の中にFIFO(先入れ先出し)方式
で垂直に並べて配列されており、それによって、転送に
際しては図中のH.S.RAM26に書込まれているカ
ーソル用矢印に指示されているようにして取り出すこと
ができるようになっている。この時点においては、ネッ
トワーク50の中のすべての伝送は、ナル状態即ちアイ
ドル状態(□)を示している。
【0051】これに対して、図2(c)に示されている
t=1の時点においては、各々のメッセージパケットの
先頭のバイトが互いに同時にネットワーク50へ送出さ
れ、このとき全てのノード54はいまだにアイドル状態
表示を返しており、また、第1階層より上のすべての伝
送状態もアイドル状態となっている。第1番目のクロッ
ク・インタバルの間に夫々のメッセージの先頭のバイト
が最下層のノードIN1 及びIN2 の内部にセットさ
れ、t=2において(図2(d))競合に決着が付けら
れ、そして上流方向への伝送と下流方向への伝送の双方
が続けて実行される。ノードIN1 はその両方の入力ポ
ートに「E」を受取っており、そしてこれを上流方向の
次の階層へ向けて転送していて、また下流方向へは両方
の送信プロセッサへ向けて未判定の状態を表示してい
る。しかしながらこれと同じ階層に属しているノードI
N2 は、プロセッサ19からの「E」とプロセッサ20
からの「P」との間の衝突に際しての優先権の判定を、
「E」の方に優先権があるものと判定しており、そし
て、ポートAをアップ・ツリー側のポートCに結合する
一方、マイクロプロセッサ20へBcol 信号を返してい
る。Bcol 信号がマイクロプロセッサ20へ返される
と、IN2 ノードは実際上、そのA入力ポートがC出力
ポートにロックされたことになり、それによって、マイ
クロプロセッサ19からのシリアルな信号列が頂点ノー
ドIN1へ伝送されるようになる。
【0052】IN1 ノードにおいては最初の二つの文字
はどちらも「ED」であり、そのため図2(d)に示す
ように、このノードではt=2の時刻には、判定を下す
ことは不可能となっている。更には、3つのマイクロプ
ロセッサ14、15及び19から送出された共通の先頭
の文字「E」は、t=3(図2(e))の時刻にII1
頂点ノードに達し、そしてこの文字「E」は、同じくそ
れら全てのメッセージに共通する第2番目の文字「D」
がこの頂点ノードIIN1へ転送されるときに、その転
送の向きを反転されて下流方向へ向けられる。この時点
ではノードIN1 は未だ判定を下せない状態にあるが、
しかしながらこのときには、一連のマイクロプロセッサ
14、18及び19からの夫々の第3番目の文字
「F」、「E」及び「D」がこのノードIN1 へ送信さ
れつつある。マイクロプロセッサ20がBcol 信号を受
取るということはこのプロセッサ20が優先権を得るた
めの競合において敗退したことを意味しており、それゆ
えこのプロセッサ20はBcol 信号を受取ったならばア
イドル表示(□)を送出し、またそれ以降もこのアイド
ル表示(□)だけを送出する。夫々の出力バッファに書
込まれている夫々のカーソル矢印は、マイクロプロセッ
サ20はその初期状態に戻されているがその他のマイク
ロプロセッサは連続する一連の文字を送り続けているこ
とを示している。従ってt=4(図2(f))の時刻に
おける重要な出来事は、ノードIN1 のポートに関する
判定が行なわれることと、それに、先頭の文字
(「E」)が、全てのラインを通って第1階層のノード
階層へ向けて反転伝送されることである。t=5(図2
(g))の時刻には2回目の衝突が表示され、この場
合、ノードIIN1 のBポートが競合に勝利し、Acol
が発生される。
【0053】続く数回のクロック・タイムの間は、シリ
アルな信号列の下流方向へのブロードカストが継続して
行なわれ、t=6(図2(h))の時刻には、メッセー
ジの先頭の文字が全てのH.S.RAM26の入力用領
域の部分の中にセットされる。ここでもう1つ注意して
おいて頂きたいことは、ノードIN1 において先に行な
われた優先権の判定はこの時点において無効とされると
いうことであり、その理由は、プロセッサ18から送出
された第3番目の文字(「E」)がマイクロプロセッサ
19から送出された第3番目の文字(「D」)との競合
に敗退したときに、より高位の階層のノードIIN1か
らAcol の表示がなされるためである。図2(i)中に
おいてカーソル矢印が表わしているように、マイクロプ
ロセッサ14、18及び20はそれらの初期状態に戻さ
れており、また、勝利したマイクロプロセッサ19は、
その全ての送信をt=4の時刻に既に完了している。図
2(i)、図2(j)、及び図2(k)から分るよう
に、全ての入力バッファの中へ、次々に優先メッセージ
「EDDV」がロードされて行く。t=8(図2
(j))において、このメッセージは既に第1階層から
流れ出てしまっており、また、頂点ノードIIN1 はt
=7において既にリセットされた状態になっているが、
それは、マイクロプロセッサへ向けて最後の下流方向文
字が転送されるときには、既にアイドル信号だけが互い
に競合しているからである。t=9(図2(k))の時
刻には、第1階層に属しているノードIN1 及びIN2
はリセットされており、そして、敗退したマイクロプロ
セッサ14、18及び20の全ては、ネットワークが再
びアイドルを指示しているときにメッセージの先頭の文
字を送出することによって、ネットワーク上における優
先権を得るための競合を再度行なうことになる。実際に
は後に説明するように、勝利したマイクロプロセッサへ
肯定応答信号が伝送されるのであるが、このことは、本
発明を最大限に一般化したものにとっては必須ではな
い。
【0054】メッセージがこのようにして全てのマイク
ロプロセッサへブロードカストされた後には、このメッ
セージは、必要に応じてそれらのマイクロプロセッサの
いずれかによって、或いはそれらの全てによって利用さ
れる。どれ程のマイクロプロセッサによって利用される
かは、動作のモードと実行される機能の如何に応じて異
なるものであり、それらの動作モードや機能には様々な
バリエーションが存在する。
【0055】(大域的な相互通信と制御)一群の互いに
競合するメッセージのうちの1つのメッセージに対して
ネットワークが優先権を与える方法として上に説明した
具体例は、プライマリ・データ・メッセージの転送に関
する例である。しかしながら、複雑なマルチプロセッサ
・システムが、現在求められている良好な効率と多用途
に亙る汎用性とを備えるためには、その他の多くの種類
の通信とコマンドとを利用する必要がある。備えられて
いなければならない主要な機能には、プライマリ・デー
タの転送に加えて、広い意味でマルチプロセッサのモー
ドと呼ぶことのできるもの、メッセージに対する肯定応
答、ステータス表示、並びに制御信号が含まれている。
以下の章は、種々のモード並びにメッセージが、どのよ
うにして優先権付与のためのソーティングと通信とを行
なうソーティング・コミュニケーション・ネットワーク
と協働するかについて、大域的な観点から、即ちマルチ
プロセッサ・システムの観点から説明した概観を提示す
るものである。更に詳細に理解するためには、図8及び
図13と、それらの図についての後述の説明とを参照さ
れたい。
【0056】一斉分配モード、即ちブロードカスト・モ
ードにおいては、メッセージは特定の1個または複数個
の受信プロセッサを明示することなく、全てのプロセッ
サへ同時に送達される。このモードが用いられるのは、
典型的な例を挙げるならば、応答、ステータス問合せ、
コマンド、及び制御機能に関してである。
【0057】受信プロセッサが明示されている必要があ
る場合には、メッセージ・パケットそれ自体の中に含ま
れている転送先選択情報が、そのパケットを局所的に
(=個々のプロセッサにおいて)受入れるか拒絶するか
を判断するための判定基準を提供するようになってい
る。例を挙げれば、受信プロセッサ・モジュールの内部
のインターフェイス・ロジックが、高速RAM26に記
憶されているマップ情報に従って、そのパケットのデー
タがそのインターフェイス・ロッジクが組込まれている
特定のプロセッサが関与する範囲に包含されるものか否
かを識別する。高速RAM内のマップ・ビットを種々に
設定することによって様々な選択方式の判定基準を容易
に設定することができ、それらの選択方式には、例え
ば、特定の受信プロセッサの選択、(「ハッシング」に
より)格納されているデータベースの一部分の選択、ロ
ジカル・プロセス・タイプ(「クラス」)の選択、等々
がある。ブロードカストを局所的アクセス制御(=個々
のプロセッサにおいて実行されるアクセス制御)と共に
用いることは、データベース管理システムにとっては特
に有益であり、それは、小さなオーバーヘッド用ソフト
ウェアしか必要とせずに、広範に分散されたリレーショ
ナル・データベースの任意の部分や、複数の大域的に既
知となっているロジカル・プロセスのうちの任意のもの
の分散された局所的コピーに、アクセスすることができ
るからである。従ってこのシステムは、メッセージの転
送先として、1つの転送先プロセッサを特定して選択す
ることもでき、また、1つのクラスに属する複数の資源
を特定して選択することもできる。
【0058】更にまた、ハイ・レベルのデータベース問
合せは、しばしば、データベースの別々の部分の間の相
互参照と、所与のタスクについての一貫性を有するレフ
ァレンス(識別情報)とを必要とする。メッセージに組
込まれたトランザクション・ナンバ(TN)は種々の特
質を持つものであるが、その中でも特に、そのような大
域的なトランザクションのアイデンティティ(同定情
報)及びレファレンスを提供するものである。多数のタ
スクを、互いに非同期的に動作するローカル・プロセッ
サ・モジュール(局所的プロセッサ・モジュール)によ
って同時並行的に処理することができるようになってお
り、また、各々のタスクないしサブタスクは適当なTN
を持つようにされている。TNとDSW(転送先選択ワ
ード)とコマンドとを様々に組合わせて用いることによ
って、実質的に無限の融通性が達成されるようになって
いる。その割当てと処理とが非同期的に行なわれている
極めて多数のタスクに対して、広範なソート/マージ動
作(sort/merge operation)を適用することができるよ
うになっている。TNについては、それを割当てること
と放棄することとが可能となっており、またマージ動作
については、その開始と停止とが可能とされている。あ
る種のメッセージ、例えば継続メッセージ等について
は、その他のメッセージの伝送に優先する優先権を持つ
ようにすることができる。TNと、それにそのTNに関
するステータスを更新するローカル・プロセッサとを利
用することにより、ただ1つの問合せだけで所与のTN
についての大域的資源のステータスを判定することがで
きるようになっている。分散型の更新もまた一回の通信
で達成できるようになっている。本発明のシステムは、
以上の全ての機能が、ソフトウェアを拡張したりオーバ
ーヘッドの負担を著しく増大させることなく、実行され
るようにするものである。
【0059】本発明を用いるならばその結果として、従
来技術において通常見られる個数のマイクロプロセッサ
よりはるかに多くの個数のプロセッサを備えたマルチプ
ロセッサ・システムを、問題タスクに対して非常に効果
的に動作させることが可能になる。現在ではマイクロプ
ロセッサは低価格となっているため、問題領域において
高性能を発揮するシステムを、それも単に「ロー」パワ
ー("raw" power)が高性能であるというだけではない
システムを、実現することができる。
【0060】全てのメッセージのタイプと種々のサブタ
イプとを包含する一貫性のある優先順位プロトコルが、
ネットワークに供給される種々様々なメッセージの全て
を包括するように定められている。応答メッセージ、ス
テータス・メッセージ、並びに制御メッセージはプライ
マリ・データ・メッセージとは異なる形式のメッセージ
であるが、それらも同じように、ネットワークの競合/
マージ動作(contention/merge operation)を利用し、
そしてそれによって、転送されている間に優先権の付与
を受ける。本システムにおける応答メッセージは、肯定
応答(ACK)か、否定応答(NAK)か、或いは、そ
のプロセッサがそのメッセージに対して有意義な処理を
加えるための資源を持っていないことを表わす表示
(「非該当プロセッサ(not applicable processor)」
−NAP)である。NAK応答は、ック(lock)状態、
エラー状態、ないしはオーバーラン(overrun)状態を
表示する幾つかの異なったタイプのうちのいずれであっ
ても良い。発信元プロセッサは1つだけであることも複
数個ある場合もあるが、発信元プロセッサはメッセージ
の送信を終了した後には以上のような応答を必要とする
ため、応答メッセージにはプライマリ・データ・メッセ
ージより高位の優先順位が与えられている。
【0061】本システムは更にSACKメッセージ(ス
テータス肯定応答メッセージ:status acknowledgment
message)を用いており、このSACKメッセージは、
特定のタスク即ちトランザクションに関する、ある1つ
のローカル・プロセッサのレディネス状態(どのような
動作が可能であるかという状態:readiness state )を
表示するものである。このSACK応答の内容は局所的
に(=個々のプロセッサにおいて、即ちローカル・プロ
セッサにおいて)更新されると共に、ネットワークから
アクセスできる状態に保持される。斯かるSACK応答
は、ネットワークのマージ動作と組合わされることによ
って、所与のタスク即ちトランザクションに関する単一
の問合せによる大域的ステータス報告が得られるように
している。ステータス応答は優先順位プロトコルに従う
ため、ある1つのトランザクション・ナンバに関する応
答のうちのデータ内容が最小の応答が自動的に優先権を
得ることになり、それによって最低のレディネス状態が
大域的なシステム状態として確定され、しかもこれは中
断されることのない1回の動作によって行なわれる。更
に、このようなSACK表示はある種のプライマリ・メ
ッセージと共に用いられることもあり、それによって、
例えばシステムの初期化やロックアウト動作等の、様々
なプロトコルが設定される。
【0062】種々のメッセージのタイプに関する優先順
位プロトコルは先ず最初にコマンド・コードについて定
義されており、このコマンド・コードは、図11に示す
ように各メッセージ及び応答の先頭に立つコマンド・ワ
ードの、その最初の6ビットを使用している。これによ
ってメッセージのタイプ及びサブタイプに関して充分な
区別付けができるようになっているが、ただし、より多
段階の区別付けをするようにすることも可能である。
図11を参照すれば分るように、本実施例においては、
SACK応答は7つの異なったステータス・レベルを区
別して表わす(更には優先権判定のための基準をも提供
する)ものとされている。応答メッセージの場合には、
以上の6ビットの後に、10ビットのOPIDの形式と
したタグが続く(図3参照)。TNとOPIDとはいず
れも更なるソーティング用判定基準としての機能を果た
すことができ、その理由は、これらのTNとOPIDと
はタグ領域の内部において異なったデータ内容を持つか
らである。
【0063】各プライマリ・メッセージがネットワーク
を介して伝送された後には、全てのプロセッサのインタ
ーフェイス部が、たとえそれがNAPであろうとも、と
もかく応答メッセージを発生する。それらの応答メッセ
ージもまたネットワーク上で互いに競合し、それによっ
て、単一または共通の勝利した応答メッセージが全ての
プロセッサへブロードカストされる。敗退したメッセー
ジパケットは後刻再び同時送信を試みられることになる
が、この再度の同時送信は非常に短い遅延の後に行なわ
れ、それによってネットワークが実質的に連続的に使用
されているようにしている。複数のプロセッサがACK
応答を送出した場合には、それらのACK応答はOPI
Dに基づいてソーティングされることになる。
【0064】本発明を用いるならばその結果として、タ
スクの開始と停止と制御、並びにタスクに対する問合せ
を、極めて多数の物理的プロセッサによって、しかも僅
かなオーバーヘッドで、実行することが可能となる。こ
のことは、多数のプロセッサのロー・パワー(raw powe
r )を問題状態の処理のために効果的に使うことを可能
としており、なぜならば、このロー・パワーのうちシス
テムのコーディネーション(coordination)及び制御に
割かれてしまう量が極めて少なくて済むからである。コ
ーディネーションと制御のオーバーヘッドは、いかなる
分散型処理システムにおいても、その効率に対する根本
的な制約を成すものである。
【0065】大域的な制御(即ちネットワークの制御)
を目的としている場合には、種々のタイプの制御通信が
用いられる。従って、「マージ停止」、「ステータス要
求」、及び「マージ開始」の各メッセージや、あるタス
クの割当てのためのメッセージ並びにあるタスクの放棄
のためのメッセージは、データ・メッセージと同一のフ
ォーマットとされており、それ故それらのメッセージも
また、ここではプライマリ・メッセージと称することに
する。それらの制御メッセージも同様にTNを含んでお
り、そして優先順位プロトコルの中の然るべき位置に位
置付けられている。このことについては後に図10及び
図11に関して説明することにする。「大域的セマフォ
・バッファ・システム」という用語を先に使用したの
は、図1に示された高速ランダム・アクセス・メモリ2
6及び制御ロジック28が、マルチプロセッサのモード
の選択とステータス表示及び制御指示の双方向通信との
両方において、重要な役割りを果たしているという事実
があるからである。この大域的セマフォ・バッファ・シ
ステムはアクセスの二重性を提供するものであり、この
アクセスの二重性とは、高速で動作するネットワーク構
造体50とそれより低速で動作するマイクロプロセッサ
との双方が、メモリ26内のメッセージ、応答、制御、
ないしはステータス表示を、遅延なしに、そしてネット
ワークとマイクロプロセッサとの間の直接通信を必要と
することなく、参照することができるようにしていると
いうことである。これを実現するために、制御ロジック
28が、メモリ26を差込みワード・サイクル(interl
eaved woed cycle)で時間多重化(タイム・マルチプレ
クシング)してネットワーク50とマイクロプロセッサ
とへ接続しており、これによって結果的に、メモリ26
を共通してアクセスすることのできる別々のポートが作
り上げられているのと同じことになっている。大域的資
源、即ちネットワーク50と複数のマイクロプロセッサ
とは、トランザクション・ナンバを、メモリ26のうち
のトランザクションのステータスを格納するために割振
られている部分へのロケートを行なうアドレス・ロケー
タとして、利用することができる。局所的なレベル(=
個々のプロセッサのレベル)において、あらゆる種類の
使用可能状態を包含する所与のトランザクションに関す
るサブタスクのステータスを、マイクロプロセッサの制
御の下にメモリ26の内部で更新し、そして制御ロジッ
ク28によってバッファ・システムにロックするという
ことが行なわれる。7種類の異なった作動可能状態のう
ちの1つを用いることによって、エントリをメモリ26
の異なった専用部分から好適に取出すことができるよう
になっている。ネットワークから問合せを受取ったなら
ば、プロセッサのステータスの通信が行なわれて(即ち
「セマフォ」が読出されて)、それに対する優先権の判
定がネットワークの中で行なわれ、その際、完了の程度
の最も低いレディネス状態が優先権を得るようになって
いる。以上の構成によって、1つの問合せに対する全て
のプロセッサからの迅速なハードウェア的応答が得られ
るようになっている。従って所与のタスクに関する分散
された複数のサブタスクの全てが実行完了されているか
否かについて、遅滞なく、且つソフトウェアを用いるこ
となく、知ることができる。更にこのシステムでは、通
信を行なうプロセッサ・モジュールのいずれもがトラン
ザクション・ナンバの割当てを行なえるようになってお
り、このトランザクション・ナンバ割当ては、使用可能
な状態にあるトランザクション・ナンバを、メッセージ
に使用し或いは各々の大域的セマフォ・バッファ・シス
テム内において使用するために割当てる動作である。
【0066】以上の、トランザクションのアイデンティ
ティとステータス表示とを統合した形で使用するという
ことの好適な具体的態様には、複数のプロセッサの各々
が所与の判定基準に関わる全てのメッセージを順序正し
く送出することを要求されるようにした、複合的マージ
動作がある。もし従来技術に係るシステムであれば、先
ず各々のプロセッサが自身のタスクを受取ってその処理
を完了し、然る後にその処理の結果を、最終的なマージ
動作を実行するある種の「マスタ」プロセッサへ転送す
るという方式を取らねばならないであろう。従ってその
マスタプロセッサが、そのシステムの効率に対する重大
なネックとなるわけである。
【0067】大域的レディネス状態が、作用が及ぶプロ
セッサの全てが準備のできた状態にあるということを確
証したならば、夫々のプロセッサに備えられたメモリ2
6における最高の優先順位を有するメッセージが互いに
同時にネットワークへ送出され、そしてそれらのメッセ
ージに対しては、前述の如く、マージが行なわれる間に
優先権の判定がなされる。幾つものグループのメッセー
ジについて次々と再送信の試みがなされ、その結果、複
数のメッセージを当該トランザクション・ナンバに関優
先順位の高いものから低いものへと順に並べ、その最後
には最低の優先順位のものがくるようにした、シリアル
なメッセージ列が発生される。特別のコマンド・メッセ
ージに従って、このシステムは、マージ動作をその途中
で停止することと途中から再開することとが可能とされ
ており、そのため、互いに同時刻に実行の途中にある複
数のマージ動作が、このネットワーク50を共有してい
るという状態が存在し得るようになっており、それによ
ってこのシステムの資源を極めて有効に利用することが
可能となっている。
【0068】従って、いかなる時刻においても、このネ
ットワーク50に接続されている動作中のプロセッサの
全てが、様々なトランザクション・ナンバに関係した複
数のメッセージに関する動作を互いに非同期的に実行し
ていられるようになっている。1つのステータス問合せ
によって同一のトランザクション・ナンバ即ち「現在」
トランザクション・ナンバの参照が行なわれたなら、全
てのプロセッサが、用意されているステータス・レベル
のうちの1つをもって互いに同期して応答を行なう。例
を挙げると、「マージ開始(START MERGE )」メッセー
ジは、ある特定のトランザクション・ナンバによって指
定される大域的セマフォのテスト(=調査)を行なわ
せ、もしこのテストの結果得られた大域的状態が「準備
完了」状態であれば(即ち「送信準備完了(SEND READ
Y)」または「受信準備完了(RECEIVE READY )」のい
ずれかび状態であれば)、現在トランザクション・ナン
バ(present transaction number:PTN)の値がこの
「マージ開始」メッセージに含まれて伝送されたTNの
値に等しくセットされる。(もしテストの結果得られた
大域的状態が「準備完了」状態でなかったならば、PT
Nの値は「TN0(これはトランザクション・ナンバ
(TN)が「0」であるという意味である)」という値
に戻されることになる)。
【0069】更には「マージ停止(STOP MERGE)」メッ
セージも、現在トランザクション・ナンバを「0」にリ
セットする。このようにして「TN0」は、ある1つの
プロセッサから他の1つのプロセッサへのメッセージ
(ポイント・ツー・ポイント・メッセージ)のために使
用される「ディフォルト」値のトランザクション・ナン
バとして利用されている。別の言い方をすれば、この
「TN0」によって、「ノン・マージ(non-merge)」
モードの動作が指定されるのである。
【0070】この大域的相互通信システムは、メッセー
ジの構成については図3(a)、(b)、(c)、及び
図11に示されているものを、また、高速ランダム・ア
クセス・メモリ26の構成については図8及び図10に
示されているものを採用している。更に詳細な説明は、
後に図5、図7、図9、及び図13に関連させて行なう
ことにする。
【0071】図3(a)〜図3(c)及び図11から分
るように、応答に用いられるコマンド・コードは00か
ら0F(16進数)までであり、また、プライマリ・メ
ッセージに用いられるコマンド・コードは10(16進
数)からより大きな値に亙っている。従って応答はプラ
イマリ・メッセージに対して優先し、図11に示した並
べ順では最小の値が先頭にくるようにしてある。
【0072】高速RAMメモリ26" (図8)の内部の
1つの専用格納領域(同図において「トランザクション
・ナンバ」と書かれている領域)が、図12のワード・
フォーマット(前述の7種類のレディネス状態、TN割
当済状態、並びにTN非割当状態)を格納するために使
用されている。このメモリ26" のその他の複数の専用
部分のなかには、入力(受信メッセージ)のための循環
バッファと、出力メッセージのための格納空間とが含ま
れている。このメモリ26" のもう1つの別の分離領域
がメッセージ完了ベクトル領域として使用されており、
この領域は、送信完了した出力メッセージにポインタを
置くことができるようにするものであり、これによっ
て、出力メッセージの格納空間を有効に利用できるよう
になっている。
【0073】以上から理解されるように、メモリ26及
び制御ロジック28については、それらのキューイング
(queuing )機能並びにデータ・バッファリング機能は
確かに重要なものであるが、それらと共に、大域的トラ
ンザクションを個々のプロセッサに関して分散させて処
理するところの多重共同動作が独特の重要性を有するも
のとなっている。
【0074】(能動ロジック・ノード)冗長性をもって
配設されている2つのネットワークのいずれにおいて
も、図1の複数の能動ロジック・ノード54は夫々が互
いに同一の構成とされているが、ただし例外として、各
ネットワークの頂点にある方向反転ノード54だけは、
上流側ポートを備えず、その替わりに、下流方向へ方向
反転するための単なる信号方向反転経路を備えている。
図4に示すように、1個のノード54を、機能に基づい
て2つのグループに大きく分割することができる。それ
らの機能的グループのうちの一方はメッセージと並びに
コリジョン信号(衝突番号)の伝送に関係するものであ
り、他方は共通クロック信号の発生並びに再伝送に関係
するものである。クロック信号に対しては、異なったノ
ードにおける夫々のクロック信号の間にスキューが存在
しないように、即ちゼロ・スキューとなるように、同期
が取られる。以上の2つの機能グループは互いに独立し
たものではなく、その理由は、ゼロ・スキュー・クロッ
ク回路が信号伝送システムの重要な部分を形成している
からである。ワード・クロック(シリアルな2つのバイ
トからなる)とバイト・クロックとの両方が用いられ
る。ここで特に述べておくと、この能動ロジック・ノー
ド54の状態を設定ないしリセットする際にも、また、
異なった動作モードを設定する際にも、この能動ロジッ
ク・ノード54を外部から制御する必要はなく、また実
際にそのような制御が行なわれることはない。更には、
夫々のノード54が互いに同一の構造であるため、最近
のIC技術を使用してそれらのノードを大量生産するこ
とが可能であり、それによって、信頼性を向上させつ
つ、かなりのコストの低下を実現することができる。
【0075】先に言及したA、B及びCの夫々の「ポー
ト」は、その各々が10本の入力データ・ラインと10
本の出力データ・ラインとを備えている。例えばAポー
トでは、入力ラインはAIで表わされ、出力ラインはA
0で表わされている。各々のポート毎に、上流方向クロ
ック・ライン及び下流方向クロック・ラインと共に、1
本の「コリジョン」ライン(即ち「衝突」ライン)が用
いられている(例えばAポートにはAcol が用いられて
いる)。Aポート及びBポートの夫々のデータ・ライン
はマルチプレクサ60に接続されており、このマルチプ
レクサ60は、互いに競合する2つのワードのうちの優
先する方のワード、或いは(それらの競合ワードが互い
に同一の場合には)その共通ワードを、データ信号C0
として、上流側ポート(Cポート)に接続されているア
ップ・レジスタ62へスイッチングして接続する。これ
と同時に、より高位の階層のノードから送出されてCポ
ートで受取られた下流方向データが、ダウン・レジスタ
64内へシフト・インされ、そしてそこからシフト・ア
ウトされて、Aポート及びBポートの両方に出力として
発生する。
【0076】バイトからなるシリアルな上流方向への信
号列のうちの一方はブロックされ得るわけであるが、し
かしながらそれによって上流方向ないし下流方向への余
分な遅延が発生することはなく、そして複数のワード
が、ワード・クロック並びにバイト・クロックの制御の
下に、切れ目のない列を成して、アップ・レジスタ62
及びダウン・レジスタ64を通して進められて行くので
ある。
【0077】Aポート及びBポートへ同時に供給された
互いに競合するバイトどうしは、第1及び第2のパリテ
ィ検出器66、67へ送られると共に比較器70へも送
られ、この比較器70は、8個のデータビットと1個の
制御ビットとに基づいて、最小の値のデータ内容が優先
権を得るという方式で優先権の判定を行なう。この優先
権判定のためのプロトコルにおいては、「アイドル」信
号、即ちメッセージが存在していないときの信号は、と
ぎれることなく続く「1」の列とされている。パリティ
・エラーは、例えば過剰な雑音の存在等の典型的な原因
や、その他の、信号伝送ないし回路動作に影響を与える
何らかの要因によって生じ得るものである。しかしなが
ら本実施例のシステムにおいては、パリティ・エラー表
示は、更に別の重要な用途のためにも利用されている。
即ち、あるマイクロプロセッサが動作不能状態へ移行す
ると、その移行がそのたび毎にマーキングされ、このマ
ーキングは、パリティ・ラインを含めた全ての出力ライ
ンが高レベルになる(即ちその値が「1」になる)こと
によって行なわれ、従ってそれによって奇数パリティ・
エラー状態が発生されるようになっている。
【0078】このパリティ・エラー表示は、1つのエラ
ーが発生したならネットワーク内を「マーカ(marke
r)」として伝送され、このマーカによって、システム
は、大域的資源に変化が生じたことを識別すると共にそ
の変化がどのようなものかを判定するためのプロシージ
ャを開始することができるようになっている。
【0079】1対のパリティ検出器66、67と比較器
70とは、信号を制御回路72へ供給しており、この制
御回路72は、優先メッセージ・スイッチング回路74
を含み、また、優先権の判定がさなれたならば比較器7
0の出力に応答してマルチプレクサ60を2つの状態の
うちのいずれかの状態にロックするように構成されてお
り、更に、下流方向へのコリジョン信号を発生並びに伝
播するように構成されている。移行パリティ・エラー伝
播回路76の名前のいわれは、この回路が、先に説明し
た同時に全てのラインが「1」とされるパリティ・エラ
ー状態をネットワークの中に強制的に作り出すものだか
らである。リセット回路78はこのノードを初期状態に
復帰させるためのものであり、エンド・オブ・メッセー
ジ(endof message:EOM)検出器80を含んでい
る。
【0080】以上に説明した諸機能並びに後に説明する
諸機能が実行されるようにするためには、各々の能動ロ
ジック・ノードにおいてマイクロプロセッサ・チップを
使用してそれらの機能を実行するようにしても良いので
あるが、しかしながら、図5の状態図と以下に記載する
論理式とに従ってそれらの機能が実行されるようにする
ことによって、更に容易に実行することが可能となる。
図5の状態図において、状態S0はアイドル状態を表わ
すと共に、互いに競合しているメッセージどうしが同一
であるために、一方のポートを他方のポートに優先させ
る判定が下されていない状態をも表わしている。S1状
態及びS2状態は夫々、Aポートが優先されている状態
及びBポートが優先されている状態である。従って、B
Iのデータ内容がAIのデータ内容より大きく且つAI
にパリティ・エラーが存在していない場合、または、B
Iにパリティ・エラーが存在している場合(これらのA
Iにパリティ・エラーが存在していないという条件と、
BIにパリティ・エラーが存在しているという条件と
は、夫々、AIPE及びBIPEと表記され、フリップ
・フロップの状態によって表わされる)には、Aポート
が優先されている。AIとBIとに関して以上と逆の論
理状態(論理条件)は、この装置がS2状態へ移行すべ
き状態(条件)として存在するものである。より高位の
階層のノードから、その階層において衝突が発生した旨
の表示が発せられたならば、その表示は、下流方向信号
の中に入れられてCOLINとして送り返されてくる。こ
の装置は、それがS0状態、S1状態、及びS2状態の
うちのいずれの状態にあった場合であってもS3状態へ
と移行し、そしてこのコリジョン信号を下流方向へAco
l及びBcol として転送する。S1状態ないしはS2状
態にあるときには、このノードは既に判定を下している
ため、同様の方式でコリジョン信号が下流方向へ、より
低位の階層の(2つの)ノードへと送出されており、こ
のとき、優先メッセージスイッチング回路74は、状況
に応じてAポート或いはBポートにロックされている。
【0081】リセット回路78はEOM検出器80を含
んでおり、この検出器80を用いて、ノードのS3から
S0へのリセット(図5)が行なわれる。第1のリセッ
トモードは、図6に示すように プライマリ・メッセー
ジの中のデータ・フィールドを終結させているエンド・
オブ・メッセージ(EOM)フィールドを利用するもの
である。1つのグループを成す複数のフリップ・フロッ
プと複数のゲートとを用いて、次式の論理状態が作り出
される。 URINC・URC・URCDLY ここで、URCはアップ・レジスタの中の制御ビットを
表わし、URINCはこのアップ・レジスタへ入力され
る入力信号の中の制御ビットの値を表わし、そしてUR
CDLYはアップ・レジスタ遅延フリップ・フロップ内
のC値(=制御ビットの値)を表わしている。
【0082】図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またはS
2からS0への復帰動作がトリガされるのである。
【0083】より高位の階層のノードがリセットされる
と、それによってCOLIN状態となり、これは衝突状態
が消失したことを表わす。この論理状態は、S3から基
底状態であるS0への復帰動作を開始させる。注意して
頂きたいことは、このCOLIN状態は、エンド・オブ・
メッセージがネットワーク50の階層を次々と「走り抜
けて」いくのにつれて、下方へ、それらの階層へ伝播し
ていくということである。以上のようにして、各々のノ
ードはメッセージの長さの長短にかかわらず自己リセッ
トできるようになっている。更に注意して頂きたいこと
は、ネットワークの初期状態の如何にかかわらず、アイ
ドル信号が供給されたならば全てのノードがS0状態に
リセットされるということである。
【0084】コリジョン信号は複数のプロセッサ・モジ
ュールにまで戻される。それらのモジュールはこのコリ
ジョン状態情報を記憶し、そしてアイドル・シーケンス
を送信する動作へと復帰し、このアイドル・シーケンス
の送信は競合において勝利を得たプロセッサが送信を続
けている間中行なわれている。プロセッサは、COLIN
からCOLINへの遷移を検出し次第、新たな送信を開始
することができるようにされている。更にこれに加え
て、プロセッサは、Nをネットワーク内の階層の数とす
るとき、2N個のバイト・クロックの時間に亙ってアイ
ドル信号を受信し続けたならば新たな送信を開始するこ
とができるようにされており、それは、このような状況
もまた、前者の状況と同じく、先に行なわれた送信がこ
のネットワーク内に残ってはいないということを表わす
ものだからである。これらの新たな送信を可能にするた
めの方式のうちの後者に依れば、初めてネットワークに
参加するプロセッサが、トラフィックさえ小さければネ
ットワークとの間でメッセージ同期状態に入ることがで
き、そのためこの初参加のプロセッサは、このネットワ
ーク上の他のプロセッサとの間の相互通信を開始する際
して、別のプロセッサからのポーリングを待つ必要がな
い。
【0085】パリティ・エラー状態は図5の状態図の中
にに記されているが、次の論理式に従って設定されるも
のである。 PESIG = AIPE・AIPEDLY + BIPE・BIPEDLY
【0086】このPESIGの論理状態が真であるなら
ば、アップ・レジスタへの入力信号URINは、(URIN
0…URIN 7、C、P=1…1、1、1)である。上の論
理式を満足するために、移行パリティ・エラー伝播回路
76は、AIPE用、即ちA入力のパリティ・エラー用
フリップ・フロップと、遅延フリップ・フロップ(AI
PEDLY)とを含んでいる。後者のフリップ・フロッ
プは、AIPEの設定状態に従って、それよりバイト・
クロック1つ分遅れて状態を設定される。従ってA入力
に関して言えば、AIPE用フリップ・フロップがパリ
ティ・エラーによってセット状態とされたときに、PE
SIG値がバイト・クロック1つ分の間ハイ・レベルと
なり、そのため、このPESIG信号はパリティ・エラ
ーの最初の表示がなされたときに1回だけ伝播されるわ
けである。複数のデータ・ビット、制御ビット、並びに
パリティ・ビットの全てが「1」の値であるときにもこ
れと同じ状態が生じるが、それは、大域的資源の状態に
ついての先に説明した移行が発生したときに生じる状態
である。それによって全てのラインがハイ・レベルに転
じ、全てが「1」の状態を強制的に作り出されて総数偶
数状態(奇数パリティ状態)が確立され、その結果、先
に説明した状態にAIPEフリップ・フロップとAIP
EDLYフリップ・フロップとがセットされてパリティ
・エラーを表示するようになる。以上の構成は、Bポー
トで受取ったメッセージ・パケットがパリティ・エラ
ー、或いはステータスの変化を表示するための強制的パ
リティ表示を含んでいる場合にも、同様の方式で動作す
る。
【0087】雑音の影響やその他の変動要素に起因して
発生するパリティ・エラーは、通常は、プロセッサの動
作に影響を及ぼすことはなく、その理由は、冗長性を有
する二重のネットワークを用いているからである。監視
(モニタ)や保守のためには、インジケータ・ライト
(=表示灯:不図示)を用いてパリティ・エラーの発生
を表示するようにする。ただし、ステータスの変化を示
す1回のみ伝播するパリティ・エラーについては、それ
によって、その変化の重要性を評価するためのルーチン
が開始される。
【0088】図4に示すようにこのノード54に使用さ
れているクロッキング・システムは、ネットワーク内に
用いられている階層の数にかかわらず、全てのノード要
素におけるクロックとクロックとの間のスキュー(ske
w)がゼロとなるようにするための、即ちゼロ・スキュ
ー状態を保持するための、独特の手段を提供するもので
ある。クロック回路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から信号を受取って
いる。
【0089】上記のワード・クロック・ラインは、第3
の排他的ORゲート100の2つの入力へ接続されてお
り、それら両方の入力は、直接的に接続されているもの
と、τc 遅延線101を介して接続されているものとで
ある。これによって、ワード・クロックの2倍の周波数
をもち、このワード・クロックに対してタイミングの合
った、バイト・クロック信号を得ている。
【0090】以上のクロック回路86の作用は、図7の
タイミング・ダイアグラムを参照すればより良く理解で
きよう。クロック・アウト信号(クロック出力信号)
は、PLO96の出力である。このクロッキング・シス
テムの最大の目的は、ネットワーク内の全てのノードに
関するクロック出力信号どうしの間にゼロ・タイム・ス
キュー状態を保持することにあるのであるから、当然の
ことながら、それらのクロック出力信号どうしはその公
称周波数もまた互いに同一でなければならばい。ノード
間の伝送ラインによる遅延τは、略々一定の値になるよ
うにするが、この遅延の値それ自体は長い時間に設定す
ることも可能である。ここに開示している方法を採用す
るならば、ネットワーク並びにノードのバイト・クロッ
ク速度を実機システムにおいて採用されている速度(公
称120ns)とした場合に、28フィート(8.53
m)もの長さにすることが可能である。当業者には容易
に理解されるように、可能最大個数のプロセッサ・モジ
ュールが目いっぱいに実装されいるのではないネットワ
ークには、更に階層を付加することによって、この28
フィートの整数倍の長さを容易に得ることができる。そ
の場合、それに対応して待ち時間、即ちそのネットワー
クを通して行なわれる伝送の伝送時間は増大する。
【0091】図7中のクロック・アウト信号のすぐ下の
波形によって示されているように、隣接するより高位の
階層から得られるワード・クロックはクロック・アウト
信号と同じような波形であるが、ただしτだけ遅れてい
る。このワード・クロックが、全てのノードに共通する
根本的タイミング基準を成すのであるが、そのようなこ
とが可能であるのは、個々のクロック・アウト信号の前
縁をその回路の内部で制御することができ、そしてそれ
らの前縁をワード・クロックに先行させることによっ
て、全てのノードが同期した状態に保持されるようにす
ることができるからである。波形A及び波形Bを参照す
ると分るように、第1のORゲート88が発生するパル
スAは、ワード・クロックの前縁の位置で終了してお
り、一方、第2のORゲート89が発生するパルスB
は、その前縁がワード・クロックの前縁と一致してい
る。このBパルスの後縁は、隣接するより低位の階層の
モジュールからのフィードバック・パルスの開始の位置
に定められ、このフィードバック・パルスはτだけ遅延
しているため、Bパルスはその持続時間が一定となって
いる。クロック回路86は、パルスAの持続時間をパル
スBの持続時間と同一に保持するように作用するが、そ
のように作用する理由は、PLO96の位相を進めて同
期状態が確立されるようにするにつれて、加算回路92
の出力信号(減算「B−A」を行なった信号)がゼロへ
近付いて行くからである。実際には、破線で示されてい
るように好適な位置より先行していることも遅れている
こともあるA信号の前縁に対して調節を加えて、このA
信号の前縁がワード・クロックの前縁より時間τだけ先
行する位置にくるようにする。全てのノードにおいて、
クロック・アウト信号の前縁がこの好適公称位置に位置
するようになれば、ワード・クロックどうしの間にゼロ
・スキュー状態が存在することになる。従ってネットワ
ークに接続されている夫々のプロセッサは、あるプロセ
ッサから別のプロセッサまでの経路の全長に関する制約
から解放されているが、それは、遅延が累積することが
無いということと、伝播時間に差が生じないということ
とに因るものである。
【0092】二倍周波数のバイト・クロックを発生させ
るために、遅延線101によって、遅延時間τc だけ遅
れたワード・クロックが複製されており、この遅延線1
01もゲート100へ信号を供給している。従って、図
7中のバイト・クロックと記されている波形から分るよ
うに、ワード・クロックの前縁と後縁の両方の位置に、
持続時間τc を有するバイト・クロック・パルスが発生
される。このパルスの発生は、各々のワード・クロック
のインタバルの間に2回づつ生じており、しかも、全て
ノードにおいて、ワード・クロックと同期して生じてい
る。以上の説明においては、ノードとノードとの間の伝
送ラインによって発生される遅延は階層から階層への伝
送方向がどちら方向であっても殆ど同一であり、そのた
め、事実上、このシステム内の全てのワード・クロック
並びにバイト・クロックが、互いに安定な位相関係に保
たれるということを、当然の前提としている。従って局
所的に(=個々のノードの内部で)発生されるバイト・
クロックは、各々のノードにおいて、メッセージの2バ
イト・ワード(=2個のバイトから成るワード)の、そ
の個々のバイトのためのクロッキング機能を提供してい
る。
【0093】以上の能動ロジック・ノードは、同時に送
出されたメッセージ・パケットどうしの間の競合をその
データ内容に基づいて決着させるようにしている場合に
は常に、潜在的な利点を有するものである。これに対
し、例えば、1981年2月17日付で発行された米国
特許第4251879号公報「デジタル通信ネットワー
クのための速度非依存型アービタ・スイッチ(Speed In
dependent Arbiter Switch for Digital Communication
Nbiworks)」に示されているものをはじめとする、大
多数の公知にシステムは、時間的に最初に受信された信
号がどれであるのかを判定することを目指しており、外
部に設けた処理回路または制御回路を使用するものとな
っている。
【0094】(プロセッサ・モジュール)図1の、シス
テム全体の概略図の中に図示されている個々のプロセッ
サは、夫々、インターフェイス・プロセッサ(IFP)
14及び16と、アクセス・モジュール・プロセッサ
(AMP)18〜23の具体例として示されており、ま
た、これらのプロセッサは、大まかに複数の主要要素に
再区分してある。これらのプロセッサ・モジュール(I
FP及びAMP)の構成についての更に詳細な具体例
は、図1の機能的な大まかな再区分との間に対応関係を
有するものとなるが、ただしそればかりでなく、かなり
多くの更なる再区分をも示すものとなる。本明細書で使
用するところの「プロセッサ・モジュール」なる用語
は、図8に図示されているアセンブリの全体を指すもの
であり、このアセンブリは、以下に説明する任意選択の
要素を備えることによって、IFP或いはAMPのいず
れかとして機能することができるようになる。また、
「マイクロプロセッサ・システム」という用語は、マイ
クロプロセッサ105を内蔵したシステム103を指す
ものであり、ここでマイクロプロセッサ105は、例え
ば、インテル8086型(Intel8086)16ビット・マ
イクロプロセッサ等である。このマイクロプロセッサ1
05のアドレス・パス並びにデータ・パスは、マイクロ
プロセッサ・システム103の内部において、例えばメ
インRAM107等の一般的な周辺システム、並びに周
辺機器コントローラ109に接続されている。この周辺
機器コントローラ109は、プロセッサ・モジュールが
AMPでありしかも周辺機器がディスク・ドライブ11
1である場合に用い得るものの一例として示すものであ
る。これに対して、このプロセッサ・モジュールをIF
Pとして働かせる場合には、破線で描いた長方形の中に
示されているように、このコントローラ即ちインターフ
ェイスを、例えばチャネル・インターフェイスに取り替
えれば良い。そのような具体例のIFPは、ホスト・シ
ステムのチャネル即ちバスとの間の通信を行なうものと
なる。このマイクロプロセッサ・システム103には従
来の一般的なコントローラやインターフェイスを用いる
ことができるので、それらのコントローラやインターフ
ェイスについては更に詳細に説明する必要はない。
【0095】1つのマイクロプロセッサ毎に1台のディ
スク・ドライブを用いることが費用と性能の両方の面に
おいて有利であるということを示し得ることに注目すべ
きである。そのような方式が有利であるということは、
データベースに関しては一般的に言えることであるが、
ただし、ときには、1つのマイクロプロセッサが複数の
二次記憶装置にアクセスできるようにマイクロプロセッ
サを構成することが有益なこともある。概略図において
は、図を簡明にするために、その他の通常用いられてい
るサブシステムが組み込まれている点については図示省
略してある。この省略されたサブシステムは例えば割込
みコントローラ等であり、割込みコントローラは、半導
体を製造しているメーカーが自社製のシステムに組み合
わせて使用するために供給しているものである。また、
本発明が提供し得る冗長性と信頼性とを最大限に達成す
ることのできる、プロセッサ・モジュールへ電源を供給
するために適切な手段を、講じることの重要性について
も当業者には理解されよう。
【0096】マイクロプロセッサ・システム103にお
ける任意選択要素として示されている周辺機器コントロ
ーラ109とチャネル・インターフェイスとは、図1中
のIFPインターフェイスとディスク・コントローラと
に相当するものである。これに対して図1の高速RAM
26は、実際には、第1のH. S. RAM26' と第2
のH. S. RAM26" とから成っており、それらの各
々は、タイム・マルチプレクシング(時間多重化)によ
って、機能の上からは事実上の3−ポート・デバイスと
されており、それらのポートのうちの1つ(図中に
「C」と記されているポート)を介してマイクロプロセ
ッサのバス・システムと接続されている。H. S. RA
M26' 、26" の各々は、夫々に第1ないし第2のネ
ットワーク・インターフェイス120、120' と協働
し、それによって、夫々が第1及び第2のネットワーク
50a及び50b(これらのネットワークは図8には示
されていない)と、入力(受信)ポートA及び出力(送
信)ポートBを介して通信を行なうようになっている。
このように互いに冗長性を有する2つのシステムとなっ
ているため、第2のネットワーク・インターフェイス1
20' と第2のH. S.RAM26" を詳細に説明する
だけで良い。ネットワーク・インターフェイス120、
120' については図13に関連して更に詳細に示され
説明されているが、それらは、大きく再区分するならば
以下の4つの主要部分に分けることができる。
【0097】第2のネットワーク50bからの10本の
入力ラインを、インターフェイス・データ・バス並びに
インターフェイス・アドレス・バスを介してH. S. R
AM26" のAポートへ接続している、入力レジスタ・
アレイ/コントロール回路122。
【0098】第2のネットワーク50bへの出力ライン
を、インターフェイス・データ・バス並びにインターフ
ェイス・アドレス・バスと、第2のH. S. RAM2
6" のBポートとへ接続している、出力レジスタ・アレ
イ/コントロール回路124。
【0099】インターフェイス・アドレス・バス並びに
インターフェイス・データ・バスと、H. S. RAM2
6" のAポート並びにBポートとへ接続された、マイク
ロプロセッサ・バス・インターフェイス/コントロール
回路126。
【0100】ネットワークからワード・クロックを受取
り、そして、インターフェイス120' を制御するため
の互いに同期し且つ適切な位相関係にある複数のクロッ
クを発生する、クロック発生回路128。
【0101】第2のネットワーク・インターフェイス1
20' とH. S. RAM26" とは、マイクロプロセッ
サ・システム103と協働することによって、高速で動
作するネットワークとそれと比較してより低速で動作す
るプロセッサとの間のデータ転送をコーディネートして
おり、また更に、それらの異なったシステム(=ネット
ワーク・システムとプロセッサ・システム)の間で交換
されるメッセージの、待ち行列を作る機能も果たしてい
る。マイクロプロセッサ・バス・インターフェイス/コ
ントロール回路126は、マイクロプロセッサ・システ
ムと協働して(読出し/書込み機能:R/W機能)を実
行するためのものであると言うことができ、このマイク
ロプロセッサ・システムは(少なくともそれがインテル
8086型である場合には)H. S. RAM26" に直
接データを書込む能力と、このH. S. RAM26" か
らデータを受取る能力とを備えている。
【0102】IFPの構造とAMPの構造とは、その作
用に関しては互いに類似したものであるが、しかしなが
ら、H. S. RAM26" の内部の入力メッセージ格納
領域の大きさと出力メッセージ格納領域の大きさとに関
しては、IFPとAMPとの間に相当の差異が存在する
ことがある。リレーショナル・データベース・システム
においては、IFPは、ネットワークを絶えず利用して
ホスト・コンピュータの要求を満たせるようにするため
に、H. S. RAM26" の内部に、高速ネットワーク
から新たなメッセージを受取るための、大きな入力メッ
セージ格納空間を備えている。AMPについてはこれと
逆のことが言え、それは、高速ネットワークへ送出され
る処理済メセージ・パケットのために、より多くの格納
空間が使用できるようになっていなければならないから
である。H. S. RAM26" はマイクロプロセッサ・
システム103の中のメインRAM107と協働しての
動作も行ない、このメインRAM107は各々のネット
ワークのためのメッセージ・バッファ・セクションを備
えている。
【0103】マイクロプロセッサ・システム103のた
めの、メインRAM107内部のシステム・アドレス空
間の割当ての態様は図9に示されており、それについて
簡単に説明しておく。一般的な方式に従って、ランダム
・アクセスのための記憶容量が増加された場合に使用さ
れる拡張用の空間を残すようにしてシステム・ランダム
・アクセス機能に割当てられたアドレスと、I/Oアド
レス空間と、ROM及びPROM(EPROMを含む)
の機能のために割当てられたアドレス空間とを有するも
のとなっている。更に、システム・アドレス空間のうち
の幾つかの部分が、夫々、第1及び第2の高速RAM2
6' 、26" から送られてくるメッセージ・パケット
と、それらの高速RAMへ送り出されるメッセージ・パ
ケットのために割当てられている。これによってシステ
ムの動作に非常な融通性が得られており、それは、マイ
クロプロセッサ105がH. S. RAM26" をアドレ
スすることが可能であるようにしても、メインRAM1
07の働きによって、ソフトウェアとハードウェアとの
相互依存性に殆ど拘束されないようにできるからであ
る。
【0104】再び図8に関して説明するが、既に述べた
ように、2つの方向からアクセスすることのできるH.
S. RAM26" は、マルチプロセッサ・モードの制
御、分散型の更新、並びにメッセージ・パケットの流れ
の管理における、中心的機能を実行するように構成され
ている。これらの目的や更に別の目的を達成するため
に、H. S. RAM26" は複数の異なった内部セクタ
に区分されている。図8に示されている様々なセクタの
相対的な配置の態様は、このシステムの中の個々のプロ
セッサ・モジュールの全てにおいて採用されているもの
であり、また、それらのセクタの境界を指定している具
体的なアドレスは、実際のあるシステムにおいて用いら
れているアドレスを示すものである。ここで注意して頂
きたいことは、これらのメモリ・セクタの大きさとそれ
らの相対的な配置とは、具体的なシステムの状況次第で
大きく変り得るものだということである。図示例では1
6ビットのメモリ・ワードが採用されている。選択マッ
プ及び応答ディレクトリは、初期設定の間に一度だけ書
込めば良いような種類の専用ルックアップ・テーブルで
あり、一方、トランザクション・ナンバ・セクションの
方は、動的改定自在な(=動作している間に何度も内容
を変更することができるようにした)ルックアップ・テ
ーブルを提供している。
【0105】選択マップのメモリ・セクションはロケー
ション0から始まっているが、この具体例では、基本的
にこのメモリ・セクションの内部において4つの異なっ
たマップが使用されるようになってお り、それらのマ
ップは相互に関連する方式で利用されるものである。メ
ッセージ・パケットの中に内包されている転送先選択ワ
ード(destination selection word:DSW)が、H.
S. RAM26" 内の専用の選択マップと共同するよう
にして用いられる。この転送先選択ワードは、計16個
のビットから成り、そしてそのうちの12個のビット・
ポジションを占めるマップ・アドレスとその他の4個の
ビットを占めるマップ選択データとを含むものとされて
いる。H. S. RAMの先頭の1024個の16ビット
・メモリ・ワードは、その各々が4つのマップ・アドレ
ス値を含んでいる。DSWに明示されているアドレス値
に従ってH. S. RAMへ1回のメモリ・アクセスを行
なうだけで、4つの全てのマップにつてのマップ・ビッ
トが得られ、その一方で、そのDSWに含まれているマ
ップ選択ビットが、どのマップを用いるべきかを決定す
るようになっている。
【0106】図15は、以上のマップ・セクションの概
念的な構造を示しており、同図においては、各々のマッ
プがあたかも物理的に分離した4096×1ビットのR
AMから成るものであるかのように図示されている。実
施する際の便宜を考慮に入れれば、図8に示されている
ように、全てのマップ・データがH. S. RAMの単一
の部分に格納されるようにするのが便利である。DSW
管理セクション190(図13)が、H. S. RAMの
1個の16ビット・ワードから得られる図15の4つの
マップの、その各々からの4個のビットに対するマルチ
プレクシング動作を制御している。当業者には理解され
るように、この方式の利点は、H. S.RAMのその他
の部分をアクセスするのに用いられるのと同じ手段を用
いて、プロセッサがマップを初期設定できるという点に
ある。更には、3つの異なったクラス(分類)の転送先
選択ワードが使用され、またそれに対応して、選択マッ
プの格納ロケーションが、ハッシュ選択部分、クラス選
択部分、及び転送先プロセッサ識別情報(destination
processor identification:DPID)選択部分に分割
されている。このDPIDは、当該プロセッサ105
が、そのメッセージ・パケットの転送先として意図され
た特定のプロセッサであるか否かを明示するものであ
る。これに対して、クラス選択部分は、当該プロセッサ
が、そのメッセージ・パケットを受取るべき特定の処理
クラスに属する複数のプロセッサのうちの1つであるか
否か、即ちそのプロセッサ・グループのメンバーである
か否かを明示するものである。ハッシュ値は、リレーシ
ョナル・データベース・システムの内部にデータベース
が分配される際の分配方法に応じて格納されており、こ
の分配方法は、そのシステムに採用されている、特定の
リレーションのためのアルゴリズム、並びに分散格納方
式に従ったものとなる。この具体例におけるハッシュ値
は、プロセッサの指定をするに際しては、そのプロセッ
サがそのデータに対して一次的な責任とバックアップ用
の責任とのいずれか一方をもつものとして指定すること
ができるようになっている。従って、以上の複数の選択
マップによって、H. S. RAM26" を直接アドレス
して、プロセッサが転送先であるか否かを判断する、と
いう方法を取れるようになっている。この機能は、優先
権を付与されたメッセージを全てのネットワーク・イン
ターフェイス120へブロードカストするという方法と
互いに相い補う、相補的な機能であり、そして割込みを
行なうことなくマイクロプロセッサ105のステータス
の局所的なアクセスができるようにしている機能でもあ
る。
【0107】H. S. RAM26" の中の、他の部分か
らは独立した1つのセクションが、大域的に分散されて
いる諸活動のチェック及び制御をするための中枢的な手
段として機能している。既に述べたように、また図3に
示されているように、ネットワーク50bへ送出され、
またこのネットワーク50bから受取る種々の処理の夫
々に対しては、トランザクション・ナンバ(TN)が割
当てられている。メッセージの中にTNが内包されてい
るのは、各々のプロセッサ・システム103が自ら受容
したサブタスクを互いに独立して実行する際の大域的な
トランザクション・アイデンティティ(トランザクショ
ン識別情報)とするためである。H. S. RAM26"
内の、複数の使用可能なトランザクション・ナンバのア
ドレスを格納するための専用のブロックが、それらのサ
ブタスクを実行する際にマイクロプロセッサ・システム
103によって局所的に制御及び更新されるステータス
・エントリ(=ステータスについての記述項)を収容し
ている。TNは、相互通信機能が実行される際に、局所
的にもまた大域的にも、様々な異なった利用法で用いら
れる。トランザクション・ナンバは、サブタスクを識別
するため、データを呼出すため、コマンドを与えるた
め、メッセージの流れを制御するため、並びに大域的な
処理のダイナミクスの種類を特定するために用いられ
る。トランザクション・ナンバは、大域的通信の実行中
に割当てたり、放棄したり、変更したりすることができ
る。これらの特徴については以下の記載において更に詳
細に説明する。
【0108】TNの特徴のうち、最も複雑ではあるがお
そらく最も効果的な特徴と言えるのは、ソート・ネット
ワーク(ソーティング機能を有するネットワーク)と協
働することによって、所与の制御処理に関するローカル
・プロセッサ(=個々のプロセッサ・モジュール)のス
テータスの分散型更新を可能にするという、その能力で
ある。各々の制御処理(即ちタスクないしマルチプロセ
ッサの活動)はそれ自身のTNをもっている。
【0109】レディネス状態(プロセッサがどのような
動作をする準備が整っているかの状態)の値が、H.
S. RAM26" のトランザクション・ナンバ・セクシ
ョンに保持されるようになっており、このレディネス状
態の値は、マイクロプロセッサ・システム103の制御
の下に局所的に(=個々のプロセッサ・モジュールの内
部で)変更される。マイクロプロセッサ・システム10
3は、図10の応答ディレクトリの中の適当なエントリ
(例えばSACK/Busy)(アドレスは「050D
(16進数)」)を初期設定することができ、そしてそ
れによって複製されたとおりのイメージを転送すること
によって、このSACK/Busyのステータスの、
H. S. RAM26" への入力する。あるTNアドレス
(=トランザクション・ナンバに対応する格納位置)に
入力されているエントリは、H. S.RAM26" のA
ポート及びBポートを介して、そしてインターフェイス
120' を経由して、ネットワーク50bからアクセス
することが可能となっている。問合せは、ステータス・
リクエスト(ステータス要求)のコマンド・コード(図
11参照)とTNとを含む「ステータス・リクエスト」
メッセージを用いて行われる。インターフェイス12
0' は、指定されたTNのTNアドレスに格納されてい
る内容を用いて、然るべきフォーマットで書かれた応答
メッセージを格納している応答ディレクトリを参照す
る。所与のTNに関する大域的ステータス問合せを第2
のネットワーク・インターフェイス120' が受取った
ならば、それによって、ハードウェア的な制御しか受け
ていない直接的な応答が引き出される。前置通信は不要
であり、また、マイクロプロセッサ・システム103が
割込みを受けたり影響を及ぼされたりすることもない。
しかしながら、「ロック(lock)」表示がインターフェ
イス120' へ転送されることによってステータスの設
定が行なわれた場合には、マイクロプロセッサ・システ
ム103は割込みを禁止し、またインターフェイス12
0' が、アドレス「0501(16進数)」から得られ
るロック・ワードを、後刻その排除が行なわれるまで通
信し続ける。
【0110】レディネス状態のワード・フォーマット
は、図12の「ビズィ(busy:動作実行中の状態)」か
ら「イニシャル(initial :初期状態)」までの7種類
の状態で示され、この図12は、実際のあるシステムに
おいて採用されている有用な一具体例を図示している。
レディネス状態をより多くの種類に分類するような変更
例やより少ない種類に分類する変更例も可能であるが、
同図に示されている7種類の状態を用いることによっ
て、多くの用途に適する広範な制御を行なうことができ
る。H. S. RAM26" の中の個々のTNの状態レベ
ル(=個々のTNアドレスに格納されているエントリが
表わしているレディネス状態のレベル)を継続的に更新
し、それによって、サブタスクの利用可能性やサブタス
クの処理の進捗状況が反映されるようにしておくこと
は、マイクロプロセッサ・システムの責任とされてい
る。このような更新は、図12に示されたフォーマット
を用いて、H. S. RAM26" 内のTNアドレスに書
込みを行なうことによって、容易に実行することができ
る。
【0111】図10において、各々のステータス応答
(状態応答)は、「05」から「0D」(16進数)ま
でのものについては、いずれもその先頭の部分がステー
タス肯定応答コマンド・コード(status acknowledgmen
t command code:SACK)で始まっている。ネットワ
ークへ送出されるそれらのSACK応答は、実際には、
図10のコマンド・コードと、図12のワード・フォー
マットの数字部分と、発信元プロセッサID(OPI
D)とから構成されており、これについては図11に示
すとおりである。従って、それらのSACK応答は、図
11に示された総合的優先順位規約の内部において、ひ
とまとまりの優先順位サブグループを形成している。O
PIDが優先順位規約に関して意味を持っているわけ
は、たとえば、複数のプロセッサがある1つのTNに関
して働いているが、ただしそれらのいずれもが「ビズ
ィ」状態にあるという場合には、ブロードカストされる
最優先メッセージの判定がこのOPIDに基づいて行な
われることになるからである。転送並びにシステムのコ
ーディネーションも、このデータ(OPID)に基づい
て行うことができる。
【0112】SACKメッセージ(=SACK応答)に
対して優先順位規約が定められていることと、複数のマ
イクロプロセッサ・システム103から同時に応答が送
出されるようにしたことと、ネットワーク50bにおい
て動的に(=伝送を行ないながら)優先権の判定が行な
われるようにしたこととによって、従来のシステムと比
較して、所与のタスクに関する大域的資源のステータス
の判定が、大幅に改善された方法で行なわれるようにな
っている。それによって得られる応答は、一義性を持
ち、規定にない状態を表わすことは決してなく、更に
は、ソフトウェアを必要とせずローカル・プロセッサ
(=個々のプロセッサ・モジュール)に時間を費消させ
ることもない。従って、例えば、タスクの実行を妨げる
頻繁なステータス要求によってデッドロックが生じてし
まうようなことは決してない。様々なステータス・レベ
ルにおいて、マルチプロセッサの多くの任意選択動作を
利用することができる。ローカル・プロセッサどうしが
互いに独立して動作を続けることができ、しかも単一の
問合せによって、1つの、大域的な、優先権を与えられ
た応答が引き出されるということ は、かつてなかった
ことである。
【0113】図12に示されている一連の状態につい
て、ここで幾らか詳しく説明しておけば、理解に役立つ
であろう。「ビズィ」状態と「ウェイティング(waitin
g:待ち)」状態とは、割当てられた、即ち委任されたサ
ブタスクに関して、次第により完成に近い段階へとこれ
から進んで行くことになる状態であり、「ウェイティン
グ」状態の方は、更なる通信ないしイベントを必要とし
ている状態を表わしている。これらの「ビズィ」並びに
「ウェイティング」の状態は、TNのステータスがより
高いレベルへと上昇して行き、ついにはそのTNに関す
るメッセージ・パケットを送信ないし受信できるステー
タス・レベルにまで到達するという、レベル上昇の例を
示すものである。
【0114】一方、メッセージ・パケットを送信ないし
受信する際には、以上とはまた別のTNの特徴である、
メッセージ制御におけるTNの能力が発揮されることに
なる。マイクロプロセッサ・システム103が送信すべ
きメッセージをもつようになると、ステータス表示は
「送信準備完了(send ready)」に変る。マイクロプロ
セッサ・システム103は、ステータス表示を更新する
ことに加えて、図12のワード・フォーマットを用いて
「ネクスト・メッセージ・ベクタ」の値をH. S. RA
M26" へ入力する。この入力されたエントリは、該当
する出力メッセージをH. S. RAM26" のどのロケ
ーションから取り出せば良いかを明示するものである。
このベクタは、ある特定のTNに関係する複数の出力メ
ッセージを1本につなげる(=チェーン(chain )す
る)ために、ネットワーク・インターフェイス120'
において内部的に使用されるものである。
【0115】以上の機能に関連した機能が、「受信準備
完了(receive ready )」状態の間に実行される。この
「受信準備完了」状態においては、TNの格納ロケーシ
ョン(=TNアドレス)に、マイクロプロセッサ・シス
テム103から得られる入力メッセージ・カウント値が
保持されるようになっており、この入力メッセージ・カ
ウント値は、所与のTNに関連して受信することのでき
るメッセージの個数に関係した値である。このカウント
値は、入力メッセージが次々と転送されて来るのに合せ
てデクリメントされ、ついにはゼロになることもある。
ゼロになったならばそれ以上のメッセージを受取ること
はできず、オーバラン(overrun)状態の表示がなされ
ることになる。以上のようにして、TNを利用してネッ
トワーク50bとマイクロプロセッサ・システム103
との間の伝送の速度を調節することができるようなって
いる。
【0116】局所的な(=個々のプロセッサについて
の)局面について説明すると、個々のプロセッサにおい
ては、処理が実行されている間、TNは送信メッセージ
及び受信メッセージの中に、システム全体で通用する一
定不変の基準として保持されている。「TN0」状態、
即ちディフォルト状態は、メッセージをノン・マージ・
モードで用いるべきであるという事実を明示するため
の、局所的コマンドとしての機能をも果たすものであ
る。
【0117】更に大域的な観点から説明すると、「TN
0」と、「TN>0」である種々の値とを、互いに異な
る性質のものとして区別することによって、TNを利用
している複数のコマンド機能のうちの1つのコマンド機
能が規定されている。即ち、そのようにTNを区別する
ことによって、「マージ/ノン・マージ」のいずれかを
表わす特性記述(キャラクタライゼーション)が各々の
メッセージ・パケットに付随することになり、それによ
って、複数のメッセージに対して優先権の判定とソート
とを行なうという、有力なシステムの動作方式が得られ
ているのである。同様に、「アサインド(Assigned:割
当てがなされている状態)」、「アンアサインド(Unas
signed:割当てがなされていない状態)」、「非関与プ
ロセッサ(Non-Participant )」、並びに「イニシャ
ル」というステータスを用いて、大域的相互通信と制御
の機能が遂行されるようになっている。「アンアサイン
ド」状態は、それ以前にプロセッサがTNを放棄した場
合の状態であり、従ってそれは、TNを再活性化させる
新たなプライマリ・メッセージを受取る必要がある状態
である。もし状態表示が「アサインド」であるべきとき
にプロセッサが「アンアサインド」を表示しているなら
ば、これはTNが適切に入力されなかったということを
示しているのであるから、訂正動作が実行されなければ
ならない。もしTNが「アンアサインド」であるべきと
きに「アサインド」となっているならば、これは、不完
全な転送が行なわれているか、或いは新たな1つのTN
を求めて2つのプロセッサの間で競合が行なわれている
ことの表われである場合がある。これらの「アサイン
ド」と「アンアサインド」とは、いずれもレディネス状
態としては扱われず、その理由は、それらの表示がなさ
れている段階では、プロセッサは、まだそのTNに関す
る作業を始めていない状態にあるからである。
【0118】更には、「イニシャル」状態と「非関与プ
ロセッサ」状態も、大域的資源の関係で重要である。オ
ン・ラインに入ろうとしているプロセッサ、即ち、この
システムへの加入手続きを行なわなければならないプロ
セッサは「イニシャル」状態にあリ、この態は、このプ
ロセッサをオン・ラインへ入れるためには管理上のステ
ップを踏む必要があることを表わしている。所与のタス
クに関して「非関与プロセッサ」状態にあるプロセッサ
は、局所的にはいかなる処理も実行する必要はないが、
しかしながらこのTNを追跡監視することにより、この
TNが不注意により不適切に使用されることのないよう
にする必要がある。
【0119】再び図10に関して説明すると、H. S.
RAM26" の専用ディレクトリ即ち参照セクション
は、以上に説明したタイプ以外にも、ハードウェア的に
応答を発生させるために使用される、優先順位を付与さ
れた、複数のその他のタイプのメッセージも含んでい
る。NA(not assigned:「割当てを受けていない」の
意)というエントリは、将来の使用に備えて準備され、
使用可能な状態で保持されている。3種類の異なったタ
イプのNAK応答(オーバラン、TNエラー、ロック
(Locked)の各NAK応答)は、そのデータ内容が最も
小さな値とされており、従って最も高い優先順位にある
が、それは、それらのNAK応答がエラー状態を示すも
のだからである。複数のSACK応答の後にACK応
答、そしてNAP応答(非該当プロセッサ応答)が続
き、それらは優先順位が低下して行く順序で並べられて
いる。この具体例の構成では、2つの応答用コマンド・
コードが機能を割当てられておらず(即ちNAとされて
おり)、それらは将来の使用に備えて使用可能な状態と
されている。以上に説明したディレクトリは、ソフウェ
アによって初期設定することができしかもハードウェア
によって利用されるため、広範な種々の応答メッセージ
・テキストのうちからどのようなものでも、迅速に且つ
柔軟性をもって発生させることができる。
【0120】以上のディレクトリの中の、その他の部分
からは独立している1つの独立部分を使用して、TO
P、GET、PUT、並びにBOTTOMの夫々のアド
レス、即ち、入力メッセージのための循環バッファの機
能に関するポインタと、それに完了出力メッセージのポ
インタとが、格納されている。こらのポインタは、夫
々、入力メッセージの管理と出力メッセージの管理とに
あてられているH. S. RAM26" の夫々の専用セク
タと協働して機能を果たすようになっている。入力メッ
セージのためには循環バッファ方式が用いられており、
この場合、H. S.RAM26" のディレクトリ・セク
ションに格納されている「TOP」が、入力メッセージ
のための上限アドレス位置を指定する可変アドレスとな
っている。同じディレクトリ・セクションに格納されて
いるPUTアドレスは、次に受信するメッセージを回路
がどこに格納すべきかというアドレス位置を指定するも
のである。GETアドレスは、ソフトウェアがバッファ
の空白化を行なっているアドレス位置をハードウェアで
認識できるようにするために、ソフトウェアによって設
定され且つ更新され続けるものである。
【0121】入力メッセージ・バッファの管理は、PU
Tをバッファの下限(bottom)のアドレスにセットし、
そしてGETアドレスがTOPに等しくなっている状態
から開始するという方法で、行なわれる。ソフトウェア
によって定められている動作上のルールは、GETがP
UTと等しい値にセットされてはならないということで
あり、もしそのようにセットされたならば、不定状態
(アンビギュアス・コンディション)が生じてしまうこ
とになる。入力メッセージがH. S. RAM26" の中
の入力メッセージ・バッファへ入力されると、メッセー
ジそれ自体の中に含まれているメッセージ長さ値が、次
に入力して来るメッセージの始点を決定し、続いて、デ
ィレクトリに格納されているPUTアドレスに対し、次
に入力して来るメッセージを受入れるべきバッファ内の
格納ロケーションを表示させるための変更が加えられ
る。以上のようにしたため、マイクロプロセッサ・シス
テム103は、自らの作業能力が許すときに、入力メッ
セージの取り出しを行なうことができるようになってい
る。
【0122】H. S. RAM26" 内の出力メッセージ
格納空間に格納されているデータは、他の部分からは独
立した循環バッファの内部に保持されている出力メッセ
ージ完了ベクトル、並びにH. S. RAM26" 内のネ
クスト・メッセージ・ベクタと共に用いられる。個々の
メッセージの編集(アセンブル)並びに格納は、任意の
ロケーションにおいて行なうことができ、また、互いに
関連する複数のメッセージについては、それらをネット
ワーク上へ送出するためのつなぎ合わせ(チェーン)を
行なうことができるようになっている。H. S. RAM
26" のディレクトリ・セクションでは、TOP、BO
TTOM、PUT、並びにGETの夫々のアドレスが既
に説明したようにして入力され且つ更新されており、そ
れによって、出力メッセージ完了バッファ内のロケーシ
ョンについての動的な現在指標が維持されている。メッ
セージ完了ベクタは、出力メッセージ格納空間内に格納
されているメッセージであってしかも既に適切に転送が
なされたことが受信した応答によって示されているメッ
セージを指し示すための、指標となるアドレスを構成し
ている。後に説明するように、このシステムは、マイク
ロプロセッサ・システム103が出力メッセージの入力
を容易に行なえるようにしている一方で、このマイクロ
プロセッサ・システム103が複雑な連結ベクタ・シー
ケンスを整然とした方式で扱えるようにしており、それ
によって、出力メッセージ格納空間が効率的に使用さ
れ、メッセージ・チェーンの転送ができるようにしてい
る。
【0123】応答に関連して先に説明した図11のプロ
トコルは、応答に続けてプライマリ・メッセージについ
ても規定されている。複数種類の応答メッセージが互い
に連続して並べられており、16進数のコマンド・コー
ドが昇順に図示されている。プライマリ・メッセージの
グループの中では、マージ停止メッセージ(このメッセ
ージは、基本的制御メッセージであるノン・マージ制御
メッセージでもある)が、そのデータ内容が最小値とな
っており、従って最高の優先順位にある。このメッセー
ジは、ネットワーク内並びにプロセッサ・モジュールに
おけるマージ・モードを終了させる、制御通信を構成し
ている。
【0124】極めて多くの異なったタイプのプライマリ
・データ・メッセージを昇順の優先順位を定めて利用す
ることができ、またそれらには、応用上の要求事項とシ
ステム的な要求事項とに基づいて、優先順位に関する分
類を加えることができる。先に述べたように、他のメッ
セージの後に続けられる継続メッセージに対しては、そ
れに関する先行メッセージ・パケットからの連続性を維
持できるようにするために、高い優先順位をもたせるよ
うにすることができる。
【0125】4種類のプライマリ・メッセージから成
る、図11中の最下段のグループは、優先順位の高い方
から低い方へ向かって、ステータス応答を得ることを必
要とする唯一のタイプのステータス・メッセージである
ステータス・リクエスト・メッセージ、「TN放棄」と
「TN割当て」とを要求する夫々の制御メッセージ、そ
して、更に優先順位の低い「マージ開始」制御メッセー
ジを含んでいる。
【0126】以上の構成は、後に説明する更に詳細な具
体例から明らかなように、多くの用途に用い得る動作を
可能とするものである。プロセッサ・モジュールは、現
在トランザクション・ナンバ(present transaction nu
mber:PTN)に基づいて動作するようになっており、
この場合、そのPTNが外部的に、ネットワークからの
命令によって指定されたものであろうとも、また、連続
した動作を実行している間に内部的に発生されたもので
あろうとも、同じことである。マージ動作が実行されて
いるときには、プロセッサ・モジュールは、大域的レフ
ァレンス、即ちトランザクション・アイデンティティ
(=トランザクション識別するための情報)を利用して
その動作を実行しているのであり、このトランザクショ
ン・アイデンティティはTNによって定められている。
マージ動作の開 始、停止、及び再開は、簡単なメッセ
ージの変更だけを利用して行なわれる。サブタスクが、
メッセージをマージすることを必要としていない場合
や、他のメッセージとの間に特に関係をもっていないメ
ッセージ・パケットが発生されたような場合には、それ
らのメッセージは「TN0」に対して出力するための待
ち行列(キュー)を成すように並べられ、そして、現在
トランザクション・ナンバによって定められた、基本状
態即ちディフォルト状態(0である)が真状態を維持し
ている間に転送が行なわれる。この「TN0」状態は、
マージ・モードが用いられていないときには、メッセー
ジを転送のための待ち行列を成すように並べることを可
能にしている。
【0127】(ネットワーク・インターフェイス・シス
テム)これより図13に関して説明するが、同図は、本
発明のシステムに用いるのに適したインターフェイス回
路の一具体例を更に詳細に示すものである。この「ネッ
トワーク・インターフェイス・システム」の章の説明に
は本発明を理解する上では必ずしも必要ではない多数の
詳細な特徴が含まれているが、それらの特徴は、実機の
システムには組み込まれているものであり、それゆえ本
発明の要旨に対する種々の具体例の位置付けを明確にす
るために説明中に含めることにした。具体的なゲーティ
ングのための構成並びに詳細構造であって、本発明の主
題ではなく、しかも周知の手段に関するものについて
は、多種多様な代替構成を採用することも可能であるの
で、説明を省略ないし簡略化することにした。図13
は、図8に示されている第2のネットワーク・インター
フェイス120' 並びにH.S.RAM26" の詳細図
である。2つのネットワークのための夫々のインターフ
ェイス120、120' は互いに同様の方式で機能して
おり、それゆえ、一方のみについて説明すれば十分であ
る。
【0128】図13(b)において、同図のインターフ
ェイスに接続されている方の能動ロジック・ネットワー
ク50からの入力は、マルチプレクサ142と公知のパ
リティ・チェック回路144とを介して、ネットワーク
・メッセージ管理回路140へ供給されている。マルチ
プレクサ142は更にマイクロプロセッサ・システムの
データ・バスに接続されており、これによって、このデ
ータ・バスを介してメッセージ管理回路140へアクセ
スすることが可能となっている。この特徴により、マイ
クロプロセッサ・システムが、インターフェイスをステ
ップ・バイ・ステップ・テスト・モードで動作させるこ
とが可能となっており、そして、このインターフェイス
がネットワークとあたかもオン・ライン状態で接続され
ているかのように、データの転送が行なわれるようにな
っている。ネットワークからの入力は受信用ネットワー
ク・データ・レジスタ146へ供給されるが、その際、
直接このレジスタ146の第1のセクションへ入力され
るバイト・データと、受信用バイト・バッファ148を
介してこのレジスタ146へ入力されるバイト・データ
とがあり、受信用バイト・バッファ148は、第1のセ
クションへのバイト・データの入力が行なわれた後に、
自らのバイト・データをこのレジスタ146の別のセク
ションへ入力する。これによって、受信した各々のワー
ドを構成している2つのバイトの両方が、受信用ネット
ワーク・データ・レジスタ146に入力され、そしてそ
こに、利用可能な状態で保持されることになる。
【0129】これから伝送される出力メッセージは、送
信用ネットワーク・データ・レジスタ150へ入力さ
れ、また、通常のパリティ発生回路132の内部におい
てパリティ・ビットが付加される。メッセージは、ネッ
トワーク・メッセージ管理回路140からそれに接続さ
れているネットワークへ送出されるか、或いは、(テス
ト・モードが用いられる場合には)マイクロプロセッサ
・システム・データ・バスへ送出される。このインター
フェイスの内部におけるメッセージ管理を行う目的で、
ランダム・アクセス・メモリ168に格納されている送
信メッセージのフォーマットは、メッセージ・データと
共に識別用データをも含むものとされている。図21
(a)から分るように、コマンド、タグ、キー、並びに
DSWのいずれをも、これから伝送されるプライマリ・
データに組合わせておくことができる。
【0130】図13(b)に示されている構成は、本質
的に図8に示されている構成と同一であるが、ただし図
8では、インターフェイス・データ・バス並びにインタ
ーフェイス・アドレス・バスが、H.S.RAM26"
の入力ポートAと入力ポートBとに別々に接続され、ま
た、マイクロプロセッサ・システム103のアドレス・
バス並びにデータ・バスが、独立したCポートに接続さ
れているように図示されている。しかしながら実際に
は、図13(b)から分るように、このような互いに独
立した2方向からのアクセスは、このインターフェイス
の内部において行なわれるH.S.RAM26" におけ
る入力アドレス機能及び出力アドレス機能の時分割マル
チプレクシングによって達成されている。マイクロプロ
セッサのデータ・バスとアドレス・バスとは、夫々ゲー
ト145と149とを介してインターフェイスの夫々の
バスに接続されており、それによってマイクロプロセッ
サが非同期的に、それ自身の内部クロックに基づいて動
作できるようになっている。
【0131】採用されているタイミング体系は、クロッ
ク・パルスと、位相制御波形と、位相細分波形とに基づ
いたものとなっており、この位相細分波形は、インター
フェイス・クロック回路156(図13(a))によっ
て発生され、また図14に示すタイミング関係をもつも
のとなっている(図14についても後に説明する)。イ
ンターフェイス・クロック回路156は最も近くのノー
ドからネットワーク・ワード・クロックを受取ってお
り、またフェイズ・ロック・クロック・ソース157
は、図4に関連して先に説明した如きゼロ・タイム・ス
キューを維持するための手段を含んでいる。240ns
のネットワーク内の公称ネットワーク・ワード・クロッ
ク速度が、インターフェイス・クロック回路156の内
部において時間的に細分され、これが行なわれるのは、
フェイズ・ロックされた状態に保持されている倍周器
(詳細には示さない)が、持続時間が40nsの基準周
期を定める高速クロック(図14にPLCLKとして示
されている)を提供しているからである。基本的なワー
ド周期を定めているのは、全周期が240nsで半サイ
クルごとに反転する、図中にCLKSRAと記されてい
る周期信号である。このCLKSRAと同一の周波数と
持続時間とをもつ信号が他に2つ、PLCLKに基づい
て分周器158によって発生されており、これらの信号
は夫々がCLKSRAからPLCLKの1サイクル分及
び2サイクル分だけ遅延した時刻に発生されており、ま
た、夫々がCLKSRB及びCLKSRCという名称を
与えられている。
【0132】以上の諸々の信号に基づいて、制御ロジッ
ク159が、「IO GATE」、「RECV GAT
E」、並びに「SEND GATE」と称されるタイミ
ング波形(以下、ゲート信号ともいう)を作り出してお
り、これらのタイミング波形は、ワード周期の互いに連
続する3等分されたインタバルの夫々を表示するもので
ある。これらのインタバルには、「IOフェイズ」、
「受信フェイズ」、「送信フェイズ」という該当する名
称がつけられている。上記ゲート信号によって定められ
たこれらのフェイズは、その各々が更に、「IO CL
K」信号、「RECV CLK」信号、並びに「SEN
D CLK」信号によって、2つの等分された半インタ
バルへと細分されており、これらの細分信号は、各々の
フェイズの後半部分を定めている。バイト・クロッキン
グ機能は、「BYTE CTRL」信号と「BYTE
CLK」信号とによって管理されている。
【0133】以上のIOフェイズ、RECVフェイズ
(受信フェイズ)、及びSENDフェイズ(送信フェイ
ズ)は、ランダム・アクセス・メモリ168とマイクロ
プロセッサ・システムのバスが、時分割多重化(タイム
・マルチプレクシング)された動作を行なえるようにす
るための、基礎を提供するものである。インターフェイ
スは、高速ネットワークとの間で、1回のワード周期あ
たり1個のワードしか受信ないし送信することができ
ず、しかも明らかに、受信と送信とは決して同時には行
なわれない。マイクロプロセッサ・システムとの間で行
なわれる転送の転送速度は、このネットワークとの間の
転送速度よりかなり低くなっているが、たとえ両者が等
しい速度であったとしても、インターフェイス回路の能
力にとって過大な負担となることはない。このインター
フェイスのシステムの構成は、ランダム・アクセス・メ
モリ168へのダイレクト・アクセスによって大部分の
動作が実行されるようになっており、従って内部的な処
理つまりソフトウェアが、殆んど必要とされないように
なっている。従って、このシステムが各々のワード周期
の中の連続する複数のフェイズを周期的に経過していく
につれて、複数のワードが次々に、しかも互いに衝突す
ることなく、それらのワードのための所定の複数の信号
経路に沿って進められて行き、それによって種々の機能
が実行されるようになっている。例を挙げれば、バスへ
のメッセージの送出が、マイクロプロセッサからのメッ
セージの受取りの合間に行なわれるようにし、しかもそ
れらの各々がメモリ168の異なった部分を用いて交互
に行なわれるようにすることができる。
【0134】マイクロプロセッサ・システムのデータ・
バスとネットワーク・インターフェイスとの間の相互通
信は、IO管理回路160(このIOのことを読出し/
書込み(Read/Write)と言うこともある)の中で行われ
る。マイクロプロセッサ・システムから送られてくるワ
ードをゲーティングするための書込みゲート162と、
マイクロプロセッサ・システムへワードを送り出すため
のシステム読出しレジスタ164とによって、マイクロ
プロセッサのバスと、ネットワーク・インターフェイス
へのバス・インターフェイスとの間が接続されている。
【0135】更にメモリ・アドレス・レジスタ165と
パリティ発生器/チェック回路166とが、ネットワー
ク・インターフェイス・サブシステムに組込まれてい
る。この具体例では、前記高速メモリ(=H.S.RA
M)は4Kワード×17ビットのランダム・アクセス・
メモリ168から成り、このメモリの内部的な再区分の
しかたと、このメモリの内部に設けられている複数の専
用メモリ領域部分の使用法とについては、既に説明した
とおりである。このランダム・アクセス・メモリの大き
さ(=容量)は、具体的な個々の用途における必要に合
わせて、縮小したり拡張したりすることが容易にでき
る。
【0136】受信メッセージ・バッファ管理回路170
が、マイクロプロセッサのデータ・バスに接続されてお
り、更にはメモリ168のアドレス・バスにも接続され
ている。「受信メッセージ(received messages) 」とい
う用語は、ネットワークから入力してきて循環バッファ
の中の「PUT」という格納ロケーションへ入力される
メッセージを指し示すためにに用いられることもあり、
また、この入力の後に、そのようにして循環バッファ内
へ入力されたメッセージをマイクロプロセッサへ転送す
るが、その転送のことを指し示すために用いられること
もある。このマイクロプロセッサへの転送が行なわれる
ときには、「GET」の値が、マイクロプロセッサ・シ
ステムへ転送すべき受信メッセージの取出しを実行する
に際しシステムがどのロケーションから連続した取出し
動作を行なうべきかを指定する。ランダム・アクセス・
メモリ168のアクセスに用いられる複数のアドレス値
が、GETレジスタ172、TOPレジスタ174、P
UTカウンタ175、及びBOTTMレジスタ176に
夫々入力されている。PUTカウンタ175は、BOT
TOMレジスタ176によって指定されている初期位置
から1づつインクリメントされることによって更新され
る。TOPレジスタ174は、もう一方の側の境界の指
標を与えるものである。TOPの値とBOTTMの値と
はいずれも、ソフトウェア制御によって操作することが
でき、それによって、受信メッセージ・バッファの大き
さとH.S.RAMにおける絶対格納ロケーションとの
両方を変更することが可能となっている。PUTレジス
タの内容がTOPレジスタの内容に等しくなったならば
PUTレジスタはリセットされてBOTTOMレジスタ
の内容と等しくされ、それによって、このバッファを循
環バッファとして利用できるようになっている。以上の
GETレジスタ、TOPレジスタ、BOTTOMレジス
タ、並びにPUTカウンタは、入力メッセージ用循環バ
ッファと出力メッセージ完了循環バッファとの両方を管
理するのに用いられている。
【0137】GETレジスタ172への入力はソフトウ
ェアの制御下において行なわれるが、それは、バッファ
中においてそのとき取扱われているメッセージの長さに
応じて、次のアドレス(ネクスト・アドレス)が決定さ
れるからである。GETレジスタ172、PUTカウン
タ175、並びにTOPレジスタ174の夫々の出力に
接続された比較回路178と179は、オーバラン状態
を検出及び表示するために使用されている。オーバラン
状態はGETの値とPUTの値とが等しい値に設定され
た場合や、GETの値をTOPの値より大きな値に設定
しようとする試みがなされた場合に生じる状態である。
これらのいずれの場合にも、オーバランのステータス表
示が送出されることになり、しかもこのステータス表示
はオーバラン状態が訂正されるまで送出され続けること
になる。
【0138】「受信メッセージ」循環バッファを構成し
動作させる際の、以上のような連続的な方式は、このシ
ステムに特に適した方式である。衝突(コンフリクト)
を回避するための相互チェックを可能としておくことに
よって、「PUT」をハードウェアで管理し、且つ「G
ET」を動的に管理することができるようになってい
る。しかしながら、これ以外の方式のバッファ・システ
ムを採用することも可能である。ただしその場合には、
おそらく回路並びにソフトウェアに関して、ある程度の
余分な負担が加わることになろう。ここで図21(b)
について触れておくと、メモリ168の内部に格納され
ている受信メッセージのフォーマットは更に、マップ結
果、データ長さ、並びにキー長さの形の識別データを含
んでおり、それらのデータがどのようにして得られるか
については後に説明する。
【0139】このインターフェイスの内部のDSW管理
セクション190は、転送先選択ワード・レジスタ 1
92を含んでおり、この転送先選択ワード・レジスタ1
92へは、これからアドレス・バスへ転送される転送先
選択ワード(DSW)が入力される。DSWを使用して
メモリ168の専用DSWセクションをアドレスする
と、このメモリ168からデータ・バス上へ送出された
出力がデータを返し、このデータに基づいてDSW管理
セクション190が、そのメッセージパケットが当該プ
ロセッサを転送先としたものであるか否かを判定するこ
とができるようになっている。図13(b)から分るよ
うに、転送先選択ワードは、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」のビットが存在していないことが判明した場合
には、「拒絶」信号が発生されて、当該プロセッサ・モ
ジュールはそのメッセージ・パケットを受取るものとし
て意図されてはいないことが表示される。
【0140】図15について説明すると、同図には、メ
モリ168の専用の転送先選択セクションを細分するた
めの好適な方法であってしかもマップ結果の比較を行う
ための好適な方法が、概略的に図示されている。各々の
マップは4096ワード×1ビットで構成されており、
更に、個別プロセッサID用セクタ、クラスID用セク
タ、及びハッシング用セクタに細分されている(図8参
照)。12個のアドレス・ビット(10ビットのマップ
・アドレスと2ビットのニブル)を用いて、共通マップ
・アドレスが選択されると、それによって各々のマップ
から1ビット出力が得られる。(図13(a)のマルチ
プレクサとそのニブルは、図を簡明にするために図15
には示してない)。それら4つのパラレルなビット出力
は、4つのANDゲートから成るANDゲート群198
において、マップ選択のための4ビットと比較すること
ができるようになっており、その結果、1つ以上の一致
が得られた場合には、ORゲート199の出力が「真」
状態になる。このマップ結果は、図13(b)のマップ
結果レジスタ197へ入力することができ、それによっ
て、そのメッセージがメモリ168に受入れられるよう
になる。以上とは異なる場合には、そのメッセージは拒
絶され、NAKが送信されることになる。
【0141】コマンド・ワード管理セクション200
は、コマンド・ワードを受取るコマンド・レジスタ20
2を含んでいる。コマンド・ワードのTNフィールド
は、それを用いてアドレス・バスをアクセスすることが
でき、そのアクセスによって、指標とされている受信T
Nが調べられて適当な応答メッセージが決定される(図
18参照)。更には、「マージ開始」コマンドが実行さ
れているときには、TNフィールドからPTNR(現在
トランザクション・ナンバ・レジスタ)206へのデー
タ転送経路が確保されており、これは、「マージ開始」
コマンドに合わせてPTN(現在トランザクション・ナ
ンバ)の値を変更できるようにするためである。
【0142】メモリ168へ入力された入力メッセージ
は、図21に関して説明すると、アドレス・ベクタを利
用できるようにするために、データ・フィールドやキー
・フィールドが用いられている場合にはそれらのフィー
ルドの長さ値をも含むものとなっている。それらの長さ
値は、受信データ長さカウンタ210と受信キー長さカ
ウンタ211とによって求められ、これらのカウンタの
各々は、入力ソースから夫々のカウンタに該当するフィ
ールドが提供される際に、それらのフィールドに含まれ
ている一連のワードの個数を数えるようになっている。
【0143】更には、送信メッセージ管理セクション2
20が用いられており、このセクションは、処理済のパ
ケットをメモリ168に格納するための受入れ機能と、
それらの格納されたパケットを後刻ネットワークへ送出
する機能とを包含している。このセクション220は、
送信トランザクション・ベクタ・カウンタ222、送信
データ長さカウンタ224、及び送信キー長さカウンタ
226を含んでおり、これらのカウンタはデータ・バス
に、双方向的に接続されている。送信トランザクション
・ベクタ・カウンタ222はアドレス・バスに接続され
ており、一方、送信データ長さカウンタ224はアドレ
ス発生器228に接続されていて、このアドレス発生器
228が更にアドレス・バスに接続されている。出力バ
ッファ・セクションと図8の出力メッセージ完了ベクタ
・セクションを構成する循環バッファとの両方を用いて
メッセージの送出が行なわれる。ただしこの具体例で
は、複数のメッセージ・パケットが逐次入力された後
に、それらが今度はベクタによって定められた順序で取
出されるようになっている。
【0144】このインターフェイスの内部においては、
独立した夫々の動作フェイズが、互いに排他的な時間に
実行されるようになっており、このような時分割方式を
採用したことによって、メモリ168は、ネットワーク
のクロック速度でネットワークからのメッセージ・パケ
ットを受取って供給することと、内部的な動作を効率的
な高い速度で実行することと、それ自身の遅いクロック
速度で非同期的に動作しているマイクロプロセッサ・シ
ステムとの間で通信を行なうこととが、可能とされてい
る。様々なカウンタやレジスタへ向けたメッセージのゲ
ーティング動作を制御するために、位相制御回路が制御
ビットに応答して動作しており、制御ビットは、コマン
ド、DSW、データ、それにメッセージ内の個々のフィ
ールドを示すその他の信号を発生するものである。送信
状態制御回路250、受信状態制御回路260、並びに
R/W(読出し/書込み)状態制御回路270は、クロ
ック・パルスを受取り、データ内のフィールドを識別
し、そして、送信、受信、それにプロセッサのクロック
動作が行なわれている間の、データの流れのシーケンシ
ングを制御するものである。
【0145】このインターフェイスの制御は3つの有限
状態マシン(FSM)によって行われ、それらのFSM
は、その各々が送信フェイズ、受信フェイズ、及びプロ
セッサ(R/W)フェイズのためのものである。それら
のFSMは、プログラマブル・ロジック・アレイ(PL
A)、状態レジスタ、並びにアクションROMを使用し
て、一般的な方式で構成されている。各々のFSMは、
ネットワークのクロック・サイクルの1回ごとに1つ次
の状態へ進められる。発生すべき制御信号の数が多いた
め、PLAの出力はさらにアクションROMによって符
号化される。当業者には容易に理解されるように、ネッ
トワークの動作のために必然的に必要となる、FSMモ
ード用に書かれ、それゆえ一般的な細部構造と動作とを
もつ制御シーケンスの翻訳は、仕事量こそ多いものの単
純なタスクである。
【0146】図17及び図19の状態ダイアグラムと図
18のマトリクス・ダイアグラムとを添付図面中に含め
てあるのは、かなり複雑なシステムに採用することので
きる内部構造設計上の特徴に関する、包括的な細目を提
示するためである。
【0147】図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レジスタ)
【0148】従って状態ダイアグラムは、図13(a)
及び明細書と対照させて参照すれば、略々説明なしでも
理解することができる。それらの状態ダイアグラムは、
複雑なメッセージ管理並びにプロセッサ相互間通信に関
わる、様々なシーケンスと条件文とを詳細に示してい
る。図17(a)(図17(b))において、「応答を
発生せよ」と「応答を復号せよ」とのラベルが書込まれ
ている夫々の状態、並びに破線の長方形で示されている
夫々の条件文は、図18のマトリクス・ダイアグラムに
記載されている、指定された応答及び動作に従うもので
ある。図18は、所与のTNに関するプライマリ・メッ
セージとレディネス状態との任意の組み合わせに対し、
発生される応答と実行される動作との両方を示すもので
ある。当然のことであるが、正常なシステムの動作がな
されているときには、ある程度のメッセージの拒絶はあ
るものの、エラー状態はまれにしか発生しない。
【0149】図17(a)と図19のいずれにおいて
も、条件判断に関しては、その多くのものが複数の判断
を同時に実行することができるようになっているが、こ
れに対して状態ステップの方は、1つづつ変更されてい
くようになっている。いずれの場合においても、送信動
作と受信動作とは外部からの制御を必要せずに定められ
た進行速度で進められて行く動作であり、それは、メッ
セージの構成とネットワークの動作方式とが既に説明し
たようになっているためである。
【0150】典型的なプロセッサ・システムやマルチプ
ロセッサ・システムにおいて採用されている多くの特徴
には、本発明に密接な関係を持ってはいないものがあ
り、従ってそれらについては特に記載しない。それらの
特徴の中には、パリティ・エラー回路、割込み回路、そ
れに、ワッチドッグ・タイマや極めて多様な記験機能等
の活動をモニタするための種々の手段等がある。
【0151】(システムの動作の具体例)以下に説明す
るのは、図1、図8、及び図13(a)を総合したシス
テムが、ネットワーク及びH.S.RAMと協働しつつ
種々の動作モードで内部的にどのように働くかを示す幾
つかの具体例である。それらの具体例は、優先順位規定
と、ここで採用されているアドレッシング方式と、トラ
ンザクション・アイデンティティとの間の相互関係が、
どのようにして局所的制御と大域的相互通信との両方の
機能を提供するのかを示すものである。
【0152】プライマリ・データ・メッセージの送受信 ここでは、その他の図に加えて更に図16についても説
明するが、図16は、プライマリ・メッセージの最終的
な受入れに関わる諸状態の、簡略化した状態ダイアグラ
ムである。メッセージがバッファ或いはメモリに受信さ
れても、図示の論理的状態が満たされないうちは、受入
れ(アクセプタンス)が達成されたことにはならない。
図ではイベント(事象)のシリアルな列として示されて
いるが、本来は複数の判定がパラレルに、即ち同時に行
なわれるようになっており、それは、夫々の条件が互い
に関与しないものであったり、或いは、ある動作段階へ
達するための中間段階の飛越しが、回路によって行なわ
れたりするためである。
【0153】図1のネットワークの上のメッセージは、
図13(b)の受信ネットワーク・データ・レジスタ1
46の中を、EOM状態が識別されるまでの間通過させ
られ、その状態が識別されたときに、メッセージが完了
したことが認識される。「ロック(LOCK)」状態が存在
している場合には、システムは図8のH.S.RAM2
6" の中の応答ディレクトリを参照して、NAK/LO
CK拒絶メッセージを送出する。
【0154】そうでない場合、即ち「ロック」状態が存
在していない場合には、システムはマップ比較チェック
へ移り、このチェックは図13(b)に示したインター
フェイスの中のDSW管理セクション190の内部で実
行される。「マップ出力=1」で表わされる、適切な比
較結果が存在している場合には、システムはそのメッセ
ージを受信し続けることができる。そのような比較結果
が存在していない場合には、そのメッセージは拒絶さ
れ、NAPが送出される。該当するマップが判定された
ならば、それによってシステムはTNステータスを検査
する準備が整ったことになり、このTNステータスの検
査は図8に示されているTNのディレクトリを参照する
ことによって行なわれる(ここでTNステータスとは厳
密には所与のTNに関するプロセッサのステータスのこ
とであり、従ってH.S.RAM内のTNアドレスに格
納されているエントリによって表わされているレディネ
ス状態のことである)。更に詳しく説明すると、このT
Nステータスの検査は、局所的ステータス(=個々のプ
ロセッサ・モジュールのステータス)が「受信準備完
了」であるか否かを判定するために行なわれる。ここで
は、先行するあるプライマリ・メッセージによってTN
の割当てが既になされているものと仮定している。
【0155】この検査の結果、TNが「実行終了(don
e)」状態、「非関与プロセッサ」状態、または「イニ
シャル」状態のいずれかのステータスであることが判明
した場合には、「NAP」拒絶メッセージが送出される
(ここでTNといっているのは、厳密にはH.S.RA
M内のTNアドレスに格納されているエントリのことで
あるが、以下、混同のおそれのない限りこのエントリの
ことも単にTNと称することにする)。もしこの判明し
たステータスが、他の規定外の状態であったならば、送
出される拒絶メッセージは「NAK/TNエラー」であ
り、以上の2つのタイプの拒絶メッセージもまた、図8
の応答ディレクトリから取り出される。ステータスが
「受信準備完了」であったならば、更にもう1つの別の
判定が行なわれることになる。
【0156】このもう1つの別の判定とは、「入力オー
バラン」に関するものであり、この判定は、既に説明し
たように、図13(b)の入出力管理バッファ・セクシ
ョン170の内部において、GETアドレスとPUTア
ドレスとを比較することによって行なわれる。更にはト
ランザクション・ナンバも、受信メッセージ・カウント
の値がゼロでないかどうかについて検査され、このカウ
ント値がゼロであれば、それは、同じく入力オーバラン
を表示しているのである。オーバラン状態が存在してい
る場合には、「NAK/入力オーバラン」が送出されて
そのメッセージは拒絶される。
【0157】以上のすべて条件が満足されていたなら
ば、H.S.RAM26" 内の応答ディレクトリから
「ACK」メッセージ(肯定応答メッセージ)が取り出
されてネットワーク上へ送出され、他のプロセッサ・モ
ジュールとの間で優先権が争われることになる。それら
の他のプロセッサ・モジュールのうちには、同じように
受信メッセージに対する肯定応答を送出したものもある
かもしてない。この時点で、もしネットワークから受取
る共通応答メッセージ(この「共通」とはマージされた
という意味である)が「ACK」メッセージであって、
従って、受信プロセッサ・モジュールとして選択された
「全ての」プロセッサ・モジュールが、先に受信したメ
ッセージの受入れが可能であることが明示されている場
合には、その受信メッセージの受入れがなされる。もし
この応答が「ACK」以外のいずれかの形であれば、先
の受信メッセージは「全ての」プロセッサから拒絶され
る。
【0158】受信並びに応答についてのこの具体例にお
いては、プライマリ・メッセージが受信された後には、
全てのプロセッサが、ACK応答、NAK応答、及びN
AP応答のうちのいずれか1つを発生することに注目さ
れたい。プロセッサは、これらの応答メッセージのうち
のいずれか1つを受取ったならば、その直後にプライマ
リ・メッセージの伝送を試みることができる。(プロセ
ッサは、この伝送の試みを、ネットワークを通り抜ける
ための合計待ち時間相当の遅延に等しいかまたはそれよ
り大きい遅延の後に行なうこともでき、それについては
既に「能動ロジック・ノード」の章で説明したとおりで
ある)。もう1つ注目して頂きたいことは、もし、幾つ
かのプロセッサが互いに「同一の」メッセージを送信し
たならば、結果的にそれらのメッセージの全てがネット
ワーク上の競合を勝ち抜いたことになることも、あり得
るということである。その場合には、それらの送信プロ
セッサの「全て」がACK応答を受取ることになる。こ
のことは、後出の具体例で詳細に説明する、ブロードカ
スト(一斉伝送)及び大域的セマフォ・モードの動作に
関して重要である。
【0159】実際に使用されている本発明の実機例は、
これまでに説明したものに加えて更により多くの種類の
応答を含むと共に様々な動作を実行するようになってい
る。図18はそれらの応答と動作とを、LOCK、TN
エラー、及びオーバランの各割込み状態、予め識別され
ている9つの異なったステータス・レベル、それに肯定
応答(ACK)及び非該当プロセッサ応答に対するもの
として、縦列に並べた各項目で示している。
【0160】あるプロセッサ・モジュールがメッセージ
の送信準備を完了したときには、図13のPTNレジス
タ206に格納されているPTN値は使用可能状態とな
っており、従って必要とされるのはTNステータスが
「送信準備完了」状態にあることの確認だけである。図
12から分るように、「送信準備完了」のエントリ(記
述項)は、出力メッセージのためのネクスト・メッセー
ジ・ベクタ・アドレスを含んでいる。アセンブルが完了
した出力メッセージはネットワーク上へ送出され、そし
てもし競合に敗退したならば、PTNが途中で変更され
ない限り、伝送が成功するまでこの送出動作が反復さ
れ、そして成功したなら応答を受取ることになる。伝送
が成功して肯定応答を受取ったならば、アドレス・ベク
タが変更される。ネクスト・メッセージ・ベクタが、現
在メッセージの中の第2番目のワード(図21(a))
から取り出され、このワードは送信トランザクション・
ベクタ・カウンタ222からランダム・アクセス・メモ
リ168へ転送される。出力メッセージ・セクションが
オーバラン状態になければ、PUTカウンタ175が
「1」だけ進められ、このオーバラン状態は、PUTが
GETに等しくなることによって表示される。尚、送信
トランザクション・ベクタ・カウンタ222から転送さ
れるネクスト・メッセージ・ベクタは、H.S.RAM
の中の現在トランザクション・ナンバ・レジスタ206
によって指定されているトランザクション・ナンバ・ア
ドレスへ入力される。もし、この新たなTNが「送信準
備完了」状態のものであれば、この入力されたベクタの
値は、再び、このトランザクション・アイデンティティ
に関係している次のメッセージ(ネクスト・メッセー
ジ)の格納位置を指し示している。H.S.RAMの中
に格納されている出力メッセージのフォーマットについ
ては、図21を参照されたい。
【0161】ただし、メッセージを送出する際のメッセ
ージ管理には、PTNの内部的な、或いは外部からの変
更をはじめとする、多くの異なった形態の動作を含ませ
ておくことができる。エラー状態、オーバラン状態、な
いしロック状態によって、システムがトランザクション
・ナンバを「TN0」にシフトするようにしておくこと
ができ、このシフトによって、システムはノン・マージ
・モードに復帰し、そして「TN0」におけるステータ
スの検査を、「送信準備完了」状態が識別されるか或い
は新たなTNの割当てがなされるまで、続けることにな
る。かなり複雑な具体例に採用することのできる状態並
びに条件を示したものとして、図19(図19(b))
のフローチャートを参照されたい。
【0162】出力メッセージ完了バッファの例 メッセージの伝送の完了が「ロック(LOCK)」を除いた
その他の任意の応答メッセージによって明示されたなら
ば、新たに完了した出力メッセージ・バッファを指し示
すポインタが、H.S.RAMの出力メッセージ完了循
環バッファ・セクション(図8参照)に格納される。こ
のポインタは、上記出力メッセージ・バッファのアドレ
スを表わす単なる16ビット・ワードである。(出力メ
ッセージ・バッファのフォーマットは図21に示されて
いる。出力メッセージ・バッファには、ネットワークか
ら受取った応答メッセージを記録する場所が含まれてい
ることに注目されたい)。
【0163】出力メッセージ完了循環バッファは、ネッ
トワーク・インタフェースのハードウェア120と、マ
イクロプロセッサ105の上に置かれた監視プログラム
との間の、通信の機能を果たすものである。このマイク
ロプロセッサの中に備えられているプログラムは、これ
から出力されるメッセージをH.S.RAMの中に格納
する。これに続く次の例で詳細に説明するが、複数の出
力メッセージを一緒に鎖状に連結し(チェーンし)、し
かもその際、TNがこの鎖(チェーン)の先頭のポイン
タとして働くようにすることができ、これによって作業
の複雑なシーケンスを形成することができる。その他の
特徴としては、ネットワークを複数のTNの間で多重化
即ち時分割(マルチプレクシング)することができるた
め(これについても後に詳述する)、ネットワーク内の
諸処に存在する様々な事象に応じた種々の順序でメッセ
ージを出力することができる。
【0164】更にまた、伝送に成功したパケットによっ
て占められていたH.S.RAM内の格納空間を迅速に
回復し、それによってその格納空間を、これから出力さ
れる別の出力パケットのために再使用できるようにする
ことが重要である。出力メッセージ完了循環バッファ
が、この機能を果たしている。
【0165】あるデータ・メッセージの送信が成功裏に
終了して「ロック」応答以外の応答を受信したならば、
ネットワーク・インターフェイスは、H.S.RAM内
の「0510(16進数)」に格納されているPUTポ
インタ(図10参照)を「1」だけ進め、また、この送
信が完了したばかりの出力メッセージの先頭のワードの
アドレスをPUTレジスタ内のアドレスへ格納する。
(PUTポインタの値が「0512(16進数)」に格
納されているTOPポインタの値より大きくなると、P
UTポインタは「0513(16進数)」に格納されて
いるBOTポインタ(=BOTTOMポインタ)と同じ
になるように最初にリセットされる)。PUTポインタ
がGETポインタ(格納位置「0511(16進
数)」)より大きくなるようならば、循環バッファが、
オーバランしているのであり、そのため「エラー割込
み」がマイクロプロセッサへ向けて発生される。
【0166】マイクロプロセッサの内部で実行されてい
るソフトウェアによって、GETポインタが指示してい
る出力メッセージ・バッファが非同期的に調べられる。
プロセッサは、実行を要求された何らかの処理を完了し
たならば、GETポインタを「1」だけ進める(このG
ETの値は、TOPの値より大きくなるとBOTの値に
リセットされる)。GET=PUTとなっている場合に
は、処理せねばならない出力メッセージはもはや存在し
ていない。そうでない場合には、更に別の出力メッセー
ジが成功裏に送信を完了した状態にあるので、それらの
出力メッセージを処理せねばならない。この処理には、
H.S.RAMの出力バッファの格納空間を空きスペー
スに戻すことが含まれており、従ってこのスペースを他
のパケットのために再使用することできる。
【0167】ここで注目しておくべき重要なことは、出
力メッセージ完了循環バッファと入力メッセージ循環バ
ッファとは互いに別個のものであり、そのためこれら2
つの循環バッファは、夫々が別々のPUT、GET、T
OP、及びBOTの各ポインタによって管理されている
ということである。構成のしかたによっては、図13に
示されているように、これら両方の循環バッファが、循
環バッファ管理ハードウェア170を共用するようにも
できるが、そのような構成が必須なわけではない。
【0168】初期設定の手順 各プロセッサ・モジュールは、そのプロセッサ・モジュ
ール自身の高速ランダム・アクセス・メモリ168(図
13)の内部のTNをアクセスする機能を備えており、
このメモリ168には、潜在的に使用可能な複数のTN
の、そのディレクトリが含まれている。ただし、割当て
られていないTNは、そのTNに関連付けられている格
納位置に格納されているトランザクション・ナンバ値に
よって、割当てられていない旨が明確に表示されてい
る。従って、マイクロプロセッサ・システム103は、
割当てられていないトランザクション・ナンバを識別
し、そしてそれらのうちの1つを、所与のトランザクシ
ョン・アイデンティティに関して他のプロセッサ・モジ
ュールとの間の通信を開始するのに使用するために選択
することができる。
【0169】トランザクション・ナンバは、ローカル・
マイクロプロセッサ(=プロセッサ・モジュール内のマ
イクロプロセッサ)の制御の下に、局所的に割当てられ
且つ更新されるが、ネットワーク内の全域における大域
的制御は、「TN放棄命令」及び「TN割当命令」とい
うプライマリ制御メッセージを用いて行なわれる。同一
のTNを要求する可能性のある互いに競合する複数のプ
ロセッサ・モジュールの間にデッドロック状態が発生す
ることは決してなく、そのわけは、ネットワークが、よ
り小さな番号を付けられているプロセッサの方に優先権
を与えるからである。そのTNを得ようとしたプロセッ
サのうちで優先権を得られなかった残りのプロセッサは
「NAK/TNエラー」応答を受取ることになり、この
応答は、それらのプロセッサが別のTNを確保すること
を試みなければならないということを表示するものであ
る。従って、それらのトランザクション・アイデンティ
ティの確保並びに照合を、システムの内部で及び局所的
に行なう際の、完全なフレキシビリティが得られてい
る。
【0170】更に注目して頂きたいことは、TNの反復
使用は、「TN0」である基本伝送モードと、TNがゼ
ロより大きいマージ・モードとの間の、シフトによって
行なわれているということである。従ってこのシステム
は、ただ1回のTNのブロードカスト式の伝送によっ
て、その動作の焦点だけでなくその動作の性質をも変え
ることができる。
【0171】大域的ステータスの変化を伝達するための
更に別の、そして特に有用な方式は、図4に関して既に
説明した強制パリティ・エラーの伝播である。この独特
の表示方式は、その他の伝送の間にはさみ込まれて伝送
されると、中止されたシステム資源が調査され、そして
適切な動作が実行されることになる。
【0172】プロセッサ対プロセッサ通信 プロセッサ通信として、2種類の特別の形態のものがあ
り、その一方は特定の1つの転送先プロセッサへ向けて
行なわれる通信であり、他方は、1つのクラスに属する
複数のプロセッサを転送先として行なわれる通信であ
る。これらの両タイプの伝送はいずれもDSWを利用し
ており、また、これらの伝送はいずれも、ノン・マージ
・モードのブロードカストによって実行される。
【0173】特に1つの発信元プロセッサと1つの転送
先プロセッサとの間での通信を行なう際には、DSWの
中に転送先プロセッサ識別情報(destination processo
r identification:DPID)を入れて使用する。図8
を参照しつつ説明すると、このDPIDの値を用いて各
々の受信プロセッサ・モジュールのH.S.RAM2
6" の選択マップ部分がアドレスされると、転送先とし
て意図された特定のプロセッサ・モジュールだけが、肯
定的な応答を発生してそのメッセージを受入れる。肯定
応答が送信され、しかもそれが最終的に成功裏に受信さ
れたならば、両者のプロセッサは、要求されている将来
の動作のいずれでも実行できる状態になる。
【0174】ある1つのメッセージを、ある1つの制御
プロセスに関係する、1つのクラスに属する複数のプロ
セッサが受信すべき場合には、DSW内のマップ・ニブ
ルとマップ・アドレスとによって、H.S.RAMの選
択マップ部分の中の対応するセクションが指定される。
そして、全ての受信プロセッサが夫々に肯定応答を送出
し、それらの肯定応答は、発信元プロセッサ・モジュー
ルへ到達するための競合を、この通信のための往復送受
信が最終的に完了するまで続けることになる。全域ブロ
ードカスト・モードのプロセッサ通信は、プライマリ・
データ・メッセージ、ステータス・メッセージ、制御メ
ッセージ、並びに応答メッセージの、各メッセージの通
信に用いることができる。優先順位プロトコルと、優先
権を付与する機能を備えたネットワークとの、両者の固
有の能力によって、その種のメッセージをその他の種類
のメッセージのシーケンスの中に容易に挿入できるよう
になっている。
【0175】ハッシング・モードのプロセッサ選択は、
リレーショナル・データベース・システムにおけるデー
タ処理のタスクを実行する際には、他から飛び抜けて多
用されるプロセッサ選択方式である。一次的データ(=
バックアップ用ではないメインのデータ)についての互
いに素の(=同一の要素を共有しない)複数のデータ部
分集合と、バックアップ用データについての互いに素の
複数のデータ部分集合とが、適当なアルゴリズムに従っ
て、異った複数の二次記憶装置の中に分配されてい
る。1つのプロセッサが一次的データの部分集合を分担
し別の1つのプロセッサがバックアップ用データの部分
集合を分担しているためにそれら2つのプロセッサが同
時に応答した場合には、一次的データについてのメッセ
ージの方に優先権が与えられる。この条件が補償される
ようにするためには、優先順位のより高いコマンド・コ
ード (図12参照)を選択するようにすれば良い。デ
ータベースの信頼性及び完全性の維持も、以上の様々な
マルチプロセッサ・モードを利用することによって達成
され、その場合、発生した個々の状況に対して最も有利
なようにそれらのモードが適用される。例を挙げるなら
ば、一次的データのある部分集合を分担している二次記
憶装置が故障した場合には、特別のプロセッサ対プロセ
ッサ通信を利用してそれを更新することができる。また
エラーの訂正やデータベースの一部分のロールバック
は、これと同様の方式で、或いはクラス・モードで動作
させることによって、行なうことができる。
【0176】トランザクション・ナンバの例 トランザクション・ナンバという概念により、マルチプ
ロセッサ・システムの制御のための新規にして強力なハ
ードウェア機構が得られている。本システムにおいて
は、トランザクション・ナンバは「大域的セマフォ」を
構成しており、また、ネットワークに対するメッセージ
の送受信と、複数のプロセッサに分配されたある1つの
所与のタスクのレディネス状態の確認との夫々におい
て、重要な役割りを果たしている。
【0177】トランザクション・ナンバ(TN)は、
H.S.RAM26の中の16ビット・ワードとして物
理的に実現されている。このワードは、様々な機能を果
たせるように、図12に示すようなフォーマットとされ
ている。TNはH.S.RAMに格納されるため、マイ
クロプロセッサ105とネットワーク・インターフェイ
ス120とのいずれからもアクセスすることができる。
【0178】大域的セマフォ 「セマフォ」という用語は、コンピュータ科学関係の文
献において、互いに非同期的に実行される複数の処理の
制御に用いられる変数を指し示すための用語として、一
般的に使用されるようになっている。セマフォは、中断
されることのない 1回の操作でそれを「テスト・アン
ド・セット」することができるという性質をもってい
る。
【0179】一例として、「アンアサインド(UNASSIGN
ED:割当てがなされていない状態)」と、「アサインド
(ASSIGNED:割当てがなされている状態)」との2つの
状態を取り得るセマフォ変数について考察することにす
る。この場合には、テスト・アンド・セット動作は次の
ように定義される:もしセマフォが「アンアサインド」
状態にあったなら ば、そのセマフォを「アサインド」
状態にセットして成功を表示すること;反対にセマフォ
が既に「アサインド」状態にあったならば、そのセマフ
ォを「アサインド」状態のままにしておいて「失敗」を
表示すること。従って、このセマフォに拠れば、セマフ
ォのテスト・アンド・セットに成功した処理は自らのタ
スクを続行することができ、一方、それに失敗した処理
は、そのセマフォが 「アンアサインド」状態にリセッ
トされるのを待つか、或いは、等価の別の資源を制御し
ている別のセマフォをテスト・アンド・セットすること
を試みるかの、いずれかを余儀なくされる。容易に理解
できることであるが、仮にテスト・アンド・セット動作
が中断されるようなことがあり得るとするならば、2つ
の処理が同時に同じ資源にアクセスしてしまう可能性が
生じ、それによって予測することのできない誤った結果
が生じてしまうおそれがある。
【00180】いかなるマルチプロセッサ・システム
も、システムの資源へのアクセスを制御するために、セ
マフォと同一視することのできる概念を、ハードウェア
によって実際に具体化している。しかしながら、従来の
システムは、1コピーのセマフォ(=部数が1部のセマ
フォ、即ち1箇所だけに設けられるセマフォ)しか維持
することができない。そこで、複数コピーのセマフォ
(=部数が複数のセマフォ、即ち複数箇所に設けられる
セマフォ)を、各プロセッサに1コピーづつ設けて維持
するようにすれば、単にテストするだけのセマフォのア
クセスのために競合が発生する回数を低減するという目
的と、後に説明するその他の用途に多価のセマフォ変数
を利用するという目的との、双方のために望ましい。問
題は、セマフォの多数のコピーに対し、完全に同期した
操作を加えねばならないということであり、もしこのこ
とが守られなかったならば、それを強化するためにセマ
フォが設けられているところの、資源へのアクセスの完
全性が失われてしまうことになる。
【0181】複数コピーのセマフォ、即ち「大域的」セ
マフォは、本システムによって提供される。次に示す表
は、大域的セマフォに関する動作を、単一セマフォ(1
コピーのセマフォ)と対比したものである。
【0182】
【表1】
【0183】本実施例のシステムにおいては、「TN割
当(ASSIGN TN )」コマンドと「TN放棄(RELIN-QUISH
TN)」コマンドとが、大域的セマフォとして利用されて
いるトランザクション・ナンバに対するテスト・アンド
・セット機能とリセット機能とを夫々に担っている。図
12について説明すると、「NAK/TNエラー」応答
が失敗を表示し、一方、「SACK/アサインド」応答
が成功を表示する。
【0184】複数のノードを同期してクロッキングする
ために用いられている同期クロッキング方式や、全ての
プロセッサへ同時に最優先パケットを伝送するブロード
カスト動作をはじめとする、このネットワークの特質
は、大域的セマフォという概念を実際に具体化する上で
の基礎を成すものである。この概念が実施されているた
めに、このシステムは所望のシステム資源の複数のコピ
ーの、その割付け(アロケーション)、割付け解除(デ
アロケーション)、並びにアクセスの制御を、単にその
資源にTNを付与することによって行なえるようになっ
ている。ここで注目すべき重要なことは、分散された資
源の制御を、単一セマフォの場合と略々同程度の小規模
なソウトウェア・オーバヘッドで、実行できるようにな
っているということである。このことは従来のシステム
に対する非常な進歩であり、なぜならば、従来のシステ
ムは、分散型の資源を管理できないか、或いは、複雑な
ソフトウェアによるプロトコルが必要とされ且つハード
ウェア的なネックを生じてしまうかの、いずれかだから
である。
【0185】レディネス状態 「ビズィ(BUSY)」、「ウェイティング(WAITING
)」、「準備完了(READY)」(送信と受信の夫々の準
備完了)、「終了(DONE)」、及び「非関与プロセッサ
(NON-PARTICIPANT )」から成る1組の値(図12参
照)が、あるTNを付与されたタスクの、そのレディネ
ス状態を速やかに確認する能力を提供している。このシ
ステムでは、以上の各状態の意味するところは、次の表
が示すようになっている。
【0186】
【表2】
【0187】「TN割当」コマンドを用いて、タスクへ
のTNの付与が動的に行なわれるようになっている。成
功表示(「TN割当」メッセージに対する「SACK/
アサインド」応答)は、すべての動作可能なプロセッサ
が成功裏にTNのタスクへの割当てを完了したことを示
す。図11に関して注目すべきことは、「NAK/TN
エラー」応答は高い優先順位(小さな値)をもっている
ため、いずれかのプロセッサのネットワーク・インター
フェイス120がTNの使用に関する衝突を検出したな
らば、全てのプロセッサが失敗応答を受取るということ
である。更に、ネットワーク上を伝送されるこの失敗応
答のOPID(発信元プロセッサID)フィールドは、
衝突のあったプロセッサのうちの第1番目の(付された
番号が最小の)プロセッサを表示することになる。この
事実は、診断ルーチンに利用される。
【0188】各々のプロセッサは、ソフトウェアの働き
により、タスクを処理し、そしてTNを「ビズィ」、
「ウェイティング」、「送信準備完了」、「受信準備完
了」、「終了」または「非関与プロセッサ」のうちの該
当するものにセットする。最初の「TN割当」を発令し
たプロセッサを含めどのプロセッサも、任意の時刻に、
「ステータス・リクエスト」コマンド或いは「マージ開
始」コマンドを発令することによって、タスク(TN)
がどの程度に完了しているかという状態を容易に確認す
ることができる。
【0189】「ステータス・リクエスト」は、多価の
(=多種の値を取り得る)大域的セマフォの1回のテス
トと同じことである。図11から分るように、優先順位
が最も高いステータス応答(SACK)メッセージがネ
ットワーク上の競合を勝ち抜き、その結果、最も低いレ
ディネス状態が表示されることになる。更に、そのOP
IDフィールドは、その最低のレディネス状態にあるプ
ロセッサのうちの第1番目の(付された番号が最小の)
プロセッサのアイデンティティ(素性)を表示すること
になる。
【0190】この後者の特性を用いて、複数のプロセッ
サに分配されたタスクの完了を「待機」するための、
「ノン・ビズィ(non-bysy)」の形態が定められてい
る。最初に「TN割当」を発令したプロセッサは初代の
「ウェイト・マスタ」であるとされる。このプロセッサ
は次に、任意の基準に基づいて、他のいずれかのプロセ
ッサを新たな「ウェイト・マスタ」に指定する。この新
たな「ウェイト・マスタ」は、それ自身が所望のレディ
ネス状態に到達したならば、「マージ開始」或いは「ス
テータス・リクエスト」のいずれかを発令することによ
って、全てのプロセッサに対する問合せを行なう。もし
他のプロセッサの全てが準備完了状態となっていたなら
ば、SACKがその旨を表示することになる。もし幾つ
かのプロセッサが尚、準備完了状態にはなかったなら
ば、SACK応答のOPIDフィールドが、レディネス
状態が最低のプロセッサのうちの第1番目のものを表示
することになる。「ウェイト・マスタ」はそのプロセッ
サに対し、新しい「ウェイト・マスタ」になるように命
令する。結局最後には全てのプロセッサが準備完了状態
となるのであるが、それまでの間、このシステムは、少
なくとも一つのプロセッサが準備完了状態に到達したこ
とを知らされる都度、ステータスの問合せを試みるだけ
である。従ってこのシステムは、結果を出さずに資源を
消費する周期的なステータス問合せという負担を負わさ
れることがない。更にこの方式によれば、最後に完了す
る処理が終了した丁度その時刻に、全てのプロセッサが
仕事を完了したということをシステムが確実に知ること
になる。当業者には理解されるように、本発明の概念の
範囲内でその他の多種多様な「待機」の形態を採用する
ことができる。
【0191】「マージ開始」コマンドは、1つの特殊な
種類のテスト・アンド・セット命令である。大域的セマ
フォのステータスが「送信準備完了」または「受信準備
完了」である場合には、現在トランザクション・ナンバ
・レジスタ(PTNR)206(図13参照)が「マー
ジ開始」メッセージ (図3参照)内のトランザクショ
ン・ナンバの値にセットされ、これによってPTNRレ
ジスタの設定が行なわれる。動作中のプロセッサのいず
れかが、より低位のレディネス状態にある場合には、P
TNRの値は変更されない。
【0192】「マージ停止」コマンドは、以上の動作に
対応するリセット動作であって、すべての動作中のプロ
セッサのPTNRを無条件に「TN0」にリセットする
ものである。
【0193】後に説明するように、PTNRによって指
定されている現在大域的タスク(current global task
)に関係するメッセージだけが、ネットワーク・イン
ターフェイス120から出力されるようになっている。
従って、「マージ開始」コマンド及び「マージ停止」コ
マンドは、複数のタスクの間でネットワークを時間多重
化、即ち時分割(タイム・マルチプレクシング)するこ
とのできる能力を提供しており、従ってそれら複数のタ
スクは、任意に中止、及び/または再開することができ
るようになっている。
【0194】本発明の細部の特徴で重要なものに、ネッ
トワーク・インターフェイス120が、ネットワークか
らのコマンドによるTNのアクセスと、マイクロプロセ
ッサ105によるTNのアクセスとが、決して同時に行
なわれないようにしているということがある。本実施例
においては、これは、受信状態制御回路260から読出
し/書込み状態制御回路270へ送られている信号によ
って達成されており、この信号は、TNを変更する可能
性のあるネットワークからのコマンドの処理が行なわれ
ているときには必ず「肯定」状態とされている。この信
号が「肯定」状態にある短い時間の間は、プロセッサ
は、H.S.RAMへのアクセスを、制御回路270に
よって禁止されている。当業者には理解されるように、
本発明の範囲内で、以上の構成の代りになる多種多様な
代替構成を採用することができる。
【0195】受信制御 TNの更に別の機能に、入力メッセージの制御がある。
「TN割当」コマンドを用いることによって、所与のタ
スクに対して、複数のプロセッサにおける入力メッセー
ジ・ストリームを関連付けることができる。所与のプロ
セッサの中の当該タスクに割当てられているTNが「受
信準備完了」にセットされているときには、そのTNは
更に、そのプロセッサが受入れる用意のあるパケットの
個数を表わすカウント値を併せて表示している(図1
2)。ネットワーク・インターフェイス120は、個々
のパケットを成功裏に受信するたび毎にこのカウント値
をデクリメントし(このデクリメントはTNのワードか
ら算術的に「1」を減じることによって行なわれる)、
このデクリメントはこのカウント値がゼロに達するまで
続けられる。カウント値がゼロに達したときには「NA
CK/オーバラン」応答が発生され、それによって、パ
ケットを送出しているプロセッサに対し、このNACK
応答を発しているプロセッサがより多くの入力パケット
を受入れる用意ができるまで待機しなければならないこ
とが知らされる。更にまた、図18から分るように、こ
のときには PTNRの「TN0」へのリセットも併せ
て行なわれる。
【0196】以上の動作メカニズムにより、ネットワー
クを流通するパケットの流れの制御を直截的に行なえる
ようになっている。またそれによって、1つのプロセッ
サに未処理のパケットが多量に詰め込まれることがない
ように、そしてそのプロセッサがシステムにとってのネ
ックになってしまうことがないように、保証されてい
る。
【0197】送信制御 図21(a)について説明すると、同図から分るよう
に、H.S.RAMに格納されている各メッセージは、
新TNベクタ(=ネクスト・メッセージ・ベクタ)の値
を収容するためのフィールドを含んでいる。メッセージ
を送信してそれに対する応答を成功裏に受信したなら
ば、この送信したばかりのメッセージに含まれていた新
TNベクタが、H.S.RAMの中の現在トランザクシ
ョン・ナンバを格納するためのアドレスへ(PTNRか
ら転送されて)格納される。従って、TNは個々のメッ
セージが送出されるたび毎に更新され、また、メッセー
ジの伝送に成功した際にはTNが自動的に所望の状態に
セットされるようにすることが可能となっている。
【0198】図12について説明すると、「送信準備完
了」のTNのフォーマットは、14ビットのH.S.
RAM内のアドレスを含んでおり、このアドレスは、所
与のタスク(TN)に関して次に出力すべきパケットを
指し示すのに用いられている。従って、H.S.RAM
の中に格納されているTNは、種々のタスクに関するメ
ッセージの、先入先出式(FIFO)待ち行列の、その
先頭を指し示すヘッド・ポインタとしての機能も果たし
ている。従って、所与の1つのタスク(TN)に関する
限りにおいては、各プロセッサは、新TNベクタのチェ
ーンによって定められた順序で、パケットの送出を試み
ることになる。
【0199】先に説明した、複数のTN(タスク)の間
でネットワークを高速で多重化(マルチプレクシング)
するための機構と組合わせることによって、多くのプロ
セッサの間に分配された何組もの複雑な組合せのタスク
を、極めて小規模なソフトウェア・オーバヘッドで管理
できるようになることは明らかである。ネットワーク
と、インターフェイスと、プロセッサとの共同動作によ
って提供されている構成は、そのコピーを数百個のプロ
セッサの間に分配することができ、更には数千個のプロ
セッサの間にすら分配することのできる資源及びタスク
に対して、資源の割付けと割付け解除、タスクの中止と
再開、それにその他の制御を行なうための好適な構成で
ある。
【0200】DSW(転送先選択ワード)の例 転送先選択ワード(図3)は、DSWロジック190
(図13)及びH.S.RAM26(図8)のDSWセ
クションと協働することによって、以下のことを可能と
する複数のモードを提供するものである。即ち、それら
のモードとは、各々の受信プロセッサのネットワーク・
インターフェイス120が、受信中のメッセージは当該
ネットワーク・インターフェイスに組合わされているマ
イクロプロセッサ105によって処理されることを意図
したものか否かの判定を、迅速に下せるようにするため
の複数のモードである。既に説明したように、受信メッ
セージの中に含まれているDSWは、H.S.RAMの
DSWセクションに格納されているニブルを選択すると
共に、そのニブルと比較される。
【0201】プロセッサ・アドレス 図8に示されているように、H.S.RAMのDSWセ
クションの1つの部分がプロセッサ・アドレス選択ニブ
ルの格納にあてられている。本システムにおいては、搭
載可能な1024個のプロセッサの各々に対して、H.
S.RAMのこの部分に含まれているビット・アドレス
のうちの1つが関連付けられている。当該プロセッサの
ID(アイデンティティ)に関連付けられたビット・
アドレスのビットは「1」にセットされており、一方、
このセクション内のその他の全てのビットは「0」にさ
れている。従って各々のプロセッサは、このセクション
の中の1つのビットだけが「1」にセットされている。
【0202】ハッシュ・マップ H.S.RAMのDSWセクションの別の1つの部分
が、ハッシュ・マップ(複数)の格納にあてられてい
る。本システムにおいては、マップ選択ビットのうちの
2つのビットがそれらのハッシュ・マップにあてられて
おり、それによって、4096個の可能な値を全て含む
完全な集合が 2組得られている。ハッシュト・モード
(hashed mode )においては、二次記憶装置に格納され
ているレコードのためのキーが、ハッシング・アルゴリ
ズムに従って設定され、それによって0から4095ま
での間の「バケット」の割当てが行なわれる。所与の
「バケット」に収容されているレコードを担当している
プロセッサは、そのアドレスが当該バケットのバケット
・ナンバに対応しているマップ・ビットの中に「1」の
ビットがセットされている。その他のビットは「0」に
されている。複数個のマップ・ビットをセットするだけ
で、所与のプロセッサに複数のバケットを担当させるこ
とができる。
【0203】この実施例の構成においては、容易に理解
されるように、マップ・ビットのセッティングを以下の
方式で行なえるようになっている。即ち、その方式と
は、所与の1つのマップ選択ビットについては、各ビッ
ト・アドレスがただ一つのプロセッサにおいてのみ
「1」にセットされており、しかも、いかなるビット・
アドレスも必ずいずれかのプロセッサにおいて「1」に
セットされているという方式である。この方式を採用し
たことの直接の結果として、各々のプロセッサ(AM
P)が、データベースのレコードの互いに別個で互いに
素の部分集合を分担し、しかも、システムの全体として
は、レコードの全てを含む完全な集合が存在するように
なっている。
【0204】以上の具体例はリレーショナル・データベ
ースの課題を例に引いて説明されているが、当業者には
容易に理解されるように、課題の互いに素の部分集合を
マルチプロセッサ復合体の中の個々のプロセッサに分担
させることができる課題領域であればどのような課題領
域にでも、これと同じ方式を適用することができる。
【0205】更にもう1つ注目に値することは、完全な
マップを2つ備えることによって、以上に説明した方式
を、一方のマップによれば所与のあるプロセッサに割当
てられているバケットを、他方のマップにおいてはそれ
とは異なったプロセッサに割当て得るように、構成する
ことができるということである。ここで、一方のマップ
を「一次的」なものとし、他方のマップを「バックアッ
プ用」のものとすれば、直接の帰結として、所与のある
プロセッサ上では一次的なものであるレコードが、別の
プロセッサ上では確実にバックアップされるようにする
ことができる。更に、所与の1つのプロセッサをバック
アップするプロセッサの個数については、いかなる制約
もない。
【0206】当業者には理解されるように、本発明の範
囲内で実現できる互いに別個のマップの数は3以上にす
ることもでき、また、バケットの数も任意の個数とする
ことができる。
【0207】クラス 先に説明したプロセッサ・アドレスとハッシュ・マップ
のいずれの場合にも、全てのプロセッサについてその所
与の1つのビット・アドレスを調べれば、そのビット・
アドレスが1つのプロセッサにおいてだけ「1」にセッ
トされており、その他の全てのプロセッサ内の対応する
ビット・アドレスは「0」にセットされていることが分
かる。しかしながら、複数のプロセッサ内において対応
するビット・アドレスが「1」にセットされているよう
な方式も可能であるし、有用でもある。この方式は「ク
ラス・アドレス」モードといわれる方式である。
【0208】クラス・アドレスは、そのコピーが複数の
プロセッサ内に存在する処理手順ないし機能の名称と考
えることができる。該当する処理手順ないし機能を備え
ているプロセッサは、いずれも対応するビット・アドレ
スに「1」ビットがセットされている。
【0209】クラス・アドレスへ宛ててメッセージを送
出するためには、DSW(図3)内の該当するクラス・
アドレスがセットされる。H.S.RAMの中の該当す
る位置のビットが「1」にセットされていることによっ
て当該クラスに「所属」していることが示されている全
ての動作可能なプロセッサは、その送出されたメッセー
ジ・パケットに対して「ACK」で応答することにな
る。当該クラスに所属していないプロセッサはNAPで
応答する。
【0210】従ってDSWは、マルチプロセッサ・シス
テム内のメッセージの流れを制御するのに必要な経路指
定計算がハードウェアによって行なわれるようにしてい
る。また、プログラムを、システムの様々な機能がいず
れのプロセッサの中に備えられているのかという知識と
は、無関係なものとすることができる。更には、マップ
はH.S.RAMの一部であり、従ってマイクロプロセ
ッサ105からアクセスできるため、ある機能を1つの
プロセッサから別のプロセッサへ動的に再配置すること
が可能である。
【0211】マージの例 複雑なマルチプロセッサ・システムにおいては、一連の
相互に関連した複数の動作の実行が、タスクによって必
要とされることがある。これは特に、複雑な問合せを取
扱うリレーショナル・データベース・システムについて
言えることであり、そのようなデータベース・システム
においては、データをアセンブルしてファイルを形成
し、しかもアセンブルされた後には特定の方式で複数の
プロセッサへ再分配できるようなファイルを形成するた
めに、複数の二次記憶装置を参照することが必要とされ
ることがある。以下に示す例は、図1、図8、及び図1
3のシステムが、TNと、DSWと、それに大域的セマ
フォとに対して操作を加えることによって、そのような
機能をいかに容易に実行できるようになっているかを、
手短に説明するものである。
【0212】まず第1に、マージ・コーディネータ(典
型的な例としてはマージ・コーディネータはIFP14
ないし16であるが、必ずしもそれに限られるものでは
ない)が、ある1つのファイルをマージして形成するこ
とになる(即ちデータ・ソースとして機能する)1つの
クラスに属する複数のAMPを、(AMP18〜23の
中から)識別する。割当てがなされていない1つのTN
が選択され、そしてデータ・ソース機能を識別するため
に割当てられる。このファイルを別の1組のAMP(そ
れらは元のデータ・ソースのプロセッサであってもよ
い)へ分配ないしハッシングするするという第2の主要
機能に対しては、そのときまで 割当てをされていなか
った別のTNが割当てられる。
【0213】このマージ機能のためのコーディネータ
は、第1のTNに関係するファイルの、マージングの作
業を行なうことになるクラスに属する複数のプロセッサ
を、DSWを用いて識別する。このマージングの作業に
関与する関与プロセッサは、そのTNのステータスのレ
ベルを上昇させて「ビズィ」または「ウェイティング」
ステータスとし、その後に、マージ動作の制御が、マー
ジ動作に関与している関与プロセッサのうちの1つへ渡
される(即ちコーディネータの仕事が委任される)。以
上の複数の関与プロセッサ(それら以外の全てのプロセ
ッサ・モジュールはそのトランザクション・ナンバに関
しては非関与プロセッサである)の各々は、このように
規定されたマージのタスクに関するメッセージ・パケッ
トを受信してそれに対する肯定応答を送出した後には、
そのプロセッサ自身のサブタスクの実行を、そのステー
タス・レベルを適宜更新しながら進行させて行く。そし
て、マージ・コーディネータの仕事を委任されているプ
ロセッサがそれ自身のタスクを終了したならば、そのプ
ロセッサは、その他の全ての関与プロセッサに対して、
当該トランザクション・ナンバに関するステータスを知
らせるよう、ステータス・リクエストを送出し、それに
よって、関与プロセッサのうちでレディネス状態が最低
のプロセッサを表示している応答を受取ることができ
る。マージ動作の制御は、このレディネス状態が最低の
プロセッサへ渡され、この後には、このプロセッサが、
自身の作業が終了した際にその他全ての関与プロセッサ
をポーリングすることができるようになる。以上のプロ
セスは、必要とあらば、関与プロセッサの全てが準備完
了状態となっていることを示す応答が受信されるまで、
続けさせることができる。そのような応答が受信された
時点においてコーディネータとして働いていたプロセッ
サは、続いて、DSWを利用して当該クラスに属してい
る関与プロセッサを識別しつつ、H.S.RAM26へ
のメッセージの転送を開始し、このメッセージの転送に
伴なって、ステータス・レベルが該当する出力メッセー
ジ・ベクタ情報により「送信準備完了」へと更新され
る。これに続いて実行されるポーリングの結果、全ての
関与AMPが送信準備完了状態にあることが判明したな
ら ば、コーディネータは、その特定のTNについての
マージ開始コマンドを発令する。
【0214】マージ動作が実行されている間に、処理済
のデータ・パケットは、結果をリレーショナル・データ
ベースに従って二次記憶装置へ分配するための1つのク
ラスに属する複数のプロセッサ・モジュールへ宛てて、
転送されることになる。それらの複数の受信プロセッサ
が、このとき発信元となっている複数のプロセッサと同
じものであると否とにかかわらず、この分配に関与する
クラスに所属する関与プロセッサ(即ち上記受信プロセ
ッサ)は、DSWによって識別され、またそのトランザ
クションは新たなTNによって識別される。この新しい
トランザクションに関わる関与プロセッサの全てに対し
て、この新たなTNが割当てられることになり、また、
それらの関与プロセッサは、それらのレディネス状態の
レベルを上昇させて「受信準備完了」とすることにな
る。このDSWは、クラス指定ではなく、ハッシング選
択指定のものとすることもできるが、いずれの場合にお
いても、マージが実行されている間は、関与プロセッサ
の全てが、ブロードカストされるメッセージを受信でき
る状態におかれている。「マージ開 始」が発令された
ならば、送出動作に関与すべき送出関与プロセッサの各
々から複数のメッセージ・パケットが、しかも夫々のプ
ロセッサから互いに同時に、ネットワーク上へ送出さ
れ、それらのメッセージ・パケットに対しては動的に
(=伝送中に)優先権の判定が行なわれる。各々の送出
関与プロセッサが、それ自身の1組のメッセージを送信
完了したならば、それらの各々の送出関与プロセッサ
は、一定の形に定められている「エンド・オブ・ファイ
ル(End of File )」メッセージの送信を試み、この
「エンド・オブ・ファイル」メッセージは種々のデータ
メッセージより優先順位が低い。関与プロセッサの全て
が「エンド・オブ・ファイル」メッセージを送出するよ
うになるまでは、この「エンド・オブ・ファイル」メッ
セージはデータ・メッセージとの競合に敗退し続 け、
そして全ての関与プロセッサから送出されるようになっ
たならば、ようやく、「エンド・オブ・ファイル」メッ
セージの転送が達成される。この転送が達成されると、
コーディネータは「エンド・オブ・マージ(End of Mer
ge)」メッセージを送出し、また、それに続いて「TN
放棄」を実行することができ、この「TN放棄」によっ
てこのトランザクションは終了する。オーバラン状態、
エラー状態、ないしはロック状態に対して は、マージ
即ち送信を始めからやり直すことによって適切に対処す
ることができる。
【0215】ある1つのTNに関するマージ動作が終了
したならば、このシステムは、TNのシーケンスの中
の、続く次のTNへとシフトすることができる。この新
たなTNに該当する複数のメッセージ・パケットの待ち
行列を、各々のプロセッサ・モジュールが作り終ったな
らば、それらのプロセッサ・モジュールは、マージ動作
を実行させるためのネットワークに対する働きかけを再
び開始することが可能となる。個別に実行されるプロセ
ッサ内マージ動作に加え、更に以上のようにネットワー
ク内マージ動作が効率的に利用されるために、このシス
テムは、従来のシステムに対して著しく優れた、極めて
大規模なソート/マージ・タスクを実行することができ
るようになっている。本発明を採用した場合に、システ
ム内のある1つのファイルをソートするために必要な時
間は、レコードの個数をn個、プロセッサの個数をm個
とするとき、以下の式で表わすことができる。
【0216】
【数1】
【0217】この式において、C2 は定数であり、この
実施例に関しては、100バイト・メッセージが用いら
れている場合には約10マイクロ秒と見積られ、またC
1 は、典型的な16ビット・マイクロプロセッサが使用
されている場合に、約1ミリ秒と見積られる定数であ
る。様々に組み合わせたnとmとの組合せに対する、概
略のソート/マージ時間が、秒を単位として次の表に示
されており、それらの値は100バイト・レコードが用
いられている場合の値である。
【0218】
【表3】
【0219】以上の表に示されている具体例の数字を従
来のシステムと比較して評価するのは容易なことではな
い。その理由は、相互に関連を有する2種類のソート処
理シーケンス(プロセッサによるソートとネットワーク
によるソート)が関与しているからであり、また、そも
そも、かかる能力を有するシステムが殆んど存在してい
ないからである。更に、本システムではその長さが長大
でしかも可変なメッセージがソート及びマージされるの
に対して、一般的な多くのソート能力は、数バイトない
し数ワードについて能力評価がなされている。
【0220】更に別の重要な要因として、本システムは
マルチプロセッサそのものであって、ソート/マージ処
理の専用システムではないということがある。本システ
ムは、局所的にも大域的にも、マージ動作とノン・マー
ジ動作との間を完全なフレキシビリティをもってシフト
することができ、しかもこのシフトを、ソフトウェア的
な不利益を生じることなく、また、システム効率に損失
を生じさせることもなく、行なえるようになっている。
【0221】タスク・リクエスト/タス応答のサイクル
の例 図1に関し、ネットワーク50に接続されているプロセ
ッサ14、16、ないし18〜23はいずれも、他の1
個または複数個のプロセッサにタスクを実行させるため
のタスク・リクエストを、メッセージ・パケットの形態
の然るべきフォーマットで形成する機能を有している。
リレーショナル・データベース・システムにおいては、
これらのタスクの殆んどはホスト・コンピュータ 1
0、12をその発生源とし、インターフェイス・プロセ
ッサ14、16を介してシステム内へ入力されるもので
あるが、ただし、このことは必要条件ではない。然るべ
きフォーマットで形成されたこのメッセージ・パケット
は、他のプロセッサからのパケットとの間で争われるネ
ットワーク上の競合の中へ投入され、そして、他のタス
クの優先順位のレベル並びにこのプロセッサにおける動
作状態のレベル次第で、時には優先権を得ることにな
る。タスクは、1つのメッセージ・パケットによってそ
の内容を指定されていることもあり、また、複数の継続
パケットによって指定されていることもあるが、後に続
く継続パケットは、データ・メッセージのグループ(図
11参照)の中では比較的高い優先順位レベルを割当て
られ、それによって、後に続く部分を受信するに際して
の遅延ができるだけ短くなるようにしている。
【0222】メッセージ・パケットには、トランザクシ
ョン・アイデンティティ(=トランザクション識別情
報)が、トランザクション・ナンバの形で含まれてい
る。このトランザクション・ナンバは、処理結果を引き
出す上での方式に関するモードであるノン・マージ・モ
ード即ちディフォルト・モード(「TN0」)と、マー
ジ・モード(「TN0」以外の全てのTN)とを、選択
に応じて区別するという性質を本来的に備えている。更
に、メッセージ・パケットにはDSWが含まれている。
このDSWは、実質的に、転送先プロセッサとマルチプ
ロセッサ動作のモードとを指定するものであり、この指
定は、特定のプロセッサの指定、複数のプロセッサから
成るクラスの指定、或いはハッシングの指定によって行
なわれ、本実施例においては、ハッシングは、リレーシ
ョナル・データベースの一部分へのハッシングである。
ネットワーク50を介してターゲット・プロセッサ(指
定転送先プロセッサ)へブロードカストされるメッセー
ジ・パケットは、そのプロセッサにおいて局所的に受入
れられて(=そのプロセッサ自身への受入れが適当であ
るとの判断がそのプロセッサ自身によってなされて)、
そして、受信した旨の認証が肯定応答(ACK)によっ
て行なわれる。プロセッサ14、16及び18〜23の
全てが、EOM(エンド・オブ・メッセージ)のあとに
続いてネットワーク50へ互いに同時に応答を送出する
が、しかしながら、指定転送先プロセッサから送出され
たACKが優先権を獲得し、そして発信元プロセッサに
受信されることになる。
【0223】続いて指定転送先プロセッサは、送られて
きたメッセージが、局所H.S.RAM(=個々のプロ
セッサ・モジュールに備えられているH.S.RAM)
とインターフェイス120と(図8及び図13)を介し
て局所マイクロプロセッサに転送されるときに、このリ
クエスト・パケット (=送られてきたメッセージ)が
要求している処理を非同期的に(=当該プロセッサ・モ
ジュール以外の要素とは同期せずに)実行する。リレー
ショナル・データベースに関するタスクが実行される場
合には、DSWは互いに素のデータ部分集合(この部分
集合はその部分集合のためのディスク・ドライブに格納
されている)のある部分を指定するのが通常の例である
が、ただし、時には、格納されているデータベースを参
照することを必要としないタスクが実行されることもあ
る。特定の演算やアルゴリズムを個々のプロセッサによ
って実行するようにしても良く、また指定転送先プロセ
ッサとして複数のプロセッサが指定された場合には、そ
れらのプロセッサの各々が、タスク全体の互いに素の部
分集合についての仕事を実行するようにすることができ
る。可変長のメッセージ・パケットは、リクエスト・メ
ッセージによって、実行すべき動作とデータベース・シ
ステム内の参照すべきファイルとの指定が行なえるよう
に構成されている。ここで注意すべきことは、所与の
1つのタスクに関するメッセージ・パケットが大量に存
在している場合もあるということであり、その場合に
は、ネットワークの内部で行なわれるソートのための弁
別基準となる適当な特徴を付与するために、任意採用可
能なキー・フィールド(図3)が重要になってくるとい
うことである。
【0224】応答を行なおうとしている各プロセッサに
よって発生されるタスク応答パケットは、マイクロプロ
セッサから、図1の制御ロジック28を介して局所H.
S.RAM26へと転送され、そこでは、タスク応答パ
ケットは図21(a)の送出メッセージ・フォーマット
の形で格納される。タスク応答が、継続パケットの使用
を必要とするものである場合には、そのような継続パケ
ットは先頭パケットの後に続いて、ただし継続のための
より高い優先順位を与えられた上で、送出される。シス
テムがマージ・モードで動作しており、且つ、各々のプ
ロセッサがある1つのトランザクション・ナンバに関す
る多数のパケットを発生している場合には、それらのパ
ケットを先ず局所的に(=個々のプロセッサの内部にお
いて)ソート順でチェーンし、その後に、ネットワーク
50上でマージを行なうことによって大域的なソート順
に並べるようにすることができる。
【0225】タスク結果パケットは、プロセッサ14、
16及び18〜23からネットワーク50へ、同時送出
パケット群を成すように送出され、そして1つの最優先
メッセージ・パケットが、所定のネットワーク遅延のの
ちに、全てのプロセッサへブロードカストにより送り返
される。それらのタスク結果パケットの転送は、そのタ
スクの性質に応じて、最初にリクエスト・メッセージを
発信した発信元プロセッサをその転送先として行なわれ
ることもあり、また、1個ないし複数個の他のプロセッ
サを転送先として行なわれることもあり、更には、既に
説明した複数のマルチプロセッサ・モードのうちのいず
れのモードで転送を行なうこともできる。リレーショナ
ル・データベース・システムにおいて最も一般的に行な
われる事例は、ハッシングを利用して転送先の選択を行
ないつつ、マージと再分配とを同時に実行するというも
のである。従ってそのことからも理解されるように、
「タスク・リクエスト/タスク応答」のサイクルの中で
は、各々のプロセッサが、発信元プロセッサとしても、
コーディネータ・プロセッサとしても、また、応答側プ
ロセッサとしても動作することができ、更には、それら
の3つの全てとして動作することもできるようになって
いる。多くの「タスク・リクエスト/タスク応答」サイ
クルが関与してくるため、プロセッサ14、16及び
18〜23、並びにネットワーク50は、それらのタス
クの間で多重化(マルチプレクシング)されるが、ただ
しこの多重化は、時間を基準にすると共に更に優先順位
をも基準にして行なわれる。
【0226】複雑な問合せの例 リレーショナル・データベース・システムにおいては、
ホスト・コンピュータ10、12を利用して、また更
に、タプル(tuples)と一次的データ及びバックアップ
用データの互いに素のデータ部分集合とを規定するアル
ゴリズムに従ってリレーショナル・データベースを複数
のディスク・ドライブ38〜43の間に分配するように
した分配法を利用して、複雑な問合せがホスト・コンピ
ュータ10または12から、IFP14または16を介
してシステムへ入力される。この入力された問合せのメ
ッセージ・パケットは、先ず最初にIFP14または1
6によって詳細に解析され、この解析は、ホスト・コン
ピュータからのメッセージを、AMP18〜23に対し
てタスクの実行を要求するための複数のタスク・リクエ
ストへと変換するために行なわれるものである。IFP
14ないし16は、その動作を開始するに際して、1個
ないし複数個の特定のAMPから情報を引き出すための
リクエスト・パケットを送出し、それによって、ホスト
・コンピュータからのメッセージの詳細な解析に必要な
システム内データを得ることが必要な場合もある。ホス
ト・コンピュータからのリクエストの処理に必要なデー
タを得たならば、IFP14ないし16は、AMP18
〜23との間で何回かの「タスク・リクエスト/タスク
応答」サイクルを実行することができ、また、データを
実際に処理して、ホスト・コンピュータからのリクエス
トを満足させることができる。以上の処理シーケンスに
おいては、上に挙げたタスク・リクエストとタスク応答
とから成るサイクルが用いられ、また、そのサイクルは
任意の長さに亙って継続することができる。続いて、I
FP14ないし16は、IFPインターフェイスを介し
てホスト・コンピュータと通信する。ホスト・コンピュ
ータへのこの応答は、単に、ホスト・コンピュータ10
または12が次の複雑な問合せを発生するために必要と
するデータを提供するためのものであることもある。
【0227】(独立型マルチプロセッサシステム)図1
に関連して先に説明した本発明に係るシステムの基本的
実施例は、ホスト・コンピュータ並びに現在使用されて
いるホスト・コンピュータ用のソフトウェア・パッケー
ジと組み合わせて使用することのできる、後置プロセッ
サ(バックエンド・プロセッサ)の例を示すものであ
る。しかしながら、既に言及したように、本発明は広範
な種々の処理用途において、また特に、大容量の中央処
理能力を必要とすることなく処理タスクを容易に細分及
び分配できるような種類の処理用途において、格別の利
点を有するものである。図20は、本発明に係る独立型
(スタンド・アローン型)マルチプロセッサ・システム
の簡単な構成の一実施例を図示している。図20におい
て、複数のプロセッサ300はいずれもインターフェイ
ス302を介して能動ロジック・ネットワーク304へ
接続されており、このネットワークは既に説明したもの
と同様のネットワークである。データの完全性を強化す
るために、冗長性を有する能動ロジック・ネットワーク
304を採用するようにしても良い。この実施例におい
ても、プロセッサ300には16ビット・マイクロプロ
セッサ・チップを使用することができ、また、充分な容
量のメインRAMメモリを組込むことができるようにな
っている。この図には9つのプロセッサ 300のみが
示されており、また、それらのプロセッサの各々には異
なった種類の周辺機器が接続されているが、これは、こ
のシステムの多用途性を示すためである。実際には、こ
のシステムは更に多くのプロセッサをネットワークに備
えることによりはるかに効率的になるのであるが、しか
しながら、比較的少数のプロセッサしか備えていない場
合であっても、システムの信頼性とデータの完全性と関
して格別の利点が得られるものである。
【0228】この実施例においては、複数のプロセッサ
300を不便のない充分な距離をとって互いから物理的
に離隔させることができ、それは、データ転送速度が先
の実施例について述べた速度である場合にノード間の最
大間隔が28フィート(5.5m)にもなるため、大規模なア
レイを成す複数のプロセッサを、建物の1つのフロア、
ないしは隣接する幾つかのフロアの上に、むやみに込み
合うことのないように設置して、利用することができる
からである。
【0229】独立型システムでは、先に説明した後置プ
ロセッサの実施例の場合と比較して、周辺機器コントロ
ーラ並びに周辺機器それ自体に、はるかに多くの種類の
ものが用いられる。ここでは便宜的に、個々の入出力デ
バイスは、夫々が別個のプロセッサに接続されているも
のとする。例えば、キーボード312とディスプレイ3
14とを備えた入出力端末装置310は、端末コントロ
ーラ320を介して、同端末装置310のためのプロセ
ッサ300に接続されている。ただし、比較的動作速度
が遅い端末装置の場合には、かなりの規模の端末装置ネ
ットワークを1個の16ビット・プロセッサで制御する
ことも不可能ではない。この図示の入出力端末装置は、
手動操作キーボード等の手動操作入力処理装置がどのよ
うにしてシステムに接続されるのかについての一例を示
しているにすぎない。プロセッサ300の処理能力を利
用してこの端末装置310をワードプロセッサとして構
成することもでき、そしてこのワードプロセッサが、ネ
ットワーク304を介してデータベースや他のワードプ
ロセッサ、或いは種々の出力装置と通信できるようにす
ることもできる。例えばリジッド・ディスク・ドライブ
322等の大容量二次記憶装置を、ディスクコントロー
ラ324を介して、その記憶装置のためのプロセッサに
接続することができる。また、容易に理解されるよう
に、大規模システムには、より多数のディスク・ドライ
ブを用いたり、或いは異なった形態の大容量記憶装置を
用いるようにすれば良い。プリンタ326並びにプロッ
タ330等の出力装置は、夫々、プリンタ・コントロー
ラ328とプロッタ・コントローラ332とを介して、
それらの出力装置のためのプロセッサ300にインター
フェイスしている。不図示の他のシステムとの間の対話
は通信コントローラ338を介して、そして通信システ
ム336を経由して行なわれ、通信システム336とし
ては例えば、テレタイプ・ネットワーク(TTY)や、
更に大規模なネットワークのうちの1つ(例えばエサー
ネット(Ethernet))等が用いられる。プロセッサ300
のうちの幾つかが、周辺装置を接続することなく単にネ
ットワーク304に接続されることもある(不図示)。
【0230】双方向のデータ転送が行なわれる可能性が
あるのは、テープ・ドライブ(テープ駆動機構)340
及びテープ・ドライブ・コントローラ342が用いられ
ている場合、それに、コントローラ346が接続された
フロッピ・ディスク・ドライブ344が用いられている
場合等である。一般にテープ・ドライブは、オン・ライ
ン接続して使用する際の大きな記憶容量を提供するばか
りでなく、ディスク・ドライブのバックアップにも利用
可能である。このバックアップの目的には、密閉式リジ
ッド・ディスク装置に、ある時点までに格納されたデー
タを保存するためにテープが用いられる。このようなバ
ックアップ動作は、通常、低負荷の時間帯(例えば夜間
または週末等)に行なわれるため、ネットワーク304
を用いて長い「ストリーミング」転送を行なうことがで
きる。更には、システムの初期設定の際のプログラムの
入力のためには、フロッピ・ディスク・ドライブ344
が使用されることがあるため、ネットワークの使用時間
のうちの幾分かをこの「ストリーミング」のモードにあ
てて、かなりの量のデータを転送することもできる。光
学文字読取器350は、更に別の入力データのソースと
して機能するものであり、その入力データは、そのコン
トローラ352を介してシステムへ入力される。尚、単
に「他の装置354」とだけ記されている周辺装置は、
コントローラ356を介してシステムに接続することに
よって、必要に応じたその他の機能を発揮するようにす
ることができるものである。
【0231】別々のプロセッサ・モジュールから夫々の
メッセージ・パケットを互いに同時に送出し、そしてそ
れらのメッセージ・パケットに対して優先権の判定を行
なって、1つの、或いは共通の最優先メッセージ・パケ
ットが所定の一定の時間内に全てのプロセッサ・モジュ
ールへ同時にブロードカストされるようにするという方
式を使用しているため、オン・ライン状態にある個々の
プロセッサのいずれもが、このシステム内の他のプロセ
ッサ・モジュールに等しくアクセスできるようになって
いる。優先順位を付与されたトランザクション・ナンバ
並びにレディネス状態表示と、メッセージ内に含まれた
転送先選択エントリとを利用しているこの大域的セマフ
ォ・システムによって、どのプロセッサもコントローラ
として働くことが可能となっているため、このシステム
は、階層的な方式でも、また非階層的な方式でも動作可
能となっている。本システムが、ソフトウェアの精査や
変更を必要とすることなく拡張或いは縮小することがで
きるということも、非常に重要である。
【0232】既に説明したメッセージ長さよりかなり長
いが、なお比較的長さの限られているメッセージに対す
るアクセスが必要な場合であっても、そのようなアクセ
スを実行することができる。例を挙げれば、複雑なコン
ピュータ・グラフィクス装置(不図示)に関して、精巧
な2次元図形及び3次図形を作成するために、膨大なデ
ータベースの特定の部分にだけアクセスすることが必要
とされる場合がある。また、ワード・プロセッサ・シス
テムに関して、オペレータ(操作者)の操作速度が遅い
ために、データベースのうちから、一度に僅かなデータ
のシーケンスのみが必要とされる場合もある。これらの
状況、並びにそれに類似した状況においては、本システ
ムの、可変長のメッセージを取扱うことのできる能力、
並びに継続メッセージに優先権を付与することのできる
能力が有益なものとなる。処理能力を集中させることを
必要とする状況や、甚だしく長いメッセージの転送を必
要とする状況は、このシステムの使用に限界を与える
が、それ以外の状況においては、本システムは非常に有
利に機能する。種々の異なったデータ形式の操作とそれ
に伴なうのソート機能ないしマージ機能に関わる動的な
状況は、いずれも本発明が有利に機能する状況に該当す
る。複雑なデータを収集し、照合し、そして解析するこ
とを含む経営意志決定はその種の状況の一例であり、ま
た、定期刊行物のための、映像入力や図形入力の作成及
び編集も、その一例である。
【0233】
【発明の効果】(結論)当業者には明らかなように、図
1のシステムは、ソフトウェアを変更することを必要と
せずにそこに含まれるプロセッサの個数を任意の個数に
(ただしデータ転送容量によって決定される実際上の限
界の個数までに)拡張することが可能である。更にこれ
も明らかなことであるが、同図のシステムは、夫々の処
理装置のステータスの確認、タクス並びにプロセッサの
優先順位の設定、それにプロセッサの処理能力の効率的
な利用の確保のための、管理及びオーバーヘットのソフ
トウェアの必要量を大幅に減少させている。
【0234】明白な利益が得られるのは、データベース
・システムや、その他の、データベース・システムと同
様に1つのタスクの全体を、互いに独立して処理するこ
とのできる複数のサブタスクへ細分することが適当なシ
ステム等の場合である。例えばリレーショナル・データ
ベースに関して言えば、二次記憶装置の容量が格段に増
大した場合にも、更なるデータベースを一次的データと
バックアップ・データとからなるデータ構造の中に適切
に統合するだけで良いのである。換言すれば、ネットワ
ークを限りなく拡張することが可能であり、それが可能
であるのは、標準化された交点装置即ちノードを2進数
的に発展して行く接続方式で連結しているために、それ
らの個々のノードにおいて実行される機能が拡張によっ
て変化することがないからである。更には、ノードの動
作についての設定処理シーケンスや外部制御も不要であ
る。従って本発明に係るシステムが、図1に示されてい
るように、1台ないし複数台のホスト・コンピュータの
バックエンド・プロセッサとして機能するように接続さ
れている場合には、システムのユーザはオペレーティン
グ・システムのソフトウェアも、応用ソフトウェアも変
更することなしに、データベースを任意に拡張(或いは
縮小)することができる。ホスト・プロセッサ・システ
ム(=ホスト・コンピュータ)の側から見れば、このバ
ックエンド・プロセッサはその構成の如何にかかわらず
「透明な」ものとなっており、なぜならばその構成が変
化してもこのバックエンド・プロセッサとホスト・プロ
セッサ・システムとの間の対話の態様には変化は生じな
いからである。このバックエンド・プロセッサに別のホ
スト・プロセッサ・システムの仕事をさせるように切り
換えるためには、単にIFPがその新たなホスト・プロ
セッサ・システムのチャネルないしバスとの間で適切に
会話するようにするだけで良い。
【0235】ある実機の具体例におけるネットワークの
構成に拠れば、ネットワーク内のメッセージ転送に甚だ
しい遅延を生じることなく、またプロセッサ間の競合に
起因する不適当な程の遅延も生じることなしに、1つの
アレイに1024個までのマイクロプロセッサを包含し
て使用することができるようになっている。本明細書で
説明した実施例を、1024個を超えるプロセッサを含
むように拡張するにはどのようにすれば良いかは、当業
者には明白であろう。1つのシステムに1024個のプ
ロセッサを用いる場合、実機の具体例では能動ノード間
の最大ライン長さは28フィートになることが分ってお
り、このライン長さであればアレイを構成する上で問題
が生じることはない。ネットワークに起因する遅延時間
は、いかなるメッセージについても一定の時間2τNで
あり、ここで τはバイト・クロックの間隔、Nは階層
構造の中の階層の数である。明らかに、階層を更に1つ
増すことによってプロセッサの個数を倍にしても、遅延
時間は僅かに増加するに過ぎない。データ・メッセージ
であれば略々必然的に長いメッセージとなるため(約2
00バイト程度の長さとなる)、また、競合するメッセ
ージの全てについての優先権の判定が、データをネット
ワークに沿って転送している間に行なわれるため、この
ネットワークは従来のシステムと比較して、はるかに高
い利用効率でデータ・メッセージの転送を行なえるもの
となっている。
【0236】本システムの重要な経済上の特徴並びに動
作上の特徴のなかには、標準化された能動ロジック回路
がソフトウェアの替わりに、そして更にはネットワーク
・システムにおけるファームウェアの替わりにも用いら
れているという事実によって得られている特徴がある。
即ちこの事実によって、近代的なLSI並びにVLSI
の技術を利用してプロセッサのコストと周辺装置のコス
トとを含めた全体のコストに対して相対的に低コスト
で、信頼性の高い回路を組込むことができるようになっ
ているのである。
【0237】ソフトウェアに時間と経費とを費やさねば
ならないのは、データベース管理等の問題領域のタスク
に関係するような、重要な部分についてだけに限定され
ている。例を挙げれば、本システムの構成に拠れば、デ
ータベースの完全性を維持するために必要な諸機能の全
てを、メッセージ・パケットの構成並びにネットワーク
の構成に基づく範囲内で実行し得るようになっている。
ポーリング、ステータスの変更、並びにデータの復旧等
の機能はシステムの内部において実行される。
【0238】更に別の重要な考慮すべき点として、本発
明のネットワークは、その高速データ転送の性能が、従
来のオーミックな配線バスに充分匹敵する程に優れたも
のであるということがある。複数のメッセージ・パケッ
トが互いに同時に送出され、それらが伝送されている間
に優先権の判定がなされるため、従来の方式においてス
テータス・リクエストとそれに対する応答の送出、並び
に優先権の判定に伴なっていた遅延が、回避されている
からである。更には、プロセッサの個数が莫大な個数で
あってもノード間の接続構造の長さを所定の長さ以下に
抑えることが可能であるため、バス内の伝播時間がデー
タ転送速度に対する制約となることがない。
【0239】本システムは、マイクロプロセッサ及びネ
ットワークの使用効率という点において最適状態に迫る
ものであることが判明している。これらの点に関して重
要なことは、全てのマイクロプロセッサがビズィ状態に
保たれるようにすることと、ネットワークが一杯に有効
利用されるようにすることとである。「IFP−ネット
ワーク−AMP」の構成は、事実上それらのことを可能
にしており、その理由は、自らが送出したメッセージ・
パケットが優先権を獲得するための競合において敗退し
たマイクロプロセッサは、なるたけ早い適当な時刻に再
度送信を試みるだけで良く、そのためバスのデューティ
・サイクルが高いレベルに維持されるからである。高速
ランダム・アクセス・メモリもまたこの効果を得るため
に寄与しており、なぜならば、高速ランダム・アクセス
・メモリは処理すべき入力メッセージ・パケットと送出
すべき出力メッセージ・パケットとの両方をその内部に
集積しているため、各々のプロセッサが作業のバックロ
グを常時入手できると共に、ネットワークもまたメッセ
ージパケットのバックログを入手できるようになってい
るからである。全ての入力バッファが満杯になったなら
ば、プロセッサがその事実を知らせる表示をネットワー
ク上へ送出する。また、IFPに用いられている、ホス
ト・コンピュータからのメッセージを受取るための入力
バッファが満杯になったならば、そのことを知らせる表
示がチャネル上に送出される。従って本システムは、内
部的にもまた外部的にも自己調歩式となっている。
【0240】本システムは、以上に説明したようなアー
キテクチャとメッセージの構成とを利用することによっ
て、汎用マルチプロセッサ・システムに必要とされるそ
の他の多くの機能をも実行できるように構成されてい
る。例えば従来技術においては、大域的資源のステータ
スの変化を評価及び監視するための方式に関して非常な
注意が払われていた。これに対して本発明に拠れば、パ
リティ・エラーの発生とプロセッサの使用可能性の変化
という事実との両方を伝達するための手段として、パリ
ティ・チャネルのみが備えられ使用されている。1個な
いし複数個のプロセッサがシャット・ダウンした場合に
は、そのシャット・ダウンが、その発生と略々同時にシ
ステム中に伝達され、それによって割込みシーケンスの
実行を開始することができるようになっている。複数の
応答を優先順位に従ってソートするという方式が採用さ
れているため、大域的な能力の変化が生じた場合にその
変化がどのような性質のものであるかを、従来と比較し
てはるかに小規模の回路とシステム・オーバヘッドとに
よって特定することが可能となっている。
【0241】大域的セマフォと能動ロジック・ネットワ
ークとを採用したことによって達成されている、1回の
問合せにより優先権の判定を経て得られる大域的応答
は、非常に深いシステム的な意味を持っている。この方
式により問合せをブロードカストすることによって曖昧
性のない一義的な大域的結果が得られるため、複雑なソ
フトウェア並びにオーバヘッドが不要とされている。分
散型更新等のステータス設定動作は、多数の同時動作が
複数の異なったプロセッサで実行されている際にも実行
可能となっている。
【0242】本システムは更に、以上のようなネットワ
ークとトランザクション・ナンバと転送先選択ワードと
を用いることによって、マルチプロセッサ・システムに
おける仕事の分配並びに処理結果の収集に関する優れた
能力を発揮している。種々のマルチプロセッサ・モード
と制御メッセージとを利用することができ、また、優先
順位プロトコルを操作するだけで、優先順位の種々のレ
ベルを容易に設定しまた変更することができるようにな
っている。全てのプロセッサへ同時にブロードカストす
ることのできる能力と、ネットワーク中でメッセージの
ソートを行なえる能力とが組み合わさることによって、
いかなるプロセッサ・グループ或いはいかなる個々のプ
ロセッサを転送先とすることも可能となっていると共
に、処理結果を適切な順序で引き出すことも可能となっ
ている。従って、リレーショナル・データベース・シス
テムに対する複雑な問合せが入力されたならば、そのこ
とによってデータベース動作に必要なあらゆる処理シー
ケンスが開始されるようになっている。
【0243】本システムの更に別の利点は、リレーショ
ナル・データベース・システム等のマルチプロセッサ・
システムに、容易に冗長性を導入できることにある。二
重ネットワークと二重インターフェイスとを備えている
ため、一方のネットワークが何らかの原因で故障した場
合にもシステムが動作し続けられるようにする冗長性が
得られている。データベースを互いに素の一時的部分集
合とバックアップ用部分集合という形で分配してあるた
め、データ喪失の確率が最小のレベルにまで低減されて
いる。故障が発生したり変更が加えられたりした場合に
も、用途の広い種々の制御機能が利用可能であるために
データベースの完全性を維持し得るようになっている。
【図面の簡単な説明】
【図1】新規な双方向ネットワークを含む、本発明に係
るシステムのブロック図である。
【図2】図1に示された簡単な構造の実施例のネットワ
ークにおけるデータ信号並びに制御信号の伝送の態様を
示す、時間の経過に沿った連続する一連の説明図であ
り、図2(a)は信号伝送の開始前の時点における状態
を示す図、また、図2(b)〜図2(k)は、夫々、t
=0からt=9までの連続する10箇所の時点における
時間標本の一つに対応している図である。
【図3】図1に示されたシステムに採用されているメッ
セージ・パケットの構成を図示する説明図である。
【図4】図1に示された新規な双方向ネットワーク用い
られている能動ロジック・ノード並びにクロック回路に
関する、同ネットワークの更なる細部構造を示すブロッ
ク図である。
【図5】前記能動ロジック・ノードの内部の様々な動作
状態を示す、状態図である。
【図6】前記能動ロジック・ノードの内部において行な
われるエンド・オブ・メッセージの検出動作を説明する
ためのタイミング・ダイアグラムである。
【図7】図4に示したクロック回路の動作を説明するた
めの、タイミング波形のダイアグラムである。
【図8】図1に示したシステムに使用することのでき
る、高速ランダム・アクセス・メモリを含むプロセッサ
・モジュールのブロック図である。
【図9】図8に示したマイクロプロセッサ・システムの
メインRAMの内部のアドレスの割当て状況を示す図で
ある。
【図10】図8に示された高速ランダム・アクセス・メ
モリの、1つの参照部分の内部におけるデータの配置態
様のブロック図である。
【図11】前記システムに用いられているメッセージの
優先順位プロトコルを示すチャートである。
【図12】トランザクション・ナンバのワード・フォー
マットを図示する説明図である。
【図13】図1及び図8に示したシステムの、その内部
に備えられている各プロセッサモジュールに用いられて
いるインターフェイス回路のブロック図であり、図13
(a)の右側に図13(b)を置くことによって1枚に
つながる図である。
【図14】図13のインターフェイス回路において用い
られている様々なクロック波形及びフェイズ波形を図示
するタイミング・ダイアグラムである。
【図15】転送先選択ワードに基づいてマッピングを行
なうための、メモリ構成の更なる詳細とマッピングの一
方式とを図示するブロック図である。
【図16】入力データ・メッセージを受信した際のステ
ータスの変化を示す、簡略化したフローチャートであ
る。
【図17】メッセージの受信が行なわれているときのス
テータスの変化を示すフローチャートであり、図17
(a)を図17(b)の上縁部に接して並べることによ
り1枚につながる図である。
【図18】様々なプライマリ・メッセージとそれらに対
して発生される種々の応答との間の関係、並びに、様々
なプライマリ・メッセージとそれらに応答して実行され
る動作との間の関係を示す表である。
【図19】メッセージの送信が行なわれているときのス
テータスの変化を示すフローチャートであり、図19
(a)を図19(b)の上縁部に接して並べることによ
り1枚につながる図である。
【図20】本発明に係るスタンド・アローン型システム
のブロック図である。
【図21】図21(a)及び図21(b)から成り、前
記高速ランダム・アクセス・メモリに格納されているメ
ッセージを示す図である。
【図22】データベース・システム内の複数の異なった
プロセッサの間にデータベースの夫々の部分を分配する
ための、分配方式の可能な一例を示す簡略化した模式図
である。
【符号の説明】
10、12 ホスト・コンピュータ、 14、16 インターフェイス・プロセッサ、 18〜23 アクセス・モジュール・プロセッサ、 24 マイクロプロセッサ、 26 高速ランダム・アクセス・メモリ、 28 制御ロジック、 32 ディスク・コントローラ、 38〜43 ディスク・ドライブ、 50 能動ロジック・ネットワーク構造、 54 ノード、 56 クロック・ソース、 120、120’ ネットワーク・インターフェイス、 103 マイクロプロセッサ・システム
【手続補正書】
【提出日】平成5年3月5日
【手続補正4】
【補正対象書類名】明細書
【補正対象項目名】図面の簡単な説明
【補正方法】変更
【補正内容】
【図面の簡単な説明】
【図1】新規な双方向ネットワークを含む、本発明に係
るシステムのブロック図である。
【図2】図1に示された簡単な構造の実施例のネットワ
ークにおけるデータ信号並びに制御信号の伝送の開始前
の時点における状態を示す図である。
【図3】図1に示された簡単な構造の実施例のネットワ
ークにおいてデータ信号並びに制御信号を伝送する際の
時間t=0における状態を示す図である。
【図4】図1に示された簡単な構造の実施例のネットワ
ークにおいてデータ信号並びに制御信号を伝送する際の
時間t=1における状態を示す図である。
【図5】図1に示された簡単な構造の実施例のネットワ
ークにおいてデータ信号並びに制御信号を伝送する際
の、時間t=2における状態を示す図である。
【図6】図1に示された簡単な構造の実施例のネットワ
ークにおいてデータ信号並びに制御信号を伝送する際
の、時間t=3における状態を示す図である。
【図7】図1に示された簡単な構造の実施例のネットワ
ークにおいてデータ信号並びに制御信号を伝送する際
の、時間t=4における状態を示す図である。
【図8】図1に示された簡単な構造の実施例のネットワ
ークにおいてデータ信号並びに制御信号を伝送する際
の、時間t=5における状態を示す図である。
【図9】図1に示された簡単な構造の実施例のネットワ
ークにおいてデータ信号並びに制御信号を伝送する際
の、時間t=6における状態を示す図である。
【図10】図1に示された簡単な構造の実施例のネット
ワークにおいてデータ信号並びに制御信号を伝送する際
の、時間t=7における状態を示す図である。
【図11】図1に示された簡単な構造の実施例のネット
ワークにおいてデータ信号並びに制御信号を伝送する際
の、時間t=8における状態を示す図である。
【図12】図1に示された簡単な構造の実施例のネット
ワークにおいてデータ信号並びに制御信号を伝送する際
の、時間t=9における状態を示す図である。
【図13】図1に示されたシステムに採用されているメ
ッセージ・パケットの構成を図示する説明図である。
【図14】図1に示された新規な双方向ネットワーク用
いられている能動ロジック・ノード並びにクロック回路
に関する、同ネットワークの更なる細部構造を示すブロ
ック図である。
【図15】前記能動ロジック・ノードの内部の様々な動
作状態を示す、状態図である。
【図16】前記能動ロジック・ノードの内部において行
なわれるエンド・オブ・メッセージの検出動作を説明す
るためのタイミング・ダイアグラムである。
【図17】図14に示したクロック回路の動作を説明す
るための、タイミング波形のダイアグラムである。
【図18】図1に示したシステムに使用することのでき
る、高速ランダム・アクセス・メモリを含むプロセッサ
・モジュールのブロック図である。
【図19】図18に示したマイクロプロセッサ・システ
ムのメインRAMの内部のアドレスの割当て状況を示す
図である。
【図20】図18に示された高速ランダム・アクセス・
メモリの、1つの参照部分の内部におけるデータの配置
態様のブロック図である。
【図21】前記システムに用いられているメッセージの
優先順位プロトコルを示すチャートである。
【図22】トランザクション・ナンバのワード・フォー
マットを図示する説明図である。
【図23】図1及び図18に示したシステムの内部に備
えられている各プロセッサモジュールに用いられている
インターフェイス回路のブロック図の左半分を示す図で
ある。
【図24】図1及び図18に示したシステムの、その内
部に備えられている各プロセッサモジュールに用いられ
ているインターフェイス回路のブロック図の右半分を示
す図である。
【図25】図23及び図24に示したインターフェイス
回路において用いられている様々なクロック波形及びフ
ェイズ波形を図示するタイミング・ダイアグラムであ
る。
【図26】転送先選択ワードに基づいてマッピングを行
なうための、メモリ構成の更なる詳細とマッピングの一
方式とを図示するブロック図である。
【図27】入力データ・メッセージを受信した際のステ
ータスの変化を示す、簡略化したフローチャートであ
る。
【図28】メッセージの受信が行なわれているときのス
テータスの変化を示すフローチャートの前半部分を示す
図である。
【図29】メッセージの受信が行なわれているときのス
テータスの変化を示すフローチャートの後半部分を示す
図である。
【図30】様々なプライマリ・メッセージとそれらに対
して発生される種々の応答との間の関係、並びに、様々
なプライマリ・メッセージとそれらに応答して実行され
る動作との間の関係を示す表である。
【図31】メッセージの送信が行なわれているときのス
テータスの変化を示すフローチャートの前半部分を示す
図である。
【図32】メッセージの送信が行なわれているときのス
テータスの変化を示すフローチャートの後半部分を示す
図である。
【図33】本発明に係るスタンド・アローン型システム
のブロック図である。
【図34】前記高速ランダム・アクセス・メモリに格納
されている送信メッセージと受信メッセージを示す図で
ある。
【図35】データベース・システム内の複数の異なった
プロセッサの間にデータベースの夫々の部分を分配する
ための、分配方式の可能な一例を示す簡略化した模式図
である。
【符号の説明】 10、12 ホスト・コンピュータ、 14、16 インターフェイス・プロセッサ、 18〜23 アクセス・モジュール・プロセッサ、 24 マイクロプロセッサ、 26 高速ランダム・アクセス・メモリ、 28 制御ロジック、 32 ディスク・コントローラ、 38〜43 ディスク・ドライブ、 50 能動ロジック・ネットワーク構造、 54 ノード、 56 クロック・ソース、 120、120, ネットワーク・インターフェイス、 103 マイクロプロセッサ・システム
【手続補正5】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正内容】
【図2】
【図15】
【図17】
【図1】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図16】
【図19】
【図25】
【図18】
【図20】
【図21】
【図22】
【図26】
【図23】
【図24】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【図33】
【図34】
【図35】
───────────────────────────────────────────────────── フロントページの続き (72)発明者 デビッド・ヘンリイ・ハートク アメリカ合衆国カリフォルニア州ロス・ア ンゼルス・サウス・ジェネシー1427 (72)発明者 リチャード・クラレンス・ストックトン アメリカ合衆国カリフォルニア州ノースリ ッジ・メリオン・ドライブ19005 (72)発明者 マーチン・キャメロン・ワトソン アメリカ合衆国カリフォルニア州ノースリ ッジ・キャブリオール・アベニュー11112 (72)発明者 デビッド・クロンショウ アメリカ合衆国カリフォルニア州トラン ス・タワーズ・ストリート5635 (72)発明者 ジャック・エバート・シエマー アメリカ合衆国カリフォルニア州ロス・ア ンゼルス・オーシャーノ・ドライブ270

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 複数のプロセッサ・モジュールを用いて
    データを処理するための方法であって、 属性を表わす属性表示メッセージを内包している情報パ
    ケットを、前記複数のプロセッサ・モジュールの全てへ
    同時にブロードカストするステップと、 前記プロセッサ・モジュールにおいて、前記情報パケッ
    ト内の命令を実行すべき個々のプロセッサ・モジュール
    を、前記情報パケット内の前記属性表示メッセージに基
    づいて判定するステップと、 前記複数のプロセッサ・モジュールの全てへ同時にブロ
    ードカストされる、属性表示メッセージを内包している
    処理済みの情報パケットを、発生するステップと、 を含む方法。
  2. 【請求項2】 前記属性表示メッセージが、ハッシュ・
    マップ・アドレストと、プロセッサ・モジュールのクラ
    スと、個々のプロセッサ・モジュールとを指定するため
    の固定長ワードを含み、且つ、この固定長ワードを前記
    プロセッサ・モジュールにおいて使用することにより、
    前記プロセッサ・モジュールに予め格納されている情報
    が読出され、それによって、特定のプロセッサ・モジュ
    ールをいずれのメッセージ・パケットがその転送先とし
    て意図しているのかが示される、請求項1記載の方法。
  3. 【請求項3】 ハッシュ・マップと、プロセッサ・モジ
    ュールのクラスと、個々のプロセッサ・モジュールとの
    夫々についての識別データを、各々のプロセッサ・モジ
    ュールのメモリの中の選択されたアドレスに入力するこ
    とによって初期化を行なうステップと、情報パケット内
    の前記固定長ワードを使用して該メモリから識別データ
    を直接的に読出すステップとを更に含む、請求項2記載
    の方法。
  4. 【請求項4】 マルチプロセッサ・システムにおける複
    数のプロセッサの間のメッセージの転送経路を制御する
    ための方法であって、 前記プロセッサの各々において、送出されるメッセージ
    の中に属性値を挿入するステップと、 連続する複数のタイム・フレームの間に、属性値を内包
    している互いに競合する複数のメッセージを互いに同時
    に送出するステップと、 同時送出された前記競合メッセージを、連続する複数の
    タイム・フレームの間に、伝送しつつマージし、それと
    同時に、対を成す互いに競合する2つのメッセージの間
    の優先権の判定を、最終的に1つの優先メッセージが得
    られるまで行なうステップと、 前記優先メッセージを前記複数のプロセッサの全てへ同
    時にブロードカストするステップと、 前記複数のプロセッサの各々において、前記属性値を使
    用して、当該属性値を内包しているメッセージを当該プ
    ロセッサが受入れるべきか否かを判定するステップと、 を含む方法。
  5. 【請求項5】 個々のプロセッサのルックアップ・テー
    ブルの特定のアドレスに、あるメッセージが当該プロセ
    ッサを転送先として意図したものか否かを示すデータを
    初期に格納するステップと、前記属性値を固定ワード長
    のアドレスとしてメッセージの中に挿入するステップ
    と、各々のプロセッサにおいて、前記アドレスによって
    指定された前記ルックアップ・テーブルのデータを読み
    出し、それによって、当該プロセッサが当該メッセージ
    を受入れるべきか否かを判定するステップとを更に含
    む、請求項4記載の方法。
JP3263081A 1981-04-01 1991-09-12 マルチプロセッサ・システムにおけるメッセージの通信制御方法 Expired - Lifetime JP2651473B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US250022 1981-04-01
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

Publications (2)

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

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

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 マルチプロセッサ・システムにおけるタスクの処理及びメッセージの送受信制御方法

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消息的智能用电与需求侧响应方法、系统及装置

Citations (2)

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

Family Cites Families (3)

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

Patent Citations (2)

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

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
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
JP2555451B2 (ja) 1996-11-20

Similar Documents

Publication Publication Date Title
EP0069438B1 (en) A multiprocessor system, a system and method for intercommunicating between processors, a system for effecting data transfer, a system for controlling routing of messages, and an arrangement for ascertaining a global state of readiness of a system
US4543630A (en) Data processing systems and methods
US4945471A (en) Message transmission system for selectively transmitting one of two colliding messages based on contents thereof
US4814979A (en) Network to transmit prioritized subtask pockets to dedicated processors
Agrawal et al. An efficient and fault-tolerant solution for distributed mutual exclusion
EP0234803B1 (en) Method for the dynamic partitioning of parallel processors
WO2014008495A2 (en) Managing dependencies between operations in a distributed system
JP2651473B2 (ja) マルチプロセッサ・システムにおけるメッセージの通信制御方法
Sha et al. Real-time computing with IEEE futurebus+
CA1198523A (en) Multi-processor intercommunication system and method
Concepcion Trans. Nat. Acad. Sci & Tech.(Phils.) 1987.9: 51� 63
Sharma Robust Replication Control Using Primary Copy Method
JPH02219334A (ja) 排他制御処理方式
JPH0418339B2 (ja)