(57)【要約】【課題】バンド幅とチャネルを周期的に確保することができ、他のノードと重なることなく周期的に使用するバンド幅とチャネルを排他的に確保することができるシリアルバス管理装置を提供する。【解決手段】シリアルバス管理装置は、共有資源のバンド幅を表す有効バンド幅表示手段１９７及び共有資源のチャンネルを表す有効チャンネル表示手段１９８を有し、パケットのアイソクロナス転送機能を有するシリアルバスにてネットワーク接続された複数のノードの共有資源の利用の競合を管理するシリアルバス管理装置１９４であって、シリアルバス１９５上の任意のノード１９１，１９２，１９３，１９４から読み書き可能なアドレス空間に割り当てられバンド幅及びチャネルによって獲得される共有資源の周期的な確保状況を表す周期資源管理表示手段３００を備えている。【選択図】図１
2005260726.tif 000002
【特許請求の範囲】
【請求項１】
共有資源のバンド幅を表す有効バンド幅表示手段及び前記共有資源のチャンネルを表す有効チャンネル表示手段を有し、パケットのアイソクロナス転送機能を有するシリアルバスにてネットワーク接続された複数のノードの共有資源の利用の競合を管理するシリアルバス管理装置であって、
前記シリアルバス上の任意のノードから読み書き可能なアドレス空間に割り当てられ前記バンド幅及び前記チャネルによって獲得される前記共有資源の周期的な確保状況を表す周期資源管理表示手段
を備えたことを特徴とするシリアルバス管理装置。
【請求項２】
前記周期資源管理表示手段は、
アイソクロナス単位時間にてインクリメントするカウント値の所定の桁を抽出するマスクフィールドと、
前記マスクフィールドにて抽出された桁が何れの値になったとき前記共有資源を確保するかを表す比較フィールドと、
前記共有資源のバンド幅を表す要求バンド幅フィールドと、
前記共有資源のチャンネルを表す要求チャネルフィールドと
を有することを特徴とする請求項１に記載のシリアルバス管理装置。
【請求項３】
前記周期資源管理表示手段は、前記共有資源の確保を書き込む際に、新たに確保したいバンド幅と前記要求バンド幅フィールドにすでに確保されているバンド幅の和が求められ、該和が初期のバンド幅から減算されて残量が有るか否かを確認して書き込まれる
ことを特徴とする請求項２に記載のシリアルバス管理装置。
【請求項４】
前記有効バンド幅表示手段には、書き込まれたバンド幅に基づき、前記周期資源管理表示手段で周期的に確保されたバンド幅についてアイソクロナス単位時間毎にバンド幅の和を求め、各バンド幅の和の中で最大となるバンド幅を初期のバンド幅から減算した残量が表示される
ことを特徴とする請求項３に記載のシリアルバス管理装置。
【請求項５】
前記有効チャンネル表示手段には、書き込まれたチャネルを表す値から、前記周期資源管理表示手段で周期的に確保されたチャネルの論理和を減算した残量が表示される
ことを特徴とする請求項２から４のいずれか１項に記載のシリアルバス管理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えばＩＥＥＥ１３９４規格で定められたシリアルバスにてネットワーク接続された複数のノードによる共有資源の利用の競合を管理するシリアルバス管理装置に関するものである。
【背景技術】
【０００２】
図２２は従来のアイソクロナス転送機能を有するシリアルバスネットワークの機器接続図である。図２２において、第１のノード１９１、第２のノード１９２、第３のノード１９３及び第４のノード１９４は、ＩＥＥＥ１３９４シリアルバス等のＩＳＯ／ＩＥＣ１３２１３準拠シリアルバス１９５で接続されている。４つのノードは全てアイソクロナス転送に対応するノードである。
【０００３】
第４のノード１９４はサイクルマスタ（Cycle Master、以下、ＣＭと略記する）及びアイソクロナス資源マネージャ（Isochroous Resource Manager、以下、ＩＲＭと略記する）の役割を受け持ち、有効バンド幅レジスタ１９７（以下、BANDWIDTH_AVAILABLEレジスタと称する）と有効チャンネルレジスタ１９８（以下、CHANNELS_AVAILABLEレジスタと称する）とを有している。他のノード１９１，１９２，１９３は、サイクルマスタである第４のノード１９４のCYCLE_TIMEレジスタ１９６の値に同期する値が表示されるCYCLE_TIMEレジスタ１９６を夫々有している。
【０００４】
ＩＥＥＥ１３９４のアイソクロナス転送においては、サイクルマスタが、サイクル開始パケット発行間隔単位時間であるアイソクロナス単位時間１２５μｓｅｃの周期でサイクルスタートパケットをバス全体にブロードキャストすることにより、アイソクロナスパケットの送信を行うことができる。この時、アイソクロナス転送を行うノードは、ＩＲＭの提供する有効バンド幅レジスタ１９７と有効チャンネルレジスタ１９８を用いて資源の確保を宣言する。
【０００５】
アイソクロナス転送を行うノードは、有効バンド幅レジスタ１９７と有効チャンネルレジスタ１９８に表示された値から自らが確保する量を減算し残量を元のレジスタに書き込む。そのため、有効バンド幅レジスタ１９７と有効チャンネルレジスタ１９８には、現在残っている確保可能な資源が表示されている（例えば、非特許文献１および非特許文献２参照）。
【０００６】
また、従来の従来のアイソクロナス転送機能を有するシリアルバスネットワークにおいて、所定の時刻Ｔ１から時刻Ｔ２までの間に必要なバンド幅とチャネルが予約されていることを表す予約テーブルを有し、さらにこの予約テーブルがバス上の任意のノードから読み書き可能とされており、未来の特定の時刻のバンド幅とチャネルを予約できるようにする提案もされている（例えば、特許文献１参照）。
【０００７】
図２３は図２２に示す従来のアイソクロナス転送機能を有するシリアルバスネットワークにおいて、第１のノード１９１が送信している場合のバス上の周期的な資源確保状況を示す図である。第１のノード１９１は、ＩＲＭのBANDWIDTH_AVAILABLEレジスタ１９７で確保したバンド幅ＡとCHANNELS_AVAILABLEレジスタ１９８で確保したチャネル０を使って、サイクルスタートパケット８０１がバス上に出る度にアイソクロナスパケット２３０１を送信できる。
【０００８】
図２２に示すネットワークにおいて、さらに第３のノード１９３がアイソクロナス転送でパケットをバス上に送信しようとしたとする。第３のノード１９３がバンド幅Ｂとチャネル１を要求する場合、第３のノード１９３はＩＲＭのBANDWIDTH_AVAILABLEレジスタ１９７の値を読み込むが、現在値の値は、全バンド幅である初期値４９１５から第１のノード１９１が確保したバンド幅Ａを減算した値、すなわち、（４９１５−Ａ）であり、もし（４９１５−Ａ）＜Ｂであって確保したいバンド幅Ｂが残っていないとすると、第３のノード１９３はバンド幅Ｂを確保できないのでアイソクロナス転送できない。
【０００９】
このように、従来のシリアルバス管理装置は、ＩＲＭがBANDWIDTH_AVAILABLEレジスタ１９７とCHANNELS_AVAILABLEレジスタ１９８とを任意のノードから読み書き可能なアドレス空間に提供しており、アイソクロナス転送を行うバス上のノードがアイソクロナス転送のためのバンド幅とチャネルをこのBANDWIDTH_AVAILABLEレジスタ１９７とCHANNELS_AVAILABLEレジスタ１９８から確保した後にパケットを送信する。このようにして、複数のノードの共有資源の利用の競合が管理されている。
【００１０】
【非特許文献１】ＩＥＥＥ１３９４ Std 1394-1995, IEEE Standard for a High Performance Serial Bus、１９９６年８月３０日、ｐ．１９９、ｐ．２０４、ｐ．２１６−２１７、ｐ．２３２−２３３
【非特許文献２】ＩＥＥＥ１３９４ Std 1394a-2000, IEEE Standard for a High Performance Serial Bus - Amendment 1、２０００年６月３０日、ｐ．１５６、ｐ．１６２−１６５、ｐ．１７１−１７３
【特許文献１】特開平１１−１６８４７３号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
従来のシリアルバス管理装置は、上述のようにＩＲＭのBANDWIDTH_AVAILABLEレジスタ１９７とCHANNELS_AVAILABLEレジスタ１９８を読み書きすることでバンド幅とチャネルを確保する。そして、このバンド幅とチャネルは、現在確保しているノードが、再びBANDWIDTH_AVAILABLEレジスタ１９７とCHANNELS_AVAILABLEレジスタ１９８を書き換えて解放するまで有効となっている。そのため、たとえバンド幅とチャネルを所有しているノードが所定の時間パケットを送信しない場合でも、BANDWIDTH_AVAILABLEレジスタ１９７とCHANNELS_AVAILABLEレジスタ１９８の値を書き換えなければバンド幅とチャネルは確保されているままである。そして、他のノードである第３のノード１９３は、第１のノード１９１が確保した同じバンド幅とチャネルを使用することはできない。すなわち、バンド幅とチャネルを確保したにもかかわらず、確保したノードがこれを使用しなければ、バンド幅とチャネルが無駄になるという未解決の問題がある。
【００１２】
図２４は第１のノード１９１がバンド幅Ａとチャネル０を所有している場合の、CYCLE_TIMEレジスタ１９６のcycle_countフィールド値に対するバンド幅Ａとチャネル０の確保状況を示す表である。図２４において、項目bandwidth_takeは各サイクルにおいて確保されているバンド幅を表し、項目channels_takeは各サイクルにおいて確保されているチャネルを表している。図２４に示すように、第１のノード１９１が再度BANDWIDTH_AVAILABLEレジスタ１９７とCHANNELS_AVAILABLEレジスタ１９８を書き換えてバンド幅Ａとチャネル０を解放しない限り、全サイクルに渡って第１のノード１９１のバンド幅Ａとチャネル０が確保されている。ただし、図２４のチャネル３１はＩＲＭによってデフォルトで確保されている分である。
【００１３】
また、前記BANDWIDTH_AVAILABLEレジスタ１９７とCHANNELS_AVAILABLEレジスタ１９８によって確保されたバンド幅とチャンネルは、アイソクロナス単位時間１２５μｓｅｃの期間内の確保を対象としているので、確保したバンド幅とチャネルでの実際の送信が１２５μｓｅｃよりも長い周期で行われる場合、すなわち１２５μｓｅｃより長い周期で送信する場合には、バス上で周期的にバンド幅とチャネルが空いている状況となるので、あるサイクルでは確保されたバンド幅とチャネルは無駄となり、さらに他のノードにとっては実際にはあるサイクルで使われていないバンド幅とチャネルがあることを知ることができないという問題もあった。
【００１４】
図２５は第１のノード１９１が図２４のようにバンド幅Ａとチャネル０を確保した上で、５００μｓに一回しかパケットを送信しない場合の資源確保状況を示す図である。図２５に示されるように、第１のノード１９１はcycle0においてサイクルスタートパケット８０１の後にアイソクロナスパケット２３０１を送信し、cycle1とcycle2とcycle3においてアイソクロナスパケットは送信せず、cycle4においてアイソクロナスパケット２３０１を送信し、cycle5とcycle6とcycle7においてアイソクロナスパケットは送信しないという繰り返しであり、５００μｓｅｃ中の４回の１２５μｓｅｃ期間のうち３回は所有するバンド幅とチャネルを使わない空きの状況となるので、確保されたバンド幅Ａとチャネル０は周期的に無駄となっている。
【００１５】
本発明はこのような問題点に鑑みてなされたものであり、バンド幅とチャネルを周期的に確保することができ、他のノードによって確保されている周期的なバンド幅とチャネルを知ることができ、他のノードと重なることなく周期的に使用するバンド幅とチャネルを排他的に確保することができるシリアルバス管理装置を提供することを目的とする。
【課題を解決するための手段】
【００１６】
この発明の請求項１のシリアルバス管理装置は、共有資源のバンド幅を表す有効バンド幅表示手段及び共有資源のチャンネルを表す有効チャンネル表示手段を有し、パケットのアイソクロナス転送機能を有するシリアルバスにてネットワーク接続された複数のノードの共有資源の利用の競合を管理するシリアルバス管理装置であって、シリアルバス上の任意のノードから読み書き可能なアドレス空間に割り当てられバンド幅及びチャネルによって獲得される共有資源の周期的な確保状況を表す周期資源管理表示手段を備えている。
【００１７】
この発明の請求項２のシリアルバス管理装置においては、周期資源管理表示手段は、アイソクロナス単位時間にてインクリメントするカウント値の所定の桁を抽出するマスクフィールドと、マスクフィールドにて抽出された桁が何れの値になったとき共有資源を確保するかを表す比較フィールドと、共有資源のバンド幅を表す要求バンド幅フィールドと、共有資源のチャンネルを表す要求チャネルフィールドとを有する。
【００１８】
この発明の請求項３のシリアルバス管理装置においては、周期資源管理表示手段は、共有資源の確保を書き込む際に、新たに確保したいバンド幅と要求バンド幅フィールドにすでに確保されているバンド幅の和が求められ、和を初期のバンド幅から減算し、残量が有るか否かを確認して書き込まれる。
【００１９】
この発明の請求項４のシリアルバス管理装置においては、有効バンド幅表示手段には、書き込まれたバンド幅に基づき、周期資源管理表示手段で周期的に確保されたバンド幅についてアイソクロナス単位時間毎にバンド幅の和を求め、各バンド幅の和の中で最大となるバンド幅を初期のバンド幅から減算した残量が表示される。
【００２０】
この発明の請求項５のシリアルバス管理装置においては、有効チャンネル表示手段は、書き込まれたチャネルを表す値から、周期資源管理表示手段で周期的に確保されたチャネルの論理和を減算した残量が表示される。
【発明の効果】
【００２１】
請求項１に記載の発明によれば、バス上のアイソクロナス対応ノードは、他のノードによって確保されている周期的なバンド幅とチャネルを知ることができ、他のノードと重なることなく周期的に使用するバンド幅とチャネルを排他的に確保することができる。
【００２２】
請求項２に記載の発明によれば、バス上のアイソクロナス対応ノードは、アイソクロナス単位時間を超えた周期にてバンド幅とチャネルの確保をすることができ、さらに各ノードによる複数の周期が混在したバンド幅とチャネルの確保をすることができ、重ならないサイクル間でバンド幅とチャネルを共有することができる。
【００２３】
請求項３に記載の発明によれば、周期資源管理表示手段を用いて要求する資源を周期的に確保できるかどうかを判断することができ、バンド幅とチャネルが使われていないサイクルを有効に利用することができる。
【００２４】
請求項４に記載の発明によれば、周期資源管理表示手段によって確保されたバンド幅も従来のバンド幅確保状況を表す表示手段に反映することができ、従来のシリアスバス管理のバンド幅確保方法との互換性を保つことができる。
【００２５】
請求項５に記載の発明によれば、周期資源管理表示手段によって確保されたチャネルも従来のチャネル確保状況を表す表示手段に反映することができ、従来のシリアスバス管理におけるチャネルド確保方法との互換性を保つことができる。
【発明を実施するための最良の形態】
【００２６】
以下、本発明の実施例について図を参照して説明する。
【実施例１】
【００２７】
図１は本発明のシリアルバス管理装置を含むシリアルバスネットワークの機器接続図である。図１において、第１のノード１９１、第２のノード１９２、第３のノード１９３及びシリアルバス管理装置である第４のノード１９４からなる４個のノードがＩＥＥＥ１３９４シリアルバス１９５で接続されている。４つのノードは全てアイソクロナス転送に対応するノードである。各ノードのphysical_IDは、第１のノード１９１が０、第２のノード１９２が２、第３のノード１９３が３、第４のノード１９４が４である。アイソクロナス転送に対応するすべてのノードは、24.576MHzのクロックを実装している。そして、このクロックのカウント値を表示するCYCLE_TIMEレジスタ１９６を夫々有している。
【００２８】
第４のノード１９４は、ＣＭ及びＩＲＭの役割を受け持っている。ＩＲＭである第４のノード１９４は、バス上の任意のノードから読み書き可能な有効バンド幅表示手段である、BANDWIDTH_AVAILABLEレジスタ１９７と有効チャンネル表示手段であるCHANNELS_AVAILABLEレジスタ１９８とを有している。BANDWIDTH_AVAILABLEレジスタ１９７とCHANNELS_AVAILABLEレジスタ１９８は、ＩＲＭである第４のノード１９４において、ＩＳＯ／ＩＥＣ１３２１３で定義されるＣＳＲ空間に形成されるシリアルバス依存レジスタとして割り当てられている。
【００２９】
ＩＲＭである第４のノード１９４は、さらに共有資源の利用の競合を周期的に管理する周期資源管理表示手段としての周期資源管理ディレクトリ３０１を有している。周期資源管理ディレクトリ３０１も第４のノード１９４にＩＳＯ／ＩＥＣ１３２１３で定義されるＣＳＲ空間にシリアルバス依存レジスタとして割り当てられている。周期資源管理ディレクトリ３０１は、データ構成として複数の周期資源管理表示手段としての周期資源管理レジスタ１０１（１０１ａ，１０１ｂ，・・・）を有している。
【００３０】
図２はCYCLE_TIMEレジスタ１９６のビット割り振りを示すデータ構造図である。図２に示されるようにCYCLE_TIMEレジスタ１９６は３つのフィールドから構成されている。上位７ビットのsecond_countフィールドは秒単位のカウンタ、次の１３ビットのcycle_countフィールドは１２５μｓ単位のカウンタ、最後の１２ビットのcycle_offsetフィールドは24.576MHzの１周期である40.690ns単位のカウンタである。アイソクロナス転送に対応するすべてのノードのCYCLE_TIMEレジスタの値は、ＣＭとなった第４のノード１９４から送信されるサイクルスタートパケットにより同期するようにされている。そして、夫々のノードのCYCLE_TIMEレジスタ１９６はバス上の共通の時刻を表している。本実施例においては、第４のノード１９４がＣＭの役割を担当しているので、他の全てのノードのCYCLE_TIMEレジスタ１９６の値は第４のノード１９４のCYCLE_TIMEレジスタ１９６の値に同期する。
【００３１】
図３はBANDWIDTH_AVAILABLEレジスタ１９７のビット割り振りを示すデータ構造図である。BANDWIDTH_AVAILABLE１９７は、図３に示されるように、３２ビット（１クワドレット）のレジスタで、上位１９ビットは予約領域であり、下位１３ビット(bw_remaining)が現在割り当て可能なバンド幅を示している。このbw_remainingフィールドに書き込まれるバンド幅の値は、S1600（1572.864Mbps）のデータレートで１クワドレットのデータを送信するのに要する時間を１として表されている。そして、このbw_remainingフィールドの初期値は4915であり、約１００μｓｅｃである。つまり、初期値としてサイクル単位時間１２５μｓｅｃのうち、アイソクロナス転送のために約１００μｓｅｃが確保されている。
【００３２】
図４はCHANNELS_AVAILABLEレジスタ１９８のビット割り振りを示すデータ構造図である。CHANNELS_AVAILABLEレジスタ１９８は、ＩＲＭである第４のノード１９４において、ＩＳＯ／ＩＥＣ１３２１３で定義されるＣＳＲ空間に形成されるシリアルバス依存レジスタとして割り当てられている。CHANNELS_AVAILABLEレジスタ１９８は、図４に示されるように、６４ビット（２クワドレット）で構成され、３２ビットのchannels_available_hiフィールドと３２ビットのchannels_available_loフィールドを有している。CHANNELS_AVAILABLEレジスタ１９８の各ビットは０から６３のどのアイソクロナスチャネルが使われているかを示し、channels_available_hiフィールドはチャネル０からチャネル３１、channels_available_loフィールドはチャネル３２からチャネル６３に対応している。各ビットは０ですでに所有されていて利用できないことを表し、１で利用可能であることを表す。
【００３３】
なお、ＩＥＥＥ１３９４a-2000ではチャネル３１はＩＲＭによって非同期ストリームパケットのデフォルトのブロードキャストチャネルとして自動的に割り当てられているのでchannels_available_hiフィールドの初期値はFFFFFFFEhであり、channels_available_loフィールドの初期値はFFFFFFFFhである。設定する値の数字の末尾のhは１６進数表記であることを示す。
【００３４】
図５は周期資源管理レジスタ１０１の構成を示すデータ構造図である。図５において、周期資源管理レジスタ１０１は、サイクル開始パケット発行間隔単位時間であるアイソクロナス単位時間１２５μｓｅｃ毎にインクリメントする２進数表記のcycle_countフィールドの値のうち、注目する所定の範囲の桁を抽出するために、該桁とＡＮＤ論理をとる値が表示されるマスクフィールドである１３ビットのcycle_count_maskフィールドを有している。
周期資源管理レジスタ１０１はさらに、cycle_count_maskフィールドに表示された値とＡＮＤ論理をとることにより抽出された桁の値が何れの値になったとき前記共有資源を確保するかを表す比較フィールドである１３ビットのcompareフィールドも有している。
周期資源管理レジスタ１０１は、さらに、確保する共有資源のバンド幅の情報を表示する要求バンド幅フィールドである１３ビットのbandwidth_takeフィールドと、確保する共有資源のチャンネルの情報を表示する要求チャネルフィールドである３２ビットのchannels_takeフィールドと、共有資源を確保することを要求するノードの情報を表示するフィールドである６ビットのphysical_idフィールドとを有している。
【００３５】
図６は周期資源管理ディレクトリ３０１の構成を示すデータ構造図である。図６において、周期資源管理ディレクトリ３０１は、上述のように周期資源管理レジスタ１０１を複数有している。周期資源管理ディレクトリ３０１は、先頭クワドレットの上位１６ビットにクワドレット単位でディレクトリ長を表すdirectory_lengthフィールドがあり、先頭クワドレットの下位６ビットに現在周期資源確保作業中のノードのphysical_idを示すwork_phy_idフィールドがあり、２クワドレット目から周期資源管理レジスタ１０１が複数並んだ形となっている。複数の周期資源管理レジスタ１０１は、それぞれ第１の周期資源管理レジスタ１０１ａ、第２の周期資源管理レジスタ１０１ｂと続き、以下、前記directory_lengthフィールドで示される長さになるように第ｎの周期管理レジスタまで有している。
【００３６】
図７は周期資源管理ディレクトリ３０１の各レジスタの実際の状態の一例を示した図であり、１番目から３番目までの周期資源管理レジスタが確保されており、４番目以下のレジスタが確保されていない状態を示している。
図８は図７の周期資源管理ディレクトリ３０１をテーブルとして表現したものである。本実施例の周期資源管理表示手段としての周期資源管理ディレクトリ３０１は、ＩＲＭである第４のノード１９４において、ＩＳＯ／ＩＥＣ１３２１３で定義されるＣＳＲ空間にシリアルバス依存レジスタとして割り当てられている。しかしながら、周期資源管理ディレクトリ３０１の割り当てられる場所は、必ずしも第４のノード１９４でなくてもよく、シリアルバス上の任意のノードから読み書き可能なアドレス空間であればよい。また、本実施例の周期資源管理ディレクトリ３０１は、シリアルバス依存レジスタとして設けられているが、必ずしもレジスタに限定されるものではない。
【００３７】
図９は周期資源管理ディレクトリ３０１の各レジスタが図８に示した値であるときの、CYCLE_TIMEレジスタ１９６のcycle_countフィールド値に対するバンド幅とチャネルの確保状況を示す図表である。図９において、項目bandwidth_takeは各サイクルにおいて確保されているバンド幅を表し、項目channels_takeは各サイクルにおいて確保されているチャネルを表している。
図９に示すように、確保されているバンド幅は時刻によって異なり、チャネル０は第１のノード１９１と第２のノード１９２によって共有されており、異なるサイクルであれば同じチャネルを異なるノードによって確保することができる。
【００３８】
ＩＥＥＥ１３９４シリアルバス１９５を用いてノードを相互接続した場合、映像／音声などのように、特にリアルタイム性が必要なデータは、ＩＥＥＥ１３９４では通常アイソクロナス転送と呼ばれる転送方式によって転送される。
アイソクロナス転送においては、サイクルマスタとされた第４のノード１９４が、アイソクロナス単位時間である１２５μｓｅｃ周期でサイクルスタートパケットをバス全体にブロードキャストする。そして、サイクルスタートパケットがブロードキャストされるとアイソクロナスパケットの送信を行うことができる。この時、バス上にはＩＲＭが必ず存在する（本実施例では、第４のノード１９４が兼ねている）。アイソクロナス転送を行うには、まず、ＩＲＭの提供するBANDWIDTH_AVAILABLE１９７とCHANNELS_AVAILABLEレジスタ１９８を用いてアイソクロナス資源の確保を宣言しなければならない。
【００３９】
すなわち、まず、BANDWIDTH_AVAILABLE１９７のbw_remainingフィールドの値を書き直さなければならない。具体的には、転送をしようとするノードがBANDWIDTH_AVAILABLE１９７の現在値から確保したいバンド幅の値を引いた残りの値をLockトランザクションで書き込むことでバンド幅を確保する。そしてさらに、チャンネルの確保も行わなければならない。具体的には、転送をしようとするノードが、CHANNELS_AVAILABLEレジスタ１９８の現在値から確保したいチャネルのビットを０にした値をCHANNELS_AVAILABLEレジスタ１９８にLockトランザクションで書き込むことでチャネルを確保する。
【００４０】
その動作は、例えば図８に示される。周期資源管理表のＮｏ．１においてphysical_idが０の第１のノード１９１によってcycle_count_maskフィールドが0000000000011b、compareフィールドが0000000000000b、bandwidth_takeフィールドが2000、channels_takeフィールドがチャネル0と確保され、同様に周期資源管理表のＮｏ．２においてphysical_idが２の第３のノード１９３によってcycle_count_maskフィールド、compareフィールド、bandwidth_takeフィールド、channels_takeフィールドが確保されているとする。ここで、数字の末尾に付けたbは２進数表記であることを示す。
【００４１】
このときの資源の周期的な確保の状況を図１０に示す。図１０において、横軸は時間の経過を表す。第１のノード１９１が確保したバンド幅２０００とチャネル０を使ってアイソクロナス転送でパケットを送信できるのはCYCLE_TIMEレジスタ１９６のcycle_countフィールドが０、４、８、１２、・・・、４ｎ（ｎ＝０、１、２、・・・）のときになり、第１のノード１９１のパケット送信周期は５００μｓｅｃ（図１０中Ａで示す周期）となる。
同じように、第３のノード１９３が確保したバンド幅１０００とチャネル１を使ってアイソクロナス転送でパケットを送信できるのはCYCLE_TIMEレジスタ１９６のcycle_countフィールドが０、８、１６、２４、・・・、８ｎ（ｎ＝０、１、２、・・・）のときになり、第３のノード１９３のパケット送信周期は１ｍｓｅｃ（図１０中Ｂで示す周期）となる。
【００４２】
図８の周期資源確保状況において、さらに図１１に示す第１の要求周期資源５０１を第２のノード１９２が確保しようとすると、第２のノード１９２が確保しようとしているのはCYCLE_TIMEレジスタのcycle_countフィールドが０、４、８、１２、・・・、４ｎ（ｎ＝０、１、２、・・・）のときの資源になるので、第１のノード１９１と重なり、０、８、１６、２４、・・・、８ｎ（ｎ＝０、１、２、・・・）のときにはノード０とノード２の両方と重なり、第１のノード１９１のバンド幅２０００と第３のノード１９３のバンド幅１０００と第２のノード１９２の第１の要求周期資源５０１のバンド幅２０００の和は５０００であり、上限である4915を超えてしまうので、第２のノード１９２が５０１要求周期資源１を確保することは不可能である。
【００４３】
そこで第２のノード１９２は図１１の第２の要求周期資源５０２を確保しようとすると、第２のノード１９２が確保しようとしているのはCYCLE_TIMEレジスタのcycle_countフィールドが１、５、９、１３、・・・、４ｎ＋１（ｎ＝０、１、２、・・・）のときの資源になり、第１のノード１９１と第３のノード１９３のどちらのサイクルとも重ならないので、５０２の要求周期資源２のバンド幅２０００とチャンネル０を確保することができる。このようにして資源が周期的に確保された状態を図１２に示す。図１２中Ｃで示された周期は、第２のノード１９２のパケット送信周期は１μｓｅｃを示している。
【００４４】
以上のように、バンド幅とチャネルの周期的な利用を目的とした周期資源管理レジスタ１０１がＩＲＭによって読み書き可能に提供されるので、バス上の任意のノードは周期資源管理レジスタ１０１を読むことで現在確保されている周期資源を知ることができ、周期的に空いている資源を確認して確保することができる。
【００４５】
また、本実施例のシリアルバス管理装置においては、周期資源管理レジスタ１０１は、共有資源の確保を書き込む際に、新たに確保したいバンド幅と要求バンド幅フィールドにすでに確保されているバンド幅の和が求められ、和を初期のバンド幅から減算し、残量が有るか否かを確認して書き込まれる。そのため、周期資源管理レジスタ１０１を用いて要求する資源が確保できるかどうかを判断することができ、バンド幅とチャネルが使われていないサイクルを有効に利用することができる。
【００４６】
次に動作を説明する。図１３から図２１は本発明のシリアルバス管理装置を含むシリアルバスネットワーク上の資源の管理動作を示すフローチャートである。このフローチャートの動作は各ノードの図示しないドライバーによって行われる。
図１３において、まず、第１のノード１９１が、cycle_count_masを0000000000011b、compareを0000000000000b、bandwidth_takeを2000、channel_takeをチャネル０として、所定の資源を周期的に確保しようとする（ステップ１００１）。
一方、ＩＲＭである第４のノード１９４は（ステップ１００２）、BANDWIDTH_AVAILABLEレジスタ１９７とCHANNELS_AVAILABLEレジスタ１９８と、周期資源管理ディレクトリ３０１の全レジスタを初期化する（ステップ１００３）。但し、work_phy_idフィールドにはバス上のどのノードも周期資源確保作業中ではないということ示す3Fhを設定しておく。
【００４７】
次に、第１のノード１９１は、周期資源確保作業を開始するに際して、ＩＲＭの周期資源ディレクトリ３０１のwork_phy_idに自ノードＩＤの０を書き込む旨のLockリクエストを第４のノード１９４に送信する（ステップ１００４）。ＩＲＭである第４のノード１９４は第１のノード１９１からのLockリクエストを受信し、work_phy_idに０を書いて、第１のノード１９１に完了の応答を返す（ステップ１００５）。
【００４８】
次に、第１のノード１９１は現在登録済みの周期資源を知るために、ＩＲＭの周期資源管理ディレクトリ３０１の１番のレジスタ１０１ａから最後のレジスタまでを読み込むリードリクエストを第４のノード１９４に送信する（ステップ１００６）。第４のノード１９４は、第１のノード１９１からの読み込みリクエストを受信し、すべての周期資源管理レジスタ３０１の内容を第１のノード１９１に返す（ステップ１００７）。これを、第１のノード１９１が受け取る（ステップ１００８）。
【００４９】
図１４に進み、ＩＲＭから周期資源管理ディレクトリ３０１の内容を読み込んだ第１のノード１９１は、要求した周期資源を取得できるかどうかの判断をする（ステップ１１０１）。そして、要求資源を取得できない場合はＩＲＭのwork_phy_idに3FhをLockトランザクションで書き込んで終了する（ステップ１１０２）。一方、要求資源を取得できる場合はＩＲＭの周期資源管理ディレクトリ３０１の書き込み作業に移行する。
【００５０】
なお、ステップ１１０１での要求周期資源を取得できるかどうかどうかの判断は、周期資源管理ディレクトリ３０１がすべて空いており、BANDWIDTH_AVAILABLEレジスタ１９７とCHANNELS_AVAILABLEレジスタ１９８も十分残りがあるので、第１のノード１９１は要求する周期資源が取得できるという判断をする。
【００５１】
そして、第１のノード１９１は、LockリクエストをＩＲＭである第４のノード１９４に送信することにより、cycle_count_maskを0000000000011b、compareが000000000000000b、bandwidth_takeを2000、channel_takeをチャネル０として要求周期資源の情報をＩＲＭの周期資源レジスタ１０１ａに書き込む（ステップ１１０３）。第４のノード１９４はレジスタを書き換えて第１のノード１９１に完了応答を返す（ステップ１１０４）。完了応答を受信した第１のノード１９１は、work_phy_idに3FhをLockトランザクションで書き込んで（ステップ１１０５，１１０６，１１０７）、周期資源確保作業を終了する。
【００５２】
図１５に進み、第１のノード１９１の周期資源確保作業が終了した時点でＩＲＭのレジスタはステップ１２０１に示すようになっている。そして、第１のノード１９１はアイソクロナスパケットの送信を開始し（ステップ１２０２）、確保した周期におけるバンド幅とチャネルにしたがって、cycle_countの下位２ビットが00bであるときに（ステップ１２０３）、バンド幅２０００とチャネル０でパケットを送信する（ステップ１２０４）。
【００５３】
図１６に進み、今度は、第３のノード１９３がcycle_count_maskを0000000000111b、compareを0000000000000b、bandwidth_takeを1000、channel_takeをチャネル１として、所定の資源を周期的に確保しようとする（ステップ１３０１）。
【００５４】
この時点でＩＲＭの周期資源管理レジスタ１０１ａは、第１のノード１９１によって確保されており、２つ目の周期資源管理レジスタ１０１ｂ以下は空いている。周期資源確保作業中のノードはない（ステップ１３０２）。
【００５５】
次に、第３のノード１９３は、周期資源確保作業を開始するに際して、ＩＲＭの周期資源ディレクトリ３０１のwork_phy_idに自ノードＩＤの２を書き込むLockリクエストを第４のノード１９４に送信する（ステップ１３０３）。ＩＲＭである第４のノード１９４は第３のノード１９３からのLockリクエストを受信し、work_phy_idに２を書いて、第３のノード１９３に完了応答を返す（ステップ１３０４）。
【００５６】
次に第３のノード１９３は現在登録済みの周期資源を知るために、ＩＲＭの周期資源管理ディレクトリ３０１の１番のレジスタ１０１ａから最後のレジスタまでを読み込むリードリクエストを第４のノード１９４に送信し（ステップ１３０５）、第４のノード１９４は第３のノード１９３からの読み込みリクエストを受信し、すべての周期資源管理ディレクトリ３０１の内容を第３のノード１９３に返し（ステップ１３０６）、これを、第３のノード１９３が受け取る（ステップ１３０７）。
【００５７】
図１７に進み、ＩＲＭから周期資源管理ディレクトリ３０１の内容を読み込んだ第３のノード１９３は、要求周期資源を取得できるかどうかを判断する（ステップ１４０１）。要求資源を取得できない場合はＩＲＭのwork_phy_idに3FhをLockトランザクションで書き込んで終了する（ステップ１４０２）。一方、要求資源を取得できる場合はＩＲＭの周期資源管理ディレクトリ３０１の書き込み作業に移る。
【００５８】
ここでの要求周期資源を取得できるかどうかどうかの判断（ステップ１４０１）は、第３のノード１９３が確保しようとしているのはCYCLE_TIMEレジスタのcycle_countフィールドが０、８、１６、２４、・・・、８ｎ（ｎ＝０、１、２、・・・）のときの資源になるので、１９１ノード１と重なり、第１のノード１９１のバンド幅２０００と第３のノード１９３の要求する周期資源のバンド幅１０００の和を求めると３０００であり、バンド幅の上限である4915を超えていないので、第３のノード１９３は要求する周期資源のバンド幅１０００とチャンネル１を取得できるという判断になり、第３のノード１９３はcycle_count_maskが0000000000111b、compareが000000000000000b、bandwidth_takeが1000、channel_takeがチャネル１の要求周期資源をＩＲＭの周期資源レジスタ２に書き込むLockリクエストをＩＲＭである第４のノード１９４に送信し（ステップ１４０３）、第４のノード１９４はレジスタを書き換えて第３のノード１９３に完了応答を返し（ステップ１４０４）、完了応答を受信した第３のノード１９３はwork_phy_idに3FhをLockトランザクションで書き込んで（ステップ１４０５，１４０６，１４０７）、周期資源確保作業を終了する。
【００５９】
図１８に進み、第３のノード１９３の周期資源確保作業が終了した時点でＩＲＭのレジスタはステップ１５０１に示すようになっている。そして、第３のノード１９３はアイソクロナスパケットの送信を開始する（ステップ１５０２）。確保した周期におけるバンド幅とチャネルにしたがって、cycle_countの下位３ビットが000bであるときに（ステップ１５０３）、バンド幅１０００とチャネル１でパケットを送信する（ステップ１５０４）。
【００６０】
このときのバス上の周期的な資源確保状況は図１０のようになり、第１のノード１９１は５００μｓｅｃ周期で８０１サイクルスタートパケットの後にアイソクロナスパケット８０２を送信し、第３のノード１９３は１ｍｓｅｃ周期でアイソクロナスパケット８０３を送信する。
【００６１】
図１９に進み、まず、第２のノード１９２が、cycle_count_maskを0000000000011b、compareを0000000000000b、bandwidth_takeを2000、channel_takeをチャネル２として所定の資源を周期的に確保しようとする（ステップ１６０１）。
【００６２】
この時点でＩＲＭの第１の周期資源管理レジスタ１０１ａは第１のノード１９１によって確保されており、第２の周期資源管理レジスタ１０１ｂは第３のノード１９３によって確保されており、第３の周期資源管理レジスタ１０１ｃ以下は空いており、周期資源確保作業中のノードはない（ステップ１６０２）。
【００６３】
次に、第２のノード１９２は、周期資源確保作業を開始するに際して、ＩＲＭの周期資源ディレクトリ３０１のwork_phy_idに自ノードＩＤの１を書き込むLockリクエストを第４のノード１９４に送信する（ステップ１６０３）。ＩＲＭである第４のノード１９４は第２のノード１９２からのLockリクエストを受信し、work_phy_idに１を書いて、第２のノード１９２に完了応答を返す（ステップ１６０４）。
【００６４】
次に第２のノード１９２は現在登録済みの周期資源を知るために、ＩＲＭの周期資源管理ディレクトリ３０１の１番のレジスタ１０１ａから最後のレジスタまでを読み込むリードリクエストを第４のノード１９４に送信する（ステップ１６０５）。第４のノード１９４は、第２のノード１９２からの読み込みリクエストを受信し、すべての周期資源管理レジスタ３０１の内容を第２のノード１９２に返す（ステップ１６０６）。これを、第２のノード１９２が受け取る（ステップ１６０７）。
【００６５】
図２０に進み、ＩＲＭから周期資源管理レジスタ３０１の内容を読み込んだ第２のノード１９２が、要求周期資源を取得できるかどうかを判断する（ステップ１７０１）。要求資源を取得できる場合は前回の第１のノード１９１、第３のノード１９３の動作と同様に周期資源管理レジスタ１０１ｃへの書き込みを行う（ステップ１７０２）が、ここで第２のノード１９２が要求する周期資源は、第１のノード１９１が確保したcycle_count_maskおよびcompareの値と同じであり、CYCLE_TIMEレジスタのcycle_countフィールドが０、４、８、１２、・・・、４ｎ（ｎ＝０、１、２、・・・）のときの資源になるので、１９１ノード１が確保したものと重なり、０、８、１６、２４、・・・、８ｎ（ｎ＝０、１、２、・・・）のときには第１のノード１９１と第３のノード１９３の両方が確保したものと重なり、また、第１のノード１９１のバンド幅２０００と第３のノード１９３のバンド幅１０００と第２のノード１９２の要求する周期資源のバンド幅２０００の和を求めると５０００であり、バンド幅の上限である4915を超えてしまうので、第２のノード１９２は、要求する周期資源を取得することは不可能であると判断する。
【００６６】
そこで次に、第２のノード１９２はサイクルをずらして、cycle_count_maskが0000000000011b、compareが0000000000001b、bandwidth_takeが2000、channel_takeがチャネル０の所定の資源を周期的に確保しようとする（ステップ１７０３）。第２のノード１９２は再度、要求周期資源を取得できるかどうかを判断し（ステップ１７０４）、要求資源を取得できない場合はＩＲＭのwork_phy_idに3FhをLockトランザクションで書き込んで終了する（ステップ１７０５）。要求資源を取得できる場合はＩＲＭの周期資源管理レジスタ３０１の書き込み作業に移る。
【００６７】
ここでの判断は、第２のノード１９２が確保しようとしているのはCYCLE_TIMEレジスタのcycle_countフィールドが１、５、９、１３、・・・、４ｎ＋１（ｎ＝０、１、２、・・・）のときの資源になり、第１のノード１９１が確保したものと第３のノード１９３が確保したものとのどちらのサイクルとも重ならないので、要求する周期資源のバンド幅２０００とチャンネル０を取得できるという判断になり、第２のノード１９２はcycle_count_maskが0000000000011b、compareが000000000000001b、bandwidth_takeが2000、channel_takeがチャネル０の要求周期資源をＩＲＭの周期資源レジスタ２に書き込むLockリクエストをＩＲＭである第４のノード１９４に送信し（ステップ１７０６）、第４のノード１９４はレジスタを書き換えて第２のノード１９２に完了応答を返し（ステップ１７０７）、完了応答を受信した第２のノード１９２はwork_phy_idに3FhをLockトランザクションで書き込んで（ステップ１７０８，１７０９，１７１０）、周期資源確保作業を終了する。
【００６８】
図２１に進み、第２のノード１９２の周期資源確保作業が終了した時点でＩＲＭのレジスタはステップ１８０１に示すようになっており、第２のノード１９２はアイソクロナスパケットの送信を開始する（ステップ１８０２）。確保した周期におけるバンド幅とチャネルにしたがって、cycle_countの下位２ビットが01bであるときに（ステップ１８０３）、バンド幅２０００とチャネル０でパケットを送信する（ステップ１８０４）。
【００６９】
このときのバス上の周期的な資源確保状況は図１２のようになり、第１のノード１９１は５００μｓｅｃ周期で８０１サイクルスタートパケットの後に８０２アイソクロナスパケットを送信し、第３のノード１９３は１ｍｓｅｃ周期で８０３アイソクロナスパケットを送信し、第２のノード１９２は第１のノード１９１とは位相がずれた５００μｓｅｃ周期で９０１アイソクロナスパケットを送信する。
【００７０】
このように、バス上にアイソクロナスパケットを送信しようとする各ノードがＩＲＭの周期資源管理ディレクトリ３０１を利用して周期的な資源を確保する構成をしているので、従来のBANDWIDTH_AVAILABLEレジスタ１９７でバンド幅を取得しようとすると、第１のノード１９１のバンド幅２０００と第２のノード１９２のバンド幅２０００と第２のノード１９２のバンド幅１０００の和は上限の4915を超えてしまい不可能であるが、本実施例の構成であれば重ならないサイクルでバンド幅を取得することが可能となり、第１のノード１９１と第２のノード１９２でチャネル０は共有され、図１２に示すような周期的な資源確保を実現することができる。
【実施例２】
【００７１】
本実施例は、従来のBANDWIDTH_AVAILABLEレジスタ１９７に周期資源管理ディレクトリ３０１で確保したバンド幅を反映させる手順を示す。本実施例のシリアルバス管理装置においては、上述の実施例１の図１４において周期資源管理レジスタ１０１ａを書き換えた第１のノード１９１は、BANDWIDTH_AVAILABLEレジスタ１９７も書き換える。
【００７２】
ここで、周期資源管理レジスタ１０１ａを書き換え前のBANDWIDTH_AVAILABLEレジスタ１９７の値は4915であり（ステップ１００３）、第１のノード１９１は周期資源管理レジスタ１０１ａを書き換えた後、4915から確保したバンド幅2000を引いた2915をBANDWIDTH_AVAILABLEレジスタ１９７にLockトランザクションで書き込む（ステップ１１０４）。
【００７３】
また、図１７において周期資源管理レジスタ１０１ｂを書き換えた第３のノード１９３は、周期資源管理レジスタ１０１ｂで確保した資源と第１のノード１９１が周期資源管理レジスタ１０１ａで確保した資源とにおいて重なるサイクルがあるので、BANDWIDTH_AVAILABLEレジスタ１９７も書き換えなければならない。
【００７４】
ここで、周期資源管理レジスタ１０１ｂの書き換え前のBANDWIDTH_AVAILABLEレジスタ１９７の値は2915であり（ステップ１３０２）、第３のノード１９３は周期資源管理レジスタ１０１ｂを書き換えた後、2915から確保したバンド幅1000を引いた1915をBANDWIDTH_AVAILABLEレジスタ１９７にLockトランザクションで書き込む（ステップ１４０４）。
【００７５】
すなわちこの時点で２つのノードの合計として、第１のノード１９１によって確保された資源と第３のノード１９３によって確保された資源がCYCLE_TIMEレジスタのcycle_countフィールドが０、８、１６、２４、・・・、８ｎ（ｎ＝０、１、２、・・・）で重なったときのバンド幅の和である3000をBANDWIDTH_AVAILABLEレジスタ１９７から引いたことになる。
【００７６】
さらに、図２０において周期資源管理レジスタ１０１ｃを書き換えた第２のノード１９２は、周期資源管理レジスタ１０１ｃで確保した資源と第１のノード１９１が周期資源管理レジスタ１０１ａで確保した資源とは重なるサイクルはなく、周期資源管理レジスタ１０１ｃで確保した資源と第３のノード１９３が周期資源管理レジスタ１０１ｂで確保した資源とは重なるサイクルはなく、第１のノード１９１と第３のノード１９３が確保したバンド幅の和である3000と第２のノード１９２が確保したバンド幅2000とを比較して、最大であるのは3000であるので、BANDWIDTH_AVAILABLEレジスタ１９７をさらに書き換えることはせず、BANDWIDTH_AVAILABLEレジスタ１９７は1915のままである。
【００７７】
このように、BANDWIDTH_AVAILABLEレジスタ１９７に関しては、周期資源管理ディレクトリ３０１で周期的に確保されたバンド幅について、重なるサイクルごとにバンド幅の和が求められ、バンド幅の和の中で最大となる値を引いた残りのバンド幅が表示されるので、周期資源管理ディレクトリ３０１で確保されたバンド幅を反映し、従来の方法でBANDWIDTH_AVAILABLEレジスタ１９７からバンド幅を取得する場合にも、BANDWIDTH_AVAILABLEレジスタ１９７は正しく現在取得可能な残りのバンド幅を表示することができる。
【００７８】
すなわち、本実施例のシリアルバス管理装置においては、BANDWIDTH_AVAILABLEレジスタ１９７には、書き込まれたバンド幅に基づき、周期資源管理ディレクトリ３０１で周期的に確保されたバンド幅について各アイソクロナス単位時間毎にバンド幅の和を求め、各バンド幅の和の中で最大となるバンド幅を初期のバンド幅から減算した残量が表示される。そのため、周期資源管理ディレクトリ３０１によって確保されたバンド幅も従来よりあるバンド幅確保状況を表すBANDWIDTH_AVAILABLEレジスタに反映することができ、従来のシリアスバス管理におけるバンド幅確保方法との互換性を保つことができる。
【実施例３】
【００７９】
本実施例は、従来のCHANNELS_AVAILABLEレジスタ１９８に周期資源管理ディレクトリ３０１で確保したチャネルを反映させる手順を示す。本実施例のシリアルバス管理装置においては、上述の実施例１の図１４において周期資源管理レジスタ１０１ａを書き換えた第１のノード１９１は、CHANNELS_AVAILABLEレジスタ１９８も書き換える。
【００８０】
ここで、周期資源管理レジスタ１０１ａの書き換え前のCHANNELS_AVAILABLEレジスタ１９８のchannels_available_hiフィールドの値はFFFFFFFEhであり（ステップ１００３）、第１のノード１９１は周期資源管理レジスタ１０１ａを書き換えた後、FFFFFFFEh から確保したチャネル０のビットを０にした7FFFFFFEhをCHANNELS_AVAILABLEレジスタ１９８のchannels_available_hiフィールドにLockトランザクションで書き込む（ステップ１１０４）。
【００８１】
また、図１７において周期資源管理レジスタ１０１ｂを書き換えた第３のノード１９３は、周期資源管理レジスタ１０１ｂで確保したチャネル１を確保したので、CHANNELS_AVAILABLEレジスタ１９８のchannels_available_hiフィールドの現在値のチャネル１のビットを０にした値3FFFFFFFhをCHANNELS_AVAILABLEレジスタ１９８のchannels_available_hiフィールドにLockトランザクションで書き込む（ステップ１４０４）。
【００８２】
すなわちこの時点で２つのノードの合計として、第１のノード１９１によって確保されたチャネル０のビットが１である80000000hと第３のノード１９３によって確保されたチャネル１のビットが１である40000000hとの論理和であるC0000000hで１となっているビットをCHANNELS_AVAILABLEレジスタ１９８のchannels_available_hiフィールドで０としたことになる。
【００８３】
さらに、図２０において周期資源管理レジスタ１０１ｃを書き換えた第２のノード１９２は、チャネル０を確保しており、CHANNELS_AVAILABLEレジスタ１９８のチャネル０のビットを０にするために80000000hの反転値7FFFFFFFhとCHANNELS_AVAILABLEレジスタ１９８のchannels_available_hiフィールドの現在値3FFFFFFFhとの論理積を求めて書き換えようとしても、チャネル０のビットは既に０なので結果は変わらずに、CHANNELS_AVAILABLEレジスタ１９８のchannels_available_hiフィールドの値は3FFFFFFFhのままである（ステップ１７０７）。
【００８４】
このように、CHANNELS_AVAILABLEレジスタ１９８は、周期資源管理ディレクトリ３０１で周期的に確保されたチャネルについて、確保されたチャネルのビットを１とした全channels_takeフィールドの値の論理和を求め、この論理和の値で１となっているビットを、CHANNELS_AVAILABLEレジスタ１９８で０にするために、論理和の値の反転値とCHANNELS_AVAILABLEレジスタ１９８の現在値との論理積を求めた結果を表示するような構成をしているので、周期資源管理ディレクトリ３０１で確保されたチャネルを反映し、従来の方法でCHANNELS_AVAILABLEレジスタ１９８からチャネルを取得する場合にも、CHANNELS_AVAILABLEレジスタ１９８は正しく現在取得可能な残りのチャネルを表示することができる。
【００８５】
すなわち、本実施例のシリアルバス管理装置においては、CHANNELS_AVAILABLEレジスタ１９８は、書き込まれたチャネルを表す値から、周期資源管理ディレクトリ３０１で周期的に確保されたチャネルの論理和を減算した残量が表示される。そのため、周期資源管理ディレクトリ３０１によって確保されたチャネル確保状況を従来よりあるチャネルレジスタであるCHANNELS_AVAILABLEレジスタ１９８に反映することができ、従来のシリアスバス管理のチャネル確保方法との互換性を保つことができる。
【産業上の利用可能性】
【００８６】
例えばＩＥＥＥ１３９４規格で定められたシリアルバスにてネットワーク接続された複数のノードによる共有資源利用の競合の管理において、シリアルバス上で大量のデータを送信する場合など、１２５μｓｅｃ毎の周期的な送信ではなく、５００μｓｅｃに一回というようにアイソクロナス単位時間を超えて周期的に資源を確保してアイソクロナス転送することができ、そして他のノードのために資源を空けることができ、複数のノードがアイソクロナス転送をアイソクロナス単位時間を超えた周期的にて確保することができる。
【図面の簡単な説明】
【００８７】
【図１】本発明のシリアルバス管理装置を含むシリアルバスネットワークの機器接続図である。
【図２】CYCLE_TIMEレジスタのビット割り振りを示すデータ構造図である。
【図３】BANDWIDTH_AVAILABLEレジスタのビット割り振りを示すデータ構造図である。
【図４】CHANNELS_AVAILABLEレジスタのビット割り振りを示すデータ構造図である。
【図５】周期資源管理レジスタの構成を示すデータ構造図である。
【図６】周期資源管理ディレクトリの構成を示すデータ構造図である。
【図７】周期資源管理ディレクトリの各レジスタの実際の状態の一例を示した図である。
【図８】図７の周期資源管理ディレクトリをテーブルとして表現したものである。
【図９】周期資源管理ディレクトリのバンド幅とチャネルの確保状況を示す図表である。
【図１０】第１のノードと第３のノードによる資源の周期的な確保状況を示すタイムチャートである。
【図１１】周期資源管理レジスタの構成を示すデータ構造図である。
【図１２】第１，第２及び第３のノードによる資源の周期的な確保状況を示すタイムチャートである。
【図１３】本発明のシリアルバス管理装置を含むシリアルバスネットワーク上の資源の管理動作を示すフローチャートその１である。
【図１４】同じくフローチャートその２である。
【図１５】同じくフローチャートその３である。
【図１６】同じくフローチャートその４である。
【図１７】同じくフローチャートその５である。
【図１８】同じくフローチャートその６である。
【図１９】同じくフローチャートその７である。
【図２０】同じくフローチャートその８である。
【図２１】同じくフローチャートその９である。
【図２２】従来のアイソクロナス転送機能を有するシリアルバスネットワークの機器接続図である。
【図２３】従来の第１のノードによる資源の周期的な確保状況を示すタイムチャートである。
【図２４】従来のシリアルバス管理装置でのバンド幅とチャネルの確保状況を示す図表である。
【図２５】従来の１２５μｓｅｃ周期で毎回送信しない場合の周期的な資源の確保状況を示すタイムチャートである。
【符号の説明】
【００８８】
１０１  周期資源管理レジスタ（周期資源管理表示手段）
１９１  第１のノード
１９２  第２のノード
１９３  第３のノード
１９４  第４のノード（シリアルバス管理装置）
１９５  ＩＥＥＥ１３９４シリアルバス
１９６  CYCLE_TIMEレジスタ
１９７  BANDWIDTH_AVAILABLEレジスタ（有効バンド幅レジスタ，有効バンド幅表示手段）
１９８  CHANNELS_AVAILABLEレジスタ（チャンネルレジスタ，手段チャンネル表示手段）３０１  周期資源管理ディレクトリ（周期資源管理表示手段）
【図１】
2005260726.tif 000003
【図２】
2005260726.tif 000004
【図３】
2005260726.tif 000005
【図４】
2005260726.tif 000006
【図５】
2005260726.tif 000007
【図６】
2005260726.tif 000008
【図７】
2005260726.tif 000009
【図８】
2005260726.tif 000010
【図９】
2005260726.tif 000011
【図１０】
2005260726.tif 000012
【図１１】
2005260726.tif 000013
【図１２】
2005260726.tif 000014
【図１３】
2005260726.tif 000015
【図１４】
2005260726.tif 000016
【図１５】
2005260726.tif 000017
【図１６】
2005260726.tif 000018
【図１７】
2005260726.tif 000019
【図１８】
2005260726.tif 000020
【図１９】
2005260726.tif 000021
【図２０】
2005260726.tif 000022
【図２１】
2005260726.tif 000023
【図２２】
2005260726.tif 000024
【図２３】
2005260726.tif 000025
【図２４】
2005260726.tif 000026
【図２５】
2005260726.tif 000027