JP2007174666A - マルチ優先度メッセージング - Google Patents
マルチ優先度メッセージング Download PDFInfo
- Publication number
- JP2007174666A JP2007174666A JP2006342980A JP2006342980A JP2007174666A JP 2007174666 A JP2007174666 A JP 2007174666A JP 2006342980 A JP2006342980 A JP 2006342980A JP 2006342980 A JP2006342980 A JP 2006342980A JP 2007174666 A JP2007174666 A JP 2007174666A
- Authority
- JP
- Japan
- Prior art keywords
- data
- priority
- priority data
- buffer
- node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Landscapes
- Detection And Prevention Of Errors In Transmission (AREA)
- Small-Scale Networks (AREA)
- Communication Control (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
【課題】システム構成要素間における様々な重要度を有する情報を好適に送信する方法、システム、およびコンピュータプログラム製品を提供すること。
【解決手段】第1の優先度のデータおよび第2の優先度のデータを伝送するための方法、システム、およびコンピュータプログラム製品が提供される。第1の優先度のデータおよび第2の優先度のデータは、別個のデータバッファ(152、154、156、158、160、162、164)において格納され、第1の優先度のデータは、第2の優先度のデータよりも優先して伝送される。
【選択図】図1A
【解決手段】第1の優先度のデータおよび第2の優先度のデータを伝送するための方法、システム、およびコンピュータプログラム製品が提供される。第1の優先度のデータおよび第2の優先度のデータは、別個のデータバッファ(152、154、156、158、160、162、164)において格納され、第1の優先度のデータは、第2の優先度のデータよりも優先して伝送される。
【選択図】図1A
Description
(優先権の主張)
本出願は、米国特許仮出願第60/753,991号(2005年12月22日出願)の利益を主張し、その内容全体は参照により援用される。
本出願は、米国特許仮出願第60/753,991号(2005年12月22日出願)の利益を主張し、その内容全体は参照により援用される。
本開示は情報システムに関する。
所定のシステムは、システム構成要素間における様々な重要度を有する情報を送信する。より重要な情報は、処理中、より高い優先度が与えられ得る。従来のロボット補助式手術システムにおいて、例えば、制御信号およびフィードバック信号は、典型的には、処理中、より高い優先度が与えられる。通常のシステム状態メッセージなどの他のタイプの信号は、典型的には、処理中、より低い優先度が与えられる。システムは、典型的には、低優先度信号の遅延に対しては回復が早い(resilient)。
ロボット補助式手術システムにおいて使用される一つの従来の通信システムは、数百の経路(例えば、ワイヤ)を用いることにより、手術用の制御コンソールをロボットアームに接続する。数百の経路を使用することにより、予定の時間に特定の信号に対して調整される信号の各タイプに対する専用経路を可能にする。しかしながら、数百の経路を用いることは、システムの設定とメンテナンスとを煩雑にし、すべての経路をルーティングするために相当の余地を必要とする。
一局面において、命令を実行するように動作可能であるプログラマブルプロセッサおよびプログラマブルプロセッサに結合される第1のデータバッファを含むシステムが提供される。プログラマブルプロセッサは、命令に応答して、第1の優先度のデータを第1のデータバッファに転送する。第1のデータバッファは、第1の優先度のデータのみとともに使用される。第2のデータバッファは、プログラマブルプロセッサに結合され、プログラマブルプロセッサは、命令に応答して、第2の優先度のデータを第2のデータバッファに転送する。第2のデータバッファは、第2の優先度のデータのみとともに使用される。システムはまた、第1および第2のバッファならびにデータリンクに結合されるデータリンクおよび伝送ロジックを含む。伝送ロジックは、メッセージングプロトコルにしたがって、データリンクを介して、第2の優先度のデータよりも優先して第1の優先度のデータを伝送する。
特定のインプリメンテーションは、以下の特徴の一つ以上を含み得る。第1の優先度のデータはロボットアームの動きを制御するコマンドを含み得、第2の優先度のデータは、重要度の低い情報およびエラーログ情報のうちの少なくとも一つを含み得る。第3のデータバッファはプログラマブルプロセッサに結合され得る。プログラマブルプロセッサは、命令に応答して、第3の優先度のデータを第3のデータバッファに転送し得、第3のデータバッファは、第3の優先度のデータのみとともに使用され得る。第1の優先度のデータは高優先度のデータであり得、第2の優先度のデータは低優先度データであり得、第3の優先度のデータは中優先度のデータであり得る。
メッセージングプロトコルは、伝送ロジックが、第1のデータバッファからの第1の優先度のデータを、第2のデータバッファからの第2の優先度のデータよりも優先して伝送することを要求し得る。メッセージングプロトコルは、伝送ロジックが、第1のデータバッファからの第1の優先度のデータを、第3のデータバッファからの第3の優先度のデータよりも優先して伝送することを要求し得る。メッセージングプロトコルは、伝送ロジックが、第3のデータバッファからの第3の優先度のデータを、第2のデータバッファからの第2の優先度のデータよりも優先して伝送することを要求し得る。第1の優先度のデータを第2の優先度のデータよりも優先して伝送することは、任意の利用可能な第2の優先度のデータ以前に、任意の利用可能な第1の優先度のデータを伝送することを含み得る。第1の優先度のデータを前記第2の優先度のデータよりも優先的に伝送することは、利用可能な第2の優先度のデータよりも、利用可能な第1の優先度のデータに、より多くの伝送スロットを割り当てることを含み得る。プログラマブルプロセッサは前記伝送ロジックを含み得る。
別の局面において、第1の優先度のデータおよび第2の優先度のデータを生成することを含む方法およびコンピュータプログラム製品が提供される。第1のデータバッファに第1の優先度のデータが配置され、第1のデータバッファは第1の優先度のデータのみとともに使用される。第2のデータバッファに第2の優先度のデータが配置され、第2のデータバッファは第2の優先度のデータのみをとともに使用される。データリンクを介して、第1および第2のデータバッファから、第1の優先度のデータおよび第2の優先度のデータが伝送される。第1の優先度のデータは、第2の優先度のデータよりも優先的に伝送される。
特定のインプリメンテーションは、以下の特徴の一つ以上を含み得る。第3の優先度のデータが生成され得、第1の優先度のデータは高優先度のデータであり、第2の優先度のデータは低優先度データであり、第3の優先度のデータは中優先度のデータである。第3のデータバッファに第3の優先度のデータが配置され得、第3のデータバッファは第3の優先度のデータのみとともに使用され得る。データリンクを介して、第3のデータバッファから第3の優先度のデータが伝送され得る。第1の優先度のデータは、第3の優先度のデータよりも優先的に伝送され得、第3の優先度のデータは、第2の優先度のデータよりも優先的に伝送され得る。メッセージングプロトコルが識別され得、優先的に伝送することは、メッセージングプロトコルにしたがって送信することを優先的に含み得る。第2の優先度のデータよりも優先的に第1の優先度のデータを伝送することが、任意の利用可能な第2の優先度のデータ以前に任意の利用可能な第1の優先度のデータを伝送することを含み得る。第2の優先度のデータよりも優先的に第1の優先度のデータを伝送することが、利用可能な第2の優先度のデータよりも、利用可能な第1の優先度のデータに、より多くの伝送スロットを割り当てることを含み得る。第1の優先度のデータは、スピードが重視されるメッセージを含み得る。第2の優先度のデータは、重要度の低い情報およびエラーログ情報のうちの少なくとも一つを含み得る。
特定の実施形態は、以下の利点の一つ以上を実現するようにインプリメントされ得る。異なる優先度のレベルに割り当てられたデータの複数の独立したストリームは、ポイントツーポイント・シリアル接続を用いたシステム全体に亘って伝送され得る。同様のメッセージングプロトコルは、そのシステムにおいて、異なるタイプおよび速度を有する複数の通信リンクに対して用いられ得る。
本発明の一つ以上の実施形態の詳細を、添付の図面および以下の記載において説明する。本発明の他の特徴、局面、利点は、本記載、図面、および請求の範囲から明らかになる。
本発明はさらに以下の手段を備える。
(項目1)
ロボット補助式手術システムであって、
命令を実行するように動作可能であるプログラマブルプロセッサと、
該プログラマブルプロセッサに結合される第1のデータバッファであって、該プログラマブルプロセッサは、該命令に応答して、該第1のデータバッファに第1の優先度のデータを転送するように動作可能であり、該第1のデータバッファは、該第1の優先度のデータのみとともに使用される、第1のデータバッファと、
該プログラマブルプロセッサに結合される第2のデータバッファであって、該プログラマブルプロセッサは、該命令に応答して、該第2のデータバッファに第2の優先度のデータを転送するように動作可能であり、該第2のデータバッファは、該第2の優先度のデータのみとともに使用される、第2のデータバッファと、
データリンクと、
該第1および該第2のバッファ、ならびに該データリンクに結合される伝送ロジックであって、該伝送ロジックは、メッセージングプロトコルにしたがって、該データリンクを介して、該第1の優先度のデータを該第2の優先度のデータよりも優先的に伝送するように動作可能である、伝送ロジックと
を備える、ロボット補助式手術システム。
ロボット補助式手術システムであって、
命令を実行するように動作可能であるプログラマブルプロセッサと、
該プログラマブルプロセッサに結合される第1のデータバッファであって、該プログラマブルプロセッサは、該命令に応答して、該第1のデータバッファに第1の優先度のデータを転送するように動作可能であり、該第1のデータバッファは、該第1の優先度のデータのみとともに使用される、第1のデータバッファと、
該プログラマブルプロセッサに結合される第2のデータバッファであって、該プログラマブルプロセッサは、該命令に応答して、該第2のデータバッファに第2の優先度のデータを転送するように動作可能であり、該第2のデータバッファは、該第2の優先度のデータのみとともに使用される、第2のデータバッファと、
データリンクと、
該第1および該第2のバッファ、ならびに該データリンクに結合される伝送ロジックであって、該伝送ロジックは、メッセージングプロトコルにしたがって、該データリンクを介して、該第1の優先度のデータを該第2の優先度のデータよりも優先的に伝送するように動作可能である、伝送ロジックと
を備える、ロボット補助式手術システム。
(項目2)
上記第1の優先度のデータは、ロボットアームの動きを制御するコマンドを含み、上記第2の優先度のデータは、重要度の低い情報およびエラーログ情報のうちの少なくとも一つを含む、項目1に記載のロボット補助式手術システム。
上記第1の優先度のデータは、ロボットアームの動きを制御するコマンドを含み、上記第2の優先度のデータは、重要度の低い情報およびエラーログ情報のうちの少なくとも一つを含む、項目1に記載のロボット補助式手術システム。
(項目3)
上記プログラマブルプロセッサに結合される第3のデータバッファであって、該プログラマブルプロセッサは、上記命令に応答して、該第3のデータバッファに第3の優先度のデータを転送するように動作可能であり、該第3のデータバッファは該第3の優先度のデータのみとともに使用される、第3のデータバッファをさらに備え、
上記第1の優先度のデータは高優先度データであり、上記第2の優先度データは低優先度データであり、および該第3の優先度データは中優先度のデータである、項目1に記載のロボット補助式手術システム。
上記プログラマブルプロセッサに結合される第3のデータバッファであって、該プログラマブルプロセッサは、上記命令に応答して、該第3のデータバッファに第3の優先度のデータを転送するように動作可能であり、該第3のデータバッファは該第3の優先度のデータのみとともに使用される、第3のデータバッファをさらに備え、
上記第1の優先度のデータは高優先度データであり、上記第2の優先度データは低優先度データであり、および該第3の優先度データは中優先度のデータである、項目1に記載のロボット補助式手術システム。
(項目4)
上記メッセージングプロトコルは、上記伝送ロジックが、上記第1のデータバッファからの上記第1の優先度のデータを上記第2のデータバッファからの上記第2の優先度データよりも優先的に伝送することを要求する、項目3に記載のロボット補助式手術システム。
上記メッセージングプロトコルは、上記伝送ロジックが、上記第1のデータバッファからの上記第1の優先度のデータを上記第2のデータバッファからの上記第2の優先度データよりも優先的に伝送することを要求する、項目3に記載のロボット補助式手術システム。
(項目5)
上記メッセージングプロトコルは、上記伝送ロジックが、上記第1のデータバッファからの上記第1の優先度のデータを上記第3のデータバッファからの上記第3の優先度データよりも優先的に伝送することをさらに要求する、項目4に記載のロボット補助式手術システム。
上記メッセージングプロトコルは、上記伝送ロジックが、上記第1のデータバッファからの上記第1の優先度のデータを上記第3のデータバッファからの上記第3の優先度データよりも優先的に伝送することをさらに要求する、項目4に記載のロボット補助式手術システム。
(項目6)
上記メッセージングプロトコルは、上記伝送ロジックが、上記第3のデータバッファからの上記第3の優先度のデータを上記第2のデータバッファからの上記第2の優先度データよりも優先的に伝送することをさらに要求する、項目5に記載のロボット補助式手術システム。
上記メッセージングプロトコルは、上記伝送ロジックが、上記第3のデータバッファからの上記第3の優先度のデータを上記第2のデータバッファからの上記第2の優先度データよりも優先的に伝送することをさらに要求する、項目5に記載のロボット補助式手術システム。
(項目7)
上記第1の優先度のデータを上記第2の優先度のデータよりも優先的に伝送することは、任意の利用可能な第2の優先度のデータ以前に、任意の利用可能な第1の優先度のデータを伝送することを含む、項目4に記載のロボット補助式手術システム。
上記第1の優先度のデータを上記第2の優先度のデータよりも優先的に伝送することは、任意の利用可能な第2の優先度のデータ以前に、任意の利用可能な第1の優先度のデータを伝送することを含む、項目4に記載のロボット補助式手術システム。
(項目8)
上記第1の優先度のデータを上記第2の優先度のデータよりも優先的に伝送することは、利用可能な第2の優先度のデータよりも、利用可能な第1の優先度のデータに、より多くの伝送スロットを割り当てることを含む、項目4に記載のロボット補助式手術システム。
上記第1の優先度のデータを上記第2の優先度のデータよりも優先的に伝送することは、利用可能な第2の優先度のデータよりも、利用可能な第1の優先度のデータに、より多くの伝送スロットを割り当てることを含む、項目4に記載のロボット補助式手術システム。
(項目9)
上記プログラマブルプロセッサは上記伝送ロジックを含む、項目1に記載のロボット補助式手術システム。
上記プログラマブルプロセッサは上記伝送ロジックを含む、項目1に記載のロボット補助式手術システム。
(項目10)
複数のノードを含むロボット補助式手術システムを提供することであって、該複数のノードは、データリンクによって、受信ノードに結合される少なくとも一つの伝送ノードを含む、ことと、該伝送ノードにおいて、
第1の優先度のデータおよび第2の優先度のデータを生成することと、
第1のデータバッファに該第1の優先度のデータを配置することであって、該第1のデータバッファは第1の優先度のデータのみとともに使用される、ことと、
第2のデータバッファに該第2の優先度のデータを配置することであって、該第2のデータバッファは第2の優先度のデータのみとともに使用される、ことと、
該データリンクを介して、該第1および該第2のデータバッファから、該第1の優先度のデータおよび該第2の優先度のデータを伝送することであって、該第1の優先度のデータは、該第2の優先度のデータよりも優先的に伝送される、ことと
を包含する、方法。
複数のノードを含むロボット補助式手術システムを提供することであって、該複数のノードは、データリンクによって、受信ノードに結合される少なくとも一つの伝送ノードを含む、ことと、該伝送ノードにおいて、
第1の優先度のデータおよび第2の優先度のデータを生成することと、
第1のデータバッファに該第1の優先度のデータを配置することであって、該第1のデータバッファは第1の優先度のデータのみとともに使用される、ことと、
第2のデータバッファに該第2の優先度のデータを配置することであって、該第2のデータバッファは第2の優先度のデータのみとともに使用される、ことと、
該データリンクを介して、該第1および該第2のデータバッファから、該第1の優先度のデータおよび該第2の優先度のデータを伝送することであって、該第1の優先度のデータは、該第2の優先度のデータよりも優先的に伝送される、ことと
を包含する、方法。
(項目11)
上記伝送ノードにおいて、
第3の優先度のデータを生成することであって、上記第1の優先度のデータは高優先度のデータであり、上記第2の優先度のデータは低優先度のデータであり、上記第3の優先度のデータは中優先度のデータである、ことと、
第3のデータバッファに該第3の優先度のデータを配置することであって、該第3のデータバッファは第3の優先度のデータのみとともに使用される、ことと、
上記データリンクを介して、該第3のデータバッファから該第3の優先度のデータを伝送することであって、該第1の優先度のデータは、該第3の優先度のデータよりも優先的に伝送され、該第3の優先度のデータは、該第2の優先度のデータよりも優先的に伝送される、ことと
をさらに包含する、項目10に記載の方法。
上記伝送ノードにおいて、
第3の優先度のデータを生成することであって、上記第1の優先度のデータは高優先度のデータであり、上記第2の優先度のデータは低優先度のデータであり、上記第3の優先度のデータは中優先度のデータである、ことと、
第3のデータバッファに該第3の優先度のデータを配置することであって、該第3のデータバッファは第3の優先度のデータのみとともに使用される、ことと、
上記データリンクを介して、該第3のデータバッファから該第3の優先度のデータを伝送することであって、該第1の優先度のデータは、該第3の優先度のデータよりも優先的に伝送され、該第3の優先度のデータは、該第2の優先度のデータよりも優先的に伝送される、ことと
をさらに包含する、項目10に記載の方法。
(項目12)
上記伝送ノードにおいてメッセージングプロトコルを識別することをさらに包含し、上記伝送することは、該メッセージングプロトコルにしたがって優先的に送信することを優先的に含む、項目10に記載の方法。
上記伝送ノードにおいてメッセージングプロトコルを識別することをさらに包含し、上記伝送することは、該メッセージングプロトコルにしたがって優先的に送信することを優先的に含む、項目10に記載の方法。
(項目13)
上記第2の優先度のデータよりも優先的に上記第1の優先度のデータを伝送することが、任意の利用可能な第2の優先度のデータ以前に任意の利用可能な第1の優先度のデータを伝送することを含む、項目10に記載の方法。
上記第2の優先度のデータよりも優先的に上記第1の優先度のデータを伝送することが、任意の利用可能な第2の優先度のデータ以前に任意の利用可能な第1の優先度のデータを伝送することを含む、項目10に記載の方法。
(項目14)
上記第2の優先度のデータよりも優先的に上記第1の優先度のデータを伝送することが、利用可能な第2の優先度のデータよりも、利用可能な第1の優先度のデータに、より多くの伝送スロットを割り当てることを含む、項目10に記載の方法。
上記第2の優先度のデータよりも優先的に上記第1の優先度のデータを伝送することが、利用可能な第2の優先度のデータよりも、利用可能な第1の優先度のデータに、より多くの伝送スロットを割り当てることを含む、項目10に記載の方法。
(項目15)
上記第1の優先度のデータは、スピードが重視されるメッセージを含む、項目10に記載の方法。
上記第1の優先度のデータは、スピードが重視されるメッセージを含む、項目10に記載の方法。
(項目16)
上記第2の優先度のデータは、重要度の低い地位の情報およびエラーログ情報のうちの少なくとも一つを含む、項目10に記載の方法。
上記第2の優先度のデータは、重要度の低い地位の情報およびエラーログ情報のうちの少なくとも一つを含む、項目10に記載の方法。
(項目17)
ロボット補助式手術システムの伝送ノードに含まれるコンピュータ可読媒体上に具体的に実体化されたコンピュータプログラム製品であって、該伝送ノードは、データリンクによって、受信ノードに結合され、該コンピュータ可読媒体は、
第1の優先度のデータおよび第2の優先度のデータを生成する動作と、
第1のデータバッファに該第1の優先度のデータを配置する動作であって、該第1のデータバッファは第1の優先度のデータのみとともに使用される、動作と、
第2のデータバッファに該第2の優先度のデータを配置する動作であって、該第2のデータバッファは第2の優先度のデータのみとともに使用される、動作と、
同一のデータリンクを介して、該第1および該第2のデータバッファから該第1の優先度のデータおよび該第2の優先度のデータを伝送する動作であって、該第1の優先度のデータは該第2の優先度のデータよりも優先的に伝送される、動作と
を、プログラマブルプロセッサに実行させるように動作可能である命令を含んでいる、コンピュータプログラム製品。
ロボット補助式手術システムの伝送ノードに含まれるコンピュータ可読媒体上に具体的に実体化されたコンピュータプログラム製品であって、該伝送ノードは、データリンクによって、受信ノードに結合され、該コンピュータ可読媒体は、
第1の優先度のデータおよび第2の優先度のデータを生成する動作と、
第1のデータバッファに該第1の優先度のデータを配置する動作であって、該第1のデータバッファは第1の優先度のデータのみとともに使用される、動作と、
第2のデータバッファに該第2の優先度のデータを配置する動作であって、該第2のデータバッファは第2の優先度のデータのみとともに使用される、動作と、
同一のデータリンクを介して、該第1および該第2のデータバッファから該第1の優先度のデータおよび該第2の優先度のデータを伝送する動作であって、該第1の優先度のデータは該第2の優先度のデータよりも優先的に伝送される、動作と
を、プログラマブルプロセッサに実行させるように動作可能である命令を含んでいる、コンピュータプログラム製品。
(項目18)
第3の優先度のデータを生成する動作であって、上記第1の優先度のデータは高優先度のデータであり、上記第2の優先度のデータは低優先度データであり、上記第3の優先度のデータは中優先度のデータである、動作と、
第3のデータバッファに該第3の優先度のデータを配置する動作であって、該第3のデータバッファは第3の優先度のデータのみとともに使用される、動作と、
上記データリンクを介して、該第3のデータバッファから該第3の優先度のデータを伝送する動作であって、該第1の優先度のデータは、該第3の優先度のデータよりも優先的に伝送され、該第3の優先度のデータは、該第2の優先度のデータよりも優先的に伝送される、動作と
を実行するように動作可能である命令をさらに含む、項目17に記載のコンピュータプログラム製品。
第3の優先度のデータを生成する動作であって、上記第1の優先度のデータは高優先度のデータであり、上記第2の優先度のデータは低優先度データであり、上記第3の優先度のデータは中優先度のデータである、動作と、
第3のデータバッファに該第3の優先度のデータを配置する動作であって、該第3のデータバッファは第3の優先度のデータのみとともに使用される、動作と、
上記データリンクを介して、該第3のデータバッファから該第3の優先度のデータを伝送する動作であって、該第1の優先度のデータは、該第3の優先度のデータよりも優先的に伝送され、該第3の優先度のデータは、該第2の優先度のデータよりも優先的に伝送される、動作と
を実行するように動作可能である命令をさらに含む、項目17に記載のコンピュータプログラム製品。
(項目19)
メッセージングプロトコルを識別する動作を実行するように動作可能である命令をさらに含み、上記伝送する動作は、該メッセージングプロトコルにしたがって優先的に送信する動作を含む、項目17に記載のコンピュータプログラム製品。
メッセージングプロトコルを識別する動作を実行するように動作可能である命令をさらに含み、上記伝送する動作は、該メッセージングプロトコルにしたがって優先的に送信する動作を含む、項目17に記載のコンピュータプログラム製品。
(項目20)
上記第2の優先度のデータよりも優先的に上記第1の優先度のデータを伝送する動作が、任意の利用可能な第2の優先度のデータ以前に任意の利用可能な第1の優先度のデータを伝送する動作を含む、項目17に記載のコンピュータプログラム製品。
上記第2の優先度のデータよりも優先的に上記第1の優先度のデータを伝送する動作が、任意の利用可能な第2の優先度のデータ以前に任意の利用可能な第1の優先度のデータを伝送する動作を含む、項目17に記載のコンピュータプログラム製品。
(項目21)
上記第2の優先度のデータよりも優先的に上記第1の優先度のデータを伝送する動作が、利用可能な第2の優先度のデータよりも、利用可能な第1の優先度のデータに、より多くの伝送スロットを割り当てる動作を含む、項目17に記載のコンピュータプログラム製品。
上記第2の優先度のデータよりも優先的に上記第1の優先度のデータを伝送する動作が、利用可能な第2の優先度のデータよりも、利用可能な第1の優先度のデータに、より多くの伝送スロットを割り当てる動作を含む、項目17に記載のコンピュータプログラム製品。
(項目22)
上記第1の優先度のデータは、スピードが重視されるメッセージを含む、項目17に記載のコンピュータプログラム製品。
上記第1の優先度のデータは、スピードが重視されるメッセージを含む、項目17に記載のコンピュータプログラム製品。
(項目23)
上記第2の優先度のデータは、重要度の低い情報およびエラーログ情報のうちの少なくとも一つを含む、項目17に記載のコンピュータプログラム製品。
上記第2の優先度のデータは、重要度の低い情報およびエラーログ情報のうちの少なくとも一つを含む、項目17に記載のコンピュータプログラム製品。
(摘要)
第1の優先度のデータおよび第2の優先度のデータを伝送するための方法、システム、およびコンピュータプログラム製品が提供される。第1の優先度のデータおよび第2の優先度のデータは、別個のデータバッファにおいて格納され、第1の優先度のデータは、第2の優先度のデータよりも優先して伝送される。
第1の優先度のデータおよび第2の優先度のデータを伝送するための方法、システム、およびコンピュータプログラム製品が提供される。第1の優先度のデータおよび第2の優先度のデータは、別個のデータバッファにおいて格納され、第1の優先度のデータは、第2の優先度のデータよりも優先して伝送される。
様々な図面における同じ参照番号および記号表記は同様の要素を示す。
システムにおけるデータメッセージを通信する方法および構成(データ構造を含む)が記載され、異なる優先度を有するメッセージが2つのシステムノード間における単一のシリアル経路を介して送信されることを可能にする。ノードは、例えば、コンピュータ、プログラムマブルプロセッサ、フィールドプログラマブルゲートアレイ(FPGA)、または、その他のデータ処理装置を含み得る。データメッセージ(例えば、ソフトウェアメッセージ)は、任意の適切なリンク層を用いて伝送され得る。本願において、2つのノード間における全二重シリアルデータの実質的に連続したストリームを伝送する一つのインプリメンテーションが記載される。データメッセージは一つ以上のセグメントに分割され、それぞれのセグメントが、固定長ハードウェアレベルパケットにおいて伝送される。データメッセージは通常、本願においては単に「メッセージ」と呼ばれる。
固定長のパケットは、メッセージデータが伝送に利用可能であるか否かに関わらず、2つのノードの間で連続的に伝送される。伝送に利用可能なデータが存在しない場合、パケットのデータフィールドは、「充填(filler)」データを用いて充填され得、上記充填データは、受信ノードにおいて放棄され得る。伝送されたパケットは、既に受信されたパケットの受信確認(acknowledgement)を含んでいる。伝送ノードは、第1のパケットを伝送し、受信ノードから第1のパケットの受信確認を受信する前に、以後に続くパケットを少なくとも1つ伝送し始め得る。以下でさらに詳細に記述され得るように、ノードにおけるパケットの伝送および受信は、連動している。
図1Aに示されるように、第1のノード110からのメッセージデータは、シリアルリンク上でデータを多重化することにより、複数の宛先ノード、例えば、第2のノード120、第3のノード130、および第4のノード140に伝送され得る。第1のノード110と特定の宛先ノードとの間にあるノードは、データをルーティングし得る。第1のノード110は、第1のリンク125を介することにより、第2のノード120に対するデータを伝送し得る。第1のノード110はまた、第1のリンク125を介することにより、第3のノード130に対するデータを第2のノード120に伝送し、第2のノード120は、第2のリンク135を介することにより、上記データを第3のノード130にルーティングし得る。同様に、第1のノード110は、第1のリンク125を介することにより、第4のノード140に対するデータを伝送し得、第2のノード120は、第3のリンク145を介することにより、上記データを第4のノード140に伝送し得る。
あるインプリメンテーションにおいて、宛先ノードの宛先は、伝送されるデータに含まれているメッセージデータにおいて処理され得る。このインプリメンテーションにおいて、典型的に第2のノード120は、メッセージの一部を含むハードウェアレベルパケットを宛先ノードに送信する前に、第1のノード110から送信されたメッセージの少なくとも一部分を処理する。第2のノード120それ自身が宛先ノードである場合、メッセージは、これ以上は伝送される必要はない。
いくつかのシステムにおいて、第1のノード110と第3のノード130および第4のノード140との間の通信は、第3のノード130と第4のノード140との間の通信が発生するよりも、より頻繁に発生する。そのようなシステムにおいて、第1のリンク125は、第1のリンク125を通過する大きなボリュームのデータに対して十分な容量を提供するために、第2のリンク135または第3のリンク145よりも高速のリンクであり得る。
ノード110、120、130、および140は、1つ以上のハードウェアデータバッファ152〜164を含み得、上記ハードウェアバッファは、メッセージを受信し、それぞれのノード上またはそれぞれのノードと通信するデータ処理装置上で実行するソフトウェアがメッセージを受信する準備ができるまで、上記メッセージを保持し得る。ハードウェアデータバッファ152〜164はまた、個々のノードに関連するソフトウェアアプリケーションからメッセージを受信し得、そのノードがメッセージを伝送する準備ができるまで、そのメッセージを保持し得る。
図1Bに示されるように、ノード170の一インプリメンテーションは、メッセージマネージャ174、伝送/受信ロジック178、伝送バッファ182、および受信バッファ184を含む。伝送バッファ182および受信バッファ184はそれぞれ、以下で説明されるように、部分に分割され(例えば、個々に、別個の伝送バッファ182−1、182−2、182−3、および受信バッファ184−1、184−2、184−3)、メッセージの異なる優先度に指定される。一インプリメンテーションにおいて、複数の伝送バッファ182は、それぞれの優先度レベルに対して一つ以上を提供される。以下で検討するために、複数の伝送および受信バッファを含む一インプリメンテーションに参照がなされる。他の構成は可能である。各バッファは個々にアドレス可能であり、そのアドレス可能とは、メッセージマネージャ174および伝送/受信ロジック178は、他のバッファからは独立して、バイトを任意のバッファに配置し得るか、またはバイトを任意のバッファから読み出し得るようにである。
メッセージマネージャ174は、伝送バッファ182−1、182−2、182−3の任意のバッファにメッセージまたはメッセージの一部を配置し得る。一インプリメンテーションにおいて、メッセージマネージャ174は、高優先度伝送バッファ182−1に高優先度メッセージを配置し、中優先度伝送バッファ182−2に中優先度メッセージを配置し、低優先度伝送バッファ182−3に低優先度メッセージを配置する。3つの優先度レベルがこの例において示されるが、より少ない(図2)またはより多い優先度が割り当てられ得、システムによって処理され得る。
伝送/受信ロジック178は、メッセージングプロトコルに従ったシリアルリンク186を介して、伝送バッファ182からメッセージまたはメッセージの一部を伝送する。メッセージングプロトコルは、個々のノード間における通信のチャネルを作成する異なる優先度レベル(例えば、メッセージが割り当てられたバッファに基づく)のメッセージに対する所定のサービス品質を提供することができる。一インプリメンテーションにおいて、各チャネルは異なる優先度レベルを有する。伝送/受信ロジック178は、いったん十分なデータがバッファに書き込まれて、ハードウェアレベルパケットを満たすと、メッセージの一部を自動的に伝送することができる。すなわち、データが利用可能となり、メッセージ全体がバッファに書き込まれるまで待機する必要なく、メッセージ伝送が実行され得る。
メッセージングプロトコルは選択可能な(例えば、ユーザ、または、さもなければ規定される)サービス品質を提供するようにインプリメントされ得る。一インプリメンテーションにおいて、異なる優先度を有するメッセージが伝送のために利用可能である場合(例えば、メッセージが高優先度伝送バッファ182−1および中優先度伝送バッファ182−2にて存在する場合)、伝送/受信ロジック178はより低優先度メッセージよりも、優先的に、最も高優先度のメッセージまたはメッセージの一部を伝送する。例えば、伝送/受信ロジック178は、中優先度182−2伝送バッファまたは低優先度182−3伝送バッファが送信される前に、高優先度伝送バッファ182−1からメッセージを伝送する。同様に、メッセージまたはメッセージの一部は、低優先度伝送バッファ182−3に保存されたメッセージの前に、中優先度伝送バッファ182−2から伝送される。
別のインプリメンテーションにおいて、伝送/受信ロジック178は、メッセージを多重化するメッセージングプロトコルをインプリメントし得る。このインプリメンテーションにおいて、伝送/受信ロジック178は、ノード間における伝送のためのスロットを規定する。そのスロットは、所定のサービス品質に従って満たされ得る。例えば、高優先度伝送バッファ182−1における利用可能なメッセージまたはメッセージの一部は、中優先度182−2伝送バッファまたは低優先度182−3伝送バッファにおける利用可能なメッセージまたはメッセージの一部よりも、より多くの伝送スロットを割り当てられ得る。
さらに別のインプリメンテーションにおいて、伝送/受信ロジック178は、ラウンドロビンの方法にて、伝送バッファ182において利用可能であるメッセージまたはメッセージの一部をサービス(例えば、伝送)するメッセージングプロトコルをインプリメントすることができるが、中優先度バッファ(例えば、2)または低優先度バッファ(例えば、1)よりも、高優先度伝送バッファ(例えば、4)が、より多く提供される。
伝送/受信ロジック178はまた、シリアルリンク186からメッセージおよびメッセージの一部を受信し、そのメッセージおよびメッセージの一部を、受信バッファ184における適切なバッファに配置する。伝送/受信ロジック178は、シリアルリンク186(以下で検討される)を介して伝送されたハードウェアレベルパケットにおけるチャネル指示を用い、与えられたメッセージまたはメッセージの一部がどのレベルに属するのかを決定する。一インプリメンテーションにおいて、伝送/受信ロジック178は、受信されたメッセージをメッセージマネージャ174に渡し、受信バッファ184は使用されない。代替的なインプリメンテーションにおいて、受信されたメッセージは、受信バッファ184における優先度に従って、分離されない。
メッセージマネージャ174および伝送/受信ロジック178は、コンピュータ、プログラマブルプロセッサ、FPGA、エンジン、または他のデータ処理装置であり得る。メッセージマネージャ174および伝送/受信ロジック178は別個の構成要素として示されるが、それらは単一の構成要素へと組み合わされ得る。伝送/受信ロジック178はまた、別個の伝送ロジックおよび受信ロジックへと分割され得る。
伝送バッファ182および受信バッファ184は、先入れ先出し(FIFO)データバッファであり得、または、読出しおよび書込みポインタを有するサーキュラ・バッファであり得る。伝送バッファ182および受信バッファ184は別個のデバイス上(例えば、別個の集積回路)においてインプリメントされ得るか、または単一のデバイスの一部上においてインプリメントされ得る。一インプリメンテーションにおいては、ノード170のバッファを含む全ての構成要素が単一のFPGAにおいてインプリメントされる。
図1Cは、異なる優先度を有するメッセージを伝送するプロセス102を示す。その例において、3つのメッセージ優先度(高優先度、中優先度、低優先度)が含まれる。初期の工程として、伝送のためのメッセージは、(例えば、図1Bにおけるメッセージマネージャ174上において実行するソフトウェアによって)識別され、型分類される(工程190)。メッセージは、型分類(高優先度伝送バッファに高優先度メッセージ、中優先度伝送バッファに中優先度メッセージ、および低優先度伝送バッファに低優先度メッセージ)に従って、個々の伝送バッファに配置される(工程192)。メッセージングプロトコルは識別される(例えば、伝送/受信ロジック178は、メッセージの各タイプに対するサービス品質を決定する(工程193))。メッセージは次いで、識別されたメッセージプロトコルにしたがって伝送される(例えば、伝送/受信ロジック178によって)(例えば、高優先度メッセージは、中優先度メッセージおよび低優先度メッセージよりも優先的に伝送され(工程194)、中優先度メッセージは低優先度メッセージよりも優先的に伝送される(工程196))。メッセージが優先的に伝送され得る可能な方法は、伝送/受信ロジック178との関連において上述されている。
図2に示されているように、一インプリメンテーションにおける固定長のパケット200は、複数のバイト201〜240を含み得る。40バイトのパケットが示されているが、固定長のパケットは、その他の長さでもあり得る。示されているインプリメンテーションにおいて、制御情報は、40バイトのうちの8バイトに配置され、データは、残りの32バイトに配置されている。第1のバイト201は、同期化フィールドであり、上記同期化フィールドは、パケットを受信するノードにおいて、バイトの骨組み(framing)を維持するように用いられ得る。複数のノードの間のクロックドリフトを補償するために、追加的な同期化バイトが、(例えば128パケットごとに一度)パケットに追加され得る。第2のバイト202は、受信確認フィールドであり、上記受信確認フィールドは、パケット200を伝送するノードによって受信された最後のノードが、正しく(例えば、有効なエラー検査情報を含んで)受信されたか否かを示す。第2のバイト202は、最後のパケットが正しく受信されたという肯定受信確認(ACK)を示すために、ある値(例えば、0xAC)に設定され、最後のパケットが正しく受信されなかったこと(例えば、否定受信確認またはNAK)を示すために、逆値(例えば、0x53)に設定され得る。一インプリメンテーションにおいて、肯定受信確認の値を除く任意の値は、否定受信確認として解釈され得る。このインプリメンテーションにおいて、NAK値がACK値の逆である場合、8ビットのエラーは、伝送されたNAKをACKに変更させるように要求される。
第3のバイト203は、応答フィールドであり、上記応答フィールドは、例えば、システムが診断テストモードにあることを示すテストモードビットや、複数のメッセージチャネル(例えば、低優先順位、中優先順位、高優先順位のチャネル)の各々に対するXOFFビットのような、複数の制御ビットを含んでいる。制御ビットはまた、再伝送ビットをも含み得、上記再伝送ビットは、設定されたときにパケット200が以前のパケットの再伝送であるということを示し得る。また、1つ以上の制御ビットは、欠陥ビットであり得、上記欠陥ビットは、システム内でエラーが発生したことを示す。
第4のバイト204は、ヘッダフィールドである。ヘッダフィールドは、例えばチャネル選択サブフィールドやコマンドサブフィールドのような、複数のサブフィールドを含み得る。チャネル選択サブフィールドは、パケット200内のデータが、どの優先順位のチャネル上に伝送されるのかを示すように用いられる。コマンドサブフィールドは、バッファをフラッシュ(flush)し、メッセージのストリームを再開するための命令を含み得る。コマンドサブフィールドは、特定のデータが、ハードウェアチャネル上、または、そのようなデータを識別するコード上に送信されることを要求する命令を含み得る。コマンドサブフィールドはまた、システムを同期化するようにも用いられる。例えば、同期化サイクルの開始において、同期化コマンドを含むパケットが送信され得、システム内のサブシステムが同期化を維持することを可能にする(例えば、10マイクロ秒の範囲内)。第5のバイト205は、受信ノードによって伝送エラーを検出するように用いられ得るハードウェアレベルパケットシーケンス番号を含むシーケンス番号フィールドである。第6のバイト206から第37のバイト237までは、例えばメッセージまたはメッセージの一部のような、32バイトのデータを保持するデータフィールドに属している。
第38のバイト238は、パケット末端フィールドであり、上記パケット末端フィールドは、データフィールドにおけるどれだけのバイトがメッセージに対応し得るのかと、どれだけのバイトが充填バイトであるのかとを特定し得る。パケット末端フィールドはまた、パケット末端指示ビットをも含み得、上記パケット末端指示ビットは、データフィールドにおけるバイトがメッセージを終了するときに設定される。メッセージ末端指示ビットは、受信ノードにおける中断をトリガし得る。第39のバイト239および第40のバイト240は、エラー検査フィールドの一部であり、上記エラー検査フィールドは、一実施形態において、16ビットのCRC値(例えば、CCITT 16ビット CRC アルゴリズムを用いて計算される)を含み得る。ノードがパケットを受信すると、上記ノードは、エラー検査フィールドを用いることにより、パケットが伝送または受信されている最中にエラーが発生したか否かを決定し得る。
パケット200の構造は、ノード内の欠陥を示す欠陥反応論理(FRL;fault reaction logic)信号が、複数の方法で通信されることを可能にする。例えば、FRL信号は、パケット制御情報内に(例えば、パケット200の応答フィールドの制御ビット内に)、および/または、メッセージ内に伝送され得る。パケット制御情報内にFRL信号を直接的に伝送することは、欠陥情報がシステム全体にわたって非常に迅速に伝送され、非常に低いレベルで取り扱われることを可能にする。システム全体にわたる欠陥信号は、ソフトウェアの介入なしで伝播され得、欠陥反応ハードウェアは、欠陥信号が受信されると、システムを安全な状態に置き得る。欠陥を引き起こした問題が(例えば、人間のオペレータの介入によって)一旦解決されると、欠陥信号はクリアされ得、システムは動作可能状態に戻り得る。欠陥信号がクリアされると、典型的に欠陥を示しているFRL信号は、別の欠陥が発生するまで、パケット制御情報内に伝送されない。余分なFRL信号は、高優先度メッセージおよび中優先度メッセージにて伝送され得る。
記載されたハードウェアパケット構造は、メッセージが、単一のチャネル上に、またはシリアルリンク上にて多重化された複数のチャネル上に伝送されることを可能にする。特定のメッセージが伝送されるチャネルは、パケット200におけるチャネル選択サブフィールドによって示される。スピードが重視されるメッセージは高優先度チャネルにて伝送され得、その一方で、比較的重要ではないメッセージは低優先度チャネルにて伝送され得る。
異なる優先度レベルを有するメッセージを伝送することが有利であるシステムの一例は、ロボット補助式手術システムである。そのようなシステムは、手術用の器具またはデバイス(例えば、腹腔鏡、内視鏡、照明、カメラ、および吸入器)を保持する複数のロボット式アームを含み得、そららのうちのいくつかは、患者の内部に位置し得る。典型的に、ロボット式アームは、制御コンソールに着席した外科医によって遠隔的に操作される。外科医が操作する制御と、ロボット式アームを制御するノードとの間の通信は、本明細書における開示に記述されている方法、システム、および装置を用い得る。ロボット式アームの動きを制御するための外科医からのコマンドは、典型的には、高優先度チャネルにて伝送され、その結果、コマンドの発生とその結果の動きとの間における遅延は最小化される。ロボット式アームからの応答(例えば、アーム内のセンサーからアームの実際の動きの測定)はまた、高優先度チャネルにて伝送され得、そのコマンドに対するアームの応答における迅速なフィードバックを可能にする。重要度の低い地位の情報およびエラーログ情報などの非同期システムメッセージは、中優先度チャネルまたは低優先度チャネルにて伝送され得る。
第3のバイト203内のXOFFビットは、チャネル内のデータのフローを制御する。各ノードは、複数のハードウェアバッファを含み得、上記ハードウェアバッファは、複数のチャネルの各々上で伝送されたメッセージを受信し得る。例えば、高優先順位のメッセージは、高優先順位のバッファに格納され、低優先順位のメッセージは、低優先順位のバッファに格納される。パケット200を伝送する第1のノードがパケット200内のXOFFビットを設定するとき、第1のノードは、パケット200を受信する第2のノードに、それぞれのデータチャネル上で第1のノードにデータを伝送するのを停止するように命令する。第1のノードのハードウェアは、データチャネルに対して、例えば、第1のノードが上記データチャネルからのメッセージを格納するバッファが一杯になりそうなときに、XOFFビットを自動的に設定し得る。一インプリメンテーションにおいて、所定のチャネルに対してノードがいつXOFFビットを設定するかに関する閾値は、ノード内のそれぞれのチャネルの受信バッファのサイズ(例えば、512ワード)から32ワード(4パケット)を引いたものに等しい。32ワードのマージンは、エラーに対するマージンを用いることにより、XOFF信号を受信し、それに反応した動作をとる時間を、受信ノードに与える。その他の閾値レベルもまた、可能である。第1のノードのハードウェアはまた、多数(例えば、12個)のメッセージが受信バッファに存在するときに、データチャネルに対するXOFFビットを設定し得る。一旦パケットまたはメッセージがバッファから取り除かれると、ハードウェアは、データチャネルに対するXOFFビットを自動的にクリアし得る。各優先順位チャネルは、ノード内のそれぞれの受信バッファを有し得る。XOFFビットはすべてのパケット内に伝送されるので、エラー検査フィールドがXOFFビットに適用され、XOFFビットの改悪(corruption)をガードする。
上述のチャネル選択サブフィールドを用いることにより、複数の通信チャネルがリンク層において利用可能にされ得る。例えば、ハードウェアチャネルと、高優先順位、中優先順位、低優先順位のチャネルとが、実装され得る。メッセージは、長さが(例えば、3ワードから128ワードの間に)変動し得、メッセージの長さに依存して、1つ以上のパケットに伝送され得る。システムハードウェアは、伝送ノードにおいて、メッセージを複数のパケットに細分化し、受信ノードにおいて、メッセージを逆細分化し得る。メッセージがパケットのデータ部分を充填していない場合、データ部の残部に充填データが挿入され得る。メッセージの伝送バッファと受信バッファとが、ハードウェア内に実装され得る。例えば、ノードは、各チャネル(例えば、高優先順位、中優先順位、低優先順位のチャネル)に対し、ハードウェアの伝送バッファと受信バッファとを含み得る。一インプリメンテーションにおいて、上記チャネルに対する伝送バッファおよび受信バッファは、最大のメッセージサイズの1.5倍である。
図3は、図2の文脈で議論されたようなパケットを用いることによる2つのノードの間の通信のための概念的なタイミング図を示している。パケット301〜304は、第1のノードから第2のノードへと連続的に伝送される。パケット311〜314は、第2のノードで受信され、パケット301〜304に対応しているが、パケット311〜314は、伝送エラーが発生した場合は、それぞれのパケット301〜304の改悪版であり得る。時間的に、パケット311〜314の受信は、リンクに沿ったパケットの有限の伝播時間のために、パケット301〜304伝送に対して遅延される。図3に示されている例において、パケットの伝播時間は、パケットの持続時間(パケットを伝送するために第1のノードによって要求される時間の長さ)よりも短い。
第2のノードは、パケット355〜358を第1のノードに伝送する。パケット365〜368は、ある遅延の後で、第1のノードにおいて受信され、パケット355〜358を対応する。パケット356は、パケット301に適用される受信確認フィールドを含む。パケット311(パケット301に対応する)が第2のノードにおいて正しく受信された場合、パケット356は、パケット301に対するACKを含む。パケット311が同時に受信されなかった場合、パケット356は、NAKを含む。パケット357は、パケット302に対応する受信確認フィールドを含む。同様に、パケット303は、第1のノードにおいてパケット365が正しく受信されたか否かを示す受信確認フィールドを含み、パケット304は、パケット366に対する受信確認フィールドを含む。
一インプリメンテーションにおいて、第2のノードは、第1の受信確認フィールドが第1のノードから受信されるまで、パケットの伝送を開始しない。例えば、第2のノードは、第2のノードがパケット311内の受信確認フィールドを受信するまで、パケット355の伝送を開始しない。第1のノードと第2のノードとの間の初期同期化を容易にするために、2つのノードは、第1のノードがパケット301を伝送する前に、いくつかの連続的な同期化バイトを各々伝送し得る。
図3は、第1のノードと第2のノードとの間に2つのパケットの「パイプライン」が存在する場合を示している。パケット356は、パケット301に対する受信確認フィールドを含む。受信確認フィールドがACKを含む場合、第1のノードは、パケット303を伝送する。しかしながら、パケット356の受信確認フィールドがNAKを含む場合、第1のノードは、パケット301および302をリフレームし、再伝送し得る。システムを再同期化するために、このインプリメンテーションにおいて、2つのパケットは、2つのパケットのうちの第1のパケットに対してNAKが受信されたときに、再伝送される。2つのパケットのうちの第1のパケットが正しく受信されなかった場合、第2のパケットは、第2のパケットがはじめて伝送されたときに、第2のパケットが正しく受信されたか否かをチェックすることなしに、再伝送され得る。2つのノードの間の同期化の損失により、第1のパケットにおけるエラーが発生したという状況において、第2のパケットはエラーを含むと考えられるため、第2のパケットは先制的に(preemptively)伝送される。NAKを伝送したノードもまた、NAKを伝送する前に伝送された最後の2つのパケットを伝送し得る。所定のパケットに対し、受信確認フィールドは、別のパケットが伝送された後にのみ受信されるため、図3は、第1のノードと第2のノードとの間に2つのパケットのパイプラインを有するように記述されている。第1のノードと第2のノードとの間の往復時間は、1つのパケットを伝送するのに要求される時間と同じか、わずかに短い。すなわち、第1のノードは、第1のノードがパケット301の伝送を終了するよりも前に、パケット365の受信を開始し得る。典型的に、往復時間は、リンク上の伝播の遅延と、ノードにおける処理時間とに依存する。システム内では、より長い往復時間(絶対時間が長い、または、パケットの持続時間に関する時間が長い)もまた、使用され得、結果として、パイプラインは、2つのパケットよりも深く(deep)なり得る。
パケットは、パケットのデータフィールドに位置するメッセージが存在するか否かに関わらず、第1のノードと第2のノードとの間で実質的に連続的に伝送される。図3に示されているように、パケットは、連動的な方法で伝送される。固定長のパケットの連動的な伝送は、ノードにおいて受信されたパケットと、ノードによって伝送されたパケットとの間で、位相が固定されたオフセットを発生し得る。ノードは、既に伝送されたパケットの伝送から所定の長さの時間の後、既に伝送されたパケットに関するエラーのない受信の受信確認を含むパケットを、遠隔ノードから受信する。連動したパケットの連続的な伝送は、複数のノードの間の正確な同期化と共に、高帯域幅、低遅延の通信を可能にする。加えて、パケットの連続的な伝送は、システムが複数のノードの間の接続のビットエラーレート(BER;bit error rate)を正確かつ実質的に連続的に計算することを可能にする。
図4に示されているように、第2のノードが、第1のノードからパケット411を受信し、パケット411におけるデータの改悪を引き起こす伝送エラーが発生したことを決定するとき、第2のノードは、次のパケットを伝送する代わりに、パケットの伝送を終了し、第1のノードにNAKとリフレーミングシーケンス(reframing sequence)456とを伝送する。パケット411が改悪され得る理由の1つは、第1のノードと第2のノードとの間の同期化が低下し得ること、または、損失し得ることにあるため、リフレーミングシーケンス456が伝送され、第1のノードと第2のノードとの間の同期化を再構築する。リフレーミングシーケンスは、代替的な同期化フィールドとリンクフィールドとを含み得、上記リンクフィールドは、例えば0xA3のような所定のコードであり得る。一インプリメンテーションにおいて、ノードがリフレームされることを考慮される前に、4つのリンクのバイトが受信されなければならない。第1のノードは、NAKおよびリフレーミング、シーケンス466を受信し、リフレーミングシーケンス403を伝送する。第1のノードがリフレーミングシーケンス403を伝送した後、第1のノードは、NAKを受信する前に伝送された最後のパケットを再送信する。N個のパケットのパイプラインの場合、最後のN個のパケットが再送信される。一旦、第2のノードが、第1の再伝送されたパケット414におけるACKを受信すると、第2のノードはまた、パケットの再伝送を開始する。
図5に示されているように、第1のノードが第2のノードからパケット565を受信し、パケット565におけるデータの改悪を引き起こす伝送エラーが発生したことを決定するとき、第1のノードは、NAKとリフレーミングシーケンス503とを、第2のノードに送信する。第2のノードは、NAKとリフレーミングシーケンス513とを受信し、リフレーミングシーケンス557を送信する。第1のノードがNAKとリフレーミングシーケンス503とを伝送した後、第1のノードは、改悪されたパケットを受信する前に伝送された最後のパケットを再送信する。一旦、第2のノードが第1の再伝送されたパケット514内のACKを受信すると、第2のノードはまた、パケットの再伝送を開始する。
エラーカウンタは、ノード内で発生するハードウェアのエラーの回数を追跡し得る。カウンタが閾値に到達したときに、中断がイネーブルにされ得る。一インプリメンテーションにおいて、エラーカウンタは、ノード内のソフトウェアによって読み取られ得、上記ソフトウェアは、中断の閾値を設定し得る。このシステムにおいて、エラーの検出および修正は、非常に低いレベルで扱われ得、記述されたリンク層の最上位で動作するソフトウェア層は、追加的なエラーの検出および修正をインプリメントする必要がない。
図6は、一インプリメンテーションにおけるノードにおいて実行される処理600を示している。ノードは、第1のパケットの受信を開始し(ステップ610)、第1のパケットにおける受信確認フィールドを受信する(ステップ615)。ノードは、受信確認フィールドが、ACKであるか、NAKであるかを決定する(ステップ620)。受信確認フィールドがNAKである場合、ノードはリフレーミングシーケンスを伝送し(ステップ625)、受信したNAKがそのパケットの後に伝送された任意のパケットに対応するようなパケットを再伝送する(ステップ630)。受信確認フィールドがACKである場合、ノードは第2のパケットの伝送を開始し(ステップ635)、例えば、上記パケット内のCRC値を検証することにより、第1のパケットのエラーをチェックする(ステップ640)。第1のパケットにおいてエラーが検出された場合、ノードは、第2のパケットの伝送を終了し(ステップ645)、NAKとリフレーミングシーケンスとを伝送する(ステップ650)。
第1のパケットにおいてエラーが検出されなかった場合、ノードは、第1のパケットにおいて欠陥ビットが設定されたか否かを決定する(ステップ655)。欠陥ビットが設定された場合、ノードは、欠陥モードまたは安全状態に置かれる(ステップ660)。欠陥ビットが設定されていない場合、または、一旦ノードが欠陥モードに置かれると、ノードは第2のパケットの伝送を終了し(ステップ665)、第3のパケットの伝送を開始する(ステップ670)。
図7は、システムにおけるノード間を通信するために、図2〜図6に関連して記載されたリンク層を介して伝送され得るメッセージ700を示す。メッセージ700はまた、USB、RS−232、またはIEEE 802.3(イーサネット(登録商標))などの、他の接続を介して伝送され得る。同様のメッセージ700は、接続の各タイプを介して伝送され得、必要に応じて、接続特定のラッパーにおいてラップ(wrap)される。例えば、パケット200(図2)の第37のバイト237を介して、第6のバイト206において伝送されるメッセージは、図8に関連して以下に記載されるラッパーにおいてラップされるメッセージ700である。通常のフォーマットはメッセージ700に対するシステム全体において用いられるゆえ、メッセージ700は、変更無しにシステム内の任意のノードに対して伝送され得る。
メッセージ700は、複数のバイト701〜708を含む。メッセージ700の最初の6つのバイト701〜706はヘッダを形成し、最後のバイト707〜708はメッセージ本体を形成する。最後のバイト707〜708におけるメッセージ本体は、長さが変化し得る(バイト707とバイト708との間におけるバイトは図示されない)。ヘッダの第1のバイト701は、それに続くバイトに対するチェックサムフィールドを含む。第2のバイト702は、例えば、同期化コマンドまたは構成チェックコマンドなどを含み得るコマンドフィールドを含む。ノードは別のノードによって発行されたコマンドに応答し得(例えば、コマンドの実行状態をレポートするなど)、そのコマンドフィールドは応答ビットを含み得る。その応答ビットは、応答メッセージにおけるコマンドフィールドの応答ビットを、コマンドを発行したノードに送信されるように設定することができる。その応答ビットは、そのメッセージがコマンドに対する応答であり、新しいコマンドを含まないことを指示する。
メッセージ700における第3のビット703は、メッセージ700が伝送されたノードを指示するソースフィールドを含む。第4のバイト704は、メッセージ700が伝送されるべきノード(単数または複数のノード)を指示する宛先フィールドを含む。第5のバイト705は状態フィールドを含む。応答ノードは、応答メッセージを送信した場合、状態フィールド(例えば、成功または失敗を示す)におけるコマンドの実行についての情報を含み得る。第6のバイト706は、メッセージ700の本体がどの程度の長さであるのかを示す長さフィールドを含む。
図8に示されるように、上述のリンク層を用いた伝送のためのメッセージ800は複数のバイト801〜810を含む。最初の4つのバイト801〜804はヘッダを形成し、最後の4つのバイト807〜810はテールを形成し、中間のバイト805〜806は、メッセージ700(図7)を含む本体を形成する。ヘッダの最初のバイト801は、メッセージの本体がどの程度の長さであるかを示す長さフィールドを含む。ヘッダの第2のバイト802は、メッセージのタイプを特定することができるタイプフィールドを含む。ヘッダの第3のバイト803は、メッセージ800が伝送されるノードを示すソースフィールドを含む。ヘッダの第4のバイト804は、メッセージ800が伝送されるべきノード(単数または複数のノード)を示す宛先フィールドを含む。
中間のバイト805〜806は長さが変化し得(バイト805とバイト806との間のバイトは図示されない)、メッセージ700(図7)を含み得る。テールの最初のバイト807は、未来の使用のために取っておかれている、付けたし(padding)のバイトであり得る。第2のテールの第3および第4のバイト809および810は、メッセージ800のヘッダおよび本体に対するチェックサムフィールドであり得る。
テールの第2のバイト808におけるシーケンス番号フィールドは、メッセージ800が伝送される優先チャネルに特定的であるメッセージ800に対するシーケンス番号を含み得る。すなわち、システムは、他の優先チャネルとは独立して、所定の優先チャネルに伝送されるメッセージに、シーケンス番号を割り当てることができる。そのシーケンス番号はまた、メッセージ800の伝送を形成および開始するノードに依存し得る。この方法において、システムにおける各ノードは、ノード上の各優先チャネルに対して異なる開始シーケンス番号を有し得る。所定のノードおよび優先チャネルに対するシーケンス番号は、メッセージが特定の優先チャネル上における特定のノードから首尾良く伝送された後、インクリメントされる。
テールの第3および第4のバイト809〜810におけるチェックサムフィールドは、ヘッダおよび本体におけるバイトの総計であり得る。チェックサムフィールドは、メッセージ800におけるエラーを検出するために用いられ得る。メッセージ800の本体はまた、より堅牢なエラー検出のためのCRCチェックサムを含み得る。
システムが立ち上がると、マスターノードにおけるソフトウェア(例えば、ロボット援助式手術システムにおける外科医コンソールにおいて)は、メッセージ800のソースフィールドおよび宛先フィールドにおける個々のノードを識別するために用いられるシステムにおいて、ノードIDを各ノードに割り当てることができる。一つ以上の特別なIDが取っておかれ得、宛先フィールドにおける特別なIDを含むメッセージは複数のノードに同報通信されることを指示するために用いられ得る。
マスターノードにおけるソフトウェアは、システムにおける他のノードをクエリし得、他のノードが実行しているソフトウェアのバージョンを決定する。システムにおけるノードが予期しないソフトウェアのバージョン(そのバージョンは、マスターノードのバージョンと一致しない、または、マスター制御器において保存されている要求されたバージョン情報と一致しない)である場合、障害がトリガされ得、システムにおけるノードは、オペレータがソフトウェアの修正バージョンをノードにロードするか、または、ノードを、インストールされたソフトウェアの修正バージョンを有する異なるノードと取り替えるまで、安全な状態に置かれ得る。
システムにおいて障害が生じると、通常は、その障害の原因は、その障害が生じたノード上のエラーログに保存される。その障害の原因についての情報は、通常は、マスターノードに伝送され、そこでログされる。
一インプリメンテーションにおいて、ノードは、上述のリンク層、USBポート、RS−232ポート、およびイーサネット(登録商標)ポートを用いて通信するポートを含み得る。ポートの一部または全ては、他のノードと通信するために用いられ得、ポートの一部または全ては、システムをテストまたは更新する装置を接続するために用いられ得る。システムをテストまたは更新する装置がポートに接続されると、装置がセキュリティのためのパスワードを提供することをシステムは要求し得る。
メッセージはシステムのメンテナンスおよび更新のために用いられ得る。例えば、メッセージは、別のノードかつ、またはノードの一つに結合された更新装置(例えば、ラップトップコンピュータ)から、ノードに対してソフトウェアの更新を伝送するために用いられ得る。ノードと結合された診断用装置または更新装置はそのノードと通信し得、また、装置がメッセージを所望のノードに転送するために接続されるノードを用いることによって(例えば、メッセージ800の宛先フィールドにおける所望のノードを特定することによって、など)、システムにおける他のノードと通信し得る。システム全体において、メッセージ700に対する通常のフォーマットの使用によって、診断用装置または更新装置が、簡単な方法において、システムにおける任意のノードと通信することを可能にする。
本発明の実施形態、および、本明細書に記述された機能的な動作のすべては、デジタル電子回路、または、コンピュータのソフトウェア、ファームウェア、または、ハードウェアに実装され得、本明細書に記述された構造と、それらの構造上の等価物と、それらのうちの1つ以上の組み合わせとを含み得る。本発明の実施形態は、1つ以上のコンピュータプログラム製品として、すなわち、データ処理装置によって実行されるか、または、データ処理装置の動作を制御するための、コンピュータ読取り可能な媒体上に符号化されたコンピュータプログラム命令の1つ以上のモジュールとして、実装され得る。コンピュータ読取り可能な媒体は、機械読取り可能な格納デバイス、機械読取り可能な格納基板、メモリデバイス、機械読取り可能な伝播信号に作用する構成、または、それらの1つ以上の組み合わせであり得る。「データ処理装置」という用語は、例えばプログラム可能なプロセッサ、コンピュータ、または、マルチプロセッサまたはコンピュータを含む、データを処理するための装置、デバイス、および機械のすべてを包含する。上記装置は、ハードウェアに加え、問題となっているコンピュータプログラムに対する実行環境を形成するコードを含み得、上記コードは、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、または、それらのうちの1つ以上の組み合わせを構成する。伝播信号は、人工的に生成された信号、例えば、機械によって生成された電気的、光学的、または、電磁気的な信号であり得、適切な受信装置に伝送するために、情報をエンコードするように生成され得る。
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとしても知られる)は、コンパイルまたは解釈された言語を含む、任意の形式のプログラム言語で書かれ得、スタンドアロンなプログラムとして、または、モジュール、コンポーネント、サブルーチンとして、または、コンピューティング環境における使用に適したその他のユニットとしてを含む、任意の形式で配信され得る。コンピュータプログラムは、必ずしもファイルシステム内のファイルに対応しているわけではない。プログラムは、その他のプログラムまたはデータ(例えば、マークアップ言語のドキュメントに格納された1つ以上のスクリプト)を保持するファイルの一部に、問題となっているプログラムに専用の単一のファイルに、または、(例えば、1つ以上のモジュール、サブプログラム、または、コードの一部を格納する)組織化された複数のファイルに格納され得る。コンピュータプログラムは、1つの場所に位置しているか、または、複数の場所に分散し、通信ネットワークによって相互接続されている、コンピュータ、または、マルチコンピュータ上で実行されるように配信され得る。
本明細書に記述された処理および論理の流れは、1つ以上のコンピュータプログラムを実行する1つ以上のプログラム可能なプロセッサによって実行され得、データを入力し、出力を生成するように動作することにより、複数の機能を実行する。処理および論理の流れはまた、例えばFPGA(field programmable gate array)またはASIC(application−specific integrated circuit)のような特定用途向け論理回路によって、実行され得、装置はまた、上記のような特定用途向け論理回路として、インプリメントされ得る。
コンピュータプログラムの実行に適したプロセッサは、例えば、汎用マイクロプロセッサと特定用途向けマイクロプロセッサとの両方、任意の種類のデジタルコンピュータの1つ以上の任意のプロセッサを含む。一般に、プロセッサは、命令とデータとを、読み出し専用メモリまたはランダムアクセスメモリまたはその両方から受信し得る。コンピュータの主要な要素は、命令を実行するためのプロセッサ、および、命令とデータとを格納するための1つ以上のメモリである。一般に、コンピュータは、データを格納するために、1つ以上の大容量の格納デバイス(例えば、磁気ディスク、磁気光学ディスク、または、光学ディスク)を含み得、あるいは、データを受信するように、または、データを伝送するように、または、受信と伝送との両方を行なうように、上記格納デバイスに動作可能なように接続される。しかしながら、コンピュータは、必ずしもそれらのデバイスを有する必要はない。さらに、コンピュータは、別のデバイス、例えば、いくつか例を挙げると、携帯電話、パーソナルデジタルアシスタント(PDA)、携帯型オーディオプレイヤー、全地球測位システム(GPS)受信器に埋め込まれ得る。コンピュータプログラムの命令およびデータを格納するのに適したコンピュータ読取り可能な媒体は、任意の形態の不揮発性メモリ、メディア、および、メモリデバイスを含み、例えば、半導体メモリデバイス(例えば、EPROM、EEPROM、フラッシュスメモリデバイス)、磁気ディスク(例えば、内蔵式のハードディスクまたはリムーバブルディスク)、磁気光学ディスク、ならびに、CD−ROMディスクおよびDVD−ROMディスクを含む。プロセッサおよびメモリは、特定用途向け論理回路によって補完されるか、特定用途向け論理回路に実装され得る。
ユーザとの相互作用を提供するために、本発明の実施形態は、ユーザに情報を表示するための、例えばCRT(陰極線管)またはLCD(液晶ディスプレイ)のようなディスプレイデバイスと、ユーザにコンピュータへの入力を提供するための、キーボードと例えばマウスまたはトラックボールのようなポインティングデバイスとを有するコンピュータに実装され得る。その他の種類のデバイスも同様に、ユーザとの相互作用を提供するために用いられ得る。例えば、ユーザに提供されたフィードバックは、任意の形態の知覚性フィードバックであり得、例えば、視覚性のフィードバック、音響性のフィードバック、または、触覚性のフィードバックであり得る。また、ユーザからの入力は、任意の形態で受信され得、上記入力は、音響性の入力、発話による入力、または、触覚性の入力を含み得る。
本明細書は、多くの具体例を含んでいるが、これらは、本発明またはクレームされている内容の範囲を制限するものとして考えられるべきではなく、むしろ、本発明の特定の実施形態に特有の特徴を記述しているものとして考えられるべきである。別個の実施形態の文脈で本明細書に記述されている特定の特徴はまた、単一の実施形態に組み合わせてインプリメントされ得る。逆に、単一の実施形態の文脈で記述されている様々な特徴は、複数の実施形態に別個にインプリメントされ得るか、または、任意の適切な組み合わせの構成要素(subcombination)でインプリメントされ得る。さらに、上述では、特徴は、特定の組み合わせに作用するように記述されているが、いくつかの場合において、クレームされた組み合わせからの1つ以上の特徴は、上記の組み合わせから切り取られたようにさえも主にクレームされ得、クレームされた組み合わせは、組み合わせの構成要素または組み合わせの構成要素の組み合わせに向けられ得る。
同様に、図面において、動作は特定の順序で記述されているが、このことは、示されているそのような特定の順序または連続的な順序で実行されること、あるいは、示されているすべての動作が望ましい結果を達成するように実行されることを要求していると理解されるべきではない。特定の状況において、マルチタスク処理および並列処理は、有利であり得る。さらに、上述された実施形態における様々なシステムコンポーントの分離は、すべての実施形態においてそのような分離を要求しているものとして理解されるべきではなく、記述されたプログラムコンポーネントおよびシステムは、一般に、単一のソフトウェア製品に互いに統合され得るか、または、複数のソフトウェア製品にパッケージ化され得ると理解されるべきである。
このようにして、本発明の具体的な実施形態が記述されてきた。その他の実施形態は、以下の請求項の範囲内にある。例えば、請求項に挙げられた動作は、異なる順序で実行され得、それでも、望ましい結果を達成し得る。上述された方法、システム、および装置は、光ファイバー(例えば、160Mb/秒で動作する)、低電圧の差動信号(例えば、122Mb/秒で動作する)、ソースの同期なシリアル、非同期なバックプレーンワイヤを含む、様々な物理的な伝送機構と共に用いられ得る。一インプリメンテーションにおいて、改悪されたパケットは、上記パケットがエラーを許容し得るデータを含んでいるときには、必ずしも再伝送する必要はない。例えば、ビデオストリームまたはオーディオストリームにおいて時々発生する誤動作は、許容可能である。さらに、エラー検出およびリフレーミングが、このインプリメンテーションに使用され、ハードウェアがフレーミングエラーからの高速のリカバリをインプリメントすることを可能にする。
以上のように、本発明の好ましい実施形態を用いて本発明を例示してきたが、本発明は、この実施形態に限定して解釈されるべきものではない。本発明は、特許請求の範囲によってのみその範囲が解釈されるべきであることが理解される。当業者は、本発明の具体的な好ましい実施形態の記載から、本発明の記載および技術常識に基づいて等価な範囲を実施することができることが理解される。
110、120、130、140 ノード
125、135、145 リンク
152、154、156、158、160、162、164 データバッファ
125、135、145 リンク
152、154、156、158、160、162、164 データバッファ
Claims (23)
- ロボット補助式手術システムであって、
命令を実行するように動作可能であるプログラマブルプロセッサと、
該プログラマブルプロセッサに結合される第1のデータバッファであって、該プログラマブルプロセッサは、該命令に応答して、該第1のデータバッファに第1の優先度のデータを転送するように動作可能であり、該第1のデータバッファは、該第1の優先度のデータのみとともに使用される、第1のデータバッファと、
該プログラマブルプロセッサに結合される第2のデータバッファであって、該プログラマブルプロセッサは、該命令に応答して、該第2のデータバッファに第2の優先度のデータを転送するように動作可能であり、該第2のデータバッファは、該第2の優先度のデータのみとともに使用される、第2のデータバッファと、
データリンクと、
該第1および該第2のバッファ、ならびに該データリンクに結合される伝送ロジックであって、該伝送ロジックは、メッセージングプロトコルにしたがって、該データリンクを介して、該第1の優先度のデータを該第2の優先度のデータよりも優先的に伝送するように動作可能である、伝送ロジックと
を備える、ロボット補助式手術システム。 - 前記第1の優先度のデータは、ロボットアームの動きを制御するコマンドを含み、前記第2の優先度のデータは、重要度の低い情報およびエラーログ情報のうちの少なくとも一つを含む、請求項1に記載のロボット補助式手術システム。
- 前記プログラマブルプロセッサに結合される第3のデータバッファであって、該プログラマブルプロセッサは、前記命令に応答して、該第3のデータバッファに第3の優先度のデータを転送するように動作可能であり、該第3のデータバッファは該第3の優先度のデータのみとともに使用される、第3のデータバッファをさらに備え、
前記第1の優先度のデータは高優先度データであり、前記第2の優先度データは低優先度データであり、および該第3の優先度データは中優先度のデータである、請求項1に記載のロボット補助式手術システム。 - 前記メッセージングプロトコルは、前記伝送ロジックが、前記第1のデータバッファからの前記第1の優先度のデータを前記第2のデータバッファからの前記第2の優先度データよりも優先的に伝送することを要求する、請求項3に記載のロボット補助式手術システム。
- 前記メッセージングプロトコルは、前記伝送ロジックが、前記第1のデータバッファからの前記第1の優先度のデータを前記第3のデータバッファからの前記第3の優先度データよりも優先的に伝送することをさらに要求する、請求項4に記載のロボット補助式手術システム。
- 前記メッセージングプロトコルは、前記伝送ロジックが、前記第3のデータバッファからの前記第3の優先度のデータを前記第2のデータバッファからの前記第2の優先度データよりも優先的に伝送することをさらに要求する、請求項5に記載のロボット補助式手術システム。
- 前記第1の優先度のデータを前記第2の優先度のデータよりも優先的に伝送することは、任意の利用可能な第2の優先度のデータ以前に、任意の利用可能な第1の優先度のデータを伝送することを含む、請求項4に記載のロボット補助式手術システム。
- 前記第1の優先度のデータを前記第2の優先度のデータよりも優先的に伝送することは、利用可能な第2の優先度のデータよりも、利用可能な第1の優先度のデータに、より多くの伝送スロットを割り当てることを含む、請求項4に記載のロボット補助式手術システム。
- 前記プログラマブルプロセッサは前記伝送ロジックを含む、請求項1に記載のロボット補助式手術システム。
- 複数のノードを含むロボット補助式手術システムを提供することであって、該複数のノードは、データリンクによって、受信ノードに結合される少なくとも一つの伝送ノードを含む、ことと、該伝送ノードにおいて、
第1の優先度のデータおよび第2の優先度のデータを生成することと、
第1のデータバッファに該第1の優先度のデータを配置することであって、該第1のデータバッファは第1の優先度のデータのみとともに使用される、ことと、
第2のデータバッファに該第2の優先度のデータを配置することであって、該第2のデータバッファは第2の優先度のデータのみとともに使用される、ことと、
該データリンクを介して、該第1および該第2のデータバッファから、該第1の優先度のデータおよび該第2の優先度のデータを伝送することであって、該第1の優先度のデータは、該第2の優先度のデータよりも優先的に伝送される、ことと
を包含する、方法。 - 前記伝送ノードにおいて、
第3の優先度のデータを生成することであって、前記第1の優先度のデータは高優先度のデータであり、前記第2の優先度のデータは低優先度のデータであり、前記第3の優先度のデータは中優先度のデータである、ことと、
第3のデータバッファに該第3の優先度のデータを配置することであって、該第3のデータバッファは第3の優先度のデータのみとともに使用される、ことと、
前記データリンクを介して、該第3のデータバッファから該第3の優先度のデータを伝送することであって、該第1の優先度のデータは、該第3の優先度のデータよりも優先的に伝送され、該第3の優先度のデータは、該第2の優先度のデータよりも優先的に伝送される、ことと
をさらに包含する、請求項10に記載の方法。 - 前記伝送ノードにおいてメッセージングプロトコルを識別することをさらに包含し、前記伝送することは、該メッセージングプロトコルにしたがって優先的に送信することを優先的に含む、請求項10に記載の方法。
- 前記第2の優先度のデータよりも優先的に前記第1の優先度のデータを伝送することが、任意の利用可能な第2の優先度のデータ以前に任意の利用可能な第1の優先度のデータを伝送することを含む、請求項10に記載の方法。
- 前記第2の優先度のデータよりも優先的に前記第1の優先度のデータを伝送することが、利用可能な第2の優先度のデータよりも、利用可能な第1の優先度のデータに、より多くの伝送スロットを割り当てることを含む、請求項10に記載の方法。
- 前記第1の優先度のデータは、スピードが重視されるメッセージを含む、請求項10に記載の方法。
- 前記第2の優先度のデータは、重要度の低い地位の情報およびエラーログ情報のうちの少なくとも一つを含む、請求項10に記載の方法。
- ロボット補助式手術システムの伝送ノードに含まれるコンピュータ可読媒体上に具体的に実体化されたコンピュータプログラム製品であって、該伝送ノードは、データリンクによって、受信ノードに結合され、該コンピュータ可読媒体は、
第1の優先度のデータおよび第2の優先度のデータを生成する動作と、
第1のデータバッファに該第1の優先度のデータを配置する動作であって、該第1のデータバッファは第1の優先度のデータのみとともに使用される、動作と、
第2のデータバッファに該第2の優先度のデータを配置する動作であって、該第2のデータバッファは第2の優先度のデータのみとともに使用される、動作と、
同一のデータリンクを介して、該第1および該第2のデータバッファから該第1の優先度のデータおよび該第2の優先度のデータを伝送する動作であって、該第1の優先度のデータは該第2の優先度のデータよりも優先的に伝送される、動作と
を、プログラマブルプロセッサに実行させるように動作可能である命令を含んでいる、コンピュータプログラム製品。 - 第3の優先度のデータを生成する動作であって、前記第1の優先度のデータは高優先度のデータであり、前記第2の優先度のデータは低優先度データであり、前記第3の優先度のデータは中優先度のデータである、動作と、
第3のデータバッファに該第3の優先度のデータを配置する動作であって、該第3のデータバッファは第3の優先度のデータのみとともに使用される、動作と、
前記データリンクを介して、該第3のデータバッファから該第3の優先度のデータを伝送する動作であって、該第1の優先度のデータは、該第3の優先度のデータよりも優先的に伝送され、該第3の優先度のデータは、該第2の優先度のデータよりも優先的に伝送される、動作と
を実行するように動作可能である命令をさらに含む、請求項17に記載のコンピュータプログラム製品。 - メッセージングプロトコルを識別する動作を実行するように動作可能である命令をさらに含み、前記伝送する動作は、該メッセージングプロトコルにしたがって優先的に送信する動作を含む、請求項17に記載のコンピュータプログラム製品。
- 前記第2の優先度のデータよりも優先的に前記第1の優先度のデータを伝送する動作が、任意の利用可能な第2の優先度のデータ以前に任意の利用可能な第1の優先度のデータを伝送する動作を含む、請求項17に記載のコンピュータプログラム製品。
- 前記第2の優先度のデータよりも優先的に前記第1の優先度のデータを伝送する動作が、利用可能な第2の優先度のデータよりも、利用可能な第1の優先度のデータに、より多くの伝送スロットを割り当てる動作を含む、請求項17に記載のコンピュータプログラム製品。
- 前記第1の優先度のデータは、スピードが重視されるメッセージを含む、請求項17に記載のコンピュータプログラム製品。
- 前記第2の優先度のデータは、重要度の低い情報およびエラーログ情報のうちの少なくとも一つを含む、請求項17に記載のコンピュータプログラム製品。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US75399105P | 2005-12-22 | 2005-12-22 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007174666A true JP2007174666A (ja) | 2007-07-05 |
Family
ID=38300539
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006333845A Withdrawn JP2007174644A (ja) | 2005-12-22 | 2006-12-11 | 同期データ通信 |
JP2006337855A Withdrawn JP2007174646A (ja) | 2005-12-22 | 2006-12-15 | 同期データ通信 |
JP2006342980A Withdrawn JP2007174666A (ja) | 2005-12-22 | 2006-12-20 | マルチ優先度メッセージング |
Family Applications Before (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006333845A Withdrawn JP2007174644A (ja) | 2005-12-22 | 2006-12-11 | 同期データ通信 |
JP2006337855A Withdrawn JP2007174646A (ja) | 2005-12-22 | 2006-12-15 | 同期データ通信 |
Country Status (2)
Country | Link |
---|---|
JP (3) | JP2007174644A (ja) |
CN (3) | CN101432629B (ja) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019513445A (ja) * | 2016-03-31 | 2019-05-30 | コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. | 撮像システム及び撮像システムの複数のノード間における通信のための通信プラットフォーム |
JP2020519151A (ja) * | 2017-05-01 | 2020-06-25 | ビーエイイー・システムズ・インフォメーション・アンド・エレクトロニック・システムズ・インテグレイション・インコーポレーテッド | 低レイテンシサブネットを使用したマルチプルアクセスワイヤレスネットワーク |
JP2021509242A (ja) * | 2017-12-28 | 2021-03-18 | エシコン エルエルシーEthicon LLC | システム又は装置のニーズに基づく通信、相互作用、又は処理の優先順位付けに関する外科用ネットワークの決定 |
US11918269B2 (en) | 2018-09-07 | 2024-03-05 | Cilag Gmbh International | Smart return pad sensing through modulation of near field communication and contact quality monitoring signals |
US11950860B2 (en) | 2021-03-30 | 2024-04-09 | Cilag Gmbh International | User interface mitigation techniques for modular energy systems |
US11963727B2 (en) | 2021-03-30 | 2024-04-23 | Cilag Gmbh International | Method for system architecture for modular energy system |
US11978554B2 (en) | 2021-03-30 | 2024-05-07 | Cilag Gmbh International | Radio frequency identification token for wireless surgical instruments |
JP7480122B2 (ja) | 2018-09-07 | 2024-05-09 | エシコン エルエルシー | 単一ポートを介して一次デバイス及び二次デバイスを駆動するための第1及び第2の通信プロトコル構成 |
US11980411B2 (en) | 2021-03-30 | 2024-05-14 | Cilag Gmbh International | Header for modular energy system |
US11998258B2 (en) | 2019-09-05 | 2024-06-04 | Cilag Gmbh International | Energy module for driving multiple energy modalities |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ES2590148T3 (es) | 2012-03-02 | 2016-11-18 | Lsis Co., Ltd. | Dispositivo de comunicación y procedimiento de comunicación |
CN105431103B (zh) * | 2013-08-09 | 2018-08-17 | 直观外科手术操作公司 | 具有用于控制容纳在远侧的多个马达的远程电流控制器的医疗机器人系统 |
US10616080B2 (en) * | 2014-11-26 | 2020-04-07 | Fanuc America Corporation | System for diagnosis of robot state |
CN104951373B (zh) * | 2015-05-28 | 2018-11-27 | 浙江元亨通信技术股份有限公司 | 调度系统的消息队列处理方法 |
CN106095717B (zh) * | 2016-06-27 | 2019-09-17 | 哈尔滨明快机电科技有限公司 | 一种动态延迟补偿方法及装置 |
CN106502950B (zh) * | 2016-09-30 | 2019-10-01 | 株洲太昌电子信息技术股份有限公司 | 一种通过串口传输文件的方法及系统 |
US10728912B2 (en) * | 2017-09-15 | 2020-07-28 | Qualcomm Incorporated | System and method of modes for data transmission |
US10624707B2 (en) * | 2017-09-18 | 2020-04-21 | Verb Surgical Inc. | Robotic surgical system and method for communicating synchronous and asynchronous information to and from nodes of a robotic arm |
US11318618B2 (en) | 2019-04-05 | 2022-05-03 | Verb Surgical Inc. | Robotic surgical system and method for handling real-time and non-real-time traffic |
CN114872052B (zh) * | 2022-06-06 | 2023-01-06 | 吉林农业科技学院 | 一种远程自动控制智能工厂机械臂的方法及系统 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AT405588B (de) * | 1995-06-26 | 1999-09-27 | Ericsson Schrack Aktiengesells | Verfahren zur wiederholung fehlerhaft übertragener daten |
US6182120B1 (en) * | 1997-09-30 | 2001-01-30 | International Business Machines Corporation | Method and system for scheduling queued messages based on queue delay and queue priority |
WO2000013364A1 (en) * | 1998-08-26 | 2000-03-09 | Nokia Networks Oy | Bidirectional arq apparatus and method |
CN1134135C (zh) * | 2000-11-22 | 2004-01-07 | 深圳市中兴通讯股份有限公司 | 一种应用于双网容错系统的通讯方法 |
CN100479418C (zh) * | 2001-03-27 | 2009-04-15 | 信息产业部武汉邮电科学研究院 | 物理层与网络层设备之间的数据传输装置和方法 |
US6728599B2 (en) * | 2001-09-07 | 2004-04-27 | Computer Motion, Inc. | Modularity system for computer assisted surgery |
JP3471785B1 (ja) * | 2002-07-31 | 2003-12-02 | 松下電器産業株式会社 | 通信装置及びデータの再送制御方法 |
CN1249942C (zh) * | 2003-05-13 | 2006-04-05 | 武汉汉网高技术有限公司 | 正交频分复用系统中的随机接入方法 |
CN100484136C (zh) * | 2003-10-27 | 2009-04-29 | 英特尔公司 | 网络协议引擎 |
-
2006
- 2006-12-11 JP JP2006333845A patent/JP2007174644A/ja not_active Withdrawn
- 2006-12-15 JP JP2006337855A patent/JP2007174646A/ja not_active Withdrawn
- 2006-12-20 CN CN2006800470462A patent/CN101432629B/zh active Active
- 2006-12-20 CN CN2006800479838A patent/CN101366010B/zh active Active
- 2006-12-20 CN CN2006800485453A patent/CN101346915B/zh active Active
- 2006-12-20 JP JP2006342980A patent/JP2007174666A/ja not_active Withdrawn
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019513445A (ja) * | 2016-03-31 | 2019-05-30 | コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. | 撮像システム及び撮像システムの複数のノード間における通信のための通信プラットフォーム |
JP2020519151A (ja) * | 2017-05-01 | 2020-06-25 | ビーエイイー・システムズ・インフォメーション・アンド・エレクトロニック・システムズ・インテグレイション・インコーポレーテッド | 低レイテンシサブネットを使用したマルチプルアクセスワイヤレスネットワーク |
JP2021509242A (ja) * | 2017-12-28 | 2021-03-18 | エシコン エルエルシーEthicon LLC | システム又は装置のニーズに基づく通信、相互作用、又は処理の優先順位付けに関する外科用ネットワークの決定 |
JP7326291B2 (ja) | 2017-12-28 | 2023-08-15 | エシコン エルエルシー | システム又は装置のニーズに基づく通信、相互作用、又は処理の優先順位付けに関する外科用ネットワークの決定 |
US11918269B2 (en) | 2018-09-07 | 2024-03-05 | Cilag Gmbh International | Smart return pad sensing through modulation of near field communication and contact quality monitoring signals |
US11950823B2 (en) | 2018-09-07 | 2024-04-09 | Cilag Gmbh International | Regional location tracking of components of a modular energy system |
JP7480122B2 (ja) | 2018-09-07 | 2024-05-09 | エシコン エルエルシー | 単一ポートを介して一次デバイス及び二次デバイスを駆動するための第1及び第2の通信プロトコル構成 |
US11998258B2 (en) | 2019-09-05 | 2024-06-04 | Cilag Gmbh International | Energy module for driving multiple energy modalities |
US11950860B2 (en) | 2021-03-30 | 2024-04-09 | Cilag Gmbh International | User interface mitigation techniques for modular energy systems |
US11963727B2 (en) | 2021-03-30 | 2024-04-23 | Cilag Gmbh International | Method for system architecture for modular energy system |
US11978554B2 (en) | 2021-03-30 | 2024-05-07 | Cilag Gmbh International | Radio frequency identification token for wireless surgical instruments |
US11980411B2 (en) | 2021-03-30 | 2024-05-14 | Cilag Gmbh International | Header for modular energy system |
Also Published As
Publication number | Publication date |
---|---|
JP2007174646A (ja) | 2007-07-05 |
CN101346915A (zh) | 2009-01-14 |
CN101432629A (zh) | 2009-05-13 |
CN101366010A (zh) | 2009-02-11 |
JP2007174644A (ja) | 2007-07-05 |
CN101432629B (zh) | 2013-04-03 |
CN101366010B (zh) | 2012-09-19 |
CN101346915B (zh) | 2012-07-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2007174666A (ja) | マルチ優先度メッセージング | |
KR101325022B1 (ko) | 다중 우선순위 메시징 | |
US8054752B2 (en) | Synchronous data communication | |
KR101279827B1 (ko) | 동기화 데이터 통신 | |
JP3816531B2 (ja) | 非同期パケット交換 | |
JP4017652B2 (ja) | データ伝送方法およびデータ伝送装置 | |
JP3709795B2 (ja) | コンピュータシステムと、コンピュータシステム内のモジュール間の通信方法 | |
US20060268913A1 (en) | Streaming buffer system for variable sized data packets | |
JP2004320785A (ja) | ネットワーク通信のテスト装置及び方法 | |
US8542597B2 (en) | Soft error recovery for converged networks | |
US11681470B2 (en) | High-speed replay of captured data packets | |
JP5857568B2 (ja) | 情報処理システム、受信装置、及び情報処理方法 | |
JP2001045056A (ja) | 通信システム | |
KR100985684B1 (ko) | 데이터 패킷 전송 방법 및 장치 | |
JP2009077270A (ja) | インタフェース装置、通信装置、通信システム、通信制御方法及び通信制御プログラム | |
JP2008205797A (ja) | データ通信装置およびデータ通信システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20100302 |