JPH0320094B2 - - Google Patents

Info

Publication number
JPH0320094B2
JPH0320094B2 JP58079195A JP7919583A JPH0320094B2 JP H0320094 B2 JPH0320094 B2 JP H0320094B2 JP 58079195 A JP58079195 A JP 58079195A JP 7919583 A JP7919583 A JP 7919583A JP H0320094 B2 JPH0320094 B2 JP H0320094B2
Authority
JP
Japan
Prior art keywords
packet
buffer
port
destination
node
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP58079195A
Other languages
English (en)
Other versions
JPS5940744A (ja
Inventor
Dei Sutoretsukaa Uiriamu
Ii Suchuwaato Robaato
Furaa Samyueru
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.)
Digital Equipment Corp
Original Assignee
Digital Equipment Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Digital Equipment Corp filed Critical Digital Equipment Corp
Publication of JPS5940744A publication Critical patent/JPS5940744A/ja
Publication of JPH0320094B2 publication Critical patent/JPH0320094B2/ja
Granted 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/167Interprocessor communication using a common memory, e.g. mailbox
    • 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/177Initialisation or configuration control

Landscapes

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

Description

【発明の詳細な説明】 発明の分野 本発明は、コンピユータシステムの相互接続の
分野に係り、特に、コンピユータネツトワークの
第1ノードに関連したメモリから上記ネツトワー
クの第2ノードに関連したメモリへ情報を転送す
る方法及び装置に係る。
発明の背景 相互接続されたコンピユータノードのシステム
より成る分配式コンピユータネツトワークにおい
て、システムの種々の構成要素を相互作用できる
ようにするためには、コマンド、レスポンス及び
データより成る情報を2つ以上のノード間及びノ
ードの組合せ体間で伝送しなければならない。
このようなネツトワークを説明するのに含まれ
る用語はこの業界で完全に形式化されていないの
で、ここで用いる次の用語は、これが用いられる
技術背景から外れない限り、次に示すような意味
をもつものと理解されたい。
“ポート”は、“インターフエイス”又は“ア
ダプタ”とも称するが、これは(ホスト)コンピ
ユータや他の装置がこれを通してバスにアクセス
して他のコンピユータや装置と通信するための機
構である。ポートは、ポートプロセツサ、ポート
バツフア及びリンク用部品を含むが、これら部品
の役割については以下に述べる。
“ノード”はホストコンピユータと少なくとも
1つのポートより成るものであるが、ノードは多
数のポートを有したり用いたりしてもよく、これ
らのポートはバスを介して互いに通信する。
“バス”は装置間の相互接続体であり、これを
通して情報が或る装置から別の装置へと転送され
る。バスは、通信チヤンネルと、これに関連した
部品及び制御器とを備えている。
“ネツトワーク”は共通バスを経て相互接続さ
れたノードのシステムである。
或るノードから別のノードへ(そして或るポー
トから別のポートへ)情報を転送するのに用いら
れる機構は、ネツトワークの通信効率及び処理効
率の両方に著しく影響する。これまで、例外を除
くと、コンピユータの相互接続機構は、(1)通信チ
ヤンネルを簡単化するか、又は(2)装置の特定機種
の特定の特性を考慮するかのいずれかで設計され
ている。然し乍ら、製造業者やコンピユータ装置
の機種の急増に伴ない、効率が高く同類製品に適
合し得る汎用コンピユータに対しては、単なるチ
ヤンネル以上のものであつて然も製品専用バス以
上に有用性の巾広いようなコンピユータ間通信リ
ンクがしばしば必要とされる。この必要性は、(1)
それ自体の計算能力が著しく大きいいわゆる“イ
ンテリジエント”入出力システム、(2)それ自体の
独立したメモリ及びオペレーシヨンシステムを
各々有する密接接続コンピユータのネツトワーク
として構成された高利用度システム、及び(3)多数
の密接接続コンピユータがフアイルシステムの如
き共通の情報源を共有するような負荷分担分配処
理システム、の出現により、急激に増大した。
多ノードネツトワークに対するメツセージ通信
システムの設計は、電気的な相互接続体として使
用されるバスの種類によつて大きく左右される。
このようなネツトワークは互いに性質が異なり、
その特徴は、バスをアクセスする仕方と、或る点
から別の点へとメツセージを案内する仕方とにあ
る。これはメツセージの行先を指示しそして確認
する方法と、メツセージを処理するタスクを制御
する仕方と、使用される信頼性向上機能、エラー
検出機能及びエラー修正機能の形式とを含む。
色々な設計上の解決策があるために、メツセージ
転送を行なうのに必要なステツプの作動シーケン
スがネツトワークごとに著しく異なる。
コンピユータネツトワークは、一般に、密接接
続型と弛緩接続型のいずれかに分類される。弛緩
接続型のネツトワークは“分配”ネツトワーク又
はシステムとも称される。密接接続型のネツトワ
ークには一般的にメモリが1つあり、このメモリ
は種々の装置例えばプロセツサや入出力装置等に
よつて共有され、これらは全て物理的に接近して
いる。これらの種々の装置は、情報を交換するこ
とのできるメイルボツクスとしてメモリを使用
し、或る装置はこのメイルボツクスにメツセージ
を入力しそして別の装置はメイルボツクスから情
報を取り出す。メモリバスはメモリと他の装置と
を相互接続する。これに対し、弛緩接続型のネツ
トワークにおいては、上記の装置及びサブシステ
ムを含むノードが通常は相当の距離離されてお
り、従つて共通のメモリバスを効率よく使用する
ことができない。それ故、このようなネツトワー
クのノード間の相互接続はしばしば或る種の通信
バスとなり、これは単に通信チヤンネルとして働
くに過ぎない。従つて分配型ネツトワークは通常
は密接接続ネツトワークとは作動モードが異な
り、或るノードから別のノードへの情報転送を行
なうのに非常に多数のステツプを必要とする。
又、送信ノードは、通常は、受信ノードがそのメ
モリに特定のメツセージを入れたところの場所を
知らない。
一形式の通信バス、ここで使用される形式でも
ある、を回線争奪裁定式ビツトシリアルバスと称
する。
公知システムの他の一般的な欠点は、(1)或るノ
ードのメモリを他のノードから直接アクセスでき
ないので、一方向性の転送しか維持されないこと
があり、即ち書き込み作動だけは維持されるが読
み取り作動は維持されないことがあり、(2)メツセ
ージが時々失なわれることがあり、(3)長距離の転
送が不当に長時間バスを独占することがあり、そ
して(4)転送の終了を会図するのにプロセツサの割
り込みが必要である。実際には、バスを経て送ら
れるパケツト当たりに1回という頻度でホストプ
ロセツサに何回も割り込むことが必要とされ、そ
して各々の割り込みのたびに、プロセツサは他の
作業からその向きを転じることになり、該作用の
進行が遅れることになる。
従つて、本発明の目的は、効率が高く同類の製
品に適合できる汎用のコンピユータ間通信リンク
をコンピユータネツトワーク用として提供するこ
とである。
本発明の別の目的は、密接接続型のネツトワー
クの性能を厳密に模擬するような分配型コンピユ
ータネツトワーク用のメツセージ転送システムを
提供することである。
本発明の更に別の目的は、各メツセージが送ら
れる受信ノード(及びポート)のメモリ内の位置
を送信ノード(及びポート)が少なくとも記号に
よつて知るようなメツセージ転送システムを提供
することである。
本発明の更に別の目的は、情報転送に対して高
い信頼性を確保するような構成と共に、回線争奪
裁定式のビツトシルアルバスを用いて、多ノード
ネツトワークのノード間でメツセージを転送する
新規な方法及び装置を提供することである。
本発明の更に別の目的は、メツセージ転送が重
複されず、その損失がなく然もエラーがないよう
に保証されるネツトワーク及び装置を提供するこ
とである。
本発明の更に別の目的は、多ノードネツトワー
クのノード間で読み取り及び書き込みの両作動を
維持できるような両方向性の相互接続体を提供す
ることである。
本発明の更に別の目的は、バスの待ち時間がた
まつていかないように1つの転送をブロツクに分
け、長い転送がその開始から終了まで或るポート
を阻害することのないようにするノンアトミツク
転送作動を提供することである。
本発明の更に別の目的は、読み取り及び書き込
みを開始するノードがその両作動に対して優先順
位を決めるようにすることである。
本発明の更に別の目的は、転送を開始するノー
ドが行先ノードのメモリアドレス構造を詳細に知
る必要性をなくすように、行先ノードのバツフア
を一般的にアドレスすることである。
本発明の更に別の目的は、ホストコンピユータ
が介在する所要回数即ちホストコンピユータに割
り込みする所要回数を最少限にする(即ち、実質
的に減少する)ような転送装置及び方法を提供す
ることである。
発明の概要 本発明の前記及び他の目的並びに効果は、受信
(即ち、行先)ポートの特定呼称のメモリ位置へ
向けて送信を開始するポートがランダムアクセス
を行なえるようにする高速データ転送方法及び装
置によつて達成される。送信ノード及びポートは
受信ノード及びポートの実際のメモリ構造(仮想
メモリであるが実メモリであるか)を知る必要が
ない。
全ての伝送は、送信ノードのメモリバツフアと
受信ノードのメモリバツフアとの間で行なわれ
る。これらのバツフアは各ノードの実メモリであ
り、ポートのデータリンク内で通信バスとノード
の他の要素との間をインターフエイスする通信バ
ツフアと混合されることはない。
各々のメモリバツフアには呼称がつけられ、こ
れらの呼称は所定の一定長さのものである。メモ
リバツフアの呼称を実際のメモリスペースに対し
てマツピングすることは、その場合場合によつて
特定に行なわれる。転送の前に、他のノードのバ
ツフアの呼称、オフセツト及び長さが決定され、
高レベルのプロトコルを介して交換される。本発
明のメツセージパケツトは、バツフアに対して、
呼称、長さ(バイト)及びオフセツト(即ちバツ
フアのスタートアドレスに対する位置)のみを参
照する。オフセツトのマツピングもその場合場合
によつて異なる。
第1ノードから第2ノードへデータを書き込む
ために、第1ノードは適当な数のいわゆる
SNTDATパケツトを通信バスに送り出し、その
各々は、データの1部分を含んでいると共に、第
2ノードの行先(即ち、受信)バツフアの呼称及
び受信バツフアのオフセツトが表示されている。
パケツトのグループに対して独特のトランザクシ
ヨン識別子も送られるが、これはメツセージ確認
プロセスに用いられる。
メツセージの最後のパケツトは、送信ポートに
よつて追加された独特のフラグによつて識別され
る。受信ポートでこのフラグが受信されると、受
信ポートはこれ自体にコマンドを発して、その受
信を確認するメツセージを送信ポートへ送り返す
ようにそれ自体に命令する。この確認メツセージ
はトランザクシヨン識別子を備えている。この確
認は、特定のパケツトシーケンスがバスを経て首
尾よく送られたことを示すだけでなく、これが受
信ノードのホストコンピユータに届いた時に(通
信バツフアに丁度届くのに対し)完全な状態であ
つたことも示し、更に、この確認は丁度送られた
メツセージに関係していると誤つてとられた別の
メツセージに対するものではないことも示す。
蛇足ながら簡単に述べるが、ノード、ポート及
びバツフアをそれらの機能に従つて説明するため
の用語の使い方に注意されたい。ノード又はポー
トはメツセージの送出を開始し、トランザクシヨ
ンを実行し、確認信号の受信を終了するか、又は
メツセージの受信を開始し、次いで元のメツセー
ジが到来したポートへ確認信号を送出(即ち送
信)する。この2つの役割はしばしば用語に若干
の混同を招く。このような混同を軽減するため
に、同じノード又はポートを、“送信器”、“開始
器”“送出器”等々、或いはこれと反対に“受信
器”“応答器”等々というような色々な状態で呼
ぶことにする。バツフアは、通常、ここでは情報
を供給しているか受信しているかに基づいて、単
に“ソース”又は“行先”と呼ぶことにする。
第2のノードからデータを読み取るために、第
1のポートは、ソースバツフア及び行先バツフア
の呼称及びオフセツト並びに転送の長さを保持す
る特殊要求パケツト(DATREQ)を第2のノー
ドに送出する。このDATREQパケツトにより受
信(即ち、第2)ポートはその内部で書き込みコ
マンドWRITEを発生し、そして要求された情報
を、SNTDATパケツトと同様のフオーマツトを
した戻りデータ(RETDAT)パケツトと共に、
送出(即ち、第1)ポートに書き込む。データは
第2の(即ち応答もしくは受信)ポートによつて
必要な数のパケツトに含まれて戻される。転送の
最後のパケツトは、送信の最終パケツトであるこ
とを意味する特殊なフラグでマーク付けされる。
これは送信器に対し、転送が首尾よく完了したこ
とを確認するものである。
ホストコンピユータへの割り込みの数を最少限
にするため、送信ポートからの基本的なコマンド
に応答して受信ポートにおいて自動的にコマンド
を形成することができ、これは確認メツセージを
形成したり或いは読み取り作動を実行したりする
場合も同様である。従つて、局部的なポートのコ
マンドはホストコンピユータの介在なしに遠隔ポ
ートにおいて実行される。
メツセージ(コマンド、レスポンス及びデー
タ)はパケツトとして転送されるが、大きなデー
タクロツクはそのサイズが単1パケツトに制限さ
れない。従つて、大きなデータブロツクは多数の
パケツトに分けられこれらが個々に転送される。
この場合、送信ノードはそれ自体を転送の状態に
関係付ける必要があるが、受信ノードの状態は
“最終パケツト”フラグによつて制御される。
全ての作動は、開始ポートにおいて処理が完了
した際に確認がとられる。
以下で詳細に述べるように、通信はポート対ポ
ートの仮想回路を介して行なわれる。読み取り又
は書き込み転送中にエラーが生じた場合には、エ
ラーが検出されたポートにおいて仮想回路が閉じ
るようにされる。これにより転送の完了が阻止さ
れるが、エラーが検出されたポートのみがこれを
直ちに知る。他の関連ポートにこれを知らせそし
て回路の作動を再開するためには、高レベルプロ
トコルでの交換を用いなければならない。
(仮想回路は、これが使用できる時に“開き″
そして使用できない時に“閉じる”とされている
ことに注意されたい。この言葉の選択は当業技術
で受け容れられているが、適確なものではない。
というのは、この用語は発明者の創作ではない
が、“開”回路が遮断されたものでありそして
“閉”回路が有効経路であるという電気回路の用
語との混同を招くからである。) 1つの転送に多数のデータパケツトが必要とさ
れる場合には、これらのパケツトを連続的に送出
する必要がなく、同じ対の制御器間に他のパケツ
トが散在するようにされてもよい。然し乍ら、こ
れらはオフセツトが大きくなる順に送られねばな
らない。
データパケツトの長さは個々に変えられる。最
後のパケツト以外の全ての転送パケツトはサイズ
の一致したものでなければならず、そして最後の
パケツトは他の部分を保持しなければならず、そ
のサイズは手前のパケツトに等しいか又はそれ以
下でなければならない。
本発明は、特許請求の範囲で特に指摘する。本
発明の上記及び他の目的並びに効果は、添付図面
を参照した以下の説明より理解されよう。
解説のための実施例の説明 第1図は、本発明が有用に用いられるネツトワ
ーク10の一例を示している。この場合は3つの
ノード12,14及び16がバス18によつて接
続されている。ノード12はインテリジエント入
出力(I/O)ノードであり、一方ノード14及
び16は汎用コンピユータである。各ノードは、
プロセツサ(22A,22B又は22C)と、メ
モリ(24A,24B又は24C)と、バスイン
ターフエイス即ちポート(26A,26B又は2
6C)とを備えている。I/Oノード12のメモ
リ24Aは、I/Oシステムバツフアメモリ28
と、大量記憶装置29との2つの部分で形成され
るがここでの説明においては、大量記憶装置には
触れない。プロセツサ22Aは大量記憶装置29
の制御器を含む。これに対し、メモリ24B及び
24Cは1次メモリユニツトであり、これは周辺
装置ではなく、個別の制御器を必要としない。
メモリ24A,24B及び24Cは、ここに述
べるように情報交換を行なうメモリバツフアを備
えている。例えば、メモリ24Bはメモリバツフ
ア位置25A及び25Bを有するように示されて
おり、一方メモリ24Cはメモリバツフア25C
及び25Dを有するように示されている。本発明
の最も高度な考え方においては、例えば第1ノー
ド24Bのメモリバツフア25Aから第2ノード
24Cのメモリバツフア25Cへパケツト転送が
行なわれ、これがこれらメモリパツフア間の破線
で示されている。
ノード(即ち、プロセツサ及びメモリ)のホス
トコンピユータシステムは、例えば、米国、マサ
チユーセツツ州、メイナードのデジタルエクイツ
プメントコーポレーシヨンの型式VAX11/780又
は他のVAXコンピユータである。ホストコンピ
ユータ(又は例えばそのメモリ)の特定の特性に
ついて説明する場合には、その説明の基礎として
そのコンピユータが使用されるものとする。この
ようなコンピユータについての適当な背景情報
は、デジタルエクイツプメントコーポレーシヨン
により出版された“VAXアーキテクチヤハンド
ブツク”に掲載されており、これについて説明す
る(例えば、VAXメモリマツピングの説明)。
各ポートは、独特なアドレス番号によつて識別
される。これは例えば8ビツトの識別子である。
ポート間の全ての通信はパケツトに関して行な
われる。各パケツトは、特殊なスタート文字と、
パケツトの見出しに保持されたバイトカウントと
によつて枠付けされる。32ビツトのCRC(即ち、
繰り返し冗長度チエツク)文字が計算され、そし
て伝送エラーの検出のためにパケツトの終りに追
加される。パケツトの長さは、例えば、見出しフ
イールド及び後書きフイールドを除くと、約10な
いし約4100バイトの整数バイト数である。各バイ
トは例えばマンチエスタエンコード法を用いて直
列ビツトとして伝送される。
バス18を経て転送される情報パケツトは第2
図に示されたフオーマツトを有し、第2図におい
ては、最初に伝送されるバイトが最も上にありそ
して最後に伝送されるバイトが最も下にある。各
パケツトは3つの部分に分割される。第1の部分
(即ち、見出し)37は一連のビツト同期及び文
字同期バイトより成る。第2の部分はパケツトの
情報セクシヨン38である。パケツトの第3の最
後の部分39はCRC文字及び一連の後書きバイ
トを含んでいる。第1及び第3のパケツト部分3
7及び39はリンク36によつて送られる。第2
の情報パケツト部分38はパケツトバツフア34
によつて送られる。
パケツト部分38は、パケツトの型式の指示及
びパケツト長さフイールドの幾つかの上位ビツト
40Aで始まり、これは次のバイト40Bへと続
く。その後、行先ノード呼称の真の値及びその補
数値40C及び40Dが送られ、これに次いでソ
ースコードの呼称40Eが送られる。パケツトの
実際の本体(即ちデータ、コマンド、レスポン
ス、等)はパケツトの部分40Fにおいて最後に
送られる。
確認パケツト(以下参照)については、パケツ
ト長さ及びパケツト本体の不要部分が取り除かれ
る以外は、同じフオーマツトである。
3つの主な型式の通信機構がこの相互接続によ
つて維持される。“データグラムサービス
(Datagram service)”と称する第1の通信機構
は最も簡単なものであり、単1データブロツクを
最高の効率で(損失が無くはないが)供給する。
いわゆる“メツセージサービス(Message
service)”と称する第2の通信機構は、“仮想回
路”を用いて、同様のサイズのデータブロツクを
より確実に転送する。“ブロツクデータ転送サー
ビス(Block Data transfer service)”と称する
第3の機構も、仮想回路を経て、長いデータブロ
ツクを転送する。
仮想回路は公知であり、1981年、Prentice
Hall、Andrew S.Tananbaum著のコンピユータ
ネツトワーク(Computer Networks)の如き文
献に説明されている。各々の仮想回路は、送信ポ
ート及び受信ポートにおける1組の状態変数で構
成される。仮想回路は、パケツトが損失なく、重
複なく、逐次に、そしてエラーなく供給されるこ
とを確保する。“損失なく”という語は、パケツ
トのその行先への供給が保証されることを意味す
る。“重複なく”という語は、パケツトがいつた
ん首尾よく送られた後に再びそのパケツトを受け
取らないことを意味する。“逐次”供給とは、デ
ータが既に送られた順序と同じ順序で送られるこ
とを確保する。“エラーなく”供給するとは、デ
ータが質低下されないことを意味する。
仮想回路で制御されるメツセージサービス供給
は、逐次であり、重複がなく、そしてエラーがな
いが、損失なし特性は使用されない。
“ブロツクデータ転送サービス”は、大きなバ
ツフアデータブロツクを或るメモリから別のメモ
リへ直接転送する(DMA)のに用いられる。こ
れは、このような大きなブロツクを多数のサブブ
ロツクに分けそして(ノンアトミカルに)これら
を個々のパケツトで転送することによつて行なわ
れる。ブロツクデータサービスはメツセージサー
ビスと同じ仮想回路を用い、それ故、逐次、エラ
ーなし及び損失なし特性が保証される。
パケツトの確認は直ちに行なわれ、即ち受信器
が送信器に確認を送り返すために各パケツトの送
出直後にバス時間が確保される。確認の形式は送
信の結果に基づくものである。パケツトにエラー
が検出された場合には、確認信号が送られず、送
信器はタイマの時間経過後に問題を検知する。パ
ケツトが正しく受け取られバツフアされた(少な
くともインターフエイスに)場合には、背定確認
(特殊な“ACK”パケツトの形式の)が開始ポー
トに送られる。パケツトは正しく受け取られたが
これをインターフエイスにバツフアすることがで
きない場合には、否定確認パケツト(“NAK”)
が送り返される。レスポンスが肯定確認以外のも
のである場合には再転送が生じるが、このような
再転送は規定のアルゴリズムに従う。このアルゴ
リズムは、限界時間内に欠陥が検出された場合に
はおそらくハードウエア欠陥が生じたというよう
に設計される。
各々のバスインターフエイスは、第3図に示さ
れたような3つの機能部品より成る。これら3つ
の部品は、ポートプロセツサ32、パケツトバツ
フア34及びリンク36である。ポートプロセツ
サ32は、ホストのメモリバスを経てノードのホ
ストメモリ(例えば、メモリ24a,24b又は
24c)へインターフエイスされ、リンク36及
びパケツトバツフア34を制御する。ポートプロ
セツサ32は、データをマツプし、アドレスを変
換し、バツフアをロードし、パケツトを解釈し、
そしてホストとポートとの相互接続を制御すると
いう役割を果たす。パケツトバツフア34は、リ
ンク36とポートプロセツサ32との間の一時的
な記憶インターフエイスである。
バツフアが全パケツトをそつくり保持するに足
る大きさであることは重要ではない。例えば、バ
ツフアは実際には小さな先入れ先出し(FIFO)
スタツクであつてもよい。然し、全てのパケツト
をバツフアしない場合には、おそらくパケツト全
体に対しバスのビツト転送速度でデータを受け入
れることになろう。バツフアのオーバーフローに
よつてポートが多量のパケツトを失なう場合には
バスの実効バンド巾が相当に減少され、再度の試
みが必要となる。
リンク36はデータリンクプロトコルの大部分
を実行しそしてバス18とパケツトバツフア34
との間でデータを転送する役割を果たす。リンク
は、エンコード/デコード及びキヤリヤ検出のビ
ツトレベル作動を行なう前端部を備えている。リ
ンク36については、Robert Giggi、John
Buzynski及びRobert Stewart氏の“シリアルデ
ータコミユニケーシヨンリンク用のインターフエ
イス”と題する米国特許出願に詳細に述べられて
いる。
アーキテクチヤという点からみると、バスを介
してのコンピユータ間通信についての詳細な説明
には、3つの層の仕様が含まれている。“実チヤ
ンネル“と称する最も下の層については、伝送媒
体、ビツトエンコード/デコード、及びキヤリヤ
検出機能の説明が含まれている。“データリンク”
と称する中間の層には、データのパケツト化及び
バス制御(即ち、裁定及び確認)の機能が含まれ
る。“ポートプロセツサ層”と称する最も上の層
は、ポート対ポートの通信に対してプロトコルが
指定されるようなレベルであり、これは最もレベ
ルの高い通信機構を果たす。次に高い層へホスト
ポートをインターフエイスすることは、その場合
場合に応じて行なわれ、これは各々のノードにあ
るホストコンピユータシステムによつて異なるの
で、この仕様の範囲外である。
或る層内での作動変更が効果的に隔離されるよ
うに、各層の内部機能の仕様は、出来得る限り、
他の層には拘りないようにされる。然し乍ら、実
際には、ハードウエア/フアームウエア/ソフト
ウエアの兼ね合いではこのような隔離が指示され
ないことが認められる。或る層に用いられた情報
は、これが通る全ての下位置によつて無視され何
ら作用を受けないのが理想である。或る層によつ
て使用された情報は“剥離”されてから上位置へ
通される。これに対する例外はアドレス作動と枠
付け作動の場合である。ポートプロセツサ層での
枠付けはデータリンクの枠付けに当然含まれる。
アドレス情報はデータリンク層及びポートプロセ
ツサ層の両方によつて用いられる。
上記したように、メツセージサービスにおいて
は、ポート対ポートの独立した仮想回路を介して
エラーなしの逐次の供給作動が与えられる。仮想
回路の状態は、全ての作動ポートに対しポート毎
のベースで各々のポートに維持される。各回路の
状態は、回路が開(即ちオン)であるか閉(即ち
オフ)であるかを指示する1つのビツトと、メツ
セージパケツトの送信について1つそしてメツセ
ージパケツトの受信について1つの合計2個の単
1ビツトシーケンス番号とで構成される。或るポ
ートから別のポートへ首尾よくメツセージを送れ
るまでには、対応する送信及び受信シーケンス番
号が等しく且つ回路が開でなければならない。こ
れは高レベルプロトコルによつて行なわれる。い
かなる形式のエラーがあつても回路が閉になり、
従つて作動再開が必要となるので、メツセージ機
構は、“信頼”できる通信即ち高い確度で予想で
きる通信に対してのみ使用される。
ブロツクデータ転送機構は、或るノードのバツ
フアから別のノードのバツフアへデータブロツク
を転送するための信頼性の高い他パケツト転送作
動を与える。この機構は、メツセージに対して用
いられたものと同じポート対ポートの仮想回路を
用いて、重複のない逐次の転送を保証する。デー
タ転送は、いずれのポートについても両方向に行
なうことができ、即ち“読み取り”及び“書き込
み”の両方を行なうことができる。バツフアには
呼称が付されており、各バツフアの呼称は、高レ
ベルプロトコルによるそれまでの協定事項の下
に、他のノードへ送らねばならない。ブロツクデ
ータ転送中にエラーが生じると、仮想回路が閉
じ、ブロツクデータ通信もメツセージ通信も不能
にされる。
データリンク層は、実チヤンネルを横切つて単
1パケツトを確実にポートに供給する。これは、
当然、パケツトの特性だけであり、データリンク
層を越えてどんなパケツトが来るかについては言
及せず、これも仮想回路の特性には拘りない。デ
ータリンク層はデータブロツクのパケツト化及び
チヤンネルアクセス制御を果たす。パケツト化に
は、枠付け、アドレス作動及び完全性のチエツク
が含まれる。枠付けは、同期文字と称する特殊な
文字でパケツトの開始点にマーク付けを行なうこ
とによつて達成される。パケツトの終りはパケツ
ト長さ指示体によつて決定され、この長さ指示体
はパケツトに含まれるものであり、同期文字の直
後に続く。アドレス作動は、パケツト長さの後に
行先ポートアドレスをもたせることによつて行な
われる。アドレスはポート番号である。各ポート
は、これが接続された特定のバスに対して独特の
アドレスを1つ有している。信頼性を高くすると
共に単1部品故障源を除外するために、行先ポー
トアドレスに対応する第2の信号がその補数の形
態で送られる。行先ポートが確認信号を送り返せ
るようにするため、ソースポートアドレスも送ら
れる。
パケツトの完全性は、上記の32ビツトの繰り返
し冗長度チエツク(CRC)文字によつてチエツ
クされ、この文字はパケツトの内容から計算され
そして送信インターフエイスによつてパケツトに
追加される。パケツトの受信時には、受信したパ
ケツト本体に対して計算が繰り返され、その結果
が、そのパケツトと共に送られた値に対してチエ
ツクされる。比較によりCRC文字の一致が示さ
れた場合には、パケツトが実際上正しく受け取ら
れたという確率が高い。チヤンネルのアクセス及
び制御には、裁定、確認及び再送信(もし必要な
らば)が含まれる。好ましい裁定機構が“直列バ
ス用のデユアルカウント、ラウントロビン分配型
裁定技術(Dual−Count、Round−Robin
Distributed Arbitration Technique for Serial
Buses)”と題する米国特許出願に開示されてい
る。
本発明によれば、パケツトを受信するポートは
この受信を直ちに確認する。パケツト送信の終り
に、送信を行なおうとしている全てのポートは、
パケツトの行先ポートが確認パケツトを送り返す
最少限の時間中待期する必要がある。確認の性質
は送信結果に基づく。パケツトが首尾よく受信さ
れなかつた場合には(例えば、衝突や、バスエラ
ーや、受信器が使用中であることにより)、確認
信号が送信されず、開始ポートは確認信号受信イ
ンターバルに対して時間切れすることによりこれ
を検出する。パケツトが行先ポートに首尾よく受
信されてバツフアされた場合には、肯定確認
(ACK)パケツトが送り返される。パケツトは正
しく受信されたがインターフエイスがこれをバツ
フアできない場合には、否定確認(NAK)が送
り返される。
送信不良の場合には、送信ポートは、裁定及び
送信を行なうか或いは或る遅延時間待期した後に
裁定及び送信を行なうかを同じ確率で直ちに判断
する。遅延が行なわれた場合には、遅延時間の後
に同じ判断がなされる。これは再送信が行なわれ
るまで繰り返される。このランダム遅延(指数関
数的な配分)はデツドロツク状態を打ち破るため
に用いられる。これについては、William D.
Strecker、John E.Buzynski及びDavid
Thompson氏の“回線争奪裁定式直列バス用のデ
ユアルカウント、ラウンドロビン分配式裁定技術
(Dual−Count、Round−Robin Distributed
Arbitration Technique for Contention−
Arbitrated Serial Buses)”と題する米国特許出
願を参照されたい。
実チヤンネル層は2つのポートのデータリンク
層間のインターフエイスである。データパケツト
は調整されそしてライン駆動装置によつてバスに
送出され、その他端で、行先ポートに受信され
る。各パケツト(第2図参照)のデータ、アドレ
ス、CRC、見出し及び後書き成分は、パケツト
が実チヤンネルに通された時に、一緒に組立てら
れる。この層は、バスを経てデータを転送する際
に、媒体に対して特性のタスクを実行する。これ
には、データクロツク信号を発生し、データをク
ロツクでエンコードし、データをデコードし、ク
ロツクを分離し、媒体を駆動してこれを受け取
り、キヤリヤ検出論理信号を発生し、そしてデー
タ信号をポートからポートへ送ることが含まれ
る。この層は、ポート/ノード間に電気的な適合
性を与えると共に、データ転送に対して信頼性の
ある手段を果たす。好ましいキヤリヤ検出回路、
クロツク分離回路及びクロツク/分離回路が“直
列データ通信リンク用のインターフエイス
(Interface for Serial Data Communications
Link)”と題する米国特許出願に開示されてい
る。
パケツト本体の一般的なフオーマツトが第4図
に示されている。第4図に示されたように、パケ
ツト本体は、オペレーシヨンコード(OPC)を
含む第1バイト42と、特殊な雑コード修正子よ
り成るフラグを含む第2バイト44と、パケツト
型の特殊情報を含む一連のバイト46とで構成さ
れる。各々のパケツト本体と共にデータリンク層
とやり取りされるパラメータは、DST、SRC、
BODY LEN STATUSとして示される。DST
は、送信の場合はパケツトを受け取るポートの番
号(即ちstination)又は受信の場合にはそ
のポートの番号を指す。SRCは、パケツトを送
出する場合にはその開始ポートの番号(即ち、
ource)又は受信の時にはパケツトを送つたポ
ートの番号を指す。BODY LENはパケツト本体
の長さをバイト単位で表わす。これは形式によつ
て特定であるので、各形式のパケツトごとに値が
指定される。実際のパケツト長さ、バイト、は所
定の量だけBODY LENの値とは異なる。
STATUSは、受信パケツトと共に送られてこれ
らパケツトの送信後に戻されるパケツトの状態を
指す。
逐次性及び優先順位 ポート(ポート駆動装置によつて作動が開始さ
れるもの及び受信したパケツトによつて作動が開
始されるもの)の作動は多数の優先順位で行なわ
れる。これにより、性能が重要視されるトランザ
クシヨンの待ち時間が短縮される。もちろん、待
ち時間は主としてネツトワークの負荷の関数であ
るから、実時間応答を保証することはできない。
然し乍ら、この機構を用いて、所望のバンド帯を
非比例的に与えることができる。逐次性はパケツ
トごとのベースでポート対間に保持されねばなら
ない。優先順位の決定は各々のパケツトに対して
行なわれるが、実際には、実行手段のパイプライ
ン化によつて限定される。優先順位決定について
の唯一の保証は手前のオペレーシヨンをベースと
して果たされる。オペレーシヨンはサービスに対
して特定のものであるが、特に指示のない限り、
特定のパケツトを送出することより成る。
次のような1組の規定によりオペレーシヨンの
優先順位シーケンスが定められる。
第1の優先順位のオペレーシヨンが実行されて
いる間に、更に優先順位の高いオペレーシヨンが
同じポートで行なえるようになつた場合には、優
先順位の低いオペレーシヨンをパケツト間に閉じ
込めて優先順位の高いオペレーシヨンを完全に実
行しそして優先順位の低いオペレーシヨンを再開
するように最適な処置がとられる。この最適な処
置は4個のパケツトに限定され、即ち優先順位の
高いオペレーシヨンが行なえるようになつた後に
は、優先順位の低いオペレーシヨンの4個以下の
パケツトが送信される。
いかなる数の優先順位を用いることもできる。
4個の優先順位を設けるのが好ましいと分つた。
仮想回路 仮想回路は、一連のパケツトに対して質の高い
作用を果たすために用いられる機構である。前記
したように、仮想回路の制御の下でのパケツトの
供給は、損失がなく、エラーがなく、逐次であり
そして重複がないように保証される。この回路は
送信ポート及び受信ポートにおける1組の状態変
数で構成される。仮想回路はポートごとのベース
で維持される。即ち、各々のポート対は他の回路
に対する仮想回路状態を有している。それ故、各
ポートにおいては、状態値の配列が維持され、ポ
ート当たり1組が仮想回路によつて“接続”され
る。
ポートに指定される通信機構の多くは仮想回路
を用いている。実際には、使用中のいずれかの機
構によつて同じ回路が同時に共有される。回路の
保証は、特定のパケツトの形式に拘りなく(その
形式のものが回路を使用する限り)パケツトごと
のベースで果される。回路の状態は、各ポートの
3つのビツト、即ち回路状態(CST)、送信シー
ケンス番号(NS)及び受信シーケンス番号
(NR)より成る。回路状態(CST)ビツトは特
定の回路が初期化されたかどうかを表わしてい
る。その値はオープン(OPEN)(初期化され、
“オン”である)及びクローズド(CLOSED)
(初期化されず、“オフ”である)である。各状態
を表わすビツト値はその場合によるが、示唆され
た値はオープンが1でありそしてクローズドが0
である。
送信シーケンス番号(NS)は、送信さるべき
次のパケツトの番号(又は供給が試みられている
現在パケツトの値)である。受信シーケンス番号
は受信さるべき次のパケツトの番号である。送信
終了時に、パケツトを供給すべき時には、フラグ
フイールド44の規定ビツトに現在NS値がロー
ドされる。データリンクが送信成功状態を送り返
す時にはNS値がモジユロ2に増加される(即ち、
補数化される)。受信ポートにおいて、或る回路
に対してパケツトが受信される時には、フラグフ
イールドのNSビツトの値がNRの現在値に対し
てチエツクされる。これらが等しければ、そのパ
ケツトが受け容れられ、NRの補数がとられる。
さもなくば、そのパケツトが捨てられる。これは
重複パケツトを捨てる機構である。確認信号(デ
ータリンクレベルにある)がバスエラーによつて
失なわれた場合には、送信端によつてパケツトが
送信し直される。パケツトが実際に受信されたが
確認のみがなされなかつた場合には、NRの補数
がとられ、そのパケツトが受け入れられる。送信
し直されたものを受け取つた際には、NSがNR
に等しくなく、第2のパケツト(重複)が捨てら
れるが、データリンク層において確認される。
パケツトか回路に送られたか或いは回路に受け
入れられたかが回路の状態によつて決定される。
送信端において回路が閉じた場合には、仮想回路
パケツトがその回路に対して送られない。受信ポ
ートの状態が閉の場合には、その回路に対して入
つて来る仮想パケツトがポートレベルにおいて捨
てられる。仮想回路パケツトの送信に失敗した場
合には回路状態が閉にならねばならない。更に、
ポートはいつその回路を閉にしてもよい。一般に
逐次性のあるエラーはいかなる形式のものであつ
ても回路を閉状態にしなければならない。
データグラム 全てのポートは、両方向性の汎用データグラム
作動を果たす。ノードは所定の最小長さのデータ
グラムテキストを処理できねばならない。この例
においては、この最小値が58バイトである。例え
ば4089バイトのような或る所定の最大バイトまで
の大きな値を以前の協定に基づいてポート間で使
用してもよい。サイズ増加制限に対する以前の協
定は更に高レベルのプロトコルにゆだねられる。
データグラム本体のフオーマツトが第5図に示
されている。第5図に示されたように、データグ
ラム本体の第1バイト48は、データグラムを表
わすオペレーシヨンコード(OPC)を含んでい
る。第2のバイト50において、下位の7ビツト
はゼロでなければならず(MBZ)、最上位ビツト
52はデータパツキング(ブロツク当たり512又は
576バイト)の型式を表わすパツキングフオーマ
ツトフラグPFを含んでおり、これは幾つかの形
式のポートに対して有用である。残りのバイト5
4は、ポート層へ送られるデータグラムテキスト
を含むテキストフイールドより成る。従つて、デ
ータグラムについては、その本体の長さ(バイト
数)がテキストの長さ(バイト数)プラス2に等
しい。
メツセージ メツセージ機構は、仮想回路を用いて非常に高
い信頼性で単1パケツトを供給する。メツセージ
はその長さを変えることができ、構造上の長さは
0から或る上限値(例えば4089バイト)までであ
る。ポート間で交換できる最大サイズのメツセー
ジは以前の協定事項によつて高レベルプロトコル
において決定される。然し乍ら、メツセージを受
け取ることのできるポートは、例えば58バイトと
いう少なくとも上記の構造上の長さをもつメツセ
ージを受信できねばならない。
メツセージのパケツト本体のフオーマツト60
が第6図に示されている。このようなフオーマツ
トには、第1バイト62、第2バイト64及び複
数個のバイト66が含まれ、この後者は可変長さ
のメツセージテキストフイールドより成る。第1
バイト62は、パケツトがメツセージパケツトで
あることを表わすオペレーシヨンコード(OPC)
を含んでいる。第2バイト64は4つのフイール
ドに分けられる。その最下位ビツト68Aは0即ち
MBZでなければならない。次のビツト68Bは送
信シーケンス番号を含んでおり、これは回路の行
先ポートに対するNSの現在値を保持している。
次の5つのビツト、即ちフイールド68Cは0で
なければならない。最上位ビツト68Dは、或る型
式のポートによつて使用されるデータパツキング
の型式を表わすパツキングフオーマツト(PF)
フラグを含んでいる。
データ転送 本発明のデータ転送機構は、サイズが単1パケ
ツトに制限されないような大きなデータブロツク
の転送を果たす。もちろん、パケツトの個数につ
いては、バツフアサイズに基づいて許容できる或
る上限がある。データブロツクは多数のパケツト
に分けられ、これらのパケツトはデータリンク層
によつて個々に転送される。転送の状態は、デー
タ送信端に維持される。読み取り及び書き込みの
両作動が行なわれるが、その各々は開始ポートに
おいて作動が終了した際に確認される。
データ転送に含まれる全てのパケツトは、質の
高いサービスを果たすように仮想回路を経て送ら
れる。データ転送は所定の長さをもつ呼称付きバ
ツフアを参照する。バツフアの呼称を実際のメモ
リスペースへマツピングする操作は、その場合場
合に応じて特定に行なわれる。送信されたパケツ
トは、バツフアの呼称、長さ(バイト)及びオフ
セツト(各々32ビツト)のみを参照する。オフセ
ツトマツピングも場合場合に応じたものである。
オフセツトは、パケツトのデータをバツフアのど
こに入れたりどこから取り出したりするかを決定
する。バツフアの呼称値、オフセツト及び長さは
転送前に高レベルプロトコルによつて決定しなけ
ればならない。このようなプロトコルは本発明の
部分を構成するものではなく、それ故詳細に説明
しない。
データを書き込むためには、ポートは、適当な
オペレーシヨンコードを用いて転送パケツトを行
先ポートへ送信するだけである。転送の最後のパ
ケツトは、特殊フラグでマークが付けられてい
る。このようなパケツトを受け取つた際に、転送
が首尾よく終つた場合には、受信ポートが、この
状態を指示する特殊な確認パケツトを送り返す。
データを読み取るためには、ポートは、ソースバ
ツフア及び行先バツフアの呼称及びオフセツト並
びに転送長さを保持した特殊な要求パケツトを送
信する。受信ポートは、あたかもこれがその要求
を発しているポートにデータを書き込むかのよう
に応答する。この場合も、転送の最後のパケツト
は特殊なフラグでマーク付けされている。これは
転送が首尾よく完了したという確認を開始ユニツ
トに与える。
以下で更に述べるように、読み取り作動によつ
て発生される特殊要求パケツトは、データ書き込
み作動信号を開始ユニツトへ送り返すように受信
ポートに命令する指示を含んでいる。従つて、遠
隔ポートにある開始ユニツトによつて書き込み作
動が行なわれる。それ故、書き込み作動が行なえ
るようになると、実質上コストを追加せずに、読
み取り作動機能も得られる。更に、コマンドを遠
隔ポートへ送つて、この遠隔ポートのホストコン
ピユータの介在なしにこのコマンドを直接実行さ
せられるような一般化された機能もあり、これは
例えば診断に対して特に有用である。
読み取り又は書き込み転送を行なう際にエラー
が生じると、これを検出したポートにおいて仮想
回路が閉になる。この閉回路は転送の完了を阻止
する。エラーを検出したポートのみがこれを知
る。必要ならば、高レベルプロトコルを用いて、
他の関連ポートにエラーを知らせ、そして回路を
再び初期化しなければならない。
単1転送のデータパケツトは連続的に送信され
る必要はない。これらのパケツトは前記したよう
に別の転送のパケツトと共に散在してもよい。
バツフア記述子表 呼称付きのメモリバツフアは、バツフア記述子
表(BDT)のバツフア記述子によつて指定され
る。バツフアの呼称は32ビツト値であり(例え
ば)これは第7図に示すようなフオーマツトを有
している。第7図に示されたように、BDTへの
オクタワードとして下位の16ビツト(69)が用い
られる。上位の16ビツト(70)は“キー”として
働くフイールドである。このキーはバツフア記述
子の対応キーフイールドに一致しなければならな
い。このインターロツクキーの使用により、バツ
フアを不適切にアクセスするおそれが少なくされ
る。
バツフアを開状態にするため、ポート駆動装置
は適当なフイールドにバツフア記述子を入れ、そ
して有効(即ち“V”)ビツトをセツトする(以
下参照)。この点において、バツフア記述子及び
これに関連したバツフアマツピングPTE(即ち、
ページ・テーブル・エントリー)はインターフエ
イスによつて所有される。
バツフアを閉にするために、ポート駆動装置は
Vビツトをクリヤし、インターフエイスがそのバ
ツフアに対して内部に隠されたアドレスを変換し
ないように確保する。
バツフア記述子のフオーマツトが第8図に示さ
れている。最初の長いワード(即ち、4つの8ビ
ツトバイト)71Aは6個のフイールドに分けら
れる。下位の9ビツトより成る第1フイールド7
1Bは、PTEによつて定められたページのバイ
ト0に対するバツフアのスタートバイトを指示す
るバツフアオフセツト(BUF OFFSET)値を含
み、PTEのアドレスはバツフア記述子(以下参
照)のPT ADDRESS フイールドによつて与
えられる。次のフイールド71B、即ちビツト9
−11、はゼロでなければならない。第12ビツト
71Dは1ビツトのアクセスコントロール(AC)
フイールドである。次の2ビツトはアクセスモー
ド(AM)フイールド71Eをなし、これはアク
セス制御の場合に、ホストコンピユータのPTE
のPROTフイールドに対してチエツクさるべき
モードを指定する。ビツト15は1ビツトの有効
(即ち“V”)ビツトフイールド71Fである。こ
れがセツトされると、バツフアが開となり、その
他のフイールドは有効情報を含まねばならない。
長いワード71Aの他部分は前記したバツフア
KEYフイールド71Gである。
第2の長いワード71Hはバツフアの長さ
(BUF LEN)を含んでいる(単位はバイト)。
PT ADDRESSと称された第3の長いワード7
1Iは、バツフアをマツピングするPTEのベク
トルの底のシステム仮想アドレスを含んでいる。
第4の長いワード71Jはソフトウエアのためにと
つておかれ、ポートはこれを無視する。
仮想回路記述子表 インターフエイスは、シーケンスされた転送に
対し、ポート対に組合わされたホストメモリ間の
仮想回路を果たす。同じコマンド待ち行列(以下
参照)のコマンドに対し、逐次の通信が保証され
る。然し、或るコマンドが優先順位の高いコマン
ド待ち行列に挿入された後に別のコマンドが優先
順位の低いコマンド待ち行列に挿入された場合に
前者が先に実行される以外は、コマンド待ち行列
に対し逐次性は保証されない。
仮想回路の状態は仮想回路記述子表(VCDT)
に記憶される。このVCDTは、ネツトワークの
インターフエイス(そのノードに対する局部的な
インターフエイスを含む)当たり1つの仮想回路
記述子(VCD)を含む。第9図にフオーマツト
が示されたVCDは、5つの情報フイールド、即
ち回路状態(CST)、送信シーケンス番号
(NS)、受信シーケンス番号(NR)、データグラ
ムフリー待ち行列禁止(DQI)、及び経路状態
(PSTS)、より成る。後者の2つのフイールドは
仮想回路状態の1部ではなく、便宜上、VCDに
現われる。
回路状態フイールド71Kは回路が開(“1”)
であるか閉(“0”)であるかを指示する。PSTS
フイールド71Pはバス経路(単数又は複数)の
状態を指示する。例えば、ゼロの場合には、2路
系統の両経路が不良であり、1の場合には、第1
経路が良好であり、2の場合には他方の経路が良
好であり、3の場合には両経路が良好である。
回路に送られるべきパケツトは、送信ポート
VCDからのNS値を保持している。このパケツト
が確認された時には、送信ポートのNS値の補数
がとられる。パケツトを送信するコマンドが発せ
られない場合には、CSTビツトをクリヤする送
信ポートによつて回路が閉状態にされる。仮想回
路が閉状態であれば、同じ回路に送信を試みる次
のコマンドも発せられない。いつたんパケツトが
回路に送られると、確認信号が送り返されるまで
他のパケツトは回路に送られない。
回路に送られて来るパケツトは、送信ポート
VCDからのNS値を保持している。この値は、受
信ポートVCDのNR値と比較される。これらが等
しい場合には、そのパケツトが受け入れられNR
の補数がとられる。もし両者が等しくない場合に
は、おそらく確認信号が失なわれたことによる重
複パケツトとしてそのパケツトが捨てられる。
入つて来るパケツトに対して回路が閉状態であ
る場合には、そのパケツトが捨てられる。送信側
では、高レベルプロトコルによつてこれを検出し
なければならない。
相互接続システム全体のアーキテクチヤは次の
ような9つの構造素子を含む(第16図参照)。
(1)ここに説明しそして他の特許出願にも開示され
たポート26B;(2)ポートを制御するポート駆動
装置23、即ちホストコンピユータソフトウエ
ア;(3)コマンド待ち行列202、即ちポートに指
令を与えるためにポート駆動装置によつて使用さ
れる待ち行列;(4)レスポンス待ち行列204、即
ちポート駆動装置にレスポンスを与えるためにポ
ートによつて使用される待ち行列、(5)データグラ
ムフリー待ち行列206、即ちレスポンス待ち行
列に挿入されないコマンド待ち行列入力を入れる
場所として、及び受信パケツトからのレスポンス
に対する待ち行列入力のソースとしてポートによ
り使用される待ち行列;(6)メツセージフリー待ち
行列208、即ち、データグラムフリー待ち行列
と同様であるが、メツセージ型コマンド及びレス
ポンスに対してシーケンスされる待ち行列;(7)バ
ツフア記述子表(BDT)210、即ちバスパケ
ツトバツフアと仮想アドレススペースバツフアと
の間で直接データを転送するのに用いられる呼称
付きバツフア記述子の表;(8)ポート待ち行列ブロ
ツク212、即ち、ポート及びポート駆動装置に
よつて使用されるデータ構造体であつて、コマン
ド及びレスポンス待ち行列の見出しを含み、フリ
ー待ち行列の見出し、フリー待ち行列入力のサイ
ズ、仮想メモリマツピングデータ構造体のアドレ
ス及び長さを指示するもの;及び(9)制御/状態レ
ジスタ214。これらは第16図に示されてお
り、これについて以下に述べる。コマンド待ち行
列、レスポンス待ち行列、データグラムフリー待
ち行列、メツセージフリー待ち行列、及びバツフ
ア記述子表は、各々のホストシステムの仮想アド
レススペースにアドレスをもつメモリ内構造体で
ある。ポート待ち行列ブロツクは物理的にアドレ
スされるメモリ内構造体である。制御/状態レジ
スタはI/Oアドレススペース内にある。
コマンド待ち行列は、実行前にコマンドを保持
するメモリスタツクをなす。コマンドがコマンド
待ち行列の見出しに達すると、これがポートによ
つて取り出されて実行される。上位番号のコマン
ド待ち行列入力に対する入力は、規定により、下
位番号のコマンド待ち行列入力に対する入力より
優先順位が高い。優先順位の高い待ち行列が空で
ない間には、優先順位の低いコマンド待ち行列入
力に対するコマンドは実行が開始されない。優先
順位の低い入力に対するコマンドが実行されてい
る間に優先順位の高いコマンド待ち行列にコマン
ドが挿入された場合には、優先順位の低い入力に
対するコマンドは、(a)現在パケツト及びその他内
部にバツフアされたパケツト(全ての再試みを含
む)の伝送を完了するか、又は(b)更に別のパケツ
トを送信する必要がある場合は実行を保留する。
後者の場合には、優先順位の高い待ち行列入力に
対するコマンドが実行されてしまつた時にコマン
ドの実行を再開する。
ポートによりレスポンス待ち行列204を経て
ポート駆動装置に与えられるレスポンスは、(1)実
行されたコマンドの待ち行列入力か、又は(2)バス
を経てパケツトを受けたことにより生じる待ち行
列入力かのいずれかである。ポート駆動装置は空
のレスポンス待ち行列に入力を挿入する時は割り
込みを要求する。
データグラムフリー待ち行列206が空である
ことがポートに分つた場合には、このポートがパ
ケツトを捨てる。データグラムフリー待ち行列入
力は、シーケンスされないデータグラム型コマン
ド及びレスポンスに対するものである。
メツセージフリー待ち行列208については、
入力を取り出そうと試みる間に待ち行列が空であ
ることがポートに分つた場合に、ポートは割り込
みを要求する。
データの書き込み 或るポートから別のポートへデータを書き込む
作動を第10図についてに説明する。第10図に
示されたように、データを転送しようとする発信
ポート70は、先ずこのデータをそのメモリバツ
フアからインターフエイスのパケツトバツフア3
4へ読み込み、このバツフアはデータを適当なサ
イズのパケツトに分割する。ステツプ72を参照さ
れたい。これらのパケツトは送信データ
(SNTDAT)パケツトと称する特定型式のパケ
ツトとしてバス18を経て送られる。これらはパ
ケツト74Oないし74LPとして示されている。
パケツト74LPは最後の転送パケツトであり、
その意味を示す最終パケツトLPフラグと称する
特殊なフラグを有している。各々のパケツト74
iは、行先バツフアの呼称と、受信/応答ノード
80においてデータを書き込む場所を決定するオ
フセツトとを支持している。
パケツトを受け取るポート80においては、
LPビツトの組と共にSNTDATパケツトを受け
取ると、転送の終了が指示される。エラーが生じ
なかつた場合には、状態82、確認CNFパケツ
トがポートに送り返され、このポートはデータを
送出する。ステツプ84。CNFパケツトを受信す
ると、ステツプ86、開始ポートは、転送が首尾よ
く行なわれたことを知る。データを受信する際又
はCNFパケツトを送信する際の何らかの時期に
エラーが生じた場合には、仮想回路を閉状態にし
なければならず、転送の終了を阻止する。ステツ
プ88a、88b、88c及び88d。
CNFパケツトを送り返す作動は好ましくは、
その迅速な通信を確保するに充分な所定の優先順
位で行なわねばならない。
適当なSNTDATパケツトの本体のフオーマツ
トが第11図に示されている。第1バイト92
は、SNTDATパケツトを示すオペレーシヨンコ
ードを含む。第2バイト94の最下位ビツト96
はLPフラグを含む。このバイト94の第2ビツ
ト98はシーケンス番号フラグNSを含む。この
バイトの他のビツトは0でなければならない。全
体的に100で示された次の9つのバイトはトラ
ンザクシヨン識別子XCT IDを含む。
全体的に102と示された次の4つのバイト
は、受信バツフアの呼称REC NAMEを含んでい
る。これに続いて、全体的に104で示された4
つの他のビツトがあり、これは受信バツフアのオ
フセツトREC OFFSETを指定する。他のバイト
は、書き込まれつつあるデータを含むフイールド
106より成る。
適当なCNFパケツト110の本体のフオーマ
ツトが第12図に示されている。このフオーマツ
トはCNFパケツトを示す最初のバイトのオペレ
ーシヨンコード112で始まり、次いでフラグバ
イト114が続き、ここでは第2ビツト116以
外の全てのビツトが0でなければならない。ビツ
ト116は行先ポートに対するシーケンス番号フ
ラグNSを含む。次の9つのバイトはトランザク
シヨン識別子フイールド118より成り、これは
対応するSNTDATパケツトと同じ値を有しそし
てこのパケツトを形成したLPフラグの組を有し
ている。
データの読み取り 前記したように、データをその要求ユニツトへ
送り返すことを要求することにより遠隔ノード/
ポートからデータが読み取られる。データ読み取
り作動を第13図について説明する。発信ポート
120がデータ要求(DATREQ)パケツトを発
生することによつて作動が開始され、ステツプ
122このパケツトはバス18によつて応答ポート
130へ送られ、ここからデータが読み取られ
る。
DATREQパケツトは、転送データ及び転送長
さ(バイト数)を供給し受け入れるように、バツ
フアの呼称及びオフセツトを指定する。エラーが
検出された場合には、仮想回路が閉となる。ステ
ツプ124。さもなくは、要求されたデータは、ポ
ート130のメモリにこれが記憶されているとこ
ろのバツフアからそのポートのパケツトバツフア
へ読み込まれ、ステツプ126、次いでデータが
SNTDATパケツトとして送られるのと同様に、
戻りデータ(RETDAT)パケツト128Oない
し128LPとして送られる。最後のRETDAT
パケツト128LPは、セツトされつつあるLPフ
ラグによつてマーク付けされる。各々の
RETDATパケツトはこれが受け取られる時にバ
ツフアされ、ステツプ132、そしてLPフラグの受
信は転送の成功を確認する。ステツプ134。転送
中にエラーが検出されるか、ステツプ136、又は
受信中にエラーが検出されると、ステツプ138、
仮想回路が閉にされ、転送が中止される。
返送さるべき個々のパケツトのサイズは、最後
のパケツト以外、要求パケツトにおいて指定され
る。最大許容サイズは以前の協約により関連ポー
ト間で高レベルプロトコルを用いて決定しなけれ
ばならない。
データ返送作動の優先順位は、DATREQパケ
ツトの特定のオペレーシヨンコード値によつて指
定される。
DATREQパケツト140の本体のフオーマツ
トが第14図に示されている。第1バイト142
は通常そうであるように、オペレーシヨンコード
である。図示されたように、このオペレーシヨン
コードは要求の優先順位によつて異なる。第2バ
イト144は、通常そうであるように、FLAGS
バイトである。このバイトのビツト0,2及び3
は0でなければならない。第2ビツト146は
NSフラグを含む。最上位ビツト148は返送デ
ータ転送に対する基本的なパケツトサイズを示す
Pフラグを含み、ここでは、2つの基本的なパケ
ツトサイズを用いることができる。例えば、利用
者は512バイトフオーマツトと576バイトフ
オーマツトとの間で選択を行なうことができ、P
フラグが0である時は512バイトブロツクが指
示され、Pフラグが1である時は576バイトブ
ロツクが指示される。ビツト位置4〜6の3ビツ
トフイールド150にあるMフラグはパケツトサ
イズの倍数を指示し、パケツトデータ長さはPフ
ラグと係数(M+1)との積によつて決定された
基本的なサイズに等しい。
次の9個のバイト152はトランザクシヨン識
別子XCT IDを含む。この次には4つのバイト1
54が続き、これはXCT LENと示された転送
長さ(バイト数)を含む。この次には、別の4バ
イトフイールド156が続き、これは送信バツフ
アの呼称SND NANEを含む。
送信バツフアのオフセツトSND OFFSETは4
バイトフイールド158において通信される。こ
れに続いて、受信バツフアの呼称REC NAMEを
含む別の4バイトフイールド160がある。その
後、バツフアのオフセツトREC OFFSETを含む
4バイトの最終フイールド162が続く。
RETDATパケツト128の本体のフオーマツ
トが第15図に示されている。これはもちろん適
当なオペレーシヨンコードを含むバイト172で
開始する。その後、2つの能動ビツトのみを有す
るFLAGSバイト174が続く。最下位ビツト1
76はLPフラグを含む。これは転送の最後のパ
ケツトにおいてのみセツトされる。次のビツト1
78はシーケンス番号フラグNSを指示する。こ
のバイトの他のビツトは0でなければならない。
8バイトフイールド180はトランザクシヨン識
別子を含んでいる。これに続いて、受信バツフア
の呼称を定める4バイトフイールド182と、パ
ケツトに対するバツフアのオフセツトを指定する
別の4バイトフイールド184とがある。最終フ
イールド186は長さが可変であり、送り返され
るデータを含む。
ポート/ポート駆動装置相互接続のアーキテク
チヤ素子が第16に示されており、ホストコンピ
ユータ22B,24Bのポート例えば26B及び
これに関連したポート駆動装置23は、1つ以上
のコマンド待ち行列(そのうちの1つのみ、20
2が示されている)、レスポンス待ち行列204、
データグラム及びメツセージのフリー待ち行列
各々206及び208、バツフア記述子表21
0、ポート待ち行列ブロツク212及び制御状態
レジスタ214とを用いている。この図は、この
アーキテクチヤが遠隔位置でのコマンド実行をい
かに容易にするかを示す。受信メツセージパケツ
ト(例えば、パケツト209)は、これらが受信
された時にメツセージフリー待ち行列208の入
力にロードされる。ポート26Bのデコーダ21
6はオペレーシヨンコードを見て、パケツトをコ
マンド待ち行列202又はレスポンス待ち行列2
04へ送る。基本的に、REQDAT及び
SNTDAT(LP)パケツトはコマンド待ち行列に
送られ、他のパケツトはレスポンス待ち行列に送
られる。デコーダ216はもちろん適当にプログ
ラムされたポートプロセツサである。
各々の待ち行列入力は1対の“ポインタ”を含
み、その一方は手前の待ち行列入力のアドレスを
指しそして他方は次の待ち行列入力のアドレスを
指す。これらのアドレスは予め構成されたシーケ
ンスである必要はない。又、各待ち行列は所定の
サイズのものでなくてもよく、ポインタの使用に
より、待ち行列のサイズを変えることができる。
更に、各待ち行列は、インターロツク装置例えば
予め指定されたビツトを含むのが好ましく、その
値は待ち行列が使用中であることを表わす。
以上の説明は本発明の1つの特定の実施例に限
定されるものではなく、本発明は種々の基本構造
をもつデータ処理システムや、或いは種々の内部
回路又は設計を用いたシステムにおいても実施で
き、本発明の前記目的及び効果の全部又は幾つか
を達成できることが明らかであろう。それ故、特
許請求の範囲には、本発明の真の精神及び範囲内
に入るこれらの変更、修正及び種々の改良が全て
網羅されるものとする。
【図面の簡単な説明】
第1図は本発明が有用に用いられるネツトワー
クの一例を示すブロツク図、第2図はポート間を
通る情報パケツトのフオーマツトを示す概略図、
第3図は本発明によるインターフエイスの機能部
品の高レベルブロツク図、第4図は第3図のパケ
ツトの本体を示す概略図、第5図は本発明による
データグラム型パケツトの本体のフオーマツトを
示す概略図、第6図は本発明によるメツセージ型
パケツトの本体のフオーマツトを示す概略図、第
7図は本発明によるバツフアの呼称のフオーマツ
トを示す概略図、第8図は本発明によるバツフア
記述子の概略図、第9図は本発明による仮想回路
記述子表の仮想回路記述子のフオーマツトを示す
概略図、第10図は或るポートから別のポートへ
データを送る(即ち書き込む)プロセスを示すフ
ローチヤート、第11図は或るポートから別のポ
ートへデータを送る(即ち、書き込む)ためのパ
ケツトの本体のフオーマツトを示す概略図、第1
2図は確認パケツトの本体のフオーマツトを示す
概略図、第13図は別のポートからデータを返送
する(即ち、読み取る)プロセスを示すフローチ
ヤート、第14図は遠隔ポートからのデータを要
求する(即ち、返送もしくは読み取る)コマンド
本体のフオーマツトを示す概略図、第15図は返
送されつつあるデータに対するパケツト本体のフ
オーマツトを示す該略図、そして第16図は本発
明のポート対ポート駆動インターフエイスを示す
概略図であつて、離れたところで命令を実行する
ためにアーキテクチヤをいかに用いるかを示す図
である。 10……ネツトワーク、12,14,16……
ノード、18……バス、22A,22B,22C
……プロセツサ、24A,24B,24C……メ
モリ、26A,26B,26C……バスインター
フエイス即ちポート、28……バツフアメモリ、
29……大量記憶装置。

