JPH10164140A - ビジーノードと欠陥ノードを有するリング・ネットワーク・システムで強くシーケンシャルに順序付けられたパケット・フローを維持するシステム - Google Patents

ビジーノードと欠陥ノードを有するリング・ネットワーク・システムで強くシーケンシャルに順序付けられたパケット・フローを維持するシステム

Info

Publication number
JPH10164140A
JPH10164140A JP9211428A JP21142897A JPH10164140A JP H10164140 A JPH10164140 A JP H10164140A JP 9211428 A JP9211428 A JP 9211428A JP 21142897 A JP21142897 A JP 21142897A JP H10164140 A JPH10164140 A JP H10164140A
Authority
JP
Japan
Prior art keywords
node
packet
busy
packets
subsystem
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP9211428A
Other languages
English (en)
Inventor
Loo William C Van
ウイリアム・シー・ヴァン・ルー
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems 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 Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JPH10164140A publication Critical patent/JPH10164140A/ja
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40052High-speed IEEE 1394 serial bus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1806Go-back-N protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40052High-speed IEEE 1394 serial bus
    • H04L12/40091Bus bridging
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/42Loop networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/42Loop networks
    • H04L12/427Loop networks with decentralised control
    • H04L12/433Loop networks with decentralised control with asynchronous transmission, e.g. token ring, register insertion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1809Selective-repeat protocols

Abstract

