JPS63312750A - データ処理システム - Google Patents

データ処理システム

Info

Publication number
JPS63312750A
JPS63312750A JP63138570A JP13857088A JPS63312750A JP S63312750 A JPS63312750 A JP S63312750A JP 63138570 A JP63138570 A JP 63138570A JP 13857088 A JP13857088 A JP 13857088A JP S63312750 A JPS63312750 A JP S63312750A
Authority
JP
Japan
Prior art keywords
packet
station
class
packets
server
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.)
Pending
Application number
JP63138570A
Other languages
English (en)
Inventor
ロベルト・アドリアヌス・ヘンドリック・ファン・ツイスト
ヤン・クンラード・アノット
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Koninklijke Philips NV
Original Assignee
Philips Gloeilampenfabrieken NV
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Philips Gloeilampenfabrieken NV filed Critical Philips Gloeilampenfabrieken NV
Publication of JPS63312750A publication Critical patent/JPS63312750A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17356Indirect interconnection networks
    • G06F15/17368Indirect interconnection networks non hierarchical topologies
    • G06F15/17375One dimensional, e.g. linear array, ring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Multi Processors (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 本発明は限定的ではないが特に並列、汎用コンピュータ
システムに適用されるデータ処理システムに関連してい
る。
現代の多くの科学的、技術的適用におけるデータ処理能
力に対して絶えず拡大する要求は計算工学が並列コンピ
ュータと並列計算を考慮するようにしている。この考慮
の結果として、コンピュータシステムの性能を改善する
一般的アプローチはそれらを多数の同時に動作する処理
要素として設計し、かつアーキテクチャ−とプログラミ
ング原理への広く変化するアプローチを持っている。代
表的なそのようなシステムは複数の独立コンピュータ(
self−contained computer)を
具え、その各々は中央処理ユニットあるいはデータ処理
ユニット(OP)、ローカルメモリおよび通信プロセッ
サ(CP)を有し、それらは直接パケット交換回線網(
direct packet 5w1tchi); n
etwork)で接続されている。
特定の回線網形態に従って接続され、かつ各々がそれ自
身その関連データ処理ユニッ) (OP)に接続されて
いる通信プロセンサ(cp)の集合の機能は、DP (
ソース)から固定長データパケットを受信し、パケット
で表示された宛先CPに最短通路の1つに沿って相互に
協働してこれらを転送し、そのあとでこのCPはパケッ
トをそれ自身のOPに伝えることである。各CPは他の
ものからそれを識別する独自のアイデンティティ(un
ique 1dentity)を有している。
この機能はそれ自体既知である。例えば宇宙空間(Co
smic Cube)  において、シー・エル・ザイ
ッ(C,L、5eitz)の[宇宙空間通信(The 
Co5m1c CubeComm、 ) J 、ニーシ
ーエム(ACM) 、第28巻、第1号、1985年1
月、および枦イッから由来するイン゛チルのアイビーニ
スシー(the 1Psc of IN置) を見られ
たい。こ5で機能は大部分、ソフトウェアで実現されて
いる。回線網とノード対ノード転送のみがハードウェア
で実現されている。中間ノードでは、叶は取るべき次の
通路の選択をソフトウェアで行なうようにされている。
インモス(Inmos)のトランスピユータ(Tran
sputer)では、この機能はハードウェアとソフト
ウェアにわたる同じ分配で実現されている。グリ−とザ
イッについて、ダブリュー・リュー・グリ−(W、J、
 Daily)とシー・エル・ザイッ(C几、5eit
z)を見られたい。分散された計算である円環体ルーテ
ィングチップ(TorusRouting Chip)
  (1986) 1 :頁187〜196 はそ、れ
らの「円環体ルーチングチツブ」が宇宙空間で機能を完
全にハードウェアで実現するよう設計されている。ソフ
トウェアによる設計の実現とハードウェアによる設計の
実現との間の重要な差はそのようなパケット交換回線網
の通信遅延である。インテル、 ハイパーキューブ(I
ntel Hypercube)の実例によると、2つ
の近傍(neighbour)の間のソフトウェアによ
る通信ステップは1ミリ秒を必要とし、一方、ハードワ
イヤ化された通信プロセッサでは10数ミリ秒ないし2
0ミリ秒のみが必要とされている。しかし直接パケット
交換回線網による問題はそれらが注意深く設計されかつ
動作されないならばデッドロック(dead 1ock
)と望ましくないスターベーション(starvati
on)の傾向があることである。
本発明の目的は複数の独立コンピュータを具えるデータ
処理システムのスループットを改善することである。
本発明の1つの態様によると、接続回線網によって相互
接続されている複数のステーションを具えるコンピュー
タ情報パケット交換システムが備えられ、こ\で各ステ
ーションが、少なくとも他の1つのステーションと通信
する手段、情報のパケッージの過渡的な蓄積(tran
sient storage)の手段、および他のステ
ーションからそれ自身のステーションに情報パケットの
転送要求を発出する手段を有している。
データパケットの転送を開発する受信プロセッサによっ
て、もしパケットが1つ以上の近傍に送れるなら、隣接
通信プロセッサが「次の近傍(nextneighbo
ur) Jである判定を送信プロセッサが延期すること
を可能にする。さらに入力サーバーがパケットの蓄積ユ
ニットを保留することを保証されるまでこの判定は延期
できる。それに反して、もし転送の開始が送信器によっ
て取られるなら、送信器におけるいくつかのパケットに
対して、近傍によってそれが受取られるかどうかを知る
こと無く、どの「次の近傍」にそれを送ることを(少な
くとも一時的に)判定すべきである。
本発明によるコンピュータパケット交換システムの一実
施例において、アンチ・デッドロックプロト:] ル(
anti−deadlock protocol)が接
続回線網に重畳されている。このプロトコルは(0から
Nクラス−1の範囲にあり、Nクラスが利用可能なクラ
スの数である)クラスが回線網の各パケットに割当てら
れているようなものである。
各クラスに対して、非輪状有向グラフ(acyclic
directed graph)が各物理的リンクに方
向を割当てることにより物理的回線網に重畳されている
そのクラスに関連する非輪状有向グラフの方向に従って
パケットが進行する限りパケットのクラスはそのまへ残
っているが、しかしその現在のクラス(current
 class)  に関連する非輪状有向グラフの方向
