(57)【要約】【課題】  マスタの処理負担が小さく、バス使用待ち時間の短縮とシステムの処理性能向上を実現できるバス制御装置を得る。【解決手段】  バス制御装置４０は、各マスタに転送許可を与える優先順位を格納する優先順位格納部４０２と、バス３０が使用可能な状態の場合には、優先順位に基づいて転送許可を与えるマスタを決定し、そのマスタに対して転送許可を通知すると共に、バス３０が当該マスタからの入力を受信するように切り替える使用権制御部４０３と、転送要求を出力している各マスタに転送許可が与えられるまでの待ち時間を算出し、それらのマスタから通知された待機可能な要求時間内に転送許可が与えられるか否かを判定し、判定結果を各マスタに通知する制限時間内転送判定部４０４を備える。【選択図】        図１
2006171887.tif 000002
【特許請求の範囲】
【請求項１】
共通バスを介してデータ転送を行う複数のマスタから出力される転送要求を受信し、共通バスが使用可能な状態の場合には上記マスタに対して転送許可を通知するバス制御装置であって、
各マスタに転送許可を与える優先順位を格納する優先順位格納部と、
上記共通バスが使用可能な状態の場合には、上記優先順位に基づいて転送許可を与えるマスタを決定し、そのマスタに対して転送許可を通知するとともに上記共通バスがそのマスタからの入力を受信するように設定する使用権制御部と、
各マスタから通知される転送要求データ量に基づいて、各マスタに転送許可が与えられるまでの予想待ち時間を算出し、上記予想待ち時間と、各マスタから通知される待機可能時間を比較して、上記予想待ち時間が上記待機可能時間以下の場合には転送可能であることを示す判定結果を当該マスタに通知し、上記予想待ち時間が上記待機可能時間よりも大きい場合には転送可能でないことを示す判定結果を当該マスタに通知する制限時間内転送判定部を備えたことを特徴とするバス制御装置。
【請求項２】
制限時間内転送判定部は、単位時間毎に、その時点で各マスタが出力している転送要求および転送要求データ量に基づいて各マスタの予想待ち時間を算出し、転送可能か否かの判定結果を通知することを特徴とする請求項１記載のバス制御装置。
【請求項３】
共通バスを介してデータ転送を行う複数のマスタと、上記複数のマスタから出力される転送要求を受信し、共通バスが使用可能な状態の場合には上記マスタに対して転送許可を通知するバス制御装置を備えた情報処理システムであって、
上記バス制御装置の使用権制御部は、マスタから転送要求を受信すると、上記共通バスが使用可能な状態の場合には、各マスタに転送許可を与える優先順位に基づいて転送許可を与えるマスタを決定し、そのマスタに対して転送許可を通知するとともに上記共通バスがそのマスタからの入力を受信するように設定し、
上記バス制御装置の制限時間内転送判定部は、各マスタから通知される転送要求データ量に基づいて、各マスタに転送許可が与えられるまでの予想待ち時間を算出し、上記予想待ち時間と、各マスタから通知される待機可能時間を比較して、上記予想待ち時間が上記待機可能時間以下の場合には転送可能であることを示す判定結果を当該マスタに通知し、上記予想待ち時間が上記待機可能時間よりも大きい場合には転送可能でないことを示す判定結果を当該マスタに通知し、
各マスタは、上記判定結果に基づいて転送要求を継続して出力するか、出力を中止するかを判断することを特徴とする情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、バス制御装置および情報処理システムに関するものである。
【背景技術】
【０００２】
共通バス接続方式のシステムでは、複数のプロセッサやメモリ等のデバイスが共通バスに接続され、共通バスを介してデバイス間でのデータのやり取りをする。共通バス接続方式のシステムにはバス制御装置が備えられており、バス制御装置は、バスに接続されたプロセッサやハードウェアブロック（マスタ）からデータ転送要求を受け、バスの使用を許可するマスタに対して使用許可を通知する。使用許可を受けたマスタは、バスを利用して転送先のデバイス（スレーブ）との間でデータ転送を行う。バス制御装置は、各マスタの待ち時間を短縮し、システム全体の処理性能を上げるように使用許可を与えるマスタを決定する。このようなバス制御装置の制御方法として様々な技術が提案されている。
例えば、特許文献１に開示されたバス伝送方法では、バス調停回路（バス制御装置）からバス使用権を取得したプロセッサがバス使用時間通知信号線を介してバス使用時間をバス調停回路へ通知し、バス調停回路が次のバス使用権を予約したプロセッサへバス待ち時間通知信号線を介してバス待ち時間を通知する。バス使用中のプロセッサのバス使用が終了すると、バス調停回路が次のバス使用権を予約したプロセッサへバス捕捉応答信号線を介してバス捕捉応答を返す。これにより、バス使用権を予約したプロセッサは待ち時間を知ることができるので、待機中にプロセッサを他の処理に利用することができる。
【０００３】
【特許文献１】特開平１０−４１９６２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、特許文献１に開示された方法では、バス使用待機中のプロセッサは、待ち時間の通知を受けてから、それが待機可能な時間の範囲内かどうかの判定を行う必要があり、プロセッサの処理が複雑化する。プロセッサによっては、待ち時間が一定時間以上ならば転送要求をキャンセルする場合もある。この場合、待ち時間自体を通知しなくても、制限時間以内にバス使用が可能になるかどうかが分かればよい。
【０００５】
この発明は上記のような課題を解決するためになされたもので、マスタの処理負担は小さく、且つ、バス使用待ち時間の短縮とシステムの処理性能向上を実現できるバス制御装置および情報処理システムを得ることを目的とする。
【課題を解決するための手段】
【０００６】
この発明に係るバス制御装置は、共通バスを介してデータ転送を行う複数のマスタから出力される転送要求を受信し、共通バスが使用可能な状態の場合にはマスタに対して転送許可を通知するバス制御装置であって、各マスタに転送許可を与える優先順位を格納する優先順位格納部と、共通バスが使用可能な状態の場合には、優先順位に基づいて転送許可を与えるマスタを決定し、そのマスタに対して転送許可を通知するとともに共通バスがそのマスタからの入力を受信するように設定する使用権制御部と、各マスタから通知される転送要求データ量に基づいて、各マスタに転送許可が与えられるまでの予想待ち時間を算出し、予想待ち時間と、各マスタから通知される待機可能時間を比較して、予想待ち時間が待機可能時間以下の場合には転送可能であることを示す判定結果を当該マスタに通知し、予想待ち時間が待機可能時間よりも大きい場合には転送可能でないことを示す判定結果を当該マスタに通知する制限時間内転送判定部を備えたものである。
【０００７】
この発明に係る情報処理システムは、共通バスを介してデータ転送を行う複数のマスタと、複数のマスタから出力される転送要求を受信し、共通バスが使用可能な状態の場合にはマスタに対して転送許可を通知するバス制御装置を備えた情報処理システムであって、バス制御装置の使用権制御部は、マスタから転送要求を受信すると、共通バスが使用可能な状態の場合には、各マスタに転送許可を与える優先順位に基づいて転送許可を与えるマスタを決定し、そのマスタに対して転送許可を通知するとともに共通バスがそのマスタからの入力を受信するように設定し、バス制御装置の制限時間内転送判定部は、各マスタから通知される転送要求データ量に基づいて、各マスタに転送許可が与えられるまでの予想待ち時間を算出し、予想待ち時間と、各マスタから通知される待機可能時間を比較して、予想待ち時間が待機可能時間以下の場合には転送可能であることを示す判定結果を当該マスタに通知し、予想待ち時間が待機可能時間よりも大きい場合には転送可能でないことを示す判定結果を当該マスタに通知し、各マスタは、判定結果に基づいて転送要求を継続して出力するか、出力を中止するかを判断するものである。
【発明の効果】
【０００８】
この発明によれば、バス制御装置は、共通バスに接続されたマスタから、転送要求とともに待機可能時間を取得し、各マスタに転送許可が与えられるまでの時間を算出し、待機可能時間内に転送許可が与えられるか否かを判断して各マスタに通知するようにしたので、マスタ側は、通知された信号が否であれば、転送要求を中止することができ、マスタ側の小さい処理負担でバスの使用待ち時間の短縮とシステムの処理性能向上を実現することができる。
【発明を実施するための最良の形態】
【０００９】
以下、この発明の実施の形態を説明する。
実施の形態１．
図１は、この発明の実施の形態１による、バス制御装置４０を備えた情報処理装置１００の構成を示すブロック図である。図に示すように、情報処理装置１００は、マスタ１０ａ，１０ｂ，１０ｃ、スレーブ２０ａ，２０ｂ、バス３０、バス制御装置４０を備えている。マスタ１０ａ，１０ｂ，１０ｃは、例えばハードウェアブロックやプロセッサ等のデバイスであり、スレーブ２０ａ，２０ｂは、例えばメモリやハードディスク等のデバイスである。なお、マスタ１０ａ，１０ｂ，１０ｃ、スレーブ２０ａ，２０ｂの数はこれに限られない。
【００１０】
バス制御装置４０は、優先順位設定部４０１、優先順位格納部４０２、使用権制御部４０３、制限時間内転送判定部４０４を備えている。優先順位格納部４０２には、マスタ１０ａ，１０ｂ，１０ｃに対するバス３０使用許可の優先順位が格納されている。
【００１１】
マスタ１０ａ，１０ｂ，１０ｃ、スレーブ２０ａ，２０ｂ、およびバス制御装置４０は、バス３０に接続されている。また、バス制御装置４０とマスタ１０ａ，１０ｂ，１０ｃの間には、マスタ１０ａ，１０ｂ，１０ｃからバス制御装置４０へ転送要求を通知するための線、使用権制御部４０３からマスタ１０ａ，１０ｂ，１０ｃへ転送許可信号を通知するための線、マスタ１０ａ，１０ｂ，１０ｃから制限時間内転送判定部４０４へデータの転送個数、転送先スレーブ、および転送許可を受けるまでに待機可能な要求時間を通知するための線、制限時間内転送判定部４０４からマスタ１０ａ，１０ｂ，１０ｃへ転送可能判定を通知するための線が設けられている。
【００１２】
次に、動作について説明する。まず、情報処理装置１００の動作の概略について説明する。
マスタ１０ａ，１０ｂ，１０ｃは、スレーブ２０ａ，２０ｂに対するデータ書き込みや読み出しを行う場合、バス制御装置４０に対して、転送要求と、要求する転送データの個数、転送先スレーブ、および転送可能になるまでに待機可能な要求時間を通知する。バス制御装置４０の使用権制御部４０３は、バス３０が使用可能な状態であれば転送要求を通知してきたマスタに対して転送許可を通知し、バス３０の入力セレクタを当該マスタに切り替える。同時に複数のマスタから転送要求が通知された場合には、使用権制御部４０３において、優先順位格納部４０２に格納されている優先順位を基に転送許可を与えるマスタを決定する。転送許可を与えるマスタに対しては使用権制御部４０３から転送許可が通知される。転送許可を受けたマスタは、バス３０を介してスレーブ２０ａ，２０ｂに対するデータ書き込みまたは読み出しを行う。
一方、制限時間内転送判定部４０４は、現時点でバス３０を使用しているマスタの転送個数および転送先情報に基づいて転送終了までの時間を算出し、その値を基に、転送許可待ちのマスタが転送可能になるまでの待ち時間を算出する。制限時間内転送判定部４０４は、算出した待ち時間が転送許可待ちのマスタの要求時間以下である場合には、そのマスタに対して、転送可能であることを示す転送可能判定結果を通知する。
【００１３】
次に、図２のタイムチャートを用いて、バス制御装置４０の動作を詳しく説明する。なお、ここでは、優先順位格納部４０２に格納されるマスタの優先順位は、マスタ１０ｂ→マスタ１０ｃ→マスタ１０ａの順とする。
時刻８の時点においては、使用権制御部４０３からマスタ１０ａに転送許可が出ており、マスタ１０ａからスレーブ２０ａへのデータ転送が継続している。マスタ１０ｂおよびマスタ１０ｃからは転送要求はでていないので、バス制御装置４０からの信号は出力されていない。制限時間内転送判定部４０４は、マスタ１０ａが転送を開始した時点で、マスタ１０ａからの転送が時刻１０で終了することを記憶する。
時刻９においては、マスタ１０ａの転送が継続しておりバス３０は使用中である。マスタ１０ｃは、転送要求を通知するとともに、転送個数（８）、転送先（スレーブ２０ａ）、および要求時間（１２）を通知している。バス制御装置４０は、バス３０が使用中であるためマスタ１０ｃに対して転送可能判定を通知する。制限時間内転送判定部４０４は、マスタ１０ｃより優先度が高いマスタ１０ｂが転送要求を行っていないため、マスタ１０ｃが転送を開始できるのは、マスタ１０ａによる転送が時刻１０で完了してから、すなわち時刻１１からと算出する。さらに、時刻１１をマスタ１０ｃからの要求時間１２と比較すると時刻１１の方が小さいので、マスタ１０ｃに対して、転送可能であることを示す１を通知する。
【００１４】
時刻１０においては、新たにマスタ１０ｂが転送要求を通知する。バス制御装置４０は、バス３０が使用中であるためマスタ１０ｂに対して転送可能判定を通知する。マスタ１０ｂは優先順位が最も高いので、マスタ１０ａによる転送が時刻１０で完了すると、優先的に転送許可が与えられる。マスタ１０ｂの要求時間は図に示すように１５であり、転送可能となる時刻１１の方が小さいので、制限時間内転送判定部４０４は、マスタ１０ｂに対して転送可能であることを示す１を通知する。
マスタ１０ｂが時刻１１より転送を開始する場合、図に示すようにデータ転送個数は３なので、転送先のスレーブ２０ｂが０ウェイトのメモリとすると、転送終了時刻は１３となる。マスタ１０ｃも時刻９から転送要求を出しているが、優先度の高いマスタ１０ｂに先にバス３０の使用権が与えられるので、マスタ１０ｃが転送可能となるのは時刻１４からとなる。これはマスタ１０ｃの要求時間１２よりも大きいので、この時点で制限時間内転送判定部４０４は、マスタ１０ｃに対して転送可能でないことを示す０を通知する。マスタ１０ｃは、この転送可能判定の結果を受けて、時刻１１の時点で転送要求を取り消すことができる。
【００１５】
次に、図３のフローチャートを用いて、制限時間内転送判定部４０４の動作を詳細に説明する。
まず、ステップＳＴ２０１では、現転送終了予測時刻を表す変数ＣｕｒｒｅｎｔＴｒａｎｓｆｅｒＥｎｄと現時刻値を表す変数ＣｕｒｒｅｎｔＴｉｍｅに０を設定する。
次に、ステップＳＴ２２０では、優先順位を表す変数ｐｒｉｏｒｉｔｙを１に設定する。
【００１６】
ステップＳＴ２２１からステップＳＴ２２７では、現在実行中の転送処理の現転送終了予測時刻ＣｕｒｒｅｎｔＴｒａｎｓｆｅｒＥｎｄの算出処理が行われる。
ステップＳＴ２２１では、変数ｐｒｉｏｒｉｔｙの優先順位を持つマスタのＩＤ（ＭａｓｔｅｒＰｒｉｏｒｉｔｙ（ｐｒｉｏｒｉｔｙ））を変数Ｍａｓｔｅｒに代入する。
ステップＳＴ２２３では、ステップＳＴ２２１で設定されたＭａｓｔｅｒに対して転送許可が出されているか否かを判定する。転送許可が出ている場合（Ａｃｋ（Ｍａｓｔｅｒ）＝ｔｒｕｅ）にはステップＳＴ２２４へ、転送許可が出ていない場合（Ａｃｋ（Ｍａｓｔｅｒ）＝ｆａｌｓｅ）にはステップＳＴ２２５へ進む。
ステップＳＴ２２４では、現転送終了予測時刻ＣｕｒｒｅｎｔＴｒａｎｓｆｅｒＥｎｄに、現時刻値ＣｕｒｒｅｎｔＴｉｍｅと、Ｍａｓｔｅｒの要求する転送個数ＴｒａｎｓＣｏｕｎｔ（Ｍａｓｔｅｒ）にＭａｓｔｅｒの転送要求先のアクセス時間（ＡｃｃｅｓｓＴｉｍｅ（Ｄｅｓｔ（Ｍａｓｔｅｒ）））を乗じた値を加算したものを代入する。
ステップＳＴ２２５では、ｐｒｉｏｒｉｔｙの値を１加算する。
ステップＳＴ２２６では、マスタの数（ＮｕｍＭａｓｔｅｒ）とｐｒｉｏｒｉｔｙの値の大小を比較し、ＮｕｍＭａｓｔｅｒがｐｒｉｏｒｉｔｙ以上の場合にはステップＳＴ２２１へ進み、ＮｕｍＭａｓｔｅｒがｐｒｉｏｒｉｔｙより小さい場合にはステップＳＴ２２７へ進む。
ステップＳＴ２２７では、ＣｕｒｒｅｎｔＴｒａｎｓｆｅｒＥｎｄにＣｕｒｒｅｎｔＴｉｍｅを代入する。
【００１７】
ステップＳＴ２０２からステップＳＴ２１１では、転送可能判定処理が行われる。
ステップＳＴ２０２では、判定のための変数が初期化される。まず、転送予測時刻を表す変数ＴｒａｎｓｆｅｒＥｓｔｉｍａｔｅに、ＣｕｒｒｅｎｔＴｒａｎｓｆｅｒＥｎｄとＣｕｒｒｅｎｔＴｉｍｅを比較して大きい方の値が代入される。また、ｐｒｉｏｒｉｔｙに初期値１が代入される。
ステップＳＴ２０３では、変数ｐｒｉｏｒｉｔｙの優先順位を持つマスタのＩＤ（ＭａｓｔｅｒＰｒｉｏｒｉｔｙ（ｐｒｉｏｒｉｔｙ））を変数Ｍａｓｔｅｒに代入する。
ステップＳＴ２０４では、ステップＳＴ２０３で設定されたＭａｓｔｅｒから転送要求が出されているか否か、また、Ｍａｓｔｅｒに対して転送許可が出されているか否かを判定する。転送要求が出ていて（Ｒｅｑ（Ｍａｓｔｅｒ）＝ｔｒｕｅ）且つ転送許可が出ていない（Ａｃｋ（Ｍａｓｔｅｒ）＝ｆａｌｓｅ）場合にはステップＳＴ２０８へ、転送要求が出ていないか（Ｒｅｑ（Ｍａｓｔｅｒ）＝ｆａｌｓｅ）又は転送許可が出ている場合（Ａｃｋ（Ｍａｓｔｅｒ）＝ｔｒｕｅ）にはステップＳＴ２０５へ進む。
ステップＳＴ２０８では、変数ＴｒａｎｓｆｅｒＥｓｔｉｍａｔｅの値と、Ｍａｓｔｅｒの転送要求時刻Ｌｉｍｉｔ（Ｍａｓｔｅｒ）とを比較し、ＴｒａｎｓｆｅｒＥｓｔｉｍａｔｅの値がＬｉｍｉｔ（Ｍａｓｔｅｒ）より大きい場合にはステップＳＴ２０９へ進み、ＴｒａｎｓｆｅｒＥｓｔｉｍａｔｅの値がＬｉｍｉｔ（Ｍａｓｔｅｒ）以下の場合にはステップＳＴ２１１へ進む。
ステップＳＴ２０９では、Ｍａｓｔｅｒへの転送可能判定結果ＩｎＴｉｍｅ（Ｍａｓｔｅｒ）に、転送が可能でないことを示すｆａｌｓｅを設定する。
ステップＳＴ２１１では、Ｍａｓｔｅｒへの転送可能判定結果ＩｎＴｉｍｅ（Ｍａｓｔｅｒ）に、転送が可能であることを示すｔｒｕｅを設定する。
ステップＳＴ２１０では、現在のＴｒａｎｓｆｅｒＥｓｔｉｍａｔｅに、Ｍａｓｔｅｒの要求する転送個数ＴｒａｎｓＣｏｕｎｔ（Ｍａｓｔｅｒ）にＭａｓｔｅｒの転送要求先のアクセス時間（ＡｃｃｅｓｓＴｉｍｅ（Ｄｅｓｔ（Ｍａｓｔｅｒ）））を乗じた値を加算したものを新たなＴｒａｎｓｆｅｒＥｓｔｉｍａｔｅとする。
ステップＳＴ２０５では、ｐｒｉｏｒｉｔｙの値を１加算する。
ステップＳＴ２０６では、マスタの数（ＮｕｍＭａｓｔｅｒ）とｐｒｉｏｒｉｔｙの値の大小を比較し、ＮｕｍＭａｓｔｅｒがｐｒｉｏｒｉｔｙ以上の場合にはステップＳＴ２０３へ進み、次の優先順位のマスタについての転送可能判定を行う。ＮｕｍＭａｓｔｅｒがｐｒｉｏｒｉｔｙより小さい場合にはステップＳＴ２３０へ進む。
【００１８】
ステップＳＴ２３０では、制限時間内転送判定部４０４は次の処理時刻になるまで待機する。
ステップＳＴ２３１では、ＣｕｒｒｅｎｔＴｉｍｅを１加算し、ステップＳＴ２２０へ戻って次の時刻での処理を開始する。
【００１９】
以上の処理により、ステップＳＴ２０９およびステップＳＴ２１１で得られた転送可能判定結果ＩｎＴｉｍｅ（Ｍａｓｔｅｒ）が、該当するマスタに通知される。転送可能であることを示す判定を受信したマスタは、バス制御装置４０から転送許可信号が通知されるのを待って、データ転送を開始する。一方、転送が可能でないことを示す判定結果を受信し、転送要求をキャンセルするマスタは、転送要求信号の出力を止める。
制限時間内転送判定部４０４は、ステップＳＴ２２０へ戻って次の時刻の処理を開始する際、その時点で各マスタから出力されている信号に基づいて転送可能判定を行うため、転送要求を中止したマスタがある場合には次の時刻の判定処理でそれが反映される。すなわち、結果的に他のマスタに対して、転送可能判定の再計算結果を通知する機能が実現される。
【００２０】
また、優先順位設定部４０１は、外部から新たにマスタの優先順位が入力されると、優先順位格納部４０２内の優先順位を更新する。優先順位が更新されると、新たな優先順位に基づいて転送可能判定を行う必要がある。制限時間内転送判定部４０４は、ステップＳＴ２２０へ戻って次の時刻の処理を開始する際には、あらためて優先順位格納部４０２から優先順位を取得して処理するので、結果的に更新後の優先順位が反映される。
【００２１】
以上のように実施の形態１によれば、バス制御装置４０は、マスタ１０ａ，１０ｂ，１０ｃから、転送要求とともに転送までに待機可能な時間を取得し、制限時間内転送判定部４０４は、各マスタが転送可能となるまでの時間を算出し、待機可能な時間内に転送可能となるか否かを判断して各マスタに通知するようにしたので、マスタ側は、転送可能判定が不可であれば転送要求をキャンセルすることができ、マスタ側の小さい処理負担でバス３０の使用待ち時間の短縮とシステムの処理性能向上を実現することができる。なお、これによりマスタ１０ａ，１０ｂ，１０ｃをハードウェアブロックで構成する場合、マスタの構成が簡易になり、回路規模を小さくすることができる。
また、制限時間内転送判定部４０４は、時刻毎に転送可能判定を行うので、転送要求を中止したマスタがある場合には次の時刻の判定処理でそれが反映され、結果的に転送可能判定の再計算が実現される。また、マスタの優先順位が変更された場合にも、次時刻の処理の際に更新後の優先順位が反映される。
【図面の簡単な説明】
【００２２】
【図１】この発明の実施の形態１による、バス制御装置を備えた情報処理装置の構成を示すブロック図である。
【図２】この発明の実施の形態１による、バス制御装置の動作を説明するためのタイムチャートである。
【図３】この発明の実施の形態１による、制限時間内転送判定部の詳細な動作のフローチャートである。
【符号の説明】
【００２３】
１０ａ，１０ｂ，１０ｃ  マスタ、２０ａ，２０ｂ  スレーブ、３０  バス、４０  バス制御装置、１００  情報処理装置、４０１  優先順位設定部、４０２  優先順位格納部、４０３  使用権制御部、４０４  制限時間内転送判定部。
【図１】
2006171887.tif 000003
【図２】
2006171887.tif 000004
【図３】
2006171887.tif 000005