JPH0222580B2 - - Google Patents

Info

Publication number
JPH0222580B2
JPH0222580B2 JP58202472A JP20247283A JPH0222580B2 JP H0222580 B2 JPH0222580 B2 JP H0222580B2 JP 58202472 A JP58202472 A JP 58202472A JP 20247283 A JP20247283 A JP 20247283A JP H0222580 B2 JPH0222580 B2 JP H0222580B2
Authority
JP
Japan
Prior art keywords
processor
packet
cluster
packets
buffer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP58202472A
Other languages
English (en)
Other versions
JPS59132263A (ja
Inventor
Konaado Aren Jeimuzu
Boora Baatoretsuto Uendei
Suchiiunsu Jonson Hooku
Dereku Futsushaa Suchiibun
Oriuaa Raason Richaado
Chaaruzu Petsuku Jon
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.)
Tandem Computers Inc
Original Assignee
Tandem Computers Inc
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 Tandem Computers Inc filed Critical Tandem Computers Inc
Publication of JPS59132263A publication Critical patent/JPS59132263A/ja
Publication of JPH0222580B2 publication Critical patent/JPH0222580B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/17337Direct connection machines, e.g. completely connected computers, point to point communication networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Multi Processors (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)

Description

【発明の詳細な説明】 本発明はマルチプロセツサ・コンピユータ・シ
ステムに関するものであり、更に詳しくいえば、
1つのシステムからのプロセツサが別のシステム
からのプロセツサと交信する方法およびマイクロ
プロセツサ・コンピユータ・システムのマルチシ
ステム・ネツトワークに関するものである。
別々に管理されるシステムの間で交信する必要
のある用途のような多くの用途においては、2台
またはそれ以上のマルチプロセツサ・システムを
ネツトワークで互いに接続することが望ましい。
また、マルチプロセツサ・システムに含むことが
できるプロセツサの数には実際上の制限がある。
システムのサイズの限界に達すると、処理能力を
更に拡張できる唯一の方法は、2つまたはそれ以
上のマルチプロセツサ・システムをネツトワーク
で互いに接続することである。
マルチプロセツサ・システムをネツトワークで
互いに接続する場合には、各システム中の1台の
プロセツサを通信リンクおよびシステム間通信マ
ネジヤーとして用いることが普通である。この専
用プロセツサはそのネツトワーク中のプロセツサ
間の全ての通信を取扱う。
このやり方によりプロセツサ間のシステム間通
信を行うことができるが、全てのプロセツサの通
信を流す通信リンクとして1台のプロセツサを用
いると、情報伝達の量と速度を制限する隘路が生
ずることになる。どのようなコンピユータ・シス
テムにおいても高速かつ大量の処理能力を有する
ことが常に望ましく、システム間通信を迅速かつ
効率良く行うマルチシステム・ネツトワークが要
望されている。
本発明は、ネツトワークを構成する任意の1つ
のシステム中の任意のプロセツサと、任意のシス
テム中の別のプロセツサとが通信できるようにす
るマルチシステム・ネツトワークを提供するもの
である。各マルチプロセツサ・システム、すなわ
ちクラスタ、には1つのノードが関係づけられて
おり、そのノードを介して前記各クラスタは、他
のマルチプロセツサ・システムに関係する他のノ
ードへ、データ・リンクを経て結合される。
各ノードは、マルチプロセツサ・システムの前
記ノードに関係するローカルプロセツサ間バス
と、ネツトワーク内でシステムを互いに接続する
データ・リンクとの間のインターフエースであ
る。各ノードには回路と、フアームウエア、およ
び情報の転送を管理・指令するためのソフトウエ
ア以外に一途のバツフア記憶場所が設けられてい
る。各記憶場所は複数の情報パケツトを格納する
容量を有し、かつ各記憶場所はネツトワーク内の
ある特定のプロセツサの専用として用いられる。
ネツトワーク内の任意のシステム中の任意のプ
ロセツサが、そのネツトワーク内の他の任意のシ
ステム中の他の任意のプロセツサへ情報を送信し
ようとする場合はいつでも、ネツトワークは送り
側プロセツサからの情報を、ノードの制御の下
に、それに関係しているノード内のバツフア記憶
場所のうち、宛先のプロセツサに対応する1つの
記憶場所へプロセツサ間バスを経て通す。それか
ら、その情報はノードの制御の下にデータ・リン
クを通つてネツトワーク中の隣のノードへ送ら
れ、その次に、そのノードの制御の下に、宛先の
プロセツサに対応するバツフアメモリの一つの記
憶場所に置かれる。
その情報は、受信ノードに関係するマルチプロ
セツサ内のプロセツサへ宛てられているのでその
受信ノードにより情報が確認されるまで、以上説
明したようにして順次各ノードへ送られる。情報
は、それが置かれていたバツフア記憶場所から、
そのノードの制御の下に、ローカルのプロセツサ
間バスを経て宛先のプロセツサへ送られる。
本発明のノードはいくつかのやり方のうちの1
つのやり方で互いに接続できる。それらのやり方
には、開放チエーンによる直線的な接続、星形す
なわちハブおよびスポーク状接続、または冗長接
続グラフのようなあるハイブリツドの組合せ、な
ども含まれる。ネツトワークの誤り許容性を高く
するように冗長路を設けるために、各マルチプロ
セツサ・システムには1つ以上のノードを組合せ
ることができる。
このネツトワークを通る情報の流れを管理する
ために、ノードは隣接するノードと交信してバツ
フア・スペースを利用できるか否かを指示する。
与えられた任意のノードに送つて来られるように
なつている任意の情報パケツトを格納するため
に、そのノード内のある特定の宛先プロセツサに
割当てられているバツフア・スペースを利用でき
ることを確実にするために、スタート・メツセー
ジとストツプ・メツセージが送られる。ある与え
られたプロセツサに宛てられたパケツトには順次
番号をつけることができ、誤りの検出と訂正を行
えるようにFIFOのやり方でバツフアは管理され
る。
本発明のネツトワークの好適な実施例は、各ク
ラスタ自体がマルチプロセツサ・システムである
ような、クラスタのリングで構成される。各クラ
スタは2つのクラスタ・モジユールに接続され、
各クラスタ・モジユールは2つの双方向リンクに
より隣接する他の2つのクラスタ・モジユールに
接続されて、二重の双方向リングを形成する。任
意のクラスタ中の任意のプロセツサは任意のクラ
スタ中の他の任意のプロセツサと通信できるが、
各クラスタ・モジユールは隣接する2つのクラス
タ・モジユールとだけ直接交信できる。
各クラスタ・モジユールは、各クラスタを直列
データ・リンクとローカル・システムのプロセツ
サ間バス(IPB)に接続するためのインタフエー
ス・ノードとして機能する。各インタフエース・
ノードには一連のバツフア記憶場所が含まれる。
各バツフア記憶場所は、複数の情報パケツトを格
納するたの容量を有し、ネツトワーク内の特定の
プロセツサの専用にされる。クラスタ・リングを
回る向きは2つあるから、リングを回る各向き
(左または右)のために別々のバツフア群が設け
られる。ネツトワーク内の任意のプロセツサのた
めのパケツトは1度に1つのクラスタ・モジユー
ルをつぎつぎに通つて、リングの中を与えられた
向きに送られる。各クラスタ・モジユールにおい
てバケツトは、メツセージを受ける宛先プロセツ
サに関係するバツフア内に置かれる。
2つのリングがあり、かつ各リングには2つの
可能な回る向きがあるから、4つの可能なメツセ
ージ経路が存在することになる。システムはメツ
セージを可能な最短経路を通つてメツセージを送
ろうとする。選択した経路に異常があると、シス
テムはメツセージを交替の経路を介して送る。
プロセツサ間の通信の処理を効率良く行うため
に、バツフア・メモリ制御回路はバツフア容量の
上限しきい値と下限しきい値を利用し、それらの
しきい値に達した時には、クラスタ・モジユール
制御器が、その特定の宛先へ宛てられるパケツト
の送信を停止または開始することを、隣接するク
ラスタ・モジユール(およびそれのローカル・プ
ロセツサ間バス)へ知らせることを指令する。あ
る与えられたプロセツサへ送られるパケツトには
順次番号がつけられ、誤りの検出と訂正を行える
ようにするために、FIFOのやり方でそれらのバ
ツフアは管理される。1つのプロセツサまたはプ
ロセツサ群を他のプロセツサまたは他プロセツサ
群よりもとくに使用されるというようなことを避
けるために、ある任意の時刻に送るためにどのプ
ロセツサ間パケツトを選択するためのアルゴリズ
ムが用意される。
本発明の目的は、先行技術の諸欠点を解消した
マルチシステム・マルチプロセツサ・システム相
互通信を行うことである。
本発明の他の目的は、従来可能であつたものよ
りも高い速度で行われるマルチシステム・マルチ
プロセツサ相互通信装置を得ることである。
本発明の別の目的は、マルチシステム・マルチ
プロセツサ相互通信を管理するために1台の専用
プロセツサを使用する必要のない、マルチシステ
ム・マルチプロセツサ相互通信装置を得ることで
ある。
本発明の更に別の目的は、信頼度を高くするた
めにいくつかの冗長経路を利用する環境におい
て、マルチシステム・マルチプロセツサ通信装置
を得ることである。
以下、図面を参照して本発明を詳しく説明す
る。
米国特許第4228496号明細書に開示されている
ような種類のマルチプロセツサ・システムを採用
しているマルチシステム・マルチプロセツサ機に
関連して本発明を用いるために、本発明の好適な
実施例を開示しようとするものであるが、他の構
成のマルチプロセツサ・システムにも本発明を容
易に適用できることは当業者には明らかであろ
う。
第1図は、プロセツサ10を有するマルチプロ
セツサ・システムのプロセツサ間通信部分とプロ
セツサを示すものである。各プロセツサ10はX
プロセツサ間バス12とYプロセツサ間バス14
に接続される。各プロセツサ間バス12,14は
同じプロセツサ間バス制御器(IPB制御器)16
に接続される。このIPB制御器16は、米国特許
第4228496号明細書に開示されているやり方で、
データの流れと、プロセツサ10のその他の動作
を制御する。
第1図から明らかなように、各プロセツサ
(P0〜Po)10はプロセツサ間バス12または1
4のいずれかを介して互いに通信できる。それら
のバスは、システムの1つの部分の部品が故障し
た時にも、システムが動作を継続できるようにす
るための冗長経路を構成するものである。この好
適な実施例を説明するために、個々の各マルチプ
ロセツサ・システム中のプロセツサの数を16(n
=16)としたが、異なる数のプロセツサに合わせ
て指令語フイールド長、レジスタ長を少し変更
し、かつその他のハードウエア/スフトウエアに
対して明らかな変更を施すことにより、本発明の
装置は16より多いか、少い数のプロセツサで動作
することが当業者にはわかるであろう。
本発明が開示されるのは第1図に示されている
種類のマルチプロセツサ・システムに関してであ
るが、米国特許第4228496号明細書に開示されて
いる装置における多重経路冗長性を持たないマル
チプロセツサ・システムにも等しく本発明を適用
できることを当業者は認められるであろう。しか
し、そのようなネツトワークは同数の可能なデー
タ経路を有しないことがわかるであろう。
次に第2図を参照する。この図には本発明に従
つて構成されたシステム・ネツトワークの基本的
なビルデイング・ブロツクが示されている。第1
図に示されているのと同様に、第2図のマルチプ
ロセツサ・システムは、Xプロセツサ間バス12
とYプロセツサ間バス14をそれぞれ介して通信
する複数のプロセツサ10を含む。しかし、第1
図に示されている装置とは異なり、第2図に示さ
れているマルチプロセツサ・システムは、それの
Xプロセツサ間バス12とYプロセツサ間バス1
4のためのインターフエースとして機能するIPB
制御器を有しない。その代りに、XとYの各バス
12,14において、本発明において用いられて
いる各マルチプロセツサ・システムはXクラス
タ・モジユール18とYクラスタ・モジユール2
0を介してネツトワークに対するインタフエース
機能を行う。Xクラスタ・モジユール18はXバ
スに接続され、Yクラスタ・モジユール20はY
バスに接続される。X左直列データ・リンク22
の一部とX右直列データ・リンク24の一部がX
クラスタ・モジユール18から出ており、Y左直
列データ・リンク26の一部とY右直列データ・
リンク28の一部がYクラスタ・モジユール20
から出ていることが図からわかる。XとYのクラ
スタ・モジユール18,20の構造は同じで、二
重リング・ネツトワークの基礎を形成するもので
ある。
第4図を参照するともつと良くわかるように、
XとYのクラスタ・モジユール18,20は、X
とYのプロセツサ間バス12または14と直接イ
ンターフエースするプロセツサ間バス制御器
(IPB制御器)30を含む。本発明におけるIPB
制御器30の機能は、下記の3つの面を除き、シ
ステム間ローカル・プロセツサ間バスを制御する
目的で米国特許第4228496号明細書に開示されて
いるプロセツサ間バス制御器について説明されて
いるのと同じである。
その米国特許明細書に開示されているマルチプ
ロセツサ・システムにおいては、いずれかのプロ
セツサ10が他のプロセツサ10へ送るべきメツ
セージを有すかどうかを確かめるために、個々の
プロセツサ10は順次ポールされる。このポーリ
ング動作は、他のプロセツサへ送るべきパケツト
をあるプロセツサか有することを示す信号
SNDREQが、プロセツサ間バスの制御ビツト部
分から受けたIPB制御器により開始される。
本発明においては、SNDRO信号が常に主張さ
れると仮定している。その結果、いずれかのプロ
セツサが同じシステム内の他のプロセツサへ、ま
たはネツトワーク中の他のシステム内のプロセツ
サへ送るべきパケツトを有するかどうかを確認す
るために、プロセツサは絶えずポールされる。
IPB制御器30とクラスタ・モジユール18のこ
の面の動作については第4図と第11図を参照し
て詳しく説明することにする。
また、米国特許第4228496号明細書に開示され
ているシステムにおいて用いられている順次ポー
リングではなくて、非順次式にポーリングするこ
とが好ましいが、本発明においては順次ポーリン
グ動作も行われる。
第3の相違は、後で詳しく説明するように、外
部ソースとの間でパケツトをやりとりする性能が
本発明のIPB制御器に付加されていることであ
る。
本発明のマルチシステム・ネツトワークは、第
2図に示されているシステムがいくつか互いに接
続されて、任意のプロセツサが1メガバイト/秒
というような高速度で他のプロセツサと通信でき
るようにするネツトワークを構成することにより
完成される。本発明のネツトワークではそのよう
な高速通信が可能であるが、従来の通信リンクを
用いると通信速度は僅かに7000バイト/秒と非常
に低い。そのようなネツトワークの構成が第3図
に示されている。
第3図に示されている、いくつかのマルチプロ
セツサ・システムの二重双方向リング状ネツトワ
ークは、インターフエースのXとYのクラスタ・
モジユール18と20にそれぞれ終端させられて
いるXとYのプロセツサ間バス12,14に接続
されているプロセツサ10を備えている。第3図
には、Xクラスタ・モジユール18a,18b,
18c,18nとYクラスタ・モジユール20
a,20b,20c,20nを介して二重双方向
リング・ネツトワークに形成された4つのそのよ
うなシステムが示されているだけであるが、ここ
で説明している好適な実施例においては、クラス
タ番号0がローカル・プロセツサ間バス転送を示
すために留保され、クラスタ番号15がクラス
タ・モジユールをモニタおよび制御するために留
保されているから、第3図に示されているのに類
似するリング構造に構成される14台までのマルチ
プロセツサ・システムを設けることができる。本
発明の技術的思想を逸脱することなしにより多く
の、またはより少い数のマルチプロセツサ・シス
テムを使用できる。どのように多数の、またはど
のように少数のマルチプロセツサ・システムで
も、本発明に従つて構成できることを、この明細
書の説明から当業者は容易に理解できるであろ
う。
第3図において、二重リング構造の1つのリン
グがそれのノードとしてXクラスタ・モジユール
18を有するものとして示され、他のリングがそ
れのノードとしてYクラスタ・モジユール20を
有するものとして示されている。Xクラスタ・モ
ジユールはX左側リンク22a,22b,22
c,22dとX右側リンク24a,24b,24
c,24dの直列データ・リンクにより互いに接
続される。その名称により示唆されているよう
に、各リンク22,24はデータを1つの向きに
だけ転送する。同様に、Yクラスタ・モジユール
20はY左側リンク26a,26b,26c,2
6dとY右側リンク28a,28b,28c,2
8dを介して互いに接続される。したがつて、1
つのクラスタ・モジユールから別のクラスタ・モ
ジユールへ情報を送るためにとることができる経
路はリンク22,24,26,28の4つあるこ
とがわかる。
データ伝送用のために知られている高速光フア
イバ・ケーブルをリンク22,24,26,28
に用いることが好ましい。そのような光フアイ
バ・ケーブルは公知の光フアイバ・インタフエー
ス(図示せず)を用いて、XとYのクラスタ・モ
ジユール18,20に接続される。リンク22〜
28としては光フアイバ・ケーブルの代りに電気
ケーブルも使用できるが、いずれを用いるにして
もこれ以上の説明は不要であることがわかるであ
ろう。
クラスタ間の通信に使用できる多数のハードウ
エア経路のために、設けられているデータ路の冗
長性によりもつと信頼度の高いシステムが可能で
あるばかりでなく、それらのデータ路は独立して
動作でき、かつ同時に使用できるために、1リン
グ経路を使用した時に可能である処理量の4倍ま
で処理することが可能であることがわかるであろ
う。
リングを介してシステム間を伝わる、すなわ
ち、1つのシステム内のプロセツサ10から別の
システムのプロセツサ10へ伝えられる情報の管
理と制御は、クラスタ・モジユール18,20に
内蔵されているロジツクとインテリジエンスによ
り取扱われる。
本発明に従つて構成されたマルチシステム・ネ
ツトワーク内の各Xクラスタ・モジユール18
は、それに隣接する2つのクラスタ・モジユール
とだけ直接通信する。たとえば、第3図に示され
ているXクラスタ・モジユール18bは左隣のX
クラスタ・モジユール18aおよび右隣のXクラ
スタ・モジユール18cとだけ通信する。同様
に、Yクラスタ・モジユール20bは左隣と右隣
のYクラスタ・モジユール20a,20bとだけ
直接通信する。
XとYのクラスタ・モジユールの構造は同じ
で、同じように機能するから、ネツトワークの動
作についての説明は、Xクラスタ・モジユール1
8だけ参照して行うことにするが、その説明はY
クラスタ・モジユール・リングをいずれの向きに
送られるパケツトの転送にも等しく適用できるこ
とがわかるであろう。
各クラスタ・モジユール18は隣接する2つの
クラスタ・モジユールとだけ直接通信できるか
ら、過度に複雑なシステム制御は不要である。ど
のクラスタ・モジユール18も、左隣り、右隣
り、およびプロセツサ間バス12に接続されてい
るプロセツサ10との3つの向きでパケツトを送
受信することによつて通信できる。
たとえば、第3図のクラスタ・モジユール18
bは、X左側直列データ・リンク22bを介して
クラスタ・モジユール18aへ、X右側直列デー
タ・リンク24cを介してクラスタ・モジユール
18cへ、およびローカルXプロセツサ間バス1
2bを介して任意のプロセツサ10パケツトを送
ることができる。
プロセツサは他のどのプロセツサとも通信でき
るから、どのノードも任意のプロセツサにより送
ら、および任意のプロセツサへ宛てられるトラフ
イツクを取扱うことができなければならず、か
つ、この情報転送の大きな可能性を効率良く管理
するための何らかの手段を備えなければならな
い。
本発明においては、クラスタ・モジユール18
b(全てのクラスタ・モジユール18の例として)
が、内部に設けられているバツフア・メモリを介
て行われるそれらの全てのパケツトの転送を管理
する。全体のリング中の各プロセツサに、一定数
のパケツトを格納するための容量を持つバツフ
ア・メモリ内のあるスペースが割当てられるよう
に、バツフア・メモリは構成される。その容量の
うちの半分が左向きへの転送に使用され、残りの
半分が右向きへの転送に用いられる。与えられた
任意のプロセツサへ宛てられたパケツトが送られ
る順序と同じ順序で届けられるように、各プロセ
ツサに割当てられたスペースはFIFOキユーとし
て配列される。宛先のプロセツサがそれに送られ
た全てのパケツトを受けたことを確認して、誤り
の検出と訂正を行うためにそのプロセツサは単一
シーケンス検査を使用できる。
ここで説明している好適な実施例においては、
リングを回る各向きにおけるネツトワーク内の各
プロセツサのためのバツフア・メモリ・スペース
には16個のパケツトが入るが、当業には容易にわ
かるであろうように、ハードウエアとソフトウエ
アを適切かつ明らかなやり方で変更することによ
り、16個とは異なる数のパケツト容量とすること
ができる。本発明のこの特徴と、以下に行う説明
は第4図を参照することにより容易に理解でき
る。
第4図を参照して、クラスタ・モジユール18
bはIPB制御器30と、クラスタ・モジユール制
御器32と、バツフア・メモリ34と、直列デー
タ・リンク制御器36との4つの主な機能ブロツ
クで構成される。
IPB制御器30は、Xプロセツサ間バス12b
上に配置されているプロセツサ間の全てのローカ
ル・パケツト転送(ローカル転送)と、プロセツ
サ間バス12b上の任意のプロセツサとリングの
間のパケツトの転送とを取扱う。
クラスタ・モジユール32は、バツフア・メモ
リ34と共同して、クラスタ・モジユール18b
を含んでいるノードとの間の全てのパケツト転送
を管理および制御する。クラスタ・モジユール3
2は、プロセツサ間バス12b上に配置されてい
るプロセツサの範囲をこえるパケツトの転送と、
直列データ・リンク制御器36を介してのノード
におけるパケツトのやりとり転送とに関するIPB
制御器30の動作の制御も行う。直列データ・リ
ンク制御器36はノードと直列データ・リンク2
2,24との間のパケツトの実際の転送を行う。
クラスタ・モジユール28bの動作は、そのモ
ジユールがパケツトを送信および受信する時の機
能を考えることにより最もよく理解できる。
パケツトをバツフア・メモリ34からとり出す
時は、それらのパケツトはローカルXプロセツサ
間バス12b上のプロセツサと、またはクラス
タ・モジユール18aまたは18b内の隣りのバ
ツフア・メモリ34とのいずれかの2つの可能な
宛先へ向けられる。
パケツトをバツフア・メモリ34から隣りのク
ラスタ・モジユール18aまたは18cへ送る時
は、直列データ・リンク制御器36が含まれる。
直列データ・リンク制御器36はクラスタ・モジ
ユール制御器インターフエース38と、パケツト
を送受信するための他のハードウエアを含んでい
ることがわかる。
とくに、直列データ・リンク制御器36は左
OUTQバツフア40と、右OUTQバツフア42
と、左並列−直列変換器およびCRC(周期的冗長
性検査)発生器44と、右並列−直列変換器およ
びCRC発生器46と、左送信器48と、右送信
器50と、左受信器58と、右受信器60と、左
直列−並列変換器およびCRC検査器62と、右
直列−並列変換器およびCRC検査器64と、左
INQバツフア66と、右INQバツフア68とを
含む。CRC発生器は、誤り検出のために、CRC
−16検査語を送られるデータにかぶせて発生す
る。この検査語はデータ・フレームの最後の語と
して送られる。受信器におけるCRC検査器は、
フレーム全体(送られるCRC語を含む)にわた
つてCRC語を計算し、計算された語が零である
ことを確認することにより、受けたフレームに誤
りがないことを検査する。CRC検査技術はこの
技術分野において周知のものである。
直列データ・リンクの左側と右側の部分は同じ
であるから、左側部分だけを説明することにす
る。
直列データ・リンクを介して送られるパケツト
はフレーム内に含まれる。パケツトに加えて、各
フレームは2つの制御語と1つのCRC語を含む。
制御語は流れ制御のため、とくにスタート・メツ
セージとストツプ・メツセージのために用いられ
る。受信器へのフレームの送信中の誤りを検出す
るために、CRC語はフレーム全体にわたつて計
算される。「制御のみ」フレームと呼ばれるもう
1つの種類のフレームがある。その「制御のみ」
フレームは、データ・パケツトの代りに、更に16
語の制御語を含むことができる(全部で18の制御
語と2つのCRC語である)。制御のみフレーム
は、与えられた任意の時刻に隣りへ2語以上の制
御語を送る必要がある場合、任意の制御語を送る
必要があり、送信すべきデータパケツトがない場
合、あるいは全体のネツトワークを更新するため
に周期的に制御語が循環させられる場合に使用で
きる。ある好適な実施例においては、スタート制
御語が失われるおそれがあるために、それに対処
する必要があるためあるいはそうでなくとも制御
のみフレームを10ミリ秒ごとに送られる。
左OUTQバツフアは、左直列データ・リンク
20を介しての伝送を待つ2つの情報パケツトを
格納する容量を有する二重バツフアとすることが
できる。そのバツフアの1つまたは両方の部分が
空の時は、バツフアはバツフアが一杯になつてい
ないことを示すフラグを発生する。そのフラグは
クラスタ・モジユール制御器32により読まれ
る。左OUTQバツフア40の両方の部分が一杯
の時はこのフラグは発生されず。後で詳しく説明
するように、そのバツフアに含まれているパケツ
トは転送される。
しかし、左OUTQバツフア40がそれのバツ
フアが一杯でないフラグを主張すると、クラス
タ・モジユール制御器32は、左直列データ・リ
ンクへ送るために、バツフア40に含ませるパケ
ツトをバツフア・メモリ34からとり出す。この
目的のために、クラスタ制御器32は、それの制
御メモリ50に「レデイ・リスト」で格納されて
いる情報を用いる。このレデイ・リストは、この
分野で知られているように、二重にリンクされた
リストとすることができる。その二重にリンクさ
れたリストにおいては、リスト中の各項目はリス
ト中の先行の項目と次の項目に対する参照アドレ
スを有し、次のようにして機能する。
クラスタ・モジユール18bにパケツトが到達
すると、そのパケツトに割当てられている宛先ク
ラスタ番号の識別と宛先プロセツサ番号の識別を
含むパケツト語をクラスタ・モジユール制御器3
2が調べる。それらの番号は、そのパケツトがリ
ングを回る向きを示すビツトが組合わされてお
り、制御メモリ52内のレデイ・リストにおける
アドレスとして用いられる。このアドレスには一
連の記憶場所より表がある。その表における1つ
の場所は、FIFOキユーにおける最も古いパケツ
ト(そのキユーの先頭)を示すバツフア・メモ
リ・アドレスである。FIFOキユーの最後尾(そ
こに次のパケツトが置かれる)を指すバツフア・
メモリ・アドレスは、パケツト・カウント(次に
説明する)、モジユロ16、をキユポインタのヘ
ツドに加え合わせることにより得られる。その表
中の別の場所は、ある特定のクラスタとプロセツ
サに宛てられた、バツフア・メモリ34に格納さ
れているパケツトの数の記録(パケツト・カウン
ト)を含む。その数は、あるパケツトがバツフ
ア・メモリ内に置かれた時に、クラスタ・モジユ
ール制御器32により増加させられる。
制御メモリ52内のレデイ・リスト中の表に含
まれている他の2つの場所は、制御メモリ52内
のレデイ・リスト上の先の項目と次の項目の制御
メモリ52におけるアドレスを含む。
制御メモリ52内の別の場所は、レデイ・リス
ト上の第1の項目のアドレスを指す「第1の項
目」と呼ばれるポインタを保持する。クラスタ・
モジユール制御器がパケツトを左OUTQバツフ
ア40の中に置くことを要求した時に、そのクラ
スタ・モジユール制御器が働くのがその場所であ
る。
その場所において、クラスタ・モジユール制御
器は送るべきパケツト(キユーポンタの先頭)を
含んでいるバツフア・メモリ34内のアドレスを
フエツチし、そのアドレスの所へ行き、パケツト
をとり出してそのパケツトを左OUTQバツフア
40へ転送し、パケツト・カウントを減少させ、
キユーポインタの先頭を調整し、次の項目場所に
おいて見出される値に第1項目のポイントをセツ
トする。減少させられたパケツト・カウントが下
側しきい値を通つたとすると、クラスタ・モジユ
ール制御器32がスタート・メツセージを発生し
て、そのメツセージをそれの左隣のクラスタ・モ
ジユールへ送り、以下に説明するようにINQ
START表中の適切なビツトをリセツトする。減
少させられたパケツト・カウントが零に達する
と、宛先のクラスタおよびプロセツサが送るべき
ものを何も持たず、システムが無用のポーリング
を避けるから、クラスタ・モジユール制御器はそ
のクラスタおよびプロセツサをレデイ・リストか
ら削除する。
左OUTQ40は二重バツフアであるから、左
CRC発生器・並列/直変換器44と左送信器4
8が左OUTQバツフア40の半分に含まれてい
るパケツトを送つている間に、クラスタ・モジユ
ール制御器32はその左OUTQバツフア40の
他の半分にパケツトを入れることができる。左
CRC発生器・並列/直列変換器44と左送信器
48は内部送信クロツク(図示せず)により、通
常のやり方でクロツクされる。
入来フレーム中の制御語がクラスタ・モジユー
ル18のすぐ左隣からのストツプ・メツセージを
含んでいるとすると、そのストツプ語はクラス
タ・モジユール制御器32により認められ、クラ
スタ・モジユール制御器32は宛先のクラスタお
よびプロセツサに関連する表を制御メモリ52か
らフエツチし、レデイ・リストからそれを実効的
に削除する。これは、二重にリンクされているリ
ストから項目を除去する公知のやり方で行われ
る。
クラスタ・モジユール18bは、自身のローカ
ル・プロセツサ間バス12b上の任意のプロセツ
サへパケツトを送ることもできる。
そのパケツトがバツフア・メモリ34から検索
されると、そのパケツトは確認されてIPB制御器
30へ転送され、ローカル・プロセツサ間バス1
2bに接続されているある特定のプロセツサに関
連するOUTQバツフア54内の場所に置かれる。
各OUTQバツフアの場所はローカル・プロセツ
サ間バス12b上の各プロセツサのための単一パ
ケツト容量を有する。
OUTQバツフア54にはOUTQ STAT56
と、OUTQバツフア54内の各場所のための1
ビツト位置を有するレジスタとが組合わされる。
そのローカル・バス上のプロセツサへパケツトを
送ることをそのクラスタ・モジユール制御器が望
むと、そのクラスタ・モジユール制御器はそのプ
ロセツサに関連するOUTQ STATレジスタ・ビ
ツトの内容をまず調べる。そのビツトがセツトさ
れているということは、対応するOUTQバツフ
アが一杯で、次のパケツトをOUTQバツフア5
4内のその場所に置くことができるようになる前
に、それの現在のパケツトがローカル宛先プロセ
ツサへ転送されるまでクラスタ・モジユール制御
器は待たなければならないことを意味する。
OUTQバツフア54からローカル宛先プロセツ
サへの転送が行われる時には、それの対応する
OUTQ STATビツトがリセツトされて、ローカ
ル・プロセツサ間バス12bを介してローカル宛
先プロセツサへ転送するための別のパケツトを
OUTQバツフア54が受ける用意ができている
ことを知らせる。パケツトは左受信器58または
右受信器60と、左CRC検査直列/並列変換器
62,64とを介してクラスタ・モジユール18
bに達する。到達するパケツトはマンチエスタ型
コードまたは他の公知の自己クロツクコードで様
式化されており、受信器58または60を通る間
に自己クロツクさせられる。
並列型にされた入来パケツトはINQバツフア
66と68の中に置かれる。INQバツフア66
は、それの1つの部分がクラスタ・モジユール制
御器32により空にされている時に、他の部分が
CRC検査器・直列/並列変換器62により満す
ことがでできるように構成された二重バツフアと
することができる。INQバツフア68はINQバ
ツフア66と構造と機能が同じである。
クラスタ・モジユール制御器32は入来パケツ
トの宛先クラスタおよびプロセツサの番号を読
む。パケツトが別のクラスタ・モジユール18へ
は宛てられず、ローカル・プロセツサ間バス上の
プロセツサ10へ宛てられるものとすると(これ
は、パケツトの宛先クラスタ番号をクラスタ・モ
ジユールのクラスタ番号と比較することにより決
定される)、いくつかの事柄が起る。ローカル
IPB状態リストは、プロセツサ番をアドレスとし
て用いて呼出される。ローカルIPB状態リスト
は、各ローカル・プロセツサごとに、1)FIFO
キユー中の最も古いパケツトを示すバツフア・メ
モリ中のアドレス、2)そのキユー中のパケツト
の数のカウント、を含む。パケツトは、ローカル
IPB状態リストから得た表中のアドレスにより指
定されたバツフア・メモリ34内の場所に格納さ
れ、その表中のパケツト・カウントが増加させら
れる。新しいカウントが上側のしきい値を通つた
とすると、後で説明するように、ストツプ・メツ
セージが発生されて適切な向きへ送られ、INQ
STAT表中の適切なビツトがセツトされる。前
のパケツト・カウントが零であつたとすると、フ
ラグがセツトされて、その特定のプロセツサのた
めのバツフアが送るべき何かを有することを示
す。このフラグは制御メモリ52内のある語中に
配置させられる。その制御メモリはローカル・プ
ロセツサ間バス12b上の各プロセツサごとに1
ビツトを有する。どのローカル・プロセツサがク
ラスタ・モジユールから受けられるパケツトを有
するか示すその「ローカル・レデイ」フラグ語
は、バツフア・メモリからのパケツトをある特定
のローカル・プロセツサのためのOUTQへ送る
時刻を決定するために、OUTQ STAT語(先に
述べた)とともに用いられる。あるパケツトがバ
ツフア・メモリからあるCUTQへ転送されるた
びに、ローカルIPB状態リスト中のパケツト・カ
ウント(ここで問題としているローカル・プロセ
ツサのための)が減少させられる。そのパケツ
ト・カウントが零になると、ローカル・レデイ・
フラグ語中のそのプロセツサに対するフラグ・ビ
ツトがリセツトされて、そのローカル・プロセツ
サへ送るべきパケツトがもはやないことを示す。
また、そのカウントが下側のしきい値以下に減少
すると、スタート・メツセージが発生される(直
列リンク上の転送に類似する)。
入来パケツトが別のクラスタ・モジユールへ宛
てられるものとすると、宛先のクラスタおよびプ
ロセツサの番号が、制御メモリ52内のレデイ・
リスト中の適切な表を呼出すためのアドレスとし
て用いられる。パケツトはレデイ・リスト表にお
いて指定されているバツフア・メモリ34内のア
ドレス内に置かれ、(その表中の)パケツト・カ
ウントがクラスタ・モジユール制御器32により
増加させられる。そのバツフア内のパケツトの数
が上側のしきい値をいまこえたとすると、クラス
タ・モジユール32がストツプ・メツセージを発
生し、そのメツセージをパケツトから来る向きに
送り、以下に説明するように、INQ STAT表中
の適切なビツトをセツトする。バツフア・メモリ
34中のその場所に格納されているパケツトの前
の数が零であつたとすると、入来パケツトが宛て
られるその宛先クラスタおよびプロセツサがレデ
イ・リスト上にないから、第1の項目を示すポイ
ンタにより指定されている場所のすぐうしろに二
重リンクされているレデイ・リストの中にクラス
タ・モジユール制御器32がそれを挿入する。し
かし、次にパケツトを送るべきクラスタ・モジユ
ールから送られるストツプ・メツセージがあつた
とすると、レデイ・リストに対してのエントリイ
は行われない。ある特定の宛先プロセツサために
スタート・メツセージが受けられると、そのプロ
セツサは、パケツト・カウントが零でなければ、
それからレデイ・リスト上にのせられる。
リングに沿つて送るために、パケツトはローカ
ル・プロセツサ間バス12b上にも発生される。
それらのパケツトはIPB制御器30により最初に
取扱われる。
ポール・サイクル中は、パケツトの最初の語が
プロセツサ間バス12b上に現われ、IPB制御器
は、宛先クラスタ番号が零でなければ、その最初
の語を外部転送の要求と認める。宛先クラスタお
よびプロセツサ番号は、IPB制御器内に配置され
ているINQ STAT表70内へのアドレスとして
IPB制御器により用いられる。パケツトのための
所期の休止場所であるバツフア場所に関してスト
ツプ・メツセージが送られたとすると、そのパケ
ツトの最初の語により宛てられたINQ STAT表
70内のアドレスにビツトがセツトされ、その時
に認められると、そのビツトは転送が行われるこ
とを阻止する。クラスタ・モジユール制御器32
がINQ STAT表70をアドレツシングしている
間は、INQバツフア72へのパケツトの転送を
行うことはできない。
しかし、そのパケツトの宛先のためのストツ
プ・ビツトがINQ STAT表70においてセツト
されなかつたとすると、IPB制御器はそれのフラ
グを調べることによりINQバツフア72が一杯
であるかどうかを検討する。そのINQバツフア
が一杯であれば転送は行われず、もし空いておれ
ばパケツトはIPB制御器30内のINQバツフア7
2へ転送され、INQバツフア一杯フラグがセツ
トされる。このフラグはクラスタ・モジユール制
御器32により定期的に調べられ、それがセツト
されていることがわかつたら、INQバツフア7
2の内容がバツフア・メモリ34内の適切な場所
転送され、INQバツフア・フラグがリセツトさ
れる。それから、直列データ・リンク22または
24から受けられるパケツトに関して説明したよ
うにして、レデイ・リストが更新される。
IPB制御器30の動作は状態マシン74の指揮
の下にある。状態マシン74については第11図
を参照して詳しく説明する。状態マシン74はプ
ロセツサ間バス12との間のパケツトの転送を指
令する。
ハードウエアとソフトウエアが協働してプロセ
ツサ間のデータ転送を行う仕組を調べることによ
り、本発明の理解を容量にできる。あるプロセツ
サから別のマルチプロセツサ・システムに属する
プロセツサへのデータの転送は、SEND命令によ
るソフトウエアの制御の下に開始され、行われ
る。
以下の説明は、第3図のマルチプロセツサ・シ
ステムaのプロセツサ10からマルチプロセツ
サ・システムbのプロセツサへデータ・ブロツク
を送るものと仮定している。
SEND命令においては、第3図のプロセツサ1
0はそれのメモリからデータ・ブロツクを読出
し、それをパケツトに分け(第5図のパケツト・
フオーマツトを参照のこと)、パケツト・チエツ
クサム語を計算し、データ・ブロツクを1度に1
パケツトずつクラスタ・モジユール18aまたは
20aのいずれかへ送る。SEND命令に供給され
るパラメータはXクラスタ・モジユール18aま
たはYクラスタ・モジユール20aの使用と、ス
タート・パケツトのシーケンス番号と、リングに
沿つてパケツトを送る向きと、受けるクラスタ・
モジユールの同一性と、受信クラスタ・モジユー
ルに接続されているマルチプロセツサ・システム
内の受信プロセツサの同一性と、メモリ内のデー
タ・ブロツクのスタート・アドレスと、データ・
ブロツク中のバイト数と、米国特許第4228496号
の第2図の出力キユ67を利用できるようになる
まで待つための最初のタイムアウト値とを指定す
る。
異なるクラスタ内のプロセツサへ宛てられるパ
ケツトに対しては、プロセツサ10における
SEND命令は、第5図に示されているパケツトの
語0の送り側クラスタ・フイールド(ビツト0〜
3)として識別されているフイールドにパケツト
を送る向きの指示を与える。そのパケツトを左へ
送るものとすると、送り側のクラスタ・フイール
ド内に値0が置かれ、パケツトを右へ送るものと
すると、そのフイールド内に値1が置かれる。こ
の値は、パケツトを送る正しい向きを決定するた
めに、クラスタ・モジユールにより使用される。
クラスタ・モジユールによりその向きが決定され
ると、そのパケツトの語0の送り側クラスタ・フ
イールド(ビツト0〜3)が、クラスタ・モジユ
ールに知られている送り側クラスタ・モジユール
により書き換えられる。
パケツトを宛先のプロセツサへ送る好適な向き
は、システムが構成される時に決定される。した
がつて、その好適な向きは一部はネツトワークの
幾何学的構成に依存する。その向きの主な決定要
因が経路の長さであることは明らかである。とい
うのは、パケツトを最短経路で送ることが好まし
いからである。もちろん、種々の経路間でトラフ
イツクの流れを平均化することによりひき起され
る伝送速度の潜在的な低下を設者は避けようとす
るから、その要因はトラフイツク容量を考慮に入
れることにより軽くされる。
たとえば、2n個のクラスタ・モジユールを含
んでいるリング構成においては任意のパケツトが
宛先に到達するまでにn個のクラスタ・モジユー
ルより少ないパケツト経路を含む向きをとること
を設計者は望むであろう。双方向リングにおいて
は、XとYの経路間でのトラフイツクを平均させ
るために、XとYの経路を無作為に選択すべきで
ある。
それらの選択された向きは、宛先クラスタに従
つて、各システム中のプロセツサ内の表に置かれ
る。あるパケツトをある特定のクラスタへ送る用
意ができている時は、パケツトを送る向きを割当
てるために送りプロセツサはその表を用いる。希
望によつては、選択された経路を与えられた向き
に変更するため、またはあまりに多くの誤りが経
路の誤動作を示すならば向き自体を変更するため
に、誤り情報の翻訳を使用できる。
全体のブロツクがパケツトに分けられて送られ
た後でSEND命令は終る。したがつて、あるブロ
ツクの送出は、ソフトウエアの観点からは、1つ
の命令の実行であるようにみえる。もつとも、そ
の命令は翻訳可能であるが。
マルチプロセツサ・システム(第3図のb)の
プロセツサによるデータの受信はソフトウエアに
より実行されるものではない。その理由は、デー
タ・パケツトの到達時刻とソースを予測できない
からである。データの受信は可能にしなければな
らないが、受信器により開始することはできな
い。
そのプロセツサは、米国特許第4228496号のプ
ロセツサ間制御器55の行列内部分から受信デー
タ・パケツトをとるバス受信マイクロプログラム
(その米国特許明細書の参照番号115)を実行する
ことにより、Xクラスタ・モジユール18bまた
はYクラスタ・モジユール20bからパケツトを
受け、正しいチエツクサムとシーケンス番号を検
査し、データをメモリ・バツフアに格納する。
受けたパケツトは、メモリ内のバス受信表エン
トリを用いて、ブロツクに再びまとめられる。バ
ス受信表エントリというのはある特定のマルチプ
ロセツサ・システム(第3図のa)と、そのシス
テム内のプロセツサ(第3図の12a)に対応す
る。バス受信表エントリはメモリ・アドレスと、
カウント語と、予測されるシーケンス番号とを含
む。
各データ・パケツトが受けられるにつれて、バ
ス・マイクロプログラムが作動させられる。この
マイクロプログラムは、送り出しマルチプロセツ
サシステムと、そのシステム内のプロセツサとに
対応するバス受信表エントリを呼出す。受けたパ
ケツトが正しいチエツク・サムを含み、かつそれ
のシーケンス番号が次に受信すべきパケツトの予
測されるシーケンス番号に一致するものとする
と、パケツトのデータ語は指定された領域に格納
され、次のパケツトを順次受けるための用意をす
るために領域のアドレスと、シーケンス番号と、
バス受信表中のバイト・カウントとの調整が行わ
れる。カウントが零に達るか、任意の誤りが検出
されるとソフトウエアの割込みが行われる。
受けたパケツトを処理するこの方法により、デ
ータ・ブロツク全体を送ることによつて伝送プロ
セス中の誤りを回復できる。前の伝送中に正しく
受けられたことがあるパケツトの写しである全て
のパケツトはシーケンスから外れているものと認
められ、メモリ中に格納されない。
マルチプロセツサ・システムのプロセツサ間で
実行されるプロトコルによつて確実なメツセージ
伝送が行われる。誤りを示すことなしに受けられ
る各伝送は、受信プロセツサから送信プロセツサ
への次の伝送により確実に確認応答される。送信
プロセツサにおいてその確認応答を受けることに
よつて、伝送が確かに受けられたことが確認され
る。
送信プロセツサが最初に伝送を行うと、送信プ
ロセツサは、確認応答が受けられるべきであつた
時刻を、指定された時間間隔を基にして決定す
る。所定の時刻までに確認応答が受けられなかつ
たとすると、伝送が行われて、同じ指定された時
間間隔を基にして新しい時刻が決定されることに
なる。このように、送信プロセツサにより確認応
答が受けられるまでは再伝送がくり返えし行われ
る。
伝送は2つのクラスタ・モジユール18aと2
0aのうちのいずれか一方を介して、2つの向き
(左または右)のいずれかの向で送られるから、
データ・ブロツクを受信プロセツサへ送るのに4
つの可能な伝送路を使用できる。送信プロセツサ
が受信プロセツサへのデータ・ブロツクの送信を
開始すると、その送信プロセツサは利用できるあ
る状態情報に従つて4つの可能な経路のうちの1
つを選択する。その状態情報は、ソフトウエアが
作裂される時にそのソフトウエアに組込まれる好
適な向き(左または右)の定義と、以前に各経路
上で生じた誤りの数とを含む。それらの誤りの数
があるしきい値をこえたとすると、その経路は故
障したとみなされてもはや使用されなくなる。経
路の選択においては、トラフイツクをより一様に
分配するためにXバスとYバスを無作為に選択さ
れる。
ある時間が経過しても送信プロセツサが受信プ
ロセツサからの確認応答を受けていないと、その
送信プロセツサはシステムのインテリジエンスに
組込まれている規則に従つて伝送用の経路を選択
する。その規則はいくらかは任意のものであつ
て、先の説明で述べた同じ状態情報と、先の伝送
で用いた経路の同一性とを効率よく考慮に入れる
任意のアルゴリズムとすることができる。その規
則は、引続き伝送の試みが全部で4つの経路を、
または1つまたはそれ以上の経路が誤りのために
使用不能となつた時は使用できる全ての経路を切
換えるために用いられる。
ここで説明している実施例においては、データ
が2つのバスの1つにより与えられた向きに送ら
れる。割当られた時間中に確認応答が受けられな
かつたとすると、再送信が試みられる。2回目の
確認応答不存在の後で、データ・ブロツクは他の
バスを経て同じ向きへ送られる。2回の確認応答
不存在の後で、他の向きのバスによる試みが同様
にして行われる。必要があれば、どの経路も機能
しないことが明らかでない限り、この動作はくり
返えされる。
あるデータ・ブロツクの伝送は成功したが、受
信器からの確認応答メツセージの送信器への返送
が成功しない場合には、送信器により開始される
再送信の試みのために受信器においてシーケンス
誤りが発生させられる。その理由は、パケツトが
既にうまく受信されており、バス受信表シーケン
ス番号が更新されているからである。そのシーケ
ンス誤りを検出した受信器は、追加の確認応答パ
ケツトを4つの全ての経路を介して、または誤り
のために1つまたはそれ以上の経路が使用不能の
場合には使用可能な全ての経路を介して送る。
このようにして送信器から受信器までの4つの
経路のうちのいずれか1つ、または受信器から送
信器までの4つの経路のうちのいずれか1つが機
能しておれば、メツセージをうまく送り、確認応
答させることができる。
次に、第6〜第11図を参照して、制御構造と
ともにクラスタ・モジユールの動作を詳しく説明
する。各クラスタ・モジユール制御器32は入力
キユーと、出力キユーと、間隔タイマ(図示せ
ず)とをくり返えし調べることにより各クラス
タ・モジユール18の動作を指令する。各入力キ
ユーが一杯になつた時に、関連する入力キユーか
らのデータをバツフア・メモリ34へ転送するこ
とによつて、各入力キユーはサービスされる。同
様に、各出力キユーが空になつた時に、データを
バツフア・メモリ34から関連する出力キユーへ
転送することにより、各出力キユーはサービスさ
れる。タイマ・サービスは、間隔タイマが割込を
トリガした時に、定期的に実行される。
バツフア・メモリ34はそれぞれ16パケツトの
固定長スペースに分けられる。リング内の可能な
各宛先プロセツサにはそれらのスペースが2つ割
当てられる。その割当は、パケツトが宛先プロセ
ツサ10のいずれかへ進む2つの向きの1つに1
つのスペースが割当られる、というようにして行
われる。バツフア・メモリ34内のそれらのスペ
ースは、パケツトを受けた順に送り出すような
FIFOキユーとして取扱われる。バツフア・メモ
リ34内の介キユー(スペース)は他のどのキユ
ーの状態とは独にクラスタ・モジユールにより管
理される。たとえば、クラスタ・モジユールは、
あるプロセツサまで右の向きに進むパケツトとは
全く独立に、その同じプロセツサまで左の向きへ
進むパケツトを取扱う。
クラスタ・モジユール制御器32はバツフア・
メモリ34におけるFIFOキユーの割当と使用を
管理する。それらのキユーを管理するために、ク
ラスタ・モジユール制御器32は、バツフア・メ
モリ34内の各キユーごとに情報の表キユー制御
表をそれらの制御メモリ内に保持する。各キユー
制御表は、関連するキユー中に現在あるパケツト
の数のカウント(パケツト・カウント)と、その
キユー中の最も古いパケツトへのポインタ(先頭
ポインタ)と、そのキユー中の最も新しいパケツ
トへのポインタ(最後尾のポインタ)とを含む。
ある特定の宛先プロセツサと向きに割当られたバ
ツフア・メモリ34内のキユーの場所は、その宛
先および向きのクラスタおよびプロセツサの番号
により決定される。同様に、制御メモリ52内の
関連するキユー制御表の場所は、その行先および
向きのクラスタとプロセツサの番号により決定さ
れる。絶対アドレスは全く選択の問題であること
が当業者ならわかるであろう。
あるパケツトがクラスタ・モジユールにおいて
受けられると、クラスタ・モジユール制御器32
が宛先クラスタおよびプロセツサの番号と、パケ
ツトを送る向きとを基にして、適切なキユーをバ
ツフア・メモリ34の中に置き、適切な行列制御
表を制御メモリ52の中に置く。パケツトをキユ
ー内に置く前に、クラスタ・モジユール制御器1
2はパケツト・カウントを増加させる。新しいパ
ケツト・カウントが16をこえると、そのパケツト
は捨てられ、制御メモリ52内のキユー制御表は
変更されない。新しいパケツト・カウントが16よ
り少ないか、16に等しい時は、最後尾のポインタ
が増加させられ、モジユロ16、その最後尾のポ
インタの新しい値により指示されたキユー内の場
所にそのパケツトは置かれ、キユー制御表中の最
後尾のポインタとパケツト・カウントが新しい値
により更新される。
あるパケツトが送られる時は、クラスタ・モジ
ユール制御器32は宛先クラスタおよびプロセツ
サの番号と、パケツトを送る向きとを基にして適
切な行列をバツフア・メモリ34内に置き、適切
なキユー制御表を制御メモリ52内に置く。それ
から、クラスタ・モジユール制御器32は、先頭
のポインタにより指示されたキユー中の場所から
パケツトを除去し、先頭のポインタを増加し、モ
ジユロ16、パケツト・カウントを減少し、制御
メモリ52内のキユー制御表を新しい値で更新す
る。
そうすると、各キユー制御表の内容は先頭のポ
インタ(そのポインタはその行列中の次のパケツ
トを送ることを指示する)と、最後尾のポインタ
(このポインタは最後のパケツトを、その行列中
に置くことを指示する)と、パケツト・カウント
(このカウントはそのキユー中にどれだけの数の
パケツトが現在含まれているかを示す)との正し
い値を常に含む。
クラスタ・モジユール制御器32は、送るため
のバツフア・メモリ34内の次のパケツトを選択
するための効率の良い方法を有しなければならな
い。これは、前記レデイ・リストを非零のパケツ
ト・カウントを有するキユー制御表の二重にリン
クされたリストの形で維持することによつて行う
ことができる。好適な方法は、クラスタ送り用意
完了表と、プロセツサ送り用意完了表との更に、
2種類の情報表を制御メモリ内に保持するもので
ある。
各向きごとに2つのクラスタ送り用意完了表が
ある。制御メモリ52内のクラスタ送り用意完了
表の場所はパケツトを送る向きにより決定される
が、割当てられる絶対アドレスは全く選択の問題
であることが当業者にはわかるであろう。可能な
各クラスタには各向きに1つずつ、合計2つのプ
ロセツサ送り用意完了表がある。制御メモリ52
におけるプロセツサ送り用意完了表の場所は、各
クラスタの番号と、パケツトを送る向きとにより
同様に決定される。
各送り用意完了表はパケツト待ちマスクと、流
れ制御マスクと、優先度マスクとの3つの部分で
構成される。各マスク中のビツトとある特定のク
ラスト(またはプロセツサ10)番号との間に1
対1の関係がある。パケツト待ちマスク中の各ビ
ツトは、そのビツトに関連するクラスタ(または
プロセツサ10)番号へ送られることを待つてい
るパケツトが、バツフア・メモリ34内にあるか
どうかを示す。流れ制御マスク中の各ビツトは、
そのビツトに関連するクラスタ(またはプロセツ
サ10)の流れ制御状態(以下に、説明するよう
に停止またはスタートさせられている状態)を示
す。パケツト待ちマスクと流れマスクとの論理積
(AND)は送り用意完了マスクであつて、送り用
意完了マスク内の各ビツトは、そのビツトに関連
するクラスタ(またはプロセツサ10)に現在送
ることができるパケツトが、バツフア・メモリ3
4内にあるかどうかを示す。優先度マスクは、ど
のビツトにおいて送り用意完了マスクのサーチを
開始すべきかを示すために、用いられる。優先度
マスクにおいては、パケツトが送られた最後のク
ラスタ(またはプロセツサ10)と、全ての下位
番号クラスタ(またはプロセツサ10)とに関連
するビツトがリセツトされ、他の全てのクラスタ
(またはプロセツサ)に関連するビツトがセツト
される。したがつて、送り用意完了マスクと優先
度マスクとの論理積(AND)がマスクを形成す
る。そのマスクにおいては、最後に送られたクラ
スタ(またはプロセツサ10)よりも上位の番号
のクラスタ(またはプロセツサ)に関連するビツ
トだけを、セツトできる。
あるパケツトが、バツフア・メモリ34の中に
おかれると、パケツトの宛先プロセツトに関連す
るビツトが、パケツトの宛先と向きに関連するプ
ロセツサ送り用意完了表のパケツト待ちマスク内
に、セツトされる。同様に、パケツトの宛先クラ
スタに関連するビツトが、パケツトを送る向きに
関連するクラスタ送り用意完了表の、パケツト待
ちマスク内にセツトされる。
あるパケツトがバツフア・メモリ34から除去
されると、キユーのためのパケツト・カウントが
零になつたとすると、パケツトの宛先プロセンサ
に関連するビツトが、パケツトの宛先クラスタと
向きに関連するプロセツサ送り用意完了表のパケ
ツト待ちマスクにおいてリセツトされる。この動
作によりビツトがセツトされていない(そのクラ
スタへ送られるのを待つているそれ以上のパケツ
トがない)パケツト待ちマスクが得られたとする
と、パケツトの宛先クラスタに関連するビツト
が、そのパケツトが送られる向きに関連するクラ
スタ送り用意完了表のパケツト待ちマスクにおい
てリセツトされる。また、プロセツサ送り用意完
了表とクラスタ送り用意完了表中の優先度マスク
がセツトされて、どの宛先プロセツサとクラスタ
へパケツトが送られるかを示す。
送り用意完了表の使用については例を用いて最
もよく説明できる。パケツトの転送を開始するた
めに、クラスタ・モジユール制御器32は、適切
な向きのためのクラスタ送り用意完了表を制御メ
モリから得る。それから、その制御器32は、第
1のビツトに対して送り用意完了マスクと優先度
マスクとの論理積を求る。前記第1のビツトはセ
ツトされて、そのために送ることができるパケツ
トがあるクラスタを示す。送り用意完了マスクと
優先度マスクとの論理積を求めてもクラスタが見
出されないとすると、それに対して送るべきクラ
スタを見出すために同様なやり方で送り用意完了
マスクが探索される。クラスタが選択されると、
そのクラスタに関連するプロセツサ送り用意完了
表が制御メモリから得られて、同様なやり方で探
索される。宛先クラスタとプロセツサが選択され
ると、関連するFIFOキユーとキユー制御表が探
され、最後尾のポインタにより示されているパケ
ツトがそのキユーから除去され、キユー制御表と
送り用意完了表が上述のようにして更新される。
この二段階探索動作により、最後に送られるク
ラスタ(およびクラスタ内の最後のプロセツサ)
に次に送るための最低の優先度が常に与えられる
という、効果的な連続優先度スキームが実行され
る。このようにして可能な全てのクラスタ(およ
びクラスタ内のプロセツサ)に利用可能な直列デ
ータ・リンクの帯域幅のかなりな取り分が与えら
れる。
バツフア・メモリ34内の次に送るパケツトの
好適な選択方法は、クラスタ・モジユール制御器
32の一部であるハードウエア優先度符号器の効
率の良い探索性能を利用して選択された。前記レ
デイ・リストも機能することを当業者は認めるで
あろう。
与えられた任意の宛先に対するパケツトはクラ
スタ・モジユールを出る時よりも高速でクラス
タ・モジユール到達することがあるから、流れ制
御プロトコルが求められる。流れ制御はストツ
プ・メツセージと、スタート・メツセージと、
INQ STAT 表70とを用いて行われる。バツフ
ア・メモリ34内のFIFOキユーにはストツプし
きい値およびスタートしきい値と呼ばれる2つの
一定値が組合わされる。あるパケツトがあるキユ
ー中に置かれると、新しいパケツト・カウントが
ストツプ・しきい値と比較される。その新しいパ
ケツト・カウントがストツプしきい値に等しい
か、それより大きい時は、そのキユーは一杯であ
るとみなされて、そのキユー中へのパケツトの流
れを停止させる動作(宛先停止と呼ばれる)がと
られる。ローカル・プロセツサ間バスから行列中
へのパケツトの流れは、その宛に関連するINQ
STAT 表70内のビツトをセツトすることによ
つて停止させられる。直列データ・リンクから行
列内へのパケツトの流れは、適切な隣のクラス
タ・モジユールへストツプメツセージを送ること
によつて停止させられる。ストツプ・メツセージ
は直列リンク・フレームの制御語で通常送られ、
停止させるべき宛先のクラスタおよびプロセツサ
の番号を含む。
バツフア・メモリ34内のFIFOキユーからあ
るパケツトが除去されると、新しいパケツト・カ
ウント値がスタートしきい値と比較される。その
新しいパケツト・カウントがスタートしきい値に
等しく、宛先が前に停止させられていたとする
と、キユー内へのパケツトの流れをスタートさせ
る動作(宛先をスタートさせる、と呼ばれる)が
行われる。ローカル・プロセツサ間バスからキユ
ー内へのパケツトの流れは、宛先に関連する
INQ STAT 表70内のビツトをリセツトするこ
とによつてスタートさせられる。直列データ・リ
ンクからキユー内へのパケツトの流れは、適切な
隣りのクラスタ・モジユールへスタート・メツセ
ージを送ることによりスタートさせられる。スタ
ート・メツセージは直列リンク・フレームの制御
語で通常送られ、スタートさせるべき宛先のクラ
スタおよびプロセツサ番号を含む。
スタート・メツセージとストツプ・メツセージ
はすぐには送られず、送りのために各直列デー
タ・リンクに関連させられる特殊な、2語、キユ
ーに待たさせられ、その直列データ・リンク上を
送られる次のフレーム中に含まれる。直列デー
タ・リンク上を送られる2つ以上の制御メツセー
ジがあるか、その直列データ・リンク上を送られ
るを待つているパケツトがないものとすると、制
御のみフレームが送られる。制御のみフレームと
いうのは、その中において、対象とする向きにお
ける全ての宛先プロセツサのスタート/ストツプ
状態を表すビツト・マツプによりパケツト・デー
タが置き換えられるようなフレームである。流れ
制御の同期を保つために、制御のみフレームは周
期的な間隔でも送られる。したがつて、直列デー
タ・リンクの過度的な誤りのためにあるスター
ト・メツセージが失われたとすると、次の周期的
な制御のみフレームによりその宛先がスタートさ
せられる。
制御メツセージを送り、隣のクラスタ・モジユ
ールにより作用を受けるにはある時間を要するか
ら、ストツプしきい値はFIFOキユーの実際の寸
法より小さいように選択せねばならない。また、
キユーの利用度を最高にするために、スタートし
きい値は零より大きいように選択される。ここで
説明している実施例においては、たとえば、16個
のパケツト容量を有するFIFOキユーでは、スタ
ートしきい値として6、ストツプしきい値として
8をそれぞれ選択した。
クラスタ・モジユール制御器32がストツプ制
御メツセージを受けると、その制御器は関連する
プロセツサ送り用意完了表に関連する流れ制御マ
スク中の関連するビツトをリセツトする。その結
果得られた流れ制御マスクが全部零である(これ
は、その宛先内の全てのプロセツサがストツプさ
せられることを示す)とすると、関連するクラス
タ送り用意完了表の流れ制御マスク中の関連する
ビツトがリセツトされる。あるクラスタ・モジユ
ール制御器32がスタート制御メツセージを受け
ると、その制御器は関連するプロセツサ送り用意
完了表の流れ制御マスク中の関連するビツトと、
関連するクラスタ送り用意完了表の流れ制御マス
ク中の関連するビツトとをセツトする。あるクラ
スタ・モジユール制御器32は、フレームを受け
ると、その制御器32は、フレームが来る向きに
関連する全てのプロセツサ送り用意完了表とクラ
スタ送り用意完了表中の流れ制御マスクを更新す
る。
好適な実施例においては、「逸走(runaway)」
パケツトを取扱う機構が存在する。「逸走」パケ
ツトというのはネツトワークを一周し、要求され
ないままであるようなパケツトである。
逸走パケツト機構は次のように機能する。ある
パケツトがローカル・プロセツサ間バス12から
とり出されると、その宛先クラスタ番号(第5図
参照)が、零に初期設定されているビツト・フイ
ールドで置き換えられる。リング内のクラスタに
おいてパケツトが受けられるたびに、そのビツ
ト・フイールドの値が読取られて、増加させられ
る。読取られた値がそのネツトワーク内のクラス
タの数に等しいか、それより大きいとすると、す
なわち、パケツトが全てのクラスタに行つて、求
められないままであるとすると、そのパケツトは
廃棄される。
ここで第6〜11図を参照して、クラスタ・モ
ジユールの好適な一連の動作を説明する。システ
ムが始動させられると、レジスタと表を初期設定
し、フラブをクリヤし、全てのプロセツサ制御ス
トラクチヤまたは全てのクラスタ制御ストラクチ
ヤを初期設定する初期設定ルーチン(図示せず)
が、この分野で良く知られている初期設定を行う
ための典型的なやり方で実行される。全ての妥当
な宛先アドレスのためのパケツトを受けるため
に、そのルーチンはIPB制御器30内のINQ
STAT 表70をセツトする。
まず第6図を参照して、アイドル・ループ10
2に入る。このアイドル・ループはループ中の各
トリが項目すなわちリソースをくりかえしポール
する。そのリソースに関連するサービスは必要が
あれば実行される。
左直列INQ検査ステツプ104において左直
列INQバツフア66内のフラグが試験されて、
それが一杯で、左直列INQがサービスを必要と
することを示しているかどうかを調べる。もし一
杯であれば左直列サービス・ルーチンがステツプ
105において実行され、ループが続けられる。
次に、右直列INQ検査ステツプ106におい
て右直列INQバツフア68が一杯で、右直列
INQがサービスを必要としているかどうかを調
べるために、その右直列INQバツフア68内の
フラグが検査される。もし一杯であれば、右直列
INQサービス・ルーチンがステツプ107にお
いて実行され、ループは継続される。
次に、タイマ時間切れ検査ブロツク108にお
いて、内部間隔タイマが零までカウント・ダウン
したかどうかが調べられる。もしそうであれば、
タイマ時間切れサービス・ルーチンがステツプ1
09において実行される。そのサービス・ルーチ
ンには「制御のみ」フレームをそれらの時間間隔
で送り出すことが含まれる。このステツプでの動
作が終ると、動作はアイドル・ループ102に再
び入る。内部間隔タイマが零までカウント・ダウ
ンしなければ、ループは継続される。
次に、ステツプ110において左直列OUTQ
バツフア40のフラグを調べることによりそのバ
ツフア40が空であるかどうかの検査が行われ、
もし空であればステツプ111において左直列
OUTQサービス・ルーチンが実行されてから、
動作はアイドル・ループ102へ再び入り、もし
空でなければループは次の判断ブロツクへ進む。
次に、ステツプ112において、右直列
OUTQバツフア42のフラグを調べることによ
り、そのバツフア42が空かどうかの検査が行わ
れ、もし空であれば、ステツプ113において右
直列OUTQサービス・ルーチンが実行されてか
ら、動作はアイドル・ループ102へ再び入り、
もし空でなければループはステツプ114へ進
む。
ステツプ114においては、ローカルINQバ
ツフア72のフラグを調べることにより、そのバ
ツフア72が一杯であるかどうかの検査が行わ
れ、もし一杯であれば、ステツプ115において
ローカルINQサービス・ルーチンが実行され、
その後でループはアイドル・ループ102に再び
入り、もし一杯でなければループは次のステツプ
116へ進む。
ステツプ116においては、空であるローカル
OUTQバツフア54を有するある特定のプロセ
ツサのための左向けパケツトがあるかどうかの検
査が行われ、もしあればステツプ117において
左ローカルOUTQサービス・ルーチンが実行さ
れその後でループはアイドル・ループ102に再
び入り、もしなければループはステツプ118へ
進む。
ステツプ118においては、空であるローカル
OUTQバツフア54を有するある特定のプロセ
ツサのための右向けパケツトがあるかどうかの検
査が行われ、もしあれば、ステツプ119におい
て右ローカルOUTQサービス・ルーチンが実行
され、それからアイドル・ループ102再び入
り、もしなければループは進む。
アイドル・ループ102が終るたびにループは
再びアイドル・ループ102へ入る。
ただ1つのアイドル・ループ102について説
明したが、ここで説明している実施例において
は、ループの初めにおいて検査されるサービス要
求に過度の集中が行われることを避けるために、
いくつかのアイドル・ループが実行される。ある
リソースがサービスされると、元のアイドル・ル
ープ102へ入らないで、直列出力キユー111
と113およびローカル出力キユー117,11
9をサービスするステツプが許される。常に最初
に検査される3つのテスト104,106,10
8を除き、同じサービスを異なる順序で実行する
同様なループに入る。これにより、各リソースに
等しい注意を向けるように、各サービスの優先度
を動的に変更するという効果が得られる。
次に第7図を参照する。この図にはローカル
INQサービス・ルーチン115のための流れ図
が示されている。
ステツプ203においては、特殊な機能を要す
るパケツトについて調べるために、入来パケツト
の特殊機能検査が行われる。その入来パケツトが
特殊機能を要するものである時はサービス・ルー
チンは終り、ステツプ202において特殊機能ル
ーチンが実行される。また、入来パケツトが特殊
機能を要しない時は、サービス・ルーチンが継続
され、動作はステツプ203へ進む。
ステツプ203においては、入来パケツトの格
納オーバラン、すなわち、パケツトのカウントが
16より大きいかどうかについて、宛先プロセツサ
に割当てられたキユー制御表の検査が行われ、パ
ケツト・カウントが16より大きい時は、ステツプ
204において格納オーバラン誤りカウントが増
大させられ、バツフア・メモリ34内のFIFOキ
ユー中に利用できるスペースがないからサービ
ス・ルーチンは終了させられるが、パケツト・カ
ウントが16より大きくない時はサービス・ルーチ
ンは継続されて、動作ステツプ205へ進む。
ステツプ205においては、パケツト・フレー
ムINQバツフア72からバツフア・メモリ34
内のFIFOキユーへ動かされ、動作ステツプ20
6においてそのパケツトは送り用意完了表に加え
られる。
動作ステツプ207においては、キユー制御表
内のパケツト・カウントがストツプしきい値に等
しいか、それより大きいかについての検査が行わ
れ、もしそうであれば動作ステツプ208におい
て送りをストツプさせる前記動作が行われる。
これでINQサービス・ルーチンは終了させら
れる。
次に第8図を参照する。この図にはローカル
OUTQサービス・ルーチン117(左)または
119(右)が示されている。
動作ステツプ211においては、空いていて、
係属中のパケツトを有するOUTQを選択するた
めに回転優先度符号器が用いられる。
次に、動作ステツプ212において、バツフ
ア・メモリ34内のFIFOキユーから選択された
適切なOUTQへ適切なパケツトを移動させる。
次に、ステツプ213においてパリテイ誤りに
ついて調べられる。もし誤りがあれば、制御メモ
リ52内のオプシヨンのパリテイ誤りカウント
(診断のために有用である)を動作ステツプ21
4において増加させることができる。また、パリ
テイ誤りがなければ、ステツプ215において、
宛先プロセツサに対応するOUTQ STATレジス
タ56内のビツトをセツトする。それから、ステ
ツプ216において、宛先プロセツサのためのキ
ユー制御表が更新される。
次に、ステツプ217において、FIFOキユー
が空いているかどうかについてキユー制御表が調
べられる。もし空いておれば、ステツプ218に
おいて、宛先プロセツサ送り用意完了表が前記し
たようにして更新され、ローカルINQサービ
ス・ルーチンは終る。また、FIFOキユーが空で
ないと、このサービス・ルーチンは継続される。
それから、ステツプ219において、パケツ
ト・カウントがタートしきい値に等しいかどうか
の検査が行われる。もし等しければ、ステツプ2
20において、宛先へのパケツトの流れをスター
トさせる動作が行われ、このローカルOUTQサ
ービス・ルーチンは終る。
次に第9図を参照する。この図には直列INQ
サービス・ルーチンが示されている。
ステツプ221においては、パケツトが制御の
みフレームであるかどうかの検査が行われ、もし
そうであれば、ステツプ223において流れ制御
マスクが更新されて、この直列INQサービス・
ルーチンは終らされる。また、そうでなければス
テツプ226において、入来パケツト・カウント
が16より大きいかどうかについて検査が、宛先プ
ロセツサに割当てられたキユー制御表の検査が行
われる。パケツト・カウントが16より大きいと、
ステツプ227において、診断に有用なオプシヨ
ナルな格納オーバラン誤りカウントを増大させる
ことができる。それから入来制御語が処理され、
この直列INQサービス・ルーチンが終る。また、
パケツト・カウントが16より小さいと、このサー
ビス・ルーチンはステツプ228へ進む。
ステツプ228においては、パケツトが10番目
のノードに達したかどうか調べられ、もしそうで
あればそのパケツトは廃棄され、ステツプ229
において診断のために有用なオプシヨナルな逸走
パケツト誤りカウントを増大させることができ、
入来制御語が処理されて、この直列INQサービ
ス・ルーチンは終る。パケツトが16番目のノード
に達していなければ、このサービス・ルーチンは
ステツプ230へ進む。
ステツプ230においては直列INQバツフア
66または68からバツフア・メモリ34内の
FIFOキユーへパケツト・フレームを移動させる。
このステツプ230からこのサービス・ルーチン
はステツプ235へ進む。
ステツプ235においては、キユー制御表が更
新される。
次に、ステツプ236において、ストツプしき
い値より多くのパケツトがバツフア領域内でキユ
ーに含まれているかどうかの検査が行われ、もし
含まれておれば、ステツプ237において、その
宛先向けのパケツトの流れをストツプさせる前記
動作が行われ、もし含まれていなければ、このサ
ービス・ルーチンはステツプ238へ進む。
このステツプにおいては、送り用意完了表にリ
ンクされているパケツトが更新される。
次に、ステツプ239において、入来制御語が
処理されて、このサービス・ルーチンは終る。
次に第10図を参照する。この図には左
OUTQまたは右OUTQのための直列OUTQサー
ビス・ルーチンが示されている。
ステツプ241においては、送るべき2つ以上
の制御語があるか、または再同期間隔タイマの時
間が経過したかどうかの判定が行われる。好適な
実施例においては、その時間は10ミリ秒である。
上記の判定結果が肯定であれば、ステツプ242
において「制御のみ」フレームが送られ、それか
らこの直列OUTQサービス・ルーチンは終る。
また、上記の判定結果が否定の時は、ステツプ2
43へこのルーチンは進む。
ステツプ243においては、クラスタとプロセ
ツサを選択するために連続優先度スキームが用い
られる。選択すべきクラスタがないか、そのクラ
スタ内で選択すべきプロセツサがないものとする
と、このルーチンは制御語検査ステツプ245へ
進み、そこで送るべき制御語が制御語行列中にあ
るかどうかの検査が行われる。もし存在すれば、
ステツプ246において、パケツトなしで2つの
制御語が送られる。このステツプ246における
動作の後で、このサービス・ルーチンは終る。し
かし、クラスタとプロセツサが選択されたとする
と、このサービス・ルーチンは継続される。
それから、ステツプ247において、バツフ
ア・メモリ34内のFIFOキユーから直列OUTQ
バツフア40または42へ選択されたパケツトが
移動させられ、制御語キユーから制御語が付加さ
れ、キユー制御表が更新される。
次に、パケツト248において、バツフア・メ
モリのパリテイ誤りが調べられ、誤りが検出され
た時は、ステツプ249において、診断に有用な
オプシヨナルなメモリ・パリテイ誤りカウントが
カウントされる。それから、ステツプ250にお
いて、2つの制御語がパケツトなしで送られる。
バツフア・メモリのパリテイ誤りがなければ、ス
テツプ251においてフレームの送りが行われ
る。
次に、ステツプ252において、FIFOキユー
中にパケツトが残つているかの判定が行われ、そ
の判定結果が否定であれば、ステツプ253にお
いて、送り用意完了表が更新され、この直列
OUTQサービス・ルーチンは終る。また、判定
結果が肯定の時は、このサービス・ルーチンはス
テツプ254へ進む。
ステツプ254においては、パケツト・カウン
トがスタートしきい値に等しいか否かの判定が行
われる。もし等しければステツプ255におい
て、この宛先向けのパケツトの流れがスタートさ
せられる。
これで直列OUTQサービス・ルーチンは終る。
IPB制御器30は、ローカル・プロセツサ対の
間と、ローカル・プロセツサとクラスタ・モジユ
ールの間との情報伝送を制御する。IPB制御器3
0はIPBバスにとりつけられ、クラスタ・モジユ
ールに直結される。IPB制御器とローカル・プロ
セツサの間およびIPB制御器とクラスタ・モジユ
ール制御器の間で制御信号を送るために制御線が
用いられる。
1つのローカル・プロセツサから他のローカ
ル・プロセツサへのデータは米国国特許第
4228469号明細書に開示されている方法に非常に
類似する方法で動かされる。パケツトを送るため
にあるプロセツサが選択されると、そのプロセツ
サはそのパケツトの宛先アドレスをIPBに置く。
それから、ローカル宛先プロセツサはIPBからパ
ケツトを受けることを指令される。次に、ローカ
ルソース・プロセツサはパケツトをIPBを介して
ローカル宛先プロセツサへ動かす。
ローカル・プロセツサからクラスタ・モジユー
ルへのデータは、ローカル・ソース・プロセツサ
からIPB制御器のINQバツフア72へ動かされ
る。INQFULLフラグがセツトされて、パケツト
の用意ができていることをクラスタ・モジユール
に合図する。それから、クラスタ・モジユールは
バツフア・メモリ34へパケツトを動かし、
INQFULLフラグをリセツトする。
クラスタ・モジユールからローカル・プロセツ
サへはデータは、クラスタ・モジユールにより、
バツフア・メモリ34からローカル・プロセツサ
の関連するOUTQバツフア54へ最初に動かさ
れる。OUTQ STATレジスタ56内の関連する
フラグがセツトされて、パケツトの用意ができて
いることをIPB制御器に合図する。IPBからパケ
ツトを受けることを宛先ローカル・プロセツサは
指令される。そうすると、IPB制御器はパケツト
をIPBを介して宛先ローカル・プロセツサへ動か
す。
バツフア・メモリ34内のFIFOキユーのあふ
れを阻止するために、ローカル・プロセツサとク
ラスタ・モジユールの間の流れ制御が用いられ
る。どのFIFOキユーがオンまたはオフされるか
をIPB制御器に知らせるために、INQSTATレジ
スタ70が用いられる。このレジスタ70内の各
ビツトは宛先プロセツサとネツトワーク内の向き
を指示する。ビツトがセツトされると、IPB制御
器はそのプロセツサに宛てられたパケツトとネツ
トワーク内の向きを拒絶する。
次に、IPB制御器の状態図が示されている第1
1図を参照する。
IPB制御器のための制御ロジツクは6つの状態
を有する状態マシンとして実現されている。それ
らの状態はSTDSEND 300,POLL 302,
OQSEND 304,RCVRSEL 306,OQRCVRSEL
308,SEND2INQ 310と呼ばれる。状態変化がい
つ起るかを指示する14種類の遷移(第11b図の
T−1〜T−14)が定められる。
POLL状態においては、情報の転送は行われな
い。パケツトを送ることを要求し(信号
SNDACK)、かつパケツト(信号RCVACK)を
受ける各ローカル・プロセツサ性能のために、
IPB制御器は各ローカル・プロセツサをポールす
る。IPB制御器はCUTQ STATレジスタ56内
のローカル・プロセツサの関連するビツトもテス
トする(信号OUTQFULL)。
信号RCVACKとOUTQFULLがともに肯定さ
れたとすると(すなわち、ローカル・プロセツサ
が受信できるクラスタからのパケツトが存在す
る)、OQRCVRSEL状態への遷移T−10がトリ
ガされる。そうすると、クラスタ・モジユールか
らの転送が開始される。信号RCVACKと
OUTQFULLのいずれかが否定されたとすると
(すなわち、パケツトがない、またはローカル・
プロセツサはそれを受けることができない)、
IPB制御器は信号SNDACKをテストする。
信号SNDACKが肯定されると(すなわち、ロ
ーカル・プロセツサが送るべきパケツトを有す
る)、ローカル・プロセツサはパケツト宛先アド
レスをIPB上で確認する。そして、IPB制御器は
そのアドレスを受け、RCVRSEL状態へT−6を
トリガする。そうすると、ローカル・プロセツサ
からの転送が開始される。さもないと、遷移T−
4がトリガされ、IPB制御器は次のローカル・プ
ロセツサのポール動作を続行する。
OQRCVRSEL状態においては、クラスタ・モ
ジユールからの転送が行われようとしている。
IPB制御器はボールされたローカル・プロセツサ
を選択し、RCVCMDを確認する。ローカル・プ
ロセツサがRCVACKに応答すると、OQSEND
状態への遷移T−11がトリガされる。さもない
と、POLL状態への遷移T−9がトリガされる。
OQSEND状態においては、クラスタ・モジユ
ールからローカル・プロセツサへの転送が進行中
である。OUTQバツフアからのデータの16語が
バス上にアサートされ、ローカル・プロセツサに
より受けられる。IPB制御器30内に設けられて
いるIPBクロツク88がクロツク信号を発生す
る。そのクロツク信号は遷移T−4をくり返しト
リガしてこの機能を行う。転送が終ると、POLL
状態への遷移T−3がトリガされる。
RCVRSEL状態においては、ローカル・プロセ
ツサからの転送が起ろうとしている。IPB制御器
は先に確認された宛先アドレスにおけるクラスタ
の数を調べる。 その数が零であると(これはロ
ーカル転送を示す)、IPB制御器が宛先ローカ
ル・プロセツサを選択して、RCVCMDを確認す
る。RCVACK応答において、STDSENDへの遷
移がトリガされる。さもなければ、POLL状態へ
の遷移T−7がトリガされる。
クラスタ数が零でなければ(これはネツトワー
ク転送を示す)IPB制御器がクラスタ・モジユー
ルに対するパケツトを受けるそれの能力を調べ
(信号INQFULL)、かつ宛先プロセツサに対する
流れ制御状態(信号INQSTAT,INQ STAT
表における関連するフラグ)を調べる。
INQFULLとINQSTATがともに否定されたとす
ると(すなわち、入力バツフアが一杯でなく、ス
トツプ・メツセージが送られていない)、
SEND2INQ状態への遷移T−12がトリガされる。
INQFULLとINQSTATのいずれかが確認される
と、POLL状態への遷移がトリガされる。
STDSEND状態においては、ローカル・プロ
セツサからローカル・プロセツサへの転送が進行
中である。送るローカル・プロセツサからのデー
タ16語がバス上で肯定され、宛先ローカル・プロ
セツサによつて受けられる。IPB制御器30内に
設けられているIPBクロツク88がクロツク信号
を発生する。このクロツク信号は遷移T−1をく
りかえしトリガしてこの機能を実行する。転送が
終ると、POLL状態への転送T−2がトリガされ
る。
SEND2INQ状態においては、ローカル・プロ
セツサからクラスタ・モジユールへの転送が進行
中である。送り側のローカル・プロセツサからの
データの16語がバス上で肯定され、INQバツフ
アにより受けられる。IPB制御器30内に設けら
れているIPBクロツク88は遷移T−13をくりか
えしトリガしてこの機能を行う。転送が終ると、
POLL状態への遷移T−8がトリガされる。
次の表は各状態遷移T−1〜T−14をトリガす
る諸条件を示す表である。
T1=STDSEND・15 T2=STDSEND・CNT15 T3=OQSEND・15 T4=OQSEND・CNT15 T5=RCVRSEL・RCVACK・ T6=POLL・SNDACK・(・
OUTQFULL) T7=RCVRSEL・5・12 T8=SEND2NQ・CNT15 T9=OQRCVRSEL・ T10=POLL・RCVACK・OUTQFULL T11=OQRCVRSEL・RCVACK T12=RCVRSEL・XRCVACK・
CLUSTNOTφ T13=SEND2IND・15 T14=POLL・6・10 各場合において、論理方程式中の第1項は現在
の状態である。項CNT15は、システムの同期を
保つために、送信中に保持されるパケツト内の語
の数と、パケツトの受け取りを指すものである
(第5図参照)。
【図面の簡単な説明】
第1図は本発明に使用するのに適当な種類のマ
ルチプロセツサ・システムを示し、第2図は本発
明に使用するために変更した第1図に示されてい
るマルチプロセツサ・システムを示し、第3図は
第2図に示されているマルチプロセツサ・システ
ムを用いてリングとして構成されたネツトワーク
を示し、第4図は本発明に使用できるクラスタ・
モジユールのブロツク図、第5図は本発明に使用
できるパケツトのフオーマツトを示す線図、第6
図は本発明の好適な実施例のためのアイドル・ル
ープ・ルーチンの流れ図、第7図はローカル
INQサービス・ルーチンの流れ図、第8図はロ
ーカルOUTQサービス・ルーチンの流れ図、第
9図は直列INQサービス・ルーチンの流れ図、
第10図は直列OUTQサービス・ルーチンの流
れ図、第11図はIPB制御器の状態図である。 10……プロセツサ、12,14……プロセツ
サ間バス、16,30……IPB制御器、18……
Xクラスタ・モジユール、20……Yクラスタ・
モジユール、22……X左直列データリンク、2
4……X右直列データ・リンク、26……Y左直
列データ・リンク、28……Y右直列データ・リ
ンク、32……クラスタ・モジユール制御器、3
6……直列データ・リンク制御器、38……クラ
スタ・モジユール制御器インタフエース、52…
…バツフア・メモリ、54……OUTQバツフア、
72……INQバツフア、74……状態マシン。