Claims (1)

  1. 【特許請求の範囲】 1 ソース・ノード14と宛先ノード16とを含
    むデジタルデータ処理装置において、ソース・ノ
    ード14と宛先ノード16とはそれぞれホスト、
    コンピユータを含んでおり、ソース・ノード14
    は更にバス18を介して前記の宛先ノード16へ
    転送する情報ブロツクを蓄積しているソース・バ
    ツフア25Aを含み、このソース・バツフア25
    Aはソース・バツフアネームにより特定され、前
    記の宛先ノードは情報ブロツクを受け取る宛先バ
    ツフア25Cを含みこの宛先バツフアは宛先バツ
    フアネームにより特定され、そして前記の宛先ノ
    ードは前記のソース・ノードへ宛先バツフアのネ
    ームを示す手段を含み、 A 前記のソース・ノード14は、 () 複数のフイールドを備えるパケツト3
    7,38,39をアセンブルするため前記の
    ソース・バツフアへ接続されており、(a)前記
    のソース・バツフアからの情報を含む情報フ
    イールドと、(b)宛先バツフアのための情報を
    含むものとして、もしくは前記の宛先ノード
    が実行するコマンドを含むものとしてパケツ
    トを識別するパケツト・タイプを含むパケツ
    トタイプフイールドと、(c)前記の宛先バツフ
    アのネームを含む宛先ネーム・フイールド1
    02とを含んでいるメツセージアセンブリ手
    段32,34,36と、 () 前記のメツセージ・アセンブリ手段へ接
    続され、そして前記のメツセージ・アセンブ
    リ手段にるパケツトの発生に応答して前記の
    バスを介してパケツトを転送するソースポー
    ト26Bと を備え、 B 前記の宛先ノード16は、 () 前記のバスへ接続されて前記のバスから
    パケツトをうけとる宛先ポート26Cと、 () 受け取つたパケツトを宛先バツフアへ選
    択的に書き込む手段と を含み、この手段は、 (a) 受け取つたパケツト内のパケツトタイフプイ
    ールドの内容を解読してパケツトが宛先バツフ
    アのための情報を含んでいるかどうかを決定す
    るパケツトタイプデコーダ216と、 (b) このパケツトタイプデコーダへ接続され、パ
    ケツトが宛先バツフアのための情報を含んでい
    るという決定をするとそれに応答し、そして更
    に宛先ネームフイールドの内容に応答して、そ
    の特定された宛先バツフアへパケツトの内容を
    送るコマンド手段と を含んでいることを特徴とするデジタルデータ処
    理装置。 2 メツセージアセンブリ手段は、ソースバツフ
    ア内の情報を転送する複数のパケツトを発生する
    手段を含み、このメツセージアセンブリ手段が発
    生した各パケツトは、パケツトがメツセージの最
    後のパケツトであるときセツトされるラストパケ
    ツトフラツグを含むラストパケツトフイールドを
    含み、そして宛先ポートは、ラストパケツトフラ
    ツグがセツトされたソースノードからのパケツト
    の受信に応答してソースノードへ転送のための確
    認パケツトを発生する手段202を含んでいる請
    求項1に記載のデジタルデータ処理装置。 3 メツセージアセンブリ手段が発生した各パケ
    ツトのオフセツト・フイールド104が情報フイ
    ールドの情報を受け取る宛先バツフア内のオフセ
    ツトを特定し、コマンド手段がオフセツトフイー
    ルドの内容に応答してオフセツトフイールドの内
    容が特定している宛先バツフアの部分へパケツト
    の情報フイールドの内容を移す請求項1に記載の
    デジタルデータ処理装置。