に逆からって(against)パケットがホップする
度毎にパケットのクラスが1だけ増大している。
本発明の第2の態様によると、情報パケット交換システ
ムに使用するステーションが備えられ、上記のステーシ
ョンは、通信インターフェース、データプロセッサ、お
よび通信インターフェースとデータプロセッサを相互接
続するデータバスを具え、通信インターフェースは通信
プロセッサと、通信プロセッサをデータバスに結合する
インターフェースプロセッサを具え、こへて通信プロセ
ッサは、 −インターフェースプロセッサから、あるいはそれが接
続されている他のステーションの通信プロセッサの出力
サーバーからデータパケットを要求できる入力サーバー
であって、上記の各入力サーバーが以前に要求されたデ
ータパケットをまた受信できるもの、 −データパケットが一時的に蓄積できるパケット蓄積装
置(packet storage)、−インターフェ
ースプロセッサから、あるいはそれが接続されている他
のステーションの通信プロセッサの入力サーバーからデ
ータパケットの要求を受信できる出力サーバーであって
、以前に要求を受信したデータパケットを上記の各出力
サーバーがまた送信できるもの、 一各宛先を表示する経路表(routing tabl
e)であって、その出力サーバーを介してその宛先を持
つパケットがインターフェースプロセッサあるいは隣接
ステーションのいずれかにその次のホップを行うもの、 −データパケットを要求するために入力サーバーに命令
できる中央管理(central administr
ation)であって、上記の中央管理がその入力サー
バーからパケット蓄積装置に入力サーバーによって受信
されたデータパケットをまた移動でき、上記の中央管理
が要求を受信した出力サーバーにパケ7)蓄積装置から
データパケットをまた移動でき、経路表に従って上記の
データパケ7)が上記の出力サーバーを介して次のホッ
プを行うことを許されているものを具えている。
本発明によるデータ処理システムの一実施例において、
接続回線網は少なくともd=1に等しい直径(d)を有
している。2つのステーション間の各接続は一連の少な
くとも2つの接続から形成できるすべてのリングが非輪
状に向けられた好ましい方向を有するように好ましい方
向を有している。各ステーションにおけるパッケージ蓄
積装置は上昇順列(ascending order 
5eries)で配列されたクラスに分割された複数の
蓄積ユニットを具えティる。複数の蓄積ユニットの1つ
に局所的に形成された情報パケットを配分し、そしても
し入り回線網接続と出回線網接続の好ましい方向との間
に交替(alternation)が存在しないなら以
前のステーンヨンに情報が配分されたM積ユニットと同
じクラスの蓄積ユニットに回線網を通して受信された情
報パケットを配分するが、しかしもし入り回線網接続と
出回線網接続の好ましい方向の間に交替が存在するなら
以前のステーションに情報パケットが配分された蓄積ユ
ニットのクラスに対して1だけ上昇されたクラスの蓄積
ユニットに回線網を通して受信された情報パケットを配
分する配分要素(allocation elemen
t)を各ステーンヨンが有している。
今後クラスクライミング(class climbin
’g)として規定される方法によって本発明に従って行
なわれたデータ処理システムでデッドロックが回避され
ている。その上、クラスの公正な使用(fairusa
ge)とデータパケットの到着の時間的順序(temp
oral order)の管理を保証することにより、
生起するスターベーションの危険性は回避される。
添付図面を参照し、実例によって本発明を説明する。
第1図G;!UNIX VAX 11/785 (Dよ
うなホストコンピュータ10を具えるデータ処理システ
ム全体を例示し、これに対して入力端子12、プリンタ
のような出力デバイス14、およびゲートウェー16を
介して並列、汎用計算システム18が接続されている。
汎用計算システム18は複数のi並列接続ノードN。
・・・・Ni−+を具ている。
ホストコンピュータ10はシステム18がディスクのよ
うな端子および/または蓄積装置を具えていないという
理由で編集(editing) 、コンバイリング(c
ompiling) 、リンキング(I inking
) およびファイリングシステム(filing sy
stem) のようなソフトウェア展開(develo
pment)の機能を備えている。ゲートウェー16は
次のような動作の実現を可能にしている。すなわちそれ
らは、システム18にオペレーティングシステム([]
S)をダウンロード(down 1oad)すること、
ルートオブジェクト(rootobject)をダウン
ロードすること、デマンド駆動並列オブジェクトオリエ
ンテノド言語(demanddriver paral
lel object−oriented langu
age)(POOL)コードをダウンロードすること、
pootニブログラムの入力と出力をファイルすること
、POOLプログラムを監視しデバッグすること、テス
トソフトウェアをダウンロードすること、およびオペレ
ーティングシステムとハードウェアの監視とデバッグを
行うことである。システム18はメツセージ伝達によっ
て機能するポイント・ツー・ポイント通信回線網を具え
ている。
第2図は第1図に示されたノードNの1つのデータ通路
のブロックを概略的に例示している。32ピント幅のデ
ータバス20はゲートヴエープロセッサGP、メモリ!
、lE、データプロセッサDP、タイマTI。
およびインターフェースプロセッサIPと通信プロセッ
サCPを具える通信インターフェースCIに接続されて
いる。ゲートウェープロセッサGPはホストコンピュー
タ10 (第1図)とノードの間の通信のハードウェア
支援(support)を備え、またイーサネット制御
装置<8thernet controlIer) 6
8590を含んでいる。メモリMEは4メガビットRA
M  (ランダムアクセスメモリ)とFROMと共にモ
ートローラ(!、1otorola) 68851のよ
うなメモリ制御ユニット(memory manage
ment unit)を具えている。メモリMEはオペ
レーティングシステムを支配し、かつコード、スタック
、およびデータと手順の総合ユニットである常駐情報パ
ケット(residing informationp
acket)のメツセージキューを収容している。デー
タプロセッサDPは典型的にはモートローラ68020
マイクロプロセツサと68881浮動小数点コプロセッ
サを具えている。タイマTIはスケジューリングのタイ
ムアウトおよび監視、デバッグ、配分のストップウォッ
チの機能を備えている。通信インターフェースCIはノ
ード間の通信、特にデータプロセッサOPを含まないで
隣接ノードへの情報バケツ) (256ビツト)の経路
決め(あるいは転送(forwarding) )に対
するハードウェア支援を備えている。並列に走るリンク
の数が4と16の間であることが典型的である。動作に
際してデータプロセッサDPはメツセージを一括し、か
つ32ビット部分で通信インターフェースCIのバッフ
ァ空間にパケットをコピーする。その宛先に到着したそ
れらのパケットは通信インターフェースCIでバッファ
され、かつデータプロセッサDPによってメモリMEに
コピーされる。まだその宛先に到着しないパケットは転
送されるために待っている間だけ通信インターフェース
C1にバッファーされる。通信インターフェースCIの
便宜的な実現はVLS1回路として行なわれている。
通信インターフェースのアーキテクチャ−は第3図に示
されている。インターフェースプロセッサIPはFIF
O(First In、 First 0ut)蓄積装
置を具え、これはデータプロセッサOPと通信プロセン
サCPの間に双方向にキューを形成し、かつ実効的にこ
れらのプロセッサを分離している。入力PIFOはQl
と規定され、出力FIFOはQOと規定されている。
通信プロセッサCPはインターフェースプロセッサIP
と隣接通信プロセッサCPから到来するパケットの経路
決めを考慮する。各通信プロセッサCPは多数の並行に
走る入力■サーバーと出力0サーバー、および正確に1
パケツトを含む蓄積ユニットに基いてパケットがバッフ
ァーされている蓄積ユニットから構成されているパケッ
ト蓄積装置(packetstorage) PSを含
んでいる。入力サーバービは入力FIFO01からパケ
ットを受取り、出力サーバー0′は出力FIFOQOに
パケットを供給する。
第4図は2つの隣接通信プロセッサCPoとCP。
を例示している。隣接通信プロセッサ間の接続は双方向
である。1つのサイドの1出カサ−バーと1入力サーバ
ーはそれぞれ他のサイドの1入力サーバーと1出カサ−
バーに接続されている。特に、1つのサイドの1入力サ
ーバーを他のサイドの1出カサ−バーにのみ接続するこ
とにより、一方向接続が設定できる。パケット転送方向
は常に出力サーバーから入力サーバーの方向である。1
つの通信プロセッサの入力サーバーと出力サーバーは全
く無関係に動作し、それらの唯一の相互作用は相互に唯
一のアクセス(mutually exclusive
’access)を有するパケット蓄積装置PSを介し
て行なわれている。中央管理(第4図に示されていない
)はその出力サーバーを介してパケットが送られるよう
管理し、かつデッドロックが起らぬようパケット蓄積装
置を処理する。
第5図は5つの通信プロセッサとそれらの関連データプ
ロセッサからなるパケット交換回線網を例示している。
各通信プロセッサCPはその対応データ処理要素DPと
通信するその接続の1つを使用し、他のすべての接続は
他の通信プロセッサCPと通信するよう使用できる。通
信プロセッサの接続の最大数は設計自体に何らの影響を
持たない実行定数(implementation c
onstant)である。データ処理要素OPが他のデ
ータ処理要素にメツセージを送ろうとすると、メツセー
ジは多数のパケットに分離され、各パケットはメツセー
ジ内容の一部分とその最終宛先のアドレスのようないく
つかの経路情報を含んでいる。通信プロセッサCPの回
線網は1ホツプあるいはそれ以上のホップでパケットを
その宛先に転送する。
入力サーバーと出力サーバーのアクティビティは微細な
動作(atomic action)の無限に繰返され
た短いループからなっている。各微細な動作は、パケッ
ト蓄積装置にアクセスするか、あるいは同期および隣接
通信プロセッサで相補サーバー(complemeut
ary 5erver)と共に行われる通信動作(co
+to++unication action)のいず
れかである。微細な動作のそれらのループは第6図およ
び第7図に示されている。作用(action) 「蓄
積ユニットを保留する(reserve 5tora)
He unit) J R2Oと[パケットを蓄積する
(store packet) J STPは入力サー
バーrに対応するパケット蓄積装置をアクセスする。
作用「パケットを探索する(retrieve pac
ket) JRTPは出力サーバー0に対応するパケッ
ト蓄積装置をアクセスする。作用「パケットを要求する
(request for packet) J Rε
Pと大カサ−バーの「パケットを受信する(recei
ve packet) 」RCPは出力サーバーの作用
「要求を受信する(receiverequest) 
J RCRと[パケットを送る(send packe
t) JSBPそれぞれと同期している。
そのような一対の接続された相補サーバーに関する限り
のステップの連続は以下のように第6図から推定できる
一第1に、入力サーバー■はその通信プロセッサCPの
パケット蓄積装置に蓄積ユニツ) R2Oを保留し、か
つ対応する要求を組立てる。
−2番目に、入力サーバー■は隣接通信プロセ、ソサの
出力サーバー〇に要求を送る。この動作は出力サーバー
による要求の受信と同期している。
−3番目に、出力サーバー〇は送出通信プロセッサのパ
ケット蓄積装置(RTP)から要求に整合するパケット
を探索する。
一4番目に、入力サーバーによってパケットの受信と同
期して、出力サーバーは入力サーバーにパケットを送る
一5番目に、大カサ−バーは前に保留された蓄積ユニッ
トのパケット蓄積にバケツ) STPを蓄積する。
今や我々は出発した所に戻る。5ステツプのこのシーケ
ンスは無限に繰返される。
第7図はリンクプロトコルの1サイクルを示している。
並行に走る入力サーバーと出力サーバーは次の作用、す
なわち蓄積ユニットを保留するR2O、パケットを蓄積
するSTP 、およびパケットを探索するRTPの間に
いくつかのパッケージ蓄積装置をアクセスする。動作シ
ーケンスが例えば既に保留された蓄積ユニットの別のパ
ケットの蓄積によって中断されることなく完了できるこ
とを保証するために、プロトコルは多重サーバーに対し
てパッケージ蓄積装置を同時にアクセスすることが許さ
れないように、すなわち相互に唯一のアクセスが保証さ
れるように配列される。作用R3tl、 STPおよび
RTPがクリチカルであると見なされているから、それ
らは「ミューチフス(mutex)  Jと名付けられ
た信号(semaphore)の使用によって実現され
ている。このようにして、P (mutex)  は「
クリチカル部分に入る(Enter critical
 5ection) 」を意味し、もし必要ならばキュ
