JPH0426726B2 - - Google Patents

Info

Publication number
JPH0426726B2
JPH0426726B2 JP1234499A JP23449989A JPH0426726B2 JP H0426726 B2 JPH0426726 B2 JP H0426726B2 JP 1234499 A JP1234499 A JP 1234499A JP 23449989 A JP23449989 A JP 23449989A JP H0426726 B2 JPH0426726 B2 JP H0426726B2
Authority
JP
Japan
Prior art keywords
message
clock
processor
data
node
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP1234499A
Other languages
Japanese (ja)
Other versions
JPH02118709A (en
Inventor
Marukomu Nechisu Fuiritsupu
Henrii Haatoku Debitsuto
Kurarensu Sutotsukuton Richaado
Kyameron Watoson Maachin
Kuronsho Debitsudo
Ebaado Shemaa Jatsuku
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,022 external-priority patent/US4412285A/en
Priority claimed from US06/250,094 external-priority patent/US4445171A/en
Application filed by Teradata Corp filed Critical Teradata Corp
Publication of JPH02118709A publication Critical patent/JPH02118709A/en
Publication of JPH0426726B2 publication Critical patent/JPH0426726B2/ja
Granted legal-status Critical Current

Links

Landscapes

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

Description

【発明の詳細な説明】[Detailed description of the invention]

(産業上の利用分野) データ伝送システム及びクロツキングシステム
に関するものである。 (従来の技術) 高い信頼性を備えた形式の電子計算機(エレク
トロニツク・コンピユータ)が出現して以来、こ
の技術分野に従事する者が考察を重ねてきたシス
テムに、複数のコンピユータを使用するシステム
であつてそれらのコンピユータが相互に関連性を
保ちつつ動作することによつて、所与の1つのタ
スクの全体が実行されるようにしたシステムがあ
る。そのようなマルチプロセツサ・システムのう
ちのあるシステムでは、1つの大型コンピユータ
が、それ自身の優れた速度と容量とを利用してプ
ログラムの複雑な部分を実行すると共に、複雑さ
の程度の低いタスクや緊急度の低いタスクについ
ては、それを小型で速度の遅い衛星プロセツサに
委任し(割当て)、それによつて、この大型コン
ピユータの負担やこの大型コンピユータに対する
リクエストの量が減少するようにしたものがあ
る。この場合、大型コンピユータは、サブタスク
の割当てを行なうこと、小型プロセツサ(=上記
衛星プロセツサ)を常に作動状態に保つこと、そ
れらの小型プロセツサの使用可能性と動作効率と
を確認すること、それに統一された結果が得られ
るようにすることを担当しなければならない。 以上とは別の方式を採用している別種のマルチ
プロセツサ・システムのなかには、多数のプロセ
ツサと1つの共通バス・システムとを使用するシ
ステムであつてそれらの複数のプロセツサには本
質的に互いに等しい機能が付与されているシステ
ムがある。この種のシステムにおいては、しばし
ば、他の部分からは独立した制御用コンピユータ
ないし制御システムを用いて、所与のサブタスク
に関する個々のプロセツサの使用可能性並びに処
理能力を監視することと、プロセツサ間のタスク
及び情報の転送経路を制御することとが行なわれ
ている。また、プロセツサそれ自体が、他のプロ
セツサのステータス並びに利用可能性の監視と、
メツセージ及びプログラムの転送経路の決定とを
行なえるように、夫々のプロセツサの構成及び動
作が設定されているものもある。以上の種々のシ
ステムに共通する重大な欠点は、オーバーヘツド
機能及び保守機能を実行するために、ソフトウエ
アが必要とされ且つ動作時間が消費されるという
ことにあり、そしてそれによつて、本来の目的の
実行に影響が及ぶことになる。転送経路の決定及
び監視に関する仕事量が、それらの仕事に関与す
るプロセツサの総数の2次の関数で増加して、つ
いにはオーバーヘツド機能のために不適当な迄の
努力が費やされるようになることもある。 以下の数件の特許公報は従来技術の例を示すも
のである。 米国特許公報第3962685号 −ベル・イール(Belle Isle) 同第3962706号 −デニス(Dennis)他 同第4096566号 −ボーリー(Borie)他 同第4096567号 −ミラード(Millard)他 同第4130865号 −ハート(Heart)他 同第4136386号 −アヌーンチアータ
(Annunziata)他 同第4145739号 −ダニング(Dunning)他 同第4151592号 −スズキ(Suzuki)他 初期のバイナツク(“Binac”:2個の互いにパ
ラレルに接続されたプロセツサを用いる)や、そ
れに類似した種々のシステムが使用されていた頃
から既に、マルチプロセツサ方式は冗長性を備え
た実行能力を提供するものであつて、そのため動
作するシステムの全体の信頼性を著しく向上させ
得るものであるということが認識されていた。実
際にマルチプロセツサ・システムを構成するとい
うことに対しては、これまでのところ、かなりの
制約が存在しているが、その制約は主としてソフ
トウエアが膨大なものとなつてしまうことに起因
する制約である。にもかかわらず、例えばリアル
タイムの用途等のように、システムのダウンタイ
ム(運転休止時間)が容認され得ないような種々
の状況においては、マルチプロセツサ動作が特に
有利であるため、これまでに様々なマルチプロセ
ツサ・システムが開発されてきたが、ただし、そ
れらのシステムは動作自体は良好であるが、オー
バーヘツドのためにソフトウエアと動作時間のか
なりの分量を割かなければならないものであつ
た。そのような従来のシステムは、米国特許公報
第3445822号、同第3566363号、及び同第3593300
号にその具体例が示されている。これらの特許公
報はいずれも、複数のコンピユータがそれらの間
で共用される1つのメイン・メモリをアクセスす
るようにしたシステムに関するものであり、この
システムにおいては更に、タスクを個々のプロセ
ツサに好適に割当てるために、処理能力と処理要
求量とが比較されるようになつている。 従来技術の更に別の例としては、米国特許公報
第4099233号がある。この公報のシステムでは、
複数のプロセツサが1つのバスを共用しており、
また、バツフア・レジスタを内蔵している制御ユ
ニツトを用いて送信側ミニプロセツサと受信側ミ
ニプロセツサとの間のデータ・ブロツクの転送が
行なわれる。このシステムのコンセプトは、欧州
において分散型の郵便物分類システムに利用され
ている。 米国特許公報第4228496号は、商業的に成功し
たマルチプロセツサ・システムに関するものであ
り、このシステムでは、複数のプロセツサの間に
設けられた複数のバスがバス・コントローラに接
続されており、このバス・コントローラが、デー
タ送出状況の監視と、プロセツサ間で行なわれる
複数のデータ転送に対する優先順位の判定を行な
つている。また、各々のプロセツサは、複数の周
辺装置のうちのある1つの装置を制御するように
接続可能となつている。 ゼロツクス、ヒユーレツト・パツカード、及び
インテルによつて共同で推進されている「イーサ
ネツト」システム(“Ethernet”system)(米国
特許公報第4063220号及び同第4099024号)は、複
数のプロセツサ並びに周辺装置の間の相互通信の
問題に対処するための、更に別の方式を提示して
いる。全てのユニツト(=プロセツサや周辺装置
等)はそれらのユニツトの間で共用される多重ア
クセス・ネツトワークに接続されており、そして
それらのユニツトは優先権を獲得すべく互いに競
合することになる。衝突検出は時刻優先方式で行
なわれており、そのために、大域的な処理能力を
制御することと、コーデイネートすることと、明
確に把握することとが、容易でなくなつている。 以上に説明した種々のシステムをそれらの細部
まで完全に理解するためには、以上に言及して特
許公報やその他の関連参考文献を詳細に分析する
必要がある。しかしながら、タスクの分担が行な
われる場合にはそれらのシステムはいずれも、デ
ータ転送に関する優先権の判定やプロセツサの選
択を行なうために膨大な量の相互通信と管理制御
とが必要とされるということだけは、簡単に概観
するだけでも理解されよう。システムを拡張して
更に多くのプロセツサを含むようにする場合にど
のような問題が発生するかは異なつたシステムの
夫々ごとに違つてくるため一様ではないが、しか
しながら以上のシステムはいずれも、そのような
拡張を行なえばシステム・ソフトウエアや応用プ
ログラミング、ハードウエア、或いはそれら3つ
の全てが複雑化することになる。また、若干の考
察により理解されることであるが、1組ないし2
組の論理的に受動的なオーミツク・バスが採用さ
れているために、それに固有の制約がマルチプロ
セツサ・システムの規模と能力とに対して課せら
れている。相互通信をより容易に行なえるように
するために採用可能な技法には様々なものがあ
り、その一例としては、最近発行された米国特許
公報第4240143号に示されているところの、サブ
システムを大域的資源にグループ分けするという
技法等があるが、しかしながら、非常に多くのプ
ロセツサが用いられている場合には当然のことな
がら利用できるトラフイツクの量はその限界に達
してしまい、また、遅延時間が様々な値を取ると
いうことによつて、克服し難い問題が生じてい
る。1個ないし複数個のプロセツサがロツク・ア
ウト状態ないしデツドロツク状態になるという状
況が発生することもあり、そのような状況に対処
するには、問題を解決するための更なる回路とソ
フトウエアとが必要とされる。以上から、プロセ
ツサの個数を、例えば1024個というような個数に
まで大幅に拡張することは、従来は実際的でなか
つたことが明らかである。 多くの様々な応用用途において、以上に説明し
た既存の諸技法の制約から逃れて、最新の技法を
最大源に利用することが望まれている。現在採用
可能な技法のうちで最も低コストの技法は、大量
生産されているマイクロプロセツサと、大容量の
回転デイスク型の記憶装置とを基礎とした技法で
あり、そのような記憶装置の例としては、密閉式
ケースの内部においてヘツドとデイスクとの間の
間隔を非常に小さいものとした、ウインチエス
タ・テクノロジー製の装置等がある。マルチプロ
セツサ・システムを拡張するに際しては、ソフト
ウエアが不適当な迄に複雑化することなくシステ
ムを拡張できることが要望されており、更には、
ソフトウエアがその拡張に伴なつて複雑化するこ
とが全くないようにして拡張できることすら要望
されている。また更に、機能の全体を、限定され
たないしは反復して実行される複数の処理タスク
へと動的に細分できる分散型構造をもつような特
徴を有する計算機問題を処理できる能力が要望さ
れている。略々全てのデータベース・マシンが、
そのような問題分野に属しており、また、この問
題分野には更に、ソート処理、パターンの認識及
び相関算出処理、デジタル・フイルタリング処
理、大規模マトリクスの計算処理、物理的な系の
シユミレーシヨン、等々のその他の典型的な問題
例も含まれる。これらのいずれの処理が行なわれ
る状況においても、個々に処理される複数のタス
クを比較的簡明なものとし、しかもそれらのタス
クを広範に分散することが要求され、そのため、
瞬間的タスク負荷が大きなものとなる。そのよう
な状況が、従来のマルチプロセツサ・システムに
非常な困難を伴なわせていたのであり、その理由
は、そのような状況はオーバーヘツドに費やされ
る時間とオーバーヘツドのためのソフトウエアの
量とを増大させる傾向を有していること、並び
に、システムを構成する上で実際上の支障が生じ
てくることにある。例えば受動的な共用バスが採
用されている場合には、伝播速度並びにデータ転
送所要時間が、トランザクシヨンを処理する上で
の可能処理速度に対する絶対的な障壁を成してい
る。 従つてデータベース・マシンは、マルチプロセ
ツサ・システムの改良が必要とされていることの
良い例である。大規模データベース・マシンを構
成する上での基本的な方式にはこれまでに3種類
の方式が提案されており、それらは、階層方式、
ネツトワーク方式、それにリレーシヨナル方式で
ある。これらのうちでリレーシヨナル方式のデー
タベース・マシンは、関係(リレーシヨン)を示
す表を用いることによつて、ユーザが複雑な系の
中の所与のデータに容易にアクセスできるように
するものであり、この方式のマシンは、強力な潜
在能力を有するものであると認識されている。こ
の従来技術について説明している代表的な刊行物
には、例えばIEEEコンピユータ・マガシンの
1979年3月号の第28頁に掲載されている、D.C.P.
スミス並びにJ.M.スミスによる「リレーシヨナ
ル・データベース・マシン」という表題の論文
(article entitled“Relational Data Base
Machine”,published by D.C.P. Smith and J.
M.Smith,in the March 1979 issue of IEEE
Computer magazine,p.28)、米国特許公報第
4221003号、並びに同公報中に引用れている諸論
文等がある。 また、ソーテイング・マシンは、コンピユーテ
イング・アーキテクチヤの改良が必要とされてい
ることの好い例である。ソーテイング・マシン理
論の概説は、D.E.クヌース(Knuth)著「サーチ
ング及びソーテイング」の第220〜第246頁
(“Searching and Sorting”by D.E.Knuth,
pp.220−246,published (1973) by
Addison Wesley Publishing Co.,Reading,
Massachusetts)に記載されている。この文献に
は様々なネツトワーク並びにアルゴリズムが開示
されており、それらの各々に付随する制約を理解
するためにはそれらを詳細に考察しなけらばなら
ないが、ただしそれらについて一般的に言えるこ
とは、それらはいずれも、ソーテイングという特
定の目的だけを指向した、特徴的に複雑な方式で
あるということである。更に別の例として、L.
A.モラー(L.A.Mollaar)によつて提示されてい
るものがあり、これは、「IEEE・トランザクシヨ
ン・オン・コンピユータ」、C−28巻、第6号
(1979年6月)、第406〜413頁に掲載されている
「リスト・マージング・ネツトワークの構造」と
いう表題の論文(article entitled “A
Design for a List Merging Network”,in
the IEEE Transactions on Computers,
Vol.c−28 No.6,June 1979 at pp.406−413)
に記載されている。この論文に提案されているネ
ツトワークにおいては、ネツトワークのマージ・
エレメントを外部から制御するという方式が採用
されており、また、このネツトワークは、特殊な
機能を実行するためのプログラミングを必要とし
ている。 汎用のマルチプロセツサ・システムが実行する
ことができなければならない諸機能には、種々の
方式でサブタスクを分配する機能、サブタスクを
実行しているプロセツサのステータスを確認する
機能、メツセージのマージとソートを行なう機
能、データを訂正及び変更する機能、それに、い
つ及びどのように資源が変化したかを(例えば、
あるプロセツサがいつオンラインから外れ、いつ
オンラインに復帰したかを)確認する機能等があ
る。以上のような機能を実行するために、これま
では、オーバーヘツドのための過大なソフトウエ
アとハードウエアとを用いる必要があつた。 一例を挙げるならば、例えばデータベース・マ
シン等のマルチプロセツサ・システムにおいて
は、プロセツサ間のメツセージの転送経路を指定
するに際して、特定の1つのプロセツサを転送先
として選択したり、或いは1つのクラスに属する
複数のプロセツサを選択したり、また更には、プ
ロセツサそのものを指定するのではなく、ハツシ
ユ方式等によつてプロセツサに分配されているデ
ータベースの部分を指定するという方法で、転送
先プロセツサを選択するということが、しばしば
必要となる。公知のシステムの中には前置通信シ
ーケンスを利用しているものがあり、それによつ
て送信側プロセツサと、1個或いは複数の特定の
受信側プロセツサとの間のリンケージを確立する
ようにしている。このリンケージを確立するため
にはリクエストや肯定応答を何回も反復して送出
しなければならず、また起こり得るデツドロツク
状態を克服するために、更なるハードウエア並び
にソフトウエアを使用しなければならない。前置
通信シーケンスを利用していないシステムでは、
1つのプロセツサによつて、或いはバス・コント
ローラによつて管制が行なわれており、この管制
は、送信側プロセツサが送信準備完了状態にある
こと、送信側プロセツサが受信準備完了状態にあ
ること、これらのプロセツサの間のリンケージか
らその他のプロセツサが締め出されていること、
並びに無関係な送信が行なわれていないことを、
確認するためのものである。この場合にもまた、
オーバーヘツドに依存することと、デツドロツク
を回避するために複雑とならざるを得ないことと
によつて、システムを拡張する(例えばプロセツ
サの個数を16個以上にする)につれて保守機能が
不適当な迄に膨張してしまうのである。 最近のマルチプロセツサ・システムに要求され
ている要件の更に別の例として、1個或いは複数
個のプロセツサによつて実行されているサブタス
クのステータスを、システムが確実に判定するた
めの方法に関係するものがある。基本的に要求さ
れている点は、所与のプロセツサに対してそのプ
ロセツサのステータスについての問合せを行なう
能力を備えていなければならないということであ
り、しかも、そのステータスがその問合せよつて
影響を及ぼされることがないように、且つ、応答
の内容に多義性が生じることがないように、その
問合せが行なわれなければならないということで
ある。ステータス表示のテストとセツトとを中断
のない一連の操作として行なう機能を特徴的に表
わすための用語として、現在当業界においては
「セマフオ(semaphore)」という用語が使用され
ている。このセマフオという特徴を備えているこ
とは望ましいことであるが、ただし、この特徴を
組込むに際しては、実行効率の低下やオーバーヘ
ツドの負荷の増加を伴なわないようにしなければ
ならない。このようなステータスの判定は、更に
マルチプロセツサ・システムにおいてソート/マ
ージ動作を実行する際に極めて重要なものとなる
が、それは、大きなタスクの中に含まれている複
数のサブタスクの夫々の処理結果を組み合わせる
ためには、それらのサブタスクが適切に処理完了
された後でなければ1つに組み合わせることがで
きないからである。更に別の要件として、プロセ
ツサがその「現在」ステータスを報告できなけれ
ばならないこと、そしてサブタスクの実行は、マ
ルチプロセツサの動作シーケンスに対して割込み
と変更とが繰返されても、ただ1回だけ行なわれ
るようにしなければならないということがある。
殆どの既存のシステムでは、プロセツサの実行ル
ーチンが中断可能とされているためにこの点に関
して重大な問題が生じている。即ち、容易に理解
されることであるが、複数のプロセツサが互いに
関連を有する複数のサブタスクを実行しているよ
うな場合には、それらの個々のプロセツサのレデ
イネス状態の程度(=どのような動作が可能な状
態にあるかの程度)についての問合せとそれに対
する応答とに関わる動作シーケンスが膨大なオー
バーヘツドを必要とすることがあり、しかも、そ
のための専用のオーバーヘツドは、プロセツサの
個数が増大するに従つていよいよ不適当なまでに
増大する。 (発明が解決しようとする問題点) 以上に述べたところの例を示す従来のマルチプ
ロセツサ・システムにおける典型的な短所は、い
わゆる「分散更新」の問題に関するものであり、
この問題は即ち、複数個の処理装置の各々にその
コピーが格納されている情報を更新する必要があ
るということである。ここで言う情報とは、デー
タ・レコードから成る情報の場合もあり、また、
システムの動作を制御するために用いられる情報
の場合もある。このシステムの動作の制御とは、
例えば、必要なステツプが誤つて重複実行された
り全く実行されなかつたりすることのないように
して、処理が開始され、停止され、再開され、一
時中断され、或いはロール・バツクないしロー
ル・フオワードされるようにすること等の制御の
ことである。従来のシステムにおいては、分散更
新の問題の種々の解決方法はいずれもかなりの制
約を伴なうものであつた。それらの解決法の中に
は、一度に2個のプロセツサだけを対象としてい
るに過ぎないものもある。また更に別の解決法と
して相互通信プロトコルを利用しているものも幾
つかあるが、それらのプロトコルは非常に複雑な
ため、現在でも、それらのプロトコルが適切なも
のであることを数学的厳密さをもつて証明するこ
とには非常な困難が伴なつている。 それらのプロトコルが複雑になつている原因
は、「大域的セマフオ」を構成している、中断さ
れることのない1回の動作により全てのプロセツ
サにおいて「テスト・アンド・セツト」されると
いう外面的性質を持つ制御ビツトを、備える必要
があるということにある。斯かる制御ビツトが複
数の別々のプロセツサの内部に夫々に設けられ、
しかもそれらのプロセツサの間の通信に付随する
遅延時間がまちまちであるため、不可避的に不完
全なものとなり得る通信チヤネルによつてノイズ
が発生され、また更にエラーの発生率も増大する
ことになる。従つて「中断されることのない1回
の動作」という特徴を備えることは、その1つの
動作を構成している複数の部分々々が、夫々に多
種多様で、しかも中断可能であり、そしてそれら
を同時にはアクセスすることができず、更にはそ
れらがアクセスとアクセスとの間に不調を生じが
ちである場合には、困難を伴なうものであるとい
うことが、当業者には容易に理解されよう。 (問題点を解決するための手段) 本発明は、要約すれば、チエーン状に連なつた
ノードを有するネツトワークの複数のノードにお
けるデータの流れの間にタイム・スキユーを、ア
ペツクス・ノードに接続されたマスタ・クロツ
ク・ソースと、各々のノードに備えられた、マス
タ・クロツクの周波数と略々同一の周波数の、独
立した複数のクロツクとを用いて、且つ、発生さ
れたクロツクを帰還させることにより存在する可
能性のあるエラーを訂正することによつて、ゼ
ロ・タイム・スキユーとする、システムを提供す
るものである。 (実施例) 以下、この発明の実施例を図面を参照して説明
する。 (データベース管理システム) 第1図に総括的に示されているシステムは、本
発明の概念をデータベース管理に応用したものを
具体例として示すものである。更に詳細に説明す
ると、このシステムは一つまたは複数のホスト・
コンピユータ・システム10,12と協働するよ
うに構成されており、それらのホスト・コンピユ
ータ・システムは、例えばIBM370フアミリ
ーまたはDEC−PDP−11フアミリーに属する
コンピユータ・システム等であつて、この具体例
の目的に沿うように既存の一般的なオペレーテイ
ング・システム及び応用ソフトウエアで動作する
ようになつている。IBMの用語法に拠れば、ホ
スト・コンピユータ・とデータベース・コンピユ
ータとの間の主要相互通信回線網はチヤネルと呼
ばれており、また同じものがDECの用語法に拠
れば「ユニバス」または「マスバス」或いはそれ
らの用語を多少変形した用語で呼ばれている。以
上のコンピユータ・システムのうちのいずれかが
用いられるにせよ、或いは他のメーカーのメイン
フレーム・コンピユータが用いられるにせよ、こ
のチヤネル、即ちバスは、そこへデータベース・
タスク及びサブタスクが送出されるところのオー
ミツクな転送経路、即ち論理的に受動的な転送経
路である。 第1図の具体例は、ホスト・システム10,1
2に組み合わされたバツクエンド・プロセツサ複
合体を示している。この図のシステムは、タスク
及びサブタスクをホスト・システムから受入れ、
莫大なデータベース記憶情報のうちの該当する部
分を参照し、そして適切な処理済メツセージ或い
は応答メツセージを返すというものであり、それ
らの動作は、このバツクエンド・プロセツサ複合
体の構成の如何にかかわらず、それ程高度ではな
いソフトウエアによる管理以外は、ホスト・シス
テムには要求されない方式で実行されるようにな
つている。従つて、ユーザのデータベースを新た
な方式のマルチプロセツサ・システムとして構成
することが可能とされており、このマルチプロセ
ツサ・システムにおいては、データを、容量を大
幅に拡張することのできるリレーシヨナル・デー
タベース・フアイルとして組織することができ、
しかもこの拡張は、ユーザのホスト・システムの
内部に備えられているオペレーテイング・システ
ムや既存の応用ソフトウエアを変更する必要なし
に行なうことができるようになつている。独立シ
ステム(スタンド・アローン・システム)として
構成した具体例について、以下に第20図を参照
しつつ説明する。 当業者には理解されるように、リレーシヨナ
ル・データベース管理に関する動作機能は、1つ
の動作機能の全体を、少なくとも一時的には他か
ら独立して処理可能な複数の処理タスクへと分割
することができるような動作機能である。その理
由は、リレーシヨナル・データベースでは記憶さ
れている複数のデータ・エントリがアドレス・ポ
インタによつて相互依存的に連結されていないか
らである。更に当業者には理解されるように、リ
レーシヨナル・データベース管理以外にも、限定
されたタスクないし反復実行されるタスクを動的
に小区分して独立的に処理するこという方法を用
い得るようなの多くのデータ処理環境が存在して
いる。従つて、本発明の具体例を説明するに際し
ては、特に要望が強くまた頻繁に聞かれるところ
の、データベース管理における処理の問題に関連
させて説明するが、しかしながら本明細書に開示
する新規な方法並びに構成は、それ以外にも広範
な用途を持つものである。 大規模なデータ管理システムは、複数のプロセ
ツサ(マルチプル・プロセツサ)を使用する場合
には潜在的な利点と不可避的に付随する困難との
両方を備えることになる。何億個にも及ぶ莫大な
数のエントリ(記述項)を、記憶装置の中に、容
易にかつ迅速にアクセスできる状態で保持しなけ
ればならない。一方、リレーシヨナル・データベ
ースのフオーマツトとしておけば、広範なデー
タ・エントリ及び情報の取り出し動作を同時並行
的に実行することができる。 ただし、圧倒的大多数のデータベース・システ
ムにおいては、データベースの完全性(インテグ
リテイ)を維持することが、トランザクシヨン・
データを迅速に処理することと同様に重要となつ
ている。データの完全性は、ハードウエアの故障
や停電、それにその他のシステム動作に関わる災
害の、その前後においても維持されていなければ
ならない。更には、データベース・システムは、
応用ソフトウエア・コードの中のバグ(bug)を
はじめとするユーザ側のエラーの後始末を行なう
ために、データベースを以前の既知の状態に復元
できる能力を備えていなければならない。しか
も、データが誤つて失われたり入力されたりする
ことがあつてはならず、また、イベントが新たな
データに関係するものであるのか、或いは過去の
エラーの訂正に関係するものであるのか、それと
もデータベースの一部分の校正に関係するもので
あるのかに応じて、ある特定のエントリに関係し
ているデータベース部分の全てが変更されるよう
になつていなければならない。 従つて、完全性のためには、データのロールバ
ツク及び回復の動作、誤りの検出及び修正の動
作、並びにシステムの個々の部分のステータスの
変化の検出及びその補償の動作に加えて、更に、
ある程度の冗長度もデータベースシステムには必
要である。これらの目的を達成するためには、シ
ステムが多くの異なつた特殊なモードで用いられ
なければならないこともあり得る。 さらに、最近のシステムでは、その形式が複雑
なものになりがちな任意内容の問合せ
(discretionary query)を受入れる能力と、必要
とあらば相互作用的な方式で応答する能力とを持
つていることが要求される。たとえその問合わせ
が複雑なものであつたとしても、システムにアク
セスしようとする人達がそのシステムの熟練者で
あることを要求されるようなことがあつてはなら
ない。 大規模生産の業務に関連して生じるかも知れな
い任意内容の問合せの例には、次のようなものが
ある。 A 生産管理を行なう管理者が、在庫品のうちの
1品目についてのリストを要求するのみなら
ず、生産高が前年同月比で少なくとも10%以上
低下している部品の、その月間生産高を超えて
いるような全ての部品在庫を明記した在庫品リ
ストを、要求するかもしれない。 B マーケテイング・マネージヤーが、ある特定
の勘定が90日延滞を生じているか否かを問合せ
るばかりでなく、特に不景気な地域に在住して
いる過去に120日を超過したことのある顧客に
関して、一律に90日の受取債権を要求するかも
しれない。 C 人事担当の重役が、所与の1年間に2週間を
超える病欠のあつた従業員の全てを一覧表にす
ることを求めるのみならず、直前の5年間のう
ちの2年以上について、その釣のシーズンの間
に1週間以上の病欠をした10年勤続以上の長期
勤続従業員の全てを一覧表にすることを求める
かもしれない。 以上の例のいずれにおいても、ユーザは、コン
ピユータに格納されている情報をそれまでにはな
されなかつた方法で関連付けることによつて、事
業において直面している本当の問題を見極めよう
とするわけである。その問題を生じている分野に
関してユーザが経験を積んでいれば、従つてユー
ザに直感力と想像力とがあれば、コンピユータの
訓練を受けたことのない専門家が、複雑な問合せ
を処理できるデータベースシステムを自由自在に
使用できるのである。 最近のマルチプロセツサ・システムは、これら
のように多くの、そしてしばしば互いに相反する
要求事項に対しては、念入りに作成されたオーバ
ーヘツド用ソフトウエア・システム並びに保守用
ソフトウエア・システムを用いることによつて対
応しようと努めているのであるが、それらのソフ
トウエア・システムは本質的にシステムを容易に
拡張することの妨げとなるものである。しかしな
がら、拡張性という概念は強く求められている概
念であり、その理由は、業務ないし事業が成長す
ると、それに付随して既存のデータベース管理シ
ステムを拡張して使用を継続することが望まれる
ようになり、この場合、新しいシステムとソフト
ウエアの採用を余儀なくされることは好まれない
からである。 マルチプロセツサ・アレイ 第1図について説明すると、本発明に係る典型
的な一具体例のシステムは多数のマイクロプロセ
ツサを含んでおり、それらのマイクロプロセツサ
には重要な2つの重要な種類があり、それらは本
明細書では夫々、インターフエイス・プロセツサ
(IFP)とアクセス・モジユール・プロセツサ
(AMP)と称することにする。図中には2個の
IFP14,16が示されており、それらの各々は
別々のホスト・コンピユータ10ないし12の入
出力装置に接続されている。多数のアクセス・モ
ジユール・プロセツサ18〜23もまた、このマ
ルチプロセツサ・アレイとも称すべきものの中に
含まれている。ここでの「アレイ」という用語
は、おおむね整然とした直線状或いはマトリツク
ス状に配列された、1組のプロセツサ・ユニツ
ト、集合とされたプロセツサ・ユニツト、ないし
は複数のプロセツサ・ユニツトを指す、一般的な
意味で用いられており、従つて、最近「アレイ・
プロセツサ」と呼ばれるようになつたものを意味
するのではない。図中には、このシステムの概念
を簡明化した例を示すために僅かに8個のマイク
ロプロセツサが示されているが、はるかに多くの
IFP及びAMPを用いることが可能であり、通常
は用いられることになる。 IFP14,16及びAMP18〜23は、内部
バスと周辺装置コントローラにダイレクト・メモ
リ・アクセスをするメイン・メモリとを有してい
るインテル8086型16ビツトマイクロプロセツサを
内蔵している。いろいろなメーカーの非常に多様
なマイクロプロセツサ及びマイクロプロセツサシ
ステム製品の任意のものを利用できる。この「マ
イクロプロセツサ」は、このアレイの中で使用で
きるコンピユータないしプロセツサの一形式の具
体的な一例に過ぎず、なぜならば、このシステム
の概念は、用途によつて必要とされる計算力がミ
ニコンピユータまたは大型コンピユータのもので
ある場合には、それらを使つてうまく利用できる
からである。この16ビツトのマイクロプロセツサ
は、相当のデータ処理力を備え、しかも広範な
種々の利用可能なハードウエア及びソフトウエア
のオプシヨンに置換えることができる標準的な置
換え可能な構成とされている、低コストの装置の
有利な一例である。 IFPとAMPとは互いに類似の、能動ロジツク
と制御ロジツクとびインターフエイスとを含む回
路、マイクロプロセツサ、メモリ、及び内部バス
を採用しており、それらについては夫々第1図と
第8図とを参照しつつ後に説明する。ただし、こ
れら二つのプロセツサ形式は、夫々のプロセツサ
形式に関連する周辺装置の性質、及びそれらの周
辺装置に対する制御ロジツクが異なつている。当
業者には容易に理解されるように、異なつた周辺
装置コントローラを備え異なつた機能的任務を付
与されたその他のプロセツサ形式を本発明に組入
れることも容易である。 各マイクロプロセツサには高速ランダム・アク
セス・メモリ26(第8図に関連して説明する)
が備えられており、この高速ランダム・アクセ
ス・メモリは、入出力メツセージのバツフアリン
グを行うことに加え、システムの他の部分と独特
な方法で協働することによつて、メツセージ管理
を行なう。手短に説明すると、この高速ランダ
ム・アクセス・メモリ26は、可変長の入力メツ
セージ(この入力のことを「受信」という)のた
めの循環バツフアとして働き、シーケンシヤルに
メツセージを出力するための(この出力のことを
「送信」という)メモリとして機能し、ハツシ
ユ・マツピング・モード及び他のモードで用いる
ためのテーブル索引部分を組込み、そして受信メ
ツセージ及び送信メツセージを整然と順序立てて
取扱うための制御情報を記憶する。メモリ26は
更に、マルチプロセツサモード選択のとき、並び
にデータ、ステータス、制御、及び応答の各メツ
セージのトラフイツクを取扱うときに独特の役目
を果たすように用いられる。後に詳細に説明する
ように、それらのメモリは更に、メツセージの中
のトランザクシヨン・アイデンテイテイに基づい
て局所的及び大域的なステータス判定と制御機能
とが極めて能率的な方法で処理され通信されるよ
うな構成とされている。IFP14,16及び
AMP18〜23の各々に備えられている制御ロ
ジツク28(第13図に関連しては後に説明す
る)は、当該モジユール内のデータ転送及びオー
バーヘツド機能の実行に用いられる。 IFP14,16は各々インターフエイス制御回
路30を備えており、このインターフエイス制御
回路30はIFPをそのIFPに組み合わされている
ホスト・コンピユータ10ないし12のチヤネル
またはバスに接続している。これに対してAMP
18〜23では、このインターフエイス制御回路
に相当する装置はデイスク・コントローラ32で
あり、このデイスク・コントローラ32は一般的
な構造のものであつても良く、AMP18〜23
を、それらに個別に組み合わせられた磁気デイス
ク・ドライブ38〜43と夫々にインターフエイ
スするのに用いられるものである。 磁気デイスク・ドライブ38〜43はこのデー
タベース管理システムに二次記憶装置、即ち大容
量記憶装置を提供している。本実施例において
は、それらの磁気デイスク・ドライブは例えばウ
インチエスター・テクノロジー(Winchester
technology)等の実績のある市販の製品から成
るものとし、それによつて、バイト当りコストが
極めて低廉でしかも大容量、高信頼性の記憶装置
が得られるようにしている。 これらのデイスク・ドライブ38〜43には、
リレーシヨナル・データベースが分散格納方式で
格納されており、これについては第22図に簡易
化した形で示されている。各々のプロセツサとそ
れに組み合わされたデイスク・ドライブとに対し
ては、データベースの部分集合を成す複数のレコ
ードが割当てられ、この部分集合は「一次的」部
分集合であり、またそれらの一次的部分集合は互
いに素の部分集合であると共に全体として完全な
データベースを構成するものである。従つてn個
記憶装置の各々はこのデータベースの1/nを保持 することになる。各々のプロセツサには更に、バ
ツクアツプ用のデータの部分集合が割当てられ、
それらのバツクアツツプ用部分集合も互いに素の
部分集合であり、各々がこのデータベースの1/n を構成するものである。第22図から分るよう
に、一次的フアイルの各々は、その一次的フアイ
ルが収容されているプロセツサとは異なつたプロ
セツサに収容されているバツクアツプ用フアイル
によつて複製されており、これにより、互いに異
なつた分配の仕方で分配された2つの各々が完全
なデータベースが得られている。このように、一
次的データ部分集合とバツクアツプ用データ部分
集合とが冗長性を持つて配置されていることによ
つてデータベースの完全性(インテグリテイ)の
保護がなされており、その理由は、単発の故障で
あれば、大規模な数ブロツクに亙る複数のデータ
や複数のグループを成す複数のリレーシヨンに対
して実質的な影響を及ぼすことはあり得ないから
である。 データベースの分配は、同じく第22図に示さ
れているように、種々のフアイルのハツシング動
作と関連を有しており、また、ハツシユ・マツピ
ング・データをメツセージの中に組込むこととも
関連を有している。各々のプロセツサに収容され
ているフアイルは、2進数列のグループとして示
される簡単なハツシユ・バケツト(hash
bucket)によつて指定されるようになつている。
従つて、それらのバケツトによつて指定される関
係の表(テーブル)に基づいて、リレーシヨナ
ル・データベース・システムの中のリレーシヨン
(関係)及びタプル(組:tuple)を配置すべき場
所を定めることができる。ハツシング・アルゴリ
ズムを利用して、このリレーシヨナル・データベ
ース・システムの内部において、キーからバケツ
トの割当てが求められるようになつており、その
ため、このデータベース・システムの拡張及び改
変を容易に行なうことができる。 記憶容量をどれ程の大きさに選択するかは、デ
ータベース管理上のニーズ、トランザクシヨンの
量、及びその記憶装置に組み合わされているマイ
クロプロセツサの処理力に応じて定められるもの
である。複数のデイスク・ドライブを1個の
AMPに接続したり、1台のデイスク・フアイル
装置を複数のAMPに接続することも可能である
が、そのような変更態様は通常は特殊な用途に限
られるであろう。データベースの拡張は、典型的
な一例としては、マルチプロセツサ・アレイにお
けるプロセツサの個数(及びプロセツサに組み合
わされたデイスク・ドライブの個数)を拡張する
ことによつて行なわれる。 能動ロジツク・ネツトワーク 秩序立つたメツセージ・パケツトの流れを提供
するという目的とタスクの実行を容易にするとい
う目的とは、新規な能動ロジツク・ネツトワーク
構成体50を中心とした、独特のシステム・アー
キテクチユア並びにメツセージ構造を採用するこ
とによつて達成される。この能動ロジツク・ネツ
トワーク構成体50は、複数のマイクロプロセツ
サの複数の出力に対して、階層を登りながらそれ
らの出力を収束させて行く昇順階層を成す、複数
の双方向能動ロジツク・ノード(bidirectional
active logic node)54によつて構成されてい
る。それらのノード54は、3つのポートを備え
た双方向回路から成るものであり、この双方向回
路はツリー・ネツトワーク(tree network:樹
枝状の構造を持つネツトワーク)を形成すること
ができ、その場合には、そのツリー構造のベース
の部分においてマイクロプロセツサ14,16及
び18〜23に接続される。 当業者には理解されるように、ノードは、ロジ
ツク・ソースの数が2を超えて、例えば4または
8であるときに設けるとができ、この場合、同時
にまた、ソース入力の数を多くするという問題も
組合せロジツクを更に付加するという問題に変換
してしますことができる。 図の参照を容易にするために、すべてのノード
(N)のうち、第1階層に属しているものはそれ
をプリフイツクス「I」で表わし、また第2階層
に属しているものはそれをプリフイツクス「」
で表わし、以下同様とする。同一の階層に属して
いる個々のノードは、下添字「12…」によつて
表わし、従つて、例えば第1階層の第4ノードで
あれば「IN4」と表わすことができる。ノードの
アツプ・ツリー側(即ち上流側)には「Cポー
ト」と名付けられた1つのポートが備えられてお
り、このCポート隣接する高位の階層に属してい
るノードの2つのダウン・ツリー・ポートのうち
の一方に接続されており、それらのダウン・ツリ
ー・ポートは夫々「Aポート」及び「Bポート」
と名付けられている。これら複数の階層は、最上
部ノード即ち頂点ノード54aへと収束してお
り、この頂点ノード54aは、上流へ向けられた
メツセージ(アツプ・ツリー・メツセージ)の流
れの向きを逆転して下流方向(ダウン・ツリー方
向)へ向ける、収束及び転回のための手段として
機能している。2組のツリー・ネツトワーク50
a,50bが使用されており、それら2組のネツ
トワークにおけるノードどうし、それに相互接続
部どうしは互いに並列に配置されており、それに
よつて大規模システムに望まれる冗長性を得てい
る。ノード54どうし、そしてそれらのネツトワ
ークどうしは互いに同一であるので、それらのネ
ツトワークのうちの一方のみを説明すれば充分で
ある。 説明を分り易くするために先ず第1に理解して
おいて頂きたいことは、シリアルな信号列の形態
とされている多数のメツセージ・パケツトが、多
くのマイクロプロセツサの接続によつて能動ロジ
ツク・ネツトワーク50へ同時に送出され、或い
は同時に送出することが可能とされているという
ことである。複数の能動ロジツク・ノード54は
その各々が2進数ベースで動作して2つの互いに
衝突関係にある衝突メツセージパケツトの間の優
先権の判定を行ない、この優先権の判定は、それ
らのメツセージパケツト自体のデータ内容を用い
て行なわれる。更には、1つのネツトワークの中
のすべてのノード54は1つのクロツク・ソース
56の制御下に置かれており、このクロツク・ソ
ース56は、メツセージパケツトの列を頂点ノー
ド54aへ向けて同期して進めることができるよ
うな態様で、それらのノード54に組み合わされ
ている。このようにして、シリアルな信号列の中
の、連続する各々のバイト等の増分セグメントが
次の階層へと進められ、このバイトの進行は、別
のメツセージの中のそのバイドに対応するバイト
がこのネツトワーク50内の別の経路をたどつて
同様に進行するのと同時に行なわれる。 互いに競合する信号列の間に優先権を付与する
ためのソートが、アツプ・ツリー方向へ移動して
いるメツセージパケツトに対して行なわれ、これ
によつて最終的には、頂点ノード54aから下流
へ向けて方向転換されるべき単一のメツセージ列
が選択される。以上のようにシステムが構成され
ているため最終的な優先権についての判定をメツ
セージパケツト内のある1つの特定の点において
行なう必要はなくなつており、そのため、個々の
ノード54において実行されている2つの互いに
衝突しているパケツト間の2進数ベースの判定以
外のものを必要とすることなしに、メツセージの
転送を続けて行なうことができるようになつてい
る。この結果、このシステムは空間的及び時間的
にメツセージの選択とデータの転送とを行なうよ
うになつているわけであるが、ただし、バスの支
配権を得たり、送信プロセツサあるいは受信プロ
セツサを識別したり、またはプロセツサ間のハン
ドシエイキング操作を実行する目的のために、メ
ツセージ伝送を遅延させるようなことはない。 更に、特に認識しておいて頂きたいことは、幾
つかのプロセツサが全く同一のバケツトを同時に
送信した場合には、その送信が成功したならば、
それらの送信プロセツサの全てが成功したのと同
じことになるということである。この性質は時間
とオーバーヘツドを節約するので大型マルチプロ
セツサ複合体の有効な制御を行うのに極めて有用
である。 ノード54は更に双方向方式で作動するため、
妨害を受けることのない、下流方向へのメツセー
ジ・パケツトの分配を可能にしている。所与のノ
ード54において、そのアツプ・ツリー側に設け
られたポートCで受取られた下流方向メツセージ
は、このノードのダウン・ツリー側に設けられた
ポートA及びポートBの両方へ分配され、更に、
このノードに接続された隣接する低位の階層に属
する2つのノードの両方へ転送される。コモン・
クロツク回路56の制御の下にメツセージ・パケ
ツトは同期してダウン・ツリー方向へ進められ、
そして全てのマイクロプロセツサへ同時にブロー
ドカスト(broadcast:一斉伝達)され、それに
よつて、1つまたは複数のプロセツサが、所望の
処理タスクの実行ができるようになるか、または
応答を受入れることができるようになる。 ネツトワーク50は、そのデータ転送速度が、
マイクロプロセツサのデータ転送速度と比較して
より高速であり、典型的な例としては2倍以上の
高速である。本実施例においては、ネツトワーク
50は120ナノ秒のバイト・クロツク・インタバ
ルをもつており、そのデータ転送速度はマイクロ
プロセツサの5倍の速度である。各ノード54
は、その3つのポートの各々が、そのノードに接
続されている隣接する階層に属するノードのポー
トか、或いはマイクロプロセツサに接続されてお
り、この接続は1組のデータ・ライン(本実施例
においては10本)と制御ライン(本実施例におい
て2本)とによつてなされており、2本の制御ラ
インは夫々、クロツク信号とコリジヨン信号(衝
突信号)とに割当てられている。データ・ライン
とクロツク・ラインとは対になすようにして配線
され、アツプ・ツリー方向とダウン・ツリー方向
とでは別々のラインとされている。コリジヨン・
ラインはダウン・ツリー方向にのみ伝播を行なう
ものである。以上の接続構造は全二重式のデータ
経路を形成しており、どのラインについてもその
駆動方向を「反転」するのに遅延を必要としない
ようになつている。 次に第3図に関して説明すると、10本のデー
タ・ラインは、ビツト0〜7で表わされている8
ビツト・バイトを含んでおり、それらが10本のデ
ータ・ラインのうちの8本を占めている。Cで表
わされている別の1本のラインは制御ラインであ
り、このラインは特定の方法でメツセージパケツ
トの異なる部分を明示するのに用いられる制御シ
ーケンスを搬送する。10番目のビツトは本実施例
においては奇数パリテイ用に使用されている。当
業者には理解されるように、このシステムは以上
のデータ経路中のビツトの数を増減しても良く、
そのようにビツトの数を変更しても容易に動作さ
せることができる。 バイト・シーケンス(バイトの列)は、一連の
複数のフイールドを構成するように配列され、基
本的には、コマンド・フイールド、キー・フイー
ルド、転送先選択フイールド、及びデータ・フイ
ールドに分割されている。後に更に詳細に説明す
るように、メツセージはただ1つだけのフイール
ドを用いることもあり、また検出可能な「エン
ド・オブ・メツセージ」コードをもつて終了する
ようになつている。メツセージ間に介在する「ア
イドル・フイールド(idle field:遊びフイール
ド)」は、Cライン上並びにライ0〜7上のとぎ
れのない一連の「1」によつて表わされ、いかな
るメツセージパケツトも得られない状態にあると
きには常にこれが転送されている。パリテイ・ラ
インは更に、個々のプロセツサのステータスの変
化を独特の方式で伝えるためにも使用される。 「アイドル状態(idle state:遊び状態)」はメ
ツセージとメツセージとの間に介在する状態であ
つて、メツセージ・パケツトの一部分ではない。
メツセージ・パケツトは通常、タグを含む2バイ
トのコマンド・ワードで始まり、このタグは、そ
のメツセージがデータ・メツセージであればトラ
ンザクシヨン・ナンバ(TN)の形とされてお
り、また、そのメツセージが応答メツセージであ
れば発信元プロセツサID(OPID)の形とされて
いる。トランザクシヨン・ナンバは、システムの
中において様々なレベルの意義を有するものであ
り、多くの種類の機能的通信及び制御の基礎を成
すものとして機能するものである。パケツトは、
このコマンド・ワードの後には、可変長のキー・
フイールドと固定長の転送先選択ワード
(destination selection word:DSW)とのいず
れか或いは双方を含むことができ、これらは可変
長のデータ・フイールドの先頭の部分を成すもの
である。キー・フイールドは、このキー・フイー
ルド以外の部分においてはメツセージどうしが互
いに同一であるという場合に、それらのメセージ
の間のソーテイングのための判断基準を提供する
という目的を果たすものである。DSWは、多数
の特別な機能の基礎を提供するものであり、ま
た、TNと共に特に注意するのに値するものであ
る。 このシステムは、ワード同期をとられているイ
ンターフエイスを用いて動作するようになつてお
り、パケツトを送信しようとしている全てのプロ
セツサは、コマンド・ワードの最初のバイトを互
いに同時にネツトワーク50へ送出するようにな
つている。ネツトワークは、これに続く諸フイー
ルドのデータ内容を利用して、各ノードにおいて
2進数ベースでソーテイングを行ない、このソー
テイングは、最小の数値に優先権が与えられると
いう方式で行なわれる。連続するデータ・ビツト
の中で、ビツトCを最も大きい量である見なし、
ビツト0を最も小さい量であると見なすならば、
ソーテイングの優先順位は以下のようになる。 1 ネツトワーク50へ最初に送出されたもの、 2 コマンド・コード(コマンド・ワード)が最
小値であるもの、 3 キー・フイールドが最小値であるもの、 4 キー・フイールドが最短であるもの、 5 データ・フイールド(転送先選択ワードを含
む)が最小値であるもの、、 6 データ・フイールドが最短であるもの。 ここで概観を説明しているという目的に鑑み、
特に記しておかねばならないことは、ノード54
において優先権の判定が下されたならば、コリジ
ヨン表示(=衝突表示、以下AcolまたはBcolと
称する)が、この優先権の判定において敗退した
方の送信を受取つた方の経路に返されるというこ
とである。このコリジヨン表示によつて、送信を
行なつているマイクロプロセツサは、ネツトワー
ク50がより高い優先順位の送信のために使用さ
れているため自らの送信は中止されており、従つ
て後刻再び送信を試みる必要があるということを
認識することができる。 単純化した具体例が、第2図の種々の図式に示
されている。この具体例は、ネツトワーク50が
4個の別々のマイクロプロセツサを用いたツリー
構造に配列された高速ランダム・アクセス・メモ
リと協働して動作するようにしたものであり、そ
れら4個のマイクロプロセツサは更に詳しく説明
すると、IFP14と、3個のAMP18,19及
び20とである。計10面の副図2A,2B,…2
Jは、その各々が、t=0からt=9までの連続
する10個の時刻標本のうちの1つに対応してお
り、そしてそれらの時刻の各々における、このネ
ツトワーク内のマイクロプロセツサの各々から送
出される互いに異なつた単純化された(4個の文
字からなる)シリアル・メツセージの分配の態
様、並びに、それらの種々の時刻における、ポー
トとマイクロプロセツサとの間の通信の状態を示
している。単に第2図とだけ書かれている図面
は、信号の伝送の開始前のシステムの状態を示し
ている。以上の個々の図においては、ナル状態
(null state:ゼロの状態)即ちアイドル状態で
あるためには、「□」で表される伝送が行なわれ
ていなければならないものとしている。最小値を
とるデータ内容が優先権を有するという取決めが
あるため、第2A図中のAMP19から送出され
るメツセージ・パケツト「EDDV」が、最初に
このシステムを通して伝送されるメツセージ・パ
ケツトとなる。図中の夫々のメツセージは、後に
更に詳細に説明するように、マイクロプロセツサ
の中の高速ランダム・アクセス・メモリ(H.S.
RAMと呼称することもある)の内部に保持され
ている。H.S.RAM26は、第2図には概略的に
示されている入力用領域と出力用領域とを有して
おり、パケツトは、t=0の時点においては、こ
の出力領域の中にFIFO(先入れ先出し)方式で垂
直に並べて配列されており、それによつて、転送
に際しては図中のH.S.RAM26に書込まれてい
るカーソル用矢印に指示されているようにして取
り出すことができるようになつている。この時点
においては、ネツトワーク50の中のすべての伝
送は、ナル状態即ちアイドル状態「□」を示して
いる。 これに対して、第2B図に示されているt=1
の時点においては、各々のメツセージパケツトの
先頭のバイトが互いに同時にネツトワーク50へ
送出され、このとき全てのノード54はいまだに
アイドル状態表示を返しており、また、第1階層
より上のすべての伝送状態もアイドル状態となつ
ている。第1番目のクロツク・インタバルの間に
夫々のメツセージの先頭のバイトが最下層のノー
ドIN1及びIN2の内部にセツトされ、t=2にお
いて(第2C図)競合に決着が付けられ、そして
上流方向への伝送と下流方向への伝送の双方が続
けて実行される。ノードIN1はその両方の入力ポ
ートに「E」を受取つており、そしてこれを上流
方向の次の階層へ向けて転送していて、また下流
方向へは両方の送信プロセツサへ向けて未判定の
状態を表示している。しかしながらこれと同じ階
層に属しているノードIN2は、プロセツサ19か
らの「E」とプロセツサ20からの「P」との間
の衝突に際しての優先権の判定を、「E」の方に
優先権があるものと判定しており、そして、ポー
トAをアツプ・ツリー側のポートCに結合する一
方、マイクロプロセツサ20へBcol信号を返し
ている。Bcol信号がマイクロプロセツサ20へ
返されると、IN2ノードは実際上、そのA入力ポ
ートがC出力ポートにロツクされたことになり、
それによつて、マイクロプロセツサ19からのシ
リアルな信号列が頂点ノードN1へ伝送される
ようになる。 IN1ノードにおいては最初の二つの文字はどち
らも「ED」であり、そのため第2C図に示すよ
うに、このノードではt=2の時刻には、判定を
下すことは不可能となつている。更には、3つの
マイクロプロセツサ14,15及び19から送出
された共通の先頭の文字「E」は、t=3(第2
D図)の時刻にN1頂点ノードに達し、そして
この文字「E」は、同じくそれら全てのメツセー
ジに共通する第2番目の文字「D」がこの頂点ノ
ードN1へ転送されるときに、その転送の向き
を反転されて下流方向へ向けられる。この時点で
はノードN1は未だ判定を下せない状態にある
が、しかしながらこのときには、一連のマイクロ
プロセツサ14,18及び19からの夫々の第3
番目の文字「F」,「E」及び「D」がこのノード
N1へ送信されつつある。マイクロプロセツサ
20がBcol信号を受取るということはこのプロ
セツサ20が優先権を得るための競合において敗
退したことを意味しており、それゆえこのプロセ
ツサ20はBcol信号を受取つたならばアイドル
表示「□」を送出し、またそれ以降もこのアイド
ル表示「□」だけを送出する。夫々の出力バツフ
アに書込まれている夫々のカーソル矢印は、マイ
クロプロセツサ20はその初期状態に戻されてい
るがその他のマイクロプロセツサは連続する一連
の文字を送り続けていることを示している。従つ
てt=4(第2E図)の時刻における重要な出来
事は、ノードN1のポートに関する判定が行な
われることと、それに、先頭の文字(「E」)が、
全てのラインを通つて第1階層のノード階層へ向
けて反転伝送されることである。t=5(第2F
図)の時刻には2回目の衝突が表示され、この場
合、ノードN1のBポートが競合に勝利し、
Acolが発生される。 続く数回のクロツク・タイムの間は、シリアル
な信号列の下流方向へのブロードカストが継続し
て行なわれ、t=6(第2G図)の時刻には、メ
ツセージの先頭の文字が全てのH.S.RAM26の
入力用領域の部分の中にセツトされる。ここでも
う1つ注意しておいて頂きたいことは、ノード
N1において先に行なわれた優先権の判定はこの
時点において無効とされるということであり、そ
の理由は、プロセツサ18から送出された第3番
目の文字(「E」)がマイクロプロセツサ19から
送出された第3番目の文字(「D」)との競合に敗
退したときに、より高位の階層のノードN1か
らAcolの表示がなされるためである。第2H図
中においてカーソル矢印が表わしているように、
マイクロプロセツサ14,18及び20はそれら
の初期状態に戻されており、また、勝利したマイ
クロプロセツサ19は、その全ての送信をt=4
の時刻に既に完了している。第2H図、第2I
図、及び第2J図から分るように、全ての入力バ
ツフアの中へ、次々に優先メツセージ「EDDV」
がロードされて行く。t=8(第2I図)におい
て、このメツセージは既に第1階層から流れ出て
しまつており、また、頂点ノードN1はt=7
において既にリセツトされた状態になつている
が、それは、マイクロプロセツサへ向けて最後の
下流方向文字が転送されるときには、既にアイド
ル信号だけが互いに競合しているからである。t
=9(第2J図)の時刻には、第1階層に属して
いるノードN1及びN2はリセツトされてお
り、そして、敗退したマイクロプロセツサ14,
18及び20の全ては、ネツトワークが再びアイ
ドルを指示しているときにメツセージの先頭の文
字を送出することによつて、ネツトワーク上にお
ける優先権を得るための競合を再度行なうことに
なる。実際には後に説明するように、勝利したマ
イクロプロセツサへ背定応答信号が伝送されるの
であるが、このことは、本発明を最大限に一般化
したものにとつては必須ではない。 メツセージがこのようにして全てのマイクロプ
ロセツサへブロードカストされた後には、このメ
ツセージは、必要に応じてそれらのマイクロプロ
セツサのいずれかによつて、或いはそれらの全て
によつて利用される。どれ程のマイクロプロセツ
サによつて利用されるかは、動作のモードと実行
される機能の如何に応じて異なるものであり、そ
れらの動作モードや機能には様々なバリエーシヨ
ンが存在する。 (大域的な相互通信と制御) 一群の互いに競合するメツセージのうちの1つ
のメツセージに対してネツトワークが優先権を与
える方法として上に説明した具体例は、プライマ
リ・データ・メツセージの転送に関する例であ
る。しかしながら、複雑なマルチプロセツサ・シ
ステムが、現在求められている良好な効率と多用
途に亙る汎用性とを備えるためには、その他の多
くの種類の通信とコマンドとを利用する必要があ
る。備えられていなければならない主要な機能に
は、プライマリ・データの転送に加えて、広い意
味でマルチプロセツサのモードと呼ぶことのでき
るもの、メツセージに対する背定応答、ステータ
ス表示、並びに制御信号が含まれている。以下の
章は、種々のモード並びにメツセージが、どのよ
うにして優先権付与のためのソーテイングと通信
とを行なうソーテイング・コミユニケーシヨン・
ネツトワークと協働するかについて、大域的な観
点から、即ちマルチプロセツサ・システムの観点
から説明した概観を提示するものである。更に詳
細に理解するためには、第8図及び第13図と、
それらの図についての後述の説明とを参照された
い。 一斉分配モード、即ちブロードカスト・モード
においては、メツセージは特定の1個または複数
個の受信プロセツサを明示することなく、全ての
プロセツサへ同時に送達される。このモードが用
いられるのは、典型的な例を挙げるならば、応
答、ステータス問合せ、コマンド、及び制御機能
に関してである。 受信プロセツサが明示されている必要がある場
合には、メツセージ・パケツトそれ自体の中に含
まれている転送先選択情報が、そのパケツトを局
所的に(=個々のプロセツサにおいて)受入れる
か拒絶するかを判断するための判定基準を提供す
るようになつている。例を挙げれば、受信プロセ
ツサ・モジユールの内部のインターフエイス・ロ
ジツクが、高速RAM26に記憶されているマツ
プ情報に従つて、そのパケツトのデータがそのイ
ンターフエイス・ロツジクが組込まれている特定
のプロセツサが関与する範囲に包含されるものか
否かを識別する。高速RAM内のマツプ・ビツト
を種々に設定することによつて様々な選択方式の
判定基準を容易に設定することができ、それらの
選択方式には、例えば、特定の受信プロセツサの
選択、(「ハツシング」により)格納されているデ
ータベースの一部分の選択、ロジカル・プロセ
ス・タイプ(「クラス」)の選択、等々がある。ブ
ロードカストを局所的アクセス制御(=個々のプ
ロセツサにおいて実行されるアクセス制御)と共
に用いることは、データベース管理システムにと
つては特に有益であり、それは、小さなオーバー
ヘツド用ソフトウエアしか必要とせずに、広範に
分散されたリレーシヨナル・データベースの任意
の部分や、複数の大域的に既知となつているロジ
カル・プロセスのうちの任意のものの分散された
局所的コピーに、アクセスすることができるから
である。従つてこのシステムは、メツセージの転
送先として、1つの転送先プロセツサを特定して
選択することもでき、また、1つのクラスに属す
る複数の資源を特定して選択することもできる 更にまた、ハイ・レベルのデータベース問合せ
は、しばしば、データベースの別々の部分の間の
相互参照と、所与のタスクについての一貫性を有
するレフアレンス(識別情報)とを必要とする。
メツセージに組込まれたトランザクシヨン・ナン
バ(TN)は種々の特質を持つものであるが、そ
の中でも特に、そのような大域的なトランザクシ
ヨンのアイデンテイテイ(同定情報)及びレフア
レンスを提供するものである。多数のタスクを、
互いに非同期的に動作するローカル・プロセツ
サ・モジユール(局所的プロセツサ・モジユー
ル)によつて同時並行的に処理することができる
ようになつており、また、各々のタスクないしサ
ブタスクは適当なTNを持つようにされている。
TNとDSW(転送先選択ワード)とコマンドとを
様々に組合わせて用いることによつて、実質的に
無限の融通性が達成されるようになつている。そ
の割当てと処理とが非同期的に行なわれている極
めて多数のタスクに対して、広範なソート/マー
ジ動作(sort/merge poeration)を適用するこ
とができるようになつている。TNについては、
それを割当てることと放棄することとが可能とな
つており、またマージ動作については、その開始
と停止とが可能とされている。ある種のメツセー
ジ、例えば継続メツセージ等については、その他
のメツセージの伝送に優先する優先権を持つよう
にすることができる。TNと、それにそのTNに
関するステータスを更新するローカル・プロセツ
サとを利用することにより、ただ1つの問合せだ
けで所与のTNについての大域的資源のステータ
スを判定することができるようになつている。分
散型の更新もまた一回の通信で達成できるように
なつている。本発明のシステムは、以上の全ての
機能が、ソフトウエアを拡張したりオーバーヘツ
ドの負担を著しく増大させることなく、実行され
るようにするものである。 本発明を用いるならばその結果として、従来技
術において通常見られる個数のマイクロプロセツ
サよりはるかに多くの個数のプロセツサを備えた
マルチプロセツサ・システムを、問題タスクに対
して非常に効果的に動作させることが可能にな
る。現在ではマイクロプロセツサは低価格となつ
ているため、問題領域において高性能を発揮する
システムを、それも単に「ロー」パワー(“raw”
power)が高性能であるというだけではないシス
テムを、実現することができる。 全てのメツセージのタイプと種々のサブタイプ
とを包含する一貫性のある優先順位プロトコル
が、ネツトワークに供給される種々様々なメツセ
ージの全てを包括するように定められている。応
答メツセージ、ステータス・メツセージ、並びに
制御メツセージはプライマリ・データ・メツセー
ジとは異なる形式のメツセージであるが、それら
も同じように、ネツトワークの競合/マージ動作
(contention/merge operation)を利用し、そ
してそれによつて、転送されている間に優先権の
付与を受ける。本システムにおける応答メツセー
ジは、背定応答(ACK)か、否定応答(NAK)
か、或いは、そのプロセツサがそのメツセージに
対して有意義な処理を加えるための資源を持つて
いないことを表わす表示(「非該当プロセツサ
(not applicable processor)」−NAP)である。
NAK応答は、ロツク(lock)状態、エラー状
態、ないしはオーバーラン(overrun)状態を表
示する幾つかの異なつたタイプのうちのいずれで
あつても良い。発信元プロセツサは1つだけであ
るこも複数個ある場合もあるが、発信元プロセツ
サはメツセージの送信を終了した後には以上のよ
うな応答を必要とするため、応答メツセージには
プライマリ・データ・メツセージより高位の優先
順位が与えられている。 本システムは更にSACKメツセージ(ステータ
ス背定応答メツセージ:status
acknowledgment message)を用いており、こ
のSACKメツセージは、特定のタスク即ちトラン
ザクシヨンに関する、ある1つのローカル・プロ
セツサのレデイネス状態(どのような動作が可能
であるかという状態:readiness state)を表示
するものである。このSACK応答の内容は局所的
に(=個々のプロセツサにおいて、即ちローカ
ル・プロセツサにおいて)更新されると共に、ネ
ツトワークからアクセスできる状態に保持され
る。斯かるSACK応答は、ネツトワークのマージ
動作と組合わされることによつて、所与のタスク
即ちトランザクシヨンに関する単一の問合せによ
る大域的ステータス報告が得られるようにしてい
る。ステータス応答は優先順位プロトコルに従う
ため、ある1つのトランザクシヨン・ナンバに関
する応答のうちのデータ内容が最小の応答が自動
的に優先権を得ることになり、それによつて最低
のレデイネス状態が大域的なシステム状態として
確定され、しかもこれは中断されることのない1
回の動作によつて行なわれる。更に、このような
SACK表示はある種のプライマリ・メツセージと
共に用いられることもあり、それによつて、例え
ばシステムの初期化やロツクアウト動作等の、
様々なプロトコルが設定される。 種々のメツセージのタイプに関する優先順位プ
ロトコルは先ず最初にコマンド・コードについて
定義されており、このコンマド・コードは、第1
1図に示すように各メツセージ及び応答の先頭に
立つコマンド・ワードの、その最初の6ビツトを
使用している。これによつてメツセージのタイプ
及びサブタイプに関して充分な区別付けができる
ようになつているが、ただし、より多段階の区別
付けをするようにすることも可能である。第11
図を参照すれば分るように、本実施例において
は、SACK応答は7つの異なつたステータス・レ
ベルを区別して表わす(更には優先権判定のため
の基準をも提供する)ものとされている。応答メ
ツセージの場合には、以上の6ビツトの後に、10
ビツトのOPIDの形式としたタグが続く(第3図
参照)。TNとOPIDとはいずれも更なるソーテイ
ング用判定基準としての機能を果たすことがで
き、その理由は、これらのTNとOPIDとはタグ
領域の内部において異なつたデータ内容を持つか
らである。 各プライマリ・メツセージがネツトワークを介
して伝送された後には、全てのプロセツサのイン
ターフエイス部が、たとえそれがNAPであろう
とも、ともかく応答メツセージを発生する。それ
らの応答メツセージもまたネツトワーク上で互い
に競合し、それによつて、単一または共通の勝利
した応答メツセージが全てのプロセツサへブロー
ドカストされる。敗退したメツセージパケツトは
後刻再び同時送信を試みられることになるが、こ
の再度の同時送信は非常に短い遅延の後に行なわ
れ、それによつてネツトワークが実質的に連続的
に使用されているようにしている。複数のプロセ
ツサがACK応答を送出した場合には、それらの
ACK応答はOPIDに基づいてソーテイングされる
ことになる。 本発明を用いるならばその結果として、タスク
の開始と停止と制御、並びにタスクに対する問合
せを、極めて多数の物理的プロセツサによつて、
しかも僅かなオーバーヘツドで、実行することが
可能となる。このことは、多数のプロセツサのロ
ー・パワー(raw power)を問題状態の処理の
ために効果的に使うことを可能としており、なぜ
ならば、このロー・パワーのうちシステムのコー
デイネーシヨン(coordination)及び制御に割か
れてしまう量が極めて少なくて済むからである。
コーデイネーシヨンと制御のオーバーヘツドは、
いかなる分散型処理システムにおいても、その効
率に対する根本的な制約を成すものである。 大域的な制御(即ちネツトワークの制御)を目
的としている場合には、種々のタイプの制御通信
が用いられる。従つて、「マージ停止」、「ステー
タス要求」、及び「マージ開始」の各メツセージ
や、あるタスクの割当てのためのメツセージ並び
にあるタスクの放棄のためのメツセージは、デー
タ・メツセージと同一のフオーマツトとされてお
り、それ故それらのメツセージもまた、ここでは
プライマリ・メツセージと称することにする。そ
れらの制御メツセージも同様にTNを含んでお
り、そして優先順位プロトコルの中の然るべき位
置に位置付けられている。このことについては後
に第10図及び第11図に関して説明することに
する。 「大域的セマフオ・バツフア・システム」とい
う用語を先に使用したのは、第1図に示された高
速ランダム・アクセス・メモリ26及び制御ロジ
ツク28が、マルチプロセツサのモードの選択と
ステータス表示及び制御指示の双方向通信との両
方において、重要な役割りを果たしているという
事実があるからである。この大域的セマフオ・バ
ツフア・システムはアクセスの二重性を提供する
ものであり、このアクセスの二重性とは、高速で
動作するネツトワーク構造体50とそれより低速
で動作するマイクロプロセツサとの双方が、メモ
リ26内のメツセージ、応答、制御、ないしはス
テータス表示を、遅延なしに、そしてネツトワー
クとマイクロプロセツサとの間の直接通信を必要
とすることなく、参照することができるようにし
ているということである。これを実現するため
に、制御ロジツク28が、メモリ26を差込みワ
ード・サイクル(interleaved woed cycle)で
時間多重化(タイム・マルチプレクシング)して
ネツトワーク50とマイクロプロセツサとへ接続
しており、これによつて結果的に、メモリ26を
共通してアクセスすることのできる別々のポート
が作り上げられているのと同じことになつてい
る。大域的資源、即ちネツトワーク50と複数の
マイクロプロセツサとは、トランザクシヨン・ナ
ンバを、メモリ26のうちのトランザクシヨンの
ステータスを格納するために割振られている部へ
のロケートを行なうアドレス・ロケータとして、
利用することができる。局所的なレベル(=個々
のプロセツサのレベル)において、あらゆる種類
の使用可能状態を包含する所与のトランザクシヨ
ンに関するサブタスクのステータスを、マイクロ
プロセツサの制御の下にメモリ26の内部で更新
し、そして制御ロジツク28によつてバツフア・
システムにロツクするということが行なわれる。
7種類の異なつた作動可能状態のうちの1つを用
いることによつて、エントリをメモリ26の異な
つた専用部分から好適に取出すことができるよう
になつている。ネツトワークから問合せを受取つ
たならば、プロセツサのステータスの通信が行な
われて(即ち「セマフオ」が読出されて)、それ
に対する優先権の判定がネツトワークの中で行な
われ、その際、完了の程度の最も低いレデイネス
状態が優先権を得るようになつている。以上の構
成によつて、1つの問合せに対する全てのプロセ
ツサからの迅速なハードウエア的応答が得られる
ようになつている。従つて所与のタスクに関する
分散された複数のサブタスクの全てが実行完了さ
れているか否かについて、遅滞なく、且つソフト
ウエアを用いることなく、知ることができる。更
にこのシステムでは、通信を行なうプロセツサ・
モジユールのいずれもがトランザクシヨン・ナン
バの割当てを行なえるようになつており、このト
ランザクシヨン・ナンバ割当ては、使用可能な状
態にあるトランザクシヨン・ナンバを、メツセー
ジに使用し或いは各々の大域的セマフオ・バツフ
ア・システム内において使用するために割当てる
動作である。 以上の、トランザクシヨンのアイデンテイテイ
とステータス表示とを統合した形で使用するとい
うことの好適な具体的態様には、複数のプロセツ
サの各々が所与の判定基準に関わる全てのメツセ
ージを順序正しく送出することを要求されるよう
にした、複合的マージ動作がある。もし従来技術
に係るシステムであれば、先ず各々のプロセツサ
が自身のタスクを受取つてその処理を完了し、然
る後にその処理の結果を、最終的なマージ動作を
実行するある種の「マスタ」プロセツサへ転送す
るという方式を取らねばならないであろう。従つ
てそのマスタプロセツサが、そのシステムの効率
に対する重大なネツクとなるわけである。 大域的レデイネス状態が、作用が及ぶプロセツ
サの全てが準備のできた状態にあるということを
確証したならば、夫々のプロセツサに備えられた
メモリ26における最高の優先順位を有するメツ
セージが互いに同時にネツトワークへ送出され、
そしてそれらのメツセージに対しては、前述の如
く、マージが行なわれる間に優先権の判定がなさ
れる。幾つものグループのメツセージについて
次々と再送信の試みがなされ、その結果、複数の
メツセージを当該トランザクシヨン・ナンバに関
優先順位の高いものから低いものへと順に並べ、
その最後には最低の優先順位のものがくるように
した、シリアルなメツセージ列が発生される。特
別のコマンド・メツセージに従つて、このシステ
ムは、マージ動作をその途中で停止することと途
中から再開することとが可能とされており、その
ため、互いに同時刻に実行の途中にある複数のマ
ージ動作が、このネツトワーク50を共有してい
るという状態が存在し得るようになつており、そ
れによつてこのシステムの資源を極めて有効に利
用することが可能となつている。 従つて、いかなる時刻においても、このネツト
ワーク50に接続されている動作中のプロセツサ
の全てが、様々なトランザクシヨン・ナンバに関
係した複数のメツセージに関する動作を互いに非
同期的に実行していられるようになつている。1
つのステータス問合せによつて同一のトランザク
シヨン・ナンバ即ち「現在」トランザクシヨン・
ナンバの参照が行なわれたなら、全てのプロセツ
サが、用意されているステータス・レベルのうち
の1つをもつて互いに同期して応答を行なう。例
を挙げると、「マージ開始(START MERGE)」
メツセージは、ある特定のトランザクシヨン・ナ
ンバによつて指定される大域的セマフオのテスト
(=調査)を行なわせ、もしこのテストの結果得
られた大域的状態が「準備完了」状態であれば
(即ち「送信準備完了(SEND READY)」また
は「受信準備完了(RECEIVE READY)」のい
ずれかび状態であれば)、現在トランザクシヨ
ン・ナンバ(present transaction number:
PTN)の値がこの「マージ開始」メツセージに
含まれて伝送されたTNの値に等しくセツトされ
る。(もしテストの結果得られた大域的状態が
「準備完了」状態でなかつたならば、PTNの値は
「TNO(これはトランザクシヨン・ナンバ(TN)
が「0」であるという意味である)」という値に
戻されることになる)。 更には「マージ停止(STOP MERGE)」メツ
セージも、現在トランザクシヨン・ナンバを
「0」にリセツトする。このようにして「TNO」
は、ある1つのプロセツサから他の1つのプロセ
ツサへのメツセージ(ポイント・ツー・ポイン
ト・メツセージ)のために使用される「デイフオ
ルト」値のトランザクシヨン・ナンバとして利用
されている。別の言い方をすれば、この「TNO」
によつて、「ノン・マージ(non−merge)」モー
ドの動作が指定されるのである。 この大域的相互通信システムは、メツセージの
構成については第3A、第3B、第3C、及び第
11図に示されているものを、また、高速ランダ
ム・アクセス・メモリ26の構成については第8
図及び第10図に示されているものを採用してい
る。更に詳細な説明は、後に第5、第7、第9、
及び第13図に関連させて行なうことにする。 第3A〜第3C図及び第11図から分るよう
に、応答に用いられるコマンド・コードは00か
0F(16進数)までであり、また、プライマリ・メ
ツセージに用いられるコマンド・コードは10(16
進数)からより大きな値に亙つている。従つて応
答はプライマリ・メツセージに対して優先し、第
11図に示した並べ順では最小の値が先頭にくる
ようにしてある。 高速RAMメモリ26″(第8図)の内部の1
つの専用格納領域(同図において「トランザクシ
ヨン・ナンバ」と書かれている領域)が、第12
図のワード・フオーマツト(前述の7種類のレデ
イネス状態、TN割当済状態、並びにTN非割当
状態)を格納するために使用されている。このメ
モリ26″のその他の複数の専用部分のなかには、
入力(受信メツセージ)のための循環バツフア
と、出力メツセージのための格納空間とが含まれ
ている。このメモリ26″のもう1つの別の分離
領域がメツセージ完了ベクトル領域として使用さ
れており、この領域は、送信完了した出力メツセ
ージにポインタを置くことができるようにするも
のであり、これによつて、出力メツセージの格納
空間を有効に利用できるようになつている。 以上から理解されるように、メモリ26及び制
御ロジツク28については、それらのキユーイン
グ(queuing)機能並びにデータ・バツフアリン
グ機能は確かに重要なものであるが、それらと共
に、大域的トランザクシヨンを個々のプロセツサ
に関して分散させて処理するところの多重共同動
作が独特の重要性を有するものとなつている。 (能動ロジツク・ノード) 冗長性をもつて配設されている2つのネツトワ
ークのいずれにおいても、第1図の複数の能動ロ
ジツク・ノード54は夫々が互いに同一の構成と
されているが、ただし例外として、各ネツトワー
クの頂点にある方向反転ノード54だけは、上流
側ポートを備えず、その替わりに、下流方向へ方
向反転するための単なる信号方向反転経路を備え
ている。第4図に示すように、1個のノード54
を、機能に基づいて2つのグループに大きく分割
することができる。それらの機能的グループのう
ちの一方はメツセージと並びにコリジヨン信号
(衝突番号)の伝送に関係するものであり、他方
は共通クロツク信号の発生並びに再伝送に関係す
るものである。クロツク信号に対しては、異なつ
たノードにおける夫々のクロツク信号の間にスキ
ユーが存在しないように、即ちゼロ・スキユーと
なるように、同期が取られる。以上の2つの機能
グループは互いに独立したものではなく、その理
由は、ゼロ・スキユー・クロツク回路が信号伝送
システムの重要な部分を形成しているからであ
る。ワード・クロツク(シリアルな2つのバイト
からなる)とバイト・クロツクとの両方が用いら
れる。ここで特に述べておくと、この能動ロジツ
ク・ノード54の状態を設定ないしリセツトする
際にも、また、異なつた動作モードを設定する際
にも、この能動ロジツク・ノード54を外部から
制御する必要はなく、また実際にそのような制御
が行なわれることはない。更には、夫々のノード
54が互いに同一の構造であるため、最近のIC
技術を使用してそれらのノードを大量生産するこ
とが可能であり、それによつて、信頼性を向上さ
せつつ、かなりのコストの低下を実現することが
できる。 先に言及したA,B及びCの夫々の「ポート」
は、その各々が10本の入力データ・ラインと10本
の出力データ・ラインとを備えている。例えばA
ポートでは、入力ラインはAで表わされ、出力
ラインはA0で表わされている。各々のポート毎
に、上流方向クロツク・ライン及び下流方向クロ
ツク・ラインと共に、1本の「コリジヨン」ライ
ン(即ち「衝突」ライン)が用いられている(例
えばAポートにはAcolが用いられている)。Aポ
ート及びBポートの夫々のデータ・ラインはマル
チプレクサ60に接続されており、このマルチプ
レクサ60は、互いに競合する2つのワードのう
ちの優先する方のワード、或いは(それらの競合
ワードが互いに同一の場合には)その共通ワード
を、データ信号C0として、上流側ポート(Cポ
ート)の接続されているアツプ・レジスタ62へ
スイツチングして接続する。これと同時に、より
高位の階層のノードから送出されてCポートで受
取られた下流方向データが、ダウン・レジスタ6
4内へシフト・インされ、そしてそこからシフ
ト・アウトされて、Aポート及びBポートの両方
に出力として発生する。 バイトからなるシリアルな上流方向への信号列
のうちの一方はブロツクされ得るわけであるが、
しかしながらそれによつて上流方向ないし下流方
向への余分な遅延が発生することはなく、そして
複数のワードが、ワード・クロツク並びにバイ
ト・クロツクの制御の下に、切れ目のない列を成
して、アツプ・レジスタ62及びダウン・レジス
タ64を通して進められて行くのである。 Aポート及びBポートへ同時に供給された互い
に競合するバイトどうしは、第1及び第2のパリ
テイ検出器66,67へ送られると共に比較器7
0へも送られ、この比較器70は、8個のデータ
ビツトと1個の制御ビツトとに基づいて、最小の
値のデータ内容が優先権を得るという方式で優先
権の判定を行なう。この優先権判定のためのプロ
トコルにおいては、「アイドル」信号、即ちメツ
セージが存在していないときの信号は、とぎれる
ことなく続く「1」の列とされている。パリテ
イ・エラーは、例えば過剰な雑音の存在等の典型
的な原因や、その他の、信号伝送ないし回路動作
に影響を与える何らかの要因によつて生じ得るも
のである。しかしながら本実施例のシステムにお
いては、パリテイ・エラー表示は、更に別の重要
な用途のためにも利用されている。即ち、あるマ
イクロプロセツサが動作不能状態へ移行すると、
その移行がそのたび毎にマーキングされ、このマ
ーキングは、パリテイ・ラインを含めた全ての出
力ラインが高レベルになる(即ちその値が「1」
になる)ことによつて行なわれ、従つてそれによ
つて奇数パリテイ・エラー状態が発生されるよう
になつている。このパリテイ・エラー表示は、1
つのエラーが発生したならネツトワーク内を「マ
ーカ(marker)」として伝送され、このマーカに
よつて、システムは、大域的資源に変化が生じた
ことを識別すると共にその変化がどのようなもの
かを判定するためのプロシージヤを開始すること
ができるようになつている。 1対のパリテイ検出器66,67と比較器70
とは、信号を制御回路72へ供給しており、この
制御回路72は、優先メツセージ・スイツチング
回路74を含み、また、優先権の判定がなされた
ならば比較器70の出力に応答してマルチプレク
サ60を2つの状態のうちのいずれかの状態にロ
ツクするように構成されており、更に、下流方向
へのコリジヨン信号を発生並びに伝播するように
構成されている。移行パリテイ・エラー伝播回路
76の名前のいわれは、この回路が、先に説明し
た同時に全てのラインが「1」とされるパリテ
イ・エラー状態をネツトワークの中に強制的に作
り出すものだからである。リセツト回路78はこ
のノードを初期状態に復帰させるためのものであ
り、エンド・オブ・メツセージ(end of
message:EOM)検出器80を含んでいる。 以上に説明した諸機能並びに後に説明する諸機
能が実行されるようにするためには、各々の能動
ロジツク・ノードにおいてマイクロプロセツサ・
チツプを使用してそれらの機能を実行するように
しても良いのであるが、しかしながら、第5図の
状態図と以下に記載する論理式とに従つてそれら
の機能が実行されるようにすることによつて、更
に容易に実行することが可能となる。第5図の状
態図において、状態S0はアイドル状態を表わす
と共に、互いに競合しているメツセージどうしが
同一であるために、一方のポートを他方のポート
に優先させる判定が下されていない状態をも表わ
している。S1状態及びS2状態は夫々、Aポー
トが優先されている状態及びBポートが優先され
ている状態である。従つて、Bのデータ内容が
Aのデータ内容より大きく且つAにパリテ
イ・エラーが存在していない場合、または、B
にパリテイ・エラーが存在している場合(これら
のAにパリテイ・エラーが存在していないとい
う条件と、Bにパリテイ・エラーが存在してい
るという条件とは、夫々、及びBIPEと表
記され、フリツプ・フロツプの状態によつて表わ
される)には、Aポートが優先されている。A
とBとに関して以上と逆の論理状態(論理条
件)は、この装置がS2状態へ移行すべき状態
(条件)として存在するものである。より高位の
階層のノードから、その階層において衝突が発生
した旨の表示が発せられたならば、その表示は、
下流方向信号の中に入れられてCOLNとして
送り返されてくる。この装置は、それがS0状
態、S1状態、及びS2状態のうちのいずれの状
態にあつた場合であつてもS3状態へと移行し、
そしてこのコリジヨン信号を下流方向へAcol及
びBcolとして転送する。S1状態ないしはS2
状態にあるときには、このノードは既に判定を下
しているため、同様の方式でコリジヨン信号が下
流方向へ、より低位の階層の(2つの)ノードへ
と送出されており、このとき、優先メツセージス
イツチング回路74は、状況に応じてAポート或
いはBポートにロツクされている。 リセツト回路78はEOM検出器80を含んで
おり、この検出器80を用いて、ノードのS3か
らS0へのリセツト(第5図)が行なわれる。第
1のリセツトモードは、第6図に示すようにプラ
イマリ・メツセージの中のデータ・フイールを終
結させているエンド・オブ・メツセージ(EOM)
フイールドを利用するものである。1つのグルー
プを成す複数のフリツプ・フロツプと複数のゲー
トとを用いて、次式の論理状態が作り出される。 URINC・URC・URCDLY ここで、URCはアツプ・レジスタの中の制御
ビツトを表わし、URINCはこのアツプ・レジス
タへ入力される入力信号の中の制御ビツトの値を
表わし、そしてURCDLYはアツプ・レジスタ遅
延フリツプ・フロツプ内のC値(=制御ビツトの
値)を表わしている。 第6図に示すように、制御ビツトの列の中の、
連続する2個のビツトを1組としたビツト対(ビ
ツト・ペア)が、ある種のフイールドを明示する
と共に、1つのフイールドから次のフイールドへ
の移行を明示するようにしてある。例を挙げる
と、アイドル時に用いられる「1」のみが続く制
御ビツト状態から、「0,1」のビツト・シーケ
ンス(=ビツト対)への移行は、フイールドの開
始を明示するものである。この、「0,1」のシ
ーケンスは、データ・フイールドの開始を識別す
るのに用いられる。これに続く「1,0」の制御
ビツトのストリング(列)は、内部フイールドな
いしはサブフイールドを表示しており、またエン
ド・オブ・メツセージ(EOM)は「0,0」の
制御ビツト対によつて識別される。「1,0」の
ビツト対のストリングのあとに「0,0」のビツ
ト対がくる状態は、他にはない状態であり、容易
に識別することができる。URINC信号、URC信
号、及びURCDLY信号はまとめてアンド(論理
積)をとられ、これらの各々の信号は互いにバイ
ト・クロツク1つ分づつ遅延した関係にある。そ
れらのアンドをとつた結果得られる信号の波形
は、メツセージ・パケツトが始まるまでは高レベ
ルで、この開始の時点において定レベルに転じ、
そしてこのデータ(=メツセージ・パケツト)が
続いている間、低レベルにとどまる波形である。
この波形は、EOMが発生されてからバイト・ク
ロツク2つ分が経過した後に、高レベルへ復帰す
る。この、波形URINC・URC・URCDLYが正
に転じる遷移によつて、EOMが検出される。第
5図に付記されているように、この正遷移によつ
てS1またはS2からS0への復帰動作がトリガ
されるのである。 より高位の階層のノードがリセツトされると、
それによつて状態となり、これは衝突
状態が消失したことを表わす。この論理状態は、
S3から基底状態であるS0への復帰動作を開始
させる。注意して頂きたいことは、この
N状態は、エンド・オブ・メツセージがネツトワ
ーク50の階層を次々と「走り抜けて」いくのに
つれて、下方へ、それらの階層へ伝播していくと
いうことである。以上のようにして、各々のノー
ドはメツセージの長さの長短にかかわらず自己リ
セツトできるようになつている。更に注意して頂
きたいことは、ネツトワークの初期状態の如何に
かかわらず、アイドル信号が供給されたならば全
てのノードがS0状態にリセツトされるというこ
とである。 コリジヨン信号は複数のプロセツサ・モジユー
ルにまで戻される。それらのモジユールはこのコ
リジヨン状態情報を記憶し、そしてアイドル・シ
ーケンスを送信する動作へと復帰し、このアイド
ル・シーケンスの送信は競合において勝利を得た
プロセツサが送信を続けている間中行なわれてい
る。プロセツサは、COLNからへの
遷移を検出し次第、新たな送信を開始することが
できるようにされている。更にこれに加えて、プ
ロセツサは、Nをネツトワーク内の階層を数とす
るとき、2N個のバイト・クロツクの時間に亙つ
てアイドル信号を受信し続けたならば新たな送信
を開始することができるようにされており、それ
は、このような状況もまた、前者の状況と同じ
く、先に行なわれた送信がこのネツトワーク内に
残つてはいないということを表わすものだからで
ある。これらの新たな送信を可能にするための方
式のうちの後者に依れば、初めてネツトワークに
参加するプロセツサが、トラフイツクさえ小さけ
ればネツトワークとの間でメツセージ同期状態に
入ることができ、そのためこの初参加のプロセツ
サは、このネツトワーク上の他のプロセツサとの
間の相互通信を開始する際して、別のプロセツサ
からのポーリングを持つ必要がない。 パリテイ・エラー状態は第5図の状態図の中に
に記されているが、次の論理式に従つて設定され
るものである。 PESIG=AIPE・+BIPE・
BIPEDLY このPESINGの論理状態が真であるならば、ア
ツプ・レジスタへの入力信号URINは、(URIN
0…URIN7,C,P=1…1,1,1)であ
る。上の論理式を満足するために、移行パリテ
イ・エラー伝播回路76は、AIPE用、即ちA入
力のパリテイ・エラー用フリツプ・フロツプと、
遅延フリツプ・フロツプ(AIPEDLY)とを含ん
でいる。後者のフリツプ・プロツプは、AIPEの
設定状態に従つて、それよりバイト・クロツク1
つ分遅れて状態を設定される。従つてA入力に関
して言えば、AIPE用フリツプ・プロツプがパリ
テイ・エラーによつてセツト状態とされたとき
に、PESIG値がバイト・クロツク1つ分の間ハ
イ・レベルとなり、そのため、このPESIG信号
はパリテイ・エラーの最初の表示がなされたとき
に1回だけ伝播されるわけである。複数のデー
タ・ビツト、制御ビツト、並びにパリテイ・ビツ
トの全てが「1」の値であるときにもこれと同じ
状態が生じるが、それは、大域的資源の状態につ
いての先に説明した移行が発生したときに生じる
状態である。それによつて全てのラインがハイ・
レベルに転じ、全てが「1」の状態を強制的に作
り出されて総数偶数状態(奇数パリテイ状態)が
確立され、その結果、先に説明した状態にAIPE
フリツプ・プロツプとAIPEDLYフリツプ・フロ
ツプとがセツトされてパリテイ・エラーを表示す
るようになる。以上の構成は、Bポートで受取つ
たメツセージ・パケツトがパリテイ・エラー、或
いはステータスの変化を表示するための強制的パ
リテイ表示を含んでいる場合にも、同様の方式で
動作する。 雑音の影響やその他の変動要素に起因して発生
するパリテイ・エラーは、通常は、プロセツサの
動作に影響を及ぼすことはなく、その理由は、冗
長性を有する二重のネツトワークを用いているか
らである。監視(モニタ)や保守のためには、イ
ンジケータ・ライト(=表示灯:不図示)を用い
てパリテイ・エラーの発生を表示するようにす
る。ただし、ステータスの変化を示す1回のみ伝
播するパリテイ・エラーについては、それによつ
て、その変化の重要性を評価するためのルーチン
が開始される。 第4図に示すようにこのノード54に使用され
ているクロツキング・システムは、ネツトワーク
内に用いられている階層の数にかかわらず、全て
のノード要素におけるクロツクとクロツクとの間
のスキユー(skew)がゼロとなるようにするた
めの、即ちゼロ・スキユー状態を保持するため
の、独特の手段を提供するものである。クロツク
回路86は、第1及び第2の排他的ORゲート8
8,89を含んでおり、夫々AとBで示されてい
るそれらの排他的ORゲートの出力は、加算回路
92によつて、それらの間に減算(即ち「B−
A」の演算)が行なわれるように結合されてお
り、この加算回路92の出力は、低域フイルタ9
4を通された後に、フエーズ・ロツク・ループで
ある発振器(PLO)96から送出される出力の
位相を制御している。第1の排他的ORゲート8
8への入力は、このPLO96の出力と、隣接す
るより高位の階層のノード要素から絶縁駆動回路
97を介して供給される下流方向クロツクとであ
る。このクロツクのラインには「ワード・クロツ
ク」と記されており、このワード・クロツクは、
隣接するより高位の階層から既知の遅延τの後に
得られるものであり、そしてこの同じクロツク信
号が、もう1つの絶縁駆動回路98を介して、隣
接するより高い階層のそのノードへ返されるよう
になつている。第2の排他的ORゲート89への
入力は、このワード・クロツクと、隣接するより
低位の階層からのクロツク・フイードバツクとか
ら成り、この低位の階層も同様に、このPLO9
6から信号を受取つている。 上記のワード・クロツク・ラインは、第3の排
他的ORゲート100の2つの入力へ接続されて
おり、それら両方の入力は、直接的に接続されて
いるものと、τc遅延線101を介して接続されて
いるものとである。これによつて、ワード・クロ
ツクの2倍の周波数をもち、このワード・クロツ
クに対してタイミングの合つた、バイト・クロツ
ク信号を得ている。 以上のクロツク回路86の作用は、第7図のタ
イミング・ダイアグラムを参照すればより良く理
解できよう。クロツク・アウト信号(クロツク出
力信号)は、PLO96の出力である。このクロ
ツキング・システムの最大の目的は、ネツトワー
ク内の全てのノードに関するクロツク出力信号ど
うしの間にゼロ・タイム・スキユー状態を保持す
ることにあるのであるから、当然のことながら、
それらのクロツク出力信号どうしはその公称周波
数もまた互いに同一でなければならばい。ノード
間の伝送ラインによる遅延τは、略々一定の値に
なるようにするが、この遅延の値それ自体は所定
の最大遅延時間を超えない範囲内で長い時間に設
定することも可能である。ここに開示している方
法を採用するならば、ネツトワーク並びにノード
のバイト・クロツク速度を実機システムにおいて
採用されている速度(公称120ns)とした場合に、
28フイート(8.53m)もの長さにすることが可能
である。当業者には容易に理解されるように、可
能最大個数のプロセツサ・モジユールが目いつぱ
いに実装されいるのではないネツトワークには、
更に階層を付加することによつて、この28フイー
トの整数倍の長さを容易に得ることができる。そ
の場合、それに対応して待ち時間、即ちそのネツ
トワークを通して行なわれる伝送の伝送時間は増
大する。 第7図中のクロツク・アウト信号のすぐ下の波
形によつて示されているように、隣接するより高
位の階層から得られるワード・クロツクはクロツ
ク・アウト信号と同じような波形であるが、ただ
しτだけ遅れている。このワード・クロツクが、
全てのノードに共通する根本的タイミング基準を
成すのであるが、そのようなことが可能であるの
は、個々のクロツク・アウト信号の前縁をその回
路の内部で制御することができ、そしてそれらの
前縁をワード・クロツクに先行させることによつ
て、全てのノードが同期した状態に保持されるよ
うにすることができるからである。波形A及び波
形Bを参照すると分るように、第1のORゲート
88が発生するパルスAは、ワード・クロツクの
前縁の位置で終了しており、一方、第2のORゲ
ート89が発生するパルスBは、その前縁がワー
ド・クロツクの前縁と一致している。このBパル
スの後縁は、隣接するより低位の階層のモジユー
ルからのフイードバツク・パルスの開始の位置に
定められ、このフイードバツク・パルスはτだけ
遅延しているため、Bパルスはその持続時間が一
定となつている。クロツク回路86は、パルスA
の持続時間をパルスBの持続時間と同一に保持す
るように作用するが、そのように作用する理由
は、PLO96の位相を進めて同期状態が確率さ
れるようにするにつれて、加算回路92の出力信
号(減算「B−A」を行なつた信号)がゼロへ近
付いて行くからである。実際には、破線で示され
ているように好適な位置より先行していることも
遅れていることもあるA信号の前縁に対して調節
を加えて、このA信号の前縁がワード・クロツク
の前縁より時間τだけ先行する位置にくるように
する。全てのノードにおいて、クロツク・アウト
信号の前縁がこの好適公称位置に位置するように
なれば、ワード・クロツクどうしの間にゼロ・ス
キユー状態が存在することになる。従つてネツト
ワークに接続されている夫々のプロセツサは、あ
るプロセツサから別のプロセツサまでの経路の全
長に関する制約から解放されているが、それは、
遅延が累積することが無いということと、伝播時
間に差が生じないということとに因るものであ
る。 二倍周波数のバイト・クロツクを発生させるた
めに、遅延線101によつて、遅延時間τcだけ遅
れたワード・クロツクが複製されており、この遅
延線101もゲート100へ信号を供給してい
る。従つて、第7図中のバイト・クロツクと記さ
れている波形から分るように、ワード・クロツク
の前縁と後縁の両方の位置に、持続時間τcを有す
るバイト・クロツク・パルスが発生される。この
パルスの発生は、各々のワード・クロツクのイン
タバルの間に2回づつ生じており、しかも、全て
ノードにおいて、ワード・クロツクと同期して生
じている。以上の説明においては、ノードとノー
ドとの間に伝送ラインによつて発生される遅延は
階層から階層への伝送方向がどちら方向であつて
も殆ど同一であり、そのため、事実上、このシス
テム内の全てのワード・クロツク並びにバイト・
クロツクが、互いに安定な位相関係に保たれると
いうことを、当然の前提としている。従つて局所
的に(=個々のノードの内部で)発生されるバイ
ト・クロツクは、各々のノードにおいて、メツセ
ージの2バイト・ワード(=2個のバイトからな
るワード)の、その個々のバイトのためのクロツ
キング機能を提供している。 以上の能動ロジツク・ノードは、同時に送出さ
れたメツセージ・パケツトどうしの間の競合をそ
のデータ内容に基づいて決着させるようにしてい
る場合には常に、潜在的な利点を有するものであ
る。これに対し、例えば、1981年2月17日付で発
行された米国特許第4251879号公報「デジタル通
信ネツトワークのための速度非依存型アービタ・
スイツチ(Speed Independent Arbiter Switch
for Digital Communication Nbiworks)」に示
されているものをはじめとする、大多数の公知に
システムは、時間的に最初に受信された信号がど
れであるのかを判定することを目指しており、外
部に設けた処理回路または制御回路を使用するも
のとなつている。 (プロセツサ・モジユール) 第1図の、システム全体の概略図の中に図示さ
れている個々のプロセツサは、夫々、インターフ
エイス・プロセツサ(IFP)14及び16と、ア
クセス・モジユール・プロセツサ(AMP)18
〜23の具体例として示されており、また、これ
らのプロセツサは、大まかに複数の主要要素に再
区分してある。これらのプロセツサ・モジユール
(IFP及びAMP)の構成についての更に詳細な具
体例は、第1図の機能的な大まかな再区分との間
に対応関係を有するものとなるが、ただしそれば
かりでなく、かなり多くの更なる再区分をも示す
ものとなる。本明細書で使用するところの「プロ
セツサ・モジユール」なる用語は、第8図に図示
されているアセンブリの全体を指すものであり、
このアセンブリは、以下に説明する任意選択の要
素を備えることによつて、IFP或いはAMPのい
ずれかとして機能することができるようになる。
また、「マイクロプロセツサ・システム」という
用語は、マイクロプロセツサ105を内蔵したシ
ステム103を指すものであり、ここでマイクロ
プロセツサ105は、例えば、インテル8086型
(Intel 8086)16ビツト・マイクロプロセツサ等
である。このマイクロプロセツサ105のアドレ
ス・パス並びにデータ・パスは、マイクロプロセ
ツサ・システム103の内部において、例えばメ
インRAM107等の一般的な周辺システム、並
びに周辺機器コントローラ109に接続されてい
る。この周辺機器コントローラ109は、プロセ
ツサ・モジユールがAMPでありしかも周辺機器
がデイスク・ドライブ111である場合に用い得
るものの一例として示すものである。これに対し
て、このプロセツサ・モジユールをIFPとして働
かせる場合には、破線で描いた長方形の中に示さ
れているように、このコントローラ即ちインター
フエイスを、例えばチヤネル・インターフエイス
に取り替えれば良い。そのような具体例のIFP
は、ホスト・システムのチヤネル即ちバスとの間
の通信を行なうものとなる。このマイクロプロセ
ツサ・システム103には従来の一般的なコント
ローラやインターフエイスを用いることができる
ので、それらのコントローラやインターフエイス
については更に詳細に説明する必要はない。 1つのマイクロプロセツサ毎に1台のデイス
ク・ドライブを用いることが費用と性能の両方の
面において有利であるということを示し得ること
に注目すべきである。そのような方式が有利であ
るということは、データベースに関しては一般的
に言えることであるが、ただし、ときには、1つ
のマイクロプロセツサが複数の二次記憶装置にア
クセスできるようにマイクロプロセツサを構成す
ることが有益なこともある。概略図においては、
図を簡明にするために、その他の通常用いられて
いるサブシステムが組み込まれている点について
は図示省略してある。この省略されたサブシステ
ムは例えば割込みコントローラ等であり、割込み
コントローラは、半導体を製造しているメーカー
が自社製のシステムに組み合わせて使用するため
に供給しているものである。また、本発明が提供
し得る冗長性と信頼性とを最大限に達成すること
のできる、プロセツサ・モジユールへ電源を供給
するために適切な手段を、講じることの重要性に
ついても当業者には理解されよう。 マイクロプロセツサ・システム103における
任意選択要素として示されている周辺機器コント
ローラ109とチヤネル・インターフエイスと
は、第1図中のIFPインターフエイスとデイス
ク・コントローラとに相当するものである。これ
に対して第1図の高速RAM26は、実際には、
第1のH.S.RAM26′と第2のH.S.RAM26″
とから成つており、それらの各々は、タイム・マ
ルチプレクシング(時間多重化)によつて、機能
の上からは事実上の3−ポート・デバイスとされ
ており、それらのポートのうちの1つ(図中に
「C」と記されているポート)を介してマイクロ
プロセツサのバス・システムと接続されている。
H.S.RAM26′,26″の各々は、夫々に第1な
いし第2のネツトワーク・インターフエイス12
0,120′と協働し、それによつて、夫々が第
1及び第2のネツトワーク50a及び50b(こ
れらのネツトワークは第8図には示されていな
い)と、入力(受信)ポートA及び出力(送信)
ポートBを介して通信を行なうようになつてい
る。このように互いに冗長性を有する2つのシス
テムとなつているため、第2のネツトワーク・イ
ンターフエイス120′と第2のH.S.RAM2
6″を詳細に説明するだけで良い。ネツトワー
ク・インターフエイス120,120′について
は第13図に関連して更に詳細に示され説明され
ているが、それらは、大きく再区分するならば以
下の4つの主要部分に分けることができる。 第2のネツトワーク50bからの10本の入力ラ
インを、インターフエイス・データ・バス並びに
インターフエイス・アドレス・バスを介してH.
S.RAM26″のAポートへ接続している、入力レ
ジスタ・アレイ/コントロール回路122。 第2のネツトワーク50bへの出力ラインを、
インターフエイス・データ・バス並びにインター
フエイス・アドレス・バスと、第2のH.S.RAM
26″のBポートとへ接続している、出力レジス
タ・アレイ/コントロール回路124。 インターフエイス・アドレス・バス並びにイン
ターフエイス・データ・バスと、H.S.RAM2
6″のAポート並びにBポートとへ接続された、
マイクロプロセツサ・バス・インターフエイス/
コントロール回路126。 ネツトワークからワード・クロツクを受取り、
そして、インターフエイス120′を制御するた
めの互いに同期し且つ適切な位相関係にある複数
のクロツクを発生する、クロツク発生回路12
8。 第2のネツトワーク・インターフエイス12
0′とH.S.RAM26″とは、マイクロプロセツ
サ・システム103と協働することによつて、高
速で動作するネツトワークとそれと比較してより
低速で動作するプロセツサとの間のデータ転送を
コーデイネートしており、また更に、それらの異
なつたシステム(=ネツトワーク・システムとプ
ロセツサ・システム)の間で交換されるメツセー
ジの、待ち行列を作る機能も果たしている。マイ
クロプロセツサ・バス・インターフエイス/コン
トロール回路126は、マイクロプロセツサ・シ
ステムと協働して(読出し/書込み機能:R/W
機能)を実行するためのものであると言うことが
でき、このマイクロプロセツサ・システムは(少
なくともそれがインテル8086型である場合には)
H.S.RAM26″に直接データを書込む能力と、
このH.S.RAM26″からデータを受取る能力と
を備えている。 IFPの構造とAMPの構造とは、その作用に関
しては互いに類似したものであるが、しかしなが
ら、H.S.RAM26″の内部の入力メツセージ格
納領域の大きさと出力メツセージ格納領域の大き
さとに関しては、IFPとAMPとの間に相当の差
異が存在することがある。リレーシヨナル・デー
タベース・システムにおいては、IFPは、ネツト
ワークを絶えず利用してホスト・コンピユータの
要求を満たせるようにするために、H.S.RAM2
6″の内部に、高速ネツトワークから新たなメツ
セージを受取るための、大きな入力メツセージ格
納空間を備えている。AMPについてはこれと逆
のことが言え、それは、高速ネツトワークへ送出
される処理済メツセージ・パケツトのために、よ
り多くの格納空間が使用できるようになつていな
ければならないからである。H.S.RAM26″は
マイクロプロセツサ・システム103の中のメイ
ンRAM107と協働しての動作も行ない、この
メインRAM107は各々のネツトワークのため
のメツセージ・バツフア・セクシヨンを備えてい
る。 マイクロプロセツサ・システム103のため
の、メインRAM107内部のシステム・アドレ
ス空間の割当ての態様は第9図に示されており、
それについて簡単に説明しておく。一般的な方式
に従つて、ランダム・アクセスのための記憶容量
が増加された場合に使用される拡張用の空間を残
すようにしてシステム・ランダム・アクセス機能
に割当てられたアドレスと、/0アドレス空間
と、ROM及びPROM(EPROMを含む)の機能
のために割当てられたアドレス空間とを有するも
のとなつている。更に、システム・アドレス空間
のうちの幾つかの部分が、夫々、第1及び第2の
高速RAM26′,26″から送られてくるメツセ
ージ・パケツトと、それらの高速RAMへ送り出
されるメツセージ・パケツトのために割当てられ
ている。これによつてシステムの動作に非常な融
通性が得られており、それは、マイクロプロセツ
サ105がH.S.RAM26″をアドレスすること
が可能であるようにしても、メインRAM107
の働きによつて、ソフトウエアとハードウエアと
の相互依存性に殆ど拘束されないようにできるか
らである。 再び第8図を関して説明するが、既に述べたよ
うに、2つの方向からアクセスすることができる
H.S.RAM26″は、マルチプロセツサ・モード
の制御、分散型の更新、並びにメツセージ・パケ
ツトの流れの管理における、中心的機能を実行す
るように構成されている。これらの目的や更に別
の目的を達成するために、H.S.RAM26″は複
数の異なつた内部セクタに区分されている。第8
図に示されている様々なセクタの相対的な配置の
態様は、このシステムの中の個々のプロセツサ・
モジユールの全てにおいて採用されているもので
あり、また、それらのセクタの境界を指定してい
る具体的なアドレスは、実際のあるシステムにお
いて用いられているアドレスを示すものである。
ここで注意して頂きたいことは、これらのメモ
リ・セクタの大きさとそれらの相対的な配置と
は、具体的なシステムの状況次第で大きく変り得
るものだということである。図示例では16ビツト
のメモリ・ワードが採用されている。選択マツプ
及び応答デイレクトリは、初期設定の間に一度だ
け書込めば良いような種類の専用ルツクアツプ・
テーブルであり、一方、トランザクシヨン・ナン
バ・セクシヨンの方は、動的改定自在な(=動作
している間に何度も内容を変更することができる
ようにした)ルツクアツプ・テーブルを提供して
いる。 選択マツプのメモリ・セクシヨンはロケーシヨ
ン0から始まつているが、この具体例では、基本
的にこのメモリ・セクシヨンの内部において4つ
の異なつたマツプが使用されるようになつてお
り、それらのマツプは相互に関連する方式で利用
されるものである。メツセージ・パケツトの中に
内包されている転送先選択ワード(destination
selection word:DSW)が、H.S.RAM26″内
の専用の選択マツプと共同するようにして用いら
れる。この転送先選択ワードは、計16個のビツト
から成り、そしてそのうちの12個のビツト・ポジ
シヨンを占めるマツプ・アドレスとその他の4個
のビツトを占めるマツプ選択データとを含むもの
とされている。H.S.RAMの先頭の1024個の16ビ
ツト・メモリ・ワードは、その各々が4つのマツ
プ・アドレス値を含んでいる。DSWに明示され
ているアドレス値に従つてH.S.RAMへ1回のメ
モリ・アクセスを行なうだけで、4つの全てのマ
ツプにつてのマツプ・ビツトが得られ、その一方
で、そのDSWに含まれているマツプ選択ビツト
が、どのマツプを用いるべきかを判定するように
なつている。 第15図は、以上のマツプ・セクシヨンの概念
的な構造を示しており、同図においては、各々の
マツプがあたかも物理的に分離した4096×1ビツ
トのRAMから成るものであるかのように図示さ
れている。実施する際の便宜を考慮に入れれば、
第8図に示されているように、全てのマツプ・デ
ータがH.S.RAMの単一の部分に格納されるよう
にするのが便利である。DSW管理セクシヨン1
90(第13図)が、H.S.RAMの1個の16ビツ
ト・ワードから得られる第15図の4つのマツプ
の、その各々からの4個のビツトに対するマルチ
プレクシング動作を制御している。当業者には理
解されるように、この方式の利点は、H.S.RAM
のその他の部分をアクセスするのに用いられるの
と同じ手段を用いて、プロセツサがマツプを初期
設定できるという点にある。 更には、3つの異なつたクラス(分類)の転送
先選択ワードが使用され、またそれに対応して、
選択マツプの格納ロケーシヨンが、ハツシユ選択
部分、クラス選択部分、及び転送先プロセツサ識
別情報(destination processor
indentification:DPID)選択部分に分割されて
いる。このDPIDは、当該プロセツサ105が、
そのメツセージ・パケツトの転送先として意図さ
れた特定のプロセツサであるか否かを明示するも
のである。これに対して、クラス選択部分は、当
該プロセツサが、そのメツセージ・パケツトを受
取るべき特定の処理クラスに属する複数のプロセ
ツサのうちの1つであるか否か、即ちそのプロセ
ツサ・グループのメンバーであるか否かを明示す
るものである。ハツシユ値は、リレーシヨナル・
データベース・システムの内部にデータベースが
分配される際の分配方法に応じて格納されてお
り、この分配方法は、そのシステムに採用されて
いる、特定のリレーシヨンのためのアルゴリズ
ム、並びに分散格納方式に従つたものとなる。こ
の具体例におけるハツシユ値は、プロセツサの指
定をするに際しては、そのプロセツサがそのデー
タに対して一次的な責任とバツクアツプ用の責任
とのいずれか一方をもつものとして指定すること
ができるようになつている。従つて、以上の複数
の選択マツプによつて、H.S.RAM26″を直接
アドレスして、プロセツサが転送先であるか否か
を判断する、という方法を取れるようになつてい
る。この機能は、優先権を付与されたメツセージ
を全てのネツトワーク・インターフエイス120
へブロードカストするという方法と互いに相い補
う、相補的な機能であり、そして割込みを行なう
ことなくマイクロプロセツサ105のステータス
の局所的なアクセスができるようにしている機能
でもある。 H.S.RAM26″の中の、他の部分からは独立
した1つのセクシヨンが、大域的に分散されてい
る諸活動のチエツク及び制御をするための中枢的
な手段として機能している。既に述べたように、
また第3図に示されているように、ネツトワーク
50bへ送出され、またこのネツトワーク50b
から受取る種々の処理の夫々に対しては、トラン
ザクシヨン・ナンバ(TN)が割当てられてい
る。メツセージの中にTNが内包されているの
は、各々のプロセツサ・システム103が自ら受
容したサブタスクを互いに独立して実行する際の
大域的なトランザクシヨン・アイデンテイテイ
(トランザクシヨン識別情報)とするためである。
H.S.RAM26″内の、複数の使用可能なトラン
ザクシヨン・ナンバのアドレスを格納するための
専用のブロツクが、それらのサブタスクを実行す
る際にマイクロプロセツサ・システム103によ
つて局所的に制御及び更新されるステータス・エ
ントリ(=ステータスについての既述項)を収容
している。TNは、相互通信機能が実行される際
に、局所的にもまた大域的にも、様々な異なつた
利用法で用いられる。トランザクシヨン・ナンバ
は、サブタスクを識別するため、データを呼出す
ため、コマンドを与えるため、メツセージの流れ
を制御するため、並びに大域的な処理のダイナミ
クスの種類を特定するために用いられる。トラン
ザクシヨン・ナンバは、大域的通信の実行中に割
当てたり、放棄したり、変更したりすることがで
きる。これらの特徴については以下の記載におい
て更に詳細に説明する。 TNの特徴のうち、最も複雑ではあるがおそら
く最も効果的な特徴と言えるのは、ソート・ネツ
トワーク(ソーテイング機能を有するネツトワー
ク)と協働することによつて、所与の制御処理に
関するローカル・プロセツサ(=個々のプロセツ
サ・モジユール)のステータスの分散型更新を可
能にするという、その能力である。各々の制御処
理(即ちタスクないしマルチプロセツサの滑動)
はそれ自身のTNをもつている。 レデイネス状態(プロセツサがどのような動作
をする準備が整つているかの状態)の値が、H.
S.RAM26″のトランザクシヨン・ナンバ・セク
シヨンに保持されるようになつており、このレデ
イネス状態の値は、マイクロプロセツサ・システ
ム103の制御の下に局所的に(=個々のプロセ
ツサ・モジユールの内部で)変更される。マイク
ロプロセツサ・システム103は、第10図の応
答デイレクトリの中の適当なエントリ(例えば
SACK/Busy)(アドレスは「050D(16進数)」)
を初期設定することができ、そしてそれによつて
複製されたとおりのイメージを転送することによ
つて、このSACK/Busyのステータスの、H.S.
RAM26″への入力する。あるTNアドレス(=
トランザクシヨン・ナンバに対応する格納位置)
に入力されているエントリは、H.S.RAM26″
のAポート及びBポートを介して、そしてインタ
ーフエイス120′を経由して、ネツトワーク5
0bからアクセスすることが可能となつている。
問合せは、ステータス・リクエスト(ステータス
要求)のコマンド・コード(第11図参照)と
TNとを含む「ステータス・リクエスト」メツセ
ージを用いて行われる。インターフエイス12
0′は、指定されたTNのTNアドレスに格納され
ている内容を用いて、然るべきフオーマツトで書
かれた応答メツセージを格納している応答デイレ
クトリを参照する。所与のTNに関する大域的ス
テータス問合せを第2のネツトワーク・インター
フエイス120′が受取つたならば、それによつ
て、ハードウエア的な制御しか受けていない直接
的な応答が引き出される。前置通信は不要であ
り、また、マイクロプロセツサ・システム103
が割込みを受けたり影響を及ぼされたりすること
もない。しかしながら、「ロツク(lock)」表示が
インターフエイス120′へ転送されることによ
つてステータスの設定が行なわれた場合には、マ
イクロプロセツサ・システム103は割込みを禁
止し、またインターフエイス120′が、アドレ
ス「0501(16進数)」から得られるロツク・ワード
を、後刻その排除が行なわれるまで通信し続け
る。 レデイネス状態のワード・フオーマツトは、第
12図の「ビズイ(busy:動作実行中の状態)」
からイニシヤル(initial:初期状態)」までの7
種類の状態で示され、この第12図は、実際のあ
るシステムにおいて採用されている有用な一具体
例を図示している。レデイネス状態をより多くの
種類に分類するような変更例やより少ない種類に
分類する変更例も可能であるが、同図に示されて
いる7種類の状態を用いることによつて、多くの
用途に適する広範な制御を行なうことができる。
H.S.RAM26″の中の個々のTNの状態レベル
(=個々のTNアドレスに格納されているエント
リが表わしているレデイネス状態のレベル)を継
続的に更新し、それによつて、サブタスクの利用
可能性やサブタスクの処理の進捗状況が反映され
るようにしておくことは、マイクロプロセツサ・
システムの責任とされている。このような更新
は、第12図に示されたフオーマツトを用いて、
H.S.RAM26″内のTNアドレスに書込みを行な
うことによつて、容易に実行することができる。 第10図において、各々のステータス応答(状
態応答)は、「05」から「0D」(16進数)までの
ものについては、いずれもその先頭の部分がステ
ータス背定応答コマンド・コード(status
acknowledgment command code:SACK)で
始まつている。ネツトワークへ送出されるそれら
のSACK応答は、実際には、第10図のコマン
ド・コードと、第12図のワード・フオーマツト
の数字部分と、発信元プロセツサD(OPID)
とから構成されており、これについては第11図
に示すとおりである。従つて、それらのSACK応
答は、第11図に示された総合的優先順位規約の
内部において、ひとまとまりの優先順位サブグル
ープを形成している。OPIDが優先順位規約に関
して意味を持つているわけは、たとえば、複数の
プロセツサがある1つのTNに関して働いている
が、ただしそれらのいずれもが「ビズイ」状態に
あるという場合には、ブロードカストされる最優
先メツセージの判定がこのOPIDに基づいて行な
われることになるからである。転送並びにシステ
ムのコーデイネーシヨンも、このデータ
(OPID)に基づいて行うことができる。 SACKメツセージ(=SACK応答)に対して優
先順位規約が定められていることと、複数のマイ
クロプロセツサ・システム103から同時に応答
が送出されるようにしたことと、ネツトワーク5
0bにおいて動的に(=伝送を行ないながら)優
先権の判定が行なわれるようにしたこととによつ
て、従来のシステムと比較して、所与のタスクに
関する大域的資源のステータスの判定が、大幅に
改善された方法で行なわれるようになつている。
それによつて得られる応答は、一義性を持ち、規
定にない状態を表わすことは決してなく、更に
は、ソフトウエアを必要とせずローカル・プロセ
ツサ(=個々のプロセツサ・モジユール)に時間
を費消させることもない。従つて、例えば、タス
クの実行を妨げる頻繁なステータス要求によつて
デツドロツクが生じてしまうようなことは決して
ない。様々なステータス・レベルにおいて、マル
チプロセツサの多くの任意選択動作を利用するこ
とができる。ローカル・プロセツサどうしが互い
に独立して動作を続けることができ、しかも単一
の問合せによつて、1つの、大域的な、優先権を
与えられた応答が引き出されるということは、か
つてなかつたことである。 第12図に示されている一連の状態について、
ここで幾らか詳しく説明しておけば、理解に役立
つであろう。「ビズイ」状態と「ウエイテイング
(waiting:待ち)」状態とは、割当てられた、即
ち委任されたサブタスクに関して、次第により完
成に近い段階へとこれから進んで行くことになる
状態であり、「ウエイテイング」状態の方は、更
なる通信ないしイベントを必要としている状態を
表わしている。これらの「ビズイ」並びに「ウエ
イテイング」の状態は、TNのステータスがより
高いレベルへと上昇して行き、ついにはそのTN
に関するメツセージ・パケツトを送信ないし受信
できるステータス・レベルにまで到達するとい
う、レベル上昇の例を示すものである。 一方、メツセージ・パケツトを送信ないし受信
する際には、以上とはまた別のTNの特徴であ
る、メツセージ制御におけるTNの能力が発揮さ
れることになる。マイクロプロセツサ・システム
103が送信すべきメツセージをもつようになる
と、ステータス表示は「送信準備完了(send
ready)」に変る。マイクロプロセツサ・システ
ム103は、ステータス表示を更新することに加
えて、第12図のワード・フオーマツトを用いて
「ネクスト・メツセージ・ベクタ」の値をH.S.
RAM26″へ入力する。この入力されたエント
リは、該当する出力メツセージをH.S.RAM2
6″のどのロケーシヨンから取り出せば良いかを
明示するものである。このベクタは、ある特定の
TNに関係する複数の出力メツセージを1本につ
なげる(=チエーン(chain)する)ために、ネ
ツトワーク・インターフエイス120′において
内部的に使用されるものである。 以上の機能に関連した機能が、「受信準備完了
(receive ready)」状態の間に実行される。この
「受信準備完了」状態においては、TNの格納ロ
ケーシヨン(=TNアドレス)に、マイクロプロ
セツサ・システム103から得られる入力メツセ
ージ・カウント値が保持されるようになつてお
り、この入力メツセージ・カウント値は、所与の
TNに関連して受信することができるメツセージ
の個数に関係した値である。このカウント値は、
入力メツセージが次々と転送されて来るのに合せ
てデクリメントされ、ついにはゼロになることも
ある。ゼロになつたならばそれ以上のメツセージ
を受取ることはできず、オーバラン(overrun)
状態の表示がなされることになる。以上のように
して、TNを利用してネツトワーク50bとマイ
クロプロセツサ・システム103との間の伝送の
速度を調節することができるようなつている。 局所的な(=個々のプロセツサについての)局
面について説明すると、個々のプロセツサにおい
ては、処理が実行されている間、TNは送信メツ
セージ及び受信メツセージの中に、システム全体
で通用する一定不変の基準として保持されてい
る。「TN0」状態、即ちデイフオルト状態は、メ
ツセージをノン・マージ・モードで用いるべきで
あるという事実を明示するための、局所的コマン
ドとしての機能をも果たすものである。 更に大域的な観点から説明すると、「TN0」
と、「TN>0」である種々の値とを、互いに異
なる性質のものとして区別することによつて、
TNを利用している複数のコマンド機能のうちの
1つのコマンド機能が規定されている。即ち、そ
のようにTNを区別することによつて、「マー
ジ/ノン・マージ」のいずれかを表わす特性記述
(キヤラクタライゼーシヨン)が各々のメツセー
ジ・パケツトに付随することになり、それによつ
て、複数のメツセージに対して優先権の判定とソ
ートとを行なうという、有力なシステムの動作方
式が得られているのである。同様に、「アサイン
ド(Assigned:割当てがなされている状態)」、
「アンアサインド(Unassigned:割当てがなされ
ていない状態)」、「非関与プロセツサ(Non−
Participant)」、並びに「イニシヤル」というス
テータスを用いて、大域的相互通信と制御の機能
が遂行されるようになつている。「アンアサイン
ド」状態は、それ以前にプロセツサがTNを放棄
した場合の状態であり、従つてそれは、TNを再
活性化させる新たなプライマリ・メツセージを受
取る必要がある状態である。もし状態表示が「ア
サインド」であるべきときにプロセツサが「アン
アサインド」を表示しているならば、これはTN
が適切に入力されなかつたということを示してい
るのであるから、訂正動作が実行されなければな
らない。もしTNが「アンアサインド」であるべ
きときに「アサインド」となつているならば、こ
れは、不完全な転送が行なわれているか、或いは
新たな1つのTNを求めて2つのプロセツサの間
で競合が行なわれていることの表われである場合
がある。これらの「アサインド」と「アンアサイ
ンド」とは、いずれもレデイネス状態としては扱
われず、その理由は、それらの表示がなされてい
る段階では、プロセツサは、まだそのTNに関す
る作業を始めていない状態にあるからである。 更には、「イニシヤル」状態と「非関与プロセ
ツサ」状態も、大域的資源の関係で重要である。
オン・ラインに入ろうとしているプロセツサ、即
ち、このシステムへの加入手続きを行なわなけれ
ばならないプロセツサは「イニシヤル」状態にあ
り、この態は、このプロセツサをオン・ラインへ
入れるためには管理上のステツプを踏む必要があ
ることを表わしている。所与のタスクに関して
「非関与プロセツサ」状態にあるプロセツサは、
局所的にはいかなる処理も実行する必要はない
が、しかしながらこのTNを追跡監視することに
より、このTNが不注意により不適切に使用され
ることのないようにする必要がある。 再び第10図に関して説明すると、H.S.RAM
26″の専用デイレクトリ即ち参照セクシヨンは、
以上に説明したタイプ以外にも、ハードウエア的
に応答を発生させるために使用される、優先順位
を付与された、複数のその他のタイプのメツセー
ジも含んでいる。NA(not assigned:「割当てを
受けていない」の意)というエントリは、将来の
使用に備えて準備され、使用可能な状態で保持さ
れている。3種類の異なつたタイプのNAK応答
(オーバラン、TNエラー、ロツク(Locked)の
各NAK応答)は、そのデータ内容が最も小さな
値とされており、従つて最も高い優先順位にある
が、それは、それらのNAK応答がエラー状態を
示すものだからである。複数のSACK応答の後に
ACK応答、そしてNAP応答(非該当プロセツサ
応答)が続き、それらは優先順位が低下して行く
順序で並べられている。この具体例の構成では、
2つの応答用コマンド・コードが機能を割当てら
れておらず(即ちNAとされており)、それらは
将来の使用に備えて使用可能な状態とされてい
る。以上に説明したデイレクトリは、ソフウエア
によつて初期設定することができしかもハードウ
エアによつて利用されるため、広範な種々の応答
メツセージ・テキストのうちからどのようなもの
でも、迅速に且つ柔軟性をもつて発生させること
ができる。 以上のデイレクトリの中の、その他の部分から
は独立している1つの独立部分を使用して、
TOP,GET,PUT、並びにBOTTOMの夫々の
アドレス、即ち、入力メツセージのための循環バ
ツフアの機能に関するポインタと、それに完了出
力メツセージのポインタとが、格納されている。
こらのポインタは、夫々、入力メツセージの管理
と出力メツセージの管理とにあてられているH.
S.RAM26″の夫々の専用セクタと協働して機能
を果たすようになつている。入力メツセージのた
めには循環バツフア方式が用いられており、この
場合、H.S.RAM26″のデイレクトリ・セクシ
ヨンに格納されている「TOP」が、入力メツセ
ージのための上限アドレス位置を指定する可変ア
ドレスとなつている。同じデイレクトリ・セクシ
ヨンに格納されているPUTアドレスは、次に受
信するメツセージを回路がどこに格納すべきかと
いうアドレス位置を指定するものである。GET
アドレスは、ソフトウエアがバツフアの空白化を
行なつているアドレス位置をハードウエアで認識
できるようにするために、ソフトウエアによつて
設定され且つ更新され続けるものである。 入力メツセージ・バツフアの管理は、PUTを
バツフアの下限(bottom)のアドレスにセツト
し、そしてGETアドレスがTOPに等しくなつて
いる状態から開始するという方法で、行なわれ
る。ソフトウエアによつて定められている動作上
のルールは、GETがPUTと等しい値にセツトさ
れてはならないということであり、もしそのよう
にセツトされたならば、不定状態(アンビギユア
ス・コンデイシヨン)が生じてしまうことにな
る。入力メツセージがH.S.RAM26″の中の入
力メツセージ・バツフアへ入力されると、メツセ
ージそれ自体の中に含まれているメツセージ長さ
値が、次に入力して来るメツセージの始点を決定
し、続いて、デイレクトリに格納されている
PUTアドレスに対し、次に入力して来るメツセ
ージを受入れるべきバツフア内の格納ロケーシヨ
ンを表示させるための変更が加えられる。以上の
ようにしたため、マイクロプロセツサ・システム
103は、自らの作業能力が許すときに、入力メ
ツセージの取り出しを行なうことができるように
なつている。 H.S.RAM26″内の出力メツセージ格納空間
に格納されているデータは、他の部分からは独立
した循環バツフアの内部に保持されている出力メ
ツセージ完了ベクトル、並びにH.S.RAM26″
内のネクスト・メツセージ・ベクタと共に用いら
れる。個々のメツセージの編集(アセンブル)並
びに格納は、任意のロケーシヨンにおいて行なう
ことができ、また、互いに関連する複数のメツセ
ージについては、それらをネツトワーク上へ送出
するためのつなぎ合わせ(チエーン)を行なうこ
とができるようになつている。H.S.RAM26″
のデイレクトリ・セクシヨンでは、TOP,
BOTTOM,PUT、並びにGETの夫々のアドレ
スが既に説明したようにして入力され且つ更新さ
れており、それによつて、出力メツセージ完了バ
ツフア内のロケーションについての動的な現在指
標が維持されている。メツセージ完了ベクタは、
出力メツセージ格納空間内に格納されているメツ
セージであつてしかも既に適切に転送がなされた
ことが受信した応答によつて示されているメツセ
ージを差し示すための、指標となるアドレスを構
成している。後に説明するように、このシステム
は、マイクロプロセツサ・システム103が出力
メツセージの入力を容易に行なえるようにしてい
る一方で、このマイクロプロセツサ・システム1
03が複雑な連結ベクタ・シーケンスを整然とし
た方式で扱えるようにしており、それによつて、
出力メツセージ格納空間が効率的に使用され、メ
ツセージ・チエーンの転送ができるようにしてい
る。 応答に関連して先に説明した第11図のプロト
コルは、応答に続けてプライマリ・メツセージに
ついても規定されている。複数種類の応答メツセ
ージが互いに連続して並べられており、16進数の
コマンド・コードが昇順に図示されている。プラ
イマリ・メツセージのグループの中では、マージ
停止メツセージ(このメツセージは、基本的制御
メツセージであるノン・マージ制御メツセージで
もある)が、そのデータ内容が最小値となつてお
り、従つて最高の優先順位にある。このメツセー
ジは、ネツトワーク内並びにプロセツサ・モジユ
ールにおけるマージ・モードを終了させる、制御
通信を構成している。 極めて多くの異なつたタイプのプライマリ・デ
ータ・メツセージを昇順の優先順位を定めて利用
することができ、またそれらには、応用上の要求
事項とシステム的な要求事項とに基づいて、優先
順位に関する分類を加えることができる。先に述
べたように、他のメツセージの後に続けられる継
続メツセージに対しては、それに関する先行メツ
セージ・パケツトからの連続性を維持できるよう
にするために、高い優先順位をもたせるようにす
ることができる。 4種類のプライマリ・メツセージから成る、第
11図中の最下段のグループは、優先順位の高い
方から低い方へ向かつて、ステータス応答を得る
ことを必要とする唯一のタイプのステータス・メ
ツセージであるステータス・リクエスト・メツセ
ージ、「TN放棄」と「TN割当て」とを要求する
夫々の制御メツセージ、そして、更に優先順位の
低い「マージ開始」制御メツセージを含んでい
る。 以上の構成は、後に説明する更に詳細な具体例
から明らかなように、多くの用途に用い得る動作
を可能とするものである。プロセツサ・モジユー
ルは、現在トランザクシヨン・ナンバ(Present
transaction number:PTN)に基づいて動作す
るようになつており、この場合、そのPTNが外
部的に、ネツトワークからの命令によつて指定さ
れたものであろうとも、また、連続した動作を実
行している間に内部的に発生されたものであろう
とも、同じことである。マージ動作が実行されて
いるときには、プロセツサ・モジユールは、大域
的レフアレンス、即ちトランザクシヨン、アイデ
ンテイテイ(=トランザクシヨン識別するための
情報)を利用してその動作を実行しているのであ
り、このトランザクシヨン・アイデンテイテイは
TNによつて定められている。マージ動作の開
始、停止、及び再開は、簡単なメツセージの変更
だけを利用して行なわれる。サブタスクが、メツ
セージをマージすることを必要としていない場合
や、他のメツセージとの間に特に関係をもつてい
ないメツセージ・パケツトが発生されたような場
合には、それらのメツセージは「TN0」に対し
て出力するための待ち行列(キユー)を成すよう
に並べられ、そして、現在トランザクシヨン・ナ
ンバによつて定められた、基本状態即ちデイフオ
ルト状態(0である)が真状態を維持している間
に転送が行なわれる。この「TN0」状態は、マ
ージ・モードが用いられていないときには、メツ
セージを転送のための待ち行列を成すように並べ
ることを可能にしている。 (ネツトワーク・インターフエイス・システム) これより第13図に関して説明するが、同図
は、本発明のシステムに用いるのに適したインタ
ーフエイス回路の一具体例を更に詳細に示すもの
である。この「ネツトワーク・インターフエイ
ス・システム」の章の説明には本発明を理解する
上では必ずしも必要ではない多数の詳細な特徴が
含まれているが、それらの特徴は、実機のシステ
ムには組み込まれているものであり、それゆえ本
発明の要旨に対する種々の具体例の位置付けを明
確にするために説明中に含めることにした。具体
的なゲーテイングのための構成並びに詳細構造で
あつて、本発明の主題ではなく、しかも周知の手
段に関するものについては、多種多様な代替構成
を採用することも可能であるので、説明を省略な
いし簡略化することにした。第13図は、第8図
に示されている第2のネツトワーク・インターフ
エイス120′並びにH.S.RAM26″の詳細図で
ある。2つのネツトワークのための夫々のインタ
ーフエイス120,120′は互いに同様の方式
で機能しており、それゆえ、一方のみについて説
明すれば十分である。 第13A図において、同図のインターフエイス
に接続されている方の能動ロジツク・ネツトワー
ク50からの入力は、マルチプレクサ142と公
知のパリテイ・チエツク回路144とを介して、
ネツトワーク、メツセージ管理回路140へ供給
されている。マルチプレクサ142は更にマイク
ロプロセツサ・システムのデータ・バスに接続さ
れており、これによつて、このデータ・バスを介
してメツセージ管理回路140へアクセスするこ
とが可能となつている。この特徴により、マイク
ロプロセツサ・システムが、インターフエイスを
ステツプ・バイ・ステツプ・テスト・モードで動
作させることが可能となつており、そして、この
インターフエイスがネツトワークとあたかもオ
ン・ライン状態で接続されているかのように、デ
ータの転送が行なわれるようになつている。ネツ
トワークからの入力は受信用ネツトワーク・デー
タ・レジスタ146へ供給されるが、その際、直
接このレジスタ146の第1のセクシヨンへ入力
されるバイト・データと、受信用バイト・バツフ
ア148を介してこのレジスタ146へ入力され
るバイト・データとがあり、受信用バイト・バツ
フア148は、第1のセクシヨンへのバイト・デ
ータの入力が行なわれた後に、自らのバイト・デ
ータをこのレジスタ146の別のセクシヨンへ入
力する。これによつて、受信した各々のワードを
構成している2つのバイトの両方が、受信用ネツ
トワーク・データ・レジスタ146に入力され、
そしてそこに、利用可能な状態で保持されること
になる。 これから伝送される出力メツセージは、送信用
ネツトワーク・データ・レジスタ150へ入力さ
れ、また、通常のパリテイ発生回路132の内部
においてパリテイ・ビツトが付加される。メツセ
ージは、ネツトワーク・メツセージ管理回路14
0からそれに接続されているネツトワークへ送出
されるか、或いは、(テスト・モードが用いられ
る場合には)マイクロプロセツサ・システム・デ
ータ・バスへ送出される。このインターフエイス
の内部におけるメツセージ管理を行う目的で、ラ
ンダム・アクセス・メモリ168に格納されてい
る送信メツセージのフオーマツトは、メツセー
ジ・データと共に識別用データをも含むものとさ
れている。第21A図から分るように、コマン
ド、タグ、キー、並びにDSWのいずれをも、こ
れから伝送されるプライマリ・データに組合わせ
ておくことができる。 第13A図に示されている構成は、本質的に第
8図に示されている構成と同一であるが、ただし
第8図では、インターフエイス・データ・バス並
びにインターフエイス・アドレス・バスが、H.
S.RAM26″の入力ポートAと入力ポートBとに
別々に接続され、また、マイクロプロセツサ・シ
ステム103のアドレス・バス並びにデータ・バ
スが、独立したCポートに接続されているように
図示されている。しかしながら実際には、第13
A図から分るように、このような互いに独立した
2方向からのアクセスは、このインターフエイス
の内部おいて行なわれるH.S.RAM26″におけ
る入力アドレス機能及び出力アドレス機能の時分
割マルチプレクシングによつて達成されている。
マイクロプロセツサのデータ・バスとアドレス・
バスとは、夫々ゲート145と149とを介して
インターフエイスの夫々のバスに接続されてお
り、それによつてマイクロプロセツサが非同期的
に、それ自身の内部クロツクに基づいて動作でき
るようになつている。 採用されているタイミング体系は、クロツク・
パルスと、位相制御波形と、位相細分波形とに基
づいたものとなつており、この位相細分波形は、
インターフエイス・クロツク回路156(第13
図)によつて発生され、また第14図に示すタイ
ミング関係をもつものとなつている(第14図に
ついても後に説明する)。インターフエイス・ク
ロツク回路156は最も近くのノードからネツト
ワーク・ワード・クロツクを受取つており、また
フエイズ・ロツク・クロツク・ソース157は、
第4図に関連して先に説明した如きゼロ・タイ
ム・スキユーを維持するための手段を含んでい
る。240nsのネツトワーク内の公称ネツトワー
ク・ワード・クロツク速度が、インターフエイ
ス・クロツク回路156の内部において時間的に
細分され、これが行なわれるのは、フエイズ・ロ
ツクされた状態に保持されている倍周器(詳細に
は示さない)が、持続時間が40nsの基準周期を定
める高速クロツク(第14図にPLCLKとして示
されている)を提供しているからである。基本的
なワード周期を定めているのは、全周期が240ns
で半サイクルごとに反転する、図中にCLKSRA
と記されている周期信号である。このCLKSRA
と同一の周波数と持続時間とをもつ信号が他に2
つ、PLCLKに基づいて分周器158によつて発
生されており、これらの信号は夫々がCLKSRA
からPLCLKの1サイクル分及び2サイクル分だ
け遅延した時刻に発生されており、また、夫々が
CLKSRB及びCLKSRCという名称を与えられて
いる。 以上の諸々の信号に基づいて、制御ロジツク1
59が、「IO GATE」、「RECV GATE」、並び
に「SEND GATE」と称されるタイミング波形
(以下、ゲート信号ともいう)を作り出しており、
これらのタイミング波形は、ワード周期の互いに
連続する3等分されたインタバルの夫々を表示す
るものである。これらのインタバルには、「IOフ
エイズ」、「受信フエイズ」、「送信フエイズ」とい
う該当する名称がつけられている。上記ゲート信
号によつて定められたこれらのフエイズは、その
各々が更に、「IO CLK」信号、「RECV CLK」
信号、並びに「SEND CLK」信号によつて、2
つの等分された半インタバルへと細分されてお
り、これらの細分信号は、各々のフエイズの後半
部分を定めている。バイト・クロツキング機能
は、「BYTE CTRL」信号と「BYTE CLK」信
号とによつて管理されている。 以上のIOフエイズ、RECVフエイズ(受信フ
エイズ)、及びSENDフエイズ(送信フエイズ)
は、ランダム・アクセス・メモリ168とマイク
ロプロセツサ・システムのバスが、時分割多重化
(タイム・マルチプレクシング)された動作を行
なえるようにするための、基礎を提供するもので
ある。インターフエイスは、高速ネツトワークと
の間で、1回のワード周期あたり1個のワードし
か受信ないし送信することができず、しかも明ら
かに、受信と送信とは決して同時には行なわれな
い。マイクロプロセツサ・システムとの間で行な
われる転送の転送速度は、このネツトワークとの
間の転送速度よりかなり低くなつているが、たと
え両者が等しい速度であつたとしても、インター
フエイス回路の能力にとつて過大な負担となるこ
とはない。このインターフエイスのシステムの構
成は、ランダム・アクセス・メモリ168へのダ
イレクト・アクセスによつて大部分の動作が実行
されるようになつており、従つて内部的な処理つ
まりソフトウエアが、殆ど必要とされないように
なつている。従つて、このシステムが各々のワー
ド周期の中の連続する複数のフエイズを周期的に
経過していくにつれて、複数のワードが次々に、
しかも互いに衝突することなく、それらのワード
のための所定の複数の信号経路に沿つて進められ
て行き、それによつて種々の機能が実行されるよ
うになつている。例を挙げれば、バスへのメツセ
ージの送出が、マイクロプロセツサからのメツセ
ージの受取りの合間に行なわれるようにし、しか
もそれらの各々がメモリ168の異なつた部分を
用いて交互に行なわれるようにすることができ
る。 マイクロプロセツサ・システムのデータ・バス
とネツトワーク・インターフエイスとの間の相互
通信は、IO管理回路160(このIOのことを読
出し/書込み(Read/Write)と言うこともあ
る)の中で行なわれる。マイクロプロセツサ・シ
ステムから送られてくるワードをゲーテイングす
るための書込みゲート162と、マイクロプロセ
ツサ・システムへワードを送り出すためのシステ
ム読出しレジスタ164とによつて、マイクロプ
ロセツサのバスと、ネツトワーク・インターフエ
イスへのバス・インターフエイスとの間が接続さ
れている。 更にメモリ・アドレス・レジスタ165とパリ
テイ発生器/チエツク回路166とが、ネツトワ
ーク・インターフエイス・サブシステムに組込ま
れている。この具体例では、前記高速メモリ(=
H.S.RAM)は4Kワード×17ビツトのランダム・
アクセス・メモリ168から成り、このメモリの
内部的な再区分のしかたと、このメモリの内部に
設けられている複数の専用メモリ領域部分の使用
法とについては、既に説明したとおりである。こ
のランダム・アクセス・メモリの大きさ(=容
量)は、具体的な個々の用途における必要に合わ
せて、縮小したり拡張したりすることが容易にで
きる。 受信メツセージ・バツフア管理回路170が、
マイクロプロセツサのデータ・バスに接続されて
おり、更にはメモリ168のアドレス・バスにも
接続されている。「受信メツセージ(receivved
messages)」という用語は、ネツトワークから入
力してきて循環バツフアの中の「PUT」という
格納ロケーシヨンへ入力されるメツセージを指し
示すためにに用いられることもあり、また、この
入力の後に、そのようにして循環バツフア内へ入
力されたメツセージをマイクロプロセツサへ転送
するが、その転送のことを指し示すために用いら
れることもある。このマイクロプロセツサへの転
送が行なわれるときには、「GET」の値が、マイ
クロプロセツサ・システムへ転送すべき受信メツ
セージの取出しを実行するに際しシステムがどの
ロケーシヨンから連続した取出し動作を行なうべ
きかを指定する。ランダム・アクセス・メモリ1
68のアクセスに用いられる複数のアドレス値
が、GETレジスタ172、TOPレジスタ17
4、PUTカウンタ175、及びBOTTMレジス
タ176に夫々入力されている。PUTカウンタ
175は、BOTTOMレジスタ176によつて指
定されている初期位置から1づつインクリメント
されることによつて更新される。TOPレジスタ
174は、もう一方の側の境界の指標を与えるも
のである。TOPの値とBOTTMの値とはいずれ
も、ソフトウエア制御によつて操作することがで
き、それによつて、受信メツセージ・バツフアの
大きさとH.S.RAMにおける絶対格納ロケーシヨ
ンとの両方を変更することが可能となつている。
PUTレジスタの内容がTOPレジスタの内容に等
しくなつたならばPUTレジスタはリセツトされ
てBOTTOMレジスタの内容と等しくされ、それ
によつて、このバツフアを循環バツフアとして利
用できるようになつている。以上のGETレジス
タ、TOPレジスタ、BOTTOMレジスタ、並び
にPUTカウンタは、入力メツセージ用循環バツ
フアと出力メツセージ完了循環バツフアとの両方
を管理するのに用いられている。 GETレジスタ172への入力はソフトウエア
の制御下において行なわれるが、それは、バツフ
ア中においてそのとき取扱われているメツセージ
の長さに応じて、次のアドレス(ネクスト・アド
レス)が決定されるからである。GETレジスタ
172・PUTカウンタ175、並びにTOPレジ
スタ174の夫々の出力に接続された比較回路1
78と179は、オーバラン状態を検出及び表示
するために使用されている。オーバラン状態は
GETの値とPUTの値とが等しい値に設定された
場合や、GETの値をTOPの値より大きな値に設
定しようとする試みがなされた場合に生じる状態
である。これらのいずれの場合にも、オーバラン
のステータス表示が送出されることになり、しか
もこのステータス表示はオーバラン状態が訂正さ
れるまで送出され続けることになる。 「受信メツセージ」循環バツフアを構成し動作
させる際の、以上のような連続的な方式は、この
システムに特に適した方式である。衝突(コンフ
リクト)を回避するための相互チエツクを可能と
しておくことによつて、「PUT」をハードウエア
で管理し、且つ「GET」を動的に管理すること
ができるようになつている。しかしながら、これ
以外の方式のバツフア・システムを採用すること
も可能である。ただしその場合には、おそらく回
路並びにソフトウエアに関して、ある程度の余分
な負担が加わることになろう。ここで第21B図
について触れておくと、メモリ168の内部に格
納されている受信メツセージのフオーマツトは更
に、マツプ結果、データ長さ、並びにキー長さの
形の識別データを含んでおり、それらのデータが
どのようにして得られるかについては後に説明す
る。 このインターフエイスの内部のDSW管理セク
シヨン190は、転送先選択ワード・レジスタ1
92を含んでおり、この転送先選択ワード・レジ
スタ192へは、これからアドレス・バスへ転送
される転送先選択ワード(DSW)が入力される。
DSWを使用してメモリ168の専用DSWセクシ
ヨンをアドレスすると、このメモリ168からデ
ータ・バス上へ送出された出力がデータを返し、
このデータに基づいてDSW管理セクシヨン19
0が、そのメツセージパケツトが当該プロセツサ
を転送先としたものであるか否かを判定すること
ができるようになつている。第13A図から分る
ように、転送先選択ワードは、2ビツトのマツ
プ・ニブル(nybl)アドレスと、10ビツトのマツ
プ・ワード・アドレスと、マツプ選択のための4
ビツトとから成つている。これらのうちの「ニブ
ル」アドレスは、メモリ168からのワードのサ
ブセクシヨンを記述するのに用いられている。マ
ツプ選択のための4ビツトは、マツプ結果比較器
194へ供給され、この比較器194はマルチプ
レクサ196を介してメモリ168から関連した
マツプ・データを受取つている。マチプレクサ1
96は16ビツトのデータを受取つており、この16
個のビツトは、DSWの中に含まれているマツ
プ・ワード・アドレスの10ビツトによつて指定さ
れるアドレスに格納されている4つの異なつたマ
ツプ・データ・ニブルを表わしている。メモリ1
68は、ここで行なわれる比較が容易なように、
その専用マツプ・セクシヨンが特に比較に適した
形態に構成されている。マルチプレクサ196へ
その制御のために供給されている、DSWの中の
残りの2ビツトによつて、4つのマツプ・ニブル
のうちの該当する1つのマツプ・ニブルが選択さ
れる。比較が行なわれ、その比較の結果得られた
マツプ・コードが、マツプ結果レジスタ197へ
入力され、そしてメモリ168へ入力されている
入力メツセージの中へ挿入される。もし、この比
較の結果、選択されたマツプのいずれの中にも
「1」のビツトが存在していないことが判明した
場合には、「拒絶」信号が発生されて、当該プロ
セツサ・モジユールはそのメツセージ・パケツト
を受取るものとして意図されてはいないことが表
示される。 第15図について説明すると、同図には、メモ
リ168の専用の転送先選択セクシヨンを細分す
るための好適な方法であつてしかもマツプ結果の
比較を行うための好適な方法が、概略的に図示さ
れている。各々のマツプは4096ワード×1ビツト
で構成されており、更に、個別プロセツサID用
セクタ、クラスID用セクタ、及びハツシング用
セクタに細分されている(第8図参照)。12個の
アドレス・ビツト(10ビツトのマツプ・アドレス
と2ビツトのニブル)を用いて、共通マツプ・ア
ドレスが選択されると、それによつて各々のマツ
プから1ビツト出力が得られる。(第13図のマ
ルチプレクサとそのニブルは、図を簡明にするた
めに第15図には示してない)。それら4つのパ
ラレルなビツト出力は、4つのANDゲートから
成るANDゲート群198において、マツプ選択のた
めの4ビツトと比較することができるようになつ
ており、その結果、1つ以上の一致が得られた場
合には、ORゲート199の出力が「真」状態に
なる。このマツプ結果は、第13A図のマツプ結
果レジスタ197へ入力することができ、それに
よつて、そのメツセージがメモリ168に受入れ
られるようになる。以上とは異なる場合には、そ
のメツセージは拒絶され、NAKが送信されるこ
とになる。 コマンド・ワード管理セクシヨン200は、コ
マンド・ワードを受取るコマンド・レジスタ20
2を含んでいる。コマンド・ワードのTNフイー
ルドは、それを用いてアドレス・バスをアクセス
することができ、そのアクセスによつて、指標と
されている受信TNが調べられて適当な応答メツ
セージが決定される(第18図参照)。更には、
「マージ開始」コマンドが実行されているときに
は、TNフイールドからPTNR(現在トランザク
シヨン・ナンバ・レジスタ)206へのデータ転
送経路が確保されており、これは、「マージ開始」
コマンドに合わせてPTN(現在トランザクシヨ
ン・ナンバ)の値を変更できるようにするためで
ある。 メモリ168へ入力された入力メツセージは、
第21図に関して説明すると、アドレス・ベクタ
を利用できるようにするために、データ・フイー
ルドやキー・フイールドが用いられている場合に
はそれらのフイールドの長さ値をも含むものとな
つている。それらの長さ値は、受信データ長さカ
ウンタ210と受信キー長さカウンタ211とに
よつて求められ、これらのカウンタの各々は、入
力ソースから夫々のカウンタに該当するフイール
ドが提供される際に、それらのフイールドに含ま
れている一連のワードの個数を数えるようになつ
ている。 更には、送信メツセージ管理セクシヨン220
が用いられており、このセクシヨンは、処理済の
パケツトをメモリ168に格納するための受入れ
機能と、それらの格納されたパケツトを後刻ネツ
トワークへ送出する機能とを包含している。この
セクション220は、送信トランザクシヨン・ベ
クタ・カウンタ222、送信データ長さカウンタ
224、及び送信キー長さカウンタ226を含ん
でおり、これらのカウンタはデータ・バスに、双
方向的に接続されている。送信トランザクシヨ
ン・ベクタ・カウンタ222はアドレス・バスに
接続されており、一方、送信データ長さカウンタ
224はアドレス発生器228に接続されてい
て、このアドレス発生器228が更にアドレス・
バスに接続されている。出力バツフア・セクシヨ
ンと第8図の出力メツセージ完了ベクタ・セクシ
ヨンを構成する循環バツフアとの両方を用いてメ
ツセージの送出が行なわれる。ただしこの具体例
では、複数のメツセージ・パケツトが逐次入力さ
れた後に、それらが今度はベクタによつて定めら
れた順序で取出されるようになつている。 このインターフエイスの内部においては、独立
した夫々の動作フエイズが、互いに排他的な時間
に実行されるようになつており、このような時分
割方式を採用したことによつて、メモリ168
は、ネツトワークのクロツク速度でネツトワーク
からのメツセージ・パケツトを受取つて供給する
ことと、内部的な動作を効率的な高い速度で実行
することと、それ自身の遅いクロツク速度で非同
期的に動作しているマイクロプロセツサ・システ
ムとの間で通信を行なうこととが、可能とされて
いる。様々なカウンタやレジスタへ向けたメツセ
ージのゲーテイング動作を制御するために、位相
制御回路が制御ビツトに応答して動作しており、
制御ビツトは、コマンド、DSW、データ、それ
にメツセージ内の個々のフイールドを示すその他
の信号を発生するものである。送信状態制御回路
250、受信状態制御回路260、並びにR/W
(読出し/書込み)状態制御回路270は、クロ
ツク・パルスを受取り、データ内のフイールドを
識別し、そして、送信、受信、それにプロセツサ
のクロツク動作が行なわれている間の、データの
流れのシーケンシングを制御するものである。 このインターフエイスの制御は3つの有限状態
マシン(FSM)によつて行われ、それらのFSM
は、その各々が送信フエイズ、受信フエイズ、及
びプロセツサ(R/W)フエイズのためのもので
ある。それらのFSMは、プログラマブル・ロジ
ツク・アレイ(PLA)、状態レジスタ、並びにア
クシヨンROMを使用して、一般的な方式で構成
されている。各々のFSMは、ネツトワークのク
ロツク・サイクルの1回ごとに1つ次の状態へ進
められる。発生すべき制御信号の数が多いため、
PLAの出力はさらにアクシヨンROMによつて符
号化される。当業者には容易に理解されるよう
に、ネツトワークの動作のために必然的に必要と
なる、FSMモード用に書かれ、それゆえ一般的
な細部構造と動作とをもつ制御シーケンスの翻訳
は、仕事量こそ多いものの単純なタスクである。 第17図及び第19図の状態ダイアグラムと第
18図のマトリクス・ダイアグラムとを添付図面
中に含めてあるのは、かなり複雑なシステムに採
用することのできる内部構造設計上の特徴に関す
る、包括的な細目を提示するためである。第17
図は受信フエイズに関する図、第19図は送信フ
エイズに関する図であり、これらの図において用
いられている表記法は、この明細書及び図面の他
の場所で用いられている表記法に対応している。
例えば次の用語がそうである。 RKLC=Receive Key Length Counter (受信キー長さカウンタ) RDLA=Receive Data Length Counter (受信データ長さカウンタ) RNDR=Receive Network Data Word
Register (受信ネツトワーク・データ・ワード・レ
ジスタ) PUTC=Put Counter (PUTカウンタ) GETR=Get Register (GETレジスタ) 従つて状態ダイアグラムは、第13図及び明細
書と対照させて参照すれば、略々説明なしでも理
解することができる。それらの状態ダイアグラム
は、複雑なメツセージ管理並びにプロセツサ相互
間に通信に関わる、様々なシーケンスと条件文と
を詳細に示している。第17図(第17A図)に
おいて、「応答を発生せよ」と「応答を複号せよ」
とのラベルが書込まれている夫々の状態、並びに
破線の長方形で示されている夫々の条件文は、第
18図のマトリクス・ダイアグラムに記載されて
いる、指定された応答及び動作に従うものであ
る。第18図は、所与のTNに関するプライマ
リ・メツセージとレデイネス状態との任意の組み
合わせに対し、発生される応答と実行される動作
との両方を示すものである。当然のことである
が、正常なシステムの動作がなされているときに
は、ある程度のメツセージの拒絶はあるものの、
エラー状態はまれにしか発生しない。 第17図と第19図のいずれにおいても、条件
判断に関しては、その多くのものが複数の判断を
同時に実行することができるようになつている
が、これに対して状態ステツプの方は、1つづつ
変更されていくようになつている。いずれの場合
にもおいても、送信動作と受信動作とは外部から
の制御を必要せずに定められた進行速度で進めら
れて行く動作であり、それは、メツセージの構成
とネツトワークの動作方式とが既に説明したよう
になつているためである。 典型的なプロセツサ・システムやマルチプロセ
ツサ・システムにおいて採用されている多くの特
徴には、本発明に密接な関係を持つてはいないも
のがあり、従つてそれらについては特に記載しな
い。それらの特徴の中には、パリテイ・エラー回
路、割込み回路、それに、ワツチドツグ・タイマ
や極めて多様な記験機能等の滑動をモニタするた
めの種々の手段等がある。 (システムの動作の具体例) 以下に説明するのは、第1図、第8図、及び第
13図を総合したシステムが、ネツトワーク及び
H.S.RAMと協働しつつ種々の動作モードで内部
的にどのように働くかを示す幾つかの具体例であ
る。それらの具体例は、優先順位規定と、ここで
採用されているアドレツシング方式と、トランザ
クシヨン・アイデンテイテイとの間の相互関係
が、どのようにして局所的制御と大域的相互通信
との両方の機能を提供するのかを示すものであ
る。 プライマリ・データ・メツセージの送受信 ここでは、その他の図に加えて更に第16図に
ついても説明するが、第16図は、プライマリ・
メツセージの最終的な受入れに関わる諸状態の、
簡略化した状態ダイアグラムである。メツセージ
がバツフア或いはメモリに受信されても、図示の
論理的状態が満たされないうちは、受入れ(アク
セプタンス)が達成されたことにはならない。図
ではイベント(事象)ほシリアルな列として示さ
れているが、本来は複数の判定がパラレルに、即
ち同時に行なわれるようになつており、それは、
夫々の条件が互いに関与しないものであつたり、
或いは、ある動作段階へ達するための中間段階の
飛越しが、回路によつて行なわれたりするためで
ある。 第1図のネツトワークの上のメツセージは、第
13A図の受信ネツトワーク・データ・レジスタ
146の中を、EOM状態が識別されるまでの間
通過させられ、その状態が識別されたときに、メ
ツセージが完了したことが認識される。「ロツク
(LOCK)」状態が存在している場合には、システ
ムは第8図のH.S.RAM26″の中の応答デイレ
クトリを参照して、NAK/LOCK拒絶メツセー
ジを送出する。 そうでない場合、即ち「ロツク」状態が存在し
ていない場合には、システムはマツプ比較チエツ
クへ移り、このチエツクは第13A図に示したイ
ンターフエイスの中のDSW管理セクシヨン19
0の内部で実行される。「マツプ出力=1」で表
わされる、適切な比較結果が存在している場合に
は、システムはそのメツセージを受信し続けるこ
とができる。そのような比較結果が存在していな
い場合には、そのメツセージは拒絶され、NAP
が送出される。 該当するマツプが判定されたならば、それによ
つてシステムはTNステータスを検査する準備が
整つたことになり、このTNステータスの検査は
第8図に示されているTNのデイレクトリを参照
することによつて行なわれる(ここでTNステー
タスとは厳密には所与のTNに関するプロセツサ
のステータスのことであり、従つてH.S.RAM内
のTNアドレスに格納されているエントリによつ
て表わされているレデイネス状態のことである)。
更に詳しく説明すると、このTNステータスの検
査は、局所的ステータス(=個々のプロセツサ・
モジユールのステータス)が「受信準備完了」で
あるか否かを判定するために行なわれる。ここで
は、先行するプライマリ・メツセージによつて
TNの割当てが既になされているものと仮定して
いる。 この検査の結果、TNが「実行終了(done)」
状態、「非関与プロセツサ」状態、または「イニ
シヤル」状態のいずれかのステータスであること
が判明した場合には、「NAP」拒絶メツセージが
送出される(ここでTNといつているのは、厳密
にはH.S.RAM内のTNアドレスに格納されてい
るエントリのことであるが、以下、混同のおそれ
のない限りこのエントリのことも単にTNと称す
ることにする)。もしこの判明したステータスが、
他の規定外の状態であつたならば、送出される拒
絶メツセージは「NAK/TNエラー」であり、
以上の2つのタイプの拒絶メツセージもまた、第
8図の応答デイレクトリから取り出される。ステ
ータスが「受信準備完了」であつたならば、更に
もう1つの別の判定が行なわれることになる。 このもう1つの別の判定とは、「入力オーバラ
ン」に関するものであり、この判定は、既に説明
したように、第13A図の入出力管理バツフア・
セクシヨン170の内部において、GETアドレ
スとPUTアドレスとを比較することによつて行
なわれる。更にはトランザクシヨン・ナンバも、
受信メツセージ・カウントの値がゼロでないかど
うかについて検査され、このカウント値がゼロで
あれば、それは、同じく入力オーバランを表示し
ているのである。オーバラン状態が存在している
場合には、「NAK/入力オーバラン」が送出さ
れてそのメツセージは拒絶される。 以上のすべて条件が満足されていたならば、
H.S.RAM26″内の応答デイレクトリから
「ACK」メツセージ(背定応答メツセージ)が取
り出されてネツトワーク上へ送出され、他のプロ
セツサ・モジユールとの間で優先権が争われるこ
とになる。それらの他のプロセツサ・モジユール
のうちには、同じように受信メツセージに対する
背定応答を送出したものもあるかもしてない。こ
の時点で、もしネツトワークから受取る共通応答
メツセージ(この「共通」とはマージされたとい
う意味である)が「ACK」メツセージであつて、
従つて、受信プロセツサ・モジユールとして選択
された「全ての」プロセツサ・モジユールが、先
に受信したメツセージの受入れが可能であること
が明示されている場合には、その受信メツセージ
の受入れがなされる。もしこの応答が「ACK」
以外のいずれかの形であれば、先の受信メツセー
ジは「全ての」プロセツサから拒絶される。 受信並びに応答についてのこの具体例において
は、プライマリ・メツセージが受信された後に
は、全てのプロセツサが、ACK応答、NAK応
答、及びNAP応答のうちのいずれか1つを発生
することに注目されたい。プロセツサは、これら
の応答メツセージのうちのいずれか1つを受取つ
たならば、その直後にプライマリ・メツセージの
伝送を試みることができる。(プロセツサは、こ
の伝送の試みを、ネツトワークを通り抜けるため
の合計待ち時間相当の遅延に等しいかまたはそれ
より大きい遅延の後に行なうこともでき、それに
ついては既に「能動ロジツク・ノード」の章で説
明したとおりである)。もう1つ注目して頂きた
いことは、もし、幾つかのプロセツサが互いに
「同一の」メツセージを送信したならば、結果的
にそれらのメツセージの全てがネツトワーク上の
競合を勝ち抜いたことになることも、あり得ると
いうことである。その場合には、それらの送信プ
ロセツサの「全て」がACK応答を受取ることに
なる。このことは、後出の具体例で詳細に説明す
る、ブロードカスト(一斉伝送)及び大域的セマ
フオ・モードの動作に関して重要である。 実際に使用されている本発明の実機例は、これ
までに説明したものに加えて更により多くの種類
の応答を含むと共に様々な動作を実行するように
なつている。第18図はそれらの応答と動作と
を、LOCK、TNエラー、及びオーバランの各割
込み状態、予め識別されている9つの異なつたス
テータス・レベル、それに背定応答(ACK)及
び非該当プロセツサ応答に対するものとして、縦
列に並べた各項目で示している。 あるプロセツサ・モジユールがメツセージの送
信準備を完了したときには、第13図PTNレジ
スタ206に格納されているPTN値は使用可能
状態となつており、従つて必要とされるのはTN
ステータスが「送信準備完了」状態にあることの
確認だけである。第12図から分るように、「送
信準備完了」のエントリ(記述項)は、出力メツ
セージのためのネクスト・メツセージ・ベクタ・
アドレスを含んでいる。アセンブルが完了した出
力メツセージはネツトワーク上へ送出され、そし
てもし競合に敗退したならば、PTNが途中で変
更されない限り、伝送が成功するまでこの送出動
作が反復され、そして成功したなら応答を受取る
ことになる。伝送が成功して背定応答を受取つた
ならば、アドレス・バクタが変更される。ネクス
ト・メツセージ・ベクタが、現在メツセージの中
の第2番目のワード(第21A図)から取り出さ
れ、このワードは送信トランザクシヨン・ベク
タ・アクンタ222からランダム・アクセス・メ
モリ168へ転送される。出力メツセージ・セク
シヨンがオーバラン状態になければ、PUTカウ
ンタ175が「1」だけ進められ、このオーバラ
ン状態は、PUTがGETに等しくなることによつ
て表示される。尚、送信トランザクシヨン・ベク
タ・カウンタ222から転送されるネクスト・メ
ツセージ・ベクタは、H.S.RAMの中の現在トラ
ンザクシヨン・ナンバ・レジスタ206によつて
指定されているトランザクシヨン・ナンバ・アド
レスへ入力される。もし、この新たなTNが「送
信準備完了」状態のものであれば、この入力され
たベクタの値は、再び、このトランザクシヨン・
アイデンテイテイに関係している次のメツセージ
(ネクスト・メツセージ)の格納位置を指し示し
ている。H.S.RAMの中に格納されている出力メ
ツセージのフオーマツトについては、第21図を
参照されたい。 ただし、メツセージを送出する際のメツセージ
管理には、PTNの内部的な、或いは外部からの
変更をはじめとする、多くの異なつた形態の動作
を含ませておくことができる。エラー状態、オー
バラン状態、ないしロツク状態によつて、システ
ムがトランザクシヨン・ナンバを「TN0」にシ
フトするようにしておくことができ、このシフト
によつて、システムはノン・マージ・モードに復
帰し、そして「TN0」におけるステータスの検
査を、「送信準備完了」状態が識別されるか或い
は新たなTNの割当てがなされるまで、続けるこ
とになる。かなり複雑な具体例に採用することの
できる状態並びに条件を示したものとして、第1
9図(第19A図)のフローチヤートを参照され
たい。 出力メツセージ完了バツフアの例 メツセージの伝送の完了が「ロツク(LOCK)」
を除いたその他の任意の応答メツセージによつて
明示されたならば、新たに完了した出力メツセー
ジ・バツフアを指し示すポインタが、H.S.RAM
の出力メツセージ完了循環バツフア・セクシヨン
(第8図参照)に格納される。このポインタは、
上記出力メツセージ・バツフアのアドレスを表わ
す単なる16ビツト・ワードである。(出力メツセ
ージ・バツフアのフオーマツトは第21図に示さ
れている。出力メツセージ・バツフアには、ネツ
トワークから受取つた応答メツセージを記録する
場所が含まれていることに注目されたい)。 出力メツセージ完了循環バツフアは、ネツトワ
ーク・インタフエースのハードウエア120と、
マイクロプロセツサ105の上に置かれた監視プ
ログラムとの間の、通信の機能を果たすものであ
る。このマイクロプロセツサの中に備えられてい
るプログラムは、これから出力されるメツセージ
をH.S.RAMの中に格納する。これに続く次の例
で詳細に説明するが、複数の出力メツセージを一
緒に鎖状に連結し(チエーンし)、しかもその際、
TNがこの鎖(チエーン)の先頭のポインタとし
て働くようにすることができ、これによつて作業
の複雑なシーケンスを形成することができる。そ
の他の特徴としては、ネツトワークを複数のTN
の間で多重化即ち時分割(マルチプレクシング)
することができるため(これについても後に詳述
する)、ネツトワーク内の諸処に存在する様々な
事象に応じた種々の順序でメツセージを出力する
ことができる。 更にまた、伝送に成功したパケツトによつて占
められていたH.S.RAM内の格納空間を迅速に回
復し、それによつてその格納空間を、これから出
力される別の出力パケツトのために再使用できる
ようにすることが重要である。出力メツセージ完
了循環バツフアが、この機能を果たしている。 あるデータ・メツセージの送信が成功裏に終了
して「ロツク」応答以外の応答を受信したなら
ば、ネツトワーク・インターフエイスは、H.S.
RAM内の「0510(16進数)」に格納されている
PUTポインタ(第10図参照)を「1」だけ進
め、また、この送信が完了したばかりの出力メツ
セージの先頭のワードのアドレスをPUTレジス
タ内のアドレスへ格納する。(PUTポインタの値
が「0512(16進数)」に格納されているTOPポイ
ンタの値より大きくなると、PUTポインタは
「0513(16進数)」に格納されているBOTポインタ
(=BTTOMポインタ)と同じになるように最初
にリセツトされる)。PUTポインタがGETポイ
ンタ(格納位置「0511(16進数)」)より大きくな
るようならば、循環バツフアが、オーバランして
いるのであり、そのため「エラー割込み」がマイ
クロプロセツサへ向けて発生される。 マイクロプロセツサの内部で実行されているソ
フトウエアによつて、GETポインタが指示して
いる出力メツセージ・バツフアが非同期的に調べ
られる。プロセツサは、実行を要求された何らか
の処理を完了したならば、GETポインタを「1」
だけ進める(このGETの値は、TOPの値より大
きくなるとBOTの値にリセツトされる)。GET
=PUTとなつている場合には、処理せねばなら
ない出力メツセージはもはや存在していない。そ
うでない場合には、更に別の出力メツセージが成
功裏に送信を完了した状態にあるので、それらの
出力メツセージを処理せねばならない。この処理
には、H.S.RAMの出力バツフアの格納空間を空
きスペースに戻すことが含まれており、従つてこ
のスペースを他のパケツトのために再使用するこ
とできる。 ここで注目しておくべき重要なことは、出力メ
ツセージ完了循環バツフアと入力メツセージ循環
バツフアとは互いに別個のものであり、そのため
これら2つの循環バツフアは、夫々が別々の
PUT、GET、TOP、及びBOTの各ポインタに
よつて管理されているということである。構成の
しかたによつては、第13図に示されているよう
に、これら両方の循環バツフアが、循環バツフア
管理ハードウエア170を共用するようにもでき
るが、そのような構成が必須なわけではない。 初期設定の手順 各プロセツサ・モジユールは、そのプロセツ
サ・モジユール自身の高速ランダム・アクセス・
メモリ168(第13図)の内部のTNをアクセ
スする機能を備えており、このメモリ168に
は、潜在的に使用可能な複数のTNの、そのデイ
レクトリが含まれている。ただし、割当てられて
いないTNは、そのTNに関連付けられている格
納位置に格納されているトランザクシヨン・ナン
バ値によつて、割当てられていない旨が明確に表
示されている。従つて、マイクロプロセツサ・シ
ステム103は、割当てられていないトランザク
シヨン・ナンバを識別し、そしてそれらのうちの
1つを、所与のトランザクシヨン・アイデンテイ
テイに関して他のプロセツサ・モジユールとの間
の通信を開始するのに使用するために選択するこ
とができる。 トランザクシヨン・ナンバは、ローカル・マイ
クロプロセツサ(=プロセツサ・モジユール内の
マイクロプロセツサ)の制御の下に、局所的に割
当てられ且つ更新されるが、ネツトワーク内の全
域における大域的制御は、「TN放棄命令」及び
「TN割当命令」というプライマリ制御メツセー
ジを用いて行なわれる。同一のTNを要求する可
能性のある互いに競合する複数のプロセツサ・モ
ジユールの間にデツドロツク状態が発生すること
は決してなく、そのわけは、ネツトワークが、よ
り小さな番号を付けられているプロセツサの方に
優先権を与えるからである。そのTNを得ようと
したプロセツサのうちで優先権を得られなかつた
残りのプロセツサは「NAK/TNエラー」応答
を受取ることになり、この応答は、それらのプロ
セツサが別のTNを確保することを試みなければ
ならないということを表示するものである。従つ
て、それらのトランザクシヨン・アイデンテイテ
イの確保並びに照合を、システムの内部で及び局
所的に行なう際の、完全なフレキシビリテイが得
られている。 更に注目して頂きたいことは、TNの反復使用
は、「TN0」である基本伝送モードと、TNがゼ
ロより大きいマージ・モードとの間の、シフトに
よつて行なわれているということである。従つて
このシステムは、ただ1回のTNのブロードカス
ト式の伝送によつて、その動作の焦点だけでなく
その動作の性質をも変えることができる。 大域的ステータスの変化を伝達するための更に
別の、そして特に有用な方式は、第4図に関して
既に説明した強制パリテイ・エラーの伝播であ
る。この独特の表示方式は、その他の伝送の間に
はさみ込まれて伝送されると、中止されたシステ
ム資源が調査され、そして適切な動作が実行され
ることになる。 プロセツサ対プロセツサ通信 プロセツサ通信として、2種類の特別の形態の
ものがあり、その一方は特定の1つの転送先プロ
セツサへ向けて行なわれる通信であり、他方は、
1つのクラスに属する複数のプロセツサを転送先
として行なわれる通信である。これらの両タイプ
の伝送はいずれもDSWを利用しており、また、
これらの伝送はいずれも、ノン・マージ・モード
のブロードカストによつて実行される。 特に1つの発信元プロセツサと1つの転送先プ
ロセツサとの間での通信を行なう際には、DSW
の中に転送先プロセツサ識別情報(destination
processor identification:DPID)を入れて使用
する。第8図を参照しつつ説明すると、この
DPIDの値を用いて各々の受信プロセツサ・モジ
ユールのH.S.RAM26″の選択マツプ部分がア
ドレスされると、転送先として意図された特定の
プロセツサ・モジユールだけが、背定的な応答を
発生してそのメツセージを受入れる。背定応答が
送信され、しかもそれが最終的に成功裏に受信さ
れたならば、両者のプロセツサは、要求されてい
る将来の動作のいずれでも実行できる状態にな
る。 ある1つのメツセージを、ある1つの制御プロ
セスに関係する、1つのクラスに属する複数のプ
ロセツサが受信すべき場合には、DSW内のマツ
プ・ニブルとマツプ・アドレスとによつて、H.
S.RAMの選択マツプ部分の中の対応するセクシ
ヨンが指定される。そして、全ての受信プロセツ
サが夫々に肯定応答を送出し、それらの肯定応答
は、発信元プロセツサ・モジユールへ到達するた
めの競合を、この通信のための往復送受信が最終
的に完了するまで続けることになる。 全域ブロードカスト・モードのプロセツサ通信
は、プライマリ・データ・メツセージ、ステータ
ス・メツセージ、制御メツセージ、並びに応答メ
ツセージの、各メツセージの通信に用いることが
できる。優先順位プロトコルと、優先権を付与す
る機能を備えたネツトワークとの、両者の固有の
能力によつて、その種のメツセージをその他の種
類のメツセージのシーケンスの中に容易に挿入で
きるようになつている。 ハツシング・モードのプロセツサ選択は、リレ
ーシヨナル・データベース・システムにおけるデ
ータ処理のタスクを実行する際には、他から飛び
抜けて多用されるプロセツサ選択方式である。一
次的データ(=バツクアツプ用ではないメインの
データ)についての互いに素の(=同一の要素を
共有しない)複数のデータ部分集合と、バツクア
ツプ用データについての互いに素の複数のデータ
部分集合とが、適当なアルゴリズムに従つて、異
つた複数の二次記憶装置の中に分配されている。
1つのプロセツサが一次的データの部分集合を分
担し別の1つのプロセツサがバツクアツプ用デー
タの部分集合を分担しているためにそれら2つの
プロセツサが同時に応答した場合には、一次的デ
ータについてのメツセージの方に優先権が与えら
れる。この条件が補償されるようにするために
は、優先順位のより高いコマンド・コード(第1
2図参照)を選択するようにすれば良い。データ
ベースの信頼性及び完全性の維持も、以上の様々
なマルチプロセツサ・モードを利用することによ
つて達成され、その場合、発生した個々の状況に
対して最も有利なようにそれらのモードが適用さ
れる。例を挙げるならば、一次的データのある部
分集合を分担している二次記憶装置が故障した場
合には、特別のプロセツサ対プロセツサ通信を利
用してそれを更新することができる。またエラー
の訂正やデータベースの一部分のロールバツク
は、これと同様の方式で、或いはクラス・モード
で動作させることによつて、行なうことができ
る。 トランザクシヨン・ナンバの例 トランザクシヨン・ナンバという概念により、
マルチプロセツサ・システムの制御のための新規
にして強力なハードウエア機構が得られている。
本システムにおいては、トランザクシヨン・ナン
バは「大域的セマフオ」を構成しており、また、
ネツトワークに対するメツセージの送受信と、複
数のプロセツサに分配されたある1つの所与のタ
スクのレデイネス状態の確認との夫々において、
重要な役割りを果たしている。 トランザクシヨン・ナンバ(TN)は、H.S.
RAM26の中の16ビツト・ワードとして物理的
に実現されている。このワードは、様々な機能を
果たせるように、第12図に示すようなフオーマ
ツトとされている。TNはH.S.RAMに格納され
るため、マイクロプロセツサ105とネツトワー
ク・インターフエイス120とのいずれからもア
クセスすることができる。 大域的セマフオ 「セマフオ」という用語は、コンピユータ科学
関係の文献において、互いに非同期的に実行され
る複数の処理の制御に用いられる変数を指し示す
ための用語として、一般的に使用されるようにな
つている。セマフオは、中断されることのない1
回の操作でそれを「テスト・アンド・セツト」す
ることができるという性質をもつている。 一例として、「アンアサインド
(UNASSIGNED:割当てがなされていない状
態)」と、「アサインド(ASSIGNED:割当てが
なされている状態)」との2つの状態を取り得る
セマフオ変数について考察することにする。この
場合には、テスト・アンド・セツト動作は次のよ
うに定義される:もしセマフオが「アンアサイン
ド」状態にあつたならば、そのセマフオを「アサ
インド」状態にセツトして成功を表示すること;
反対にセマフオが既に「アサインド」状態にあつ
たならば、そのセマフオを「アサインド」状態の
ままにしておいて「失敗」を表示すること。従つ
て、このセマフオに拠れば、セマフオのテスト・
アンド・セツトに成功した処理は自らのタスクを
続行することができ、一方、それに失敗した処理
は、そのセマフオが「アンアサインド」状態にリ
セツトされるのを待つか、或いは、等価の別の資
源を制御している別のセマフオをテスト・アン
ド・セツトすることを試みるかの、いずれかを余
儀なくされる。容易に理解できることであるが、
仮にテスト・アンド・セツト動作が中断されるよ
うなことがあり得るとするならば、2つの処理が
同時に同じ資源にアクセスしてしまう可能性が生
じ、それによつて予測することのできない誤つた
結果が生じてしまうおそれがある。 いかなるマルチプロセツサ・システムも、シス
テムの資源へのアクセスを制御するために、セマ
フオと同一視することのできる概念を、ハードウ
エアによつて実際に具体化している。しかしなが
ら、従来のシステムは、1コピーのセマフオ(=
部数が1部のセマフオ、即ち1箇所だけに設けら
れるセマフオ)しか維持することができない。そ
こで、複数コピーのセマフオ(=部数が複数のセ
マフオ、即ち複数箇所に設けられるセマフオ)
を、各プロセツサに1コピーづつ設けて維持する
ようにすれば、単にテストするだけのセマフオの
アクセスのために競合が発生する回数を低減する
という目的と、後に説明するその他の用途に多価
のセマフオ変数を利用するという目的との、双方
のために望ましい。問題は、セマフオの多数のコ
ピーに対し、完全に同期した操作を加えねばなら
ないということであり、もしこのことが守られな
かつたならば、それを強化するためにセマフオが
設けられているところの、資源へのアクセスの完
全性が失われてしまうことになる。 複数コピーのセマフオ、即ち「大域的」セマフ
オは、本システムによつて提供される。次に示す
表は、大域的セマフオに関する動作を、単一セマ
フオ(1コピーのセマフオ)と対比したものであ
る。
(Industrial application field) Data transmission system and clocking system
It is related to. (Prior technology) Highly reliable electronic computer (electronic computer)
Since the advent of the computer
This system has been carefully considered by people working in the technical field of
system that uses multiple computers
, and those computers are mutually related.
By operating while maintaining
I have a system that allows the whole screen to run.
Ru. For such multiprocessor systems
In some systems, one large computer
However, with its own superior speed and capacity,
In addition to executing complex parts of the program, the complexity
for less demanding or less urgent tasks.
then convert it to a small, slow satellite processor.
delegate (assign) and thereby
The burden on the computer and the burden on this large computer
There is a method that reduces the amount of requests.
Ru. In this case, a large computer can perform subtasks
Allocating small processors (=
Satellite processor) must be kept in working condition at all times.
The usability and operating efficiency of these small processors
to ensure that uniform results are obtained.
shall be in charge of ensuring that the Another type of multiplayer that uses a different method than the above.
Some processor systems contain many
A system using a bus and one common bus system
stem and those multiple processors have a book.
Systems with qualitatively equivalent functionality
There is a problem. In this type of system, it is often
For example, a control computer independent from other parts.
or control system to perform a given subtask.
availability and processing of individual processors for
Monitoring performance and inter-processor tasks
and control the information transfer route.
ing. Also, the processor itself
monitoring the status and availability of Setsa;
Determining the transmission route for messages and programs
The configuration and operation of each processor
Some of the works are set. The above various scenarios
A major drawback common to stems is overhead
Software is used to perform functions and maintenance functions.
It is said that
In particular, and thereby achieving the original purpose.
This will affect implementation. Determining the transfer route and
The amount of work related to
increases as a quadratic function of the total number of processors
In particular, due to overhead functions,
Efforts may become expended. The following several patent publications provide examples of prior art.
It is. U.S. Patent Publication No. 3962685 - Belle Isle No. 3962706 - Dennis et al. No. 4096566 - Borie et al. No. 4096567 - Millard et al. No. 4130865 - Hart (Heart) et al. No. 4136386 - Anunchiata
(Annunziata et al. No. 4145739 - Dunning et al. No. 4151592 - Suzuki et al.
(using parallel-connected processors) or
When various systems similar to this were in use.
Since then, multiprocessor systems have already been equipped with redundancy.
It provides the ability to perform
significantly improves the overall reliability of the system
It was recognized that it was something to be gained. fruit
When configuring a multiprocessor system
So far, considerable progress has been made in
Constraints exist, but they are primarily software
This is due to the fact that toeware has become enormous.
This is a constraint. Nevertheless, for example, real
System downtime, such as time usage, etc.
There are various situations where downtime is unacceptable.
In situations where multiprocessor operation is particularly
Due to its advantages, various multiprocessing
The tusa system has been developed, but
Although these systems work well,
Software and operating time for bar head?
It is something that you have to allocate a certain amount of money to.
Ta. Such conventional systems are described in U.S. Pat.
No. 3445822, No. 3566363, and No. 3593300
A specific example is shown in the issue. These patent publications
All information is shared between multiple computers.
access one main memory shared by
This is about a system designed to
The system further divides tasks into individual processes.
Processing capacity and processing requirements are
It is now possible to compare the required quantity. Further examples of prior art include U.S. Pat.
There is No. 4099233. In the system of this bulletin,
Multiple processors share one bus,
In addition, a control module with a built-in buffer register is also available.
The sender miniprocessor and receiver microprocessor are
The transfer of data blocks to and from the Niprocessor is
It is done. The concept of this system is
used in a decentralized mail sorting system in
ing. U.S. Patent Publication No. 4,228,496 was commercially successful.
It concerns multiprocessor systems.
In this system, there is a
Multiple buses installed connect to a bus controller.
The bus controller is connected to the
Monitoring of data transmission status and communication between processors
Determines priority for multiple data transfers.
It's on. Additionally, each processor has multiple
to control one of the side devices
It is now possible to connect. Xerox, Heuretsu Pats Card, and
Ether, which is jointly promoted by Intel
“Ethernet” system (U.S.
Patent Publication No. 4063220 and Patent Publication No. 4099024) are
Intercommunication between multiple processors and peripheral devices
suggest yet another way to deal with the problem
There is. All units (=processors and peripheral devices)
etc.) are multiple access points shared among those units.
access network, and
Those units compete with each other for priority.
It will match. Collision detection is performed using a time-first method.
For this purpose, global processing power is required.
controlling, coordinating, and clarifying
It is no longer easy to grasp it accurately. The various systems explained above are explained in detail.
In order to fully understand the
Detailed analysis of patent publications and other relevant references
There is a need. However, the division of tasks is
If the system is
Determination of priority for data transfer and selection of processor
A huge amount of interaction and management control to make choices.
It is only a simple overview that
You will be understood if you just do that. Expand your system
What if you want to include more processors?
Problems like this occur on different systems.
It is not uniform because each person is different, but
However, none of the above systems
Expansion can improve system software and application programs.
logging, hardware, or all three
Everything will become more complicated. Also, some thoughts
It is understood by the observer that one or two
A group of logically passive ohmic buses are adopted.
Because of its inherent limitations, multipro
imposed on the size and capacity of the Setsa system.
It is. Making it easier to communicate with each other
There are various techniques that can be employed to
One example is the recently issued U.S. patent
As shown in Publication No. 4240143, the sub
It is called grouping systems into global resources.
However, there are many techniques.
Naturally, when Rosetsusa is used,
However, the amount of traffic that can be used has reached its limit.
Also, if the delay time takes various values,
This creates problems that are difficult to overcome.
Ru. One or more processors can lock
The condition of being in a deadlock or deadlock state.
situations may occur, and how to deal with such situations.
further circuits and solutions to solve the problem.
software is required. From the above, the process
Set the number of tusa to 1024, for example.
It has traditionally been impractical to significantly expand
It is clear that this is the case. In many different applications, the
Escape from the limitations of existing techniques and use the latest techniques.
It is hoped that it will be used as a maximum resource. Currently hiring
The lowest cost technique possible is
Microprocessors being produced and large capacity
A technique based on a rotating disk type storage device.
Examples of such storage devices include sealed
between the head and the disk inside the case.
Winch-S with very small spacing
There are devices made by Ta Technology. multi pro
When expanding the Setsa system, the software
system without unduly complicating the software.
It is desired to be able to expand the system, and furthermore,
As software expands, it becomes more complex.
I would like to be able to extend it so that there is no
has been done. Furthermore, the entire functionality may be restricted to
or multiple processing tasks that are performed repeatedly
Characteristics that have a distributed structure that can be dynamically subdivided into
The ability to handle computer problems with specific characteristics is required.
It is. Almost all database machines are
belongs to such a problem field and also
The problem areas also include sorting, pattern recognition, and
and correlation calculation processing, digital filtering processing
physics, large-scale matrix calculations, and physical systems.
Other typical problems such as simulation, etc.
Examples are also included. If any of these processes are performed
Multiple tasks handled individually, even in situations where
Keep the tasks relatively simple, yet
It is required to widely distribute the
The instantaneous task load becomes large. Like that
This situation is common in traditional multiprocessor systems.
The reason for this was that it was accompanied by great difficulties.
In such a situation, overhead is
software for time and overhead.
having a tendency to increase the amount of
However, there are practical difficulties in configuring the system.
It's about coming. For example, a passive shared bus may be adopted.
If used, propagation velocity and data transfer
The amount of time it takes to process a transaction
constitutes an absolute barrier to the possible processing speed of
Ru. Therefore, database machines are multiprocessing
of the need for improvements to the tusa system.
This is a good example. Configuring large database machines
Until now, there have been three basic methods for
The following methods have been proposed: hierarchical method,
Network method and relational method
be. Of these, relational data
A database machine represents relationships.
By using tables, users can easily understand complex systems.
for easy access to given data in
This type of machine has a powerful latent
It is recognized that the company has the ability to child
Representative publications explaining the prior art of
For example, the IEEE Computer Magazine
DCP published on page 28 of the March 1979 issue.
Smith and JM Smith's ``Relayoner''
A paper entitled ``The Database Machine''
(article entitled “Relational Data Base
Machine”, published by DCP Smith and J.
M. Smith, in the March 1979 issue of IEEE
Computer magazine, p.28), U.S. Patent Publication No.
No. 4221003 and various theories cited in the bulletin
There are sentences etc. In addition, the sorting machine
Improving the ing architecture is needed.
This is a good example of this. sorting machine
An overview of the theory can be found in ``Search'' by DE Knuth.
Pages 220 to 246 of ``Ning and Sorting''
(“Searching and Sorting” by DEKnuth,
pp.220−246, published (1973) by
Addison Wesley Publishing Co., Reading,
Massachusetts). In this literature
is disclosed by various networks and algorithms.
and understand the constraints that come with each of them.
In order to do so, we must consider them in detail.
No, but there are some general things that can be said about them.
That is, all of them have a special feature called sorting.
in a characteristically complex manner that is oriented solely toward specific objectives.
It means that there is. As yet another example, L.
Presented by A. Mollaar (LA Mollaar).
There is a
'On Computer', Volume C-28, No. 6
(June 1979), pp. 406-413.
"Structure of list merging network"
Article entitled “A
Design for a List Merging Network”,in
the IEEE Transactions on Computers,
Vol.c−28 No.6, June 1979 at pp.406−413)
It is described in. The topics proposed in this paper
Network merging and
A method is adopted in which the elements are controlled externally.
This network also has special
Requires programming to perform functions
ing. Executed by a general-purpose multiprocessor system
There are various functions that must be able to
A function to distribute subtasks according to the method, subtasks
Check the status of running processors
Functions, merging and sorting of messages
functions, the ability to correct and change data;
and how resources have changed (e.g.
When does a processor go online?
There is a function to check whether the device has returned online.
Ru. In order to perform the above functions,
So what about excessive software for overhead?
It was necessary to use hardware and equipment. For example, a database manager
In multiprocessor systems such as
specifies the route for transferring messages between processors.
When transferring a specific processor to
or belong to one class
You can select multiple processors or even
Rather than specifying the rosette itself,
The data distributed to the processors by
transfer by specifying parts of the database.
Choosing a first processor is often
It becomes necessary. Some known systems include front-end communication systems.
There are some products that use
a sending processor and one or more specific
Establish linkage with receiving processor
That's what I do. To establish this linkage
sends requests and acknowledgments over and over again
Destruction that must and may occur
Further hardware alignment to overcome the situation
software must be used to Preposition
In systems that do not use communication sequences,
by one processor or by bus control.
Control is carried out by rollers, and this control
indicates that the sending processor is in the ready-to-send state.
This means that the sending processor is ready to receive.
Is there a linkage between these processors?
and other processors are locked out,
and that no irrelevant transmissions are being made.
This is for confirmation. Also in this case,
Reliance on overhead and deadlock
In order to avoid this, it has to become complicated and
Extend the system (e.g. by
(increase the number of sensors to 16 or more)
It expands to an inappropriate extent. required by modern multiprocessor systems.
As yet another example of the requirement that one or more
subtasks executed by processors
To ensure that the system can determine the status of
There are some things related to the method of basically requested
for a given processor.
Inquire about the status of Rosetsusa
This means that they must have the ability to
Moreover, the status of the inquiry
to avoid being influenced and to respond.
In order to avoid ambiguity in the content of
that an inquiry must be made
be. Suspend testing and setting of status display
Characteristically represents functions that are performed as a series of operations without
Currently, in this industry, the term
The term "semaphore" is used
ing. This feature of semaphore is
However, if this characteristic
When incorporating, please be aware that execution efficiency may decrease and overhead
This must be done in a way that does not increase the load on the tube.
No. Determination of such status is further
Sorting/mapping in multiprocessor systems
is extremely important when performing page operations.
However, it is a complex task contained within a large task.
Combine the processing results of several subtasks
In order for those subtasks to complete processing properly
can be combined into one only after
Because I can't. A further requirement is that the process
Tsusa must be able to report its "current" status.
The tasks that must be performed and the execution of subtasks are
Interrupts the multiprocessor operating sequence
Even if and changes are repeated, they are done only once.
There are times when you have to make sure that the
In most existing systems, the processor's execution
This is a problem because the
A serious problem has arisen. i.e. easily understood
However, multiple processors may
I am running multiple related subtasks.
In such cases, those individual processors'
degree of ines state (= what kind of movement is possible)
Inquiries regarding the degree of
The operation sequences involved in the response to the
bar head may be required, and
The dedicated overhead for
As the number increases, it becomes increasingly inappropriate.
increase (Problem to be solved by the invention)
Typical disadvantages in the Rosetsusa system are
It is related to the problem of so-called "distributed update",
This problem means that each of the plurality of processing devices
A copy of the stored information needs to be updated.
This means that Information here refers to data.
The information may consist of data records;
Information used to control system operation
In some cases. What is the control of the operation of this system?
For example, a required step was inadvertently executed twice.
so that it doesn't run at all
processing is started, stopped, restarted, and
If the time is interrupted or roll back or roll
control such as ensuring that the information is forwarded
That's true. In traditional systems, distributed updates
Each of the various solutions to a new problem requires considerable control.
It was accompanied by a promise. Among those solutions
targets only two processors at a time.
There are some things that are nothing more than Yet another solution
A number of devices use mutual communication protocols.
However, these protocols are very complex.
Therefore, even today, these protocols are not appropriate.
We need to prove with mathematical rigor that
This is accompanied by great difficulties. What makes these protocols so complex?
are the uninterrupted
All processes can be completed in one motion without being interrupted.
After being “tested and set” at the
It is necessary to provide a control bit with the external properties of
The reason is that there is. If such control bits are
provided inside a number of separate processors,
Moreover, it is accompanied by communication between those processors.
Unavoidable incompleteness due to varying delay times
Noise can be caused by communication channels that can cause
occurs, and the error rate also increases.
It turns out. Therefore, “one uninterrupted
One of the features is
The multiple parts that make up the movement are
diverse and interruptible;
cannot be accessed at the same time, and even more so.
These may cause problems between accesses.
If it is difficult, it may be difficult.
This will be readily understood by those skilled in the art. (Means for Solving the Problems) To summarize, the present invention provides
to multiple nodes in a network with nodes.
time skew during the data flow
Master Cloth Connected to Pex Node
disk source and the mask provided on each node.
A unique
using multiple clocks set up, and
It is possible to exist by returning the lost clock.
By correcting possible errors,
We provide a system that eliminates time skew.
It is something that (Example) Examples of the present invention will be described below with reference to the drawings.
do. (Database management system) The system shown in Figure 1 is the main
Applying the concept of invention to database management
This is shown as a specific example. Explain in more detail
, the system can host one or more hosts.
Works with computer systems 10 and 12
are configured and their host computers
The data system is, for example, the IBM 370 family.
– or belongs to the DEC-PDP-11 family
This specific example is a computer system, etc.
Existing common operations to meet the objectives of
operating system and application software
It's becoming like that. According to IBM nomenclature, a host
storage computer and database computer
The main intercommunication line network between
The same thing is based on DEC nomenclature.
If so, ``unibus'' or ``masbus'' or
It is called by a slightly modified term. Below
Any of the above computer systems
Whether used or other manufacturer's main
Regardless of whether a frame computer is used, this
channel, or bus, to which the database
The owner where tasks and subtasks are dispatched
A logical transfer path, i.e. a logically passive transfer path.
It is a road. The specific example in FIG.
Back-end processor complex combined with 2
It shows merging. The system in this diagram is a task
and subtasks from the host system;
Corresponding part of the huge amount of database storage information
and the appropriate processed message or
is to return a response message, and that
Their operation is based on this back-end processor complex.
Regardless of body composition, it is not very advanced.
host system, except for management by software.
system is now executed in a way that is not required.
It's on. Therefore, it is necessary to update the user's database.
Configured as a multi-processor system
This multiprocessing
In the TUSA system, data can be
Relational data that can be extended to
can be organized as database files,
What's more, this extension
Internal operating system
No need to change systems or existing application software
It is now possible to do this. Independent system
As a stem (stand alone system)
See Figure 20 below for a specific example of the configuration.
I will explain as I go along. As will be understood by those skilled in the art, the relayer
There is one operational function related to file database management.
the entire operational function of the other, at least temporarily.
into multiple processing tasks that can be processed independently
It is an operational function that allows you to The reason
The reason is not remembered in a relational database.
If multiple data entries in the address point
Are they interdependently connected by interfaces?
It is et al. Further, as will be understood by those skilled in the art,
In addition to regional database management, limited
dynamically
The method of subdividing into smaller parts and processing them independently is used.
There are many possible data processing environments.
There is. Therefore, when explaining specific examples of the present invention,
There are particularly strong demands and frequently asked questions.
related to processing issues in database management.
However, as disclosed herein,
New methods and configurations for
It has many uses. Large data management systems require multiple processes.
When using Tsusa (multiple processor)
the potential benefits and inevitable attendant difficulties.
It will have both. Huge number of hundreds of millions
A number of entries (descriptions) are stored in the storage device.
Must be kept easily and quickly accessible.
Must be. On the other hand, relational database
If you format it as a base, you can use a wide range of data.
Simultaneous data entry and information retrieval operations
can be carried out in a specific manner. However, the vast majority of database systems
database integrity (integration)
maintaining the transaction
Processing data quickly is just as important.
ing. Data integrity depends on hardware failure
power outages, and other disasters related to system operation.
If it is not maintained before and after the harm
No. Furthermore, the database system
Bugs in application software code
Clean up any initial user errors.
restore the database to a previous known state in order to
must have the ability to do so. deer
Even if data is accidentally lost or entered
This should not happen and the event should not be new.
Is it related to data or past
Is it related to error correction?
is also related to the proofreading of a part of the database.
related to a particular entry, depending on whether
all parts of the database are changed.
You have to become familiar with it. Therefore, for completeness, it is necessary to rollback the data.
Error detection and correction operations;
operations, as well as the status of individual parts of the system.
In addition to the operation of change detection and its compensation, furthermore,
Some degree of redundancy is also necessary for database systems.
It is essential. To achieve these objectives, the system
The stem can be used in many different specialized modes.
It may be necessary to do so. Additionally, modern systems have complex formats.
Inquiries with arbitrary content that tend to be
(discretionary queries) and the necessary
have the ability to respond in an interactive manner if
You are required to be on the same page. Even if the inquiry
access the system, even if it is complex.
The people trying to access the system are experts in the system.
If there is ever a time when you are required to do something
do not have. It may occur in connection with large-scale production operations.
Examples of arbitrary queries include:
be. A. The manager who manages production
If you only request a list of one item
production volume is at least 10% or more compared to the same month of the previous year.
Exceeding its monthly production of declining parts
Inventory inventory listing all parts in stock, such as
may call for a strike. B. A marketing manager
Inquire whether the account is 90 days past due.
In addition to living in particularly depressed areas,
For customers who have exceeded 120 days in the past.
Regarding this, we may request a uniform 90-day receivables.
unknown. C. An executive in charge of human resources spends two weeks in a given year
Make a list of all employees who have taken sick leave in excess of
In addition to asking for
For more than two years, during that fishing season.
Long-term employee with 10 years or more of sick leave for one week or more
Request a list of all continuous employees
Maybe. In each of the above examples, the user
Do not delete any information stored on your computer until then.
By relating things in ways that have never been done before,
Identify the real problems you face in your business
That is to say. to the field that is causing the problem.
If the user has experience with
If the user has intuition and imagination, the computer
Untrained experts can handle complex inquiries
freely create a database system that can process
It can be used. Modern multiprocessor systems use these
as many as, and often contradictory to each other
Carefully created overrides for requirements
- head software system and maintenance
by using software systems.
However, these software
Toware systems inherently facilitate systems
This is a hindrance to expansion. However,
However, the concept of scalability is a highly sought after concept.
The reason is that the business or business is growing.
and, along with that, existing database management systems.
It is desirable to extend the stem and continue using it.
In this case, the new system and software
I don't like being forced to adopt clothing.
It is from. Multiprocessor Array Referring to FIG. 1, a typical multiprocessor array according to the present invention
One specific example system is a system with many microprocessors.
and their microprocessor
There are two important types of books that are important.
In the specification, interface processor
(IFP) and access module processor
We will call it (AMP). In the figure, there are two
IFP14,16 are shown, each of them
Separate host computers 10 to 12 inputs
Connected to an output device. Many access modes
Juul processors 18-23 are also available on this machine.
In what can be called a multiprocessor array
include. The term "array" here
is a generally neat straight line or matrix
A set of processor units arranged in a row.
a set of processor units, or
refers to multiple processor units;
It is used in the sense of
meaning what came to be called "processusa"
It's not about doing it. The concept of this system is shown in the diagram.
Just 8 microphones to show a simplified example of
Loprosetusa is shown, but much more
IFP and AMP can be used and usually
will be used. IFP14, 16 and AMP18-23 are internal
Direct notes to bus and peripheral controllers
main memory that can be re-accessed.
Intel 8086 16-bit microprocessor
Built-in. A great variety of different manufacturers
microprocessor and microprocessor
Any of the stem products can be used. This “ma”
Microprocessor” cannot be used in this array.
A type of computer or processor that can
This is just one physical example, because this system
The concept of
For Nikon computers or large computers.
In some cases, you can use them to your advantage
It is from. This 16-bit microprocessor
has considerable data processing power and extensive
Variety of available hardware and software
A standard location that can be replaced with the option
A low-cost device with a replaceable configuration.
This is an advantageous example. IFP and AMP are similar active logic
and a control logic jump interface.
microprocessor, memory, and internal bus
These are shown in Figure 1 and Figure 1, respectively.
This will be explained later with reference to FIG. However, this
These two processor types are
The nature of peripherals related to the format and their surroundings.
The control logic for the side devices is different. Current
The different surroundings are easily understood by the trader.
Equipped with a device controller and assigned different functional tasks.
Other processor types given may be incorporated into the present invention.
It is also easy to get lost. Each microprocessor has a fast random access
Process memory 26 (described in connection with FIG. 8)
This fast random access
The bus memory is a buffer buffer for input and output messages.
unique to the rest of the system.
Message management by collaborating in a
Do this. Briefly, this high-speed lander
System access memory 26 has variable length input memory 26.
message (this input is called "reception").
Serves as a circulation buffer and sequentially
To output a message (this output is
Functions as a memory (called "transmission"), and
Used in user mapping mode and other modes
Incorporate the table index part for
messages and outgoing messages in an orderly manner.
Stores control information for handling. The memory 26 is
Furthermore, when selecting multiprocessor mode,
data, status, control, and response metrics.
Unique role when dealing with sage traffic
It is used to fulfill the following. will be explained in detail later
, those memories are further stored in the message.
based on the transaction identity of
Local and global status determination and control functions
are processed and communicated in a highly efficient manner.
It is said to have a unique structure. IFP14, 16 and
The control system provided in each of AMPs 18 to 23
Jitsuk 28 (Related to Fig. 13 will be explained later)
) is responsible for data transfer and override within the module.
Used to perform barhead functions. IFP14 and IFP16 are each interface control circuit.
This interface control
Circuit 30 has an IFP combined with the IFP.
Host computer 10 to 12 channels
or connected to a bus. In contrast, AMP
18 to 23, this interface control circuit
The device corresponding to is the disk controller 32.
Yes, this disk controller 32 is a general
It may have a similar structure, and AMP18-23
, they are individually combined with magnetic disks
interfaces for drive drives 38 to 43, respectively.
It is used for Magnetic disk drives 38-43 store this data.
A secondary storage device, i.e. a large capacity storage device, is used in the database management system.
Provides quantity storage. In this example
For example, those magnetic disk drives are
Winchester Technology
It is made from commercially available products with a proven track record, such as
Therefore, the cost per byte will be
Extremely inexpensive, large capacity, highly reliable storage device
I'm trying to get that. These disk drives 38-43 include
Relational databases with distributed storage
This is briefly shown in Figure 22.
It is shown in converted form. Each processor and
For disk drives combined with
is a subset of the database.
This subset is called the “primary” part.
subsets, and their linear subsets are mutually exclusive.
both a disjoint subset and a complete whole
It constitutes a database. Therefore n pieces
Each storage device will hold 1/n of this database. Each processor also has a
A subset of the data for pick-up is allocated,
Their backup subsets are also disjoint.
These are subsets, each of which constitutes 1/n of this database. As can be seen from Figure 22
, each of the primary files is
A processor different from the one in which the file is housed.
Backup files stored in Setsa
have been reproduced by
Each of the two distributed in the traditional distribution method is completely
A database has been obtained. In this way, one
Next data subset and data part for backup
This is because the sets are arranged with redundancy.
The integrity of the database
The reason for this is that protection is provided to prevent a single failure from occurring.
If so, multiple data over several large blocks
or multiple relationships in multiple groups.
It is unlikely that it would have any real impact.
It is. The distribution of the database is also shown in Figure 22.
The various file hashing operations are
It is related to the work of Hatsushi Matsupi.
embedding data into a message.
are related. contained in each processor.
files are shown as groups of binary sequences.
A simple hash bucket
bucket).
Therefore, the relationships specified by those buckets are
Based on the relation table,
relationships in a database system
(relationship) and tuple (tuple) should be placed.
The location can be determined. Hashing algorithm
This relational database can be
inside the base system, from the key to the bucket.
It has become necessary to allocate
Therefore, this database system will be expanded and revised.
Changes can be made easily. The storage capacity you choose depends on your device.
database management needs, transaction
amount, and the memory associated with that storage device.
Determined according to the processing power of the chloroprocessor
It is. Combine multiple disk drives into one
Connect to AMP or connect to a single disk file
It is also possible to connect a device to multiple AMPs
However, such modifications are usually limited to special applications.
It will be done. Database expansion is typically
One example is a multiprocessor array.
number of processors (and combinations of processors)
Expand the number of installed disk drives
It is done by Active logic network provides an orderly flow of messages and packets
The purpose of
The purpose is to create a new active logic network.
A unique system architecture centered on the construct 50.
Adopting architecture and message structure
This is accomplished by This active logic network
The network structure 50 includes a plurality of microprocessors.
For multiple outputs of a server, it is possible to
Multiple
bidirectional active logic nodes
active logic node) 54
Ru. These nodes 54 have three ports.
This bidirectional circuit consists of two-way circuits.
A road is a tree network.
forming a network with a branch-like structure
and in that case, the base of that tree structure
The microprocessors 14, 16 and
and 18-23. As will be understood by those skilled in the art, a node is a
If the number of Tsuk sources exceeds 2, e.g. 4 or
8, and in this case, at the same time
Also, there is the problem of having a large number of source inputs.
Convert to a problem of adding more combinatorial logic
You can do it. For ease of reference in the diagram, all nodes
Among (N), those belonging to the first layer are
is represented by the prefix “I”, and the second layer
Those that belong to it prefix it with ""
The same applies hereafter. belong to the same hierarchy
The individual nodes in the subscript ' 1 , 2 ...”
Therefore, for example, in the fourth node of the first hierarchy
If so, “IN” Four ” can be expressed as of the node
On the up tree side (i.e. upstream side) there is a “C port”.
It is equipped with one port named
and belongs to a higher layer adjacent to this C port.
of the two down tree ports of the node
are connected to one side of the
- Ports are "A port" and "B port" respectively.
It is named. These multiple hierarchies are
It converges to the part node, that is, the vertex node 54a.
This vertex node 54a is directed upstream.
Flow of Message (Up Tree Message)
Reverse the direction of the tree and move it downstream (down the tree)
as a means of convergence and turning towards
It is functioning. Two tree networks 50
a, 50b are used, and those two sets of nets
Nodes and interconnections in a network
The parts are arranged parallel to each other, and
This provides the desired redundancy for large-scale systems.
Ru. Nodes 54 and their networks
The links are identical to each other, so their
It is sufficient to explain only one of the two
be. To make the explanation easier to understand, please understand first.
What I would like you to keep in mind is the format of the serial signal string.
A large number of message packets are
Active logic can be realized by connecting multiple microprocessors.
simultaneously sent to the network 50, or
It is said that it is possible to send out at the same time.
That's true. The plurality of active logic nodes 54 are
Each of them operates on a binary basis and the two each operate on a binary basis.
The priority between colliding message packets in a colliding relationship is
A determination of priority is made, and this determination of priority is based on the
using the data content of the message packet itself.
It is done. Furthermore, within one network
All nodes 54 of
56, and this clock
The base 56 arranges the sequence of message packets at the vertex nodes.
You can proceed synchronously towards Do 54a.
combined with those nodes 54 in such a manner.
ing. In this way, in a serial signal train
The incremental segment of each successive byte etc. of
The progress of this byte is advanced to the next level.
the byte corresponding to that byte in the message of
follows another route within this network 50.
It will be done at the same time as the same progress. Give priority between competing signal trains
The sort for is moved in the up tree direction.
This is done for message packets that are
Eventually, downstream from the vertex node 54a
a single message string to be redirected towards
is selected. The system is configured as described above.
Therefore, it is difficult to determine the final priority.
At one particular point within the sage packet
There is no longer a need to
two mutually running nodes 54
Binary-based determination between colliding packets
of messages without the need for anything outside.
Transfers can now be made continuously.
Ru. As a result, this system
to select messages and transfer data.
However, the bus support is
take control of the sending or receiving processor.
to identify processors or handles between processors.
For the purpose of performing doshaking operations,
There is no delay in message transmission. Furthermore, there are a few things that I would like you to be aware of.
A few processors produce exactly the same bucket at the same time.
If the transmission was successful,
Same as if all of those sending processors were successful.
This means that the same thing will happen. This property is time
Large multi-pro
Extremely useful for effective control of the Setusa complex
It is. Node 54 also operates in a bidirectional manner so that
Unimpeded downstream message
This makes it possible to distribute the packets. given no
In the board 54, the
downstream message received on port C
is provided on the down-tree side of this node.
distributed to both port A and port B, and
Belongs to an adjacent lower hierarchy connected to this node.
is forwarded to both of the two nodes. common·
The message packet is processed under the control of clock circuit 56.
The threads are synchronously advanced down the tree,
and blow to all microprocessors at the same time.
It is broadcasted, and
Thus, one or more processors
be able to perform a processing task, or
Be able to accept responses. The network 50 has a data transfer rate of
Compared to microprocessor data transfer speeds
faster, typically more than twice as fast
It's fast. In this example, the network
50 is a 120 nanosecond byte clock interval
The data transfer rate is micro
It is five times faster than a processor. Each node 54
has each of its three ports connected to that node.
Ports of nodes belonging to adjacent hierarchies that are
or connected to a microprocessor.
This connection is connected to one set of data lines (in this example
(10 lines in this example) and control lines (10 lines in this example)
(2 control lines) and 2 control lines.
The input signals are the clock signal and collision signal, respectively.
emergency signal). data line
and the clock line are wired in pairs.
and up-tree direction and down-tree direction
and are considered to be separate lines. Collision
Lines only propagate down the tree
It is something. The above connection structure is full-duplex data.
It forms a route, and each line has its own
No delay required to "reverse" drive direction
It's becoming like that. Next, to explain about Figure 3, the 10 data
The data line is represented by bits 0-7.
contains bit bytes, and they are divided into 10 bit bytes.
It occupies eight of the data lines. Table with C
The other line that is connected is the control line.
This line handles message packets in a specific way.
control symbols used to specify different parts of the
transport the kens. The 10th bit is in this example.
is used for odd parity. Current
As the trader understands, this system
may increase or decrease the number of bits in the data path of
It works easily even if you change the number of bits that way.
can be set. A byte sequence is a series of
Arranged to form multiple fields and base
Basically, the command field, key field
field, destination selection field, and data field.
It is divided into fields. will be explained in more detail later
As in the message, there is only one message.
It may also use a detectable
Exit with "Do of Message" code
It's becoming like that. “A” intervening between messages.
idle field (play field)
"Do)" is a cut on the C line and lies 0 to 7.
It is represented by a series of ``1'' without any
If you are in a state where you cannot even receive message packets.
This is always forwarded. parity la
In addition, changes to the status of individual processors are
It is also used to convey information in a unique way. The “idle state” is a
A state that exists between two messages.
Therefore, it is not part of the message packet.
Message packets typically contain two bytes, including a tag.
Starts with the command word for the
message is a data message.
It is said to be in the form of a number (TN).
and the message is a response message.
If so, it is in the form of an originating processor ID (OPID).
There is. The transaction number is
It has various levels of significance within
and form the basis for many types of functional communication and control.
It functions as a device. The packet is
This command word is followed by a variable length key.
Field and fixed length destination selection word
(destination selection word: DSW)
can include either or both, and these are variable
The first part of a long data field
It is. The key field is
Messages do not interact with each other in areas other than the field.
If the messages are exactly the same,
provide criteria for sorting between
It serves this purpose. DSW has many
It provides the basis for the special features of
Also, along with TN, it deserves special attention.
Ru. This system is compatible with word synchronized
Now it works using interface.
and all protocols attempting to send packets.
The setter sets the first byte of the command word
It now sends out to network 50 at the same time.
It's on. The network consists of the following
At each node, using the data contents of the field.
Sorting is done on a binary basis, and this sort
Teing is given when priority is given to the lowest number.
It is done in this way. consecutive data bits
Considering bit C to be the largest amount,
If we consider bit 0 to be the smallest quantity, then
The sorting priority is as follows. 1 the first one sent to the network 50; 2 the first command code (command word) sent to the network 50;
3. The key field has the smallest value. 4. The key field has the shortest value. 5. The data field (including the destination selection word).
6. The data field is the shortest. For the purpose of providing an overview here,
It should be noted in particular that node 54
If priority is determined in
Yon display (= collision display, hereinafter referred to as Acol or Bcol)
) was defeated in this priority determination.
This means that the sender's transmission is returned to the receiver's route.
That is. This collision display allows you to send
The microprocessor running the network
50 is used for higher priority transmissions.
has stopped its own transmission, and
and then try sending again later.
can be recognized. Simplified examples are shown in the various diagrams in Figure 2.
has been done. In this specific example, the network 50
Tree using 4 separate microprocessors
Fast random access memo arranged in structure
It is designed to operate in cooperation with the
These four microprocessors will be explained in more detail.
Then, IFP14 and three AMP18, 19 and
and 20. Total of 10 sub-figures 2A, 2B,...2
Each of J is continuous from t=0 to t=9
corresponds to one of the 10 time samples
and this net at each of those times.
from each microprocessor in the network.
Different simplifications (4 sentences)
distribution of serial messages (consisting of letters)
and port numbers at their various times.
indicates the status of communication between the host and the microprocessor.
are doing. A drawing that simply says Figure 2
indicates the state of the system before the start of signal transmission.
ing. In each of the above figures, the null state
(null state: zero state) i.e. in idle state
In order for this to happen, the transmission represented by “□” must take place.
It is a must. the minimum value
There is an agreement that the data content taken has priority rights.
Therefore, it is sent from AMP19 in Figure 2A.
The message packet “EDDV” was the first
Message packages transmitted through this system
Becomes a butt. Each message in the diagram will be explained later.
As explained in further detail, the microprocessor
High-speed random access memory (HS)
(sometimes called RAM)
ing. HSRAM26 is schematically shown in Figure 2.
It has the input area and output area shown.
Therefore, at time t=0, the packet is
The output area is FIFO (first in, first out).
are arranged directly side by side, thereby allowing the transfer
In this case, the information written to HSRAM26 in the figure is
cursor arrow as directed.
It is now possible to get out. at the time
, all transmissions in network 50
The transmission indicates a null state, that is, an idle state “□”.
There is. In contrast, t=1 shown in FIG. 2B
At the time of each message packet,
The first bytes are sent to network 50 at the same time as each other.
sent out, at which time all nodes 54 are still
The idle status display is returned, and the first layer
All transmission states above are also idle.
ing. during the first clock interval
The first byte of each message is the lowest node.
dein 1 and IN 2 is set inside of , and at t=2
(Figure 2C) the conflict is resolved, and
Both upstream and downstream transmissions continue.
will be executed. Node IN 1 is both input points.
“E” is received at the
forwarding towards the next layer in the direction, and downstream
In the direction, the undetermined
Displaying the status. However, this same floor
Node IN belonging to layer 2 Is it processor 19?
between “E” from the processor 20 and “P” from the processor 20
In the event of a collision, priority will be determined in the direction of "E".
It is determined that the port has priority, and
One that connects port A to port C on the up tree side.
On the other hand, return the Bcol signal to the microprocessor 20.
ing. Bcol signal goes to microprocessor 20
When returned, IN 2 The node is effectively
The port is now locked to the C output port.
Thereby, the command from the microprocessor 19 is
Real signal sequence is transmitted to vertex node N1
It becomes like this. IN 1 In a node, the first two characters are
are also “ED”, so as shown in Figure 2C.
Therefore, this node makes a decision at time t=2.
It has become impossible to bring it down. Furthermore, three
Sent from microprocessors 14, 15 and 19
The common first letter "E" that was
It reaches the N1 vertex node at the time shown in Figure D), and
This letter "E" is also used for all those messages.
The second letter “D” common to ji is at this apex.
When the data is transferred to the card N1, the direction of the transfer is
is reversed and directed downstream. at this point
is node N 1 is still in a state where it is not possible to make a decision.
However, at this time, a series of micro
respective third processors from processors 14, 18 and 19;
The th characters "F", "E" and "D" are in this node
N 1 is being sent to. microprocessor
20 receives the Bcol signal.
Setsa 20 loses the race for priority.
This means that the process has been
Tusa 20 becomes idle if it receives the Bcol signal.
Sends out the display “□”, and from then on this id
Only the ``□'' symbol is sent. Each output buffer
Each cursor arrow written in
The chloroprocessor 20 has been returned to its initial state.
However, other microprocessors are
This shows that the characters are being sent continuously. obey
Important events at time t=4 (Fig. 2E)
The thing is, node N 1 A determination regarding the port is made.
and that the first letter (“E”) is
Directs to the first layer node layer through all lines.
The signal is then transmitted in reverse. t=5 (2nd F
The second collision is displayed at the time shown in the figure), and this time
, node N 1 B port wins the competition,
Acol is generated. During the next few clock times, the serial
The downstream broadcast of the signal train continues.
At time t=6 (Fig. 2G), the
The first character of the tsage is all HSRAM26
It is set in the input area. even here
Another thing to keep in mind is that the node
N 1 The priority determination made earlier in
It means that it is invalidated at that point in time.
The reason is that the third number sent from the processor 18
The eye letter (“E”) is from microprocessor 19.
Loses the competition with the third character sent (“D”)
When the node N1 of the higher hierarchy
This is because Acol is displayed. Figure 2H
As indicated by the cursor arrow inside,
The microprocessors 14, 18 and 20 are
It has been returned to its initial state, and the winning My
The processor 19 transmits all its transmissions at t=4.
has already been completed at the time of. Figure 2H, Figure 2I
As can be seen from Figure 2 and Figure 2J, all input bars
Priority messages “EDDV” are sent one after another into Tsuhua
will be loaded. t=8 (Figure 2I)
Well, this message has already flowed out from the first layer.
and the vertex node N 1 is t=7
has already been reset in
However, it is the last step toward the microprocessor.
When downstream characters are transferred, they are already idle.
This is because only the two signals are competing with each other. t
At time =9 (Figure 2J), belonging to the first layer
Node N 1 and N 2 has been reset.
and the defeated microprocessor 14,
18 and 20 are all connected again.
The first sentence of the message when indicating dollars
on the network by sending
There will be another competition for priority
Become. In fact, as explained later, the winning team
The response signal is transmitted to the microprocessor.
However, this makes the invention as general as possible.
It is not necessary for those who do. In this way, the message
After being broadcast to Rosetsusa, this message
Tsage will update those microprofessions as needed.
by any or all of them
used by. how many microprocessors
The mode of operation and execution
They differ depending on the function being used.
There are many variations in their operating modes and functions.
exists. (Global Intercommunication and Control) One of a group of mutually competing messages
network gives priority to messages
The specific example above of how to
This example concerns the transfer of data messages.
Ru. However, complex multiprocessor systems
The stem has the good efficiency and versatility that is currently required.
In order to provide long-term versatility, many other
It is necessary to utilize many types of communications and commands.
Ru. The main functions that must be provided
In addition to primary data transfer,
It can be called a multiprocessor mode in taste.
response to a message, a stator
It includes a status display as well as control signals. below
The chapter explains how the various modes and messages
sorting and communication for priority assignment
sorting, communication, and
A global perspective on how to collaborate with networks.
from the perspective of a multiprocessor system
The purpose of this paper is to present an overview as described above. More details
For detailed understanding, please refer to Figures 8 and 13,
Please refer to the explanations below for those figures.
stomach. Broadcast mode
, the message is one or more specific messages.
All receiving processors are
simultaneously delivered to the processor. This mode is
To take a typical example, it is possible to
answers, status inquiries, commands, and control functions
Regarding. If the receiving processor needs to be specified
in the message packet itself.
The forwarding destination selection information contained in
Accept locally (=in each processor)
provide criteria for deciding whether to
It is becoming more and more like this. For example, the receiving process
Interior interface of the Tusa module
Jitsuku is the matsu that is stored in high-speed RAM26.
According to the packet information, the data of that packet is
Specific devices that incorporate interface logic
Is it included in the scope of involvement of processors?
Identify whether or not. Map bits in high speed RAM
Various selection methods can be created by setting
Judgment criteria can be easily set and their
Selection methods include, e.g.
selection, stored data (by “hashing”)
select part of a database, perform logical processes
selection of class type (“class”), etc. Bu
Local access control (= individual program access control)
access control (performed in the access processor)
It is used in database management systems.
It is particularly beneficial to use small over
Widely available, requiring only head software
Any distributed relational database
parts and multiple globally known logics.
Distributed of any of the local processes
Because the local copy can be accessed
It is. Therefore, this system
Specify one destination processor as the destination.
You can also select and belong to one class.
In addition, high-level database queries
is often used between separate parts of the database.
Cross-reference and consistency for a given task
reference (identification information) is required.
Transaction number embedded in message
Although TN has various characteristics,
Among other things, such global transactions
Yong's identity (identification information) and Lehua
It provides a lot of information. many tasks,
Local processes that run asynchronously to each other
local processor module
can be processed concurrently by
Each task or service is
Butask is made to have a suitable TN.
TN, DSW (destination selection word) and command
By using various combinations, substantially
Endless flexibility is becoming possible. So
The allocation and processing of
Extensive sorting/marking for many tasks at once
applying sort/merge poeration
I am becoming able to do this. Regarding TN,
It is possible to allocate and relinquish it.
and the start of the merge operation.
and stop are possible. some kind of message
For example, continuous messages, etc.
have priority over the transmission of messages.
It can be done. TN and that TN
Local processes that update the status of
By using the service, only one query
global resource status for a given TN
It has become possible to determine the minutes
Distributed updates can also be achieved with a single communication
It's summery. The system of the present invention accomplishes all of the above.
Features may extend or override the software.
be carried out without significantly increasing the burden on the
The purpose is to ensure that As a result, if the present invention is used, the conventional technology
The number of microprocessors normally seen in surgery
Equipped with far more processors than
How to adapt a multiprocessor system to problem tasks
and can be operated very effectively.
Ru. Nowadays, microprocessors are becoming cheaper.
High performance in the problem domain due to
system, even if it is simply “raw” power
The system is not only high performance (power).
can be realized. All message types and various subtypes
A consistent priority protocol that encompasses
However, the various meth- ods supplied to the network
It is designed to cover all aspects of the page. Response
response messages, status messages, and
Control messages are primary data messages.
These messages are in a different format than the
Similarly, network conflict/merge behavior
(contention/merge operation).
and thereby the right of priority while being transferred.
receive a grant. Response message in this system
This is either an affirmative response (ACK) or a negative response (NAK).
or the processor processes the message.
have the resources to meaningfully process
A message indicating that the processor is
(not applicable processor) - NAP).
A NAK response indicates a lock condition, an error condition, etc.
or overrun condition.
any of several different types shown
It's okay if it's hot. There is only one source processor.
There may be multiple sources, but the source process
After finishing sending the message,
response message requires a specific response.
Higher priority than primary data message
A ranking is given. This system also sends a SACK message (status
Status response message: status
acknowledgment message) is used.
The SACK message of
A local professional regarding Zaxion
Setusa's readiness state (what kind of actions are possible)
Displays readiness state
It is something to do. The contents of this SACK response are local
(=in each processor, i.e. local
(in the file processor) and
remain accessible from the network.
Ru. Such a SACK response is
a given task by being combined with an action.
i.e. by a single query on a transaction.
global status reporting.
Ru. Status responses follow priority protocol
Therefore, regarding one transaction number,
The response with the smallest data content among the responses
priority, thereby ensuring that at least
readiness state as a global system state.
1, which is confirmed and will not be interrupted.
It is carried out by the movement of times. Furthermore, something like this
The SACK indication is a type of primary message.
Sometimes used together, thereby
For example, system initialization, lockout operation, etc.
Various protocols are configured. Priority settings for different message types
First of all, let's talk about command codes.
is defined, and this commad code is the first
At the beginning of each message and response as shown in Figure 1.
The first 6 bits of the command word
I am using it. This determines the type of message.
and subtypes can be well distinguished.
However, there are more levels of differentiation.
It is also possible to attach it. 11th
As can be seen from the figure, in this example
In this case, the SACK response has seven different status levels.
to distinguish between bells (and also to determine priority).
It also provides standards for Reply mail
In the case of tsage, after the above 6 bits, 10
A tag in the format of bit OPID follows (Figure 3).
reference). Both TN and OPID require further sorting.
can serve as a criterion for
The reason is that these TN and OPID are tags
Does the area have different data contents?
It is et al. Each primary message
After the data is transmitted, all processors install
Even if the Turf Eighth Club is NAP
Either way, a response message is generated. that
Their response messages are also sent to each other over the network.
Contest and thereby win a single or common victory
The response message sent to the processor is then broadcast to all processors.
You will be crushed. The defeated message packet is
Simultaneous transmission will be attempted again later, but this
The second simultaneous transmission of the
network, thereby making the network virtually continuous.
It's like being used. multiple processes
If Tsusa sends out ACK responses, those
ACK responses are sorted based on OPID
It turns out. As a result of using the present invention, the task
starting, stopping, controlling, and querying tasks.
by a large number of physical processors,
Moreover, it can be executed with little overhead.
It becomes possible. This means that many processors
raw power to handle problem conditions.
It is possible to use it effectively for
Then, out of this low power, the code of the system
Dedicated to coordination and control.
This is because the amount lost is extremely small.
Coordination and control overhead is
The effectiveness of any distributed processing system
This constitutes a fundamental constraint on the rate. Aiming for global control (i.e. network control)
various types of control communications when targeted
is used. Therefore, "Stop Merge", "Status"
Messages ``Task Request'' and ``Start Merge''
or a message sequence for assigning a certain task.
The message for abandoning the task in
It is said to be in the same format as the data message.
, and therefore those messages are also included here.
We will call this the primary message. So
These control messages also contain TN.
and appropriate place in the priority protocol.
It is located at More on this later
10 and 11 will be explained below.
do. It is called a “global semaphore buffer system.”
The first use of the term was the height shown in Figure 1.
Fast random access memory 26 and control logic
The switch 28 selects the multiprocessor mode and
Both status display and two-way communication of control instructions
It is said that it plays an important role in
Because there is a fact. This global semaphore
The Tsuhua system provides duality of access
This access duality means that the
Operating network structure 50 and slower speeds
Both the microprocessor and the memo
Messages, responses, controls, or messages within the
Display status without delay and on the network.
Requires direct communication between the microprocessor and the microprocessor
so that you can refer to it without having to
This means that To achieve this
Then, the control logic 28 inserts the memory 26 into the
interleaved woed cycle
Time multiplexing
Connect to network 50 and microprocessor
As a result, the memory 26 is
Separate ports that can be accessed in common
It has become the same thing as the
Ru. global resources, i.e. networks 50 and multiple
A microprocessor is a transaction processor.
of the transaction in memory 26.
To the section allocated for storing status
As an address locator that locates
can be used. local level (=individual
processor level), all kinds of
A given transaction that encompasses the available state of
The status of subtasks related to
Updated internally in memory 26 under processor control
and the control logic 28 controls the buffer
This is done by locking into the system.
Use one of seven different ready states.
By storing entries in memory 26 different
So that it can be conveniently removed from the ivy-specific part.
It's getting old. Receive inquiries from the network
If so, processor status communication is not performed.
(i.e. "semapho" is read), it
The determination of priority for
In that case, the readiness with the lowest degree of completion
The state is starting to get priority. The above structure
All processes for one query can be
Get quick hardware response from Tsusa
It's becoming like that. Therefore for a given task
All of the distributed subtasks have completed execution.
without delay and in software.
You can know this without using any clothing. Change
In this system, the processor and
Each module is a transaction number.
It is now possible to allocate a server, and this
Transaction number assignments are available for use.
Message the transaction number in the current state.
or each global semaphore
allocated for use within the system
It is an action. The identity of the transaction
It is recommended to use the integrated display and status display.
A preferred embodiment of the process includes a plurality of processes.
Each of the
be required to send out the pages in order.
There is a complex merge behavior. If the conventional technology
For systems related to
receives its own task, completes its processing, and
The result of that processing after the final merge operation is
transfer to some kind of "master" processor that executes
We will have to take the approach of obey
The master processor determines the efficiency of the system.
This poses a serious problem. Global readiness is the process of action.
that everything in the sa is in a state of readiness.
Once confirmed, each processor is provided with
The memory with the highest priority in memory 26
messages are sent to the network at the same time as each other,
And for those messages,
There is no priority determination while the merge is being performed.
It will be done. About messages in several groups
One retransmission attempt after another, resulting in multiple
message related to the transaction number.
Arrange them in order from highest to lowest priority,
The lowest priority comes at the end.
A serial message sequence is generated. Special
Following another command message, this system
The system allows you to stop the merge operation mid-way and
It is said that it is possible to restart from the inside, and that
Therefore, if multiple machines are in the middle of execution at the same time,
If the network operation is sharing this network 50,
It has become possible for there to be a situation in which
This allows for extremely effective use of the system's resources.
It is now possible to use Therefore, at any time, this network
An operating processor connected to the workpiece 50
all related to various transaction numbers.
actions related to multiple messages that are related to each other.
It is now possible to run synchronously. 1
same transaction by two status queries
Current number, i.e. “current” transaction
If a number reference is made, all processes
of the available status levels.
, and respond in synchronization with each other. example
"START MERGE"
A message is a transaction name.
Testing global semaphore specified by member
(=survey), and if the results of this test are
If the current global state is "ready", then
(i.e. “SEND READY” or
indicates “RECEIVE READY”.
If the current transaction is
present transaction number:
PTN) value in this "Start Merge" message.
is set equal to the value of the TN transmitted included.
Ru. (If the global state obtained as a result of the test is
If it was not in the "ready" state, the value of PTN would be
“TNO (This is Transaction Number (TN)
is "0")"
(will be returned). Furthermore, "STOP MERGE"
Sage also currently has transaction numbers.
Reset to "0". In this way "TNO"
is a process from one processor to another.
Message to Tsusa (Point to Point)
``day phono'' used for
used as the transaction number for the root value
has been done. In other words, this "TNO"
``non-merge'' mode
The behavior of the code is specified. This global intercommunication system
Regarding the configuration, 3rd A, 3rd B, 3rd C, and 3rd
The one shown in Figure 11 can also be used as a high-speed lander.
For details on the configuration of the system access memory 26, see Section 8.
The ones shown in Figures and Figure 10 are adopted.
Ru. A more detailed explanation will be given later in the fifth, seventh, ninth,
This will be explained in conjunction with FIG. As can be seen from Figures 3A to 3C and Figure 11.
, the command code used in response is 00 or
up to 0F (hexadecimal), and the primary
The command codes used for Tsage are 10 (16
decimal numbers) to larger values. Therefore, respond
The answer takes precedence over the primary message and
In the sorting order shown in Figure 11, the smallest value comes first.
It's like this. 1 inside the high-speed RAM memory 26'' (Fig. 8)
Dedicated storage area (“transaction” in the figure)
The 12th area is
The word format shown in the figure (the 7 types of formats mentioned above)
status, TN assigned status, and TN unassigned status
state). This message
Among the several other dedicated parts of Mori 26″ are:
Circular buffer for input (received messages)
and storage space for output messages.
ing. Another separate separation of this memory 26″
area is used as message completion vector area.
This area contains the output message that has been sent.
It also allows you to place a pointer on a page.
, and this allows the storage of the output message
Space can now be used more effectively. As understood from the above, the memory 26 and control
As for logic 28, those cue-in
queuing function and data buffering
Logging functions are certainly important, but they also
In this case, global transactions are processed by individual processors.
Multiple joint operations where processing is performed in a distributed manner
The work has become of unique importance. (active logic node) Two networks arranged with redundancy
In any of the
Each logic node 54 has the same configuration as the other.
However, with the exception of
Only the direction reversal node 54 at the top of the
It does not have a side port, but instead has a downstream port.
Provides a simple signal direction reversal path for reversing direction.
ing. As shown in FIG.
broadly divided into two groups based on function.
can do. their functional groups
One side is a message and a collision signal
(collision number), and the other
is related to the generation and retransmission of the common clock signal.
It is something that For clock signals, different
There is a gap between each clock signal at the node
So that you do not exist, that is, with zero skew.
Synchronization is achieved so that The above two functions
Groups are not independent of each other;
The reason is that the zero skew clock circuit transmits the signal.
This is because it forms an important part of the system.
Ru. Word clock (two serial bytes)
) and bite clock are used.
It will be done. In particular, I would like to mention that this active logic
Setting or resetting the state of the network node 54
Also when setting different operating modes
Also, this active logic node 54 can be accessed from the outside.
There is no need for, and indeed no such control
is never done. Furthermore, each node
54 have the same structure, recent ICs
technology to mass produce those nodes.
is possible, thereby improving reliability.
It is possible to realize considerable cost reduction while
can. Each “port” of A, B and C mentioned earlier
each of which has 10 input data lines and 10
output data lines. For example, A
At a port, the input line is denoted by A and the output
The line is represented by A0. for each port
the upstream clock line and downstream clock line.
Along with the Tsuku line, there is one “Collision” line.
lines (i.e. “collision” lines) are used (e.g.
For example, Acol is used for A port). Apo
The port and B port data lines are
It is connected to multiplexer 60, and this multiplexer
The lexer 60 recognizes two words that conflict with each other.
the preferred word or (their conflict)
the common word (if the words are the same)
is the data signal C0 at the upstream port (C port).
to the up register 62 connected to
Switch and connect. At the same time, more
Sent from a node in a higher hierarchy and received at the C port.
The downstream data taken is transferred to the down register 6.
Shifted in to 4 and shifted from there.
both A and B ports.
occurs as output. Serial upstream signal sequence consisting of bytes
One of them can be blocked, but
However, it also affects the upstream or downstream direction.
There is no extra delay towards
Multiple words are connected to the word clock and bytes.
under the control of the clock.
UP register 62 and down register
64. mutually supplied to A port and B port at the same time
Bytes that conflict with each other are stored in the first and second paris.
It is sent to the tay detectors 66 and 67 as well as the comparator 7.
0, and this comparator 70 receives 8 data
Based on bits and one control bit, the minimum
Priority is given in such a way that the data content of the value gets priority.
Determine rights. Professionals for this priority determination
In the system, the ``idle'' signal, i.e.
The signal is interrupted when sage is not present.
It is said to be a series of "1"s that continue without interruption. Parite
Errors are typical, such as the presence of excessive noise.
causes or other signal transmission or circuit operation.
may be caused by any factor that affects
It is. However, the system of this example
parity error display is another important
It is also used for various purposes. That is, a certain ma
When the microprocessor enters the inoperable state,
Each transition is marked and this map
-King has all exits including parity line.
The force line becomes high level (i.e. its value is “1”)
(to become), and therefore by it.
so that an odd parity error condition occurs.
It's getting old. This parity error display is 1
If one error occurs, you can
This marker is transmitted as a
Therefore, the system is
Identify what the change is and what kind of change it is.
start a procedure to determine whether
It is becoming possible to do this. A pair of parity detectors 66, 67 and a comparator 70
supplies a signal to the control circuit 72, and this
Control circuit 72 provides priority message switching.
A circuit 74 is included, and a priority determination is made.
Then, in response to the output of the comparator 70, the multiplexer
Load the sensor 60 into one of two states.
It is configured to
to generate and propagate collision signals to
It is configured. Transition parity error propagation circuit
The reason for the name 76 is that this circuit
Parity where all lines are set to 1 at the same time
force an error condition into the network.
This is because it is something that comes out. The reset circuit 78 is
This is to restore the node to its initial state.
end of message
message:EOM) detector 80. The functions explained above and the machines explained later
In order for the functions to be carried out, each active
The microprocessor at the logic node
to use chips to perform those functions.
However, as shown in Figure 5,
according to the state diagram and the logical formulas listed below.
update by ensuring that the functions of
can be easily executed. Figure 5
In the state diagram, state S0 represents the idle state.
Messages that are in conflict with each other
Connect one port to the other port to be identical
It also represents a state in which no decision has been made to give priority to
are doing. S1 state and S2 state are A port, respectively.
B port is prioritized and B port is prioritized.
It is in a state of being Therefore, the data content of B is
larger than the data content of A and parity to A
B. If no error exists, or B.
parity errors exist (these
It is said that there is no parity error in A of
condition and that there is a parity error in B.
The condition that BIPE and
is expressed by the state of the flip-flop.
port A is given priority. A
The opposite logical state (logical condition) with respect to and B
) is the state in which this device should transition to S2 state.
It exists as a (condition). higher level
A collision occurs in a hierarchy from a node in that hierarchy.
If an indication to the effect that
It is inserted into the downstream direction signal and is used as COLN.
It will be sent back. This device is
state, S1 state, and S2 state.
Even if the state is met, the system will transition to the S3 state,
This collision signal is then transmitted downstream to Acol.
and transfer as Bcol. S1 state or S2
state, this node has already made a decision.
Therefore, the collision signal is lowered using the same method.
In the flow direction, to (two) nodes in the lower hierarchy
At this time, the priority message
The switching circuit 74 connects the A port or
Or it is locked to the B port. Reset circuit 78 includes an EOM detector 80.
Using this detector 80, the S3 of the node
Then, a reset to S0 (FIG. 5) is performed. No.
In reset mode 1, as shown in Figure 6,
Terminate the data file in the immediate message.
End of Message (EOM)
It uses fields. one glue
Multiple flip-flops and multiple games
The following logical state is created using URINC・URC・URCDLY Here, URC is the control in the up register.
represents bits, and URINC is this up register.
The value of the control bit in the input signal input to the
and URCDLY is the up register delay.
C value in the extended flip-flop (= control bit
value). As shown in FIG. 6, in the control bit string,
A bit pair (bit pair) is a set of two consecutive bits.
tuto pair) makes certain fields explicit.
from one field to the next with
The transition is clearly indicated. give an example
and a system that is followed by only "1", which is used when idle.
From the control bit state, bit sequence of “0,1”
The transition to the bit pair is the opening of the field.
It clearly indicates the beginning. This “0,1” series
sequence identifies the start of the data field.
It is used for Subsequent “1,0” control
A string of bits is an internal field.
Ishi is displaying subfields and also
The address of message (EOM) is “0,0”.
Identified by a pair of control bits. "1,0"
A string of bit pairs followed by a “0,0” bit
The state in which the two pairs come is a state like no other, and it is easy to
can be identified. URINC signal, URC signal
and URCDLY signals are ANDed together (logical
product), and each of these signals is
There is a delay of one clock at a time. So
The waveform of the signal obtained as a result of ANDing these
is at a high level until message packets start.
At this starting point, the level changes to a constant level,
And this data (=message packet)
The waveform remains at a low level for the duration of the waveform.
This waveform shows the byte clock after the EOM occurs.
Return to high level after 2 locks have passed.
Ru. This waveform URINC, URC, URCDLY is correct.
EOM is detected by a transition that changes to . No.
As noted in Figure 5, this positive transition
The return operation from S1 or S2 to S0 is triggered.
It will be done. When a node in a higher hierarchy is reset,
This results in a state, which is a collision
Indicates that the condition has disappeared. This logical state is
Starts the return operation from S3 to the ground state S0
let What I would like you to pay attention to is this
In the N state, the end of the message is
``Run through'' the 50 floors of the arcade one after another.
As it propagates downward to those layers,
That's what I mean. As described above, each node
The code is self-responsive regardless of the length of the message.
It is now possible to set it. Please be more careful
What we want to do is determine the initial state of the network.
Regardless, if an idle signal is provided, all
This means that all nodes are reset to S0 state.
That is. Collision signals are generated by multiple processor modules.
It will be returned to the original level. Those modules are here.
Stores region state information and idle system
This ID returns to the operation of sending the
Transmission of Le Sequence Wins Competition
This is done while the processor continues transmitting.
Ru. The processor converts COLN to
A new transmission can be started as soon as a transition is detected.
It is made possible. In addition to this,
Rosetsusa uses N as the number of layers in the network.
over 2N byte clock times when
If the idle signal continues to be received, start a new transmission.
and it is possible to start
This situation is also the same as the former situation.
If the previous transmission is within this network,
Because it shows that there is nothing left.
be. Those who wish to enable these new transmissions
According to the latter of the equations, the network
Even the traffic of the participating processors is small.
message synchronization status with the network.
You can enter this program for the first time.
The processor communicates with other processors on this network.
another processor when initiating intercommunication between
No need to have polling from. The parity error state is shown in the state diagram in Figure 5.
is set according to the following logical formula.
It is something that PESIG=AIPE・+BIPE・
BIPEDLY If the logic state of this PESING is true, the
The input signal URIN to the input register is (URIN
0...URIN7,C,P=1...1,1,1)
Ru. In order to satisfy the above formula, the transition parity is
The A error propagation circuit 76 is for AIPE, that is, the A input
Flip-flop for power parity error,
Includes delayed flip-flop (AIPEDLY)
I'm here. The latter flip prop is AIPE's
According to the setting state, byte clock 1
The state is set with a delay of one minute. Therefore, regarding A input
In other words, the flip prop for AIPE is
When the state is set due to a tie error.
, the PESIG value remains high for one byte clock.
Therefore, this PESIG signal
is the first indication of a parity error.
It is propagated only once. multiple days
data bits, control bits, and parity bits
This is the same when all of the values are “1”.
A state arises, which is related to the state of global resources.
Occurs when the transition described earlier occurs in
state. This makes all lines high.
level and forcefully create a state where everything is “1”.
The total even number state (odd parity state) is
established, resulting in AIPE in the state described earlier
Flip flop and AIPEDLY flip flop
is set and displays a parity error.
Become so. The above configuration is for receiving at port B.
The message packet received has a parity error, or
or force a parameter to display a change in status.
The same method is used even if the property display is included.
Operate. Occurs due to noise effects and other variables
Parity errors that occur are usually caused by
It has no effect on operation and is due to redundancy.
Are you using a dual network with long-term security?
It is et al. For monitoring and maintenance,
Using an indicator light (=indicator light: not shown)
to display the occurrence of a parity error.
Ru. However, only one message indicating a change in status will be sent.
For parity errors that may occur,
routines for assessing the significance of changes
is started. As shown in FIG.
The clotting system that is
Regardless of the number of hierarchies used within
between the clocks in the node elements of
In order to ensure that the skew of
In other words, to maintain a zero skew condition.
It provides a unique means of clock
Circuit 86 includes first and second exclusive OR gates 8
8 and 89, indicated by A and B, respectively.
The outputs of those exclusive OR gates are added to the adder circuit
92, there is a subtraction between them (i.e. "B-
A) are combined so that the operation
The output of this adder circuit 92 is sent to the low-pass filter 9.
After being passed through 4, in the phase lock loop.
The output from a certain oscillator (PLO) 96
Controls the phase. First exclusive OR gate 8
The input to 8 is the output of this PLO96 and the adjacent
Isolated drive circuits from higher-level node elements
97 and a downstream clock supplied via 97.
Ru. This line of clocks has the word "word clock" on it.
This word clock is
After a known delay τ from the neighboring higher hierarchy
and this same clock belief.
The number is connected to the adjacent one via another isolated drive circuit 98.
to be returned to that node in a higher hierarchy than the one it touches.
It's getting old. to the second exclusive OR gate 89
Inputs are connected to this word clock and the adjacent
Clocks and feedback from lower levels
Similarly, this lower hierarchy consists of this PLO9.
The signal is being received from 6. The word clock line above is the third
connected to the two inputs of the other OR gate 100
and both their inputs are directly connected
is connected via the τc delay line 101.
It is with what is there. This allows you to
This word clock has twice the frequency of the clock.
Part-time job/crotch at the right time
I am getting a clear signal. The operation of the clock circuit 86 described above is similar to that of the clock circuit 86 shown in FIG.
This can be better understood by referring to the timing diagram.
I can figure it out. Clock out signal (clock out signal)
force signal) is the output of PLO 96. This black
The primary purpose of a networking system is to
What are the clock output signals for all nodes in the clock?
Maintain zero time skew between cows
Naturally, since there is a
Their clock output signals are at their nominal frequency.
The numbers must also be the same. node
The delay τ due to the transmission line between
However, the value of this delay is itself a given value.
Set the time to a long time within the range that does not exceed the maximum delay time of
It is also possible to set People disclosing here
If the method is adopted, the network and node
byte clock speed in an actual system.
At the adopted speed (nominally 120ns),
Can be as long as 28 feet (8.53m)
It is. As will be readily understood by those skilled in the art, possible
The largest number of processor modules available
For networks that are not specifically implemented,
By adding more layers, these 28
It is easy to obtain a length that is an integer multiple of . So
, the corresponding waiting time, i.e. the net
The transmission time for transmissions made through networks increases.
make it big The wave just below the clock out signal in Figure 7
Higher than the adjacent one, as indicated by the shape.
The word clock obtained from the rank hierarchy is
It has the same waveform as the checkout signal, but only
is delayed by τ. This word clock is
A fundamental timing standard common to all nodes
But is such a thing possible?
The leading edge of each clock out signal is
can be controlled inside the tract, and their
By having the leading edge precede the word clock.
to keep all nodes in sync.
This is because it can be done. Waveform A and wave
As can be seen with reference to form B, the first OR gate
Pulse A generated by 88 is the pulse A of the word clock.
terminating at the leading edge, while the second OR
The leading edge of pulse B generated by pulse 89 is
It coincides with the leading edge of De Klotsk. This B pal
The trailing edge of the
at the start of the feedback pulse from the
and this feedback pulse is only τ
Because of the delay, the B pulse has a uniform duration.
It has become fixed. The clock circuit 86 receives the pulse A
Keep the duration of pulse B the same as that of pulse B.
Why does it work like this?
advances the phase of PLO96 to increase the probability of synchronization.
As the output signal of the adder circuit 92 increases, the output signal of the adder circuit 92 increases.
signal (signal after subtraction “B-A”) is close to zero.
Because I will follow you. In fact, it is indicated by a dashed line.
It may also be ahead of the preferred position, as shown in
Adjustment for the leading edge of the A signal, which may be delayed
The leading edge of this A signal is the word clock.
so that it is at a position that precedes the leading edge of by a time τ
do. Clock out on all nodes
so that the leading edge of the signal is located in this preferred nominal position.
If so, there will be a zero shift between word clocks.
A queue condition will exist. Therefore, net
Each processor connected to the workpiece
The entire path from one processor to another
Although it is freed from constraints regarding length, it is
The fact that delays do not accumulate and that during propagation
This is due to the fact that there is no difference between
Ru. To generate a double frequency byte clock
In order to
The word clock is duplicated and this delay
The line extension 101 also supplies a signal to the gate 100.
Ru. Therefore, it is indicated as bite clock in Figure 7.
As you can see from the waveform shown, the word clock
has a duration τc at both the leading and trailing edge positions of
A byte clock pulse is generated. this
Pulse generation occurs at each word clock input.
It occurs twice during Tabal, and all
generated at the node in synchronization with the word clock.
It's working. In the above explanation, nodes and node
The delay caused by the transmission line between
Which direction is the transmission direction from layer to layer?
are almost identical, so in effect this system
All word clocks and byte clocks in the system
If the clocks are kept in a stable phase relationship with each other,
That is a natural premise. therefore local
Bytes generated internally (=inside an individual node)
The clock is set at each node.
2-byte word (= 2 bytes) of the page
word) for its individual bytes.
It offers king functions. More than one active logic node can be dispatched at the same time.
prevent contention between sent message packets.
The decision is made based on the data content of
There are potential benefits whenever
Ru. In contrast, for example, the issue dated February 17, 1981
U.S. Patent No. 4,251,879 “Digital Communication”
speed-independent arbiter for network
Speed Independent Arbiter Switch
for Digital Communication Nbiworks)
The majority of publicly known information, including those
The system determines which signal was first received in time.
The aim is to determine whether the
It is also possible to use a processing circuit or control circuit installed in the
It has become a (Processor module) Illustrated in the schematic diagram of the entire system in Figure 1.
The individual processors
Eighth Processor (IFP) 14 and 16 and
Process module processor (AMP) 18
This is shown as a specific example of ~23, and this
These processors roughly reprocess multiple key elements.
It is divided. These processor modules
(IFP and AMP) configuration
The example is between the general functional reclassification in Figure 1.
However, if
It also shows quite a few further subdivisions.
Become something. As used herein, "Professional"
The term “setsa module” is illustrated in Figure 8.
It refers to the entire assembly that is
This assembly includes the optional requirements described below.
IFP or AMP can be
It will be able to function as either one.
Also called a "microprocessor system"
The term refers to a system with a built-in microprocessor 105.
This refers to the stem 103, where the micro
The processor 105 is, for example, an Intel 8086 type processor.
(Intel 8086) 16-bit microprocessor, etc.
It is. The address of this microprocessor 105
The microprocessor path and data path
Inside the Tsusa system 103, for example,
General peripheral systems such as in-RAM107,
and peripheral device controller 109.
Ru. This peripheral device controller 109 is a
Tsusa module is an AMP and a peripheral device
Can be used when is disk drive 111
This is shown as an example. In contrast to this
This processor module can be used as an IFP.
If the
As shown, this controller or interface
interface, for example, a channel interface.
You can replace it with IFP for such a specific example
is connected to the host system channel or bus.
It will be used for communication. This microprocessor
The Tsusa System 103 has conventional general controls.
Can use rollers or interfaces
So those controllers and interfaces
There is no need to explain it in further detail. One device per microprocessor
Using a hard disk drive improves both cost and performance.
Being able to show that you have an advantage in terms of
It should be noted that Such a method is advantageous.
This is common when it comes to databases.
However, sometimes one
microprocessor accesses multiple secondary storage devices.
configuring the microprocessor for access.
Sometimes it is beneficial to In the schematic diagram,
To simplify the diagram, other commonly used
Regarding the inclusion of subsystems
is not shown. This omitted subsystem
The system is, for example, an interrupt controller, and
The controller is made by a manufacturer that manufactures semiconductors.
for use in combination with their own in-house systems
It is supplied to In addition, the present invention provides
Achieving the maximum possible redundancy and reliability
Supplies power to processor modules that can
The importance of taking appropriate measures to
However, it will be understood by those skilled in the art. In the microprocessor system 103
Peripheral controls shown as optional elements
Roller 109 and channel interface
is the IFP interface and disk in Figure 1.
This corresponds to a network controller. this
On the other hand, the high-speed RAM 26 in FIG.
First HSRAM26' and second HSRAM26''
and each of them has a time mark.
By multiplexing (time multiplexing)
From above, it becomes a de facto 3-port device.
and one of those ports (indicated in the diagram) is
via the micro port (port marked “C”).
Connected to the processor's bus system.
Each of the HSRAMs 26' and 26'' has a first
Second network interface 12
0,120', thereby each
1 and 2nd networks 50a and 50b (this
These networks are not shown in Figure 8.
), input (reception) port A and output (transmission)
Communication is now performed via port B.
Ru. In this way, two systems with mutual redundancy
system, so a second network
Interface 120' and second HSRAM2
You only need to explain 6″ in detail.Network
About Ku Interface 120, 120'
is shown and explained in further detail in connection with FIG.
However, if they are broadly reclassified, they are as follows.
It can be divided into the following four main parts. 10 input lines from the second network 50b.
interface data bus and
H. via the interface address bus.
The input register connected to the A port of S.RAM26''
register array/control circuit 122; The output line to the second network 50b is
interface data bus and
Face address bus and second HSRAM
Output resistor connected to 26″ B port
data array/control circuit 124. interface address bus and input
Turf Eighth Data Bus and HSRAM2
Connected to 6″ A port and B port,
Microprocessor bus interface/
Control circuit 126. Receive word clock from network,
and for controlling the interface 120'.
multiple objects that are synchronized with each other and have an appropriate phase relationship
A clock generation circuit 12 generates a clock of
8. Second network interface 12
0' and HSRAM26'' are microprocessor
By collaborating with the service system 103,
Networks that operate faster and more
Transfer data to and from processors that operate at low speeds.
coordinate, and furthermore, their differences.
Natsuta system (= network system and program)
messages exchanged between
It also serves the function of creating a queue. My
Chloroprocessor bus interface/con
Troll circuit 126 is a microprocessor system.
In cooperation with the stem (read/write function: R/W
function)
This microprocessor system can
at least if it is an Intel 8086 type)
Ability to write data directly to HSRAM26″,
The ability to receive data from this HSRAM26″
It is equipped with The structure of IFP and the structure of AMP are related to their actions.
are similar to each other, but
, the internal input message status of HSRAM26″
Storage area size and output message storage area size
There is a considerable difference between IFP and AMP in terms of
There may be differences. relational day
In database systems, IFP
of the host computer by constantly using the work
In order to meet the requirements, HSRAM2
New features from high-speed network are installed inside the 6″
A large input message box for receiving messages.
It has storage space. The opposite is true for AMP.
It can be said that it is transmitted to high-speed network.
For processed message packets that
More storage space is becoming available.
This is because it has to be done. HSRAM26″ is
Maya in the microprocessor system 103
It also operates in cooperation with the RAM 107.
Main RAM 107 is for each network
Equipped with a message buffer section.
Ru. For microprocessor system 103
The system address inside the main RAM 107
The aspect of space space allocation is shown in FIG.
Let me briefly explain this. General method
Storage capacity for random access according to
Leaves space for expansion to be used if the
The system random access function
and the /0 address space
and functions of ROM and PROM (including EPROM)
also has an address space allocated for
It has become a Additionally, the system address space
some parts of the first and second parts, respectively.
Messages sent from high-speed RAM 26', 26''
packets and send them to high-speed RAM.
allocated for message packets
ing. This provides great flexibility in system operation.
The microprocessor
The server 105 addresses HSRAM26″
Even if it is possible, the main RAM 107
Through the function of software and hardware,
Is it possible to become less constrained by the interdependence of
It is et al. I will explain about Figure 8 again, but I have already mentioned it.
It can be accessed from two directions.
HSRAM26″ is in multiprocessor mode
control, distributed updates, and message packets.
performs the core function of managing the flow of
It is configured to These purposes and further
In order to achieve the purpose of
It is divided into a different number of internal sectors. 8th
of the relative placement of the various sectors shown in the figure.
The aspect is that the individual processors in this system
This is used in all modules.
and also specifies the boundaries of those sectors.
The specific address is based on an actual system.
This indicates the address being used.
Please note that these notes
The size of re-sectors and their relative placement
can vary greatly depending on the specific system situation.
This means that it is something that In the example shown, 16 bits
memory words are employed. selection map
and the response directory is set once during initialization.
A dedicated lookup of the kind that you only need to write
table, while the transaction number
The bass section can be dynamically revised (= movement
You can change the contents as many times as you like
(I made it like this) by providing a table
There is. The memory section of the selection map is located
However, in this specific example, the basic
Basically, inside this memory section, there are four
Different maps have come to be used.
and those maps can be used in an interrelated manner.
It is something that will be done. in the message packet
The included destination selection word (destination
selection word: DSW) is in HSRAM26″
used in conjunction with the dedicated selection map of
It will be done. This destination selection word has a total of 16 bits.
and 12 bit positives of which
Map address and 4 others occupying the area
map selection data occupying bits of
It is said that The first 1024 16 bits of HSRAM
The pine memory words each have four pine
Contains the drop address value. specified in DSW
one memory to HSRAM according to the address value
All four masters can be accessed by simply performing memory access.
Map bits for the tup are obtained, while
And the map selection bit included in that DSW
now determines which map to use.
It's summery. Figure 15 shows the concept of the above map section.
The figure shows the structure of each
4096 x 1 bit as if the map were physically separated
shown as if it consisted of a single RAM.
It is. Taking into account the convenience of implementation,
As shown in Figure 8, all map data
data is stored in a single portion of HSRAM.
It is convenient to do so. DSW management section 1
90 (Figure 13) is one 16-bit HSRAM
The four maps in Figure 15 obtained from the word
, for 4 bits from each of them.
Controls plexing motion. Those skilled in the art will understand
As can be seen, the advantage of this method is that HSRAM
used to access other parts of
The processor initializes the map using the same means as
The point is that it can be configured. Furthermore, the transfer of three different classes (classifications)
The preselection word is used and correspondingly,
The storage location of the selected map is the hash selection.
part, class selection part, and destination processor identification
Other information (destination processor
indentification: DPID) divided into selected parts
There is. This DPID is determined by the processor 105.
the intended destination for the message packet.
It also specifies whether a specific processor is
It is. On the other hand, the class selection part
The processor receives the message packet.
Multiple processes belonging to a particular processing class to take
whether it is one of the tusa, i.e. the process
Specify whether or not you are a member of the Tusa Group
It is something that The hash value is a relational
There is a database inside the database system.
It is stored according to the distribution method when distributed.
This distribution method is adopted in the system.
Algorithms for specific relations
It follows the system and distributed storage method. child
The hash value in the specific example is
When setting the data, the processor
primary responsibility for data and backup responsibility.
Specify it as having either one of the following.
It is becoming possible to do this. Therefore, more than one
HSRAM26″ can be directly selected by the selection map of
whether the processor is the destination or not
I am now able to use the method of determining
Ru. This feature allows messages that have been given priority
all network interfaces 120
The method of broadcasting to
It is a complementary function and does interrupts.
Status of microprocessor 105 without
Functions that allow local access to
There is also. Independent from other parts of HSRAM26″
one section that has been created is globally distributed.
A central location for checking and controlling various activities.
It functions as a means of As already mentioned,
Also, as shown in Figure 3, the network
50b, and this network 50b
For each of the various processing received from
Zaxion number (TN) is assigned.
Ru. TN is included in the message
is received by each processor system 103.
when executing subtasks independently from each other.
Global transaction identity
(transaction identification information).
Multiple available transistors in HSRAM26″
for storing the address of the number
Dedicated blocks perform those subtasks.
When the microprocessor system 103
locally controlled and updated status
Contains entries (=already stated items about status)
are doing. TN is used when intercommunication functions are performed.
, a variety of different sources exist both locally and globally.
Used in usage. transaction number
calls the data to identify the subtask.
Message flow for giving commands
to control the dynamics of global processing as well as
Used to identify the type of food. Tran
The execution number is assigned during global communication.
can be applied, abandoned, or changed.
Wear. These features are described below.
This will be explained in more detail below. Perhaps the most complex feature of TN is
The most effective feature is the sort net
network (network with sorting function)
for a given control process by cooperating with
related local processors (=individual processors)
Enables decentralized updating of the status of
It is the ability to do something. Each control process
(i.e. task or multiprocessor sliding)
has its own TN. Readiness state (how the processor operates)
The value of H.
Transaction number section of S.RAM26″
It is designed to be held in the
The value of the state of the microprocessor
locally under the control of the system 103 (=individual processes
inside the Tusa module). microphone
The processor system 103 is configured as shown in FIG.
the appropriate entry in the answer directory (e.g.
SACK/Busy) (address is "050D (hexadecimal)")
can be initialized, and thereby
By transferring the image exactly as it was duplicated.
Therefore, the HS of this SACK/Busy status
Input to RAM26″. A certain TN address (=
(Storage location corresponding to transaction number)
The entry entered in is HSRAM26″
through the A and B ports of the
- network 5 via face 120'
It is now possible to access from 0b.
Inquiries can be made using status requests (status
request) command code (see Figure 11) and
"Status request" message including TN
This is done using a page. interface 12
0' is stored in the TN address of the specified TN.
Please write in the appropriate format using the content provided.
The reply date containing the received reply message.
refer to the directory. global space for a given TN
Status queries are sent to a second network interface.
If the face 120' is received,
direct control that is only under hardware control.
A response is elicited. No prefix communication is required.
Also, the microprocessor system 103
be interrupted or affected
Nor. However, the "lock" display is
by being transferred to interface 120'.
If the status is set by
The microprocessor system 103 disables interrupts.
The interface 120' also
Lock word obtained from the base “0501 (hexadecimal)”
continue to communicate until its removal occurs at a later date.
Ru. The readiness word format is
“Busy: state in progress” in Figure 12
7 from ``initial (initial state)''
Fig. 12 shows the actual situation.
One useful example adopted in the system
An example is illustrated. More readiness
Examples of changes such as classifying into types or fewer types
Although it is possible to change the classification to
By using seven types of states, many
A wide range of control can be achieved to suit the application.
Status level of individual TN in HSRAM26″
(= Entries stored in individual TN addresses
Inherit the level of readiness indicated by
Continuously updated, thereby making use of subtasks
Possibilities and progress of processing subtasks are reflected.
It is important to keep the microprocessor
It is considered the responsibility of the system. updates like this
Using the format shown in Figure 12,
Write to TN address in HSRAM26″
It can be easily carried out by In Figure 10, each status response (status
response) is a number from “05” to “0D” (hexadecimal).
For all objects, the first part is stamped.
Status response command code (status
acknowledgment command code: SACK)
It's starting. Those sent to the network
The SACK response is actually the command in Figure 10.
code and word format in Figure 12
and the source processor D (OPID)
This is shown in Figure 11.
As shown below. Therefore, those SACK responses
The answer is based on the overall priority convention shown in Figure 11.
Internally, a set of priority subgroups
forming a loop. OPID is related to priority convention
The reason why it has meaning is, for example, if multiple
The processor is working on one TN
However, none of them are in a "busy" state.
If so, choose the best broadcast
The destination message is judged based on this OPID.
This is because you will be killed. Transfer and system
Coordination of the program is also based on this data.
(OPID). Superior to SACK messages (=SACK responses)
There are rules for seniority and multiple My
Simultaneous response from the processor system 103
is sent, and network 5
0b dynamically (= while transmitting)
This is due to the fact that the determination of prior rights is carried out.
for a given task compared to traditional systems.
Determining the status of global resources related to
It is now being done in an improved way.
The resulting response is unique and regulated.
It never represents an undefined state, and
is a local process with no software required.
time for each processor (=individual processor module)
It doesn't make you waste your money. Therefore, for example, task
due to frequent status requests that prevent the work from running.
Never do anything that would cause a deadlock.
do not have. At various status levels,
You can take advantage of the chip processor's many optional actions.
I can do it. local processors
can continue to operate independently and in a single
A single global priority can be determined by querying
What does it mean that a given response is elicited?
It was an unprecedented thing. Regarding the series of states shown in Figure 12,
It may be helpful to explain this in some detail here.
Probably one. “Busy” state and “waiting”
(waiting) state means that the assigned
Delegated sub-tasks will be completed over time.
We will now proceed to a stage close to completion.
If you are in "waiting" state, please update
state that requires a communication or event
It represents. These “bizui” and “wazai”
The status of ``eating'' is higher than the status of TN.
Rise to a higher level and finally the TN
Send or receive messages/packets related to
I want to reach the status level that I can.
This is an example of level increase. On the other hand, sending or receiving message packets
In addition to the above, there are other characteristics of TN.
The ability of TN in message control is demonstrated.
It will be. microprocessor system
103 now has a message to send
, the status display will be "Ready to send".
ready)”. microprocessor system
The system 103 participates in updating the status display.
Then, using the word format shown in Figure 12,
Set the value of "Next Message Vector" to HS
Input to RAM26″.This input entry
The corresponding output message is sent to HSRAM2.
6″ from which location should I take it out?
It is clearly stated. This vector is
Combine multiple output messages related to TN into one
In order to throw (= chain),
At the work interface 120'
For internal use. Functions related to the above functions are displayed as "Ready to receive".
(receive ready) state. this
In the “Ready to receive” state, the storage location of the TN is
MicroPro
Input data obtained from the setsa system 103
The page count value is now retained.
This input message count value is
Messages that can be received related to TN
This is a value related to the number of . This count value is
As input messages are transferred one after another,
It may be decremented and eventually reach zero.
be. If it becomes zero, there will be more messages
overrun.
The status will be displayed. As above
and connect network 50b and my network using TN.
of transmission between the processor system 103 and
The speed is adjustable. Local (= for each processor) station
In terms of aspects, individual processor
If the process is being performed, the TN will
The entire system is displayed in messages and received messages.
It is held as a constant and unchanging standard that is valid in
Ru. The “TN0” state, that is, the default state, is
You should use tsage in non-merge mode.
A local command to indicate the fact that
It also functions as a card. To explain from a more global perspective, “TN0”
and various values with “TN>0” that are different from each other.
By distinguishing it as a property of
Of the multiple command functions that use TN,
One command function is defined. In other words, that
By distinguishing TN like
Characteristic description that indicates either "merging" or "non-merging"
(Characterization) is the message of each person.
The packet will be accompanied by
priority determination and sorting for multiple messages.
The dominant way the system works is to
The formula has been obtained. Similarly, "Assign
"Assigned",
“Unassigned”
"Non-processor state)", "Non-processor state"
Participant)” and the string “Initial”.
Global intercommunication and control functions using status
is now being carried out. “Unassign
The 'do' state indicates that the processor has previously abandoned the TN.
and therefore it re-tns
Receive new revitalizing primary messages.
This is a condition that needs to be taken. If the status display is
When the processor should have been ``signed,'' the
If you are viewing “Assigned”, this is the TN
was not entered properly.
Therefore, corrective action must be taken.
No. If TN should be "unassigned"
If it is set to "assigned" when
This could be due to an incomplete transfer or
Between two processors in search of a new TN
is an indication that a conflict is taking place in
There is. These “assigned” and “unassigned”
Both are treated as readiness states.
The reason is that they are not labeled.
At this stage, the processor still has no knowledge of the TN.
This is because the work to be done has not yet begun. Furthermore, the ``initial'' state and the ``uninvolved process''
The "tsusa" state is also important in relation to global resources.
A processor attempting to go online will immediately
First, you must complete the procedure to join this system.
The processor must be in the “initial” state.
This condition means that this processor cannot be brought online.
Administrative steps must be taken to
It represents that. Regarding a given task
A processor in the "non-participating processor" state is
No need to perform any processing locally
However, I decided to track and monitor this TN.
If this TN is inadvertently used inappropriately,
It is necessary to make sure that this does not happen. To explain about Figure 10 again, HSRAM
26″ dedicated directory or reference section is:
In addition to the types explained above, hardware
The priority used to generate a response to
Multiple other types of messages granted with
It also includes ji. NA (not assigned)
The entry ``has not been received'' is used for future
prepared for use and kept in a usable condition
It is. Three different types of NAK responses
(Overrun, TN error, Locked)
each NAK response) whose data content is the smallest
value and therefore has the highest priority
But it seems that those NAK responses have an error condition.
This is because it shows. after multiple SACK responses
ACK response, and NAP response (non-applicable processor
responses), and their priority decreases.
arranged in order. In this specific example configuration,
Two response command codes are assigned functions.
(i.e. NA), they are
It is kept ready for future use.
Ru. The directory explained above is the software
It can be initialized by
A wide range of different responses can be utilized by the air
What kind of message text
However, it should occur quickly and flexibly.
I can do it. From other parts of the above directories
uses one independent part that is independent,
TOP, GET, PUT, and BOTTOM
address, i.e. the circular bar for the input message.
Pointers about Tsuhua's features and completion outputs.
A pointer to a message is stored.
Each of these pointers manages input messages.
and the management of output messages.
Functions in conjunction with each dedicated sector of S.RAM26″
It has come to fulfill its purpose. For input message
A circular buffer method is used for this purpose.
If HSRAM26″ directory
“TOP” stored in the input message
variable address that specifies the upper address location for the
It's becoming a dress. Same directory sexy
The PUT address stored in the
Where should the circuit store the messages to be transmitted?
This specifies the address location. GET
The address is blanked out by the software.
The hardware recognizes the address location being processed.
The software allows you to
It is set and continues to be updated. To manage input messages and buffers, use PUT.
Set to the bottom address of the buffer.
and the GET address is equal to TOP
This is done by starting from a state where
Ru. Operationally determined by the software
The rule is that GET is set equal to PUT.
This means that if such a situation occurs,
If set to
This may result in the occurrence of
Ru. The input message is input in HSRAM26''.
When a message is input to the message buffer, the message is
message length contained within the message itself
The value determines the starting point of the next incoming message
and then stored in the directory
The next input message for the PUT address.
The storage location within the buffer that should accept the page.
Changes are made to display the text. More than
Microprocessor system
103 uses the input menu when their work ability allows.
To be able to take out the tsage
It's summery. Output message storage space in HSRAM26″
The data stored in the
Output media held inside the circular buffer
Tsage completion vector and HSRAM26″
used with the next message vector in
It will be done. Editing (assembling) individual messages
and storage at any location.
You can also create multiple messages that are related to each other.
messages, send them over the network.
The process of making connections (chains) to
I am becoming able to do this. HSRAM26″
In the directory section of TOP,
BOTTOM, PUT, and GET addresses
input and updated as previously described.
The output message completion bar is
Dynamic current information about locations within Tsuhua
The mark is maintained. The message completion vector is
Messages stored in the output message storage space
sage and has already been properly forwarded.
This is indicated by the response received.
Configure an index address to point to the page.
has been completed. As explained later, this system
is output by the microprocessor system 103
Makes it easy to enter messages.
On the other hand, this microprocessor system 1
03 organizes complex concatenated vector sequences
We have made it possible to handle it in a different way, and by doing so,
Output message storage space is used efficiently and messages
Enables tsage chain transfer.
Ru. The prototype of Figure 11, discussed earlier in connection with the response.
The call follows the response to the primary message.
It is also stipulated that Multiple types of response messages
The pages are arranged consecutively to each other, and the hexadecimal
Command codes are illustrated in ascending order. plastic
Within the group of immediate messages, merge
Stop message (This message is used for basic control
A non-merge control message that is a message.
), but the data content is the minimum value.
and therefore has the highest priority. This message
The network and processor module
Control to exit merge mode in a tool
constitutes communication. With so many different types of primary data
Use data messages in ascending priority order
and they also have application requirements.
priorities based on
Classification regarding ranking can be added. mentioned earlier
A sequence that follows another message, as in
For subsequent messages, the preceding message
to maintain continuity from the sage packet.
Make sure to give it a high priority in order to
can be done. The first message consists of four types of primary messages.
The bottom group in Figure 11 has a high priority.
Get status response from lower to lower
The only type of status message that requires
Status/request/message
page, requesting “TN Waiver” and “TN Assignment”
each control message, and also the priority
Contains a low “merge start” control message.
Ru. The above configuration is a more detailed example that will be explained later.
As is clear from
This makes it possible to processor module
Currently the transaction number (Present
transaction number (PTN)
In this case, the PTN is
partially specified by instructions from the network.
It also performs continuous movements, even if
It must have been generated internally while the
Both are the same thing. merge operation is performed
When the processor module is in the global
references, i.e. transactions, ideas.
(to identify transactions)
information) to perform the operation.
This transaction identity is
Defined by TN. Opening a merge operation
Start, stop, and resume with simple message changes
It is done using only The subtask is
If you don't need to merge the sage
or have a particular relationship with other messages.
In cases where a message packet is generated that is not
If so, those messages will be sent to “TN0”.
to create a queue for output.
and currently the transaction name
basic state, or default state, determined by the
While the root state (which is 0) maintains the true state
The transfer will take place. This “TN0” state is
When page mode is not used,
queuing messages for transfer.
It makes it possible to (Network Interface System) From now on, we will explain about Figure 13.
is an interface suitable for use in the system of the present invention.
- Showing a specific example of a face circuit in more detail
It is. This “network interface”
The explanation in the chapter ``Systems'' will help you understand the invention.
The above includes a number of detailed features that are not necessarily required.
However, their characteristics may vary depending on the actual system.
It is built into the system, and therefore the book
Clarify the position of various specific examples with respect to the gist of the invention.
I decided to include it in the explanation for clarity. concrete
configuration and detailed structure for gating
However, it is not the subject matter of the present invention, and is not a subject matter of the present invention.
When it comes to stages, there are a wide variety of alternative configurations.
It is also possible to adopt
I decided to simplify it. Figure 13 is Figure 8
The second network interface shown in
Detailed drawings of Ace 120' and HSRAM 26''
be. Each interface for the two networks
- Faces 120 and 120' have the same system
therefore, we cannot discuss only one of them.
It is enough to clarify. In FIG. 13A, the interface of the same figure is
active logic network connected to
The input from network 50 is connected to multiplexer 142 and
Through the intellectual parity check circuit 144,
Supplied to the network and message management circuit 140
has been done. The multiplexer 142 also has a microphone
connected to the data bus of the processor system.
This allows the
to access the message management circuit 140.
is now possible. This feature allows the microphone
Loprocessor system provides interface
Runs in step-by-step test mode.
It has become possible to make this
The interface is connected to the network as if it were an open network.
the device as if it were connected in line.
Data transfer is now taking place. Netsu
Input from the network is sent to the receiving network data.
data register 146;
input to the first section of the connector register 146
Byte data to be sent and byte buffer for reception
is input to this register 146 via the register 148.
Byte data for reception
Fur 148 sends the byte data to the first section.
After the data is input, the own byte data is
data into another section of this register 146.
Strengthen. This allows each word received to
Both of the two constituent bytes are
network data register 146;
and be kept there, available.
become. The output message to be transmitted is
input to network data register 150.
In addition, the inside of the normal parity generation circuit 132
A parity bit is added at . Metsuse
The network message management circuit 14
0 to the network connected to it
or (test mode is used)
microprocessor system device)
data bus. This interface
For the purpose of internal message management,
stored in random access memory 168.
The format of the sent message is
It shall include identification data as well as identification data.
It is. As can be seen in Figure 21A, the command
This includes all codes, tags, keys, and DSWs.
combined with the primary data transmitted from
You can keep it. The configuration shown in Figure 13A is essentially
The configuration is the same as that shown in Figure 8, except that
Figure 8 shows the interface data bus
and the interface address bus is H.
Input port A and input port B of S.RAM26″
connected separately and also connected to the microprocessor system.
The address bus and data bus of stem 103
connected to a separate C port.
Illustrated. However, in reality, the 13th
As you can see from Figure A, these mutually independent
This interface allows access from two directions.
In HSRAM26″, which is carried out inside
Time and minutes of input address function and output address function
This is achieved by split multiplexing.
Microprocessor data bus and address bus
buses through gates 145 and 149, respectively.
connected to each bus of the interface.
, which allows the microprocessor to run asynchronously.
can operate based on its own internal clock.
It is becoming more and more like this. The timing system employed is clock
Based on pulses, phase control waveforms, and phase subdivision waveforms.
This phase subdivision waveform is
Interface clock circuit 156 (13th
), and the type shown in Figure 14.
(see Figure 14).
(This will be explained later). interface
Lock circuit 156 connects the network from the nearest node.
I have received my work word clock and
Phase lock clock source 157 is
Zero tie as described above in connection with Figure 4.
Contains means for maintaining muscle spacing.
Ru. Nominal network in 240ns network
The clock word clock speed is
internally within the clock circuit 156.
It is subdivided and this is done by
Frequency multiplier held turned on (see details)
(not shown) defines a reference period with a duration of 40 ns.
high-speed clock (shown as PLCLK in Figure 14)
This is because it provides the following: Basic
The reason for determining the word period is that the total period is 240 ns.
In the figure, CLKSRA is reversed every half cycle.
This is a periodic signal written as . This CLKSRA
There are two other signals with the same frequency and duration as
is generated by frequency divider 158 based on PLCLK.
Each of these signals is connected to CLKSRA.
1 cycle and 2 cycles of PLCLK from
This occurred at a delayed time, and each
Given the names CLKSRB and CLKSRC
There is. Based on the above various signals, control logic 1
59 is "IO GATE", "RECV GATE", etc.
Timing waveform called “SEND GATE”
(hereinafter also referred to as gate signal),
These timing waveforms are word periods apart from each other.
Display each successive third interval.
It is something that These intervals include
``AIDS'', ``Receiving phases'', and ``Sending phases''.
The corresponding name has been given. Above gate signal
These phases defined by the
Each further has an "IO CLK" signal, "RECV CLK"
2 by the signal as well as the “SEND CLK” signal.
subdivided into two equal half-intervals.
These subdivision signals are the second half of each phase.
The part is determined. Bite closing function
The “BYTE CTRL” and “BYTE CLK” signals
It is managed by the No. The above IO phases, RECV phases (receive phases)
AIDS), and SEND phas (send phas)
is random access memory 168 and microphone
The processor system bus is time-division multiplexed.
(time multiplexed)
It provides the foundation for making the hair grow.
be. The interface is connected to a high-speed network.
1 word per word period between
cannot receive or send data, and it is obvious that
In fact, receiving and transmitting are never done at the same time.
stomach. performed between the microprocessor system and the microprocessor system.
The speed of the transfers that are
Although the transfer speed is considerably lower than that between
Even if both speeds are equal, the interface
This may place an excessive burden on the capacity of the face circuit.
There is no such thing. The system structure of this interface
The configuration is a download to random access memory 168.
Most operations are performed through direct access
internal processing.
so that very little software is required
It's summery. Therefore, this system
cyclically repeats multiple consecutive phases in a cycle.
As time passes, multiple words appear one after another,
Moreover, those words can be used without colliding with each other.
along predetermined multiple signal paths for
and perform various functions.
The sea urchin is sleeping. For example, a message to a bus
The output of the message is from the microprocessor.
be done between page pickups, and
each of them also occupies a different portion of memory 168.
can be used alternately.
Ru. Microprocessor system data bus
and the network interface.
Communication is carried out by the IO management circuit 160 (read about this IO).
Also called Read/Write.
It is carried out within the Microprocessor
Gating the words sent from the stem
write gate 162 for
System for sending words to the Tusa system
Microprogram read register 164
Losetssa bus and network interface
connection between the bus interface and the
It is. Additionally, memory address register 165 and
The check generator/check circuit 166 is
integrated into the network interface subsystem.
It is. In this specific example, the high speed memory (=
HSRAM) is a 4K word x 17 bit random
It consists of an access memory 168, of which
How to repartition internally and what happens inside this memory
Use of multiple dedicated memory areas provided
The law has already been explained. child
Random access memory size (=capacity)
amount) to suit the needs of the specific individual application.
can be easily scaled down and expanded.
Wear. The received message buffer management circuit 170
connected to the microprocessor's data bus
and even the memory 168 address bus.
It is connected. "received message"
The term "messages" is used to describe
It is called "PUT" in the circulation buffer.
Refers to messages entering a storage location.
It is also used to indicate
After the input, enter into the circular buffer in that way.
Transfer the input message to the microprocessor
However, it is used to refer to that transfer.
Sometimes it happens. This transfer to a microprocessor
When the transfer takes place, the value of ``GET'' is
Received messages to be transferred to the processor system
How does the system perform the message extraction?
Continuous extraction operations should be performed from one location to another.
Specify the strength. Random access memory 1
Multiple address values used for 68 accesses
But GET register 172, TOP register 17
4. PUT counter 175 and BOTTM register
data 176 respectively. PUT counter
175 is specified by BOTTOM register 176.
Increment by 1 from the specified initial position
updated by TOP register
174 also gives an indication of the boundary on the other side.
It is. What is the value of TOP and BOTTM?
can also be operated by software control.
and thereby reduce the received message buffer.
Size and absolute storage location in HSRAM
It is now possible to change both the
The contents of the PUT register are equal to the contents of the TOP register
If the error occurs, the PUT register is reset.
is made equal to the contents of the BOTTOM register, and it
This buffer can be used as a circulating buffer.
It is now available for use. Get more Regis
data, TOP register, BOTTOM register, sequence
The PUT counter is a circular cross for input messages.
both the buffer and the output message completion cycle buffer.
is used to manage. Input to the GET register 172 is done by software.
It is carried out under the control of
Messages being handled at the time in the country
Depending on the length of
This is because the response (response) is determined. GET register
172, PUT counter 175, and TOP register
Comparator circuit 1 connected to each output of star 174
78 and 179 detect and display overrun conditions
is used to. The overrun condition is
GET value and PUT value are set to equal values
or set the GET value to a value greater than the TOP value.
the condition that arises when an attempt is made to
It is. In either of these cases, the overrun
status display will be sent out, and only
This status display also indicates that the overrun condition has been corrected.
It will continue to be sent until the Configure and operate a “received message” circulation buffer
The continuous method described above when
This method is particularly suitable for the system. Collision
This enables mutual checks to avoid
By setting "PUT" to the hardware
and dynamically manage “GET”
It is becoming possible to do this. However, this
Adopting a buffer system other than
is also possible. However, in that case, it is likely that
some redundancy in terms of road and software.
This will add to the burden. Here, Figure 21B
To mention, the data stored inside the memory 168
The format of received messages stored in
map results, data length, and key length.
Contains shape identification data, and these data
I will explain later how this can be obtained.
Ru. The DSW management section inside this interface
190 is the transfer destination selection word register 1.
92, and this destination selection word register
From now on, the data will be transferred to address bus 192.
A destination selection word (DSW) is input.
Dedicated DSW section of memory 168 using DSW
When you address the memory 168,
The output sent on the data bus returns data,
Based on this data DSW management section 19
0 indicates that the message packet is
to determine whether the forwarding destination is
It is becoming possible to do this. It can be seen from Figure 13A
The destination selection word is a 2-bit pine
nybl address and 10-bit pine
4 for map word address and map selection
It consists of bits. Of these, “nib”
address is the address of the word from memory 168.
Used to describe a bussection. Ma
The 4 bits for map selection are the map result comparator.
194, which comparator 194
from memory 168 via lexer 196
Map data is being received. Machiplexer 1
96 receives 16 bit data, and this 16
The bits included in the DSW are
specified by the 10 bits of the program word address.
Four different maps stored at the address
Represents a data nibble. memory 1
68 is, for ease of comparison made here,
Its dedicated map section is particularly suitable for comparison.
It is structured in a form. To multiplexer 196
inside the DSW, which is supplied for its control.
The remaining 2 bits give 4 map nibbles.
One of the corresponding map nibbles is selected.
It will be done. A comparison was made and the result of the comparison was
Map code goes to map result register 197
input and is input to memory 168
inserted into the input message. If this ratio
As a result of the comparison, there are no
It turned out that the "1" bit did not exist.
If a “reject” signal is generated and the
The setsa module is the message packet
It appears that it is not intended to receive
shown. To explain Figure 15, there is a memo in the figure.
Subdivide the dedicated destination selection section of 168
It is the preferred method for
A preferred method for making the comparison is illustrated schematically.
It is. Each map is 4096 words x 1 bit
It consists of
Sector, sector for class ID, and hashing
It is subdivided into sectors (see Figure 8). 12 pieces
Address bits (10-bit map address
and 2-bit nibble) to create a common map
Once a dress has been selected, it will
A 1-bit output is obtained from the tap. (Main in Figure 13)
The multiplexer and its nibbles are shown for clarity.
(not shown in Figure 15 for convenience). those four parts
The parallel bit output is from four AND gates.
In the AND gate group 198 consisting of
It becomes possible to compare with the first 4 bits.
If the result is one or more matches,
, the output of OR gate 199 goes to the “true” state.
Become. This map result is the map result shown in Figure 13A.
can be input to the result register 197, and
Therefore, the message is accepted into memory 168.
You will be able to do it. If different from the above,
messages will be rejected and a NAK will be sent.
It becomes. Command word management section 200
command register 20 for receiving command words;
Contains 2. Command word TN fee
The address bus is accessed using the
By accessing the indicators and
The received TN is checked and an appropriate response method is determined.
The sage is determined (see Figure 18). Furthermore,
When the "Start Merge" command is being executed
TN field to PTNR (currently transacted)
data transfer to (number register) 206
The transmission route is secured, and this means "Start merging"
PTN (current transaction
This is to allow you to change the value of
be. The input message input to the memory 168 is
Regarding Figure 21, the address vector
data feed to make it available.
field or key field is used.
also includes the length values of those fields.
It's on. Their length values are the received data length count.
counter 210 and reception key length counter 211.
each of these counters is
Fields corresponding to each counter from the power source
included in those fields when the code is provided.
learn to count the number of words in a sequence
ing. Additionally, an outgoing message management section 220
is used, and this section contains the processed
Accepting packets for storage in memory 168
functions and their stored packets later.
It includes the function to send to the network. this
Section 220 includes the send transaction
data counter 222, transmission data length counter
224, and a transmit key length counter 226.
These counters are connected to the data bus with dual
directionally connected. Send transaction
The vector counter 222 is connected to the address bus.
connected, while sending data length counter
224 is connected to address generator 228.
This address generator 228 further generates an address.
connected to the bus. Output buffer/sexy
and output message completion vector sexy in Figure 8.
The method uses both the circulation buffer and the
The message is sent. However, this specific example
In this example, multiple message packets are input sequentially.
after they are defined by the vector.
They are taken out in the order in which they are placed. Inside this interface, an independent
The respective operation phases are mutually exclusive times.
It is now being executed at times like this.
By adopting the partitioning method, the memory capacity is 168
is the network clock speed
receive and supply message packets from
and perform internal operations efficiently and at high speeds.
with its own slow clock speed.
A microprocessor system that is in continuous operation
It is possible to communicate with
There is. Messages for various counters and registers
To control the gating behavior of the
The control circuit is operating in response to the control bits,
The control bits are command, DSW, data, and
Others indicate individual fields within the message.
It generates a signal. Transmission state control circuit
250, reception state control circuit 260, and R/W
(read/write) state control circuit 270
field in the data.
identify, send, receive, and processor
data while the clock is running.
It controls the sequencing of the flow. The control of this interface is in three finite states.
machine (FSM) and those FSM
each of which has transmission phases, reception phases, and
and processor (R/W) phase.
be. Those FSMs are programmable logic
block array (PLA), status register, and
Configure in a general manner using a cushion ROM
has been done. Each FSM is a network
Each lock cycle advances to the next state.
I can't stand it. Due to the large number of control signals that must be generated,
The output of PLA is further coded by action ROM.
coded. As easily understood by those skilled in the art
necessarily necessary for the operation of the network.
written for FSM mode and hence general
Translation of control sequences with detailed structures and actions
is a simple task, although it requires a lot of work. The state diagrams in Figures 17 and 19 and
The matrix diagram in Figure 18 is attached.
Included here are the
Regarding the internal structural design features that can be used
This is to present comprehensive details. 17th
The figure shows the reception phase, and Fig. 19 shows the transmission phase.
Diagrams related to AIDS and used in these diagrams.
This notation is used in this specification and drawings.
It corresponds to the notation used in the location.
For example, the following terms are: RKLC=Receive Key Length Counter (Receive Key Length Counter) RDLA=Receive Data Length Counter (Receive Data Length Counter) RNDR=Receive Network Data Word
Register (receiving network data word register)
PUTC = Put Counter (PUT counter) GETR = Get Register (GET register) Therefore, the state diagram is as shown in Figure 13 and details.
If you refer to it in comparison with the book, it will make sense even without a rough explanation.
can be understood. their state diagram
is used for complex message management and processor interaction.
In between, there are various sequences and conditional statements related to communication.
is shown in detail. In Figure 17 (Figure 17A)
``Generate response'' and ``Decode response''
and each state where the label is written, as well as
Each conditional statement indicated by a dashed rectangle is
It is described in the matrix diagram in Figure 18.
specified response and behavior.
Ru. Figure 18 shows the primaries for a given TN.
Any combination of message and readiness state
Responses generated and actions taken in response to
It shows both. it is natural
but during normal system operation
Although there is a certain degree of message rejection,
Error conditions occur infrequently. In both Figures 17 and 19, the conditions
Regarding judgments, many of them involve multiple judgments.
It is now possible to run them simultaneously
However, on the other hand, the state step is one step at a time.
Things are starting to change. In either case
Even in
Proceeds at a set speed without the need for control.
The structure of the message is
As already explained, the network and the way the network works
This is because they are getting used to it. A typical processor system or multiprocessor
The many features employed in the Tusa system are:
The characteristics may not be closely related to the present invention.
Therefore, we will not specifically describe them.
stomach. Among those characteristics are parity error times.
circuit, interrupt circuit, and watchdog timer
to monitor the sliding of extremely diverse test functions, etc.
There are various means etc. (Specific example of system operation) The following will be explained in Figures 1, 8, and
A system that integrates Figure 13 is a network and
internally in various operating modes in cooperation with HSRAM.
Here are some concrete examples of how it works.
Ru. Specific examples of these are the priority provisions and here
The addressing method and transaction
Interrelationship between the cussion and identity
But how can local control and global intercommunication be achieved?
This indicates whether the
Ru. Transmitting and Receiving Primary Data Messages In addition to the other figures, we will also refer to Figure 16.
Although I will explain this in detail, Figure 16 shows the primary
the conditions involved in the final acceptance of the message,
This is a simplified state diagram. message
Even if the data is received in buffer or memory, the illustrated
Acceptance (acceptance) is disabled until the logical condition is satisfied.
septance) has not been achieved. figure
In this example, events are shown as a serial sequence.
However, originally multiple judgments were performed in parallel and immediately.
These are now being carried out at the same time, and that is,
The conditions may not be related to each other,
or intermediate steps to reach a certain operational stage.
This is because the jump is performed by a circuit.
be. The message on the network in Figure 1 is
Receive Network Data Register in Figure 13A
146 until the EOM condition is identified.
When the message is passed and the condition is identified.
It is recognized that the message has been completed. "Lock"
(LOCK) condition exists, the system
The response delay time in HSRAM26'' in Figure 8 is
NAK/LOCK rejection message
Send the message. If not, i.e. a “lock” condition exists.
If not, the system will compare maps.
This check is shown in Figure 13A.
DSW management section 19 in the interface
Executed inside 0. Display with "map output = 1"
If appropriate comparison results exist,
, the system will continue to receive the message.
I can do it. No such comparative results exist.
If not, the message is rejected and the NAP
is sent. Once the corresponding map has been determined,
and the system is ready to check the TN status.
Now that everything is in place, this TN status check is
See the TN directory shown in Figure 8.
(here the TN stage is
Strictly speaking, a task is a processor related to a given TN.
, and therefore the status in HSRAM.
Depending on the entry stored in the TN address of
).
To explain in more detail, this TN status check
The check is based on the local status (=individual processor
module status) is "Ready to receive"
This is done to determine whether or not there is. here
is determined by the preceding primary message.
Assuming the TN allocation has already been made
There is. As a result of this check, the TN is "done".
state, “uninvolved processor” state, or “initial processor” state.
be in one of the following states:
is found, a “NAP” rejection message is sent.
transmitted (here, TN is strictly
is stored at the TN address in HSRAM.
However, below, there is a risk of confusion.
Unless otherwise specified, this entry will also be simply referred to as TN.
). If this revealed status is
If the condition is not specified, it will be rejected.
The final message is "NAK/TN error",
The above two types of rejection messages are also
It is retrieved from the response directory in Figure 8. Ste
If the status is "Ready to receive", then
Another determination will be made. This other judgment is "input overlap".
This judgment has already been explained.
As shown in Figure 13A, the input/output management buffer
Inside section 170, the GET address
This is done by comparing the address and the PUT address.
be called. Furthermore, the transaction number,
Is the value of Received Message Count not zero?
the count value is zero.
If there is, it will also display input overruns.
-ing An overrun condition exists
In this case, “NAK/input overrun” is sent.
and the message is rejected. If all the above conditions are satisfied,
From the response directory in HSRAM26″
The “ACK” message (back confirmation response message) is
data is exported and sent out onto the network, where it can be accessed by other
There is a possibility that priority will be disputed with Setsa Mojiyur.
It becomes. Those other processor modules
In the same way, for received messages,
Some may have sent a positive response. child
At this point, if the common response received from the network is
message (this "common" means merged
) is the "ACK" message,
Therefore, it is selected as the receiving processor module.
``All'' processor modules that have been
be able to accept messages received on
If specified, the received message
acceptance will be made. If this response is "ACK"
If the format is any other than
will be rejected by ``all'' processors. In this specific example of reception and response
after the primary message is received.
, all processors respond with ACK and NAK responses.
response, and one of the NAP responses.
I want to be noticed for what I do. The processor uses these
If you receive one of the response messages of
If so, immediately after that, the primary message
transmission can be attempted. (The processor
transmission attempts through the network.
is equal to or less than the total waiting time of
It can also be done after a larger delay, and
This has already been explained in the ``Active Logic Nodes'' chapter.
(as explained). I got your attention one more time.
The problem is that if several processors
If you send the “identical” message, the result will be
all of those messages are on the network
It is possible that you have won out over the competition.
That's what I mean. In that case, those transmission
“All” of Rosetsusa will receive an ACK response
Become. This will be explained in detail in the specific example below.
Broadcast (simultaneous transmission) and global sema
This is important regarding the operation of the FO mode. This is an example of the present invention actually used.
In addition to those described above, there are many more types
to perform various actions as well as respond to
It's summery. Figure 18 shows their responses and actions.
, LOCK, TN error, and overrun.
9 different pre-identified stages.
status level, and acknowledgment (ACK) and
and for non-applicable processor responses.
Each item is shown in a column. A processor module sends a message.
When you have completed the preparations for the
The PTN value stored in the star 206 can be used.
state and therefore what is needed is TN
The status is "Ready to Send"
Just a confirmation. As you can see from Figure 12,
The entry (description) “Ready for communication” is
Next Message Vector for Sage
Contains the address. The assembled output
The power message is sent out over the network and then
If you lose the competition, the PTN will change midway.
This send operation will continue until the transmission is successful unless changed.
The operation is iterated and receives a response if successful
It turns out. The transmission was successful and a response was received.
If so, the address vector is changed. nex
The message vector is currently in the message.
taken from the second word (Figure 21A) of
, this word is the send transaction vector.
Random access method from taakunta 222
The data is transferred to memory 168. Output message section
If the system is not in overrun, the PUT cowl will
The counter 175 is advanced by “1” and this overlap
state is caused by PUT being equal to GET.
will be displayed. In addition, the sending transaction vector
Next message transferred from counter 222
The tsage vector is the current traffic vector in HSRAM.
By the execution number register 206
Specified transaction number add
input to the reply. If this new TN
If the status is “ready for communication”, this input is
The value of the vector is again
The next message related to identity
Pointing to the storage location of (Next Message)
ing. Output memory stored in HSRAM
For the format of the tsage, see Figure 21.
Please refer. However, when sending a message,
Management includes internal and external sources of PTN.
Many different forms of behavior, including modification
can be included. error condition,
Depending on the balun or lock condition, the system
The transaction number is set to “TN0”.
This shift allows you to keep the shift
will return the system to non-merge mode.
return and check the status on “TN0”.
A “ready to send” state is identified or
continues until a new TN assignment is made.
It becomes. It can be applied to quite complex concrete examples.
The first example shows the possible states and conditions.
Please refer to the flowchart in Figure 9 (Figure 19A).
sea bream. Example of output message completion buffer Message transmission completion is “LOCK”
by any other response message except
If specified, the newly completed output message
The pointer pointing to the buffer is the HSRAM
Output message completion circular buffer section
(See Figure 8). This pointer is
Indicates the address of the output message buffer above.
It's just a 16-bit word. (Output message
The format of the page buffer is shown in Figure 21.
It is. The output message buffer includes
record the response messages received from the network
(note the location is included). The output message completion circulation buffer is
network interface hardware 120;
A monitoring program placed on the microprocessor 105
It performs the function of communication with the program.
Ru. This microprocessor contains
The program that will output the message
is stored in HSRAM. This is followed by the following example
As explained in detail in
They are connected together in a chain, and at that time,
Let TN be the pointer to the beginning of this chain.
This allows you to work with
complex sequences can be formed. So
Another feature is that the network can be
Multiplexing, or time division, between
(This will also be explained in detail later)
), various locations in the network
Output messages in various orders depending on the event
be able to. Furthermore, the occupancy is determined by successfully transmitted packets.
Quickly reclaim storage space in HSRAM that was previously reserved.
and thereby remove that storage space from now on.
Can be reused for another output packet
It is important to do so. Output message complete
The complete circulation buffer fulfills this function. Successful transmission of a data message
If you receive a response other than a "lock" response
For example, the network interface is
Stored in "0510 (hexadecimal)" in RAM
Advance the PUT pointer (see Figure 10) by 1.
Also, the output metrics that this transmission has just completed.
PUT register address of first word of sage
Store to the address in the data. (PUT pointer value
is the TOP point stored in "0512 (hexadecimal)"
The PUT pointer becomes larger than the value of the PUT pointer.
BOT pointer stored in "0513 (hexadecimal)"
(=BTTOM pointer)
). PUT pointer is GET pointer
(storage location "0511 (hexadecimal)")
If so, the circulation buffer may have overrun.
Therefore, the "error interrupt" is
Generated towards chloroprocessusa. The software running inside the microprocessor
Depending on the software, the GET pointer may
The output message buffer is examined asynchronously.
It will be done. The processor does whatever it is asked to do.
After completing the process, set the GET pointer to "1"
(this GET value is greater than the TOP value)
(If the value becomes too high, it will be reset to the BOT value). GET
= PUT, it must be processed.
No output messages no longer exist. So
If not, yet another output message is created.
Since the transmission has been successfully completed, those
Output messages must be processed. This process
To do this, empty the HSRAM output buffer storage space.
This includes returning to the blank space, and therefore the lever
space can be reused for other packets.
It can be done. The important thing to note here is that the output
Message completion cycle and input message cycle
Batsuhua are separate from each other and therefore
These two circulation buffers each have separate
PUT, GET, TOP, and BOT pointers
This means that they are managed. configuration of
Depending on the method, as shown in Figure 13,
Then, both of these circular buffers become circular buffers.
It is also possible to share the management hardware 170.
However, such a configuration is not required. Initial Setup Procedure Each processor module is
SaMojiur's own high-speed random access
Accessing TN inside memory 168 (Figure 13)
This memory 168 has a function to
of potentially available TNs, that day
Contains a directory. However, if assigned
A TN that is not associated with that TN
Transaction number stored in storage location
The value clearly indicates that it has not been allocated.
It is shown. Therefore, the microprocessor
Stem 103 is an unallocated transaction.
Identify the numbers and among them
one for a given transaction identity
With respect to other processors and modules
Select to use to initiate communication.
I can do it. The transaction number is local
Chloroprocessor (= in the processor module
localized under the control of a microprocessor).
applied and updated, but not all in the network.
Global control in the area is based on the “TN abandonment order” and
A primary control message called “TN assignment instruction”
This is done using a zigzag. Can request the same TN
Multiple processor modules potentially competing with each other
A deadlock condition may occur during the session.
The reason for this is that the network
For processors with smaller numbers,
This is because it gives priority. Trying to get that TN
did not get priority among the processors that
The remaining processors respond with “NAK/TN error”
This response will be sent to those professionals.
Unless Setsa tries to secure another TN
This indicates that this is not the case. obey
and those transaction identities.
Securing and verification of data within the system and centrally
You have complete flexibility when doing it locally.
It is being What I would like you to pay attention to is the repeated use of TN.
The basic transmission mode is “TN0” and the
To shift between merge modes greater than
This means that it is being carried out accordingly. accordingly
This system requires only one TN broadcast
The transmission of the
The nature of its movement can also be changed. Further information for communicating changes in global status.
Another and particularly useful scheme is with respect to FIG.
This is the forced parity error propagation described earlier.
Ru. This unique display method is unique during other transmissions.
An aborted system is transmitted if it is interleaved.
system resources are examined and appropriate action is taken.
That will happen. Processor-to-processor communication There are two special forms of processor communication.
One is a specific forwarding protocol.
The communication is directed towards Setsa, and the other is
Transfer multiple processors belonging to one class
This is a communication carried out as follows. Both of these types
All transmissions use DSW, and
Both of these transmissions are in non-merge mode
Broadcast. In particular, one source processor and one destination processor
When communicating with Rosetsusa, use the DSW
The destination processor identification information (destination
processor identification: DPID)
do. To explain with reference to Figure 8, this
Each receiving processor module uses the DPID value.
The selection map part of Yule's HSRAM26'' is activated.
address, the specific address it is intended to be forwarded to.
Only the processor module gives a non-deterministic response.
occur and accept the message. The back-determined response is
sent, and it is finally successfully received.
If the requested
is ready to perform any of its future operations.
Ru. A certain message is sent to a certain control program.
multiple processes belonging to one class that are related to
If Rosetsusa should receive, Matsu in DSW
By pnibble and mapp address, H.
The corresponding section in the selection map part of S.RAM
Yon is specified. And all receiving processes
sends acknowledgments to each, and those acknowledgments.
to reach the source processor module.
The round-trip transmission and reception for this communication is the final
It will continue until it is completed. Processor communication in global broadcast mode
is the primary data message, status
message, control message, and response message.
It can be used to communicate each message.
can. Priority protocols and
network with features that allow for
Depending on your ability, you can send messages from that species to other species.
can be easily inserted into a sequence of similar messages.
I'm starting to be able to do it. Processor selection for hashing mode is
data in a national database system.
When performing data processing tasks,
This is by far the most frequently used processor selection method. one
Secondary data (=main data not for backup)
data), disjoint (= identical elements)
multiple data subsets (not shared) and
Multiple disjoint data for tuple data
The subsets are determined differently according to an appropriate algorithm.
The data is distributed among multiple secondary storage devices.
One processor separates a subset of primary data.
A separate processor handles backup data.
Because they share a subset of data, those two
If the processors respond simultaneously, the primary data
Messages about data are given priority.
It will be done. To ensure that this condition is covered
is the higher priority command code (first
(See Figure 2). data
Maintaining the reliability and integrity of the base is also
By taking advantage of the multiprocessor mode
be achieved, depending on the particular circumstances that arise.
those modes are applied in the most advantageous way
It will be done. For example, some parts of primary data
If the secondary storage device that shares the subsets fails,
In some cases, special processor-to-processor communication may be used.
You can update it using error again
correction or rollback of part of the database
in a similar way, or in class mode
This can be done by operating with
Ru. Example of transaction number The concept of transaction number
New for controlling multiprocessor systems
A powerful hardware mechanism has been obtained.
In this system, transaction number
BA constitutes a "global semaphore", and
Send and receive messages to and from the network, and
For a given data distributed among several processors,
In each case of checking the readiness status of the school,
plays an important role. Transaction number (TN) is HS
Physically as a 16-bit word in RAM 26
has been realized. This word has various functions.
To achieve this, please use the format shown in Figure 12.
It is said to be Tsuto. TN is stored in HSRAM
The microprocessor 105 and network
Access from any of the Desk Interface 120
can be accessed. Global semaphore The term ``semaphore'' is a term used in computer science.
In the related literature,
points to variables used to control multiple processes
came to be commonly used as a term for
It's on. Semaphore is an uninterrupted one
“Test and set” it in one step.
It has the property of being able to As an example, "Unassigned"
(UNASSIGNED: The status has not been assigned.)
“Assigned” and “ASSIGNED”
It can take two states:
Let's consider semaphore variables. this
In this case, the test-and-set behavior is as follows:
Defined as: If the semaphore is "unassigned"
If the semaphore is in the "assigned" state,
INDIA” status to indicate success;
On the other hand, if the semaphore is already in the "assigned" state,
If so, set the semaphore to the "assigned" state.
Leave it as it is and display "Failed". obey
According to this semapho, the semapho test/
A process that successfully completes and sets its own task.
While you can proceed with it, the failed process
, the semaphore is returned to the "unassigned" state.
Either wait for it to be set or use another equivalent resource.
Test another semaphore that is controlling the source.
or try to set the
It is done without ceremony. Although it is easy to understand,
If the test and set operation is interrupted,
If such a thing is possible, there are two ways to do it.
There is a possibility of accessing the same resource at the same time.
This may result in unforeseen mistakes.
There may be consequences. Any multiprocessor system
To control access to system resources,
Concepts that can be equated with hardware
It is actually materialized by air. But long
In the conventional system, one copy of semaphore (=
A semaphore with one copy, that is, a semaphore that is set up in only one place.
(Semaphore) can only be maintained. So
Here, multiple copy semaphore (= semaphore with multiple copies)
Mafuo, i.e. semafuo set up in multiple locations)
maintain one copy on each processor.
If you do this, you can create a semaphore just for testing.
Reduce the number of times there is contention for access
multivalent for this purpose and other uses described later.
Both with the purpose of using the semaphore variable of
desirable for. The problem is that the large number of semaphore
Completely synchronized operations must be performed on
If this is not followed,
If so, semaphore is used to strengthen it.
Complete access to resources where provided.
Integrity will be lost. Multi-copy semaphore, or "global" semaphore
is provided by this system. Shown below
Tables can control global semaphore behavior with a single semaphore.
This is in contrast to Huo (1 copy of Semapho).
Ru.

【表】【table】

【表】 本実施例のシステムにおいては、「TN割当
(ASSIGN TN)」コマンドと「TN放棄
(RELIN−QUISH TN)」コマンドとが、大域
的セマフオとして利用されているトランザクシヨ
ン・ナンバに対するテスト・アンド・セツト機能
とリセツト機能とを夫々に担つている。第12図
について説明すると、「NAK/TNエラー」応答
が失敗を表示し、一方、「SACK/アサインド」
応答が成功を表示する。 複数のノードを同期してクロツキングするため
に用いられている同期クロツキング方式や、全て
のプロセツサへ同時に最優先パケツトを伝送する
ブロードカスト動作をはじめとする、このネツト
ワークの特質は、大域的セマフオという概念を実
際に具体化する上での基礎を成すものである。こ
の概念が実施されているために、このシステムは
所望のシステム資源の複数のコピーの、その割付
け(アロケーシヨン)、割付け解除(デアロケー
シヨン)、並びにアクセスの制御を、単にその資
源にTNを付与することによつて行なえるように
なつている。ここで注目すべき重要なことは、分
散された資源の制御を、単一セマフオの場合と
略々同程度の小規模なソフトウエア・オーバヘツ
ドで、実行できるようになつているということで
ある。このことは従来のシステムに対する非常な
進歩であり、なぜならば、従来のシステムは、分
散型の資源を管理できないか、或いは、複雑なソ
フトウエアによるプロトコルが必要とされ且つハ
ードウエア的なネツクを生じてしまうかの、いず
れかだからである。 レデイネス状態 「ビズイ(BUSY)」、ウエイテイング
(WAITING)」、「準備完了(READY)」(送信と
受信の夫々の準備完了)、「終了(DONE)」、及
び「非関与プロセツサ(NON−
PARTICIPANT)」から成る1組の値(第12
図参照)が、あるTNを付与されたタスクの、そ
のレデイネス状態を速やかに確認する能力を提供
している。このシステムでは、以上の各状態の意
味するところは、次の表が示すようになつてい
る。
[Table] In the system of this embodiment, the "TN assignment (ASSIGN TN)" command and the "TN abandonment (RELIN-QUISH TN)" command are used to test transaction numbers used as global semaphore. They each have an and set function and a reset function. Referring to Figure 12, a "NAK/TN error" response indicates a failure, while a "SACK/assign" response indicates a failure.
The response shows success. The characteristics of this network include the synchronous clocking method used to clock multiple nodes synchronously, and the broadcast operation that transmits the highest priority packet to all processors simultaneously. It forms the basis for the actual realization of concepts. Because this concept is implemented, the system controls the allocation, deallocation, and access of multiple copies of a desired system resource by simply attaching a TN to that resource. This can now be done by What is important to note here is that control of distributed resources can now be performed with approximately the same small amount of software overhead as with a single semaphore. This is a significant improvement over traditional systems, which either cannot manage distributed resources or require complex software protocols and create hardware networks. This is because it will either end up happening. Readiness status "BUSY", "WAITING", "READY" (ready for transmission and reception completed), "DONE", and "Non-involved processor (NON-)"
A set of values (12th
(see figure) provides the ability to quickly check the readiness status of a task assigned a certain TN. In this system, the meaning of each of the above states is as shown in the table below.

【表】 「TN割当」コマンドを用いて、タスクへの
TNの付与が動的に行なわれるようになつてい
る。成功表示(「TN割当」メツセージに対する
「SACK/アサインド」応答)は、すべての動作
可能なプロセツサが成功裏にTNのタスクへの割
当てを完了したことを示す。第11図に関して注
目すべきことは、「NAK/TNエラー」応答は高
い優先順位(小さな値)をもつているため、いず
れかのプロセツサのネツトワーク・インターフエ
イス120がTNの使用に関する衝突を検出した
ならば、全てのプロセツサが失敗応答を受取ると
いうことである。更に、ネツトワーク上で伝送さ
れるこの失敗応答のOPID(発信元プロセツサID)
フイールドは、衝突のあつたプロセツサのうちの
第1番目の(付された番号が最小の)プロセツサ
を表示することになる。この事実は、診断ルーチ
ンに利用される。 各々のプロセツサは、ソフトウエアの働きによ
り、タスクを処理し、そしてTNを「ビズイ」、
「ウエイテイング」、「迷信準備完了」、「受信準備
完了」、「終了」または「非関与プロセツサ」のう
ちの該当するものはセツトする。最初の「TN割
当」を発令したプロセツサを含めどのプロセツサ
も、任意の時刻に、「ステータス・リクエスト」
コマンド或いは「マージ開始」コマンドを発令す
ることによつて、タスク(TN)がどの程度に完
了しているかという状態を容易に確認することが
できる。 「ステータス・リクエスト」は、多価の(=多
種の値を取り得る)大域的セマフオの1回のテス
トと同じことである。第11図から分るように、
優先順位が最も高いステータス応答(SACK)メ
ツセージがネツトワーク上の競合を勝ち抜き、そ
の結果、最も低いレデイネス状態が表示されるこ
とになる。更に、そのOPIDフイールドは、その
最低のレデイネス状態にあるプロセツサのうちの
第1番目の(付された番号が最小の)プロセツサ
のアイデンテイテイ(素性)を表示することにな
る。 この後者の特性を用いて、複数のプロセツサに
分配されたタスクの完了を「待機」するための、
「ノン・ビズイ(non−bysy)」の形態が定められ
ている。最初に「TN割当」を発令したプロセツ
サは初代の「ウエイト・マスタ」であるとされ
る。このプロセツサは次に、任意の基準に基づい
て、他のいずれかのプロセツサを新たな「ウエイ
ト・マスタ」に指定する。この新たな「ウエイ
ト・マスタ」は、それ自身が所望のレデイネス状
態に到達したならば、「マージ開始」或いは「「ス
テータス・リクエスト」のいずれかを発令するこ
とによつて、全てのプロセツサい対する問合せを
行なう。もし他のプロセツサの全てが基準完了状
態となつていたならば、SACKがその旨を表示す
ることになる。もし幾つかのプロセツサが尚、準
備完了状態にはなかつたならば、SACK応答の
OPIDフイールドが、レデイネス状態が最低のプ
ロセツサのうちの第1番目のものを表示すること
になる。「ウエイト・マスタ」はそのプロセツサ
に対し、新しい「ウエイト・マスタ」になるよう
に命令する。結局最後には全てのプロセツサが準
備完了状態となるのであるが、それまでの間、こ
のシステムは、少なくとも一つのプロセツサが準
備完了状態に到達したことを知らされる都度、ス
テータスの問合せを試みるだけである。従つてこ
のシステムは、結果を出さずに資源を消費する周
期的なステータス問合せという負担を負わされる
ことがない。更にこの方式によれば、最後に完了
する処理が終了した丁度その時刻に、全てのプロ
セツサが仕事を完了したということをシステムが
確実に知ることになる。当業者には理解されるよ
うに、本発明の概念の範囲内でその他の多種多様
な「待機」の形態を採用することができる。 「マージ開始」コマンドは、1つの特殊な種類
のテスト・アンド・セツト命令である。大域的セ
マフオのステータスが「送信準備完了」または
「受信準備完了」である場合には、現在トランザ
クシヨン・ナンバ・レジスタ(PTNR)206
(第13図参照)が「マージ開始」メツセージ
(第3図参照)内のトランザクシヨン・ナンバの
値にセツトされ、これによつてPTNRレジスタ
の設定が行なわれる。動作中のプロセツサのいず
れかが、より低位のレデイネス状態にある場合に
は、PTNRの値は変更されない。 「マージ停止」コマンドは、以上の動作に対応
するリセツト動作であつて、すべての動作中のプ
ロセツサのPTNRを無条件に「TNO」にリセツ
トするものである。 後に説明するように、PTNRによつて指定さ
れている現在大域的タスク(current
globaltask)に関係するメツセージだけが、ネツ
トワーク・インターフエイス120から出力され
るようになつている。従つて、「マージ開始」コ
マンド及び「マージ停止」コマンドは、複数のタ
スクの間でネツトワークを時間多重化、即ち時分
割(タイム・マルチプレクシング)することので
きる能力を提供しており、従つてそれらの複数の
タスクは、任意に中止、及び/または再開するこ
とができるようになつている。 本発明の細部の特徴で重要なものに、ネツトワ
ーク・インターフエイス120が、ネツトワーク
からのコマンドによるTNのアクセスと、マイク
ロプロセツサ105によるTNのアクセスとが、
決して同時に行なわれないようにしているという
ことがある。本実施例においては、これは、受信
状態制御回路260から読出し/書込み状態制御
回路270へ送られている信号によつて達成され
ており、この信号は、TNを変更する可能性のあ
るネツトワークからのコマンドの処理が行なわれ
ているときには必ず「肯定」状態とされている。
この信号が「肯定」状態にある短い時間の間は、
プロセツサは、H.S.RAMへのアクセスを、制御
回路270によつて禁止されている。当業者には
理解されるように、本発明の範囲内で、以上の構
成の代りになる多種多様な代替構成を採用するこ
とができる。 受信制御 TNの更に別の機能に、入力メツセージの制御
がある。「TN割当」コマンドを用いることによ
つて、所与のタスクに対して、複数のプロセツサ
における入力メツセージ・ストリームを関連付け
ることができる。所与のプロセツサの中の当該タ
スクに割当てられているTNが「受信準備完了」
にセツトされているときには、そのTNは更に、
そのプロセツサが受入れる用意のあるパケツトの
個数を表わすカウント値を併せて表示している
(第12図)。ネツトワーク・インターフエイス1
20は、個々のパケツトを成功裏に受信するたび
毎にこのカウント値をデクリメントし(このデク
リメントはTNのワードから算術的に「1」を減
じることによつて行なわれる)、このデクリメン
トはこのカウント値がゼロに達するまで続けられ
る。カウント値がゼロに達したときには
「NACK/オーバラン」応答が発生され、それに
よつて、パケツトを送出しているプロセツサに対
し、このNACK応答を発しているプロセツサが
より多くの入力パケツトを受入れる用意ができる
まで待機しなければならないことが知らされる。
更にまた、第18図から分るように、このときに
はPTNRの「TNO」へのリセツトも併せて行な
われる。 以上の動作メカニズムにより、ネツトワークを
流通するパケツトの流れの制御を直截的に行える
ようになつている。またそれによつて、1つのプ
ロセツサに未処理のパケツトが多量に詰め込まれ
ることがないように、そしてそのプロセツサがシ
ステムにとつてのネツクになつてしまうことがな
いように、保証されている。 送信制御 第21A図について説明すると、同図から分る
ように、H.S.RAMに格納されている各メツセー
ジは、新TNベクタ(=ネクスト・メツセージ・
ベクタ)の値を収容するためのフイールドを含ん
でいる。メツセージを送信してそれに対する応答
を成功裏に受信したならば、この送信したばかり
のメツセージに含まれていた新TNベクタが、H.
S.RAMの中の現在トランザクシヨン・ナンバを
格納するためのアドレスへ(PTNRから転送さ
れて)格納される。従つて、TNは個々のメツセ
ージが送出されるたび毎に更新され、また、メツ
セージの伝送に成功した際にはTNが自動的に所
望の状態にセツトされるようにすることが可能と
なつている。 第12図について説明すると、「送信準備完了」
のTNのフオ−マツトは、14ビツトのH.S.RAM
内のアドレスを含んでおり、このアドレスは、所
与のタスク(TN)に関して次に出力すべきパケ
ツトを指し示すのに用いられている。従つて、
H.S.RAMの中に格納されているTNは、種々の
タスクに関するメツセージの、先入先出式
(FIFO)待ち行列の、その先頭を指し示すヘツ
ド・ポインタとしての機能も果たしている。従つ
て、所与の1つのタスク(TN)に関する限りに
おいては、各プロセツサは、新TNベクタのチエ
ーンによつて定められた順序で、パケツトの送出
を試みることになる。 先に説明した、複数のTN(タスク)の間でネ
ツトワークを高速で多重化(マルチペレクシン
グ)するための機構と組合わせることによつて、
多くのプロセツサの間に分配された何組もの複雑
な組合せのタスクを、極めて小規模なソフトウエ
ア・オーバヘツドで管理できるようになることは
明らかである。ネツトワークと、インターフエイ
スと、プロセツサとの共同動作によつて提供され
ている構成は、そのコピーを数百個のプロセツサ
の間に分配することができ、更には数千個のプロ
セツサ間にすら分配することのできる資源及びタ
スクに対して、資源の割付けと割付け解除、タス
クの中止と再開、それにその他の制御を行なうた
めの好適な構成である。 DSW(転送先選択ワード)の例 転送先選択ワード(第3図)は、DSWロジツ
ク190(第13図)及びH.S.RAM26(第8
図)のDSWセクシヨンと協働することによつて、
以下のことを可能とする複数のモードを提供する
ものである。即ち、それらのモードとは、各々の
受信プロセツサのネツトワーク・インターフエイ
ス120が、受信中のメツセージは当該ネツトワ
ーク・インターフエイスに組合わされているマイ
クロプロセツサ105によつて処理されることを
意図したものか否かの判定を、迅速に下せるよう
にするための複数のモードである。既に説明した
ように、受信メツセージの中に含まれている
DSWは、H.S.RAMのDSWセクシヨンに格納さ
れているニブルを選択すると共に、そのニブルと
比較される。 プロセツサ・アドレス 第8図に示されているように、H.S.RAMの
DSWセクシヨンの1つの部分がプロセツサ・ア
ドレス選択ニブルの格納にあてられている。本シ
ステムにおいては、搭載可能な1024個のプロセツ
サの各々に対して、H.S.RAMのこの部分に含ま
れているビツト・アドレスのうちの1つが関連付
けられている。当該プロセツサのID(アイデンテ
イテイ)に関連付けられたビツト・アドレスのビ
ツトは「1」にセツトされており、一方、このセ
クシヨン内のその他の全てのビツトは「0」にさ
れている。従つて各々のプロセツサは、このセク
シヨンの中の1つのビツトだけが「1」にセツト
されている。 ハツシユ・マツプ H.S.RAMのDSWセクシヨンの別の1つの部分
が、ハツシユ・マツプ(複数)の格納にあてられ
ている。本システムにおいては、マツプ選択ビツ
トのうちの2つのビツトがそれらのハツシユ・マ
ツプにあてられており、それによつて、4096個の
可能な値を全て含む完全な集合が2組得られてい
る。ハツシユト・モード(hashedmode)におい
ては、二次記憶装置に格納されているレコードの
ためのキーが、ハツシング・アルゴリズムに従つ
て設定され、それによつて0から4095までの間の
「バケツト」の割当てが行なわれる。所与の「バ
ケツト」に収容されているレコードを担当してい
るプロセツサは、そのアドレスが当該バケツトの
バケツト・ナンバに対応しているマツプ・ビツト
の中に「1」のビツトがセツトされている。その
他のビツトは「0」にされている。複数個のマツ
プ・ビツトをセツトするだけで、所与のプロセツ
サに複数のバケツトを担当させることができる。 この実施例の構成においては、容易に理解され
るように、マツプ・ビツトのセツテイングを以下
の方式で行なえるようになつている。即ち、その
方式とは、所与の1つのマツプ選択ビツトについ
ては、各ビツト・アドレスがただ一つのプロセツ
サにおいてのみ「1」にセツトされており、しか
も、いかなるビツト・アドレスも必ずいずれかの
プロセツサにおいて「1」にセツトされていると
いう方式である。この方式を採用したことの直接
の結果として、各々のプロセツサ(AMP)が、
データベースのレコードの互いに別個で互いに素
の部分集合を分担し、しかも、システムの全体と
しては、レコードの全てを含む完全な集合が存在
するようになつている。 以上の具体例はリレーシヨナル・データベース
の課題を例に引いて説明されるているが、当業者
には容易に理解されるように、課題の互いに素の
部分集合をマルチプロセツサ複合体の中の個々の
プロセツサに分担させることができる課題領域で
あればどのような課題領域にでも、これと同じ方
式を適用することができる。 更にもう1つ注目に値することは、完全なマツ
プを2つ備えることによつて、以上に説明した方
式を、一方のマツプによれば所与のあるプロセツ
サに割当てられているバケツトを、他方のマツプ
においてはそれとは異なつたプロセツサに割当て
得るように、構成することができるということで
ある。ここで、一方のマツプを「一次的」なもの
とし、他方のマツプを「バツクアツプ用」のもの
とすれば、直接の帰結として、所与のあるプロセ
ツサ上では一次的なものであるレコードが、別の
プロセツサ上では確実にバツクアツプされるよう
にすることができる。更に、所与の1つのプロセ
ツサをバツクアツプするプロセツサの個数につい
ては、いかなる制約もない。 当業者には理解されるように、本発明の範囲内
で実現できる互いに別個のマツプの数は3以上に
することができ、また、バケツトの数も任意の個
数とすることができる。 クラス 先に説明したプロセツサ・アドレスとハツシ
ユ・マツプのいずれの場合にも、全てのプロセツ
サについての所与の1つのビツト・アドレスを調
べれば、そのビツト・アドレスが1つのプロセツ
サにおいてだけ「1」にセツトされており、その
他の全てのプロセツサ内の対応するビツト・アド
レスは「0」にセツトされていることが分かる。
しかしながら、複数のプロセツサ内において対応
するビツト・アドレスが「1」にセツトされてい
るような方式も可能であるし、有用でもある。こ
の方式は「クラス・アドレス」モードといわれる
方式である。 クラス・アドレスは、そのコピーが複数のプロ
セツサ内に存在する処理手順ないし機能の名称と
考えることができる。該当する処理手順ないし機
能を備えているプロセツサは、いずれも対応する
ビツト・アドレスに「1」ビツトがセツトされて
いる。 クラス・アドレスへ宛ててメツセージを送出す
るためには、DSW(第3図)内の該当するクラ
ス・アドレスがセツトされる。H.S.RAMの中の
該当する位置のビツトが「1」にセツトされてい
ることによつて当該クラスに「所属」しているこ
とが示されている全ての動作可能なプロセツサ
は、その送出されたメツセージ・パケツトに対し
て「ACK」で応答することになる。当該クラス
に所属していないプロセツサはNAPで応答する。 従つてDSWは、マルチプロセツサ・システム
内のメツセージの流れを制御するのに必要な経路
指定計算がハードウエアによつて行なわれるよう
にしている。また、プログラムを、システムの
様々な機能がいずれのプロセツサの中に備えられ
ているかという知識とは、無関係なものとするこ
とができる。更には、マツプはH.S.RAMの一部
であり、従つてマイクロプロセツサ105からア
クセスできるため、ある機能を1つのプロセツサ
から別のプロセツサへ動的に再配置することが可
能である。 マージの例 複雑なマルチプロセツサ・システムにおいて
は、一連の相互に関連した複数の動作の実行が、
タスクによつて必要とされることがある。これは
特に、複雑な問合せを取扱うリレーシヨナル・デ
ータベース・システムについて言えることであ
り、そのようなデータベース・システムにおいて
は、データをアセンブルしてフアイルを形成し、
しかもアセンブルされた後には特定の方式で複数
のプロセツサへ再分配できるようなフアイルを形
成するために、複数の二次記憶装置を参照するこ
とが必要とされることがある。以下に示す例は、
第1、第8、及び第13図のシステムは、TN
と、DSWと、それに大域的セマフオとに対して
操作を加えることによつて、そのような機能をい
かに容易に実行できるようになつているかを、手
短に説明するものである。 まず第1に、マージ・コーデイネータ(典型的
な例としてはマージ・コーデイネータはIFP14
ないし16であるが、必ずしもそれに限られるも
のではない)が、ある1つのフアイルをマージし
て形成することになる(即ちデータ・ソースとし
て機能する)1つのクラスに属する複数のAMP
を、(AMP18〜23の中から)識別する。割当
てがなされていない1つのTNが選択され、そし
てデータ・ソース機能を識別するために割当てら
れる。このフアイルを別の1組のAMP(それらは
元のデータ・ソースのプロセツサであつてもよ
い)へ分配ないしハツシングするするという第2
の主要機能に対しては、そのときまで割当てをさ
れていなかつた別のTNが割当てられる。 このマージ機能のためのコーデイネータは、第
1のTNに関係するフアイルの、マージングの作
業を行なうことになるクラスに属する複数のプロ
セツサを、DSWを用いて識別する。このマージ
ングの作業に関与する関与プロセツサは、その
TNのステータスのレベルを上昇させて「ビズ
イ」または「ウエイテイング」ステータスとし、
その後に、マージ動作の制御が、マージ動作に関
与している関与プロセツサのうちの1つへ渡され
る(即ちコーデイネータの仕事が委任される)。
以上の複数の関与プロセツサ(それら以外の全て
のプロセツサ・モジユールはそのトランザクシヨ
ン・ナンバに関しては非関与プロセツサ である)の各々は、このように規定されたマージ
のタスクに関するメツセージ・パケツトを受信し
てそれに対する肯定応答を送出した後には、その
プロセツサ自身のサブタスクの実行を、そのステ
ータス・レベルを適宜更新しながら進行させて行
く。そして、マージ・コーデイネータの仕事を委
任されているプロセツサがそれ自身のタスクを終
了したならば、そのプロセツサは、その他の全て
の関与プロセツサに対して、当該トランザクシヨ
ン・ナンバに関するステータスを知らせるよう、
ステータス・リクエストを送出し、それによつ
て、関与プロセツサのうちでレデイネス状態が最
低のプロセツサを表示している応答を受取ること
ができる。マージ動作の制御は、このレデイネス
状態が最低のプロセツサへ渡され、この後には、
このプロセツサが、自身の作業が終了した際にそ
の他全ての関与プロセツサをポーリングすること
ができるようになる。以上のプロセスは、必要と
あらば、関与プロセツサの全てが準備完了状態と
なつていることを示す応答が受信されるまで、続
けさせることができる。そのような応答が受信さ
れた時点においてコーデイネータとして働いてい
たプロセツサは、続いて、DSWを利用して当該
クラスに属している関与プロセツサを識別しつ
つ、H.S.RAM26へのメツセージの転送を開始
し、このメツセージの転送に伴なつて、ステータ
ス・レベルが該当する出力メツセージ・ベクタ情
報により「送信準備完了」へと更新される。これ
に続いて実行されるポーリングの結果、全ての関
与AMPが送信準備完了状態にあることが判明し
たならば、コーデイネータは、その特定のTNに
ついてのマージ開始コマンドを発令する。 マージ動作が実行されている間に、処理済のデ
ータ・パケツトは、結果をリレーシヨナル・デー
タベースに従つて二次記憶装置へ分配するための
1つのクラスに属する複数のプロセツサ・モジユ
ールへ宛てて、転送されることになる。それらの
複数の受信プロセツサが、このとき発信元となつ
ている複数のプロセツサと同じものであると否と
にかかわらず、この分配に関与するクラスに所属
する関与プロセツサ(即ち上記受信プロセツサ)
は、DSWによつて識別され、またそのトランザ
クシヨンは新たなTNによつて識別される。この
新しいトランザクシヨンに関わる関与プロセツサ
の全てに対して、この新たなTNが割当てられる
ことになり、また、それらの関与プロセツサは、
それらのレデイネス状態のレベルを上昇させて
「受信準備完了」とすることになる。このDSW
は、クラス指定ではなく、ハツシング選択指定の
ものとすることもできるが、いずれの場合におい
ても、マージが実行されている間は、関与プロセ
ツサの全てが、ブロードカストされるメツセージ
を受信できる状態におかれている。「マージ開始」
が発令されたならば、送出動作に関与すべき送出
関与プロセツサの各々から複数のメツセージ・パ
ケツトが、しかも夫々のプロセツサから互いに同
時に、ネツトワーク上へ送出され、それらのメツ
セージ・パケツトに対しては動的に(=伝送中
に)優先権の判定が行なわれる。各々の送出関与
プロセツサが、それ自身の1組のメツセージを送
信完了したならば、それらの各々の送出関与プロ
セツサは、一定の形に定められている「エンド・
オブ・フアイル(End of file)」メツセージの送
信を試み、この「エンド・オブ・フアイル」メツ
セージは種々のデータメツセージより優先順位が
低い。関与プロセツサの全てが「エンド・オブ・
フアイル」メツセージを送出するようになるまで
は、この「エンド・オブ・フアイル」メツセージ
はデータ・メツセージとの競合に敗退し続け、そ
して全ての関与プロセツサから送出されるように
なつたならば、ようやく、「エンド・オブ・フア
イル」メツセージの転送が達成される。この転送
が達成されると、コーデイネータは「エンド・オ
ブ・マージ(End of marge)」メツセージを送
出し、また、それに続いて「TN放棄」を実行す
ることができ、この「TN放棄」によつてこのト
ランザクシヨンは終了する。オーバラン状態、エ
ラー状態、ないしはロツク状態に対しては、マー
ジ即ち送信を始めからやり直すことによつて適切
に対処することができる。 ある1つのTNに関するマージ動作が終了した
ならば、このシステムは、TNのシーケンスの中
の、続く次のTNへとシフトすることができる。
この新たなTNに該当する複数のメツセージ・パ
ケツトの待ち行列を、各々のプロセツサ・モジユ
ールが作り終つたならば、それらのプロセツサ・
モジユールは、マージ動作を実行させるためのネ
ツトワークに対する働きかけを再び開始すること
が可能となる。個別に実行されるプロセツサ内マ
ージ動作に加え、更に以上のようにネツトワーク
内マージ動作が効率的に利用されるために、この
システムは、従来のシステムに対して著しく優れ
た、極めて大規模なソート/マージ・タスクを実
行することができるようになつている。本発明を
採用した場合に、システム内のある1つのフアイ
ルをソートするために必要な時間は、レコードの
個数をn個、プロセツサの個数をm個とすると
き、以下の式で表わすことができる。 C1n/mlog2n/m+C2n この式において、C2は定数であり、この実施例
に関しては、100バイト・メツセージが用いられ
ている場合には約10マイクロ秒と見積られ、また
C1は、典型的な16ビツト・マイクロプロセツサ
が使用されている場合に、約1ミリ秒と見積られ
る定数である。様々に組み合わせたnとmとの組
合せに対する、概略のソート/マージ時間が、秒
を単位として次の表に示されており、それらの値
は100バイト・レコードが用いられている場合の
値である。
[Table] Using the "TN assignment" command, assign
TN is now assigned dynamically. A success indication (a "SACK/Assign" response to a "TN Assign" message) indicates that all operational processors have successfully assigned the TN to the task. It should be noted with respect to Figure 11 that the "NAK/TN Error" response has a high priority (small value) so that either processor's network interface 120 detects a conflict regarding the use of the TN. If so, all processors will receive a failure response. Additionally, the OPID (Originating Processor ID) of this failure response transmitted over the network.
The field will display the first processor (the one with the lowest assigned number) among the processors that caused the collision. This fact is utilized in diagnostic routines. Each processor uses software to process tasks, and to “visi” the TN.
The appropriate one of "waiting,""superstitionready,""receivingready,""end," or "non-participating processor" is set. Any processor, including the one that issued the first TN assignment, can issue a ``Status Request'' at any time.
By issuing a command or a "start merge" command, it is possible to easily check the status of the task (TN) to what extent it has been completed. A "status request" is equivalent to a single test of a multivalued global semaphore. As can be seen from Figure 11,
The status response (SACK) message with the highest priority wins the competition on the network, resulting in the lowest readiness status being displayed. Furthermore, the OPID field will display the identity of the first processor (the one with the lowest number) among the processors in the lowest readiness state. This latter characteristic can be used to "wait" for the completion of tasks distributed among multiple processors.
A "non-bysy" format is defined. The processor that first issued the ``TN allocation'' is said to be the first ``wait master.'' This processor then designates some other processor as the new "wait master" based on arbitrary criteria. Once this new ``weight master'' has reached the desired state of readiness, it will notify all processors by issuing either a ``begin merge'' or a ``status request.'' Make inquiries. If all other processors are in the standard completion state, SACK will indicate this. If some processors are still not ready, the SACK response
The OPID field will display the first of the least ready processors. The ``Weight Master'' commands its processor to become the new ``Weight Master.'' Eventually, all processors will reach the ready state, but until then the system simply attempts to query the status each time it is notified that at least one processor has reached the ready state. It is. The system is thus not burdened with periodic status queries that consume resources without producing results. Additionally, this scheme ensures that the system knows that all processors have completed their work at the exact time the last completed process ends. As will be understood by those skilled in the art, a wide variety of other forms of "waiting" may be employed within the scope of the inventive concept. The "Start Merge" command is a special type of test-and-set instruction. If the status of the global semaphore is ``Ready to Send'' or ``Ready to Receive,'' then the current transaction number register (PTNR) 206
(see FIG. 13) is set to the value of the transaction number in the "start merge" message (see FIG. 3), thereby setting the PTNR register. If any of the active processors are in a lower readiness state, the value of PTNR is unchanged. The ``stop merge'' command is a reset operation corresponding to the above operation, and unconditionally resets the PTNR of all operating processors to ``TNO.'' As explained below, the current global task specified by PTNR
Only messages related to globaltask are output from network interface 120. Therefore, the ``Start Merge'' and ``Stop Merge'' commands provide the ability to time multiplex the network between multiple tasks. These tasks can then be stopped and/or resumed at will. An important detailed feature of the present invention is that the network interface 120 allows access to the TN by commands from the network and access to the TN by the microprocessor 105.
There are some things that I try to never do at the same time. In this embodiment, this is accomplished by a signal being sent from the receive state control circuit 260 to the read/write state control circuit 270, which signals the network that may change the TN. It is always in the "affirmative" state when a command from is being processed.
During the short time that this signal is in the "affirm" state,
The processor is prohibited by control circuit 270 from accessing the HSRAM. As will be appreciated by those skilled in the art, a wide variety of alternative configurations may be employed in lieu of the above configurations without departing from the scope of the present invention. Reception Control A further function of the TN is the control of incoming messages. By using the "TN Assign" command, input message streams at multiple processors can be associated for a given task. The TN assigned to the task in a given processor is "ready to receive"
When the TN is set to
A count value representing the number of packets that the processor is ready to accept is also displayed (FIG. 12). Network interface 1
20 decrements this count value each time it successfully receives an individual packet (this decrement is done by subtracting ``1'' arithmetically from the word of TN); This continues until the value reaches zero. When the count value reaches zero, a "NACK/overrun" response is generated, which tells the processor sending the packet that the processor issuing the NACK response is ready to accept more input packets. You will be informed that you will have to wait until it is available.
Furthermore, as can be seen from FIG. 18, at this time, PTNR is also reset to "TNO". The above operating mechanism allows direct control of the flow of packets flowing through the network. It also ensures that a single processor is not overwhelmed with unprocessed packets and that the processor does not become a bottleneck for the system. Transmission Control To explain Figure 21A, as can be seen from the figure, each message stored in HSRAM is assigned a new TN vector (=Next Message
contains a field to accommodate the value of the vector). Once you have sent a message and successfully received a response to it, the new TN vector contained in the message you just sent is now H.
Stored (transferred from PTNR) to the address for storing the current transaction number in S.RAM. Therefore, the TN is updated each time an individual message is sent, and it is possible to automatically set the TN to the desired state when a message is successfully transmitted. There is. To explain Fig. 12, "Send preparation complete"
The TN format is 14-bit HSRAM
This address is used to point to the next packet to be output for a given task (TN). Therefore,
The TN stored in HSRAM also serves as a head pointer to the beginning of a first-in-first-out (FIFO) queue of messages for various tasks. Therefore, as far as a given task (TN) is concerned, each processor will attempt to send packets in the order determined by the chain of new TN vectors. By combining it with the mechanism for high-speed network multiplexing (multiplexing) between multiple TNs (tasks), as explained earlier,
It is clear that many sets of complex combinations of tasks distributed among many processors can be managed with very little software overhead. The structure provided by the collaboration of networks, interfaces, and processors allows copies to be distributed among hundreds or even thousands of processors. This is a preferred configuration for allocating and deallocating resources, suspending and resuming tasks, and performing other controls over resources and tasks that can be distributed. Example of DSW (Destination Selection Word) The Destination Selection Word (Figure 3) is used for DSW logic 190 (Figure 13) and HSRAM 26 (Figure 8).
By collaborating with the DSW section of
It provides multiple modes that allow you to: That is, these modes are those in which the network interface 120 of each receiving processor intends that messages being received be processed by the microprocessor 105 associated with that network interface. These are multiple modes that allow you to quickly make a decision as to whether or not something has happened. As already explained, the message contained in the received message
The DSW selects and compares the nibble stored in the DSW section of HSRAM. Processor Address As shown in Figure 8, the HSRAM
One portion of the DSW section is dedicated to storing processor address select nibbles. In this system, each of the 1024 processors that can be mounted is associated with one of the bit addresses contained in this portion of HSRAM. The bit of the bit address associated with the ID (identity) of the processor is set to "1", while all other bits in this section are set to "0". Therefore, each processor has only one bit in this section set to "1". Hash Maps Another portion of the DSW section of HSRAM is devoted to storing hash maps. In this system, two of the map selection bits are applied to those hash maps, resulting in two complete sets containing all 4096 possible values. In hashedmode, keys for records stored in secondary storage are set according to a hashing algorithm, which assigns a "bucket" between 0 and 4095. It is done. A processor in charge of a record contained in a given bucket has a bit set to 1 in the map bit whose address corresponds to the bucket number of that bucket. . Other bits are set to "0". A given processor can be responsible for multiple buckets by simply setting multiple map bits. In the configuration of this embodiment, as is easily understood, the map bits can be set in the following manner. That is, for a given map selection bit, each bit address is set to ``1'' in only one processor, and any bit address is always set to ``1'' in one processor. This method is set to "1" at As a direct result of adopting this method, each processor (AMP)
The system is designed to provide distinct and disjoint subsets of records in the database, yet for the system as a whole there is a complete set that includes all of the records. Although the above examples are explained using the relational database problem as an example, those skilled in the art will readily understand that disjoint subsets of the problem can be The same method can be applied to any problem area that can be assigned to individual processors. Yet another thing worth noting is that by having two complete maps, the scheme described above can be used to convert the buckets that are assigned to a given processor according to one map to the buckets assigned to a given processor according to the other map. This means that the map can be configured so that it can be assigned to a different processor. Now, if we say that one map is "primary" and the other map is "backup", then the direct consequence is that a record that is temporary on a given processor will be It can be ensured that it is backed up on another processor. Furthermore, there are no restrictions on the number of processors that can back up a given processor. As will be understood by those skilled in the art, the number of distinct maps that can be implemented within the scope of the present invention can be greater than two, and the number of buckets can be any number. Class In both the processor address and hash map cases described above, if we examine a given bit address for all processors, we can determine that the bit address is ``1'' only in one processor. It can be seen that the corresponding bit address in all other processors is set to "0".
However, it is also possible and useful to have corresponding bit addresses set to ``1'' in multiple processors. This method is called the "class address" mode. A class address can be thought of as the name of a procedure or function, copies of which exist in multiple processors. All processors equipped with the corresponding processing procedure or function have a "1" bit set in the corresponding bit address. To send a message to a class address, the appropriate class address in the DSW (Figure 3) is set. All operational processors that are indicated as ``belonging'' to the class by having a bit set to ``1'' in the appropriate location in HSRAM will - It will respond to the packet with "ACK". Processors that do not belong to the relevant class respond with NAP. DSW therefore allows the routing calculations necessary to control the flow of messages within a multiprocessor system to be performed by hardware. Also, the program can be made independent of knowledge of which processor contains the various functions of the system. Furthermore, because the map is part of the HSRAM and therefore accessible to the microprocessor 105, it is possible to dynamically relocate certain functions from one processor to another. Example of merging In a complex multiprocessor system, performing a series of multiple, interrelated operations
May be required by the task. This is especially true for relational database systems that handle complex queries, where data is assembled into files,
Moreover, references to multiple secondary storage devices may be required to form a file that, once assembled, can be redistributed to multiple processors in a particular manner. The example shown below is
The systems in Figures 1, 8, and 13 are TN
This article briefly explains how such functions can be easily performed by manipulating the DSW and the global semaphore. First of all, the merge coordinator (typically the merge coordinator is IFP14
to 16, but are not necessarily limited to AMPs belonging to one class that will be formed by merging one file (i.e., acting as a data source).
(among AMPs 18 to 23). One unassigned TN is selected and assigned to identify the data source function. A second step is to distribute or hash this file to another set of AMPs (which may be processors of the original data source).
A separate TN, which had not been allocated up to that point, is assigned to the main function of the TN. The coordinator for this merging function uses DSW to identify a plurality of processors belonging to a class that will perform merging of files related to the first TN. The participating processors involved in this merging task are
Increase the level of TN's status to "bizui" or "waiting" status,
Thereafter, control of the merge operation is passed to one of the participating processors involved in the merge operation (ie, the job of coordinator is delegated).
Each of the above plurality of participating processors (all other processor modules are non-participating processors with respect to their transaction numbers) receives a message packet regarding the merge task thus defined. After sending an acknowledgment, the processor proceeds with execution of its own subtasks, updating its status level accordingly. Then, once the processor to which the merge coordinator task has been delegated has completed its own task, it will notify all other participating processors of the status regarding that transaction number.
A status request may be sent and a response may be received indicating the least readiness of the participating processors. Control of the merge operation is passed to the processor with the lowest readiness state, after which
This processor will be able to poll all other participating processors when it has finished its work. The above process can be allowed to continue, if necessary, until a response is received indicating that all participating processors are ready. The processor acting as a coordinator at the time such a response is received then begins forwarding the message to the HSRAM 26, utilizing the DSW to identify the participating processors that belong to the class in question. As the message is transferred, the status level is updated to "ready to send" based on the corresponding output message vector information. If the subsequent polling shows that all participating AMPs are ready to transmit, the coordinator issues a merge start command for that particular TN. While a merge operation is being performed, processed data packets are directed and forwarded to multiple processor modules belonging to one class for distributing the results to secondary storage according to the relational database. will be done. Regardless of whether or not these multiple receiving processors are the same as the multiple processors that are the source at this time, the participating processors (i.e., the above-mentioned receiving processors) belonging to the class involved in this distribution
is identified by the DSW, and its transaction is identified by the new TN. This new TN will be assigned to all participating processors involved in this new transaction, and those participating processors will be
Their readiness level is increased to make them "ready for reception." This DSW
may be a hashing selection specification rather than a class specification, but in either case all participating processors must be able to receive the message being broadcast while the merge is being performed. It is placed. "Start merging"
is issued, a plurality of message packets are sent out onto the network simultaneously from each of the sending processors that are to be involved in the sending operation, and the message packets are sent out onto the network simultaneously. Priority determination is performed dynamically (=during transmission). Once each sending participating processor has completed sending its own set of messages, each sending participating processor has an ``end'' that is defined in some form.
An attempt is made to send an "End of file" message, which has lower priority than various data messages. All of the involved processors
This "end-of-file" message continues to lose out to data messages until it starts sending out "file" messages, and only after all participating processors have sent out "end-of-file" messages. , the transfer of an "end-of-fail" message is accomplished. Once this transfer is achieved, the coordinator sends an "End of merge" message and can also subsequently perform a "TN abandonment", which This transaction ends. Overrun, error, or locked conditions can be appropriately handled by merging or starting the transmission over again. Once the merge operation for a TN is complete, the system can shift to the next TN in the sequence of TNs.
Once each processor module has created a queue for multiple message packets that correspond to this new TN,
The module is then able to restart its approach to the network to perform the merge operation. In addition to the individually executed in-processor merge operations, this efficient use of intra-network merge operations makes this system a significant improvement over previous systems in terms of very large scale performance. It is now possible to perform sort/merge tasks. When the present invention is adopted, the time required to sort one file in the system can be expressed by the following formula when the number of records is n and the number of processors is m. . C 1 n/m log 2 n/m + C 2 n In this equation, C 2 is a constant and for this example is estimated to be approximately 10 microseconds if a 100 byte message is used;
C 1 is a constant estimated to be approximately 1 millisecond if a typical 16-bit microprocessor is used. Approximate sort/merge times in seconds for various combinations of n and m are shown in the following table, assuming 100-byte records are used. be.

【表】 以上の表に示されている具体例の数字を従来の
システムと比較して評価するのは容易なことでは
ない。その理由は、相互に関連を有する2種類の
ソート処理シーケンス(プロセツサによるソート
とネツトワークによるソート)が関与しているか
らであり、また、そもそも、かかる能力を有する
システムが殆んど存在しないからである。更に、
本システムではその長さが長大でしかも可変なメ
ツセージがソート及びマージされるのに対して、
一般的な多くのソート能力は、数バイトないし数
ワードについて能力評価がなされている。 更に別の重要な要因として、本システムはマル
チプロセツサそのものであつて、ソート/マージ
処理の専用システムではないということがある。
本システムは、局所的にも大域的にも、マージ動
作とノン・マージ動作との間を完全なフレキシビ
リテイをもつてシフトすることができ、しかもこ
のシフトを、ソフトウエア的な不利益を生じるこ
となく、また、システム効率に損失を生じさせる
こともなく、行なえるようになつている。 タスク・リクエスト/タスク応答のサイクルの例 第1図に関し、ネツトワーク50に接続されて
いるプロセツサ14,16、ないし18〜23は
いずれも、他の1個または複数のプロセツサにタ
スクを実行させるためのタスク・リクエストを、
メツセージ・パケツトの形態の然るべきフオーマ
ツトで形成する機能を有している。リレーシヨナ
ル・データベース・システムにおいては、これら
のタスクの殆んどはホスト・コンピユータ10,
12をその発生源とし、インターフエイス・プロ
セツサ14,16を介してシステム内へ入力され
るものであるが、ただし、このことは必要条件で
はない。然るべきフオーマツトで形成されたこの
メツセージ・パケツトは、他のプロセツサからの
パケツトとの間で争われるネツトワーク上の競合
の中へ投入され、そして、他のタスクの優先順位
のレベル並びにこのプロセツサにおける動作状態
のレベル次第で、時には優先権を得ることにな
る。タスクは、1つのメツセージ・パケツトによ
つてその内容を指定されていることもあり、ま
た、複数の継続パケツトによつて指定されている
こともあるが、後に続く継続パケツトは、デー
タ・メツセージのグループ(第11図参照)の中
では比較的高い優先順位レベルを割当てられ、そ
れによつて、後に続く部分を受信するに際しての
遅延ができるだけ短くなるようにしている。 メツセージ・パケツトには、トランザクシヨ
ン・アイデンテイテイ(=トランザクシヨン識別
情報)が、トランザクシヨン・ナンバの形で含ま
れている。このトランザクシヨン・ナンバは、処
理結果を引き出す上での方式に関するモードであ
るノン・マージ・モード即ちデイフオルト・モー
ド(「TNO」)と、マージ・モード(「TNO」以
外の全てのTN)とを、選択に応じて区別すると
いう性質を本来的に備えている。更に、メツセー
ジ・パケツトにはDSWが含まれている。この
DSWは、実質的に、転送先プロセツサとマルチ
プロセツサ動作のモードとを指定するものであ
り、この指定は、特定のプロセツサの指定、複数
のプロセツサから成るクラスの指定、或いはハツ
シングの指定によつて行なわれ、本実施例におい
ては、ハツシングは、リレーシヨナル・データベ
ースの一部分へのハツシングである。ネツトワー
ク50を介してターゲツト・プロセツサ(指定転
送先プロセツサ)へブロードカストされるメツセ
ージ・パケツトは、そのプロセツサにおいて局所
的に受入れられて(=そのプロセツサ自身への受
入れが適当であるとの判断がそのプロセツサ自身
によつてなされて)、そして、受信した旨の認証
が肯定応答(ACK)によつて行なわれる。プロ
セツサ14,16及び18〜23の全てが、
EOM(エンド・オブ・メツセージ)のあとに続い
てネツトワーク50へ互いに同時に応答を送出す
るが、しかしながら、指定転送先プロセツサから
送出されたACKが優先権を獲得し、そして発信
元プロセツサに受信されることになる。 続いて指定転送先プロセツサは、送られてきた
メツセージが、局所H.S.RAM(=個々のプロセ
ツサ・モジユールに備えられているH.S.RAM)
とインターフエイス120と(第8図及び第13
図)を介して局所マイクロプロセツサに転送され
るときに、このリクエスト・パケツト(=送られ
てきたメツセージ)が要求している処理を非同期
的に(=当該プロセツサ・モジユール以外の要素
とは同期せずに)実行する。リレーシヨナル・デ
ータベースに関するタスクが実行される場合に
は、DSWは互いに素のデータ部分集合(この部
分集合はその部分集合のためのデイスク・ドライ
ブに格納されている)のある部分を指定するのが
通常の例であるが、ただし、時には、格納されて
いるデータベースを参照することを必要としない
タスクが実行されることもある。特定の演算やア
ルゴリズムを個々のプロセツサによつて実行する
ようにしても良く、また指定転送先プロセツサと
して複数のプロセツサが指定された場合には、そ
れらのプロセツサの各々が、タスク全体の互いに
素の部分集合についての仕事を実行するようにす
ることができる。可変長のメツセージ・パケツト
は、リクエスト・メツセージによつて、実行すべ
き動作とデータベース・システム内の参照すべき
フアイルとの指定が行えるように構成されてい
る。ここで注意すべきことは、所与の1つのタス
クに関するメツセージ・パケツトが大量に存在し
ている場合もあるということであり、その場合に
は、ネツトワークの内部で行なわれるソートのた
めの弁別基準となる適当な特徴を付与するため
に、任意採用可能なキー・フイールド(第3図)
が重要になつてくるということである。 応答を行なおうとしている各プロセツサによつ
て発生されるタスク応答パケツトは、マイクロプ
ロセツサから、第1図の制御ロジツク28を介し
て局所H.S.RAM26へと転送され、そこでは、
タスク応答パケツトは第21A図の送出メツセー
ジ・フオーマツトの形で格納される。タスク応答
が、継続パケツトの使用を必要とするものである
場合には、そのような継続パケツトは先頭パケツ
トの後に続いて、ただし継続のためのより高い優
先順位を与えられた上で、送出される。システム
がマージ・モードで動作しており、且つ、各々の
プロセツサがある1つのトランザクシヨン・ナン
バに関する多数のパケツトを発生している場合に
は、それらのパケツトを先ず局所的に(=個々の
プロセツサの内部において)ソート順でチエーン
し、その後に、ネツトワーク50上でマージを行
なうことによつて大域的なソート順に並べるよう
にすることができる。 タスク結果パケツトは、プロセツサ14,16
及び18〜23からネツトワーク50へ、同時送
出パケツト群を成すように送出され、そして1つ
の最優先メツセージ・パケツトが、所定のネツト
ワーク遅延ののちに、全てのプロセツサへブロー
ドカストにより送り返される。それらのタスク結
果パケツトの転送は、そのタスクの性質に応じ
て、最初にリクエスト・メツセージを発信した発
信元プロセツサをその転送先として行なわれるこ
ともあり、また、1個ないし複数個の他のプロセ
ツサを転送先として行なわれることもあり、更に
は、既に説明した複数のマルチプロセツサ・モー
ドのうちのいずれのモードで転送を行なうことも
できる。リレーシヨナル・データベース・システ
ムにおいて最も一般的に行なわれる事例は、ハツ
シイングを利用して転送先の選択を行ないつつ、
マージと再分配とを同時に実行するというもので
ある。従つてそのことからも理解されるように、
「タスク・リクエスト/タスク応答」のサイクル
の中では、各々のプロセツサが、発信元プロセツ
サとしても、コーデイネータ・プロセツサとして
も、また、応答側プロセツサとしても動作するこ
とができ、更には、それらの3つの全てとして動
作することもできるようになつている。多くの
「タスク・リクエスト/タスク応答」サイクルが
関与してくるため、プロセツサ14,16及び1
8〜23、並びにネツトワーク50は、それらの
タスクの間で多重化(マルチプレクシング)され
るが、ただしこの多重化は、時間を基準にすると
共に更に優先順位をも基準にして行なわれる。 複雑な問合わせの例 リレーシヨナル・データベース・システムにお
いては、ホスト・コンピユータ10,12を利用
して、また更に、タプル(tuples)と一次的デー
タ及びバツクアツプ用データの互いに素のデータ
部分集合とを規定するアルゴリズムに従つてリレ
ーシヨナル・データベースを複数のデイスク・ド
ライブ38〜43の間に分配するようにした分配
法を利用して、複雑な問合せがホスト・コンピユ
ータ10または12から、IFP14または16を
介してシステムへ入力される。この入力された問
合せのメツセージ・パケツトは、先ず最初にIFP
14または16によつて詳細に解析され、この解
析は、ホスト・コンピユータからのメツセージ
を、AMP18〜23に対してタスクの実行を要
求するための複数のタスク・リクエストへと変換
するために行なわれるものである。IFP14ない
し16は、その動作を開始するに際して、1個な
いし複数個の特定のAMPから情報を引き出すた
めのリクエスト・パケツトを送出し、それによつ
て、ホスト・コンピユータからのメツセージの詳
細な解析に必要なシステム内データを得ることが
必要な場合もある。ホスト・コンピユータからの
リクエストの処理に必要なデータを得たならば、
IFP14ないし16は、AMP18〜23との間
で何回かの「タスク・リクエストト/タスク応
答」サイクルを実行することができ、また、デー
タを実際に処理して、ホスト・コンピユータから
のリクエストを満足させることができる。以上の
処理シーケンスにおいては、上に挙げたタスク・
リクエストとタスク応答とから成るサイクルが用
いられ、また、そのサイクルは任意の長さに亙つ
て継続することができる。続いて、IFP14ない
し16は、IFPインターフエイスを介してホス
ト・コンピユータと通信する。ホスト・コンピユ
ータへのこの応答は、単に、ホスト・コンピユー
タ10または12が次の複雑な問合せを発生する
ために必要とするデータを提供するためのもので
あることもある。 (独立型マルチプロセツサシステム) 第1図に関連して先に説明した本発明に係るシ
ステムの基本的実施例は、ホスト・コンピユータ
並びに現在使用されているホスト・コンピユータ
用のソフトウエア・パツケージと組み合わせて使
用することのできる、後置プロセツサ(バツクエ
ンド・プロセツサ)の例を示すものである。しか
しながら、既に言及したように、本発明は広範な
種々の処理用途において、また特に、大容量の中
央処理能力を必要とすることなく処理タスクを容
易に細分及び分配できるような種類の処理用途に
おいて、格別の利点を有するものである。第20
図は、本発明に係る独立型(スタンド・アローン
型)マルチプロセツサ・システムの簡単な構成の
一実施例を図示している。第20図において、複
数のプロセツサ300はいずれもインターフエイ
ス302を介して能動ロジツク・ネツトワーク3
04へ接続されており、このネツトワークは既に
説明したものと同様のネツトワークである。デー
タの完全性を強化するために、冗長性を有する能
動ロジツク・ネツトワーク304を採用するよう
にしても良い。この実施例においても、プロセツ
サ300には16ビツト・マイクロプロセツサ・チ
ツプを使用することができ、また、充分な容量の
メインRAMメモリを組込むことができるように
なつている。この図には9つのプロセツサ300
のみが示されており、また、それらのプロセツサ
の各々には異なつた種類の周辺機器が接続されて
いるが、これは、このシステムの多用途性を示す
ためである。実際には、このシステムは更に多く
のプロセツサをネツトワークに備えることにより
はるかに効率的になるのであるが、しかしなが
ら、比較的少数のプロセツサしか備えていない場
合であつても、システムの信頼性とデータの完全
性と関して格別の利点が得られるものである。 この実施例においては、複数のプロセツサ30
0を不便のない充分な距離をとつて互いから物理
的に離隔させることができ、それは、データ転送
速度が先の実施例について述べた速度である場合
にノード間の最大間隔が28フイート(5.5m)に
もなるため、大規模なアレイを成す複数のプロセ
ツサを、建物の1つのフロア、ないしは隣接する
幾つかのフロアの上に、むやみに込み合うことの
ないように設置して、利用することができるから
である。 独立型システムでは、先に説明した後置プロセ
ツサの実施例の場合と比較して、周辺機器コント
ローラ並びに周辺機器それ自体に、はるかに多く
の種類のものが用いられる。ここでは便宜的に、
個々の入出力デバイスは、夫々が別個のプロセツ
サに接続されているものとする。例えば、キーボ
ード312とデイスプレイ314とを備えた入出
力末端装置310は、端末コントローラ320を
介して、同端末装置310のためのプロセツサ3
00に接続されている。ただし、比較的動作速度
が遅い端末装置の場合には、かなりの規模の端末
装置ネツトワークを1個の16ビツト・プロセツサ
で制御することも不可能ではない。この図示の入
出力端末装置は、手動操作キーボード等の手動操
作入力処理装置がどのようにしてシステムに接続
されるのかについての一例を示しているにすぎな
い。プロセツサ300の処理能力を利用してこの
端末装置310をワードプロセツサとして構成す
ることもでき、そしてこのワードプロセツサが、
ネツトワーク304を介してデータベースや他の
ワードプロセツサ、或いは種々の出力装置と通信
できるようにすることもできる。例えばリジツ
ド・デイスク・ドライブ322等の大容量二次記
憶装置を、デイスクコントローラ324を介し
て、その記憶装置のためのプロセツサに接続する
ことができる。また、容易に理解されるように、
大規模システムには、より多数のデイスク・ドラ
イブを用いたり、或いは異なつた形態の大容量記
憶装置を用いるようにすれば良い。プリンタ32
6並びにプロツタ330等の出力装置は、夫々、
プリンタ・コントローラ328とプロツタ・コン
トローラ332とを介して、それらの出力装置の
ためのプロセツサ300にインターフエイスして
いる。不図示の他のシステムとの間の対話は通信
コントローラ338を介して、そして通信システ
ム336を経由して行われ、通信システム336
としては例えば、テレタイプ・ネツトワーク
(TTY)や、更に大規模なネツトワークのうちの
1つ(例えばエサーネツト(Ethernet))等が用
いられる。プロセツサ300のうちの幾つかが、
周辺装置を接続することなく単にネツトワーク3
04に接続されることもある(不図示)。 双方向のデータ転送が行なわれる可能性がある
のは、テープ・ドライブ(テープ駆動機構)34
0及びテープ・ドライブ・コントローラ342が
用いられている場合、それに、コントローラ34
6が接続されたフロツピ・デイスク・ドライブ3
44が用いられている場合等である。一般にテー
プ・ドライブは、オン・ライン接続して使用する
際の大きな記憶容量を提供するばかりでなく、デ
イスク・ドライブのバツクアツプにも利用可能で
ある。このバツクアツプの目的には、密閉式リジ
ツド・デイスク装置に、ある時点までに格納され
たデータを保存するためにテープが用いられる。
このようなバツクアツプ動作は、通常、低負荷の
時間帯(例えば夜間または週末等)に行なわれる
ため、ネツトワーク304を用いて長い「ストリ
ーミング」転送を行なうことができる。更には、
システムの初期設定の際のプログラムの入力のた
めには、フロツピ・デイスク・ドライブ344が
使用されることがあるため、ネツトワークの使用
時間のうちの幾分かをこの「ストリーミング」の
モードにあてて、かなりの量のデータを転送する
こともできる。光学文字読取器350は、更に別
の入力データのソースとして機能するものであ
り、その入力データは、そのコントローラ352
を介してシステムへ入力される。尚、単に「他の
装置354」とだけ記されている周辺装置は、コ
ントローラ356を介してシステムに接続するこ
とによつて、必要に応じたその他の機能を発揮す
るようにすることができるものである。 別々のプロセツサ・モジユールから夫々のメツ
セージ・パケツトを互いに同時に送出し、そして
それらのメツセージ・パケツトに対して優先権の
判定を行なつて、1つの、或いは共通の最優先メ
ツセージ・パケツトが所定の一定の時間内に全て
のプロセツサ・モジユールへ同時にブロードカス
トされるようにするという方式を使用しているた
め、オン・ライン状態にある個々のプロセツサの
いずれもが、このシステム内の他のプロセツサ・
モジユールに等しくアクセスできるようになつて
いる。優先順位を付与されたトランザクシヨン・
ナンバ並びにレデイネス状態表示と、メツセージ
内に含まれた転送先選択エントリとを利用してい
るこの大域的セマフオ・システムによつて、どの
プロセツサもコントローラとして働くことが可能
となつているため、このシステムは、階層的な方
式でも、また非階層的な方式でも動作可能となつ
ている。本システムが、ソフトウエアの精査や変
更を必要とすることなく拡張或いは縮小すること
ができるということも、非常に重要である。 既に説明したメツセージ長さよりかなり長い
が、なお比較的長さの限られているメツセージに
対するアクセスが必要な場合であつても、そのよ
うなアクセスを実行することができる。例を挙げ
れば、複雑なコンピユータ・グラフイクス装置
(不図示)に関して、精巧な2次元図形及び3次
図形を作成するために、膨大なデータベースの特
定の部分にだけアクセスすることが必要とされる
場合がある。また、ワード・プロセツサ・システ
ムに関して、オペレータ(操作者)の操作速度が
遅いために、データベースのうちから、一度に僅
かなデータのシーケンスのみが必要とされる場合
もある。これらの状況、並びにそれに類似した状
況においては、本システムの、可変長のメツセー
ジを取扱うことのできる能力、並びに継続メツセ
ージに優先権を付与することのできる能力が有益
なものとなる。処理能力を集中させることを必要
とする状況や、甚だしく長いメツセージの転送を
必要とする状況は、このシステムの使用に限界を
与えるが、それ以外の状況においては、本システ
ムは非常に有利に機能する。種々の異なつたデー
タ形式の操作とそれに伴なうのソート機能ないし
マージ機能に関わる動的な状況は、いずれも本発
明が有利に機能する状況に該当する。複雑なデー
タを収集し、照合し、そして解析することを含む
経営意思決定はその種の状況の一例であり、ま
た、定期刊行物のための、映像入力や図形入力の
作成及び編集も、その一例である。 (結論) 当業者には明らかなように、第1図のシステム
は、ソフトウエアを変更することを必要とせずに
そこに含まれるプロセツサの個数を任意の個数に
(ただしデータ転送容量によつて決定される実際
上の限界の個数までに)拡張することが可能であ
る。更にこれも明らかなことであるが、同図のシ
ステムは、夫々の処理装置のステータスの確認、
タスク並びにプロセツサの優先順位の設定、それ
にプロセツサの処理能力の効率的な利用の確保の
ための、管理及びオーバーヘツトのソフトウエア
の必要量を大幅に減少させている。 明白な利益が得られるのは、データベース・シ
ステムや、その他の、データベース・システムと
同様に1つのタスクの全体を、互いに独立して処
理することのできる複数のサブタスクへ細分する
ことが適当なシステム等の場合である。例えばリ
レーシヨナル・データベースに関して言えば、二
次記憶装置の容量が格段に増大した場合にも、更
なるデータベースを一次的データとバツクアツ
プ・データとからなるデータ構造の中に適切に統
合するだけで良いのである。換言すれば、ネツト
ワークを限りなく拡張することが可能であり、そ
れが可能であるのは、標準化された交点装置即ち
ノードを2進数的に発展して行く接続方式で連結
しているために、それらの個々のノードにおいて
実行される機能が拡張によつて変化することがな
いからである。更には、ノードの動作についての
設定処理シーケンスや外部制御も不要である。従
つて本発明に係るシステムが、第1図に示されて
いるように、1台ないし複数台のホスト・コンピ
ユータのバツクエンド・プロセツサとして機能す
るように接続されている場合には、システムのユ
ーザはオペレーテイング・システムのソフトウエ
アも、応用ソフトウエアも変更することなしに、
データベースを任意に拡張(或いは縮小)するこ
とができる。ホスト・プロセツサ・システム(=
ホスト・コンピユータ)の側から見れば、このバ
ツクエンド・プロセツサはその構成の如何にかか
わらず「透明な」ものとなつており、なぜならば
その構成が変化してもこのバツクエンド・プロセ
ツサとホスト・プロセツサ・システムとの間の対
話の態様には変化は生じないからである。このバ
ツクエンド・プロセツサに別のホスト・プロセツ
サ・システムの仕事をさせるように切り換えるた
めに、単にIFPがその新たなホスト・プロセツ
サ・システムのチヤネルないしバスとの間で適切
に会話するようにするだけで良い。 ある実機の具体例におけるネツトワークの構成
に拠れば、ネツトワーク50内のメツセージ転送
に甚だしい遅延を生じることなく、またプロセツ
サ間の競合に起因する不適当な程の遅延も生じる
ことなしに、1つのアレイに1024個までのマイク
ロプロセツサを包含して使用することができるよ
になつている。本明細書で説明した実施例を、
1024個を越えるプロセツサを含むように拡張する
にはどのようにすれば良いかは、当業者には明白
であろう。1つのシステムに1024個のプロセツサ
を用いる場合、実機の具体例では能動ノード間の
最大ライン長さは28フイートになることが分つて
おり、このライン長さであればアレイを構成する
上で問題が生じることはない。ネツトワークに起
因する遅延時間は、いかなるメツセージについて
も一定の時間2τNであり、ここでτはバイト・ク
ロツクの間隔、Nは階層構造の中の階層の数であ
る。明らかに、階層を更に1つ増すことによつて
プロセツサの個数を倍にしても、遅延時間は僅か
に増加するに過ぎない。データ・メツセージであ
れば略々必然的に長いメツセージとなるため(約
200バイト程度の長さとなる)、また、競合するメ
ツセージの全てについての優先権の判定が、デー
タをネツトワークに沿つて転送している間に行な
われるため、このネツトワークは従来のシステム
と比較して、はるかに高い利用効率でデータ・メ
ツセージの転送を行なえるものとなつている。 本システムの重要な経済上の特徴並びに動作上
の特徴のなかには、標準化された能動ロジツク回
路がソフトウエアの替わりに、そして更にはネツ
トワーク・システムにおけるフアームウエアの替
わりにも用いられているという事実によつて得ら
れている特徴がある。即ちこの事実によつて、近
代的なLSI並びにVLSIの技術を利用してプロセ
ツサのコストと周辺装置のコストとを含めた全体
のコストに対して相対的に低コストで、信頼性の
高い回路を組込むことができるようになつている
のである。 ソフトウエアに時間と経費とを費やさねばなら
ないのは、データベース管理等の問題領域のタス
クに関係するような、重要な部分についてだけに
限定されている。例を挙げれば、本システムの構
成に拠れば、データベースの完全性を維持するた
めに必要な諸機能の全てを、メツセージ・パケツ
トの構成並びにネツトワークの構成に基づく範囲
内で実行し得るようになつている。ポーリング、
ステータスの変更、並びにデータの復旧等の機能
はシステムに内部において実行される。 更に別の重要な考慮すべき点として、本発明の
ネツトワークは、その高速データ転送の性能が、
従来のオーミツクな配線バスに充分匹敵する程に
優れたものであるということがある。複数のメツ
セージ・パケツトが互いに同時に送出され、それ
らが伝送されている間に優先権の判定がなされる
ため、従来の方式において、ステータス・リクエ
ストとそれに対する応答の送出、並びに優先権の
判定に伴なつていた遅延が、回避されているから
である。更には、プロセツサの個数が莫大な個数
であつてもノード間の接続構造の長さを所定の長
さ以下に抑えることが可能であるため、バス内の
伝播時間がデータ転送速度に対する制約となるこ
とがない。 本システムは、マイクロプロセツサ及びネツト
ワークの使用効率という点において最適状態に迫
るものであることが判明している。これらの点に
関して重要なことは、全てのマイクロプロセツサ
がビズイ状態に保たれるようにすることと、ネツ
トワークが一杯に有効利用されるようにすること
である。「IFP−ネツトワーク−AMP」の構成
は、事実上それらのことを可能にしており、その
理由は、自らが送出したメツセージ・パケツトが
優先権を獲得するための競合において敗退したマ
イクロプロセツサは、なるたけ早い適当な時刻に
再度送信を試みるだけで良く、そのためバスのデ
ユーテイ・サイクルが高いレベルに維持されるか
らである。高速ランダム・アクセス・メモリもま
たこの効果を得るために寄与しており、なぜなら
ば、高速ランダム・アクセス・メモリは処理すべ
き入力メツセージ・パケツトと送出すべき出力メ
ツセージ・パケツトとの両方をその内部に集積し
ているため、各々のプロセツサが作業のバツクロ
グを常時入手できると共に、ネツトワークもまた
メツセージパケツトのバツクログを入手できるよ
うになつているからである。全ての入力バツフア
が満杯になつたならば、プロセツサがその事実を
知らせる表示をネツトワーク上へ送出する。ま
た、IFPに用いられている、ホスト・コンピユー
タからのメツセージを受取るための入力バツフア
が満杯になつたならば、そのことを知らせる表示
がチヤネル上に送出される。従つて本システム
は、内部的にもまた外部的にも自己調歩式となつ
ている。 本システムは、以上に説明したようなアーキテ
クチヤとメツセージの構成とを利用することによ
つて、汎用マルチプロセツサ・システムに必要と
されるその他の多くの機能をも実行できるように
構成されている。例えば従来技術においては、大
域的資源のステータスの変化を評価及び監視する
ための方式に関して非常な注意が払われていた。
これに対して本発明に拠れば、パリテイ・エラー
の発生とプロセツサの使用可能性の変化という事
実との両方を伝達するための手段として、パリテ
イ・チヤネルのみが備えられ使用されている。1
個ないし複数個のプロセツサがシヤツト・ダウン
した場合には、そのシヤツト・ダウンが、その発
生と略々同時にシステム中に伝達され、それによ
つて割込みシーケンスの実行を開始することがで
きるようになつている。複数の応答を優先順位に
従つてソートするという方式が採用されているた
め、大域的な能力の変化が生じた場合にその変化
がどのような性質のものであるかを、従来と比較
してはるかに小規模の回路とシステム・オーバヘ
ツドとによつて特定することが可能となつてい
る。 大域的セマフオと能動ロジツク・ネツトワーク
とを採用したことによつて達成されている、1回
の問合わせにより優先権の判定を経て得られる大
域的応答は、非常に深いシステム的な意味を持つ
ている。この方式により問合せをブロードカスト
することによつて曖昧性のない一義的な大域的結
果が得られるため、複雑なソフトウエア並びにオ
ーバヘツドが不要とされている。分散型更新等の
ステータス設定動作は、多数の同時動作が複数の
異なつたプロセツサで実行されている際にも実行
可能となつている。 本システムは更に、以上のようなネツトワーク
とトランザクシヨン・ナンバと転送先選択ワード
とを用いることによつて、マルチプロセツサ・シ
ステムにおける仕事の分配並びに処理結果の収集
に関する優れた能力を発揮している。種々のマル
チプロセツサ・モードと制御メツセージとを利用
することができ、また、優先順位プロトコルを操
作するだけで、優先順位の種々のレベルを容易に
設定しまた変更することができるようになつてい
る。全てのプロセツサへ同時にブロードカストす
ることのできる能力と、ネツトワーク中でメツセ
ージのソートを行なえる能力とが組み合わさるこ
とによつて、いかなるプロセツサ・グループ或い
はいかなる個々のプロセツサ・グループ或いはい
かなる個々のプロセツサを転送先とすることも可
能となつていると共に、処理結果を適切な順序で
引き出すことも可能となつている。従つて、リレ
ーシヨナル・データベース・システムに対する複
雑な問合せが入力されたならば、そのことによつ
てデータベース動作に必要なあらゆる処理シーケ
ンスが開始されるようになつている。 本システムの更に別の利点は、リレーシヨナ
ル・データベース・システム等のマルチプロセツ
サ・システムに、容易に冗長性を導入できること
にある。二重ネツトワークと二重インターフエイ
スとを備えているため、一方のネツトワークが何
らかの原因で故障した場合にもシステムが動作し
続けられるようにする冗長性が得られている。デ
ータベースを互いに素の一時的部分集合とバツク
アツプ用部分集合という形で分配してあるため、
データ喪失の確率が最小のレベルにまで低減され
ている。故障が発生したり変更が加えられたりし
た場合にも、用途の広い種々の制御機能が利用可
能であるためにデータベースの完全性を維持し得
るようになつている。
[Table] It is not easy to compare and evaluate the numbers of the specific examples shown in the table above with conventional systems. The reason for this is that two types of interrelated sorting processing sequences (sorting by the processor and sorting by the network) are involved, and also because there are almost no systems that have this capability in the first place. It is. Furthermore,
In contrast to this system, which sorts and merges messages that are long and variable in length,
Many general sorting abilities are evaluated for several bytes or several words. Another important factor is that the present system is a multiprocessor itself and is not a dedicated system for sort/merge processing.
The system can shift locally and globally between merge and non-merge operations with complete flexibility, and does so without any software penalty. This can be done without any problems or losses in system efficiency. Example of a Task Request/Task Response Cycle Referring to FIG. 1, each of the processors 14, 16, or 18-23 connected to the network 50 is configured to perform tasks for one or more other processors. task request,
It has the function of forming messages in the appropriate format in the form of message packets. In relational database systems, most of these tasks are performed by the host computer 10,
12 and input into the system via interface processors 14 and 16, although this is not a requirement. This message packet, formed in the appropriate format, is entered into competition on the network with packets from other processors, and the priority levels of other tasks and operations on this processor are determined. Depending on the level of your condition, you may sometimes get priority. A task may have its contents specified by a single message packet or by multiple continuation packets, but subsequent continuation packets do not contain data messages. It is assigned a relatively high priority level within the group (see FIG. 11), thereby ensuring that the delay in receiving subsequent parts is as short as possible. A message packet includes transaction identity (=transaction identification information) in the form of a transaction number. This transaction number distinguishes between non-merge mode, or default mode (``TNO''), which is the mode for extracting processing results, and merge mode (all TNs other than ``TNO''). , which inherently has the property of making distinctions according to selection. Additionally, the message packet contains a DSW. this
The DSW essentially specifies the destination processor and the mode of multiprocessor operation, and this specification can be made by specifying a particular processor, a class of multiple processors, or hashing. In this embodiment, the hashing is to a portion of the relational database. A message packet broadcast to a target processor (designated forwarding destination processor) via the network 50 is locally accepted by that processor (i.e., if the processor determines that acceptance by itself is appropriate). (by the processor itself) and acknowledgment of receipt is performed by an acknowledgment (ACK). All of the processors 14, 16 and 18 to 23 are
Following the EOM (End of Message), responses are sent simultaneously to the network 50, however, the ACK sent from the designated destination processor gains priority and is not received by the originating processor. That will happen. Next, the designated transfer destination processor stores the sent message in local HSRAM (=HSRAM provided in each processor module).
and the interface 120 (Figs. 8 and 13)
When the request packet (= sent message) is transferred to the local microprocessor via the without). When tasks involving relational databases are performed, the DSW typically specifies some disjoint subset of data that is stored on disk drives for that subset. However, sometimes tasks are performed that do not require reference to a stored database. Specific operations or algorithms may be executed by individual processors, and if multiple processors are designated as destination processors, each of those processors may perform disjoint processing of the entire task. It can be configured to perform work on a subset. The variable length message packet is configured such that the request message specifies the operation to be performed and the file to be referenced in the database system. It should be noted here that there may be a large number of message packets related to a given task, in which case the sorting discrimination performed within the network Key fields that can be optionally adopted to provide appropriate characteristics as a standard (Figure 3)
is becoming important. The task response packets generated by each processor attempting to respond are transferred from the microprocessor via control logic 28 of FIG. 1 to local HSRAM 26, where they are
The task response packet is stored in the outgoing message format of Figure 21A. If the task response requires the use of continuation packets, such continuation packets are sent out following the initial packet, but given higher priority for continuation. Ru. If the system is operating in merge mode and each processor is generating a large number of packets related to a certain transaction number, the packets are first localized (=individual processors (internally) in a sort order, and then by merging on the network 50, it can be arranged in a global sort order. The task result packet is sent to processors 14 and 16.
and 18-23 to network 50 in simultaneous packets, and one highest priority message packet is broadcast back to all processors after a predetermined network delay. Depending on the nature of the task, these task result packets may be forwarded to the source processor that originally sent the request message, or to one or more other processors. Furthermore, the transfer can be performed in any of the plurality of multiprocessor modes described above. The most common case in relational database systems is to use hashing to select the forwarding destination,
This means that merging and redistribution are performed at the same time. Therefore, as can be understood from this,
In the "task request/task response" cycle, each processor can act as a source processor, a coordinator processor, or a responder processor; It is also now possible to operate as both. Since many "task request/task response" cycles are involved, processors 14, 16 and 1
8-23 and network 50 are multiplexed among their tasks, but this multiplexing is done on a time basis as well as on a priority basis. Examples of Complex Queries In relational database systems, host computers 10, 12 are used to further define tuples and disjoint data subsets of primary and backup data. Complex queries are routed from host computer 10 or 12 via IFP 14 or 16 using a distribution method that distributes the relational database among multiple disk drives 38-43 according to a input into the system. The message packet of this input query is first sent to the IFP.
14 or 16, and this analysis is performed to convert the message from the host computer into a plurality of task requests for requesting the AMPs 18 to 23 to perform tasks. It is something. At the beginning of its operation, an IFP 14-16 sends out request packets to retrieve information from one or more specific AMPs, thereby providing information necessary for further analysis of messages from the host computer. In some cases, it may be necessary to obtain internal system data. Once we have the data we need to process the request from the host computer,
The IFPs 14-16 may perform several "task request/task response" cycles with the AMPs 18-23, and may also actually process the data and respond to requests from the host computer. can be satisfied. In the above processing sequence, the tasks listed above
A cycle of requests and task responses is used, and the cycle can continue for any length. IFPs 14-16 then communicate with the host computer via the IFP interface. This response to the host computer may simply be to provide the data that host computer 10 or 12 needs to generate the next complex query. (Independent Multiprocessor System) The basic embodiment of the system according to the invention described above in connection with FIG. This is an example of a back-end processor that can be used in combination. However, as already mentioned, the present invention is useful in a wide variety of processing applications, and particularly in those types of processing applications where processing tasks can be easily subdivided and distributed without the need for large amounts of central processing power. , which has particular advantages. 20th
The figure illustrates one embodiment of a simple configuration of a stand-alone multiprocessor system according to the present invention. In FIG. 20, a plurality of processors 300 all connect to an active logic network 3 via an interface 302.
04, this network is similar to that already described. An active logic network 304 with redundancy may be employed to enhance data integrity. In this embodiment as well, a 16-bit microprocessor chip can be used for the processor 300, and a main RAM memory of sufficient capacity can be incorporated. This diagram shows nine processors 300.
Only one processor is shown, and each of the processors has a different type of peripheral connected to it, to demonstrate the versatility of the system. In practice, the system becomes much more efficient by having more processors on the network, but even with a relatively small number of processors, the reliability of the system can be improved. A particular advantage is obtained in terms of data integrity. In this embodiment, a plurality of processors 30
0 can be physically separated from each other by a sufficient distance without inconvenience, such that the maximum separation between nodes is 28 feet (5.5 m), it is important to install and use multiple processors in large arrays on one floor or several adjacent floors of a building to avoid unnecessary crowding. This is because it can be done. In stand-alone systems, much more variety is used in the peripheral controllers, as well as the peripherals themselves, than in the post-processor embodiments described above. Here, for convenience,
It is assumed that each input/output device is connected to a separate processor. For example, an input/output terminal device 310 including a keyboard 312 and a display 314 is connected to a processor 3 for the terminal device 310 via a terminal controller 320.
Connected to 00. However, in the case of terminal devices operating at relatively slow speeds, it is not impossible to control a fairly large network of terminal devices with a single 16-bit processor. The illustrated input/output terminal device is merely one example of how a manually operated input processing device, such as a manually operated keyboard, may be connected to the system. This terminal device 310 can also be configured as a word processor by utilizing the processing power of the processor 300, and this word processor can be configured as a word processor.
It may also be possible to communicate with databases, other word processors, or various output devices via network 304. A large capacity secondary storage device, such as a rigid disk drive 322, may be connected to a processor for that storage device via a disk controller 324. Also, as is easily understood,
Larger systems may use more disk drives or different forms of mass storage. printer 32
6 and output devices such as plotter 330, respectively.
It interfaces to processor 300 for those output devices via printer controller 328 and plotter controller 332. Interaction with other systems (not shown) occurs via communications controller 338 and via communications system 336 .
For example, a teletype network (TTY) or one of the larger networks (eg Ethernet) can be used. Some of the processors 300
Simply network 3 without connecting peripherals
04 (not shown). Bidirectional data transfer may take place in the tape drive 34.
0 and tape drive controller 342, if used, plus controller 34
Floppy disk drive 3 with 6 connected
44 is used. In general, tape drives not only provide large storage capacities when used online, but can also be used for backup of disk drives. For this backup purpose, tape is used to save data stored up to a certain point in a sealed rigid disk device.
Because such backup operations are typically performed during periods of low load (eg, nights or weekends), network 304 can be used to perform long "streaming" transfers. Furthermore,
Because the floppy disk drive 344 may be used to input programs during initial system setup, some of your network usage time should be devoted to this "streaming" mode. It can also transfer considerable amounts of data. Optical character reader 350 serves as yet another source of input data, which input data is input to controller 352.
input into the system via Note that the peripheral devices simply labeled as "other devices 354" can be connected to the system via the controller 356 to provide other functions as necessary. It is. By sending respective message packets from separate processor modules simultaneously with each other and making a priority determination on the message packets, one or a common highest priority message packet is assigned a predetermined fixed number of message packets. It uses a method that simultaneously broadcasts to all processor modules within a time period of
Modules are now equally accessible. Prioritized transactions
This global semaphore system, which uses number and readiness indicators and forwarding selection entries included in messages, allows any processor to act as a controller; can operate in a hierarchical or non-hierarchical manner. It is also very important that the system can be expanded or contracted without requiring software scrutiny or changes. Even if access is required to a message that is considerably longer than the message lengths already discussed, but which is still relatively limited in length, such access can be performed. For example, for complex computer graphics equipment (not shown), access to only specific portions of a vast database is required to create elaborate two-dimensional and three-dimensional figures. There are cases. Also, with word processing systems, the slow operator speed may require only a small sequence of data from the database at a time. In these and similar situations, the system's ability to handle messages of variable length, as well as its ability to give priority to continuation messages, is beneficial. Situations that require intensive processing power or the transmission of extremely long messages limit the use of this system, but in other situations the system works to great advantage. do. Dynamic situations involving manipulation of a variety of different data formats and associated sorting or merging functions are all situations in which the present invention would be advantageous. Business decision-making, which involves collecting, collating, and analyzing complex data, is an example of such a situation, as is the creation and editing of video and graphical input for periodicals. This is an example. (Conclusion) As is obvious to those skilled in the art, the system shown in FIG. (up to a practical limit number to be determined). Furthermore, as is clear, the system shown in the figure is capable of checking the status of each processing device,
The need for administrative and overhead software for setting task and processor priorities and ensuring efficient utilization of processor processing power is greatly reduced. Obvious benefits are obtained for database systems and other systems where it is appropriate to subdivide a task into multiple subtasks that can be processed independently of each other. etc. For example, in the case of relational databases, even if the capacity of secondary storage increases significantly, additional databases need only be appropriately integrated into a data structure consisting of primary and backup data. be. In other words, it is possible to expand the network without limit, and this is possible because standardized intersection devices, or nodes, are connected in a binary evolving connection system. , because the functions performed on those individual nodes do not change due to the expansion. Furthermore, there is no need for a setting processing sequence or external control for the operation of the nodes. Therefore, when a system according to the present invention is connected to function as a back-end processor for one or more host computers as shown in FIG. without changing the operating system software or application software.
The database can be expanded (or contracted) arbitrarily. Host processor system (=
From the perspective of the host computer (host computer), this backend processor is ``transparent'' regardless of its configuration, because even if its configuration changes, the backend processor and host processor This is because there is no change in the manner of interaction with the system. To switch this backend processor to do the work of another host processor system, simply ensure that the IFP speaks appropriately to the new host processor system's channel or bus. good. Depending on the configuration of the network in one practical example, message transfer within the network 50 can be performed without significant delays or unreasonable delays due to contention between processors. Up to 1024 microprocessors can be contained in one array. The embodiments described herein are
It will be obvious to those skilled in the art how to expand to include more than 1024 processors. When using 1024 processors in one system, it is known that the maximum line length between active nodes is 28 feet in a practical example, and this line length poses problems when configuring an array. will not occur. The delay time due to the network is a constant time 2τN for any message, where τ is the byte clock interval and N is the number of layers in the hierarchy. Clearly, doubling the number of processors by adding one more layer only slightly increases the delay time. If it is a data message, it will almost inevitably be a long message (approximately
200 bytes long), and because the priority decisions for all competing messages are made while the data is being transferred along the network, this network is less effective than traditional systems. This allows data messages to be transferred with much higher efficiency. Among the important economic and operational features of the system is the fact that standardized active logic circuits are used to replace software and even firmware in network systems. There are some characteristics obtained by In other words, due to this fact, it is possible to use modern LSI and VLSI technology to create a highly reliable circuit at a relatively low cost compared to the overall cost including the cost of the processor and the cost of peripheral devices. It is now possible to incorporate it. The need to spend time and money on software is limited to critical areas such as those related to problem domain tasks such as database management. For example, the system configuration allows all functions necessary to maintain database integrity to be performed within the scope of the message packet configuration and network configuration. It's summery. polling,
Functions such as status changes and data recovery are performed internally to the system. Another important consideration is that the network of the present invention has high speed data transfer performance.
In some cases, it is so superior that it is comparable to the conventional ohmic wiring bus. Since multiple message packets are sent simultaneously and their priority is determined while they are being transmitted, in the conventional system, there is a This is because delays that were commonplace have been avoided. Furthermore, even if the number of processors is enormous, it is possible to keep the length of the connection structure between nodes below a predetermined length, so the propagation time within the bus becomes a constraint on the data transfer rate. Never. This system has been found to be near optimal in terms of microprocessor and network usage efficiency. The important thing in these respects is to ensure that all microprocessors are kept busy and that the network is fully utilized. The ``IFP-Network-AMP'' configuration effectively makes this possible, because microprocessors that lose out in the competition for priority for the message packets they send , it is only necessary to attempt the transmission again at the earliest suitable time, thereby maintaining the bus duty cycle at a high level. Fast random access memory also contributes to this effect, since it stores both the input message packets to be processed and the output message packets to be sent out. This is because each processor can always obtain a backlog of work, and the network can also obtain a backlog of message packets. When all input buffers are full, the processor sends an indication over the network to indicate this fact. Also, when the input buffer used by the IFP to receive messages from the host computer becomes full, an indication is sent out on the channel to notify this fact. The system is therefore self-paced both internally and externally. By utilizing the architecture and message configuration described above, this system is configured to perform many other functions required of a general-purpose multiprocessor system. There is. For example, in the prior art, great attention has been paid to methods for evaluating and monitoring changes in the status of global resources.
In contrast, according to the present invention, only a parity channel is provided and used as a means for communicating both the occurrence of a parity error and the fact that processor availability has changed. 1
When one or more processors shut down, the shutdown is propagated through the system at about the same time as it occurs, allowing interrupt sequences to begin executing. There is. Since a method is adopted in which multiple responses are sorted according to priority, it is possible to compare the nature of changes in global capacity when they occur. It has become possible to specify a much smaller circuit and system overhead. The global response obtained through priority determination with a single inquiry, which is achieved by employing global semaphore and active logic networks, has very deep systemic meaning. ing. By broadcasting queries in this manner, unambiguous, unambiguous global results are obtained, eliminating the need for complex software and overhead. Status setting operations such as distributed updates can be performed even when multiple simultaneous operations are being performed on different processors. Furthermore, by using the network, transaction number, and transfer destination selection word as described above, this system exhibits excellent ability to distribute work and collect processing results in a multiprocessor system. ing. Various multiprocessor modes and control messages are available, and various levels of priority can be easily set and changed simply by manipulating the priority protocol. There is. The ability to broadcast to all processors simultaneously, combined with the ability to sort messages across the network, makes it easy to broadcast to any processor group or any individual processor group or any individual processor. It is now possible to set the transfer destination as a transfer destination, and it is also possible to extract the processing results in an appropriate order. Thus, when a complex query is entered into a relational database system, it initiates any processing sequence necessary for database operation. A further advantage of the present system is that redundancy can be easily introduced into multiprocessor systems such as relational database systems. The dual networks and dual interfaces provide redundancy that allows the system to continue operating even if one network fails for any reason. Since the database is distributed into disjoint temporary subsets and backup subsets,
The probability of data loss is reduced to a minimum level. A variety of versatile control functions are available to maintain the integrity of the database in the event of failures or changes.

【図面の簡単な説明】[Brief explanation of drawings]

第1図は、新規な双方向ネツトワークを含む、
本発明に係るシステムのブロツク図である。第2
図および第2A図〜第2J図は、第1図に示され
た簡単な構造の実施例のネツトワークにおけるデ
ータ信号並びに制御信号の伝送の態様を示す、時
間の経過に沿つた連続する一連の説明図であり、
第2図は信号伝送の開始前の時点における状態を
示す図、また、第2A図〜第2J図は、夫々、t
=0からt=9までの連続する10箇所の時点にお
ける時間標本の一つに対応している図である。第
3図は、第1図に示されたシステムに採用されて
いるメツセージ・パケツトの構成を図示する説明
図である。第4図は、第1図に示された新規な双
方向ネツトワーク用いられている能動ロジツク・
ノード並びにクロツク回路に関する、同ネツトワ
ークの更なる細部構造を示すブロツク図である。
第5図は、前記能動ロジツク・ノードの内部の
様々な動作状態を示す、状態図である。第6図
は、前記能動ロジツク・ノードの内部において行
なわれるエンド・オブ・メツセージの検出動作を
説明するためのタイミング・ダイアグラムであ
る。第7図は、第4図に示したクロツク回路の動
作を説明するための、タイミング波形のダイアグ
ラムである。第8図は、第1図に示したシステム
に使用することのできる、高速ランダム・アクセ
ス・メモリを含むプロセツサ・モジユールのブロ
ツク図である。第9図は、第8図に示したマイク
ロプロセツサ・システムのメインRAMの内部の
アドレスの割当て状況を示す図である。第10図
は、第8図に示された高速ランダム・アクセス・
メモリの、1つの参照部分の内部におけるデータ
の配置態様のブロツク図である。第11図は、前
記システムに用いられているメツセージの優先順
位プロトコルを示すチヤートである。第12図
は、トランザクシヨン・ナンバのワード・フオー
マツトを図示する説明図である。第13図および
第13A図は、第1図及び第8図に示したシステ
ムの、その内部に備えられている各プロセツサモ
ジユールに用いられているインターフエイス回路
のブロツク図であり、第13図の右側に第13A
図を置くことによつて1枚につながる図である。
第14図は、第13図のインターフエイス回路に
おいて用いられる様々なクロツク波形及びフエイ
ズ波形を図示するタイミング・ダイアグラムであ
る。第15図は、転送先選択ワードに基づいてマ
ツピングを行なうための、メモリ構成の更なる詳
細とマツピングの一方式とを図示するブロツク図
である。第16図は、入力データ・メツセージを
受信した際のステータスの変化を示す、簡略化し
たフローチヤートである。第17図および第17
A図は、メツセージの受信が行なわれているとき
のステータスの変化を示すフローチヤートであ
り、第17図を第17A図の上縁部に接して並べ
ることにより1枚につながる図である。第18図
は、様々なプライマリ・メツセージとそれらに対
して発生される種々の応答との間の関係、並び
に、様々なプライマリ・メツセージとそれらに応
答して実行される動作との間の関係を示す表であ
る。第19図および第19A図は、メツセージの
送信が行なわれているときのステータスの変化を
示すフローチヤートであり、第19図を第19A
図の上縁部に接して並べることにより1枚につな
がる図である。第20図は、本発明に係るスタン
ド・アローン型システムのブロツク図である。第
21図は第21A図及び第21B図から成り、前
記高速ランダム・アクセス・メモリに格納されて
いるメツセージを示す図である。第22図は、デ
ータベース・システム内の複数の異なつたプロセ
ツサの間にデータベースの夫々の部分を分配する
ための、分配方式の可能な一例を示す簡略化した
模式図である。 10,12……ホスト・コンピユータ、14,
16……インターフエイス・プロセツサ、18〜
23……アクセス・モジユール・プロセツサ、2
4……マイクロプロセツサ、26……高速ランダ
ム・アクセス・メモリ、28……制御ロジツク、
32……デイスク・コントローラ、38〜43…
…デイスク・ドライブ、50……能動ロジツク・
ネツトワーク構造、54……ノード、56……ク
ロツク・ソース、120,120′……ネツトワ
ーク・インターフエイス、103……マイクロプ
ロセツサ・システム。
FIG. 1 includes a new bidirectional network,
1 is a block diagram of a system according to the invention; FIG. Second
Figures 2A-2J are a series of successive chronological sequences illustrating the transmission of data and control signals in the network of the simple embodiment shown in Figure 1. It is an explanatory diagram,
FIG. 2 is a diagram showing the state before the start of signal transmission, and FIGS. 2A to 2J are respectively t
9 is a diagram corresponding to one of the time samples at ten consecutive points in time from t=0 to t=9. FIG. FIG. 3 is an explanatory diagram illustrating the structure of a message packet employed in the system shown in FIG. 1. Figure 4 shows the active logic used in the new bidirectional network shown in Figure 1.
FIG. 3 is a block diagram showing a more detailed structure of the same network in terms of nodes and clock circuits;
FIG. 5 is a state diagram illustrating various operating states within the active logic node. FIG. 6 is a timing diagram for explaining the end-of-message detection operation performed inside the active logic node. FIG. 7 is a timing waveform diagram for explaining the operation of the clock circuit shown in FIG. 4. FIG. 8 is a block diagram of a processor module containing high speed random access memory that may be used in the system shown in FIG. FIG. 9 is a diagram showing the internal address allocation status of the main RAM of the microprocessor system shown in FIG. 8. FIG. 10 shows the high-speed random access system shown in FIG.
FIG. 2 is a block diagram of how data is arranged within one reference portion of a memory. FIG. 11 is a chart showing the message priority protocol used in the system. FIG. 12 is an explanatory diagram illustrating the word format of a transaction number. 13 and 13A are block diagrams of interface circuits used in each processor module provided inside the system shown in FIGS. 1 and 8; 13A on the right side of the figure
It is a diagram that can be combined into one sheet by placing the figures.
FIG. 14 is a timing diagram illustrating various clock and phase waveforms used in the interface circuit of FIG. 13. FIG. 15 is a block diagram illustrating further details of the memory structure and one method of mapping for mapping based on destination selection words. FIG. 16 is a simplified flowchart showing the changes in status upon receiving an input data message. Figures 17 and 17
Figure A is a flowchart showing changes in status when a message is being received, and is a diagram that can be combined into one page by arranging Figure 17 in contact with the upper edge of Figure 17A. FIG. 18 illustrates the relationship between various primary messages and the various responses generated to them, as well as the relationships between various primary messages and the actions performed in response to them. This is a table showing 19 and 19A are flowcharts showing changes in status when a message is being sent, and FIG.
It is a figure which is connected to one sheet by arranging it in contact with the upper edge of the figure. FIG. 20 is a block diagram of a stand-alone system according to the present invention. FIG. 21, consisting of FIGS. 21A and 21B, is a diagram showing messages stored in the high speed random access memory. FIG. 22 is a simplified schematic diagram illustrating one possible distribution scheme for distributing respective portions of a database among a plurality of different processors within a database system. 10, 12... host computer, 14,
16...Interface processor, 18~
23...Access module processor, 2
4... Microprocessor, 26... High speed random access memory, 28... Control logic,
32...Disk controller, 38-43...
…disk drive, 50…active logic
Network structure, 54...node, 56...clock source, 120, 120'...network interface, 103...microprocessor system.

Claims (1)

【特許請求の範囲】 1 複数のデータ・ソースからのデータをノード
のチエーンに沿つて、しかも夫々のノードにおけ
るデータの流れの間のタイム・スキユーがゼロ・
タイム・スキユーとなるようにして、伝送するた
めのシステムであつて、 1つのアペツクス・ノードを頂点とするシーケ
ンシヤルなアレイを成すように配列された、互い
に独立して作動し得る能動回路である複数のノー
ドを備え、連続したノードとノードとの間の接続
における遅延時間は一定であり、且つこの接続は
所定の最大遅延時間以上の遅延時間をもたらすこ
とのない接続とされており、 前記アペツクス・ノードに接続されたマスタ・
クロツク・ソースを備え、 各々が別々の前記ノードに設けられた互いに独
立して動作し得る複数のクロツク発生回路を備
え、該クロツク発生回路の各々は、その周波数が
前記マスタ・クロツク・ソースの周波数と略々同
一でしかも制御調整自在なクロツク信号を発生す
る回路であり、 連続した2つのノードの間を接続するクロツク
信号帰還手段を備え、該クロツク信号帰還手段
は、連続した隣のノードから、クロツク信号をそ
のクロツク信号を発生した発生元ノードへと帰還
させる手段であり、 前記ノードの各々に設けられたエラー信号発生
手段を備え、該エラー信号発生手段は、個々の前
記クロツク発生回路からの直接クロツク信号と、
前記各々のノードに隣接するより高位の階層のノ
ードのクロツク発生回路から得られるワード・ク
ロツク信号と、前記帰還クロツク信号とを受取
り、前記直接クロツク信号と前記ワード・クロツ
ク信号と前記帰還クロツク信号との遅延時間を比
較対照してエラー信号を発生するように接続され
ている手段であり、 前記エラー信号に応答して個々の前記クロツク
発生回路を制御し、それによつて、全ての前記ク
ロツク発生回路が前記マスタ・クロツクに対して
均一の時間的関係を維持するようにする手段を備
えている、 システム。 2 前記シーケンシヤル・アレイが双方向ツリー
構造から成つており、且つ、データの伝送がメツ
セージ・パケツトにより行なわれており、且つ、
前記能動回路ノードが、個々のクロツク信号に応
答してメツセージ・パケツトを前記ツリー構造の
ベース部から該ツリー構造に沿つて、そして再び
該ツリー構造の該ベース部へと、双方向に同期さ
せて伝送するための手段を含んでいる、請求項1
記載のシステム。 3 前記ツリー構造の前記ベース部に位置してい
る各々のノードに接続されたメツセージ・パケツ
トソースと、それらのソースの各々に蓄えられ
た、クロツクのインタバルを再分割してそのクロ
ツクに対して所定の位相関係にあるより高い周波
数の少なくとも1つの別のクロツクを発生させる
クロツク手段とを更に含んでいる、請求項2記載
のシステム。 4 より高い周波数の前記クロツク信号を発生さ
せる前記クロツク手段が、前記クロツク・インタ
バルの内部に少なくとも3つの信号位相を定める
ものである、請求項3記載のシステム。 5 アペツクス・ノードへ収束するアレイを成す
ように配列された複数のノードを有するネツトワ
ーク内において互いに競合する、別々のメツセー
ジ・ソースからの複数のメツセージに関し、それ
らのメツセージの間の同期性を維持するためのク
ロツキング・システムであつて、 前記複数のノードの連続したノードとノードは
一定の遅延時間をもつて接続されており、 前記アペツクス・ノードに接続された、所与の
周波数のクロツク信号を発生するマスタ・クロツ
ク・ソースを備え、 各々が別々の前記ノードに設けられた、互いに
独立して制御自在な複数のクロツク発生回路を備
え、該クロツク発生回路の各々は、周波数が略々
前記所与の周波数に等しい信号を発生する回路で
あり、 クロツク信号を、隣接する次のノードからクロ
ツク信号を発生した発生元ノードへと前記アペツ
クス・ノードに向う収束方向へ帰還させるクロツ
ク信号帰還手段を備え、 前記ノードの各々に備えられた、当該ノードの
局地的クロツク信号と、当該ノードと隣接するよ
り高位の階層のノードのクロツク発生回路から得
られるワード・クロツク信号と、前記帰還クロツ
ク信号とを比較してエラー信号を発生する、エラ
ー信号発生手段を備え、 前記エラー信号に応答して個々の前記クロツク
発生回路を制御し、それによつて、全ての前記ク
ロツク発生回路を前記マスタ・クロツク・ソース
に対して均一な時間的関係に維持する制御手段を
備えている、 クロツキング・システム。
[Scope of Claims] 1. Data from multiple data sources can be routed along a chain of nodes with zero time skew between data flows at each node.
A system for time-skewed transmission comprising a plurality of active circuits operable independently of each other arranged in a sequential array culminating in an apex node. nodes, the delay time in the connection between consecutive nodes is constant, and this connection is a connection that does not cause a delay time exceeding a predetermined maximum delay time, and the apex Master connected to the node
a clock source, a plurality of clock generation circuits operable independently of each other, each provided in a separate said node, each of said clock generation circuits having a frequency that is equal to the frequency of said master clock source; This circuit generates a clock signal that is substantially the same as the clock signal and whose control can be adjusted, and includes clock signal feedback means for connecting two consecutive nodes, and the clock signal feedback means generates a clock signal that is substantially the same as the clock signal from the successive adjacent node. Means for returning a clock signal to the source node that generated the clock signal, comprising error signal generating means provided in each of the nodes, and the error signal generating means is configured to return the clock signal from each of the clock generating circuits. Direct clock signal and
receiving a word clock signal obtained from a clock generation circuit of a node in a higher hierarchy adjacent to each of the nodes and the feedback clock signal; means connected to generate an error signal by comparing and contrasting the delay times of the clock generators, and controlling each of the clock generator circuits in response to the error signal, thereby controlling each of the clock generator circuits. maintaining a uniform temporal relationship with respect to said master clock. 2. The sequential array has a bidirectional tree structure, and data transmission is performed by message packets, and
The active circuit nodes are responsive to respective clock signals to bidirectionally synchronize message packets from the base of the tree structure, along the tree structure, and back to the base of the tree structure. Claim 1 comprising means for transmitting
System described. 3. Redividing the message packet sources connected to each node located at the base of the tree structure and the clock interval stored in each of those sources and applying a predetermined clock to that clock. 3. The system of claim 2 further comprising clock means for generating at least one further clock of higher frequency in phase relationship. 4. The system of claim 3, wherein said clock means for generating said clock signal at a higher frequency defines at least three signal phases within said clock interval. 5 Maintaining synchronization among messages from different message sources competing with each other in a network with nodes arranged in an array that converges on an apex node. A clocking system for clocking a clock signal of a given frequency connected to the apex node, wherein successive nodes of the plurality of nodes are connected with a fixed delay time, and the clock signal of a given frequency connected to the apex node is a plurality of independently controllable clock generation circuits each disposed in a separate node, each of the clock generation circuits having a frequency approximately equal to the frequency of the clock generation circuit; The circuit generates a signal equal to a given frequency, and includes clock signal feedback means for returning the clock signal from the next adjacent node to the source node that generated the clock signal in a convergence direction toward the apex node. , a local clock signal of the node provided in each of the nodes, a word clock signal obtained from a clock generation circuit of a node in a higher hierarchy adjacent to the node, and the feedback clock signal. an error signal generating means for generating an error signal by comparing the signals, and controlling each of the clock generating circuits in response to the error signal, thereby controlling all of the clock generating circuits to the master clock source. A clocking system comprising control means for maintaining a uniform temporal relationship between
JP1234499A 1981-04-01 1989-09-07 Data transmission system and clocking system Granted JPH02118709A (en)

Applications Claiming Priority (4)

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

Related Parent Applications (1)

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

Publications (2)

Publication Number Publication Date
JPH02118709A JPH02118709A (en) 1990-05-07
JPH0426726B2 true JPH0426726B2 (en) 1992-05-08

Family

ID=26940538

Family Applications (13)

Application Number Title Priority Date Filing Date
JP1234492A Granted JPH02132560A (en) 1981-04-01 1989-09-07 Relational database machine, data base computer system and data base management system and method
JP1234499A Granted JPH02118709A (en) 1981-04-01 1989-09-07 Data transmission system and clocking system
JP1234491A Expired - Lifetime JP2555450B2 (en) 1981-04-01 1989-09-07 Multiprocessor system
JP1234500A Expired - Lifetime JPH0750463B2 (en) 1981-04-01 1989-09-07 Method of sending and receiving message in multiprocessor system
JP1234501A Expired - Lifetime JP2555451B2 (en) 1981-04-01 1989-09-07 Method for managing message packet in multiprocessor system
JP1234496A Expired - Lifetime JP2560118B2 (en) 1981-04-01 1989-09-07 Computing system
JP1234498A Expired - Lifetime JPH0619762B2 (en) 1981-04-01 1989-09-07 Node circuit for network system
JP1234494A Expired - Lifetime JP2607696B2 (en) 1981-04-01 1989-09-07 Multiprocessor system and method of using the same
JP1234493A Granted JPH02118747A (en) 1981-04-01 1989-09-07 Message transmission network, bus network and broadcasting of message to multiple processor
JP1234497A Expired - Fee Related JPH0750462B2 (en) 1981-04-01 1989-09-07 Multiprocessor system
JP1234495A Expired - Fee Related JPH0792791B2 (en) 1981-04-01 1989-09-07 Message communication control system in multiprocessor system
JP3263082A Expired - Lifetime JP2628811B2 (en) 1981-04-01 1991-09-12 Task processing and message transmission / reception control method in a multiprocessor system
JP3263081A Expired - Lifetime JP2651473B2 (en) 1981-04-01 1991-09-12 Message communication control method in multiprocessor system

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP1234492A Granted JPH02132560A (en) 1981-04-01 1989-09-07 Relational database machine, data base computer system and data base management system and method

Family Applications After (11)

Application Number Title Priority Date Filing Date
JP1234491A Expired - Lifetime JP2555450B2 (en) 1981-04-01 1989-09-07 Multiprocessor system
JP1234500A Expired - Lifetime JPH0750463B2 (en) 1981-04-01 1989-09-07 Method of sending and receiving message in multiprocessor system
JP1234501A Expired - Lifetime JP2555451B2 (en) 1981-04-01 1989-09-07 Method for managing message packet in multiprocessor system
JP1234496A Expired - Lifetime JP2560118B2 (en) 1981-04-01 1989-09-07 Computing system
JP1234498A Expired - Lifetime JPH0619762B2 (en) 1981-04-01 1989-09-07 Node circuit for network system
JP1234494A Expired - Lifetime JP2607696B2 (en) 1981-04-01 1989-09-07 Multiprocessor system and method of using the same
JP1234493A Granted JPH02118747A (en) 1981-04-01 1989-09-07 Message transmission network, bus network and broadcasting of message to multiple processor
JP1234497A Expired - Fee Related JPH0750462B2 (en) 1981-04-01 1989-09-07 Multiprocessor system
JP1234495A Expired - Fee Related JPH0792791B2 (en) 1981-04-01 1989-09-07 Message communication control system in multiprocessor system
JP3263082A Expired - Lifetime JP2628811B2 (en) 1981-04-01 1991-09-12 Task processing and message transmission / reception control method in a multiprocessor system
JP3263081A Expired - Lifetime JP2651473B2 (en) 1981-04-01 1991-09-12 Message communication control method in multiprocessor system

Country Status (1)

Country Link
JP (13) JPH02132560A (en)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69232425T2 (en) * 1991-07-10 2002-10-10 Hitachi, Ltd. Sorting procedure in a distributed database and access procedure for it
JPH0540472U (en) * 1991-11-07 1993-06-01 大建工業株式会社 Exterior material mounting member
JP2638441B2 (en) * 1993-09-09 1997-08-06 日本電気株式会社 Relay file transfer method
JP2843768B2 (en) * 1994-08-22 1999-01-06 日本電気株式会社 Database access control method
DE102004013629B4 (en) * 2004-03-19 2023-06-01 Volkswagen Ag Communication system for a motor vehicle
JP5093986B2 (en) * 2005-01-19 2012-12-12 富士通株式会社 Interprocessor communication method and interprocessor communication apparatus
JP5738812B2 (en) * 2012-08-29 2015-06-24 京セラドキュメントソリューションズ株式会社 Inter-object communication device in multi-processing system
JP5738811B2 (en) * 2012-08-29 2015-06-24 京セラドキュメントソリューションズ株式会社 Inter-object communication device in multi-processing system
CN113487151A (en) * 2021-06-23 2021-10-08 广东润建电力科技有限公司 Intelligent power utilization and demand side response method, system and device based on 5G message

Family Cites Families (5)

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

Also Published As

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

Similar Documents

Publication Publication Date Title
JPH0226254B2 (en)
US4445171A (en) Data processing systems and methods
US5276899A (en) Multi processor sorting network for sorting while transmitting concurrently presented messages by message content to deliver a highest priority message
US4989131A (en) Technique for parallel synchronization
EP0234803B1 (en) Method for the dynamic partitioning of parallel processors
JPH0426726B2 (en)
Reynolds et al. Isotach networks
CA1198523A (en) Multi-processor intercommunication system and method
Barrett The development of Occam: types, classes and sharing
Concepcion Trans. Nat. Acad. Sci & Tech.(Phils.) 1987.9: 51� 63
Thiel The VAX/VMS distributed lock manager
Prasad et al. Mutual Exclusion in Distributed Systems
Soi et al. Some aspects of computer deadlocks
Doskocz Performance analysis of the simultaneous optical multiprocessor exchange bus architecture
Smith A system for the design of networks of computing processes with some applications
Singh Graphical Simulation Tool from Logical Token-based Distributed Mutual Exclusion Algorithms