JP2010041192A - 通信システム、通信装置および通信方法 - Google Patents
通信システム、通信装置および通信方法 Download PDFInfo
- Publication number
- JP2010041192A JP2010041192A JP2008199582A JP2008199582A JP2010041192A JP 2010041192 A JP2010041192 A JP 2010041192A JP 2008199582 A JP2008199582 A JP 2008199582A JP 2008199582 A JP2008199582 A JP 2008199582A JP 2010041192 A JP2010041192 A JP 2010041192A
- Authority
- JP
- Japan
- Prior art keywords
- communication
- resource
- node
- irm
- management 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.)
- Pending
Links
Images
Landscapes
- Small-Scale Networks (AREA)
Abstract
【課題】バスリセット後のデータ通信の開始遅延を抑止する。
【解決手段】通信装置1の送信部1aは、通信装置2,3,4とのリンクが再構築された後に、自装置が通信装置2,3,4が通信に用いるリソースの割り当てを管理する管理ノードとなった場合、通信装置2,3,4に自装置の識別情報D1を報知する。通信装置2の受信部2bは、通信装置1から識別情報D1を受信する。判定部2cは、受信部2bが受信した識別情報D1に基づいて、リンクの再構築前後で管理ノードが変更しているか否かを判定する。送信部2dは、判定部2cから管理ノードが変更していない旨の判定結果を取得すると、リソース割当記憶部2aに記憶されたバスリセット前に割り当てられていたリソース情報に基づくリソースを用いて他の通信装置にデータを送信する。
【選択図】図1
【解決手段】通信装置1の送信部1aは、通信装置2,3,4とのリンクが再構築された後に、自装置が通信装置2,3,4が通信に用いるリソースの割り当てを管理する管理ノードとなった場合、通信装置2,3,4に自装置の識別情報D1を報知する。通信装置2の受信部2bは、通信装置1から識別情報D1を受信する。判定部2cは、受信部2bが受信した識別情報D1に基づいて、リンクの再構築前後で管理ノードが変更しているか否かを判定する。送信部2dは、判定部2cから管理ノードが変更していない旨の判定結果を取得すると、リソース割当記憶部2aに記憶されたバスリセット前に割り当てられていたリソース情報に基づくリソースを用いて他の通信装置にデータを送信する。
【選択図】図1
Description
本件は、通信システム、通信装置および通信方法に関し、特にアイソクロナス転送方式により通信する通信システム、通信装置および通信方法に関する。
従来、音声や動画のデータを通信するマルチメディア通信システムが普及している。マルチメディア通信システムでは、デジタルレコーダやデジタルカメラ等、複数のデジタル機器が相互に接続され、他の機器から受信するデータの再生等を行うことができる。このようなマルチメディア通信システムでは、扱うデータ容量が大きく、再生中に途切れが発生しない等、鑑賞に耐え得る所定のサービス品質を備えたデータ通信が求められる。
この課題に対し、アイソクロナス転送(Isochronous Transfer)方式と呼ばれるデータ転送方式が知られている。アイソクロナス転送方式では、機器間での通信に対して一定の通信帯域を確保し、動画再生等の用途に応じて必要なデータ転送量を保証することができる。
このようなデータ転送方式では、各機器間の通信で使用されるチャネルや帯域等のリソースを所定の管理ノードが割り当ててデータ転送量を保証する。管理ノードは、ネットワーク上の通信を集中管理している。管理ノードを設置する方法としては、固定的にある機器が管理ノードの役割を所有する方法(例えば、特許文献1参照)や、ネットワーク上の各機器の中から1つを管理ノードとして(システム起動時等に)動的に選択する方法が知られている(例えば、特許文献2参照)。
しかし、前者の方法では管理ノードがネットワークに参加していなければ管理機能を提供できない。このため、各機器の参加・不参加が流動的なマルチメディア通信システムでは後者の方法が望ましい。
特に、後者の方法で管理ノードを設置し、アイソクロナス転送のためのリソースを管理する通信方式は、IEEE(Institute of Electrical and Electronics Engineers)1394やIEEE1394を車載用に拡張したIDB(Intelligent transportation system Data Bus)1394等の通信規格に用いられている(例えば、非特許文献1,2,3参照)。なお、アイソクロナス転送のリソースを管理する管理マネージャは、アイソクロナスリソースマネージャ(IRM:Isochronous Resource Manager)と呼ばれる。IRMは、利用可能なチャネルの空き状況および利用可能な帯域の空き状況を管理する。
これらの規格では、IRMはネットワークの構成時(バスリセット時)に発生する各機器間の調停により決定される。バスリセットは、ある機器がネットワークに新規に参加またはネットワークから離脱する等、ネットワークのトポロジーが変化したタイミングで発生する。これにより、各機器が任意のタイミングで参加・離脱が可能な通信環境を実現している。
特開平8−328970号公報
特表2001−515312号公報
The Institute of Electrical and Electronics Engineers (IEEE), "IEEE Standard for a High Performance Serial Bus", IEEE Std 1394-1995.
The Institute of Electrical and Electronics Engineers (IEEE), "IEEE Standard for a High Performance Serial Bus - Amendment 1", IEEE Std 1394a-2000.
The Institute of Electrical and Electronics Engineers (IEEE), "IEEE Standard for a High Performance Serial Bus - Amendment 2", IEEE Std 1394b-2002.
しかし、上記非特許文献1,2,3に記載の方法では、バスリセットの度に、再度、各機器間でIRMの選択を行い、それに伴ってリソースの管理情報もリセットされる。そして、IRM決定後、IRM以外のノードであるソースノードは、データ通信のためにIRMに対してリソースの利用状況の通知を要求(Readリクエストという)し、これに対するReadレスポンスに基づいて、リソースの取得要求(Lockリクエストという)を行う。更に、IRMでは、Lockリクエストで要求されているリソースの割り当て可否を制御して、ソースノードに割当OKまたはNGを示すレスポンスを返す。ソースノードは、割当OKであれば要求したリソースを用いて通信を行い、NGであれば再度IRMにReadリクエストを送信して、リソースの取得要求を送り直す。
このように、バスリセット後には、ソースノードはデータ送信のためにReadリクエストでリソースの空き状況を確認し、Lockリクエストでリソースの取得要求を行わなければならない。このため、データ送信の開始までに遅延が発生するという問題がある。また、ネットワーク上に多数のソースノードが存在する場合には、IRMへの要求が輻輳して処理負荷が増大し、遅延の影響が大きくなる可能性もある。
本件はこのような点に鑑みてなされたものであり、バスリセット後のデータ通信の開始遅延を抑止可能な通信システム、通信装置および通信方法を提供することを目的とする。
上記課題を解決するために、複数の通信装置が相互に通信する通信システムが提供される。この通信システムは、第1の通信装置および第2の通信装置を有する。第1の通信装置は、他の複数の通信装置とのリンクが再構築された後に、自装置が他の複数の通信装置が通信に用いるリソースの割り当てを管理する管理ノードとなった場合、他の複数の通信装置に自装置の識別情報を報知する。第2の通信装置は、この識別情報を受信すると、識別情報に基づいてリンクの再構築前後で管理ノードが変更しているか否かを判定する。そして、第2の通信装置は、管理ノードが変更していない場合、リンクの再構築前に割り当てられていたリソースを用いて他の通信装置との通信を行う。
また、上記課題を解決するために他の複数の通信装置と接続された通信装置が提供される。この通信装置は、送信部を有する。送信部は、他の複数の通信装置とのリンクが再構築された後に、自装置が他の複数の通信装置が通信に用いるリソースの割り当てを管理する管理ノードとなった場合、他の複数の通信装置に自装置の識別情報を報知する。
また、上記課題を解決するために他の複数の通信装置と接続された通信装置が提供される。この通信装置は、リソース割当記憶部、受信部、判定部および送信部を有する。リソース割当記憶部は、リンクの再構築前に割り当てられていた通信用のリソース割当情報を記憶する。受信部は、リンクの再構築後に通信用のリソースの割り当てを管理する管理ノードからこの管理ノードの識別情報を受信する。判定部は、受信部が受信した識別情報に基づいて、リンクの再構築前後で管理ノードが変更しているか否かを判定する。送信部は、判定部が管理ノードが変更していないと判定すると、リソース割当記憶部に記憶されたリソース割当情報に基づくリソースを用いて他の通信装置にデータを送信する。
また、上記課題を解決するために、上記通信システムと同様の処理を行う通信方法が提供される。
上記通信システム、通信装置および通信方法によれば、バスリセット後のデータ通信の開始遅延を抑止することができる。
以下、本実施の形態を図面を参照して詳細に説明する。
図1は、通信システムの概要を示す図である。この通信システムは、アイソクロナス転信方式を用いてデータの送受信を行うシステムである。この通信システムは、通信装置1,2,3,4を有する。
図1は、通信システムの概要を示す図である。この通信システムは、アイソクロナス転信方式を用いてデータの送受信を行うシステムである。この通信システムは、通信装置1,2,3,4を有する。
通信装置1,2,3,4は、デイジーチェーンで有線のネットワークで接続される。通信装置1は、通信装置2,3と接続される。通信装置3は、通信装置4と接続される。この場合、通信装置2,3の間の通信は、通信装置1を介してバケツリレー方式で行われる。同様に、通信装置1と通信装置4の間の通信は、通信装置3を介して行われる。同様に、通信装置2と通信装置4の間の通信は、通信装置1および通信装置3を介して行われる。
通信装置1は、バスリセット後にアイソクロナス転送のためのリソースを管理する管理ノードとしての役割を取得したノードである。通信装置1は、送信部1aを有する。
送信部1aは、通信装置1が管理ノードとしての役割を取得後に、通信装置1を識別する識別情報D1を通信装置2,3,4に送信する。
送信部1aは、通信装置1が管理ノードとしての役割を取得後に、通信装置1を識別する識別情報D1を通信装置2,3,4に送信する。
通信装置2,3,4は、通信装置1から割り当てられたリソースを用いてデータ通信を行う。ここでは、通信装置2の構成に関してのみ説明するが、通信装置3,4に関しても同様である。通信装置2は、リソース割当記憶部2a、受信部2b、判定部2cおよび送信部2dを有する。
リソース割当記憶部2aは、バスリセット前に通信装置1から通信装置2に割り当てられていたリソース割当情報を記憶する。
受信部2bは、通信装置1から取得する識別情報D1を判定部2cに出力する。
受信部2bは、通信装置1から取得する識別情報D1を判定部2cに出力する。
判定部2cは、受信部2bから識別情報D1を取得すると、識別情報D1に基づいてバスリセット前後で管理ノードの役割を有するノードが変更しているか否かを判定する。判定部2cは、判定結果を送信部2dに出力する。管理ノードの役割を有するノードが変更していないとは、すなわち、通信装置1がバスリセット前にも管理ノードとしての役割を有していたことを意味する。
送信部2dは、判定部2cから管理ノードが変更していない旨の判定結果を取得すると、リソース割当記憶部2aに記憶されたリソース割当情報に基づくリソースを用いて他の装置にデータを送信する。
このような通信システムによれば、バスリセットが発生するとバスリセット後に管理ノードの役割を取得した通信装置1により通信装置1を識別する識別情報が通信装置2,3,4に送信される。そして、通信装置2,3,4は、バスリセット前後で管理ノードが変更していないと判定されると、バスリセット前に通信装置2,3,4に割り当てられていたリソースを用いて他の装置とのデータ通信が行われる。
このため、バスリセット後に通信装置2,3,4側から通信装置1に対してリソースの利用状況を確認する必要がなくなり、また、利用状況に応じてリソースの取得要求を行う必要もなくなる。また、通信装置1に対するこれら要求の輻輳も防止される。このように、リソース取得のための処理ステップを削減し、通信装置1の処理負荷の増大を防止することで、データ通信の開始遅延を抑止することができる。
なお、送信部1aは、識別情報D1と共に、リソースの利用状況を通信装置2,3,4に送信することもできる。このようにすると、通信装置1がバスリセット前に管理ノードではない場合にも、通信装置2,3,4は、識別情報D1と共に取得するリソースの利用状況に基づいて通信装置1にリソースの割当要求を行うことができる。これにより、通信装置2,3,4側から通信装置1に対するリソースの利用状況の確認の動作が不要となるため、バスリセット前後で管理ノードが変更している場合にもデータ通信の開始遅延を抑止することができる。
更に、通信装置1および通信装置2,3,4は、それぞれが管理ノードとしての役割を有することができる。すなわち、ネットワークの構成によっては、通信装置2,3,4のいずれかが通信装置1と同様の機能を果たすこともあり、また、通信装置1が通信装置2,3,4と同様の機能を果たすこともある。
ところで、図1に示した通信システムは、例えば、IEEE1394やIDB1394に準拠したマルチメディア通信システムで行われる音声や動画のデータを通信する場合に有用である。そこで、このような通信システムをマルチメディア通信システムに関連付けた場合の例を用いて本実施の形態を図面を参照して詳細に説明する。
図2は、通信システムのシステム構成を示す図である。この通信システムは、ネットワークで接続された複数のデジタル機器がアイソクロナス転送方式で相互に通信を行うIEEE1394またはIDB1394準拠のマルチメディア通信システムである。この通信システムは、IRMノード100、ソースノード200,300,400,500を有する。IRMノード100は、バスリセット後にアイソクロナス転送のためのリソースを管理する役割を取得したアイソクロナスリソースマネージャである。IRMの役割を取得するノードは、バスリセット時に発生する各機器間の調停により決定される。この調停処理は、バスリセット後に各ノード間で送受信されるSelf−ID(IDentifier)パケットと呼ばれる所定のデータパケットに基づいて実行される。IRMノード100は、例えば、デジタルレコーダ等のデジタル機器である。
ソースノード200,300,400,500は、IRMノード100が割り当てたリソースを用いて通信を行う通信装置である。ソースノード200,300,400,500は、IRMノード100と同様に、例えば、DVDプレーヤ、液晶モニタ、デジタルカメラ等のデジタル機器である。
IRMノード100およびソースノード200,300,400,500は、デイジーチェーンで有線のネットワークにより接続される。IRMノード100は、ソースノード200,300と接続される。ソースノード400,500は、ソースノード200と接続される。この場合、ソースノード200,300の間の通信は、IRMノード100を介してバケツリレー方式で行われる。このように各ノードが、接続を中継するノードを介して相互に通信を行うことができる。
なお、ソースノード200,300,400,500は、それぞれがIRMとしての役割を有することができる。すなわち、バスリセット後の各ノード間の調停の結果によって、ソースノード200,300,400,500のいずれかがIRMノード100と同様の通信機能を果たすこともある。また、IRMノード100がソースノード200,300,400,500と同様の通信機能を果たすこともある。
この通信システムでは、バスリセットが発生した場合でも、データ通信を開始するまでの遅延を抑止することができる。以下では、このようなIRMノード100、ソースノード200,300,400,500の各構成に関して説明する。
図3は、IRMノードのハードウェア構成を示す図である。IRMノード100は、CPU(Central Processing Unit)101によって装置全体が制御されている。CPU101には、バス109を介してROM(Read Only Memory)102、RAM(Random Access Memory)103、HDD(Hard Disk Drive)104、入力インタフェース105、出力インタフェース106および通信インタフェース107,108が接続されている。
ROM102には、IRMノード100上のBIOS(Basic Input / Output System)のプログラム等が格納される。また、ROM102には、製造時等に各ノードに固有の識別情報であるChip−IDが格納される。
RAM103には、CPU101に実行させるOS(Operating System)のプログラムやアプリケーションソフト(以下、アプリケーションという)のプログラムの少なくとも一部が一時的に格納される。また、RAM103には、CPU101による処理に必要な各種データが格納される。
HDD104には、OSのプログラム、アプリケーションのプログラムおよび各種動画や音声のデータが格納される。また、HDD104には、CPU101による処理に必要な各種データが格納される。なお、HDD104の代わりにフラッシュメモリ等、他の不揮発性メモリ(NVRAM:Non Volatile RAM)を用いても構わない。また、HDD104に格納されるOSのプログラムやアプリケーションのプログラムは、ROM102に格納されてもよい。
入力インタフェース105には、操作キー11が接続されている。入力インタフェース105は、操作キー11から送られてくる信号を、バス109を介してCPU101に送信する。
出力インタフェース106には、表示板12が接続されている。出力インタフェース106は、CPU101からの命令に従って、ユーザへの通知情報やCPU101の処理結果等を表示板12に出力する。表示板12は、例えば、液晶モニタや7セグメントディスプレイである。
通信インタフェース107,108は、IEEE1394またはIDB1394準拠の通信インタフェースである。通信インタフェース107は、ソースノード200と接続される。通信インタフェース108は、ソースノード300と接続される。IRMノード100は、通信インタフェース107,108を介してソースノード200,300との間でデータの送受信を行う。また、IRMノード100は、通信インタフェース108およびソースノード300を介してソースノード400,500との間でデータの送受信を行う。
なお、ソースノード200,300,400,500もIRMノード100と同様のハードウェア構成により実現することができる。
図4は、IRMノードおよびソースノードの機能を示す図である。IRMノード100は、リソース情報記憶部110、退避情報記憶部120、IRM記憶部130、IRM判定部140、メモリ管理部150、パケット処理部160、読み出し部165、リソース割当部170、送信部180および受信部190を有する。
図4は、IRMノードおよびソースノードの機能を示す図である。IRMノード100は、リソース情報記憶部110、退避情報記憶部120、IRM記憶部130、IRM判定部140、メモリ管理部150、パケット処理部160、読み出し部165、リソース割当部170、送信部180および受信部190を有する。
リソース情報記憶部110は、IRMノード100およびソースノード200,300,400,500がデータ通信に用いるリソースの利用状況を示すリソース情報を記憶する。ここで、リソースの利用状況とは、0チャネル〜63チャネルまでの計64チャネルの利用状況および通信帯域の利用状況である。チャネルの利用状況は、例えば、CHANNEL AVAILABLEレジスタと呼ばれる計64ビットのレジスタ群により記憶され、ファームウェアによりテーブル管理される。また、通信帯域の利用状況は、例えば、BANDWIDTH AVAILAVLEレジスタと呼ばれる32ビットのレジスタにより記憶され、ファームウェアによりテーブル管理される。
退避情報記憶部120は、リソース情報記憶部110に記憶されたリソースの利用状況を示す情報の複製を記憶する。退避情報記憶部120に複製が格納されるタイミングは、リソース情報記憶部110が更新されたタイミングである。
IRM記憶部130は、今回のIRMノード(すなわち、IRMノード100)より1世代前のIRMノードの識別情報が格納される。識別情報は、例えば、各ノードに一意に付与されたChip−IDである。なお、各ノードを一意に特定できる情報であれば、他の識別情報を用いても構わない。
IRM判定部140は、バスリセットが発生すると、ソースノード200,300,400,500との調停の結果、自装置がIRMノードであるか否かを判定する。IRM判定部140は、自装置がIRMノードであると判定すると、以下の場合に応じて、メモリ管理部150への指示を行う。(1)バスリセット前も自装置がIRMノードであった場合、リソース情報記憶部110に記憶されたリソース情報をクリア(初期化)し、退避情報記憶部120に記憶されたバスリセット前のリソース情報の複製をリソース情報記憶部110に復元するよう指示する。(2)バスリセット前は自装置がIRMノードでなかった場合、リソース情報記憶部110に記憶されたリソース情報をクリアするよう指示する。
なお、(1)の場合であるか(2)の場合であるかの判定は、IRM記憶部130に記憶された識別情報が今回IRMノードである自装置の識別情報と一致するか否かによって行うことができる。IRM判定部140は、前回IRMノード確定後に、今回のIRMより1世代前のIRMノードの識別情報をIRM記憶部130に格納している。IRM判定部140は、この判定後に、IRM記憶部130に記憶された識別情報を今回のIRMノードである自装置の識別情報に更新する。
また、IRM判定部140は、メモリ管理部150への指示後、パケット処理部160に対して自装置がIRMノードであることを通知する。
メモリ管理部150は、IRM判定部140からの指示に基づいて、リソース情報記憶部110に対する処理を行う。すなわち、バスリセット前後でIRMノードが変更していない場合、リソース情報記憶部110をクリアして退避情報記憶部120に格納されたバスリセット前のリソース情報の複製をリソース情報記憶部110に復元する。また、バスリセット前後でIRMノードが変更している場合、リソース情報記憶部110をクリアする。このように、リソース情報記憶部110に記憶された不要なリソース情報をクリアすることで、リソース管理における誤動作を防止する。
メモリ管理部150は、IRM判定部140からの指示に基づいて、リソース情報記憶部110に対する処理を行う。すなわち、バスリセット前後でIRMノードが変更していない場合、リソース情報記憶部110をクリアして退避情報記憶部120に格納されたバスリセット前のリソース情報の複製をリソース情報記憶部110に復元する。また、バスリセット前後でIRMノードが変更している場合、リソース情報記憶部110をクリアする。このように、リソース情報記憶部110に記憶された不要なリソース情報をクリアすることで、リソース管理における誤動作を防止する。
また、メモリ管理部150は、リソース情報記憶部110に記憶されたリソース情報が更新されると退避情報記憶部120に記憶されたリソース情報の複製も最新の状態に同期する。
パケット処理部160は、IRM判定部140から自装置がIRMノードである旨の通知を受けると、読み出し部165を介してリソース情報記憶部110に記憶されたリソース情報を取得する。そして、パケット処理部160は、自装置の識別情報およびリソース情報を含む所定の物理(PHY)パケットを生成して、送信部180に出力する。
また、パケット処理部160は、受信部190を介してソースノード200,300,400,500からReadリクエストを取得すると、読み出し部165を介してリソース情報記憶部110に記憶されたリソース情報を取得する。そして、Readリクエストの送信元に対するReadレスポンスを生成して送信部180に出力する。
更に、パケット処理部160は、受信部190を介してソースノード200,300,400,500からLockリクエストを取得すると、リソース割当部170にリソースの割り当てを指示し、リソース割当部170からリソースの割当結果(割り当てOKまたはNG)を取得する。そして、Lockリクエストの送信元に対する割当結果に応じたOKレスポンスまたはNGレスポンスを生成して送信部180に出力する。
読み出し部165は、パケット処理部160から取得する読み出し指示に基づいて、リソース情報記憶部110に記憶されたリソース情報を取得し、取得したリソース情報をパケット処理部160に出力する。
リソース割当部170は、パケット処理部160からのリソース割当指示に基づいて、リソース情報記憶部110に記憶されたリソース情報を更新する。リソース割当部170は、リソースの割当結果(割り当てOKまたはNG)をパケット処理部160に出力する。
送信部180は、パケット処理部160から取得するPHYパケットをソースノード200,300,400,500に対して、報知(ブロードキャスト送信)する。また、送信部180は、パケット処理部160から取得するReadレスポンスやOK/NGレスポンスを各リクエスト送信元のソースノード200,300,400,500に送信する。
受信部190は、ソースノード200,300,400,500から送信されるReadリクエストやLockリクエストを受信する。受信部190は、受信したReadリクエストやLockリクエストをパケット処理部160に出力する。
以下では、ソースノード200の構成に関して説明するが、ソースノード300,400,500に関しても同様の構成である。
ソースノード200は、リソース割当記憶部210、IRM記憶部220、受信部230、パケット処理部240、IRM判定部250および送信部260を有する。
ソースノード200は、リソース割当記憶部210、IRM記憶部220、受信部230、パケット処理部240、IRM判定部250および送信部260を有する。
リソース割当記憶部210は、バスリセット前に自装置が1世代前のIRMノードから割り当てられていたリソースを記憶する。
IRM記憶部220は、バスリセット前のIRMノードの識別情報を記憶する。
IRM記憶部220は、バスリセット前のIRMノードの識別情報を記憶する。
受信部230は、IRMノード100からPHYパケットおよび各種リクエストに対するレスポンスを受信する。受信部230は、受信したPHYパケットやレスポンスをパケット処理部240に出力する。
パケット処理部240は、受信部230からPHYパケットを取得すると、IRMノード100の識別情報を抽出してIRM判定部250に出力する。パケット処理部240は、IRM判定部250からバスリセット前後でIRMノードが変更しているか否かの判定結果を取得する。パケット処理部240は、取得した判定結果に応じて以下の処理を行う。(1)バスリセット前後でIRMノードが変更していない場合、送信部260にリソース割当記憶部210に記憶されたバスリセット前のリソース情報が利用可能であると設定する。(2)バスリセット前後でIRMノードが変更している場合、取得したPHYパケットに含まれるリソース情報に基づいてLockリクエストを生成し、送信部260を介してIRMノード100に送信する。
なお、パケット処理部240は、(2)の処理後、受信部230を介してIRMノード100からOKレスポンスを取得すると、Lockリクエストで要求したリソース情報でリソース割当記憶部210に記憶されたリソース割当情報を更新する。そして、このリソース情報が利用可能であると設定する。また、パケット処理部240は、(2)の処理後、NGレスポンスを取得すると、Readリクエストを生成してIRMノード100に対してリソースの利用状況を確認し、利用状況に応じて再度LockリクエストをIRMノード100に送信する。
IRM判定部250は、パケット処理部240からIRMノード100の識別情報を取得する。IRM判定部250は、取得した識別情報とIRM記憶部220に記憶されたバスリセット前のIRMノードの識別情報に基づいて、今回のバスリセット前後でIRMノードが変更しているか否かを判定する。IRM判定部250は、判定結果をパケット処理部240に出力する。また、IRM判定部250は、判定後にパケット処理部240から取得した今回のIRMノードの識別情報によりIRM記憶部220に格納された前回のIRMノードの識別情報を更新する。
送信部260は、パケット処理部240から取得するLockリクエストやReadリクエストをIRMノード100に送信する。また、送信部260は、リソース割当記憶部210に記憶された利用可能なリソース割当情報に基づくリソースを用いて他の装置とデータ通信を行う。
図5は、チャネル管理テーブルのデータ構造例を示す図である。チャネル管理テーブル111は、リソース情報記憶部110に記憶される。なお、チャネル管理テーブル111をバスリセット前後で保持できるよう、その複製が退避情報記憶部120に記憶される。チャネル管理テーブル111には、CHを示す項目および利用状況を示す項目が設けられている。各項目の横方向に並べられた情報同士が対応付けられて、1つのチャネルに関する情報を構成する。チャネル管理テーブル111は、例えば、チャネルの利用状況を管理するための所定のCHANNELS AVAILABLEレジスタに記憶された情報をテーブル形式に管理したものである。
CHを示す項目には、チャネル番号を示す項目が設定される。利用状況を示す項目には、各チャネル番号が既に割り当て済みか否かを示す情報が設定される。
チャネル管理テーブル111には、例えば、CHが“1”、利用状況が“空き”という情報が設定される。これは、チャネル番号“1”は、IRMノード100やソースノード200,300,400,500の間のデータ通信に割り当てられていないことを示している。また、チャネル管理テーブル111には、例えば、CHが“2”、利用状況が“割り当て済み”という情報が設定される。これは、チャネル番号“2”が、IRMノード100やソースノード200,300,400,500の間のいずれかのデータ通信に割り当て済みであることを示している。
チャネル管理テーブル111には、例えば、CHが“1”、利用状況が“空き”という情報が設定される。これは、チャネル番号“1”は、IRMノード100やソースノード200,300,400,500の間のデータ通信に割り当てられていないことを示している。また、チャネル管理テーブル111には、例えば、CHが“2”、利用状況が“割り当て済み”という情報が設定される。これは、チャネル番号“2”が、IRMノード100やソースノード200,300,400,500の間のいずれかのデータ通信に割り当て済みであることを示している。
図6は、帯域管理テーブルのデータ構造例を示す図である。帯域管理テーブル112は、リソース情報記憶部110に記憶される。なお、帯域管理テーブル112をバスリセット前後で保持できるよう、その複製が退避情報記憶部120に記憶される。帯域管理テーブル112には、利用可能帯域を示す項目が設けられている。帯域管理テーブル112は、例えば、利用可能帯域を管理するための所定のBANDWIDTH AVAILABLEレジスタに記憶された情報をテーブル形式に管理したものである。
利用可能帯域を示す項目には、データ通信に利用することができる帯域幅が設定される。帯域管理テーブル112には、例えば、利用可能帯域が“3915”という情報が設定される。これは、IRMノード100やソースノード200,300,400,500の間のデータ通信に割り当てることのできる帯域幅が“3915”であることを示している。帯域幅の単位はデータ転送レートであり、適当な換算を行うことでMbps(Mega Bit Per Second)等に置き換えることも可能である。
なお、利用可能帯域の初期値は“4915”であり、データ通信に割り当てられるとその分だけ帯域幅は減少する。すなわち、利用可能帯域が“3915”である場合、他のデータ通信で“1000”の帯域幅が既に占有されていることを示している。
図7は、IRM記憶テーブルのデータ構造例を示す図である。IRM記憶テーブル131は、IRM記憶部130に記憶される。また、IRM記憶部220もIRM記憶テーブル131と同様の情報が設定されたIRM記憶テーブルを記憶する。IRM記憶テーブル131には、Chip−IDを示す項目が設けられている。
Chip−IDを示す項目には、バスリセット前のIRMノードを識別する識別情報として、その装置に付与されたChip−IDが設定される。IRM記憶テーブル131には、例えば、Chip−IDが“215”という情報が設定される。これは、バスリセット前にIRMノードであったノードのChip−IDが“215”であったことを示している。すなわち、IRMノード100のIRM判定部140は、Chip−ID“215”が自装置のChip−IDと同一である場合、バスリセット前後でIRMノードが変更しておらず、自装置が引き続きIRMの役割を有すると判定することができる。
また、ソースノード200のIRM判定部250は、IRMノード100から受信するPHYパケットに含まれるChip−IDに基づいて、IRM記憶部220に記憶されたChip−ID“215”と同一であるか否かを判定する。そして、同一である場合、バスリセット前後でIRMノードが変更しておらず、IRMノード100が引き続きIRMの役割を有すると認識することができる。
図8は、リソース割当テーブルのデータ構造例を示す図である。リソース割当テーブル211は、リソース割当記憶部210に記憶される。リソース割当テーブル211には、CHを示す項目および割当帯域を示す項目が設けられている。各項目の横方向に並べられた情報同士が対応付けられて、バスリセット前に割り当てられていたリソースの情報を構成する。
CHを示す項目には、バスリセット前にデータ通信のために割り当てられていたチャネル番号が設定される。割当帯域を示す項目には、バスリセット前にデータ通信のために割り当てられていた帯域幅が設定される。
リソース割当テーブル211には、例えば、CHが“3”、割当帯域が“1000”という情報が設定される。これは、ソースノード200がバスリセット前にチャネル番号“3”、使用帯域幅“1000”のリソースを用いてデータ通信を行っていたことを示している。
ソースノード200は、IRMノード100がバスリセット前後でIRMの役割を引き続き有している場合には、リソース割当テーブル211に記憶されたリソース情報に基づいて、他の装置とデータ通信を行うことができる。
図9は、PHYパケットの第1の構成例を示す図である。PHYパケット700は、バスリセット後にIRMノードがIRMノード100に決定すると、パケット処理部160により生成される。そして、送信部180を介してソースノード200,300,400,500に報知される。PHYパケット700は、通信チャネルの利用状況を各ソースノードに通知するためのパケットである。PHYパケット700は、固定値領域701、Phy_ID領域702、固定値領域703、type領域704、Chip_ID領域705およびチャネル利用状況領域706が設けられている。これらの領域は、計32ビットの情報により設定される。PHYパケット700は、更にエラーチェック用に各ビットの論理反転(計32ビット)を含む(図示せず)。
固定値領域701は、PHYパケット700の先頭である。固定値領域701は、2ビットの情報領域であり、“00”が設定される
phy_ID領域702は、6ビットの情報領域であり、IRMノード100のphy_IDが設定される。phy_IDは、バスリセットが発生すると、ネットワーク上の各ノードでの調停によって決まる値である。IRMノード100のphy_IDは、“5”であり、phy_ID領域702には、“5”を示すビット列“000101”が設定される。
phy_ID領域702は、6ビットの情報領域であり、IRMノード100のphy_IDが設定される。phy_IDは、バスリセットが発生すると、ネットワーク上の各ノードでの調停によって決まる値である。IRMノード100のphy_IDは、“5”であり、phy_ID領域702には、“5”を示すビット列“000101”が設定される。
固定値領域703は、2ビットの情報領域であり、“00”が設定される。
type領域704は、4ビットの情報領域であり、パケットを識別するtypeが設定される。チャネルの利用状況を示すPHYパケットを識別するためのtypeとして、例えば、“0xB”〜“0xE”という値を各ノード間で予め合意しておく。なお、“0x”は、値が16進数で表されていることを示す。type領域704には、例えば、“0xB”を示すビット列“1011”が設定される。
type領域704は、4ビットの情報領域であり、パケットを識別するtypeが設定される。チャネルの利用状況を示すPHYパケットを識別するためのtypeとして、例えば、“0xB”〜“0xE”という値を各ノード間で予め合意しておく。なお、“0x”は、値が16進数で表されていることを示す。type領域704には、例えば、“0xB”を示すビット列“1011”が設定される。
Chip_ID領域705は、例えば、8ビットの情報領域であり、IRMノード100に付与されたChip_ID“215”を示すビット列“11010111”が設定される。
チャネル利用状況領域706は、10ビットまたは18ビットの情報領域であり、チャネルの利用状況を示すビット列が設定される。チャネル数は、合計で64チャネル存在するため、これを通知するために、IRMノード100は計4つのPHYパケットを生成して送信する。
すなわち、typeが“0xB”であるPHYパケット710には、Chip_IDが設定されると共に、54〜63チャネルの計10チャネル分の利用状況が10ビットのチャネル利用状況領域706に設定される。なお、パケットの先頭側からチャネル番号の大きい順に63,62,・・・,54チャネルの順で設定されるものとする。PHYパケット710でChip_IDを確認可能であるため、以降のPHYパケットには、Chip_IDの設定は不要となる。
typeが“0xC”であるPHYパケット720には、Chip_IDは設定されず、36〜53チャネルの計18チャネル分の利用状況が18ビットのチャネル利用状況領域706に設定される。PHYパケット730,740もPHYパケット720と同様の構成である。PHYパケット730には、18〜35チャネルの計18チャネル分の利用状況が設定される。また、PHYパケット740には、0〜17チャネルの計18チャネル分の利用状況が設定される。なお、PHYパケット720,730,740に関してもPHYパケット710と同様に、パケットの先頭側からチャネル番号の大きい順に設定される。
なお、チャネルの利用状況は、例えば、“1”が空き、“0”が割り当て済みを示す。具体的には、PHYパケット710であれば、チャネル利用状況領域706には、例えば、ビット列“1101111011”が設定される。これは、61,56チャネルは既に割り当て済みであり、それ以外のチャネルは空きであることを示している。
図10は、PHYパケットの第2の構成例を示す図である。PHYパケット800もPHYパケット700と同様のタイミングで生成され、PHYパケット700と共にソースノード200,300,400,500に報知される。PHYパケット800は、データ通信のための利用可能な帯域幅を各ソースノードに通知するためのパケットである。PHYパケット800は、固定値領域801、Phy_ID領域802、固定値領域803、type領域804、Chip_ID領域805および利用可能帯域806が設けられている。これらの領域は、計32ビットの情報により設定される。PHYパケット800は、更にエラーチェック用に各ビットの論理反転(計32ビット)を含む(図示せず)。
固定値領域801は、PHYパケット800の先頭である。固定値領域801は、2ビットの情報領域であり、“00”が設定される
phy_ID領域802は、6ビットの情報領域であり、IRMノード100のphy_IDが設定される。phy_ID領域802には、IRMノード100のphy_ID“5”を示すビット列“000101”が設定される。
phy_ID領域802は、6ビットの情報領域であり、IRMノード100のphy_IDが設定される。phy_ID領域802には、IRMノード100のphy_ID“5”を示すビット列“000101”が設定される。
固定値領域803は、2ビットの情報領域であり、“00”が設定される。
type領域804は、4ビットの情報領域であり、パケットを識別するtypeが設定される。利用可能な帯域幅を示すPHYパケットを識別するためのtypeとして、例えば、“0x2”および“0x4”という値を各ノード間で予め合意しておく。type領域804には、例えば、“0x2”を示すビット列“0010”が設定される。
type領域804は、4ビットの情報領域であり、パケットを識別するtypeが設定される。利用可能な帯域幅を示すPHYパケットを識別するためのtypeとして、例えば、“0x2”および“0x4”という値を各ノード間で予め合意しておく。type領域804には、例えば、“0x2”を示すビット列“0010”が設定される。
Chip_ID領域805は、例えば、8ビットの情報領域であり、IRMノード100のChip_ID“215”を示すビット列“11010111”が設定される。
利用可能帯域806は、利用可能な帯域幅を示すビット列が設定される。
利用可能帯域806は、利用可能な帯域幅を示すビット列が設定される。
なお、IRMノード100は、利用可能な帯域幅を通知するために計2つのPHYパケットを生成して送信する。
すなわち、typeが“0x2”であるPHYパケット810には、Chip_IDを設定する。そして、PHYパケット810の残りの10ビットは、予約(Reserved)領域とする。そして、typeが“0x4”であるPHYパケット820には、Chip_IDを設定せず、type領域804に続けて利用可能帯域806を設定する。PHYパケット820には、例えば、利用可能な帯域幅“3915”を示す13ビットのビット列“0111101001011”が設定される。なお、13ビットとして例示したのは、BANDWIDTH AVAILABLEレジスタにおいて利用可能な帯域幅を記憶する13ビットの所定のbw-remaining領域に対応付けたためである。13ビットに限らず他のビット長でも構わない。また、余りの領域に関しては、他の用途に用いても構わない。
すなわち、typeが“0x2”であるPHYパケット810には、Chip_IDを設定する。そして、PHYパケット810の残りの10ビットは、予約(Reserved)領域とする。そして、typeが“0x4”であるPHYパケット820には、Chip_IDを設定せず、type領域804に続けて利用可能帯域806を設定する。PHYパケット820には、例えば、利用可能な帯域幅“3915”を示す13ビットのビット列“0111101001011”が設定される。なお、13ビットとして例示したのは、BANDWIDTH AVAILABLEレジスタにおいて利用可能な帯域幅を記憶する13ビットの所定のbw-remaining領域に対応付けたためである。13ビットに限らず他のビット長でも構わない。また、余りの領域に関しては、他の用途に用いても構わない。
次に、以上のような構成を備える通信システムにおいて実行される処理の詳細を説明する。
まず、通常時にIRMノードで実行されるリソース情報の退避処理について説明する。なお、以下の説明では、IRMノード100とソースノード200との間の処理に関して説明するが、他のソースノードに関しても同様である。
まず、通常時にIRMノードで実行されるリソース情報の退避処理について説明する。なお、以下の説明では、IRMノード100とソースノード200との間の処理に関して説明するが、他のソースノードに関しても同様である。
図11は、IRMノードのリソース情報退避処理の手順を示すフローチャートである。以下、図11に示す処理をステップ番号に沿って説明する。
[ステップS11]受信部190は、ソースノード200からのLockリクエスト等のリソースの割当要求を受信するとパケット処理部160に出力する。パケット処理部160は、受信部190から取得するリソースの割当要求をリソース割当部170に出力する。リソース割当部170は、要求されたリソースの割り当てを制御し、割り当て結果に応じてリソース情報記憶部110に記憶されたリソース情報(チャネル管理テーブル111や帯域管理テーブル112)を更新する。
[ステップS11]受信部190は、ソースノード200からのLockリクエスト等のリソースの割当要求を受信するとパケット処理部160に出力する。パケット処理部160は、受信部190から取得するリソースの割当要求をリソース割当部170に出力する。リソース割当部170は、要求されたリソースの割り当てを制御し、割り当て結果に応じてリソース情報記憶部110に記憶されたリソース情報(チャネル管理テーブル111や帯域管理テーブル112)を更新する。
[ステップS12]メモリ管理部150は、リソース情報記憶部110を参照して、リソース情報が更新されているか否かを判定する。更新されている場合、処理がステップS13に移される。更新されていない場合、処理が完了する。
[ステップS13]メモリ管理部150は、リソース情報記憶部110に記憶されたチャネル管理テーブル111および帯域管理テーブル112に基づいて、退避情報記憶部120に記憶された各テーブルの複製を最新の情報に更新する。
このようにして、IRMノード100はチャネル管理テーブル111および帯域管理テーブル112を退避情報記憶部120に退避させておく。これにより、バスリセットが発生して、リソース情報記憶部110に記憶されたリソース情報がリセットされる場合にも、バスリセット前のリソース情報を保持しておくことができる。
次に、バスリセット後のIRMノード100およびソースノード200のリソース割当処理に関して説明する。
図12は、IRMノードのPHYパケット送信処理の手順を示すフローチャートである。以下、図12に示す処理をステップ番号に沿って説明する。
図12は、IRMノードのPHYパケット送信処理の手順を示すフローチャートである。以下、図12に示す処理をステップ番号に沿って説明する。
[ステップS21]IRM判定部140は、自装置がバスリセット前に引き続きIRMノードであるか否かを判定する。引き続きIRMノードである場合、メモリ管理部150がリソース情報記憶部110に記憶されたリソース情報をクリアして、処理がステップS22に移される。前回IRMノードではなく、今回IRMノードの役割を新たに取得した場合、メモリ管理部150がリソース情報記憶部110に記憶されたリソース情報をクリアして、処理がステップS23に移される。
[ステップS22]メモリ管理部150は、退避情報記憶部120に記憶されたチャネル管理テーブル111および帯域管理テーブル112の複製を用いて、バスリセット前のリソース情報記憶部110のリソース情報を復元する。
[ステップS23]パケット処理部160は、読み出し部165を介してリソース情報記憶部110に記憶されたリソース情報を取得する。そして、パケット処理部160は、自装置のChip_IDおよび取得したリソース情報を用いて、PHYパケット710,720,730,740,810,820(以下では、PHYパケット群とする)を生成する。パケット処理部160は、生成したPHYパケット群を送信部180に出力する。
[ステップS24]送信部180は、パケット処理部160から取得するPHYパケット群をソースノード200,300,400,500に報知する。
このようにして、IRMノード100は、バスリセット前に引き続き自装置がIRMの役割を有している場合、バスリセット前のリソース情報を含むPHYパケットを報知する。また、バスリセット前に自装置がIRMの役割を有していない場合には、メモリ管理部150によりクリア後のリソース情報を含むPHYパケットを報知する。
このようにして、IRMノード100は、バスリセット前に引き続き自装置がIRMの役割を有している場合、バスリセット前のリソース情報を含むPHYパケットを報知する。また、バスリセット前に自装置がIRMの役割を有していない場合には、メモリ管理部150によりクリア後のリソース情報を含むPHYパケットを報知する。
図13は、ソースノードのPHYパケット受信処理の手順を示すフローチャートである。以下、図13に示す処理をステップ番号に沿って説明する。以下の処理は、ソースノード200において、図12に示す処理に引き続き実行される。
[ステップS31]受信部230は、IRMノード100からPHYパケット群を受信する。受信部230は、受信したPHYパケット群をパケット処理部240に出力する。パケット処理部240は、受信部230から取得するPHYパケット群からChip_IDを抽出してIRM判定部250に出力する。
[ステップS32]IRM判定部250は、パケット処理部240から取得するChip_IDとIRM記憶部220に記憶されたChip_IDとを比較し、両者が同一であるか否か、すなわち、IRMノードが前回から変更しているか否かを判定する。変更していない場合、IRM判定部250は、その旨をパケット処理部240に通知して処理がステップS33に移される。変更している場合、IRM判定部250は、その旨をパケット処理部240に通知して処理がステップS34に移される。
[ステップS33]パケット処理部240は、リソース割当記憶部210に記憶されたバスリセット前のリソース割当情報を利用可能なリソースとして設定する。
[ステップS34]パケット処理部240は、IRMノード100に対してリソースを取得するための処理を実行する。パケット処理部240は、IRMノード100から新たに取得したリソース情報をリソース割当記憶部210に格納し、これを利用可能なリソースとして設定する。
[ステップS34]パケット処理部240は、IRMノード100に対してリソースを取得するための処理を実行する。パケット処理部240は、IRMノード100から新たに取得したリソース情報をリソース割当記憶部210に格納し、これを利用可能なリソースとして設定する。
[ステップS35]送信部260は、リソース割当記憶部210に記憶された利用可能なリソースを用いて他のノードとのデータ通信を行う。
このようにして、ソースノード200は、バスリセット前後でIRMの役割を有するノードが変更していない場合には、バスリセット前に利用していたリソースを用いて、データ通信を開始することができる。すなわち、ReadリクエストやLockリクエストによるリソース取得の手順を省くことができ、データ通信の開始までに発生し得る遅延を抑止することができる。
このようにして、ソースノード200は、バスリセット前後でIRMの役割を有するノードが変更していない場合には、バスリセット前に利用していたリソースを用いて、データ通信を開始することができる。すなわち、ReadリクエストやLockリクエストによるリソース取得の手順を省くことができ、データ通信の開始までに発生し得る遅延を抑止することができる。
以下に、上記ステップS34の処理を詳細に説明する。
図14は、ソースノードのリソース取得処理の手順を示すフローチャートである。以下、図14に示す処理をステップ番号に沿って説明する。なお、以下の処理は、上記ステップS34の処理であり、すなわち、IRMノードがバスリセット前後で変更されている場合のソースノード200のリソース取得処理の詳細を示したものである。
図14は、ソースノードのリソース取得処理の手順を示すフローチャートである。以下、図14に示す処理をステップ番号に沿って説明する。なお、以下の処理は、上記ステップS34の処理であり、すなわち、IRMノードがバスリセット前後で変更されている場合のソースノード200のリソース取得処理の詳細を示したものである。
[ステップS41]パケット処理部240は、PHYパケット群に含まれるリソース情報を参照して空きチャネル、利用可能帯域を取得し、空きリソースに応じたLockリクエストを生成する。パケット処理部240は、生成したLockリクエストを送信部260に出力する。
[ステップS42]送信部260は、パケット処理部240から取得するLockリクエストをIRMノード100に送信する。
[ステップS43]受信部190は、ソースノード200からLockリクエストを受信する。受信部190は、受信したLockリクエストをパケット処理部160に出力する。
[ステップS43]受信部190は、ソースノード200からLockリクエストを受信する。受信部190は、受信したLockリクエストをパケット処理部160に出力する。
[ステップS44]パケット処理部160は、受信部190からLockリクエストを取得すると、リソース割当部170にリソースの割り当てを指示する。リソース割当部170からリソースの割当結果(割り当てOKまたはNG)を取得する。
[ステップS45]リソース割当部170は、パケット処理部160から指示されたリソースの割り当てが可能か否かを判定する。可能である場合、リソース割当部170が、パケット処理部160に割り当てOKを通知して処理がステップS46に移される。不可である場合、リソース割当部170が、パケット処理部160に割り当てNGを通知して処理がステップS48に移される。
[ステップS46]パケット処理部160は、OKレスポンスを生成して送信部180に出力する。送信部180は、パケット処理部160から取得するOKレスポンスをソースノード200に送信する。
[ステップS47]受信部230は、IRMノード100からOKレスポンスを受信する。受信部230は、受信したOKレスポンスをパケット処理部240に出力する。
[ステップS48]パケット処理部160は、NGレスポンスを生成して送信部180に出力する。送信部180は、パケット処理部160から取得するNGレスポンスをソースノード200に送信する。
[ステップS48]パケット処理部160は、NGレスポンスを生成して送信部180に出力する。送信部180は、パケット処理部160から取得するNGレスポンスをソースノード200に送信する。
[ステップS49]受信部230は、IRMノード100からNGレスポンスを受信する。受信部230は、受信したNGレスポンスをパケット処理部240に出力する。
[ステップS50]パケット処理部240は、IRMノード100に対するReadリクエストを生成して送信部260を介してIRMノード100に送信する。そして、パケット処理部240は、Readリクエストに対するReadレスポンスに基づいて、再度Lockリクエストを生成して送信部260を介してIRMノード100に送信する。以降の処理は、ステップS43と同様である。
[ステップS50]パケット処理部240は、IRMノード100に対するReadリクエストを生成して送信部260を介してIRMノード100に送信する。そして、パケット処理部240は、Readリクエストに対するReadレスポンスに基づいて、再度Lockリクエストを生成して送信部260を介してIRMノード100に送信する。以降の処理は、ステップS43と同様である。
[ステップS51]パケット処理部240は、先のLockリクエスト生成時に要求したリソース情報をリソース割当記憶部210に格納し、これを利用可能なリソースとして設定する。
このようにして、ソースノード200は、IRMノードがバスリセット前後で変更している場合にも、IRMノード100から受信したPHYパケットに基づいてLockリクエストを生成し、データ通信に用いるリソースを要求することができる。すなわち、Readリクエストによるリソース利用状況の確認の手順を省くことができ、データ通信の開始までに発生し得る遅延を抑止することができる。
図15は、バスリセット後のデータ通信開始までの処理の流れを示す第1のシーケンス図である。図15で示す処理は、IRMノード100がバスリセット後にも引き続きIRMの役割を取得する場合を示している。以下、図15に示す処理をステップ番号に沿って説明する。
[ステップS61]ネットワーク上のトポロジ変化等に伴いバスリセットが発生する。
[ステップS62]IRMノード100が、バスリセット前に引き続きIRMの役割を取得する。
[ステップS62]IRMノード100が、バスリセット前に引き続きIRMの役割を取得する。
[ステップS63]IRMノード100は、自装置が保持するリソース情報をクリアし、バスリセット前のリソース情報を復元する。
[ステップS64]IRMノード100は、ソースノード200に、自装置のChip_IDおよび自装置が保持するリソース情報に基づくPHYパケットを送信する。なお、PHYパケットは、ネットワーク上の全てのソースノードに報知される。
[ステップS64]IRMノード100は、ソースノード200に、自装置のChip_IDおよび自装置が保持するリソース情報に基づくPHYパケットを送信する。なお、PHYパケットは、ネットワーク上の全てのソースノードに報知される。
[ステップS65]ソースノード200は、PHYパケットを受信し、PHYパケットに含まれるChip_IDに基づいて、バスリセット前後でIRMの役割を有するノードが変更していないと判定する。そして、ソースノード200は、バスリセット前に割り当てられていたリソースを用いてソースノード300に対するデータ送信を開始する。
このように、ソースノード200は、IRMノード100に対してリソースの取得要求を行うことなく迅速にデータ送信を開始することができる。なお、上記ステップS63でリソース情報を復元することにより、その後、各ソースノードが利用するリソースの利用状況との整合性を保つことができる。
図16は、バスリセット後のデータ通信開始までの処理の流れを示す第2のシーケンス図である。図16で示す処理は、IRMノード100が、バスリセット前にはソースノードであり、バスリセット後にIRMの役割を取得する場合を示している。
[ステップS71]ネットワーク上のトポロジ変化等に伴いバスリセットが発生する。
[ステップS72]バスリセット前にはソースノードとして機能していたIRMノード100が、IRMの役割を取得する。
[ステップS72]バスリセット前にはソースノードとして機能していたIRMノード100が、IRMの役割を取得する。
[ステップS73]IRMノード100は、自装置が保持するリソース情報をクリアし、自装置のChip_IDおよびクリア後のリソース情報に基づくPHYパケットをソースノード200に送信する。
[ステップS74]ソースノード200は、PHYパケットを受信し、PHYパケットに含まれるChip_IDに基づいて、バスリセット前後でIRMの役割を有するノードが変更していると判定する。そして、ソースノード200は、PHYパケットに含まれるリソース情報に基づくLockリクエストをIRMノード100に送信する。
[ステップS75]IRMノード100は、Lockリクエストを受信し、Lockリクエストで要求されているリソースを割り当てる。その後、IRMノード100は、要求されたリソースの割り当てOKを示すOKレスポンスをソースノード200に送信する。
[ステップS76]ソースノード200は、Lockリクエストで要求したリソースを用いてソースノード300に対するデータ送信を開始する。
このように、IRMノードがバスリセット前後で変更している場合でも、PHYパケットに含まれるリソース情報に基づいてLockリクエストを送信することができるため、迅速にデータ送信を開始することができる。
このように、IRMノードがバスリセット前後で変更している場合でも、PHYパケットに含まれるリソース情報に基づいてLockリクエストを送信することができるため、迅速にデータ送信を開始することができる。
図17は、バスリセット後のデータ通信開始までの処理の流れを示す第3のシーケンス図である。図17で示す処理は、図16と同様にIRMノード100が、バスリセット前にはソースノードであり、バスリセット後にIRMの役割を取得する場合を示している。図16と異なるのは、ソースノード200が最初のLockリクエストでリソースを取得できない場合という点である。
[ステップS81]ネットワーク上のトポロジ変化等に伴いバスリセットが発生する。
[ステップS82]バスリセット前にはソースノードとして機能していたIRMノード100が、IRMの役割を取得する。
[ステップS82]バスリセット前にはソースノードとして機能していたIRMノード100が、IRMの役割を取得する。
[ステップS83]IRMノード100は、自装置が保持するリソース情報をクリアし、自装置のChip_IDおよびクリア後のリソース情報に基づくPHYパケットをソースノード200に送信する。
[ステップS84]ソースノード200は、PHYパケットを受信し、PHYパケットに含まれるChip_IDに基づいて、バスリセット前後でIRMの役割を有するノードが変更していると判定する。そして、ソースノード200は、PHYパケットに含まれるリソース情報に基づくLockリクエストをIRMノード100に送信する。
[ステップS85]IRMノード100は、Lockリクエストを受信し、Lockリクエストで要求されているリソースが、既に他の通信で占有されている等により、割り当て不可であると判定する。IRMノード100は、要求されたリソースの割り当てNGを示すNGレスポンスをソースノード200に送信する。
[ステップS86]ソースノード200は、リソースの利用状況を確認するためにIRMノード100にReadリクエストを送信する。
[ステップS87]IRMノード100は、ソースノード200からのReadリクエストに対して、リソースの利用状況を通知するReadレスポンスを応答する。
[ステップS87]IRMノード100は、ソースノード200からのReadリクエストに対して、リソースの利用状況を通知するReadレスポンスを応答する。
[ステップS88]ソースノード200は、Readレスポンスに基づくLockリクエストをIRMノード100に送信する。
[ステップS89]IRMノード100は、Lockリクエストを受信し、Lockリクエストで要求されているリソースを割り当てる。その後、IRMノード100は、要求されたリソースの割り当てOKを示すOKレスポンスをソースノード200に送信する。
[ステップS89]IRMノード100は、Lockリクエストを受信し、Lockリクエストで要求されているリソースを割り当てる。その後、IRMノード100は、要求されたリソースの割り当てOKを示すOKレスポンスをソースノード200に送信する。
[ステップS90]ソースノード200は、Lockリクエストで要求したリソースを用いてソースノード300に対するデータ送信を開始する。
このように、図16におけるLockリクエストによってリソースを取得できなかった場合にも、Readリクエストによってリソースの利用状況を確認し、再度Lockリクエストを送信することができる。
このように、図16におけるLockリクエストによってリソースを取得できなかった場合にも、Readリクエストによってリソースの利用状況を確認し、再度Lockリクエストを送信することができる。
このような通信システムによれば、バスリセット後にIRMの役割を取得したIRMノード100によりIRMノード100を識別する識別情報がソースノード200,300,400,500に送信される。そして、ソースノード200,300,400,500は、バスリセット前後で管理ノードが変更していないと判定すると、バスリセット前にソースノード200,300,400,500に割り当てられていたリソースを用いて他のノードとのデータ通信を行う。
このため、バスリセット後に各ソースノード側からIRMノード100に対してリソースの利用状況を確認する必要がなくなり、また、利用状況に応じてリソースの取得要求を行う必要もなくなる。また、IRMノード100に対するこれら要求の輻輳も防止される。このように、リソース取得のための処理ステップを削減し、IRMノード100の処理負荷の増大を防止することで、データ通信の開始遅延を抑止することができる。
具体的には、従来の処理では、帯域400MbpsでReadリクエストやLockリクエスト等のコマンドを送信したとしても、内部の処理等の影響もあり、1コマンドの送信当たり約10ms(millisecond)かかっていた。すなわち、従来では、Readリクエスト/レスポンス、Lockリクエスト/レスポンスが送受信されるので、動画データ等の送信までに約40msを要することになる。これは、動画の1フレームが、例えば、約16.7msであるとすると2〜3フレーム分の映像が途切れることを示している。
これに対し、本実施の形態の通信システムでは、IRMノード100がバスリセット前後で変わらなかった場合には、Readリクエスト/レスポンス、Lockリクエスト/レスポンスが省略される。このため、10ms以下での動画データの送信開始が可能となる。このように、データ送信の開始遅延を1フレーム以内に抑えることで、動画データを途切れることなく再送することができる。
更に、IRMノード100は、識別情報と共にリソースの利用状況をソースノード200,300,400,500に送信する。これにより、IRMノード100がバスリセット前に管理ノードではなかった場合にも、各ソースノードは、取得したリソースの利用状況に基づいてIRMノード100にリソースの割当要求を行うことができる。これにより、各ソースノード側からIRMノード100に対するリソースの利用状況の確認の動作が不要となるため、バスリセット前後でIRMノードが変更している場合にもデータ通信の開始遅延を抑止することができる。
以上、本件の通信システム、通信装置および通信方法を図示の実施の形態に基づいて説明したが、これらに限定されるものではなく、各部の構成は同様の機能を有する任意の構成のものに置き換えることができる。また、他の任意の構成物や工程が付加されてもよい。更に、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
1,2,3,4 通信装置
1a,2d 送信部
2a リソース割当記憶部
2b 受信部
2c 判定部
D1 識別情報
1a,2d 送信部
2a リソース割当記憶部
2b 受信部
2c 判定部
D1 識別情報
Claims (8)
- 他の複数の通信装置とのリンクが再構築された後に、自装置が前記他の複数の通信装置が通信に用いるリソースの割り当てを管理する管理ノードとなった場合、前記他の複数の通信装置に自装置の識別情報を報知する第1の通信装置と、
前記識別情報を受信すると、当該識別情報に基づいて前記リンクの再構築前後で前記管理ノードが変更しているか否かを判定し、前記管理ノードが変更していない場合、前記リンクの再構築前に割り当てられていたリソースを用いて他の通信装置との通信を行う第2の通信装置と、
を有することを特徴とする通信システム。 - 前記第1の通信装置は、
自装置が前記管理ノードである場合、前記リソースの利用状況を示すリソース情報をリソース情報記憶部に格納し、前記リソース情報が前記リソースの割り当てに応じて更新されると当該リソース情報の複製を前記リンクの再構築前後で情報が保持される退避情報記憶部に退避し、
前記リンクの再構築が発生した後も引き続き自装置が前記管理ノードとなった場合、前記退避情報記憶部に記憶された前記リソース情報の複製を用いて、前記リソース情報記憶部の前記リソース情報を復元する、
ことを特徴とする請求項1記載の通信システム。 - 前記第1の通信装置は、自装置が前記管理ノードとなった場合、前記識別情報と共に、リソースの利用状況を示すリソース情報を報知し、
前記第2の通信装置は、前記管理ノードが前記リンクの再構築前後で変更している場合、前記リソース情報に基づいて前記第1の通信装置にリソース割当要求を送信し、当該要求に基づいてリソースを取得すると、取得したリソースを用いて他の通信装置との通信を行う、
ことを特徴とする請求項1記載の通信システム。 - 前記第1の通信装置は、前記識別情報および前記リソース情報を所定の物理パケットを用いて送信し、
前記第2の通信装置は、前記リソース割当要求を所定のロックリクエストを用いて送信する、
ことを特徴とする請求項3記載の通信システム。 - 前記第1の通信装置は、前記リンクの再構築前は自装置が前記管理ノードでなく、かつ、前記リンクの再構築後に自装置が前記管理ノードとなった場合、前記リソースの利用状況を示すリソース情報を記憶するリソース情報記憶部に記憶された前記リソース情報を初期化する、
ことを特徴とする請求項1記載の通信システム。 - 他の複数の通信装置とのリンクが再構築された後に、自装置が前記他の複数の通信装置が通信に用いるリソースの割り当てを管理する管理ノードとなった場合、前記他の複数の通信装置に自装置の識別情報を報知する送信部を有することを特徴とする通信装置。
- リンクの再構築前に割り当てられていた通信用のリソース割当情報を記憶するリソース割当記憶部と、
前記リンクの再構築後に通信用のリソースの割り当てを管理する管理ノードから当該管理ノードの識別情報を受信する受信部と、
前記受信部が受信した識別情報に基づいて、前記リンクの再構築前後で前記管理ノードが変更しているか否かを判定する判定部と、
前記判定部が前記管理ノードが変更していないと判定すると、前記リソース割当記憶部に記憶された前記リソース割当情報に基づくリソースを用いて他の通信装置にデータを送信する送信部と、
を有することを特徴とする通信装置。 - 複数の通信装置が相互に通信する通信システムの通信方法において、
第1の通信装置が、他の複数の通信装置とのリンクが再構築された後に、自装置が前記他の複数の通信装置が通信に用いるリソースの割り当てを管理する管理ノードとなった場合、前記他の複数の通信装置に自装置の識別情報を報知し、
第2の通信装置が、前記識別情報を受信すると、当該識別情報に基づいて前記リンクの再構築前後で前記管理ノードが変更しているか否かを判定し、前記管理ノードが変更していない場合、前記リンクの再構築前に割り当てられていたリソースを用いて他の通信装置との通信を行う、
ことを特徴とする通信方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008199582A JP2010041192A (ja) | 2008-08-01 | 2008-08-01 | 通信システム、通信装置および通信方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008199582A JP2010041192A (ja) | 2008-08-01 | 2008-08-01 | 通信システム、通信装置および通信方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010041192A true JP2010041192A (ja) | 2010-02-18 |
Family
ID=42013296
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008199582A Pending JP2010041192A (ja) | 2008-08-01 | 2008-08-01 | 通信システム、通信装置および通信方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2010041192A (ja) |
-
2008
- 2008-08-01 JP JP2008199582A patent/JP2010041192A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2019158010A1 (zh) | 资源管理的方法、设备及系统 | |
KR100718079B1 (ko) | 하이퍼랜 2 기술에 기초한 네트워크에서 등시성 자원 관리 방법 | |
KR101426217B1 (ko) | 예약된 스트림의 최대 레이턴시를 감소시키는 방법 | |
KR100557068B1 (ko) | 실내 백본망을 위한 ieee 1394 기반의 단방향 링 시스템 | |
WO2007037117A1 (ja) | 中継装置及び中継方法、変換装置及び変換方法、中継処理用プログラム及び変換処理用プログラム並びに情報記録媒体 | |
EP1472832B1 (en) | Method and device for managing a connection and resource reservation in a communication network comprising a bridge | |
JP2000196624A (ja) | 伝送管理装置、情報処理装置及び情報伝送システム | |
JP2010041192A (ja) | 通信システム、通信装置および通信方法 | |
JP2005012260A (ja) | データ伝送の制御方法 | |
US20050174958A1 (en) | Method and system for prioritazation and dynamic channel allocation within a communication system | |
EP1499071A1 (en) | Apparatus, method, program and information recording medium for data rate setting | |
US7428222B1 (en) | Method of bus configuration to enable device bridging over dissimilar buses | |
KR100828064B1 (ko) | 무선 링크를 포함하는 네트워크에서 등시성 자원을예약하는 방법 | |
KR100429795B1 (ko) | 시리얼 버스의 대역폭 관리 방법 및 장치 | |
WO2014131156A1 (zh) | 保护倒换方法、系统和节点 | |
JP2007324681A (ja) | Ieeeシリアルバスへの接続機器 | |
JP2009005368A (ja) | 帯域管理装置 | |
JP2007214812A (ja) | 帯域割り当て方法、通信制御装置及び通信装置 | |
US6985979B2 (en) | Digital data processing device, bus controlling method, bus controlling program and recording medium | |
JP5618805B2 (ja) | 通信装置、ネットワークシステム及び通信方法 | |
CN107332751B (zh) | 数据传输方法、电子设备和服务器集群 | |
US20080098141A1 (en) | Bridge and Transmitting Apparatus, and Information System | |
JP3579635B2 (ja) | データ送信管理方法 | |
JP2004064340A (ja) | 帯域幅管理装置及び方法 | |
JP2005167800A (ja) | データ通信装置 |