Claims (1)

  1. 【特許請求の範囲】 1 それぞれプロセツサ間バス12,14に接続
    された少くとも1つのプロセツサ10を含む複数
    のマルチプロセツサ・システムと; それぞれ上記プロセツサ間バス12,14の1
    つに接続され、かつデータ・リンク22,24,
    26,28によつて互にリング形に接続された複
    数のノード・インターフエース18,20と; 上記各ノード・インターフエースにそれぞれ設
    けられ、それぞれネツトワーク内の上記複数のプ
    ロセツサの任意の1つに転送される情報パケツト
    を一時的に格納するための複数の格納場所を有
    し、上記複数の格納場所はネツトワーク内の上記
    複数のプロセツサの特定の1つのプロセツサ、す
    なわち群内の格納場所に格納される全ての情報パ
    ケツトの宛先プロセツサにそれぞれ対応する複数
    の格納場所群に区画されているバツフア・メモリ
    34と; 上記各ノード・インターフエースにそれぞれ設
    けられ、各インターフエース・ノードをそれに隣
    接するインターフエース・ノードに接続するデー
    タ・リンク22,24,26,28から、および
    各インターフエース・ノードに接続されたプロセ
    ツサ間バス12,24から各インターフエース・
    ノードにおけるバツフア・メモリ24への上記情
    報パケツトの転送をそれぞれ制御し、かつ上記各
    インターフエースのバツフア・メモリ34から各
    インターフエース・ノードをそれに隣接するイン
    ターフエース・ノードに接続するデータ・リンク
    22,24,26,28へ、および各インターフ
    エース・ノードに接続されたプロセツサ間バス1
    2,14への上記情報パケツトをそれぞれ制御す
    る制御手段 32と; 上記各制御手段にそれぞれ設けられ、上記各ノ
    ード・インターフエースのバツフア・メモリ34
    における特定の宛先プロセツサに対応する格納場
    所群が何時充満するかをそれぞれ決定し、上記格
    納場所が充満している期間中は上記特定の宛先プ
    ロセツサ向けの情報パケツトの転送をそれぞれ停
    止させる手段52と; を備えている、ことを特徴とするマルチプロセツ
    サ・システムのネツトワーク。