(57)【要約】 【課題】 強力に順序付けられた非アイデンポテント・
コマンドのサポートを備えたリング・ネットワーク内で
信頼できるパケット配布を維持するためのシステムを提
供する。 【解決手段】 ネットワーク上の各消費側ノードは、最
後の既知の良好パケットとその順序番号の記録を含む、
そのノードを通過したパケットの順序とそれを通過した
時点でのそれぞれのパケットの状態の記録を保持してい
る。作成側ノードは、パケットに関する肯定応答内のエ
ラー条件を検出すると、最後の既知の良好パケットから
始まるすべてのパケットを再送信する。各消費側ノード
は、すでに処理された可能性のあるパケットを含む、再
送信したパケットを処理または拒否することができる
が、それについてはすべてのパケットに関するパケット
および状態記録によって認識する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、直列相互接続を使
用するプロセッサ・ベースのネットワーク内でパケット
送信をサポートするためのシステムに関する。具体的に
は、本発明のシステムは、このようなネットワーク内、
特にリングレット・トポロジ内のエラーに応答してパケ
ットの動的順序付けをサポートし、過負荷またはノード
障害のいずれかにより応答できないかまたは長時間の
間、使用中肯定応答によって応答するノードと、ネット
ワーク上のノードにおける使用中条件の両方に対応す
る。
【0002】
【従来の技術】コンピュータ・システム内の直列相互接
続は、いくつかの様々なタイプのサービス割込みの影響
を受ける可能性がある。たとえば、ネットワーク上のノ
ードがパケット内のCRC(巡回冗長検査)エラーを検
出した場合、そのパケットは受け入れることができな
い。そのパケットを送信したノードは、一般に間接的に
(たとえば、タイムアウトによるか、アイドル・パケッ
トの使用による)エラーを認識し、結局、そのパケット
を再送信しなければならない。
【0003】特に、ネットワークが緩和メモリ順序付け
(RMO)、強力順次順序付け(SSO)、その他また
は中間厳密度の順序付けなどの順序付け方式を実施する
場合には、パケットの再送信が単純なことではない可能
性がある。このような順序付け方式を備えたパケット交
換ネットワークでは、CRCエラーを発生するパケット
の前後のパケットは、作成側ノードからターゲット・ノ
ードに再送信する必要がある可能性がある。このような
パケットが非アイデンポテント・コマンド、すなわち、
ターゲット・ノードで実行すると、そのノードでコマン
ドを再実行したときに第1の実行とは異なる結果が得ら
れるようにそのノードの状態を変更するコマンドを含む
場合、特定の問題が発生する。この場合、コマンドをそ
のノードに再送信し、もう一度実行した場合、不要また
は予測できない結果が発生する可能性がある。
【0004】
【発明が解決しようとする課題】したがって、アイデン
ポテント・コマンドのサポートを維持しながら、ターゲ
ット・ノードにパケットを再送信することによってパケ
ットのエラーに対応可能なシステムが必要である。特
に、様々なレベルの順序付け方式もサポートするような
システムが必要である。
【0005】挙動不良のノード、すなわち、故障してい
るかまたは応答するのに不当に長い時間を要するノード
に対応できるようなシステムに対する特定の必要性が存
在する。単一受信側の挙動が不適切なトポロジでは、こ
のようなノードは、新しいパケットが導入される前に同
じ使用中パケットの反復送信を強制的に完了させること
により、新しいパケットの順方向の進行を妨げる恐れが
ある。したがって、このような潜在的な落とし穴を処理
するシステムが必要である。
【0006】
【課題を解決するための手段】すべての既知の良好パケ
ットの各受信ノードで状態を維持することにより、使用
中ackを処理すると同時に結果的にCRCエラーを発
生しているパケットの再送信を行うシステムを提示す
る。パケットを再送信する必要がある場合、ローカル・
ノードは、再送信されたパケットをすでに処理したかど
うかを把握し、どのパケットが最後の既知の良好パケッ
トであるかを把握し、このため、非アイデンポテント・
コマンドを含む、すでに実行されたコマンドの再処理を
回避することができる。使用中ループはエラー・ループ
が実行されている間に効率よく中断することができ、パ
ケットの再順序付けが行われると、使用中ループを完了
することができる。さらに、システムは、作成側ノード
に応答を返送しないような挙動不良、たとえば、非応答
ノードに対応する。このような挙動不良ノードは、待ち
行列化した再試行方針によって効率よく中立化すること
ができる。この場合、何らかの所定のしきい値に達する
まで再試行パケット待ち行列に使用中パケットが蓄積さ
れ、その後、作成側ノードがそのノードへのパケットを
再試行しようというその試みを終了することにより、継
続的に使用中のノードが効率よくシステムから除去され
る。このようにして、システムは他の未解決パケットの
処理を続行することができる。
【0007】したがって、本出願は、リングレット・ネ
ットワーク上で同時に発生する3通りの問題、すなわ
ち、エラー条件、1つまたは複数のノードでの使用中条
件、ノードの故障または過負荷の解決を達成する複雑な
システムに関する。適当なエラー再試行メカニズムにつ
いては、本明細書と、van Loo他により1996
年7月1日に出願され、System for Dyn
amic Ordering Support in
a Ringlet Serial Intercon
nectという名称の本出願人の関連特許出願の両方に
記載されている。このようなエラー再試行メカニズムに
基づくと同時に使用中再試行動作を処理できるシステム
については、van Loo他により1996年7月1
日に出願され、System for Preserv
ing Sequential Ordering a
nd Supporting Idempotent
Commands in a Ring Networ
k with Busy Nodesという名称の本出
願人の関連特許出願に記載されている。これらの特許出
願はいずれも参照により本明細書に組み込まれる。
【0008】
【発明の実施の形態】図1は、それぞれが送受信機能を
備えた4つのノードA〜Dを含む標準的なリングレット
1を示している。要求および応答は作成側ノード、たと
えば、ノードAによって送出され、肯定応答(たとえ
ば、ack_doneおよびack_busy)は消費
側ノード、たとえば、ノードCによって送信される。ノ
ードCは従来通り他のリングレット2、3、4と通信す
ることもできる。本発明は、特に、リングレット1など
のリング・ネットワーク内のエラーの影響を受けるパケ
ットの解決策に関する。これは予測不能なパケットの配
達および受入れを発生する可能性がある。というのは、
作成側はそれが何を送信したかを把握しているが、肯定
応答が受信されていないパケットが実際に意図されたノ
ードによって処理されたかどうかを把握していない(間
接手段によるものを除く)からである。
【0009】順序付けが必要な場合、課題はさらに大き
くなる。図2は、ノードAによって特定の順序A、B、
C・・・で送信されるコマンドと、リングレットおよび
送信時の変動のために、B、A、A、A・・・などの他
の順序での受信とを示している。システムの挙動が適切
であれば、送信パケットを再順序付けし、最初に送信さ
れた順序でその送信パケットを適切に実行できるはずで
ある。
【0010】図3は強力順次順序付け(SSO)を示し
ている。すなわち、いずれのパケットも送信されたとき
の順序から外れて受信されることはなく、2回現れる可
能性はあるが、順不同で現れることはない。図4はSS
Oと非アイデンポテント・コマンドの両方の使用を示し
ている。順序が保持されるだけでなく、非アイデンポテ
ントコマンドの特性により、従来システム内のコマンド
はいずれも宛先ノードによって2回実行することはでき
ない。ただし、図4において、{producerI
d, pLabel}はsend_pktおよび肯定応
答に共通し、また、{producerId, pLa
bel}は各ノードから見えるもので、不在エラーであ
ることに留意されたい。
【0011】図5は上記の課題に対する本出願人の解決
策に適したデータ構造を示している。パケットはpro
ducerIDとpLabelというフィールドを含む
が、詳細については以下に述べる。この2つのフィール
ドは、消費側から作成側に返送される肯定応答パケット
内に含まれる。
【0012】本発明は、図6に示すようなパターンで既
知の良好な(すでに受け入れられた/実行済みの)パケ
ットとそれ以外のパケットの両方を再送信する。図6A
は本発明のシステムの基本的な手法を高レベルで要約し
たものであり、有効肯定応答(「実行済み」の場合もあ
れば「使用中」の場合もある)が作成側ノードで受信さ
れるまで、必要に応じて既知の良好SSOパケットを繰
り返し再送信する。次に作成側ノードは、適切に処理さ
れたもの、すなわち、それに関してack_doneが
受信されたものであっても、既知の良好パケットの後
で、他のすべてのパケットを再送信する。(図7を参
照。)ackは再送信パケットから戻ってくるので、作
成側ノードは、すべてが有効ack、すなわち、「実行
済み」または「使用済み」であることを確認するために
検査する。すべてが有効ackであるわけではない場
合、すべてのackが実際に有効になるまで再送信プロ
セスを繰り返す。これにより、すべてのエラー・パケッ
トが適切に処理されたことが確認され、システムは後続
パケットについて処理を続行することができる。この手
法では、SSOを保持し、非アイデンポテント・コマン
ドをサポートするために、複雑な課題が提示され、図9
〜39に示す論理によって解決策が提示される。その動
作については図40以降の状態図に示す。
【0013】本発明は、消費側ノードがパケット・アク
ションに関する状態(受入れおよび拒否状態)とack
に関する状態(実行済みおよび使用中)を継続的に維持
するという事実によって使用可能になる。これは、各ノ
ードが検出するすべてのパケットおよびackに当ては
まる。したがって、各消費側ノードは、各パケットがそ
のノードを通過したときにリングレットを移動するすべ
てのパケットの処分を認識している。この情報は再送信
プロセスでは重要なものである。しかも、各消費側ノー
ドは、通過したパケットの順序と、最後の既知の良好パ
ケット(それに関してack_doneまたはack_
busyが出されたもの)の順序番号の記録を保持して
いる。これは、CRCエラーなどが検出されたときに必
要であればシステムがパックアップ可能な点を示すもの
である。これについては、図40以降の例に関する以下
の説明でより明確に示すものとする。
【0014】図8は、本発明に適したハードウェア環境
を示すブロック図であり、作成側ノード内で可能なパケ
ットの流れを示すためにも役に立つものである。これ
は、図40以降の流れ図/状態図および図9〜39の論
理図を考慮すると、詳細に理解することができる。
【0015】図40には、システムの基本ブロックが示
されている。SSO順序付け拡張機能がない場合、この
システムは、以下に示す削除および変更を伴うすべての
ブロックを含むものと思われる。 −retry_pktレジスタ7−190を削除する −retry_pkt待ち行列7−30を削除する −7−100内のor_last_ctカウンタを削除
し、no_last_ctを保持する −4:1マルチプレクサを3:1マルチプレクサ7−4
0に変更する −or_rcvd_ctカウンタ7−250を削除する その他のブロックは、SSOサポートを伴わない送信ノ
ードの動作にとって依然として基本的なものである。
【0016】図8と図40の詳細ブロック図の両方を参
照し、システムの基本動作を以下に示す。要求および応
答FIFO待ち行列によりトランザクション層からリン
ク層にパケットを挿入する。図示の通り、send_p
ktレジスタ、CRCジェネレータと8/20エンコー
ダ、シリアライザによるリングレットへの(可能な)送
信のためにマルチプレクサ(MUX)によりパケットを
選択する。
【0017】このノードからの要求および応答送信パケ
ットに関する肯定応答ならびに他のノードから発信され
たがこのノードに向けられている着信要求および応答パ
ケットをデシリアライザで受信する。8/10デコード
およびCRC検査の後、着信受信および肯定応答パケッ
トをrec_pktレジスタに登録する。rec_pk
tレジスタの前にアイドル記号を取り除く。CRCエラ
ーまたは8/10エンコード・エラーにより、着信受信
および肯定応答パケットが無効になる。CRCエラーを
伴う肯定応答はrec_pktレジスタを越えて目に見
えるものではないので、他のノードから受信した送信パ
ケットは、トランザクション層にとって見えないように
処理する。(受信バッファの説明を参照。)ackデコ
ード論理は、それがそのシリアライザにより送信した送
信パケットに関してこのノードにアドレス指定されたa
ckを検出するものである。
【0018】ackは、ack待ち行列内に待ち行列化
し、ack_logicブロック内でsend_pkt
待ち行列内の送信待ち行列と突き合わせる。SSOサポ
ートがない場合、すべてのパケットはnon_orde
rレジスタを通って流れるはずであり、SSOの場合
は、すべてのSSOパケットがretry_pktレジ
スタを通って流れ、非SSOパケットはnon_ord
erレジスタにより継続する。
【0019】再送信論理は、基本的にack状況を検査
し、パケットが完了したか(ack_done)または
受信側が使用中であるために再試行が必要であるか(a
ck_busy)を判定する。ack_doneパケッ
トは、「コマンド・レベルへのack」ブロックにより
トランザクション層に状況を返す。MUX論理および
4:1(または、本発明の指定の実施形態に応じて3:
1)MUXにより再試行するために、非SSO使用中再
試行パケットを選択することができる。SSO使用中再
試行パケットはretry_pktFIFO待ち行列に
待ち行列化される。このようなパケットは、SSO使用
中再試行論理によってMUX論理およびMUXを介して
この待ち行列から選択される。これについては、システ
ム全体に分散され、図10〜25の送信論理用の流れ図
に記載する。
【0020】図10〜26の送信論理は、基本的に以下
のように動作する。その動作の詳細は、図40以降の状
態図/流れ図に関連して流れの例に関して以下により明
確になるだろう。以下の説明の各論理ユニット(たとえ
ば、ack_logic)は図40内のこのような要素
を指し示す。
【0021】図10は、エラー条件の場合に肯定応答と
照らし合わせてパケットをテストし、エラーがない場合
に使用中再試行を開始するためのack論理である。
【0022】図11は、エラーがない場合に通常パケッ
ト処理のためにack論理出力を設定するためのack
論理である。
【0023】図12は、non_orderレジスタに
ロードすべき非SSOパケット用のack論理内の処理
である。
【0024】図13は、CRC_init_errエラ
ー再試行ループを処理するack論理であり、それがこ
のパケット用の有効(実行済みまたは使用中)肯定応答
を受信するまで最後の「既知の良好」SSOパケットを
再送信するものである。
【0025】図14は、CRC_errエラー再試行ル
ープを処理するack論理であり、リングレットにより
「既知の良好」パケット以降のすべてのパケットを再送
信するものである。
【0026】図15は、CRC_ack_chkエラー
再試行ループを処理するack論理であり、CRC_e
rrループで再試行されたすべてのパケットがエラーな
しで完了したかまたはエラーが発生しているかをテスト
するものである。エラーが検出された場合、CRC_i
nit_errからループを再試行する(図31)。エ
ラーが一切検出されない場合、CRC_err_end
を設定する。
【0027】図16は、CRC_ack_chkエラー
再試行ループを処理するack論理であり、CRC_e
rrループ中に送信した各パケットの肯定応答について
有効肯定応答(ack_busyまたはack_don
e)があるかどうかをテストし(図32)、エラーが検
出された場合にエラー・ビットをを設定する。
【0028】図17は、パケット状態情報のフォーマッ
トを処理し、CRC_init_err、CRC_er
r、CRC_ack_chkループの実行中にMUXを
設定する再送信論理である。
【0029】図18は、CRC_err_end制御を
完了するための条件を検出し、retry_pkt待ち
行列が空であるかどうかをテストすることにより、使用
中再試行ループの完了を検出するためにbusy_lo
op_cmplt制御を設定するための再送信論理であ
る。
【0030】図19は、実行済み(ack_done)
または使用中再試行を必要とするもの(ack_bus
y)としてSSOパケットを検出するための再送信論理
である。使用中再試行パケットはretry_pkt待
ち行列に待ち行列化し、実行済みパケットはトランザク
ション層に通知する。
【0031】図20は、実行済み(ack_done)
または使用中再試行を必要とするもの(ack_bus
y)として非SSOパケットを検出するための再送信論
理である。使用中再試行パケットは再試行のためにMU
Xにより送信し、実行済みパケットはトランザクション
層に通知する。
【0032】図21は、リングレット内で未解決のSS
Oパケットが一切ない場合に使用中ループを設定し、再
試行送信ブロックによりretry_pkt待ち行列か
らパケットを選択するようにMUXを設定することによ
り使用中再試行ループを制御するための再試行送信論理
である。
【0033】図22は、使用中再試行ループを開始する
か、応答待ち行列から応答パケットを選択するか、また
は要求待ち行列から要求パケットを選択するための条件
を検出するためのMUX論理である。
【0034】図23は、要求待ち行列から要求を選択す
るようにMUXを制御するためのMUX論理である。
【0035】図24は、応答待ち行列から応答を選択す
るようにMUXを制御するためのMUX論理である。
【0036】図25は、制御をフォーマットし、シリア
ライザへのパケットの送信をゲートするためのCRC生
成論理である。
【0037】図26は、より大比較(.GT.と示す)
とより小比較(.LT.と示す)を実行するための専用
モジュロ64比較論理である。
【0038】図29〜39の受信ノード用の流れ図の要
約は以下に示す。また、図27の受信ノード論理も参照
する。
【0039】この開示の拡張を理解するために、まず基
礎となる論理を理解しなければならない。図27では、
SSO順序付け拡張機能がない場合の受信ノードの基本
ブロックは、以下に示す削除および変更を伴うすべての
ブロックを含むものと思われる。 −seqTable26−30を削除する −seq register26−40を削除する −seq update26−120を削除する その他のブロックは、SSOサポートを伴わない受信ノ
ードの動作にとって依然として基本的なものである。
【0040】受信ノードと送信ノードは、共通の名前が
付いた共通の構成要素をいくつか備えている。このよう
な構成要素は以下の通りである。 送信ノード 受信ノード デシリアライザ 7.240 26.80 8/10デコード/CRC検査 7.230 26.70 rec_pktレジスタ 7.220 26.60 ackデコード論理 7.140 26.140 ack待ち行列 7.130 26.150
【0041】非SSOパケットの流れ 上記に示唆したように、本システムは、非SSO環境ま
たは完全SSO環境のいずれかで使用することができ
る。
【0042】基本的な(非SSO)パケットの流れの説
明ならびにSSOサポートのために追加された図面の概
要については以下の通りである。
【0043】基本的なパケットの流れ、非SSOパケッ
ト SSO順序付け論理の役割は、非SSOパケットに関す
る基本的なパケットの流れとの比較から理解することが
できる。図10から始まり、ブロック9.10、9.2
0、9.30では、CRC_init_err、CRC
_err、CRC_ack_chkからなるCRCエラ
ー処理制御順序が活動状態である場合に通常のパケット
処理を禁止する。すべてのパケットが非SSOである場
合、パケットを非SSOとして識別するブロック9.5
0でパケット制御をブロック11.10に送る。
【0044】図12は、基本的な非SSOエラー検出論
理を示しているが、肯定応答がパケットと一致するかど
うかを確認するためにsend_pkt待ち行列のヘッ
ド(図8および図40を参照)をack待ち行列のヘッ
ドと比較するものである。(比較はブロック11.10
〜11.40で行われる。)パケットにエラーがある場
合、ブロック11.50は状態「err_ret」を設
定し、これをエラー・パケットとして通知する。エラー
がない場合、ブロック11.60は「使用中」状態と
「実行済み」状態を(ack待ち行列9.130のヘッ
ドで)パケットの肯定応答から転送する。どちらの場合
もパケットはnon_order_regに書き込まれ
る。
【0045】ブロック9.10には、非順序付けパケッ
ト用の再送信論理が記載されているが、ここではnon
_order_regの有効性がテストされる。有効で
ある場合、パケットはブロック9.20で「実行済み」
状況があるかどうかがテストされ、9.50で「実行済
み」状況がトランザクション層に送信される。パケット
が「使用中」であるかまたは「err_ret」状態が
設定されている場合、ブロック9.60でresend
$のために4:1_muxが設定され、パケットはse
nd_pktレジスタに転送される。最後に、このブロ
ックでは非SSOパケット用の順序カウントが増分さ
れ、この再試行パケットに割り当てられる。
【0046】図25では、send_pktレジスタが
ブロック24.10で有効性がテストされ、次にブロッ
ク24.30でCRC生成に転送される。pLabel
フィールドは、これが非SSOパケットであるという事
実と、同じブロック24.30内の割当て済み「se
q」フィールドによって定義される。また、このパケッ
トは、もう一度send_pkt待ち行列内に待ち行列
化され、肯定応答パケットを待つ。
【0047】流れ図はパケットの到着から始まるが、パ
ケットは何らかの優先順位プロセスによって選択された
ものであると想定する。非SSOシステムでは、この優
先順位は本発明のシステムのものと同様になる可能性が
あるが、「使用中」および「retry_pkt待ち行
列」への参照はすべて除去されるはずである。非SSO
システム内のそれぞれの待ち行列からの要求または応答
パケットの選択は図23および図24に示すものと同様
になるはずである。
【0048】SSOサポートのための論理追加 図10〜16の流れ図に示す残りのack論理は、SS
O順序付けブロックを処理するための拡張機能を示して
いる。
【0049】ただし、ブロック12.20、13.2
0、14.20、15.20は、send_pkt待ち
行列内の非SSO送信コマンドも識別し(図40を参
照)、非SSOパケット処理ブロック11.10へ分岐
することに留意されたい。しかし、このようなブロック
は、SSOと非SSOの両方のコマンドの混合プログラ
ミング環境をサポートする機能を備えたシステム内の非
SSOパケットの処理を包含する。すなわち、これらの
ブロックは、基本的な非SSO専用環境の一部ではない
のである。
【0050】同様に、再送信論理ブロック内の非SSO
パケットの処理についても、図10の単一ページに示
す。図17〜20に示す再送信論理はSSOサポートの
ために追加されたものである。再試行処理論理である図
21も、SSO処理論理に固有のものである。
【0051】使用中ループ(21.90に設定されてい
る)を開始するための図22に示すMUX論理は、SS
Oサポートを備えた実施態様に固有のものである。他の
論理は要求または応答パケットを選択するものであり、
SSOと非SSOのどちらの実施態様の場合にも同様の
ものになるはずである。図23および図24に示す要求
または応答パケットを開始するためのMUX論理は、S
SOと非SSOのどちらの実施態様の場合にも同様のも
のになるはずである。
【0052】最後に、図25のCRC生成論理は、2
4.40で「no_xmit」状態ビットをテストし、
パケットを逐次化論理に転送すべきかどうかを判定す
る。このようなゲートはSSOサポートのために固有の
ものである。モジュロ64比較をサポートする論理も、
SSOサポートのために明確に必要なものである。
【0053】図27のブロック図の概要 図27は、図8および図40のように、受信ノード(送
信ノードは図7)の潜在的なブロック図であり、SSO
メカニズムの概念を実施する方法を示すために使用する
ものである。これは、このメカニズムの概念を実施する
受信(送信)ノードの数多くの可能な実例の1つにすぎ
ないことが分かっている。
【0054】図27内のパケットの流れは基本的に以下
の通りである。−パケットは、リングレット26.90
からデシリアライザ26.80を通って受信ノードに入
る。CRC検査と8/10デコード論理26.70は非
パケット記号を取り除き、パケットを32ビットのre
c_pktレジスタ26.60にロードする。 −パケットの先頭が検出され、このレジスタ内で初期パ
ケットデコードが行われる。受信ノードが使用するパケ
ットは以下のものを含む。 −このノードにアドレス指定された送信パケット(要求
および応答) −他のノードにアドレス指定された送信パケット(要求
および応答) −他のノードにアドレス指定された肯定応答パケット このノードにアドレス指定された送信パケットには、r
equest_in待ち行列(要求パケット)またはr
esponse_in待ち行列(応答パケット)にそれ
ぞれ待ち行列化するためにマークが付けられる。(注:
待ち行列の使用)このノードへの肯定応答はデコードさ
れ、ack待ち行列26.150に書き込まれる。 −受信ノード・パケットはtest_pktノードに書
き込まれる。パケットの先頭がtest_pktレジス
タ内にある場合、producerIdを含む32ビッ
トがrec_pktレジスタ内に入ってる。順序フィー
ルドおよび受入れフィールドを順序付けするなど、この
フィールドは受信ノード状態用のsecTableアレ
イにインデックスを付ける。 −次のサイクルでは、seqTable[produc
erId]の内容がseqレジスタ26.40に読み込
まれ、pLabelフィールドとproducerId
フィールドはtest_pktレジスタ26.50内に
入る。これに対応するフィールドは、受信ノード内のす
べてのパケット(送信パケットおよび肯定応答)につい
て以下のブロックで比較される。ただし、パケット処理
のタイミングは以下のようにパケットのタイプによって
決まる。 −acpt論理26.130は、基本的に、このノード
にアドレス指定された要求および応答パケットが受け入
れられるかどうかを判定する。seqTableおよび
CRCエラー検査の両方が検討される。 −seq更新論理26.120は、パケットの末尾でs
eqTableアレイ状態が更新されるかどうかと、そ
の更新方法を判定する。 −ack gen論理26.110は、ack実行済
み、使用中、またはエラーのうち、どの種類(CRCエ
ラー検出時に禁止されるもの)の肯定応答が生成される
かを判定する。 −パケットの残りの部分が処理され(送信パケットの場
合)、送信パケット・データはrequest_in
(26.10)またはresponse_in(26.
20)待ち行列内に待ち行列化される。ただし、待ち行
列空間が使用可能である場合に限る。パケットが終了す
ると、CRC検査は送信ノードのための動作を完了す
る。
【0055】図28Aおよび図28Bは、受信パケット
と肯定応答のタイミング図をそれぞれ示している。受信
ノード論理については、図29以降に示し、以下に説明
する。
【0056】図29では、rec_pkt_reg2
6.60内のヘッダ・フィールドから送信パケット(ま
たは「コマンド」)または肯定応答パケットの先頭を検
出する(図27を参照)。送信パケットの場合、このノ
ードにアドレス指定された要求または応答のいずれかに
より、request_in待ち行列26.10とre
sponse_in待ち行列26.20という対応する
入力待ち行列内に待ち行列空間が存在するかどうかをテ
ストし、それに応じて制御ビットが設定される。
【0057】図30では、seqTableアレイ2
6.30をseq_reg26.40に読み込む。re
quest_in待ち行列26.10またはrespo
nse_in待ち行列26.20内のパケットの妥当性
検査を禁止するための条件の有無をテストする。
【0058】図31では、待ち行列空間が使用可能であ
ることを制御ビットが示す場合、このノードにアドレス
指定されたパケットの残りの部分を対応する待ち行列、
すなわち、request_in26.10またはre
sponse_in26.20内に仮に待ち行列化す
る。制御フィールドを増分するかまたは制御ビットをリ
セットするための条件が与えられる。
【0059】図32では、このノードにアドレス指定さ
れた送信パケットの末尾で、CRC検査に応じて、送信
ノードへ肯定応答パケットを生成し、request_
in待ち行列26.10またはresponse_in
待ち行列26.20内のパケットを妥当性検査する。
【0060】図33では、CRCエラー検査に応じて、
図32での肯定応答生成に使用するために仮の肯定応答
条件(実行済み、使用中、またはエラー)を生成する。
【0061】図34では、有効順序を備えたSSOパケ
ット用の仮の肯定応答生成(実行済み、使用中、または
エラー)を続行する。
【0062】図35では、パケットの終了時にseqT
ableアレイ用の更新条件を仮に設定するかまたは更
新を禁止するための条件の有無をテストする。更新は、
有効CRC検査によって決まる。
【0063】図36では、パケットが有効順序で順序付
けされたSSOである場合に仮の順序更新生成を続行す
る。
【0064】図37では、送信パケットの終了時に、2
6.70内に有効CRCがあるかどうかをテストする。
CRCが有効であり、seqTable書込みが禁止さ
れていない場合、seqTableを更新する。
【0065】図38では、他のノードにアドレス指定さ
れた肯定応答パケット用のseqTable更新フィー
ルドを生成する。
【0066】図39では、パケットが有効順序で順序付
けされたSSOである場合に他のノードにアドレス指定
された肯定応答パケット用のseqTable更新フィ
ールドの生成を続行する。
【0067】図40以降の例は、本発明のシステムの動
作例を実証するものであり、これらの図に示す状態およ
びアクションは上記の図の論理に適合するものである。
図40以降は、レジスタおよび待ち行列間のパケットの
転送ごとの作成側ノードの状態をステップごとに示し、
これらの図を検査することにより、本システムが使用中
再試行ループおよび挙動不良のノードに関連してエラー
が発生した場合のSSO非アイデンポテントコマンドに
対応していることが分かる。
【0068】各図の論理図/流れ図を見ると、様々な状
態が示されている。これらについては以下に定義する。
さらに、本明細書に付属の付録Aには、現行設計に関連
して使用する用語集および変数が記載されている。 状態 解釈 i in_proc b 使用中(変形:ack_busy、使用中ループ再試行) r CRCループ内の再試行 b1 使用中再試行ループ内の第1のパケット r1 CRC再試行ループ内の第1のパケット x ackまたは使用中のいずれか d ack_done BRC 使用中再送信ループ CRC CRCエラー再送信ループ SRL send_pkt再循環ループ
【0069】1394.2規格案を考慮した本発明の好
ましい実施形態の説明 IEEE P1394.2に基づくリングレット・トポ
ロジで完全パイプライン化されたパケット開始をサポー
トするためのメカニズム案の概要および要約を以下に示
す。この場合、パイプライン化パケットは、強力順次順
序付け(SSO)と非アイデンポテント・コマンドのサ
ポートを必要とするアドレス空間からの送信パケットお
よび応答パケットを含むことができる。このメカニズム
は、トポロジ内のすべての通信リンクが順にSSO順序
付けを維持することを確認することによって、任意のP
1394.2スイッチ・トポロジにより拡張することが
できる。
【0070】このメカニズム案は、非使用中非エラー・
パケット送信のために完全パイプライン化動作モードで
SSOおよび非アイデンポテントコマンドをサポート
し、効率のよいハードウェア再試行メカニズムによりC
RCエラーと受信側使用中条件の両方を許容する。これ
は、再試行した使用中パケットと新しいパケットとを混
合するために様々な再送信方針をサポートする。CRC
エラー・パケットはプログラム可能な限界まで再試行す
ることができるので、これは「訂正可能エラー」の類の
エラー処理方針を使用可能にする。この機能により、C
RCエラー・パケットの正常な再試行動作を報告するノ
ード用の「予防保守」機能が可能になる。
【0071】また、ブリッジ内でSSOの非アイデンポ
テント機能を使用すると、より大きい(>64B)パケ
ット・フォーマットを有する他のプロトコルとIEEE
P1394.2との間のブリッジの設計が大幅に単純
化されることも留意されたい。たとえば、IEEE13
94−1995ノードからの2KBブロック分の書込み
コマンドは、その終了時に受信側ノードから単一応答パ
ケットを予期するが、一連の移動コマンド(応答なし)
と終了書込みとして実施することができ、IEEE13
94−1995パケットの動作がブリッジ上で保持され
ることを保証する。
【0072】SSO順序付けのコストは、リングレット
上でサポートされるノード当たり2バイト分の状態と、
状態マシン、非SSOパケット用の個別のレジスタ、M
UX、6ビットの比較器である。流れの説明は、より複
雑なアレイ構造ではなく、単純なFIFO待ち行列およ
びレジスタに基づいて示す。リングレット用の最大構成
は63ノードなので、これにより、最大128BまでS
SO(ならびにポインタと状態マシン)をサポートする
ために必要な状態が制限される。サポートする構成がよ
り小さい場合、その構成の「プロファイル」は、サポー
トするリングレット・ノード・カウントを切り詰めるこ
とにより、コストをさらに削減することができる。
【0073】IEEE P1394.2の簡単な概要 IEEE P1394.2すなわちシリアル・エクスプ
レスは、IEEE1394−1995すなわちシリアル
・バスをギガビット+伝送レベルまで拡張するという提
案である。基本的に、このプロトコルは、IEEE13
94−1995の基本コマンド・セットをサポートしな
がら、16Bのパケットおよび64Bパケットにより待
ち時間の低さとスループットの高さを強調するために転
送プロトコルを再設計するものである。
【0074】IEEE P1394.2は、リングレッ
ト・トポロジを備えた挿入バッファ・アーキテクチャに
基づくものである。これが意味するのは、各ノードが2
本の単一方向ワイヤを含み、一方は着信パケットおよび
アイドル(同期およびフロー制御用)向けであり、もう
一方は発信パケットおよびアイドル向けであるというこ
とである。バイパス・バッファは、着信パケットおよび
アイドルを発信ワイヤ上にそらし、おそらく遅延が発生
する。単一の新しい送信または応答パケット(以下に定
義する)は、そのバイパス・バッファが一杯ではない場
合にノードによってリングレット内に挿入することがで
きる。これは「挿入バッファ」アーキテクチャである。
ノードが新しいパケットを挿入している間にバイパス・
バッファに入るパケットは、新しいパケットが送信され
るまで遅延される。パケット・サイズが小さいので(<
=64B)、このアーキテクチャが可能になるとともに
効率のよいものになっている。
【0075】パケット・フォーマットは、パケット経路
指定用の16ビットのフィールドと、48ビットの拡張
アドレスとを含む。各ノードは、別々の送信パスと受信
パスとを備えた単一ケーブルによる全二重動作をサポー
トする。複数のノード(最高63個まで)が相互接続さ
れている場合、初期設定ソフトウェアにより冗長ループ
が切断され、これらのノードが単一リングレットとして
構成される。複数のリングレット(接続部はわずか2カ
所)は、16Kノードからなる最大トポロジまでスイッ
チによって相互接続することができる。
【0076】IEEE P1394.2プロトコルは、
2通りのアドレス・モード(有向およびマルチキャス
ト)と2通りのサービス・タイプ(非同期および等時
性)に基づいて、4通りの動作モードをサポートする。
SSO順序付けは、非同期有向サービスに関して特定の
利害があるものであり、(読取り、書込み、移動、ロッ
ク)諸動作を含むが、このメカニズム案はこのサービス
・モードのみに限定されない。
【0077】SSO順序付け:発行 SSO順序付けサポートがない場合、任意のノードから
任意の宛先へのパケットには相互に関する制約が一切な
い。CRCエラーと受信側使用中の両方に対処する場
合、これは、2つのパケットが送信されたときとは異な
る順序で宛先ノードに到着する可能性があることを意味
する。
【0078】この不確実性は、ネットワーク化環境を代
表するものであり、様々なソフトウェアベースのプロト
コルを使用して処理される。たとえば、従来のデータ・
パケットを伴う割込み生成書込み要求を逐次化するため
にIEEE1394−1995で使用可能な信頼できる
メカニズムの1つは、たとえば2KBの大きいパケット
用の書込みコマンド(宛先からの応答を要するもの)を
送信し、次にそのデータに関する応答が戻ってきた後で
割込みを生成するために書込みコマンドを送信すること
である。
【0079】このようなメカニズムは、かなり小さい
(<=64B)パケットを備えたドメイン、すなわち、
低待ち時間転送を強調するドメインに拡張されると、複
雑かつ効率の悪いものになる可能性がある。順序付けと
データ転送完了をともに確立するためのソフトウェア・
オーバヘッドにより、使用可能な計算サイクルが減少
し、ユーザ・プロセスが、すなわちユーザ・プロセス待
ち時間が直接増加する。
【0080】P1394.2によるSSO拡張 SSO拡張案は、リングレットの動作に関する上記の基
本的な前提事項によって決まる。
【0081】(非同期、有向)モードの各コマンドは、
送信パケットを生成する発信側(送信側)ノードと、そ
のコマンドに応じて応答パケットを生成する(可能性の
ある)最終宛先ノードとによって実行される。「送信」
パケットは、送信側のローカル・リングレット上の単一
受信側ノードによって除去され、そのローカル受信側ノ
ードから送信ノードに戻る「肯定応答」パケットに置き
換えられる。ローカル受信側ノードは、送信パケット用
の最終宛先である場合もあれば、おそらくスイッチによ
りその宛先にパケットを転送するエージェントである場
合もある。コマンドのタイプに応じて、最終宛先ノード
は「応答」パケットを送信することができ、その「応
答」パケットはそのローカル・リングレット上の何らか
のノードによって捕捉され、「応答」発生側に戻る「肯
定応答」パケットによって置き換えられる。
【0082】以下の説明では、そのノードが送信パケッ
トを開始する送信側ノードであるか、応答パケットを開
始する受信側ノードであるか、送信パケットまたは応答
パケットを転送するブリッジまたはスイッチ・ノードで
あるかにかかわらず、パケットを開始したノードを示す
ために「作成側ノード」という用語を使用する場合もあ
る。
【0083】送信パケットと受信パケット両方のターゲ
ットは、グローバルな16ビットの「targetI
d」フィールドによって識別される。エラーがない場
合、リングレット上の何らかの固有のノード、おそら
く、ブリッジまたはスイッチ・ノードは、target
Idアドレスを認識し、そのパケットを取り除く。「s
ourceId」フィールドは、送信ノードのグローバ
ル・アドレスを明確に識別するものである。
【0084】その他のフィールドは、ローカル・リング
レット肯定応答を返すためにパケット内に含まれ、SS
O順序付け機能強化案にとって基本的なものである。こ
のようなものとしては、**そのローカル・リングレッ
ト上で**このパケットを発信したnodeIdを識別
する(6ビットの)「producerId」フィール
ドと、このパケットを明確に識別するために「prod
ucerId」ノードによって割り当てられる(8ビッ
トの)「pLabel」フィールドがある。produ
cerIdフィールドとpLabelフィールドはどち
らも、ローカル・リングレット内に限定された意味を有
し、たとえば、パケットがスイッチにより転送される場
合に再割当てが行われる。同様に、「producer
Id」フィールドと「pLabel」フィールドは、宛
先ノードが応答パケットを送信するときにその宛先ノー
ドによる再割当ても行われる。
【0085】以下に記述するその他のフィールドとして
は、「タイプ」フィールド(コマンドおよび肯定応答の
タイプを区別する)、「コード」フィールド(コマンド
識別)、sourceIdノードに対してその応答を明
確に識別するために応答パケットに入れて返されるグロ
ーバルな「tLabel」フィールド、そのパケット用
のヘッダとデータの両方を含む32ビットのCRCコー
ドであるcrc32フィールドがある。 (最初に送信されるもの) 3 2 1 0 0 2 4 6 8 0 ||||||||||||||||||||||||||||||||| | targetId | |タイプ| | コード | | tLabel | | pLabel ||producerId| | sourceId | offsetHi(addr) | | offsetLo(addr)| ( 任意のデータ ) | crc32 |
【0086】受信側ノードによって生成された肯定応答
パケットは、送信または応答パケットから一部のフィー
ルドをエコーして「作成側ノード」に戻すので、それは
以下のように肯定応答中のパケットを明確に認識するこ
とができる。 (最初に送信されるもの) 3 2 1 0 0 2 4 6 8 0 ||||||||||||||||||||||||||||||||| | localBus |producerId| |タイプ| | pLabel | | crc32 |
【0087】肯定応答アドレスを作成するために、元の
パケットの「targetId」アドレス・フィールド
は、「localBus」識別子(通常はすべて1)と
元のパケットからの6ビットのproducerIdフ
ィールドによって置き換えられる。pLabelフィー
ルドは「作成側ノード」に対して元のパケットを明確に
識別するものである。「タイプ」フィールドは肯定応答
のタイプをコード化するものである。肯定応答パケット
用のcrc32フィールドは、ここに記載するSSOメ
カニズムのために普遍性を失わずに他の何らかのエラー
検出コードによって置き換えることができる。
【0088】ローカル・リングレット伝送が単一方向で
あり、いかなるノードもバイパスしないという想定は、
本発明の提案にとって基本的なものである。すなわち、
1つのノードが送信パケットまたは応答パケットのいず
れかを送信すると、サブリング上のすべてのノードは、
そのノードのバイパス・バッファを介してそのパケット
の流れのためにそのパケットまたは肯定応答のいずれか
を検出することになる。
【0089】この想定は、P1394.2リングレット
の基本動作の基礎となっている(ただし、P1394.
2オプション案では、「ショート・カット」経路指定機
能がSSO順序付けをサポートしないはずである)。こ
の結果、伝送されるすべての送信応答パケットに関し
て、リングレット上の各ノードは、送信/応答パケット
またはその肯定応答のいずれかのためにproduce
rIdフィールドとpLabelフィールドの両方を監
視することができる。
【0090】P1394.2プロトコルは、応答を必要
とする分割応答トランザクションをサポートする。(非
同期、有向)サービス用のパケットには、以下のように
パケット配達を禁止する可能性のある2通りの条件があ
る。パケットまたはその肯定応答では、CRCエラーま
たはその他の検出可能なエラーが発生する可能性があ
る。パケットは、宛先ノードで「使用中」の受信側によ
って拒否される可能性がある。
【0091】CRCエラーの場合、信頼できる唯一の検
出は発信側ノードで行われ、2回リングレット循環する
間に予定の肯定応答が検出されない場合にエラーを検出
することになる。(ローカル・ノード・タイムアウト検
出を支援するためにリングレット循環ごとに補足される
「スクラバ」ノードによって1つのビットが循環す
る。)使用するタイムアウト検出の正確な方法は、ここ
に記載するSSO順序付けサポート・メカニズムの動作
にとって基本的なものではない。
【0092】受信側「使用中」の場合、受信側ノードは
(非同期、有向)サービスの送信または応答パケットの
代わりにACK_busy肯定応答パケットを使用す
る。
【0093】システムの概要:ノードにおける既知の良
好情報 pLabelフィールドとproducerIdフィー
ルドはリングレット・トポロジでSSO順序付けメカニ
ズムを実施するために使用できるという主張は
【0094】この場合の基本概念は、各パケットはリン
グレットで、SSOプログラム空間でコマンドまたはデ
ータを伝送すること、およびリングレット順序状態情報
を転送することという2つの使い方が可能である。送信
パケットの順序番号は送信側だけが把握し、最後の有効
受入れパケットは受信側だけが把握している。図で示す
と以下のようになる。
【0095】作成側ノード: −リングレット・ノード内のSSO動作を制御するため
の送信/応答パケット・フィールド: 各produc
erIdからの送信および応答パケットに関するpLa
belフィールドを使用して3つのサブフィールド(以
下に詳述する)伝達する。 pLabel.sso(1ビット) pLabel.bzseq(1ビット) /* 非SSO空間のため
に未使用 */ pLabel.seq(6ビット)
【0096】「pLabel.sso」ビットは、この
パケット用のアドレス空間がSSO順序付き(sso=
1)であるかまたはそうではない(sso=0)かを動
的に定義する。「bzseq」すなわち使用中順序ビッ
トは、SSO順序付け空間内だけで意味を有し、それが
送信/応答パケットに対して使用中再試行肯定応答を出
さなければならないかどうかを受信側ノードが判定する
のを支援するために使用する。6ビットの「seq」フ
ィールドは、このproducerIdから有効なパケ
ット順序を識別するためにすべてのローカル・リングレ
ット・ノードが使用する折返しモジュロ64「カウン
タ」である。
【0097】リングレット上の各producerId
ノードと他のノードとの間のSSO順序付けを維持でき
るかどうかは、その送信および受信パケットを「測定」
し、そのpLabelフィールドを設定して他の各ノー
ドが適切な状態情報を維持できるようにするprodu
cerIdによって決まる。その状態情報をprodu
cerIdからの着信pLabelフィールドと比較す
ることにより、SSO順序付けを維持するようにパケッ
トを適切に処分することができる。
【0098】「測定」では、作成側ノードが6ビットの
「seq」フィールドに基づいてそのローカル・リング
レット内で32個程度の「未解決」パケットを有するこ
とができなければならない。「未解決」とは、「使用
中」肯定応答を生成したこのノードからの最も早い先行
パケットまたはそれに関して肯定応答を一切受信してい
ない最も早い先行パケットのうち、いずれか大きい方へ
返送するための現行パケットからのカウントを意味す
る。たとえば、宛先ノードで応答を待つなど、ローカル
・リングレットを越えて未解決になりうるパケットの数
については、いかなる限界も設計されていない。
【0099】SSO空間での通常動作では、新しい各送
信/応答パケットまたは各再試行使用中パケットによっ
てpLabel.seqフィールドがモジュロ64で1
だけ増分される。CRCエラーが検出された場合、すべ
てのローカル・リングレットに関するSSO状態はま
ず、何らかのパケット(以下に示す)を再送信すること
によって再同期しなければならない。
【0100】以下に使用する「CRCエラー」という用
語は、一般に、CRCエラーだけでなく、送信ノードに
よって検出できるパケット(送信、応答、または肯定応
答)用の非訂正エラー条件も含むものとして理解するこ
とができる。
【0101】CRCエラー・ループ・リセット: 作成
側ノードでCRCエラーが検出されると、リングレット
内のすべてのノードでこのproducerIdに関し
て維持されているSSO状態値が問題になる。このpr
oducerIDに関する各リングレット・ノードのS
SO状態情報は、このproducerIdまたは他の
作成側ノードに関するSSOプログラミング空間の変更
なしにリセットしなければならない。
【0102】これを達成するために、このメカニズムの
以下に示す2つの重要な特徴を使用する。 1.リングレット上の各受信側ノードは、ローカル・リ
ングレット上の各送信ノード用のローカルproduc
erIdによってインデックスが付けられたSSO状態
のアレイを維持する。このSSO状態は、制御ビット
と、2つの順序付けフィールドとを含む。これらのフィ
ールドの一方は、この受信側にアドレス指定された現行
リングレット・パケットが有効SSO順序番号を有する
かどうかを判定するために使用し、もう一方のフィール
ドは、ノードの受信バッファの状態とともに、そのパケ
ットがノードによって受け入れられるかまたは拒否され
るかと、どのタイプの肯定応答(実行済み、使用中、ま
たはエラー)が返されるかを判定するために使用する。 2.CRCエラーを検出する各producerId
は、エラー・パケットより前の最後の良好SSO順序付
きパケットから始まり、エラーの検出前にこのノードか
ら送信された最後のパケットまで至る、一連のSSO順
序付きパケットを再試行する能力を有する。リングレッ
ト内で有効順序ベース・カウントを確立するために、C
RCエラー・ループを開始するように(必要であれば)
既知の良好SSO順序付きパケットを再試行する。次
に、CRCエラー前の最後のパケットまで残りのパケッ
トが再送信される。この再試行順序でエラーが検出され
た場合、それがエラーなしで正常に行われるか、または
エラー再試行ループが正常終了なしに完了するまで、ル
ープを反復する。このような場合、よりレベルの高いプ
ロトコルがエラーを処理することができる。この順序が
エラーなしで完了すると、リングレット内のすべてのノ
ードは、そのSSO状態が一貫した既知の良好値に復元
されることになる。
【0103】受信側ノード:受信側ノードは、そのSS
O状態情報が正しい場合に、任意のproducerI
dから有効パケット順序を検出することができる。この
状態は、リセット時にproducerIdによって初
期設定され、producerIDによってCRCエラ
ーが検出された場合に再初期設定される。
【0104】受信側ノードは、CRCエラー送信パケッ
トまたは肯定応答を検出する場合もあれば、検出しない
場合もある。検出した場合でも、パケットの内容が信用
できないので、ノード状態情報は一切更新することがで
きない。タイムアウトを検出し、CRCエラー・パケッ
トを再送信するのは、送信ノードの責任である。
【0105】しかし、受信側ノードは、何らかのpro
ducerIDからCRCエラー・パケットに続く有効
順序付きパケットの順不同伝送を検出することができ
る。このような順不同パケットのそれぞれは、ACK_
errorとして肯定応答する間に受信側で検出し拒否
しなければならない。このパケットを送信するノードは
パケットにマークを付け、そのエラー・ループでそれを
再試行する。
【0106】パケットは、受信側ノードが非同期動作で
拒否されるか、またはそのパケットが前に受け入れられ
たパケットの再伝送である場合にSSO順序付けサポー
トによって拒否される場合がある。SSO順序付けモー
ドでは、所与のproducerIdからの第1のパケ
ットが使用中として拒否されると、第1の使用中パケッ
トが再試行されるまで、このproducerIDから
のすべての後続順序付きパケットも拒否しなければなら
ない。
【0107】SSOの場合の受信側の状態は、非使用中
受信側バッファへの新しいパケットの受入れと、エラー
回復のために再送信される前に受け入れられたパケット
および「使用中」拒否後に送信された新しいパケットの
拒否をサポートしなければならない。作成側に返される
肯定応答パケットはエラーの影響を受けるので、受信側
状態は、任意のパケットが再試行される場合にack_
doneおよびack_busyパケットを複製できな
ければならない。
【0108】これを達成するため、各受信側ノードは、
以下の6つのフィールドを含み、producerId
によってインデックスが付けられた、seqTable
という状態アレイを必要とする。 seqTable.verif[producerId] (1ビット) seqTable.sso[producerId] (1ビット) seqTable.seq[producerId] (6ビット) seqTable.bzseq[producerId] (1ビット) seqTable.busy[producerId] (1ビット) seqTable.acpt[producerId] (6ビット)
【0109】SSO動作では、seqTableフィー
ルドを以下のように使用する。「verif」フィール
ドは、このseqTableが初期設定されたことと、
producerIdが検査済みソースであることの両
方を示す。「sso」フィールドは、SSO順序付けを
サポートするためにこのproducerIdノードの
(静的)機能を定義する。(比較によれば、pLabe
l.ssoビットは、作成側ノード用のアドレス空間順
序付けに応じて設定された動的ビットである。)「se
q」フィールドは、受信側ノードによるパケット順序付
けのためのpLabel「seq」フィールドと比較さ
れる。「bzseq」ビットは、第1の使用中パケット
の再伝送を識別するためにSSOパケット用の対応する
pLabel「bzseq」ビットと比較される。「b
usy」ビットは、SSOパケットの第1の使用中肯定
応答時にproducerIdに設定され、受信側バッ
ファに応じてこの使用中パケットが再試行されたときに
(おそらく)リセットされる。最後に、「acpt」フ
ィールドは、SSOパケットの受入れおよび拒否の場合
と、「実行済み」または「使用中」として肯定応答すべ
きかどうかを判定する場合の両方に使用する。このよう
な判定では、着信パケットの「seq」フィールドとの
比較が必要である。
【0110】受信側ノードは、以下のような場合に所与
のproducerIDから有効な新しいSSO順序付
けパケットを検出することができる。 pLabel.seq = seqTable.seq[producerId] + 1
【0111】比較が有効である場合、seqフィールドが
更新される。 seqTable.seq[producerId] = pLabel.seq
【0112】その他の比較については、以下を参照され
たい。
【0113】このproducerIdがCRCエラー
再試行ループを初期設定することをこのノードが検出し
た場合、seqTable.seq[producer
Id]フィールドが現行のpLabel.seq値にリ
セットされる。これは、以下のようにこのproduc
erIdからのパケットまたはこのproducerI
dへの肯定応答用のseqフィールドを比較することに
よって示される。 if {pLabel.seq <= seqTable.seq[producerId]} then seqTable.seq[producerId] = pLabel.seq
【0114】CRCエラー・ループの初期設定中は、s
eqTable.acpt[]フィールドではなく、se
qTable.seq値だけが変更される。パケットは
拒否されるが、通常使用するのと同じ受入れ/拒否論理
(以下に示す)を使用する。再試行したすべてのパケッ
トを「実行済み」(前に受け入れられたことを意味す
る)または「使用中」として正しく肯定応答するために
seqTable状態情報を使用することが重要であ
る。論理については以下に説明する。
【0115】「seq」比較が有効である場合、パケッ
トはこの比較に応じて受け入れられるかまたは拒否され
る。 accept:{ {pLabel.bzseq〜=seqTable .bzseq[producerId]} &{receiver_not_busy} | {pLable.bzseq=seqTable. bzseq[producerId]} &{seqTable.busy[produc erId]=0} &{receiver_not_busy} &{pLabel.seq>seqTable. acpt[producerId]}} reject:{ {receiver_busy} | {pLabel.bzseq=seqTabel. bzseq[producerId]} &{seqTable.busy[produc erId]=1} | {pLabel.bzseq=seqTabel. bzseq[producerId]} &{pLabel.seq<=seqTabel .acpt[producerId]}} =〜accept
【0116】あまり形式的ではないが、使用中再試行ル
ープが開始され、受信側バッファが使用中ではない場
合、または使用中再試行ループは開始されていないが、
「使用中」状態がリセットされ、受信側バッファが使用
中ではなく、作成側ノードがエラー再試行ループに入っ
ていないと順序比較が示している場合、パケットは受け
入れられる資格を有する。
【0117】「seq」比較が有効である場合、パケッ
トはこの比較に応じて「実行済み」または「使用中」と
して肯定応答される。 ack_don:{ {pLabel.bzseq〜=seqTabl e.bzseq[producerId]} &{receiver_not_busy} | {seqTable.busy[produce rId]=0} &{receiver_not_busy} | {pLabel.seq<seqTable.a cpt[producerId]}} act_bzy:{ {pLabel.bzseq=seqTabel .bzseq[producerId]} &{seqTable.busy[produ cerId]=1} &{pLabe.seq>=seqTabel .acpt[producerId]} | {pLabel.seq>=seqTabel. acpt[producerId]} &{receiver_busy} =〜ack_don
【0118】あまり形式的ではないが、使用中再試行ル
ープが開始され、受信側が使用中ではない場合、または
「使用中」状態がリセットされ、受信側が使用中ではな
い場合、またはエラー再試行ループでは再試行中のパケ
ットが第1の「使用中」パケットより前に送信されたこ
とを順序比較が示している場合、パケットはack_d
oneとして送信される。それらがack_donとし
て肯定応答されない場合、パケットはack_bzyと
して肯定応答される(この場合も、有効な順序比較が前
提事項となる)。
【0119】−受信側ノードが初めて所与のprodu
cerIdから使用中としてパケットを拒否する場合、
(seqTable.busy[producerI
d]=1)を設定することにより、その「使用中」状態
を変更しなければならない。これは、「使用中」パケッ
トの順序番号でseqTable.acpt[]フィー
ルドをフリーズするという影響を及ぼす。このフィール
ドは、第1の使用中パケットが再試行されるまでフリー
ズしたままになる。
【0120】「busy」フィールドと「acpt」フ
ィールドを設定するための条件は、使用中再試行ループ
が作成側ノードによって実行されるかどうかによって決
まる。「seq」比較が有効である場合、使用中再試行
ループ内の第1のパケットは以下の関係から検出するこ
とができる。 pLabel.bzseq 〜= seqTable.bzseq[producerId] ただし、「bzseq」フィールドは、エラー再試行ル
ープを実行中に変更されないことに留意されたい。これ
は真実なので、使用中再試行ループのパケットにおいて
以下の比較は必ず真になる。 {pLabel.seq > seqTable.acpt[producerId]}
【0121】第1の再試行パケットが検出された場合、
seqTableの各項目は以下のように設定される。 { seqTabel.bzseq[producerId] =pLabel.bzseq seqTabel.busy[producerId] =receiver_busy seqTable.acpt[producerId] =pLabel.seq }
【0122】ただし、第1の再試行パケットは、上記の
比較基準により拒否され、「実行済み」または「使用
中」として肯定応答されることに留意されたい。パケッ
トが第1の再試行パケットではない場合、これは以下の
関係から検出される。 pLabel.bzseq = seqTable.bzseq[producerId]
【0123】次に、seqTableの各項目は以下の
ようにパケット受入れによって決まる。 if{ {seqTable.busy[producerId] =0} &{pLabel.seq>seqTable.acpt[ producerId]}} then {seqTable.busy[producerId] =receiver_busy seqTable.acpt[producerId] =pLabel.seq { else/* 前の使用中パケットまたはエラー再試行ループ */ {no update }
【0124】最後に、各ノードは、以下のような場合に
producerIdから順序エラーを含むパケットを
検出することができる。 pLabel.seq > seqTable.seq[producerId] + 1
【0125】これは、このパケットには有効CRCがあ
るが一部の先行パケットにはなかった場合に発生する可
能性がある。(カウント比較は、完全6ビットの算術比
較ではない。以下の詳細を参照されたい。)順序エラー
を含むパケットについては、seqTableの各項目
は一切更新されない。
【0126】リングレットSSO状態の初期設定: −作成側ノードは、実際のSSO送信/応答パケットを
送信する前にそのリングレット上の各ノードでの状態情
報が初期設定されることを確認しなければならない。
【0127】「承認作成側」という方針は、seqTa
bleを初期設定するために提案されたseqTabl
e状態ビットおよび書込み送信パケットによってサポー
トすることができる。以下の3つのステップが必要であ
る。 1.seqTable[]アレイは、電源がオンになる
か、またはすべてのproducerIdについてse
qTable.varif[]=0を指定してリセットさ
れる。 2.非SSOアドレス空間内の(未指定)プロセスによ
り、ローカル・ノードはproducerId案を検査
し、それ自体のseqTable.verif[pro
ducerId]=1を書き込む。「verif」ビッ
トは、ローカル・ノードによって書き込まれるだけであ
る。 3.seqTable.verif[producer
Id]が活動化された状態で、puroducerId
はこのノードのseqTableにアドレス指定された
書込み(または移動)コマンドを送信する。パケット
は、そのターゲット・アドレス(seqTable)に
より初期設定パケットとして識別される。
【0128】seqTableに書き込まれる値は、以
下のように初期設定パケットのデータから取られる。 if{seqTabel.verif[producerId] ==1}then {seqTable.sso[producerId]=1 seqTable.seq[producerId] =[current”seq”from this produ cerId] seqTable.bzseq[producerId] =[current”bzseq”from this pro ducerId] seqTable.busy[producerId]=0 seqTable.acpt[producerId] =[current”seq”from this produ cerId] }
【0129】リングレット内の各ノードは、別々に検査
し初期設定しなければならない。
【0130】上記のような方針を使用すると、既存のリ
ングからノードを動的に追加(または削除)すると同時
に新たに電源オンしたリングを初期設定することができ
る。
【0131】上記のような方針は、選択的「承認ノー
ド」交換を可能にすることができる。たとえば、ノード
AはノードBと、ノードCはノードBと交換することが
できるが、AとBがSSO交換されるのを防止すること
ができる。
【0132】応用空間 このメカニズム案は、以下のものを含む汎用1394.
2ネットワーク・トポロジで動作することができる。S
SO順序付けが可能なノードと、そうではない(静的機
能)のノード、およびSSO順序付けされたかまたはS
SO順序付けされていない(動的機能)複数のアドレス
空間をサポートするノード。
【0133】IEEE P1394.2内にはSSO順
序付けされていない可能性のあるモード(等時性)が存
在するので、動的機能は重要であり、非SSO順序付け
空間へのブリッジ(IEEE1394−1995など)
をサポートしなければならないことに留意されたい。一
般に、IEEE P1394.2ノードへのソフトウェ
ア・インタフェースは、潜在的に変動するプログラミン
グ・モデルを備えた1組のアドレス空間であると推定さ
れる(必須ではない)。これらのモデルのうちの少なく
とも1つは、非アイデンポテント・コマンドをサポート
するSSOモデルであると推定される。
【0134】SSO順序付けメカニズムはIEEE P
1394.2(非同期、有向)サービスに応用されるの
で、その応用については以下に記載する。これは、この
メカニズムが他のモードには応用できないことを意味す
るわけではない。このメカニズムは、複数のアドレス空
間からの任意のコマンド・ストリームをサポートし、S
SOコマンドに他のプログラミング・モデルからのコマ
ンドが散在できることを意味する。
【0135】SSOアドレス空間(またはSSOドメイ
ン)から宛先ノードへの終端間でSSO順序付けを維持
する必要がある場合、SSOドメイン・コマンド用の宛
先ノードがSSO順序付け可能でなければならず、スイ
ッチまたはブリッジ内のすべての中間ノードがSSO順
序付け可能でなければならないことは明らかである。
【0136】サポートに必要なIEEE P1394.
2の変更 SSOサポート・メカニズム案は、文書化されていない
任意の機能として変更なしに現行規格の0.6バージョ
ンで実施することができる。しかし、このメカニズムを
含む特許を出願すると、(少なくとも)任意の機能とし
てこのメカニズムをIEEE P1394.2の文書に
追加することが計画される。
【0137】変更は不要であるが、明確にするために1
つのコード化の追加が示唆され、費用効果の高いIEE
E1394−1995へのブリッジをサポートするため
にもう1つのコード化の追加が必要である。
【0138】明確にするためのコード化の追加は、「タ
イプ」フィールドに「ACK_error」肯定応答を
追加し、予約コードを置き換えるものである。 Type field:0 Normal, non
−SSO 1 Extended, non−SSO 2[reserved] 3 [reserved] 4 ACK_done 5 ACK_busy 6 ACK_more/*マルチキャスト・モード再
試行が必要*/*7ACK_error*/*SSOモード
での順序エラー*/
【0139】ブリッジのためのコード化の追加では、よ
り長いパケット・タイプをサポートする相互接続により
その宛先に達する、開始、中間、終了の各64Bパケッ
トの輪郭を示すビットを指定する。たとえば、イーサネ
ットまたは1394による2KBパケットは、以下の3
通りのタイプのパケットに分解することができる。 開始パケット: おそらく部分ブロックであり、64B
境界上のその末尾に位置合せされる。 中間パケット: 必ず64Bで、必ず位置合せされる。 終了パケット: おそらく部分ブロックであり、64B
境界上のその先頭に位置合せされる。
【0140】ブリッジによりP1394.2リングレッ
トに入る大きいパケットは、より小さいパケットに分解
することができる(たとえば、1つの大きい書込みパケ
ットは複数の64Bの移動と1つの64Bの書込みとに
分解される)。しかし、たとえば、1394宛先ノード
にブリッジするために、偶数のSSO順序付き64Bの
パケットから1つの大きいパケットを再組立てするに
は、大きいパケットの構成要素部分が容易に識別できな
ければならない。大きいパケット用に設計されたプロト
コルで小さい64Bのパケットを処理する場合、通常、
効率が悪くなるので、この必要性が特に強くなる。開始
/中間/終了コード化をSSO順序付け機能と組み合わ
せると、ブリッジは、配達のために非常に効率よくパケ
ットを再組立てすることができる。
【0141】再試行の概要 非アイデンポテント・コマンドをサポートするSSO順
序付きアドレス空間のために、受信側ノードでの「使用
中」条件と、ローカル・リングレットで検出されるCR
Cエラー条件という2通りのタイプの再試行条件を処理
しなければならない。後者の場合、「CRCエラー」
は、ソース・フィールドと宛先フィールドのいずれも信
頼できるデータを表さないほどのパケット(送信パケッ
ト、応答パケット、またはそのいずれかへのACK)の
破壊を意味するものと想定されている。「CRCエラ
ー」という用語は、CRCエラー・コードのみに制限す
ることを意味するものと解釈すべきではなく、より一般
的には任意のエラー検出メカニズムを含むべきである。
順序付きドメインの効率のよい動作のために、「使用
中」再試行条件は比較的頻度が低いが、CRCエラー条
件よりかなり頻度が高いと想定する。しかし、いずれの
場合も、提案した方式の有効性は、「使用中」またはC
RCエラーのいずれかのケースの発生頻度に依存してい
ない。
【0142】順序付きドメイン内の「使用中」再試行の
場合、エラーがなければ、「使用中」と応答する特定の
ドメインへのパケットの再試行だけが必要である。提案
した方式では、代替宛先ノードでの「使用中」条件を独
立したものとして扱う。ノードAが一連のパケットをノ
ードBとCの両方に転送し、Bのみが「使用中」と応答
する場合、ノードBへのパケットだけが再試行される。
【0143】CRCエラー・パケット(送信/応答パケ
ットまたはACKのいずれか)は最終的に送信側ノード
で検出される。SSO順序付きドメインでは、この検出
は、「順序エラー」(タイムアウト前にACK_err
応答が検出される)またはリングレット・タイムアウト
(肯定応答なしで2回循環する)のいずれかになる可能
性がある。SSO順序付きドメイン内の受信側ノード
は、何らかのノードから順序エラーが検出された場合に
CRCエラーの発生後に各送信/応答パケットを拒否す
るためにACK_errorを送信するという責任を負
っているが、そうではない場合はエラー状態情報を維持
する必要はない。そのパケットまたはACKのいずれか
でCRCエラーが発生したと送信側ノードが検出する
と、そのノードは、最後の有効完了パケットの点から、
エラーが検出され、パケット伝送が停止される前に送信
された最後の未解決パケットまで、すべての未解決SS
O順序付きドメイン・パケットを再試行しなければなら
ない。非SSOドメインでCRCエラーを再試行するた
めの方針については、ここでは指定しない。
【0144】使用中再試行の例 このメカニズムがどのように機能するかをより適切に視
覚化するために、詳細説明を示す前に例を使用してSS
O順序付けサポート用のメカニズム案を例示する。
【0145】ケース1: ノードAからノードCへの使
用中再試行: 送信パケットの観点からのパケット順序付け:
【0146】この例に関するいくつかの所見:パケット
は送信ポートを介して生成されるが、使用中肯定応答は
受信ポートで非同期に検出される。使用中再試行ループ
では、第1の再試行使用中パケット(24)を再伝送す
る前にすべての未解決先行トランザクションに肯定応答
しなければならない。また、いつ使用中パケットを再試
行すべきかという判断は、新しいトランザクションの到
着速度など、実施上の他の考慮事項によって決まる可能
性がある。この例のパケット23は、使用中ループがパ
ケット21および23を再番号付けした(pLabe
l.seq)パケット24および25として再送信する
前に送信される最後のパケットになる。使用中のマーク
が付けられたパケット(この例では、パケット21から
始まるノードCへのパケットのみ)だけが再試行され
る。完了したパケットを再試行する必要はない。新しい
順序番号は、ノードAによって再試行したパケットに割
り当てられる。第1の「使用中」パケットがノードC
(パケット21)で肯定応答されると、同じかまたはそ
れ以上の順序番号がノードCにアドレス指定されたすべ
てのパケット(この例ではパケット23)は、第1の
「使用中」パケットが再試行される(「bzseq」の
変更によって示される)まで、「ack_busy」に
よって拒否しなければならない。エラー再試行ループで
は、21の前にパケットが再伝送される可能性がある。
この場合、それが(間違って)再試行されるのを防止す
るため、そのパケットは「ack_done」として拒
否され肯定応答されるはずである。第1の「使用中」パ
ケットに肯定応答する他のすべてのノードは同じように
動作しなければならない(この例には示さない)。SS
O順序付けは、送信側ノードからその潜在的な受信側ノ
ードのそれぞれへ、対単位で維持される。しかし、ノー
ドAがノードBに対してSSO順序付きパケットを送信
し、AがノードBにもSSO順序付きパケットを送信す
る場合、結果的に、対単位のSSOを正しくするために
ノードBとCとの間の相対的な順序付けパケット到着を
維持しなければならないというわけでは「ない」。この
producerIdノードによる使用中再試行ループ
の開始は、pLabel.bzseqフィールドを(1
から0に)補足することにより、すべてのリングレット
・ノードに通知される。このスワップは、そのseqT
able.bzseq[producerId]値を着
信pLabel.bzseqと比較することにより、各
リングレット・ノードで検出することができる。両方の
値が一致しない場合、seqTable値は以下のよう
に書き換えられる。 seqTable.bzseq[producerI
d] = pLabel.bzseq また、再試行した使用中パケットが受信バッファに受け
入れられた場合、「使用中」ビットは以下のようにリセ
ットされる。 seqTable.busy[producerId]
= 0 すべての他の(非受信側)ノードの場合、seqTab
le.busy[producerId]は0に設定さ
れる。
【0147】CRCエラー再試行の例 使用中肯定応答を行わないCRCエラー再試行の2つの
例を、使用中再試行ループ周辺で発生するCRCエラー
の一例ととともに以下に示す。
【0148】ケース1: ノードCで検出されたノード
Cへの送信パケット上のCRCエラー送信パケットの観
点からのパケット順序付け:
【0149】この例に関するいくつかの注意事項:CR
Cエラーの検出は、送信ノードから非同期に受信ノード
内で行われる。この例では、21のCRCエラーが検出
される前にパケット22および23が伝送される。CR
Cエラーが発生しうる個所が多いので、様々なノードは
様々なやり方でエラーを検出できる場合もあれば、検出
できない場合もある。この例では、ノードBの後でCR
Cエラーが発生しているので、順序エラーは決して発生
しない。これに対して、ノードCはパケット21を検出
できず、後続のパケット/ack22および23に順序
エラーが発生していることを検出する。というのは、最
後に記録されたその順序値が20であるからである。C
RCエラーが送信側で検出されると、各ローカル・リン
グレット・ノードのseqTable.seq[pro
ducerId]フィールド内で順序カウントを(20
まで)再確立するために、そのCRCエラー・ループ
は、エラー(パケット20)の前に、必要であれば繰返
し、まず最後の良好パケットを再伝送しなければならな
い。受信側ノードのseqTable.acpt[pr
oducerId]フィールドとの比較に基づいて、タ
ーゲットとは無関係に、このパケットは必ず拒否され
る。既知の有効パケット用の順序番号とともに、pro
ducerIdもpLabelに入れて現行のbzse
q値を送出し、すべてのseqTable.bzseq
[producerId]を既知の良好状態に設定す
る。seqTable.bzseq[producer
Id]値はリセットされるが、各ノードのseqTab
le.busy[]フィールドとseqTable.a
cpt[]フィールドは保持しなければならない。これ
らのフィールドは、この宛先用の正しい応答ack、実
行済み、または使用中によってCRCエラー再試行ルー
プでパケットを受け入れるかまたは拒否するために必要
な状態を表す。この例では、ノードBは送信/応答パケ
ット22を拒否し、ノードCはパケット21と23の両
方を新しいパケットとして受け入れる。送信側は、新し
いパケットを停止させた点まで、この場合はパケット2
3まで伝送されたすべてのパケットを再送信しなければ
ならない。エラーがない場合、ノードBとCは順序番号
を追跡する。
【0150】ケース2: ノードAで検出されたノード
Cからの肯定応答パケット上のCRCエラー 送信パケットの観点からのパケット順序付け: 送信パケットの観点からのパケット順序付け:
【0151】この例は、パケットがその宛先で受け入れ
られたかどうかを送信側ノードが検出できないことを示
している。この例のノードCではエラーが発生していな
いので、パケット21と23はどちらも有効なpLab
el.seqフィールドを有し、ACK_done応答
が与えられる。
【0152】ケース3: ノードB用の使用中再試行ル
ープを開始する前にノードCで検出されたノードCへの
送信パケット上のCRCエラー 送信パケットの観点からのパケット順序付け:
【0153】この例は、以下の一連の事象に基づくもの
である。ノードBには2つの送信/応答パケット21お
よび23が送信され、そのノードはこれらを使用中とし
て拒否する。ノードCにはパケット22が送信される
が、そのノードにCRCエラーがあるので、このパケッ
トはそこで検出されない。ノードBではエラーが一切検
出されない。ノードAは、まず未解決Ackの完了を待
つことにより、ノードBのパケットに関してその使用中
再試行を開始する。次にノードAはCRCエラーを検出
する。これはCRCエラー・ループを開始するが、この
ループは21(エラー前の最後の良好パケット)から2
3(エラーが検出される前に最後に送信したパケット)
までのすべてのパケットを含まなければならない。
【0154】この例では、CRCエラー再試行ループに
入ると、pLabel.seq値およびノードBのse
qTable.busy[]フィールドとseqTab
le.acpt[]フィールドに基づいて、エラー・ル
ープで再試行したノードBへのパケットが拒否される。
seqTable.busy[]ビットが設定されてい
るので、パケットは拒否される。また、seqTabl
e.busy[]が設定されているが、(pLabe
l.seq値とseqTable.acpt[]フィー
ルドとの比較に基づいて)どちらのパケットも最初に
「使用中」のマークが付けられているので、再試行した
パケット21と23はどちらも「使用中」として肯定応
答される。
【0155】使用中ループが最終的に開始されると、ノ
ードAからのseqTable.bzseq[prod
ucerId]フィールドにより変換が行われ、パケッ
ト21がパケット24として再伝送される。ノードBは
このトランザクションを検出し、その受信バッファが一
杯であるかどうかに基づいて、パケット24を受け入れ
られるかどうかを評価する。ここで想定する例では、再
試行したパケット24および25がどちらも受け入れら
れる。
【0156】潜在的にエラーが存在する場合に使用中再
試行ループを開始するための基本概念は、最初に再試行
した使用中パケットより前のすべてのパケットの肯定応
答が受信され、良好として検査されるまで、ループの開
始を待つことである。これが必要である理由は、pLa
bel.bzseqビットの状態を変更するとすべての
ノード・パケットがそのseqTable.bus
y[]フィールドとseqTable.acpt[]フ
ィールドをリセットするからである。これらのフィール
ドは、使用中再試行ループの前にパケット受入れ/拒否
および肯定応答を生成するためにエラー再試行状態を維
持している。これらのフィールドがリセットされるの
は、未解決のままのエラー条件がまったくないことをノ
ードAが確認した場合に限られる。
【0157】作成側ノード: 要求待ち行列状態 好ましい実施形態の各作成側ノードは、1つのレジスタ
に加えて以下の3通りのタイプの発信側待ち行列と、2
通りのタイプの着信側待ち行列または構造(図40を参
照)を有することができる。 発信側: 1.おそらくトランザクション層(リンク層の上)内に
あって未発行要求からなる新規要求待ち行列 2.同じくトランザクション層内にあって他のノードへ
の未発行応答パケットからなる応答保留待ち行列 3.リンク層内にあって、リングレットに対して発行さ
れる処理中の送信および応答パケットからなる「sen
d_pkt」待ち行列 4.再試行すべき使用中パケットからなる「retry
_pkt」待ち行列[これは使用中再試行の実施形態に
のみ適用されることに留意されたい。] 5.retry_pkt待ち行列を充填し、エラー再試
行用のパケットをsend_pkt待ち行列にリサイク
ルするための「retry_pkt」レジスタ着信側: 1.リンク層内にあってこのノードへの着信肯定応答か
らなる待ち行列 2.トランザクション層内にあって、応答を待っている
要求用の構造
【0158】トランザクション層内の発信側送信および
応答パケットの場合、場合によっては待ち行列が複数の
待ち行列である可能性があり、その待ち行列間に順序付
けの依存関係はまったくない。一例としては、スイッチ
の複数ポートである。
【0159】SSO順序付けモードでのこのノードへの
応答パケットの場合、所与の宛先ノードからの応答は必
ず順番に到着するが、異なるノード間の応答に関して順
序付けは一切保証されない。その結果、応答を待ってい
る送信パケット構造は、待ち行列ではなくむしろ構造と
して示される。
【0160】SSO順序付け空間での応答パケットの使
用法 IEEE P1394.2では、宛先ノードにデータを
書き込むための動作として、応答なし移動トランザクシ
ョンと応答付き書込みトランザクションという2通りの
タイプの動作を指定している。SSO順序付け構造は、
順序付けられたデータの配達を保証するものである。移
動トランザクションと書込みトランザクションの相違点
は何であろうか。
【0161】書込み送信パケットは、書込みデータが実
際にこのノードに達したことを示す、宛先ノードによっ
て生成された明確な指示を行う。すなわち、これは、動
作の完了を明確に示す。移動送信パケットは、完了の明
確な指示は行わない。
【0162】この相違から2つの質問が発生する。 1.完了の明確な指示は何のために使用できるか。 2.特に無効アドレスと、新しいパケットの受入れを拒
否する「膠着」受信側ノードとを含む、不完全なリンク
・トポロジで順序付けが維持されていることを確認する
ために、どのようなアーキテクチャ上の拡張を移動トラ
ンザクションと結合することができるか。書込みトラン
ザクションに関する完了の明確な指示は、トランザクシ
ョン層から見えるものになる。これより上の何らかのシ
ステム・レベルでこれが見えるようになるかどうかは、
この説明の範囲を超えたトランザクション・レベルのア
ーキテクチャによって決まる。SSO順序付けのポイン
トは、順序付けを確保するためにいかなる構造も不要で
あるということである。
【0163】トランザクション層内の書込みトランザク
ションに可能な使い方は2通りある。このリストはほと
んど網羅的ではない。第1に、書込みトランザクション
は信頼性アーキテクチャ用の基礎として使用することが
できる。送信パケットが指定の期間内に応答を受信でき
なかった場合、ノード・タイムアウトが報告されるはず
である。この使用法では、次の送信パケットを開始する
前に応答を完了するための事前要件はまったく存在しな
い。
【0164】書込みトランザクション用の第2の使用法
は、可用性の高いアーキテクチャ用の基礎として使用す
ることである。この応用例では、書込みに対する応答が
「書込みコミット」の完了を安定した記憶装置に通知す
る。これに関する問題は、どのように応答を処理するか
ということである。それを使用して次の送信パケットの
伝送をゲートするのだろうか。そのような場合、これに
より、パケット配達速度は大幅に低下する。システム・
アーキテクチャは、完了バリア・インジケータとして応
答を使用するためのメカニズムをサポートしているか。
ほとんどは(UPAを含む)サポートしていない。
【0165】送信パケット待ち行列構造 P1394.2に応じたアドレス空間は、一般に、順序
付けされる場合もあれば、順序付けされない場合もある
ので、ノードは、両方のアドレス指定モデルを識別しサ
ポートするために各コマンドごとにデータの構造を維持
しなければならない。この構造案は以下のように3つの
フィールドからなる。 Send_pktSSO構造、送信または応答パケット当たり1
つずつ send_pkt.val (1) /* 項目有効 */ send_pkt.sso (1) /* コマンド・アドレス空間か
ら */ send_pkt.done (1) /* ACK_doneを受信、応答が必
要な場合もある*/ send_pkt.busy (1) /* ACK_busyを受信、再試行待
ち */ send_pkt.init_er (1) /* エラー再試行ループ内の初
期(第1の)パケット */ send_pkt.no_xmit (1) /* エラー・ループ中にリング
レットへの伝送なし*/ send_pkt.err_ret (1) /* エラー再試行ループ内のエ
ラー再試行状態*/ send_pkt.seq (6) /* この送信/応答パケット用
の順序番号 */ send_pkt.packet (N) /* Nビットの送信/受信パケ
ット */ その他の制御ビットは、ここに記載するSSO順序付け
を上回る実施目的に使用することができる。
【0166】概念上、send_pkt[]はFIFO待
ち行列と見なすことができ、対応するFIFO内の肯定
応答パケットが受信されると、新たに送信されたパケッ
トは一番上に入り、終了したパケットは一番下から出て
いく。「ack_done」として肯定応答された送信
パケットは、応答を待っている可能性がある。
【0167】send_pktFIFO待ち行列に加
え、他の待ち行列、レジスタ、MUX、状態マシン、制
御論理については、補助の流れ図に示す。
【0168】CRCエラー・ループ用の作成側ノード・
ポインタ CRCエラー・ループおよび使用中再試行ループの処理
には、所与の作成側ノード変数が必要である。CRCエ
ラー・ループ動作用のグローバル変数として以下のもの
がある。この場合、接頭部「or_」は「順序付き」を
意味する。 or_last_ct (6) /* ローカル・リングレットに
送信された最新SSO順序付きpkt用の順序カウント
*/ no_last_ct (6) /* ローカル・リングレットに
送信された最新非SSO順序付きpkt用の順序カウン
ト */ or_rcvd_ct (6) /* ローカル・リングレットか
ら受信した最新SSO順序付きpkt用の順序カウント
*/
【0169】ローカル・リングレットにパケットが送信
されると、パケット・パスでsend_pktレジスタ
内に伝達されるsend_pktフィールドと一致する
ように、そのpLabelフィールドが設定される。一
般に、以下のようになる。 pLabel.sso = send_pkt_reg.sso pLabel.bzseq = bzseq /* グローバル作成側ノードの
状態ビット */ pLabel.seq = send_pkt_reg.seq pLabel.seqにどの値が割り当てられるかは、
動作(たとえば、新しいパケット、使用中再試行パケッ
ト、またはCRC再試行)によって決まる。以下に示す
詳細を参照されたい。
【0170】受信側ポインタ比較:折返しモジュロ64
カウントのサポート 上記の「提案の概要」の項により、受信側の動作にとっ
て3通りの比較が重要になる可能性があることに留意さ
れたい。 1.受信側ノードは、以下の場合に、所与のprodu
cerIdから有効な新しいSSO順序付きパケットを
検出することができる。 pLabel.seq = seqTable.seq[producerId] + 1 かつ pLabel.seq > seqTable.acpt[producerId] 2.このproducerIdがCRCエラー・ループ
を実行していることをこのノードが検出すると、seq
Table.seq[producerId]フィール
ドは現行のpLabel.seq値にリセットされる。
これは、このノードからのパケットまたは肯定応答用の
seqフィールドを比較することによって示される。 if {pLabel.seq <= seqTable.seq[producerId]} then {seqTable.seq[producerId] = pLabel.seq } 3.最後に、各ノードは、以下の場合に、produc
erIdから順序エラーを含むパケットを検出すること
ができる。 pLabel.seq > seqTable.seq[producerId] + 1
【0171】モジュロ64カウンタによって「より大」
比較と「より小か等しい」比較の両方をサポートするこ
とは、この比較が31という受信側ノードにおける差を
超えないことをproducerIdによって確認した
場合に達成することができ、カウントは以下のように定
義される。 以下の場合は「A<=B」 −上位ビットが等しく、下位ビットがA<=B −上位ビットが等しくなく、残りのビットがA>B 以下の場合は「A>B」 −上位ビットが等しく、下位ビットがA>B −上位ビットが等しくなく、残りのビットがA<=B
【0172】特殊な問題 ここでは、本発明の可能な実施態様を含むある程度まで
の詳細に関する追加の説明と重要性を示す。
【0173】このような問題のうちの第1の問題では、
CRCエラー後に適切なseqTable[produ
cerId]フィールドを確実にリセットすることを扱
っていた。CRCエラーが発生すると、リングレット内
のすべてのノード用のseqTable.seq[pr
oducerID]内のフィールドは、リングレット内
の他のノードと同期していない値を含む可能性がある。
【0174】同時に、seqTable[]の値は、有
効かつ正しく順序付けられたパケットが受信側ノードで
識別された場合「のみ」更新されるので、これらの値は
このノードに関する限り正しいと見なさなければならな
い。しかし、これらは、送信側ノードと他のリングレッ
ト・ノードの両方に対して同期していない場合もある。
【0175】したがって、producerIdノード
の仕事は、すべてのノードを確実に同期状態に戻すこと
である。問題はこのリセットを達成する際に発生する。
すなわち、エラー・ループ自体の第1のパケットにCR
Cエラーが発生したらどうだろうか。
【0176】この問題に対する単純な解決策は、非パイ
プライン化モードで最後の既知の良好完了パケットを伝
送することにより、エラー処理ループを実行するpro
ducerIdノードがそのエラー・ループを開始する
ことである。producerIDノードは、それが有
効な肯定応答を受信するまで、このパケットを再試行す
るはずである。これを受信すると、リング上のすべての
ノードは、このproducerID用のseqTab
le.seq[]フィールドが同じ値に設定されていな
ければならない。seqTable.bzseq[]フ
ィールドをリセットするために同じ引数が適用される。
しかし、seqTable.busy[]フィールド
は、このproducerIdからこの受信側ノードに
配達された最後の有効完了パケットへの肯定応答の状態
を反映する。次の有効パケットの処理方法を考慮する場
合(再試行したパケットは拒否される)、このフィール
ドは有効性を有する。その結果、このフィールドは、リ
セット間隔中にリセットしてはならない。同様に、se
qTable.acpt[]フィールドも未変更のまま
になる。
【0177】ただし、既知の良好完了パケット(有効と
して肯定応答され、リングレット内のターゲット・ノー
ドによって拒否されるはずのもの)を再試行することに
より、producerIDノードは、そのデータ内容
ではなく、そのパケット順序番号のみに関するパケット
を伝送することに留意されたい。
【0178】有効なACKが返されるまで既知のパケッ
トを再送信するという同じ手法を使用すると、リングレ
ット初期設定によって上記のフィールドを初期設定する
ことができる。しかし、seqTable.bus
y[]およびseqTable.acpt[]などの他
のフィールドは、非SSO空間を使用してseqTab
le.acpt[]フィールドに値(pLabel.s
eq)を書き込むなど、他の手段によってリセットしな
ければならない。
【0179】元の提案に関する第2の問題では、そのエ
ラー・ループ内のパケットが完了したかどうかを判定す
るproducerIDノードの曖昧さの問題を扱って
いた。すなわち、(送信/受信)と肯定応答の対にCR
Cエラーが発生していると検出された場合、purod
ucerIDノードは、パケットがそのリングレット宛
先に達する前または後のいずれでCRCエラーが発生し
たかを判定することができない。したがって、これは、
再試行したパケットに「完了」というマークを確実に付
けることはできない。
【0180】この問題に対する解決策は、(6ビット
の)seqTable.acpt[]フィールドを各受
信側ノードのseqTableアレイに追加し、このp
roducerIdからのより小さい値のpLabe
l.seqを含むパケットによってそのseqTabl
e.seq[]がリセットされる前にこのノードで最後
に検出された有効順序番号を記録し、または使用中再試
行のために拒否された第1のパケットの順序番号(se
qTable.busy[]フィールドによって示され
る)を記録することである。ただし、seqTabl
e.acpt[]フィールドを追跡することは、以下の
意味を有することに留意されたい。 1.このノードで最後に受け入れられたパケットはse
qTable.acpt[]と等しいかそれより小さい
順序番号を備えていなければならず、したがって、新し
い未検出のパケットはseqTable.acpt[]
より大きい順序番号を備えていなければならない。ただ
し、seqTable.busy[]はリセットされる
ものとする。 2.エラーまたは使用中パケットがない場合、seqT
able.acptは現行のpLabel.seq値を
追跡する。この事実は、モジュロ64のローリング・カ
ウント定義を作成する際に非常に重要なものである。
【0181】図40〜60の例に関する注意事項 図40〜60は、パケット処理の連続段階における本発
明のシステムの状態を示しており、その場合、使用中条
件は消費側ノードに関して発生し、CRC(またはその
他の)エラー条件も発生し、「使用中」ノードは挙動が
不適切である。すなわち、何らかの所定の長さの時間ま
たは所定の数の送信または受信パケットの間、それが持
続的に使用中であったか、またはそれが間違ってack
_busy応答を伝送している。
【0182】図40〜60の例では、or_last_
ctは最後に送信した順序付きパケットのカウント数で
あり、or_rcvd_ctは最後に受信した順序付き
パケットのカウントを指すことに留意されたい。使用中
再試行が必要な場合(再送信論理で検出される)、or
_rcvd_ct値はフリーズされる。
【0183】この例では、以前の使用中パケット、たと
えば、54と59がretry_pkt待ち行列内に入
っていると想定する。ただし、以下の式が成り立つこと
に留意されたい。 また、28はその差(or_last_ct − or
_rcvd_ct)のしきい値と等しいかそれより小さ
い。
【図面の簡単な説明】
【図1】より大規模なネットワーク上のリングレットを
示すブロック図である。
【図2】単一リングレットを示すブロック図であって、
そのリングレット上で送受信するコマンドを示す図であ
る。
【図3】強力順次順序付け(SSO)の場合に送受信す
るコマンドを示す図である。
【図4】非アイデンポテント要求またはコマンドを伴う
SSOの場合に送受信するコマンドを示す図である。
【図5】図2のリングレットを示し、送信パケットおよ
び肯定応答のデータ構造を示す図である。
【図6】図2のリングレットを示し、パケットの再送信
を示す図である。
【図7】図2のリングレットを示し、消費側ノードのア
クションを示す図である。
【図8】送信インタフェースの観点から本発明の動作を
示すブロック図である。
【図9】送信ポートに関して本発明の使用中ループ動作
を示すタイミング図である。
【図10】本発明のシステムの論理サブシステムとその
動作を示す論理図であって、(非公式図面では)六角形
は判断ボックスであり、矩形は可変値が設定されるステ
ップであることを示す図である。
【図11】本発明のシステムの論理サブシステムとその
動作を示す論理図であって、(非公式図面では)六角形
は判断ボックスであり、矩形は可変値が設定されるステ
ップであることを示す図である。
【図12】本発明のシステムの論理サブシステムとその
動作を示す論理図であって、(非公式図面では)六角形
は判断ボックスであり、矩形は可変値が設定されるステ
ップであることを示す図である。
【図13】本発明のシステムの論理サブシステムとその
動作を示す論理図であって、(非公式図面では)六角形
は判断ボックスであり、矩形は可変値が設定されるステ
ップであることを示す図である。
【図14】本発明のシステムの論理サブシステムとその
動作を示す論理図であって、(非公式図面では)六角形
は判断ボックスであり、矩形は可変値が設定されるステ
ップであることを示す図である。
【図15】本発明のシステムの論理サブシステムとその
動作を示す論理図であって、(非公式図面では)六角形
は判断ボックスであり、矩形は可変値が設定されるステ
ップであることを示す図である。
【図16】本発明のシステムの論理サブシステムとその
動作を示す論理図であって、(非公式図面では)六角形
は判断ボックスであり、矩形は可変値が設定されるステ
ップであることを示す図である。
【図17】本発明のシステムの論理サブシステムとその
動作を示す論理図であって、(非公式図面では)六角形
は判断ボックスであり、矩形は可変値が設定されるステ
ップであることを示す図である。
【図18】本発明のシステムの論理サブシステムとその
動作を示す論理図であって、(非公式図面では)六角形
は判断ボックスであり、矩形は可変値が設定されるステ
ップであることを示す図である。
【図19】本発明のシステムの論理サブシステムとその
動作を示す論理図であって、(非公式図面では)六角形
は判断ボックスであり、矩形は可変値が設定されるステ
ップであることを示す図である。
【図20】本発明のシステムの論理サブシステムとその
動作を示す論理図であって、(非公式図面では)六角形
は判断ボックスであり、矩形は可変値が設定されるステ
ップであることを示す図である。
【図21】本発明のシステムの論理サブシステムとその
動作を示す論理図であって、(非公式図面では)六角形
は判断ボックスであり、矩形は可変値が設定されるステ
ップであることを示す図である。
【図22】本発明のシステムの論理サブシステムとその
動作を示す論理図であって、(非公式図面では)六角形
は判断ボックスであり、矩形は可変値が設定されるステ
ップであることを示す図である。
【図23】本発明のシステムの論理サブシステムとその
動作を示す論理図であって、(非公式図面では)六角形
は判断ボックスであり、矩形は可変値が設定されるステ
ップであることを示す図である。
【図24】本発明のシステムの論理サブシステムとその
動作を示す論理図であって、(非公式図面では)六角形
は判断ボックスであり、矩形は可変値が設定されるステ
ップであることを示す図である。
【図25】本発明のシステムの論理サブシステムとその
動作を示す論理図であって、(非公式図面では)六角形
は判断ボックスであり、矩形は可変値が設定されるステ
ップであることを示す図である。
【図26】本発明のシステムの論理サブシステムとその
動作を示す論理図であって、(非公式図面では)六角形
は判断ボックスであり、矩形は可変値が設定されるステ
ップであることを示す図である。
【図27】受信インタフェースの観点から本発明の動作
を示すブロック図である。
【図28】受信パケット・タイミングを示すタイミング
図である。
【図29】受信ノードに関して本発明のシステムの論理
サブシステムとその動作を示す論理図である。
【図30】受信ノードに関して本発明のシステムの論理
サブシステムとその動作を示す論理図である。
【図31】受信ノードに関して本発明のシステムの論理
サブシステムとその動作を示す論理図である。
【図32】受信ノードに関して本発明のシステムの論理
サブシステムとその動作を示す論理図である。
【図33】受信ノードに関して本発明のシステムの論理
サブシステムとその動作を示す論理図である。
【図34】受信ノードに関して本発明のシステムの論理
サブシステムとその動作を示す論理図である。
【図35】受信ノードに関して本発明のシステムの論理
サブシステムとその動作を示す論理図である。
【図36】受信ノードに関して本発明のシステムの論理
サブシステムとその動作を示す論理図である。
【図37】受信ノードに関して本発明のシステムの論理
サブシステムとその動作を示す論理図である。
【図38】受信ノードに関して本発明のシステムの論理
サブシステムとその動作を示す論理図である。
【図39】受信ノードに関して本発明のシステムの論理
サブシステムとその動作を示す論理図である。
【図40】本発明の好ましい実施形態におけるパケット
の構造と流れの両方を示すブロック図である。
【図41】本発明のシステムの動作による図40のブロ
ック図の後続状態を示す図である。
【図42】本発明のシステムの動作による図40のブロ
ック図の後続状態を示す図である。
【図43】本発明のシステムの動作による図40のブロ
ック図の後続状態を示す図である。
【図44】本発明のシステムの動作による図40のブロ
ック図の後続状態を示す図である。
【図45】本発明のシステムの動作による図40のブロ
ック図の後続状態を示す図である。
【図46】本発明のシステムの動作による図40のブロ
ック図の後続状態を示す図である。
【図47】本発明のシステムの動作による図40のブロ
ック図の後続状態を示す図である。
【図48】本発明のシステムの動作による図40のブロ
ック図の後続状態を示す図である。
【図49】本発明のシステムの動作による図40のブロ
ック図の後続状態を示す図である。
【図50】本発明のシステムの動作による図40のブロ
ック図の後続状態を示す図である。
【図51】本発明のシステムの動作による図40のブロ
ック図の後続状態を示す図である。
【図52】本発明のシステムの動作による図40のブロ
ック図の後続状態を示す図である。
【図53】本発明のシステムの動作による図40のブロ
ック図の後続状態を示す図である。
【図54】本発明のシステムの動作による図40のブロ
ック図の後続状態を示す図である。
【図55】本発明のシステムの動作による図40のブロ
ック図の後続状態を示す図である。
【図56】本発明のシステムの動作による図40のブロ
ック図の後続状態を示す図である。
【図57】本発明のシステムの動作による図40のブロ
ック図の後続状態を示す図である。
【図58】本発明のシステムの動作による図40のブロ
ック図の後続状態を示す図である。
【図59】本発明のシステムの動作による図40のブロ
ック図の後続状態を示す図である。
【図60】本発明のシステムの動作による図40のブロ
ック図の後続状態を示す図である。
【図61】本発明のシステムの動作による図40のブロ
ック図の後続状態を示す図である。
【符号の説明】
1〜4 リングレット1 A〜D ノード
───────────────────────────────────────────────────── フロントページの続き (71)出願人 591064003 901 SAN ANTONIO ROAD PALO ALTO,CA 94303,U. S.A.

Claims (33)

    【特許請求の範囲】
  1. 【請求項1】 コンピュータ・ネットワーク・サポート
    内の少なくとも1つの作成側ノードによって少なくとも
    1つの消費側ノードに伝送されるパケットの順序を維持
    するシステムにおいて、 前記作成側ノードによって送信された少なくとも1つの
    前記パケットに関する順序およびパケット状態情報を維
    持するように構成された前記作成側ノードの第1の送信
    サブシステムと、 前記消費側ノードによって前記作成側ノードに送信され
    た肯定応答に関する順序およびパケット状態情報を維持
    し、送信したパケットが結果的に肯定応答になった条件
    を検出するように構成された前記作成側ノードの第1の
    受信サブシステムと、 前記消費側ノードからの使用中肯定応答を検出するよう
    に構成された前記作成側ノードの第2の受信サブシステ
    ムと、 前記肯定応答に関する順序およびパケット状態情報を維
    持するように構成された前記消費側ノードの第2の送信
    サブシステムと、 前記作成側ノードによって送信された前記パケットに関
    する順序およびパケット状態情報を維持し、前記作成側
    ノードから前記消費側ノードが受信したすべてのパケッ
    トに関する全体的な順序状態情報およびパケット受入れ
    状態情報を維持するように構成され、さらに少なくとも
    1つの前記使用中肯定応答が検出されたときにパケット
    を拒否するように構成された前記消費側ノードの第3の
    受信サブシステムと、 前記ネットワーク内の少なくとも1つの前記消費側ノー
    ドが所定の応答基準を満たすことができない場合を判定
    するように構成された前記作成側ノード内のノード監視
    サブシステムとを含むことを特徴とするシステム。
  2. 【請求項2】 前記ノード監視サブシステムが前記消費
    側ノードから受信した複数の使用中肯定応答を記憶する
    ように構成された使用中肯定応答待ち行列を含んでいる
    ことを特徴とする請求項1に記載のシステム。
  3. 【請求項3】 前記ノード監視サブシステムが少なくと
    も所定数の前記使用中肯定応答を記憶している前記使用
    中肯定応答待ち行列に基づいて前記判定を行うように構
    成されていることを特徴とする請求項2に記載のシステ
    ム。
  4. 【請求項4】 前記所定の応答基準が前記作成側ノード
    が前記消費側ノードから複数の使用中肯定応答を受信す
    る所定長さの時間を含んでいることを特徴とする請求項
    1に記載のシステム。
  5. 【請求項5】 前記所定の応答基準が前記作成側ノード
    が前記消費側ノードから使用中肯定応答を何も受信しな
    い所定長さの時間を含んでいることを特徴とする請求項
    1に記載のシステム。
  6. 【請求項6】 前記システムが第1のパケットを2回以
    上受信したときに、前記第1のパケットがアドレス指定
    されているノードの状態を未変更の状態で維持しなが
    ら、非アイデンポテント要求を含む少なくとも前記第1
    のパケットを処理するように構成されていることを特徴
    とする請求項1に記載のシステム。
  7. 【請求項7】 前記再試行パケットの第2のインスタン
    スを受信したときに前記消費側ノードの状態を未変更の
    状態で維持しながら、非アイデンポテント要求を含む少
    なくとも1つのパケットを再試行する用に構成された再
    試行サブシステムを含むことを特徴とする請求項1に記
    載のシステム。
  8. 【請求項8】 前記ネットワークがリングレット・ネッ
    トワークであることを特徴とする請求項1に記載のシス
    テム。
  9. 【請求項9】 前記ネットワークが強力順次順序付けを
    維持するように構成された少なくとも1つの順序付けさ
    れたノードと、強力順序付けを維持する態様以外の態様
    で構成された少なくとも1つの順序付けされていないノ
    ードとを含んでいることを特徴とする請求項1に記載の
    システム。
  10. 【請求項10】 前記ネットワークが非アイデンポテン
    トコマンドをサポートするように構成された少なくとも
    第1のノードと、非アイデンポテントコマンドをサポー
    トしないように構成された第2のノードとを含んでいる
    ことを特徴とする請求項1に記載のシステム。
  11. 【請求項11】 前記ネットワークが異なる時点で、強
    力順次順序付けを維持する態様と、強力順次順序付けを
    維持する以外の態様の両方で構成できる少なくとも1つ
    の動的ノードを含んでいることを特徴とする請求項1に
    記載のシステム。
  12. 【請求項12】 エラー検出サブシステムと、 現行パケットの送信時に前記エラー検出サブシステムに
    よってエラーを検出したときに、それぞれの前記消費側
    ノードの前記順序を共通ネットワーク値にリセットする
    ように構成されたリセット・サブシステムとをさらに含
    むことを特徴とする請求項1に記載のシステム。
  13. 【請求項13】 前記リセット・サブシステムが前記作
    成側ノードに以前送信したパケットを2回以上再送信さ
    せ、かつ有効な肯定応答パケットを前記作成側パケット
    が受信するまで、必要に応じ、これを繰り返させるよう
    に構成されていることを特徴とする請求項12に記載の
    システム。
  14. 【請求項14】 前記の以前送信したパケットが肯定応
    答実行済みパケットを前記作成側ノードが受信したパケ
    ットであることを特徴とする請求項13に記載のシステ
    ム。
  15. 【請求項15】 前記の以前送信したパケットと前記現
    行パケットを含んで、これらの間で再試行パケットを送
    信するように構成されている第1の再試行サブシステム
    をさらに含んでいることを特徴とする請求項14に記載
    のシステム。
  16. 【請求項16】 前記再試行パケットの送信に応答して
    前記作成側ノードで受信した再試行パケット肯定応答の
    妥当性を判定するように構成された再試行パケット妥当
    性検査サブシステムをさらに含んでいることを特徴とす
    る請求項15に記載のシステム。
  17. 【請求項17】 再試行パケット肯定応答が無効状態で
    あると前記再試行パケット妥当性検査サブシステムが判
    定した場合に、前記再試行パケットを送信するように構
    成された第2の再試行サブシステムをさらに含んでいる
    ことを特徴とする請求項16に記載のシステム。
  18. 【請求項18】 前記リセット・サブシステムが再送信
    前に前記の以前に送信したパケットからデータ・フィー
    ルドを除去するように構成されていることを特徴とする
    請求項13に記載のシステム。
  19. 【請求項19】 前記リセット・サブシステムが前記の
    各消費側ノードにおいて順序妥当状態値を維持し、前記
    の以前に送信したパケットの前記の各消費側ノードにお
    ける受信時に前記の各順序妥当状態値を共通値にリセッ
    トするように構成された順序妥当状態サブシステムを含
    んでいることを特徴とする請求項13に記載のシステ
    ム。
  20. 【請求項20】 前記再試行サブシステムが前記の各消
    費側ノードにおいて受入れ妥当状態値を維持するように
    構成された受入れ妥当状態サブシステムと、 前記再試行パケットの受入れ有効フィールドと前記の各
    消費側ノードにおける前記受入れ妥当状態値との比較を
    生成するように構成された受入れ妥当性比較サブシステ
    ムと、 前記の比較が所定の基準に合致している前記の各再試行
    パケットを拒絶する再試行パケット拒絶サブシステムと
    を含んでいることを特徴とする請求項15に記載のシス
    テム。
  21. 【請求項21】 複数の送信および消費側ノードを含
    み、それぞれの前記消費側ノードが、前記パケットおよ
    び肯定応答が前記状態情報を読み取る消費側ノード以外
    のノードにアドレス指定されていても、強力順次順序付
    けをサポートするすべてのノード間で共通の順序付け情
    報を維持するために、複数の前記パケットおよび前記肯
    定応答の状態情報をそれぞれ読み取るように構成された
    前記受信サブシステムの1つを含むことを特徴とする請
    求項1に記載のシステム。
  22. 【請求項22】 複数の前記作成側ノードと複数の前記
    消費側ノードとを含み、 前記作成側および消費側ノードの少なくとも部分集合
    が、SSOパケットをそれぞれ送信および受信し、前記
    SSOパケットのSSO肯定応答をそれぞれ受信および
    送信するための強力順次順序付け(SSO)ノードとし
    て構成され、 前記部分集合のそれぞれの前記作成側および消費側ノー
    ドが、前記SSOパケットまたは前記SSO肯定応答あ
    るいはその両方を読み取るように構成されていることを
    特徴とする請求項1に記載のシステム。
  23. 【請求項23】 前記ネットワーク上を作成側ノードに
    よって伝送された際の要求パケットの順序を未変更の状
    態に維持し、かつ前記要求パケットに応じて消費側ノー
    ドによって前記ネットワーク上に生成された応答パケッ
    トの順序を未変更の状態に維持するように構成されてい
    ることを特徴とする請求項1に記載のシステム。
  24. 【請求項24】 コンピュータ・ネットワーク内の少な
    くとも1つの作成側ノードによって少なくとも1つの消
    費側ノードに伝送されるパケットの順序を維持するため
    のシステムにおいて、 その順序内の少なくとも1つのパケットがその順序内の
    有効な位置にあるかどうかを判定するように構成された
    前記消費側ノード内の順序検査サブシステムと、 受信した肯定応答が前記消費側ノード内の使用中条件を
    示すかどうかを判定するように構成された前記作成側ノ
    ード内の使用中肯定応答検出サブシステムと、 前記ネットワーク内の少なくとも1つの前記消費側ノー
    ドが所定の応答基準を満たすことができない場合を判定
    するように構成された前記作成側ノード内のノード監視
    サブシステムとを含むことを特徴とするシステム。
  25. 【請求項25】 前記ノード監視サブシステムが前記消
    費側ノードから受信した複数の使用中肯定応答を記憶す
    るように構成された使用中肯定応答待ち行列を含んでい
    ることを特徴とする請求項24に記載のシステム。
  26. 【請求項26】 前記ノード監視サブシステムが少なく
    とも所定数の前記使用中肯定応答を記憶している前記使
    用中肯定応答待ち行列に基づいて前記判定を行うように
    構成されていることを特徴とする請求項25に記載のシ
    ステム。
  27. 【請求項27】 前記所定の応答基準が前記作成側ノー
    ドが前記消費側ノードから複数の使用中肯定応答を受信
    する所定長さの時間を含んでいることを特徴とする請求
    項24に記載のシステム。
  28. 【請求項28】 前記所定の応答基準が前記作成側ノー
    ドが前記消費側ノードから使用中肯定応答を何も受信し
    ない所定長さの時間を含んでいることを特徴とする請求
    項24に記載のシステム。
  29. 【請求項29】 コンピュータ・ネットワーク内の少な
    くとも1つの作成側ノードによって少なくとも1つの消
    費側ノードに伝送されるパケットの順序を維持するため
    のシステムにおいて、 前に伝送され未処理のパケットに関する前記作成側ノー
    ドへの肯定応答がない場合に前記作成側ノードからのパ
    ケットをパイプライン化するように構成されたパイプラ
    イン化サブシステムと、 第1の前記未処理パケットと現行パケットとの間の順序
    カウント差を決定するように構成されたカウンタ・サブ
    システムと、 前記順序カウント差が所定のしきい値に達したときに前
    記パケットの前記パイプライン化を終了するように構成
    された遮断サブシステムと、 前記消費側ノードで使用中条件を検出するように構成さ
    れた使用中検出サブシステムと、 前記使用中条件が検出されたときに前記パケットのパイ
    プライン化を中断するように構成されたパケット中断サ
    ブシステムと、 前記ネットワーク内の少なくとも1つの前記消費側ノー
    ドが所定の応答基準を満たすことができない場合を判定
    するように構成された前記作成側ノード内のノード監視
    サブシステムとを含むことを特徴とするシステム。
  30. 【請求項30】 前記ノード監視サブシステムが前記消
    費側ノードから受信した複数の使用中肯定応答を記憶す
    るように構成された使用中肯定応答待ち行列を含んでい
    ることを特徴とする請求項29に記載のシステム。
  31. 【請求項31】 前記ノード監視サブシステムが少なく
    とも所定数の前記使用中肯定応答を記憶している前記使
    用中肯定応答待ち行列に基づいて前記判定を行うように
    構成されていることを特徴とする請求項30に記載のシ
    ステム。
  32. 【請求項32】 前記所定の応答基準が前記作成側ノー
    ドが前記消費側ノードから複数の使用中肯定応答を受信
    する所定長さの時間を含んでいることを特徴とする請求
    項29に記載のシステム。
  33. 【請求項33】 前記所定の応答基準が前記作成側ノー
    ドが前記消費側ノードから使用中肯定応答を何も受信し
    ない所定長さの時間を含んでいることを特徴とする請求
    項29に記載のシステム。
JP9211428A 1996-07-01 1997-07-01 ビジーノードと欠陥ノードを有するリング・ネットワーク・システムで強くシーケンシャルに順序付けられたパケット・フローを維持するシステム Pending JPH10164140A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/673,849 US6065052A (en) 1996-07-01 1996-07-01 System for maintaining strongly sequentially ordered packet flow in a ring network system with busy and failed nodes
US08/673849 1996-07-01

Publications (1)

Publication Number Publication Date
JPH10164140A true JPH10164140A (ja) 1998-06-19

Family

ID=24704340

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9211428A Pending JPH10164140A (ja) 1996-07-01 1997-07-01 ビジーノードと欠陥ノードを有するリング・ネットワーク・システムで強くシーケンシャルに順序付けられたパケット・フローを維持するシステム

Country Status (3)

Country Link
US (3) US6065052A (ja)
EP (1) EP0836299A3 (ja)
JP (1) JPH10164140A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7489697B2 (en) 2003-08-06 2009-02-10 Samsung Electronics Co., Ltd. IEEE 1394-based unidirectional ring system for indoor backbone network

Families Citing this family (73)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6064672A (en) * 1996-07-01 2000-05-16 Sun Microsystems, Inc. System for dynamic ordering support in a ringlet serial interconnect
FR2779301B1 (fr) * 1998-05-26 2000-07-21 Thomson Multimedia Sa Procede d'identification d'appareils dans un reseau de communication et appareil de mise en oeuvre
US7159005B1 (en) 1998-10-16 2007-01-02 International Business Machines Corporation Methods, systems and computer program products for restartable multiplexed file transfers
US6401136B1 (en) * 1998-11-13 2002-06-04 International Business Machines Corporation Methods, systems and computer program products for synchronization of queue-to-queue communications
US7283476B2 (en) * 1999-01-11 2007-10-16 Hewlett-Packard Development Company, L.P. Identity negotiation switch protocols
US6628607B1 (en) 1999-07-09 2003-09-30 Apple Computer, Inc. Method and apparatus for loop breaking on a serial bus
JP2001086120A (ja) * 1999-09-10 2001-03-30 Matsushita Electric Ind Co Ltd ネットワーク間接続機器およびネットワークシステム
US6691096B1 (en) 1999-10-28 2004-02-10 Apple Computer, Inc. General purpose data container method and apparatus for implementing AV/C descriptors
US6959343B1 (en) 1999-11-01 2005-10-25 Apple Computer, Inc. Method and apparatus for dynamic link driver configuration
US6671768B1 (en) 1999-11-01 2003-12-30 Apple Computer, Inc. System and method for providing dynamic configuration ROM using double image buffers for use with serial bus devices
US6813663B1 (en) 1999-11-02 2004-11-02 Apple Computer, Inc. Method and apparatus for supporting and presenting multiple serial bus nodes using distinct configuration ROM images
US8762446B1 (en) 1999-11-02 2014-06-24 Apple Inc. Bridged distributed device control over multiple transports method and apparatus
US6618750B1 (en) 1999-11-02 2003-09-09 Apple Computer, Inc. Method and apparatus for determining communication paths
US6631426B1 (en) 1999-11-02 2003-10-07 Apple Computer, Inc. Automatic ID allocation for AV/C entities
US6636914B1 (en) 1999-11-05 2003-10-21 Apple Computer, Inc. Method and apparatus for arbitration and fairness on a full-duplex bus using dual phases
US6587904B1 (en) * 1999-11-05 2003-07-01 Apple Computer, Inc. Method and apparatus for preventing loops in a full-duplex bus
US6457086B1 (en) 1999-11-16 2002-09-24 Apple Computers, Inc. Method and apparatus for accelerating detection of serial bus device speed signals
US7266617B1 (en) * 2000-01-18 2007-09-04 Apple Inc. Method and apparatus for border node behavior on a full-duplex bus
US6639918B1 (en) 2000-01-18 2003-10-28 Apple Computer, Inc. Method and apparatus for border node behavior on a full-duplex bus
US7421507B2 (en) * 2000-02-16 2008-09-02 Apple Inc. Transmission of AV/C transactions over multiple transports method and apparatus
US6831928B1 (en) 2000-02-17 2004-12-14 Apple Computer, Inc. Method and apparatus for ensuring compatibility on a high performance serial bus
US7050453B1 (en) * 2000-02-17 2006-05-23 Apple Computer, Inc. Method and apparatus for ensuring compatibility on a high performance serial bus
US6850967B1 (en) * 2000-02-19 2005-02-01 Hewlett-Packard Development Company, L.P. System and method for ensuring transparent sychronization of multiple applications across remote systems
US6618785B1 (en) 2000-04-21 2003-09-09 Apple Computer, Inc. Method and apparatus for automatic detection and healing of signal pair crossover on a high performance serial bus
US6718497B1 (en) 2000-04-21 2004-04-06 Apple Computer, Inc. Method and apparatus for generating jitter test patterns on a high performance serial bus
US6917588B1 (en) * 2000-05-16 2005-07-12 Nortel Networks Limited Apparatus and method for classifying data packet flows
US6912608B2 (en) * 2001-04-27 2005-06-28 Pts Corporation Methods and apparatus for pipelined bus
AU2002326752A1 (en) * 2001-08-24 2003-03-10 Intel Corporation (A Delaware Corporation) (A Delawware Corporation) A general input/output architecture protocol and related methods to manage data integrity
US6981110B1 (en) * 2001-10-23 2005-12-27 Stephen Waller Melvin Hardware enforced virtual sequentiality
US20030158883A1 (en) * 2002-02-04 2003-08-21 Drudis Antoni N. Message processing
US7298746B1 (en) 2002-02-11 2007-11-20 Extreme Networks Method and system for reassembling and parsing packets in a network environment
US7447777B1 (en) * 2002-02-11 2008-11-04 Extreme Networks Switching system
US7321926B1 (en) 2002-02-11 2008-01-22 Extreme Networks Method of and system for allocating resources to resource requests
US7584262B1 (en) 2002-02-11 2009-09-01 Extreme Networks Method of and system for allocating resources to resource requests based on application of persistence policies
US7814204B1 (en) 2002-02-11 2010-10-12 Extreme Networks, Inc. Method of and system for analyzing the content of resource requests
DE10223007A1 (de) * 2002-05-22 2003-12-11 Bosch Gmbh Robert Verfahren und Vorrichtung zur Übertragung von Informationen in einem Netzwerk sowie entsprechendes Netzwerk
AU2003245225A1 (en) * 2002-07-19 2004-02-09 Xelerated Ab Method and apparatus for pipelined processing of data packets
US7417973B1 (en) 2002-12-31 2008-08-26 Apple Inc. Method, apparatus and computer program product for ensuring node participation in a network bus
US7457302B1 (en) 2002-12-31 2008-11-25 Apple Inc. Enhancement to loop healing for malconfigured bus prevention
US6965564B2 (en) 2003-02-14 2005-11-15 America Online, Inc. Wireless datagram transaction protocol system
US7353284B2 (en) 2003-06-13 2008-04-01 Apple Inc. Synchronized transmission of audio and video data from a computer to a client via an interface
US7668099B2 (en) * 2003-06-13 2010-02-23 Apple Inc. Synthesis of vertical blanking signal
US8275910B1 (en) 2003-07-02 2012-09-25 Apple Inc. Source packet bridge
US7788567B1 (en) * 2003-11-18 2010-08-31 Apple Inc. Symbol encoding for tolerance to single byte errors
US7995606B1 (en) 2003-12-03 2011-08-09 Apple Inc. Fly-by and ack-accelerated arbitration for broadcast packets
US7308517B1 (en) * 2003-12-29 2007-12-11 Apple Inc. Gap count analysis for a high speed serialized bus
US7237135B1 (en) 2003-12-29 2007-06-26 Apple Inc. Cyclemaster synchronization in a distributed bridge
US7349978B2 (en) * 2004-01-15 2008-03-25 Microsoft Corporation Spurious timeout detection in TCP based networks
JP4459018B2 (ja) * 2004-10-28 2010-04-28 富士通株式会社 ノード装置
US7765305B2 (en) * 2005-04-07 2010-07-27 Microsoft Corporation Retry request overload protection
US8005879B2 (en) * 2005-11-21 2011-08-23 Sap Ag Service-to-device re-mapping for smart items
US20070118496A1 (en) * 2005-11-21 2007-05-24 Christof Bornhoevd Service-to-device mapping for smart items
US8156208B2 (en) * 2005-11-21 2012-04-10 Sap Ag Hierarchical, multi-tiered mapping and monitoring architecture for service-to-device re-mapping for smart items
US20090265485A1 (en) * 2005-11-30 2009-10-22 Broadcom Corporation Ring-based cache coherent bus
US8522341B2 (en) * 2006-03-31 2013-08-27 Sap Ag Active intervention in service-to-device mapping for smart items
US8296413B2 (en) * 2006-05-31 2012-10-23 Sap Ag Device registration in a hierarchical monitor service
US8131838B2 (en) * 2006-05-31 2012-03-06 Sap Ag Modular monitor service for smart item monitoring
US8065411B2 (en) 2006-05-31 2011-11-22 Sap Ag System monitor for networks of nodes
US7792137B2 (en) * 2006-07-05 2010-09-07 Abidanet, Llc Self-organized and self-managed ad hoc communications network
US7765385B2 (en) * 2007-04-18 2010-07-27 International Business Machines Corporation Fault recovery on a parallel computer system with a torus network
US8396960B2 (en) * 2009-05-08 2013-03-12 Canon Kabushiki Kaisha Efficient network utilization using multiple physical interfaces
US8880716B2 (en) * 2009-05-08 2014-11-04 Canon Kabushiki Kaisha Network streaming of a single data stream simultaneously over multiple physical interfaces
US8325601B2 (en) * 2009-05-08 2012-12-04 Canon Kabushiki Kaisha Reliable network streaming of a single data stream over multiple physical interfaces
US8396952B2 (en) * 2009-08-12 2013-03-12 International Business Machines Corporation Provisioning and commissioning a communications network with a virtual network operations center and interface
US8488960B2 (en) * 2009-08-12 2013-07-16 International Business Machines Corporation Synchronizing events on a communications network using a virtual command interface
US8504660B2 (en) * 2009-08-12 2013-08-06 International Business Machines Corporation Validation of the configuration of a data communications network using a virtual network operations center
US8356109B2 (en) 2010-05-13 2013-01-15 Canon Kabushiki Kaisha Network streaming of a video stream over multiple communication channels
US9037122B2 (en) 2012-02-29 2015-05-19 Alcatel Lucent Fixed line extension for mobile telephones
US9042874B2 (en) * 2012-02-29 2015-05-26 Alcatel Lucent System and/or method for using mobile telephones as extensions
US9172507B2 (en) 2012-04-03 2015-10-27 Nevion Europe As Signal protection
US9402107B2 (en) 2013-03-15 2016-07-26 Time Warner Cable Enterprises Llc Apparatus and methods for delivery of multicast and unicast content in a content delivery network
US9596297B2 (en) 2013-05-16 2017-03-14 Toshiba Global Commerce Solutions Holdings Corporation Managing communications in a multi-client, multi-server environment
CN111224885B (zh) * 2020-01-07 2023-05-26 联合汽车电子有限公司 节点标序方法、节点标序系统及车载无钥匙系统

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0638600B2 (ja) * 1983-12-28 1994-05-18 株式会社東芝 ローカルエリアネットワークシステム
US4725834A (en) * 1984-02-27 1988-02-16 American Telephone And Telegraph Company, At&T Bell Laboratories Reliable broadcast protocol for a token passing bus network
WO1986003639A1 (en) * 1984-12-03 1986-06-19 The University Of Western Australia Queueing protocol
US4922408A (en) * 1985-09-27 1990-05-01 Schlumberger Technology Corporation Apparatus for multi-processor communications
US4807118A (en) * 1987-01-14 1989-02-21 Hewlett-Packard Company Method for handling slot requests over a network
US5341483A (en) * 1987-12-22 1994-08-23 Kendall Square Research Corporation Dynamic hierarchial associative memory
US5055999A (en) * 1987-12-22 1991-10-08 Kendall Square Research Corporation Multiprocessor digital data processing system
US5084877A (en) * 1989-05-05 1992-01-28 At&T Bell Laboratories High speed transport protocol
JP2764896B2 (ja) * 1992-04-09 1998-06-11 日本電気株式会社 データ送達確認システム
US5260933A (en) * 1992-05-15 1993-11-09 International Business Machines Corporation Acknowledgement protocol for serial data network with out-of-order delivery
US5781715A (en) * 1992-10-13 1998-07-14 International Business Machines Corporation Fault-tolerant bridge/router with a distributed switch-over mechanism
AU7322694A (en) * 1993-07-09 1995-02-06 Apple Computer, Inc. System and method for sending and responding to information requests in a communications network
US5577211A (en) * 1994-05-11 1996-11-19 Ibm Corporation System and method using chained structure queues for ordering of message delivery between connected nodes wherein unsuccessful message portion is skipped and retried
JP3041200B2 (ja) * 1994-07-21 2000-05-15 シャープ株式会社 データ通信装置およびその方法
US5495481A (en) * 1994-09-30 1996-02-27 Apple Computer, Inc. Method and apparatus for accelerating arbitration in a serial bus by detection of acknowledge packets
US5548728A (en) * 1994-11-04 1996-08-20 Canon Information Systems, Inc. System for reducing bus contention using counter of outstanding acknowledgement in sending processor and issuing of acknowledgement signal by receiving processor to indicate available space in shared memory
US5592486A (en) * 1995-03-17 1997-01-07 Advanced Micro Devices, Inc. System and method for efficiently monitoring information in a network having a plurality of repeaters
US5774479A (en) * 1995-03-30 1998-06-30 Motorola, Inc. Method and system for remote procedure call via an unreliable communication channel using multiple retransmission timers
US5870540A (en) * 1995-11-20 1999-02-09 Ncr Corporation Low overhead method for detecting communication failures on a network
US5828847A (en) * 1996-04-19 1998-10-27 Storage Technology Corporation Dynamic server switching for maximum server availability and load balancing

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7489697B2 (en) 2003-08-06 2009-02-10 Samsung Electronics Co., Ltd. IEEE 1394-based unidirectional ring system for indoor backbone network

Also Published As

Publication number Publication date
EP0836299A3 (en) 2005-07-20
US6233615B1 (en) 2001-05-15
US6463472B1 (en) 2002-10-08
US6065052A (en) 2000-05-16
EP0836299A2 (en) 1998-04-15
US20020059442A1 (en) 2002-05-16

Similar Documents

Publication Publication Date Title
JPH10164140A (ja) ビジーノードと欠陥ノードを有するリング・ネットワーク・システムで強くシーケンシャルに順序付けられたパケット・フローを維持するシステム
JPH10164139A (ja) ビジーノードを有するリング・ネットワークでシーケンシャルオーダリングを保持しアイデンポテント・コマンドをサポートするシステム
US6545981B1 (en) System and method for implementing error detection and recovery in a system area network
US6493343B1 (en) System and method for implementing multi-pathing data transfers in a system area network
Cerf et al. A protocol for packet network intercommunication
JP3715991B2 (ja) 並列プロセッサ
US6064672A (en) System for dynamic ordering support in a ringlet serial interconnect
JP5049100B2 (ja) 埋め込み自己チェック非同期パイプライン型実行(escape)
US7106742B1 (en) Method and system for link fabric error detection and message flow control
US8774203B2 (en) One-way message notification with out-of-order packet delivery
US4622550A (en) Data communication system
JP3560423B2 (ja) パケット送受信装置及びパケット受信装置
US8792512B2 (en) Reliable message transport network
JP2772367B2 (ja) データ・パケットを送信する方法およびデータ処理システム
JPS63220631A (ja) 通信システムにおけるノード装置
JP4807828B2 (ja) ブロードバンド・エンジンのためのエンベロープ・パケット・アーキテクチュア
US20010030964A1 (en) Method and apparatus for maintaining packet ordering with error recovery among multiple outstanding packets between two devices
OPDERBECK et al. WE INFLUENCE OF CONTROL PROCEDURES ON THE PERFORMANCE OF PACKET-SWITCHED NETWORKS
EP0094177A2 (en) Apparatus for direct memory-to-memory intercomputer communication
JPH1117764A (ja) シリアルインタフェース回路およびその信号処理方法
JPH1117710A (ja) シリアルインタフェース回路
GB2120055A (en) Data communication system
JP2003338808A (ja) データ転送装置
Gopal et al. ARQ protocols for high speed hardware implementation
JPH02135831A (ja) 通信プロトコールの冗長化方式

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040608

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060516

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20060816

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20060821

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061113

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070306

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070606

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070611

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080108