ーを結合し、戻りを待つ。V(mutex)  は「ク
リチカル部分を出る(Leave criticals
ection) Jを意味し、そしてもしサーバーが待
っているなら、キューの先頭にあるサーバーを活性化す
る。
その結果、入力プロセスのアルゴリズムは次のように書
ける。
iJ do true −> p(mute:<) ;  reserve a storage unit
;  V (mutex) ;5enda“5end packet” reque
st to 0utput;  receive pa
cket 5ent by 0utput;  P(m
utex) ;  put packet in Packet S
torage;  V(mutex) d ] l そして出力プロセスに対して次のように書ける。
1[do true −> receive“5end packet” r
equest 5ent by Input;  P(
mutex) ;  get a packet from Pack
et Storage;  V (mutex) ;  5end packet to Inputd ] 1 第8図は通信プロセッサと蓄積ユニットの組織の一実施
例を例示している。入力サーバー10からI3までと、
出力サーバー〇。から03までがそれぞれ示されている
。矢印を持つ矩形は要求RとノマケソトPの送受信を示
している。
経路表(示されていない)はパケ7)の各最終宛先に対
して出力サーバーのリストを含み、それを介してその宛
先を持つパケットはその通路でその最終宛先への次のス
テップを作ることができろ。
時間的順序管理は出力サーバーにおける待ち、zHパケ
ットFIFOキューを形成するよう配列されている。
新しいパケットは経路表によって表わされたように各整
合キs −(matching queues)の末尾
に置かれている。キューの1つにおいて、例えば出力サ
ーバー01におけるパケット「6」のようなパケットが
まず取扱われ、そしてこのサーバーによって送出される
。同時にこのパケット「6」は例えば出力サーバー02
におけるキューのようにその通信プロセッサの他のすべ
てのキューから取除かれる。
第8図の下側部分には、空き蓄積ユニッ) (empt
ystorage unit) esu 、保留蓄積ユ
ニット(reservedstorage unit)
 rsu 、およびフル蓄積ユニット(full st
orage unit) fsuのスタックが示されて
いる。第8図の真中の丸はフリーな蓄積ユニット、すな
わち空き蓄積ユニットと保留蓄積ユニットの組のすべて
のアドレスを含んでいる。
パケットの転送の開始は送出通信プロセッサによって行
なわれるのではなく、受信プロセッサによって行なわれ
る。受信プロセッサによるこの開始は、もしパケットが
1つ以上の近傍に送出できるなら、どの隣接通信プロセ
ッサが「次の近傍」であるかの判定を送出プロセッサが
延期することを可能にする。この判定は入力サーバー■
がパケットの蓄積ユニットを保留することを保証するま
で延期することができる。もし転送の開始が送出器によ
って行なわれるべきであったなら、送出器のいくつかの
パケットに対して、それがその近傍によって受取られる
かあるいはそうでないかを知ること無く、どの「次の近
傍」にそれを送るべきかが判定されなくてはならない(
少・なくとも一時的に)。
送出器ではなくて受信器にパケットの転送の開始を与え
ることは別の結果を有しており、対応するパケット蓄積
装置が要求に整合するどんなパケットも持たない瞬間に
出力サーバーがその近傍からパケットに対する要求を受
信することがたまたま起ろう。そのような場合に、デッ
ドロック乏スターベーションのために出力サーバー〇は
適当なパケットがパケット蓄積装置に到着するまで無限
に長く待つことは許されない。その代り、出力サーバー
は限られた時間内で入力サーバーからの要求をキャンセ
ルしなければならず、それは第6図の作用「パケットを
送るJ (SEP)の特殊ケースである。その結果、入
力サーバーは作用「パケットを蓄積するJ (STP)
の特殊なケースを実行し、それは以前に保留された蓄積
ユニットを充すのではなくフリーにしよう。
デンドロツクとスターベーションのために、パケット蓄
積装置をアクセスする作用の実現は望ましいほど簡単に
はできない。パケット蓄積装置がパケットによって占有
されずあるいはいくつかの入力サーバーによって保留さ
れない少なくとも1つの蓄積ユニットを有する限り、も
し作用[蓄積ユニットを保留する(reserve s
torage unit) J(R2O) が許される
なら、デッドロックが生起できることが容易に示せる。
すると唯一可能な「次の近傍」として他の通信プロセッ
サを有するすべてのパケットを持つ2つの隣接通信プロ
セッサのパケット蓄積装置を充すことが可能となろう。
かくしてそれらがデッドロックであるという理由でこれ
ら2つの通信プロセッサの一層の進展を妨げること5な
ろう。
議論を完全にするために、通信プロセッサのアルゴリズ
ム記述が与えられよう。この記述は通信プロセッサに存
在する種々のデータ構造の議論により、そして通信プロ
セッサの望ましい機能を実′現するためにこれらのデー
タ構造の使用に対するアルゴリズムを提出することによ
り行なわれよう。
その上、クラスクライミングの原理および使用されたリ
ンクプロトコルが記述されよう。
本発明の理解を容易にするために、使用された表記法に
ついて説明する。第1に、アレイインデキシング(ar
ray indexing)、フィールド選択(fie
ldselect 1on)等に対する共通記号として
挿入期間(1nfix period) (例えば保留
可能j  [Re5ervable、 j] )が使用
され、括弧対(parenthesis pairs)
  (例えば整合(a、  b)  [match (
a、 b)])が多分サイド効果を有しかつ多分若干の
結果を戻すサブルーチンを示すため使用され、もちろん
括弧はまた副次表現(sub−express 1on
)のグループ化に使用されている。
さらに、イー・ダブりニー・ディヒクストラ(E、il
l、 Dijkstra)の「プログラムノ保護指令、
非決定性および形式的導出(Guarded Comm
ands。
〜oncleterminancy and Form
al Derivation ofProgram)」
、ニーシーエム(ACM) 18(8) 、1975年
、頁453−457の通常の保護指令言語(usual
 guardedco+nmand language
) は並列記述(parallel statemen
t)で拡張されている。
par <guarded command set>
 rapの形の並列記述において、真実の保護(tru
e guard)を持つすべての保護リスト(guar
ded 1ist)が選択され、かつそれらは並列に実
行されている。すべての保護リストが終了すると並列記
述は終了する。
その上、時には定量化が保護指令セ・7 ト(guar
ded command 5et)を形成するために使
用されてし)る。例えば記法 ([i i: Q<i<=3: 5tuff、i )が 5tuff、1  []  5tuff、2  [] 
 5tuff、3゜の簡略形(shorthand) 
 として使用されている。
最後に、すべての通信プロセッサが同じデータ構造を持
っているから、通信プロセッサの名前がデータ構造の名
前の添字として時には加えられ(例えばrOutV)、
これはその名前を持つデータ構造が特定の通信プロセッ
サに与えられることを意味する表示を強調するためであ
る。
隣接通信プロセッサに接続された相補サーバー間のデー
タトラヒックは入力サーバーIから出力サーバーOに送
られた要求および反対方向に送られたパケットからなっ
ている。これらの反対のデータストリームは時間的に交
替し、従ってサーバーペア毎にハーフデユープレックス
通信媒体のみが必要とされている。Nを通信プロセッサ
中のリンクの数であるとすると、リンクおよび対応入力
サーバーと出力サーバーは0からNリンクー1まで番号
付けされる。入力サーバーコ (O≦j<Nリンク)は
、そこから要求が送信されるシフトレジスタ1req、
 jと、そこにパケットが受信されるシフトレジスタ1
pack、、jを有している。出力サーバーjはシフト
レジスタoreq、 jで要求を受信し、そしてシフト
レジスタopack、 j からパケットを送信する。
opackv、 jからの送信は破壊的(destru
ctive)であり、通信プロセッサVは送信のあとパ
ケット中に情報を必要としない。しかし1req、、 
jからの送信は非破壊的(non−destructi
ve)でなくてはならない。要求の返答としてパケット
の受信を管理する場合に要求中の情報は通信プロセッサ
Vによって再び使用されよう。従って1req、 Jが
循環シフトレジスタ(circular 5hift 
register)でなければならぬか、あるいはいく
つかの付加メモリが要求をセーブするために使用されね
ばならない。1req、 jあるいは0ρack、 j
からの送信は送信すべき値がシフトレジスタに割当てら
れたすぐあとで開始される。oreq、jの要求の受信
あるいは1pack、、i のパケットの受信は真渣を
ブーリアンNeedJacket、 jあるいはPac
ket Del 1very、 jそれぞれに割当てる
ことにより信号される。これらのプール操作(bool
ean)  はもっとあとで議論されよう。
各im信プロセンサはパケットをバッファーする大量の
蓄積装置を有している。rmemsize 4はバッフ
ァーできるパケットの数である。別々の蓄積ユニットは
su、i (1< i < memsize) によっ
て表わされている。各蓄積ユニットは正確に1パケツト
を含むことができる。各パケットの2つの小さい部分は
通信プロセッサによって解釈されるべきもの(to b
e 1nterpreted)  と規定されており、
それらはfield su、i、 destおよびfi
eld su、 i、  classによって表わされ
ている。field su、i、 destはパケット
の最終宛先を含んでいる。field su、 i、 
classはデッドロックフリー通信を保証するために
使用され、これについてはあとで説明されよう。
最終宛先を表示するフィールドを除いて、パケットはそ
れと共に経路情報を運ばない。パケットはソースと宛先
の間の予めプログラムされた1つの通路を介して伝えら
れる。たとえ−例として最短通信のみが使われていても
、一般に1以上のそのような通路が存在する。各通信プ
ロセッサはパケットの可能な各宛先に対して出力サーバ
ーを表示するブーリアンベクトルを含む経路表を有し、
それを介してその宛先を持つパケットはその経路上で宛
先への次のホップを行なう。経路者の内容はデータプロ
セッサによってプログラムできる。
通信プロセッサV上の経路者はrout、によって表わ
され、宛先dと出力サーバーJに対してroutv、 
d、 j <−>  宛先dを持つパケットは、ひとた
びVに到着すると、出力 サーバー]を介して次のホラ プを行なう、 ようなブーリアンroutv、 d’、 jとブーリア
ンベクトルroutv、 dを有している。
通信プロセッサの各出力サーバーに対して、経路者に従
ってその出力サーバーを介して次のホップを行なうよう
なパケットの到着の時間的順序を管理するデータ構造が
存在する。このデータ構造は2重に円状リンクされたリ
スト(double circularlylinke
d l’1st)を形成し、通信プロセッサVの出力サ
ーバー]に対してそれはtoav、j (toaは時間
的順序管理を表わしている)によって表わされ、リンク
されたリストの要素はtoav、 j、 i、 p (
0≦j < memsize、 p ll (prev
、 next))によって表示される。経路者に従って
蓄積ユニッF Suv、 l中のパケットが出力サーバ
ーjを介して次のホップを行ない、かつtoav、 j
、 i、 next = nおよびtoav、j、 i
prev=pならば、 (1) toav、 j、 n、preV= iおよび
joav、 J、p、neXj =1、(2)もしn>
QならばSUV、 nは1つのパケットを含み、このパ
ケットはSuv、 IのパうットのあとでVに到着しか
つ出力サーバーJを介してその次のホップを行なう。も
しn=oならばS Uv。1は最も若いもの、すなわち
出力サーバーJを介してその次のホップを行なう最後に
到着したパケットを含んでいる。
(3)もしp>0ならばsuv、 pは1つのパケット
を含み、このパケットはsuv、iのパケットの前にV
に到着しかつ出力サーバーjを介してその次のホップを
行なう。もしp=0ならばSuV、 iは最も古いもの
、すなわち出力サーバーJを介して次のホップを行なう
最初に到着した゛パケットを含んでいる。
パケットが通信プロセッサVに到着し、かつSUv、i
に蓄積される場合、field SU、、 i des
tは経路者をインデクスするため使用され、かつパケッ
トの到着は、以下のアルゴリズムに従って、ゴーリアン
ベクトルroutv、(suv、i、dest)によっ
て表示されたすべての出力サーバーの時間的順序管理で
並列に管理されている。
add to−toa(i) l[1ntd ; d := su、i、dest ;par([]j :  Q  <=  j  <  N11nks:  
rout、d、j −>  1[int youngest; young
est := toa、j、Q、prev;  toa
、 j、 i、 preV := youngest;
 toa、 J、l、 next := 0;  to
a、j、Q、prev := i;  toa、j、y
oungest、next  :=  1] 1 ap [1 !3uV、i中のパケットが隣接通信プロセッサに伝送
されると、次のアルゴリズムに従ってそれは時間的順序
管理から並列に除かれる。
re+nove from toa(i)1[1ntd ; d := su、i、dest ;  par  ([コ 」 : Q <= J< N11nks :  rout、d、j −>  l  [int n、  p ;  n  := toa、j、 i、 next; 
 p  :=  toa、 j、 i、preV;  
tOa、j、n、preV  := p;  toa、
 j、p、neXt  := n] 1 ap ] 1 出力サーバーjに対する時間的順序管理は、リンクJが
接続されている隣接通信プロセッサから要求が受信され
る場合に使用される。次にリンクされたリストは(若し
あるなら)要求に整合する最も古いパケットを発見しよ
うとする。この瞬間に要求rとパケットpの間の整合動
作はブーリアン関数match (r、 p)によって
表示され、これはもし整合が成功するなら真である。後
はどこの整合は非常に簡単な数値比較であるように見え
るであろう。
要求を整合する最も古いパケットを見出すアルゴリズム
は以下のように与えられる。パケットが見出されると、
蓄積ユニッ)SU中に非零インデクスが与えられ、さも
なければ零が戻される。
int fin+Lpacket(j、 reques
t)I[int try ; try := toa、j、01next; do
 try OQ and not match(req
uest、 su、 try)−> try := t
oa、j、 try、 nextd ; return try コ 1 出力サーバー〇に対する時間的順序管理の一部分はまた
フリーな蓄積ユニットの単独にリンクされたリストを維
持するために使用される。付加的な可変フリーヘッド(
variable freehead)がリストヘッダ
として使用されている。フリーな蓄積ユニットのインデ
クスが得られ、そして次のアルゴリズムによってフリー
なリストから除かれる。
int obtain su□ l  [int result ; result := freehead; fre
ehead := toa、Q、result、nex
t; return result ] 1 1がフリーなリストの最後の要素である場合、toa、
 Q、 i、neXt = 0であり、そしてフリーな
リストが空きである場合、freehead= 0とな
る。しかし、フリーなリストが空いていないことを他の
管理が保証するなら、obtain−su □のみが呼
びだされるから、この必要性は決してチェックされない
。蓄積ユニットはそのインデクスを次のアルゴリズムの
引数(argument)として与えることによりフリ
ーなリストに追加されている。
f ree−su (i) 1  [toa、Q、 i、next := free
head;  freehead := i ] 1 本発明に従ってなされたデータ処理システムにおいて、
デッドロックとスターベーションは「クラスクライミン
グと呼ばれる技術によって回避される。その宛先に到着
してしまったパケ7)がインターフェースプロセッサに
よって回線網から除かれる限り通信回線網はデッドロッ
クからフリーに保たれ得ると数学的に示すことができる
通信プロセッサの種々のデータ構造を説明する前に、デ
ッドロックとスターベーションを回避するために通信プ
ロセッサで使用された戦略の原理を述べよう。
デッドロックを回避するために通信プロセッサで使用さ
れた主な戦略はこ\でクラスクライミングとして規定さ
れているものである。この戦略は次のようなものである
。回線網中の各パケットに1つのクラスが割当てられ、
クラスはOからNクラス−1まで番号が付けられ、こ5
でNクラスは利用できるクラスの数であり、同じクラス
が異なるパケットに割当てることができる。蓄積ユニッ
トSue、 l中のパケットのクラスはfield 5
Llv、i、 class中に見出される。さらに各ク
ラスに対して、各物理的リンクに方向を割当てることに
より非輪状有向グラフが物理的通信回線網に重畳されて
いる。パケットのクラスはそのクラスに関連する非輪状
有向グラフの方向に従ってパケットが進行する限り変化
されない。パケ7)がその現行のクラスに関連する非輪
状有向グラフに逆からってホップを行なう度毎にパケッ
トのクラスは1だけ増大される(従ってクラスクライミ
ングと名付けられる)。回線網の中に注入されたパケッ
トは充分低いクラスで始まり、かつ経路表はパケットの
クラスがNクラス−1以上に決して増大する必要が無い
というようなものであることが仮定されている。
これは静的にチェックできる。「パケ7)pはn状態(
v、c)である(packet p is n 5ta
te (v。
C))」はpがクラスCを有し、かつ通信プロセッサV
にあることを意味している。l−CがクラスCと関連す
る非輪状有向グラフに対応する関係とすると、下に規定
された関係1−はパケットのすべての許容された状態的
遷移を与える。
(Vo、Co) l−(V、、C,) <=> (vo
、v+)は物理的リンクである 八Co <自< Co +1 八  (co   =  C,<=>   vo l 
   CoV+)こ−でAはアンド(AND)を表示し
ている。
明らかに状態遷移グラフは非輪状であり、そしてこのこ
とは非独自関数ナンバ(non−uniqUefunc
tion Number)が (vo、co) l −(L+、C+) −> Num
ber、 (vo、co) >Number、 (v、
、 C+) のようにすべての状態を1つづ5ナンバト・・・・N5
tat (Nstatは状態の数である)にマツプする
ものと見出せることを含んでいる。
ナンバの逆関数はステート(State)  と呼ばれ
ている。ある条件の下でその状態の各パケットに進行(
progress)が保証されていることを各状態に与
えること(状態5tate、 lから初めて回帰的に状
態5tate、 2.  ・・・’、 5tate、 
N5tatに進行する)により、通信回線網はスターベ
ーションからフリーであること(デッドロックからフリ
ーであることを意味している)を証明できる。しかし簡
単化の観点でこの証明はこ\では行なわない。上述のク
ラスクライミングの原理に対して、種々のクラスと関連
する非輪状有向グラフ間に何らの特殊な関係が存在する
必要は無い。例えば、各クラスは池のクラスと関連する
すべての非輪状グラフから異なっている非輪状グラフを
有しているか、あるいはすべての非輪状グラフは同じで
あるか、あるいはすべての奇グラフが同じ非輪状グラフ
を有し、そしてすべての偶クラスが奇クラスのグラフか
ら異なっている同じ非輪状グラフを有するかである。
しかし現在説明されたデータ処理システムでは、2つの
異なる非輪状有向グラフのみが存在し、そしてそれらは
各物理的リンクに反対方向を割当てるよう向きがお互に
反対である。これらのグラフの1つはすべての偶クラス
に使用され、池の1つはすべでの奇クラスに使用されて
いる。この判定は重要な結果を有している。と言うのは
クラスOに非輪状有向グラフを特定することにより、残
りが知られるからである。その基本グラフの方向に従っ
て進行するどのパケットも偶クラスを有するか、あるい
はそのクラスは奇から偶に丁度増大され、反対方向に進
行するパケットは奇クラスを有するか、あるいはそのク
ラスは偶から奇に丁度増大される。
クラスクライミングの簡単な例をこれから説明する。簡
単に言うと、考慮する本質的な点に次のようなものであ
る。
1)パケット蓄積ユニットはクラス(0,1,203、
・・・等)に分割され、かつクラス毎に少なくとも1つ
の蓄積ユニットが存在する。
2)パケットの長さはクラスフィールド(0,1゜2.
3.・・・等)の表示を含むことにより拡張される。パ
ケットのクラスは最初零である。
3)蓄積ユニットにパケットを蓄積するために、パケッ
トのクラスはパケットが蓄b1されている蓄積ユニット
のクラスに等しいかあるいはそれより大きくなくてはな
らない。
4)非輪状有向グラフは回線網グラフに重畳される。
5)重畳された矢印を伴うリンクにわたって進行するパ
ケットのクラスは偶でなくてはならない。
6)重畳された矢印に逆からってリンクにわたり進行す
るパケットのクラスは奇でなくてはならない。
7)パケットのクラスはホップの間に同じま−であるか
あるいは1だけ増大する。このことは、パケットが1つ
の通信プロセッサから他の通信プロセッサに切替えられ
ている間にそれは同じクラスナンバを保持し、一方、重
畳された矢印に従っている(あるいは逆からっている)
がしかしすぐ前の方向に反対な方向でホップするや否や
クラスナンバは1だけ増大されることを意味している。
第9図はノードlがノード(i+1)、  (i−1)
および(i+4)に結合されている8つのノードN o
 ””” N 7を例示している。