JP58202472A 1982-10-28 1983-10-28 マルチプロセツサ・システムのネツトワ−ク Granted JPS59132263A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US06/437,399 US4667287A (en) 1982-10-28 1982-10-28 Multiprocessor multisystem communications network
US437399 1982-10-28
US542187 1983-10-14

Publications (2)

Publication Number Publication Date
JPS59132263A JPS59132263A (ja) 1984-07-30
JPH0222580B2 true JPH0222580B2 (ja) 1990-05-21

Family

ID=23736267

Family Applications (1)

Application Number Title Priority Date Filing Date
JP58202472A Granted JPS59132263A (ja) 1982-10-28 1983-10-28 マルチプロセツサ・システムのネツトワ−ク

Country Status (2)

Country Link
US (1) US4667287A (ja)
JP (1) JPS59132263A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0384880A (ja) * 1989-08-28 1991-04-10 Fujitsu Ltd コネクタ構造

Families Citing this family (101)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6258744A (ja) * 1985-09-09 1987-03-14 Fujitsu Ltd ポ−リング方式
US4979108A (en) * 1985-12-20 1990-12-18 Ag Communication Systems Corporation Task synchronization arrangement and method for remote duplex processors
US4989139A (en) * 1987-07-17 1991-01-29 International Business Machines Corporation Map case network virtual connection interface system
JPS6450152A (en) * 1987-08-20 1989-02-27 Fujitsu Ltd Communication controller
US5191651A (en) * 1987-11-03 1993-03-02 International Business Machines Corporation Apparatus and method for making of interconnected processors act like a single node in a multinode communication system
AU616213B2 (en) * 1987-11-09 1991-10-24 Tandem Computers Incorporated Method and apparatus for synchronizing a plurality of processors
GB8814629D0 (en) * 1987-11-12 1988-07-27 Ibm Direct control facility for multiprocessor network
JPH0731666B2 (ja) * 1988-06-03 1995-04-10 日本電気株式会社 プロセッサ間通信方式
US4965717A (en) * 1988-12-09 1990-10-23 Tandem Computers Incorporated Multiple processor system having shared memory with private-write capability
AU625293B2 (en) * 1988-12-09 1992-07-09 Tandem Computers Incorporated Synchronization of fault-tolerant computer system having multiple processors
US5253342A (en) * 1989-01-18 1993-10-12 International Business Machines Corporation Intermachine communication services
US4965793A (en) * 1989-02-03 1990-10-23 Digital Equipment Corporation Method and apparatus for interfacing a system control unit for a multi-processor
US5142631A (en) * 1989-02-03 1992-08-25 Digital Equipment Corporation System for queuing individual read or write mask and generating respective composite mask for controlling access to general purpose register
US5526487A (en) * 1989-02-09 1996-06-11 Cray Research, Inc. System for multiprocessor communication
US5133078A (en) * 1989-08-11 1992-07-21 International Business Machines Corporation Serial frame processing system in which validation and transfer of a frame's data from input buffer to output buffer proceed concurrently
US5295258A (en) * 1989-12-22 1994-03-15 Tandem Computers Incorporated Fault-tolerant computer system with online recovery and reintegration of redundant components
US5197130A (en) * 1989-12-29 1993-03-23 Supercomputer Systems Limited Partnership Cluster architecture for a highly parallel scalar/vector multiprocessor system
US5203004A (en) * 1990-01-08 1993-04-13 Tandem Computers Incorporated Multi-board system having electronic keying and preventing power to improperly connected plug-in board with improperly configured diode connections
CA2043505A1 (en) * 1990-06-06 1991-12-07 Steven K. Heller Massively parallel processor including queue-based message delivery system
US6453406B1 (en) 1990-10-17 2002-09-17 Compaq Computer Corporation Multiprocessor system with fiber optic bus interconnect for interprocessor communications
JP2501965B2 (ja) * 1991-02-12 1996-05-29 パイオニア株式会社 デ―タ転送制御装置
US5276861A (en) * 1991-03-18 1994-01-04 Bull Hn Information Systems Inc. Guaranteed message delivery from a data handling computer to management computer by monitoring the management computer with the data handling computer and other management computer
US5825773A (en) * 1991-03-20 1998-10-20 Hitachi, Ltd. Switching system for transferring broadcast packet held in broadcast buffer received from input port to output ports according to the state of each output port
JP3679813B2 (ja) * 1991-07-22 2005-08-03 株式会社日立製作所 並列計算機
US5408613A (en) * 1991-12-24 1995-04-18 Matsushita Electric Industrial Co., Ltd. Data transfer apparatus
US6101321A (en) * 1992-04-10 2000-08-08 Eastman Kodak Company Method and apparatus for broadcasting data in a ring connected multiprocessor
US5758053A (en) * 1992-07-22 1998-05-26 Hitachi, Ltd. Fault handling and recovery for system having plural processors
US5434976A (en) * 1992-09-28 1995-07-18 Standard Microsystems Corporation Communications controller utilizing an external buffer memory with plural channels between a host and network interface operating independently for transferring packets between protocol layers
US5371852A (en) * 1992-10-14 1994-12-06 International Business Machines Corporation Method and apparatus for making a cluster of computers appear as a single host on a network
US5675807A (en) * 1992-12-17 1997-10-07 Tandem Computers Incorporated Interrupt message delivery identified by storage location of received interrupt data
JPH0793236A (ja) * 1993-09-20 1995-04-07 Fujitsu Ltd バス制御装置
US5546542A (en) * 1993-11-29 1996-08-13 Bell Communications Research, Inc. Method for efficiently determining the direction for routing a set of anticipated demands between selected nodes on a ring communication network
US5576945A (en) * 1995-01-23 1996-11-19 Tandem Computers Incorporated Transaction monitor process with pre-arranged modules for a multiprocessor system
JP2770788B2 (ja) * 1995-06-13 1998-07-02 富士ゼロックス株式会社 リングバスマルチプロセッサ装置及びリングバスマルチプロセッサ装置を構成するためのプロセッサボード
US5802163A (en) * 1996-04-05 1998-09-01 Genesys Telccommunications Laboratories, Inc. Methods and apparatus for implementing an outbound network call center
US5825870A (en) * 1996-04-05 1998-10-20 Genesys Telecommunications Laboratories Methods and apparatus for implementing a network call center
US5765033A (en) * 1997-02-06 1998-06-09 Genesys Telecommunications Laboratories, Inc. System for routing electronic mails
US5926538A (en) * 1997-02-11 1999-07-20 Genesys Telecommunications Labs, Inc Method for routing calls to call centers based on statistical modeling of call behavior
US5933492A (en) * 1997-01-21 1999-08-03 Genesys Telecommunications Laboratories, Inc. Method and system for determining and using multiple object states in a computer telephony integration system
US6130933A (en) * 1996-02-02 2000-10-10 Genesys Telecommunications Laboratories, Inc. Apparatus and methods for coordinating telephone and data communications
US6055308A (en) * 1997-01-21 2000-04-25 Genesys Telecommunications Laboratories, Inc. Method and system for determining and using multiple object states in a computer telephony integration system
US6104802A (en) 1997-02-10 2000-08-15 Genesys Telecommunications Laboratories, Inc. In-band signaling for routing
US6201863B1 (en) 1997-02-10 2001-03-13 Genesys Telecommunications Laboratories, Inc. Personal desktop router
US6185292B1 (en) * 1997-02-10 2001-02-06 Genesys Telecommunications Laboratories, Inc. Skill-based real-time call routing in telephony systems
US7031442B1 (en) 1997-02-10 2006-04-18 Genesys Telecommunications Laboratories, Inc. Methods and apparatus for personal routing in computer-simulated telephony
US6185291B1 (en) 1997-02-10 2001-02-06 Genesys Telecommunication Laboratories, Inc. Personal desktop router
US6560328B1 (en) 1997-04-03 2003-05-06 Genesys Telecommunications Laboratories, Inc. Voice extensions in a call-in center employing virtual restructuring for computer telephony integrated functionality
US5946387A (en) * 1997-02-10 1999-08-31 Genesys Telecommunications Laboratories, Inc, Agent-level network call routing
US5995614A (en) * 1997-02-10 1999-11-30 Genesys Telecommunications Laboratories, Inc. Dynamic requeing to avoid latency in call-routing systems
US6480600B1 (en) 1997-02-10 2002-11-12 Genesys Telecommunications Laboratories, Inc. Call and data correspondence in a call-in center employing virtual restructuring for computer telephony integrated functionality
US6018578A (en) * 1997-04-03 2000-01-25 Genesys Telecommunications Laboratories, Inc. Call and data correspondence in a call-in center employing virtual restructuring for computer telephony integrated functionality
US6985943B2 (en) 1998-09-11 2006-01-10 Genesys Telecommunications Laboratories, Inc. Method and apparatus for extended management of state and interaction of a remote knowledge worker from a contact center
US6711611B2 (en) 1998-09-11 2004-03-23 Genesis Telecommunications Laboratories, Inc. Method and apparatus for data-linking a mobile knowledge worker to home communication-center infrastructure
USRE46528E1 (en) 1997-11-14 2017-08-29 Genesys Telecommunications Laboratories, Inc. Implementation of call-center outbound dialing capability at a telephony network level
BR9813703A (pt) * 1997-12-19 2000-10-10 Unilever Nv Composição de pasta espalhável contendo óleo, e, processos para refinar um azeite de oliveira, e para a manufatura de uma composição alimentìcia.
US7907598B2 (en) 1998-02-17 2011-03-15 Genesys Telecommunication Laboratories, Inc. Method for implementing and executing communication center routing strategies represented in extensible markup language
US6332154B2 (en) 1998-09-11 2001-12-18 Genesys Telecommunications Laboratories, Inc. Method and apparatus for providing media-independent self-help modules within a multimedia communication-center customer interface
US6571301B1 (en) 1998-08-26 2003-05-27 Fujitsu Limited Multi processor system and FIFO circuit
USRE46153E1 (en) 1998-09-11 2016-09-20 Genesys Telecommunications Laboratories, Inc. Method and apparatus enabling voice-based management of state and interaction of a remote knowledge worker in a contact center environment
US7929978B2 (en) 1999-12-01 2011-04-19 Genesys Telecommunications Laboratories, Inc. Method and apparatus for providing enhanced communication capability for mobile devices on a virtual private network
US6584535B1 (en) * 2000-01-31 2003-06-24 Cisco Technology, Inc. Configurable serial interconnection
US6975629B2 (en) * 2000-03-22 2005-12-13 Texas Instruments Incorporated Processing packets based on deadline intervals
WO2001095098A2 (en) * 2000-06-02 2001-12-13 Inrange Technologies Corporation Enhanced channel adapter
US7574495B1 (en) 2000-09-13 2009-08-11 Fortinet, Inc. System and method for managing interworking communications protocols
US7389358B1 (en) 2000-09-13 2008-06-17 Fortinet, Inc. Distributed virtual system to support managed, network-based services
US7487232B1 (en) 2000-09-13 2009-02-03 Fortinet, Inc. Switch management system and method
US7174372B1 (en) 2000-09-13 2007-02-06 Fortinet, Inc. System and method for managing router metadata
US7111072B1 (en) * 2000-09-13 2006-09-19 Cosine Communications, Inc. Packet routing system and method
US7444398B1 (en) 2000-09-13 2008-10-28 Fortinet, Inc. System and method for delivering security services
US7272643B1 (en) * 2000-09-13 2007-09-18 Fortinet, Inc. System and method for managing and provisioning virtual routers
US8250357B2 (en) 2000-09-13 2012-08-21 Fortinet, Inc. Tunnel interface for securing traffic over a network
TW567695B (en) * 2001-01-17 2003-12-21 Ibm Digital baseband system
CA2437657A1 (en) * 2001-02-24 2002-09-06 International Business Machines Corporation Fault isolation through no-overhead link level crc
US7181547B1 (en) 2001-06-28 2007-02-20 Fortinet, Inc. Identifying nodes in a ring network
US7251698B2 (en) * 2002-05-28 2007-07-31 Newisys, Inc. Address space management in systems having multiple multi-processor clusters
US7281055B2 (en) * 2002-05-28 2007-10-09 Newisys, Inc. Routing mechanisms in systems having multiple multi-processor clusters
US7155525B2 (en) * 2002-05-28 2006-12-26 Newisys, Inc. Transaction management in systems having multiple multi-processor clusters
US7103636B2 (en) * 2002-05-28 2006-09-05 Newisys, Inc. Methods and apparatus for speculative probing of a remote cluster
US7203192B2 (en) 2002-06-04 2007-04-10 Fortinet, Inc. Network packet steering
US7161904B2 (en) * 2002-06-04 2007-01-09 Fortinet, Inc. System and method for hierarchical metering in a virtual router based network switch
US7177311B1 (en) 2002-06-04 2007-02-13 Fortinet, Inc. System and method for routing traffic through a virtual router-based network switch
US7340535B1 (en) 2002-06-04 2008-03-04 Fortinet, Inc. System and method for controlling routing in a virtual router system
US7376125B1 (en) * 2002-06-04 2008-05-20 Fortinet, Inc. Service processing switch
US7096383B2 (en) * 2002-08-29 2006-08-22 Cosine Communications, Inc. System and method for virtual router failover in a network routing system
US7266120B2 (en) 2002-11-18 2007-09-04 Fortinet, Inc. System and method for hardware accelerated packet multicast in a virtual routing system
US7577755B2 (en) * 2002-11-19 2009-08-18 Newisys, Inc. Methods and apparatus for distributing system management signals
US7386626B2 (en) * 2003-06-23 2008-06-10 Newisys, Inc. Bandwidth, framing and error detection in communications between multi-processor clusters of multi-cluster computer systems
US7577727B2 (en) 2003-06-27 2009-08-18 Newisys, Inc. Dynamic multiple cluster system reconfiguration
US7395347B2 (en) * 2003-08-05 2008-07-01 Newisys, Inc, Communication between and within multi-processor clusters of multi-cluster computer systems
US7159137B2 (en) * 2003-08-05 2007-01-02 Newisys, Inc. Synchronized communication between multi-processor clusters of multi-cluster computer systems
US7103823B2 (en) 2003-08-05 2006-09-05 Newisys, Inc. Communication between multi-processor clusters of multi-cluster computer systems
US7117419B2 (en) * 2003-08-05 2006-10-03 Newisys, Inc. Reliable communication between multi-processor clusters of multi-cluster computer systems
US7720095B2 (en) 2003-08-27 2010-05-18 Fortinet, Inc. Heterogeneous media packet bridging
KR100552509B1 (ko) * 2003-10-13 2006-02-14 삼성전자주식회사 이동 애드 혹 네트워크에서의 브로드캐스트 데이터 처리방법
US7499419B2 (en) * 2004-09-24 2009-03-03 Fortinet, Inc. Scalable IP-services enabled multicast forwarding with efficient resource utilization
US20070115979A1 (en) * 2004-11-18 2007-05-24 Fortinet, Inc. Method and apparatus for managing subscriber profiles
US7808904B2 (en) * 2004-11-18 2010-10-05 Fortinet, Inc. Method and apparatus for managing subscriber profiles
US9008075B2 (en) 2005-12-22 2015-04-14 Genesys Telecommunications Laboratories, Inc. System and methods for improving interaction routing performance
US7668920B2 (en) * 2006-03-01 2010-02-23 Fortinet, Inc. Electronic message and data tracking system
JP5488609B2 (ja) * 2009-03-30 2014-05-14 日本電気株式会社 リングバスによって相互接続された複数の処理要素を有する単一命令多重データ(simd)プロセッサ
US9819766B1 (en) * 2014-07-30 2017-11-14 Google Llc System and method for improving infrastructure to infrastructure communications

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2469751A1 (fr) * 1979-11-07 1981-05-22 Philips Data Syst Processeur d'intercommunication du systeme utilise dans un systeme de traitement de donnees reparti
JPS56109057A (en) * 1980-02-04 1981-08-29 Hitachi Ltd Data communication system
JPS57162853A (en) * 1981-03-31 1982-10-06 Toshiba Corp Data transmission system
US4489379A (en) * 1982-01-25 1984-12-18 International Business Machines Corporation Distributed data processing in ring-structured networks architected for full duplex peer-to-peer operation of processing stations and uninterruptible transfer of long data records between stations
US4470114A (en) * 1982-03-01 1984-09-04 Burroughs Corporation High speed interconnection network for a cluster of processors

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0384880A (ja) * 1989-08-28 1991-04-10 Fujitsu Ltd コネクタ構造