JP7919583A 1982-05-07 1983-05-06 コンピユ−タ間で直接メモリ対メモリの通信を行なう方法及び装置 Granted JPS5940744A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US37598482A 1982-05-07 1982-05-07
US375984 1982-05-07

Publications (2)

Publication Number Publication Date
JPS5940744A JPS5940744A (ja) 1984-03-06
JPH0320094B2 true JPH0320094B2 (ja) 1991-03-18

Family

ID=23483204

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7919583A Granted JPS5940744A (ja) 1982-05-07 1983-05-06 コンピユ−タ間で直接メモリ対メモリの通信を行なう方法及び装置

Country Status (6)

Country Link
EP (1) EP0094177B1 (ja)
JP (1) JPS5940744A (ja)
AU (1) AU568490B2 (ja)
CA (1) CA1189195A (ja)
DE (1) DE3380191D1 (ja)
FI (1) FI831513L (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CH667543A5 (en) * 1985-04-19 1988-10-14 Bbc Brown Boveri & Cie Data communication for processing network - using stored table in communication unit for each node defining data segment storage location
IN168469B (ja) * 1986-02-24 1991-04-06 Ibm
US5179665A (en) * 1987-06-24 1993-01-12 Westinghouse Electric Corp. Microprocessor information exchange with updating of messages by asynchronous processors using assigned and/or available buffers in dual port memory
EP0296862B1 (en) * 1987-06-24 1995-05-10 Westinghouse Electric Corporation Multiprocessor information exchange
DE68922521T2 (de) * 1988-03-28 1996-01-18 Ibm Sekundärprozessorinitialisierungssystem.
FR2662522B1 (fr) * 1990-05-28 1994-08-12 Copernique Dispositif informatique de transfert de donnees en mode rafale.
EP0459877A1 (fr) * 1990-05-28 1991-12-04 Copernique, Societe Anonyme Dispositif informatique de transfert de données en mode rafale
AU648348B2 (en) * 1990-09-28 1994-04-21 Fujitsu Limited Message control system in a data communication system
JP3251147B2 (ja) * 1995-04-14 2002-01-28 日本電気株式会社 プロセッサ間データ転送方法およびその装置
EP0996265B1 (en) * 1998-10-21 2006-04-19 Alcatel System and method to impose execution of a predefined command, between first and second terminals
JP2009301101A (ja) * 2008-06-10 2009-12-24 Nec Corp プロセッサ間通信システム、プロセッサ、プロセッサ間通信方法、および、通信方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5631253A (en) * 1979-08-23 1981-03-30 Hitachi Ltd Transmission control system

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5833972B2 (ja) * 1979-11-12 1983-07-23 富士通株式会社 計算機システム間通信方式
US4560985B1 (en) * 1982-05-07 1994-04-12 Digital Equipment Corp Dual-count, round-robin ditributed arbitration technique for serial buses

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5631253A (en) * 1979-08-23 1981-03-30 Hitachi Ltd Transmission control system

Also Published As

Publication number Publication date
JPS5940744A (ja) 1984-03-06
CA1189195A (en) 1985-06-18
DE3380191D1 (en) 1989-08-17
FI831513A0 (fi) 1983-05-03
AU568490B2 (en) 1988-01-07
FI831513L (fi) 1983-11-08
AU1350083A (en) 1984-11-08
EP0094177A3 (en) 1985-01-09
EP0094177B1 (en) 1989-07-12
EP0094177A2 (en) 1983-11-16

Similar Documents

Publication Publication Date Title
US4777595A (en) Apparatus for transferring blocks of information from one node to a second node in a computer network
US6493343B1 (en) System and method for implementing multi-pathing data transfers in a system area network
JP4012545B2 (ja) リモート・ダイレクト・メモリ・アクセス対応ネットワーク・インタフェース・コントローラのスイッチオーバーとスイッチバックのサポート
US6775693B1 (en) Network DMA method
US10430374B2 (en) Selective acknowledgement of RDMA packets
US6857030B2 (en) Methods, system and article of manufacture for pre-fetching descriptors
US6545981B1 (en) System and method for implementing error detection and recovery in a system area network
US7013419B2 (en) Reliable message transmission with packet-level resend
US7818362B2 (en) Split socket send queue apparatus and method with efficient queue flow control, retransmission and sack support mechanisms
WO2020236294A1 (en) System and method for facilitating efficient management of non-idempotent operations in a network interface controller (nic)
US6747949B1 (en) Register based remote data flow control
JP4242835B2 (ja) 高データレートのステートフルプロトコル処理
US6871237B2 (en) System for controlling data transfer protocol with a host bus interface
EP0687985A2 (en) Multi-system interconnect facility
US20020010805A1 (en) System and method for batching data between link and transport layers in a protocol stack
US7133943B2 (en) Method and apparatus for implementing receive queue for packet-based communications
JP2013511884A (ja) 動的接続された移送サービス
US20050132089A1 (en) Directly connected low latency network and interface
US20070002827A1 (en) Automated serial protocol target port transport layer retry mechanism
US20220158772A1 (en) Selective retransmission of packets
US6856619B1 (en) Computer network controller
JPH0320094B2 (ja)
JP2002305535A (ja) データを転送する信頼できるプロトコルを提供する方法および装置
US11269557B2 (en) System and method for ensuring command order in a storage controller
WO2021177997A1 (en) System and method for ensuring command order in a storage controller