第10図は第9図に示されたノードの回線網に重畳され
た非輪状有向グラフを例示している。矢先(arrow
 head)は重畳された矢印の方向を示し、そしてパ
ケットのクラスはこの方向に進行する場合に偶である。
第10図はまたノード2で発生されたパケットが如何に
してノード3,4.0を介してノード7に進行するかの
一例を例示している。パケットはクラスの表示によって
拡張されている。
ノード2て発生されたパケットは最低クラス0を有して
いる。ノード3でそれはノード4に到着するために、重
畳された矢印に逆からって進行し、その結果、そのクラ
スは1だけ増大され、従って奇である値を有し、これは
本実施例において第10図に示された非輪状有向グラフ
に反対である新しい非輪状有向グラフへのその転送を意
味している。
ノード4からノード0へのホップはまた重畳された矢印
の方向に逆からっており、従ってクラスは不変のま−で
ある。ノード0からノード7−1の最終ホップは重畳さ
れた矢印の方向であり、クラスは1だけ再び増大されて
2となり、これは偶であり、従って他の非輪状有向グラ
フに関連し、これは第10図に描かれた非輪状有向グラ
フに等しい。
隣接通信プロセッサ間で要求とパケットを交換するリン
クプロトコルを説明しよう。直径dを持つ回線網におい
て、Nクラス229dとなるような少なくとも3”dク
ラスが要求される。クラスはOからNクラス−1まで番
号が付けられ、こ−でNクラスは利用可能なクラスの総
数である。クラスは単一の物理的回線網として実現でき
るか、あるいは単一の物理的回線網を用いる2つあるい
はそれ以上のバーチャル回線網として実現できる。
例えばNクラス−16と仮定すると、パケットのクラス
は4ビツトで符号化される。クラスの導入はリンクプロ
トコルに次のように影響する。
1)作用「蓄積ユニットを保留する(reserves
torage unit)  」は事実クラスナンバく
である要求となる。クラスナンバnを持つ要求の意味は
、蓄積ユニットが保留されたが、しかし少なくともnの
クラスを持つパケットのみがその中に蓄積できる、 というものである。蓄積ユニットが豊富に利用可能であ
る大抵の時間で、要求はクラスナンバ零を含み、従って
任意のクラスのパケットが蓄積できる。
2)隣接通信プロセッサ上の対応出力サーバーにいくつ
かの入力サーバーから伝送された「パケットの要求(r
equest for packet) Jは、要求の
クラスナンバである4ビツトの情報を含んでいる。
3)作用「パケットを探索する(retrieve p
acket) 」はパケットキューのヘッドによって表
示されたパケットを簡単に取ることができず、その代り
に要求に整合するパケットへの最も古い表示に対するキ
ューを調査せねばならない。この整合は簡単に、 パケットのクラスが少なくとも要求のクラスnでなけれ
ばならぬ、 とはなっていない。その理由はパケットのクラスがそれ
が伝送される丁度前に時々は変化する(決定論的に)か
らである。もしホッピングの方向が第10図を参照して
説明したように変化するならそのような変化は常に正確
に1だけの増大となろう。整合動作は次のように公式化
できる。
伝送のあとのパケットのクラスは(多分その現行のクラ
スより1だけ高い)少なくとも要求のクラスnてなくて
はならない。
この結果は2つの面を有している。
a)パケット蓄積装置のパケットのクラスは通信プロセ
ッサCPによって時々調査されなくてはならない。
b)パケットのクラスは時々通信プロセッサCPによっ
て変更されねばならぬが、しかしそれは伝送の丁度前の
みである。
接続された相補サーバー間のリンクプロトコルはこれと
同じように見える。すなわち、1)入力サーバーは出力
サーバーに要求(4ビツト)を送る。
2)出力サーバーは、 一キャンセルパケット (1ビツト、例えば真)か、 −あるいは実(real)データパケット、すなわち、 それはキャンセルパケットでないこと を偽って表示する1ビツト、 クラスに対する4ビツト、 宛先に対する10ビツト、 解訳されていないデータの246 ビット、を送ること
により反応する。
パケットの宛先ビットはパケットを正しいキューに置く
ために通信プロセッサCPによって解訳され、これらの
ビットは通信プロセッサCPによって決して変更されな
い。パケットのクラスビットは通信プロセッサCPによ
って解訳され、デッドロックを回避するため(伝送の丁
度前に)時々変更される。
2*dクラス(こ〜でd=8である)の1つの物理的回
線網を用いる2つのバーチャル回線網の一実施例が第1
1図に例示されている。クラス0から15によって構成
された物理的回線網は、クラス0から7が下側バーチャ
ル回線網を含み、クラス8から15が上側バーチャル回
線網を含むように分割されている。データ処理60によ
って生成されたデータは先入れ先出しくFIFO)バッ
ファを具えるインク−フェース62によって下側バーチ
ャル回線網にそれがクラス7以上に増大せぬよう挿入さ
れて′l)る。簡単のために、インターフェース62は
クラスOに接続されるよう示されている。パケットのそ
の最跨宛先への進行中、そのクラスは増大できる。パケ
ットはその宛先に蓄積され、すなわち、これまたFIF
Oを具える別のインターフェース64によってそれは回
線網を出る。インターフェース64にM ’tX1され
たデータは処理66で消費(consume)  され
なくてはならない。処理66におけるデータの消費は無
条件に義務的(unconditional obli
gation)ではない。と言うのはそれはまた高いハ
ーチャル回線網のインターフェースであり、かつPiF
Oを具える別のインターフェース68に蓄積されている
データを生成できるからである。このデータはクラス1
5以上に蓄積されないそのようなクラスに蓄積される。
図解を簡単にするために、インターフェース68はクラ
ス8に接続されている。高い回線網のクラスの出力はF
IFOを具える第4インターフエース70に供給されて
いる。インターフェース70は消費データ処理(con
suming data process)74に結合
され、これはデータを消費する無条件義務を存している
。処理60.66、70は1つあるいはそれ以上のプロ
セッサによって実行できる処理である。
1つ以上の処理が同一のプロセッサで実行されることは
可能である。バーチャル回線網の動作はお互に完全に独
立であり、従ってユーザーはそれぞれのバーチャル回線
網に対する各方向で1つである2つの入りFIFOキュ
ーと2つの出FIFOキ二−を具ること−なろう。
各通信プロセッサCPはプール表Arrowhead、
 j(0<j<Nリンク)を有し、これはそのリンクの