Also Published As

Publication number Publication date
US4667287A (en) 1987-05-19
JPS59132263A (ja) 1984-07-30

Similar Documents

Publication Publication Date Title
JPH0222580B2 (ja)
US4663706A (en) Multiprocessor multisystem communications network
US7061929B1 (en) Data network with independent transmission channels
EP0391583B1 (en) Dual-path computer interconnect system with four-ported packet memory control
US4750109A (en) Method and system for expediting multi-packet messages in a computer network
US5187780A (en) Dual-path computer interconnect system with zone manager for packet memory
JP2577269B2 (ja) 高速メッシュ接続式ローカルエリアネットワーク
US6453406B1 (en) Multiprocessor system with fiber optic bus interconnect for interprocessor communications
CA1198522A (en) Dual-count, round-robin distributed arbitration technique for serial buses
US6992978B1 (en) Method and system for path protection in a communications network
US4835674A (en) Computer network system for multiple processing elements
EP0257348B1 (en) Multiprocessor interrupt rerouting mechanism
US20090323708A1 (en) Subscriber and Communication Controller of a communication System and Method for Implementing a Gateway Functionality in a Subscriber of a Communication System
US6975626B1 (en) Switched network for low latency communication
JPH0817385B2 (ja) 高速メッシュ接続式ローカルエリアネットワーク用再構成システム
US5293377A (en) Network control information without reserved bandwidth
US7643477B2 (en) Buffering data packets according to multiple flow control schemes
US7065580B1 (en) Method and apparatus for a pipelined network
US5119374A (en) Method of and system for implementing multiple levels of asynchronous priority in FDDI networks
JPS60500117A (ja) バス競合の解決のための方法と装置
JP3807614B2 (ja) マルチリンク通信システムにおけるパケットの順序制御方法
US5442631A (en) Communication control device
WO2002007408A1 (en) Communication control method and device
CN120710935A (zh) 片上网络让步重播方法、装置和片上网络
Daniel Flexible router architectures for point-to-point networks