(57)【要約】      （修正有）【課題】同期化フィールドと、前のデータパケットの受信の受信確認を示す受信確認フィールドと、システムの欠陥を示す情報を含む応答フィールドと、ヘッダフィールドと、該データパケットに割り当てられた番号を含むシーケンス番号フィールドと、データフィールドと、パケット末端フィールドと、エラー検査フィールドと、を備える、データパケットの提供。【解決手段】同期化フィールドと、前のデータパケットの受信の受信確認を示す受信確認フィールドと、システムの欠陥を示す情報を含む応答フィールドと、ヘッダフィールドと、該データパケットに割り当てられた番号を含むシーケンス番号フィールドと、データフィールドと、パケット末端フィールドと、エラー検査フィールドと、を備える、データパケット。【選択図】図１
2007174644.tif 000002
【特許請求の範囲】
【請求項１】
同期化フィールドと、
前のデータパケットの受信の受信確認を示す受信確認フィールドと、
システムの欠陥を示す情報を含む応答フィールドと、
ヘッダフィールドと、
該データパケットに割り当てられた番号を含むシーケンス番号フィールドと、
データフィールドと、
パケット末端フィールドと、
エラー検査フィールドと
を備える、データパケット。
【請求項２】
前記同期化フィールドは、１バイト長であり、
前記受信確認フィールドは、１バイト長であり、
前記応答フィールドは、１バイト長であり、
前記ヘッダフィールドは、１バイト長であり、
前記シーケンス番号フィールドは、１バイト長であり、
前記データフィールドは、３２バイト長であり、
前記パケット末端フィールドは、１バイト長であり、
前記エラー検査フィールドは、２バイト長である、請求項１に記載のデータバケット。
【請求項３】
前記パケット末端フィールドは、前記データフィールドにおける３２バイトのうちのどれだけが充填バイトであるかの表示を含んでいる、請求項２に記載のデータパケット。
【請求項４】
前記同期化フィールドは、所定のシフト不変性の値を含んでいる、請求項１に記載のデータパケット。
【請求項５】
前記応答フィールドは、フロー制御情報を含んでいる、請求項１に記載のデータパケット。
【請求項６】
前記フロー制御情報は、複数のチャネルに対するフロー制御情報を含んでいる、請求項５に記載のデータパケット。
【請求項７】
前記ヘッダフィールドは、前記データパケットを対象とするチャネルを示すチャネル選択サブフィールドを含んでいる、請求項１に記載のデータパケット。
【請求項８】
前記ヘッダフィールドは、コマンドサブフィールドを含んでいる、請求項１に記載のデータパケット。
【請求項９】
前記コマンドサブフィールドは、同期化コマンドを含んでいる、請求項８に記載のデータパケット。
【請求項１０】
第１のノードにおいて、第１のデータパケットにおける受信確認フィールドを第２のノードから受信することと、
該受信確認フィールドの受信に応答して、該第１のデータパケットにおける該受信確認フィールドが否定受信確認（ＮＡＫ）である場合に限り、該第１のノードから既に伝送されたデータパケットを２つ以上再伝送することと、
該受信確認フィールドの受信に応答して、該受信確認フィールドが肯定受信確認（ＡＣＫ）である場合に限り、第２のデータパケットを該第１のノードから該第２のノードに伝送し、該第２のデータパケットの伝送の開始後に、該第１のデータパケットにおけるエラーを検査することと、
該第１のデータパケットにおいてエラーが検出された場合に限り、該第２のデータパケットの伝送を完了した実質的な直後に、該第１のノードから該第２のノードにＮＡＫを伝送することと、
該第１のデータパケットにおいてエラーが検出されなかった場合に限り、該第２のデータパケットの伝送を完了した実質的な直後に、第３のデータパケットを該第１のノードから該第２のノードに伝送することと
を包含する、方法。
【請求項１１】
第１のノードにおいて、第２のノードから伝送された第１のデータパケットを受信することであって、該第１のデータパケットは、欠陥信号を含んでいる、ことと、
該欠陥信号に応答して、該第１のノードを安全状態に置くことと、
該第１のノードにおいて、該第１のデータパケットのデータフィールドに含まれる情報を処理する前に、該欠陥信号を含む第２のデータパケットを該第１のノードから第３のノードに伝送することと
を包含する、方法。
【請求項１２】
前記第１のノードにおいて、前記第２のノードから伝送された第３のデータパケットを受信することであって、該第３のデータパケットは、前記欠陥信号を含んでおらず、該第１のノードは、安全状態にある、ことと、
該第１のノードを動作可能状態に置くことと、
該第１のノードから該第３のノードに第４のパケットを伝送することであって、該第４のパケットは、該欠陥信号を含んでいない、ことと
をさらに包含する、請求項１１に記載の方法。
【請求項１３】
コンピュータ読取り可能媒体に明確に具体化されたコンピュータプログラム製品であって、該コンピュータプログラム製品は、
第１のノードにおいて、第１のデータパケットにおける受信確認フィールドを第２のノードから受信し、
該受信確認フィールドの受信に応答して、該第１のデータパケットにおける該受信確認フィールドが否定受信確認（ＮＡＫ）である場合に限り、該第１のノードから既に伝送されたデータパケットを２つ以上再伝送し、
該受信確認フィールドの受信に応答して、該受信確認フィールドが肯定受信確認（ＡＣＫ）である場合に限り、第２のデータパケットを該第１のノードから該第２のノードに伝送し、該第２のデータパケットの伝送の開始後に、該第１のデータパケットにおけるエラーを検査し、
該第１のデータパケットにおいてエラーが検出された場合に限り、該第２のデータパケットの伝送を完了した実質的な直後に、該第１のノードから該第２のノードにＮＡＫを伝送し、
該第１のデータパケットにおいてエラーが検出されなかった場合に限り、該第２のデータパケットの伝送を完了した実質的な直後に、第３のデータパケットを該第１のノードから該第２のノードに伝送する
動作をプログラム可能なプロセッサに実行させるように動作することが可能な命令を備えている、コンピュータプログラム製品。
【請求項１４】
コンピュータ読取り可能媒体に明確に具体化されたコンピュータプログラム製品であって、該コンピュータプログラム製品は、
第１のノードにおいて、第２のノードから伝送された第１のデータパケットを受信し、該第１のデータパケットは、欠陥信号を含んでおり、
該欠陥信号に応答して、該第１のノードを安全状態に置き、
該第１のノードにおいて、該第１のデータパケットのデータフィールドに含まれる情報を処理する前に、該欠陥信号を含む第２のデータパケットを該第１のノードから第３のノードに伝送する
動作をプログラム可能なプロセッサに実行させるように動作することが可能な命令を備えている、コンピュータプログラム製品。
【請求項１５】
前記第１のノードにおいて、前記第２のノードから伝送された第３のデータパケットを受信し、該第３のデータパケットは、前記欠陥信号を含んでおらず、該第１のノードは、安全状態にあり、
該第１のノードを安全状態に置き、
該第１のノードから該第３のノードに第４のパケットを伝送し、該第４のパケットは、該欠陥信号を含んでいない
動作を実行させるように動作することが可能な命令をさらに備えている、請求項１４に記載の製品。
【発明の詳細な説明】
【技術分野】
【０００１】
（優先権主張）
本出願は、２００５年１２月２２日に出願された米国仮特許出願第６０／７５３，９９１号の利益を主張し、その全体の内容は、参考として、本明細書に援用される。
【０００２】
本開示は、情報システムに関する。
【背景技術】
【０００３】
（背景）
いくつかのアプリケーションは、通信のために、高帯域要求、ならびに、厳しい同期化、遅延、および信頼性の要求を有している。例えば、ロボット補助式手術は、制御信号とフィードバック信号とをリアルタイムに伝送するために、高帯域を要求する。外科医の動きとロボットの動きとの間には、理想的にはできる限り小さな遅延が存在すべきなので、そのようなアプリケーションの同期化および遅延の要求は、厳しいものとなる。データ伝送のエラーは患者を傷付け得るため、これらのアプリケーションにおける通信は、信頼性が高くなければならない。
【０００４】
ロボット補助式手術に用いられる従来のある通信システムは、数百の経路（例えば、ワイヤ）を用いることにより、外科医用の制御コンソールをロボットアームに接続する。しかしながら、数百の経路を用いることは、システムの設定とメンテナンスとを煩雑にし、すべての経路をルーティングするための実質的な空間を要求する。
【０００５】
従来の通信規格は、いくつかのエリアではまずまずの性能を提供するが、他のエリアでは十分な性能を提供しない。例えば、ＩＥＥＥ−１３９４インターフェース規格は、同期、シリアル、およびポイント・トゥ・ポイントの通信を提供する。ＩＥＥＥ−１３９４チャネルは、認可された帯域幅を有するが、約１２５マイクロ秒の範囲内までの同期化を提供し得るに過ぎない。そのような性能は、より厳しい同期化を要求するいくつかのアプリケーションに対しては、十分なものとはなり得ない。
【発明の開示】
【課題を解決するための手段】
【０００６】
（要約）
一局面において、データパケットが提供され、上記データパケットは、同期化フィールドと、前のデータパケットの受信の受信確認を示す受信確認フィールドとを含む。データパケットはまた、システムの欠陥を示す情報を含む応答フィールドと、ヘッダフィールドと、データパケットに割り当てられた番号を含むシーケンス番号フィールドとを含む。データパケットは、データフィールドと、パケット末端フィールドと、エラー検査フィールドとをさらに含む。
【０００７】
特定の実施は、以下の１つ以上の特徴を含み得る。同期化フィールドと、受信確認フィールドと、応答フィールドと、ヘッダフィールドと、シーケンス番号フィールドと、パケット末端フィールドとは、各々１バイト長であり得る。データフィールドは、３２バイト長であり得る。エラー検査フィールドは、２バイト長であり得る。パケット末端フィールドは、データフィールドにおける３２バイトうちのどれだけが充填バイトであるかの表示を含み得る。同期化フィールドは、所定のシフト不変性の値を含み得る。応答フィールドは、フロー制御情報を含み、上記フロー制御情報は、複数のチャネルに対するフロー制御情報を含み得る。ヘッダフィールドは、データパケットを対象とするチャネルを示すチャネル選択サブフィールドを含み得る。ヘッダフィールドは、コマンドサブフィールドを含み、上記コマンドサブフィールドは、同期化コマンドを含み得る。
【０００８】
別の局面において、方法とコンピュータプログラム製品とが提供され、上記方法とプログラム製品は、第１のノードにおいて、第１のデータパケットにおける受信確認フィールドを第２のノードから受信することを含む。受信確認フィールドの受信に応答して、第１のデータパケットにおける受信確認フィールドが否定受信確認（ＮＡＫ）である場合に限り、第１のノードから既に伝送されたデータパケットが、２つ以上再伝送され得る。その代わりに、受信確認フィールドが肯定受信確認（ＡＣＫ）である場合に、第２のデータパケットが、第１のノードから第２のノードに伝送され、第２のデータパケットの伝送の開始後に、上記第１のデータパケットは、エラーを検査される。第１のデータパケットにおいてエラーが検出された場合に、第２のデータパケットの伝送を完了した実質的な直後に、第１のノードから第２のノードにＮＡＫが伝送される。第１のデータパケットにおいてエラーが検出されなかった場合、第２のデータパケットの伝送を完了した実質的な直後に、第３のデータパケットが、第１のノードから第２のノードに伝送される。
【０００９】
さらに別の局面において、方法とコンピュータプログラム製品とが提供され、上記方法とプログラム製品は、第１のノードにおいて、第２のノードから伝送された第１のデータパケットを受信することを含む。第１のデータパケットは、欠陥信号を含んでいる。欠陥信号に応答して、第１のノードは安全状態に置かれ、第１のノードにおいて、第１のデータパケットのデータフィールドに含まれる情報を処理する前に、上記欠陥信号を含む第２のデータパケットは、第１のノードから第３のノードに伝送される。特定の実施は、第１のノードにおいて、第２のノードから伝送された第３のデータパケットを受信することを含む。上記第３のデータパケットは、欠陥信号を含んでおらず、上記第１のデータノードは、安全状態にある。第１のノードは、動作可能状態に置かれ、第１のノードから第３のノードに第４のパケットが伝送される。上記第４のパケットは、欠陥信号を含んでいない。
【００１０】
特定の実施形態は、以下の利点の１つ以上を実現するように実施され得る。送信器および受信器は、非常に正確に（例えば、実質的に１０マイクロ秒以下の範囲に）同期化され得る。遅延は制限され、（例えば、実質的に１０マイクロ秒未満に）低く保たれる。単一の物理経路コネクタ（ｐｈｙｓｉｃａｌ  ｐａｔｈ  ｃｏｎｎｅｃｔｏｒ）上において、データは、小さな遅延で伝送され得る。単一のシステムにおいて、異なる速度で動作する複数の通信リンクに対し、同じ通信プロトコルが用いられ得る。通信プロトコルは、ハードウェアに安価に実施される。帯域幅は、データ伝送に用いられ得るが、そうでない場合は、受信確認を待機するために用いられ得る。エラー検出とリカバリとが、フロー制御情報と受信確認情報とに同時に実行される。欠陥情報は、システムのいたるところに迅速に伝送され得る。異なる優先順位にある複数の独立なデータストリームは、システムのいたるところに伝送され得る。
【００１１】
これらの一般的および特定の局面は、方法、装置、システム、あるいは、方法、装置、およびシステムの任意の組み合わせを用いて実施され得る。
【００１２】
本発明の１つ以上の実施形態の詳細は、添付の図面および以下の詳細な記述において開示される。本発明のその他の特徴、局面、および利点は、詳細な記述、図面、および請求の範囲から理解され得る。
【００１３】
様々な図面における同じ参照番号および参照記号は、同じ要素を示す。
【００１４】
本発明は、さらに以下を提供する。
（項目１）
同期化フィールドと、
前のデータパケットの受信の受信確認を示す受信確認フィールドと、
システムの欠陥を示す情報を含む応答フィールドと、
ヘッダフィールドと、
上記データパケットに割り当てられた番号を含むシーケンス番号フィールドと、
データフィールドと、
パケット末端フィールドと、
エラー検査フィールドと
を備える、データパケット。
（項目２）
上記同期化フィールドは、１バイト長であり、
上記受信確認フィールドは、１バイト長であり、
上記応答フィールドは、１バイト長であり、
上記ヘッダフィールドは、１バイト長であり、
上記シーケンス番号フィールドは、１バイト長であり、
上記データフィールドは、３２バイト長であり、
上記パケット末端フィールドは、１バイト長であり、
上記エラー検査フィールドは、２バイト長である、
項目１に記載のデータバケット。
（項目３）
上記パケット末端フィールドは、上記データフィールドにおける３２バイトのうちのどれだけが充填バイトであるかの表示を含んでいる、項目２に記載のデータパケット。
（項目４）
上記同期化フィールドは、所定のシフト不変性の値を含んでいる、項目１に記載のデータパケット。
（項目５）
上記応答フィールドは、フロー制御情報を含んでいる、項目１に記載のデータパケット。
（項目６）
上記フロー制御情報は、複数のチャネルに対するフロー制御情報を含んでいる、項目５に記載のデータパケット。
（項目７）
上記ヘッダフィールドは、上記データパケットを対象とするチャネルを示すチャネル選択サブフィールドを含んでいる、項目５に記載のデータパケット。
（項目８）
上記ヘッダフィールドは、コマンドサブフィールドを含んでいる、項目１に記載のデータパケット。
（項目９）
上記コマンドサブフィールドは、同期化コマンドを含んでいる、項目８に記載のデータパケット。
（項目１０）
第１のノードにおいて、第１のデータパケットにおける受信確認フィールドを第２のノードから受信することと、
上記受信確認フィールドの受信に応答して、上記第１のデータパケットにおける上記受信確認フィールドが否定受信確認（ＮＡＫ）である場合に限り、上記第１のノードから既に伝送されたデータパケットを２つ以上再伝送することと、
上記受信確認フィールドの受信に応答して、上記受信確認フィールドが肯定受信確認（ＡＣＫ）である場合に限り、第２のデータパケットを上記第１のノードから上記第２のノードに伝送し、上記第２のデータパケットの伝送の開始後に、上記第１のデータパケットにおけるエラーを検査することと、
上記第１のデータパケットにおいてエラーが検出された場合に限り、上記第２のデータパケットの伝送を完了した実質的な直後に、上記第１のノードから上記第２のノードにＮＡＫを伝送することと、
上記第１のデータパケットにおいてエラーが検出されなかった場合に限り、上記第２のデータパケットの伝送を完了した実質的な直後に、第３のデータパケットを上記第１のノードから上記第２のノードに伝送することと
を包含する、方法。
（項目１１）
第１のノードにおいて、第２のノードから伝送された第１のデータパケットを受信することであって、上記第１のデータパケットは、欠陥信号を含んでいる、ことと、
上記欠陥信号に応答して、上記第１のノードを安全状態に置くことと、
上記第１のノードにおいて、上記第１のデータパケットのデータフィールドに含まれる情報を処理する前に、上記欠陥信号を含む第２のデータパケットを上記第１のノードから第３のノードに伝送することと
を包含する、方法。
（項目１２）
上記第１のノードにおいて、上記第２のノードから伝送された第３のデータパケットを受信することであって、上記第３のデータパケットは、上記欠陥信号を含んでおらず、上記第１のノードは、安全状態にある、ことと、
上記第１のノードを動作可能状態に置くことと、
上記第１のノードから上記第３のノードに第４のパケットを伝送することであって、上記第４のパケットは、上記欠陥信号を含んでいない、ことと
をさらに包含する、項目１１に記載の方法。
（項目１３）
コンピュータ読取り可能媒体に明確に具体化されたコンピュータプログラム製品であって、上記コンピュータプログラム製品は、
第１のノードにおいて、第１のデータパケットにおける受信確認フィールドを第２のノードから受信し、
上記受信確認フィールドの受信に応答して、上記第１のデータパケットにおける上記受信確認フィールドが否定受信確認（ＮＡＫ）である場合に限り、上記第１のノードから既に伝送されたデータパケットを２つ以上再伝送し、
上記受信確認フィールドの受信に応答して、上記受信確認フィールドが肯定受信確認（ＡＣＫ）である場合に限り、第２のデータパケットを上記第１のノードから上記第２のノードに伝送し、上記第２のデータパケットの伝送の開始後に、上記第１のデータパケットにおけるエラーを検査し、
上記第１のデータパケットにおいてエラーが検出された場合に限り、上記第２のデータパケットの伝送を完了した実質的な直後に、上記第１のノードから上記第２のノードにＮＡＫを伝送し、
上記第１のデータパケットにおいてエラーが検出されなかった場合に限り、上記第２のデータパケットの伝送を完了した実質的な直後に、第３のデータパケットを上記第１のノードから上記第２のノードに伝送する
動作をプログラム可能なプロセッサに実行させるように動作することが可能な命令を備えている、コンピュータプログラム製品。
（項目１４）
コンピュータ読取り可能媒体に明確に具体化されたコンピュータプログラム製品であって、上記コンピュータプログラム製品は、
第１のノードにおいて、第２のノードから伝送された第１のデータパケットを受信し、上記第１のデータパケットは、欠陥信号を含んでおり、
上記欠陥信号に応答して、上記第１のノードを安全状態に置き、
上記第１のノードにおいて、上記第１のデータパケットのデータフィールドに含まれる情報を処理する前に、上記欠陥信号を含む第２のデータパケットを上記第１のノードから第３のノードに伝送する
動作をプログラム可能なプロセッサに実行させるように動作することが可能な命令を備えている、コンピュータプログラム製品。
（項目１５）
上記第１のノードにおいて、上記第２のノードから伝送された第３のデータパケットを受信し、上記第３のデータパケットは、上記欠陥信号を含んでおらず、上記第１のノードは、安全状態にあり、
上記第１のノードを安全状態に置き、
上記第１のノードから上記第３のノードに第４のパケットを伝送し、上記第４のパケットは、上記欠陥信号を含んでいない
動作を実行させるように動作することが可能な命令をさらに備えている、項目１４に記載の製品。
【００１５】
（摘要）
同期化フィールドと前のデータパケットの受信の受信確認を示す受信確認フィールドとを含むデータパケットが提供される。データパケットはまた、システムの欠陥を示す情報を含む応答フィールドと、ヘッダフィールドと、データパケットに割り当てられた番号を含むシーケンス番号フィールドとを含む。データパケットは、データフィールドと、パケット末端フィールドと、エラー検査フィールドをもさらに含む。いくつかの実施において、受信されたデータパケットにおける受信確認フィールドが否定受信確認（ＮＡＫ）である場合にパケットを再伝送し、および／または、受信したデータパケットに含まれる欠陥信号に応答してノードを安全状態に置くための、方法およびコンピュータプログラム製品が提供される。
【発明を実施するための最良の形態】
【００１６】
（詳細な記述）
２つのシステムノードの間で全２重（ｆｕｌｌ−ｄｕｐｌｅｘ）シリアルデータの実質的に連続なストリームを用いるリンク層が記述されている。ノードは、例えば、コンピュータ、プログラム可能なプロセッサ、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、または、その他のデータ処理装置を含み得る。データは、固定長のパケットに分割される。固定長のパケットの各々は、データ、エラー検査情報、フロー制御情報、診断情報、欠陥情報、および再伝送制御情報を含んでいる。各パケットにおけるデータは、ハードウェアレベルのデータまたはメッセージ（例えば、ソフトウェアメッセージ）の一部を含み得る。
【００１７】
固定長のパケットは、データが伝送に利用可能であるか否かに関わらず、２つのノードの間で連続的に伝送される。伝送に利用可能なデータが存在しない場合、パケットのデータフィールドは、「充填（ｆｉｌｌｅｒ）」データを用いて充填され得、上記充填データは、受信ノードにおいて放棄され得る。伝送されたパケットは、既に受信されたパケットの受信確認（ａｃｋｎｏｗｌｅｄｇｅｍｅｎｔ）を含んでいる。伝送ノードは、第１のパケットを伝送し、受信ノードから第１のパケットの受信確認を受信する前に、以後に続くパケットを少なくとも１つ伝送し始め得る。以下でさらに詳細に記述され得るように、ノードにおけるパケットの伝送および受信は、連動している。
【００１８】
図１に示されるように、第１のノード１１０からのデータは、リンク上でデータを多重化することにより、複数の宛先ノード、例えば、第２のノード１２０、第３のノード１３０、および第４のノード１４０に伝送され得る。第１のノード１１０と特定の宛先ノードとの間にあるノードは、データをルーティングし得る。第１のノード１１０は、第１のリンク１２５を介することにより、第２のノード１２０に対するデータを伝送し得る。ノード１１０はまた、第１のリンク１２５を介することにより、第３のノード１３０に対するデータを第２のノード１２０に伝送し、第２のノード１２０は、第２のリンク１３５を介することにより、上記データを第３のノード１３０にルーティングし得る。同様に、第１のノード１１０は、第１のリンク１２５を介することにより、第４のノード１４０に対するデータを伝送し、第２のノード１２０は、第３のリンク１４５を介することにより、上記データを第４のノード１４０に伝送し得る。
【００１９】
ある実施において、宛先ノードの宛先は、伝送されるデータに含まれているメッセージにおいて処理され得る。この実施において、典型的に第２のノード１２０は、メッセージの一部を含むパケットを宛先ノードに送信する前に、第１のノード１１０から送信されたメッセージの少なくとも一部分を処理する。第２のノード１２０それ自身が宛先ノードである場合、メッセージは、これ以上は伝送される必要はない。
【００２０】
いくつかのシステムにおいて、第１のノード１１０と第３のノード１３０および第４のノード１４０との間の通信は、第３のノード１３０と第４のノード１４０との間の通信が発生するよりも、より頻繁に発生する。そのようなシステムにおいて、第１のリンク１２５は、第１のリンク１２５を通過する大きなボリュームのデータに対して十分な容量を提供するために、第２のリンク１３５または第３のリンク１４５よりも高速のリンクであり得る。
【００２１】
ノード１１０、１２０、１３０、および１４０は、１つ以上のハードウェアデータバッファ１５２〜１６４を含み、上記ハードウェアバッファは、メッセージを受信し、それぞれのノード上またはそれぞれのノードと通信するデータ処理装置上で実行するソフトウェアがメッセージを受信する準備ができるまで、上記メッセージを保持し得る。
【００２２】
図２に示されているように、ある実施における固定長のパケット２００は、複数のバイト２０１〜２４０を含み得る。４０バイトのパケットが示されているが、固定長のパケットは、その他の長さでもあり得る。示されている実施において、制御情報は、４０バイトのうちの８バイトに配置され、データは、残りの３２バイトに配置されている。第１のバイト２０１は、同期化フィールドであり、上記同期化フィールドは、パケットを受信するノードにおいて、バイトの骨組み（ｆｒａｍｉｎｇ）を維持するように用いられ得る。複数のノードの間のクロックドリフトを補償するために、追加的な同期化バイトが、（例えば１２８パケットごとに一度）パケットに追加され得る。第２のバイト２０２は、受信確認フィールドであり、上記受信確認フィールドは、パケット２００を伝送するノードによって受信された最後のノードが、正しく（例えば、有効なエラー検査情報を含んで）受信されたか否かを示し得る。第２のバイト２０２は、最後のパケットが正しく受信されたという肯定受信確認（ＡＣＫ）を示すために、ある値（例えば、０ｘＡＣ）に設定され、最後のパケットが正しく受信されなかったこと（例えば、否定受信確認またはＮＡＫ）を示すために、逆値（例えば、０ｘ５３）に設定され得る。ある実施において、肯定受信確認の値を除く任意の値は、否定受信確認としてインタープリットされ得る。この実施において、ＮＡＫ値がＡＣＫ値の逆である場合、８ビットのエラーは、伝送されたＮＡＫをＡＣＫに転送するように要求される。
【００２３】
第３のバイト２０３は、応答フィールドであり、上記応答フィールドは、例えば、システムが診断テストモードにあることを示すテストモードビットや、複数のメッセージチャネル（例えば、低優先順位、中優先順位、高優先順位のチャネル）の各々に対するＸＯＦＦビットのような、複数の制御ビットを含んでいる。制御ビットはまた、再伝送ビットをも含み得、上記再伝送ビットは、設定されたときにパケット２００が以前のパケットの再伝送であるということを示し得る。また、１つ以上の制御ビットは、欠陥ビットであり得、上記欠陥ビットは、システム内でエラーが発生したことを示し得る。
【００２４】
第４のバイト２０４は、ヘッダフィールドである。ヘッダフィールドは、例えばチャネル選択サブフィールドやコマンドサブフィールドのような、複数のサブフィールドを含み得る。チャネル選択サブフィールドは、パケット２００内のデータが、どの優先順位のチャネル上に伝送されるのかを示すように用いられる。コマンドサブフィールドは、バッファをフラッシュ（ｆｌｕｓｈ）し、メッセージのストリームを再開するための命令を含み得る。コマンドサブフィールドは、特定のデータが、ハードウェアチャネル上、または、そのようなデータを識別するコード上に送信されることを要求する命令を含み得る。コマンドサブフィールドはまた、システムを同期化するようにも用いられる。例えば、同期化サイクルの開始において、同期化コマンドを含むパケットが送信され得、システム内のサブシステムが同期化（例えば、１０マイクロ秒の範囲内）を維持することを可能にする。第５のバイト２０５は、受信ノードによって伝送エラーを検出するように用いられ得るシーケンス番号を含むシーケンス番号フィールドである。第６のバイト２０６から第３７のバイト２３７までは、例えばメッセージまたはメッセージの一部のような、３２バイトのデータを保持するデータフィールドに属している。
【００２５】
第３８のバイト２３８は、パケット末端フィールドであり、上記パケット末端フィールドは、データフィールドにおけるどれだけのバイトがメッセージに対応し得るのかと、どれだけのバイトが充填バイトであるのかとを特定し得る。パケット末端フィールドはまた、パケット末端指示ビットをも含み得、上記パケット末端指示ビットは、データフィールドにおけるバイトがメッセージを終了するときに設定される。メッセージ末端指示ビットは、受信ノードにおける中断をトリガし得る。第３９のバイト２３９および第４０のバイト２４０は、エラー検査フィールドの一部であり、上記エラー検査フィールドは、一実施形態において、１６ビットのＣＲＣ値（例えば、ＣＣＩＴＴ  １６ビット  ＣＲＣ  アルゴリズムを用いて計算される）を含み得る。ノードがパケットを受信すると、上記ノードは、エラー検査フィールドを用いることにより、パケットが伝送または受信されている最中にエラーが発生したか否かを決定し得る。
【００２６】
パケット２００の構造は、ノード内の欠陥を示す欠陥反応論理（ＦＲＬ；ｆａｕｌｔ  ｒｅａｃｔｉｏｎ  ｌｏｇｉｃ）信号が、複数の方法で通信されることを可能にする。例えば、ＦＲＬ信号は、パケット制御情報内に（例えば、パケット２００の応答フィールドの制御ビット内に）、または、メッセージ内に伝送され得る。パケット制御情報内にＦＲＬ信号を直接的に伝送することは、欠陥情報がシステム全体にわたって非常に迅速に伝送され、非常に低いレベルで取り扱われることを可能にする。システム全体にわたる欠陥信号は、ソフトウェアの介入なしで伝播され得、欠陥反応ハードウェアは、欠陥信号が受信されると、システムを安全な状態に置き得る。欠陥を引き起こした問題が（例えば、人間のオペレータの介入によって）一旦解決されると、欠陥信号はクリアされ得、システムは動作可能状態に戻り得る。欠陥信号がクリアされると、典型的に欠陥を示しているＦＲＬ信号は、別の欠陥が発生するまで、パケット制御情報内に伝送されない。
【００２７】
欠陥信号の迅速な伝播が有利なシステムの例は、ロボット式手術システムである。そのようなシステムは、手術用の器具またはデバイス（例えば、腹腔鏡、内視鏡、照明、カメラ、および吸入器）を保持する複数のロボット式アームを含み得、そららのうちのいくつかは、患者の内部に位置し得る。典型的に、ロボット式アームは、外科医によって遠隔的に操作される。外科医が操作する制御と、ロボット式アームを制御するノードとの間の通信は、本明細書における開示に記述されている方法、システム、および装置を用い得る。そのようなシステムにおいてエラーが発生すると、患者がロボット式アームの予期せぬ動きによって傷付けられないようにするために、ロボット式アームは、所定の場所にロックされ得る。システムの欠陥が発生し、システムの欠陥が複数のノードの間に伝播すると、ロボット式アームの接合部にブレーキが加えられ得、上記欠陥が、人間のオペレータまたはシステム監視ユニットによって自動的にクリアされるまで、動きに関するコマンドは、一時中断され得る。
【００２８】
記述されているパケット構造は、例えばメッセージのようなデータが、単一のチャネル上、または、シリアル接続上で多重化される複数のチャネル上に送信されることを可能にする。特定のメッセージが送信されるチャネルは、パケット２００内のチャネル選択サブフィールドによって指示される。システムソフトウェアは、異なるハードウェアバッファにおけるメッセージを（例えば、異なるアドレスを用いることにより）各チャネルに配置し、システムハードウェアは、どのバッファにメッセージが配置されるかに基づいて、メッセージを自動的にチャネルに割り当て得る。複数のチャネルは、異なる優先順位が割り当てられ得る。ある実施において、異なる優先順位のメッセージが伝送されるのを待機している場合、高優先順位のチャネルに伝送されるデータを含むパケットまたはパケットのグループは、低優先順位のチャネルに伝送されるデータを含むパケットまたはパケットのグループに伝送される。別の実施において、高優先順位のチャネルに伝送されるデータを含むパケットは、低優先順位のチャネルに伝送されるデータを含むパケットよりも、より多くの伝送スロットを割り振られ得る。スピードが重視される（ｔｉｍｅ−ｃｒｉｔｉｃａｌ）メッセージは、高優先順位のチャネル上に伝送され得るが、比較的重要でないメッセージは、低優先順位のチャネル上に伝送され得る。一旦十分なデータがバッファに書き込まれ、パケットを充填すると、システムハードウェアは、メッセージの一部を自動的に伝送し得る。すなわち、メッセージの伝送は、データが利用可能になり、全メッセージがバッファに書き込まれるまで待機する必要がなくなった際に、実行され得る。
【００２９】
第３のバイト２０３内のＸＯＦＦビットは、チャネル内のデータのフローを制御する。各ノードは、複数のハードウェアバッファを含み得、上記ハードウェアバッファは、複数のチャネルの各々に伝送されたメッセージを受信し得る。例えば、高優先順位のメッセージは、高優先順位のバッファに格納され、低優先順位のメッセージは、低優先順位のバッファに格納される。パケット２００を伝送する第１のノードがパケット２００内のＸＯＦＦビットを設定するとき、第１のノードは、パケット２００を受信する第２のノードに、それぞれのデータチャネル上で第１のノードにデータを伝送するのを停止するように命令する。第１のノードのハードウェアは、データチャネルに対して、例えば、第１のノードが上記データチャネルからのメッセージを格納するバッファが一杯になりそうなときに、ＸＯＦＦビットを自動的に設定し得る。ある実施において、所定のチャネルに対してノードがいつＸＯＦＦビットを設定するかに関する閾値は、ノード内のそれぞれのチャネルの受信バッファのサイズ（例えば、５１２ワード）から３２ワード（４パケット）を引いたものに等しい。３２ワードのマージンは、エラーに対するマージンを用いることにより、ＸＯＦＦ信号を受信し、それに反応した動作をとる時間を、受信ノードに与える。その他の閾値レベルもまた、可能である。第１のノードのハードウェアはまた、多数（例えば、１２個）のメッセージが受信バッファに存在するときに、データチャネルに対するＸＯＦＦビットを設定し得る。一旦パケットまたはメッセージがバッファから取り除かれると、ハードウェアは、データチャネルに対するＸＯＦＦビットを自動的にクリアし得る。各優先順位チャネルは、ノード内のそれぞれの受信バッファを有し得る。ＸＯＦＦビットはすべてのパケット内に伝送されるので、エラー検査フィールドがＸＯＦＦビットに適用され、ＸＯＦＦビットの改悪（ｃｏｒｒｕｐｔｉｏｎ）をガードし得る。
【００３０】
上述のチャネル選択サブフィールドを用いることにより、複数の通信チャネルがリンク層において利用可能にされ得る。例えば、ハードウェアチャネルと、高優先順位、中優先順位、低優先順位のチャネルとが、実装され得る。メッセージは、長さが（例えば、３ワードから１２８ワードの間に）変動し得、メッセージの長さに依存して、１つ以上のパケットに伝送され得る。メッセージの第１のバイトは、メッセージの宛先ノードのアドレスを含み得る。システムハードウェアは、伝送ノードにおいて、メッセージを複数のパケットに細分化し、受信ノードにおいて、メッセージをデフラグし得る。メッセージがパケットのデータ部分を充填していない場合、データ部の残部に充填データが挿入され得る。メッセージの伝送バッファと受信バッファとが、ハードウェア内に実装され得る。例えば、ノードは、各チャネル（例えば、高優先順位、中優先順位、低優先順位のチャネル）に対し、ハードウェアの伝送バッファと受信バッファとを含み得る。ある実施において、上記チャネルに対する伝送バッファおよび受信バッファは、最大のメッセージサイズの１．５倍である。
【００３１】
図３は、図２の文脈で議論されたようなパケットを用いることによる２つのノードの間の通信のための概念的なタイミング図を示している。パケット３０１〜３０４は、第１のノードから第２のノードへと連続的に伝送される。パケット３１１〜３１４は、第２のノードで受信され、パケット３０１〜３０４に対応しているが、パケット３１１〜３１４は、伝送エラーが発生した場合は、それぞれのパケット３０１〜３０４の改悪版であり得る。時間の経過にともない、パケット３１１〜３１４の受信は、リンクに沿ったパケットの有限の伝播時間のために、パケット３０１〜３０４伝送に関して遅延される。図３に示されている例において、パケットの伝播時間は、パケットの持続時間（パケットを伝送するために第１のノードによって要求される時間の長さ）よりも短い。
【００３２】
第２のノードは、パケット３５５〜３５８を第１のノードに伝送する。パケット３６５〜３６８は、対応するパケット３５５〜３５８の後に、第１のノードにおいて受信される。パケット３５６は、パケット３０１に適用される受信確認フィールドを含む。パケット３１１（パケット３０１に対応する）が第２のノードにおいて同時に受信された場合、パケット３５６は、パケット３０１に対するＡＣＫを含む。パケット３１１が同時に受信されなかった場合、パケット３５６は、ＮＡＫを含む。パケット３５７は、パケット３０２に対応する受信確認フィールドを含む。同様に、パケット３０３は、第１のノードにおいてパケット３６５が同時に受信されたか否かを示す受信確認フィールドを含み、パケット３０４は、パケット３６６に対する受信確認フィールドを含む。
【００３３】
ある実施において、第２のノードは、第１の受信確認フィールドが第１のノードから受信されるまで、パケットの伝送を開始しない。例えば、第２のノードは、第２のノードがパケット３１１内の受信確認フィールドを受信するまで、パケット３５５の伝送を開始しない。第１のノードと第２のノードとの間の初期同期化を容易にするために、２つのノードは、第１のノードがパケット３０１を伝送する前に、いくつかの連続的な同期化バイトを各々伝送し得る。
【００３４】
図３は、第１のノードと第２のノードとの間に２つのパケットの「パイプライン」が存在する場合を示している。パケット３５６は、パケット３０１に対する受信確認フィールドを含む。受信確認フィールドがＡＣＫを含む場合、第１のノードは、パケット３０３を伝送する。しかしながら、パケット３５６の受信確認フィールドがＮＡＫを含む場合、第１のノードは、パケット３０１および３０２をリフレームし、再伝送し得る。システムを再同期化するために、この実施において、２つのパケットは、２つのパケットのうちの第１のパケットに対してＮＡＫが受信されたときに、再伝送され得る。２つのパケットのうちの第１のパケットが同時に受信されなかった場合、第２のパケットは、第２のパケットがはじめて伝送されたときに、第２のパケットが正しく受信されたか否かをチェックすることなしに、再伝送され得る。２つのノードの間の同期化の損失により、第１のパケットにおけるエラーが発生したという状況において、第２のパケットはエラーを含むと考えられるため、第２のパケットは先制的に（ｐｒｅｅｍｐｔｉｖｅｌｙ）伝送される。ＮＡＫを伝送したノードもまた、ＮＡＫを伝送する前に伝送された最後の２つのパケットを伝送し得る。所定のパケットに対し、受信確認フィールドは、別のパケットが伝送された後にのみ受信されるため、図３は、第１のノードと第２のノードとの間に２つのパケットのパイプラインを有するように記述されている。第１のノードと第２のノードとの間の往復時間は、１つのパケットを伝送するのに要求される時間と同じか、わずかに短い。すなわち、第１のノードは、第１のノードがパケット３０１の伝送を終了するよりも前に、パケット３６５の受信を開始し得る。典型的に、往復時間は、リンク上の伝播の遅延と、ノードにおける処理時間とに依存する。システム内では、より長い往復時間（絶対時間が長い、または、パケットの持続時間に関する時間が長い）もまた、使用され得、結果として、パイプラインは、２つのパケットよりも深く（ｄｅｅｐ）なり得る。
【００３５】
パケットは、パケットのデータフィールドに位置するメッセージが存在するか否かに関わらず、第１のノードと第２のノードとの間で実質的に連続的に伝送される。図３に示されているように、パケットは、連動的な方法で伝送される。固定長のパケットの連動的な伝送は、ノードにおいて受信されたパケットと、ノードによって伝送されたパケットとの間で、位相が固定されたオフセットを発生し得る。ノードは、既に伝送されたパケットの伝送から所定の長さの時間の後、既に伝送されたパケットに関するエラーのない受信の受信確認を含むパケットを、遠隔ノードから受信する。連動したパケットの連続的な伝送は、複数のノードの間の正確な同期化と共に、高帯域幅、低遅延の通信を可能にする。加えて、パケットの連続的な伝送は、システムが複数のノードの間の接続のビットエラーレート（ＢＥＲ；ｂｉｔ  ｅｒｒｏｒ  ｒａｔｅ）を正確かつ実質的に連続的に計算することを可能にする。
【００３６】
図４に示されているように、第２のノードが、第１のノードからパケット４１１を受信し、パケット４１１におけるデータの改悪を引き起こす伝送エラーが発生したことを決定するとき、第２のノードは、次のパケットを伝送する代わりに、パケットの伝送を終了し、第１のノードにＮＡＫとリフレーミングシーケンス（ｒｅｆｒａｍｉｎｇ  ｓｅｑｕｅｎｃｅ）４５６とを伝送する。パケット４１１が改悪され得る理由の１つは、第１のノードと第２のノードとの間の同期化が低下すること、または、損失することにあるため、リフレーミングシーケンス４５６が伝送され、第１のノードと第２のノードとの間の同期化を再構築する。リフレーミングシーケンスは、代替的な同期化フィールドとリンクフィールドとを含み得、上記リンクフィールドは、例えば０ｘＡ３のような所定のコードであり得る。ある実施において、ノードがリフレームされることを考慮される前に、第４のリンクのバイトが受信されなければならない。第１のノードは、ＮＡＫを受信し、シーケンス４６６をリフレームし、リフレーミングシーケンス４０３を伝送する。第１のノードがリフレーミングシーケンス４０３を伝送した後、第１のノードは、ＮＡＫを受信する前に伝送された最後のパケットを再送信する。Ｎ個のパケットのパイプラインの場合、最後のＮ個のパケットが再送信される。一旦、第２のノードが、第１の再伝送されたパケット４１４におけるＡＣＫを受信すると、第２のノードはまた、パケットの再伝送を開始する。
【００３７】
図５に示されているように、第１のノードが第２のノードからパケット５６５を受信し、パケット５６５におけるデータの改悪を引き起こす伝送エラーが発生したことを決定するとき、第１のノードは、ＮＡＫとリフレーミングシーケンス５０３とを、第２のノードに送信する。第２のノードは、ＮＡＫとリフレーミングシーケンス５１３とを受信し、リフレーミングシーケンス５５７を送信する。第１のノードがＮＡＫとリフレーミングシーケンス５０３とを伝送した後、第１のノードは、改悪されたパケットを受信する前に伝送された最後のパケットを再送信する。一旦、第２のノードが第１の再伝送されたパケット５１４内のＡＣＫを受信すると、第２のノードはまた、パケットの伝送を開始する。
【００３８】
エラーカウンタは、ノード内で発生するハードウェアのエラーの回数を追跡し得る。カウンタが閾値に到達したときに、中断がイネーブルにされ得る。ある実施において、エラーカウンタは、ノード内のソフトウェアによって読み取られ、上記ソフトウェアは、中断の閾値を設定し得る。このシステムにおいて、エラーの検出および修正は、非常に低いレベルで扱われ得、記述されたリンク層の最上位で動作するソフトウェア層は、追加的なエラーの検出および修正を実施する必要がない。
【００３９】
図６は、ある実施におけるノードにおいて実行される処理６００を示している。ノードは、第１のパケットの受信を開始し（ステップ６１０）、第１のパケットにおける受信確認フィールドを受信する（ステップ６１５）。ノードは、受信確認フィールドが、ＡＣＫであるか、ＮＡＫであるかを決定する（ステップ６２０）。受信確認フィールドがＮＡＫである場合、ノードはリフレーミングシーケンスを伝送し（ステップ６２５）、受信したＮＡＫがそのパケットの後に伝送された任意のパケットに対応するようなパケットを再伝送する（ステップ６３０）。受信確認フィールドがＡＣＫである場合、ノードは第２のパケットの伝送を開始し（ステップ６３５）、例えば、上記パケット内のＣＲＣ値を検証することにより、第１のパケットのエラーをチェックする（ステップ６４０）。第１のパケットにおいてエラーが検出された場合、ノードは、第２のパケットの伝送を終了し（ステップ６４５）、ＮＡＫとリフレーミングシーケンスとを伝送する（ステップ６５０）。
【００４０】
第１のパケットにおいてエラーが検出されなかった場合、ノードは、第１のパケットにおいて欠陥ビットが設定されたか否かを決定する（ステップ６５５）。欠陥ビットが設定された場合、ノードは、欠陥モードまたは安全状態に置かれる（ステップ６６０）。欠陥ビットが設定されていない場合、または、一旦ノードが欠陥モードに置かれると、ノードは第２のパケットの伝送を終了し（ステップ６６５）、第３のパケットの伝送を開始する（ステップ６７０）。
【００４１】
本発明の実施形態、および、本明細書に記述された機能的な動作のすべては、デジタル電子回路、または、コンピュータのソフトウェア、ファームウェア、または、ハードウェアに実装され得、本明細書に記述された構造と、それらの構造上の等価物と、それらのうちの１つ以上の組み合わせとを含み得る。本発明の実施形態は、１つ以上のコンピュータプログラム製品として、すなわち、データ処理装置によって実行されるか、または、データ処理装置の動作を制御するための、コンピュータ読取り可能な媒体上に符号化されたコンピュータプログラム命令の１つ以上のモジュールとして、実装され得る。コンピュータ読取り可能な媒体は、機械読取り可能な格納デバイス、機械読取り可能な格納基板、メモリデバイス、機械読取り可能な伝播信号に作用する構成、または、それらの１つ以上の組み合わせであり得る。「データ処理装置」という用語は、例えばプログラム可能なプロセッサ、コンピュータ、または、複数のプロセッサまたはコンピュータを手段として含む、データを処理するための装置、デバイス、および機械のすべてを包含する。上記装置は、ハードウェアに加え、問題となっているコンピュータプログラムに対する実行環境を形成するコードを含み得、上記コードは、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、または、それらのうちの１つ以上の組み合わせを構成するコードであり得る。伝播信号は、人工的に生成された信号、例えば、機械によって生成された電気的、光学的、または、電磁気的な信号であり得、適切な受信装置に伝送するために、情報をエンコードするように生成され得る。
【００４２】
コンピュータプログラム（プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとしても知られる）は、コンパイルまたはインタープリットされた言語を含む、任意の形式のプログラム言語で書かれ得、スタンドアロンなプログラムとして、または、モジュール、コンポーネント、サブルーチンとして、または、コンピューティング環境における使用に適したその他のユニットとしてを含む、任意の形式で配信され得る。コンピュータプログラムは、必ずしもファイルシステム内のファイルに対応してはいない。プログラムは、その他のプログラムまたはデータ（例えば、マークアップ言語のドキュメントに格納された１つ以上のスクリプト）を保持するファイルの一部に、問題となっているプログラムに専用の単一のファイルに、または、（例えば、１つ以上のモジュール、サブプログラム、または、コードの一部を格納する）組織化された複数のファイルに格納され得る。コンピュータプログラムは、１つの場所に位置しているか、または、複数の場所に分散し、通信ネットワークによって相互接続されている、１つ以上のコンピュータ、または、複数のコンピュータの上で実行されるように配信され得る。
【００４３】
本明細書に記述された処理および論理の流れは、１つ以上のコンピュータプログラムを実行する１つ以上のプログラム可能なプロセッサによって実行され得、データを入力し、出力を生成するように動作することにより、複数の機能を実行する。処理および論理の流れはまた、例えばＦＰＧＡ（ｆｉｅｌｄ  ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙ）またはＡＳＩＣ（ａｐｐｌｉｃａｔｉｏｎ−ｓｐｅｃｉｆｉｃ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ）のような特定用途向け論理回路によって、実行され得、装置はまた、上記のような特定用途向け論理回路として、実施され得る。
【００４４】
コンピュータプログラムの実行に適したプロセッサは、例えば、汎用プロセッサと特定用途向けプロセッサとの両方、任意の種類のデジタルコンピュータの１つ以上の任意のプロセッサを含む。一般に、プロセッサは、命令とデータとを、読み出し専用メモリまたはランダムアクセスメモリまたはその両方から受信し得る。コンピュータの主要な要素は、命令を実行するためのプロセッサ、および、命令とデータとを格納するための１つ以上のメモリである。一般に、コンピュータは、データを格納するために、１つ以上の大容量の格納デバイス、例えば、磁気ディスク、磁気光学ディスク、または、光学ディスクを含み得、あるいは、データを受信するように、または、データを伝送するように、または、受信と伝送との両方を行なうように、上記格納デバイスに動作可能なように接続される。しかしながら、コンピュータは、必ずしもそれらのデバイスを有する必要はない。さらに、コンピュータは、別のデバイス、例えば、わずかな例を挙げると、携帯電話、パーソナルデジタルアシスタント（ＰＤＡ）、携帯型オーディオプレイヤー、全地球測位システム（ＧＰＳ）受信器に埋め込まれ得る。コンピュータプログラムの命令およびデータを格納するのに適したコンピュータ読取り可能な媒体は、任意の形態の不揮発性メモリ、メディア、および、メモリデバイスを含み、例えば、半導体メモリデバイス（例えば、ＥＰＲＯＭ，ＥＥＰＲＯＭ、フラッシュスメモリデバイス）、磁気ディスク（例えば、内蔵式のハードディスクまたはリムーバブルディスク）、磁気光学ディスク、ならびに、ＣＤ−ＲＯＭディスクおよびＤＶＤ−ＲＯＭディスクを含む。プロセッサおよびメモリは、特定用途向け論理回路によって補完されるか、特定用途向け論理回路に実装され得る。
【００４５】
ユーザとの相互作用を提供するために、本発明の実施形態は、ユーザに情報を表示するための、例えばＣＲＴ（陰極線管）またはＬＣＤ（液晶ディスプレイ）のようなディスプレイデバイスと、ユーザにコンピュータへの入力を提供するための、キーボードと例えばマウスまたはトラックボールのようなポインティングデバイスとを有するコンピュータに実装され得る。その他の種類のデバイスも同様に、ユーザとの相互作用を提供するために用いられ得る。例えば、ユーザに提供されたフィードバックは、任意の形態の知覚性フィードバックであり得、例えば、視覚性のフィードバック、音響性のフィードバック、または、触覚性のフィードバックであり得る。また、ユーザからの入力は、任意の形態で受信され得、上記入力は、音響性の入力、発話による入力、または、触覚性の入力を含み得る。
【００４６】
本明細書は、多くの具体例を含んでいるが、これらは、本発明またはクレームされている内容の範囲を制限するものとして考えられるべきではなく、むしろ、本発明の特定の実施形態に特有の特徴を記述しているものとして考えられるべきである。別個の実施形態の文脈で本明細書に記述されている特定の特徴はまた、単一の実施形態に組み合わせ的に実施され得る。逆に、単一の実施形態の文脈で記述されている様々な特徴は、複数の実施形態に別個に実施され得るか、または、任意の適切な小結合（ｓｕｂｃｏｍｂｉｎａｔｉｏｎ）で実施され得る。さらに、上述では、特徴は、特定の組み合わせに作用するように記述されているが、いくつかの場合において、クレームされた組み合わせからの１つ以上の特徴は、上記の組み合わせから切り取られたようにさえも主にクレームされ得、クレームされた組み合わせは、小結合または小結合の組み合わせに向けられ得る。
【００４７】
同様に、図面において、動作は特定の順序で記述されているが、このことは、示されているそのような特定の順序または連続的な順序で実行されること、あるいは、示されているすべての動作が望ましい結果を達成するように実行されることを要求していると理解されるべきではない。特定の状況において、マルチタスク処理および並列処理は、有利であり得る。さらに、上記で記述された実施形態における様々なシステムコンポーントの分離は、すべての実施形態においてそのような分離を要求しているものとして理解されるべきではなく、記述されたプログラムコンポーネントおよびシステムは、一般に、単一のソフトウェア製品に互いに統合されるか、または、複数のソフトウェア製品にパッケージ化され得ると理解されるべきである。
【００４８】
このようにして、本発明の実施形態が記述されてきた。その他の実施形態は、以下の請求項の範囲内にある。例えば、請求項に挙げられた動作は、異なる順序で実行され得、望ましくない結果を達成しさえもし得る。上記で記述された方法、システム、および装置は、光ファイバー（例えば、１６０Ｍｂ／秒で動作する）、低電圧の差分信号（例えば、１２２Ｍｂ／秒で動作する）、ソースの同期なシリアル、非同期なバックプレーンワイヤを含む、様々な物理的な伝送機構と共に用いられ得る。ある実施において、改悪されたパケットは、上記パケットがエラーを許容し得るデータを含んでいるときには、必ずしも再伝送しない。例えば、ビデオストリームまたはオーディオストリームにおいて時々発生する誤動作は、許容可能である。さらに、エラー検出およびリフレーミングが、この実施に使用され、ハードウェアがフレーミングエラーからの高速のリカバリを実施することを可能にする。
【図面の簡単な説明】
【００４９】
【図１】図１は、リンクによって接続された複数のノードを含むシステムのブロック図である。
【図２】図２は、データパケットの構造の図である。
【図３】図３は、複数のノードの間のパケット伝送のタイミング図である。
【図４】図４は、エラーリカバリのシナリオのタイミング図である。
【図５】図５は、エラーリカバリのシナリオのタイミング図である。
【図６】図６は、ノードにおいて実行される処理のフローチャートである。
【符号の説明】
【００５０】
２００  データパケット
２０１  同期化フィールド
２０２  受信確認フィールド
２０３  応答フィールド
２０４  ヘッダフィールド
２０５  シーケンス番号フィールド
２０６〜２３７  データフィールド
２３８  パケット末端フィールド
２３９，２４０  エラー検査フィールド
【図１】
2007174644.tif 000003
【図２】
2007174644.tif 000004
【図３】
2007174644.tif 000005
【図４】
2007174644.tif 000006
【図５】
2007174644.tif 000007
【図６】
2007174644.tif 000008