各々に対して基本非輪状有向グラフに従ってそのリンク
の方向を与えている。次の属性(predicate)
、ArrOWheadv、J <=>  出カサ−)4
−jを介して■によって送られたパケットは奇 クラスを有する、 Arrowheadv、 j <=>  入力サーバー
jを介してVによって受信されたパケットは 偶クラスを有する、 が保持される。
出力サーバーの時間的順序管理中のいずれのパケットも
出力サーバーによって受信された要求に整合しない場合
、「キャンセル」と呼ばれる特殊メツセージが正規のパ
ケットの代りに送られる。
これをできる限り回避するため、要求は常にできる限り
低いクラスナンバを有さなければならない。
次に示す管理がこの実行に使用される。含まれたデータ
構造およびそれらの振舞を支配するいくかつの不変量が
与えられよう。スターベーションを回避するために使用
されたいくつかの付加データ構造の導入のあと、これら
すべてのデータ構造を使用するいくつかのアルゴリズム
が与えられよう。
クラス管理はカウンタCnt、i  (Q<i<’Nク
ラス)のアレイ、booleans Re5ervab
le、 i  (ブーリアン・リザーバプル1)(0<
i<Nクラス)、およびカウンタRe5ervable
−zero (リザーバブルー零)からなっている。ク
ラス管理の振舞を支配する不変量が与えることができる
前に、2つの規定が必要とされる。第1に、CpC,、
iをクラスi、Q<i<Nクラスのパケットによって保
留されたあるいは充たされた通信プロセッサVの蓄積ユ
ニットの数とする。cpcは[クラス毎のカウント(c
ount per class) Jを表わしている。
第2に、Q<i<Nクラスに対するd、l が、d、i
 = Q           if i = Ncl
assd、i = Q max (d、(i + l)
 −1+ cpc、1)if Q <= i < Nc
lassによって回帰的に規定されるとする。
さて次の属性は不変的に真である。
Cnt、 i =d、i        for (1
< i < NclassReservable、i 
<=> d、 (i + 1) = OA cpc、 
i = 0for Q < i < NclassRe
servable−zero = memsize +
 1− Nclass −d、 1−cpc、Q cpc、 iの値は変数の値を完全に決定し、そして逆
に変数の値からcpc、 iの値は次のように推定でき
ることに注意する。
cpc、i = if i = 0 −> memsIze +l −Nclass −Cn
t、l −Reservable−zer。
[コ 0  <  i  <  Nclass−> i
f Re5ervable、 i−〉0 [] not Re5ervable、 i−> If
 Q < l < Nclass −1−>  Cnt
、 i   −Cnt、  (i   +   l) 
  +  1[] i = Nclass −1 −> Cnt、 i + 1 i i fl。
これはこれまで変数がcpc、 i の値の複雑なブッ
クキーピング(bookkeeping)以上の何もの
でもないことを意味している。デッドロックからフリー
である回線網に加えて、属性 d、Q < memsize −Nclassは不変的
に真であることを保持されねばならず、d、0が規定さ
れているcpc、jの表現によってこの不変量をチェッ
クすることは全く複雑である。しかし導入された変数の
表現によってこの不変量をチェ7りすることは全く直接
的(strajghtforvard)である。d、Q
の規定に従うと、この不変量は(me+r+5ize 
−Nclass > 0) A (me+n5ize 
+1−Nclass −d、l −cpc、Q > Q
)に等価である。最初の不等号は設計上の制約(des
ign constraint)  であり、Ncla
ssとmemsizeはクラス毎に少なくとも1つの蓄
積ユニットが存在するように選ばれねばならない。第2
の不等号は Re5ervable  zero >  0に等価で
あり、これはチェックが全く簡単である。
それは d、O≦memsize −Nclass => (S
um j: Q<j<Nclass: cpc、 j)
 < memsizeであると示すことができ、従って
メモリサイズの物理的制限が適合される。Re5erv
able−zeroの値に1つの簡単な制限のみが存在
するから、このクラス管理の他の2つの利点は容易に示
すことができる。第1に、Re5ervable−ze
roが正である限り、蓄積ユニットはクラス0に対して
保留でき、そのような保留はcpc、 Qを増大し、単
にRe5ervable−zeroを減少することによ
り管理され、それ以上ではない。第2に、Re5erv
able、 iがQ<i<Nクラスであるlに対して真
である場合、蓄積ユニットはクラス1に対して保留でき
、これはcpc、 i を増大し、Re5ervabl
e、 iを偽にすることにより管理されかつそれ以上で
ない。
この管理に基く他の動作は以下に示されるように更に複
雑である。いくつかのクラスlに対する要求に基いて1
つのパケットがクラスj、i<jで伝送される場合に代
表的な例が起る。これはcpc、jを増大しcpc、 
iを減少し、多分管理に多数の変化を生じさせるが、し
かし不変1Reservable−zero>Qに間係
しない。このことはクラスlに対する要求に基いてiよ
りも高いクラスを持つパケットが伝送されるプロトコル
を正当化する。
要求が常にできる限り低いクラスナンバを有すべきこと
は以前述べられていた。しかし、スターベーションを回
避するために、通信プロセッサはすべての要求を公平な
や方ですべてのその近傍にわたって分布しなければなら
ない。その故、いくつかのフェアネス管理(fairn
ess administration)が各通信プロ
セッサに備えられる。この管理は2つの部分からなり、
それはクラス0に対する要求の公平な分布の一部分とす
べての非0クラスに対する一部分とである。最初、クラ
ス0に対する部分を参照する。クラス0に対してブーリ
アンアレイFair−zero j (0< j < 
Nリンク)およびラウンドロビンカウンタround 
robinが使用される。
もし入力サーバーJのクラス0に対する蓄積ユニットを
保留することが許されるならばブーリアンFair z
eroは真である。次の属性、(N j: 0 < j
 < N11nks: Fair zero、j)= 
Re5ervable−zero min N11nk
sは不変的に真を保持する。このことはRe5erva
ble−zero >N11nksである限り、すべて
のブーリアンFair−zero、 jが真であり、か
つクラス0に対する蓄積ユニットを保留する何の制限の
存在しないことを意味する。Re5ervable z
ero<N11nksの場合のみいくつかのブーリアン
Fair zero、jが偽であり、そのケースでRe
5ervable−zeroが増大される場合、カウン
タround robinはどの偽ブーリアンが真にさ
れるかを公平なやり方で決めるために使用される。ro
un+L rob i nの値は常にFair−zer
o。
roun+Lrobinがこのやり方で真にされた最後
のブIJアンであるようになっている。以下のアルゴリ
ズムは、Re5ervabie zeroが(引数とし
て与えられたいくつかの入力サーバーjのために)減少
されねばならぬかあるいは増大されねばならぬかという
場合に、いかにフエアネス管理を調整するかを示してい
る。
decrement Re5ervable−zero
(j)l  [Re5ervable zero :=
 Re5ervable zero −i; if R
e5ervable−zero >= N11nks−
> 5kip [] Q <= Re5ervable zero <
 N11nks−> Fair zero、 j :=
 falsei ] 1 increment Re5ervable zero
ol[if Re5ervable−zero > N
11nks−> 5kip []  Q  <=  Re5ervable−zer
o  <  N11nks−>  round  ro
bin  :=  (round  robin  +
  l)  mod  N11nks; do Fai
r−zero、round−robin−> roun
d−robin := (round robin +
 l) nod N11nksd ; Fair zero、 round robin 
:= true[1 ; Re5ervable−zero := Re5e
rvable−zero + 1他の2つのアルゴリズ
ムはクラス管理に対して特定できる。第1のものはクラ
スtのパケットによって充たされたものあるいは保留さ
れた蓄積ユニットが解放される場合に管理すべきもので
ある。
第2のものは蓄積ユニットが保留されたクラスtOが可
能なもっと高いクラスt1で交換される場合に管理すべ
きものである。これは2つのケースで起る。第1のケー
スは入力サーバーに対して蓄積ユニットが偶(奇)クラ
スを保留し、かつ入力サーバーがプロトコルに従って奇
(偶)のクラスの要求を発生する場合である。第2のケ
ースはいくつかのクラスtQに対する要求が発出され、
かつ多分もっと高いクラスt1のパケ7)が受信される
場合である。
release  (tQ) 1  [int i −> Cnt、 i  := Cnt、 i −1;i
:=i−1 d []  i  0  Q −> Re5ervable、 i  := true
[] ] l exchange (tQ、  tl)1  [int
 i −> Cnt、 i  := Cnt、i + l; 
 i  :=  i  −1 d ;  if  i  OtQ −> Re5ervable、 i  := fals
arelease  (tO) [] i = t。
−> 5kip 双方のアルゴリズムは並列化できるループを含んでいる
。ルーチン解放(routine release) 
(to)のループに対して、 l:= (Max j: j = Q or (Q <
 j <= tQ andCr+t、j = 0): 
j) ;par([]j : Q < j < Nclass +  i  <  j  <=  tQ−> Cn(j
 := Cnt、 j −1ap であり、そしてルーチン交換(routine exc
hange)(tO,tl)のループは次のように変形
できる。
i  :=  (Max  j:  j  =  tQ
  or  (tO<  j  <=  tl  an
dReservable、j): j) : par ([] j : Q < j < Nclass :  i  <  j  <=  tl−> Cnt、
 j  := Cnt、 j 4−1ap 非零クラスに対するフエアネス管理は2次元ブーリアン
アレイFair、 i、 j、、 0< i < Nc
lass。
0≦j < N11nksからなっている。各非零クラ
ス1に対するFair、i、 jが真である正確に1つ
の入力サーバーJが常に存在する。Fair、 i、 
jfr<真である意味は入力サーバーjのみがクラス1
の蓄積ユニットを保留する権利を有するということであ
る。
もちろんRe5ervable、 iを真にすることに
よりクラス管理がこれを許す場合にのみ入力サーバー」
はそれを行なうであろう。入力サーバ〜Jがその特権(
privilege)を使ってしまったあと、pair
、 i、jを(為、Fair、 i、 ((j+1) 
mad N11nks)を真にすることによりそれは他
の大カサ−バーに伝えねばならない。従って次のアルゴ
リズムは入力サーバーJに対する蓄積ユニットを保留で
きる。成功に基いて蓄積ユニットが保留されているクラ
スが戻され、失敗に基いて−1が戻される。
int reserve、、−storage uni
t(j)l[int result ;  if Fair−zero、j −> result  := 0 ; decremenLReservable zer
o(j)[] not Fair−zero、j an
d (B i: 0 < i <Nclass: Re
5ervable、 i and Fair、 i、 
j)−> result := (Min i: Q 
< i < Nclass andReservabl
e、i and Fair、 i、 j、 :  l)
; Re5ervable、result := fa
lse;  Fair、result、j  := f
alse; Fair、result、((j+1) 
mod N11nks)  := true[] no
t Fair−zero、 j and not  (
E i: 0 < i <Nclass:  Re5e
rvable、 i and Fair、i、j)−>
 result  := −1 i ;  returr+ result ] 1 1つの通信プロセッサの異なる入力サーバーと出力サー
バーに対するアルゴリズムは完全に並列に実行できない
。これらのアルゴリズムはサーバーが相互に排他的にア
クセスしているいくつかの共有データ構造(share
d data 5tructure)を使用しており、
従ってこのアルゴリズムは適当なやり方で直列化されね
ばならない。通信プロセッサはこれを考慮するいくかつ
の管理を有している。それは3つのブーリアンアレイ、
すなわちCompose−Request、 j 、 
Need、−Packet、 jおよびPacket−
Delivery、j、  (0<j<N11nks)
 からなついる。これらのブーリアンの意味は以下の通
りである。
−Compose Request、、 j  入力サ
ーバーJに対して要求は構成されなくてはなら ない。
NeedJacket、 j    出力v−バーJは
要求を受信しかつ要求に整合するパ ケラトを必要とする。
Packet−Del 1very、 j  入カサ−
)X  Jはバケットを必要とし、それをパケン ト蓄積装置に送ろうとする。
この管理は適当な作用を実行するいわゆるスケジュラ−
と呼ばれる無限ループで走査される。これらの作用は5
tore、−packet (j )、emit re
quest(j)およびretrive packet
(j)と呼ばれ、そして以下に議論されよう。このスケ
ジュラ−は通信プロセッサの「主プログラム(main
 program) Jと考えられる。
5cheduler 0 1[1ntj ;j:=0 ; do true −> if Packet Delivery、 js
tore Packet(j) [] not Packet、−Delivery、 
j−> 5kip i ; if Compose−Request、j−> 
emit request(j)[] not Com
pose−Request、 j−> 5kip i ; if NeedJacket、 j−> retr
 1eveJacket (j)[] not Nee
d−Packet、 j−> 5kip ; j := (j + l) mod N11nks
前にも述べたように、出力サーバーjはNeed−pa
cket、 jに真を割当てることによりoreq、j
の要求の受信を示し、かつ入力サーバーjはPacke
t−Delivery、 jに真を割当てることにより
1pack、 j のパケットの受信を信号する。それ
らのブーリアンは作用retrieve−packet
(j)および5tore−packet(j) それぞ
れにより再び偽にリセットされる。ブーリアンComp
ose−Request、 jは作用5tore pa
cket(j)により真にセットされ、かつ作用emi
t request(j)によって偽に多分リセットさ
れる。
Compose、−Request、 jが真である場
合、スケジニラーは入力サーバーjに対する適当な要求
を構成するためにルーチンemit−request(
j)を実行する。
これは常に可能ではない。それが成功する場合、Com
pose、−Request、j は偽となり、それが
失敗する場合、Compose Request、 j
 は真のま−であり、従ってスケジニラーの次のサイク
ルでそれは再び試みられる。emiLrequest(
j)が失敗する2つのケースがある。第1のケースは、
ルーチンreserve−storage unit(
j) returns −1がその瞬間に何も保留でき
ないことを示す場合に生じる。第2のケースは、res
erve storage−unit(j)が奇(偶)
である最大クラスナンバNclass−1を戻す場合に
起り、こNでブーリアンArrowhead、 j は
構成すべき要求が偶(奇)であるべきことを示している
emiLrequest (j) l[1ntc ; c := reserve storage un
it(j);  if  c  O−1 −>  if  is  even(c)  <=> 
 Arrowhead、j−>  1req、 j  
:= c ;  Compose request、j  := 
false[]  is  odd(c)  <=> 
 Arrowhead、j−>  if  c  <>
  Nclass−1−> exchange(c、 
 c+1);  1req、J  := c+1 ; Compose−Request、 j  := 
false[] c = Nclass−1 −> release(」) [1 [コ C・ −1 −> skip このルーチンはreserve storage−un
i直」)に対するアルゴリズムにCのすべてのテストを
直接挿入することによりかなり最適化できる。特にex
change(C,C+1)の複雑性は著しく減少でき
る。
Need−Packet、jが真である場合、受信され
た要求に整合するパケットを出力サーバーJに供給する
ためにスケジュラ−は作用retrieve Pack
et(j)を実行する。まずfin+1packet(
j)がパケットを選択するために呼出される。もし1つ
が見出されると、そのクラスを増大すべきかどうかヌ゛
チェックされる。次にこのパケットが出力サーバーJに
供給され、最後に、前に規定されたルーチンがすべての
管理を調整するために実行される。
retrieve packet(j)1[int i
、 request : request := oreq、j;ド= fi
nd packet(j、 request);ifi
<>Q −>I[1ntc ; c := su、i、class ; if 1s−odd(c) <=> is odd
(request)−> 5kip []  1s−even(c)  <=>  1s−o
dd(request)−> su、i、 class
 := c+1i ; opack、 j := su、 i; rele
ase(c) ; removeゴram−toa(i);free−
su(i) ] 1 []1=0 −> opack、 j := canceli ; Need Packet、j := falseP
acket Delivery、 jが真である場合、
スケジュラ−は入力サーバーJによって受信されたパケ
ットを取扱うためにルーチン5toreJacket 
(j)を実行する。受信されたパケットがキャンセルパ
ケットである場合、保留された蓄積ユニットは解放され
る。さもなければ管理は調整され、フリーな蓄積ユニッ
トはパケットを蓄積するためにフリーなリストから得ら
れ、かつ時間的順序管理はアップデートされる。
5tore−packet(j) 1[if 1pack、j = cancel−> r
elease(ireq、j)[] 1pack、 j
 <> cancel−> exchange(ire
q、 j、  1pack、 j、 class);l
[1nti ;  i  := obtain su□;  su、
 i  := 1pack、j; add to to
a(i) ] 1 ; Packet−Delivery、 j  := 
false;  Compose Request、j
  := true] 1 これは通信プロセッサのアルゴリズム的記載を完成する
通信プロセッサはVLS1回路として具体化でき、平面
配置図が第12図に与えられている。
考察中の通信プロセッサのパラメータは次のような値を
有している。
N11nks= 9  (隣接通信プロセッサ間のリン
クに対する8つの入力サーバーと出力サーバー、および
通信プロセッサと対応データ処理要素の間のリンクに対
する1つの入力サーバーと出力サーバー)、Nclas
s=16、memsize=64であって、そしてノく
ケラトの長さは256 ビットであり、その10ビツト
は宛先に、4ビツトはクラスに対して使用されている。
入力サーバーと出力サーバーそれぞれの1packンフ
トレジスタ22とopack シフトレジスタ24はパ
ケット蓄積装置の64X256 ビットメモリマトリク
ス(su) 26のまわりに非常にうまく組込まれてい
る。そのようなレイアウトはプロセッサの1メモリサイ
クル内で1pack 22からsu 26に、あるいは
su 26からopack 24にパケットをコピーす
ることを可能にしており、これはパケットの遅延および
パケットのスループットならびにプロセッサの性能につ
いて魅力的である。チップの実質的部分は経路表(ro
ute) 28である。1.024の9ビツトエントリ
からなるこの表は各々256X9ビツトの4つのメモリ
マトリクスとして実現され、それらは1pack 22
あるいはsu 26あるいはopack 24に蓄積さ
れたパケットの宛先フィールドによってアドレスされる
。時間的順序管理(toa)は平面配置図の領域30に
よって構成されている。アクセスされた9ビツトベクト
ルはその出力サーバーを介してパケットが伝達できるこ
とを示し、かつそれによりどのtoa、jがパケットの
到着および出発においてアップデートされねばならぬか
を決定する。各toa、 j は2重にリンクされたリ
ストを実現している。2重にリンクされたリストの各セ
ルtoa、j、 iはfield nextおよびpr
ev、  を含んでいる。これらのfieldはどの値
i(0<i<64)  も取ることができ、そこでto
a、 j は64X12ビツトメモリマトリクスとして
実現できる。この典型的なレイアウトにおいて、シフト
レジスタ1pack と1neq 22およびopac
k とoreq 24のセルの大きさは、そこからsu
、 routおよびtoaが構成される正規の方形メモ
リセルの大きさの4倍である。以下で説明されるレジス
タの大きさは現実の割合の寸法になっていない。
可変フリーヘッド(variable freehea
d) 32は第1の71J−な蓄積ユニットのアドレス
を含み、またtoa、 Oで実現されたフリーなリスト
の第1要素と規定されている。それは値i(0<i<6
4)のいずれかを取ることができ、かつ6ビツトレジス
タとして実現されている。可変Cnt、i  (0−≦
−i<64) 34およびRe5ervable−ze
ro 36は独立に動作する6ビツト順/逆カウンタ(
up/down counter)として実現されてい
る。Round−robin 33とFair−zer
o 4Qは簡単な9ビツトレジスタ(1リンク毎に1ビ
ツト)である。バッファ処理管理(bufferman
agement administration)の残
りの部分は15を含むクラス1以上のものまで取扱う。
2次元ブーリアンアレイFair 42 はブーリアン
ベクトルRe5ervable 46と共にメモリセル
の10X15ビツトマトリクスとして実現でき、それは
biLset。
biLresetおよびbit matchのような特
殊動作を行うことができる。
可変Arrowhead 4B、 Cornpose−
Request 50、Packet−Deliver
y 52およびNeed Packet 54は9ビツ
トレジスタとして実現されている。
(要 約) データー処理システムが複数の相互接続されたノードを
具える並列、汎用計算システムにゲートウェーによって
リンクされたホストコンピュータを含んでいる。各ノー
ドはデータプロセッサと通信プロセッサを含んでいる。
1つの7−ドによって発生された情報パケットはそれが
その関連するデータプロセッサに通信プロセッサによっ
て転送されるその宛先に到達し、それによってそれをデ
ータ処理システムの通信回線網から取除くまで他のノー
ドに1つあるいはそれ以上のハードウェア結合された通
信プロセッサによって経路付けされている。デッドロッ
クとスターベーションはクラスクライミングと名付けら
れた技術によって回避されている。クラスクライミング
において非輪状有向グラフは物理的リンクの各々に方向
を割当てることによって物理的通信回線網に重畳されて
いる。
情報パケットのクラスは不変のままであり、一方、それ
はそのクラスに関連する非輪状有向グラフの方向に従っ
て進行する。しかし、パケットのクラスはそれがそのク
ラスに関連する非輪状有向グラフの方向に従って、ある
いはそれに逆からってその進行を変化する度毎に1だけ
増大される。
通信プロセッサ間の情報パケット交換の他の特徴は、情
報パケットを受信する通信プロセッサがその近傍から情
報パケットの伝達の要求を開始することであり、その逆
ではないことである。
【図面の簡単な説明】
第1図はデータ処理システムのブロック図であり、 第2図は第1図に示されたシステムで使用された代表的
ノードのブロック図であり、 第3図はインターフェースプロセッサと通信プロセッサ
のブロック図であり、 第4図は2つの隣接通信プロセッサを例示するブロック
図であり、 第5図は5つの通信プロセッサによって形成された5つ
のノードからなる代表的なパケット交換回線網の図であ
り、 第6図は入力サーバーと出力サーバーの微細な動作のル
ープを例示し、 第7図は微細な動作のループの1つを絵画的に示し、 第8図は通信プロセッサと蓄積ユニットの組織の一実施
例を例示し、 第9図はリンクされたノードの回線網を例示し、第10
図は第9図に示された回線網に重畳された非輪状有向グ
ラフを例示し、 第11図は16クラスの1つの物理的回線網を用いて各
々が構成された8クラスの2つのバーチャル回線網を具
える通信プロセッサの平面配置図であり、 第12図はVLS1回路として実現された通信プロセッ
サの平面配置図である。 10・・・ホストコンピュータ 12・・・入力端子1
4・・・出力デバイス    16・・・ゲートウェー
18・・・計算システム    20・・・データバス
22・・−1pack、 1reqシフトレジスタ24
・−・opack、oreqシフトレジスタ26・・・
メモリマトリクス (SU)28・・・経路表(rou
t)    3Q・・・領域32・・・可変フリーヘッ
ド  34・・・可変[:nt、 136=−Rese
rvable−zero   38−・・Round 
robin4Q・・Fair−zer。 42・・・2次元ブーリアンアレイFair46−・・
ブーリアンベクトルRe5ervable48°゛可変
Arrowhead     5Q−・−Compos
e−Request52°−Packet Deliv
ery   54・・・Need Packet60、
66、74・・・(データ)処理62、 64. 68
. 70・・・インターフェースN Cフ ロー ぐ゛          Uつ U:″   FII3.io FIGII

Claims (1)

  1. 【特許請求の範囲】 1、接続回線網によって相互接続されている複数のステ
    ーションを具えるコンピュータ情報パケット交換システ
    ムであって、 各ステーションが、 少なくとも他の1つのステーションと通信する手段、 情報のパケットの過渡的な蓄積の手段、および 他のステーションからそれ自身のステーションに情報パ
    ケットの転送要求を発出する手段、 を有するシステム。 2、接続回線網は少なくともd=1に等しい直径(d)
    を有すること、 2つのステーション間の各接続は一連の少なくとも2つ
    の接続から形成できるすべてのリングが非輪状に向けら
    れた好ましい方向を有するように好ましい方向を有する
    こと、 各ステーションにおけるパケット蓄積装置が上昇順列で
    配列されたクラスに分割された複数の蓄積ユニットを具
    えること、 複数の蓄積ユニットの1つに局所的に形成された情報を
    配分し、そしてもし入り回線網接続と出回線網接続の好
    ましい方向の間に交替が存在しないなら以前のステーシ
    ョンに情報が配分された蓄積ユニットと同じクラスの蓄
    積ユニットに回線網を通して受信された情報パケットを
    配分するが、しかしもし入り回線網接続と出回線網接続
    の好ましい方向の間に交替が存在するなら以前のステー
    ションに情報パケットが配分された蓄積ユニットのクラ
    スに対して1だけ上昇されたクラスの蓄積ユニットに回
    線網を通して受信された情報パケットを配分する配分要
    素を各ステーションが有すること、 を特徴とする請求項1記載のシステム。 3、各ステーションがパケット蓄積装置と複数の入力お
    よび出力サーバーの対を具えることを特徴とする請求項
    1もしくは2記載のシステム。 4、各ステーションが入力および出力サーバーに対する
    時間的順序管理を与える手段を有することを特徴とする
    請求項3記載のシステム。 5、ステーションの各蓄積ユニットが独自のアドレスを
    有し、各ステーションの上記の複数の蓄積ユニットがス
    テーションの入力サーバーのいずれの1つによっても保
    留可能な空き蓄積ユニット、ステーションの1つあるい
    はそれ以上の入力サーバーによって保留されている保留
    蓄積ユニット、およびステーションの入力サーバーによ
    って情報パケットで満たされた全蓄積ユニットによって
    形成され、かつ ステーションの時間的順序管理が蓄積ユニットの状態を
    追跡するよう配列されていること、 を特徴とする請求項4記載のシステム。 6、各ステーションの中央管理がステーションの空きお
    よび保留蓄積ユニットのアドレスを蓄積し、かつステー
    ションの入力サーバーによって伝達された場合に情報パ
    ケットにアドレスを割当てる手段を有することを特徴と
    する請求項5記載のシステム。 7、各ステーションが出力サーバーに蓄積情報パケット
    のアドレスのキューを形成する時間的順序管理を有し、
    別々に経路付けられた同じ情報パケットのアドレスが異
    なるキューに与えられ、かつ 情報パケットを送信する出力サーバーが同じ通信プロセ
    ッサのもう1つあるいは別のパケットキューから送信情
    報パケットの複製のアドレスを削除する手段を有するこ
    と、 を特徴とする請求項6記載のシステム。 8、システムで宛先を有する入りパケットが出力サーバ
    ーの時間的順序管理に加えられなくてはならぬかどうか
    を各出力サーバーに表示するビットのリストを各宛先に
    含む経路表を各ステーションが含むことを特徴とする請
    求項7記載のシステム。 9、アンチ・デッドロックプロトコルが接続回線網に重
    畳されていることを特徴とする請求項1記載のシステム
    。 10、0からNクラス−1の範囲にあり、Nクラスが利
    用可能なクラスの数であるクラスが各クラスに対する回
    線網の各パケットに割当てられ、非輪状有向グラフが各
    物理的リンクに方向を割当てることにより物理的回線網
    に重畳され、そのクラスに関連する非輪状有向グラフの
    方向に従ってパケットが進行する限りパケットのクラス
    がそのまま残り、かつその現在のクラスに関連する非輪
    状有向グラフの方向に逆からってパケットがホップする
    度毎にパケットのクラスが1だけ増大するようなアンチ
    ・デッドロックプロトコルを特徴と する請求項9記載のシステム。 11、プロトコルが回線網の少なくとも1つの非輪状有
    向グラフの重畳を具えることを特徴とする請求項9記載
    のシステム。 12、非輪状有向グラフが複数の有向リンクを具え、 かつここで各ステーションがクラスナンバをステーショ
    ンで発生した情報パケットに割当てるかあるいはステー
    ションによって受信された情報パケットのクラスナンバ
    を変化し、かつ他のステーションに伝送する手段を有し
    、それにより情報パケットがその割当てられたクラスナ
    ンバを保有し、同時にそれは有向リンクの方向でステー
    ション間でホップするがしかしホップあるいは連続する
    ホップの最初がそのクラスに関連する有向リンクの方向
    に逆からっている場合に増大したそのクラスナンバを有
    し、ホップあるいは連続するホップの最初が有向リンク
    の方向にある、等々であること、 を特徴とする請求項11記載のシステム。 13、過渡的蓄積手段が各クラスに対して少なくとも1
    つの蓄積ユニットを具えることを特徴とする請求項10
    もしくは12記載のシステム。 14、過渡的蓄積手段が特定のクラスあるいはクラスの
    特定の範囲に情報パケットの一時的受入れを制限する手
    段を含むことを特徴とする請求項10記載のシステム。 15、他のステーションからそれ自身のステーションに
    情報パケットの転送を要求する上記の手段が少なくとも
    NであるがNより少なくないクラスを持つパケットを自
    発的に受信する事実を表示するクラスナンバNを要求の
    一部分として含むことを特徴とする請求項1記載のシス
    テム。 16、データパケットの要求をキャンセルする信号を発
    生するために、データパケットの要求の受信に応答する
    が送信に適したデータパケットを有しない手段を各ステ
    ーションがさらに具えることを特徴とする請求項15記
    載のシステム。 17、各ステーションが要求されたクラスナンバより大
    きいクラスナンバを有するデータパケットを処理する管
    理手段をさらに具えることを特徴とする請求項15もし
    くは16記載のシステム。 18、通信プロセッサと通信リンクの物理的回線網がス
    テーション間のデータパケットの転送を備えること、お
    よび 物理的回線網が少なくとも2つのバーチャル回線網とし
    てステーションに対して可視にされていること、 を特徴とする請求項1記載のシステム。 19、バーチャル回線網が低から高に線形的に順序付け
    られていること、および デッドロックとスターベーションを避けるために、より
    高いあるいは最高のバーチャル回線網からの消費が無条
    件に義務的であり、かつ他のあるいは他のいずれかのバ
    ーチャル回線網がより高いすべてのバーチャル回線網に
    おいてデッドロックとスターベーションが無いという仮
    定の下で義務的であること、 を特徴とする請求項18記載のシステム。 20、各ステーションの過渡的蓄積手段が複数の蓄積ユ
    ニットによって形成されたパケット蓄積装置、複数の入
    力および出力サーバー、入力サーバーによって伝達され
    た各情報パケットに蓄積ユニットのアドレスを与える手
    段、および各ルートを介してその宛先ステーションに情
    報パケットを伝達することのできる1つあるいはそれ以
    上の出力サーバーに上記のアドレスを伝える手段を具え
    ることを特徴とする請求項1あるいは請求項9から18
    までのいずれか1つに記載のシステム。 21、同様にアドレスされた情報パケットがステーショ
    ンの1つあるいはそれ以上の出力サーバーにキューで蓄
    積され、かつ各ステーションの出力サーバーは出力サー
    バーの1つが関連情報パケットを送信する場合に2重に
    アドレスされた情報パケットを削除する手段を含むこと
    を特徴とする請求項20項記載のシステム。 22、既に保留された蓄積ユニットを追跡しかつ全蓄積
    ユニットを追跡するために、入力サーバーが隣接ステー
    ションから情報パケットを要求する場合に各ステーショ
    ンが空き蓄積ユニットを保留する中央管理を有すること
    を特徴とする請求項21記載のシステム。 23、各ステーションの中央管理が空きおよび保留蓄積
    ユニットのアドレスの一時的セットを形成すること、お
    よび 情報パケットを送信する出力サーバーが上記のセットに
    新らしく空になった蓄積ユニットのアドレスを戻すこと
    、 を特徴とする請求項22記載のシステム。 24、各ステーションの上記の通信手段が通信プロセッ
    サを含み、かつ 各通信プロセッサが最低クラスを有する要求のフェア分
    布の第1部分と、最低クラスより高いクラスを有する要
    求のフェア分布の第2部分を具えるフェアネス管理を具
    えること、を特徴とする請求項10に追加された請求項
    20記載のシステム。 25、第1部分が0<=j<Nリンクであるブーリアン
    アレイFair−zeroとラウンドロビンカウンタr
    ound−robinを具え、かつ 第2部分が0<i<Nクラスである2次元ブーリアンア
    レイFair i.J.を具え、ここで0<=j<Nリ
    ンクであり、iは非零クラスを表し、そしてjは入力サ
    ーバーであること、 を特徴とする請求項24記載のシステム。 26、情報パケット交換システムに使用するステーショ
    ンであって、上記のステーションが通信インターフェー
    ス、データプロセッサ、および通信インターフェースと
    データプロセッサを相互接続するデータバスを具え、通
    信インターフェースは通信プロセッサと、通信プロセッ
    サをデータバスに結合するインターフェースプロセッサ
    を具え、ここでこの通信プロセッサは、 −インターフェースプロセッサから、あるいは接続され
    ている他のステーションの通信プロセッサの出力サーバ
    ーからデータパケットを要求できる入力サーバーであっ
    て、上記の各入力サーバーが以前に要求されたデータパ
    ケットをまた受信できるもの、 −データパケットが一時的に蓄積できるパケット蓄積装
    置、 −インターフェースプロセッサから、あるいは接続され
    ている他のステーションの通信プロセッサの入力サーバ
    ーからデータパケットの要求を受信できる出力サーバー
    であって、以前に要求を受信したデータパケットを上記
    の各出力サーバーがまた送信できるもの、 −各宛先を表示する経路表であって、その出力サーバー
    を介してその宛先を持つパケットがインターフェースプ
    ロセッサあるいは隣接ステーションのいずれかにその次
    のホップを行うもの、 −データパケットを要求するために入力サーバーに命令
    できる中央管理であって、上記の中央管理がその入力サ
    ーバーからパケット蓄積装置に入力サーバーによって受
    信されたデータパケットをまた移動でき、上記の中央管
    理が要求を受信した出力サーバーにパケット蓄積装置か
    らデータパケットをまた移動でき、経路表に従って上記
    のデータパケットが上記の出力サーバーを介してその次
    のホップを行なうことを許されているもの、 を具えるステーション。 27、パケット蓄積装置が複数の蓄積ユニットを具え、
    かつ通信プロセッサが回線網の他のステーションからデ
    ータパケットを要求する通信プロセッサの準備として蓄
    積ユニットを保留する中央管理を具えることを特徴とす
    る請求項26記載のステーション。 28、適当なデータパケットを有しない通信プロセッサ
    の場合に要求をキャンセルする信号を生成する手段をデ
    ータパケットの要求の受信に応じて通信プロセッサが有
    することを特徴とする請求項27記載のステーション。 29、中央管理がパケット蓄積装置に入力サーバーある
    いは出力サーバーの排他的アクセスを保証する手段を具
    えることを特徴とする請求項27もしくは28記載のス
    テーション。 中央管理が空き、保留、およびフル蓄積ユニットの一時
    的記録を維持することを特徴とする請求項27あるいは
    28あるいは29記載のステーション。 通信プロセッサが出力サーバーの時間的順序管理(to
    a)を具え、外側のサーバーがデータパケットに利用可
    能な多数の通路の1つによってデータパケットを中継で
    きることに基づいて上記のtoaが各出力サーバーに配
    分されたフル蓄積ユニットのアドレスのキューを形成す
    ること、 を特徴とする請求項26ないし30のいずれか1つに記
    載のステーション。 通信プロセッサのtoaが出力サーバーを介して通信プ
    ロセッサを出る最も古いパケットのアドレスを各出力サ
    ーバーに供給でき、ここでtoaがすべての出力サーバ
    ーのキューからそのアドレスを引続いて取除くことを特
    徴とする請求項31記載のステーション。 33、蓄積ユニットがクラスの下降順序が分割され、ク
    ラスの各々に対して少なくとも1つの蓄積ユニットが存
    在することを特徴とする請求項26ないし32のいずれ
    か1つに記載のステーション。 34、クラスが少なくとも2つのバーチャル回線網に分
    割されることを特徴とする請求項33記載のステーショ
    ン。 35、通信プロセッサがまずその伝送に先立ってデータ
    パケットのクラスを増大する手段を具えることを特徴と
    する請求項33もしくは34記載のステーション。
JP63138570A 1987-06-09 1988-06-07 データ処理システム Pending JPS63312750A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB8713460 1987-06-09
GB878713460A GB8713460D0 (en) 1987-06-09 1987-06-09 Data processing system

Publications (1)

Publication Number Publication Date
JPS63312750A true JPS63312750A (ja) 1988-12-21

Family

ID=10618614

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63138570A Pending JPS63312750A (ja) 1987-06-09 1988-06-07 データ処理システム

Country Status (3)

Country Link
EP (1) EP0294890A3 (ja)
JP (1) JPS63312750A (ja)
GB (1) GB8713460D0 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05242055A (ja) * 1991-11-19 1993-09-21 Internatl Business Mach Corp <Ibm> マルチプロセッサ・システム

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6006255A (en) * 1996-04-05 1999-12-21 International Business Machines Corporation Networked computer system and method of communicating using multiple request packet classes to prevent deadlock
US6070189A (en) * 1997-08-26 2000-05-30 International Business Machines Corporation Signaling communication events in a computer network
AU2002952023A0 (en) 2002-10-14 2002-10-31 Curtin University Of Technology Implementation of constraints to ensure deadlock avoidance in networks
CN100520748C (zh) * 2003-09-04 2009-07-29 皇家飞利浦电子股份有限公司 数据处理系统
DE102007001137B4 (de) * 2006-02-14 2016-05-04 Robert Bosch Gmbh Gateway zum automatischen Routen von Nachrichten zwischen Bussen
US20100153928A1 (en) * 2008-12-16 2010-06-17 Microsoft Corporation Developing and Maintaining High Performance Network Services

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4466060A (en) * 1982-02-11 1984-08-14 At&T Bell Telephone Laboratories, Incorporated Message routing in a computer network
US4692761A (en) * 1985-06-21 1987-09-08 Robinton Products, Inc. Adaptive communication network and method

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05242055A (ja) * 1991-11-19 1993-09-21 Internatl Business Mach Corp <Ibm> マルチプロセッサ・システム

Also Published As

Publication number Publication date
GB8713460D0 (en) 1987-07-15
EP0294890A3 (en) 1990-05-02
EP0294890A2 (en) 1988-12-14

Similar Documents

Publication Publication Date Title
US11640362B2 (en) Procedures for improving efficiency of an interconnect fabric on a system on chip
US5218676A (en) Dynamic routing system for a multinode communications network
Ngai et al. A framework for adaptive routing in multicomputer networks
Bertsekas et al. Optimal communication algorithms for hypercubes
US7039058B2 (en) Switched interconnection network with increased bandwidth and port count
US7046633B2 (en) Router implemented with a gamma graph interconnection network
US6947433B2 (en) System and method for implementing source based and egress based virtual networks in an interconnection network
Scheideler Universal routing strategies for interconnection networks
US20090313350A1 (en) Method for optimising the distribution of a service from a source to a plurality of clients in a network
JPH05153163A (ja) メツセージのルーテイング方法およびネツトワーク
Cole et al. Randomized protocols for low-congestion circuit routing in multistage interconnection networks
Dolter et al. Performance analysis of virtual cut-through switching in HARTS: a hexagonal mesh multicomputer
Duato On the design of deadlock-free adaptive routing algorithms for multicomputers: Theoretical aspects
JPS63312750A (ja) データ処理システム
Annot et al. A novel deadlock free and starvation free packet switching communication processor
CA1263760A (en) Apparatus for multiprocessor communication
Nguyen et al. Performance analysis of a minimal adaptive router
Konstantinidou Deterministic and chaotic adaptive routing in multicomputers
Youn et al. On multistage interconnection networks with small clock cycles
Chen et al. A hybrid interconnection network for integrated communication services
Liebhart et al. A study of an SCI switch fabric
Balakrishnan et al. Providing message delivery guarantees in pipelined flit-buffered multiprocessor networks
Melen et al. Distributed protocols for access arbitration in tree-structured communication channels
Csoppenszky et al. Efficient distributed routing algorithms for a synchronous circuit-switched hypercube
CA2361442A1 (en) Method of addressing physical problems of a topological network using a topology engine