(57)【特許請求の範囲】
【請求項１】
バスを介して互いに接続されてバスシステムを構成し互いに通信を行う複数の情報処理装置のうちの何れかの情報処理装置であって、
自己についての前記バスの使用権獲得間隔の最大許容値を記憶する最大許容値記憶手段と、
他の情報処理装置から各々の前記最大許容値を受信する最大許容値受信手段と、
自己および前記他の情報処理装置それぞれの前記最大許容値のうちの最小値を算出し、この算出された最小値を共通許容値とする共通許容値算出手段と、
自己および前記他の情報処理装置それぞれが所定期間内に前記バスを占有することができるバス帯域の最大値であるバス帯域最大値を、前記共通許容値に基づいて算出するバス帯域最大値算出手段と、
前記他の情報処理装置へ各々の前記バス帯域最大値を送信するバス帯域最大値送信手段と、
自己の前記バス帯域最大値に基づいて通信を制御する通信制御手段と、
を備えることを特徴とする情報処理装置。
【請求項２】
自己による前記バスの使用についての要求を示すバス帯域要求情報を記憶するバス帯域要求情報記憶手段と、
前記他の情報処理装置から各々の前記バス帯域要求情報を受信するバス帯域要求情報受信手段と、
を更に備え、
前記バス帯域最大値算出手段は、自己および前記他の情報処理装置それぞれの前記バス帯域最大値を、自己および前記他の情報処理装置それぞれの前記バス帯域要求情報ならびに前記共通許容値に基づいて算出する、
ことを特徴とする請求項１記載の情報処理装置。
【請求項３】
バスを介して互いに接続されてバスシステムを構成し互いに通信を行う複数の情報処理装置のうちの何れかの情報処理装置であって、
自己についての前記バスの使用権獲得間隔の最大許容値を記憶する最大許容値記憶手段と、
他の情報処理装置へ自己の前記最大許容値を送信する最大許容値送信手段と、
前記他の情報処理装置から、自己が所定期間内に前記バスを占有することができるバス帯域の最大値であるバス帯域最大値を受信するバス帯域最大値受信手段と、
自己の前記バス帯域最大値に基づいて通信を制御する通信制御手段と、
を備えることを特徴とする情報処理装置。
【請求項４】
自己による前記バスの使用についての要求を示すバス帯域要求情報を記憶するバス帯域要求情報記憶手段と、
前記他の情報処理装置へ自己の前記バス帯域要求情報を送信するバス帯域要求情報送信手段と、
を更に備えることを特徴とする請求項３記載の情報処理装置。
【請求項５】
前記バス帯域要求情報は、前記バスを占有できるバス帯域の要求値であるバス帯域要求値と、そのバス帯域要求値に対する要求レベルとを含む、ことを特徴とする請求項２または４に記載の情報処理装置。
【請求項６】
前記バスはＩＥＥＥ１３９４シリアルバスであり、
前記最大許容値はＩＥＥＥ１３９４シリアルバスにおけるアシンクロナスサブアクションを行う為に前記バスの使用権を獲得するまでに許容できる最大間隔を示す値であり、
前記所定期間はＩＥＥＥ１３９４シリアルバスにおけるフェアネスインターバルである、
ことを特徴とする請求項１または３に記載の情報処理装置。
【請求項７】
前記最大許容値および前記バス帯域最大値それぞれは前記アシンクロナスサブアクションの回数に関するものである、ことを特徴とする請求項６記載の情報処理装置。
【請求項８】
前記最大許容値および前記バス帯域最大値それぞれは前記アシンクロナスサブアクションの時間に関するものである、ことを特徴とする請求項６記載の情報処理装置。
【請求項９】
前記最大許容値および前記バス帯域最大値それぞれは前記アシンクロナスサブアクションのデータサイズに関するものである、ことを特徴とする請求項６記載の情報処理装置。
【請求項１０】
複数の情報処理装置がバスを介して互いに接続されて互いに通信を行うバスシステムであって、前記複数の情報処理装置のうち何れかが請求項１記載の情報処理装置であり、他の何れかが請求項３記載の情報処理装置である、ことを特徴とするバスシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、バスを介して互いに接続されてバスシステムを構成し互いに通信を行う複数の情報処理装置のうちの何れかの情報処理装置、および、このバスシステムに関するものである。
【０００２】
【従来の技術】
パーソナルコンピュータ、プリンタ、スキャナ、ハードディスクおよびデジタルビデオテープレコーダなどの情報処理装置（以下では情報処理装置を「ノード」と言うこともある。）をＩＥＥＥ１３９４シリアルバスで接続し、これらのノードの間でデジタルビデオデータや制御データ等をパケットとして送受信するバスシステムが考案されている（例えば特開平９−２７８１４号公報を参照）。
【０００３】
図１３は、ＩＥＥＥ１３９４シリアルバスに接続される複数の情報処理装置（ノード）１０ａ〜１０ｈで構成されるバスシステムの構成例を示す図である。各ノードにはバスコンフィギュレーションで決定されたノード識別番号ａ〜ｈが割り振られており、ノード識別番号が最も大きいノードがルートノードとなる。各ノードは、他ノードと通信を行うためにルートノードに対してバス要求を行う。ルートノードは、各ノードからのバス要求を調停して、何れか１つのノードに対してバス使用権を与える。そして、バス使用権を与えられたノードは、パケットを送信する。パケットには、アシンクロナスパケット、アクナリッジパケット、及びアイソクロナスパケットなどがある。これらのパケットについて図１４を参照して説明する。
【０００４】
図１４は、ＩＥＥＥ１３９４シリアルバスにおけるバスサイクル構造を示す図である。バスサイクルは、サイクル開始を示すために約１２５マイクロ秒毎に送信されるサイクルスタートパケットstart、サブアクションと呼ばれる１つのパケットを転送するプロセスとして定義されるアイソクロナスサブアクションSISOおよびアシンクロナスサブアクションSASYNC、ならびに、アイソクロナスギャップGISOおよびサブアクションギャップGSUBACTIONで構成される。アシンクロナスサブアクションSASYNCは、送信元ノードから送信されるアシンクロナスパケットASYNCに対する送信先ノードからのアクナリッジパケットACKを受信することによって、転送が正常に行われたか否かを把握することが保証される。一方、アイソクロナスサブアクションSISOは、アイソクロナスパケットISOを送信するために必要なバスバンド幅を予め確保し、アシンクロナスサブアクションSASYNCよりも優先してバスを獲得することができるので、リアルタイム性が保証される。
【０００５】
図１５は、アシンクロナスサブアクションSASYNCにおけるフェアネスインターバルを示す図である。なお、この図では、フェアネスインターバルを説明する上で必要がないアイソクロナスサブアクションSISOは省略されている。各ノードは、サブアクションギャップGSUBACTIONを検出すると、バス使用権を確保するためにバス要求を行い、ルートノードは、各ノードからのバス要求を調停する(アービトレーションフェーズarb）。バス使用権を与えられたノードは、バスコンフィギュレーションで決定された各ノードの識別番号を用いて、送信先ノードを指定したパケットを送信する(パケット送信フェーズdata）。パケットを受信した送信先ノードは、アクナリッジギャップGACKを経てアクナリッジパケットACKを送信する(アクナリッジフェーズack）。アシンクロナスサブアクションSASYNCを完了したノードは、バス要求を行う全てのノードに対するアシンクロナスサブアクションSASYNCを終了したことを示すアービトレーションリセットギャップGARB-RESETを検出するまでバス要求の出力を停止し、アービトレーションリセットギャップGARB-RESETを検出した場合にバス要求を再開する。この方式は、バス要求を行う各ノードに対してバス使用権を与える機会を公平にすることができることから、フェアネスアービトレーションと呼ばれている。２つのアービトレーションリセットギャップGARB-RESETの間隔はフェアネスインターバルと呼ばれる。
【０００６】
【発明が解決しようとする課題】
アシンクロナスサブアクションSASYNCは、転送が正常に行われたか否かを確実に把握することが可能であり、ＩＥＥＥ１３９４シリアルバスに接続されたノード間のコマンド/ステータスなどの制御情報、あるいはコード形式やビットマップ形式で表現された画像情報、など様々な情報を転送するために用いられる。しかし、フェアネスアービトレーションでは、バスシステムのパフォーマンスに対して与える影響の大小などに拘わらず、全てのノードに対してバス使用権を与える機会を公平に扱う。したがって、ＩＥＥＥ１３９４シリアルバスに接続されるノードに応じた最適なバスアービトレーション方式を用いることができず、バスシステムにおけるパフォーマンスを向上させることができない、という問題がある。
【０００７】
また、フェアネスアービトレーションでは、一旦バス使用権を獲得したノードが再びバス使用権を獲得するためには、全てのノードがバスを使用しないアイドルフェーズであるアービトレーションリセットギャップGARB-RESETを必要とする。したがって、バスを効率良く使用することができない、という問題がある。
【０００８】
上述した問題に対して、フェアネスアービトレーションを無視して各ノードがフェアネスインターバル内で勝手にアシンクロナスサブアクションSASYNCを行うとすれば、フェアネスアービトレーションに基づいて所定期間内にバス使用権を獲得できることを前提にしたシステムが破綻してしまう、という問題がある。
【０００９】
本発明は、上記問題点を解消する為になされたものであり、全てのノードそれぞれに対して所定期間内にバス使用権を与えることを保証するとともにバスシステムのパフォーマンスおよびバスの使用効率を向上させることが可能な情報処理装置およびバスシステムを提供することを目的とする。
【００１０】
【課題を解決するための手段】
本発明に係る第１の情報処理装置は、バスを介して互いに接続されてバスシステムを構成し互いに通信を行う複数の情報処理装置のうちの何れかの情報処理装置であって、(1) 自己についてのバスの使用権獲得間隔の最大許容値を記憶する最大許容値記憶手段と、(2) 他の情報処理装置から各々の最大許容値を受信する最大許容値受信手段と、(3) 自己および他の情報処理装置それぞれの最大許容値のうちの最小値を算出し、この算出された最小値を共通許容値とする共通許容値算出手段と、(4) 自己および他の情報処理装置それぞれが所定期間内にバスを占有することができるバス帯域の最大値であるバス帯域最大値を、共通許容値に基づいて算出するバス帯域最大値算出手段と、(5) 他の情報処理装置へ各々のバス帯域最大値を送信するバス帯域最大値送信手段と、(6) 自己のバス帯域最大値に基づいて通信を制御する通信制御手段と、を備えることを特徴とする。
【００１１】
この第１の情報処理装置によれば、最大許容値記憶手段により記憶された自己についてのバスの使用権獲得間隔の最大許容値、および、最大許容値受信手段により受信された他の情報処理装置それぞれの最大許容値に基づいて、共通許容値算出手段により、これら最大許容値のうちの最小値が算出され、この算出された最小値が共通許容値とされる。この共通許容値に基づいて、バス帯域最大値算出手段により、自己および他の情報処理装置それぞれが所定期間内にバスを占有することができるバス帯域の最大値であるバス帯域最大値が算出される。そして、バス帯域最大値送信手段により、他の情報処理装置へ各々のバス帯域最大値が送信される。また、通信制御手段により、自己のバス帯域最大値に基づいて通信が制御される。この第１の情報処理装置および他の情報処理装置それぞれは、各々のバス帯域最大値の範囲内で通信を行うことができる。
【００１２】
また、本発明に係る第１の情報処理装置は、(1) 自己によるバスの使用についての要求を示すバス帯域要求情報を記憶するバス帯域要求情報記憶手段と、(2) 他の情報処理装置から各々のバス帯域要求情報を受信するバス帯域要求情報受信手段と、を更に備え、(3) バス帯域最大値算出手段は、自己および他の情報処理装置それぞれのバス帯域最大値を、自己および他の情報処理装置それぞれのバス帯域要求情報ならびに共通許容値に基づいて算出する、ことを特徴とする。この場合には、自己によるバスの使用についての要求を示すバス帯域要求情報がバス帯域要求情報記憶手段により記憶され、他の情報処理装置から各々のバス帯域要求情報がバス帯域要求情報受信手段により受信される。そして、バス帯域最大値算出手段により、自己および他の情報処理装置それぞれのバス帯域最大値は、自己および他の情報処理装置それぞれのバス帯域要求情報ならびに共通許容値に基づいて算出される。
【００１３】
本発明に係る第２の情報処理装置は、バスを介して互いに接続されてバスシステムを構成し互いに通信を行う複数の情報処理装置のうちの何れかの情報処理装置であって、(1) 自己についてのバスの使用権獲得間隔の最大許容値を記憶する最大許容値記憶手段と、(2) 他の情報処理装置へ自己の最大許容値を送信する最大許容値送信手段と、(3) 他の情報処理装置から、自己が所定期間内にバスを占有することができるバス帯域の最大値であるバス帯域最大値を受信するバス帯域最大値受信手段と、(4) 自己のバス帯域最大値に基づいて通信を制御する通信制御手段と、を備えることを特徴とする。
【００１４】
この第２の情報処理装置によれば、自己についてのバスの使用権獲得間隔の最大許容値は、最大許容値記憶手段に記憶されており、最大許容値送信手段により他の情報処理装置（上記第１の情報処理装置）へ送信される。他の情報処理装置から、自己が所定期間内にバスを占有することができるバス帯域の最大値であるバス帯域最大値がバス帯域最大値受信手段により受信される。そして、通信制御手段により、自己のバス帯域最大値に基づいて通信が制御される。この第２の情報処理装置は、自己のバス帯域最大値の範囲内で通信を行うことができる。
【００１５】
また、本発明に係る第２の情報処理装置は、(1) 自己によるバスの使用についての要求を示すバス帯域要求情報を記憶するバス帯域要求情報記憶手段と、(2) 他の情報処理装置へ自己のバス帯域要求情報を送信するバス帯域要求情報送信手段と、を更に備えることを特徴とする。この場合には、自己によるバスの使用についての要求を示すバス帯域要求情報は、バス帯域要求情報記憶手段により記憶されており、バス帯域要求情報送信手段により他の情報処理装置へ送信される。
【００１６】
第１および第２の情報処理装置それぞれにおいて、バス帯域要求情報は、バスを占有できるバス帯域の要求値であるバス帯域要求値と、そのバス帯域要求値に対する要求レベルとを含む、ことを特徴とする。この場合には、バス帯域最大値算出手段により、バス帯域要求値および要求レベルに応じて各情報処理装置のバス帯域最大値が算出される。
【００１７】
第１および第２の情報処理装置それぞれにおいて、バスはＩＥＥＥ１３９４シリアルバスであり、最大許容値はＩＥＥＥ１３９４シリアルバスにおけるアシンクロナスサブアクションを行う為にバスの使用権を獲得するまでに許容できる最大間隔を示す値であり、所定期間はＩＥＥＥ１３９４シリアルバスにおけるフェアネスインターバルである、ことを特徴とする。また、第１および第２の情報処理装置それぞれにおいて、最大許容値およびバス帯域最大値それぞれは、アシンクロナスサブアクションの回数に関するものであってもよいし、アシンクロナスサブアクションの時間に関するものであってもよいし、また、アシンクロナスサブアクションのデータサイズに関するものであってもよい。
【００１８】
本発明に係るバスシステムは、複数の情報処理装置がバスを介して互いに接続されて互いに通信を行うバスシステムであって、上記複数の情報処理装置のうち何れかが上記第１の情報処理装置であり、他の何れかが上記第２の情報処理装置である、ことを特徴とする。このバスシステムによれば、第１および第２の情報処理装置それぞれは、自己のバス帯域最大値の範囲内で通信を行うことができる。したがって、バスシステムのパフォーマンスおよびバスの使用効率が向上する。
【００１９】
【発明の実施の形態】
以下、添付図面を参照して本発明の実施の形態を詳細に説明する。なお、図面の説明において同一の要素には同一の符号を付し、重複する説明を省略する。
【００２０】
（第１の実施形態）
先ず、本発明に係る情報処理装置およびバスシステムの第１の実施形態について説明する。図１は、第１の実施形態に係る情報処理装置およびバスシステムの概略構成を示すブロック図である。本実施形態に係るバスシステムは、複数のノード１０ａ〜１０ｈがＩＥＥＥ１３９４シリアルバス２０を介して相互接続されてＩＥＥＥ１３９４バスシステム１を構成している。また、本実施形態に係る情報処理装置（ノード）１０ａは、ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、１３９４インターフェース部１４および内部バス１５を備える。
【００２１】
ＣＰＵ１１は、ノード１０ａの全体を制御する中央処理装置であり、ＲＡＭ１３を用いて、ＲＯＭ１２に記憶されたプログラムに従って命令を実行する。ＲＯＭ１２は、ＣＰＵ１１がノード１０ａを制御するために必要なプログラムと、１３９４インターフェース部１４を介してＩＥＥＥ１３９４シリアルバス２０に接続された他のノード１０ｂ〜１０ｈとの間で通信を行うために必要な装置固有の識別情報などの情報を記憶する。ＲＡＭ１３は、ＣＰＵ１１がノード１０ａを制御する際のワークメモリとして用いられ、また、１３９４インターフェース部１４を介して送受信されるデータを格納する通信データメモリとしても用いられる。１３９４インターフェース部１４は、ノード１０ａにおける通信手段であり、ＩＥＥＥ１３９４シリアルバス２０に接続される他のノード１０ｂ〜１０ｈとの間のデータ通信を制御する。内部バス１５は、ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３および１３９４インターフェース部１４を相互に接続する。
【００２２】
図２は、第１の実施形態に係る情報処理装置１０ａの１３９４インターフェース部１４の構成を示すブロック図である。本実施形態に係る情報処理装置（ノード）１０ａは、以下に説明するように、ＩＥＥＥ１３９４シリアルバス２０に接続されたノード１０ａ〜１０ｈそれぞれがアシンクロナスサブアクションを行う場合に使用できるバス帯域最大値を算出する管理ノードとして機能することができるように構成されるとともに、他のノード１０ｂ〜１０ｈのうちの何れかが管理ノードとなる場合に非管理ノードとして機能することができるように構成される。なお、図２では、本実施形態を説明する上で必要となる構成要素以外の構成要素を省略している。
【００２３】
本実施形態に係る情報処理装置（ノード）１０ａの１３９４インターフェース部１４は、最大許容値記憶手段１４０、最大許容値通信手段１４１、共通許容値算出手段１４２、バス帯域要求情報記憶手段１４３、バス帯域要求情報通信手段１４４、バス帯域最大値算出手段１４５、バス帯域最大値通信手段１４６、通信制御手段１４７、１３９４インターフェース第１内部バス１４８および１３９４インターフェース第２内部バス１４９を備える。
【００２４】
最大許容値記憶手段１４０は、内部バス１５との間のインターフェースに使用される１３９４インターフェース第１内部バス１４８に接続されている。最大許容値記憶手段１４０は、アシンクロナスサブアクションを用いて通信を行う場合にノード１０ａがバス使用権を獲得するまでに許容できる最大間隔を、ＣＰＵ１１から内部バス１５および１３９４インターフェース第１内部バス１４８を介して受け取り、この最大間隔を最大許容値として記憶する。
【００２５】
最大許容値通信手段１４１は、ＩＥＥＥ１３９４シリアルバス２０との間のインターフェースに使用される１３９４インターフェース第２内部バス１４９に接続されている。最大許容値通信手段１４１は、１３９４インターフェース第２内部バス１４９およびＩＥＥＥ１３９４シリアルバス２０を介して、他のノード１０ｂ〜１０ｈとの間で最大許容値を通信する。ノード１０ａが管理ノードとして機能する場合には、最大許容値通信手段１４１は、他のノード１０ｂ〜１０ｈから各々の最大許容値を受信する。また、ノード１０ａが非管理ノードとして機能する場合には、最大許容値通信手段１４１は、最大許容値記憶手段１４０に記憶されたノード１０ａの最大許容値を他のノード１０ｂ〜１０ｈに送信する。
【００２６】
共通許容値算出手段１４２は、ノード１０ａが管理ノードとして機能する場合に、ＩＥＥＥ１３９４シリアルバス２０に接続された全てのノード１０ａ〜１０ｈそれぞれがバス使用権を獲得するまでに許容できる最大間隔を決定する。すなわち、共通許容値算出手段１４２は、最大許容値記憶手段１４０に記憶されたノード１０ａの最大許容値および最大許容値通信手段１４１により受信された他のノード１０ｂ〜１０ｈそれぞれの最大許容値のうちから最小値を算出し、この最小値を共通許容値としてバス帯域最大値算出手段１４５に通知する。
【００２７】
バス帯域要求情報記憶手段１４３は、内部バス１５との間のインターフェースに使用される１３９４インターフェース第１内部バス１４８に接続されている。バス帯域要求情報記憶手段１４３は、ノード１０ａがアシンクロナスサブアクションを用いて通信を行うために必要なバス帯域値とこのバス帯域値に対する要求レベルとで構成されるバス帯域要求情報を、ＣＰＵ１１から内部バス１５および１３９４インターフェース第１内部バス１４８を介して受け取り、このバス帯域要求情報を記憶する。
【００２８】
バス帯域要求情報通信手段１４４は、ＩＥＥＥ１３９４シリアルバス２０との間のインターフェースに使用される１３９４インターフェース第２内部バス１４９に接続されている。バス帯域要求情報通信手段１４４は、１３９４インターフェース第２内部バス１４９およびＩＥＥＥ１３９４シリアルバス２０を介して、他のノード１０ｂ〜１０ｈとの間でバス帯域要求情報を通信する。ノード１０ａが管理ノードとして機能する場合には、バス帯域要求情報通信手段１４４は、他のノード１０ｂ〜１０ｈから各々のバス帯域要求情報を受信する。また、ノード１０ａが非管理ノードとして機能する場合には、バス帯域要求情報通信手段１４４は、バス帯域要求情報記憶手段１４３に記憶されたノード１０ａのバス帯域要求情報を他のノード１０ｂ〜１０ｈに送信する。
【００２９】
バス帯域最大値算出手段１４５は、ノード１０ａが管理ノードとして機能する場合に、バス帯域要求情報記憶手段１４３に記憶されたノード１０ａのバス帯域要求情報と、バス帯域要求情報通信手段１４４により受信された他のノード１０ｂ〜１０ｈそれぞれのバス帯域要求情報と、共通許容値算出手段１４２により算出された共通許容値とに基づいて、ＩＥＥＥ１３９４シリアルバス２０に接続されたノード１０ａ〜１０ｈそれぞれがアシンクロナスサブアクションを用いて通信を行う場合に使用することが可能なバス帯域の最大値であるバス帯域最大値を算出する。
【００３０】
バス帯域最大値通信手段１４６は、１３９４インターフェース第２内部バス１４９およびＩＥＥＥ１３９４シリアルバス２０を介して、他のノード１０ｂ〜１０ｈとの間でバス帯域最大値を通信する。ノード１０ａが管理ノードとして機能する場合には、バス帯域最大値通信手段１４６は、バス帯域最大値算出手段１４５により算出された他のノード１０ｂ〜１０ｈそれぞれのバス帯域最大値を送信する。また、ノード１０ａが非管理ノードとして機能する場合には、バス帯域最大値通信手段１４６は、他のノード１０ｂ〜１０ｈのうちの何れかで算出されたノード１０ａのバス帯域最大値を受信する。
【００３１】
通信制御手段１４７は、アシンクロナスサブアクションを制御する。ノード１０ａが管理ノードとして機能する場合には、通信制御手段１４７は、バス帯域最大値算出手段１４５により算出されたノード１０ａのバス帯域最大値に基づいてアシンクロナスサブアクションを制御する。ノード１０ａが非管理ノードとして機能する場合には、通信制御手段１４７は、バス帯域最大値通信手段１４６により受信されたノード１０ａのバス帯域最大値に基づいてアシンクロナスサブアクションを制御する。
【００３２】
ノード１０ａが管理ノードとして機能する場合には以下のように動作する。すなわち、最大許容値記憶手段１４０は、アシンクロナスサブアクションを用いて通信を行う場合にノード１０ａがバス使用権を獲得するまでに許容できる最大間隔を最大許容値として記憶する。また、最大許容値通信手段１４１は、他のノード１０ｂ〜１０ｈから各々の最大許容値を受信する。そして、共通許容値算出手段１４２は、最大許容値記憶手段１４０に記憶されたノード１０ａの最大許容値および最大許容値通信手段１４１により受信された他のノード１０ｂ〜１０ｈそれぞれの最大許容値のうちから最小値を算出し、この最小値を共通許容値としてバス帯域最大値算出手段１４５に通知する。
【００３３】
バス帯域要求情報記憶手段１４３は、ノード１０ａがアシンクロナスサブアクションを用いて通信を行うために必要なバス帯域値とこのバス帯域値に対する要求レベルとで構成されるバス帯域要求情報を記憶する。また、バス帯域要求情報通信手段１４４は、他のノード１０ｂ〜１０ｈから各々のバス帯域要求情報を受信する。そして、バス帯域最大値算出手段１４５は、バス帯域要求情報記憶手段１４３に記憶されたノード１０ａのバス帯域要求情報と、バス帯域要求情報通信手段１４４により受信された他のノード１０ｂ〜１０ｈそれぞれのバス帯域要求情報と、共通許容値算出手段１４２により算出された共通許容値とに基づいて、ＩＥＥＥ１３９４シリアルバス２０に接続されたノード１０ａ〜１０ｈそれぞれがアシンクロナスサブアクションを用いて通信を行う場合に使用することが可能なバス帯域の最大値であるバス帯域最大値を算出する。
【００３４】
バス帯域最大値通信手段１４６は、バス帯域最大値算出手段１４５により算出された他のノード１０ｂ〜１０ｈそれぞれのバス帯域最大値を送信する。これら他のノード１０ｂ〜１０ｈそれぞれの通信制御手段は、ノード１０ａから送信されたバス帯域最大値に基づいてアシンクロナスサブアクションを制御する。ノード１０ａの通信制御手段１４７は、バス帯域最大値算出手段１４５により算出されたノード１０ａのバス帯域最大値に基づいてアシンクロナスサブアクションを制御する。
【００３５】
一方、ノード１０ａが非管理ノードとして機能する場合には以下のように動作する。すなわち、最大許容値記憶手段１４０は、アシンクロナスサブアクションを用いて通信を行う場合にノード１０ａがバス使用権を獲得するまでに許容できる最大間隔を最大許容値として記憶する。そして、最大許容値通信手段１４１は、最大許容値記憶手段１４０に記憶されたノード１０ａの最大許容値を他のノード１０ｂ〜１０ｈのうち何れかの管理ノードに送信する。
【００３６】
また、バス帯域要求情報記憶手段１４３は、ノード１０ａがアシンクロナスサブアクションを用いて通信を行うために必要なバス帯域値とこのバス帯域値に対する要求レベルとで構成されるバス帯域要求情報を記憶する。そして、バス帯域要求情報通信手段１４４は、バス帯域要求情報記憶手段１４３に記憶されたノード１０ａのバス帯域要求情報を管理ノードに送信する。
【００３７】
バス帯域最大値通信手段１４６は、管理ノードで算出されたノード１０ａのバス帯域最大値を受信する。そして、通信制御手段１４７は、バス帯域最大値通信手段１４６により受信されたノード１０ａのバス帯域最大値に基づいてアシンクロナスサブアクションを制御する。
【００３８】
次に、第１の実施形態における最大許容値について説明する。図３は、第１の実施形態に係る情報処理装置１０ａの最大許容値記憶手段１４０が記憶する最大許容値を説明する図である。本実施形態では、アシンクロナスサブアクションを用いて通信を行う場合に情報処理装置（ノード）１０ａがバス使用権を獲得するまでの最大許容値は、フェアネスインターバル＃ｎにおいて他のノード１０ｂ〜１０ｈの何れよりも早くバス使用権を獲得してアシンクロナスサブアクションSa1を行ってから、フェアネスインターバル＃ｎ＋１で他のノード１０ｂ〜１０ｈの何れよりも遅くバス使用権を獲得してアシンクロナスサブアクションSa2を行うまでの許容できる間隔（アシンクロナスサブアクションの回数）を意味している。
【００３９】
最大許容値記憶手段１４０は、アシンクロナスサブアクションSa1とSa2との間において他のノード１０ｂ〜１０ｈそれぞれが最大データサイズのパケットをアシンクロナスサブアクションを用いて通信することを仮定して得られたアシンクロナスサブアクション数ｍを最大許容値Ｍとして記憶する。ノード１０ａがバス使用権を獲得するまでに許容できる最大間隔が最大許容値Ｍであるときのフェアネスインターバル内におけるアシンクロナスサブアクション数の最大値NFAIRNESSは、最大許容値Ｍを用いて、
NFAIRNESS＝(Ｍ＋２)／２    …(1)
で表される。したがって、フェアネスインターバル内におけるアシンクロナスサブアクション数が最大値NFAIRNESSよりも小さい場合には、ノード１０ａは、許容できる間隔でバス使用権を獲得することができる。
【００４０】
次に、第１の実施形態におけるバス帯域最大値の算出手順を説明する。図４および図５は、第１の実施形態に係る情報処理装置１０ａのバス帯域最大値算出手段１４５がバス帯域最大値を算出する手順を示すフローチャートである。ここでは、各ノード１０ａ〜１０ｈそれぞれがフェアネスインターバル内で行うことができるアシンクロナスサブアクション数の最大値をバス帯域最大値としている。なお、前述したようにノード１０ａは図２に示した構成によって管理ノードとしても非管理ノードとしても機能することが可能であるが、以下ではノード１０ａが管理ノードであるものとして、ノード１０ａが各ノード１０ａ〜１０ｈそれぞれのバス帯域最大値を算出する手順を説明する。また、各ノード１０ａ〜１０ｈそれぞれは最低限必要となるバス帯域を確保できるものとして説明する。
【００４１】
初めに、ステップＳ１では、ノード１０ａ〜１０ｈそれぞれのノード識別番号のうち最大ノード識別番号MAX_NODEをルートノード識別番号とする。共通許容値MMINの値を無限大として初期化する。また、バス帯域割り当て合計値NTOTAL、ノード識別番号を示す変数ｉおよびノード数を示す変数ｊそれぞれの値を０として初期化する。
【００４２】
ステップＳ２では、ノード１０ａの最大許容値記憶手段１４０による記憶または他のノード１０ｂ〜１０ｈそれぞれとの間の通信により、ノード識別番号ｉのノード（以下では「ノードｉ」と言う。）における最大許容値M[i]を取得する。そして、この最大許容値M[i]および共通許容値MMINのうち小さい値を算出し、この値を新たに共通許容値MMINとする。さらに、ステップＳ３では、ノード１０ａのバス帯域要求情報記憶手段１４３による記憶または他のノード１０ｂ〜１０ｈとの間の通信により、ノードｉのバス帯域要求値NREQ[i]と要求レベルLevelREQ[i]とを含むバス帯域要求情報を取得する。
【００４３】
そして、ステップＳ４では、取得したノードｉの要求レベルLevelREQ[i]が最も高い要求レベルの値LEVEL_HIGHであるか否かを判定する。要求レベルLevelREQ[i]が最高要求レベル値LEVEL_HIGHである場合には、ステップＳ５で、その要求にしたがってバス帯域を割り当てるためにノードｉのバス帯域最大値NMAX[i]をバス帯域要求値NREQ[i]とする。バス帯域割り当て合計値NTOTALにバス帯域最大値NMAX[i]を累積加算する。また、バス帯域の割り当てが終了したことを示すためにノードｉの要求レベルLevelREQ[i]を最高要求レベル値LEVEL_HIGHから最低要求レベル値LEVEL_LOWに変更する。その後、ステップＳ９に進む。
【００４４】
ノードｉの要求レベルLevelREQ[i]が最高要求レベル値LEVEL_HIGHではない場合には、ステップＳ６で、要求レベルLevelREQ[i]が通常要求レベル値LEVEL_NORMALであるか否かを判定する。要求レベルLevelREQ[i]が通常要求レベル値LEVEL_NORMALである場合には、ステップＳ７で、変数ｊの値をカウントアップし、ステップＳ８で、ノードｉのバス帯域最大値NMAX[i]を標準値１とし、バス帯域割り当て合計値NTOTALにバス帯域最大値NMAX[i]を累積加算する。その後、ステップＳ９に進む。
【００４５】
ノードｉの要求レベルLevelREQ[i]が通常要求レベル値LEVEL_NORMALではない場合、即ち最低要求レベル値LEVEL_LOWである場合には、変数ｊの値をカウントアップすることなく、ステップＳ８で、ノードｉのバス帯域最大値NMAX[i]を標準値１とし、バス帯域割り当て合計値NTOTALにバス帯域最大値NMAX[i]を累積加算する。その後、ステップＳ９に進む。
【００４６】
そして、ステップＳ５またはステップＳ８の後、ステップＳ９では、ノード識別番号を示す変数ｉの値と最大ノード識別番号MAX_NODEとを比較して、全てのノードに対する処理が終了したか否かを判定する。もし、全てのノードに対する処理が終了していない場合には、ステップＳ１０で変数ｉの値をカウントアップして、ステップＳ２に戻る。一方、全てのノードに対する処理が終了している場合には、ステップＳ１１に進む。
【００４７】
ステップＳ１１では、全てのノード１０ａ〜１０ｈがバス使用権を獲得するまでに許容できるフェアネスインターバル内におけるアシンクロナスサブアクション数の最大値NFAIRNESSを、共通許容値MMINに基づいて上記(1)式に従って算出する。このアシンクロナスサブアクション数の最大値NFAIRNESSからバス帯域割り当て合計値NTOTALを減じて、バス帯域最大値NMAX[i]として未だ割り当てられていない残バス帯域値Nを算出する。また、変数ｉの値を再び０として初期化する。
【００４８】
ステップＳ１２では、バス帯域最大値NMAX[i]として未だ割り当てられていない残バス帯域が有るか否か、すなわち、残バス帯域値Nが値０より大きいか否かを判定する。残バス帯域値Nが0以下である場合には、バス帯域を割り当てる処理を終了する。残バス帯域値Nが１以上である場合には、ステップＳ１３で、要求レベルLevelREQ[i]が通常要求レベル値LEVEL_NORMALであるノードが残っているか否かを判定するために、変数jの値を参照する。変数ｊが値０以下であって要求レベルLevelREQ[i]が通常要求レベル値LEVEL_NORMALであるノードが残っていない場合には、バス帯域を割り当てる処理を終了する。
【００４９】
変数ｊの値が１以上であって要求レベルLevelREQ[i]が通常要求レベル値LEVEL_NORMALであるノードが残っている場合には、ステップＳ１４で、ノードｉの要求レベルLevelREQ[i]の値を判定する。ノードｉの要求レベルLevelREQ[i]が通常要求レベル値LEVEL_NORMALではない場合には、ステップＳ１８で、全てのノードに対する処理が終了したか否かを判定する。
【００５０】
ノードｉの要求レベルLevelREQ[i]が通常要求レベル値LEVEL_NORMALである場合には、ステップＳ１５で、未だ割り当てられていない残バス帯域値Nの中からバス帯域を割り当てるためにノードｉのバス帯域最大値NMAX[i]に値１を加え、残バス帯域値Nから値１を減じる。ステップＳ１６では、ノードｉのバス帯域最大値NMAX[i]とバス帯域要求値NREQ[i]とを比較して、ノードｉに割り当てられたバス帯域が要求されたバス帯域と等しいか否かを判定する。
【００５１】
ノードｉのバス帯域最大値NMAX[i]とバス帯域要求値NREQ[i]とが等しくない場合には、ステップＳ１８で、全てのノードに対する処理が終了したか否かを判定する。ノードｉのバス帯域最大値NMAX[i]とバス帯域要求値NREQ[i]とが等しい場合には、ステップＳ１７で、変数ｊの値から値１を減じるとともに、ノードｉの要求レベルLevelREQ[i]を通常要求レベル値LEVEL_NORMALから最低要求レベル値LEVEL_LOWに変更し、その後にステップＳ１８で、全てのノードに対する処理が終了したか否かを判定する。
【００５２】
ステップＳ１８で全てのノードに対する処理が終了していない場合には、ステップＳ１９で変数ｉの値をカウントアップして、ステップＳ１２に戻る。全てのノードに対する処理が終了している場合には、変数ｉの値を０として初期化してステップＳ１２に戻る。
【００５３】
次に、第１の実施形態におけるバス帯域最大値の算出の例を説明する。図６は、第１の実施形態に係る情報処理装置１０ａのバス帯域最大値算出手段１４５によるバス帯域最大値の算出の例を示す図表である。この図表には、各ノードｉ（ｉ＝ａ〜ｈ）それぞれについて、そのノードｉの最大許容値M[i]、ノードｉのバス帯域要求情報である要求レベルLevelREQ[i]およびバス帯域要求値NREQ[i]、ならびに、図４および図５のフローチャートで説明した手順により算出されたノードｉのバス帯域最大値NMAX[i]が示されている。
【００５４】
ノード１０ｇおよび１０ｈそれぞれは、所定期間内にバス使用権を獲得して所定回数のアシンクロナスサブアクションを行う必要があるために、要求レベルLevelREQ[i]を最高要求レベル値LEVEL_HIGHとしており、バス帯域要求値NREQ[i]と等しいバス帯域最大値NMAX[i]が与えられる。ノード１０ｂ〜１０ｆそれぞれは、フェアネスインターバル内で１回のアシンクロナスサブアクションを行うために、要求レベルLevelREQ[i]を最低要求レベル値LEVEL_LOWとしており、バス帯域最大値NMAX[i]として標準値1が与えられる。
【００５５】
ノード１０ａは、フェアネスインターバル内でのアシンクロナスサブアクション数がＩＥＥＥ１３９４バスシステム１のパフォーマンスに対して大きく影響するノードである。そこで、ノード１０ａがフェアネスインターバル内でより多くのアシンクロナスサブアクションを行ってＩＥＥＥ１３９４バスシステム１のパフォーマンスを向上させるために、ノード１０ａは、要求レベルLevelREQ[a]を通常要求レベル値LEVEL_NORMALとしており、値1以上であってバス帯域要求値NREQ[a]以下の範囲でバス帯域最大値NMAX[a]が与えられる。
【００５６】
次に、第１の実施形態におけるパケット通信の例を説明する。図７は、第１の実施形態に係る情報処理装置１０ａにおけるバス帯域最大値に基づくアシンクロナスサブアクションの通信制御によって行われるパケット通信を説明する図である。この図は、図６で示した状況においてＩＥＥＥ１３９４シリアルバス２０に送信されるパケットの様子を示している。フェアネスインターバル＃ｎ〜＃ｎ＋１でノード１０ａ〜１０ｈそれぞれはバス使用権を得てアシンクロナスサブアクションSa〜Shによる通信を行っている。
【００５７】
アービトレーションリセットギャップGARB-RESETが発生して、フェアネスインターバル＃ｎが開始されると、ノード１０ａは、バス要求を行い、バス使用権を獲得してアシンクロナスサブアクションSa0を行う。ノード１０ａは、要求レベルLevelREQ[a]を通常要求レベル値LEVEL_NORMALとしてバス帯域最大値NMAX[a]を獲得しており、次のアービトレーションリセットギャップGARB-RESETが発生することを待たずにアシンクロナスサブアクションSa1〜Sa2を行う。同様にして、ノード１０ａは、フェアネスインターバル＃ｎ＋１で発生したバス要求に対して、与えられたバス帯域最大値NMAX[a]の範囲で複数回のアシンクロナスサブアクションSa3〜Sa6を行う。他のノード１０ｂ〜１０ｈそれぞれについても同様であり、ノード１０ｂ〜１０ｆそれぞれはバス帯域最大値NMAX[a]＝１の範囲で、ノード１０ｇおよび１０ｈそれぞれはバス帯域最大値NREQ[g]とNREQ[h]の範囲で、アシンクロナスサブアクションSb〜Shを行う。
【００５８】
以上のように、本実施形態では、アシンクロナスサブアクション数に基づいてアシンクロナスサブアクションによる通信制御を行うことにより、全てのノードに対して所定期間内にバス使用権を与えることを保証することができるだけでなく、システムのパフォーマンスに与える影響が大きいノードに対して優先的にバス使用権を与えることによって、ＩＥＥＥ１３９４バスシステム１のパフォーマンスおよびＩＥＥＥ１３９４シリアルバス２０の使用効率を向上させることができる。
【００５９】
なお、本実施形態において、アシンクロナスサブアクションを用いて通信を行う場合に情報処理装置がバス使用権を獲得するまでに許容できる最大間隔を他のノード１０ｂ〜１０ｈそれぞれのアシンクロナスサブアクションが連続して行われる最大のアシンクロナスサブアクション数として、フェアネスインターバル内におけるアシンクロナスサブアクション数の最大値NFAIRNESSを算出しているが、予め記憶された最大値NFAIRNESSに基づいてバス帯域最大値を算出してアシンクロナスサブアクションによる通信制御を行っても構わない。
【００６０】
また、本実施形態においてバス帯域要求情報は、要求レベルLevelREQ[i]とバス帯域要求値NREQ[i]とで構成されているが、バス帯域最大値NMAX[i]を算出するために必要となる如何なる情報で構成されても構わない。例えば、バス帯域要求情報は、要求レベル無しでバス帯域最大値のみで構成されてもよいし、また、バス帯域要求値として最小値と最大値とを含むもので構成されてもよい。
【００６１】
（第２の実施形態）
次に、本発明に係る情報処理装置およびバスシステムの第２の実施形態について説明する。第２の実施形態に係る情報処理装置およびバスシステムそれぞれの概略構成は、第１の実施形態において図１および図２を用いて説明したものと略同様である。ただし、第２の実施形態における最大許容値およびバス帯域最大値は、第１の実施形態の場合とは異なる。
【００６２】
図８は、第２の実施形態に係る情報処理装置１０ａの最大許容値記憶手段１４０が記憶する最大許容値を説明する図である。本実施形態では、アシンクロナスサブアクションを用いて通信を行う場合に情報処理装置（ノード）１０ａがバス使用権を獲得するまでの最大許容値は、フェアネスインターバル＃ｎにおいて他のノード１０ｂ〜１０ｈの何れよりも早くバス使用権を獲得してアシンクロナスサブアクションSa1を行ってから、フェアネスインターバル＃ｎ＋１で他のノード１０ｂ〜１０ｈの何れよりも遅くバス使用権を獲得してアシンクロナスサブアクションSa2を行うまでの許容できる間隔（アシンクロナスサブアクションの時間）を意味している。
【００６３】
最大許容値記憶手段１４０は、アシンクロナスサブアクションSa1とSa2との間の時間を最大許容値Ｐとして記憶する。ノード１０ａがバス使用権を獲得するまでに許容できる最大間隔が最大許容値Ｐであるときのフェアネスインターバル時間の最大値TFAIRNESSは、ノード１０ａのアシンクロナスサブアクションSa2に要する時間αを用いて、
TFAIRNESS＝(Ｐ＋α)／２    …(2)
なる式で表される。したがって、フェアネスインターバル時間が最大値TFAIRNESSよりも小さい場合には、ノード１０ａは、許容できる間隔でバス使用権を獲得することができる。
【００６４】
次に、第２の実施形態におけるバス帯域最大値の算出手順を説明する。図９および図１０は、第２の実施形態に係る情報処理装置１０ａのバス帯域最大値算出手段１４５がバス帯域最大値を算出する手順を示すフローチャートである。ここでは、各ノード１０ａ〜１０ｈそれぞれがフェアネスインターバル内でアシンクロナスサブアクションに対してＩＥＥＥ１３９４シリアルバス２０を占有することができるバス占有時間の最大値をバス帯域最大値としている。なお、前述したようにノード１０ａは図２に示した構成によって管理ノードとしても非管理ノードとしても機能することが可能であるが、以下ではノード１０ａが管理ノードであるものとして、ノード１０ａが各ノード１０ａ〜１０ｈそれぞれのバス帯域最大値を算出する手順を説明する。
【００６５】
初めに、ステップＳ３１では、ノード１０ａ〜１０ｈそれぞれのノード識別番号のうち最大ノード識別番号MAX_NODEをルートノード識別番号とする。共通許容値PMINの値を無限大として初期化する。また、バス帯域割り当て合計値TTOTAL、ノード識別番号を示す変数ｉおよびノード数を示す変数jそれぞれの値を０として初期化する。
【００６６】
ステップＳ３２では、ノード１０ａの最大許容値記憶手段１４０による記憶または他のノード１０ｂ〜１０ｈそれぞれとの間の通信により、ノード識別番号ｉのノード（以下では「ノードｉ」と言う。）における最大許容値P[i]を取得する。そして、最大許容値P[i]および共通許容値PMINのうち小さい値を算出し、この値を新たに共通許容値PMINとする。さらに、ステップＳ３３では、ノード１０ａのバス帯域要求情報記憶手段１４３による記憶または他のノード１０ｂ〜１０ｈそれぞれとの間の通信により、ノードｉのバス帯域要求値TREQ[i]と要求レベルLevelREQ[i]とを含むバス帯域要求情報を取得する。
【００６７】
そして、ステップＳ３４では、取得したノードｉの要求レベルLevelREQ[i]が最も高い要求レベルの値LEVEL_HIGHであるか否かを判定する。要求レベルLevelREQ[i]が最高要求レベル値LEVEL_HIGHである場合には、ステップＳ３５で、その要求にしたがってバス帯域を割り当てるためにノードｉのバス帯域最大値TMAX[i]をバス帯域要求値TREQ[i]とする。バス帯域割り当て合計値TTOTALにバス帯域最大値TMAX[i]を累積加算する。また、バス帯域の割り当てが終了したことを示すためにノードｉの要求レベルLevelREQ[i]を最高レベル要求値LEVEL_HIGHから最低要求レベル値LEVEL_LOWに変更する。その後、ステップＳ３９に進む。
【００６８】
ノードｉの要求レベルLevelREQ[i]が最高要求レベル値LEVEL_HIGHではない場合には、ステップＳ３６で、要求レベルLevelREQ[i]が通常要求レベル値LEVEL_NORMALであるか否かを判定する。要求レベルLevelREQ[i]が通常要求レベル値LEVEL_NORMALである場合には、ステップＳ３７で、変数jの値をカウントアップし、ステップＳ３８で、ノードｉもバス帯域最大値TMAX[i]をバスシステムによって予め定められるバス帯域初期設定値とし、バス帯域割り当て合計値TTOTALにバス帯域最大値TMAX[i]を累積加算する。その後、ステップＳ３９に進む。
【００６９】
ノードｉの要求レベルLevelREQ[i]が通常要求レベル値LEVEL_NORMALではない場合、即ち最低要求レベル値LEVEL_LOWである場合には、変数ｊの値をカウントアップすることなく、ステップＳ３８で、ノードｉのバス帯域最大値TMAX[i]をバス帯域初期設定値とし、バス帯域割り当て合計値TTOTALにバス帯域最大値TMAX[i]を累積加算する。その後、ステップＳ３９に進む。
【００７０】
そして、ステップＳ３５またはステップＳ３８の後、ステップＳ３９では、ノード識別番号を示す変数ｉの値と最大ノード識別番号MAX_NODEとを比較して、全てのノードに対する処理が終了したか否かを判定する。もし、全てのノードに対する処理が終了していない場合には、ステップＳ４０で変数ｉの値をカウントアップして、ステップＳ３２に戻る。一方、全てのノードに対する処理が終了している場合には、ステップＳ４１に進む。
【００７１】
ステップＳ４１では、要求レベルLevelREQ[i]が通常要求レベル値LEVEL_NORMALであるノードの数を示す変数ｊの値が０であるか否かを判定する。もし、変数ｊの値が０である場合には、全ての処理を終了する。一方、変数jの値が０ではない場合には、ステップＳ４２で、全てのノード１０ａ〜１０ｈがバス使用権を獲得するまでに許容できるフェアネスインターバル時間の最大値TFAIRNESSを、共通許容値PMINに基づいて上記(2)式に従って算出する。このフェアネスインターバル時間の最大値TFAIRNESSからバス帯域割り当て合計値TTOTALを減じ、さらに変数ｊの値で除算することによって、要求レベルLevelREQ[i]が通常要求レベル値LEVEL_NORMALである各ノードに対してバス帯域最大値TMAX[i]に追加して割り当てることができる残バス帯域値TADDを算出する。また、変数ｉの値を再び０として初期化する。
【００７２】
ステップＳ４３では、ノードｉの要求レベルLevelREQ[i]の値を判定する。要求レベルLevelREQ[i]が通常要求レベル値LEVEL_NORMALである場合には、ステップＳ４４でノードｉのバス帯域最大値TMAX[i]に残バス帯域値TADDを累積加算し、ステップＳ４５で変数ｉの値をカウントアップする。要求レベルLevelREQ[i]が通常要求レベル値LEVEL_NORMALではない場合には、ステップＳ４４を行うことなく、ステップＳ４５で変数ｉの値をカウントアップする。そして、ステップＳ４６では、全てのノードに対する処理が終了したか否かを判定し、全てのノードに対する処理が終了していない場合にはステップＳ４３に戻り、全てのノードに対する処理が終了している場合には全ての処理を終了する。
【００７３】
次に、第２の実施形態におけるバス帯域最大値の算出の例を説明する。図１１は、第２の実施形態に係る情報処理装置１０ａのバス帯域最大値算出手段１４５によるバス帯域最大値の算出の例を示す図表である。この図表には、各ノードｉ（ｉ＝ａ〜ｈ）それぞれについて、そのノードｉの最大許容値P[i]、ノードｉのバス帯域要求情報である要求レベルLevelREQ[i]およびバス帯域要求値TREQ[i]、ならびに、図９および図１０のフローチャートで説明した手順により算出されたノードｉのバス帯域最大値TMAX[i]が示されている。バス帯域要求値TREQ[i]は、各ノードｉがアシンクロナスサブアクションを行うために確保すべき所定バス占有時間であり、ＩＥＥＥ１３９４シリアルバス２０を介して通信する際のデータ転送速度や最大データサイズに応じて定められる。
【００７４】
ノード１０ｇおよび１０ｈそれぞれは、所定期間内にバス使用権を獲得するとともに所定バス占有時間を確保してアシンクロナスサブアクションを行う必要があるために、要求レベルLevelREQ[i]を最高要求レベル値LEVEL_HIGHとしており、バス帯域要求値TREQ[i]と等しいバス帯域最大値TMAX[i]が与えられる。ノード１０ｂ〜１０ｆそれぞれは、アシンクロナスサブアクションのバス帯域に関して特別な要求がないために、要求レベルLevelREQ[i]を最低要求レベル値LEVEL_LOWとしており、バス帯域最大値TMAX[i]としてバスシステムによって予め定められるバス占有時間初期設定値が与えられる。
【００７５】
ノード１０ａは、フェアネスインターバル内でのアシンクロナスサブアクションの時間がＩＥＥＥ１３９４バスシステム１のパフォーマンスに対して大きく影響するノードである。そこで、ノード１０ａがフェアネスインターバル内でより長い時間のアシンクロナスサブアクションを行ってＩＥＥＥ１３９４バスシステム１のパフォーマンスを向上させるために、ノード１０ａは、要求レベルLevelREQ[a]を通常要求レベル値LEVEL_NORMALとしており、残バス帯域値TADDに基づいてバス帯域最大値TMAX[a]が与えられる。
【００７６】
次に、第２の実施形態におけるパケット通信の例を説明する。図１２は、第２の実施形態に係る情報処理装置１０ａにおけるバス帯域最大値に基づくアシンクロナスサブアクションの通信制御によって行われるパケット通信を説明する図である。この図は、図１１で示した状況においてＩＥＥＥ１３９４シリアルバス２０に送信されるパケットの様子を示している。フェアネスインターバル＃ｎ〜＃ｎ＋１でノード１０ａ〜１０ｈそれぞれはバス使用権を得てアシンクロナスサブアクションSa〜Shによる通信を行っている。
【００７７】
アービトレーションリセットギャップGARB-RESETが発生して、フェアネスインターバル＃ｎが開始されると、ノード１０ａは、バス要求を行い、バス使用権を獲得してアシンクロナスサブアクションSa0を行う。ノード１０ａは、要求レベルLevelREQ[a]を通常要求レベル値LEVEL_NORMALとしてバス帯域最大値TMAX[a]を獲得しており、次のアービトレーションリセットギャップGARB-RESETが発生することを待たずにアシンクロナスサブアクションSa1およびSa2を行う。同様にして、ノード１０ａは、フェアネスインターバル＃ｎ＋１で発生したバス要求に対して、与えられたバス帯域最大値TMAX[a]の範囲で複数回のアシンクロナスサブアクションSa3〜Sa5を行う。なお、ここで、アシンクロナスサブアクションSa0〜Sa6それぞれの時間をTa0〜Ta6とすると、
Ta0＋Ta1＋Ta2＜TMAX[a]＜Ta0＋Ta1＋Ta2＋Ta3
Ta3＋Ta4＋Ta5＜TMAX[a]＜Ta3＋Ta4＋Ta5＋Ta6
である。
【００７８】
他のノード１０ｂ〜１０ｈそれぞれについても同様であり、ノード１０ｂ〜１０ｆそれぞれはバス帯域最大値TMAX[a]＝バス占有時間初期設定値の範囲で、ノード１０ｇおよび１０ｈそれぞれはバス帯域最大値TREQ[g]とTREQ[h]の範囲で、アシンクロナスサブアクションSb〜Shを行う。
【００７９】
以上のように、本実施形態では、バス占有時間に基づいてアシンクロナスサブアクションによる通信制御を行うことにより、全てのノードに対して所定期間内にバス使用権を与えることを保証することができるだけでなく、システムのパフォーマンスに与える影響が大きいノードに対して優先的にバス使用権を与えることによって、ＩＥＥＥ１３９４バスシステム１のパフォーマンスおよびＩＥＥＥ１３９４シリアルバス２０の使用効率を向上させることができる。
【００８０】
なお、本実施形態において、アシンクロナスサブアクションを用いて通信を行う場合に情報処理装置がバス使用権を獲得するまでに許容できる最大間隔をバス使用権を獲得するまでの時間とし、フェアネスインターバル時間の最大値TFAIRNESSを算出しているが、予め記憶された最大値TFAIRNESSに基づいてバス帯域最大値を算出してアシンクロナスサブアクションによる通信制御を行っても構わない。
【００８１】
また、本実施形態において、アシンクロナスサブアクションを用いて通信を行う場合に情報処理装置がバス使用権を獲得するまでに許容できる最大間隔に関する説明を簡単にするために、アシンクロナスサブアクションだけを考慮して説明しているが、フェアネスインターバル内で行われるアイソクロナスサブアクションのバス占有時間をも考慮してバス帯域最大値を算出して、アシンクロナスサブアクションによる通信制御を行っても構わない。
【００８２】
さらに、本実施形態において、最大許容値P及びバス帯域要求情報をバス占有時間に基づいて説明しているが、例えばアシンクロナスサブアクションにおけるデータサイズなど、バス占有時間に関する情報を算出することが可能な如何なる情報に基づいても構わない。
【００８３】
【発明の効果】
以上、詳細に説明したとおり、本発明によれば、各情報処理装置それぞれのバスの使用権獲得間隔の最大許容値の最小値が共通許容値とされ、この共通許容値に基づいて、各情報処理装置それぞれが所定期間内にバスを占有することができるバス帯域の最大値であるバス帯域最大値が算出される。そして、各情報処理装置それぞれは、各々のバス帯域最大値の範囲内で通信を行うことができる。
【００８４】
したがって、全ての情報処理装置に対して所定時間内にバス使用権を与えることを保証できる。また、バスシステムのパフォーマンスに与える影響が大きい情報処理装置に対して優先的にバス使用権を与えることによって、バスシステムのパフォーマンスを向上させることができる。さらに、アービトレーションリセットギャップに関わらず複数回のアシンクロナスサブアクションを行えるため、バスの使用効率が向上する。
【図面の簡単な説明】
【図１】第１の実施形態に係る情報処理装置およびバスシステムの概略構成を示すブロック図である。
【図２】第１の実施形態に係る情報処理装置の１３９４インターフェース部の構成を示すブロック図である。
【図３】第１の実施形態に係る情報処理装置の最大許容値記憶手段が記憶する最大許容値を説明する図である。
【図４】第１の実施形態に係る情報処理装置のバス帯域最大値算出手段がバス帯域最大値を算出する手順を示すフローチャートである。
【図５】第１の実施形態に係る情報処理装置のバス帯域最大値算出手段がバス帯域最大値を算出する手順を示すフローチャートである。
【図６】第１の実施形態に係る情報処理装置のバス帯域最大値算出手段によるバス帯域最大値の算出の例を示す図表である。
【図７】第１の実施形態に係る情報処理装置におけるバス帯域最大値に基づくアシンクロナスサブアクションの通信制御によって行われるパケット通信を説明する図である。
【図８】第２の実施形態に係る情報処理装置の最大許容値記憶手段が記憶する最大許容値を説明する図である。
【図９】第２の実施形態に係る情報処理装置のバス帯域最大値算出手段がバス帯域最大値を算出する手順を示すフローチャートである。
【図１０】第２の実施形態に係る情報処理装置のバス帯域最大値算出手段がバス帯域最大値を算出する手順を示すフローチャートである。
【図１１】第２の実施形態に係る情報処理装置のバス帯域最大値算出手段によるバス帯域最大値の算出の例を示す図表である。
【図１２】第２の実施形態に係る情報処理装置におけるバス帯域最大値に基づくアシンクロナスサブアクションの通信制御によって行われるパケット通信を説明する図である。
【図１３】ＩＥＥＥ１３９４シリアルバスに接続される複数の情報処理装置で構成されるバスシステムの構成例を示す図である。
【図１４】ＩＥＥＥ１３９４シリアルバスにおけるバスサイクル構造を示す図である。
【図１５】アシンクロナスサブアクションSASYNCにおけるフェアネスインターバルを示す図である。
【符号の説明】
１…ＩＥＥＥ１３９４バスシステム、１０ａ〜１０ｈ…情報処理装置（ノード）、１１…ＣＰＵ、１２…ＲＯＭ、１３…ＲＡＭ、１４…１３９４インターフェース部、１５…内部バス、２０…ＩＥＥＥ１３９４シリアルバス、１４０…最大許容値記憶手段、１４１…最大許容値通信手段、１４２…共通許容値算出手段、１４３…バス帯域要求情報記憶手段、１４４…バス帯域要求情報通信手段、１４５…バス帯域最大値算出手段、１４６…バス帯域最大値通信手段、１４７…通信制御手段、１４８…１３９４インターフェース第１内部バス、１４９…１３９４インターフェース第２内部バス。
【図１】
0003760667.tif 000002
【図２】
0003760667.tif 000003
【図３】
0003760667.tif 000004
【図４】
0003760667.tif 000005
【図５】
0003760667.tif 000006
【図６】
0003760667.tif 000007
【図７】
0003760667.tif 000008
【図８】
0003760667.tif 000009
【図９】
0003760667.tif 000010
【図１０】
0003760667.tif 000011
【図１１】
0003760667.tif 000012
【図１２】
0003760667.tif 000013
【図１３】
0003760667.tif 000014
【図１４】
0003760667.tif 000015
【図１５】
0003760667.tif 000016