JP2628811B2 - Task processing and message transmission / reception control method in a multiprocessor system - Google Patents
Task processing and message transmission / reception control method in a multiprocessor systemInfo
- Publication number
- JP2628811B2 JP2628811B2 JP3263082A JP26308291A JP2628811B2 JP 2628811 B2 JP2628811 B2 JP 2628811B2 JP 3263082 A JP3263082 A JP 3263082A JP 26308291 A JP26308291 A JP 26308291A JP 2628811 B2 JP2628811 B2 JP 2628811B2
- Authority
- JP
- Japan
- Prior art keywords
- message
- processor
- task
- processors
- network
- 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
Links
- 238000012545 processing Methods 0.000 title claims description 100
- 230000005540 biological transmission Effects 0.000 title claims description 79
- 238000000034 method Methods 0.000 title claims description 75
- 230000004044 response Effects 0.000 claims description 141
- 239000000872 buffer Substances 0.000 claims description 53
- 238000004891 communication Methods 0.000 claims description 41
- 230000008569 process Effects 0.000 claims description 21
- 230000006870 function Effects 0.000 description 71
- 238000012546 transfer Methods 0.000 description 68
- 238000010586 diagram Methods 0.000 description 51
- 230000015654 memory Effects 0.000 description 50
- 238000003860 storage Methods 0.000 description 45
- 238000007726 management method Methods 0.000 description 29
- 239000013598 vector Substances 0.000 description 25
- 230000008859 change Effects 0.000 description 24
- 230000002093 peripheral effect Effects 0.000 description 18
- 238000012360 testing method Methods 0.000 description 13
- 230000007704 transition Effects 0.000 description 11
- 238000009826 distribution Methods 0.000 description 10
- 230000008901 benefit Effects 0.000 description 9
- 238000011144 upstream manufacturing Methods 0.000 description 9
- 241000886952 Sapria ram Species 0.000 description 7
- 230000009471 action Effects 0.000 description 7
- 238000004422 calculation algorithm Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 7
- 230000001360 synchronised effect Effects 0.000 description 5
- 108010076504 Protein Sorting Signals Proteins 0.000 description 4
- 230000001174 ascending effect Effects 0.000 description 4
- 239000007853 buffer solution Substances 0.000 description 4
- 238000012937 correction Methods 0.000 description 4
- 230000003111 delayed effect Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- BCGWQEUPMDMJNV-UHFFFAOYSA-N imipramine Chemical compound C1CC2=CC=CC=C2N(CCCN(C)C)C2=CC=CC=C21 BCGWQEUPMDMJNV-UHFFFAOYSA-N 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 239000011159 matrix material Substances 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 4
- 102100031584 Cell division cycle-associated 7-like protein Human genes 0.000 description 3
- 101000777638 Homo sapiens Cell division cycle-associated 7-like protein Proteins 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 3
- 230000002457 bidirectional effect Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000008054 signal transmission Effects 0.000 description 3
- 239000000243 solution Substances 0.000 description 3
- 230000003139 buffering effect Effects 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 2
- 238000013479 data entry Methods 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 125000000524 functional group Chemical group 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 238000001824 photoionisation detection Methods 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 101100156949 Arabidopsis thaliana XRN4 gene Proteins 0.000 description 1
- 102000017917 Atypical chemokine receptor Human genes 0.000 description 1
- 108060003357 Atypical chemokine receptor Proteins 0.000 description 1
- 241000274965 Cyrestis thyodamas Species 0.000 description 1
- 101000741965 Homo sapiens Inactive tyrosine-protein kinase PRAG1 Proteins 0.000 description 1
- 102100038659 Inactive tyrosine-protein kinase PRAG1 Human genes 0.000 description 1
- 240000007182 Ochroma pyramidale Species 0.000 description 1
- 101100215777 Schizosaccharomyces pombe (strain 972 / ATCC 24843) ain1 gene Proteins 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009118 appropriate response Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000010348 incorporation Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 238000005304 joining Methods 0.000 description 1
- 238000011031 large-scale manufacturing process Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 238000012015 optical character recognition Methods 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 238000012913 prioritisation Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000012887 quadratic function Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000010187 selection method Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Landscapes
- Multi Processors (AREA)
- Small-Scale Networks (AREA)
- Computer And Data Communications (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Transfer Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Description
【0001】[0001]
【産業上の利用分野】本発明は、マルチプロセッサ・シ
ステムにおけるタスク処理及びプロセッサ間におけるメ
ッセージの送受信制御方法に関する。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a task processing in a multiprocessor system and a method for controlling transmission and reception of messages between processors.
【0002】[0002]
【従来の技術】高い信頼性を備えた形式の電子計算機
(エレクトロニック・コンピュータ)が出現して以来、
この技術分野に従事する者が考察を重ねてきたシステム
に、複数のコンピュータを使用するシステムであってそ
れらのコンピュータが相互に関連性を保ちつつ動作する
ことによって、所与の1つのタスクの全体が実行される
ようにしたシステムがある。そのようなマルチプロセッ
サ・システムのうちのあるシステムでは、1つの大型コ
ンピュータが、それ自身の優れた速度と容量とを利用し
てプログラムの複雑な部分を実行すると共に、複雑さの
程度の低いタスクや緊急度の低いタスクについては、そ
れを小型で速度の遅い衛星プロセッサに委任し(割当
て)、それによって、この大型コンピュータの負担やこ
の大型コンピュータに対するリクエストの量が減少する
ようにしたものがある。この場合、大型コンピュータ
は、サブタスクの割当てを行なうこと、小型プロセッサ
(=上記衛星プロセッサ)を常に作動状態に保つこと、
それらの小型プロセッサの使用可能性と動作効率とを確
認すること、それに統一された結果が得られるようにす
ることを担当しなければならない。2. Description of the Related Art Since the emergence of highly reliable electronic computers (electronic computers),
In addition to systems that have been considered by those skilled in the art, the use of a plurality of computers, which operate in a mutually related manner, allows the entirety of a given task to be completed. There is a system that is designed to be executed. In some of such multiprocessor systems, one large computer uses its superior speed and capacity to execute complex parts of a program, while performing low complexity tasks. And less urgent tasks are delegated (assigned) to smaller, slower satellite processors, thereby reducing the burden on the large computer and the amount of requests for the large computer. . In this case, the large computer is responsible for allocating subtasks, keeping the small processor (= the satellite processor) always active,
You must be responsible for verifying the availability and operating efficiency of these small processors and ensuring that they have unified results.
【0003】以上とは別の方式を採用している別種のマ
ルチプロセッサ・システムのなかには、多数のプロセッ
サと1つの共通バス・システムとを使用するシステムで
あってそれらの複数のプロセッサには本質的に互いに等
しい機能が付与されているシステムがある。この種のシ
ステムにおいては、しばしば、他の部分からは独立した
制御用コンピュータないし制御システムを用いて、所与
のサブタスクに関する個々のプロセッサの使用可能性並
びに処理能力を監視することと、プロセッサ間のタスク
及び情報の転送経路を制御することとが行なわれてい
る。また、プロセッサそれ自体が、他のプロセッサのス
テータス並びに利用可能性の監視と、メッセージ及びプ
ログラムの転送経路の決定とを行なえるように、夫々の
プロセッサの構成及び動作が設定されているものもあ
る。以上の種々のシステムに共通する重大な欠点は、オ
ーバーヘッド機能及び保守機能を実行するために、ソフ
トウェアが必要とされ且つ動作時間が消費されるという
ことにあり、そしてそれによって、本来の目的の実行に
影響が及ぶことになる。転送経路の決定及び監視に関す
る仕事量が、それらの仕事に関与するプロセッサの総数
の2次の関数で増加して、ついにはオーバーヘッド機能
のために不適当な迄の努力が費やされるようになること
もある。[0003] Among other types of multiprocessor systems adopting a different system from the above, some systems use a large number of processors and one common bus system, and the plurality of processors are essentially required. Some systems have functions that are equivalent to each other. Such systems often use a control computer or control system independent of the other parts to monitor the availability and processing power of the individual processors for a given subtask, and Tasks and information transfer paths are controlled. In some, the configuration and operation of each processor is set so that the processor itself can monitor the status and availability of other processors and determine the transfer path of messages and programs. . A significant drawback common to the various systems described above is that software is required and operating time is consumed to perform the overhead and maintenance functions, and thereby the performance of the intended purpose. Will be affected. The amount of work involved in determining and monitoring the transfer path increases with a quadratic function of the total number of processors involved in those tasks, eventually leading to inadequate effort being spent for overhead functions. There is also.
【0004】以下の数件の特許公報は従来技術の例を示
すものである。[0004] The following several patent publications show examples of the prior art.
【0005】 米国特許公報第3,962,685 号−ベル・イール(Belle Isl
e) 同第3,962,706 号−デニス(Dennis)他 同第4,096,566 号−ボーリー(Borie) 他 同第4,096,567 号−ミラード(Millard) 他 同第4,130,865 号−ハート(Heart) 他 同第4,136,386 号−アヌーンチアータ(Annunziata)他 同第4,145,739 号−ダニング(Dunning) 他 同第4,151,592 号−スズキ(Suzuki)他 初期のバイナック("Binac" :2個の互いにパラレルに
接続されたプロセッサを用いる)や、それに類似した種
々のシステムが使用されていた頃から既に、マルチプロ
セッサ方式は冗長性を備えた実行能力を提供するもので
あって、そのため動作するシステムの全体の信頼性を著
しく向上させ得るものであるということが認識されてい
た。実際にマルチプロセッサ・システムを構成するとい
うことに対しては、これまでのところ、かなりの制約が
存在しているが、その制約は主としてソフトウェアが膨
大なものとなってしまうことに起因する制約である。に
もかかわらず、例えばリアルタイムの用途等のように、
システムのダウンタイム(運転休止時間)が容認され得
ないような種々の状況においては、マルチプロセッサ動
作が特に有利であるため、これまでに様々なマルチプロ
セッサ・システムが開発されてきたが、ただし、それら
のシステムは動作自体は良好であるが、オーバーヘッド
のためにソフトウェアと動作時間のかなりの分量を割か
なければならないものであった。そのような従来のシス
テムは、米国特許公報第3,445,822 号、同第3,566,363
号、及び同第3,593,300 号にその具体例が示されてい
る。これらの特許公報はいずれも、複数のコンピュータ
がそれらの間で共用される1つのメイン・メモリをアク
セスするようにしたシステムに関するものであり、この
システムにおいては更に、タスクを個々のプロセッサに
好適に割当てるために、処理能力と処理要求量とが比較
されるようになっている。[0005] US Patent Publication No. 3,962,685-Belle Isl
e) No. 3,962,706-Dennis, etc.No. 4,096,566-Borie, etc.No. 4,096,567-Millard, etc.No. 4,130,865-Heart, etc.No. No. 4,145,739-Dunning et al. No. 4,151,592-Suzuki et al. Early binacs ("Binac": using two processors connected in parallel with each other) and various similar ones Already in the early days of the system, it was recognized that multiprocessor schemes provided redundant execution capabilities and could significantly improve the overall reliability of a working system. It had been. So far, there are considerable restrictions on the actual configuration of multiprocessor systems, but these restrictions are mainly due to the huge amount of software. is there. Nevertheless, for example in real-time applications,
In various situations where system downtime is unacceptable, multiprocessor operation has been particularly advantageous, and various multiprocessor systems have been developed so far, however, While these systems performed well, the overhead required a significant amount of software and operating time. Such conventional systems are disclosed in U.S. Patent Publication Nos. 3,445,822 and 3,566,363.
And No. 3,593,300 show specific examples. Each of these patent publications relates to a system in which a plurality of computers access a single main memory shared between them, and furthermore, in this system, the tasks are preferably assigned to individual processors. In order to allocate, the processing capacity and the processing request amount are compared.
【0006】従来技術の更に別の例としては、米国特許
公報第4,099,233 号がある。この公報のシステムでは、
複数のプロセッサが1つのバスを共用しており、また、
バッファ・レジスタを内蔵している制御ユニットを用い
て送信側ミニプロセッサと受信側ミニプロセッサとの間
のデータ・ブロックの転送が行なわれる。このシステム
のコンセプトは、欧州において分散型の郵便物分類シス
テムに利用されている。Another example of the prior art is disclosed in US Pat. No. 4,099,233. In the system of this publication,
Multiple processors share one bus, and
The transfer of data blocks between the transmitting mini-processor and the receiving mini-processor is performed using a control unit containing a buffer register. The concept of this system is used in Europe for distributed mail classification systems.
【0007】米国特許公報第4,228,496 号は、商業的に
成功したマルチプロセッサ・システムに関するものであ
り、このシステムでは、複数のプロセッサの間に設けら
れた複数のバスがバス・コントローラに接続されてお
り、このバス・コントローラが、データ送出状況の監視
と、プロセッサ間で行なわれる複数のデータ転送に対す
る優先順位の判定を行なっている。また、各々のプロセ
ッサは、複数の周辺装置のうちのある1つの装置を制御
するように接続可能となっている。US Pat. No. 4,228,496 relates to a commercially successful multiprocessor system in which multiple buses between multiple processors are connected to a bus controller. The bus controller monitors the data transmission status and determines the priority order for a plurality of data transfers performed between the processors. Further, each processor is connectable so as to control a certain one of a plurality of peripheral devices.
【0008】ゼロックス、ヒューレット・パッカード、
及びインテルによって共同で推進されている「イーサネ
ット」システム("Ethernet" system )(米国特許公報
第4,063,220 号及び同第4,099,024 号)は、複数のプロ
セッサ並びに周辺装置の間の相互通信の問題に対処する
ための、更に別の方式を提示している。全てのユニット
(=プロセッサや周辺装置等)はそれらのユニットの間
で共用される多重アクセス・ネットワークに接続されて
おり、そしてそれらのユニットは優先権を獲得すべく互
いに競合することになる。衝突検出は時刻優先方式で行
なわれており、そのために、大域的な処理能力を制御す
ることと、コーディネートすることと、明確に把握する
こととが、容易でなくなっている。[0008] Xerox, Hewlett-Packard,
An "Ethernet" system (U.S. Pat. Nos. 4,063,220 and 4,099,024), co-promoted by Intel and Intel, addresses the problem of intercommunication between multiple processors and peripherals. For this purpose, another method is presented. All units (= processors, peripherals, etc.) are connected to a multiple access network shared between them, and the units will compete for each other to gain priority. Collision detection is performed in a time-priority manner, which makes it difficult to control global processing capability, coordinate, and clearly grasp.
【0009】以上に説明した種々のシステムをそれらの
細部まで完全に理解するためには、以上に言及した特許
公報やその他の関連参考文献を詳細に分析する必要があ
る。しかしながら、タスクの分担が行なわれる場合には
それらのシステムはいずれも、データ転送に関する優先
権の判定やプロセッサの選択を行なうために膨大な量の
相互通信と管理制御とが必要とされるということだけ
は、簡単に概観するだけでも理解されよう。システムを
拡張して更に多くのプロセッサを含むようにする場合に
どのような問題が発生するかは異なったシステムの夫々
ごとに違ってくるため一様ではないが、しかしながら以
上のシステムはいずれも、そのような拡張を行なえばシ
ステム・ソフトウェアや応用プログラミング、ハードウ
ェア、或いはそれら3つの全てが複雑化することにな
る。また、若干の考察により理解されることであるが、
1組ないし2組の論理的に受動的なオーミック・バスが
採用されているために、それに固有の制約がマルチプロ
セッサ・システムの規模と能力とに対して課せられてい
る。相互通信をより容易に行なえるようにするために採
用可能な技法には様々なものがあり、その一例として
は、最近発行された米国特許公報第4,240,143 号に示さ
れているところの、サブシステムを大域的資源にグルー
プ分けするという技法等があるが、しかしながら、非常
に多くのプロセッサが用いられている場合には当然のこ
とながら利用できるトラフィックの量はその限界に達し
てしまい、また、遅延時間が様々な値を取るということ
によって、克服し難い問題が生じている。1個ないし複
数個のプロセッサがロック・アウト状態ないしデッドロ
ック状態になるという状況が発生することもあり、その
ような状況に対処するには、問題を解決するための更な
る回路とソフトウェアとが必要とされる。以上から、プ
ロセッサの個数を、例えば1024個というような個数
にまで大幅に拡張することは、従来は実際的でなかった
ことが明らかである。[0009] In order to fully understand the various systems described above in detail, it is necessary to analyze the patent publications and other related references mentioned above in detail. However, when tasks are shared, all of these systems require a huge amount of intercommunication and management control to determine the priority of data transfer and to select processors. Only a brief overview will be understood. The problems that arise when scaling up a system to include more processors are not uniform, as they will be different for each of the different systems, but none of these systems Such an extension would complicate system software, application programming, hardware, or all three. It is also understood by some considerations,
The use of one or two sets of logically passive ohmic buses places inherent constraints on the size and capabilities of multiprocessor systems. There are a variety of techniques that can be employed to facilitate intercommunication, such as the subsystem shown in recently issued U.S. Pat.No. 4,240,143. There is a technique of grouping the resources into global resources. However, when a large number of processors are used, the amount of available traffic naturally reaches its limit, and the The fact that time takes various values raises an insurmountable problem. In some situations, one or more processors may be locked out or deadlocked, and additional circuitry and software to solve the problem require additional circuitry and software. Needed. From the above, it is clear that it has not been practical in the past to significantly expand the number of processors to, for example, 1024.
【0010】多くの様々な応用用途において、以上に説
明した既存の諸技法の制約から逃れて、最新の技法を最
大源に利用することが望まれている。現在採用可能な技
法のうちで最も低コストの技法は、大量生産されている
マイクロプロセッサと、大容量の回転ディスク型の記憶
装置とを基礎とした技法であり、そのような記憶装置の
例としては、密閉式ケースの内部においてヘッドとディ
スクとの間の間隔を非常に小さいものとした、ウインチ
ェスタ・テクノロジー製の装置等がある。マルチプロセ
ッサ・システムを拡張するに際しては、ソフトウェアが
不適当な迄に複雑化することなくシステムを拡張できる
ことが要望されており、更には、ソフトウェアがその拡
張に伴なって複雑化することが全くないようにして拡張
できることすら要望されている。また更に、機能の全体
を、限定されたないしは反復して実行される複数の処理
タスクへと動的に細分できる分散型構造をもつような特
徴を有する計算機問題を処理できる能力が要望されてい
る。略々全てのデータベース・マシンが、そのような問
題分野に属しており、また、この問題分野には更に、ソ
ート処理、パターンの認識及び相関算出処理、デジタル
・フィルタリング処理、大規模マトリクスの計算処理、
物理的な系のシュミレーション、等々のその他の典型的
な問題例も含まれる。これらのいずれの処理が行なわれ
る状況においても、個々に処理される複数のタスクを比
較的簡明なものとし、しかもそれらのタスクを広範に分
散することが要求され、そのため、瞬間的タスク負荷が
大きなものとなる。そのような状況が、従来のマルチプ
ロセッサ・システムに非常な困難を伴なわせていたので
あり、その理由は、そのような状況はオーバーヘッドに
費やされる時間とオーバーヘッドのためのソフトウェア
の量とを増大させる傾向を有していること、並びに、シ
ステムを構成する上で実際上の支障が生じてくることに
ある。例えば受動的な共用バスが採用されている場合に
は、伝播速度並びにデータ転送所要時間が、トランザク
ションを処理する上での可能処理速度に対する絶対的な
障壁を成している。[0010] In many different applications, it is desirable to escape from the limitations of the existing techniques described above and utilize the latest techniques as a maximum source. The least costly of the currently available techniques is based on mass-produced microprocessors and high-capacity rotating disk storage, examples of such storage. Includes a device manufactured by Winchester Technology, which has a very small space between the head and the disk inside the sealed case. In expanding a multiprocessor system, it is required that the system can be expanded without unduly complicating the software, and furthermore, the software does not become complicated as it expands. There is even a demand for expansion. Still further, there is a need for the ability to deal with computer problems having features such as having a distributed structure in which the entire functionality can be dynamically subdivided into a plurality of limited or repetitively executed processing tasks. . Virtually all database machines belong to such problem areas, which also include sorting, pattern recognition and correlation calculations, digital filtering, large matrix calculations. ,
Other typical problem examples, such as simulations of physical systems, are also included. In any of these processing situations, it is necessary to make a plurality of individually processed tasks relatively simple, and to distribute the tasks over a wide range, so that the instantaneous task load is large. It will be. Such a situation has led to significant difficulties in traditional multiprocessor systems because such a situation increases the amount of time spent on overhead and the amount of software for overhead. And there is a practical problem in configuring the system. For example, when a passive shared bus is employed, the propagation speed and the time required for data transfer form an absolute barrier to the possible processing speed in processing a transaction.
【0011】従ってデータベース・マシンは、マルチプ
ロセッサ・システムの改良が必要とされていることの好
い例である。大規模データベース・マシンを構成する上
での基本的な方式にはこれまでに3種類の方式が提案さ
れており、それらは、階層方式、ネットワーク方式、そ
れにリレーショナル方式である。これらのうちでリレー
ショナル方式のデータベース・マシンは、関係(リレー
ション)を示す表を用いることによって、ユーザが複雑
な系の中の所与のデータに容易にアクセスできるように
するものであり、この方式のマシンは、強力な潜在能力
を有するものであると認識されている。この従来技術に
ついて説明している代表的な刊行物には、例えばIEE
Eコンピュータ・マガジンの1979年3月号の第28
頁に掲載されている、D. C. P. スミス並びにJ.
M. スミスによる「リレーショナル・データベース・マ
シン」という表題の論文(article entitled "Relation
al Data Base Machine", published by D.C.P. Smith a
nd J.M. Smith, in the March 1979 issue of IEEE Com
puter magazine, p. 28 )、米国特許公報第4,221,003
号、並びに同公報中に引用されている諸論文等がある。[0011] Database machines are thus a good example of the need for improved multiprocessor systems. So far, three types of basic methods for configuring a large-scale database machine have been proposed, which are a hierarchical method, a network method, and a relational method. Among these, a relational database machine uses a table showing relations to enable a user to easily access given data in a complex system. Are perceived to have strong potential. Representative publications describing this prior art include, for example, IEEE
E Computer Magazine, March 1979, Issue 28
D.C.P.Smith and J.C.
Article entitled "Relational Database Machine" by M. Smith
al Data Base Machine ", published by DCP Smith a
nd JM Smith, in the March 1979 issue of IEEE Com
puter magazine, p. 28), US Patent Publication No. 4,221,003.
And various articles cited in the publication.
【0012】また、ソーティング・マシンは、コンピュ
ーティング・アーキテクチャの改良が必要とされている
ことの好い例である。ソーティング・マシン理論の概説
は、D. E. クヌース(Knuth)著「サーチング及びソー
ティング」の第220〜第246頁("Searching and S
orting" by D.E. Knuth, pp.220-246, published (197
3) by Addison- Wesley Publishing Co., Reading, Mas
sachusetts)に記載されている。この文献には様々なネ
ットワーク並びにアルゴリズムが開示されており、それ
らの各々に付随する制約を理解するためにはそれらを詳
細に考察しなけらばならないが、ただしそれらについて
一般的に言えることは、それらはいずれも、ソーティン
グという特定の目的だけを指向した、特徴的に複雑な方
式であるということである。更に別の例として、L.
A. モラー(L.A.Mollaar )によって提示されているも
のがあり、これは、「IEEE・トランザクション・オ
ン・コンピュータ」、C−28巻、第6号(1979年
6月)、第406〜413頁に掲載されている「リスト
・マージング・ネットワークの構造」という表題の論文
(article entitled "A Design for a List Merging Ne
twork", inthe IEEE Transactions on Computers, Vol.
C-28 No. 6, June 1979 at pp. 406-413 )に記載され
ている。この論文に提案されているネットワークにおい
ては、ネットワークのマージ・エレメントを外部から制
御するという方式が採用されており、また、このネット
ワークは、特殊な機能を実行するためのプログラミング
を必要としている。[0012] Sorting machines are also a good example of the need for improved computing architectures. An overview of sorting machine theory can be found in "Searching and Sorting" by Knuth, pp. 220-246 ("Searching and S").
orting "by DE Knuth, pp.220-246, published (197
3) by Addison- Wesley Publishing Co., Reading, Mas
sachusetts). This document discloses a variety of networks and algorithms, which must be considered in detail in order to understand the constraints associated with each of them, but what can generally be said about them is: All of them are characteristically complex schemes, aimed only at the specific purpose of sorting. As yet another example, L.
Some are presented by A. LAMollaar, which is published in "IEEE Transactions on Computer," Volume C-28, Issue 6, June 1979, pp. 406-413. Article entitled "A Design for a List Merging Neighborhood"
twork ", inthe IEEE Transactions on Computers, Vol.
C-28 No. 6, June 1979 at pp. 406-413). In the network proposed in this paper, a method of externally controlling a merge element of the network is adopted, and the network requires programming to execute a special function.
【0013】汎用のマルチプロセッサ・システムが実行
することができなければならない諸機能には、種々の方
式でサブタスクを分配する機能、サブタスクを実行して
いるプロセッサのステータスを確認する機能、メッセー
ジのマージとソートを行なう機能、データを訂正及び変
更する機能、それに、いつ及びどのように資源が変化し
たかを(例えば、あるプロセッサがいつオンラインから
外れ、いつオンラインに復帰したかを)確認する機能等
がある。以上のような機能を実行するために、これまで
は、オーバーヘッドのための過大なソフトウェアとハー
ドウェアとを用いる必要があった。The functions that a general-purpose multiprocessor system must be able to perform include the ability to distribute subtasks in various ways, the ability to check the status of the processor executing the subtask, and the merging of messages. And sort and data correction and modification, and when and how resources change (eg, when a processor goes off-line and comes back on-line), etc. There is. Until now, it has been necessary to use excessive software and hardware for overhead in order to execute the above functions.
【0014】一例を挙げるならば、例えばデータベース
・マシン等のマルチプロセッサ・システムにおいては、
プロセッサ間のメッセージの転送経路を指定するに際し
て、特定の1つのプロセッサを転送先として選択した
り、或いは1つのクラスに属する複数のプロセッサを選
択したり、また更には、プロセッサそのものを指定する
のではなく、ハッシュ方式等によってプロセッサに分配
されているデータベースの部分を指定するという方法
で、転送先プロセッサを選択するということが、しばし
ば必要となる。公知のシステムの中には前置通信シーケ
ンスを利用しているものがあり、それによって送信側プ
ロセッサと、1個或いは複数の特定の受信側プロセッサ
との間のリンケージを確立するようにしている。このリ
ンケージを確立するためにはリクエストや肯定応答を何
回も反復して送出しなければならず、また起こり得るデ
ッドロック状態を克服するために、更なるハードウェア
並びにソフトウェアを使用しなければならない。前置通
信シーケンスを利用していないシステムでは、1つのプ
ロセッサによって、或いはバス・コントローラによって
管制が行なわれており、この管制は、送信側プロセッサ
が送信準備完了状態にあること、受信側プロセッサが受
信準備完了状態にあること、これらのプロセッサの間の
リンケージからその他のプロセッサが締め出されている
こと、並びに無関係な送信が行なわれていないことを、
確認するためのものである。この場合にもまた、オーバ
ーヘッドに依存することと、デッドロックを回避するた
めに複雑とならざるを得ないこととによって、システム
を拡張する(例えばプロセッサの個数を16個以上にす
る)につれて保守機能が不適当な迄に膨張してしまうの
である。As an example, in a multiprocessor system such as a database machine, for example,
When specifying a message transfer path between processors, a specific one processor is selected as a transfer destination, a plurality of processors belonging to one class are selected, and furthermore, a processor itself is not specified. Instead, it is often necessary to select a destination processor by specifying a portion of the database distributed to the processors by a hash method or the like. Some known systems utilize a forward communication sequence to establish a linkage between a transmitting processor and one or more specific receiving processors. Requests and acknowledgments must be sent over and over again to establish this linkage, and additional hardware and software must be used to overcome possible deadlock situations . In a system that does not use the prefix communication sequence, control is performed by a single processor or a bus controller. State that it is ready, that other processors are locked out of the linkage between these processors, and that no extraneous transmissions are taking place.
It is for confirmation. Again, maintenance functions as the system is expanded (eg, with more than 16 processors) by relying on overhead and having to be complicated to avoid deadlocks. Will expand to an inappropriate level.
【0015】最近のマルチプロセッサ・システムに要求
されている要件の更に別の例として、1個或いは複数個
のプロセッサによって実行されているサブタスクのステ
ータスを、システムが確実に判定するための方法に関係
するものがある。基本的に要求されている点は、所与の
プロセッサに対してそのプロセッサのステータスについ
ての問合せを行なう能力を備えていなければならないと
いうことであり、しかも、そのステータスがその問合せ
よって影響を及ぼされることがないように、且つ、応答
の内容に多義性が生じることがないように、その問合せ
が行なわれなければならないということである。ステー
タス表示のテストとセットとを中断のない一連の操作と
して行なう機能を特徴的に表わすための用語として、現
在当業界においては「セマフォ(semaphore)」という用
語が使用されている。このセマフォという特徴を備えて
いることは望ましいことであるが、ただし、この特徴を
組込むに際しては、実行効率の低下やオーバーヘッドの
負荷の増加を伴なわないようにしなければならない。こ
のようなステータスの判定は、更にマルチプロセッサ・
システムにおいてソート/マージ動作を実行する際に極
めて重要なものとなるが、それは、大きなタスクの中に
含まれている複数のサブタスクの夫々の処理結果を組み
合わせるためには、それらのサブタスクが適切に処理完
了された後でなければ1つに組み合わせることができな
いからである。更に別の要件として、プロセッサがその
「現在」ステータスを報告できなければならないこと、
そしてサブタスクの実行は、マルチプロセッサの動作シ
ーケンスに対して割込みと変更とが繰返されても、ただ
1回だけ行なわれるようにしなければならないというこ
とがある。殆どの既存のシステムでは、プロセッサの実
行ルーチンが中断可能とされているためにこの点に関し
て重大な問題が生じている。即ち、容易に理解されるこ
とであるが、複数のプロセッサが互いに関連を有する複
数のサブタスクを実行しているような場合には、それら
の個々のプロセッサのレディネス状態の程度(=どのよ
うな動作が可能な状態にあるかの程度)についての問合
せとそれに対する応答とに関わる動作シーケンスが膨大
なオーバーヘッドを必要とすることがあり、しかも、そ
のための専用のオーバーヘッドは、プロセッサの個数が
増大するに従っていよいよ不適当なまでに増大する。[0015] Yet another example of a requirement for modern multiprocessor systems relates to a method by which the system can reliably determine the status of subtasks being executed by one or more processors. There is something to do. Basically, what is required is that a given processor must be able to query the status of that processor, and that status is affected by the query. That is, the inquiry must be made so as not to cause any ambiguity in the content of the response. The term "semaphore" is currently used in the art to characterize the ability to perform a status display test and set as an uninterrupted sequence of operations. It is desirable to have this semaphore feature, but incorporation of this feature must not cause a decrease in execution efficiency or an increase in overhead load. Such status determination is further performed by multiprocessor
It is very important when performing a sort / merge operation in a system, and it is necessary to appropriately combine the processing results of a plurality of subtasks included in a large task. This is because they cannot be combined into one until after the processing is completed. Yet another requirement is that the processor must be able to report its "current" status,
In some cases, execution of a subtask must be performed only once, even if interrupts and changes are repeatedly made to the operation sequence of the multiprocessor. Most existing systems pose a significant problem in this regard because the execution routines of the processor are interruptible. That is, as will be easily understood, when a plurality of processors are executing a plurality of subtasks related to each other, the degree of the readiness state of each individual processor (= what operation is performed) The sequence of operations involved in querying and responding to the query can require enormous overhead, and the dedicated overhead therefor increases as the number of processors increases. It will eventually increase to an inappropriate level.
【0016】[0016]
【発明が解決しようとする課題】以上に述べたところの
例を示す従来のマルチプロセッサ・システムにおける典
型的な短所は、いわゆる「分散更新」の問題に関するも
のであり、この問題は即ち、複数個の処理装置の各々に
そのコピーが格納されている情報を更新する必要がある
ということである。ここで言う情報とは、データ・レコ
ードから成る情報の場合もあり、また、システムの動作
を制御するために用いられる情報の場合もある。このシ
ステムの動作の制御とは、例えば、必要なステップが誤
って重複実行されたり全く実行されなかったりすること
のないようにして、処理が開始され、停止され、再開さ
れ、一時中断され、或いはロール・バックないしロール
・フォワードされるようにすること等の制御のことであ
る。従来のシステムにおいては、分散更新の問題の種々
の解決法はいずれもかなりの制約を伴なうものであっ
た。それらの解決法の中には、一度に2個のプロセッサ
だけを対象としているに過ぎないものもある。また更に
別の解決法として相互通信プロトコルを利用しているも
のも幾つかあるが、それらのプロトコルは非常に複雑な
ため、現在でも、それらのプロトコルが適切なものであ
ることを数学的厳密さをもって証明することには非常な
困難が伴なっている。A typical shortcoming of the prior art multiprocessor system, which illustrates the above example, is related to the so-called "distributed update" problem, which is a problem that can be solved by using multiple Need to update the information whose copy is stored in each of the processing devices. The information referred to here may be information composed of data records or information used for controlling the operation of the system. The control of the operation of the system includes, for example, starting, stopping, resuming, suspending, or preventing a necessary step from being duplicated or executed at all. This refers to control such as roll back or roll forward. In conventional systems, the various solutions to the distributed update problem all have considerable limitations. Some of these solutions target only two processors at a time. Some further solutions use intercommunication protocols, but these protocols are so complex that even today they are mathematically rigorous to ensure that they are appropriate. It is very difficult to prove by using.
【0017】それらのプロトコルが複雑になっている原
因は、「大域的セマフォ」を構成している、中断される
ことのない1回の動作により全てのプロセッサにおいて
「テスト・アンド・セット」されるという外面的性質を
持つ制御ビットを、備える必要があるということにあ
る。斯かる制御ビットが複数の別々のプロセッサの内部
に夫々に設けられ、しかもそれらのプロセッサの間の通
信に付随する遅延時間がまちまちであるため、不可避的
に不完全なものとなり得る通信チャネルによってノイズ
が発生され、また更にエラーの発生率も増大することに
なる。従って「中断されることのない1回の動作」とい
う特徴を備えることは、その1つの動作を構成している
複数の部分々々が、夫々に多種多様で、しかも中断可能
であり、そしてそれらを同時にはアクセスすることがで
きず、更にはそれらがアクセスとアクセスとの間に不調
を生じがちである場合には、困難を伴なうものであると
いうことが、当業者には容易に理解されよう。The cause of the complexity of these protocols is that they are "tested and set" in all processors by a single uninterrupted operation that constitutes a "global semaphore". That is, it is necessary to provide a control bit having an external property. Since such control bits are provided within each of a plurality of separate processors, and the delay times associated with communication between the processors are variable, noise caused by communication channels that can inevitably be imperfect. Is generated, and the error occurrence rate is further increased. Therefore, having the feature of "one operation that is not interrupted" means that the plurality of parts constituting one operation are various and can be interrupted, respectively. It is easily understood by those skilled in the art that they cannot be accessed at the same time, and that they can be difficult if they are prone to malfunctions between accesses. Let's do it.
【0018】[0018]
【課題を解決するための手段】本発明は、要約すれば、
転送先選択ワードと呼ばれる形態の数種類の転送経路指
定情報のうちの1つないし複数種類の情報を内包してい
るメッセージを、複数のプロセッサのうちの異なったプ
ロセッサ、ないしはそれのうちの幾つかのプロセッサの
組合わせへ伝送するためのシステム及び方法を提供する
ものである。プロセッサはインターフェイスを有してお
り、このインテーフェイスは、メモリを含むと共に、メ
ッセージに内包されている情報に基づいて個々のプロセ
ッサがそのメッセージに内包されているデータないし命
令を処理ないし実行すべきか否かを直接的かつ効率的に
判定するものである。SUMMARY OF THE INVENTION The present invention, in summary, provides:
A message containing one or more of several types of transfer routing information in a form called a destination selection word is transferred to a different one of the plurality of processors or some of them. A system and method for transmitting to a combination of processors is provided. The processor has an interface that includes a memory and whether each processor should process or execute the data or instructions contained in the message based on the information contained in the message. The determination is directly and efficiently made.
【0019】[0019]
【作用】以上の構成により、個々のプロセッサをただの
1つだけをアドレスすることも、複数のプロセッサを1
つのクラスとしてアドレスすることも、また、ハッシン
グ・モードを利用して個々のプロセッサが分担している
データベースの部分を指定することも、いずれも可能と
なっている。この特徴は、従来の方式の、メッセージの
中にアドレスを内包されると共に各装置がメッセージの
中に含まれている自信のアドレスを識別するという方式
と比較して、はるかに精緻で強力なものである。According to the above arrangement, it is possible to address only one processor at a time, or to set a plurality of processors at one address.
It is possible both to address as one class and to specify the portion of the database shared by the individual processors using the hashing mode. This feature is much more sophisticated and powerful than the traditional method, where the address is included in the message and each device identifies its own address contained in the message. It is.
【0020】[0020]
【実施例】以下、この発明の実施例を図面を参照して説
明する。Embodiments of the present invention will be described below with reference to the drawings.
【0021】(データベース管理システム) 図1に総括的に示されているシステムは、本発明の概念
をデータベース管理に応用したものを具体例として示す
ものである。更に詳細に説明すると、このシステムは一
つまたは複数のホスト・コンピュータ・システム10、
12と協働するように構成されており、それらのホスト
・コンピュータ・システムは、例えばIBM370ファ
ミリーまたはDEC−PDP−11ファミリーに属する
コンピュータ・システム等であって、この具体例の目的
に沿うように既存の一般的なオペレーティング・システ
ム及び応用ソフトウェアで動作するようになっている。
IBMの用語法に拠れば、ホスト・コンピュータ・とデ
ータベース・コンピュータとの間の主要相互通信回線網
はチャネルと呼ばれており、また同じものがDECの用
語法に拠れば「ユニバス」または「マスバス」或いはそ
れらの用語を多少変形した用語で呼ばれている。以上の
コンピュータ・システムのうちのいずれかが用いられる
にせよ、或いは他のメーカーのメインフレーム・コンピ
ュータが用いられるにせよ、このチャネル、即ちバス
は、そこへデータベース・タスク及びサブタスクが送出
されるところのオーミックな転送経路、即ち論理的に受
動的な転送経路である。(Database Management System) The system generally shown in FIG. 1 shows a specific example in which the concept of the present invention is applied to database management. More specifically, the system comprises one or more host computer systems 10,
12, and the host computer system is, for example, a computer system belonging to the IBM 370 family or the DEC-PDP-11 family. It works with existing general operating systems and application software.
According to IBM terminology, the main intercommunication network between a host computer and a database computer is called a channel, and the same is also known as "unibus" or "mass bus" according to DEC terminology. "Or some modified version of those terms. Whether any of the above computer systems are used or a mainframe computer from another manufacturer, this channel, or bus, is where the database tasks and subtasks are sent. , That is, a logically passive transfer path.
【0022】図1の具体例は、ホスト・システム10、
12に組み合わされたバックエンド・プロセッサ複合体
を示している。この図のシステムは、タスク及びサブタ
スクをホスト・システムから受入れ、莫大なデータベー
ス記憶情報のうちの該当する部分を参照し、そして適切
な処理済メッセージ或いは応答メッセージを返すという
ものであり、それらの動作は、このバックエンド・プロ
セッサ複合体の構成の如何にかかわらず、それ程高度で
はないソフトウェアによる管理以外は、ホスト・システ
ムには要求されない方式で実行されるようになってい
る。従って、ユーザのデータベースを新たな方式のマル
チプロセッサ・システムとして構成することが可能とさ
れており、このマルチプロセッサ・システムにおいて
は、データを、容量を大幅に拡張することのできるリレ
ーショナル・データベース・ファイルとして組織するこ
とができ、しかもこの拡張は、ユーザのホスト・システ
ムの内部に備えられているオペレーティング・システム
や既存の応用ソフトウェアを変更する必要なしに行なう
ことができるようになっている。独立システム(スタン
ド・アローン・システム)として構成した具体例につい
て、以下に図33を参照しつつ説明する。FIG. 1 shows a specific example of a host system 10.
12 shows the back-end processor complex combined at 12. The system in this figure accepts tasks and subtasks from the host system, refers to the relevant portion of the vast amount of database storage information, and returns appropriate processed or response messages, and their actions. , Regardless of the configuration of the back-end processor complex, is executed in a manner not required by the host system, except for management by less sophisticated software. Therefore, it is possible to configure a user database as a new type of multiprocessor system. In this multiprocessor system, data is stored in a relational database file capable of greatly expanding the capacity. The extension can be made without changing the operating system or existing application software provided inside the user's host system. A specific example configured as an independent system (stand-alone system) will be described below with reference to FIG.
【0023】当業者には理解されるように、リレーショ
ナル・データベース管理に関する動作機能は、1つの動
作機能の全体を、少なくとも一時的には他から独立して
処理可能な複数の処理タスクへと分割することができる
ような動作機能である。その理由は、リレーショナル・
データベースでは記憶されている複数のデータ・エント
リがアドレス・ポインタによって相互依存的に連結され
ていないからである。更に当業者には理解されるよう
に、リレーショナル・データベース管理以外にも、限定
されたタスクないし反復実行されるタスクを動的に小区
分して独立的に処理するこという方法を用い得るような
の多くのデータ処理環境が存在している。従って、本発
明の具体例を説明するに際しては、特に要望が強くまた
頻繁に聞かれるところ の、データベース管理における
処理の問題に関連させて説明するが、しかしながら本明
細書に開示する新規な方法並びに構成は、それ以外にも
広範な用途を持つものである。As will be appreciated by those skilled in the art, the operational functions associated with relational database management divide an entire operational function into a plurality of processing tasks that can be processed, at least temporarily, independently of the others. This is an operation function that can be performed. The reason is that relational
This is because a plurality of stored data entries are not interconnected by an address pointer in a database. Further, as will be understood by those skilled in the art, other than relational database management, it is possible to use a method of dynamically subdividing limited or repetitively executed tasks and processing them independently. Many data processing environments exist. Accordingly, when describing embodiments of the present invention, it will be described with reference to processing issues in database management, which are particularly demanding and frequently heard, however, the novel methods and methods disclosed herein. The configuration has a wide range of other uses.
【0024】大規模なデータ管理システムは、複数のプ
ロセッサ(マルチプル・プロセッサ)を使用する場合に
は潜在的な利点と不可避的に付随する困難との両方を備
えることになる。何億個にも及ぶ莫大な数のエントリ
(記述項)を、記憶装置の中に、容易にかつ迅速にアク
セスできる状態で保持しなければならない。一方、リレ
ーショナル・データベースのフォーマットとしておけ
ば、広範なデータ・エントリ及び情報の取り出し動作を
同時並行的に実行することができる。Large data management systems will have both potential benefits and unavoidable attendant difficulties when using multiple processors (multiple processors). An enormous number of hundreds of millions of entries (entries) must be kept in storage for easy and quick access. On the other hand, if the relational database format is used, a wide range of data entry and information retrieval operations can be executed concurrently.
【0025】ただし、圧倒的大多数のデータベース・シ
ステムにおいては、データベースの完全性(インテグリ
ティ)を維持することが、トランザクション・データを
迅速に処理することと同様に重要となっている。データ
の完全性は、ハードウェアの故障や停電、それにその他
のシステム動作に関わる災害の、その前後においても維
持されていなければならない。更には、データベース・
システムは、応用ソフトウェア・コードの中のバグ(bu
g)をはじめとするユーザ側のエラーの後始末を行なう
ために、データベースを以前の既知の状態に復元できる
能力を備えていなければならない。しかも、データが誤
って失われたり入力されたりすることがあってはなら
ず、また、イベントが新たなデータに関係するものであ
るのか、或いは過去のエラーの訂正に関係するものであ
るのか、それともデータベースの一部分の校正に関係す
るものであるのかに応じて、ある特定のエントリに関係
しているデータベース部分の全てが変更されるようにな
っていなければならない。However, in the vast majority of database systems, maintaining the integrity of the database is as important as processing transaction data quickly. Data integrity must be maintained before and after hardware failures, power outages, and other disasters involving system operation. Furthermore, the database
The system relies on bugs (buds) in the application software code.
In order to clean up user errors such as g), the database must be capable of restoring to a previously known state. Moreover, data must not be accidentally lost or entered, and whether the event is related to new data or correction of past errors, All of the portions of the database associated with a particular entry must be changed, depending on whether it concerns the proofing of a portion of the database.
【0026】従って、完全性のためには、データのロー
ルバック及び回復の動作、誤りの検出及び修正の動
作、並びにシステムの個々の部分のステータスの変化の
検出及びその補償の動作に加えて、更に、ある程度の冗
長度もデータベースシステムには必要である。これらの
目的を達成するためには、システムが多くの異なった特
殊なモードで用いられなければならないこともあり得
る。Therefore, for completeness, data rollback and recovery operations, error detection and correction operations are required.
In addition to the operation and operation of detecting and compensating for changes in the status of individual parts of the system, some degree of redundancy is also required for the database system. To achieve these objectives, the system may have to be used in many different special modes.
【0027】さらに、最近のシステムでは、その形式が
複雑なものになりがちな任意内容の問合せ(discretion
ary query)を受入れる能力と、必要とあらば相互作用
的な方式で応答する能力とを持っていることが要求され
る。たとえその問合せが複雑なものであったとしても、
システムにアクセスしようとする人達がそのシステムの
熟練者であることを要求されるようなことがあってはな
らない。Furthermore, in recent systems, arbitrary contents queries (discretions) whose form tends to be complicated
ary query) and, if necessary, the ability to respond in an interactive manner. Even if the query is complex,
The people who try to access the system must not be required to be experts in the system.
【0028】大規模生産の業務に関連して生じるかも知
れない任意内容の問合せの例には、次のようなものがあ
る。Examples of arbitrary queries that may occur in connection with large-scale production operations include:
【0029】A.生産管理を行なう管理者が、在庫品の
うちの1品目についてのリストを要求するのみならず、
生産高が前年同月比で少なくとも10%以上低下してい
る部品の、その月間生産高を超えているような全ての部
品在庫を明記した在庫品リストを、要求するかもしれな
い。A. Not only does the production control manager request a list of one of the items in stock,
An inventory list may be required that specifies all parts inventories that have exceeded their monthly output, with parts whose output has decreased by at least 10% over the same month last year.
【0030】B.マーケティング・マネージャーが、あ
る特定の勘定が90日延滞を生じているか否かを問合せ
るばかりでなく、特に不景気な地域に在住している過去
に120日を超過したことのある顧客に関して、一律に
90日の受取債権を要求するかもしれない。B. The marketing manager not only asks if a particular account has a 90-day delinquency, but also has a 90 You may require a day receivable.
【0031】C.人事担当の重役が、所与の1年間に2
週間を超える病欠のあった従業員の全てを一覧表にする
ことを求めるのみならず、直前の5年間のうちの2年以
上について、その釣のシーズンの間に1週間以上の病欠
をした10年勤続以上の長期勤続従業員の全てを一覧表
にすることを求めるかもしれない。C. The HR executive is 2 per year
Not only do we require all employees who have been sick for more than a week to be listed, but also have been sick for more than one week during the fishing season for at least two of the last five years. You may want to list all long-term employees who have worked for more than a year.
【0032】以上の例のいずれにおいても、ユーザは、
コンピュータに格納されている情報をそれまでにはなさ
れなかった方法で関連付けることによって、事業におい
て直面している本当の問題を見極めようとするわけであ
る。その問題を生じている分野に関してユーザが経験を
積んでいれば、従ってユーザに直感力と想像力とがあれ
ば、コンピュータの訓練を受けたことのない専門家が、
複雑な問合せを処理できるデータベースシステムを自由
自在に使用できるのである。In any of the above examples, the user
By associating the information stored on computers in a way never before done, they seek to determine the real problems facing the business. If the user has experience in the area in which the problem is occurring, and therefore has the intuition and imagination, an expert without computer training can
You can use any database system that can handle complex queries.
【0033】最近のマルチプロセッサ・システムは、こ
れらのように多くの、そしてしばしば互いに相反する要
求事項に対しては、念入りに作成されたオーバーヘッド
用ソフトウェア・システム並びに保守用ソフトウェア・
システムを用いることによって対応しようと努めている
のであるが、それらのソフトウェア・システムは本質的
にシステムを容易に拡張することの妨げとなるものであ
る。しかしながら、拡張性という概念は強く求められて
いる概念であり、その理由は、業務ないし事業が成長す
ると、それに付随して既存のデータベース管理システム
を拡張して使用を継続することが望まれるようになり、
この場合、新しいシステムとソフトウェアの採用を余儀
なくされることは好まれないからである。Modern multiprocessor systems have developed elaborate overhead and maintenance software systems for these many and often conflicting requirements.
While trying to respond by using systems, those software systems inherently hinder the easy expansion of the system. However, the concept of scalability is a strongly sought-after concept, as the business or business grows, as it is desired to extend and continue using existing database management systems. Become
In this case, it is not desirable to be forced to adopt a new system and software.
【0034】マルチプロセッサ・アレイ 図1について説明すると、本発明に係る典型的な一具体
例のシステムは多数のマイクロプロセッサを含んでお
り、それらのマイクロプロセッサには重要な2つの重要
な種類があり、それらは本明細書では夫々、インターフ
ェイス・プロセッサ(IFP)とアクセス・モジュール
・プロセッサ(AMP)と称することにする。図中には
2個のIFP14、16が示されており、それらの各々
は別々のホスト・コンピュータ10ないし12の入出力
装置に接続されている。多数のアクセス・モジュール・
プロセッサ18〜23もまた、このマルチプロセッサ・
アレイとも称すべきものの中に含まれている。ここでの
「アレイ」という用語は、おおむね整然とした直線状或
いはマトリックス状に配列された、1組のプロセッサ・
ユニット、集合とされたプロセッサ・ユニット、ないし
は複数のプロセッサ・ユニットを指す、一般的な意味で
用いられており、従って、最近「アレイ・プロセッサ」
と呼ばれるようになったものを意味するのではない。図
中には、このシステムの概念を簡明化した例を示すため
に僅かに8個のマイクロプロセッサが示されているが、
はるかに多くのIFP及びAMPを用いることが可能で
あり、通常は用いられることになる。Multiprocessor Array Referring to FIG. 1, one exemplary embodiment of the system of the present invention includes a number of microprocessors, of which there are two important types. , They will be referred to herein as an interface processor (IFP) and an access module processor (AMP), respectively. In the figure, two IFPs 14, 16 are shown, each of which is connected to an input / output device of a separate host computer 10-12. Many access modules
Processors 18 to 23 are also provided in this multiprocessor
It is included in what is also called an array. As used herein, the term "array" refers to a set of processor units arranged in a generally neat, linear or matrix fashion.
A unit, an aggregated processor unit, or a plurality of processor units, used in a general sense, and thus has recently been referred to as an "array processor."
It does not mean what has come to be called. In the figure, only eight microprocessors are shown to show a simplified example of the concept of this system,
It is possible to use much more IFPs and AMPs and it will be used normally.
【0035】IFP14、16及びAMP18〜23
は、内部バスと周辺装置コントローラにダイレクト・メ
モリ・アクセスをするメイン・メモリとを有しているイ
ンテル8086型16ビットマイクロプロセッサを内蔵
している。いろいろなメーカーの非常に多様なマイクロ
プロセッサ及びマイクロプロセッサシステム製品の任意
のものを利用できる。この「マイクロプロセッサ」は、
このアレイの中で使用できるコンピュータないしプロセ
ッサの一形式の具体的な一例に過ぎず、なぜならば、こ
のシステムの概念は、用途によって必要とされる計算力
がミニコンピュータまたは大型コンピュータのものであ
る場合には、それらを使ってうまく利用できるからであ
る。この16ビットのマイクロプロセッサは、相当のデ
ータ処理力を備え、しかも広範な種々の利用可能なハー
ドウェア及びソフトウェアのオプションに置換えること
ができる標準的な置換え可能な構成とされている、低コ
ストの装置の有利な一例である。IFPs 14, 16 and AMPs 18 to 23
Incorporates an Intel 8086 16-bit microprocessor having an internal bus and a main memory for direct memory access to peripheral controllers. Any of a wide variety of microprocessors and microprocessor system products from various manufacturers are available. This "microprocessor"
This is only a specific example of one type of computer or processor that can be used in this array, because the concept of this system is that the computational power required by the application is that of a minicomputer or a large computer. Because they can be used successfully with them. This 16-bit microprocessor has significant data processing power and is a low cost, standard replaceable configuration that can be replaced with a wide variety of available hardware and software options. It is an advantageous example of the device of the above.
【0036】IFPとAMPとは互いに類似の、能動ロ
ジックと制御ロジックとびインターフェイスとを含む回
路、マイクロプロセッサ、メモリ、及び内部バスを採用
しており、それらについては夫々第1図と第18図とを
参照しつつ後に説明する。ただし、これら二つのプロセ
ッサ形式は、夫々のプロセッサ形式に関連する周辺装置
の性質、及びそれらの周辺装置に対する制御ロジックが
異なっている。当業者には容易に理解されるように、異
なった周辺装置コントローラを備え異なった機能的任務
を付与されたその他のプロセッサ形式を本発明に組入れ
ることも容易である。The IFP and the AMP employ similar circuits, including active logic, control logic, and an interface, a microprocessor, a memory, and an internal bus, as shown in FIGS. 1 and 18, respectively. Will be described later with reference to FIG. However, these two processor types differ in the nature of the peripherals associated with each processor type and the control logic for those peripherals. As will be readily appreciated by those skilled in the art, other processor types with different peripheral controllers and different functional responsibilities may be readily incorporated into the present invention.
【0037】各マイクロプロセッサには高速ランダム・
アクセス・メモリ26(図18に関連して説明する)が
備えられており、この高速ランダム・アクセス・メモリ
は、入出力メッセージのバッファリングを行うことに加
え、システムの他の部分と独特な方法で協働することに
よって、メッセージ管理を行なう。手短に説明すると、
この高速ランダム・アクセス・メモリ26は、可変長の
入力メッセージ(この入力のことを「受信」という)の
ための循環バッファとして働き、シーケンシャルにメッ
セージを出力するための(この出力のことを「送信」と
いう)メモリとして機能し、ハッシュ・マッピング・モ
ード及び他のモードで用いるためのテーブル索引部分を
組込み、そして受信メッセージ及び送信メッセージを整
然と順序立てて取扱うための制御情報を記憶する。メモ
リ26は更に、マルチプロセッサモード選択のとき、並
びにデータ、ステータス、制御、及び応答の各メッセー
ジのトラフィックを取扱うときに独特の役目を果たすよ
うに用いられる。後に詳細に説明するよう に、それら
のメモリは更に、メッセージの中のトランザクション・
アイデンティティに基づいて局所的及び大域的なステー
タス判定と制御機能とが極めて能率的な方法で処理され
通信されるような構成とされている。IFP14、16
及びAMP18〜23の各々に備えられている制御ロジ
ック28(図23及び図24に関連しては後に説明す
る)は、当該モジュール内のデータ転送及びオーバーヘ
ッド機能の実行に用いられる。Each microprocessor has a high-speed random
An access memory 26 (described in connection with FIG. 18) is provided which, in addition to buffering input and output messages, provides a unique method to the rest of the system. By cooperating with, message management is performed. In short,
The high-speed random access memory 26 serves as a circular buffer for variable-length input messages (this input is referred to as "reception"), and sequentially outputs messages (this output is referred to as "transmission"). ), Incorporates a table lookup portion for use in hash mapping mode and other modes, and stores control information for orderly handling of incoming and outgoing messages. The memory 26 is further used to perform a unique role when selecting a multiprocessor mode and when handling data, status, control, and response message traffic. As will be explained in more detail below, those memories also store the transaction
The arrangement is such that local and global status decisions and control functions are processed and communicated in an extremely efficient manner based on the identity. IFP14, 16
And the control logic 28 (to be described later with reference to FIGS. 23 and 24) provided in each of the AMPs 18 to 23 is used for performing data transfer and overhead functions in the module.
【0038】IFP14、16は各々インターフェイス
制御回路30を備えており、このインターフェイス制御
回路30はIFPをそのIFPに組み合わされているホ
スト・コンピュータ10ないし12のチャネルまたはバ
スに接続している。これに対してAMP18〜23で
は、このインターフェイス制御回路に相当する装置はデ
ィスク・コントローラ32であり、このディスク・コン
トローラ32は一般的な構造のものであっても良く、A
MP18〜23を、それらに個別に組み合わせられた磁
気ディスク・ドライブ38〜43と夫々にインターフェ
イスするのに用いられるものである。The IFPs 14, 16 each include an interface control circuit 30, which connects the IFP to a channel or bus of a host computer 10-12 associated with the IFP. On the other hand, in the AMPs 18 to 23, a device corresponding to the interface control circuit is the disk controller 32, and the disk controller 32 may have a general structure.
The MPs 18-23 are used to interface with the magnetic disk drives 38-43 individually associated therewith.
【0039】磁気ディスク・ドライブ38〜43はこの
データベース管理システムに二次記憶装置、即ち大容量
記憶装置を提供している。本実施例において は、それ
らの磁気ディスク・ドライブは例えば ウィンチェスタ
ー・テクノロジー(Winchester technology )等の実績
のある市販の製品から成るものとし、それによって、バ
イト当りコストが極めて低廉でしかも大容量、高信頼性
の記憶装置が得られるようにしている。The magnetic disk drives 38 to 43 provide the database management system with a secondary storage device, that is, a mass storage device. In the present embodiment, the magnetic disk drives are composed of proven commercial products such as Winchester technology, so that the cost per byte is very low, large capacity and high reliability. Sex storage device.
【0040】これらのディスク・ドライブ38〜43に
は、リレーショナル・データベースが分散格納方式で格
納されており、これについては図35に簡易化した形で
示されている。各々のプロセッサとそれに組み合わされ
たディスク・ドライブとに対しては、データベースの部
分集合を成す複数のレコードが割当てられ、この部分集
合は「一次的」部分集合であり、またそれらの一次的部
分集合は互いに素の部分集合であると共に全体として完
全なデータベースを構成するものである。従ってn個記
憶装置の各々はこのデータベースの1/nを保持するこ
とになる。各々のプロセッサには更に、バックアップ用
のデータの部分集合が割当てられ、それらのバックアッ
ップ用部分集合も互いに素の部分集合であり、各々がこ
のデータベースの1/nを構成するものである。図35
から分るように、一次的ファイルの各々は、その一次的
ファイルが収容されているプロセッサとは異なったプロ
セッサに収容されているバックアップ用ファイルによっ
て複製されており、これにより、互いに異なった分配の
仕方で分配された2つの各々が完全なデータベースが得
られている。このように、一次的データ部分集合とバッ
クアップ用データ部分集合とが冗長性を持って配置され
ていることによってデータベースの完全性(インテグリ
ティ)の保護がなされており、その理由は、単発の故障
であれば、大規模な数ブロックに亙る複数のデータや複
数のグループを成す複数のリレーションに対して実質的
な影響を及ぼすことはあり得ないからである。In these disk drives 38 to 43, relational databases are stored in a distributed storage system, which is shown in a simplified form in FIG. Each processor and its associated disk drive is assigned a number of records that form a subset of the database, the subset being the "primary" subset and the primary subset thereof. Is a disjoint subset and constitutes a complete database as a whole. Therefore, each of the n storage devices will hold 1 / n of this database. Each processor is further assigned a subset of the data for backup, and these backup subsets are also disjoint subsets, each constituting 1 / n of this database. FIG.
As can be seen, each of the primary files is duplicated by a backup file contained on a different processor than the processor containing the primary file, thereby providing a different distribution of the files. A complete database of each of the two distributed in a manner is obtained. As described above, the integrity of the database is protected by the redundancy of the primary data subset and the backup data subset. This is because of a single failure. If there is, it is impossible to have a substantial effect on a plurality of data over a large number of blocks or a plurality of relations forming a plurality of groups.
【0041】データベースの分配は、同じく図35に示
されているように、種々のファイルのハッシング動作と
関連を有しており、また、ハッシュ・マッピング・デー
タをメッセージの中に組込むこととも関連を有してい
る。各々のプロセッサに収容されているファイルは、2
進数列のグループとして示される簡単なハッシュ・バケ
ット(hash bucket)によって指定されるようになってい
る。従って、それらのバケットによって指定される関係
の表 (テーブル)に基づいて、リレーショナル・デー
タベース・システムの中のリレーション(関係)及びタ
プル(組:tuple)を配置すべき場所を定めることがで
きる。ハッシング・アルゴリズムを利用して、このリレ
ーショナル・データベース・システムの内部において、
キーからバケットの割当てが求められるようになってお
り、そのため、このデータベース・システムの拡張及び
改変を容易に行なうことができる。The distribution of the database has implications for the hashing operation of the various files, as also shown in FIG. 35, and also has implications for incorporating hash mapping data into the message. Have. The files contained in each processor are 2
It is specified by a simple hash bucket shown as a group of hexadecimal sequences. Thus, based on the relational tables specified by those buckets, it is possible to determine where relations and tuples in the relational database system should be placed. Using the hashing algorithm, inside this relational database system,
The assignment of buckets is required from the key, so that the database system can be easily expanded and modified.
【0042】記憶容量をどれ程の大きさに選択するか
は、データベース管理上のニーズ、トランザクションの
量、及びその記憶装置に組み合わされているマイクロプ
ロセッサの処理力に応じて定められるものである。複数
のディスク・ドライブを1個のAMPに接続したり、1
台のディスク・ファイル装置を複数のAMPに接続する
ことも可能であるが、そのような変更態様は通常は特殊
な用途に限られるであろう。データベースの拡張は、典
型的な一例としては、マルチプロセッサ・アレイにおけ
るプロセッサの個数(及びプロセッサに組み合わされた
ディスク・ドライブの個数)を拡張することによって行
なわれる。The size of the storage capacity to be selected depends on the database management needs, the amount of transactions, and the processing power of the microprocessor associated with the storage device. Connect multiple disk drives to one AMP,
It is possible to connect a single disk file device to multiple AMPs, but such modifications would typically be limited to special applications. Database expansion is typically performed by expanding the number of processors (and the number of disk drives associated with the processors) in a multiprocessor array.
【0043】能動ロジック・ネットワーク 秩序立ったメッセージ・パケットの流れを提供するとい
う目的とタスクの実行を容易にするという目的とは、新
規な能動ロジック・ネットワーク構成体50を中心とし
た、独特のシステム・アーキテクチュア並びにメッセー
ジ構造を採用することによって達成される。この能動ロ
ジック・ネットワーク構成体50は、複数のマイクロプ
ロセッサの複数の出力に対して、階層を登りながらそれ
らの出力を収束させて行く昇順階層を成す、複数の双方
向能動ロジック・ノード(bidirectional active logi
c node)54によって構成されている。それらのノード
54は、3つのポートを備えた双方向回路から成るもの
であり、この双方向回路はツリー・ネットワーク(tree
network:樹枝状の構造を持つネットワーク)を形成す
ることができ、その場合には、そのツリー構造のベース
の部分においてマイクロプロセッサ14、16及び18
〜23に接続される。Active Logic Network The purpose of providing an orderly flow of message packets and the purpose of facilitating the execution of tasks is to provide a unique system centered around the novel active logic network construct 50. Achieved by employing an architecture as well as a message structure. The active logic network construct 50 comprises a plurality of bidirectional active logic nodes that form an ascending hierarchy of outputs of a plurality of microprocessors, converging the outputs ascending the hierarchy. logi
c node) 54. The nodes 54 consist of a bidirectional circuit with three ports, which is a tree network (tree).
network: a network having a dendritic structure), in which case the microprocessors 14, 16 and 18 are provided in the base part of the tree structure.
To 23.
【0044】当業者には理解されるように、ノードは、
ロジック・ソースの数が2を超えて、例えば4または8
であるときに設けることができ、この場合、同時にま
た、ソース入力の数を多くするという問題も組合せロジ
ックを更に付加するという問題に変換してしますことが
できる。As will be appreciated by those skilled in the art, a node is:
The number of logic sources exceeds two, for example four or eight
In this case, at the same time, the problem of increasing the number of source inputs can be converted to the problem of adding additional combinational logic.
【0045】図の参照を容易にするために、すべてのノ
ード(N)のうち、第1階層に属しているものはそれをプ
リフィックス「I」で表わし、また第2階層に属してい
るものはそれをプリフィックス「II」で表わし、以下
同様とする。同一の階層に属している個々のノードは、
下添字「1 、2 …」によって表わし、従って、例えば第
1階層の第4ノードであれば「IN4 」と表わすことが
できる。ノードのアップ・ツリー側(即ち上流側)には
「Cポート」と名付けられた1つのポートが備えられて
おり、このCポート隣接する高位の階層に属しているノ
ードの2つのダウン・ツリー・ポートのうちの一方に接
続されており、それらのダウン・ツリー・ポートは夫々
「Aポート」及び「Bポート」と名付けられている。こ
れら複数の階層は、最上部ノード即ち頂点ノード54a
へと収束しており、この頂点ノード54aは、上流へ向
けられたメッセージ(アップ・ツリー・メッセージ)の
流れの向きを逆転して下流方向(ダウン・ツリー方向)
へ向ける、収束及び転回のための手段として機能してい
る。2組のツリー・ネットワーク 50a、50bが
使用されており、それら2組のネットワークにおけるノ
ードどうし、それに相互接続部どうしは互いに並列に配
置されており、それによって大規模システムに望まれる
冗長性を得ている。ノード54どうし、そしてそれらの
ネットワークどうしは互いに同一であるので、それらの
ネットワークのうちの一方のみを説明すれば充分であ
る。For ease of reference in the drawing, of all nodes (N), those belonging to the first hierarchy are represented by a prefix “I”, and those belonging to the second hierarchy are represented by “I”. It is represented by the prefix “II”, and so on. Individual nodes belonging to the same hierarchy
.., So that, for example, the fourth node in the first hierarchy can be represented as "IN4". On the up tree side (ie, upstream side) of the node, there is provided one port named “C port”, and two down tree trees of nodes belonging to a higher hierarchy adjacent to the C port. The ports are connected to one of the ports, and their down tree ports are named "A port" and "B port", respectively. These hierarchies are represented by a top node or vertex node 54a.
This vertex node 54a reverses the direction of the flow of the message (up-tree message) directed upstream to the downstream direction (down-tree direction).
It functions as a means for converging and turning. Two sets of tree networks 50a, 50b are used, the nodes in the two sets of networks and their interconnections being arranged in parallel with each other, thereby obtaining the desired redundancy for large systems. ing. Since nodes 54 and their networks are identical to each other, it is sufficient to describe only one of the networks.
【0046】説明を分り易くするために先ず第1に理解
しておいて頂きたいことは、シリアルな信号列の形態と
されている多数のメッセージ・パケットが、多くのマイ
クロプロセッサの接続によって能動ロジック・ネットワ
ーク50ヘ同時に送出され、或いは同時に送出すること
が可能とされているということである。複数の能動ロジ
ック・ノード54はその各々が2進数ベースで動作して
2つの互いに衝突関係にある衝突メッセージ・パケット
の間の優先権の判定を行ない、この優先権の判定は、そ
れらのメッセージパケット自体のデータ内容を用いて行
なわれる。更には、1つのネットワークの中のすべての
ノード54は1つのクロック・ソース56の制御下に置
かれており、このクロック・ソース56は、メッセージ
パケットの列を頂点ノード54aへ向けて同期して進め
ることができるような態様で、それらのノード54に組
み合わされている。このようにして、シリアルな信号列
の中の、連続する各々のバイト等の増分セグメントが次
の階層へと進められ、このバイトの進行は、別のメッセ
ージの中のそのバイトに対応するバイトがこのネットワ
ーク50内の別の経路をたどって同様に進行するのと同
時に行なわれる。For the sake of simplicity, it should first be understood that a number of message packets, in the form of a serial signal stream, can be connected to active logic by many microprocessor connections. -It is possible to transmit to the network 50 at the same time, or to transmit at the same time. The plurality of active logic nodes 54 each operate on a binary basis to determine a priority between two conflicting conflicting message packets, the priority being determined by those message packets. It is performed using its own data contents. Further, all nodes 54 in one network are under the control of one clock source 56, which synchronizes a sequence of message packets toward vertex node 54a. The nodes 54 are combined in such a way that they can proceed. In this way, an incremental segment, such as each successive byte, in the serial signal sequence is advanced to the next layer, and the progress of this byte is determined by the byte corresponding to that byte in another message. This is done at the same time as following another route in the network 50.
【0047】互いに競合する信号列の間に優先権を付与
するためのソートが、アップ・ツリー方向へ移動してい
るメッセージパケットに対して行なわれ、これによって
最終的には、頂点ノード54aから下流へ向けて方向転
換されるべき単一のメッセージ列が選択される。以上の
ようにシステムが構成されているため最終的な優先権に
ついての判定をメッセージパケット内のある1つの特定
の点において行なう必要はなくなっており、そのため、
個々のノード54において実行されている2つの互いに
衝突しているパケット間の2進数ベースの判定以外のも
のを必要とすることなしに、メッセージの転送を続けて
行なうことができるようになっている。この結果、この
システムは空間的及び時間的にメッセージの選択とデー
タの転送とを行なうようになっているわけであるが、た
だし、バスの支配権を得たり、送信プロセッサあるいは
受信プロセッサを識別したり、またはプロセッサ間のハ
ンドシェイキング操作を実行する目的のために、メッセ
ージ伝送を遅延させるようなことはない。Sorting for giving priority between competing signal sequences is performed on message packets moving in the up-tree direction, and ultimately downstream from vertex node 54a. A single message sequence to be diverted to is selected. Since the system is configured as described above, it is not necessary to determine the final priority at a specific point in the message packet.
The transfer of the message can be continued without requiring anything other than a binary-based determination between the two conflicting packets being executed at the individual nodes 54. . As a result, the system spatially and temporally selects messages and transfers data, provided that it gains control of the bus and identifies the transmitting or receiving processor. Nor does it delay message transmission for the purpose of performing handshaking operations between processors.
【0048】更に、特に認識しておいて頂きたいこと
は、幾つかのプロセッサが全く同一のバケットを同時に
送信した場合には、その送信が成功したならば、それら
の送信プロセッサの全てが成功したのと同じことになる
ということである。この性質は時間とオーバーヘッドを
節約するので大型マルチプロセッサ複合体の有効な制御
を行うのに極めて有用である。It should also be noted that if several processors transmitted the exact same bucket at the same time, and if the transmission was successful, all of the transmitting processors were successful. It is the same as This property is extremely useful for effective control of large multiprocessor complexes, as it saves time and overhead.
【0049】ノード54は更に双方向方式で作動するた
め、妨害を受けることのない、下流方向へのメッセージ
・パケットの分配を可能にしている。所与のノード54
において、そのアップ・ツリー側に設けられたポートC
で受取られた下流方向メッセージは、このノードのダウ
ン・ツリー側に設けられたポートA及びポートBの両方
へ分配され、更に、このノードに接続された隣接する低
位の階層に属する2つのノードの両方へ転送される。コ
モン・クロック回路56の制御の下にメッセージ・パケ
ットは同期してダウン・ツリー方向へ進められ、そして
全てのマイクロプロセッサへ同時にブロードカスト(br
oadcast:一斉伝達)され、それによって、1つまたは複
数のプロセッサが、所望の処理タスクの実行ができるよ
うになるか、または応答を受入れることができるように
なる。Node 54 also operates in a bi-directional manner, allowing undisturbed distribution of message packets downstream. Given node 54
, The port C provided on the up tree side
Is distributed to both the port A and the port B provided on the down tree side of this node. Forwarded to both. Under the control of the common clock circuit 56, the message packet is advanced synchronously down the tree and broadcast to all microprocessors simultaneously.
oadcast), thereby allowing one or more processors to perform a desired processing task or to accept a response.
【0050】ネットワーク50は、そのデータ転送速度
が、マイクロプロセッサのデータ転送速度と比較してよ
り高速であり、典型的な例としては2倍以上の高速であ
る。本実施例においては、ネットワーク50は120ナ
ノ秒のバイト・クロック・インタバルをもっており、そ
のデータ転送速度はマイクロプロセッサの5倍の速度で
ある。各ノード54は、その3つのポートの各々が、そ
のノードに接続されている隣接する階層に属するノード
のポートか、或いはマイクロプロセッサに接続されてお
り、この接続は1組のデータ・ライン(本実施例におい
ては10本)と制御ライン(本実施例においては2本)
とによってなされており、2本の制御ラインは夫々、ク
ロック信号とコリジョン信号(衝突信号)とに割当てら
れている。データ・ラインとクロック・ラインとは対に
なすようにして配線され、アップ・ツリー方向とダウン
・ツリー方向とでは別々のラインとされている。コリジ
ョン・ラインはダウン・ツリー方向にのみ伝播を行なう
ものである。以上の接続構造は全二重式のデータ経路を
形成しており、どのラインについてもその駆動方向を
「反転」するのに遅延を必要としないようになってい
る。The data transfer rate of the network 50 is higher than the data transfer rate of the microprocessor, and is typically more than twice as high. In this embodiment, network 50 has a byte clock interval of 120 nanoseconds, and its data rate is five times that of a microprocessor. Each node 54 has its three ports connected to a port of a node belonging to an adjacent hierarchy connected to the node or to a microprocessor, and the connection is made by a set of data lines (books). 10 lines in this embodiment) and control lines (2 lines in this embodiment)
The two control lines are respectively assigned to a clock signal and a collision signal (collision signal). The data lines and the clock lines are wired in pairs, and are separate lines in the up tree direction and the down tree direction. The collision line propagates only in the down tree direction. The above connection structure forms a full-duplex data path so that no delay is required to "reverse" the drive direction of any line.
【0051】次に図13に関して説明すると、10本の
データ・ラインは、ビット0〜7で表わされている8ビ
ット・バイトを含んでおり、それらが10本のデータ・
ラインのうちの8本を占めている。Cで表わされている
別の1本のラインは制御ラインであり、このラインは特
定の方法でメッセージパケットの異なる部分を明示する
のに用いられる制御シーケンスを搬送する。10番目の
ビットは本実施例においては奇数パリティ用に使用され
ている。当業者には理解されるように、このシステムは
以上のデータ経路中のビットの数を増減しても良く、そ
のようにビットの数を変更しても容易に動作させること
ができる。Referring now to FIG. 13, ten data lines include 8-bit bytes, represented by bits 0-7, which comprise ten data lines.
Occupies eight of the lines. Another line, denoted C, is a control line, which carries a control sequence used to specify different parts of the message packet in a particular way. The tenth bit is used for odd parity in this embodiment. As will be appreciated by those skilled in the art, the system may increase or decrease the number of bits in the above data path, and may easily operate with such a change in the number of bits.
【0052】バイト・シーケンス(バイトの列)は、一
連の複数のフィールドを構成するように配列され、基本
的には、コマンド・フィールド、キー・フィールド、転
送先選択フィールド、及びデータ・フィールドに分割さ
れている。後に更に詳細に説明するように、メッセージ
はただ1つだけのフィールドを用いることもあり、また
検出可能な「エンド・オブ・メッセージ」コードをもっ
て終了するようになっている。メッセージ間に介在する
「アイドル・フィールド(idle field:遊びフィール
ド)」は、Cライン上並びにライ0〜7上のとぎれのな
い一連の「1」によって表わされ、いかなるメッセージ
パケットも得られない状態にあるときには常にこれが転
送されている。パリティ・ラインは更に、個々のプロセ
ッサのステータスの変化を独特の方式で伝えるためにも
使用される。A byte sequence (a sequence of bytes) is arranged to form a series of fields, and is basically divided into a command field, a key field, a destination selection field, and a data field. Have been. As will be described in more detail below, the message may use only one field and terminate with a detectable "end of message" code. The "idle field" intervening between messages is represented by a continuous series of "1s" on the C line as well as on lines 0-7, and no message packet is available. Is always being transferred. Parity lines are also used to uniquely communicate changes in the status of individual processors.
【0053】「アイドル状態(idle state:遊び状
態)」はメッセージとメッセージとの間に介在する状態
であって、メッセージ・パケットの一部分ではな い。
メッセージ・パケットは通常、タグを含む 2バイトの
コマンド・ワードで始まり、このタグは、そのメッセー
ジがデータ・メッセージであればトランザクション・ナ
ンバ(TN)の形とされており、また、そのメッセージ
が応答メッセージであれば発信元プロセッサID(OP
ID)の形とされている。トランザクション・ナンバ
は、システムの中において様々なレベルの意義を有する
ものであり、多くの種類の機能的通信及び制御の基礎を
成すものとして機能するものである。パケットは、この
コマンド・ワードの後には、可変長のキー・フィールド
と固定長の転送先選択ワード(destination selection
word: DSW)とのいずれか或いは双方を含むことがで
き、これらは可変長のデータ・フィールドの先頭の部分
を成すものである。キー・フィールドは、このキー・フ
ィールド以外の部分においてはメッセージどうしが互い
に同一であるという場合に、それらのメセージの間のソ
ーティングのための判断基準を提供するという目的を果
たすものである。DSWは、多数の特別な機能の基礎を
提供するものであり、また、TNと共に特に注意するの
に値するものである。An "idle state" is an intervening state between messages and is not part of a message packet.
A message packet usually begins with a two-byte command word containing a tag, which is in the form of a transaction number (TN) if the message is a data message, and the message If it is a message, the source processor ID (OP
ID). Transaction numbers have various levels of significance in the system and serve as the basis for many types of functional communication and control. After the command word, the packet consists of a variable-length key field and a fixed-length destination selection word.
word: DSW), which form the beginning of the variable length data field. The key field serves the purpose of providing a criterion for sorting between messages in cases where the messages are otherwise identical to each other in other parts of the key field. DSW provides the basis for a number of special features and is worthy of special attention with TN.
【0054】このシステムは、ワード同期をとられてい
るインターフェイスを用いて動作するようになってお
り、パケットを送信しようとしている全てのプロセッサ
は、コマンド・ワードの最初のバイトを互いに同時にネ
ットワーク50へ送出するようになっている。ネットワ
ークは、これに続く諸フィールドのデータ内容を利用し
て、各ノードにおいて2進数ベースでソーティングを行
ない、このソーティングは、最小の数値に優先権が与え
られるという方式で行なわれる。連続するデータ・ビッ
トの中で、ビットCを最も大きい量である見なし、ビッ
ト0を最も小さい量であると見なすならば、ソーティン
グの優先順位は以下のようになる。The system is adapted to operate using a word-synchronized interface so that all processors attempting to transmit a packet send the first byte of the command word to the network 50 simultaneously with each other. It is designed to be sent. The network uses the data content of the fields that follow to sort at each node on a binary basis, with the lowest numerical values being given priority. Of the consecutive data bits, if bit C is considered to be the largest quantity and bit 0 is considered to be the smallest quantity, the sorting priority is as follows:
【0055】1.ネットワーク50へ最初に送出された
もの、 2.コマンド・コード(コマンド・ワード)が最小値で
あるもの、 3.キー・フィールドが最小値であるもの、 4.キー・フィールドが最短であるもの、 5.データ・フィールド(転送先選択ワードを含む)が
最小値であるもの、 6.データ・フィールドが最短であるもの。1. 1. first sent to network 50; 2. a command code (command word) having a minimum value; 3. the key field is the minimum value; 4. the shortest key field; 5. The data field (including the destination selection word) is the minimum value; The shortest data field.
【0056】ここで概観を説明しているという目的に鑑
み、特に記しておかねばならないことは、ノード54に
おいて優先権の判定が下されたならば、コリジョン表示
(=衝突表示、以下Acol またはBcol と称する)が、
この優先権の判定において敗退した方の送信を受取った
方の経路に返されるということである。このコリジョン
表示によって、送信を行なっているマイクロプロセッサ
は、ネットワーク50がより高い優先順位の送信のため
に使用されているため自らの送信は中止されており、従
って後刻再び送信を試みる必要があるということを認識
することができる。In view of the purpose of explaining the overview here, it should be noted that if the priority is determined at the node 54, the collision display (= collision display, hereinafter referred to as Acol or Bcol) ), But
In the determination of the priority, the transmission of the loser is returned to the route of the receiver. This collision indication indicates that the transmitting microprocessor has aborted its transmission because the network 50 is being used for a higher priority transmission, and will need to try again later. You can recognize that.
【0057】単純化した具体例が、図2から図12まで
の種々の図式に示されている。この具体例は、ネットワ
ーク50が4個の別々のマイクロプロセッサを用いたツ
リー構造に配列された高速ランダム・アクセス・メモリ
と協働して動作するようにしたものであり、それら4個
のマイクロプロセッサは更に詳しく説明すると、IFP
14と、3個のAMP18、19及び20とである。計
10面の図3乃至図12は、その各々が、t=0からt
=9までの連続する10個の時刻標本のうちの1つに対
応しており、そしてそれらの時刻の各々における、この
ネットワーク内のマイクロプロセッサの各々から送出さ
れる互いに異なった単純化された(4個の文字からな
る)シリアル・メッセージの分配の態様、並びに、それ
らの種々の時刻における、ポートとマイクロプロセッサ
との間の通信の状態を示している。単に図2は、信号の
伝送の開始前のシステムの状態を示している。以上の個
々の図においては、ナル状態(null state:ゼロの状
態)即ちアイドル状態であるためには、「□」で表され
る伝送が行なわれていなければならないものとしてい
る。最小値をとるデータ内容が優先権を有するという取
決めがあるため、図3中のAMP19から送出されるメ
ッセージ・パケット「EDDV」が、最初にこのシステ
ムを通して伝送されるメッセージ・パケットとなる。図
中の夫々のメッセージは、後に更に詳細に説明するよう
に、マイクロプロセッサの中の高速ランダム・アクセス
・メモリ(H.S.RAMと呼称することもある)の内
部に保持されている。H.S.RAM26は、図3には
概略的に示されている入力用領域と出力用領域とを有し
ており、パケットは、t=0の時点においては、この出
力領域の中にFIFO(先入れ先出し)方式で垂直に並
べて配列されており、それによって、転送に際しては図
中のH.S.RAM26に書込まれているカーソル用矢
印に指示されているようにして取り出すことができるよ
うになっている。この時点においては、ネットワーク5
0の中のすべての伝送は、ナル状態即ちアイドル状態
(□)を示している。Simplified examples are shown in the various diagrams of FIGS. In this embodiment, the network 50 operates in cooperation with a high-speed random access memory arranged in a tree structure using four separate microprocessors. In more detail, IFP
14 and three AMPs 18, 19 and 20. FIGS. 3 to 12 showing a total of 10 planes show that t = 0 to t
= 9, corresponding to one of ten consecutive time samples, and at each of those times, a different simplified simplification sent from each of the microprocessors in this network ( 4 illustrates aspects of the distribution of serial messages (consisting of four characters) and the state of communication between the port and the microprocessor at those various times. FIG. 2 simply shows the state of the system before the start of signal transmission. In each of the above figures, it is assumed that transmission represented by “□” must be performed in order to be in a null state (a null state), that is, in an idle state. Since there is an agreement that the data content having the minimum value has priority, the message packet "EDDV" transmitted from the AMP 19 in FIG. 3 is the first message packet transmitted through this system. Each message in the figure is maintained within a high speed random access memory (sometimes referred to as HS RAM) in a microprocessor, as described in more detail below. H. S. The RAM 26 has an input area and an output area schematically shown in FIG. 3. At t = 0, a packet is stored in the output area in a FIFO (first in first out) system. Are arranged vertically, so that when data is transferred, H.D. S. It can be taken out as indicated by the cursor arrow written in the RAM 26. At this point, network 5
All transmissions in 0 indicate a null or idle state (□).
【0058】これに対して、図4に示されているt=1
の時点においては、各々のメッセージパケットの先頭の
バイトが互いに同時にネットワーク50へ送出され、こ
のとき全てのノード54はいまだにアイドル状態表示を
返しており、また、第1階層より上のすべての伝送状態
もアイドル状態となっている。第1番目のクロック・イ
ンタバルの間に夫々のメッセージの先頭のバイトが最下
層のノードIN1 及びIN2 の内部にセットされ、t=
2において(図5)競合に決着が付けられ、そして上流
方向への伝送と下流方向への伝送の双方が続けて実行さ
れる。ノードIN1 はその両方の入力ポートに「E」を
受取っており、そしてこれを上流方向の次の階層へ向け
て転送していて、また下流方向へは両方の送信プロセッ
サへ向けて未判定の状態を表示している。しかしながら
これと同じ階層に属しているノードIN2 は、プロセッ
サ19からの「E」とプロセッサ20からの「P」との
間の衝突に際しての優先権の判定を、「E」の方に優先
権があるものと判定しており、そして、ポートAをアッ
プ・ツリー側のポートCに結合する一方、マイクロプロ
セッサ20へBcol 信号を返している。Bcol 信号がマ
イクロプロセッサ20へ返されると、IN2 ノードは実
際上、そのA入力ポートがC出力ポートにロックされた
ことになり、それによって、マイクロプロセッサ19か
らのシリアルな信号列が頂点ノードIN1へ伝送される
ようになる。On the other hand, t = 1 shown in FIG.
At this point, the first byte of each message packet is sent out to the network 50 at the same time as each other, at which time all the nodes 54 are still returning an idle status indication and all the transmission statuses above the first level. Is also idle. During the first clock interval, the first byte of each message is set inside the lowermost nodes IN1 and IN2, and t =
At 2 (FIG. 5) the conflict is settled, and both the upstream transmission and the downstream transmission are performed in succession. Node IN1 has received "E" on both its input ports, and is forwarding it to the next layer upstream, and is pending in the downstream direction to both transmit processors. Is displayed. However, the node IN2 belonging to the same hierarchy determines the priority in the event of a collision between “E” from the processor 19 and “P” from the processor 20, and determines that the priority is toward “E”. If so, port A is coupled to port C on the up tree side while returning a Bcol signal to microprocessor 20. When the Bcol signal is returned to the microprocessor 20, the IN2 node has effectively locked its A input port to the C output port, thereby transmitting the serial signal sequence from the microprocessor 19 to the vertex node IN1. It will be transmitted.
【0059】IN1 ノードにおいては最初の二つの文字
はどちらも「ED」であり、そのため図5に示すよう
に、このノードではt=2の時刻には、判定を下すこと
は不可能となっている。更には、3つのマイクロプロセ
ッサ14、15及び19から送出された共通の先頭の文
字「E」は、t=3(図6)の時刻にII1頂点ノード
に達し、そしてこの文字「E」は、同じくそれら全ての
メッセージに共通する第2番目の文字「D」がこの頂点
ノードIIN1へ転送されるときに、その転送の向きを
反転されて下流方向へ向けられる。この時点ではノード
IN1 は未だ判定を下せない状態にあるが、しかしなが
らこのときには、一連のマイクロプロセッサ14、18
及び19からの夫々の第3番目の文字「F」、「E」及
び「D」がこのノードIN1 へ送信されつつある。マイ
クロプロセッサ20がBcol 信号を受取るということは
このプロセッサ20が優先権を得るための競合において
敗退したことを意味しており、それゆえこのプロセッサ
20はBcol 信号を受取ったならばアイドル表示(□)
を送出し、またそれ以降もこのアイドル表示(□)だけ
を送出する。夫々の出力バッファに書込まれている夫々
のカーソル矢印は、マイクロプロセッサ20はその初期
状態に戻されているがその他のマイクロプロセッサは連
続する一連の文字を送り続けていることを示している。
従ってt=4(図7)の時刻における重要な出来事は、
ノードIN1 のポートに関する 判定が行なわれること
と、それに、先頭の文字 (「E」)が、全てのライン
を通って第1階層のノード階層へ向けて反転伝送される
ことである。t=5(図8)の時刻には2回目の衝突が
表示され、この場合、ノードIIN1 のBポートが競合
に勝利し、Acolが発生される。In the IN1 node, the first two characters are both "ED", so that as shown in FIG. 5, it is impossible for this node to make a decision at time t = 2. I have. Furthermore, the common leading character "E" sent from the three microprocessors 14, 15 and 19 reaches the II1 vertex node at time t = 3 (FIG. 6), and this character "E" Similarly, when the second letter "D" common to all those messages is transferred to this vertex node IIN1, the direction of the transfer is reversed and directed downstream. At this point, node IN1 is still in a state where it cannot make a decision, however, at this time, a series of microprocessors 14, 18
And the respective third letters "F", "E" and "D" from 19 are being transmitted to this node IN1. The fact that the microprocessor 20 receives the Bcol signal means that the processor 20 has lost in the race to gain priority, and therefore, if the processor 20 has received the Bcol signal, an idle indication (□)
Is transmitted, and thereafter, only this idle display (□) is transmitted. Each cursor arrow written to each output buffer indicates that microprocessor 20 has been returned to its initial state, while the other microprocessors continue to send a continuous sequence of characters.
Therefore, the important event at time t = 4 (FIG. 7) is
A determination is made as to the port of node IN1 and that the leading character ("E") is inverted and transmitted through all lines to the first level node hierarchy. At time t = 5 (FIG. 8), a second collision is indicated, in which case the B port of node IIN1 wins the conflict and an Acol is generated.
【0060】続く数回のクロック・タイムの間は、シリ
アルな信号列の下流方向へのブロードカストが継続して
行なわれ、t=6(図9)の時刻には、メッセージの先
頭の文字が全てのH.S.RAM26の入力用領域の部
分の中にセットされる。ここでもう1つ注意しておいて
頂きたいことは、ノードIN1 において先に行なわれた
優先権の判定はこの時点において無効とされるというこ
とであり、その理由は、プロセッサ18から送出された
第3番目の文字(「E」)がマイクロプロセッサ19か
ら送出された第3番目の文字(「D」)との競合に敗退
したときに、より高位の階層のノードIIN1からAco
l の表示がなされるためである。図10中においてカー
ソル矢印が表わしているように、マイクロプロセッサ1
4、18及び20はそれらの初期状態に戻されており、
また、勝利したマイクロプロセッサ19は、その全ての
送信をt=4の時刻に既に完了している。図10及び図
11から分るように、全ての入力バッファの中へ、次々
に優先メッセージ「EDDV」がロードされて行く。t
=8(図11)において、このメッセージは既に第1階
層から流れ出てしまっており、また、頂点ノードIIN
1 はt=7において既にリセットされた状態になってい
るが、それは、マイクロプロセッサへ向けて最後の下流
方向文字が転送されるときには、既にアイドル信号だけ
が互いに競合しているからである。t=9(図12)の
時刻には、第1階層に属しているノードIN1 及びIN
2 はリセットされており、そして、敗退したマイクロプ
ロセッサ14、18及び20の全ては、ネットワークが
再びアイドルを指示しているときにメッセージの先頭の
文字を送出することによって、ネットワーク上における
優先権を得るための競合を再度行なうことになる。実際
には後に説明するように、勝利したマイクロプロセッサ
へ肯定応答信号が伝送されるのであるが、このことは、
本発明を最大限に一般化したものにとっては必須ではな
い。During the subsequent several clock times, the downstream broadcast of the serial signal sequence is continuously performed, and at the time t = 6 (FIG. 9), the first character of the message is All H. S. It is set in the input area of the RAM 26. One thing to note here is that the priority decision made earlier at node IN1 is invalidated at this point, because the When the third character ("E") loses the competition with the third character ("D") sent from the microprocessor 19, the node AIN1 of the higher hierarchy leaves the node Aco.
This is because l is displayed. As indicated by the cursor arrow in FIG.
4, 18 and 20 have been returned to their initial state,
The winning microprocessor 19 has already completed all of its transmissions at the time t = 4. As can be seen from FIGS. 10 and 11, the priority message "EDDV" is sequentially loaded into all the input buffers. t
= 8 (FIG. 11), this message has already flowed out of the first layer and the vertex node IIN
1 has already been reset at t = 7 since only the idle signals are already competing with each other when the last downstream character is transferred to the microprocessor. At the time t = 9 (FIG. 12), the nodes IN1 and IN1 belonging to the first hierarchy
2 has been reset, and all of the lost microprocessors 14, 18 and 20 have taken priority over the network by sending out the first character of the message when the network is indicating idle again. Competition to get it again. In fact, as explained later, an acknowledgment signal is transmitted to the winning microprocessor,
It is not essential to the maximum generalization of the invention.
【0061】メッセージがこのようにして全てのマイク
ロプロセッサへブロードカストされた後には、このメッ
セージは、必要に応じてそれらのマイクロプロセッサの
いずれかによって、或いはそれらの全てによって利用さ
れる。どれ程のマイクロプロセッサによって利用される
かは、動作のモードと実行される機能の如何に応じて異
なるものであり、それらの動作モードや機能には様々な
バリエーションが存在する。After the message has been broadcast to all microprocessors in this manner, the message is utilized by any of those microprocessors, or by all of them, as needed. How many microprocessors are used depends on the mode of operation and the function to be executed, and there are various variations in the operation mode and function.
【0062】(大域的な相互通信と制御) 一群の互いに競合するメッセージのうちの1つのメッセ
ージに対してネットワークが優先権を与える方法として
上に説明した具体例は、プライマリ・データ・メッセー
ジの転送に関する例である。しかしながら、複雑なマル
チプロセッサ・システムが、現在求められている良好な
効率と多用途に亙る汎用性とを備えるためには、その他
の多くの種類の通信とコマンドとを利用する必要があ
る。備えられていなければならない主要な機能には、プ
ライマリ・データの転送に加えて、広い意味でマルチプ
ロセッサのモードと呼ぶことのできるもの、メッセージ
に対する肯定応答、ステータス表示、並びに制御信号が
含まれている。以下の章は、種々のモード並びにメッセ
ージが、どのようにして優先権付与のためのソーティン
グと通信とを行なうソーティング・コミュニケーション
・ネットワークと協働するかについて、大域的な観点か
ら、即ちマルチプロセッサ・システムの観点から説明し
た概観を提示するものである。更に詳細に理解するため
には、図18、図23及び図24と、それらの図につい
ての後述の説明とを参照されたい。Global Intercommunication and Control The embodiment described above as a way for the network to give priority to one of a group of conflicting messages is the transfer of primary data messages. It is an example about. However, complex multiprocessor systems need to utilize many other types of communications and commands to provide the good efficiency and versatility required today. Key functions that must be provided include, in addition to the transfer of primary data, what can be broadly referred to as multiprocessor modes, acknowledgments to messages, status indications, and control signals. I have. The following sections discuss, from a global perspective, how the various modes and messages cooperate with a sorting and communication network that performs sorting and communication for prioritization, i.e., multiprocessor systems. It presents an overview described from a system perspective. For a more detailed understanding, please refer to FIGS. 18, 23 and 24 and the following description of these figures.
【0063】一斉分配モード、即ちブロードカスト・モ
ードにおいては、メッセージは特定の1個または複数個
の受信プロセッサを明示することなく、全てのプロセッ
サへ同時に送達される。このモードが用いられるのは、
典型的な例を挙げるならば、応答、ステータス問合せ、
コマンド、及び制御機能に関してである。In a broadcast or broadcast mode, a message is delivered to all processors simultaneously without specifying one or more specific receiving processors. This mode is used
Typical examples are responses, status queries,
Commands and control functions.
【0064】受信プロセッサが明示されている必要があ
る場合には、メッセージ・パケットそれ自体の中に含ま
れている転送先選択情報が、そのパケットを局所的に
(=個々のプロセッサにおいて)受入れるか拒絶するか
を判断するための判定基準を提供するようになってい
る。例を挙げれば、受信プロセッサ・モジュールの内部
のインターフェイス・ロジックが、高速RAM26に記
憶されているマップ情報に従って、そのパケットのデー
タがそのインターフェイス・ロッジクが組込まれている
特定のプロセッサが関与する範囲に包含されるものか否
かを識別する。高速RAM内のマップ・ビットを種々に
設定することによって様々な選択方式の判定基準を容易
に設定することができ、それらの選択方式には、例え
ば、特定の受信プロセッサの選択、(「ハッシング」に
より)格納されているデータベースの一部分の選択、ロ
ジカル・プロセス・タイプ(「クラス」)の選択、等々
がある。ブロードカストを局所的アクセス制御(=個々
のプロセッサにおいて実行されるアクセス制御)と共に
用いることは、データベース管理システムにとっては特
に有益であり、それは、小さなオーバーヘッド用ソフト
ウェアしか必要とせずに、広範に分散されたリレーショ
ナル・データベースの任意の部分や、複数の大域的に既
知となっているロジカル・プロセスのうちの任意のもの
の分散された局所的コピーに、アクセスすることができ
るからである。従ってこのシステムは、メッセージの転
送先として、1つの転送先プロセッサを特定して選択す
ることもでき、また、1つのクラスに属する複数の資源
を特定して選択することもできる。If the receiving processor needs to be specified, the destination selection information contained in the message packet itself should accept the packet locally (= in individual processors). A criterion for judging whether to reject is provided. By way of example, the interface logic inside the receiving processor module may, according to the map information stored in the high-speed RAM 26, cause the data of the packet to fall within the range of the particular processor in which the interface logic is incorporated. Identify if it is included. By differently setting the map bits in the high-speed RAM, the criteria for the different selection schemes can be easily set, including, for example, the selection of a particular receiving processor, ("hashing" Selection of a portion of the stored database, selection of a logical process type ("class"), and so on. The use of broadcast with local access control (= access control performed on individual processors) is particularly beneficial for database management systems, which are widely distributed and require little overhead software. Access to any part of the relational database or distributed local copy of any of a plurality of globally known logical processes. Accordingly, this system can specify and select one transfer destination processor as a transfer destination of a message, and can specify and select a plurality of resources belonging to one class.
【0065】更にまた、ハイ・レベルのデータベース問
合せは、しばしば、データベースの別々の部分の間の相
互参照と、所与のタスクについての一貫性を有するレフ
ァレンス(識別情報)とを必要とする。メッセージに組
込まれたトランザクション・ナンバ(TN)は種々の特
質を持つものであるが、その中でも特に、そのような大
域的なトランザクションのアイデンティティ(同定情
報)及びレファレンスを提供するものである。多数のタ
スクを、互いに非同期的に動作するローカル・プロセッ
サ・モジュール(局所的プロセッサ・モジュール)によ
って同時並行的に処理することができるようになってお
り、また、各々のタスクないしサブタスクは適当なTN
を持つようにされている。TNとDSW(転送先選択ワ
ード)とコマンドとを様々に組合わせて用いることによ
って、実質的に無限の融通性が達成されるようになって
いる。その割当てと処理とが非同期的に行なわれている
極めて多数のタスクに対して、広範なソート/マージ動
作(sort/merge operation)を適用することができるよ
うになっている。TNについては、それを割当てること
と放棄することとが可能となっており、またマージ動作
については、その開始と停止とが可能とされている。あ
る種のメッセージ、例えば継続メッセージ等について
は、その他のメッセージの伝送に優先する優先権を持つ
ようにすることができる。TNと、それにそのTNに関
するステータスを更新するローカル・プロセッサとを利
用することにより、ただ1つの問合せだけで所与のTN
についての大域的資源のステータスを判定することがで
きるようになっている。分散型の更新もまた一回の通信
で達成できるようになっている。本発明のシステムは、
以上の全ての機能が、ソフトウェアを拡張したりオーバ
ーヘッドの負担を著しく増大させることなく、実行され
るようにするものである。Furthermore, high-level database queries often require a cross-reference between different parts of the database and a consistent reference for a given task. The transaction number (TN) embedded in the message can be of various attributes, among others, providing the identity and reference of such a global transaction. A large number of tasks can be processed concurrently by local processor modules (local processor modules) that operate asynchronously with each other, and each task or subtask has an appropriate TN
Have been to have. By using various combinations of TN, DSW (transfer destination selection word) and commands, virtually unlimited flexibility is achieved. A wide range of sort / merge operations can be applied to a very large number of tasks whose allocation and processing are performed asynchronously. The TN can be allocated and abandoned, and the merge operation can be started and stopped. Certain messages, such as continuation messages, may have priority over transmission of other messages. By utilizing a TN and a local processor that updates the status for that TN, a given TN can be obtained with only one query.
To determine the status of the global resource for. Distributed updates can also be achieved with a single communication. The system of the present invention
All of the above functions are performed without extending software or significantly increasing overhead burden.
【0066】本発明を用いるならばその結果として、従
来技術において通常見られる個数のマイクロプロセッサ
よりはるかに多くの個数のプロセッサを備えたマルチプ
ロセッサ・システムを、問題タスクに対して非常に効果
的に動作させることが可能になる。現在ではマイクロプ
ロセッサは低価格となっているため、問題領域において
高性能を発揮するシステムを、それも単に「ロー」パワ
ー("raw" power)が高性能であるというだけではない
システムを、実現することができる。The consequence of using the present invention is that a multiprocessor system with a much larger number of processors than the microprocessors typically found in the prior art can be very effectively used for the task at hand. It becomes possible to operate. Microprocessors are now inexpensive, enabling systems that perform well in problem areas, and that do more than just have "raw" power. can do.
【0067】全てのメッセージのタイプと種々のサブタ
イプとを包含する一貫性のある優先順位プロトコルが、
ネットワークに供給される種々様々なメッセージの全て
を包括するように定められている。応答メッセージ、ス
テータス・メッセージ、並びに制御メッセージはプライ
マリ・データ・メッセージとは異なる形式のメッセージ
であるが、それらも同じように、ネットワークの競合/
マージ動作(contention/merge operation)を利用し、
そしてそれによって、転送されている間に優先権の付与
を受ける。本システムにおける応答メッセージは、肯定
応答(ACK)か、否定応答(NAK)か、或いは、そ
のプロセッサがそのメッセージに対して有意義な処理を
加えるための資源を持っていないことを表わす表示
(「非該当プロセッサ(not applicable processor)」
−NAP)である。NAK応答は、ック(lock)状態、
エラー状態、ないしはオーバーラン(overrun)状態を
表示する幾つかの異なったタイプのうちのいずれであっ
ても良い。発信元プロセッサは1つだけであることも複
数個ある場合もあるが、発信元プロセッサはメッセージ
の送信を終了した後には以上のような応答を必要とする
ため、応答メッセージにはプライマリ・データ・メッセ
ージより高位の優先順位が与えられている。A consistent priority protocol that encompasses all message types and various subtypes is:
It is defined to encompass all of the various messages provided to the network. Response messages, status messages, and control messages are different types of messages from primary data messages, but they are also similar to network contention /
Using a merge operation (contention / merge operation)
Thus, priority is given during the transfer. The response message in the present system may be an acknowledgment (ACK), a negative acknowledgment (NAK), or an indication that the processor has no resources to perform meaningful processing on the message ("non- Not applicable processor "
-NAP). NAK response is locked state,
It can be any of several different types that indicate an error condition or an overrun condition. Although there may be only one sender processor or multiple sender processors, since the sender processor needs such a response after finishing the transmission of the message, the primary message is included in the response message. Has a higher priority than the message.
【0068】本システムは更にSACKメッセージ(ス
テータス肯定応答メッセージ:status acknowledgment
message)を用いており、このSACKメッセージは、
特定のタスク即ちトランザクションに関する、ある1つ
のローカル・プロセッサのレディネス状態(どのような
動作が可能であるかという状態:readiness state )を
表示するものである。このSACK応答の内容は局所的
に(=個々のプロセッサにおいて、即ちローカル・プロ
セッサにおいて)更新されると共に、ネットワークから
アクセスできる状態に保持される。斯かるSACK応答
は、ネットワークのマージ動作と組合わされることによ
って、所与のタスク即ちトランザクションに関する単一
の問合せによる大域的ステータス報告が得られるように
している。ステータス応答は優先順位プロトコルに従う
ため、ある1つのトランザクション・ナンバに関する応
答のうちのデータ内容が最小の応答が自動的に優先権を
得ることになり、それによって最低のレディネス状態が
大域的なシステム状態として確定され、しかもこれは中
断されることのない1回の動作によって行なわれる。更
に、このようなSACK表示はある種のプライマリ・メ
ッセージと共に用いられることもあり、それによって、
例えばシステムの初期化やロックアウト動作等の、様々
なプロトコルが設定される。The system further includes a SACK message (status acknowledgment message: status acknowledgment).
message), and the SACK message is
This indicates the readiness state of a certain local processor (readiness state) for a specific task or transaction. The content of this SACK response is updated locally (= at the individual processor, ie at the local processor) and kept accessible from the network. Such a SACK response is combined with the merge operation of the network to provide a global status report with a single query for a given task or transaction. Since the status response follows the priority protocol, the response with the smallest data content among the responses related to one transaction number automatically takes priority, whereby the lowest readiness state becomes the global system state. And this is done by a single uninterrupted operation. Further, such a SACK indication may be used with certain primary messages, thereby
For example, various protocols such as system initialization and lockout operation are set.
【0069】種々のメッセージのタイプに関する優先順
位プロトコルは先ず最初にコマンド・コードについて定
義されており、このコマンド・コードは、図21に示す
ように各メッセージ及び応答の先頭に立つコマンド・ワ
ードの、その最初の6ビットを使用している。これによ
ってメッセージのタイプ及びサブタイプに関して充分な
区別付けができるようになっているが、ただし、より多
段階の区別付けをするようにすることも可能である。
図21を参照すれば分るように、本実施例においては、
SACK応答は7つの異なったステータス・レベルを区
別して表わす(更には優先権判定のための基準をも提供
する)ものとされている。応答メッセージの場合には、
以上の6ビットの後に、10ビットのOPIDの形式と
したタグが続く(図13参照)。TNとOPIDとはい
ずれも更なるソーティング用判定基準としての機能を果
たすことができ、その理由は、これらのTNとOPID
とはタグ領域の内部において異なったデータ内容を持つ
からである。The priority protocol for the various message types is first defined for a command code which, as shown in FIG. The first six bits are used. This allows for sufficient discrimination with respect to message types and subtypes, but it is also possible to provide more multi-level discrimination.
As can be seen from FIG. 21, in this embodiment,
The SACK response is intended to distinguish between the seven different status levels (and also provide criteria for priority determination). In the case of a response message,
After the above 6 bits, a tag in the form of a 10-bit OPID follows (see FIG. 13). Both the TN and the OPID can serve as additional sorting criteria because of their TN and OPID
This is because they have different data contents inside the tag area.
【0070】各プライマリ・メッセージがネットワーク
を介して伝送された後には、全てのプロセッサのインタ
ーフェイス部が、たとえそれがNAPであろうとも、と
もかく応答メッセージを発生する。それらの応答メッセ
ージもまたネットワーク上で互いに競合し、それによっ
て、単一または共通の勝利した応答メッセージが全ての
プロセッサへブロードカストされる。敗退したメッセー
ジパケットは後刻再び同時送信を試みられることになる
が、この再度の同時送信は非常に短い遅延の後に行なわ
れ、それによってネットワークが実質的に連続的に使用
されているようにしている。複数のプロセッサがACK
応答を送出した場合には、それらのACK応答はOPI
Dに基づいてソーティングされることになる。After each primary message has been transmitted over the network, the interface portion of every processor will generate a response message anyway, even if it is a NAP. The response messages also compete with each other on the network, so that a single or common winning response message is broadcast to all processors. The lost message packet will be tried again at a later time, but again after a very short delay, thereby ensuring that the network is used substantially continuously. . Multiple processors ACK
If responses have been sent, their ACK responses
Sorting is performed based on D.
【0071】本発明を用いるならばその結果として、タ
スクの開始と停止と制御、並びにタスクに対する問合せ
を、極めて多数の物理的プロセッサによって、しかも僅
かなオーバーヘッドで、実行することが可能となる。こ
のことは、多数のプロセッサのロー・パワー(raw powe
r )を問題状態の処理のために効果的に使うことを可能
としており、なぜならば、このロー・パワーのうちシス
テムのコーディネーション(coordination)及び制御に
割かれてしまう量が極めて少なくて済むからである。コ
ーディネーションと制御のオーバーヘッドは、いかなる
分散型処理システムにおいても、その効率に対する根本
的な制約を成すものである。The consequence of using the present invention is that the starting, stopping, and controlling of tasks, and interrogation of tasks, can be performed by a very large number of physical processors with little overhead. This is due to the low power of many processors.
r) can be used effectively for handling problem situations, since the amount of this low power that is devoted to system coordination and control is very small. is there. Coordination and control overhead are fundamental constraints on the efficiency of any distributed processing system.
【0072】大域的な制御(即ちネットワークの制御)
を目的としている場合には、種々のタイプの制御通信が
用いられる。従って、「マージ停止」、「ステータス要
求」、及び「マージ開始」の各メッセージや、あるタス
クの割当てのためのメッセージ並びにあるタスクの放棄
のためのメッセージは、データ・メッセージと同一のフ
ォーマットとされており、それ故それらのメッセージも
また、ここではプライマリ・メッセージと称することに
する。それらの制御メッセージも同様にTNを含んでお
り、そして優先順位プロトコルの中の然るべき位置に位
置付けられている。このことについては後に図20及び
図21に関して説明することにする。「大域的セマフォ
・バッファ・システム」という用語を先に使用したの
は、図1に示された高速ランダム・アクセス・メモリ2
6及び制御ロジック28が、マルチプロセッサのモード
の選択とステータス表示及び制御指示の双方向通信との
両方において、重要な役割りを果たしているという事実
があるからである。この大域的セマフォ・バッファ・シ
ステムはアクセスの二重性を提供するものであり、この
アクセスの二重性とは、高速で動作するネットワーク構
造体50とそれより低速で動作するマイクロプロセッサ
との双方が、メモリ26内のメッセージ、応答、制御、
ないしはステータス表示を、遅延なしに、そしてネット
ワークとマイクロプロセッサとの間の直接通信を必要と
することなく、参照することができるようにしていると
いうことである。これを実現するために、制御ロジック
28が、メモリ26を差込みワード・サイクル(interl
eaved woed cycle)で時間多重化(タイム・マルチプレ
クシング)してネットワーク50とマイクロプロセッサ
とへ接続しており、これによって結果的に、メモリ26
を共通してアクセスすることのできる別々のポートが作
り上げられているのと同じことになっている。大域的資
源、即ちネットワーク50と複数のマイクロプロセッサ
とは、トランザクション・ナンバを、メモリ26のうち
のトランザクションのステータスを格納するために割振
られている部分へのロケートを行なうアドレス・ロケー
タとして、利用することができる。局所的なレベル(=
個々のプロセッサのレベル)において、あらゆる種類の
使用可能状態を包含する所与のトランザクションに関す
るサブタスクのステータスを、マイクロプロセッサの制
御の下にメモリ26の内部で更新し、そして制御ロジッ
ク28によってバッファ・システムにロックするという
ことが行なわれる。7種類の異なった作動可能状態のう
ちの1つを用いることによって、エントリをメモリ26
の異なった専用部分から好適に取出すことができるよう
になっている。ネットワークから問合せを受取ったなら
ば、プロセッサのステータスの通信が行なわれて(即ち
「セマフォ」が読出されて)、それに対する優先権の判
定がネットワークの中で行なわれ、その際、完了の程度
の最も低いレディネス状態が優先権を得るようになって
いる。以上の構成によって、1つの問合せに対する全て
のプロセッサからの迅速なハードウェア的応答が得られ
るようになっている。従って所与のタスクに関する分散
された複数のサブタスクの全てが実行完了されているか
否かについて、遅滞なく、且つソフトウェアを用いるこ
となく、知ることができる。更にこのシステムでは、通
信を行なうプロセッサ・モジュールのいずれもがトラン
ザクション・ナンバの割当てを行なえるようになってお
り、このトランザクション・ナンバ割当ては、使用可能
な状態にあるトランザクション・ナンバを、メッセージ
に使用し或いは各々の大域的セマフォ・バッファ・シス
テム内において使用するために割当てる動作である。Global control (ie, network control)
For this purpose, various types of control communication are used. Accordingly, the "Merge Stop", "Status Request", and "Merge Start" messages, messages for allocating certain tasks, and messages for abandoning certain tasks have the same format as data messages. Therefore, those messages are also referred to herein as primary messages. These control messages also contain the TN, and are located in place in the priority protocol. This will be described later with reference to FIGS. The term "global semaphore buffer system" was first used in the fast random access memory 2 shown in FIG.
6 and the control logic 28 play an important role both in the selection of the mode of the multiprocessor and in the two-way communication of status indications and control instructions. The global semaphore buffer system provides access redundancy, which means that both the high-speed network structure 50 and the slower-operating microprocessor have memory 26 Messages, responses, controls within
Or the status display can be viewed without delay and without the need for direct communication between the network and the microprocessor. To accomplish this, the control logic 28 stores the memory 26 in the inserted word cycle (interl
time multiplexed in an eaved woed cycle and connected to the network 50 and the microprocessor, thereby resulting in the memory 26
It's the same as having separate ports that can be accessed in common. The global resource, the network 50 and the plurality of microprocessors, use the transaction number as an address locator that locates the portion of memory 26 that is allocated to store the status of the transaction. be able to. Local level (=
At the individual processor level), the status of the subtasks for a given transaction, including any kind of availability, is updated inside the memory 26 under the control of the microprocessor and by the control logic 28 the buffer system. Is locked. By using one of seven different ready states, the entry is stored in memory 26.
From different dedicated parts. If a query is received from the network, a communication of the status of the processor is made (i.e., a "semaphore" is read) and a priority determination is made in the network, with the degree of completion being determined. The lowest readiness status will get priority. With the above-described configuration, a quick hardware response from one processor to one query can be obtained. Therefore, it is possible to know without delay and without using software whether or not execution of all of a plurality of distributed subtasks relating to a given task has been completed. Further, in this system, any of the communicating processor modules can assign a transaction number, and the transaction number assignment uses the available transaction number for a message. Or an operation allocated for use within each global semaphore buffer system.
【0073】以上の、トランザクションのアイデンティ
ティとステータス表示とを統合した形で使用するという
ことの好適な具体的態様には、複数のプロセッサの各々
が所与の判定基準に関わる全てのメッセージを順序正し
く送出することを要求されるようにした、複合的マージ
動作がある。もし従来技術に係るシステムであれば、先
ず各々のプロセッサが自身のタスクを受取ってその処理
を完了し、然る後にその処理の結果を、最終的なマージ
動作を実行するある種の「マスタ」プロセッサへ転送す
るという方式を取らねばならないであろう。従ってその
マスタプロセッサが、そのシステムの効率に対する重大
なネックとなるわけである。The preferred embodiment of using the transaction identity and status indication in an integrated manner is that each of the plurality of processors sorts all messages related to a given criterion in order. There is a compound merge operation that is required to be sent. If it is a system according to the prior art, each processor first receives its task and completes its processing, and then uses the result of that processing as a sort of "master" to perform the final merge operation. It would have to take the form of forwarding to the processor. Thus, the master processor is a significant bottleneck to the efficiency of the system.
【0074】大域的レディネス状態が、作用が及ぶプロ
セッサの全てが準備のできた状態にあるということを確
証したならば、夫々のプロセッサに備えられたメモリ2
6における最高の優先順位を有するメッセージが互いに
同時にネットワークへ送出され、そしてそれらのメッセ
ージに対しては、前述の如く、マージが行なわれる間に
優先権の判定がなされる。幾つものグループのメッセー
ジについて次々と再送信の試みがなされ、その結果、複
数のメッセージを当該トランザクション・ナンバに関優
先順位の高いものから低いものへと順に並べ、その最後
には最低の優先順位のものがくるようにした、シリアル
なメッセージ列が発生される。特別のコマンド・メッセ
ージに従って、このシステムは、マージ動作をその途中
で停止することと途中から再開することとが可能とされ
ており、そのため、互いに同時刻に実行の途中にある複
数のマージ動作が、このネットワーク50を共有してい
るという状態が存在し得るようになっており、それによ
ってこのシステムの資源を極めて有効に利用することが
可能となっている。If the global readiness state confirms that all of the affected processors are in a ready state, the memory 2 provided in each processor is provided.
The messages with the highest priority at 6 are sent to the network simultaneously with each other, and for those messages a priority determination is made during the merge, as described above. Successive retransmission attempts are made for a number of groups of messages, resulting in multiple messages ordered from highest to lowest priority for the transaction number, ending with the lowest priority. A serialized message sequence is generated, with things coming. According to a special command message, the system can stop and restart the merge operation in the middle, so that multiple merge operations in the middle of execution at the same time can be performed. There is a possibility that the network 50 is shared, which makes it possible to use the resources of the system very effectively.
【0075】従って、いかなる時刻においても、このネ
ットワーク50に接続されている動作中のプロセッサの
全てが、様々なトランザクション・ナンバに関係した複
数のメッセージに関する動作を互いに非同期的に実行し
ていられるようになっている。1つのステータス問合せ
によって同一のトランザクション・ナンバ即ち「現在」
トランザクション・ナンバの参照が行なわれたなら、全
てのプロセッサが、用意されているステータス・レベル
のうちの1つをもって互いに同期して応答を行なう。例
を挙げると、「マージ開始(START MERGE )」メッセー
ジは、ある特定のトランザクション・ナンバによって指
定される大域的セマフォのテスト(=調査)を行なわ
せ、もしこのテストの結果得られた大域的状態が「準備
完了」状態であれば(即ち「送信準備完了(SEND READ
Y)」または「受信準備完了(RECEIVE READY )」のい
ずれかび状態であれば)、現在トランザクション・ナン
バ(present transaction number:PTN)の値がこの
「マージ開始」メッセージに含まれて伝送されたTNの
値に等しくセットされる。(もしテストの結果得られた
大域的状態が「準備完了」状態でなかったならば、PT
Nの値は「TN0(これはトランザクション・ナンバ
(TN)が「0」であるという意味である)」という値
に戻されることになる)。Therefore, at any time, all the active processors connected to the network 50 can execute operations related to a plurality of messages related to various transaction numbers asynchronously with each other. Has become. The same transaction number or "current" by one status query
If a transaction number reference is made, all processors respond synchronously with one another with one of the available status levels. For example, the "START MERGE" message causes a test (= investigation) of the global semaphore specified by a particular transaction number, and the global state obtained as a result of this test. Is in the “ready” state (ie, “SEND READ”
Y) or "RECEIVE READY"), the TN transmitted with the current transaction number (present transaction number: PTN) value included in this "merge start" message Is set equal to the value of (If the global state resulting from the test was not the "ready" state, the PT
The value of N will be returned to the value "TN0 (this means that the transaction number (TN) is" 0 ")".
【0076】更には「マージ停止(STOP MERGE)」メッ
セージも、現在トランザクション・ナンバを「0」にリ
セットする。このようにして「TN0」は、ある1つの
プロセッサから他の1つのプロセッサへのメッセージ
(ポイント・ツー・ポイント・メッセージ)のために使
用される「ディフォルト」値のトランザクション・ナン
バとして利用されている。別の言い方をすれば、この
「TN0」によって、「ノン・マージ(non-merge)」
モードの動作が指定されるのである。Further, the "STOP MERGE" message also resets the current transaction number to "0". In this way, “TN0” is used as a “default” value transaction number used for a message from one processor to another (point-to-point message). . In other words, this "TN0" means "non-merge"
The operation of the mode is specified.
【0077】この大域的相互通信システムは、メッセー
ジの構成については図13(a)、(b)、(c)、及
び図21に示されているものを、また、高速ランダム・
アクセス・メモリ26の構成については図18及び図2
0に示されているものを採用している。更に詳細な説明
は、後に図15、図17、図19、図23、及び図24
に関連させて行なうことにする。In this global intercommunication system, the message structure shown in FIGS. 13 (a), (b), (c) and FIG.
18 and 2 for the configuration of the access memory 26.
0 is adopted. A more detailed description will be given later with reference to FIGS. 15, 17, 19, 23, and 24.
Will be performed in connection with
【0078】図13(a)〜図13(c)及び図21か
ら分るように、応答に用いられるコマンド・コードは0
0から0F(16進数)までであり、また、プライマリ
・メッセージに用いられるコマンド・コードは10(1
6進数)からより大きな値に亙っている。従って応答は
プライマリ・メッセージに対して優先し、図21に示し
た並べ順では最小の値が先頭にくるようにしてある。As can be seen from FIGS. 13 (a) to 13 (c) and FIG. 21, the command code used for the response is 0.
0 to 0F (hexadecimal), and the command code used for the primary message is 10 (1
Hexadecimal) to larger values. Therefore, the response has priority over the primary message, and the smallest value comes first in the arrangement order shown in FIG.
【0079】高速RAMメモリ26" (図18)の内部
の1つの専用格納領域(同図において「トランザクショ
ン・ナンバ」と書かれている領域)が、図22のワード
・フォーマット(前述の7種類のレディネス状態、TN
割当済状態、並びにTN非割当状態)を格納するために
使用されている。このメモリ26" のその他の複数の専
用部分のなかには、入力(受信メッセージ)のための循
環バッファと、出力メッセージのための格納空間とが含
まれている。このメモリ26" のもう1つの別の分離領
域がメッセージ完了ベクトル領域として使用されてお
り、この領域は、送信完了した出力メッセージにポイン
タを置くことができるようにするものであり、これによ
って、出力メッセージの格納空間を有効に利用できるよ
うになっている。One high-speed RAM memory 26 "(FIG. 18) has a dedicated storage area (an area described as" transaction number "in FIG. 18) in the word format shown in FIG. Readyness status, TN
(Assigned state, as well as TN unassigned state). Among other dedicated parts of this memory 26 "are a circular buffer for input (received messages) and a storage space for output messages. Another separate part of this memory 26" is included. The separation area is used as a message completion vector area, and this area allows a pointer to be placed on an output message that has been transmitted, thereby effectively utilizing storage space for the output message. It has become.
【0080】以上から理解されるように、メモリ26及
び制御ロジック28については、それらのキューイング
(queuing )機能並びにデータ・バッファリング機能は
確かに重要なものであるが、それらと共に、大域的トラ
ンザクションを個々のプロセッサに関して分散させて処
理するところの多重共同動作が独特の重要性を有するも
のとなっている。As can be seen, for the memory 26 and the control logic 28, their queuing and data buffering functions are certainly important, but together with them, the global transaction Has a unique significance in that it operates in a distributed manner with respect to the individual processors.
【0081】(能動ロジック・ノード) 冗長性をもって配設されている2つのネットワークのい
ずれにおいても、図1の複数の能動ロジック・ノード5
4は夫々が互いに同一の構成とされているが、ただし例
外として、各ネットワークの頂点にある方向反転ノード
54だけは、上流側ポートを備えず、その替わりに、下
流方向へ方向反転するための単なる信号方向反転経路を
備えている。図14に示すように、1個のノード54
を、機能に基づいて2つのグループに大きく分割するこ
とができる。それらの機能的グループのうちの一方はメ
ッセージと並びにコリジョン信号(衝突番号)の伝送に
関係するものであり、他方は共通クロック信号の発生並
びに再伝送に関係するものである。クロック信号に対し
ては、異なったノードにおける夫々のクロック信号の間
にスキューが存在しないように、即ちゼロ・スキューと
なるように、同期が取られる。以上の2つの機能グルー
プは互いに独立したものではなく、その理由は、ゼロ・
スキュー・クロック回路が信号伝送システムの重要な部
分を形成しているからである。ワード・クロック(シリ
アルな2つのバイトからなる)とバイト・クロックとの
両方が用いられる。ここで特に述べておくと、この能動
ロジック・ノード54の状態を設定ないしリセットする
際にも、また、異なった動作モードを設定する際にも、
この能動ロジック・ノード54を外部から制御する必要
はなく、また実際にそのような制御が行なわれることは
ない。更には、夫々のノード54が互いに同一の構造で
あるため、最近のIC技術を使用してそれらのノードを
大量生産することが可能であり、それによって、信頼性
を向上させつつ、かなりのコストの低下を実現すること
ができる。(Active Logic Nodes) In each of the two networks arranged with redundancy, the plurality of active logic nodes 5 shown in FIG.
4 have the same configuration as each other, except that only the direction reversal node 54 at the top of each network does not have an upstream port, but instead has a direction reversal in the downstream direction. It has a simple signal direction inversion path. As shown in FIG.
Can be largely divided into two groups based on functions. One of these functional groups relates to the transmission of messages and collision signals (collision numbers), the other relates to the generation and retransmission of common clock signals. The clock signals are synchronized so that there is no skew between the respective clock signals at different nodes, ie, zero skew. These two functional groups are not independent of each other because
This is because the skew clock circuit forms an important part of the signal transmission system. Both word clock (consisting of two serial bytes) and byte clock are used. It should be noted that, particularly when setting or resetting the state of the active logic node 54 and setting different operation modes,
There is no need to control this active logic node 54 externally, and no such control is actually performed. Furthermore, because each node 54 has the same structure as each other, it is possible to mass produce those nodes using modern IC technology, thereby increasing reliability and increasing cost Can be reduced.
【0082】先に言及したA、B及びCの夫々の「ポー
ト」は、その各々が10本の入力データ・ラインと10
本の出力データ・ラインとを備えている。例えばAポー
トでは、入力ラインはAIで表わされ、出力ラインはA
0で表わされている。各々のポート毎に、上流方向クロ
ック・ライン及び下流方向クロック・ラインと共に、1
本の「コリジョン」ライン(即ち「衝突」ライン)が用
いられている(例えばAポートにはAcol が用いられて
いる)。Aポート及びBポートの夫々のデータ・ライン
はマルチプレクサ60に接続されており、このマルチプ
レクサ60は、互いに競合する2つのワードのうちの優
先する方のワード、或いは(それらの競合ワードが互い
に同一の場合には)その共通ワードを、データ信号C0
として、上流側ポート(Cポート)に接続されているア
ップ・レジスタ62へスイッチングして接続する。これ
と同時に、より高位の階層のノードから送出されてCポ
ートで受取られた下流方向データが、ダウン・レジスタ
64内へシフト・インされ、そしてそこからシフト・ア
ウトされて、Aポート及びBポートの両方に出力として
発生する。Each of the "ports" of A, B and C referred to above has 10 input data lines and 10
Book output data lines. For example, at the A port, the input line is represented by AI and the output line is represented by A
It is represented by 0. For each port, along with the upstream and downstream clock lines, one
The book's "collision" line (or "collision" line) is used (for example, Acol is used for the A port). Each data line of the A port and the B port is connected to a multiplexer 60, and the multiplexer 60 determines which of the two words conflicting with each other is the preferred word, or whose conflicting words are identical to each other. (If) the common word is converted to data signal C0.
To the up register 62 connected to the upstream port (C port). At the same time, downstream data sent from the higher hierarchical node and received at port C is shifted into the down register 64 and shifted out therefrom to form the A and B ports. Occurs as output to both.
【0083】バイトからなるシリアルな上流方向への信
号列のうちの一方はブロックされ得るわけであるが、し
かしながらそれによって上流方向ないし下流方向への余
分な遅延が発生することはなく、そして複数のワード
が、ワード・クロック並びにバイト・クロックの制御の
下に、切れ目のない列を成して、アップ・レジスタ62
及びダウン・レジスタ64を通して進められて行くので
ある。One of the serial upstream signal streams of bytes can be blocked, however, without any additional upstream or downstream delay, and The words form a continuous column under the control of the word clock as well as the byte clock, and
And through the down register 64.
【0084】Aポート及びBポートへ同時に供給された
互いに競合するバイトどうしは、第1及び第2のパリテ
ィ検出器66、67へ送られると共に比較器70へも送
られ、この比較器70は、8個のデータビットと1個の
制御ビットとに基づいて、最小の値のデータ内容が優先
権を得るという方式で優先権の判定を行なう。この優先
権判定のためのプロトコルにおいては、「アイドル」信
号、即ちメッセージが存在していないときの信号は、と
ぎれることなく続く「1」の列とされている。パリティ
・エラーは、例えば過剰な雑音の存在等の典型的な原因
や、その他の、信号伝送ないし回路動作に影響を与える
何らかの要因によって生じ得るものである。しかしなが
ら本実施例のシステムにおいては、パリティ・エラー表
示は、更に別の重要な用途のためにも利用されている。
即ち、あるマイクロプロセッサが動作不能状態へ移行す
ると、その移行がそのたび毎にマーキングされ、このマ
ーキングは、パリティ・ラインを含めた全ての出力ライ
ンが高レベルになる(即ちその値が「1」になる)こと
によって行なわれ、従ってそれによって奇数パリティ・
エラー状態が発生されるようになっている。The mutually conflicting bytes supplied to the A port and the B port at the same time are sent to the first and second parity detectors 66 and 67 and also sent to the comparator 70. The priority is determined based on the eight data bits and one control bit in such a manner that the data content with the smallest value gets the priority. In the priority determination protocol, the "idle" signal, that is, the signal when no message is present, is a continuous "1" sequence. Parity errors can be caused by typical causes, such as the presence of excessive noise, or by any other factors that affect signal transmission or circuit operation. However, in the system of the present embodiment, the parity error indication is also used for another important application.
That is, each time a microprocessor transitions to an inoperative state, the transition is marked each time, and this marking is such that all output lines, including the parity line, are high (i.e., the value is "1"). ) So that the odd parity
An error condition is generated.
【0085】このパリティ・エラー表示は、1つのエラ
ーが発生したならネットワーク内を「マーカ(marke
r)」として伝送され、このマーカによって、システム
は、大域的資源に変化が生じたことを識別すると共にそ
の変化がどのようなものかを判定するためのプロシージ
ャを開始することができるようになっている。This parity error display indicates "marker" in the network if one error has occurred.
r) ", which allows the system to identify a change in the global resource and initiate a procedure to determine what the change is. ing.
【0086】1対のパリティ検出器66、67と比較器
70とは、信号を制御回路72へ供給しており、この制
御回路72は、優先メッセージ・スイッチング回路74
を含み、また、優先権の判定がさなれたならば比較器7
0の出力に応答してマルチプレクサ60を2つの状態の
うちのいずれかの状態にロックするように構成されてお
り、更に、下流方向へのコリジョン信号を発生並びに伝
播するように構成されている。移行パリティ・エラー伝
播回路76の名前のいわれは、この回路が、先に説明し
た同時に全てのラインが「1」とされるパリティ・エラ
ー状態をネットワークの中に強制的に作り出すものだか
らである。リセット回路78はこのノードを初期状態に
復帰させるためのものであり、エンド・オブ・メッセー
ジ(endof message:EOM)検出器80を含んでい
る。The pair of parity detectors 66 and 67 and the comparator 70 supply signals to a control circuit 72. The control circuit 72 includes a priority message switching circuit 74.
And if the priority is determined, the comparator 7
The multiplexer 60 is configured to lock the multiplexer 60 to one of two states in response to the output of 0, and is further configured to generate and propagate a downstream collision signal. The name of the transition parity error propagation circuit 76 is because it forces a parity error condition in the network, as described above, in which all lines are simultaneously "1". The reset circuit 78 is for returning this node to an initial state, and includes an end of message (EOM) detector 80.
【0087】以上に説明した諸機能並びに後に説明する
諸機能が実行されるようにするためには、各々の能動ロ
ジック・ノードにおいてマイクロプロセッサ・チップを
使用してそれらの機能を実行するようにしても良いので
あるが、しかしながら、図15の状態図と以下に記載す
る論理式とに従ってそれらの機能が実行されるようにす
ることによって、更に容易に実行することが可能とな
る。図15の状態図において、状態S0はアイドル状態
を表わすと共に、互いに競合しているメッセージどうし
が同一であるために、一方のポートを他方のポートに優
先させる判定が下されていない状態をも表わしている。
S1状態及びS2状態は夫々、Aポートが優先されてい
る状態及びBポートが優先されている状態である。従っ
て、BIのデータ内容がAIのデータ内容より大きく且
つAIにパリティ・エラーが存在していない場合、また
は、BIにパリティ・エラーが存在している場合(これ
らのAIにパリティ・エラーが存在していないという条
件と、BIにパリティ・エラーが存在しているという条
件とは、夫々、AIPE及びBIPEと表記され、フリ
ップ・フロップの状態によって表わされる)には、Aポ
ートが優先されている。AIとBIとに関して以上と逆
の論理状態(論理条件)は、この装置がS2状態へ移行
すべき状態(条件)として存在するものである。より高
位の階層のノードから、その階層において衝突が発生し
た旨の表示が発せられたならば、その表示は、下流方向
信号の中に入れられてCOLINとして送り返されてく
る。この装置は、それがS0状態、S1状態、及びS2
状態のうちのいずれの状態にあった場合であってもS3
状態へと移行し、そしてこのコリジョン信号を下流方向
へAcol 及びBcol として転送する。S1状態ないしは
S2状態にあるときには、このノードは既に判定を下し
ているため、同様の方式でコリジョン信号が下流方向
へ、より低位の階層の(2つの)ノードへと送出されて
おり、このとき、優先メッセージスイッチング回路74
は、状況に応じてAポート或いはBポートにロックされ
ている。In order for the functions described above, as well as those described below, to be performed, each active logic node uses a microprocessor chip to perform these functions. However, they can be more easily implemented by performing their functions in accordance with the state diagram of FIG. 15 and the logical equations described below. In the state diagram of FIG. 15, the state S0 represents an idle state, and also represents a state in which it is not determined that one port has priority over the other port because messages competing with each other are the same. ing.
The S1 state and the S2 state are a state in which the A port has priority and a state in which the B port has priority, respectively. Therefore, when the data content of the BI is larger than the data content of the AI and there is no parity error in the AI, or when there is a parity error in the BI (there is a parity error in these AIs). The condition that the parity error does not exist and the condition that the parity error exists in the BI are denoted by AIPE and BIPE, respectively, and are represented by the states of the flip-flops. The opposite logical states (logical conditions) for AI and BI exist as states (conditions) at which the device should transition to the S2 state. If a higher level node issues an indication that a collision has occurred at that level, that indication is included in the downstream signal and sent back as COLIN. The device is capable of operating in the S0 state, the S1 state, and the S2 state.
S3 regardless of the state of the state
State and transfer this collision signal downstream as Acol and Bcol. When in the S1 state or the S2 state, since this node has already made a decision, the collision signal is transmitted in the same manner in the downstream direction to the (two) nodes in the lower hierarchy. When the priority message switching circuit 74
Is locked to the A port or the B port depending on the situation.
【0088】リセット回路78はEOM検出器80を含
んでおり、この検出器80を用いて、ノードのS3から
S0へのリセット(図15)が行なわれる。第1のリセ
ットモードは、図16に示すように プライマリ・メッ
セージの中のデータ・フィールドを終結させているエン
ド・オブ・メッセージ(EOM)フィールドを利用する
ものである。1つのグループを成す複数のフリップ・フ
ロップと複数のゲートとを用いて、次式の論理状態が作
り出される。Reset circuit 78 includes an EOM detector 80, which is used to reset the node from S3 to S0 (FIG. 15). The first reset mode uses an end of message (EOM) field that terminates the data field in the primary message as shown in FIG. Using a group of flip-flops and gates, the following logic state is created.
【0089】URINC・URC・URCDLY ここで、URCはアップ・レジスタの中の制御ビットを
表わし、URINCはこのアップ・レジスタへ入力され
る入力信号の中の制御ビットの値を表わし、そしてUR
CDLYはアップ・レジスタ遅延フリップ・フロップ内
のC値(=制御ビットの値)を表わしている。URINC / URC / URCLY where URC represents the control bit in the up register, URINC represents the value of the control bit in the input signal input to the up register, and
CDLY represents the C value (= control bit value) in the up register delay flip-flop.
【0090】図16に示すように、制御ビットの列の中
の、連続する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が検出される。図15に
付記されているように、この正遷移によってS1または
S2からS0への復帰動作がトリガされるのである。As shown in FIG. 16, a bit pair (bit pair) in which a set of two consecutive bits in a sequence of control bits specifies a certain field,
The transition from one field to the next is specified. For example, from a control bit state in which only “1” used at the time of idle continues, “0, 1”
The transition to the bit sequence (= bit pair) of this specifies the start of the field. This "0, 1"
Is used to identify the start of the data field. The subsequent string of "1,0" control bits indicates an internal field or subfield, and the end of message (EOM) is identified by the "0,0" control bit pair. Is done. The state where the bit pair of “0, 0” comes after the string of the bit pair of “1, 0” is a unique state, and can be easily identified. URINC signal,
The URC signal and the URCDLY signal are ANDed together, and each of these signals is delayed from each other by one byte clock. The waveform of the signal resulting from these ANDs is high until the beginning of the message packet, turns low at this start, and while this data (= message packet) continues, The waveform stays at a low level. This waveform returns to a high level two byte clocks after the EOM is generated. EOM is detected by the transition in which the waveforms URINC, URC, and URCDLY turn positive. As shown in FIG. 15, the return operation from S1 or S2 to S0 is triggered by this positive transition.
【0091】より高位の階層のノードがリセットされる
と、それによってCOLIN状態となり、これは衝突状態
が消失したことを表わす。この論理状態は、S3から基
底状態であるS0への復帰動作を開始させる。注意して
頂きたいことは、このCOLIN状態は、エンド・オブ・
メッセージがネットワーク50の階層を次々と「走り抜
けて」いくのにつれて、下方へ、それらの階層へ伝播し
ていくということである。以上のようにして、各々のノ
ードはメッセージの長さの長短にかかわらず自己リセッ
トできるようになっている。更に注意して頂きたいこと
は、ネットワークの初期状態の如何にかかわらず、アイ
ドル信号が供給されたならば全てのノードがS0状態に
リセットされるということである。When a node of a higher hierarchy is reset, it is brought into the COLIN state, which indicates that the collision state has disappeared. This logic state starts the return operation from S3 to the base state S0. Note that this COLIN state is an end of
As messages "run through" the layers of the network 50 one after the other, they propagate down to those layers. As described above, each node can reset itself regardless of the length of the message. It should be further noted that regardless of the initial state of the network, all nodes are reset to the S0 state if an idle signal is provided.
【0092】コリジョン信号は複数のプロセッサ・モジ
ュールにまで戻される。それらのモジュールはこのコリ
ジョン状態情報を記憶し、そしてアイドル・シーケンス
を送信する動作へと復帰し、このアイドル・シーケンス
の送信は競合において勝利を得たプロセッサが送信を続
けている間中行なわれている。プロセッサは、COLIN
からCOLINへの遷移を検出し次第、新たな送信を開始
することができるようにされている。更にこれに加え
て、プロセッサは、Nをネットワーク内の階層の数とす
るとき、2N個のバイト・クロックの時間に亙ってアイ
ドル信号を受信し続けたならば新たな送信を開始するこ
とができるようにされており、それは、このような状況
もまた、前者の状況と同じく、先に行なわれた送信がこ
のネットワーク内に残ってはいないということを表わす
ものだからである。これらの新たな送信を可能にするた
めの方式のうちの後者に依れば、初めてネットワークに
参加するプロセッサが、トラフィックさえ小さければネ
ットワークとの間でメッセージ同期状態に入ることがで
き、そのためこの初参加のプロセッサは、このネットワ
ーク上の他のプロセッサとの間の相互通信を開始する際
して、別のプロセッサからのポーリングを待つ必要がな
い。The collision signal is returned to a plurality of processor modules. The modules store the collision state information and return to transmitting the idle sequence, the transmission of the idle sequence being performed while the processor winning the contention continues to transmit. I have. The processor is COLIN
A new transmission can be started as soon as the transition from to COLIN is detected. Still further, the processor may initiate a new transmission if it continues to receive idle signals for 2N byte clock times, where N is the number of layers in the network. It is made possible because such a situation, like the former situation, also indicates that no previously transmitted transmissions remain in this network. According to the latter of these schemes for enabling new transmissions, a processor joining the network for the first time can enter into a message synchronization state with the network if the traffic is small, so that this initial Participating processors do not have to wait for polls from other processors to initiate intercommunication with other processors on this network.
【0093】パリティ・エラー状態は図15の状態図の
中に記されているが、次の論理式に従って設定されるも
のである。The parity error state is described in the state diagram of FIG. 15, and is set according to the following logical expression.
【0094】PESIG = AIPE・AIPEDLY + BIPE・BIPEDLY このPESIGの論理状態が真であるならば、アップ・
レジスタへの入力信号URINは、(URIN 0…URIN 7、
C、P=1…1、1、1)である。上の論理式を満足す
るために、移行パリティ・エラー伝播回路76は、AI
PE用、即ちA入力のパリティ・エラー用フリップ・フ
ロップと、遅延フリップ・フロップ(AIPEDLY)
とを含んでいる。後者のフリップ・フロップは、AIP
Eの設定状態に従って、それよりバイト・クロック1つ
分遅れて状態を設定される。従ってA入力に関して言え
ば、AIPE用フリップ・フロップがパリティ・エラー
によってセット状態とされたときに、PESIG値がバ
イト・クロック1つ分の間ハイ・レベルとなり、そのた
め、このPESIG信号はパリティ・エラーの最初の表
示がなされたときに1回だけ伝播されるわけである。複
数のデータ・ビット、制御ビット、並びにパリティ・ビ
ットの全てが「1」の値であるときにもこれと同じ状態
が生じるが、それは、大域的資源の状態についての先に
説明した移行が発生したときに生じる状態である。それ
によって全てのラインがハイ・レベルに転じ、全てが
「1」の状態を強制的に作り出されて総数偶数状態(奇
数パリティ状態)が確立され、その結果、先に説明した
状態にAIPEフリップ・フロップとAIPEDLYフ
リップ・フロップとがセットされてパリティ・エラーを
表示するようになる。以上の構成は、Bポートで受取っ
たメッセージ・パケットがパリティ・エラー、或いはス
テータスの変化を表示するための強制的パリティ表示を
含んでいる場合にも、同様の方式で動作する。PESIG = AIPE AIPEDLY + BIPE BIPEDLY If the logic state of this PESIG is true,
The input signal URIN to the register is (URIN 0... URIN 7,
C, P = 1 ... 1, 1, 1). To satisfy the above equation, the transition parity error propagation circuit 76
Parity error flip-flop for PE, ie, A input, and delay flip-flop (AIPEDLY)
And The latter flip flop is AIP
According to the setting state of E, the state is set one byte clock later. Therefore, regarding the A input, when the flip-flop for AIPE is set due to a parity error, the PESIG value becomes high for one byte clock, so that this PESIG signal becomes a parity error. Is propagated only once when the first indication is made. This same condition occurs when all of the data bits, control bits, and parity bits are all “1” values, but the transition described above for the state of the global resource occurs. This is the state that occurs when you do. This forces all lines to go high, creating a state of all "1" s and establishing a total number even state (odd parity state), which results in the AIPE flip-flop to the state described above. The flop and the AIPEDLY flip-flop are set to indicate a parity error. The above arrangement operates in a similar manner when the message packet received at the B port contains a parity error or a forced parity indication to indicate a status change.
【0095】雑音の影響やその他の変動要素に起因して
発生するパリティ・エラーは、通常は、プロセッサの動
作に影響を及ぼすことはなく、その理由は、冗長性を有
する二重のネットワークを用いているからである。監視
(モニタ)や保守のためには、インジケータ・ライト
(=表示灯:不図示)を用いてパリティ・エラーの発生
を表示するようにする。ただし、ステータスの変化を示
す1回のみ伝播するパリティ・エラーについては、それ
によって、その変化の重要性を評価するためのルーチン
が開始される。Parity errors caused by noise effects or other variables usually do not affect the operation of the processor because of the use of redundant networks with redundancy. Because it is. For monitoring or maintenance, the occurrence of a parity error is displayed using an indicator light (= indicator light: not shown). However, for a parity error that propagates only once indicating a status change, it initiates a routine to evaluate the significance of the change.
【0096】図14に示すようにこのノード54に使用
されているクロッキング・システムは、ネットワーク内
に用いられている階層の数にかかわらず、全てのノード
要素におけるクロックとクロックとの間のスキュー(sk
ew)がゼロとなるようにするための、即ちゼロ・スキュ
ー状態を保持するための、独特の手段を提供するもので
ある。クロック回路86は、第1及び第2の排他的OR
ゲート88、89を含んでおり、夫々AとBで示されて
いるそれらの排他的ORゲートの出力は、加算回路92
によって、それらの間に減算(即ち「B−A」の演算)
が行なわれるように結合されており、この加算回路92
の出力は、低域フィルタ94を通された後に、フェーズ
・ロック・ループである発振器(PLO)96から送出
される出力の位相を制御している。第1の排他的ORゲ
ート88への入力は、このPLO96の出力と、隣接す
るより高位の階層のノード要素から絶縁駆動回路97を
介して供給される下流方向クロックとである。このクロ
ックのラインには「ワード・クロック」と記されてお
り、このワード・クロックは、隣接するより高位の階層
から既知の遅延τの後に得られるものであり、そしてこ
の同じクロック信号が、もう1つの絶縁駆動回路98を
介して、隣接するより高い階層のそのノードへ返される
ようになっている。第2の排他的ORゲート89への入
力は、このワード・クロックと、隣接するより低位の階
層からのクロック・フィードバックとから成り、この低
位の階層も同様に、このPLO96から信号を受取って
いる。As shown in FIG. 14, the clocking system used for this node 54 does not depend on the number of layers used in the network. (Sk
ew) provides a unique means for ensuring that ew) is zero, ie, maintaining a zero skew condition. The clock circuit 86 includes a first and a second exclusive OR.
Gates 88 and 89, the outputs of their exclusive-OR gates designated A and B, respectively,
, Subtract between them (ie, "BA" operation)
Is performed so that the addition circuit 92
Controls the phase of the output from an oscillator (PLO) 96, which is a phase locked loop after being passed through a low pass filter 94. The inputs to the first exclusive OR gate 88 are the output of this PLO 96 and the downstream clock supplied via the isolated drive circuit 97 from the adjacent higher level node element. The line of this clock is labeled "word clock", which is obtained after a known delay τ from an adjacent higher hierarchy, and this same clock signal is no longer The signal is returned to an adjacent higher-level node via one insulating drive circuit 98. The input to the second exclusive OR gate 89 consists of the word clock and clock feedback from the adjacent lower hierarchy, which also receives the signal from the PLO 96. .
【0097】上記のワード・クロック・ラインは、第3
の排他的ORゲート100の2つの入力へ接続されてお
り、それら両方の入力は、直接的に接続されているもの
と、τc 遅延線101を介して接続されているものとで
ある。これによって、ワード・クロックの2倍の周波数
をもち、このワード・クロックに対してタイミングの合
った、バイト・クロック信号を得ている。The above word clock line is connected to the third
Are connected to two inputs of an exclusive-OR gate 100, both of which are directly connected and those connected via a τc delay line 101. As a result, a byte clock signal having a frequency twice as high as that of the word clock and being in timing with the word clock is obtained.
【0098】以上のクロック回路86の作用は、図17
のタイミング・ダイアグラムを参照すればより良く理解
できよう。クロック・アウト信号(クロック出力信号)
は、PLO96の出力である。このクロッキング・シス
テムの最大の目的は、ネットワーク内の全てのノードに
関するクロック出力信号どうしの間にゼロ・タイム・ス
キュー状態を保持することにあるのであるから、当然の
ことながら、それらのクロック出力信号どうしはその公
称周波数もまた互いに同一でなければならばい。ノード
間の伝送ラインによる遅延τは、略々一定の値になるよ
うにするが、この遅延の値それ自体は長い時間に設定す
ることも可能である。ここに開示している方法を採用す
るならば、ネットワーク並びにノードのバイト・クロッ
ク速度を実機システムにおいて採用されている速度(公
称120ns)とした場合に、28フィート(8.53
m)もの長さにすることが可能である。当業者には容易
に理解されるように、可能最大個数のプロセッサ・モジ
ュールが目いっぱいに実装されいるのではないネットワ
ークには、更に階層を付加することによって、この28
フィートの整数倍の長さを容易に得ることができる。そ
の場合、それに対応して待ち時間、即ちそのネットワー
クを通して行なわれる伝送の伝送時間は増大する。The operation of the clock circuit 86 is described in FIG.
This can be better understood by referring to the timing diagram. Clock out signal (clock output signal)
Is the output of PLO 96. Of course, the primary purpose of this clocking system is to maintain zero time skew between the clock output signals for all nodes in the network, so of course The signals need not have the same nominal frequency as each other. The delay τ due to the transmission line between the nodes is set to a substantially constant value, but the value of the delay itself can be set to a long time. If the method disclosed herein is adopted, 28 feet (8.53) when the byte clock speed of the network and the node is set to the speed adopted in the actual system (120 ns nominal).
m). As will be readily appreciated by those skilled in the art, networks that are not heavily populated with the maximum possible number of processor modules can be implemented by adding additional layers to the network.
Lengths that are integral multiples of feet can be easily obtained. In that case, the waiting time, ie the transmission time of the transmission made through the network, is correspondingly increased.
【0099】図17中のクロック・アウト信号のすぐ下
の波形によって示されているように、隣接するより高位
の階層から得られるワード・クロックはクロック・アウ
ト信号と同じような波形であるが、ただしτだけ遅れて
いる。このワード・クロックが、全てのノードに共通す
る根本的タイミング基準を成すのであるが、そのような
ことが可能であるのは、個々のクロック・アウト信号の
前縁をその回路の内部で制御することができ、そしてそ
れらの前縁をワード・クロックに先行させることによっ
て、全てのノードが同期した状態に保持されるようにす
ることができるからである。波形A及び波形Bを参照す
ると分るように、第1のORゲート88が発生するパル
スAは、ワード・クロックの前縁の位置で終了してお
り、一方、第2のORゲート89が発生するパルスB
は、その前縁がワード・クロックの前縁と一致してい
る。このBパルスの後縁は、隣接するより低位の階層の
モジュールからのフィードバック・パルスの開始の位置
に定められ、このフィードバック・パルスはτだけ遅延
しているため、Bパルスはその持続時間が一定となって
いる。クロック回路86は、パルスAの持続時間をパル
スBの持続時間と同一に保持するように作用するが、そ
のように作用する理由は、PLO96の位相を進めて同
期状態が確立されるようにするにつれて、加算回路92
の出力信号(減算「B−A」を行なった信号)がゼロへ
近付いて行くからである。実際には、破線で示されてい
るように好適な位置より先行していることも遅れている
こともあるA信号の前縁に対して調節を加えて、このA
信号の前縁がワード・クロックの前縁より時間τだけ先
行する位置にくるようにする。全てのノードにおいて、
クロック・アウト信号の前縁がこの好適公称位置に位置
するようになれば、ワード・クロックどうしの間にゼロ
・スキュー状態が存在することになる。従ってネットワ
ークに接続されている夫々のプロセッサは、あるプロセ
ッサから別のプロセッサまでの経路の全長に関する制約
から解放されているが、それは、遅延が累積することが
無いということと、伝播時間に差が生じないということ
とに因るものである。As shown by the waveform immediately below the clock out signal in FIG. 17, the word clock obtained from the adjacent higher hierarchy has a similar waveform to the clock out signal, However, it is delayed by τ. This word clock forms a fundamental timing reference common to all nodes, but it is possible that the leading edge of each clock out signal is controlled within the circuit. Since their leading edge can be preceded by a word clock, so that all nodes can be kept in sync. As can be seen with reference to waveforms A and B, pulse A generated by first OR gate 88 terminates at the leading edge of the word clock, while second OR gate 89 generates. Pulse B
Has its leading edge coincident with the leading edge of the word clock. The trailing edge of this B pulse is located at the beginning of the feedback pulse from the adjacent lower layer module, and since this feedback pulse is delayed by τ, the B pulse has a constant duration. It has become. Clock circuit 86 acts to keep the duration of pulse A the same as the duration of pulse B, but it does so because it advances the phase of PLO 96 to establish synchronization. With the addition circuit 92
(The signal obtained by performing the subtraction “BA”) approaches zero. In practice, adjustments are made to this A signal by adjusting the leading edge of the A signal, which may be ahead or behind the preferred position, as shown by the dashed line.
The leading edge of the signal is positioned ahead of the leading edge of the word clock by a time τ. At all nodes,
Once the leading edge of the clock out signal is at this preferred nominal position, a zero skew condition exists between word clocks. Thus, each processor connected to the network is free of the constraints on the total length of the path from one processor to another, but without delay accumulation and the difference in propagation time. It does not occur.
【0100】二倍周波数のバイト・クロックを発生させ
るために、遅延線101によって、遅延時間τc だけ遅
れたワード・クロックが複製されており、この遅延線1
01もゲート100へ信号を供給している。従って、図
17中のバイト・クロックと記されている波形から分る
ように、ワード・クロックの前縁と後縁の両方の位置
に、持続時間τc を有するバイト・クロック・パルスが
発生される。このパルスの発生は、各々のワード・クロ
ックのインタバルの間に2回づつ生じており、しかも、
全てノードにおいて、ワード・クロックと同期して生じ
ている。以上の説明においては、ノードとノードとの間
の伝送ラインによって発生される遅延は階層から階層へ
の伝送方向がどちら方向であっても殆ど同一であり、そ
のため、事実上、このシステム内の全てのワード・クロ
ック並びにバイト・クロックが、互いに安定な位相関係
に保たれるということを、当然の前提としている。従っ
て局所的に(=個々のノードの内部で)発生されるバイ
ト・クロックは、各々のノードにおいて、メッセージの
2バイト・ワード(=2個のバイトから成るワード)
の、その個々のバイトのためのクロッキング機能を提供
している。In order to generate a double frequency byte clock, a word clock delayed by a delay time τc is duplicated by the delay line 101.
01 also supplies a signal to the gate 100. Thus, as can be seen from the waveform labeled byte clock in FIG. 17, byte clock pulses having a duration .tau.c are generated at both the leading and trailing edges of the word clock. . The occurrence of this pulse occurs twice during each word clock interval, and
All occur at the node in synchronization with the word clock. In the above description, the delays caused by the transmission lines between nodes are almost the same in either direction of transmission from layer to layer, so that virtually all of the It is a natural premise that the word clock and the byte clock are maintained in a stable phase relationship with each other. The byte clock generated locally (= inside the individual nodes) is therefore the two-byte word (= word of two bytes) of the message at each node.
It offers a clocking function for its individual bytes.
【0101】以上の能動ロジック・ノードは、同時に送
出されたメッセージ・パケットどうしの間の競合をその
データ内容に基づいて決着させるようにしている場合に
は常に、潜在的な利点を有するものである。これに対
し、例えば、1981年2月17日付で発行された米国
特許第4251879号公報「デジタル通信ネットワー
クのための速度非依存型アービタ・スイッチ(Speed In
dependent Arbiter Switch for Digital Communication
Nbiworks)」に示されているものをはじめとする、大
多数の公知にシステムは、時間的に最初に受信された信
号がどれであるのかを判定することを目指しており、外
部に設けた処理回路または制御回路を使用するものとな
っている。The active logic node described above has potential advantages whenever it is desired to resolve conflicts between simultaneously transmitted message packets based on their data content. . In contrast, for example, U.S. Pat. No. 4,251,879 issued Feb. 17, 1981, entitled "Speed Independent Arbiter Switch for Digital Communication Networks (Speed In).
dependent Arbiter Switch for Digital Communication
Nbiworks), most known systems aim to determine which signal is received first in time, and use externally provided processing. It uses a circuit or a control circuit.
【0102】(プロセッサ・モジュール) 図1の、システム全体の概略図の中に図示されている個
々のプロセッサは、夫々、インターフェイス・プロセッ
サ(IFP)14及び16と、アクセス・モジュール・
プロセッサ(AMP)18〜23の具体例として示され
ており、また、これらのプロセッサは、大まかに複数の
主要要素に再区分してある。これらのプロセッサ・モジ
ュール(IFP及びAMP)の構成についての更に詳細
な具体例は、図1の機能的な大まかな再区分との間に対
応関係を有するものとなるが、ただしそればかりでな
く、かなり多くの更なる再区分をも示すものとなる。本
明細書で使用するところの「プロセッサ・モジュール」
なる用語は、図18に図示されているアセンブリの全体
を指すものであり、このアセンブリは、以下に説明する
任意選択の要素を備えることによって、IFP或いはA
MPのいずれかとして機能することができるようにな
る。また、「マイクロプロセッサ・システム」という用
語は、マイクロプロセッサ105を内蔵したシステム1
03を指すものであり、ここでマイクロプロセッサ10
5は、例えば、インテル8086型(Intel 8086)16
ビット・マイクロプロセッサ等である。このマイクロプ
ロセッサ105のアドレス・パス並びにデータ・パス
は、マイクロプロセッサ・システム103の内部におい
て、例えばメインRAM107等の一般的な周辺システ
ム、並びに周辺機器コントローラ109に接続されてい
る。この周辺機器コントローラ109は、プロセッサ・
モジュールがAMPでありしかも周辺機器がディスク・
ドライブ111である場合に用い得るものの一例として
示すものである。これに対して、このプロセッサ・モジ
ュールをIFPとして働かせる場合には、破線で描いた
長方形の中に示されているように、このコントローラ即
ちインターフェイスを、例えばチャネル・インターフェ
イスに取り替えれば良い。そのような具体例のIFP
は、ホスト・システムのチャネル即ちバスとの間の通信
を行なうものとなる。このマイクロプロセッサ・システ
ム103には従来の一般的なコントローラやインターフ
ェイスを用いることができるので、それらのコントロー
ラやインターフェイスについては更に詳細に説明する必
要はない。(Processor Module) The individual processors shown in the schematic diagram of the entire system in FIG. 1 are interface processors (IFPs) 14 and 16 and an access module module, respectively.
Processors (AMPs) 18-23 are shown as specific examples, and these processors are broadly subdivided into a number of major components. A more detailed example of the construction of these processor modules (IFP and AMP) would have a correspondence with the functional broad subdivision of FIG. 1, but not only It also indicates a considerable number of further subdivisions. "Processor module" as used herein
The term refers to the entirety of the assembly illustrated in FIG. 18, which assembly includes IFP or A
It can function as any of the MPs. The term “microprocessor system” is used for a system 1 having a built-in microprocessor 105.
03, where the microprocessor 10
5 is, for example, an Intel 8086 type (Intel 8086) 16
A bit microprocessor. The address path and the data path of the microprocessor 105 are connected to a general peripheral system such as a main RAM 107 and a peripheral device controller 109 inside the microprocessor system 103. The peripheral device controller 109 includes a processor
The module is AMP and the peripheral device is a disk
This is shown as an example of what can be used when the drive 111 is used. On the other hand, if the processor module is to act as an IFP, the controller or interface may be replaced by a channel interface, for example, as shown in the dashed rectangle. IFP in such an embodiment
Communicates with the host system channel or bus. Since conventional general controllers and interfaces can be used for the microprocessor system 103, it is not necessary to describe those controllers and interfaces in further detail.
【0103】1つのマイクロプロセッサ毎に1台のディ
スク・ドライブを用いることが費用と性能の両方の面に
おいて有利であるということを示し得ることに注目すべ
きである。そのような方式が有利であるということは、
データベースに関しては一般的に言えることであるが、
ただし、ときには、1つのマイクロプロセッサが複数の
二次記憶装置にアクセスできるようにマイクロプロセッ
サを構成することが有益なこともある。概略図において
は、図を簡明にするために、その他の通常用いられてい
るサブシステムが組み込まれている点については図示省
略してある。この省略されたサブシステムは例えば割込
みコントローラ等であり、割込みコントローラは、半導
体を製造しているメーカーが自社製のシステムに組み合
わせて使用するために供給しているものである。また、
本発明が提供し得る冗長性と信頼性とを最大限に達成す
ることのできる、プロセッサ・モジュールへ電源を供給
するために適切な手段を、講じることの重要性について
も当業者には理解されよう。It should be noted that the use of one disk drive per microprocessor can indicate a cost and performance advantage. The advantage of such a scheme is that
As is generally the case with databases,
However, sometimes it is beneficial to configure a microprocessor so that one microprocessor can access multiple secondary storage devices. In the schematic diagram, other commonly used subsystems are not shown for simplicity. The omitted subsystem is, for example, an interrupt controller or the like, and the interrupt controller is supplied by a manufacturer of a semiconductor for use in combination with its own system. Also,
Those skilled in the art will also appreciate the importance of taking appropriate measures to supply power to the processor modules that will maximize the redundancy and reliability that the present invention can provide. Like.
【0104】マイクロプロセッサ・システム103にお
ける任意選択要素として示されている周辺機器コントロ
ーラ109とチャネル・インターフェイスとは、図1中
のIFPインターフェイスとディスク・コントローラと
に相当するものである。これに対して図1の高速RAM
26は、実際には、第1のH. S. RAM26' と第2
のH. S. RAM26" とから成っており、それらの各
々は、タイム・マルチプレクシング(時間多重化)によ
って、機能の上からは事実上の3−ポート・デバイスと
されており、それらのポートのうちの1つ(図中に
「C」と記されているポート)を介してマイクロプロセ
ッサのバス・システムと接続されている。H. S. RA
M26' 、26" の各々は、夫々に第1ないし第2のネ
ットワーク・インターフェイス120、120' と協働
し、それによって、夫々が第1及び第2のネットワーク
50a及び50b(これらのネットワークは図18には
示されていない)と、入力(受信)ポートA及び出力
(送信)ポートBを介して通信を行なうようになってい
る。このように互いに冗長性を有する2つのシステムと
なっているため、第2のネットワーク・インターフェイ
ス120' と第2のH. S. RAM26" を詳細に説明
するだけで良い。ネットワーク・インターフェイス12
0、120' については図23及び図24に関連して更
に詳細に示され説明されているが、それらは、大きく再
区分するならば以下の4つの主要部分に分けることがで
きる。The peripheral controller 109 and the channel interface, which are shown as optional elements in the microprocessor system 103, correspond to the IFP interface and the disk controller in FIG. In contrast, the high-speed RAM shown in FIG.
26 is actually the first HS RAM 26 'and the second HS RAM 26'.
RAMs 26 ", each of which has been functionally rendered a 3-port device by time multiplexing, and their ports Of the microprocessor (port indicated by "C" in the figure). HS RA
M26 ', 26 ", respectively, cooperate with the first and second network interfaces 120, 120', respectively, such that the first and second networks 50a and 50b, respectively (these networks are shown in FIG. 18), and communicate via an input (receive) port A and an output (transmit) port B. Thus, two systems having redundancy with each other are provided. Therefore, only the second network interface 120 'and the second HS RAM 26 "need be described in detail. Network interface 12
Although 0, 120 'are shown and described in more detail in connection with FIGS. 23 and 24, they can be divided into the following four main parts if they are largely subdivided.
【0105】第2のネットワーク50bからの10本の
入力ラインを、インターフェイス・データ・バス並びに
インターフェイス・アドレス・バスを介してH. S. R
AM26" のAポートへ接続している、入力レジスタ・
アレイ/コントロール回路122。The ten input lines from the second network 50b are connected to the HSR via the interface data bus and the interface address bus.
Input register connected to the A port of AM26 "
Array / control circuit 122;
【0106】第2のネットワーク50bへの出力ライン
を、インターフェイス・データ・バス並びにインターフ
ェイス・アドレス・バスと、第2のH. S. RAM2
6" のBポートとへ接続している、出力レジスタ・アレ
イ/コントロール回路124。The output line to the second network 50b is connected to the interface data bus and the interface address bus, and to the second HS RAM 2
An output register array / control circuit 124 connected to the 6 "B port.
【0107】インターフェイス・アドレス・バス並びに
インターフェイス・データ・バスと、H. S. RAM2
6" のAポート並びにBポートとへ接続された、マイク
ロプロセッサ・バス・インターフェイス/コントロール
回路126。Interface address bus, interface data bus, HS RAM2
A microprocessor bus interface / control circuit 126 connected to the 6 "A and B ports.
【0108】ネットワークからワード・クロックを受取
り、そして、インターフェイス120' を制御するため
の互いに同期し且つ適切な位相関係にある複数のクロッ
クを発生する、クロック発生回路128。A clock generation circuit 128 which receives the word clock from the network and generates a plurality of clocks synchronized with each other and in an appropriate phase relationship for controlling the interface 120 '.
【0109】第2のネットワーク・インターフェイス1
20' とH. S. RAM26" とは、マイクロプロセッ
サ・システム103と協働することによって、高速で動
作するネットワークとそれと比較してより低速で動作す
るプロセッサとの間のデータ転送をコーディネートして
おり、また更に、それらの異なったシステム(=ネット
ワーク・システムとプロセッサ・システム)の間で交換
されるメッセージの、待ち行列を作る機能も果たしてい
る。マイクロプロセッサ・バス・インターフェイス/コ
ントロール回路126は、マイクロプロセッサ・システ
ムと協働して(読出し/書込み機能:R/W機能)を実
行するためのものであると言うことができ、このマイク
ロプロセッサ・システムは(少なくともそれがインテル
8086型である場合には)H. S. RAM26" に直
接データを書込む能力と、このH. S. RAM26" か
らデータを受取る能力とを備えている。Second network interface 1
20 'and HS RAM 26 "cooperate with microprocessor system 103 to coordinate data transfer between a high speed network and a lower speed processor. And also serves to queue messages exchanged between the different systems (= network system and processor system) .The microprocessor bus interface / control circuit 126 It can be said to be for performing a (read / write function: R / W function) in cooperation with a microprocessor system, which microprocessor system (at least if it is of the Intel 8086 type) ) Ability to write data directly to HS RAM 26 " , And a capability to receive data from the H. S. RAM 26 ".
【0110】IFPの構造とAMPの構造とは、その作
用に関しては互いに類似したものであるが、しかしなが
ら、H. S. RAM26" の内部の入力メッセージ格納
領域の大きさと出力メッセージ格納領域の大きさとに関
しては、IFPとAMPとの間に相当の差異が存在する
ことがある。リレーショナル・データベース・システム
においては、IFPは、ネットワークを絶えず利用して
ホスト・コンピュータの要求を満たせるようにするため
に、H. S. RAM26" の内部に、高速ネットワーク
から新たなメッセージを受取るための、大きな入力メッ
セージ格納空間を備えている。AMPについてはこれと
逆のことが言え、それは、高速ネットワークへ送出され
る処理済メセージ・パケットのために、より多くの格納
空間が使用できるようになっていなければならないから
である。H. S. RAM26" はマイクロプロセッサ・
システム103の中のメインRAM107と協働しての
動作も行ない、このメインRAM107は各々のネット
ワークのためのメッセージ・バッファ・セクションを備
えている。The structure of the IFP and the structure of the AMP are similar to each other with respect to their operation. However, the size of the input message storage area and the size of the output message storage area inside the HS RAM 26 "are different. There may be considerable differences between IFPs and AMPs in relational databases.In a relational database system, IFPs need to be able to constantly use the network to meet the needs of host computers. Inside the HS RAM 26 "is a large input message storage space for receiving new messages from the high speed network. The opposite is true for AMP because more storage space must be made available for processed message packets that are sent out to the high-speed network. HS RAM 26 "is a microprocessor
It also operates in cooperation with a main RAM 107 in the system 103, which has a message buffer section for each network.
【0111】マイクロプロセッサ・システム103のた
めの、メインRAM107内部のシステム・アドレス空
間の割当ての態様は図19に示されており、それについ
て簡単に説明しておく。一般的な方式に従って、ランダ
ム・アクセスのための記憶容量が増加された場合に使用
される拡張用の空間を残すようにしてシステム・ランダ
ム・アクセス機能に割当てられたアドレスと、I/Oア
ドレス空間と、ROM及びPROM(EPROMを含
む)の機能のために割当てられたアドレス空間とを有す
るものとなっている。更に、システム・アドレス空間の
うちの幾つかの部分が、夫々、第1及び第2の高速RA
M26' 、26" から送られてくるメッセージ・パケッ
トと、それらの高速RAMへ送り出されるメッセージ・
パケットのために割当てられている。これによってシス
テムの動作に非常な融通性が得られており、それは、マ
イクロプロセッサ105がH. S. RAM26" をアド
レスすることが可能であるようにしても、メインRAM
107の働きによって、ソフトウェアとハードウェアと
の相互依存性に殆ど拘束されないようにできるからであ
る。The manner of allocating the system address space inside the main RAM 107 for the microprocessor system 103 is shown in FIG. 19, which will be briefly described. In accordance with a general scheme, an address assigned to the system random access function to leave space for expansion to be used when storage capacity for random access is increased, and an I / O address space And an address space allocated for ROM and PROM (including EPROM) functions. Further, some portions of the system address space may be divided into first and second high speed RAs, respectively.
M26 ', 26 "and the message packets sent to the high-speed RAM.
Assigned for packets. This provides great flexibility in the operation of the system, even though the microprocessor 105 can address the HS RAM 26 ",
This is because the function of 107 makes it possible to hardly be restricted by the interdependency between software and hardware.
【0112】再び図18に関して説明するが、既に述べ
たように、2つの方向からアクセスすることのできる
H. S. RAM26" は、マルチプロセッサ・モードの
制御、分散型の更新、並びにメッセージ・パケットの流
れの管理における、中心的機能を実行するように構成さ
れている。これらの目的や更に別の目的を達成するため
に、H. S. RAM26" は複数の異なった内部セクタ
に区分されている。図18に示されている様々なセクタ
の相対的な配置の態様は、このシステムの中の個々のプ
ロセッサ・モジュールの全てにおいて採用されているも
のであり、また、それらのセクタの境界を指定している
具体的なアドレスは、実際のあるシステムにおいて用い
られているアドレスを示すものである。ここで注意して
頂きたいことは、これらのメモリ・セクタの大きさとそ
れらの相対的な配置とは、具体的なシステムの状況次第
で大きく変り得るものだということである。図示例では
16ビットのメモリ・ワードが採用されている。選択マ
ップ及び応答ディレクトリは、初期設定の間に一度だけ
書込めば良いような種類の専用ルックアップ・テーブル
であり、一方、トランザクション・ナンバ・セクション
の方は、動的改定自在な(=動作している間に何度も内
容を変更することができるようにした)ルックアップ・
テーブルを提供している。Referring again to FIG. 18, as previously described, the HS RAM 26 ", which can be accessed from two directions, provides multiprocessor mode control, distributed updates, and message packets. In order to achieve these and other objectives, the HS RAM 26 "is divided into a number of different internal sectors to accomplish these and other objectives. I have. The aspect of the relative arrangement of the various sectors shown in FIG. 18 is that employed in all of the individual processor modules in the system, and specifies the boundaries of those sectors. The specific address indicates an address used in an actual system. It should be noted that the size of these memory sectors and their relative placement can vary greatly depending on the specific system situation. In the illustrated example, a 16-bit memory word is employed. The selection map and response directory are dedicated look-up tables of the kind that need to be written only once during initialization, while the transaction number section is dynamically revisable (= You can change the contents many times while you are
Offering a table.
【0113】選択マップのメモリ・セクションはロケー
ション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に含まれているマ
ップ選択ビットが、どのマップを用いるべきかを決定す
るようになっている。The memory section of the selection map starts at location 0, but in this example there are basically four different maps used inside this memory section, Are used in an interrelated manner. The destination selection word (DSW) included in the message packet is H.264.
S. RAM 26 "in conjunction with a dedicated selection map. This destination selection word consists of a total of 16 bits, of which 12 bits.
It is intended to include the map address occupying the position and the map selection data occupying the other four bits. The first 1024 16-bit memory words of the HS RAM each contain four map address values. A single memory access to the HS RAM in accordance with the address value specified in the DSW provides map bits for all four maps, while containing the map bits for the DSW. The selected map selection bit determines which map to use.
【0114】図26は、以上のマップ・セクションの概
念的な構造を示しており、同図においては、各々のマッ
プがあたかも物理的に分離した4096×1ビットのR
AMから成るものであるかのように図示されている。実
施する際の便宜を考慮に入れれば、図18に示されてい
るように、全てのマップ・データがH. S. RAMの単
一の部分に格納されるようにするのが便利である。DS
W管理セクション190(図23及び図24)が、H.
S. RAMの1個の16ビット・ワードから得られる図
26の4つのマップの、その各々からの4個のビットに
対するマルチプレクシング動作を制御している。当業者
には理解されるように、この方式の利点は、H. S. R
AMのその他の部分をアクセスするのに用いられるのと
同じ手段を用いて、プロセッサがマップを初期設定でき
るという点にある。FIG. 26 shows the conceptual structure of the map section described above. In FIG. 26, each map is physically separated from each other by 4096 × 1 bit R bits.
It is shown as if it consists of AM. For convenience in implementation, it is convenient to have all map data stored in a single portion of the HS RAM, as shown in FIG. DS
The W management section 190 (FIGS. 23 and 24)
S. controls the multiplexing operation on the four bits from each of the four maps of FIG. 26 obtained from one 16-bit word of the RAM. As will be appreciated by those skilled in the art, the advantage of this scheme is that the H.S.R.
The processor can initialize the map using the same means used to access the other parts of the AM.
【0115】更には、3つの異なったクラス(分類)の
転送先選択ワードが使用され、またそれに対応して、選
択マップの格納ロケーションが、ハッシュ選択部分、ク
ラス選択部分、及び転送先プロセッサ識別情報(destin
ation processor identification:DPID)選択部分
に分割されている。このDPIDは、当該プロセッサ1
05が、そのメッセージ・パケットの転送先として意図
された特定のプロセッサであるか否かを明示するもので
ある。これに対して、クラス選択部分は、当該プロセッ
サが、そのメッセージ・パケットを受取るべき特定の処
理クラスに属する複数のプロセッサのうちの1つである
か否か、即ちそのプロセッサ・グループのメンバーであ
るか否かを明示するものである。ハッシュ値は、リレー
ショナル・データベース・システムの内部にデータベー
スが分配される際の分配方法に応じて格納されており、
この分配方法は、そのシステムに採用されている、特定
のリレーションのためのアルゴリズム、並びに分散格納
方式に従ったものとなる。この具体例におけるハッシュ
値は、プロセッサの指定をするに際しては、そのプロセ
ッサがそのデータに対して一次的な責任とバックアップ
用の責任とのいずれか一方をもつものとして指定するこ
とができるようになっている。従って、以上の複数の選
択マップによって、H. S. RAM26" を直接アドレ
スして、プロセッサが転送先であるか否かを判断する、
という方法を取れるようになっている。この機能は、優
先権を付与されたメッセージを全てのネットワーク・イ
ンターフェイス120へブロードカストするという方法
と互いに相い補う、相補的な機能であり、そして割込み
を行なうことなくマイクロプロセッサ105のステータ
スの局所的なアクセスができるようにしている機能でも
ある。Furthermore, three different classes (classifications) of destination selection words are used, and correspondingly, the storage location of the selection map is a hash selection part, a class selection part, and a destination processor identification information. (Destin
ation processor identification (DPID). This DPID is stored in the processor 1
05 specifies whether the message processor is a specific processor to which the message packet is to be transferred. In contrast, the class selection portion is whether the processor is one of a plurality of processors belonging to a particular processing class to receive the message packet, that is, is a member of the processor group. This is to specify whether or not. The hash value is stored according to the distribution method when the database is distributed inside the relational database system,
This distribution method follows the algorithm for a specific relation and the distributed storage method adopted in the system. When specifying a processor, the hash value in this specific example can be specified as having one of a primary responsibility and a backup responsibility for the data. ing. Therefore, the HS RAM 26 "is directly addressed by the plurality of selection maps to determine whether or not the processor is the transfer destination.
You can take the method. This feature is complementary to, and complementary to, the method of broadcasting prioritized messages to all network interfaces 120, and localizing the status of microprocessor 105 without interruption. It is also a function that allows for dynamic access.
【0116】H. S. RAM26" の中の、他の部分か
らは独立した1つのセクションが、大域的に分散されて
いる諸活動のチェック及び制御をするための中枢的な手
段として機能している。既に述べたように、また図13
に示されているように、ネットワーク50bへ送出さ
れ、またこのネットワーク50bから受取る種々の処理
の夫々に対しては、トランザクション・ナンバ(TN)
が割当てられている。メッセージの中にTNが内包され
ているのは、各々のプロセッサ・システム103が自ら
受容したサブタスクを互いに独立して実行する際の大域
的なトランザクション・アイデンティティ(トランザク
ション識別情報)とするためである。H.S. RAM2
6" 内の、複数の使用可能なトランザクション・ナンバ
のアドレスを格納するための専用のブロックが、それら
のサブタスクを実行する際にマイクロプロセッサ・シス
テム103によって局所的に制御及び更新されるステー
タス・エントリ(=ステータスについての記述項)を収
容している。TNは、相互通信機能が実行される際に、
局所的にもまた大域的にも、様々な異なった利用法で用
いられる。トランザクション・ナンバは、サブタスクを
識別するため、データを呼出すため、コマンドを与える
ため、メッセージの流れを制御するため、並びに大域的
な処理のダイナミクスの種類を特定するために用いられ
る。トランザクション・ナンバは、大域的通信の実行中
に割当てたり、放棄したり、変更したりすることができ
る。これらの特徴については以下の記載において更に詳
細に説明する。One section of the HS RAM 26 ", independent of the other parts, serves as a central means for checking and controlling globally distributed activities. As already mentioned, FIG.
The transaction number (TN) for each of the various processes sent to and received from the network 50b, as shown in FIG.
Is assigned. The reason why the TN is included in the message is to provide a global transaction identity (transaction identification information) when each processor system 103 executes subtasks received by itself independently of each other. HS RAM2
6 ", a dedicated block for storing the addresses of a plurality of available transaction numbers is a status entry that is controlled and updated locally by the microprocessor system 103 in performing its subtasks. (= Entry for status), the TN uses the
It is used in a variety of different applications, both locally and globally. Transaction numbers are used to identify subtasks, invoke data, provide commands, control message flow, and identify the type of global processing dynamics. Transaction numbers can be assigned, abandoned, or changed during execution of global communications. These features are described in further detail below.
【0117】TNの特徴のうち、最も複雑ではあるがお
そらく最も効果的な特徴と言えるのは、ソート・ネット
ワーク(ソーティング機能を有するネットワーク)と協
働することによって、所与の制御処理に関するローカル
・プロセッサ(=個々のプロセッサ・モジュール)のス
テータスの分散型更新を可能にするという、その能力で
ある。各々の制御処理(即ちタスクないしマルチプロセ
ッサの活動)はそれ自身のTNをもっている。Among the TN features, the most complex, but probably the most effective, is the cooperation of a sort network (a network with a sorting function) to provide a local network for a given control operation. Its ability to enable distributed updates of the status of processors (= individual processor modules). Each control process (ie, task or multiprocessor activity) has its own TN.
【0118】レディネス状態(プロセッサがどのような
動作をする準備が整っているかの状態)の値が、H.
S. RAM26" のトランザクション・ナンバ・セクシ
ョンに保持されるようになっており、このレディネス状
態の値は、マイクロプロセッサ・システム103の制御
の下に局所的に(=個々のプロセッサ・モジュールの内
部で)変更される。マイクロプロセッサ・システム10
3は、図20の応答ディレクトリの中の適当なエントリ
(例えばSACK/Busy)(アドレスは「050D
(16進数)」)を初期設定することができ、そしてそ
れによって複製されたとおりのイメージを転送すること
によって、このSACK/Busyのステータスの、
H. S. RAM26" への入力する。あるTNアドレス
(=トランザクション・ナンバに対応する格納位置)に
入力されているエントリは、H. S.RAM26" のA
ポート及びBポートを介して、そしてインターフェイス
120' を経由して、ネットワーク50bからアクセス
することが可能となっている。問合せは、ステータス・
リクエスト(ステータス要求)のコマンド・コード(図
21参照)とTNとを含む「ステータス・リクエスト」
メッセージを用いて行われる。インターフェイス12
0' は、指定されたTNのTNアドレスに格納されてい
る内容を用いて、然るべきフォーマットで書かれた応答
メッセージを格納している応答ディレクトリを参照す
る。所与のTNに関する大域的ステータス問合せを第2
のネットワーク・インターフェイス120' が受取った
ならば、それによって、ハードウェア的な制御しか受け
ていない直接的な応答が引き出される。前置通信は不要
であり、また、マイクロプロセッサ・システム103が
割込みを受けたり影響を及ぼされたりすることもない。
しかしながら、「ロック(lock)」表示がインターフェ
イス120' へ転送されることによってステータスの設
定が行なわれた場合には、マイクロプロセッサ・システ
ム103は割込みを禁止し、またインターフェイス12
0' が、アドレス「0501(16進数)」から得られ
るロック・ワードを、後刻その排除が行なわれるまで通
信し続ける。レディネス状態のワード・フォーマット
は、図22の「ビズィ(busy:動作実行中の状態)」か
ら「イニシャル(initial :初期状態)」までの7種類
の状態で示され、この図22は、実際のあるシステムに
おいて採用されている有用な一具体例を図示している。
レディネス状態をより多くの種類に分類するような変更
例やより少ない種類に分類する変更例も可能であるが、
同図に示されている7種類の状態を用いることによっ
て、多くの用途に適する広範な制御を行なうことができ
る。H. S. RAM26" の中の個々のTNの状態レベ
ル(=個々のTNアドレスに格納されているエントリが
表わしているレディネス状態のレベル)を継続的に更新
し、それによって、サブタスクの利用可能性やサブタス
クの処理の進捗状況が反映されるようにしておくこと
は、マイクロプロセッサ・システムの責任とされてい
る。このような更新は、図22に示されたフォーマット
を用いて、H. S. RAM26" 内のTNアドレスに書
込みを行なうことによって、容易に実行することができ
る。The value of the readiness state (the state in which the processor is ready to operate) is H.
The readiness state value is stored locally (= in the individual processor module under the control of the microprocessor system 103) in the transaction number section of the S.RAM 26 ". Microprocessor system 10
3 is an appropriate entry (for example, SACK / Busy) in the response directory of FIG.
(Hex))), and by transferring the image as replicated, the status of this SACK / Busy
To the HS RAM 26 ". The entry entered at a certain TN address (= storage location corresponding to the transaction number) is A in the HS RAM 26".
It can be accessed from the network 50b via the port and the B port, and via the interface 120 '. The query is
"Status request" including command code (see FIG. 21) of request (status request) and TN
This is done using messages. Interface 12
0 'refers to a response directory storing a response message written in an appropriate format using the content stored at the TN address of the designated TN. Global status query for a given TN
Receive a direct response, which is only under hardware control. No pre-communications are required, and the microprocessor system 103 is not interrupted or affected.
However, if status is set by transmitting a "lock" indication to interface 120 ', microprocessor system 103 disables the interrupt and
0 'will continue to communicate the lock word from address "0501 (hex)" until its exclusion occurs later. The word format in the readiness state is shown in seven states from “busy (state during operation execution)” to “initial (initial state)” in FIG. 22, and FIG. 1 illustrates one useful embodiment employed in certain systems.
It is possible to change the readiness status into more or less types,
By using the seven types of states shown in the figure, a wide range of control suitable for many uses can be performed. H.S. RAM 26 "continuously updates the state level of each TN (= readiness state level represented by the entry stored at each TN address), thereby making subtasks available. It is the responsibility of the microprocessor system to reflect the nature and progress of the processing of the subtasks, and such updates are made using the format shown in FIG. This can be easily performed by writing to the TN address in the RAM 26 ".
【0119】図20において、各々のステータス応答
(状態応答)は、「05」から「0D」(16進数)ま
でのものについては、いずれもその先頭の部分がステー
タス肯定応答コマンド・コード(status acknowledgmen
t command code:SACK)で始まっている。ネットワ
ークへ送出されるそれらのSACK応答は、実際には、
図20のコマンド・コードと、図22のワード・フォー
マットの数字部分と、発信元プロセッサID(OPI
D)とから構成されており、これについては図21に示
すとおりである。従って、それらのSACK応答は、図
21に示された総合的優先順位規約の内部において、ひ
とまとまりの優先順位サブグループを形成している。O
PIDが優先順位規約に関して意味を持っているわけ
は、たとえば、複数のプロセッサがある1つのTNに関
して働いているが、ただしそれらのいずれもが「ビズ
ィ」状態にあるという場合には、ブロードカストされる
最優先メッセージの判定がこのOPIDに基づいて行な
われることになるからである。転送並びにシステムのコ
ーディネーションも、このデータ(OPID)に基づい
て行うことができる。In FIG. 20, each status response (status response) from "05" to "0D" (hexadecimal) has a status acknowledgment command code (status acknowledgmen) at the beginning.
t command code: SACK). Those SACK responses sent out to the network are actually
The command code of FIG. 20, the numeric portion of the word format of FIG. 22, and the source processor ID (OPI
D), which is as shown in FIG. Therefore, those SACK responses form a group of priority subgroups within the overall priority convention shown in FIG. O
PIDs have meaning with respect to priority conventions, for example, if multiple processors are working on a TN but none of them is in a "busy" state, then broadcasted This is because the determination of the highest priority message is made based on this OPID. The transfer and the coordination of the system can be performed based on this data (OPID).
【0120】SACKメッセージ(=SACK応答)に
対して優先順位規約が定められていることと、複数のマ
イクロプロセッサ・システム103から同時に応答が送
出されるようにしたことと、ネットワーク50bにおい
て動的に(=伝送を行ないながら)優先権の判定が行な
われるようにしたこととによって、従来のシステムと比
較して、所与のタスクに関する大域的資源のステータス
の判定が、大幅に改善された方法で行なわれるようにな
っている。それによって得られる応答は、一義性を持
ち、規定にない状態を表わすことは決してなく、更に
は、ソフトウェアを必要とせずローカル・プロセッサ
(=個々のプロセッサ・モジュール)に時間を費消させ
ることもない。従って、例えば、タスクの実行を妨げる
頻繁なステータス要求によってデッドロックが生じてし
まうようなことは決してない。様々なステータス・レベ
ルにおいて、マルチプロセッサの多くの任意選択動作を
利用することができる。ローカル・プロセッサどうしが
互いに独立して動作を続けることができ、しかも単一の
問合せによって、1つの、大域的な、優先権を与えられ
た応答が引き出されるということ は、かつてなかった
ことである。[0120] The priority rules are defined for the SACK message (= SACK response), the responses are sent from a plurality of microprocessor systems 103 at the same time, and the network 50b dynamically By allowing the priority determination to be made (while making the transmission), the determination of the status of the global resource for a given task in a greatly improved manner compared to conventional systems. Is being done. The resulting response is unambiguous and never represents an unspecified state, nor does it require any software and does not waste time on the local processor (= individual processor module). . Thus, for example, deadlocks are never caused by frequent status requests that prevent execution of a task. At various status levels, many optional operations of the multiprocessor are available. It was never before possible that local processors could continue to operate independently of each other and that a single query would elicit a single, global, prioritized response. .
【0121】図22に示されている一連の状態につい
て、ここで幾らか詳しく説明しておけば、理解に役立つ
であろう。「ビズィ」状態と「ウェイティング(waitin
g:待ち)」状態とは、割当てられた、即ち委任されたサ
ブタスクに関して、次第により完成に近い段階へとこれ
から進んで行くことになる状態であり、「ウェイティン
グ」状態の方は、更なる通信ないしイベントを必要とし
ている状態を表わしている。これらの「ビズィ」並びに
「ウェイティング」の状態は、TNのステータスがより
高いレベルへと上昇して行き、ついにはそのTNに関す
るメッセージ・パケットを送信ないし受信できるステー
タス・レベルにまで到達するという、レベル上昇の例を
示すものである。The series of states shown in FIG. 22 will be described in some detail here to help understanding. "Bizy" state and "waitin"
g: wait) state is a state in which the assigned, or delegated, subtask is going to progress to a stage closer to completion, and the "waiting" state is for further communication. Or a state requiring an event. These "visi" and "waiting" states are levels in which the status of a TN rises to a higher level, and eventually reaches a status level at which message packets for that TN can be transmitted or received. It shows an example of a rise.
【0122】一方、メッセージ・パケットを送信ないし
受信する際には、以上とはまた別のTNの特徴である、
メッセージ制御におけるTNの能力が発揮されることに
なる。マイクロプロセッサ・システム103が送信すべ
きメッセージをもつようになると、ステータス表示は
「送信準備完了(send ready)」に変る。マイクロプロ
セッサ・システム103は、ステータス表示を更新する
ことに加えて、図22のワード・フォーマットを用いて
「ネクスト・メッセージ・ベクタ」の値をH. S. RA
M26" へ入力する。この入力されたエントリは、該当
する出力メッセージをH. S. RAM26" のどのロケ
ーションから取り出せば良いかを明示するものである。
このベクタは、ある特定のTNに関係する複数の出力メ
ッセージを1本につなげる(=チェーン(chain )す
る)ために、ネットワーク・インターフェイス120'
において内部的に使用されるものである。On the other hand, when transmitting or receiving a message packet, another characteristic of the TN is as follows.
The TN's ability in message control will be demonstrated. When the microprocessor system 103 has a message to send, the status indication changes to "send ready". In addition to updating the status display, the microprocessor system 103 uses the word format of FIG. 22 to change the value of the "Next Message Vector" to the HS RA.
M26 ". The input entry specifies from which location in the HS RAM 26" the corresponding output message should be taken.
This vector is used to connect (= chain) a plurality of output messages related to a specific TN to a network interface 120 ′.
Is used internally.
【0123】以上の機能に関連した機能が、「受信準備
完了(receive ready )」状態の間に実行される。この
「受信準備完了」状態においては、TNの格納ロケーシ
ョン(=TNアドレス)に、マイクロプロセッサ・シス
テム103から得られる入力メッセージ・カウント値が
保持されるようになっており、この入力メッセージ・カ
ウント値は、所与のTNに関連して受信することのでき
るメッセージの個数に関係した値である。このカウント
値は、入力メッセージが次々と転送されて来るのに合せ
てデクリメントされ、ついにはゼロになることもある。
ゼロになったならばそれ以上のメッセージを受取ること
はできず、オーバラン(overrun)状態の表示がなされ
ることになる。以上のようにして、TNを利用してネッ
トワーク50bとマイクロプロセッサ・システム103
との間の伝送の速度を調節することができるようなって
いる。The functions associated with the above functions are performed during the "receive ready" state. In the "ready for reception" state, the input message count value obtained from the microprocessor system 103 is held at the storage location (= TN address) of the TN. Is a value related to the number of messages that can be received for a given TN. This count value is decremented as input messages are successively transferred, and may eventually become zero.
If it reaches zero, no more messages can be received and an overrun condition will be indicated. As described above, using the TN, the network 50b and the microprocessor system 103
The speed of transmission between the two can be adjusted.
【0124】局所的な(=個々のプロセッサについて
の)局面について説明すると、個々のプロセッサにおい
ては、処理が実行されている間、TNは送信メッセージ
及び受信メッセージの中に、システム全体で通用する一
定不変の基準として保持されている。「TN0」状態、
即ちディフォルト状態は、メッセージをノン・マージ・
モードで用いるべきであるという事実を明示するため
の、局所的コマンドとしての機能をも果たすものであ
る。To explain the local (= individual processor) aspects, in each individual processor, during the execution of the processing, the TN is included in the transmitted and received messages in a system-wide constant. It is held as a constant standard. "TN0" state,
That is, the default state is that the message is not merged.
It also serves as a local command to indicate the fact that mode should be used.
【0125】更に大域的な観点から説明すると、「TN
0」と、「TN>0」である種々の値とを、互いに異な
る性質のものとして区別することによって、TNを利用
している複数のコマンド機能のうちの1つのコマンド機
能が規定されている。即ち、そのようにTNを区別する
ことによって、「マージ/ノン・マージ」のいずれかを
表わす特性記述(キャラクタライゼーション)が各々の
メッセージ・パケットに付随することになり、それによ
って、複数のメッセージに対して優先権の判定とソート
とを行なうという、有力なシステムの動作方式が得られ
ているのである。同様に、「アサインド(Assigned:割
当てがなされている状態)」、「アンアサインド(Unas
signed:割当てがなされていない状態)」、「非関与プ
ロセッサ(Non-Participant )」、並びに「イニシャ
ル」というステータスを用いて、大域的相互通信と制御
の機能が遂行されるようになっている。「アンアサイン
ド」状態は、それ以前にプロセッサがTNを放棄した場
合の状態であり、従ってそれは、TNを再活性化させる
新たなプライマリ・メッセージを受取る必要がある状態
である。もし状態表示が「アサインド」であるべきとき
にプロセッサが「アンアサインド」を表示しているなら
ば、これはTNが適切に入力されなかったということを
示しているのであるから、訂正動作が実行されなければ
ならない。もしTNが「アンアサインド」であるべきと
きに「アサインド」となっているならば、これは、不完
全な転送が行なわれているか、或いは新たな1つのTN
を求めて2つのプロセッサの間で競合が行なわれている
ことの表われである場合がある。これらの「アサイン
ド」と「アンアサインド」とは、いずれもレディネス状
態としては扱われず、その理由は、それらの表示がなさ
れている段階では、プロセッサは、まだそのTNに関す
る作業を始めていない状態にあるからである。From a global perspective, "TN
By distinguishing between “0” and various values of “TN> 0” as having different properties, one command function among a plurality of command functions using TN is defined. . That is, by distinguishing the TN in this manner, a characterization representing either “merge / non-merge” is attached to each message packet, whereby a plurality of messages are added. An effective system operation method of determining priority and performing sorting is obtained. Similarly, “Assigned (assigned state)”, “Unassigned (Unas
Global intercommunication and control functions are performed using the statuses "signed: unassigned", "Non-Participant", and "Initial". An "unassigned" state is a state where the processor has previously abandoned the TN, and thus needs to receive a new primary message to re-activate the TN. If the processor displays "Unassigned" when the status display should be "Assigned", then this indicates that the TN has not been properly entered and a corrective action is taken. There must be. If the TN is "assigned" when it should be "unassigned", this means that either an incomplete transfer has occurred or a new TN
May be an indication that there is a conflict between the two processors. Neither of these “assigned” and “unassigned” are treated as a readiness state, because at the time they are being displayed, the processor has not yet started working on the TN. It is.
【0126】更には、「イニシャル」状態と「非関与プ
ロセッサ」状態も、大域的資源の関係で重要である。オ
ン・ラインに入ろうとしているプロセッサ、即ち、この
システムへの加入手続きを行なわなければならないプロ
セッサは「イニシャル」状態にあリ、この態は、このプ
ロセッサをオン・ラインへ入れるためには管理上のステ
ップを踏む必要があることを表わしている。所与のタス
クに関して「非関与プロセッサ」状態にあるプロセッサ
は、局所的にはいかなる処理も実行する必要はないが、
しかしながらこのTNを追跡監視することにより、この
TNが不注意により不適切に使用されることのないよう
にする必要がある。Further, the "initial" state and the "non-participating processor" state are also important in relation to global resources. A processor that is about to go online, that is, has to undergo a subscription to this system, is in an "initial" state, which means that the processor must be administratively in order to be online. Indicates that you need to take steps. Processors that are in the "non-participating processor" state for a given task need not perform any processing locally, but
However, it is necessary to keep track of this TN so that it is not inadvertently used inappropriately.
【0127】再び図20に関して説明すると、H. S.
RAM26" の専用ディレクトリ即ち参照セクション
は、以上に説明したタイプ以外にも、ハードウェア的に
応答を発生させるために使用される、優先順位を付与さ
れた、複数のその他のタイプのメッセージも含んでい
る。NA(not assigned:「割当てを受けていない」の
意)というエントリは、将来の使用に備えて準備され、
使用可能な状態で保持されている。3種類の異なったタ
イプのNAK応答(オーバラン、TNエラー、ロック
(Locked)の各NAK応答)は、そのデータ内容が最も
小さな値とされており、従って最も高い優先順位にある
が、それは、それらのNAK応答がエラー状態を示すも
のだからである。複数のSACK応答の後にACK応
答、そしてNAP応答(非該当プロセッサ応答)が続
き、それらは優先順位が低下して行く順序で並べられて
いる。この具体例の構成では、2つの応答用コマンド・
コードが機能を割当てられておらず(即ちNAとされて
おり)、それらは将来の使用に備えて使用可能な状態と
されている。以上に説明したディレクトリは、ソフウェ
アによって初期設定することができしかもハードウェア
によって利用されるため、広範な種々の応答メッセージ
・テキストのうちからどのようなものでも、迅速に且つ
柔軟性をもって発生させることができる。Referring again to FIG. 20, H.S.
The dedicated directory or reference section of the RAM 26 ", in addition to the types described above, also includes a number of other types of prioritized messages used to generate responses in hardware. The entry NA (not assigned) is prepared for future use,
It is kept in a usable state. The three different types of NAK responses (overrun, TN error, and Locked NAK responses) have the lowest data content and therefore have the highest priority, but they have the highest priority. NAK response indicates an error condition. A plurality of SACK responses are followed by an ACK response and a NAP response (non-applicable processor response), which are arranged in order of decreasing priority. In the configuration of this specific example, two response commands
The codes have not been assigned a function (ie, NA) and they are ready for future use. Because the directories described above can be initialized by software and used by hardware, any of a wide variety of response message texts can be generated quickly and flexibly. Can be.
【0128】以上のディレクトリの中の、その他の部分
からは独立している1つの独立部分を使用して、TO
P、GET、PUT、並びにBOTTOMの夫々のアド
レス、即ち、入力メッセージのための循環バッファの機
能に関するポインタと、それに完了出力メッセージのポ
インタとが、格納されている。こらのポインタは、夫
々、入力メッセージの管理と出力メッセージの管理とに
あてられているH. S. RAM26" の夫々の専用セク
タと協働して機能を果たすようになっている。入力メッ
セージのためには循環バッファ方式が用いられており、
この場合、H. S.RAM26" のディレクトリ・セク
ションに格納されている「TOP」が、入力メッセージ
のための上限アドレス位置を指定する可変アドレスとな
っている。同じディレクトリ・セクションに格納されて
いるPUTアドレスは、次に受信するメッセージを回路
がどこに格納すべきかというアドレス位置を指定するも
のである。GETアドレスは、ソフトウェアがバッファ
の空白化を行なっているアドレス位置をハードウェアで
認識できるようにするために、ソフトウェアによって設
定され且つ更新され続けるものである。Using one independent part in the above directory that is independent of the other parts, the TO
The respective addresses of P, GET, PUT, and BOTTOM are stored, that is, a pointer regarding the function of the circular buffer for the input message and a pointer of the completion output message. These pointers function in cooperation with the respective dedicated sectors of the HS RAM 26 "which are respectively used for managing the input message and for managing the output message. To do this, a circular buffer method is used,
In this case, "TOP" stored in the directory section of the HS RAM 26 "is a variable address that specifies the upper limit address position for the input message. The PUT address stored in the same directory section specifies the address location where the circuit should store the next message to be received. The GET address is set and updated by the software so that the software can recognize the address position where the buffer is blanked by the hardware.
【0129】入力メッセージ・バッファの管理は、PU
Tをバッファの下限(bottom)のアドレスにセットし、
そしてGETアドレスがTOPに等しくなっている状態
から開始するという方法で、行なわれる。ソフトウェア
によって定められている動作上のルールは、GETがP
UTと等しい値にセットされてはならないということで
あり、もしそのようにセットされたならば、不定状態
(アンビギュアス・コンディション)が生じてしまうこ
とになる。入力メッセージがH. S. RAM26" の中
の入力メッセージ・バッファへ入力されると、メッセー
ジそれ自体の中に含まれているメッセージ長さ値が、次
に入力して来るメッセージの始点を決定し、続いて、デ
ィレクトリに格納されているPUTアドレスに対し、次
に入力して来るメッセージを受入れるべきバッファ内の
格納ロケーションを表示させるための変更が加えられ
る。以上のようにしたため、マイクロプロセッサ・シス
テム103は、自らの作業能力が許すときに、入力メッ
セージの取り出しを行なうことができるようになってい
る。The input message buffer is managed by PU
Set T to the bottom address of the buffer,
Then, it is performed in such a manner that it starts from a state where the GET address is equal to TOP. The operational rules set by the software are as follows:
That is, it must not be set to a value equal to UT, and if it is set, an indeterminate condition will occur. When an incoming message is entered into the incoming message buffer in HS RAM 26 ", the message length value contained in the message itself determines the starting point of the next incoming message. Then, a change is made to the PUT address stored in the directory to indicate the storage location in the buffer to receive the next incoming message. The input unit 103 can take out an input message when its own work ability permits.
【0130】H. S. RAM26" 内の出力メッセージ
格納空間に格納されているデータは、他の部分からは独
立した循環バッファの内部に保持されている出力メッセ
ージ完了ベクトル、並びにH. S. RAM26" 内のネ
クスト・メッセージ・ベクタと共に用いられる。個々の
メッセージの編集(アセンブル)並びに格納は、任意の
ロケーションにおいて行なうことができ、また、互いに
関連する複数のメッセージについては、それらをネット
ワーク上へ送出するためのつなぎ合わせ(チェーン)を
行なうことができるようになっている。H. S. RAM
26" のディレクトリ・セクションでは、TOP、BO
TTOM、PUT、並びにGETの夫々のアドレスが既
に説明したようにして入力され且つ更新されており、そ
れによって、出力メッセージ完了バッファ内のロケーシ
ョンについての動的な現在指標が維持されている。メッ
セージ完了ベクタは、出力メッセージ格納空間内に格納
されているメッセージであってしかも既に適切に転送が
なされたことが受信した応答によって示されているメッ
セージを指し示すための、指標となるアドレスを構成し
ている。後に説明するように、このシステムは、マイク
ロプロセッサ・システム103が出力メッセージの入力
を容易に行なえるようにしている一方で、このマイクロ
プロセッサ・システム103が複雑な連結ベクタ・シー
ケンスを整然とした方式で扱えるようにしており、それ
によって、出力メッセージ格納空間が効率的に使用さ
れ、メッセージ・チェーンの転送ができるようにしてい
る。The data stored in the output message storage space in the HS RAM 26 "includes the output message completion vector held in a circular buffer independent of the other parts, and the HS RAM 26. Used with the next message vector in ". Editing (assembling) and storing of individual messages can be performed at any location, and a plurality of messages related to each other can be connected (chained) to send them over a network. I can do it. HS RAM
26 "directory section, TOP, BO
The respective addresses of the TTOM, PUT, and GET have been entered and updated as previously described, thereby maintaining a dynamic current indication of the location in the output message completion buffer. The message completion vector constitutes an index address for pointing to a message stored in the output message storage space and indicated by the received response that the transfer has been properly performed. ing. As will be explained, this system facilitates the input of output messages by the microprocessor system 103, while the microprocessor system 103 organizes complex concatenated vector sequences in an orderly manner. In order to make efficient use of the output message storage space and to enable the transfer of message chains.
【0131】応答に関連して先に説明した図21のプロ
トコルは、応答に続けてプライマリ・メッセージについ
ても規定されている。複数種類の応答メッセージが互い
に連続して並べられており、16進数のコマンド・コー
ドが昇順に図示されている。プライマリ・メッセージの
グループの中では、マージ停止メッセージ(このメッセ
ージは、基本的制御メッセージであるノン・マージ制御
メッセージでもある)が、そのデータ内容が最小値とな
っており、従って最高の優先順位にある。このメッセー
ジは、ネットワーク内並びにプロセッサ・モジュールに
おけるマージ・モードを終了させる、制御通信を構成し
ている。The protocol of FIG. 21 described above with reference to the response also defines the primary message following the response. A plurality of types of response messages are arranged consecutively with each other, and hexadecimal command codes are shown in ascending order. Within the group of primary messages, the merge stop message (which is also the basic control message, the non-merge control message) has the lowest data content and therefore the highest priority. is there. This message constitutes a control communication that terminates the merge mode in the network as well as in the processor module.
【0132】極めて多くの異なったタイプのプライマリ
・データ・メッセージを昇順の優先順位を定めて利用す
ることができ、またそれらには、応用上の要求事項とシ
ステム的な要求事項とに基づいて、優先順位に関する分
類を加えることができる。先に述べたように、他のメッ
セージの後に続けられる継続メッセージに対しては、そ
れに関する先行メッセージ・パケットからの連続性を維
持できるようにするために、高い優先順位をもたせるよ
うにすることができる。A very large number of different types of primary data messages can be used with ascending priorities, and based on application requirements and system requirements. Classifications for priorities can be added. As mentioned earlier, a continuation message that follows another message may be given a higher priority to maintain continuity from the preceding message packet. it can.
【0133】4種類のプライマリ・メッセージから成
る、図21中の最下段のグループは、優先順位の高い方
から低い方へ向かって、ステータス応答を得ることを必
要とする唯一のタイプのステータス・メッセージである
ステータス・リクエスト・メッセージ、「TN放棄」と
「TN割当て」とを要求する夫々の制御メッセージ、そ
して、更に優先順位の低い「マージ開始」制御メッセー
ジを含んでいる。The lowermost group in FIG. 21 consisting of four types of primary messages is the only type of status message that requires a status response from higher priority to lower priority. , A control message requesting "TN abandonment" and "TN allocation", and a lower priority "merge start" control message.
【0134】以上の構成は、後に説明する更に詳細な具
体例から明らかなように、多くの用途に用い得る動作を
可能とするものである。プロセッサ・モジュールは、現
在トランザクション・ナンバ(present transaction nu
mber:PTN)に基づいて動作するようになっており、
この場合、そのPTNが外部的に、ネットワークからの
命令によって指定されたものであろうとも、また、連続
した動作を実行している間に内部的に発生されたもので
あろうとも、同じことである。マージ動作が実行されて
いるときには、プロセッサ・モジュールは、大域的レフ
ァレンス、即ちトランザクション・アイデンティティ
(=トランザクション識別するための情報)を利用して
その動作を実行しているのであり、このトランザクショ
ン・アイデンティティはTNによって定められている。
マージ動作の開 始、停止、及び再開は、簡単なメッセ
ージの変更だけを利用して行なわれる。サブタスクが、
メッセージをマージすることを必要としていない場合
や、他のメッセージとの間に特に関係をもっていないメ
ッセージ・パケットが発生されたような場合には、それ
らのメッセージは「TN0」に対して出力するための待
ち行列(キュー)を成すように並べられ、そして、現在
トランザクション・ナンバによって定められた、基本状
態即ちディフォルト状態(0である)が真状態を維持し
ている間に転送が行なわれる。この「TN0」状態は、
マージ・モードが用いられていないときには、メッセー
ジを転送のための待ち行列を成すように並べることを可
能にしている。As described above, as will be apparent from the more detailed specific examples described later, the above configuration enables operations that can be used for many purposes. The processor module has a current transaction number (present transaction nu
mber: PTN)
In this case, the same is true whether the PTN is specified externally, by command from the network, or generated internally while performing a continuous operation. It is. When a merge operation is being performed, the processor module is performing the operation using a global reference, i.e., a transaction identity (= information to identify the transaction), and this transaction identity is It is determined by TN.
Starting, stopping, and resuming the merge operation is done using only simple message changes. The subtask is
If it is not necessary to merge the messages, or if a message packet having no particular relation to other messages is generated, those messages are output to "TN0". The transfer is performed while the base state, or default state (which is zero), currently determined by the transaction number, remains true, forming a queue. This "TN0" state
When the merge mode is not used, it allows messages to be queued for transfer.
【0135】(ネットワーク・インターフェイス・シス
テム) これより図23及び図24に関して説明するが、同図
は、本発明のシステムに用いるのに適したインターフェ
イス回路の一具体例を更に詳細に示すものである。この
「ネットワーク・インターフェイス・システム」の章の
説明には本発明を理解する上では必ずしも必要ではない
多数の詳細な特徴が含まれているが、それらの特徴は、
実機のシステムには組み込まれているものであり、それ
ゆえ本発明の要旨に対する種々の具体例の位置付けを明
確にするために説明中に含めることにした。具体的なゲ
ーティングのための構成並びに詳細構造であって、本発
明の主題ではなく、しかも周知の手段に関するものにつ
いては、多種多様な代替構成を採用することも可能であ
るので、説明を省略ないし簡略化することにした。図2
3及び図24は、図18に示されている第2のネットワ
ーク・インターフェイス120' 並びにH.S.RAM
26" の詳細図である。2つのネットワークのための夫
々のインターフェイス120、120' は互いに同様の
方式で機能しており、それゆえ、一方のみについて説明
すれば十分である。(Network Interface System) Reference is now made to FIGS. 23 and 24, which show a more specific example of an interface circuit suitable for use in the system of the present invention. . Although the description in this "Network Interface System" section includes a number of detailed features that are not necessary for an understanding of the present invention, those features are:
It is built into the actual system and has therefore been included in the description to clarify the positioning of various embodiments with respect to the subject matter of the present invention. Descriptions of specific configurations and detailed structures for gating, which are not the subject of the present invention and relate to well-known means, may be omitted because various alternative configurations can be adopted. Or decided to simplify it. FIG.
3 and 24 illustrate the second network interface 120 'shown in FIG. S. RAM
26 ". The respective interfaces 120, 120 'for the two networks function in a similar manner to each other, and therefore only one need be described.
【0136】図23及び図24において、同図のインタ
ーフェイスに接続されている方の能動ロジック・ネット
ワーク50からの入力は、マルチプレクサ142と公知
のパリティ・チェック回路144とを介して、ネットワ
ーク・メッセージ管理回路140へ供給されている。マ
ルチプレクサ142は更にマイクロプロセッサ・システ
ムのデータ・バスに接続されており、これによって、こ
のデータ・バスを介してメッセージ管理回路140へア
クセスすることが可能となっている。この特徴により、
マイクロプロセッサ・システムが、インターフェイスを
ステップ・バイ・ステップ・テスト・モードで動作させ
ることが可能となっており、そして、このインターフェ
イスがネットワークとあたかもオン・ライン状態で接続
されているかのように、データの転送が行なわれるよう
になっている。ネットワークからの入力は受信用ネット
ワーク・データ・レジスタ146へ供給されるが、その
際、直接このレジスタ146の第1のセクションへ入力
されるバイト・データと、受信用バイト・バッファ14
8を介してこのレジスタ146へ入力されるバイト・デ
ータとがあり、受信用バイト・バッファ148は、第1
のセクションへのバイト・データの入力が行なわれた後
に、自らのバイト・データをこのレジスタ146の別の
セクションへ入力する。これによって、受信した各々の
ワードを構成している2つのバイトの両方が、受信用ネ
ットワーク・データ・レジスタ146に入力され、そし
てそこに、利用可能な状態で保持されることになる。23 and 24, the input from the active logic network 50 connected to the interface shown in FIG. 23 is transmitted via a multiplexer 142 and a known parity check circuit 144 to a network message management. The signal is supplied to a circuit 140. Multiplexer 142 is further connected to the data bus of the microprocessor system, which allows access to message management circuit 140 via this data bus. With this feature,
The microprocessor system is capable of operating the interface in a step-by-step test mode, and the data is transmitted as if the interface were connected to the network online. Is transferred. The input from the network is supplied to the receiving network data register 146, where the byte data input directly to the first section of this register 146 and the receiving byte buffer 14
8, the byte data input to the register 146 is received, and the receiving byte buffer 148 stores the first byte data.
After inputting byte data to this section, its own byte data is input to another section of this register 146. This will cause both of the two bytes that make up each received word to be input to the receiving network data register 146 and kept there available.
【0137】これから伝送される出力メッセージは、送
信用ネットワーク・データ・レジスタ150へ入力さ
れ、また、通常のパリティ発生回路132の内部におい
てパリティ・ビットが付加される。メッセージは、ネッ
トワーク・メッセージ管理回路140からそれに接続さ
れているネットワークへ送出されるか、或いは、(テス
ト・モードが用いられる場合には)マイクロプロセッサ
・システム・データ・バスへ送出される。このインター
フェイスの内部におけるメッセージ管理を行う目的で、
ランダム・アクセス・メモリ168に格納されている送
信メッセージのフォーマットは、メッセージ・データと
共に識別用データをも含むものとされている。図34
(a)から分るように、コマンド、タグ、キー、並びに
DSWのいずれをも、これから伝送されるプライマリ・
データに組合わせておくことができる。The output message to be transmitted is input to the transmission network data register 150, and a parity bit is added inside the ordinary parity generation circuit 132. The message is sent from the network message management circuit 140 to the network connected to it, or (if the test mode is used) to the microprocessor system data bus. For the purpose of managing messages inside this interface,
The format of the transmission message stored in the random access memory 168 includes not only message data but also identification data. FIG.
As can be seen from (a), all of the commands, tags, keys, and DSWs are transmitted in the primary
Can be combined with data.
【0138】図23及び図24に示されている構成は、
本質的に図18に示されている構成と同一であるが、た
だし図18では、インターフェイス・データ・バス並び
にインターフェイス・アドレス・バスが、H.S.RA
M26" の入力ポートAと入力ポートBとに別々に接続
され、また、マイクロプロセッサ・システム103のア
ドレス・バス並びにデータ・バスが、独立したCポート
に接続されているように図示されている。しかしながら
実際には、図23及び図24から分るように、このよう
な互いに独立した2方向からのアクセスは、このインタ
ーフェイスの内部において行なわれるH.S.RAM2
6" における入力アドレス機能及び出力アドレス機能の
時分割マルチプレクシングによって達成されている。マ
イクロプロセッサのデータ・バスとアドレス・バスと
は、夫々ゲート145と149とを介してインターフェ
イスの夫々のバスに接続されており、それによってマイ
クロプロセッサが非同期的に、それ自身の内部クロック
に基づいて動作できるようになっている。The configuration shown in FIG. 23 and FIG.
18 is essentially the same as that shown in FIG. 18, except that the interface data bus and the interface address bus S. RA
M26 "is separately connected to input port A and input port B, and the address bus and data bus of microprocessor system 103 are shown connected to independent C ports. However, in practice, as can be seen from FIGS. 23 and 24, such an access from two independent directions is performed by the HS RAM 2 which is performed inside this interface.
6 "is accomplished by time division multiplexing of the input and output address functions. The microprocessor's data bus and address bus are connected to the respective buses of the interface via gates 145 and 149, respectively. That allows the microprocessor to operate asynchronously based on its own internal clock.
【0139】採用されているタイミング体系は、クロッ
ク・パルスと、位相制御波形と、位相細分波形とに基づ
いたものとなっており、この位相細分波形は、インター
フェイス・クロック回路156(図23及び図24)に
よって発生され、また図25に示すタイミング関係をも
つものとなっている(図25についても後に説明す
る)。インターフェイス・クロック回路156は最も近
くのノードからネットワーク・ワード・クロックを受取
っており、またフェイズ・ロック・クロック・ソース1
57は、図14に関連して先に説明した如きゼロ・タイ
ム・スキューを維持するための手段を含んでいる。24
0nsのネットワーク内の公称ネットワーク・ワード・
クロック速度が、インターフェイス・クロック回路15
6の内部において時間的に細分され、これが行なわれる
のは、フェイズ・ロックされた状態に保持されている倍
周器(詳細には示さない)が、持続時間が40nsの基
準周期を定める高速クロック(図25にPLCLKとし
て示されている)を提供しているからである。基本的な
ワード周期を定めているのは、全周期が240nsで半
サイクルごとに反転する、図中にCLKSRAと記され
ている周期信号である。このCLKSRAと同一の周波
数と持続時間とをもつ信号が他に2つ、PLCLKに基
づいて分周器158によって発生されており、これらの
信号は夫々がCLKSRAからPLCLKの1サイクル
分及び2サイクル分だけ遅延した時刻に発生されてお
り、また、夫々がCLKSRB及びCLKSRCという
名称を与えられている。The adopted timing system is based on a clock pulse, a phase control waveform, and a phase subdivided waveform, and the phase subdivided waveform is used in the interface clock circuit 156 (FIGS. 23 and 23). 24) and has the timing relationship shown in FIG. 25 (FIG. 25 will also be described later). Interface clock circuit 156 is receiving the network word clock from the nearest node and has a phase locked clock source 1
57 includes means for maintaining zero time skew as described above in connection with FIG. 24
Nominal network word in 0 ns network
The clock speed is set to the interface clock circuit 15
6, which is subdivided in time by a frequency multiplier (not shown in detail) held in phase locked state by a high-speed clock defining a reference period of 40 ns duration (Shown as PLCLK in FIG. 25). The basic word period is determined by a periodic signal denoted by CLKSRA in the figure, which has a full period of 240 ns and is inverted every half cycle. Two other signals having the same frequency and duration as CLKSRA are generated by the frequency divider 158 based on PLCLK, and these signals are respectively generated for one cycle and two cycles of PLCLK from CLKSRA. , And are given the names CLKSRB and CLKSRC, respectively.
【0140】以上の諸々の信号に基づいて、制御ロジッ
ク159が、「IO GATE」、「RECV GAT
E」、並びに「SEND GATE」と称されるタイミ
ング波形(以下、ゲート信号ともいう)を作り出してお
り、これらのタイミング波形は、ワード周期の互いに連
続する3等分されたインタバルの夫々を表示するもので
ある。これらのインタバルには、「IOフェイズ」、
「受信フェイズ」、「送信フェイズ」という該当する名
称がつけられている。上記ゲート信号によって定められ
たこれらのフェイズは、その各々が更に、「IO CL
K」信号、「RECV CLK」信号、並びに「SEN
D CLK」信号によって、2つの等分された半インタ
バルへと細分されており、これらの細分信号は、各々の
フェイズの後半部分を定めている。バイト・クロッキン
グ機能は、「BYTE CTRL」信号と「BYTE
CLK」信号とによって管理されている。On the basis of the various signals described above, the control logic 159 determines “IO GATE”, “RECV GAT”.
E "and" SEND GATE "(hereinafter also referred to as a gate signal), and these timing waveforms indicate each of three successive intervals of a word period that are successively divided into three. Things. These intervals include the “IO Phase”,
Applicable names such as “reception phase” and “transmission phase” are given. Each of these phases, defined by the gate signal, is further described as "IO CL
K ”signal,“ RECV CLK ”signal, and“ SEN
The D CLK "signal has subdivided it into two equally halved half-intervals, which define the second half of each phase. The byte clocking function uses the "BYTE CTRL" signal and the "BYTE CTRL" signal.
CLK ”signal.
【0141】以上のIOフェイズ、RECVフェイズ
(受信フェイズ)、及びSENDフェイズ(送信フェイ
ズ)は、ランダム・アクセス・メモリ168とマイクロ
プロセッサ・システムのバスが、時分割多重化(タイム
・マルチプレクシング)された動作を行なえるようにす
るための、基礎を提供するものである。インターフェイ
スは、高速ネットワークとの間で、1回のワード周期あ
たり1個のワードしか受信ないし送信することができ
ず、しかも明らかに、受信と送信とは決して同時には行
なわれない。マイクロプロセッサ・システムとの間で行
なわれる転送の転送速度は、このネットワークとの間の
転送速度よりかなり低くなっているが、たとえ両者が等
しい速度であったとしても、インターフェイス回路の能
力にとって過大な負担となることはない。このインター
フェイスのシステムの構成は、ランダム・アクセス・メ
モリ168へのダイレクト・アクセスによって大部分の
動作が実行されるようになっており、従って内部的な処
理つまりソフトウェアが、殆んど必要とされないように
なっている。従って、このシステムが各々のワード周期
の中の連続する複数のフェイズを周期的に経過していく
につれて、複数のワードが次々に、しかも互いに衝突す
ることなく、それらのワードのための所定の複数の信号
経路に沿って進められて行き、それによって種々の機能
が実行されるようになっている。例を挙げれば、バスへ
のメッセージの送出が、マイクロプロセッサからのメッ
セージの受取りの合間に行なわれるようにし、しかもそ
れらの各々がメモリ168の異なった部分を用いて交互
に行なわれるようにすることができる。In the IO phase, RECV phase (reception phase), and SEND phase (transmission phase), the random access memory 168 and the bus of the microprocessor system are time-division multiplexed (time multiplexing). It provides the basis for performing the required actions. The interface can only receive or transmit one word per word period to and from the high-speed network, and obviously, the reception and transmission never occur at the same time. The transfer rate for transfers to and from the microprocessor system is significantly lower than the transfer rate to and from this network, but even if both are of equal speed, it is excessive for the capabilities of the interface circuit. There is no burden. The configuration of this interface system is such that most operations are performed by direct access to the random access memory 168, so that little internal processing or software is required. It has become. Thus, as the system periodically progresses through successive phases in each word period, the words are determined one after the other and without colliding with each other. , Thereby performing various functions. By way of example, messages may be sent to the bus in the interval between receipt of messages from the microprocessor, and each of them may be alternated using a different portion of memory 168. Can be.
【0142】マイクロプロセッサ・システムのデータ・
バスとネットワーク・インターフェイスとの間の相互通
信は、IO管理回路160(このIOのことを読出し/
書込み(Read/Write)と言うこともある)の中で行われ
る。マイクロプロセッサ・システムから送られてくるワ
ードをゲーティングするための書込みゲート162と、
マイクロプロセッサ・システムへワードを送り出すため
のシステム読出しレジスタ164とによって、マイクロ
プロセッサのバスと、ネットワーク・インターフェイス
へのバス・インターフェイスとの間が接続されている。The data of the microprocessor system
The intercommunication between the bus and the network interface is based on the IO management circuit 160 (reading out of this IO /
Write (also referred to as Read / Write). A write gate 162 for gating words coming from the microprocessor system;
A system read register 164 for sending words to the microprocessor system provides a connection between the microprocessor bus and the bus interface to the network interface.
【0143】更にメモリ・アドレス・レジスタ165と
パリティ発生器/チェック回路166とが、ネットワー
ク・インターフェイス・サブシステムに組込まれてい
る。この具体例では、前記高速メモリ(=H.S.RA
M)は4Kワード×17ビットのランダム・アクセス・
メモリ168から成り、このメモリの内部的な再区分の
しかたと、このメモリの内部に設けられている複数の専
用メモリ領域部分の使用法とについては、既に説明した
とおりである。このランダム・アクセス・メモリの大き
さ(=容量)は、具体的な個々の用途における必要に合
わせて、縮小したり拡張したりすることが容易にでき
る。Further, a memory address register 165 and a parity generator / check circuit 166 are incorporated in the network interface subsystem. In this specific example, the high-speed memory (= HSRA
M) is 4K words x 17 bits random access
The memory 168 is internally re-partitioned, and the use of a plurality of dedicated memory areas provided inside the memory is as described above. The size (= capacity) of the random access memory can be easily reduced or expanded according to the needs of each specific application.
【0144】受信メッセージ・バッファ管理回路170
が、マイクロプロセッサのデータ・バスに接続されてお
り、更にはメモリ168のアドレス・バスにも接続され
ている。「受信メッセージ(received messages) 」とい
う用語は、ネットワークから入力してきて循環バッファ
の中の「PUT」という格納ロケーションへ入力される
メッセージを指し示すためにに用いられることもあり、
また、この入力の後に、そのようにして循環バッファ内
へ入力されたメッセージをマイクロプロセッサへ転送す
るが、その転送のことを指し示すために用いられること
もある。このマイクロプロセッサへの転送が行なわれる
ときには、「GET」の値が、マイクロプロセッサ・シ
ステムへ転送すべき受信メッセージの取出しを実行する
に際しシステムがどのロケーションから連続した取出し
動作を行なうべきかを指定する。ランダム・アクセス・
メモリ168のアクセスに用いられる複数のアドレス値
が、GETレジスタ172、TOPレジスタ174、P
UTカウンタ175、及びBOTTMレジスタ176に
夫々入力されている。PUTカウンタ175は、BOT
TOMレジスタ176によって指定されている初期位置
から1づつインクリメントされることによって更新され
る。TOPレジスタ174は、もう一方の側の境界の指
標を与えるものである。TOPの値とBOTTMの値と
はいずれも、ソフトウェア制御によって操作することが
でき、それによって、受信メッセージ・バッファの大き
さとH.S.RAMにおける絶対格納ロケーションとの
両方を変更することが可能となっている。PUTレジス
タの内容がTOPレジスタの内容に等しくなったならば
PUTレジスタはリセットされてBOTTOMレジスタ
の内容と等しくされ、それによって、このバッファを循
環バッファとして利用できるようになっている。以上の
GETレジスタ、TOPレジスタ、BOTTOMレジス
タ、並びにPUTカウンタは、入力メッセージ用循環バ
ッファと出力メッセージ完了循環バッファとの両方を管
理するのに用いられている。Received message buffer management circuit 170
Are connected to the data bus of the microprocessor and also to the address bus of the memory 168. The term "received messages" is sometimes used to refer to messages coming from the network and entering a storage location "PUT" in a circular buffer;
Also, after this entry, the message so entered into the circular buffer is transferred to the microprocessor, but may be used to indicate that transfer. When this transfer is made to the microprocessor, the value of "GET" specifies from which location the system should perform a continuous fetch operation in performing the fetch of a received message to be transferred to the microprocessor system. . Random access
A plurality of address values used for accessing the memory 168 are stored in a GET register 172, a TOP register 174,
It is input to the UT counter 175 and the BOTTM register 176, respectively. The PUT counter 175 is BOT
It is updated by being incremented by one from the initial position specified by the TOM register 176. The TOP register 174 gives an index of the boundary on the other side. Both the value of TOP and the value of BOTTM can be manipulated under software control, thereby increasing the size of the received message buffer and the H.264. S. It is possible to change both the absolute storage location in the RAM. When the contents of the PUT register equal the contents of the TOP register, the PUT register is reset to equal the contents of the BOTTOM register, thereby making this buffer available as a circular buffer. The GET register, TOP register, BOTTOM register, and PUT counter are used to manage both the input message circular buffer and the output message complete circular buffer.
【0145】GETレジスタ172への入力はソフトウ
ェアの制御下において行なわれるが、それは、バッファ
中においてそのとき取扱われているメッセージの長さに
応じて、次のアドレス(ネクスト・アドレス)が決定さ
れるからである。GETレジスタ172、PUTカウン
タ175、並びにTOPレジスタ174の夫々の出力に
接続された比較回路178と179は、オーバラン状態
を検出及び表示するために使用されている。オーバラン
状態はGETの値とPUTの値とが等しい値に設定され
た場合や、GETの値をTOPの値より大きな値に設定
しようとする試みがなされた場合に生じる状態である。
これらのいずれの場合にも、オーバランのステータス表
示が送出されることになり、しかもこのステータス表示
はオーバラン状態が訂正されるまで送出され続けること
になる。The input to the GET register 172 is made under the control of software, which determines the next address (next address) in the buffer according to the length of the message currently being handled. Because. Comparison circuits 178 and 179 connected to the respective outputs of the GET register 172, PUT counter 175, and TOP register 174 are used to detect and display an overrun condition. The overrun state is a state that occurs when the value of GET and the value of PUT are set to the same value, or when an attempt is made to set the value of GET to a value larger than the value of TOP.
In either of these cases, an overrun status indication will be sent, and this status indication will continue to be sent until the overrun condition is corrected.
【0146】「受信メッセージ」循環バッファを構成し
動作させる際の、以上のような連続的な方式は、このシ
ステムに特に適した方式である。衝突(コンフリクト)
を回避するための相互チェックを可能としておくことに
よって、「PUT」をハードウェアで管理し、且つ「G
ET」を動的に管理することができるようになってい
る。しかしながら、これ以外の方式のバッファ・システ
ムを採用することも可能である。ただしその場合には、
おそらく回路並びにソフトウェアに関して、ある程度の
余分な負担が加わることになろう。ここで図34(b)
について触れておくと、メモリ168の内部に格納され
ている受信メッセージのフォーマットは更に、マップ結
果、データ長さ、並びにキー長さの形の識別データを含
んでおり、それらのデータがどのようにして得られるか
については後に説明する。The above-described continuous scheme for configuring and operating the "received message" circular buffer is a scheme particularly suitable for this system. Collision
The PUT can be managed by hardware and the G
ET "can be dynamically managed. However, other types of buffer systems can be employed. However, in that case,
Probably there will be some extra burden on the circuit and software. Here, FIG.
Note that the format of the received message stored within memory 168 further includes identification data in the form of map results, data lengths, and key lengths, and how those data are Whether it can be obtained will be described later.
【0147】このインターフェイスの内部のDSW管理
セクション190は、転送先選択ワード・レジスタ 1
92を含んでおり、この転送先選択ワード・レジスタ1
92へは、これからアドレス・バスへ転送される転送先
選択ワード(DSW)が入力される。DSWを使用して
メモリ168の専用DSWセクションをアドレスする
と、このメモリ168からデータ・バス上へ送出された
出力がデータを返し、このデータに基づいてDSW管理
セクション190が、そのメッセージパケットが当該プ
ロセッサを転送先としたものであるか否かを判定するこ
とができるようになっている。図23及び図24から分
るように、転送先選択ワードは、2ビットのマップ・ニ
ブル(nybl)アドレスと、10ビットのマップ・ワード・
アドレスと、マップ選択のための4ビットとから成って
いる。これらのうちの「ニブル」アドレスは、メモリ1
68からのワードのサブセクションを記述するのに用い
られている。マップ選択のための4ビットは、マップ結
果比較器194へ供給され、この比較器194はマルチ
プレクサ196を介してメモリ168から関連したマッ
プ・データを受取っている。マルチプレクサ196は1
6ビットのデータを受取っており、この16個のビット
は、DSWの中に含まれているマップ・ワード・アドレ
スの10ビットによって指定されるアドレスに格納され
ている4つの異なったマップ・データ・ニブルを表わし
ている。メモリ168は、ここで行なわれる比較が容易
なように、その専用マップ・セクションが特に比較に適
した形態に構成されている。マルチプレクサ196へそ
の制御のために供給されている、DSWの中の残りの2
ビットによって、4つのマップ・ニブルのうちの該当す
る1つのマップ・ニブルが選択される。比較が行なわ
れ、その比較の結果得られたマップ・コードが、マップ
結果レジスタ197へ入力され、そしてメモリ168へ
入力されている入力メッセージの中へ挿入される。も
し、この比較の結果、選択されたマップのいずれの中に
も「1」のビットが存在していないことが判明した場合
には、「拒絶」信号が発生されて、当該プロセッサ・モ
ジュールはそのメッセージ・パケットを受取るものとし
て意図されてはいないことが表示される。The DSW management section 190 inside this interface includes a transfer destination selection word register 1
92, and this destination selection word register 1
To 92, a transfer destination selection word (DSW) to be transferred to the address bus is input. When the dedicated DSW section of the memory 168 is addressed using the DSW, the output sent from the memory 168 onto the data bus returns the data, and based on the data, the DSW management section 190 sends the message packet to the relevant processor. It can be determined whether or not this is the transfer destination. As can be seen from FIGS. 23 and 24, the transfer destination selection word is composed of a 2-bit map nibble (nybl) address and a 10-bit map word
It consists of an address and 4 bits for map selection. The “nibble” address of these is
It is used to describe a subsection of the word from 68. The four bits for the map selection are provided to a map result comparator 194, which receives the associated map data from memory 168 via multiplexer 196. Multiplexer 196 is 1
6 bits of data are received, the 16 bits being the four different map data stored at the address specified by bit 10 of the map word address contained in the DSW. Represents a nibble. The memory 168 has its dedicated map section configured in a form particularly suitable for comparison so that the comparison performed here is easy. The remaining two in the DSW are provided to the multiplexer 196 for its control.
Depending on the bit, a corresponding one of the four map nibbles is selected. A comparison is made and the map code resulting from the comparison is input to map result register 197 and inserted into the input message being input to memory 168. If the comparison shows that there is no "1" bit in any of the selected maps, a "reject" signal is generated and the processor module causes It is indicated that the message packet is not intended to be received.
【0148】図26について説明すると、同図には、メ
モリ168の専用の転送先選択セクションを細分するた
めの好適な方法であってしかもマップ結果の比較を行う
ための好適な方法が、概略的に図示されている。各々の
マップは4096ワード×1ビットで構成されており、
更に、個別プロセッサID用セクタ、クラスID用セク
タ、及びハッシング用セクタに細分されている(図18
参照)。12個のアドレス・ビット(10ビットのマッ
プ・アドレスと2ビットのニブル)を用いて、共通マッ
プ・アドレスが選択されると、それによって各々のマッ
プから1ビット出力が得られる。(図23及び図24の
マルチプレクサとそのニブルは、図を簡明にするために
図26には示してない)。それら4つのパラレルなビッ
ト出力は、4つのANDゲートから成るANDゲート群
198において、マップ選択のための4ビットと比較す
ることができるようになっており、その結果、1つ以上
の一致が得られた場合には、ORゲート199の出力が
「真」状態になる。このマップ結果は、図23及び図2
4のマップ結果レジスタ197へ入力することができ、
それによって、そのメッセージがメモリ168に受入れ
られるようになる。以上とは異なる場合には、そのメッ
セージは拒絶され、NAKが送信されることになる。Referring to FIG. 26, there is shown in FIG. 26 a schematic diagram of a preferred method for subdividing the dedicated destination selection section of the memory 168 and for comparing the map results. Is shown in FIG. Each map is composed of 4096 words x 1 bit.
Further, it is subdivided into an individual processor ID sector, a class ID sector, and a hashing sector (FIG. 18).
reference). When a common map address is selected using twelve address bits (a 10-bit map address and a 2-bit nibble), one bit output is obtained from each map. (The multiplexers of FIGS. 23 and 24 and their nibbles are not shown in FIG. 26 for clarity). The four parallel bit outputs can be compared with four bits for map selection in an AND gate group 198 consisting of four AND gates, so that one or more matches are obtained. In this case, the output of the OR gate 199 becomes "true". This map result is shown in FIG. 23 and FIG.
4 can be input to the map result register 197,
This allows the message to be accepted into memory 168. If not, the message is rejected and a NAK is sent.
【0149】コマンド・ワード管理セクション200
は、コマンド・ワードを受取るコマンド・レジスタ20
2を含んでいる。コマンド・ワードのTNフィールド
は、それを用いてアドレス・バスをアクセスすることが
でき、そのアクセスによって、指標とされている受信T
Nが調べられて適当な応答メッセージが決定される(図
30参照)。更には、「マージ開始」コマンドが実行さ
れているときには、TNフィールドからPTNR(現在
トランザクション・ナンバ・レジスタ)206へのデー
タ転送経路が確保されており、これは、「マージ開始」
コマンドに合わせてPTN(現在トランザクション・ナ
ンバ)の値を変更できるようにするためである。Command / word management section 200
Is the command register 20 that receives the command word.
Contains 2. The TN field of the command word can be used to access the address bus, and the access causes the received T.N.
N is examined to determine an appropriate response message (see FIG. 30). Further, when the “merge start” command is being executed, a data transfer path from the TN field to the PTNR (current transaction number register) 206 is secured, which corresponds to the “merge start”.
This is so that the value of the PTN (current transaction number) can be changed according to the command.
【0150】メモリ168へ入力された入力メッセージ
は、図34に関して説明すると、アドレス・ベクタを利
用できるようにするために、データ・フィールドやキー
・フィールドが用いられている場合にはそれらのフィー
ルドの長さ値をも含むものとなっている。それらの長さ
値は、受信データ長さカウンタ210と受信キー長さカ
ウンタ211とによって求められ、これらのカウンタの
各々は、入力ソースから夫々のカウンタに該当するフィ
ールドが提供される際に、それらのフィールドに含まれ
ている一連のワードの個数を数えるようになっている。The input message input to the memory 168 will be described with reference to FIG. 34, in order to make available the address vector, the data field and the key field, if any, are used. It includes the length value. Their length values are determined by a receive data length counter 210 and a receive key length counter 211, each of which is used when the input source provides a field corresponding to the respective counter. Field counts the number of words in the sequence.
【0151】更には、送信メッセージ管理セクション2
20が用いられており、このセクションは、処理済のパ
ケットをメモリ168に格納するための受入れ機能と、
それらの格納されたパケットを後刻ネットワークへ送出
する機能とを包含している。このセクション220は、
送信トランザクション・ベクタ・カウンタ222、送信
データ長さカウンタ224、及び送信キー長さカウンタ
226を含んでおり、これらのカウンタはデータ・バス
に、双方向的に接続されている。送信トランザクション
・ベクタ・カウンタ222はアドレス・バスに接続され
ており、一方、送信データ長さカウンタ224はアドレ
ス発生器228に接続されていて、このアドレス発生器
228が更にアドレス・バスに接続されている。出力バ
ッファ・セクションと図18の出力メッセージ完了ベク
タ・セクションを構成する循環バッファとの両方を用い
てメッセージの送出が行なわれる。ただしこの具体例で
は、複数のメッセージ・パケットが逐次入力された後
に、それらが今度はベクタによって定められた順序で取
出されるようになっている。Further, the transmission message management section 2
20, the section includes an accept function for storing processed packets in the memory 168;
Sending the stored packets to the network later. This section 220
It includes a transmit transaction vector counter 222, a transmit data length counter 224, and a transmit key length counter 226, which are bidirectionally connected to the data bus. The transmit transaction vector counter 222 is connected to the address bus, while the transmit data length counter 224 is connected to an address generator 228, which is further connected to the address bus. I have. The message is transmitted using both the output buffer section and the circular buffer constituting the output message completion vector section of FIG. However, in this example, after a plurality of message packets are sequentially input, they are now fetched in the order defined by the vector.
【0152】このインターフェイスの内部においては、
独立した夫々の動作フェイズが、互いに排他的な時間に
実行されるようになっており、このような時分割方式を
採用したことによって、メモリ168は、ネットワーク
のクロック速度でネットワークからのメッセージ・パケ
ットを受取って供給することと、内部的な動作を効率的
な高い速度で実行することと、それ自身の遅いクロック
速度で非同期的に動作しているマイクロプロセッサ・シ
ステムとの間で通信を行なうこととが、可能とされてい
る。様々なカウンタやレジスタへ向けたメッセージのゲ
ーティング動作を制御するために、位相制御回路が制御
ビットに応答して動作しており、制御ビットは、コマン
ド、DSW、データ、それにメッセージ内の個々のフィ
ールドを示すその他の信号を発生するものである。送信
状態制御回路250、受信状態制御回路260、並びに
R/W(読出し/書込み)状態制御回路270は、クロ
ック・パルスを受取り、データ内のフィールドを識別
し、そして、送信、受信、それにプロセッサのクロック
動作が行なわれている間の、データの流れのシーケンシ
ングを制御するものである。Inside this interface,
The independent operation phases are executed at mutually exclusive times, and by adopting such a time division method, the memory 168 stores message packets from the network at the network clock speed. Receiving and supplying data, performing internal operations at an efficient high speed, and communicating with a microprocessor system operating asynchronously at its own slow clock speed. And is possible. In order to control the gating operation of messages to various counters and registers, a phase control circuit operates in response to control bits, which control commands, DSW, data, and individual It generates other signals indicating the field. Transmit state control circuit 250, receive state control circuit 260, and R / W (read / write) state control circuit 270 receive clock pulses, identify fields in the data, and transmit, receive, and It controls the sequencing of the data flow during the clock operation.
【0153】このインターフェイスの制御は3つの有限
状態マシン(FSM)によって行われ、それらのFSM
は、その各々が送信フェイズ、受信フェイズ、及びプロ
セッサ(R/W)フェイズのためのものである。それら
のFSMは、プログラマブル・ロジック・アレイ(PL
A)、状態レジスタ、並びにアクションROMを使用し
て、一般的な方式で構成されている。各々のFSMは、
ネットワークのクロック・サイクルの1回ごとに1つ次
の状態へ進められる。発生すべき制御信号の数が多いた
め、PLAの出力はさらにアクションROMによって符
号化される。当業者には容易に理解されるように、ネッ
トワークの動作のために必然的に必要となる、FSMモ
ード用に書かれ、それゆえ一般的な細部構造と動作とを
もつ制御シーケンスの翻訳は、仕事量こそ多いものの単
純なタスクである。The control of this interface is performed by three finite state machines (FSMs).
Are for the transmit phase, the receive phase, and the processor (R / W) phase, respectively. These FSMs are programmable logic arrays (PLs).
A), using a status register, and an action ROM, in a general manner. Each FSM is
Each clock cycle of the network advances to the next state. Due to the large number of control signals to be generated, the output of the PLA is further encoded by the action ROM. As will be readily appreciated by those skilled in the art, the translation of a control sequence written for the FSM mode, and thus having general details and operation, which is necessary for the operation of the network, It is a simple task with a lot of work.
【0154】図28及び図29、図31及び図32の状
態ダイアグラムと図30のマトリクス・ダイアグラムと
を添付図面中に含めてあるのは、かなり複雑なシステム
に採用することのできる内部構造設計上の特徴に関す
る、包括的な細目を提示するためである。The state diagrams of FIGS. 28 and 29, 31 and 32, and the matrix diagram of FIG. 30 are included in the accompanying drawings because of the internal structural design that can be employed in fairly complex systems. The purpose is to present comprehensive details on the characteristics of
【0155】図28及び図29は受信フェイズに関する
図、図31及び図32は送信フェイズに関する図であ
り、これらの図において用いられている表記法は、この
明細書及び図面の他の場所で用いられている表記法に対
応している。例えば次の用語がそうである。FIGS. 28 and 29 are diagrams related to the reception phase, and FIGS. 31 and 32 are diagrams related to the transmission phase. It corresponds to the notation used. For example, the following terms:
【0156】 RKLC = Receive Key Length Counter (受信キー長さカウンタ) RDLA = Receive Data Length Counter (受信データ長さカウンタ) RNDR = Receive Network Data Word Register (受信ネットワーク・データ・ワード・レジスタ) PUTC =Put Counter (PUTカウンタ) GETR =Get Register (GETレジスタ) 従って状態ダイアグラムは、図23及び図24及び明細
書と対照させて参照すれば、略々説明なしでも理解する
ことができる。それらの状態ダイアグラムは、複雑なメ
ッセージ管理並びにプロセッサ相互間通信に関わる、様
々なシーケンスと条件文とを詳細に示している。図28
及び図29において、「応答を発生せよ」と「応答を復
号せよ」とのラベルが書込まれている夫々の状態、並び
に破線の長方形で示されている夫々の条件文は、図30
のマトリクス・ダイアグラムに記載されている、指定さ
れた応答及び動作に従うものである。RKLC = Receive Key Length Counter RDLA = Receive Data Length Counter RNDR = Receive Network Data Word Register PUTC = Put Counter (PUT counter) GETR = Get Register (GET register) Accordingly, the state diagram can be understood substantially without explanation if it is referred to in comparison with FIGS. 23 and 24 and the specification. The state diagrams detail the various sequences and conditionals involved in complex message management as well as interprocessor communication. FIG.
In FIG. 29 and FIG. 29, the respective states in which the labels “Generate a response” and “Decode the response” are written, and the respective conditional statements indicated by broken-line rectangles are shown in FIG.
According to the specified response and operation described in the matrix diagram of FIG.
【0157】第30図は、所定のトランザクション・ナ
ンバ(TN)に係るプライマリ・メッセージ(一次メッ
セージ)のDATA(データ)、STOP(停止)、S
TATUS(ステータス)、RELQ(放棄)、ASG
N(割当)及びSTRT(開始)と、それに対応する応
答メッセージのLOCK(ロック)、TNER(TNエ
ラー)、OVER(オーバラン)、第22図に対応する
9種の異なったステータス応答、ACKR(確認応答)
及びNAPR(否対応プロセッサ応答)との組合せ関係
を示す。テーブル内の点線は、点線上が特定の応答を示
すものであり、点線下が特定の処理を示す。テーブル内
で使用されているシンボルの意味は、テーブルの下に記
載されている。一次メッセージは、データ・メッセージ
又は制御メッセージに拘わらず必ずトランザクション番
号(TN)を持つ。FIG. 30 shows DATA (data), STOP (stop), and S of a primary message (primary message) related to a predetermined transaction number (TN).
TATUS (status), RELQ (abandoned), ASG
N (allocation) and STRT (start) and the corresponding response messages LOCK (lock), TNER (TN error), OVER (overrun), nine different status responses corresponding to FIG. 22, and ACKR (confirmation) response)
And the combination relationship with the NAPR (no corresponding processor response). As for the dotted lines in the table, the upper part of the dotted line indicates a specific response, and the lower part of the dotted line indicates a specific process. The meaning of the symbols used in the table is listed below the table. The primary message always has a transaction number (TN) regardless of a data message or a control message.
【0158】ネットワークを介してあるTNを有する一
次メッセージ送信されてくると、各ステーションのネッ
トワーク・インターフェイス・セクション120は、そ
のTNに係るサブタスクの処理状態等に応じて各種の応
答メッセージを発生させる。本願発明に係るシステムに
おいて用いられる応答メッセージは、肯定的応答(AC
K)、否定応答(NAK)、又は自己が要求のデータ・
リソースを有していない旨の応答である非対応プロセッ
サ応答(NAP)が用いられる。NAK応答は、数種の
異なったタイプがあり、停止(LOCK)、TNエラー
(TNER)、バッファ等のオーバーラン(OVER)
等の要因による。When a primary message having a certain TN is transmitted via the network, the network interface section 120 of each station generates various response messages according to the processing status of the subtask related to the TN. The response message used in the system according to the present invention is a positive response (AC
K), negative acknowledgment (NAK), or the data
A non-compliant processor response (NAP), which is a response indicating that the device has no resources, is used. There are several different types of NAK responses, such as stop (LOCK), TN error (TNER), and buffer overrun (OVER).
It depends on such factors.
【0159】ここではさらに、自己のステーションにお
けるプロセッサが特定タスクの処理に関して送信の準備
完了状態を表すステータス肯定応答(SACK)を用い
ている。また、このSACKを表す信号は、特定の一次
メッセージと共に用いられて各種プロトコル、例えばシ
ステムの初期設定、ロックアウト処理を行わせるのに用
いる。SACK応答は、第21図に示すとおり、それぞ
れ異なった意味を表示する9つのステータス・レベルを
持ち、そのワード・フォーマットは第22図に示すとお
りである。複数のTNに係る複数のサブ・タスク処理を
担当しているステーションにおいて、各々のサブ・タス
ク処理のステータス・レベルを処理経過に応じて常時ア
ップデートしておくのは、該ステーションにおけるプロ
セッサの責任である。第22図において、「ビズィ」と
「ウェイティング」の状態とは、共に割り当てられた特
定のサブタスクに関し、次段のフェイズに移りつつ状態
であることを表す。Here, the processor in its own station uses a status acknowledgment (SACK) indicating the ready state for transmission with respect to the processing of a specific task. The signal indicating the SACK is used together with a specific primary message to perform various protocols, for example, system initialization and lockout processing. As shown in FIG. 21, the SACK response has nine status levels indicating different meanings, and its word format is as shown in FIG. It is the responsibility of the processor in a station that is in charge of a plurality of sub-task processes related to a plurality of TNs to constantly update the status level of each sub-task process as the process progresses. is there. In FIG. 22, the states of “Bizy” and “Waiting” indicate that the state is moving to the next phase with respect to the specific subtask assigned together.
【0160】プロセッサ・モジュール103が送信すべ
きあるメッセージを有していたとすると、そのステータ
スは「送信準備完了」である。「受信準備完了」とは、
予め設定されていたTNを有するメッセージの受信に対
し、当該プロセッサ・モジュールが受入可能であること
をあらわす。用いられるべき複数のTN値は予め各ステ
ーションのH.S.RAM内に初期設定されているが、動
作中に放棄されたり、新たなTNが割り当てられたりさ
れる。「アサインド」と「アンアサインド」は、該ステ
ーションにおいてはそのTNが設定されているか否かの
応答である。If the processor module 103 had a message to send, its status is "ready to send". "Ready to receive"
It indicates that the processor module can accept a message having a preset TN. The plurality of TN values to be used are preset in the HS RAM of each station in advance, but are discarded during operation or new TNs are allocated. “Assigned” and “unassigned” are responses indicating whether or not the TN is set in the station.
【0161】このように、送信メッセージが如何なるタ
スクに係るものであるかをシステム内の各ステーション
が同義的に認識させるTNが含まれることから、あるメ
ッセージがネットワークにおいて一括伝送されてきて
も、個々のステーションにおいては該伝送されてきたメ
ッセージがどのタスクに関するものであるかが特定でき
るので、複数のタスクをシステム内において同時に処理
できるのである。As described above, since the TN for making each station in the system synonymously recognize what task the transmission message relates to is included, even if a certain message is collectively transmitted in the network, In this station, it is possible to specify which task the transmitted message relates to, so that a plurality of tasks can be processed simultaneously in the system.
【0162】図28及び図29と図31及び図32のい
ずれにおいても、条件判断に関しては、その多くのもの
が複数の判断を同時に実行することができるようになっ
ているが、これに対して状態ステップの方は、1つづつ
変更されていくようになっている。いずれの場合におい
ても、送信動作と受信動作とは外部からの制御を必要せ
ずに定められた進行速度で進められて行く動作であり、
それは、メッセージの構成とネットワークの動作方式と
が既に説明したようになっているためである。In FIG. 28 and FIG. 29, and FIG. 31 and FIG. 32, as for the condition judgment, many of them can execute a plurality of judgments at the same time. The state steps are changed one by one. In any case, the transmission operation and the reception operation are operations that proceed at a predetermined traveling speed without requiring external control,
This is because the structure of the message and the operation method of the network have already been described.
【0163】典型的なプロセッサ・システムやマルチプ
ロセッサ・システムにおいて採用されている多くの特徴
には、本発明に密接な関係を持ってはいないものがあ
り、従ってそれらについては特に記載しない。それらの
特徴の中には、パリティ・エラー回路、割込み回路、そ
れに、ワッチドッグ・タイマや極めて多様な記験機能等
の活動をモニタするための種々の手段等がある。Many of the features employed in typical processor and multiprocessor systems are not closely related to the present invention and will not be described in particular. Among these features are parity error circuits, interrupt circuits, and various means for monitoring activities such as watchdog timers and a wide variety of test functions.
【0164】ここで、本願発明に係るシステムにおいて
複数のタスクを同時に取り扱う場合について、これまで
の記載を総括する。Here, a description will be given of a case where a plurality of tasks are handled simultaneously in the system according to the present invention.
【0165】本願発明に係るコンピューティグ・システ
ムを構成する各プロセッサ間で送受信される全てのメッ
セージは、第13図に示すようなメッセージ・フォーマ
ットから成り、図13A及びBに示すとおり、その先頭
部分には6ビットのコマンド・コード及び10ビットの
タグ・フィールドから成るコマンド・ワードを有する。
さらに、第21図に示すように、10ビットの該タグ・
フィールドにおいては、メッセージが、一次メッセージ
であればトランザクション・ナンバ(TN)を、その一
次メッセージに対する応答メッセージであれば発信元I
D番号(OPID)を必ず持つ。あるタスクを所定(単
数又は複数)のプロセッサに処理させるために通信ネッ
トワークに送出されるメッセージは一次メッセージであ
り、該タスクはこのTNという識別番号により同定され
ることとなる。各プロセッサにおいて使用される予定の
複数のTN値は、各構成プロセッサにおける高速RAM
(H.S.RAM)中の所定アドレス(図18において
はH.S.RAMにおける0400乃至0500)に通
常初期設定される。また該TN値は、一次メッセージと
して所定の指令コード(コマンド・コード)により、途
中で新たなTNを割り当てたり、放棄することができる
(第21図)。All the messages transmitted and received between the processors constituting the computing system according to the present invention have a message format as shown in FIG. 13, and as shown in FIGS. The part has a command word consisting of a 6-bit command code and a 10-bit tag field.
Further, as shown in FIG. 21, the 10-bit tag
In the field, the transaction number (TN) if the message is a primary message, or the source I if the message is a response message to the primary message.
It always has a D number (OPID). A message sent to the communication network to cause a predetermined processor or processors to process a certain task is a primary message, and the task is identified by the identification number TN. The plurality of TN values to be used in each processor are stored in the high-speed RAM in each component processor.
(HSRAM), it is normally initialized to a predetermined address (0400 to 0500 in HSRAM in FIG. 18). The TN value can be assigned or abandoned on the way by a predetermined command code (command code) as a primary message (FIG. 21).
【0166】一次メッセージは、TNの他、さらに該メ
ッセージが受信されるべき単数又は複数の転送先プロセ
ッサを直接的又は間接的に指示するための転送先選択ワ
ード(DSW)を有する(第13図A及びB)。従っ
て、TN、DSW及びコマンド・コードを様々に組み合
わせて使用することにより、システム内相互通信機能の
広範な融通性が達成され得るのである。一次メッセージ
は大きく2種類に分類される。一つは、あるタスクを分
散処理させるため又はあるタスクのデータを伴う処理結
果を他のプロセッサに伝送するためのものであり、可変
長データのキーフィールド・データ・メッセージとデー
タ・フィールドを有する「データ・メッセージ」(第1
3図A、第21図)と呼ぶ。他の一つは、該タスク・メ
ッセージの処理結果のステータスを問い合せたり、該タ
スク・メッセージの送信前に新たなTNを割り当てたり
または使用済みのTNを放棄したり、前記ステータスの
問い合せの結果ある特定のTNに係るタスク処理に関連
する全プロセッサから肯定的応答を受信した場合に、該
処理結果を一斉に送信すべき旨の指令であるマージ開始
若しくはその停止を指示するための「制御/ステータス
・メッセージ」(第13図B、第21図)である。本実
施例においては、第21図に示すように、それぞれ異な
った特定のTN値を割り当てた前記データ・メッセージ
(一次メッセージ)の送出に11個の指令コード(「1
1」乃至「1B」)を同時に使用できるようにしてい
る。The primary message has, in addition to the TN, a destination selection word (DSW) for directly or indirectly indicating one or more destination processors from which the message is to be received (FIG. 13). A and B). Thus, by using various combinations of TN, DSW and command codes, a wide range of inter-system communication capabilities can be achieved. Primary messages are roughly classified into two types. One is for distributing a certain task or transmitting a processing result accompanying data of a certain task to another processor, and has a key field data message of variable length data and a data field. Data message ”(first
3 (FIG. A, FIG. 21). The other is to query the status of the processing result of the task message, allocate a new TN before sending the task message, or relinquish the used TN, or query the status. When a positive response is received from all the processors related to the task processing related to the specific TN, the “control / status” for instructing to start or stop the merge, which is a command to transmit the processing results all at once, is received. Message ”(FIG. 13B, FIG. 21). In this embodiment, as shown in FIG. 21, eleven command codes ("1") are used to transmit the data message (primary message) to which different specific TN values are assigned.
1 "to" 1B ") can be used simultaneously.
【0167】前記データ・メッセージまたはステータス
・メッセージの如何に拘わらず自己宛に送出されてきた
最終の一次メッセージのコマンド・コード内のタグ部分
に記載されているTNが現在TNとして扱われ、この値
は各プロセッサにおけるネットワーク・インターフェイ
ス(第18図及び第23図及び24図)内の現在TNカ
ウンタ(206)内においてインターフェイス自身によ
り更新・格納される。システム内の各構成プロセッサ
は、複数のタスク処理に関連していたとしても、上述の
とおり、一次メッセージには必ずTNを含むので、これ
により如何なるタスクに係る制御若しくはステータス応
答が要求されているのかを認識でき、要求されたTNに
係る応答を応答メッセージのフォーマット(第13図
C、第21図の指令コード「00」乃至「0F」)で送
出する。応答メッセージに係る指令コードは一次メッセ
ージに係る指令コードよりも若い数値であるから、ネッ
トワーク内において優先的に伝送され、その発信元はO
PIDによって特定される。The TN described in the tag portion in the command code of the final primary message sent to itself regardless of the data message or the status message is handled as the current TN, and Is updated and stored by the interface itself in the current TN counter (206) in the network interface (FIGS. 18, 23 and 24) in each processor. As described above, each constituent processor in the system always includes the TN in the primary message, even if it is related to a plurality of task processes. Therefore, what kind of task control or status response is required by this? And transmits a response related to the requested TN in a response message format (command codes “00” to “0F” in FIGS. 13C and 21). Since the command code related to the response message has a smaller value than the command code related to the primary message, the command code is preferentially transmitted in the network, and its transmission source is O.
Specified by PID.
【0168】第18図のブロック図に示すように、各ス
テーションにおいては、ネットワーク・インターフェイ
ス120は、プロセッサモジュール103とは別個に、
能動ロジック・ネットワークと同期して動作しており、
全二重通信構成の通信ネットワークから送られてきたメ
ッセージはH.S.RAMの所定アドレスに順次格納さ
れる。また、同インターフェイスは、受信と共に所定の
TNに係る応答を該ネットワークのタイミング(第17
図)で送出するのである。ステータス要求等を受けた場
合は、現在TNに係る応答メッセージの送出を最優先す
る。各ステーションにおけるプロセサ・モジュール10
3は、該ステーション内のH.S.RAM内に格納され
ているメッセージを順次自己のメインRAM107内に
取り込み、必要な処理若しくは検索を行いその結果を出
力メッセージとして前記H.S.RAM内の所定アドレ
スに順次格納しておく。このように、プロセッサ・ムジ
ュール103は、ネットワークからのメッセージの受信
及び該メッセージのH.S.RAM内への格納及び処理
結果若しくは応答メッセージのネットワークへの送出制
御には直接関係せず、これらはネットワーク・インター
フェイスが担当している。As shown in the block diagram of FIG. 18, in each station, the network interface 120 is provided separately from the processor module 103.
Working synchronously with the active logic network,
Messages sent from a communication network having a full-duplex communication configuration are H.264. S. The data is sequentially stored at a predetermined address in the RAM. In addition, the interface transmits a response related to a predetermined TN together with the reception at the timing of the network (17th
(Fig.). When a status request or the like is received, transmission of a response message related to the current TN is given top priority. Processor module 10 in each station
H.3 in the station. S. The messages stored in the RAM are sequentially taken into its own main RAM 107, necessary processing or search is performed, and the result is output as an output message. S. The data is sequentially stored at a predetermined address in the RAM. In this way, the processor module 103 receives the message from the network and sends the message to the H.264 module. S. It is not directly related to the storage in the RAM and the control of sending the processing result or response message to the network, and these are handled by the network interface.
【0169】ネットワーク・インターフェイス120、
H.S.RAM26及びプロセッサ・モジュール103
相互間は、時分割バス(第25図)によって接続されて
いるので、ネットワークと同期して動作する該インター
フェイス120とプロセッサ・モジュール103はそれ
ぞれ独自のタイミングで動作している。つまり、それぞ
れが相手の動作に関わり合うことなくHS・RAMをア
クセスすることができるのである。H.S.RAM内に
格納されているDSW,TN、データメッセージ・ポイ
ンタ及び応答ディレクトリの初期設定、割り振り、変更
等は、ネットワークを介して他のプロセッサが行うこと
ができるし、当該ステーション内のプロセッサ103か
らのアクセスにより行うこともができる。The network interface 120,
H. S. RAM 26 and processor module 103
Since they are connected to each other by a time-division bus (FIG. 25), the interface 120 and the processor module 103, which operate in synchronization with the network, operate at their own timing. That is, each of them can access the HS / RAM without being involved in the other party's operation. H. S. The initialization, allocation, change, etc. of the DSW, TN, data message pointer and response directory stored in the RAM can be performed by another processor via a network. Access can also be made.
【0170】このように、システムを構成する各ステー
ションは、同時に複数のタスク処理に関連していたとし
ても、受信した一次メッセージ内のTNに基づいて、該
一次メッセージが如何なるタスクに係る処理、検索若し
くはステータス応答を要求されているのかを認識でき、
要求されたTNに係る応答を所定の応答メッセージのフ
ォーマットにて発信元IDを付して応答できるのであ
る。該一次メッセージの発信元プロセッサはこれらの応
答メッセージがどのプロセッサから送られてきたかを該
発信元IDにより認識するのである。As described above, even if each station constituting the system is involved in a plurality of task processes at the same time, it can process and search for any task related to the primary message based on the TN in the received primary message. Or a status response is required,
The response related to the requested TN can be responded to by attaching a sender ID in a predetermined response message format. The source processor of the primary message recognizes from which processor these response messages are sent by the source ID.
【0171】このように、あるプロセサが所与のタスク
に対して同一のTNを付した複数のサブタスクを一次メ
ッセージとしてDSWにより指定した関連プロセッサに
伝送して該サブタスクの処理を各々の関連プロセッサに
割り当てる場合、それぞれの関連プロセッサのステータ
ス問合わせ(ステータス・リクエスト)及び処理結果の
送出要求(マージ開始)等は、すべて該サブタスクに付
されたTNを付して行われる。各ステーションにおいて
は自己に割り当てられたサブタスクの処理を行い、ステ
ータスと共に自己のH.S.RAM内の所定アドレスの
メモリ(循環バッファ)に格納しておく。特定のTNに
係るステータス応答又は処理結果送出のリクエストを受
けた場合は、各ステーションにおけるネットワーク・イ
ンターフェイス120は該TNを現在TN(PTN)と
して、該TNに係る応答又は処理結果をネットワーク手
段50に一斉に送出する。ネットワーク手段に送出され
た応答又は処理結果はネットワーク内のノードを通過す
る毎に優先権プロトコル(第2図乃至第12図)に従っ
て選択(ソート)され、該サブタスク処理の要求元プロ
セッサには、該TNに係るサブタスクの処理結果がその
メッセージ・コードの優先度の高い順に連続して(マー
ジされて)送信されてくることとなる。当該処理結果
は、該ステーションにおけるネットワーク・インターフ
ェイス120にて、H.S.RAM内の所定範囲のアド
レスに一連の処理結果として格納される。As described above, a certain processor transmits a plurality of subtasks having the same TN to a given task as a primary message to a related processor specified by DSW, and transfers the processing of the subtask to each related processor. In the case of assignment, status inquiries (status requests) and processing result transmission requests (merge start) of the respective related processors are all performed with the TN attached to the subtask. Each station performs the processing of the subtask assigned to itself, and, together with the status, its own H.265. S. It is stored in a memory (circulating buffer) at a predetermined address in the RAM. When a status response or a processing result transmission request related to a specific TN is received, the network interface 120 in each station sets the TN as a current TN (PTN) and sends a response or processing result related to the TN to the network means 50. Send all at once. The response or the processing result sent to the network means is selected (sorted) in accordance with the priority protocol (FIGS. 2 to 12) each time it passes through a node in the network. The processing results of the subtasks related to the TN are transmitted successively (merged) in descending order of the priority of the message code. The processing result is transmitted to the network interface 120 of the station by the H.264. S. A series of processing results are stored in a predetermined range of addresses in the RAM.
【0172】(システムの動作の具体例) 以下に説明するのは、図1、図18、図23、及び図2
4を総合したシステムが、ネットワーク及びH.S.R
AMと協働しつつ種々の動作モードで内部的にどのよう
に働くかを示す幾つかの具体例である。それらの具体例
は、優先順位規定と、ここで採用されているアドレッシ
ング方式と、トランザクション・アイデンティティとの
間の相互関係が、どのようにして局所的制御と大域的相
互通信との両方の機能を提供するのかを示すものであ
る。(Specific Example of System Operation) The following describes FIGS. 1, 18, 23, and 2.
4 is a network and H.264 system. S. R
5 are some examples showing how to work internally in various modes of operation while working with AM. These examples illustrate how the inter-relationship between the precedence rules, the addressing scheme employed here, and the transaction identity can explain how both local control and global intercommunication functions. Indicates whether to provide.
【0173】プライマリ・データ・メッセージの送受信 ここでは、その他の図に加えて更に図27についても説
明するが、図27は、プライマリ・メッセージの最終的
な受入れに関わる諸状態の、簡略化した状態ダイアグラ
ムである。メッセージがバッファ或いはメモリに受信さ
れても、図示の論理的状態が満たされないうちは、受入
れ(アクセプタンス)が達成されたことにはならない。
図ではイベント(事象)のシリアルな列として示されて
いるが、本来は複数の判定がパラレルに、即ち同時に行
なわれるようになっており、それは、夫々の条件が互い
に関与しないものであったり、或いは、ある動作段階へ
達するための中間段階の飛越しが、回路によって行なわ
れたりするためである。Transmission / Reception of Primary Data Message FIG. 27 will be described below in addition to the other figures. FIG. It is a diagram. Even if a message is received in a buffer or memory, acceptance is not achieved unless the logical state shown is satisfied.
Although shown as a serial sequence of events in the figure, originally, a plurality of determinations are performed in parallel, that is, at the same time. Alternatively, an intermediate stage for reaching a certain operation stage may be performed by a circuit.
【0174】図1のネットワークの上のメッセージは、
図23及び図24の受信ネットワーク・データ・レジス
タ146の中を、EOM状態が識別されるまでの間通過
させられ、その状態が識別されたときに、メッセージが
完了したことが認識される。「ロック(LOCK)」状態が
存在している場合には、システムは図18のH.S.R
AM26" の中の応答ディレクトリを参照して、NAK
/LOCK拒絶メッセージを送出する。The messages on the network of FIG.
23 and 24 are passed through the receive network data register 146 until an EOM condition is identified, at which time the message is known to be complete. If the "LOCK" condition exists, the system proceeds to H. FIG. S. R
AM26 "and see NAK
Sends a / LOCK reject message.
【0175】そうでない場合、即ち「ロック」状態が存
在していない場合には、システムはマップ比較チェック
へ移り、このチェックは図23及び図24に示したイン
ターフェイスの中のDSW管理セクション190の内部
で実行される。「マップ出力=1」で表わされる、適切
な比較結果が存在している場合には、システムはそのメ
ッセージを受信し続けることができる。そのような比較
結果が存在していない場合には、そのメッセージは拒絶
され、NAPが送出される。Otherwise, that is, if the "lock" condition does not exist, the system moves to a map comparison check, which is performed inside the DSW management section 190 in the interface shown in FIGS. Executed in If there is a suitable comparison result, represented by "map output = 1", the system can continue to receive the message. If no such comparison exists, the message is rejected and a NAP is sent.
【0176】該当するマップが判定されたならば、それ
によってシステムはTNステータスを検査する準備が整
ったことになり、このTNステータスの検査は図18に
示されているTNのディレクトリを参照することによっ
て行なわれる(ここでTNステータスとは厳密には所与
のTNに関するプロセッサのステータスのことであり、
従ってH.S.RAM内のTNアドレスに格納されてい
るエントリによって表わされているレディネス状態のこ
とである)。更に詳しく説明すると、このTNステータ
スの検査は、局所的ステータス(=個々のプロセッサ・
モジュールのステータス)が「受信準備完了」であるか
否かを判定するために行なわれる。ここでは、先行する
あるプライマリ・メッセージによってTNの割当てが既
になされているものと仮定している。Once the appropriate map has been determined, the system is ready to check the TN status, which checks the TN directory shown in FIG. (Where TN status is strictly the status of the processor for a given TN,
Therefore, H. S. Readiness state represented by the entry stored at the TN address in the RAM). More specifically, this check of the TN status is based on the local status (= individual processor
This is performed to determine whether the status of the module is “ready for reception”. Here, it is assumed that the TN has already been assigned by a certain preceding primary message.
【0177】この検査の結果、TNが「実行終了(don
e)」状態、「非関与プロセッサ」状態、または「イニ
シャル」状態のいずれかのステータスであることが判明
した場合には、「NAP」拒絶メッセージが送出される
(ここでTNといっているのは、厳密にはH.S.RA
M内のTNアドレスに格納されているエントリのことで
あるが、以下、混同のおそれのない限りこのエントリの
ことも単にTNと称することにする)。もしこの判明し
たステータスが、他の規定外の状態であったならば、送
出される拒絶メッセージは「NAK/TNエラー」であ
り、以上の2つのタイプの拒絶メッセージもまた、図1
8の応答ディレクトリから取り出される。ステータスが
「受信準備完了」であったならば、更にもう1つの別の
判定が行なわれることになる。As a result of this inspection, TN indicates “execution end (don
e) If the status is found to be in one of the states "Non-participating processor" or "Initial", a "NAP" rejection message is sent out (where TN refers to TN). Strictly speaking, HS RA
This entry is stored at the TN address in M, but this entry will be simply referred to as TN unless there is a risk of confusion.) If the found status is any other out-of-spec condition, the reject message sent is a "NAK / TN error" and the two types of reject messages are also shown in FIG.
8 from the response directory. If the status was "ready to receive", yet another determination will be made.
【0178】このもう1つの別の判定とは、「入力オー
バラン」に関するものであり、この判定は、既に説明し
たように、図23及び図24の入出力管理バッファ・セ
クション170の内部において、GETアドレスとPU
Tアドレスとを比較することによって行なわれる。更に
はトランザクション・ナンバも、受信メッセージ・カウ
ントの値がゼロでないかどうかについて検査され、この
カウント値がゼロであれば、それは、同じく入力オーバ
ランを表示しているのである。オーバラン状態が存在し
ている場合には、「NAK/入力オーバラン」が送出さ
れてそのメッセージは拒絶される。This other determination relates to "input overrun", and as described above, this determination is performed within the input / output management buffer section 170 of FIGS. Address and PU
This is done by comparing with the T address. Furthermore, the transaction number is also checked for a non-zero received message count value, and if this count value is zero, it also indicates an input overrun. If an overrun condition exists, a "NAK / input overrun" is sent and the message is rejected.
【0179】以上のすべて条件が満足されていたなら
ば、H.S.RAM26" 内の応答ディレクトリから
「ACK」メッセージ(肯定応答メッセージ)が取り出
されてネットワーク上へ送出され、他のプロセッサ・モ
ジュールとの間で優先権が争われることになる。それら
の他のプロセッサ・モジュールのうちには、同じように
受信メッセージに対する肯定応答を送出したものもある
かもしてない。この時点で、もしネットワークから受取
る共通応答メッセージ(この「共通」とはマージされた
という意味である)が「ACK」メッセージであって、
従って、受信プロセッサ・モジュールとして選択された
「全ての」プロセッサ・モジュールが、先に受信したメ
ッセージの受入れが可能であることが明示されている場
合には、その受信メッセージの受入れがなされる。もし
この応答が「ACK」以外のいずれかの形であれば、先
の受信メッセージは「全ての」プロセッサから拒絶され
る。If all of the above conditions are satisfied, H.P. S. An "ACK" message (acknowledgment message) is retrieved from the response directory in the RAM 26 "and sent out over the network, so that the priority is contested with other processor modules. Some of these other processor modules may have also sent acknowledgments to the received message. At this point, if the common response message received from the network (the "common" means merged) is an "ACK" message,
Accordingly, if it is specified that "all" processor modules selected as receiving processor modules are capable of accepting a previously received message, the received message is accepted. If the response is in any form other than "ACK", the previously received message is rejected by "all" processors.
【0180】受信並びに応答についてのこの具体例にお
いては、プライマリ・メッセージが受信された後には、
全てのプロセッサが、ACK応答、NAK応答、及びN
AP応答のうちのいずれか1つを発生することに注目さ
れたい。プロセッサは、これらの応答メッセージのうち
のいずれか1つを受取ったならば、その直後にプライマ
リ・メッセージの伝送を試みることができる。(プロセ
ッサは、この伝送の試みを、ネットワークを通り抜ける
ための合計待ち時間相当の遅延に等しいかまたはそれよ
り大きい遅延の後に行なうこともでき、それについては
既に「能動ロジック・ノード」の章で説明したとおりで
ある)。もう1つ注目して頂きたいことは、もし、幾つ
かのプロセッサが互いに「同一の」メッセージを送信し
たならば、結果的にそれらのメッセージの全てがネット
ワーク上の競合を勝ち抜いたことになることも、あり得
るということである。その場合には、それらの送信プロ
セッサの「全て」がACK応答を受取ることになる。こ
のことは、後出の具体例で詳細に説明する、ブロードカ
スト(一斉伝送)及び大域的セマフォ・モードの動作に
関して重要である。In this example of receipt and response, after the primary message has been received,
All processors have an ACK response, a NAK response, and N
Note that it generates any one of the AP responses. As soon as the processor receives any one of these response messages, it can attempt to transmit the primary message. (The processor may also make this transmission attempt after a delay equal to or greater than the delay corresponding to the total latency to traverse the network, as already described in the "Active Logic Node" section. As you did). Another thing to note is that if several processors send "identical" messages to each other, all of those messages will have survived the contention on the network. Is also possible. In that case, "all" of those transmitting processors will receive the ACK response. This is important with respect to broadcast and global semaphore mode operation, which will be described in detail in a later example.
【0181】実際に使用されている本発明の実機例は、
これまでに説明したものに加えて更により多くの種類の
応答を含むと共に様々な動作を実行するようになってい
る。図30はそれらの応答と動作とを、LOCK、TN
エラー、及びオーバランの各割込み状態、予め識別され
ている9つの異なったステータス・レベル、それに肯定
応答(ACK)及び非該当プロセッサ応答に対するもの
として、縦列に並べた各項目で示している。Examples of actual machines of the present invention actually used are as follows.
It includes many more types of responses in addition to those described above and performs various operations. FIG. 30 shows those responses and operations as LOCK, TN
Error and overrun interrupt states, nine different pre-identified status levels, and columns for acknowledgment (ACK) and non-applicable processor responses.
【0182】あるプロセッサ・モジュールがメッセージ
の送信準備を完了したときには、図23及び図24のP
TNレジスタ206に格納されているPTN値は使用可
能状態となっており、従って必要とされるのはTNステ
ータスが「送信準備完了」状態にあることの確認だけで
ある。図22から分るように、「送信準備完了」のエン
トリ(記述項)は、出力メッセージのためのネクスト・
メッセージ・ベクタ・アドレスを含んでいる。アセンブ
ルが完了した出力メッセージはネットワーク上へ送出さ
れ、そしてもし競合に敗退したならば、PTNが途中で
変更されない限り、伝送が成功するまでこの送出動作が
反復され、そして成功したなら応答を受取ることにな
る。伝送が成功して肯定応答を受取ったならば、アドレ
ス・ベクタが変更される。ネクスト・メッセージ・ベク
タが、現在メッセージの中の第2番目のワード(図34
(a))から取り出され、このワードは送信トランザク
ション・ベクタ・カウンタ222からランダム・アクセ
ス・メモリ168へ転送される。出力メッセージ・セク
ションがオーバラン状態になければ、PUTカウンタ1
75が「1」だけ進められ、このオーバラン状態は、P
UTがGETに等しくなることによって表示される。
尚、送信トランザクション・ベクタ・カウンタ222か
ら転送されるネクスト・メッセージ・ベクタは、H.
S.RAMの中の現在トランザクション・ナンバ・レジ
スタ206によって指定されているトランザクション・
ナンバ・アドレスへ入力される。もし、この新たなTN
が「送信準備完了」状態のものであれば、この入力され
たベクタの値は、再び、このトランザクション・アイデ
ンティティに関係している次のメッセージ(ネクスト・
メッセージ)の格納位置を指し示している。H.S.R
AMの中に格納されている出力メッセージのフォーマッ
トについては、図34を参照されたい。When a processor module is ready to send a message, it returns to P in FIGS.
The PTN value stored in the TN register 206 is ready for use, so all that is required is to confirm that the TN status is in the "ready to send" state. As can be seen from FIG. 22, the "ready to send" entry (entry) is the next entry for the output message.
Contains the message vector address. The output message that has been assembled is sent out on the network, and if contention is lost, this sending operation is repeated until a successful transmission, unless a PTN is changed, and a response is received if successful. become. If the transmission is successful and an acknowledgment is received, the address vector is changed. The next message vector is the second word in the current message (FIG. 34).
Retrieved from (a)), this word is transferred from the transmit transaction vector counter 222 to the random access memory 168. If the output message section is not overrun, PUT counter 1
75 is advanced by "1" and this overrun condition is
Indicated by UT being equal to GET.
The next message vector transferred from the transmission transaction vector counter 222 is H.264.
S. The transaction specified by the current transaction number register 206 in RAM
Input to the number address. If this new TN
If is in the "ready to send" state, the value of this input vector is again the value of the next message (the next message) associated with this transaction identity.
Message). H. S. R
See FIG. 34 for the format of the output message stored in the AM.
【0183】ただし、メッセージを送出する際のメッセ
ージ管理には、PTNの内部的な、或いは外部からの変
更をはじめとする、多くの異なった形態の動作を含ませ
ておくことができる。エラー状態、オーバラン状態、な
いしロック状態によって、システムがトランザクション
・ナンバを「TN0」にシフトするようにしておくこと
ができ、このシフトによって、システムはノン・マージ
・モードに復帰し、そして「TN0」におけるステータ
スの検査を、「送信準備完了」状態が識別されるか或い
は新たなTNの割当てがなされるまで、続けることにな
る。かなり複雑な具体例に採用することのできる状態並
びに条件を示したものとして、図31及び図32のフロ
ーチャートを参照されたい。However, message management when sending a message can include many different forms of operation, including internal or external changes to the PTN. An error, overrun, or lock condition can cause the system to shift the transaction number to "TN0", which causes the system to return to non-merge mode, and then to "TN0" Will continue until the "ready to send" state is identified or a new TN is assigned. See the flowcharts of FIGS. 31 and 32 for conditions and conditions that can be employed in fairly complex embodiments.
【0184】出力メッセージ完了バッファの例 メッセージの伝送の完了が「ロック(LOCK)」を除いた
その他の任意の応答メッセージによって明示されたなら
ば、新たに完了した出力メッセージ・バッファを指し示
すポインタが、H.S.RAMの出力メッセージ完了循
環バッファ・セクション(図18参照)に格納される。
このポインタは、上記出力メッセージ・バッファのアド
レスを表わす単なる16ビット・ワードである。(出力
メッセージ・バッファのフォーマットは図34に示され
ている。出力メッセージ・バッファには、ネットワーク
から受取った応答メッセージを記録する場所が含まれて
いることに注目されたい)。Example of an Output Message Completion Buffer If the completion of the transmission of a message is indicated by any other response message except "LOCK", a pointer to the newly completed output message buffer is: H. S. It is stored in the output message completion circular buffer section of the RAM (see FIG. 18).
This pointer is simply a 16-bit word representing the address of the output message buffer. (The format of the output message buffer is shown in FIG. 34. Note that the output message buffer contains a place to record the response message received from the network.)
【0185】出力メッセージ完了循環バッファは、ネッ
トワーク・インタフェースのハードウェア120と、マ
イクロプロセッサ105の上に置かれた監視プログラム
との間の、通信の機能を果たすものである。このマイク
ロプロセッサの中に備えられているプログラムは、これ
から出力されるメッセージをH.S.RAMの中に格納
する。これに続く次の例で詳細に説明するが、複数の出
力メッセージを一緒に鎖状に連結し(チェーンし)、し
かもその際、TNがこの鎖(チェーン)の先頭のポイン
タとして働くようにすることができ、これによって作業
の複雑なシーケンスを形成することができる。その他の
特徴としては、ネットワークを複数のTNの間で多重化
即ち時分割(マルチプレクシング)することができるた
め(これについても後に詳述する)、ネットワーク内の
諸処に存在する様々な事象に応じた種々の順序でメッセ
ージを出力することができる。The output message completion circular buffer performs the function of communication between the network interface hardware 120 and the monitoring program located on the microprocessor 105. A program provided in the microprocessor transmits a message to be output from the microprocessor to H.264. S. Store in RAM. As will be described in more detail in the following example, a plurality of output messages are concatenated together (chained) together, with the TN acting as the leading pointer of this chain. Which can form complex sequences of operations. Another feature is that the network can be multiplexed or time-multiplexed between multiple TNs (also described in more detail below), so that the network can respond to various events that exist at various points in the network. The messages can be output in various orders.
【0186】更にまた、伝送に成功したパケットによっ
て占められていたH.S.RAM内の格納空間を迅速に
回復し、それによってその格納空間を、これから出力さ
れる別の出力パケットのために再使用できるようにする
ことが重要である。出力メッセージ完了循環バッファ
が、この機能を果たしている。Furthermore, the H.264 occupied by packets that have been successfully transmitted is used. S. It is important to quickly recover the storage space in RAM so that it can be reused for another output packet to be output. An output message completion circular buffer performs this function.
【0187】あるデータ・メッセージの送信が成功裏に
終了して「ロック」応答以外の応答を受信したならば、
ネットワーク・インターフェイスは、H.S.RAM内
の「0510(16進数)」に格納されているPUTポ
インタ(図20参照)を「1」だけ進め、また、この送
信が完了したばかりの出力メッセージの先頭のワードの
アドレスをPUTレジスタ内のアドレスへ格納する。
(PUTポインタの値が「0512(16進数)」に格
納されているTOPポインタの値より大きくなると、P
UTポインタは「0513(16進数)」に格納されて
いるBOTポインタ(=BOTTOMポインタ)と同じ
になるように最初にリセットされる)。PUTポインタ
がGETポインタ(格納位置「0511(16進
数)」)より大きくなるようならば、循環バッファが、
オーバランしているのであり、そのため「エラー割込
み」がマイクロプロセッサへ向けて発生される。If the transmission of a data message ends successfully and a response other than a "lock" response is received,
The network interface is H.264. S. The PUT pointer (see FIG. 20) stored in “0510 (hexadecimal)” in the RAM is advanced by “1”, and the address of the first word of the output message whose transmission has just been completed is stored in the PUT register. To the address.
(If the value of the PUT pointer becomes larger than the value of the TOP pointer stored in “0512 (hexadecimal)”, P
The UT pointer is first reset to be the same as the BOT pointer (= BOTTOM pointer) stored in “0513 (hexadecimal)”. If the PUT pointer is larger than the GET pointer (storage location “0511 (hexadecimal)”), the circular buffer
It is overrun, so an "error interrupt" is issued to the microprocessor.
【0188】マイクロプロセッサの内部で実行されてい
るソフトウェアによって、GETポインタが指示してい
る出力メッセージ・バッファが非同期的に調べられる。
プロセッサは、実行を要求された何らかの処理を完了し
たならば、GETポインタを「1」だけ進める(このG
ETの値は、TOPの値より大きくなるとBOTの値に
リセットされる)。GET=PUTとなっている場合に
は、処理せねばならない出力メッセージはもはや存在し
ていない。そうでない場合には、更に別の出力メッセー
ジが成功裏に送信を完了した状態にあるので、それらの
出力メッセージを処理せねばならない。この処理には、
H.S.RAMの出力バッファの格納空間を空きスペー
スに戻すことが含まれており、従ってこのスペースを他
のパケットのために再使用することできる。The output message buffer pointed to by the GET pointer is asynchronously examined by software running inside the microprocessor.
When the processor completes any processing requested to be executed, it advances the GET pointer by “1” (this G
When the value of ET becomes larger than the value of TOP, it is reset to the value of BOT.) If GET = PUT, there are no more output messages to process. Otherwise, further output messages have been successfully transmitted and must be processed. This process includes
H. S. This involves returning the storage space of the output buffer of the RAM to free space, so that this space can be reused for other packets.
【0189】ここで注目しておくべき重要なことは、出
力メッセージ完了循環バッファと入力メッセージ循環バ
ッファとは互いに別個のものであり、そのためこれら2
つの循環バッファは、夫々が別々のPUT、GET、T
OP、及びBOTの各ポインタによって管理されている
ということである。構成のしかたによっては、図23及
び図24に示されているように、これら両方の循環バッ
ファが、循環バッファ管理ハードウェア170を共用す
るようにもできるが、そのような構成が必須なわけでは
ない。It is important to note that the outgoing message completion circular buffer and the incoming message circular buffer are distinct from each other,
Two circular buffers, each with a separate PUT, GET, T
It is managed by each pointer of OP and BOT. Depending on the configuration, as shown in FIGS. 23 and 24, both circular buffers can share the circular buffer management hardware 170, but such a configuration is not essential. Absent.
【0190】初期設定の手順 各プロセッサ・モジュールは、そのプロセッサ・モジュ
ール自身の高速ランダム・アクセス・メモリ168(図
23及び図24)の内部のTNをアクセスする機能を備
えており、このメモリ168には、潜在的に使用可能な
複数のTNの、そのディレクトリが含まれている。ただ
し、割当てられていないTNは、そのTNに関連付けら
れている格納位置に格納されているトランザクション・
ナンバ値によって、割当てられていない旨が明確に表示
されている。従って、マイクロプロセッサ・システム1
03は、割当てられていないトランザクション・ナンバ
を識別し、そしてそれらのうちの1つを、所与のトラン
ザクション・アイデンティティに関して他のプロセッサ
・モジュールとの間の通信を開始するのに使用するため
に選択することができる。Initial Setting Procedure Each processor module has a function of accessing the TN inside the high-speed random access memory 168 (FIGS. 23 and 24) of the processor module itself. Contains its directory of potentially available TNs. However, a TN that has not been assigned is assigned to a transaction stored in a storage location associated with the TN.
The number value clearly indicates that it has not been assigned. Therefore, the microprocessor system 1
03 identifies unassigned transaction numbers and selects one of them to use to initiate communication with other processor modules for a given transaction identity. can do.
【0191】トランザクション・ナンバは、ローカル・
マイクロプロセッサ(=プロセッサ・モジュール内のマ
イクロプロセッサ)の制御の下に、局所的に割当てられ
且つ更新されるが、ネットワーク内の全域における大域
的制御は、「TN放棄命令」及び「TN割当命令」とい
うプライマリ制御メッセージを用いて行なわれる。同一
のTNを要求する可能性のある互いに競合する複数のプ
ロセッサ・モジュールの間にデッドロック状態が発生す
ることは決してなく、そのわけは、ネットワークが、よ
り小さな番号を付けられているプロセッサの方に優先権
を与えるからである。そのTNを得ようとしたプロセッ
サのうちで優先権を得られなかった残りのプロセッサは
「NAK/TNエラー」応答を受取ることになり、この
応答は、それらのプロセッサが別のTNを確保すること
を試みなければならないということを表示するものであ
る。従って、それらのトランザクション・アイデンティ
ティの確保並びに照合を、システムの内部で及び局所的
に行なう際の、完全なフレキシビリティが得られてい
る。更に注目して頂きたいことは、TNの反復使用は、
「TN0」である基本伝送モードと、TNがゼロより大
きいマージ・モードとの間の、シフトによって行なわれ
ているということである。従ってこのシステムは、ただ
1回のTNのブロードカスト式の伝送によって、その動
作の焦点だけでなくその動作の性質をも変えることがで
きる。The transaction number is the local
Locally assigned and updated under the control of a microprocessor (= microprocessor in a processor module), but global control throughout the network includes "TN abandonment instructions" and "TN allocation instructions" This is performed using the primary control message described above. There will never be a deadlock condition between competing processor modules that may require the same TN, because the network may be more susceptible to lower numbered processors. Is given priority. The remaining processors that tried to get the TN but did not get priority will receive a "NAK / TN error" response, which indicates that they have acquired another TN. Must be tried. Thus, complete flexibility has been obtained in securing and matching their transaction identities, both internally and locally. It should also be noted that repeated use of TN
This is done by shifting between the basic transmission mode which is "TN0" and the merge mode where TN is greater than zero. Thus, the system can change not only the focus of its operation, but also the nature of its operation, with only one broadcast transmission of the TN.
【0192】大域的ステータスの変化を伝達するための
更に別の、そして特に有用な方式は、図14に関して既
に説明した強制パリティ・エラーの伝播である。この独
特の表示方式は、その他の伝送の間にはさみ込まれて伝
送されると、中止されたシステム資源が調査され、そし
て適切な動作が実行されることになる。Yet another, and particularly useful, scheme for communicating global status changes is the forced parity error propagation described above with respect to FIG. This unique display scheme, when interleaved and transmitted between other transmissions, causes the aborted system resources to be examined and the appropriate action to be taken.
【0193】プロセッサ対プロセッサ通信 プロセッサ通信として、2種類の特別の形態のものがあ
り、その一方は特定の1つの転送先プロセッサへ向けて
行なわれる通信であり、他方は、1つのクラスに属する
複数のプロセッサを転送先として行なわれる通信であ
る。これらの両タイプの伝送はいずれもDSWを利用し
ており、また、これらの伝送はいずれも、ノン・マージ
・モードのブロードカストによって実行される。Processor-to-Processor Communication There are two types of special types of processor communication, one of which is communication directed to one specific destination processor, and the other is a plurality of communication belonging to one class. This communication is performed with the processor of the transfer destination. Both of these types of transmissions utilize DSW, and both of these transmissions are performed by non-merge mode broadcast.
【0194】特に1つの発信元プロセッサと1つの転送
先プロセッサとの間での通信を行なう際には、DSWの
中に転送先プロセッサ識別情報(destination processo
r identification:DPID)を入れて使用する。図1
8を参照しつつ説明すると、このDPIDの値を用いて
各々の受信プロセッサ・モジュールのH.S.RAM2
6" の選択マップ部分がアドレスされると、転送先とし
て意図された特定のプロセッサ・モジュールだけが、肯
定的な応答を発生してそのメッセージを受入れる。肯定
応答が送信され、しかもそれが最終的に成功裏に受信さ
れたならば、両者のプロセッサは、要求されている将来
の動作のいずれでも実行できる状態になる。In particular, when performing communication between one source processor and one destination processor, destination processor identification information (destination process information) is stored in the DSW.
r identification: DPID). FIG.
Referring to FIG. 8, the DP.ID of each receiving processor module is used by using the DPID value. S. RAM2
When the 6 "selection map portion is addressed, only the particular processor module intended for transfer will generate a positive response and accept the message. The positive response is sent and it is eventually Successfully received, both processors are ready to perform any of the required future operations.
【0195】ある1つのメッセージを、ある1つの制御
プロセスに関係する、1つのクラスに属する複数のプロ
セッサが受信すべき場合には、DSW内のマップ・ニブ
ルとマップ・アドレスとによって、H.S.RAMの選
択マップ部分の中の対応するセクションが指定される。
そして、全ての受信プロセッサが夫々に肯定応答を送出
し、それらの肯定応答は、発信元プロセッサ・モジュー
ルへ到達するための競合を、この通信のための往復送受
信が最終的に完了するまで続けることになる。When a certain message is to be received by a plurality of processors belonging to one class related to a certain control process, the H.264 / H.264 communication is performed by the map nibble and the map address in the DSW. S. The corresponding section in the selection map portion of the RAM is specified.
All the receiving processors then send out acknowledgments to each other, and the acknowledgments continue to reach the source processor module until the round trip for this communication is finally completed. become.
【0196】全域ブロードカスト・モードのプロセッサ
通信は、プライマリ・データ・メッセージ、ステータス
・メッセージ、制御メッセージ、並びに応答メッセージ
の、各メッセージの通信に用いることができる。優先順
位プロトコルと、優先権を付与する機能を備えたネット
ワークとの、両者の固有の能力によって、その種のメッ
セージをその他の種類のメッセージのシーケンスの中に
容易に挿入できるようになっている。The global broadcast mode processor communication can be used for communication of primary data messages, status messages, control messages, and response messages. The inherent capabilities of both the priority protocol and the network with the ability to grant priority make it easy to insert such messages into sequences of other types of messages.
【0197】ハッシング・モードのプロセッサ選択は、
リレーショナル・データベース・システムにおけるデー
タ処理のタスクを実行する際には、他から飛び抜けて多
用されるプロセッサ選択方式である。一次的データ(=
バックアップ用ではないメインのデータ)についての互
いに素の(=同一の要素を共有しない)複数のデータ部
分集合と、バックアップ用データについての互いに素の
複数のデータ部分集合とが、適当なアルゴリズムに従っ
て、異った複数の二次記憶装置の中に分配されてい
る。1つのプロセッサが一次的データの部分集合を分担
し別の1つのプロセッサがバックアップ用データの部分
集合を分担しているためにそれら2つのプロセッサが同
時に応答した場合には、一次的データについてのメッセ
ージの方に優先権が与えられる。この条件が補償される
ようにするためには、優先順位のより高いコマンド・コ
ード (図22参照)を選択するようにすれば良い。デ
ータベースの信頼性及び完全性の維持も、以上の様々な
マルチプロセッサ・モードを利用することによって達成
され、その場合、発生した個々の状況に対して最も有利
なようにそれらのモードが適用される。例を挙げるなら
ば、一次的データのある部分集合を分担している二次記
憶装置が故障した場合には、特別のプロセッサ対プロセ
ッサ通信を利用してそれを更新することができる。また
エラーの訂正やデータベースの一部分のロールバック
は、これと同様の方式で、或いはクラス・モードで動作
させることによって、行なうことができる。The processor selection in the hashing mode is as follows.
When executing a data processing task in a relational database system, a processor selection method is used which is by far the most frequently used. Primary data (=
A plurality of disjoint (= not sharing the same element) data subsets for the non-backup main data) and a disjoint data subset for the backup data are calculated according to an appropriate algorithm. Distributed among different secondary storage devices
You. A message about the primary data if two processors respond simultaneously because one processor is sharing a subset of the primary data and another is sharing a subset of the backup data. Is given priority. In order to compensate for this condition, a command code having a higher priority (see FIG. 22) may be selected. Maintaining the reliability and integrity of the database is also achieved by utilizing the various multi-processor modes described above, in which those modes are applied in the most advantageous way for the particular situation encountered. . For example, if the secondary storage device sharing a subset of the primary data fails, it can be updated using special processor-to-processor communication. Error correction and rollback of a part of the database can be performed in the same manner or by operating in the class mode.
【0198】トランザクション・ナンバの例 トランザクション・ナンバという概念により、マルチプ
ロセッサ・システムの制御のための新規にして強力なハ
ードウェア機構が得られている。本システムにおいて
は、トランザクション・ナンバは「大域的セマフォ」を
構成しており、また、ネットワークに対するメッセージ
の送受信と、複数のプロセッサに分配されたある1つの
所与のタスクのレディネス状態の確認との夫々におい
て、重要な役割りを果たしている。Transaction Number Examples The concept of transaction numbers has provided a new and powerful hardware mechanism for controlling multiprocessor systems. In the present system, the transaction number constitutes a "global semaphore", and is used to transmit and receive messages to and from the network and to confirm the readiness of a given task distributed to a plurality of processors. Each plays an important role.
【0199】トランザクション・ナンバ(TN)は、
H.S.RAM26の中の16ビット・ワードとして物
理的に実現されている。このワードは、様々な機能を果
たせるように、図22に示すようなフォーマットとされ
ている。TNはH.S.RAMに格納されるため、マイ
クロプロセッサ105とネットワーク・インターフェイ
ス120とのいずれからもアクセスすることができる。The transaction number (TN) is
H. S. It is physically implemented as a 16-bit word in RAM 26. This word has a format as shown in FIG. 22 so as to perform various functions. TN is H. S. Since it is stored in the RAM, it can be accessed from both the microprocessor 105 and the network interface 120.
【0200】大域的セマフォ 「セマフォ」という用語は、コンピュータ科学関係の文
献において、互いに非同期的に実行される複数の処理の
制御に用いられる変数を指し示すための用語として、一
般的に使用されるようになっている。セマフォは、中断
されることのない 1回の操作でそれを「テスト・アン
ド・セット」することができるという性質をもってい
る。Global Semaphore The term "semaphore" is a commonly used term in computer science literature to refer to variables used to control multiple operations that are performed asynchronously with respect to each other. It has become. A semaphore has the property that it can be "tested and set" in one uninterrupted operation.
【0201】一例として、「アンアサインド(UNASSIGN
ED:割当てがなされていない状態)」と、「アサインド
(ASSIGNED:割当てがなされている状態)」との2つの
状態を取り得るセマフォ変数について考察することにす
る。この場合には、テスト・アンド・セット動作は次の
ように定義される:もしセマフォが「アンアサインド」
状態にあったなら ば、そのセマフォを「アサインド」
状態にセットして成功を表示すること;反対にセマフォ
が既に「アサインド」状態にあったならば、そのセマフ
ォを「アサインド」状態のままにしておいて「失敗」を
表示すること。従って、このセマフォに拠れば、セマフ
ォのテスト・アンド・セットに成功した処理は自らのタ
スクを続行することができ、一方、それに失敗した処理
は、そのセマフォが 「アンアサインド」状態にリセッ
トされるのを待つか、或いは、等価の別の資源を制御し
ている別のセマフォをテスト・アンド・セットすること
を試みるかの、いずれかを余儀なくされる。容易に理解
できることであるが、仮にテスト・アンド・セット動作
が中断されるようなことがあり得るとするならば、2つ
の処理が同時に同じ資源にアクセスしてしまう可能性が
生じ、それによって予測することのできない誤った結果
が生じてしまうおそれがある。As an example, “UNASSIGN
Let us consider semaphore variables that can take two states, "ED: state where assignment is not made" and "assigned (state where assignment is made)". In this case, the test-and-set operation is defined as follows: if the semaphore is "unassigned"
If so, the semaphore is assigned
Setting the state to indicate success; conversely, if the semaphore was already in the "assigned" state, leave the semaphore in the "assigned" state and indicate "failure". Thus, according to this semaphore, operations that successfully test and set the semaphore can continue their tasks, while operations that fail will reset the semaphore to an "unassigned" state. Or attempt to test and set another semaphore controlling another equivalent resource. As can be easily understood, if the test and set operation could be interrupted, there is a possibility that the two processes may access the same resource at the same time, thereby preventing the prediction. Erroneous results that cannot be obtained may occur.
【0202】[0202]
【00180】いかなるマルチプロセッサ・システム
も、システムの資源へのアクセスを制御するために、セ
マフォと同一視することのできる概念を、ハードウェア
によって実際に具体化している。しかしながら、従来の
システムは、1コピーのセマフォ(=部数が1部のセマ
フォ、即ち1箇所だけに設けられるセマフォ)しか維持
することができない。そこで、複数コピーのセマフォ
(=部数が複数のセマフォ、即ち複数箇所に設けられる
セマフォ)を、各プロセッサに1コピーづつ設けて維持
するようにすれば、単にテストするだけのセマフォのア
クセスのために競合が発生する回数を低減するという目
的と、後に説明するその他の用途に多価のセマフォ変数
を利用するという目的との、双方のために望ましい。問
題は、セマフォの多数のコピーに対し、完全に同期した
操作を加えねばならないということであり、もしこのこ
とが守られなかったならば、それを強化するためにセマ
フォが設けられているところの、資源へのアクセスの完
全性が失われてしまうことになる。Any multiprocessor system actually implements, in hardware, a concept that can be equated with a semaphore to control access to system resources. However, the conventional system can maintain only one copy of a semaphore (= a semaphore having one copy, that is, a semaphore provided only at one location). Therefore, if semaphores of a plurality of copies (= semaphores having a plurality of copies, that is, semaphores provided at a plurality of locations) are provided and maintained one by one in each processor, the semaphores can be simply accessed for testing. It is desirable both for the purpose of reducing the number of occurrences of contention and for the purpose of utilizing multivalent semaphore variables for other uses described below. The problem is that many copies of the semaphore must be completely synchronized, and if this is not followed, semaphores are provided to enhance it. In this case, the integrity of access to resources is lost.
【0203】複数コピーのセマフォ、即ち「大域的」セ
マフォは、本システムによって提供される。次に示す表
は、大域的セマフォに関する動作を、単一セマフォ(1
コピーのセマフォ)と対比したものである。Multiple copy semaphores, or "global" semaphores, are provided by the present system. The following table describes the operations on the global semaphore as a single semaphore (1
Semaphore of a copy).
【0204】[0204]
【表1】 本実施例のシステムにおいては、「TN割当(ASSIGN T
N )」コマンドと「TN放棄(RELIN-QUISH TN)」コマン
ドとが、大域的セマフォとして利用されているトランザ
クション・ナンバに対するテスト・アンド・セット機能
とリセット機能とを夫々に担っている。図22について
説明すると、「NAK/TNエラー」応答が失敗を表示
し、一方、「SACK/アサインド」応答が成功を表示
する。[Table 1] In the system of the present embodiment, “TN assignment (ASSIGN T
N)) command and the "TN Abandon (RELIN-QUISH TN)" command respectively perform a test-and-set function and a reset function for a transaction number used as a global semaphore. Referring to FIG. 22, a "NAK / TN error" response indicates failure, while a "SACK / assigned" response indicates success.
【0205】複数のノードを同期してクロッキングする
ために用いられている同期クロッキング方式や、全ての
プロセッサへ同時に最優先パケットを伝送するブロード
カスト動作をはじめとする、このネットワークの特質
は、大域的セマフォという概念を実際に具体化する上で
の基礎を成すものである。この概念が実施されているた
めに、このシステムは所望のシステム資源の複数のコピ
ーの、その割付け(アロケーション)、割付け解除(デ
アロケーション)、並びにアクセスの制御を、単にその
資源にTNを付与することによって行なえるようになっ
ている。ここで注目すべき重要なことは、分散された資
源の制御を、単一セマフォの場合と略々同程度の小規模
なソウトウェア・オーバヘッドで、実行できるようにな
っているということである。このことは従来のシステム
に対する非常な進歩であり、なぜならば、従来のシステ
ムは、分散型の資源を管理できないか、或いは、複雑な
ソフトウェアによるプロトコルが必要とされ且つハード
ウェア的なネックを生じてしまうかの、いずれかだから
である。The characteristics of this network include a synchronous clocking method used for synchronously clocking a plurality of nodes and a broadcast operation for transmitting the highest priority packet to all processors at the same time. It is the basis for the realization of the concept of global semaphores. Due to the implementation of this concept, the system gives control of the allocation, deallocation, and access of multiple copies of the desired system resource, simply granting the TN to that resource. This can be done by doing. It is important to note that control of distributed resources can be performed with a small amount of software overhead that is almost the same as that of a single semaphore. This is a significant advance over traditional systems because they cannot manage distributed resources or require complex software protocols and create hardware bottlenecks. Either it will be lost.
【0206】レディネス状態 「ビズィ(BUSY)」、「ウェイティング(WAITING
)」、「準備完了(READY)」(送信と受信の夫々の準
備完了)、「終了(DONE)」、及び「非関与プロセッサ
(NON-PARTICIPANT )」から成る1組の値(図22参
照)が、あるTNを付与されたタスクの、そのレディネ
ス状態を速やかに確認する能力を提供している。このシ
ステムでは、以上の各状態の意味するところは、次の表
が示すようになっている。Readiness state "BUSY", "WAITING"
) "," READY "(ready for transmission and reception ready)," DONE ", and" NON-PARTICIPANT "(see FIG. 22). Provides the ability to quickly check the readiness of a task assigned a TN. In this system, the meaning of each state described above is as shown in the following table.
【0207】[0207]
【表2】 「TN割当」コマンドを用いて、タスクへのTNの付与
が動的に行なわれるようになっている。成功表示(「T
N割当」メッセージに対する「SACK/アサインド」
応答)は、すべての動作可能なプロセッサが成功裏にT
Nのタスクへの割当てを完了したことを示す。図21に
関して注目すべきことは、「NAK/TNエラー」応答
は高い優先順位(小さな値)をもっているため、いずれ
かのプロセッサのネットワーク・インターフェイス12
0がTNの使用に関する衝突を検出したならば、全ての
プロセッサが失敗応答を受取るということである。更
に、ネットワーク上を伝送されるこの失敗応答のOPI
D(発信元プロセッサID)フィールドは、衝突のあっ
たプロセッサのうちの第1番目の(付された番号が最小
の)プロセッサを表示することになる。この事実は、診
断ルーチンに利用される。各々のプロセッサは、ソフト
ウェアの働きにより、タスクを処理し、そしてTNを
「ビズィ」、「ウェイティング」、「送信準備完了」、
「受信準備完了」、「終了」または「非関与プロセッ
サ」のうちの該当するものにセットする。最初の「TN
割当」を発令したプロセッサを含めどのプロセッサも、
任意の時刻に、「ステータス・リクエスト」コマンド或
いは「マージ開始」コマンドを発令することによって、
タスク(TN)がどの程度に完了しているかという状態
を容易に確認することができる。[Table 2] The assignment of the TN to the task is dynamically performed by using the “TN assignment” command. Success indication ("T
"SACK / assigned" for "N Assignment" message
Response) indicates that all operational processors have successfully T
Indicates that the assignment of N to the task has been completed. It should be noted with respect to FIG. 21 that the "NAK / TN error" response has a higher priority (lower value), so that the network interface 12
If 0 detects a collision regarding the use of TN, all processors will receive a failure response. Further, the OPI of this failure response transmitted over the network
The D (originating processor ID) field indicates the first (smallest numbered) processor among the processors having a collision. This fact is used in the diagnostic routine. Each processor handles the tasks by software and sets the TN to “Biz”, “Waiting”, “Ready to send”,
Set to "Ready to receive", "End" or "Non-participating processor". The first "TN
Any processor, including the processor that issued the assignment ",
At any time, by issuing a "status request" command or a "merge start" command,
It is possible to easily check how much the task (TN) has been completed.
【0208】「ステータス・リクエスト」は、多価の
(=多種の値を取り得る)大域的セマフォの1回のテス
トと同じことである。図21から分るように、優先順位
が最も高いステータス応答(SACK)メッセージがネ
ットワーク上の競合を勝ち抜き、その結果、最も低いレ
ディネス状態が表示されることになる。更に、そのOP
IDフィールドは、その最低のレディネス状態にあるプ
ロセッサのうちの第1番目の(付された番号が最小の)
プロセッサのアイデンティティ(素性)を表示すること
になる。A "status request" is the same as a single test of a multivalent (= possible value) global semaphore. As can be seen from FIG. 21, the highest priority status response (SACK) message wins the competition on the network, resulting in the lowest readiness state being indicated. Furthermore, the OP
The ID field is the first (lowest numbered) processor among the processors in its lowest readiness state.
It will show the identity of the processor.
【0209】この後者の特性を用いて、複数のプロセッ
サに分配されたタスクの完了を「待機」するための、
「ノン・ビズィ(non-bysy)」の形態が定められてい
る。最初に「TN割当」を発令したプロセッサは初代の
「ウェイト・マスタ」であるとされる。このプロセッサ
は次に、任意の基準に基づいて、他のいずれかのプロセ
ッサを新たな「ウェイト・マスタ」に指定する。この新
たな「ウェイト・マスタ」は、それ自身が所望のレディ
ネス状態に到達したならば、「マージ開始」或いは「ス
テータス・リクエスト」のいずれかを発令することによ
って、全てのプロセッサに対する問合せを行なう。もし
他のプロセッサの全てが準備完了状態となっていたなら
ば、SACKがその旨を表示することになる。もし幾つ
かのプロセッサが尚、準備完了状態にはなかったなら
ば、SACK応答のOPIDフィールドが、レディネス
状態が最低のプロセッサのうちの第1番目のものを表示
することになる。「ウェイト・マスタ」はそのプロセッ
サに対し、新しい「ウェイト・マスタ」になるように命
令する。結局最後には全てのプロセッサが準備完了状態
となるのであるが、それまでの間、このシステムは、少
なくとも一つのプロセッサが準備完了状態に到達したこ
とを知らされる都度、ステータスの問合せを試みるだけ
である。従ってこのシステムは、結果を出さずに資源を
消費する周期的なステータス問合せという負担を負わさ
れることがない。更にこの方式によれば、最後に完了す
る処理が終了した丁度その時刻に、全てのプロセッサが
仕事を完了したということをシステムが確実に知ること
になる。当業者には理解されるように、本発明の概念の
範囲内でその他の多種多様な「待機」の形態を採用する
ことができる。Using this latter property, a "wait" for the completion of a task distributed to multiple processors is provided.
The form of "non-bysy" is defined. The processor that first issues "TN assignment" is considered to be the original "wait master". The processor then designates any other processor as a new "wait master" based on any criteria. When the new "wait master" has reached the desired readiness state, it issues an inquiry to all processors by issuing either a "merge start" or a "status request". If all of the other processors were ready, the SACK would indicate so. If some processors were still not in the ready state, the OPID field of the SACK response would indicate the first of the processors with the lowest readiness state. The "wait master" instructs the processor to become the new "wait master". Eventually, all processors will be ready, but until then, the system will only attempt to query the status each time at least one processor is notified that it has reached the ready state. It is. Thus, the system is not burdened with periodic status queries that consume resources without producing results. Further, according to this method, the system can surely know that all the processors have completed their work just at the time when the processing to be completed last is completed. As will be appreciated by those skilled in the art, a wide variety of other "waiting" forms may be employed within the scope of the inventive concept.
【0210】「マージ開始」コマンドは、1つの特殊な
種類のテスト・アンド・セット命令である。大域的セマ
フォのステータスが「送信準備完了」または「受信準備
完了」である場合には、現在トランザクション・ナンバ
・レジスタ(PTNR)206(図23及び図24参
照)が「マージ開始」メッセージ (図13参照)内の
トランザクション・ナンバの値にセットされ、これによ
ってPTNRレジスタの設定が行なわれる。動作中のプ
ロセッサのいずれかが、より低位のレディネス状態にあ
る場合には、PTNRの値は変更されない。[0210] The "merge start" command is one special type of test and set instruction. If the status of the global semaphore is “ready to send” or “ready to receive”, the current transaction number register (PTNR) 206 (see FIGS. 23 and 24) displays a “merge start” message (FIG. 13). ) Is set to the value of the transaction number in the above, thereby setting the PTNR register. If any of the active processors is in a lower readiness state, the value of PTNR is not changed.
【0211】「マージ停止」コマンドは、以上の動作に
対応するリセット動作であって、すべての動作中のプロ
セッサのPTNRを無条件に「TN0」にリセットする
ものである。The “merge stop” command is a reset operation corresponding to the above operation, and unconditionally resets the PTNRs of all active processors to “TN0”.
【0212】後に説明するように、PTNRによって指
定されている現在大域的タスク(current global task
)に関係するメッセージだけが、ネットワーク・イン
ターフェイス120から出力されるようになっている。
従って、「マージ開始」コマンド及び「マージ停止」コ
マンドは、複数のタスクの間でネットワークを時間多重
化、即ち時分割(タイム・マルチプレクシング)するこ
とのできる能力を提供しており、従ってそれら複数のタ
スクは、任意に中止、及び/または再開することができ
るようになっている。As described later, the current global task (current global task) specified by the PTNR
) Are output from the network interface 120.
Thus, the "Start Merge" and "Stop Merge" commands provide the ability to time multiplex, or time multiplex, the network between multiple tasks, and thus Can be arbitrarily stopped and / or resumed.
【0213】本発明の細部の特徴で重要なものに、ネッ
トワーク・インターフェイス120が、ネットワークか
らのコマンドによるTNのアクセスと、マイクロプロセ
ッサ105によるTNのアクセスとが、決して同時に行
なわれないようにしているということがある。本実施例
においては、これは、受信状態制御回路260から読出
し/書込み状態制御回路270へ送られている信号によ
って達成されており、この信号は、TNを変更する可能
性のあるネットワークからのコマンドの処理が行なわれ
ているときには必ず「肯定」状態とされている。この信
号が「肯定」状態にある短い時間の間は、プロセッサ
は、H.S.RAMへのアクセスを、制御回路270に
よって禁止されている。当業者には理解されるように、
本発明の範囲内で、以上の構成の代りになる多種多様な
代替構成を採用することができる。Significantly, in the details of the present invention, the network interface 120 ensures that access to the TN by a command from the network and access to the TN by the microprocessor 105 are never performed simultaneously. There is that. In the present 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 a command from the network that may change TN. Is always "Yes" when the processing of (1) is performed. During the brief period in which this signal is in the "positive" state, the processor will S. Access to the RAM is prohibited by the control circuit 270. As will be appreciated by those skilled in the art,
A wide variety of alternatives to the above may be employed within the scope of the present invention.
【0214】受信制御 TNの更に別の機能に、入力メッセージの制御がある。
「TN割当」コマンドを用いることによって、所与のタ
スクに対して、複数のプロセッサにおける入力メッセー
ジ・ストリームを関連付けることができる。所与のプロ
セッサの中の当該タスクに割当てられているTNが「受
信準備完了」にセットされているときには、そのTNは
更に、そのプロセッサが受入れる用意のあるパケットの
個数を表わすカウント値を併せて表示している(図2
2)。ネットワーク・インターフェイス120は、個々
のパケットを成功裏に受信するたび毎にこのカウント値
をデクリメントし(このデクリメントはTNのワードか
ら算術的に「1」を減じることによって行なわれる)、
このデクリメントはこのカウント値がゼロに達するまで
続けられる。カウント値がゼロに達したときには「NA
CK/オーバラン」応答が発生され、それによって、パ
ケットを送出しているプロセッサに対し、このNACK
応答を発しているプロセッサがより多くの入力パケット
を受入れる用意ができるまで待機しなければならないこ
とが知らされる。更にまた、図30から分るように、こ
のときには PTNRの「TN0」へのリセットも併せ
て行なわれる。Reception Control Another function of the TN is to control input messages.
By using the "assign TN" command, an input message stream in multiple processors can be associated with a given task. When the TN assigned to the task in a given processor is set to "ready to receive", the TN also includes a count value representing the number of packets the processor is ready to accept. Is displayed (Fig. 2
2). The network interface 120 decrements this count value after each successful receipt of an individual packet (this decrement is performed by arithmetically subtracting a "1" from the word in TN);
This decrement continues until the count reaches zero. When the count value reaches zero, “NA
A "CK / Overrun" response is generated, which causes this NACK to be sent to the processor sending the packet.
It is informed that the responding processor must wait until it is ready to accept more incoming packets. Further, as can be seen from FIG. 30, the PTNR is reset to "TN0" at this time.
【0215】以上の動作メカニズムにより、ネットワー
クを流通するパケットの流れの制御を直截的に行なえる
ようになっている。またそれによって、1つのプロセッ
サに未処理のパケットが多量に詰め込まれることがない
ように、そしてそのプロセッサがシステムにとってのネ
ックになってしまうことがないように、保証されてい
る。With the above operation mechanism, it is possible to directly control the flow of packets flowing through the network. It also ensures that one processor is not packed with large amounts of unprocessed packets and that the processor does not become a bottleneck for the system.
【0216】送信制御 図34(a)について説明すると、同図から分るよう
に、H.S.RAMに格納されている各メッセージは、
新TNベクタ(=ネクスト・メッセージ・ベクタ)の値
を収容するためのフィールドを含んでいる。メッセージ
を送信してそれに対する応答を成功裏に受信したなら
ば、この送信したばかりのメッセージに含まれていた新
TNベクタが、H.S.RAMの中の現在トランザクシ
ョン・ナンバを格納するためのアドレスへ(PTNRか
ら転送されて)格納される。従って、TNは個々のメッ
セージが送出されるたび毎に更新され、また、メッセー
ジの伝送に成功した際にはTNが自動的に所望の状態に
セットされるようにすることが可能となっている。Transmission Control Referring to FIG. 34 (a), as can be seen from FIG. S. Each message stored in RAM is
A field for containing the value of the new TN vector (= next message vector) is included. If the message has been sent and a response to it has been successfully received, the new TN vector contained in the message just sent will contain the H.264 vector. S. Stored (transferred from PTNR) to an address in RAM to store the current transaction number. Therefore, the TN is updated each time an individual message is sent, and it is possible to automatically set the TN to a desired state upon successful transmission of the message. .
【0217】図22について説明すると、「送信準備完
了」のTNのフォーマットは、14ビットのH.S.
RAM内のアドレスを含んでおり、このアドレスは、所
与のタスク(TN)に関して次に出力すべきパケットを
指し示すのに用いられている。従って、H.S.RAM
の中に格納されているTNは、種々のタスクに関するメ
ッセージの、先入先出式(FIFO)待ち行列の、その
先頭を指し示すヘッド・ポインタとしての機能も果たし
ている。従って、所与の1つのタスク(TN)に関する
限りにおいては、各プロセッサは、新TNベクタのチェ
ーンによって定められた順序で、パケットの送出を試み
ることになる。Referring to FIG. 22, the format of the TN of “transmission ready” is a 14-bit H.264 format. S.
Contains the address in RAM, which is used to point to the next packet to output for a given task (TN). Therefore, H. S. RAM
The TN stored in also serves as a head pointer to the head of a first-in, first-out (FIFO) queue of messages for various tasks. Thus, as far as one given task (TN) is concerned, each processor will try to send out the packets in the order defined by the chain of new TN vectors.
【0218】先に説明した、複数のTN(タスク)の間
でネットワークを高速で多重化(マルチプレクシング)
するための機構と組合わせることによって、多くのプロ
セッサの間に分配された何組もの複雑な組合せのタスク
を、極めて小規模なソフトウェア・オーバヘッドで管理
できるようになることは明らかである。ネットワーク
と、インターフェイスと、プロセッサとの共同動作によ
って提供されている構成は、そのコピーを数百個のプロ
セッサの間に分配することができ、更には数千個のプロ
セッサの間にすら分配することのできる資源及びタスク
に対して、資源の割付けと割付け解除、タスクの中止と
再開、それにその他の制御を行なうための好適な構成で
ある。High-speed multiplexing of a network among a plurality of TNs (tasks) as described above (multiplexing)
Obviously, in combination with the mechanisms for doing so, many complex sets of tasks distributed among many processors can be managed with very little software overhead. The configuration provided by the co-operation of the network, the interface, and the processors allows their copies to be distributed among hundreds of processors, and even even among thousands of processors. This is a preferred configuration for allocating and deallocating resources, suspending and resuming tasks, and performing other controls on resources and tasks that can be performed.
【0219】DSW(転送先選択ワード)の例 転送先選択ワード(図13)は、DSWロジック190
(図23及び図24)及びH.S.RAM26(図1
8)のDSWセクションと協働することによって、以下
のことを可能とする複数のモードを提供するものであ
る。即ち、それらのモードとは、各々の受信プロセッサ
のネットワーク・インターフェイス120が、受信中の
メッセージは当該ネットワーク・インターフェイスに組
合わされているマイクロプロセッサ105によって処理
されることを意図したものか否かの判定を、迅速に下せ
るようにするための複数のモードである。既に説明した
ように、受信メッセージの中に含まれているDSWは、
H.S.RAMのDSWセクションに格納されているニ
ブルを選択すると共に、そのニブルと比較される。Example of DSW (Transfer Destination Selection Word) The transfer destination selection word (FIG. 13)
(FIGS. 23 and 24) and S. RAM 26 (FIG. 1)
By cooperating with the DSW section of 8), it provides a plurality of modes that enable: That is, the modes are determined by the network interface 120 of each receiving processor as to whether the message being received is intended to be processed by the microprocessor 105 associated with that network interface. Is a plurality of modes for making it possible to quickly turn off. As already explained, the DSW included in the received message is
H. S. The nibble stored in the DSW section of the RAM is selected and compared with the nibble.
【0220】プロセッサ・アドレス 図18に示されているように、H.S.RAMのDSW
セクションの1つの部分がプロセッサ・アドレス選択ニ
ブルの格納にあてられている。本システムにおいては、
搭載可能な1024個のプロセッサの各々に対して、
H.S.RAMのこの部分に含まれているビット・アド
レスのうちの1つが関連付けられている。当該プロセッ
サの ID(アイデンティティ)に関連付けられたビッ
ト・アドレスのビットは「1」にセットされており、一
方、このセクション内のその他の全てのビットは「0」
にされている。従って各々のプロセッサは、このセクシ
ョンの中の1つのビットだけが「1」にセットされてい
る。Processor Address As shown in FIG. S. DSW for RAM
One part of the section is dedicated to storing processor address select nibbles. In this system,
For each of the 1024 processors that can be mounted,
H. S. One of the bit addresses contained in this portion of the RAM is associated. The bit of the bit address associated with the processor ID (identity) is set to “1”, while all other bits in this section are “0”.
Has been. Thus, each processor has only one bit in this section set to "1".
【0221】ハッシュ・マップ H.S.RAMのDSWセクションの別の1つの部分
が、ハッシュ・マップ(複数)の格納にあてられてい
る。本システムにおいては、マップ選択ビットのうちの
2つのビットがそれらのハッシュ・マップにあてられて
おり、それによって、4096個の可能な値を全て含む
完全な集合が 2組得られている。ハッシュト・モード
(hashed mode )においては、二次記憶装置に格納され
ているレコードのためのキーが、ハッシング・アルゴリ
ズムに従って設定され、それによって0から4095ま
での間の「バケット」の割当てが行なわれる。所与の
「バケット」に収容されているレコードを担当している
プロセッサは、そのアドレスが当該バケットのバケット
・ナンバに対応しているマップ・ビットの中に「1」の
ビットがセットされている。その他のビットは「0」に
されている。複数個のマップ・ビットをセットするだけ
で、所与のプロセッサに複数のバケットを担当させるこ
とができる。Hash Map H. S. Another part of the DSW section of the RAM is dedicated to storing hash maps. In the present system, two of the map select bits are assigned to their hash maps, resulting in two complete sets containing all 4096 possible values. In hashed mode, the keys for the records stored in secondary storage are set according to a hashing algorithm, thereby assigning a "bucket" between 0 and 4095. . The processor responsible for the record contained in a given "bucket" has a "1" bit set in the map bit whose address corresponds to the bucket number of that bucket. . Other bits are set to “0”. Simply setting multiple map bits allows a given processor to be responsible for multiple buckets.
【0222】この実施例の構成においては、容易に理解
されるように、マップ・ビットのセッティングを以下の
方式で行なえるようになっている。即ち、その方式と
は、所与の1つのマップ選択ビットについては、各ビッ
ト・アドレスがただ一つのプロセッサにおいてのみ
「1」にセットされており、しかも、いかなるビット・
アドレスも必ずいずれかのプロセッサにおいて「1」に
セットされているという方式である。この方式を採用し
たことの直接の結果として、各々のプロセッサ(AM
P)が、データベースのレコードの互いに別個で互いに
素の部分集合を分担し、しかも、システムの全体として
は、レコードの全てを含む完全な集合が存在するように
なっている。In the structure of this embodiment, as will be easily understood, the setting of map bits can be performed in the following manner. That is, for a given map select bit, each bit address is set to "1" in only one processor, and any bit
The address is always set to “1” in any of the processors. The direct consequence of adopting this scheme is that each processor (AM
P) shares a distinct and disjoint subset of the records of the database, and the whole system is such that there is a complete set containing all of the records.
【0223】以上の具体例はリレーショナル・データベ
ースの課題を例に引いて説明されているが、当業者には
容易に理解されるように、課題の互いに素の部分集合を
マルチプロセッサ復合体の中の個々のプロセッサに分担
させることができる課題領域であればどのような課題領
域にでも、これと同じ方式を適用することができる。Although the above example has been described with reference to the problem of relational databases, as will be readily understood by those skilled in the art, disjoint subsets of the problem are stored in a multiprocessor union. The same method can be applied to any task area that can be assigned to each processor.
【0224】更にもう1つ注目に値することは、完全な
マップを2つ備えることによって、以上に説明した方式
を、一方のマップによれば所与のあるプロセッサに割当
てられているバケットを、他方のマップにおいてはそれ
とは異なったプロセッサに割当て得るように、構成する
ことができるということである。ここで、一方のマップ
を「一次的」なものとし、他方のマップを「バックアッ
プ用」のものとすれば、直接の帰結として、所与のある
プロセッサ上では一次的なものであるレコードが、別の
プロセッサ上では確実にバックアップされるようにする
ことができる。更に、所与の1つのプロセッサをバック
アップするプロセッサの個数については、いかなる制約
もない。Yet another noteworthy point is that by providing two complete maps, one can map the scheme described above according to one map to the buckets assigned to a given processor. Can be configured so that it can be assigned to a different processor. Here, if one map is "primary" and the other is "backup", the direct consequence is that a record that is primary on a given processor is: It can be ensured that it is backed up on another processor. Further, there is no restriction on the number of processors that back up a given processor.
【0225】当業者には理解されるように、本発明の範
囲内で実現できる互いに別個のマップの数は3以上にす
ることもでき、また、バケットの数も任意の個数とする
ことができる。As will be appreciated by those skilled in the art, the number of distinct maps that can be implemented within the scope of the present invention can be three or more, and the number of buckets can be any number. .
【0226】クラス 先に説明したプロセッサ・アドレスとハッシュ・マップ
のいずれの場合にも、全てのプロセッサについてその所
与の1つのビット・アドレスを調べれば、そのビット・
アドレスが1つのプロセッサにおいてだけ「1」にセッ
トされており、その他の全てのプロセッサ内の対応する
ビット・アドレスは「0」にセットされていることが分
かる。しかしながら、複数のプロセッサ内において対応
するビット・アドレスが「1」にセットされているよう
な方式も可能であるし、有用でもある。この方式は「ク
ラス・アドレス」モードといわれる方式である。Class In any of the processor addresses and hash maps described above, examining the given one bit address for all processors yields that bit address.
It can be seen that the address is set to "1" in only one processor and the corresponding bit address in all other processors is set to "0". However, a scheme in which the corresponding bit address is set to "1" in a plurality of processors is possible and useful. This method is called a "class address" mode.
【0227】クラス・アドレスは、そのコピーが複数の
プロセッサ内に存在する処理手順ないし機能の名称と考
えることができる。該当する処理手順ないし機能を備え
ているプロセッサは、いずれも対応するビット・アドレ
スに「1」ビットがセットされている。The class address can be considered as the name of a processing procedure or function whose copy exists in a plurality of processors. Any processor having the corresponding processing procedure or function has the "1" bit set in the corresponding bit address.
【0228】クラス・アドレスへ宛ててメッセージを送
出するためには、DSW(図13)内の該当するクラス
・アドレスがセットされる。H.S.RAMの中の該当
する位置のビットが「1」にセットされていることによ
って当該クラスに「所属」していることが示されている
全ての動作可能なプロセッサは、その送出されたメッセ
ージ・パケットに対して「ACK」で応答することにな
る。当該クラスに所属していないプロセッサはNAPで
応答する。To send a message to a class address, the corresponding class address in the DSW (FIG. 13) is set. H. S. All operable processors that are indicated as "belonging" to the class by setting the bit at the corresponding location in the RAM to "1" are sent out the message packet. "ACK". Processors that do not belong to the class respond with a NAP.
【0229】従ってDSWは、マルチプロセッサ・シス
テム内のメッセージの流れを制御するのに必要な経路指
定計算がハードウェアによって行なわれるようにしてい
る。また、プログラムを、システムの様々な機能がいず
れのプロセッサの中に備えられているのかという知識と
は、無関係なものとすることができる。更には、マップ
はH.S.RAMの一部であり、従ってマイクロプロセ
ッサ105からアクセスできるため、ある機能を1つの
プロセッサから別のプロセッサへ動的に再配置すること
が可能である。Thus, the DSW ensures that the routing calculations required to control the flow of messages in a multiprocessor system are performed by hardware. Also, the program can be independent of the knowledge of which processor has the various functions of the system. Further, the map is H.264. S. Because it is part of the RAM and thus accessible from the microprocessor 105, certain functions can be dynamically relocated from one processor to another.
【0230】マージの例 複雑なマルチプロセッサ・システムにおいては、一連の
相互に関連した複数の動作の実行が、タスクによって必
要とされることがある。これは特に、複雑な問合せを取
扱うリレーショナル・データベース・システムについて
言えることであり、そのようなデータベース・システム
においては、データをアセンブルしてファイルを形成
し、しかもアセンブルされた後には特定の方式で複数の
プロセッサへ再分配できるようなファイルを形成するた
めに、複数の二次記憶装置を参照することが必要とされ
ることがある。以下に示す例は、図1、図18、図2
3、及び図24のシステムが、TNと、DSWと、それ
に大域的セマフォとに対して操作を加えることによっ
て、そのような機能をいかに容易に実行できるようにな
っているかを、手短に説明するものである。まず第1
に、マージ・コーディネータ(典型的な例としてはマー
ジ・コーディネータはIFP14ないし16であるが、
必ずしもそれに限られるものではない)が、ある1つの
ファイルをマージして形成することになる(即ちデータ
・ソースとして機能する)1つのクラスに属する複数の
AMPを、(AMP18〜23の中から)識別する。割
当てがなされていない1つのTNが選択され、そしてデ
ータ・ソース機能を識別するために割当てられる。この
ファイルを別の1組のAMP(それらは元のデータ・ソ
ースのプロセッサであってもよい)へ分配ないしハッシ
ングするするという第2の主要機能に対しては、そのと
きまで 割当てをされていなかった別のTNが割当てら
れる。Merging Example In a complex multiprocessor system, a task may require the execution of a series of interrelated operations. This is especially true for relational database systems that handle complex queries, in which data is assembled into files and then assembled in a particular manner. It may be necessary to refer to multiple secondary storage devices to create a file that can be redistributed to other processors. Examples shown below are shown in FIGS.
3 and briefly describe how the system of FIG. 24 can easily perform such functions by manipulating TNs, DSWs, and global semaphores. Things. First,
In the meantime, the merge coordinator (typically the merge coordinator is IFP 14-16,
Although not necessarily limited to this, a plurality of AMPs belonging to one class that will be formed by merging a certain file (that is, functioning as a data source) are selected (from among AMPs 18 to 23). Identify. One unassigned TN is selected and assigned to identify the data source function. The second major function of distributing or hashing this file to another set of AMPs (which may be the processor of the original data source) has not been assigned until then. Another TN is assigned.
【0231】このマージ機能のためのコーディネータ
は、第1のTNに関係するファイルの、マージングの作
業を行なうことになるクラスに属する複数のプロセッサ
を、DSWを用いて識別する。このマージングの作業に
関与する関与プロセッサは、そのTNのステータスのレ
ベルを上昇させて「ビズィ」または「ウェイティング」
ステータスとし、その後に、マージ動作の制御が、マー
ジ動作に関与している関与プロセッサのうちの1つへ渡
される(即ちコーディネータの仕事が委任される)。以
上の複数の関与プロセッサ(それら以外の全てのプロセ
ッサ・モジュールはそのトランザクション・ナンバに関
しては非関与プロセッサである)の各々は、このように
規定されたマージのタスクに関するメッセージ・パケッ
トを受信してそれに対する肯定応答を送出した後には、
そのプロセッサ自身のサブタスクの実行を、そのステー
タス・レベルを適宜更新しながら進行させて行く。そし
て、マージ・コーディネータの仕事を委任されているプ
ロセッサがそれ自身のタスクを終了したならば、そのプ
ロセッサは、その他の全ての関与プロセッサに対して、
当該トランザクション・ナンバに関するステータスを知
らせるよう、ステータス・リクエストを送出し、それに
よって、関与プロセッサのうちでレディネス状態が最低
のプロセッサを表示している応答を受取ることができ
る。マージ動作の制御は、このレディネス状態が最低の
プロセッサへ渡され、この後には、このプロセッサが、
自身の作業が終了した際にその他全ての関与プロセッサ
をポーリングすることができるようになる。以上のプロ
セスは、必要とあらば、関与プロセッサの全てが準備完
了状態となっていることを示す応答が受信されるまで、
続けさせることができる。そのような応答が受信された
時点においてコーディネータとして働いていたプロセッ
サは、続いて、DSWを利用して当該クラスに属してい
る関与プロセッサを識別しつつ、H.S.RAM26へ
のメッセージの転送を開始し、このメッセージの転送に
伴なって、ステータス・レベルが該当する出力メッセー
ジ・ベクタ情報により「送信準備完了」へと更新され
る。これに続いて実行されるポーリングの結果、全ての
関与AMPが送信準備完了状態にあることが判明したな
ら ば、コーディネータは、その特定のTNについての
マージ開始コマンドを発令する。The coordinator for the merge function identifies, using the DSW, a plurality of processors belonging to a class in which a merging operation is to be performed in a file related to the first TN. The participating processors involved in this merging task raise the level of the TN's status to "visit" or "wait"
Status, after which control of the merge operation is passed to one of the participating processors involved in the merge operation (ie, the coordinator's work is delegated). Each of the plurality of participating processors (all other processor modules are non-participating processors with respect to their transaction numbers) receives the message packet relating to the merge task defined in this way and After sending a positive response to
The execution of the processor's own subtask proceeds while updating its status level as appropriate. Then, if the processor delegated the job of the merge coordinator completes its own task, it will, for all other participating processors,
A status request may be sent to signal the status of the transaction number, thereby receiving a response indicating the processor with the lowest readiness among the participating processors. Control of the merge operation is passed to the processor with the lowest readiness state, after which the processor
You will be able to poll all other participating processors when you are done. The above process, if necessary, is repeated until a response is received indicating that all participating processors are ready.
Can be continued. The processor that was acting as the coordinator at the time such a response was received, then uses the DSW to identify participating processors belonging to the class, and S. The transfer of the message to the RAM 26 is started, and in accordance with the transfer of the message, the status level is updated to “transmission ready” by the corresponding output message vector information. If the subsequent polling indicates that all participating AMPs are ready for transmission, the coordinator issues a merge start command for that particular TN.
【0232】マージ動作が実行されている間に、処理済
のデータ・パケットは、結果をリレーショナル・データ
ベースに従って二次記憶装置へ分配するための1つのク
ラスに属する複数のプロセッサ・モジュールへ宛てて、
転送されることになる。それらの複数の受信プロセッサ
が、このとき発信元となっている複数のプロセッサと同
じものであると否とにかかわらず、この分配に関与する
クラスに所属する関与プロセッサ(即ち上記受信プロセ
ッサ)は、DSWによって識別され、またそのトランザ
クションは新たなTNによって識別される。この新しい
トランザクションに関わる関与プロセッサの全てに対し
て、この新たなTNが割当てられることになり、また、
それらの関与プロセッサは、それらのレディネス状態の
レベルを上昇させて「受信準備完了」とすることにな
る。このDSWは、クラス指定ではなく、ハッシング選
択指定のものとすることもできるが、いずれの場合にお
いても、マージが実行されている間は、関与プロセッサ
の全てが、ブロードカストされるメッセージを受信でき
る状態におかれている。「マージ開 始」が発令された
ならば、送出動作に関与すべき送出関与プロセッサの各
々から複数のメッセージ・パケットが、しかも夫々のプ
ロセッサから互いに同時に、ネットワーク上へ送出さ
れ、それらのメッセージ・パケットに対しては動的に
(=伝送中に)優先権の判定が行なわれる。各々の送出
関与プロセッサが、それ自身の1組のメッセージを送信
完了したならば、それらの各々の送出関与プロセッサ
は、一定の形に定められている「エンド・オブ・ファイ
ル(End of File )」メッセージの送信を試み、この
「エンド・オブ・ファイル」メッセージは種々のデータ
メッセージより優先順位が低い。関与プロセッサの全て
が「エンド・オブ・ファイル」メッセージを送出するよ
うになるまでは、この「エンド・オブ・ファイル」メッ
セージはデータ・メッセージとの競合に敗退し続 け、
そして全ての関与プロセッサから送出されるようになっ
たならば、ようやく、「エンド・オブ・ファイル」メッ
セージの転送が達成される。この転送が達成されると、
コーディネータは「エンド・オブ・マージ(End of Mer
ge)」メッセージを送出し、また、それに続いて「TN
放棄」を実行することができ、この「TN放棄」によっ
てこのトランザクションは終了する。オーバラン状態、
エラー状態、ないしはロック状態に対して は、マージ
即ち送信を始めからやり直すことによって適切に対処す
ることができる。While the merge operation is being performed, the processed data packets are addressed to a plurality of processor modules belonging to a class for distributing the results to secondary storage according to a relational database.
Will be transferred. Regardless of whether or not the plurality of receiving processors are the same as the plurality of processors at this time, the participating processors belonging to the class involved in the distribution (that is, the receiving processors) are: The transaction is identified by the DSW, and the transaction is identified by the new TN. All new processors involved in this new transaction will be assigned this new TN, and
Their participating processors will raise their readiness level to "ready to receive." This DSW may be a hashing selection specification instead of a class specification, but in any case, while the merge is being performed, all participating processors can receive the broadcast message. You are in a state. If a "merge start" is issued, a plurality of message packets from each of the sending participating processors to be involved in the sending operation, and from each processor simultaneously with each other, are sent out onto the network, and the message packets are sent. Is dynamically determined (= during transmission). Once each sending participant has completed sending its own set of messages, each of their sending participant processors will have a defined "End of File". Attempt to send a message, and this "end of file" message has a lower priority than various data messages. Until all of the participating processors start sending out an "end of file" message, this "end of file" message will continue to lose contention with the data message,
Finally, once all participating processors have sent out, the transfer of the "end of file" message is achieved. Once this transfer is achieved,
The coordinator said, "End of Merge
ge) "message, followed by a" TN
Abandon "can be performed, which ends the transaction. Overrun condition,
An error condition or locked condition can be properly dealt with by restarting the merge or transmission.
【0233】ある1つのTNに関するマージ動作が終了
したならば、このシステムは、TNのシーケンスの中
の、続く次のTNへとシフトすることができる。この新
たなTNに該当する複数のメッセージ・パケットの待ち
行列を、各々のプロセッサ・モジュールが作り終ったな
らば、それらのプロセッサ・モジュールは、マージ動作
を実行させるためのネットワークに対する働きかけを再
び開始することが可能となる。個別に実行されるプロセ
ッサ内マージ動作に加え、更に以上のようにネットワー
ク内マージ動作が効率的に利用されるために、このシス
テムは、従来のシステムに対して著しく優れた、極めて
大規模なソート/マージ・タスクを実行することができ
るようになっている。本発明を採用した場合に、システ
ム内のある1つのファイルをソートするために必要な時
間は、レコードの個数をn個、プロセッサの個数をm個
とするとき、以下の式で表わすことができる。Once the merging operation for one TN has been completed, the system can shift to the next TN in the sequence of TNs. Once each processor module has created a queue of message packets corresponding to this new TN, the processor modules will again begin working on the network to perform the merge operation. It becomes possible. Due to the efficient use of the in-network merge operations, in addition to the individually performed intra-processor merge operations, this system provides a significantly larger sort / Merge tasks can be performed. When the present invention is employed, the time required to sort a certain file in the system can be expressed by the following equation, where n is the number of records and m is the number of processors. .
【0234】[0234]
【数1】 この式において、C2 は定数であり、この実施例に関し
ては、100バイト・メッセージが用いられている場合
には約10マイクロ秒と見積られ、またC1 は、典型的
な16ビット・マイクロプロセッサが使用されている場
合に、約1ミリ秒と見積られる定数である。様々に組み
合わせたnとmとの組合せに対する、概略のソート/マ
ージ時間が、秒を単位として次の表に示されており、そ
れらの値は100バイト・レコードが用いられている場
合の値である。(Equation 1) In this equation, C2 is a constant, which for this embodiment is estimated to be about 10 microseconds when a 100 byte message is used, and C1 is the value used by a typical 16-bit microprocessor. , A constant estimated to be about 1 millisecond. Approximate sort / merge times for various combinations of n and m are given in the following table in units of seconds, and the values are for a 100 byte record being used. is there.
【0235】[0235]
【表3】 以上の表に示されている具体例の数字を従来のシステム
と比較して評価するのは容易なことではない。その理由
は、相互に関連を有する2種類のソート処理シーケンス
(プロセッサによるソートとネットワークによるソー
ト)が関与しているからであり、また、そもそも、かか
る能力を有するシステムが殆んど存在していないからで
ある。更に、本システムではその長さが長大でしかも可
変なメッセージがソート及びマージされるのに対して、
一般的な多くのソート能力は、数バイトないし数ワード
について能力評価がなされている。[Table 3] It is not easy to evaluate the numbers of the specific examples shown in the above table in comparison with the conventional system. The reason is that two kinds of interrelated sort processing sequences (sort by processor and sort by network) are involved, and in the first place, there are almost no systems having such a capability. Because. In addition, the system sorts and merges long and variable messages, whereas
Many common sorting capabilities are rated for several bytes or words.
【0236】更に別の重要な要因として、本システムは
マルチプロセッサそのものであって、ソート/マージ処
理の専用システムではないということがある。本システ
ムは、局所的にも大域的にも、マージ動作とノン・マー
ジ動作との間を完全なフレキシビリティをもってシフト
することができ、しかもこのシフトを、ソフトウェア的
な不利益を生じることなく、また、システム効率に損失
を生じさせることもなく、行なえるようになっている。Another important factor is that the present system is a multiprocessor itself and is not a dedicated system for sort / merge processing. The system is able to shift between the merge operation and the non-merge operation with complete flexibility both locally and globally, and this shift can be performed without software disadvantage. Further, it can be performed without causing a loss in system efficiency.
【0237】タスク・リクエスト/タス応答のサイクル
の例 図1に関し、ネットワーク50に接続されているプロセ
ッサ14、16、ないし18〜23はいずれも、他の1
個または複数個のプロセッサにタスクを実行させるため
のタスク・リクエストを、メッセージ・パケットの形態
の然るべきフォーマットで形成する機能を有している。
リレーショナル・データベース・システムにおいては、
これらのタスクの殆んどはホスト・コンピュータ 1
0、12をその発生源とし、インターフェイス・プロセ
ッサ14、16を介してシステム内へ入力されるもので
あるが、ただし、このことは必要条件ではない。然るべ
きフォーマットで形成されたこのメッセージ・パケット
は、他のプロセッサからのパケットとの間で争われるネ
ットワーク上の競合の中へ投入され、そして、他のタス
クの優先順位のレベル並びにこのプロセッサにおける動
作状態のレベル次第で、時には優先権を得ることにな
る。タスクは、1つのメッセージ・パケットによってそ
の内容を指定されていることもあり、また、複数の継続
パケットによって指定されていることもあるが、後に続
く継続パケットは、データ・メッセージのグループ(図
21参照)の中では比較的高い優先順位レベルを割当て
られ、それによって、後に続く部分を受信するに際して
の遅延ができるだけ短くなるようにしている。Example Task Request / Task Response Cycle With reference to FIG. 1, any of the processors 14, 16, or 18-23 connected to the network 50
It has a function of forming a task request for causing one or more processors to execute a task in an appropriate format in the form of a message packet.
In relational database systems,
Most of these tasks are performed on the host computer 1
Sources 0 and 12 are sourced into the system via interface processors 14 and 16, but this is not a requirement. This message packet, formed in the proper format, is injected into the contention on the network for contention with packets from other processors, and the priority level of other tasks as well as the state of operation on this processor Depending on your level, you may sometimes get priority. A task may be specified by one message packet or its contents may be specified by a plurality of continuation packets, but the following continuation packets are grouped by data messages (FIG. 21). ) Are assigned a relatively high priority level, so that the delay in receiving the subsequent part is as short as possible.
【0238】メッセージ・パケットには、トランザクシ
ョン・アイデンティティ(=トランザクション識別情
報)が、トランザクション・ナンバの形で含まれてい
る。このトランザクション・ナンバは、処理結果を引き
出す上での方式に関するモードであるノン・マージ・モ
ード即ちディフォルト・モード(「TN0」)と、マー
ジ・モード(「TN0」以外の全てのTN)とを、選択
に応じて区別するという性質を本来的に備えている。更
に、メッセージ・パケットにはDSWが含まれている。
このDSWは、実質的に、転送先プロセッサとマルチプ
ロセッサ動作のモードとを指定するものであり、この指
定は、特定のプロセッサの指定、複数のプロセッサから
成るクラスの指定、或いはハッシングの指定によって行
なわれ、本実施例においては、ハッシングは、リレーシ
ョナル・データベースの一部分へのハッシングである。
ネットワーク50を介してターゲット・プロセッサ(指
定転送先プロセッサ)へブロードカストされるメッセー
ジ・パケットは、そのプロセッサにおいて局所的に受入
れられて(=そのプロセッサ自身への受入れが適当であ
るとの判断がそのプロセッサ自身によってなされて)、
そして、受信した旨の認証が肯定応答(ACK)によっ
て行なわれる。プロセッサ14、16及び18〜23の
全てが、EOM(エンド・オブ・メッセージ)のあとに
続いてネットワーク50へ互いに同時に応答を送出する
が、しかしながら、指定転送先プロセッサから送出され
たACKが優先権を獲得し、そして発信元プロセッサに
受信されることになる。The message packet contains the transaction identity (= transaction identification information) in the form of a transaction number. This transaction number includes a non-merge mode that is a mode relating to a method for extracting a processing result, that is, a default mode (“TN0”) and a merge mode (all TNs except “TN0”). It inherently has the property of distinguishing according to selection. Further, the message packet contains the DSW.
The DSW substantially specifies a transfer destination processor and a mode of multiprocessor operation, and this specification is performed by specifying a specific processor, a class including a plurality of processors, or specifying hashing. In this embodiment, hashing is hashing a part of the relational database.
The message packet broadcast to the target processor (designated destination processor) via the network 50 is locally accepted by the processor (= the determination that the acceptance by the processor itself is appropriate) is made. Made by the processor itself),
Then, authentication of reception is performed by an acknowledgment (ACK). All of the processors 14, 16, and 18 to 23 simultaneously send a response to the network 50 following the EOM (end of message), however, the ACK sent from the designated destination processor has priority. And will be received by the originating processor.
【0239】続いて指定転送先プロセッサは、送られて
きたメッセージが、局所H.S.RAM(=個々のプロ
セッサ・モジュールに備えられているH.S.RAM)
とインターフェイス120と(図18、図23及び図2
4)を介して局所マイクロプロセッサに転送されるとき
に、このリクエスト・パケット (=送られてきたメッ
セージ)が要求している処理を非同期的に(=当該プロ
セッサ・モジュール以外の要素とは同期せずに)実行す
る。リレーショナル・データベースに関するタスクが実
行される場合には、DSWは互いに素のデータ部分集合
(この部分集合はその部分集合のためのディスク・ドラ
イブに格納されている)のある部分を指定するのが通常
の例であるが、ただし、時には、格納されているデータ
ベースを参照することを必要としないタスクが実行され
ることもある。特定の演算やアルゴリズムを個々のプロ
セッサによって実行するようにしても良く、また指定転
送先プロセッサとして複数のプロセッサが指定された場
合には、それらのプロセッサの各々が、タスク全体の互
いに素の部分集合についての仕事を実行するようにする
ことができる。可変長のメッセージ・パケットは、リク
エスト・メッセージによって、実行すべき動作とデータ
ベース・システム内の参照すべきファイルとの指定が行
なえるように構成されている。ここで注意すべきこと
は、所与の 1つのタスクに関するメッセージ・パケッ
トが大量に存在している場合もあるということであり、
その場合には、ネットワークの内部で行なわれるソート
のための弁別基準となる適当な特徴を付与するために、
任意採用可能なキー・フィールド(図13)が重要にな
ってくるということである。Subsequently, the designated transfer destination processor determines that the transmitted message is a local H.264 message. S. RAM (= HS RAM provided in each processor module)
And interface 120 (FIGS. 18, 23 and 2).
4) When the request packet (= message sent) is transferred to the local microprocessor via (4), the process requested by the request packet is asynchronously (= synchronized with an element other than the processor module). Do). When a task is performed on a relational database, the DSW typically specifies a portion of a disjoint data subset, which is stored on the disk drive for that subset. However, sometimes, tasks that do not need to refer to the stored database may be performed. Certain operations and algorithms may be executed by individual processors, and if multiple processors are specified as designated destination processors, each of those processors may be a disjoint subset of the entire task. About to be able to do the job. The variable-length message packet is configured so that an operation to be performed and a file to be referenced in the database system can be specified by a request message. Note that there may be a large number of message packets for a given task,
In that case, in order to provide appropriate features that serve as discrimination criteria for sorting performed inside the network,
The key field that can be arbitrarily adopted (FIG. 13) becomes important.
【0240】応答を行なおうとしている各プロセッサに
よって発生されるタスク応答パケットは、マイクロプロ
セッサから、図1の制御ロジック28を介して局所H.
S.RAM26へと転送され、そこでは、タスク応答パ
ケットは図34(a)の送出メッセージ・フォーマット
の形で格納される。タスク応答が、継続パケットの使用
を必要とするものである場合には、そのような継続パケ
ットは先頭パケットの後に続いて、ただし継続のための
より高い優先順位を与えられた上で、送出される。シス
テムがマージ・モードで動作しており、且つ、各々のプ
ロセッサがある1つのトランザクション・ナンバに関す
る多数のパケットを発生している場合には、それらのパ
ケットを先ず局所的に(=個々のプロセッサの内部にお
いて)ソート順でチェーンし、その後に、ネットワーク
50上でマージを行なうことによって大域的なソート順
に並べるようにすることができる。A task response packet generated by each processor attempting to respond is transmitted from the microprocessor via the control logic 28 of FIG.
S. It is transferred to the RAM 26 where the task response packet is stored in the outgoing message format of FIG. If the task response requires the use of a continuation packet, such a continuation packet is sent after the first packet, but with a higher priority for continuation. You. If the system is operating in merge mode and each processor is generating a large number of packets for one transaction number, those packets are first locally (= individual processor = Chaining (internally) in a sort order, and then merging over network 50 can be arranged in a global sort order.
【0241】タスク結果パケットは、プロセッサ14、
16及び18〜23からネットワーク50へ、同時送出
パケット群を成すように送出され、そして1つの最優先
メッセージ・パケットが、所定のネットワーク遅延のの
ちに、全てのプロセッサへブロードカストにより送り返
される。それらのタスク結果パケットの転送は、そのタ
スクの性質に応じて、最初にリクエスト・メッセージを
発信した発信元プロセッサをその転送先として行なわれ
ることもあり、また、1個ないし複数個の他のプロセッ
サを転送先として行なわれることもあり、更には、既に
説明した複数のマルチプロセッサ・モードのうちのいず
れのモードで転送を行なうこともできる。リレーショナ
ル・データベース・システムにおいて最も一般的に行な
われる事例は、ハッシングを利用して転送先の選択を行
ないつつ、マージと再分配とを同時に実行するというも
のである。従ってそのことからも理解されるように、
「タスク・リクエスト/タスク応答」のサイクルの中で
は、各々のプロセッサが、発信元プロセッサとしても、
コーディネータ・プロセッサとしても、また、応答側プ
ロセッサとしても動作することができ、更には、それら
の3つの全てとして動作することもできるようになって
いる。多くの「タスク・リクエスト/タスク応答」サイ
クルが関与してくるため、プロセッサ14、16及び
18〜23、並びにネットワーク50は、それらのタス
クの間で多重化(マルチプレクシング)されるが、ただ
しこの多重化は、時間を基準にすると共に更に優先順位
をも基準にして行なわれる。The task result packet is transmitted to the processor 14,
16 and 18-23 to the network 50 to form a group of simultaneous transmission packets, and one top priority message packet is broadcast back to all processors after a predetermined network delay. Depending on the nature of the task, the transfer of these task result packets may be performed with the source processor that originally transmitted the request message as its transfer destination, and one or more other processors. May be performed as a transfer destination, and further, the transfer may be performed in any of the plurality of multiprocessor modes described above. The most common case in a relational database system is to perform merging and redistribution at the same time while selecting a destination using hashing. Therefore, as can be understood from that,
In the "task request / task response" cycle, each processor, even as the originating processor,
It can operate as a coordinator processor and also as a responding processor, and can even operate as all three. Because many "task request / task response" cycles are involved, processors 14, 16 and
18-23, as well as the network 50, are multiplexed between those tasks, provided that this multiplexing is based on time and also on a priority basis.
【0242】複雑な問合せの例 リレーショナル・データベース・システムにおいては、
ホスト・コンピュータ10、12を利用して、また更
に、タプル(tuples)と一次的データ及びバックアップ
用データの互いに素のデータ部分集合とを規定するアル
ゴリズムに従ってリレーショナル・データベースを複数
のディスク・ドライブ38〜43の間に分配するように
した分配法を利用して、複雑な問合せがホスト・コンピ
ュータ10または12から、IFP14または16を介
してシステムへ入力される。この入力された問合せのメ
ッセージ・パケットは、先ず最初にIFP14または1
6によって詳細に解析され、この解析は、ホスト・コン
ピュータからのメッセージを、AMP18〜23に対し
てタスクの実行を要求するための複数のタスク・リクエ
ストへと変換するために行なわれるものである。IFP
14ないし16は、その動作を開始するに際して、1個
ないし複数個の特定のAMPから情報を引き出すための
リクエスト・パケットを送出し、それによって、ホスト
・コンピュータからのメッセージの詳細な解析に必要な
システム内データを得ることが必要な場合もある。ホス
ト・コンピュータからのリクエストの処理に必要なデー
タを得たならば、IFP14ないし16は、AMP18
〜23との間で何回かの「タスク・リクエスト/タスク
応答」サイクルを実行することができ、また、データを
実際に処理して、ホスト・コンピュータからのリクエス
トを満足させることができる。以上の処理シーケンスに
おいては、上に挙げたタスク・リクエストとタスク応答
とから成るサイクルが用いられ、また、そのサイクルは
任意の長さに亙って継続することができる。続いて、I
FP14ないし16は、IFPインターフェイスを介し
てホスト・コンピュータと通信する。ホスト・コンピュ
ータへのこの応答は、単に、ホスト・コンピュータ10
または12が次の複雑な問合せを発生するために必要と
するデータを提供するためのものであることもある。Complex Query Example In a relational database system,
Utilizing the host computers 10, 12, and furthermore, the relational database can be stored in a plurality of disk drives 38-34 according to an algorithm that defines tuples and disjoint data subsets of primary and backup data. A complex query is input from the host computer 10 or 12 to the system via the IFP 14 or 16 using a distribution method that is arranged to distribute among 43. The input query message packet is first sent to IFP 14 or 1
6, which is performed to convert a message from the host computer into a plurality of task requests for requesting the AMPs 18 to 23 to execute a task. IFP
14 to 16 send out a request packet for extracting information from one or more specific AMPs at the start of the operation, so that a detailed analysis of the message from the host computer is required. It may be necessary to obtain in-system data. When the data necessary for processing the request from the host computer is obtained, the IFPs 14 to 16
-23 can be executed, and the data can be actually processed to satisfy the request from the host computer. In the above-described processing sequence, the cycle including the task request and the task response described above is used, and the cycle can be continued for an arbitrary length. Then I
The FPs 14 to 16 communicate with the host computer via the IFP interface. This response to the host computer is simply
Or 12 may be to provide the data needed to generate the next complex query.
【0243】(独立型マルチプロセッサシステム) 図1に関連して先に説明した本発明に係るシステムの基
本的実施例は、ホスト・コンピュータ並びに現在使用さ
れているホスト・コンピュータ用のソフトウェア・パッ
ケージと組み合わせて使用することのできる、後置プロ
セッサ(バックエンド・プロセッサ)の例を示すもので
ある。しかしながら、既に言及したように、本発明は広
範な種々の処理用途において、また特に、大容量の中央
処理能力を必要とすることなく処理タスクを容易に細分
及び分配できるような種類の処理用途において、格別の
利点を有するものである。図33は、本発明に係る独立
型(スタンド・アローン型)マルチプロセッサ・システ
ムの簡単な構成の一実施例を図示している。図33にお
いて、複数のプロセッサ300はいずれもインターフェ
イス302を介して能動ロジック・ネットワーク304
へ接続されており、このネットワークは既に説明したも
のと同様のネットワークである。データの完全性を強化
するために、冗長性を有する能動ロジック・ネットワー
ク304を採用するようにしても良い。この実施例にお
いても、プロセッサ300には16ビット・マイクロプ
ロセッサ・チップを使用することができ、また、充分な
容量のメインRAMメモリを組込むことができるように
なっている。この図には9つのプロセッサ 300のみ
が示されており、また、それらのプロセッサの各々には
異なった種類の周辺機器が接続されているが、これは、
このシステムの多用途性を示すためである。実際には、
このシステムは更に多くのプロセッサをネットワークに
備えることによりはるかに効率的になるのであるが、し
かしながら、比較的少数のプロセッサしか備えていない
場合であっても、システムの信頼性とデータの完全性と
関して格別の利点が得られるものである。(Standalone Multiprocessor System) The basic embodiment of the system according to the invention described above in connection with FIG. 9 shows an example of a post-processor (back-end processor) that can be used in combination. However, as already mentioned, the present invention can be used in a wide variety of processing applications, and especially in those types of processing applications in which processing tasks can be easily subdivided and distributed without the need for large amounts of central processing power. , With particular advantages. FIG. 33 shows an embodiment of a simple configuration of a stand-alone (stand-alone) multiprocessor system according to the present invention. In FIG. 33, a plurality of processors 300 are all connected to an active logic network 304 via an interface 302.
This network is similar to that already described. To enhance data integrity, a redundant active logic network 304 may be employed. Also in this embodiment, a 16-bit microprocessor chip can be used for the processor 300, and a sufficient capacity of the main RAM memory can be incorporated. In this figure, only nine processors 300 are shown, and each of these processors is connected to a different type of peripheral device,
This is to show the versatility of this system. actually,
The system becomes much more efficient by having more processors in the network, however, even with a relatively small number of processors, the system's reliability and data integrity This offers particular advantages.
【0244】この実施例においては、複数のプロセッサ
300を不便のない充分な距離をとって互いから物理的
に離隔させることができ、それは、データ転送速度が先
の実施例について述べた速度である場合にノード間の最
大間隔が28フィート(5.5m)にもなるため、大規模なア
レイを成す複数のプロセッサを、建物の1つのフロア、
ないしは隣接する幾つかのフロアの上に、むやみに込み
合うことのないように設置して、利用することができる
からである。In this embodiment, the plurality of processors 300 can be physically separated from each other at a sufficient distance without inconvenience, the data transfer rate being the rate described for the previous embodiment. In some cases, the maximum separation between nodes can be as much as 28 feet (5.5 m), so multiple processors in a large array can be combined on one floor of a building,
Or, it can be installed and used on several adjacent floors so as not to be crowded unnecessarily.
【0245】独立型システムでは、先に説明した後置プ
ロセッサの実施例の場合と比較して、周辺機器コントロ
ーラ並びに周辺機器それ自体に、はるかに多くの種類の
ものが用いられる。ここでは便宜的に、個々の入出力デ
バイスは、夫々が別個のプロセッサに接続されているも
のとする。例えば、キーボード312とディスプレイ3
14とを備えた入出力端末装置310は、端末コントロ
ーラ320を介して、同端末装置310のためのプロセ
ッサ300に接続されている。ただし、比較的動作速度
が遅い端末装置の場合には、かなりの規模の端末装置ネ
ットワークを1個の16ビット・プロセッサで制御する
ことも不可能ではない。この図示の入出力端末装置は、
手動操作キーボード等の手動操作入力処理装置がどのよ
うにしてシステムに接続されるのかについての一例を示
しているにすぎない。プロセッサ300の処理能力を利
用してこの端末装置310をワードプロセッサとして構
成することもでき、そしてこのワードプロセッサが、ネ
ットワーク304を介してデータベースや他のワードプ
ロセッサ、或いは種々の出力装置と通信できるようにす
ることもできる。例えばリジッド・ディスク・ドライブ
322等の大容量二次記憶装置を、ディスクコントロー
ラ324を介して、その記憶装置のためのプロセッサに
接続することができる。また、容易に理解されるよう
に、大規模システムには、より多数のディスク・ドライ
ブを用いたり、或いは異なった形態の大容量記憶装置を
用いるようにすれば良い。プリンタ326並びにプロッ
タ330等の出力装置は、夫々、プリンタ・コントロー
ラ328とプロッタ・コントローラ332とを介して、
それらの出力装置のためのプロセッサ300にインター
フェイスしている。不図示の他のシステムとの間の対話
は通信コントローラ338を介して、そして通信システ
ム336を経由して行なわれ、通信システム336とし
ては例えば、テレタイプ・ネットワーク(TTY)や、
更に大規模なネットワークのうちの1つ(例えばエサー
ネット(Ethernet))等が用いられる。プロセッサ300
のうちの幾つかが、周辺装置を接続することなく単にネ
ットワーク304に接続されることもある(不図示)。
双方向のデータ転送が行なわれる可能性があるのは、テ
ープ・ドライブ(テープ駆動機構)340及びテープ・
ドライブ・コントローラ342が用いられている場合、
それに、コントローラ346が接続されたフロッピ・デ
ィスク・ドライブ344が用いられている場合等であ
る。一般にテープ・ドライブは、オン・ライン接続して
使用する際の大きな記憶容量を提供するばかりでなく、
ディスク・ドライブのバックアップにも利用可能であ
る。このバックアップの目的には、密閉式リジッド・デ
ィスク装置に、ある時点までに格納されたデータを保存
するためにテープが用いられる。このようなバックアッ
プ動作は、通常、低負荷の時間帯(例えば夜間または週
末等)に行なわれるため、ネットワーク304を用いて
長い「ストリーミング」転送を行なうことができる。更
には、システムの初期設定の際のプログラムの入力のた
めには、フロッピ・ディスク・ドライブ344が使用さ
れることがあるため、ネットワークの使用時間のうちの
幾分かをこの「ストリーミング」のモードにあてて、か
なりの量のデータを転送することもできる。光学文字読
取器350は、更に別の入力データのソースとして機能
するものであり、その入力データは、そのコントローラ
352を介してシステムへ入力される。尚、単に「他の
装置354」とだけ記されている周辺装置は、コントロ
ーラ356を介してシステムに接続することによって、
必要に応じたその他の機能を発揮するようにすることが
できるものである。In a stand-alone system, much more types are used for the peripheral controller and for the peripheral itself, as compared to the postprocessor embodiment described above. Here, for convenience, it is assumed that each input / output device is connected to a separate processor. For example, the keyboard 312 and the display 3
14 is connected via a terminal controller 320 to a processor 300 for the terminal device 310. However, in the case of relatively slow operating terminals, it is not impossible to control a large terminal network with a single 16-bit processor. The input / output terminal device shown in FIG.
It merely shows an example of how a manual operation input processing device such as a manual operation keyboard is connected to the system. Utilizing the processing power of the processor 300, the terminal device 310 can be configured as a word processor, and the word processor can communicate with a database, another word processor, or various output devices via the network 304. Can also. For example, a mass secondary storage device such as a rigid disk drive 322 may be connected via a disk controller 324 to a processor for the storage device. Also, as will be readily appreciated, larger systems may use more disk drives or use different forms of mass storage. Output devices such as the printer 326 and the plotter 330 are connected via a printer controller 328 and a plotter controller 332, respectively.
It interfaces to a processor 300 for those output devices. Interaction with other systems (not shown) is performed via a communication controller 338 and via a communication system 336, such as a teletype network (TTY),
One of the larger networks (for example, Ethernet) is used. Processor 300
May simply be connected to the network 304 without connecting peripheral devices (not shown).
The two-way data transfer can take place at the tape drive (tape drive) 340 and at the tape drive.
If a drive controller 342 is used,
In addition, there is a case where the floppy disk drive 344 to which the controller 346 is connected is used. In general, tape drives not only provide large storage capacity when used online,
It can also be used to back up disk drives. For the purpose of this backup, tapes are used to store data stored up to a certain point in a sealed rigid disk drive. Such backup operations are typically performed during periods of low load (eg, at night or on weekends) so that long “streaming” transfers can be performed using network 304. In addition, the floppy disk drive 344 may be used for program input during system initialization, so some of the network usage time may be reduced in this "streaming" mode. Can transfer a significant amount of data. Optical character reader 350 serves as a further source of input data, which is input to the system via its controller 352. In addition, the peripheral device simply described as “other device 354” is connected to the system via the controller 356,
Other functions can be performed as needed.
【0246】別々のプロセッサ・モジュールから夫々の
メッセージ・パケットを互いに同時に送出し、そしてそ
れらのメッセージ・パケットに対して優先権の判定を行
なって、1つの、或いは共通の最優先メッセージ・パケ
ットが所定の一定の時間内に全てのプロセッサ・モジュ
ールへ同時にブロードカストされるようにするという方
式を使用しているため、オン・ライン状態にある個々の
プロセッサのいずれもが、このシステム内の他のプロセ
ッサ・モジュールに等しくアクセスできるようになって
いる。優先順位を付与されたトランザクション・ナンバ
並びにレディネス状態表示と、メッセージ内に含まれた
転送先選択エントリとを利用しているこの大域的セマフ
ォ・システムによって、どのプロセッサもコントローラ
として働くことが可能となっているため、このシステム
は、階層的な方式でも、また非階層的な方式でも動作可
能となっている。本システムが、ソフトウェアの精査や
変更を必要とすることなく拡張或いは縮小することがで
きるということも、非常に重要である。Each message packet is sent simultaneously from different processor modules to each other, and the priority of the message packets is determined so that one or a common highest priority message packet is determined. Any processor that is online can be used to broadcast to all processor modules simultaneously within a certain amount of time.・ Equal access to the module. This global semaphore system, utilizing a prioritized transaction number and readiness status indication, and a destination selection entry included in the message, allows any processor to act as a controller. Therefore, this system can operate in a hierarchical system or a non-hierarchical system. It is also very important that the system can be scaled up or down without requiring software review and modification.
【0247】既に説明したメッセージ長さよりかなり長
いが、なお比較的長さの限られているメッセージに対す
るアクセスが必要な場合であっても、そのようなアクセ
スを実行することができる。例を挙げれば、複雑なコン
ピュータ・グラフィクス装置(不図示)に関して、精巧
な2次元図形及び3次図形を作成するために、膨大なデ
ータベースの特定の部分にだけアクセスすることが必要
とされる場合がある。また、ワード・プロセッサ・シス
テムに関して、オペレータ(操作者)の操作速度が遅い
ために、データベースのうちから、一度に僅かなデータ
のシーケンスのみが必要とされる場合もある。これらの
状況、並びにそれに類似した状況においては、本システ
ムの、可変長のメッセージを取扱うことのできる能力、
並びに継続メッセージに優先権を付与することのできる
能力が有益なものとなる。処理能力を集中させることを
必要とする状況や、甚だしく長いメッセージの転送を必
要とする状況は、このシステムの使用に限界を与える
が、それ以外の状況においては、本システムは非常に有
利に機能する。種々の異なったデータ形式の操作とそれ
に伴なうのソート機能ないしマージ機能に関わる動的な
状況は、いずれも本発明が有利に機能する状況に該当す
る。複雑なデータを収集し、照合し、そして解析するこ
とを含む経営意志決定はその種の状況の一例であり、ま
た、定期刊行物のための、映像入力や図形入力の作成及
び編集も、その一例である。Even if access is required to a message that is considerably longer than the message length already described, but is still relatively limited in length, such access can still be performed. For example, for a complex computer graphics device (not shown), it is necessary to access only certain parts of a huge database to create sophisticated two-dimensional and tertiary figures. There is. Also, for word processing systems, only a small sequence of data at a time may be required from the database due to the slow operation speed of the operator. In these and similar situations, the system's ability to handle variable length messages,
In addition, the ability to give priority to continuation messages would be beneficial. Circumstances that require centralized processing or transfer of extremely long messages limit the use of this system, but in other situations the system can perform very well. I do. Any of the dynamic situations involving the manipulation of various different data formats and the associated sorting or merging functions are situations in which the present invention operates advantageously. Business decision making, which involves collecting, collating and analyzing complex data, is one example of such a situation, and the creation and editing of video and graphical inputs for periodicals is also an example. This is an example.
【0248】[0248]
【発明の効果】(結論) 当業者には明らかなように、図1のシステムは、ソフト
ウェアを変更することを必要とせずにそこに含まれるプ
ロセッサの個数を任意の個数に(ただしデータ転送容量
によって決定される実際上の限界の個数までに)拡張す
ることが可能である。更にこれも明らかなことである
が、同図のシステムは、夫々の処理装置のステータスの
確認、タクス並びにプロセッサの優先順位の設定、それ
にプロセッサの処理能力の効率的な利用の確保のため
の、管理及びオーバーヘットのソフトウェアの必要量を
大幅に減少させている。Conclusion As will be apparent to those skilled in the art, the system of FIG. 1 allows the number of processors included therein to be any number (but not the data transfer capacity) without requiring software changes. (Up to the number of practical limits determined by). It is also evident that the system shown in the figure is used for checking the status of each processing unit, setting tasks and priorities of processors, and ensuring efficient use of the processing power of the processors. It significantly reduces the need for management and overhead software.
【0249】明白な利益が得られるのは、データベース
・システムや、その他の、データベース・システムと同
様に1つのタスクの全体を、互いに独立して処理するこ
とのできる複数のサブタスクへ細分することが適当なシ
ステム等の場合である。例えばリレーショナル・データ
ベースに関して言えば、二次記憶装置の容量が格段に増
大した場合にも、更なるデータベースを一次的データと
バックアップ・データとからなるデータ構造の中に適切
に統合するだけで良いのである。換言すれば、ネットワ
ークを限りなく拡張することが可能であり、それが可能
であるのは、標準化された交点装置即ちノードを2進数
的に発展して行く接続方式で連結しているために、それ
らの個々のノードにおいて実行される機能が拡張によっ
て変化することがないからである。更には、ノードの動
作についての設定処理シーケンスや外部制御も不要であ
る。従って本発明に係るシステムが、図1に示されてい
るように、1台ないし複数台のホスト・コンピュータの
バックエンド・プロセッサとして機能するように接続さ
れている場合には、システムのユーザはオペレーティン
グ・システムのソフトウェアも、応用ソフトウェアも変
更することなしに、データベースを任意に拡張(或いは
縮小)することができる。ホスト・プロセッサ・システ
ム(=ホスト・コンピュータ)の側から見れば、このバ
ックエンド・プロセッサはその構成の如何にかかわらず
「透明な」ものとなっており、なぜならばその構成が変
化してもこのバックエンド・プロセッサとホスト・プロ
セッサ・システムとの間の対話の態様には変化は生じな
いからである。このバックエンド・プロセッサに別のホ
スト・プロセッサ・システムの仕事をさせるように切り
換えるためには、単にIFPがその新たなホスト・プロ
セッサ・システムのチャネルないしバスとの間で適切に
会話するようにするだけで良い。ある実機の具体例にお
けるネットワークの構成に拠れば、ネットワーク内のメ
ッセージ転送に甚だしい遅延を生じることなく、またプ
ロセッサ間の競合に起因する不適当な程の遅延も生じる
ことなしに、1つのアレイに1024個までのマイクロ
プロセッサを包含して使用することができるようになっ
ている。本明細書で説明した実施例を、1024個を超
えるプロセッサを含むように拡張するにはどのようにす
れば良いかは、当業者には明白であろう。1つのシステ
ムに1024個のプロセッサを用いる場合、実機の具体
例では能動ノード間の最大ライン長さは28フィートに
なることが分っており、このライン長さであればアレイ
を構成する上で問題が生じることはない。ネットワーク
に起因する遅延時間は、いかなるメッセージについても
一定の時間2τNであり、ここで τはバイト・クロッ
クの間隔、Nは階層構造の中の階層の数である。明らか
に、階層を更に1つ増すことによってプロセッサの個数
を倍にしても、遅延時間は僅かに増加するに過ぎない。
データ・メッセージであれば略々必然的に長いメッセー
ジとなるため(約200バイト程度の長さとなる)、ま
た、競合するメッセージの全てについての優先権の判定
が、データをネットワークに沿って転送している間に行
なわれるため、このネットワークは従来のシステムと比
較して、はるかに高い利用効率でデータ・メッセージの
転送を行なえるものとなっている。The obvious benefit is that the subdivision of a database system or other subtasks, like a database system, into one complete task can be performed independently of each other. This is the case with an appropriate system. For example, in relation to a relational database, if the capacity of the secondary storage device is significantly increased, it is only necessary to appropriately integrate a further database into a data structure composed of primary data and backup data. is there. In other words, the network can be extended indefinitely, which is possible because the standardized intersection devices or nodes are connected in a binary-evolving connection scheme, This is because the functions executed in those individual nodes are not changed by the extension. Furthermore, a setting processing sequence and an external control for the operation of the node are not required. Thus, 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. The database can be arbitrarily expanded (or reduced) without changing the system software or application software. From the perspective of the host processor system (= host computer), this back-end processor is "transparent" regardless of its configuration, even if its configuration changes. This is because the manner of interaction between the backend processor and the host processor system does not change. To switch this back-end processor to do the work of another host processor system, simply ensure that the IFP properly talks to the channel or bus of the new host processor system. Just good. According to the configuration of the network in an embodiment of a real machine, a single array can be used without causing a significant delay in message transfer in the network and without an unreasonable delay due to contention between processors. Up to 1024 microprocessors can be included and used. It will be apparent to those skilled in the art how to extend the embodiments described herein to include more than 1024 processors. When 1024 processors are used in one system, it has been found that the maximum line length between the active nodes is 28 feet in a practical example, and this line length is necessary for forming an array. There is no problem. The delay due to the network is a fixed time 2τN for any message, where τ is the interval between byte clocks and N is the number of layers in the hierarchy. Obviously, doubling the number of processors by adding one more tier will only increase the delay slightly.
Since data messages are almost inevitably long messages (about 200 bytes long), the priority determination for all competing messages requires that data be transferred along the network. As such, the network is capable of transferring data messages with much higher efficiency than conventional systems.
【0250】本システムの重要な経済上の特徴並びに動
作上の特徴のなかには、標準化された能動ロジック回路
がソフトウェアの替わりに、そして更にはネットワーク
・システムにおけるファームウェアの替わりにも用いら
れているという事実によって得られている特徴がある。
即ちこの事実によって、近代的なLSI並びにVLSI
の技術を利用してプロセッサのコストと周辺装置のコス
トとを含めた全体のコストに対して相対的に低コスト
で、信頼性の高い回路を組込むことができるようになっ
ているのである。Among the important economic and operational features of the system are the fact that standardized active logic circuits are used in place of software and even firmware in network systems. There are features obtained by:
That is, by this fact, modern LSI and VLSI
By using the technology described above, a highly reliable circuit can be incorporated at a relatively low cost relative to the total cost including the cost of the processor and the cost of the peripheral device.
【0251】ソフトウェアに時間と経費とを費やさねば
ならないのは、データベース管理等の問題領域のタスク
に関係するような、重要な部分についてだけに限定され
ている。例を挙げれば、本システムの構成に拠れば、デ
ータベースの完全性を維持するために必要な諸機能の全
てを、メッセージ・パケットの構成並びにネットワーク
の構成に基づく範囲内で実行し得るようになっている。
ポーリング、ステータスの変更、並びにデータの復旧等
の機能はシステムの内部において実行される。The time and expense that must be spent on software is limited to only those important parts that are related to tasks in problem areas such as database management. For example, the configuration of the system allows all of the functions required to maintain the integrity of the database to be performed within a range based on the configuration of the message packets and the configuration of the network. ing.
Functions such as polling, status change, and data recovery are performed inside the system.
【0252】更に別の重要な考慮すべき点として、本発
明のネットワークは、その高速データ転送の性能が、従
来のオーミックな配線バスに充分匹敵する程に優れたも
のであるということがある。複数のメッセージ・パケッ
トが互いに同時に送出され、それらが伝送されている間
に優先権の判定がなされるため、従来の方式においてス
テータス・リクエストとそれに対する応答の送出、並び
に優先権の判定に伴なっていた遅延が、回避されている
からである。更には、プロセッサの個数が莫大な個数で
あってもノード間の接続構造の長さを所定の長さ以下に
抑えることが可能であるため、バス内の伝播時間がデー
タ転送速度に対する制約となることがない。Yet another important consideration is that the network of the present invention has high-speed data transfer performance that is sufficiently comparable to conventional ohmic wiring buses. Since a plurality of message packets are transmitted simultaneously with each other and the priority is determined while they are being transmitted, the status request and the response to the status request and the priority determination are performed in a conventional manner. This is because the delay that has been occurring has been avoided. Furthermore, even if the number of processors is enormous, the length of the connection structure between nodes can be suppressed to a predetermined length or less, so that the propagation time in the bus is a constraint on the data transfer rate. Nothing.
【0253】本システムは、マイクロプロセッサ及びネ
ットワークの使用効率という点において最適状態に迫る
ものであることが判明している。これらの点に関して重
要なことは、全てのマイクロプロセッサがビズィ状態に
保たれるようにすることと、ネットワークが一杯に有効
利用されるようにすることとである。「IFP−ネット
ワーク−AMP」の構成は、事実上それらのことを可能
にしており、その理由は、自らが送出したメッセージ・
パケットが優先権を獲得するための競合において敗退し
たマイクロプロセッサは、なるたけ早い適当な時刻に再
度送信を試みるだけで良く、そのためバスのデューティ
・サイクルが高いレベルに維持されるからである。高速
ランダム・アクセス・メモリもまたこの効果を得るため
に寄与しており、なぜならば、高速ランダム・アクセス
・メモリは処理すべき入力メッセージ・パケットと送出
すべき出力メッセージ・パケットとの両方をその内部に
集積しているため、各々のプロセッサが作業のバックロ
グを常時入手できると共に、ネットワークもまたメッセ
ージパケットのバックログを入手できるようになってい
るからである。全ての入力バッファが満杯になったなら
ば、プロセッサがその事実を知らせる表示をネットワー
ク上へ送出する。また、IFPに用いられている、ホス
ト・コンピュータからのメッセージを受取るための入力
バッファが満杯になったならば、そのことを知らせる表
示がチャネル上に送出される。従って本システムは、内
部的にもまた外部的にも自己調歩式となっている。The system has been found to be near optimal in terms of microprocessor and network utilization. What is important in these respects is that all microprocessors remain busy and that the network is fully utilized. The configuration of the "IFP-Network-AMP" effectively makes them possible because of the messages it sends out.
The microprocessor that lost the packet in the race to gain priority only has to try again as soon as possible at the appropriate time, thereby maintaining the bus duty cycle at a high level. Fast random access memory also contributes to this effect because it stores both input message packets to be processed and output message packets to be sent out inside. Because each processor can always obtain the backlog of the work, the network can also obtain the backlog of message packets. When all the input buffers are full, the processor sends an indication on the network to indicate this fact. Also, when the input buffer used for receiving a message from the host computer used for the IFP is full, an indication to that effect is sent out on the channel. Thus, the system is self-starting, both internally and externally.
【0254】本システムは、以上に説明したようなアー
キテクチャとメッセージの構成とを利用することによっ
て、汎用マルチプロセッサ・システムに必要とされるそ
の他の多くの機能をも実行できるように構成されてい
る。例えば従来技術においては、大域的資源のステータ
スの変化を評価及び監視するための方式に関して非常な
注意が払われていた。これに対して本発明に拠れば、パ
リティ・エラーの発生とプロセッサの使用可能性の変化
という事実との両方を伝達するための手段として、パリ
ティ・チャネルのみが備えられ使用されている。1個な
いし複数個のプロセッサがシャット・ダウンした場合に
は、そのシャット・ダウンが、その発生と略々同時にシ
ステム中に伝達され、それによって割込みシーケンスの
実行を開始することができるようになっている。複数の
応答を優先順位に従ってソートするという方式が採用さ
れているため、大域的な能力の変化が生じた場合にその
変化がどのような性質のものであるかを、従来と比較し
てはるかに小規模の回路とシステム・オーバヘッドとに
よって特定することが可能となっている。The system is configured to execute many other functions required for a general-purpose multiprocessor system by utilizing the architecture and message structure as described above. . For example, in the prior art, great care has been given to schemes for evaluating and monitoring changes in the status of global resources. In contrast, according to the present invention, only the parity channel is provided and used as a means for communicating both the occurrence of parity errors and the fact that processor availability has changed. If one or more processors shut down, the shutdown is communicated to the system substantially simultaneously with its occurrence, so that execution of the interrupt sequence can begin. I have. Because multiple responses are sorted according to priority, if a global capability change occurs, the nature of the change will be much greater than in the past. It can be specified by small-scale circuits and system overhead.
【0255】大域的セマフォと能動ロジック・ネットワ
ークとを採用したことによって達成されている、1回の
問合せにより優先権の判定を経て得られる大域的応答
は、非常に深いシステム的な意味を持っている。この方
式により問合せをブロードカストすることによって曖昧
性のない一義的な大域的結果が得られるため、複雑なソ
フトウェア並びにオーバヘッドが不要とされている。分
散型更新等のステータス設定動作は、多数の同時動作が
複数の異なったプロセッサで実行されている際にも実行
可能となっている。The global response achieved through a single query and priority determination, achieved by employing a global semaphore and an active logic network, has very deep system implications. I have. Broadcasting queries in this manner provides unambiguous and unambiguous global results, eliminating the need for complex software and overhead. Status setting operations such as distributed update can be performed even when a large number of simultaneous operations are being executed by a plurality of different processors.
【0256】本システムは更に、以上のようなネットワ
ークとトランザクション・ナンバと転送先選択ワードと
を用いることによって、マルチプロセッサ・システムに
おける仕事の分配並びに処理結果の収集に関する優れた
能力を発揮している。種々のマルチプロセッサ・モード
と制御メッセージとを利用することができ、また、優先
順位プロトコルを操作するだけで、優先順位の種々のレ
ベルを容易に設定しまた変更することができるようにな
っている。全てのプロセッサへ同時にブロードカストす
ることのできる能力と、ネットワーク中でメッセージの
ソートを行なえる能力とが組み合わさることによって、
いかなるプロセッサ・グループ或いはいかなる個々のプ
ロセッサを転送先とすることも可能となっていると共
に、処理結果を適切な順序で引き出すことも可能となっ
ている。従って、リレーショナル・データベース・シス
テムに対する複雑な問合せが入力されたならば、そのこ
とによってデータベース動作に必要なあらゆる処理シー
ケンスが開始されるようになっている。Further, the present system exerts excellent ability for distribution of work and collection of processing results in a multiprocessor system by using the above network, transaction number, and transfer destination selection word. . 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. . By combining the ability to broadcast to all processors simultaneously, and the ability to sort messages across the network,
Any processor group or any individual processor can be a transfer destination, and processing results can be extracted in an appropriate order. Thus, when a complex query to a relational database system is entered, it initiates any processing sequence required for database operation.
【0257】本システムの更に別の利点は、リレーショ
ナル・データベース・システム等のマルチプロセッサ・
システムに、容易に冗長性を導入できることにある。二
重ネットワークと二重インターフェイスとを備えている
ため、一方のネットワークが何らかの原因で故障した場
合にもシステムが動作し続けられるようにする冗長性が
得られている。データベースを互いに素の一時的部分集
合とバックアップ用部分集合という形で分配してあるた
め、データ喪失の確率が最小のレベルにまで低減されて
いる。故障が発生したり変更が加えられたりした場合に
も、用途の広い種々の制御機能が利用可能であるために
データベースの完全性を維持し得るようになっている。[0257] Yet another advantage of the present system is that multi-processor systems such as relational database systems can be used.
It is that redundancy can be easily introduced into a system. The dual network and dual interface provide redundancy so that the system can continue to operate even if one of the networks fails for some reason. Since the database is distributed in a disjoint temporary subset and a backup subset, the probability of data loss is reduced to a minimum level. In the event of a failure or modification, the integrity of the database can be maintained due to the availability of a variety of versatile control functions.
【図1】新規な双方向ネットワークを含む、本発明に係
るシステムのブロック図である。FIG. 1 is a block diagram of a system according to the present invention, including a novel interactive network.
【図2】図1に示された簡単な構造の実施例のネットワ
ークにおけるデータ信号並びに制御信号の伝送の開始前
の時点における状態を示す図である。FIG. 2 is a diagram showing a state before the start of transmission of a data signal and a control signal in the network of the embodiment having the simple structure shown in FIG. 1;
【図3】図1に示された簡単な構造の実施例のネットワ
ークにおいてデータ信号並びに制御信号を伝送する際の
時間t=0における状態を示す図である。FIG. 3 is a diagram showing a state at time t = 0 when transmitting a data signal and a control signal in the network of the embodiment having the simple structure shown in FIG. 1;
【図4】図1に示された簡単な構造の実施例のネットワ
ークにおいてデータ信号並びに制御信号を伝送する際の
時間t=1における状態を示す図である。FIG. 4 is a diagram illustrating a state at a time t = 1 when transmitting a data signal and a control signal in the network of the embodiment having the simple structure illustrated in FIG. 1;
【図5】図1に示された簡単な構造の実施例のネットワ
ークにおいてデータ信号並びに制御信号を伝送する際の
時間t=2における状態を示す図である。FIG. 5 is a diagram showing a state at time t = 2 when transmitting a data signal and a control signal in the network of the embodiment having the simple structure shown in FIG. 1;
【図6】図1に示された簡単な構造の実施例のネットワ
ークにおいてデータ信号並びに制御信号を伝送する際の
時間t=3における状態を示す図である。FIG. 6 is a diagram showing a state at time t = 3 when transmitting a data signal and a control signal in the network of the embodiment having the simple structure shown in FIG. 1;
【図7】図1に示された簡単な構造の実施例のネットワ
ークにおいてデータ信号並びに制御信号を伝送する際の
時間t=4における状態を示す図である。FIG. 7 is a diagram showing a state at time t = 4 when transmitting a data signal and a control signal in the network of the embodiment having the simple structure shown in FIG. 1;
【図8】図1に示された簡単な構造の実施例のネットワ
ークにおいてデータ信号並びに制御信号を伝送する際の
時間t=5における状態を示す図である。FIG. 8 is a diagram showing a state at time t = 5 when transmitting a data signal and a control signal in the network of the embodiment having the simple structure shown in FIG. 1;
【図9】図1に示された簡単な構造の実施例のネットワ
ークにおいてデータ信号並びに制御信号を伝送する際の
時間t=6における状態を示す図である。FIG. 9 is a diagram showing a state at time t = 6 when transmitting a data signal and a control signal in the network of the embodiment having the simple structure shown in FIG. 1;
【図10】図1に示された簡単な構造の実施例のネット
ワークにおいてデータ信号並びに制御信号を伝送する際
の時間t=7における状態を示す図である。FIG. 10 is a diagram showing a state at time t = 7 when transmitting a data signal and a control signal in the network of the embodiment having the simple structure shown in FIG. 1;
【図11】図1に示された簡単な構造の実施例のネット
ワークにおいてデータ信号並びに制御信号を伝送する際
の時間t=8における状態を示す図である。FIG. 11 is a diagram showing a state at time t = 8 when transmitting a data signal and a control signal in the network of the embodiment having the simple structure shown in FIG. 1;
【図12】図1に示された簡単な構造の実施例のネット
ワークにおいてデータ信号並びに制御信号を伝送する際
の時間t=9における状態を示す図である。FIG. 12 is a diagram showing a state at time t = 9 when transmitting a data signal and a control signal in the network of the embodiment having the simple structure shown in FIG. 1;
【図13】図1に示されたシステムに採用されているメ
ーセージ・パケットの構成を図示する説明図である。FIG. 13 is an explanatory diagram illustrating a configuration of a message packet employed in the system shown in FIG. 1;
【図14】図1に示された新規な双方向ネトワークに用
いられる能動ロジック・ノード並びにクロック回路に関
する、同ネットワークの更なる細部構造を示すブロック
図である。FIG. 14 is a block diagram showing a further detailed structure of the active logic node and clock circuit used in the novel bidirectional network shown in FIG. 1;
【図15】前記能動ロジック・ノードの内部の様々な動
作状態を示す、状態図である。FIG. 15 is a state diagram showing various operating states inside the active logic node.
【図16】前記能動ロジック・ノードの内部において行
なわれるエンド・オブ・メッセージの検出動作を説明す
るためのタイミング・ダイアグラムである。FIG. 16 is a timing diagram illustrating an end-of-message detection operation performed inside the active logic node.
【図17】図14に示したクロック回路の動作を説明す
るための、タイミング波形のダイアグラムである。FIG. 17 is a timing waveform diagram for explaining the operation of the clock circuit shown in FIG. 14;
【図18】図1に示したシステムに使用することのでき
る、高速ランダム・アクセス・メモリを含むプロセッサ
・モジュールのブロック図である。FIG. 18 is a block diagram of a processor module including high speed random access memory that can be used in the system shown in FIG.
【図19】図18に示したマイクロプロセッサ・システ
ムのメインRAMの内部のアドレスの割当て状況を示す
図である。FIG. 19 is a diagram showing an assignment state of addresses inside a main RAM of the microprocessor system shown in FIG. 18;
【図20】図18に示された高速ランダム・アクセス・
メモリの、1つの参照部分の内部におけるデータの配置
態様のブロック図である。FIG. 20 shows a high-speed random access mode shown in FIG.
FIG. 3 is a block diagram of an arrangement of data in one reference portion of the memory.
【図21】前記システムに用いられているメッセージの
優先順位プロトコルを示すチャートである。FIG. 21 is a chart showing a message priority protocol used in the system.
【図22】トランザクション・ナンバのワード・フォー
マットを図示する説明図である。FIG. 22 is an explanatory diagram illustrating a word format of a transaction number.
【図23】図1及び図18に示したシステムの内部に備
えられている各プロセッサモジュールに用いられている
インターフェイス回路のブロック図の左半分を示す図で
ある。FIG. 23 is a diagram showing the left half of a block diagram of an interface circuit used for each processor module provided inside the system shown in FIGS. 1 and 18;
【図24】図1及び図18に示したシステムの、その内
部に備えられている各プロセッサモジュールに用いられ
ているインターフェイス回路のブロック図の右半分を示
す図である。24 is a diagram showing the right half of a block diagram of an interface circuit used for each processor module provided inside the system shown in FIGS. 1 and 18. FIG.
【図25】図23及び図24に示したインターフェイス
回路において用いられている様々なクロック波形及びフ
ェイズ波形を図示するタイミング・ダイアグラムであ
る。FIG. 25 is a timing diagram illustrating various clock waveforms and phase waveforms used in the interface circuit shown in FIGS. 23 and 24.
【図26】転送先選択ワードに基づいてマッピングを行
なうための、メモリ構成の更なる詳細とマッピングの一
方式とを図示するブロック図である。FIG. 26 is a block diagram illustrating further details of a memory configuration and one type of mapping for performing mapping based on a destination selection word.
【図27】入力データ・メッセージを受信した際のステ
ータスの変化を示す、簡略化したフローチャートであ
る。FIG. 27 is a simplified flowchart showing a status change upon receipt of an input data message.
【図28】メッセージの受信が行なわれているときのス
テータスの変化を示すフローチャートの前半部分を示す
図である。FIG. 28 is a diagram showing the first half of a flowchart showing a status change when a message is being received;
【図29】メッセージの受信が行なわれているときのス
テータスの変化を示すフローチャートの後半部分を示す
図である。FIG. 29 is a diagram illustrating a latter half of a flowchart showing a status change when a message is being received.
【図30】様々なプライマリ・メッセージとそれらに対
して発生される種々の応答との間の関係、並びに、様々
なプライマリ・メッセージとそれらに応答して実行され
る動作との間の関係を示す表である。FIG. 30 illustrates the relationship between various primary messages and various responses generated thereto, as well as the relationship between various primary messages and actions performed in response thereto. It is a table.
【図31】メッセージの送信が行なわれているときのス
テータスの変化を示すフローチャートの前半部分を示す
図である。FIG. 31 is a diagram showing the first half of a flowchart showing a status change when a message is being transmitted.
【図32】メッセージの送信が行なわれているときのス
テータスの変化を示すフローチャートの後半部分を示す
図である。FIG. 32 is a diagram illustrating a latter half of a flowchart showing a status change when a message is being transmitted.
【図33】本発明に係るスタンド・アローン型システム
のブロック図である。FIG. 33 is a block diagram of a stand-alone system according to the present invention.
【図34】前記高速ランダム・アクセス・メモリに格納
されている送信メッセージと受信メッセージを示す図で
ある。FIG. 34 is a diagram showing a transmission message and a reception message stored in the high-speed random access memory.
【図35】データベース・システム内の複数の異なった
プロセッサの間にデータベースの夫々の部分を分配する
ための、分配方式の可能な一例を示す簡略化した模式図
である。FIG. 35 is a simplified schematic diagram illustrating one possible distribution scheme for distributing respective portions of a database among a plurality of different processors in a database system.
10、12 ホスト・コンピュータ、14、16 イン
ターフェイス・プロセッサ、18〜23 アクセス・モ
ジュール・プロセッサ、24 マイクロプロセッサ、2
6 高速ランダム・アクセス・メモリ、28 制御ロジ
ック、32 ディスク・コントローラ、38〜43 デ
ィスク・ドライブ、50 能動ロジック・ネットワーク
構造、54 ノード、56 クロック・ソース、12
0、120’ ネットワーク・インターフェイス、10
3 マイクロプロセッサ・システム10, 12 host computer, 14, 16 interface processor, 18-23 access module processor, 24 microprocessor, 2
6 High Speed Random Access Memory, 28 Control Logic, 32 Disk Controller, 38-43 Disk Drive, 50 Active Logic Network Structure, 54 Nodes, 56 Clock Sources, 12
0, 120 'network interface, 10
3 Microprocessor system
───────────────────────────────────────────────────── フロントページの続き (72)発明者 リチャード・クラレンス・ストックトン アメリカ合衆国カリフォルニア州ノース リッジ・メリオン・ドライブ19005 (72)発明者 マーチン・キャメロン・ワトソン アメリカ合衆国カリフォルニア州ノース リッジ・キャブリオール・アベニュー 11112 (72)発明者 デビッド・クロンショウ アメリカ合衆国カリフォルニア州トラン ス・タワーズ・ストリート5635 (72)発明者 ジャック・エバート・シエマー アメリカ合衆国カリフォルニア州ロス・ アンゼルス・オーシャーノ・ドライブ 270 ──────────────────────────────────────────────────の Continued on the front page (72) Inventor Richard Clarence Stockton Northridge Merrion Drive, California, USA 19005 (72) Inventor Martin Cameron Watson, Northridge Cabrioall Avenue, California, USA 11112 ( 72) Inventor David Clonshaw, 5635 Trans Towers Street, California, U.S.A. 5635 (72) Inventor Jack Ebert Siemer, Los Angeles Oshano Drive, California, USA 270
Claims (9)
する複数のプロセッサを、所与のタスクの処理に関して
大域的なコーディネーションが得られるように動作させ
る方法であって、 a.大域的に処理されるべきタスクに係るメッセージに
おいて、該タスクを識別するために設定されたトランザ
クション・ナンバを有するメッセージを送出するステッ
プと、 b.異なった複数のプロセッサから送出された互いに競
合する複数の前記メッセージを、前記トランザクション
・ナンバを含むそれらのメッセージのデータ内容に基づ
いてそれらのメッセージ間の優先度を判断しつつ優先度
の高い順に一括送信するステップと、 c.トランザクション・ナンバによって識別される夫々
のタスクを、該タスクの処理に関係する個々のプロセッ
サにおいて受け取り、局所的に且つ互いに非同期的に処
理するステップと、 d.複数のタスクに関する処理済みメッセージを、個々
のプロセッサにおいて順次格納しておくステップと、 e.一のプロセッサが他の前記複数のプロセッサに対
し、特定のトランザクション・ナンバに関する処理済み
メッセージの存在を問い合わせに係るメッセージを送出
するステップと、 f.前記処理済みメッセージの送出要求に係るメッセー
ジを送出するステップと、 g.所与のトランザクション・ナンバに関する、前記複
数のプロセッサからの互いに競合する複数の処理済みメ
ッセージが前記優先度の判断に従って順次に送出される
ことにより、当該タスクに関して一連的な処理結果を得
るステップと、 からなる、マルチプロセッサ・システムにおけるタスク
の処理及びメッセージの送受信制御方法。1. A method for operating a plurality of processors that asynchronously execute a plurality of associated tasks to obtain global coordination with respect to processing of a given task, comprising: a. Sending a message having a transaction number set to identify the task in a message relating to a task to be processed globally; b. A plurality of messages competing with each other sent from a plurality of different processors are collectively sorted in descending order of priority while judging the priority between the messages based on the data content of the messages including the transaction number. Transmitting; c. Receiving each task identified by the transaction number at an individual processor involved in the processing of the task and processing locally and asynchronously with each other; d. Sequentially storing processed messages for a plurality of tasks in individual processors; e. One processor sending a message to the other processors inquiring about the existence of a processed message related to a specific transaction number; f. Transmitting a message related to the processed message transmission request; g. Obtaining a series of processing results for the task by sequentially sending mutually conflicting processed messages from the processors for a given transaction number according to the priority determination; A method for controlling task processing and message transmission and reception in a multiprocessor system, comprising:
ランザクション・ナンバの割当てまたは放棄を設定指示
するためのコマンド・ワードを含むメッセージを送出す
るステップを有する、請求項1のマルチプロセッサ・シ
ステムにおけるタスクの処理及びメッセージの送受信制
御方法。2. The multiprocessor system according to claim 1, further comprising a step of sending a message including a command word for setting and assigning the specific transaction number before or after the execution of each of the steps. For controlling task processing and message transmission / reception in a computer
ージにおいて、トランザクション・ナンバの指定が
「0」の場合は、特定のタスクに関係しないメッセージ
と定義し、トランザクション・ナンバが「0」以外の場
合は特定のタスクに係るメッセージであることを定義す
る、請求項1のマルチプロセッサ・システムにおけるタ
スクの処理及びメッセージの送受信制御方法。3. In the message relating to the inquiry in step e, when the transaction number is "0", the message is defined as a message not related to a specific task. When the transaction number is other than "0", 2. The method for controlling task processing and message transmission / reception in a multiprocessor system according to claim 1, wherein the message is defined as a message related to a specific task.
ットワークを介して相互に接続されているマルチプロセ
ッサ・システムにおいて、大域的に処理されるべき所与
のタスクを、複数のサブタスクとして非同期的に分散処
理することをコーディネートする方法であって、 a.前記ネットワークを介して前記複数のプロセッサへ
特定のタスクに係るメッセージであることを表示するト
ランザクション・アイデンティティ参照情報を含むメッ
セージを送出することにより、該当するプロセッサが前
記サブタスクとして処理すべき大域的タスク処理の指示
を行うステップと、 b.前記トランザクション・アイデンティティ参照情報
を含む前記メッセージを、特定の前記タスクに係るサブ
タスクを実行すべき個々のプロセッサにおいて受け入れ
るステップと、 c.夫々の前記タスクに係るサブタスクを処理しその処
理完了を各プロセッサにおいて表示するステップと、 d.前記ネットワークに対して各プロセッサから所定の
タイム・フレームにおいて送出されたメッセージの内、
特定のタスクに係る複数の前記サブタスクの処理結果
を、該ネットワークがソートしつつ伝送するステップ
と、 e.前記ソートされた前記複数のサブタスクの処理結果
を、順次的に受け入れ一体的な当該タスクの処理結果を
得るステップと、 からなる、マルチプロセッサ・システムにおけるタスク
の処理及びメッセージの送受信制御方法。4. In a multiprocessor system in which a plurality of processors are interconnected via a network having a sorting function, a given task to be processed globally is asynchronously distributed as a plurality of subtasks. A method of coordinating processing, comprising: a. Global task processing to be performed by the corresponding processor as the subtask by sending a message including transaction identity reference information indicating that the message is related to a specific task to the plurality of processors via the network. And b. Accepting the message including the transaction identity reference information at an individual processor to perform a subtask for the particular task; c. Processing a subtask associated with each of the tasks and displaying completion of the processing in each processor; d. Of the messages sent from each processor to the network in a predetermined time frame,
The network transmitting the processing results of the plurality of subtasks relating to a specific task while sorting the subtasks; e. A step of sequentially receiving the sorted processing results of the plurality of subtasks and obtaining an integrated processing result of the task; and a task processing and message transmission / reception control method in a multiprocessor system.
サブタスクの処理が完了していない場合には、別のトラ
ンザクション・ナンバに係るタスクについてステップa
乃至ステップeが実行される、請求項4のマルチプロセ
ッサ・システムにおけるタスクの処理及びメッセージの
送受信制御方法。5. If the processing of the subtask related to the task is not completed in step c, step a) is performed for a task related to another transaction number.
5. The method for controlling task processing and message transmission / reception in a multiprocessor system according to claim 4, wherein steps e through e are performed.
相互に接続されているマルチプロセッサ・システムにお
けるプロセッサ間の通信制御方法であって、 a.一のプロセッサが他のプロセッサに対して、タスク
を特定するトランザクション・ナンバと他のプロセッサ
に対して所与の動作を要求するためのコマンド・コード
とを含む、予め定められている所定の優先順位プロトコ
ルが与えられている一次メッセージを送出するステップ
と、 b.前記優先順位プロトコルに従って判定された最優先
メッセージを、前記ネットワークを介して前記複数のプ
ロセッサの全てに同時に一括送信するステップと、 c.前記他の複数のプロセッサから、前記最優先メッセ
ージに含まれているトランザクション・ナンバによって
指定された前記タスクに関する複数の処理済みデータ・
メッセージを前記ネットワークに相互に同時に送出する
ステップと、 d.前記同時に送出された複数の処理済みデータ・メッ
セージに対して、前記ネットワークにおいて前記所定の
優先順位プロトコルに従った優先権の判定が行われ、そ
れによって最優先の処理済みデータ・メッセージを、前
記一のプロセッサが得る手段と、 e.前記最優先の処理済みデータ・メッセージ以外のメ
ッセージ間において、前記ステップdが反復実行され、
それによって、前記最優先メッセージ内のトランザクシ
ョン・ナンバによって指定された当該タスクに関する前
記複数の処理済みデータ・メッセージが前記一のプロセ
ッサに順次的に受け入れられるステップと、 からなる、マルチプロセッサ・システムにおけるタスク
の処理及びメッセージの送受信制御方法。6. A communication control method between processors in a multiprocessor system in which a plurality of processors are interconnected via a network, comprising: a. A predetermined predetermined priority that includes a transaction number for identifying a task by one processor to another processor and a command code for requesting a given operation to another processor. Sending a primary message provided with a protocol; b. Batch transmitting simultaneously the highest priority message determined according to the priority protocol to all of the plurality of processors via the network; c. A plurality of processed data relating to the task specified by the transaction number included in the highest priority message from the other plurality of processors;
Sending messages to the network simultaneously with each other; d. For the plurality of processed data messages transmitted simultaneously, a priority determination is performed in the network according to the predetermined priority protocol, whereby the highest priority processed data message is assigned to the one processed data message. Means obtained by the processor of e. Step d is repeated between messages other than the highest priority processed data message;
Thereby sequentially accepting said plurality of processed data messages for said task specified by the transaction number in said highest priority message to said one processor, the task in a multiprocessor system comprising: Processing and message transmission / reception control method.
され、個々の前記プロセッサにおいて、複数のタスクに
係る複数のトランザクション・ナンバに係る複数の処理
済みデータ・メッセージが存在する場合は、個々の該プ
ロセッサは該複数のタスクに関する処理済みデータ・メ
ッセージを自己のバファ手段において順次並べて格納し
ておき、その後、前記ステップc乃至ステップeが実行
される、請求項6のマルチプロセッサ・システムにおけ
るタスクの処理及びメッセージの送受信制御方法。7. When a plurality of processed data messages relating to a plurality of transaction numbers relating to a plurality of tasks are present in each of said processors, said individual steps a and b are repeatedly executed. 7. The task processing in the multiprocessor system according to claim 6, wherein the processor stores the processed data messages related to the plurality of tasks side by side in its buffer means, and then executes the steps c to e. And a method for controlling transmission and reception of messages.
スクが複数あり、複数の一次メッセージを順次送出する
場合において、前記優先順位プロトコルに従ったより優
先順位の高い一次メッセージを順次に送出する、請求項
7のマルチプロセッサ・システムにおけるタスクの処理
及びメッセージの送受信制御方法。8. In the step (a), when there are a plurality of tasks to be processed and a plurality of primary messages are sequentially transmitted, the primary messages having a higher priority according to the priority protocol are sequentially transmitted. Item 7. A task processing and message transmission / reception control method in the multiprocessor system according to Item 7.
所与の一つのトランザクション・ナンバに関する各プロ
セッサにおける処理状況を示すステータスの問い合わせ
のためのメッセージを送出するステップと、個々のプロ
セッサにおいて該問い合わせに係るメッセージに対する
応答メッセージを同時に送出するステップと、複数の該
応答メッセージに対して前記優先順位プロトコルに基づ
いて処理状況の最も低いステータスが優先的に送信され
るステップと、それにより該トランザクション・ナンバ
に係るタスク処理の全体的処理状況を判定するステップ
と、を含む、請求項8のマルチプロセッサ・システムに
おけるタスクの処理及びメッセージの送受信制御方法。9. The method according to claim 8, wherein between the step b and the step c,
Sending a message for a status inquiry indicating the processing status of each processor with respect to a given transaction number; simultaneously sending response messages to the inquiry message in the individual processors; A step of preferentially transmitting a status with the lowest processing status based on the priority protocol with respect to the response message, and thereby determining an overall processing status of the task process related to the transaction number; 9. The method for controlling task processing and message transmission / reception in a multiprocessor system according to claim 8, comprising:
Applications Claiming Priority (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| 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 |
| US250022 | 1981-04-01 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH05290002A JPH05290002A (en) | 1993-11-05 |
| JP2628811B2 true JP2628811B2 (en) | 1997-07-09 |
Family
ID=26940538
Family Applications (13)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP1234491A Expired - Lifetime JP2555450B2 (en) | 1981-04-01 | 1989-09-07 | Multiprocessor system |
| JP1234493A Granted JPH02118747A (en) | 1981-04-01 | 1989-09-07 | Message transmission network, bus network and broadcasting of message to multiple processor |
| JP1234494A Expired - Lifetime JP2607696B2 (en) | 1981-04-01 | 1989-09-07 | Multiprocessor system and method of using the same |
| JP1234495A Expired - Lifetime JPH0792791B2 (en) | 1981-04-01 | 1989-09-07 | Message communication control system in multiprocessor system |
| JP1234492A Granted JPH02132560A (en) | 1981-04-01 | 1989-09-07 | Relational database machine, data base computer system and data base management system and method |
| JP1234500A Expired - Lifetime JPH0750463B2 (en) | 1981-04-01 | 1989-09-07 | Method of sending and receiving message in multiprocessor system |
| JP1234498A Expired - Lifetime JPH0619762B2 (en) | 1981-04-01 | 1989-09-07 | Node circuit for network system |
| JP1234501A Expired - Lifetime JP2555451B2 (en) | 1981-04-01 | 1989-09-07 | Method for managing message packet in multiprocessor system |
| JP1234497A Expired - Lifetime JPH0750462B2 (en) | 1981-04-01 | 1989-09-07 | Multiprocessor system |
| JP1234499A Granted JPH02118709A (en) | 1981-04-01 | 1989-09-07 | Data transmission system and clocking system |
| JP1234496A Expired - Lifetime JP2560118B2 (en) | 1981-04-01 | 1989-09-07 | Computing system |
| JP3263081A Expired - Lifetime JP2651473B2 (en) | 1981-04-01 | 1991-09-12 | Message communication control method 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 |
Family Applications Before (12)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP1234491A Expired - Lifetime JP2555450B2 (en) | 1981-04-01 | 1989-09-07 | Multiprocessor system |
| JP1234493A Granted JPH02118747A (en) | 1981-04-01 | 1989-09-07 | Message transmission network, bus network and broadcasting of message to multiple processor |
| JP1234494A Expired - Lifetime JP2607696B2 (en) | 1981-04-01 | 1989-09-07 | Multiprocessor system and method of using the same |
| JP1234495A Expired - Lifetime JPH0792791B2 (en) | 1981-04-01 | 1989-09-07 | Message communication control system in multiprocessor system |
| JP1234492A Granted JPH02132560A (en) | 1981-04-01 | 1989-09-07 | Relational database machine, data base computer system and data base management system and method |
| JP1234500A Expired - Lifetime JPH0750463B2 (en) | 1981-04-01 | 1989-09-07 | Method of sending and receiving message in multiprocessor system |
| JP1234498A Expired - Lifetime JPH0619762B2 (en) | 1981-04-01 | 1989-09-07 | Node circuit for network system |
| JP1234501A Expired - Lifetime JP2555451B2 (en) | 1981-04-01 | 1989-09-07 | Method for managing message packet in multiprocessor system |
| JP1234497A Expired - Lifetime JPH0750462B2 (en) | 1981-04-01 | 1989-09-07 | Multiprocessor system |
| JP1234499A Granted JPH02118709A (en) | 1981-04-01 | 1989-09-07 | Data transmission system and clocking system |
| JP1234496A Expired - Lifetime JP2560118B2 (en) | 1981-04-01 | 1989-09-07 | Computing 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) | JP2555450B2 (en) |
Families Citing this family (10)
| 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 |
| US20210048991A1 (en) * | 2019-08-13 | 2021-02-18 | Nvidia Corporation | Performing matrix operations in neural networks |
| 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)
| 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 |
-
1989
- 1989-09-07 JP JP1234491A patent/JP2555450B2/en not_active Expired - Lifetime
- 1989-09-07 JP JP1234493A patent/JPH02118747A/en active Granted
- 1989-09-07 JP JP1234494A patent/JP2607696B2/en not_active Expired - Lifetime
- 1989-09-07 JP JP1234495A patent/JPH0792791B2/en not_active Expired - Lifetime
- 1989-09-07 JP JP1234492A patent/JPH02132560A/en active Granted
- 1989-09-07 JP JP1234500A patent/JPH0750463B2/en not_active Expired - Lifetime
- 1989-09-07 JP JP1234498A patent/JPH0619762B2/en not_active Expired - Lifetime
- 1989-09-07 JP JP1234501A patent/JP2555451B2/en not_active Expired - Lifetime
- 1989-09-07 JP JP1234497A patent/JPH0750462B2/en not_active Expired - Lifetime
- 1989-09-07 JP JP1234499A patent/JPH02118709A/en active Granted
- 1989-09-07 JP JP1234496A patent/JP2560118B2/en not_active Expired - Lifetime
-
1991
- 1991-09-12 JP JP3263081A patent/JP2651473B2/en not_active Expired - Lifetime
- 1991-09-12 JP JP3263082A patent/JP2628811B2/en not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| JP2651473B2 (en) | 1997-09-10 |
| JPH02118763A (en) | 1990-05-07 |
| JPH02118759A (en) | 1990-05-07 |
| JPH0792791B2 (en) | 1995-10-09 |
| JP2555450B2 (en) | 1996-11-20 |
| JPH0750462B2 (en) | 1995-05-31 |
| JPH0619762B2 (en) | 1994-03-16 |
| JP2560118B2 (en) | 1996-12-04 |
| JPH02118762A (en) | 1990-05-07 |
| JPH0750463B2 (en) | 1995-05-31 |
| JP2607696B2 (en) | 1997-05-07 |
| JPH05324573A (en) | 1993-12-07 |
| JPH02118709A (en) | 1990-05-07 |
| JPH0413739B2 (en) | 1992-03-10 |
| JP2555451B2 (en) | 1996-11-20 |
| JPH02138656A (en) | 1990-05-28 |
| JPH02118747A (en) | 1990-05-07 |
| JPH02132560A (en) | 1990-05-22 |
| JPH02118760A (en) | 1990-05-07 |
| JPH0426726B2 (en) | 1992-05-08 |
| JPH0245221B2 (en) | 1990-10-08 |
| JPH02118756A (en) | 1990-05-07 |
| JPH05290002A (en) | 1993-11-05 |
| JPH02118761A (en) | 1990-05-07 |
| JPH02140035A (en) | 1990-05-29 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP0069438B1 (en) | A multiprocessor system, a system and method for intercommunicating between processors, a system for effecting data transfer, a system for controlling routing of messages, and an arrangement for ascertaining a global state of readiness of a system | |
| EP0233993B1 (en) | Message transmission network | |
| US4945471A (en) | Message transmission system for selectively transmitting one of two colliding messages based on contents thereof | |
| US5276899A (en) | Multi processor sorting network for sorting while transmitting concurrently presented messages by message content to deliver a highest priority message | |
| US20150172412A1 (en) | Managing dependencies between operations in a distributed system | |
| JP2002517035A (en) | Distributed computing environment using real-time scheduling logic and time-deterministic architecture | |
| JP2628811B2 (en) | Task processing and message transmission / reception control method in a multiprocessor system | |
| CA1198523A (en) | Multi-processor intercommunication system and method | |
| WO2020232870A1 (en) | Actor model based data collection method and apparatus, and storage medium | |
| JP2024066421A (en) | Stream-Based Transaction Processing | |
| CN121050900A (en) | Data transmission control methods, devices, equipment, and computer storage media | |
| Concepcion | Trans. Nat. Acad. Sci & Tech.(Phils.) 1987.9: 51� 63 | |
| Sharma | Time warp simulator designs for clusters of smps | |
| Sharma | Robust Replication Control Using Primary Copy Method |