(57)【要約】【課題】バス調停時にバス使用許可を取得するまでの時間を短縮する。【解決手段】バス使用許可信号を取得するまでの待機時間をカウントするマスタ待機時間監視手段５と、待機時間を基に残り時間を演算する残り時間算出手段６と、その残り時間に応じてスレーブ応答性能値を演算により再設定する応答性能再設定手段９と、再設定したスレーブの中から応答性能値が最も高く算出されたスレーブをアクセスするマスタの情報を出力するスレーブ応答性能優先順調停手段１０と、応答性能値が最も小さいマスタの情報が１つの場合はそのまま出力し複数存在時には予め定めたマスタの固定優先順位で調停を行い、最高優先順位のマスタを１つ出力するマスタ固定優先順調停手段１１と、出力された１つのマスタにバス使用許可信号を出力し、かつ最高優先順位のマスタの情報をマスタ待機時間監視手段５へ通知するバス使用許可信号出力手段１２とを備える。【選択図】　　　図２
2004078508.tif 000002
【特許請求の範囲】
【請求項１】
複数のマスタデバイスと前記マスタデバイスの要求に応じてデータを転送する複数のスレーブデバイスとこれら複数のデバイス間で共有するシステムバスとを有し、前記複数のマスタデバイスからのバス使用要求が競合する時に、応答時間の短いスレーブデバイスにアクセスするマスタデバイスの前記システムバス使用を最優先にして優先順位の低いマスタデバイスの待ち時間短縮機能を有することを特徴とするバス調停回路。
【請求項２】
アクセスするスレーブデバイスの応答速度が遅いために優先順位が低く設定され待機時間が長くなる場合に、予め設定されたバスタイムアウト時間までの残り時間が他のマスタデバイスよりも短いマスタデバイスのバス使用優先度を一時的に高くする調停を行って、バスタイムアウトの発生を抑制するバス使用優先度調停手段を有することを特徴とするバス調停回路。
【請求項３】
マスタデバイスから、バス使用要求信号とアクセスするスレーブデバイスを通知するスレーブ通知信号とを受信し、アクセス対象の前記スレーブデバイスの応答性能値に応じて、前記マスタデバイスの優先度を再設定するバス使用調停手段を有することを特徴とするバス調停回路。
【請求項４】
マスタデバイスに予め設定されたバスタイムアウト時間までの残り時間に応じて、アクセス対象の前記スレーブデバイスの応答性能値を一時的でかつ他のマスタデバイスとの間で相対的に増減して再設定する演算を行うことにより、調停時に前記残り時間が短くなってきたマスタデバイスの優先度を引き上げて、前記マスタデバイスのバスタイムアウト発生を抑制するバス使用調停手段を有することを特徴とするバス調停回路。
【請求項５】
複数のマスタデバイスと前記マスタデバイスの要求に応じてデータを転送する複数のスレーブデバイスとこれら複数のデバイス間で共有するシステムバスと前記複数のマスタデバイスが前記システムバスを使用する際の優先順位を調停するバス調停手段とを有し、
前記バス調停手段は、前記マスタデバイスがバス使用要求信号発行してからバス使用許可信号を取得するまでの待機時間をカウントするマスタ待機時間監視手段と、前記待機時間を基にバスタイムアウトするまでの残り時間を演算する残り時間算出手段と、その残り時間に応じてスレーブ応答性能値を演算により再設定する応答性能再設定手段と、再設定したスレーブ応答性能値の中から最小値が算出されたスレーブデバイスをアクセスしているマスタデバイスの情報を出力するスレーブ応答性能優先順調停手段と、前記応答性能値が最小値を示すマスタデバイスの情報が１つの場合はそのまま出力し複数存在する場合には、予め定めたマスタデバイスの固定優先順位で調停を行い、最優先のマスタデバイスを１つ決定するマスタ固定優先順調停手段と、決定された前記１つのマスタデバイスにバス使用許可信号を出力するとともに、前記最優先のマスタデバイスの情報を前記マスタ待機時間監視手段へ通知するバス使用許可信号出力手段とを備えることを特徴とするバス調停回路。
【請求項６】
前記残り時間算出手段は、各マスタデバイスがバス使用要求信号で前記システムバスの使用を要求してからバスタイムアウトが発生するまでのバスタイムアウト時間を記憶するマスタ情報記憶手段と、前記スレーブデバイスが前記マスタデバイスからのアクセスを受けて応答を完了するまでの時間を記憶するスレーブ情報記憶手段と、前記バスタイムアウト時間および前記マスタデバイスの前記待機時間を基に、バス使用要求をしたマスタデバイスがバスタイムアウトするまでの残り時間を演算するバスタイムアウト残り時間演算手段とを備える請求項５記載のバス調停回路。
【請求項７】
前記バスタイムアウト残り時間演算手段は、前記マスタデバイスのバスアクセスタイムから前記マスタデバイスの待機時間を減じて前記スレーブデバイスの応答性能値を求める機能を有する請求項６記載のバス調停回路。
【請求項８】
前記応答性能再設定手段は、前記スレーブデバイスが前記マスタデバイスからのアクセスを受けて応答を完了するまでの時間を記憶するスレーブ情報記憶手段と、マスタがアクセスするスレーブデバイスの応答時間を前記スレーブ情報記憶手段から読み出すスレーブ情報選択手段と、算出された前記残り時間に応じて、前記マスタデバイスがアクセスするスレーブデバイスの応答時間を一時的に増加または減少させる演算を行い、その演算結果を前記マスタデバイスがアクセスする前記スレーブデバイスの応答性能値として出力するスレーブ応答性能演算手段とを備える請求項５記載のバス調停回路。
【請求項９】
前記スレーブ応答性能演算手段は、前記アクセスするスレーブデバイスの応答時間の設定値と前記マスタデバイスの前記バスタイムアウト残り時間との和から前記スレーブデバイスの応答性能値を求める機能を有する請求項８記載のバス調停回路。
【請求項１０】
前記マスタ情報記憶手段に代えて、マスタデバイスのバスタイムアウト時間に関する情報を外部から受信するマスタ情報受信手段を有する請求項６記載のバス調停回路。
【請求項１１】
前記スレーブ情報記憶手段に代えて、スレーブデバイスの応答時間を外部から受信するためのスレーブ情報受信手段を有する請求項７記載のバス調停回路。
【請求項１２】
前記マスタ固定優先順調停手段に代えて、マスタデバイスを回転優先順位（ラウンドロビン）により優先順位を巡回させて調停するマスタ回転優先順調停手段を有する請求項５記載のバス調停回路。
【請求項１３】
複数のマスタデバイスと前記マスタデバイスの要求に応じてデータを転送する複数のスレーブデバイスとこれら複数のデバイス間で共有するシステムバスと前記複数のマスタデバイスが前記システムバスを使用する際の優先順位を調停するバス調停手段とを有し、
前記バス調停手段は、前記マスタデバイスがバス使用要求信号を発行してからバス使用許可信号を取得するまでの待機時間をカウントするマスタ待機時間監視手段と、前記待機時間を基にスレーブ応答性能値を演算により再設定する応答性能再設定手段と、再設定した前記スレーブ応答値の中から最小値が算出されたスレーブデバイスをアクセスしているマスタデバイスの情報を出力するスレーブ応答性能優先順調停手段と、前記応答性能値が最小値を示すマスタデバイスの情報が１つの場合はそのまま出力し複数存在する場合には、予め定めたマスタデバイスの固定優先順位で調停を行い、最優先のマスタデバイスを１つ決定するマスタ固定優先順調停手段と、決定された前記１つのマスタデバイスにバス使用許可信号を出力するとともに、前記最も高い優先順位のマスタデバイスの情報を前記マスタ待機時間監視手段へ通知するバス使用許可信号出力手段とを備えることを特徴とするバス調停回路。
【請求項１４】
前記スレーブ応答性能演算手段は、前記アクセスするスレーブデバイスの応答時間の設定値から前記マスタデバイスの待機時間を減じて前記スレーブデバイスの応答性能値を求める機能を有する請求項１３記載のバス調停回路。
【請求項１５】
前記応答性能再設定手段は、連続で複数回の転送を行うためにバス占有時間の延長指定を外部から行うマスタ転送回数信号受信手段と、前記スレーブデバイスが前記マスタデバイスからのアクセスを受けて応答を完了するまでの時間を記憶するスレーブ情報記憶手段と、前記マスタデバイスがアクセスするスレーブデバイスの応答時間を前記スレーブ情報記憶手段から読み出すスレーブ情報選択手段と、算出された前記残り時間および前記バス占有時間の延長指定に応じて、前記マスタデバイスがアクセスするスレーブデバイスの応答時間を一時的に増加または減少させる演算を行い、その演算結果を前記マスタデバイスがアクセスする前記スレーブデバイスの応答性能値として出力するスレーブ応答性能演算手段とを備える請求項７バス調停回路。
【請求項１６】
前記スレーブ応答性能演算手段は、アクセスする前記スレーブデバイスの応答時間の設定値と受信した前記マスタデバイスの転送回数との積と、前記マスタデバイスの前記バスタイムアウト残り時間との和から前記スレーブデバイスの応答性能値を求める機能を有する請求項１６記載のバス調停回路。
【請求項１７】
前記応答性能再設定手段は、前記マスタデバイスとアクセスする前記スレーブデバイスとの組み合わせにより決定する定数を予め記憶し、前記スレーブ通知信号に応答して前記定数を選択する組み合わせ定数選択手段と、前記スレーブデバイスが前記マスタデバイスからのアクセスを受けて応答を完了するまでの時間を記憶するスレーブ情報記憶手段と、前記マスタデバイスがアクセスする前記スレーブデバイスの応答時間を前記スレーブ情報記憶手段から読み出すスレーブ情報選択手段と、算出された前記残り時間および前記定数に応じて、前記マスタデバイスがアクセスする前記スレーブデバイスの応答時間を一時的に増加または減少させる演算を行い、その演算結果を前記マスタデバイスがアクセスする前記スレーブデバイスの応答性能値として出力するスレーブ応答性能演算手段とを備える請求項７記載のバス調停回路。
【請求項１８】
前記スレーブ応答性能演算手段は、アクセスする前記スレーブデバイスの応答時間の設定値と前記マスタデバイスのバスタイムアウト残り時間との和から、組み合わせ定数選択手段で設定した前記定数を減じて前記スレーブデバイスの応答性能値を求める機能を有する請求項１７記載のバス調停回路。
【請求項１９】
複数のマスタデバイスと前記マスタデバイスの要求に応じてデータを転送する複数のスレーブデバイスとこれら複数のデバイス間で共有するシステムバスとを有し、前記複数のマスタデバイスからのバス使用要求が競合する時に、応答時間の短いスレーブデバイスにアクセスするマスタデバイスの前記システムバス使用を最優先にして優先順位の低いマスタデバイスの待ち時間を短縮することを特徴とするバス調停方法。
【請求項２０】
アクセスするスレーブデバイスの応答速度が遅いために優先順位が低く設定され待機時間が長くなる場合に、予め設定されたバスタイムアウト時間までの残り時間が、他のマスタデバイスよりも短いマスタデバイスのバス使用優先度を一時的に高くする調停を行ってバスタイムアウトの発生を抑制することを特徴とするバス調停方法。
【請求項２１】
マスタデバイスから、バス使用要求信号とアクセスするスレーブデバイスを通知するスレーブ通知信号とを受信し、アクセス対象の前記スレーブデバイスの応答性能値に応じて、前記マスタデバイスの優先度を再設定することを特徴とするバス調停方法。
【請求項２２】
マスタデバイスに予め設定されたバスタイムアウト時間までの残り時間に応じて、アクセス対象の前記スレーブデバイスの応答性能値を一時的でかつ他のマスタデバイスとの間で相対的に増減して再設定する演算を行うことにより、調停時に前記残り時間が短くなってきたマスタデバイスの優先度を引き上げて、前記マスタデバイスのバスタイムアウト発生を抑制することを特徴とするバス調停方法。
【請求項２３】
複数のマスタデバイスと前記マスタデバイスの要求に応じてデータを転送する複数のスレーブデバイスとこれら複数のデバイス間で共有するシステムバスとを有し、前記スレーブデバイス側で前記マスタデバイス側のスレーブ通知信号を受信する通知信号受信ステップと、前記システムバスのバス使用要求信号を受信しているかを判定する受信判定ステップと、前記バス使用要求信号を受信している場合は、受信しているバス使用要求信号が複数あるかを判定し、１つのマスタデバイスから前記バス使用要求信号を受信している場合は、そのマスタデバイスにバス使用許可信号を送信し、複数のマスタデバイスから前記バス使用要求信号を受信している場合は、バスタイムアウトまでの残り時間に応じて最優先順位とすべき前記マスタデバイスとして応答性能値が最小値を示すものを選定する調停ステップと、アクセスする前記スレーブデバイスの応答性能値が最小値のマスタデバイスが複数存在するかを判定するマスタ存在数判定ステップと、複数存在する際には前記マスタデバイスの固定優先順位に基づき最優先順位のマスタデバイスを決めるマスタ決定ステップと、決定したマスタデバイスに前記バス使用許可信号を送信する許可信号送信ステップとを有することを特徴とするバス調停方法。
【請求項２４】
前記調停ステップは、複数のマスタデバイスから前記バス使用要求信号を受信している場合は、まず、スレーブ情報が格納されたスレーブ情報記憶手段の各スレーブ応答時間の中から、前記バス使用要求信号を受信しているマスタデバイスがアクセスする前記スレーブデバイスの応答時間を選択する選択ステップと、次に、前記マスタデバイスの待機時間およびマスタ情報が格納されたマスタ情報記憶手段のバスタイムアウト時間を参照して、前記マスタデバイスのバスタイムアウトまでの残り時間を算出する残り時間算出ステップと、前記残り時間に応じて、アクセスするスレーブデバイスの応答性能値が最小値を示すマスタデバイスを最優先させる演算を行う演算ステップとを有する請求項２３記載のバス調停方法。
【請求項２５】
前記マスタ決定ステップは、アクセスする前記スレーブデバイスの応答性能値が最小値を示すマスタデバイスが複数存在する場合は、その複数のマスタデバイスをまとめるグループ化ステップと、予め設定した固定優先順位でマスタデバイスの調停を行うマスタデバイス調停ステップと、最高優先のマスタデバイスを１つ決めるマスタデバイス最終決定ステップとを有する請求項２３記載のバス調停方法。
【請求項２６】
前記調停ステップは、複数のマスタデバイスからバス使用要求信号を受信している場合は、まず、スレーブ情報が格納されたスレーブ情報記憶手段の各スレーブ応答時間の中から、前記バス使用要求信号を受信しているマスタデバイスがアクセスする前記スレーブデバイスの応答時間を選択する選択ステップと、前記マスタデバイスが前記バス使用許可信号を受けるまでの待機時間に応じて、アクセスする前記スレーブデバイスの応答性能値が最小値を示すマスタデバイスを最優先させる演算を行う演算ステップとを有する請求項２３記載のバス調停方法。
【請求項２７】
前記スレーブ応答時間は、システム上で特定のスレーブデバイスにアクセスすることが重要であるときは、予め実際の応答時間よりも小さい値を設定して優先順位を上げる請求項２３記載のバス調停方法。
【請求項２８】
前記マスタ応答時間は、システム上で特定のマスタデバイスがアクセスすることが重要であるときは、予め実際の応答時間よりも大きい値を設定して優先順位を上げる請求項２３記載のバス調停方法。
【請求項２９】
前記演算ステップは、前記マスタデバイスのバスタイムアウト時間から前記マスタデバイスの待機時間を減算して前記マスタデバイスのバスタイムアウト残り時間を求める請求項２３記載のバス調停方法。
【請求項３０】
前記演算ステップは、前記スレーブデバイスの応答時間の設定値に前記マスタデバイスのバスタイムアウト残り時間を加算して前記スレーブデバイスの応答性能値を求める請求項２３記載のバス調停方法。
【請求項３１】
前記演算ステップによる演算結果により、バスタイムアウトまでの残り時間の長いマスタデバイスほど、アクセスするスレーブデバイスの応答性能値を小さくさせる請求項３０記載のバス調停方法。
【請求項３２】
前記残り時間は、前記マスタデバイスがバス使用許可信号を取得したときのバスタイムアウトまでの残りクロック数であり、前記待機時間は、前記マスタデバイスからバス使用要求信号を受信してバス使用許可信号を取得するまでのクロック数とする請求項３０記載のバス調停方法。
【請求項３３】
前記通知信号受信ステップから前記許可信号送信ステップまでのアルゴリズムを有するプログラムを予め外部記憶手段に格納しておき、前記外部記憶手段から読み出した前記プログラムをＣＰＵに読み込ませるとともに、前記プログラムで前記ＣＰＵを制御することによってバス調停を行う請求項２３記載のバス調停方法。
【請求項３４】
複数のマスタデバイスと前記マスタデバイスの要求に応じてデータを転送する複数のスレーブデバイスとこれら複数のデバイス間で共有するシステムバスとを有し、前記スレーブデバイス側で前記マスタデバイス側のスレーブ通知信号を受信する通知信号受信ステップと、前記システムバスのバス使用要求信号を受信しているかを判定する受信判定ステップと、前記バス使用要求信号を受信している場合は、受信しているバス使用要求信号が複数あるかを判定し、１つのマスタデバイスから前記バス使用要求信号を受信している場合は、そのマスタデバイスにバス使用許可信号を送信し、複数のマスタデバイスから前記バス使用要求信号を受信している場合は、バスタイムアウトまでの残り時間に応じて最優先順位とすべき前記マスタデバイスとして応答性能値が最小値を示すものを選定する調停ステップと、アクセスする前記スレーブデバイスの応答性能値が最小値のマスタデバイスが複数存在するかを判定するマスタ存在数判定ステップと、複数存在する際には前記マスタデバイスの固定優先順位に基づき最優先順位のマスタデバイスを決めるマスタ決定ステップと、決定したマスタデバイスに前記バス使用許可信号を送信する許可信号送信ステップとを、ＣＰＵに実行させるプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はバス調停回路、バス調停方法およびそのプログラムに係わり、特に複数のマスタデバイス（以下、マスタと称す）と複数のスレーブデバイス（以下、スレーブと称す）を有し、それらのデバイスでバスを共有するシステムで、バスの使用権を調停する手段および方法を改善したバス調停回路、バス調停方法およびそのプログラムに関する。
【０００２】
【従来の技術】
この種のシステムは、例えば、マスタ側に複数のパーソナルコンピュータとスレーブ側に複数のプリンタ、複数のパーソナルコンピュータと複数のハードディスク等の周辺機器がシステムバスを共有し、かつ１つの調停回路でバスの使用優先権を調停する。
【０００３】
その場合、これらマスタ側の複数のパーソナルコンピュータは予めバス使用の優先順位が定められており、複数の周辺機器から同時にバス使用要求信号が出力されると、優先順位が最も高いパーソナルコンピュータにバス使用許可信号が与えられる。
【０００４】
上述した従来のバス調停回路では、優先順位が最も高いマスタが繰り返しスレーブをアクセスすると、そのマスタにバスが占用されることになり、優先順位が低いマスタはアクセスを待たされることになる、あるいはバスタイムアウト時間が終了してしまうという問題がある。
【０００５】
一方、近年の処理データの増加と高速化とにより、マスタ毎のバススループットには優劣を付け難く、優先順位の決定が困難になっており、固定した優先順位付けでは優先順位の低いマスタの待機時間が長くなる。
【０００６】
また、前述したバスタイムアウト時間の極端に短いマスタも存在し、入出力機能のデータ転送が長時間停滞した時にはバスタイムアウトが発生する。バスタイムアウトの発生はマスタのバススループットの低下につながり、バス調停回路はマスタのバスタイムアウト発生を抑制しなければならない。
【０００７】
この種の従来例が特開２００１−６７３０８号公報に記載されている。同公報記載のバス調停回路は、マスタのバスタイムアウト時間が短く、従来の固定優先順調停回路や優先順位を巡回させて調整する回転優先順調停回路（ラウンドロビン）では、マスタのバスタイムアウトの回避が困難な場合のために考案された。
【０００８】
上述した従来のバス調停回路の構成図を示した図２０とバス調整回路を含むシステムの接続図を示した図２１を参照すると、この従来のバス調停回路１０１を含むシステムは、複数のマスタ１〜マスタ４と、共有バスを介して接続される複数のスレーブ１〜スレーブ４と、マスタ１〜マスタ４それぞれからバス使用要求信号をバス使用要求信号受信部を介して受け、優先順位を調停した後、バス使用許可信号送信部を介してそれぞれにバス使用許可信号を返信するバス調停回路１０１とで構成されている。
【０００９】
バス調停回路１０１は、新規にバス使用要求信号を発信したマスタの情報を受け取り内部に取り込むバス使用要求信号受信部１０２と、バス使用要求信号受信部１０２の出力信号を受けるとともに、バス使用要求信号を複数のマスタから同時に受信している場合には、予め定めた固定優先順位に基づき調停を行い、最も優先順位の高いのマスタからのマスタ情報を先に出力し、バス使用要求信号を１つのマスタだけから受信している場合はバス使用要求信号受信部１０２の出力信号をそのまま出力するするマスタ固定優先調停部１０３とを有する。
【００１０】
また、バス調停回路１０１は、マスタ固定優先調停部１０３の出力信号を最下位の格納レジスタ１０５に受けて格納するとともに、格納した信号を、格納レジスタ１０５に縦続接続された上位の格納レジスタ１０６、格納レジスタ１０７および格納レジスタ１０８に空きがあれば順次シフトしていき、最上位の格納レジスタ１０８から出力する記憶部１０４を有する。
【００１１】
さらに、バス調停回路１０１は、記憶部１０４の出力信号を受信して、マスタ１〜マスタ４へバス使用許可信号を送信するバス使用許可信号送信部１１０と、記憶部１０４およびバス使用許可信号送信部１１０の制御を行う出力信号制御部１０９を有している。
【００１２】
なお、記憶部１０４内の格納レジスタの数は、バス調停回路１０１で調停を行うマスタの数以上が必要である。
【００１３】
上述した構成を有する従来のバス調停回路１０１は、固定的に決めた優先順位に従ってバス調停を行うのではなく、基本的には、あたかもＦＩＦＯレジスタのように、バス使用要求信号を受信した順番にバス使用許可信号を送信する先着優先バス調停回路である。ただし、マスタのバス使用要求信号を同時に複数受信した場合は、予め設定した固定優先順でマスタの調停を行っている。
【００１４】
【発明が解決しようとする課題】
上述したように、バス使用要求信号を受信した順番にバス使用許可信号を送信し、マスタのバス使用要求信号を同時に複数受信した場合は、予め設定した固定優先順でマスタの調停を行う従来のバス調停回路１０１は、マスタのバス占用時間が考慮されていない。
【００１５】
そのため、同時に複数のマスタのバス使用要求信号を受信すると、予め設定した固定優先順でマスタの調停を行い、優先順位を高く設定したマスタが低速スレーブにアクセスすると長時間バスを占用することになり、優先順位が低く設定されたマスタの待機時間が長くなり、バスタイムアウトの発生確率が高くなるという問題がある。
【００１６】
また、バスタイムアウト時間が考慮されていないため、マスタのバス使用要求信号を受信すると先着順に調停を行う際に、バスタイムアウト時間の短いマスタがバスタイムアウト時間の長いマスタよりも遅いタイミングでバス使用要求信号を出力した場合は、バスタイムアウト時間の短いマスタの優先度が下がり、待機時間が長くなる。
【００１７】
待機時間が長くなれば、バスタイムアウト時間が短いマスタは、バスタイムアウト発生までの時間がさらに短くなり、バスタイムアウトの発生確率が高くなるという問題がある。
【００１８】
本発明の目的は、上述した従来の欠点に鑑みなされたものであり、複数のマスタと複数のスレーブのデバイスを有し、それらのデバイスでバスを共有するシステムにおけるバスの使用要求の発生からバス使用許可を取得するまでの時間を短縮したバス調停回路とバス調停方法を提供することにある。
【００１９】
【課題を解決するための手段】
本発明のバス調停回路は、複数のマスタデバイスと前記マスタデバイスの要求に応じてデータを転送する複数のスレーブデバイスとこれら複数のデバイス間で共有するシステムバスとを有し、前記複数のマスタデバイスからのバス使用要求が競合する時に、応答時間の短いスレーブデバイスにアクセスするマスタデバイスの前記システムバス使用を最優先にして優先順位の低いマスタデバイスの待ち時間短縮機能を有することを特徴とする。
【００２０】
本発明のバス調停回路の他の特徴は、アクセスするスレーブデバイスの応答速度が遅いために優先順位が低く設定され待機時間が長くなる場合に、予め設定されたバスタイムアウト時間までの残り時間が、他のマスタデバイスよりも短くなってきたマスタデバイスのバス使用優先度を一時的に高くする調停を行ってバスタイムアウトの発生を抑制するバス使用優先度調停手段を有することにある。
【００２１】
本発明のバス調停回路のまた他の特徴は、マスタデバイスから、バス使用要求信号とアクセスするスレーブデバイスを通知するスレーブ通知信号とを受信し、アクセス対象の前記スレーブデバイスの応答性能値に応じて、前記マスタデバイスの優先度を再設定するバス使用調停手段を有することにある。
【００２２】
本発明のバス調停回路のさらに他の特徴は、マスタデバイスに予め設定されたバスタイムアウト時間までの残り時間に応じて、アクセス対象の前記スレーブデバイスの応答性能値を一時的でかつ他のマスタデバイスとの間で相対的に増減して再設定する演算を行うことにより、調停時に前記残り時間が短いマスタデバイスの優先度を引き上げて、前記マスタデバイスのバスタイムアウト発生を抑制するバス使用調停手段を有することにある。
【００２３】
本発明のバス調停回路のさらにまた他の特徴は、複数のマスタデバイスと前記マスタデバイスの要求に応じてデータを転送する複数のスレーブデバイスとこれら複数のデバイス間で共有するシステムバスとを有し、前記スレーブデバイス側で前記マスタデバイス側のスレーブ通知信号を受信する通知信号受信ステップと、前記システムバスのバス使用要求信号を受信しているかを判定する受信判定ステップと、前記バス使用要求信号を受信している場合は、受信しているバス使用要求信号が複数あるかを判定し、１つのマスタデバイスから前記バス使用要求信号を受信している場合は、そのマスタデバイスにバス使用許可信号を送信し、複数のマスタデバイスから前記バス使用要求信号を受信している場合は、バスタイムアウトまでの残り時間に応じて最優先順位とすべき前記マスタデバイスとして応答性能値が最小値を示すものを選定する調停ステップと、アクセスする前記スレーブデバイスの応答性能値が最小値のマスタデバイスが複数存在するかを判定するマスタ存在数判定ステップと、複数存在する際には前記マスタデバイスの固定優先順位に基づき最優先順位のマスタデバイスを決めるマスタ決定ステップと、決定したマスタデバイスに前記バス使用許可信号を送信する許可信号送信ステップとを備えることにある。
【００２４】
また、前記残り時間算出手段は、各マスタデバイスがバス使用要求信号で前記システムバスの使用を要求してからバスタイムアウトが発生するまでのバスタイムアウト時間を記憶するマスタ情報記憶手段と、前記スレーブデバイスが前記マスタデバイスからのアクセスを受けて応答を完了するまでの時間を記憶するスレーブ情報記憶手段と、前記バスタイムアウト時間および前記マスタデバイスの前記待機時間を基に、バス使用要求をしたマスタデバイスがバスタイムアウトするまでの残り時間を演算するバスタイムアウト残り時間演算手段とを備えることができる。
【００２５】
さらに、前記バスタイムアウト残り時間演算手段は、前記マスタデバイスのバスアクセスタイムから前記マスタデバイスの待機時間を減じて前記スレーブデバイスの応答性能値を求める機能を有することができる。
【００２６】
さらにまた、前記応答性能再設定手段は、前記スレーブデバイスが前記マスタデバイスからのアクセスを受けて応答を完了するまでの時間を記憶するスレーブ情報記憶手段と、マスタがアクセスするスレーブデバイスの応答時間を前記スレーブ情報記憶手段から読み出すスレーブ情報選択手段と、算出された前記残り時間に応じて、前記マスタデバイスがアクセスするスレーブデバイスの応答時間を一時的に増加または減少させる演算を行い、その演算結果を前記マスタデバイスがアクセスする前記スレーブデバイスの応答性能値として出力するスレーブ応答性能演算手段とを備えることもできる。
【００２７】
また、前記スレーブ応答性能演算手段は、前記アクセスするスレーブデバイスの応答時間の設定値と前記マスタデバイスの前記バスタイムアウト残り時間との和から前記スレーブデバイスの応答性能値を求める機能を有してもよい。
【００２８】
さらに、前記マスタ情報記憶手段に代えて、マスタデバイスのバスタイムアウト時間に関する情報を外部から受信するマスタ情報受信手段を有してもよい。
【００２９】
さらにまた、前記スレーブ情報記憶手段に代えて、スレーブデバイスの応答時間を外部から受信するためのスレーブ情報受信手段を有してもよい。
【００３０】
また、前記マスタ固定優先順調停手段に代えて、マスタデバイスを回転優先順位（ラウンドロビン）により優先順位を巡回させて調停するマスタ回転優先順調停手段を有してもよい。
【００３１】
本発明のバス調停回路の他の特徴は、複数のマスタデバイスと前記マスタデバイスの要求に応じてデータを転送する複数のスレーブデバイスとこれら複数のデバイス間で共有するシステムバスと前記複数のマスタデバイスが前記システムバスを使用する際の優先順位を調停するバス調停手段とを有し、
前記バス調停手段は、前記マスタデバイスがバス使用要求信号を発行してからバス使用許可信号を取得するまでの待機時間をカウントするマスタ待機時間監視手段と、前記待機時間を基にスレーブ応答性能値を演算により再設定する応答性能再設定手段と、再設定した前記スレーブ応答値の中から最小値が算出されたスレーブデバイスをアクセスしているマスタデバイスの情報を出力するスレーブ応答性能優先順調停手段と、前記応答性能値が最小値を示すマスタデバイスの情報が１つの場合はそのまま出力し複数存在する場合には、予め定めたマスタデバイスの固定優先順位で調停を行い、最優先のマスタデバイスを１つ決定するマスタ固定優先順調停手段と、決定された前記１つのマスタデバイスにバス使用許可信号を出力するとともに、前記最も高い優先順位のマスタデバイスの情報を前記マスタ待機時間監視手段へ通知するバス使用許可信号出力手段とを備えることにある。
【００３２】
また、前記スレーブ応答性能演算手段は、前記アクセスするスレーブデバイスの応答時間の設定値から前記マスタデバイスの待機時間を減じて前記スレーブデバイスの応答性能値を求める機能を有することができる。
【００３３】
さらに、前記応答性能再設定手段は、連続で複数回の転送を行うためにバス占有時間の延長指定を外部から行うマスタ転送回数信号受信手段と、前記スレーブデバイスが前記マスタデバイスからのアクセスを受けて応答を完了するまでの時間を記憶するスレーブ情報記憶手段と、前記マスタデバイスがアクセスするスレーブデバイスの応答時間を前記スレーブ情報記憶手段から読み出すスレーブ情報選択手段と、算出された前記残り時間および前記バス占有時間の延長指定に応じて、前記マスタデバイスがアクセスするスレーブデバイスの応答時間を一時的に増加または減少させる演算を行い、その演算結果を前記マスタデバイスがアクセスする前記スレーブデバイスの応答性能値として出力するスレーブ応答性能演算手段とを備えることもできる。
【００３４】
さらにまた、前記スレーブ応答性能演算手段は、アクセスする前記スレーブデバイスの応答時間の設定値と受信した前記マスタデバイスの転送回数との積と、前記マスタデバイスの前記バスタイムアウト残り時間との和から前記スレーブデバイスの応答性能値を求める機能を有してもよい。
【００３５】
また、前記応答性能再設定手段は、前記マスタデバイスとアクセスする前記スレーブデバイスとの組み合わせにより決定する定数を予め記憶し、前記スレーブ通知信号に応答して前記定数を選択する組み合わせ定数選択手段と、前記スレーブデバイスが前記マスタデバイスからのアクセスを受けて応答を完了するまでの時間を記憶するスレーブ情報記憶手段と、前記マスタデバイスがアクセスする前記スレーブデバイスの応答時間を前記スレーブ情報記憶手段から読み出すスレーブ情報選択手段と、算出された前記残り時間および前記定数に応じて、前記マスタデバイスがアクセスする前記スレーブデバイスの応答時間を一時的に増加または減少させる演算を行い、その演算結果を前記マスタデバイスがアクセスする前記スレーブデバイスの応答性能値として出力するスレーブ応答性能演算手段とを備えることもできる。
【００３６】
さらに、前記スレーブ応答性能演算手段は、アクセスする前記スレーブデバイスの応答時間の設定値と前記マスタデバイスのバスタイムアウト残り時間との和から、組み合わせ定数選択手段で設定した前記定数を減じて前記スレーブデバイスの応答性能値を求める機能を有してもよい。
【００３７】
本発明のバス調停方法は、複数のマスタデバイスと前記マスタデバイスの要求に応じてデータを転送する複数のスレーブデバイスとこれら複数のデバイス間で共有するシステムバスとを有し、前記複数のマスタデバイスからのバス使用要求が競合する時に、応答時間の短いスレーブデバイスにアクセスするマスタデバイスの前記システムバス使用を最優先にして優先順位の低いマスタデバイスの待ち時間を短縮することを特徴とする。
【００３８】
本発明のバス調停方法の他の特徴は、アクセスするスレーブデバイスの応答速度が遅いために優先順位が低く設定され待機時間が長くなる場合に、予め設定されたバスタイムアウト時間までの残り時間が、他のマスタデバイスよりも短いマスタデバイスのバス使用優先度を一時的に高くする調停を行ってバスタイムアウトの発生を抑制することにある。
【００３９】
本発明のバス調停方法のまた他の特徴は、マスタデバイスから、バス使用要求信号とアクセスするスレーブデバイスを通知するスレーブ通知信号とを受信し、アクセス対象の前記スレーブデバイスの応答性能値に応じて、前記マスタデバイスの優先度を再設定することにある。
【００４０】
本発明のバス調停方法のまたさらに他の特徴は、マスタデバイスに予め設定されたバスタイムアウト時間までの残り時間に応じて、アクセス対象の前記スレーブデバイスの応答性能値を一時的でかつ他のマスタデバイスとの間で相対的に増減して再設定する演算を行うことにより、調停時に前記残り時間が短くなってきたマスタデバイスの優先度を引き上げて、前記マスタデバイスのバスタイムアウト発生を抑制することにある。
【００４１】
本発明のバス調停方法の他の特徴は、複数のマスタデバイスと前記マスタデバイスの要求に応じてデータを転送する複数のスレーブデバイスとこれら複数のデバイス間で共有するシステムバスとを有し、前記スレーブデバイス側で前記マスタデバイス側のスレーブ通知信号を受信する通知信号受信ステップと、前記システムバスのバス使用要求信号を受信しているかを判定する受信判定ステップと、前記バス使用要求信号を受信している場合は、受信しているバス使用要求信号が複数あるかを判定し、１つのマスタデバイスから前記バス使用要求信号を受信している場合は、そのマスタデバイスにバス使用許可信号を送信し、複数のマスタデバイスから前記バス使用要求信号を受信している場合は、バスタイムアウトまでの残り時間に応じて最優先順位とすべき前記マスタデバイスとして応答性能値が最小値を示すものを選定する調停ステップと、アクセスする前記スレーブデバイスの応答性能値が最小値のマスタデバイスが複数存在するかを判定するマスタ存在数判定ステップと、複数存在する際には前記マスタデバイスの固定優先順位に基づき最優先順位のマスタデバイスを決めるマスタ決定ステップと、決定したマスタデバイスに前記バス使用許可信号を送信する許可信号送信ステップとを有することにある。
【００４２】
また、前記調停ステップは、複数のマスタデバイスから前記バス使用要求信号を受信している場合は、まず、スレーブ情報が格納されたスレーブ情報記憶手段の各スレーブ応答時間の中から、前記バス使用要求信号を受信しているマスタデバイスがアクセスする前記スレーブデバイスの応答時間を選択する選択ステップと、次に、前記マスタデバイスの待機時間およびマスタ情報が格納されたマスタ情報記憶手段のバスタイムアウト時間を参照して、前記マスタデバイスのバスタイムアウトまでの残り時間を算出する残り時間算出ステップと、前記残り時間に応じて、アクセスするスレーブデバイスの応答性能値が最小値を示すマスタデバイスを最優先させる演算を行う演算ステップとを有することができる。
【００４３】
さらに、前記マスタ決定ステップは、アクセスする前記スレーブデバイスの応答性能値が最小値を示すマスタデバイスが複数存在する場合は、その複数のマスタデバイスをまとめるグループ化ステップと、予め設定した固定優先順位でマスタデバイスの調停を行うマスタデバイス調停ステップと、最高優先のマスタデバイスを１つ決めるマスタデバイス最終決定ステップとを有することもできる。
【００４４】
さらにまた、前記調停ステップは、複数のマスタデバイスからバス使用要求信号を受信している場合は、まず、スレーブ情報が格納されたスレーブ情報記憶手段の各スレーブ応答時間の中から、前記バス使用要求信号を受信しているマスタデバイスがアクセスする前記スレーブデバイスの応答時間を選択する選択ステップと、前記マスタデバイスが前記バス使用許可信号を受けるまでの待機時間に応じて、アクセスする前記スレーブデバイスの応答性能値が最小値を示すマスタデバイスを最優先させる演算を行う演算ステップとを有することもできる。
【００４５】
また、前記スレーブ応答時間は、システム上で特定のスレーブデバイスにアクセスすることが重要であるときは、予め実際の応答時間よりも小さい値を設定して優先順位を上げてもよい。
【００４６】
さらに、前記マスタ応答時間は、システム上で特定のマスタデバイスがアクセスすることが重要であるときは、予め実際の応答時間よりも大きい値を設定して優先順位を上げてもよい。
【００４７】
さらにまた、前記演算ステップは、前記マスタデバイスのバスタイムアウト時間から前記マスタデバイスの待機時間を減算して前記マスタデバイスのバスタイムアウト残り時間を求めることができる。
【００４８】
また、前記演算ステップは、前記スレーブデバイスの応答時間の設定値に前記マスタデバイスのバスタイムアウト残り時間を加算して前記スレーブデバイスの応答性能値を求めることもできる。
【００４９】
さらに、前記演算ステップによる演算結果により、バスタイムアウトまでの残り時間の長いマスタデバイスほど、アクセスするスレーブデバイスの応答性能値を小さくさせることもできる。
【００５０】
さらにまた、前記残り時間は、前記マスタデバイスがバス使用許可信号を取得したときのバスタイムアウトまでの残りクロック数であり、前記待機時間は、前記マスタデバイスからバス使用要求信号を受信してバス使用許可信号を取得するまでのクロック数とすることもできる。
【００５１】
また、前記通知信号受信ステップから前記許可信号送信ステップまでのアルゴリズムを有するプログラムを予め外部記憶手段に格納しておき、前記外部記憶手段から読み出した前記プログラムをＣＰＵに読み込ませるとともに、前記プログラムで前記ＣＰＵを制御することによってバス調停を行ってもよい。
【００５２】
【発明の実施の形態】
本発明の第１の実施の形態を図面を参照しながら詳細に説明する。図１は本発明のバス調整回路を含むシステムの構成図であり、図２は本発明の第１の実施の形態におけるバス調停回路の構成図である。
【００５３】
まず、構成を説明する。図１および図２を参照すると、バス調停回路１を含むシステムは、複数のマスタ１（２１）〜マスタ４（２４）（以下、マスタ２１〜マスタ２４と称す）と、共有バスを介して接続される複数のスレーブ１（２５）〜スレーブ４（２８）（以下、スレーブ２５〜スレーブ２８と称す）と、マスタ２１〜マスタ２４それぞれからバス使用要求信号ＲＥＱをバス使用要求信号受信部２を介して受け、スレーブ通知信号ＳＬＶをスレーブ通知信号受信部３を介して受けて優先順位を調停した後、バス使用許可信号送信部４を介してそれぞれ対応するマスタ２１〜マスタ２４にバス使用許可信号ＡＣＫを返信するバス調停回路１とで構成されている。
【００５４】
第１の実施の形態におけるバス調停回路１は、マスタ２１〜マスタ２４から発信されたバスの使用要求信号ＲＥＱ１〜ＲＥＱ４を受信するバス使用要求信号受信部２と、マスタ２１〜マスタ２４がバス使用要求信号ＲＥＱ１〜ＲＥＱ４を出力してからバスタイムアウトが発生するまでの時間を示すバスタイムアウト時間を予め記憶させたマスタ情報記憶部４とを有する。
【００５５】
また、バス調停回路１は、バス使用要求信号受信部２を介してバス使用要求信号ＲＥＱ〜ＲＥＱ４を受信した時点からのそれぞれのマスタの待機時間を監視し、その待機時間を出力するマスタ待機時間監視部５と、出力されたそれぞれの待機時間およびそれぞれに対応するタイムアウト時間をマスタ情報記憶部４から読み出し、バスタイムアウトが発生するまでの残り時間を演算して出力するバスタイムアウト残り時間演算部６とを有する。
【００５６】
さらに、バス調停回路１は、マスタ２１〜マスタ２４のアクセスするスレーブ種類を示すスレーブ通知信号ＳＬＶ１〜ＳＬＶ４受信するスレーブ通知信号受信部３と、スレーブ２５〜スレーブ２８がマスタ２１〜マスタ２４のいずれかからアクセスを受け付けた後、応答を完了するまでの応答時間を予め記憶させたスレーブ情報記憶部７とを有する。
【００５７】
また、バス調停回路１は、スレーブ情報記憶部７に記憶したスレーブの種類に応じた応答時間から対応する応答時間の読み出しを制御するスレーブ情報選択部８と、スレーブ情報選択部８で選択した応答時間およびバスタイムアウト残り時間演算部６から出力された残り時間を基に、バスタイムアウトまでの残り時間が短いマスタがアクセス対象とするスレーブの応答時間を、一時的でかつ相対的に短くする、もしくは、バスタイムアウトまでの残り時間が長いマスタがアクセス対象とするスレーブの応答時間を、一時的でかつ相対的に長くする演算を行うとともに、その演算結果を出力するスレーブ応答性能演算部９とを有する。
【００５８】
さらに、バス調停回路１は、スレーブ応答性能演算部９から出力される演算結果およびバス使用要求信号受信部２からのバス使用要求信号ＲＥＱを基に、アクセスするスレーブの応答時間が短いマスタの優先順位を最も高くする調停、または、バス占有時間の短いマスタの優先順位を最も高くする調停を行い、調停結果を出力するスレーブ応答性能優先順調停部１０とを有する。
【００５９】
また、バス調停回路１は、スレーブ応答性能優先順調停部１０での調停結果で、優先順位が最も高く設定されたマスタが複数存在する場合には、予め設定したマスタの優先順位で調停を行い出力するマスタ固定優先調停部１１と、マスタ固定優先調停部１１で決定された優先順位に従いバス使用許可信号ＡＣＫ１〜ＡＣＫ４をそれぞれ対応するマスタ２１〜マスタ２４に出力するバス使用許可信号送信部１２とを有する。
【００６０】
次に、４つのマスタ２１〜２４を調停する場合のスレーブ応答性能優先順調停部１０とマスタ固定優先調停部１１の詳細な構成例を説明する。
【００６１】
スレーブ応答性能優先順調停部１０の構成を示した図３を参照すると、スレーブ応答性能優先順調停部１０は、スレーブ応答性能演算部９から、マスタ１のスレーブ応答性能値およびバス使用要求信号受信部２からマスタ１のバス使用要求信号の極性反転信号を入力し、マスタ１のバス使用要求信号がハイレベルのときマスタ１のスレーブ応答性能値するＯＲ回路３１と、マスタ２のスレーブ応答性能値およびバス使用要求信号受信部２からマスタ２のバス使用要求信号の極性反転信号を入力し、マスタ２のバス使用要求信号が論理レベルのハイレベル（以下、レベル“１”と称す）のときマスタ２のスレーブ応答性能値を出力するＯＲ回路３２と、ＯＲ回路３１およびＯＲ回路３２の出力するスレーブ応答性能値ａおよびｂを比較する比較部Ａ４１を有する。
【００６２】
比較部Ａ４１の構成を示した図４を参照すると、比較部Ａ４１は、内部に比較回路６１および一致判定回路６２と論理回路７１〜７３とを有する。比較回路６１は、入力ａの値と入力ｂの値とを比較し、入力ａの値が入力ｂの値より小さい場合に出力ｃからレベル“１”を出力し、それ以外の場合はレベル“０”を出力する。
【００６３】
一致判定回路６２は、入力ａの値と入力ｂの値が等しい場合に出力ｃから１を出力し、それ以外は０を出力する。比較部Ａ４１は、２つのマスタ１および２のスレーブ応答性能値ａおよびｂを比較し、応答性能の優れているマスタのマスタ情報ｃおよびｄとスレーブ応答性能値ｅを出力する。２つのマスタのスレーブ応答性能値が等しい場合は、２つのマスタのマスタ情報とそのスレーブ応答性能値を出力する。
【００６４】
再び図３において、スレーブ応答性能優先順調停部１０は、マスタ３のスレーブ応答性能値およびバス使用要求信号受信部２からマスタ３のバス使用要求信号の極性反転信号を入力し、マスタ３のバス使用要求信号がハイレベルのときマスタ３のスレーブ応答性能値を出力するＯＲ回路３３と、マスタ４のスレーブ応答性能値およびバス使用要求信号受信部２からマスタ４のバス使用要求信号の極性反転信号を入力し、マスタ４のバス使用要求信号がハイレベルのときマスタ４のスレーブ応答性能値するＯＲ回路３４とを有する
比較部Ａ４２は、比較部Ａ４１と同様の構成であり、２つのマスタ３および４のスレーブ応答性能値ａおよびｂを比較し、応答性能の優れているマスタのマスタ情報ｃおよびｄとスレーブ応答性能値ｅを出力する。２つのマスタのスレーブ応答性能値が等しい場合は、２つのマスタのマスタ情報とそのスレーブ応答性能値を出力する。
【００６５】
さらに、スレーブ応答性能優先順調停部１０は、比較部Ａ４１のカスタマ情報ｃを入力端子ｃに、カスタマ情報ｄを入力端子ｄに、スレーブ応答性能値ｅを入力端子ａにそれぞれ入力し、比較部Ａ４２のカスタマ情報ｃを入力端子ｅに、カスタマ情報ｅを入力端子ｂに、スレーブ応答性能値ｄを入力端子ｆにそれぞれ入力して比較する比較部Ｂ４３を有する。
【００６６】
比較部Ｂ４３の構成を示した図５を参照すると、比較部Ｂ４３は、内部に比較回路８１と一致判定回路８２と組み合わせ回路９１〜９４とを有する。比較回路８１は、比較回路６１と同様の回路で構成し、一致判定回路８２は、一致判定回路６２と同様の回路で構成する。
【００６７】
比較部Ｂ４３は、比較部Ａ４１と比較部Ａ４２から入力する２つのスレーブ応答性能値ａ，ｂを比較し、優れているスレーブ応答性能値を入力した側のマスタ情報を出力する。
【００６８】
２つのスレーブ応答性能値ａ，ｂが等しい場合は、双方から入力したマスタ情報ｃ，ｄ，ｅ，ｆを組み合わせ回路９１〜９４でそれぞれ選択し、マスタ出力ｇ，ｈ，ｉ，ｊのマスタ情報として出力する。これらの出力ｇ，ｈ，ｉ，ｊのマスタ情報は、図３において、それぞれ対応するマスタ１〜４のバス使用要求信号とＡＮＤ回路５１〜５４で選択され、マスタ固定優先調停部１１にマスタ１〜４のマスタ情報として出力される。
【００６９】
マスタ固定優先調停部１１は、その構成を示した図６を参照すると、入力したマスタ１〜４のマスタ情報のうち、マスタ１のマスタ情報をスルーで出力するとともにその極性反転させたマスタ情報とマスタ２のマスタ情報とを入力するＡＮＤ回路９５と、マスタ１の極性反転マスタ情報とマスタ２の極性反転マスタ情報とマスタ３のマスタ情報とを入力するＡＮＤ回路９６と、マスタ１の極性反転マスタ情報とマスタ２の極性反転マスタ情報とマスタ３極性反転マスタ情報とマスタ４のマスタ情報とを入力するＡＮＤ回路９７とを有し、マスタ情報が１個のときはその入力情報をスルーで出力する。
【００７０】
なお、図３、図４、図５、図６に示すスレーブ応答性能優先順調停部１０、マスタ固定優先調停部１１の構成はその一例を示すものであり、これらの構成に限定されない。同様の機能が実現できる構成であればよい。
【００７１】
上述した構成による本発明のバス調停回路１の機能を説明すると、バス使用要求信号受信部２は、各マスタ２１〜２４のバス使用要求信号ＲＥＱ１〜４を受信し、バス使用要求信号を発信しているマスタ２１〜２４がどのマスタであるかの情報を出力する。
【００７２】
スレーブ通知信号受信部３は、各マスタ２１〜２４のアクセスしようとするスレーブ２５〜２８のどれかを示すスレーブ通知信号ＳＬＶ１〜４を各マスタ２１〜２４から受信する。
【００７３】
マスタ情報記憶部４は、各マスタ２１〜２４のバスタイムアウト時間を予め記憶する。表１にバスに接続する各マスタのバスタイムアウト時間の一例を示す。
【００７４】
【表１】
2004078508.tif 000003
【００７５】
マスタ待機時間監視部５は、バス使用要求信号受信部２の出力信号とバス使用許可信号送信部１２からのバス使用許可信号ＡＣＫ送信先がマスタ２１〜２４のうちのどれであるかの情報とを入力し、バス使用許可信号取得待ちマスタの待機時間をカウンタでカウントし、待機時間を監視する。
【００７６】
バスタイムアウト残り時間演算部６は、マスタ情報記憶部４の出力信号であるマスタ２１〜２４のバスタイムアウト時間と、マスタ待機時間監視部５の出力信号であるマスタ２１〜２４の待機時間とを入力し、その２つの信号からマスタ２１〜２４それぞれがバスタイムアウトするまでの時間を演算する。
【００７７】
スレーブ情報記憶部７は、各スレーブ２５〜２８それぞれの応答時間、すなわち、マスタのアクセス開始からアクセス完了までの予め決められた時間を記憶する。
【００７８】
スレーブ情報選択部８は、スレーブ情報記憶部７の出力信号である各スレーブ応答時間の中から、スレーブ通知信号受信部３の出力信号である、マスタ２１〜２４がアクセスするスレーブ種類を基に、マスタ２１〜２４がアクセスするスレーブの応答時間を選択する。
【００７９】
スレーブ応答性能演算部９は、バスタイムアウト残り時間演算部６の出力信号であって、マスタ２１〜２４がバスタイムアウトするまでの残り時間と、スレーブ情報選択部８の出力信号であって、マスタ２１〜２４がアクセスするスレーブ２５〜２８それぞれの応答時間とを基に、マスタ２１〜２４がバスタイムアウトするまでの残り時間に応じて、スレーブ２４〜２８の応答時間を一時的でかつ相対的に変更する演算を行い、その演算結果をマスタ２１〜２４がアクセスするスレーブ２５〜２８の応答性能値として出力する。
【００８０】
スレーブ応答性能優先順調停部１０は、バス使用要求信号受信部２の出力信号であるバス使用要求信号ＲＥＱを入力し、スレーブ応答性能演算部９の出力信号である演算後のスレーブの応答性能値を基に、バス使用要求信号ＲＥＱを発信しているマスタ２１〜２４の中で、アクセスするスレーブ２５〜２８の応答性能値を比較し、応答性能値が最小値を示すマスタの情報を出力する。
【００８１】
なお、ここでのスレーブ応答性能の値が優れているマスタとは、スレーブ応答性能値が小さいマスタのことであり、最も優れているとは、性能値が最小値のことである。
【００８２】
マスタ固定優先調停部１１は、スレーブ応答性能優先順調停部１０の出力するマスタ２１〜２４の優先順位情報が複数ある場合に、予め定めたマスタの固定優先順位で調停を行い、その結果、最も優先順位の高いマスタを１つ出力し、マスタの優先順位情報が１つの場合は、優先順位の調停をせずにスレーブ応答性能優先順調停部１０の出力信号そのままを出力する。
【００８３】
バス使用許可信号出力部１２は、マスタ固定優先調停部１１の出力信号を入力し、入力された１つのマスタにバス使用許可信号ＡＣＫを出力すると同時に、バス使用許可信号ＡＣＫを出力した先のマスタがどれであるかを示す情報をマスタ待機時間監視部５へ出力する。
【００８４】
次に、上述した本発明の第１の実施の形態を、図１〜図６とバス調停方法のフローチャートを示した図７とを併せて参照しながら詳細に説明する。
【００８５】
本発明のバス調停回路１は、バス使用要求信号受信部２ではマスタ２１〜２４からのバス使用要求信号ＲＥＱを受信し、スレーブ通知信号受信部３ではマスタ２１〜２４からのスレーブ通知信号ＳＬＶを受信する（図５、ステップＳ１）。
【００８６】
次に、バス使用要求信号ＲＥＱを受信しているかを判定し（図６、ステップＳ２）、バス使用要求信号ＲＥＱを受信していない場合は、再びバス使用要求信号ＲＥＱとスレーブ通知信号ＳＬＶとを受信する（図６、ステップＳ１）。
【００８７】
バス使用要求信号ＲＥＱを受信している場合は、受信しているバス使用要求信号ＲＥＱが複数あるかを判定し（図６、ステップＳ３）、１つのマスタのバス使用要求信号を受信している場合は、そのマスタにバス使用許可信号送信部１２からバス使用許可信号ＡＣＫを送信する（図６、ステップＳ１２）。
【００８８】
一方、マスタ１〜４のうち複数のマスタのバス使用要求信号ＲＥＱを受信している場合は、まず、スレーブ情報選択部８で、スレーブ通知信号受信部３の出力信号ＳＬＶを基に、スレーブ情報記憶部７に予め格納された各スレーブ応答時間の中から、バス使用要求信号ＲＥＱを受信しているマスタがアクセスするスレーブの応答時間を選択する（図６、ステップＳ４）。
【００８９】
ここで、スレーブ情報記憶部７に格納されているスレーブ応答時間は、システム上で特定のスレーブにアクセスすることが重要である場合は、予め実際の応答時間より小さい（優れている）値を設定して、優先度を上げる場合もある。
【００９０】
次に、マスタ待機時間監視部５では、バス使用許可信号ＡＣＫの取得待ちをしているマスタが発信したバス使用要求信号ＲＥＱを受信すると、受信してからの待機時間を監視し、その待機時間情報をバスタイムアウト残り時間演算部６へ出力する。
【００９１】
バスタイムアウト残り時間演算部６では、マスタ待機時間監視部５から通知されたマスタの待機時間とマスタ情報記憶部４から受けたマスタのバスタイムアウト時間とから、マスタのバスタイムアウトまでの残り時間を算出する（図６、ステップＳ５）。
【００９２】
ここで、マスタ情報記憶部４のマスタ情報は、システム上で特定のマスタがアクセスすることが重要である場合、予め実際のバスタイムアウト時間より短い値を設定して、優先度を上げる場合もある。
【００９３】
次に、スレーブ応答性能演算部９では、バスタイムアウトまでの残り時間の短いマスタのアクセスするスレーブ応答性能値を一時的でかつ相対的に増加させる、もしくは、バスタイムアウトまでの残り時間の長いマスタのアクセスするスレーブ応答性能値を一時的でかつ相対的に減少させる演算を行う（図６、ステップＳ６）。
【００９４】
次に、スレーブ応答性能優先順調停部１０では、アクセスするスレーブの応答性能値が最小値のマスタを最も高い優先順位とする調停を行う（図６、ステップＳ７）。
【００９５】
次に、アクセスするスレーブの応答性能値が最小値のマスタが複数存在するかを判定する（図６、ステップＳ８）。
【００９６】
アクセスするスレーブの応答性能値の最小値のマスタが１つの場合は、そのマスタを最優先順位のマスタとしてスルーで出力し（図６、ステップＳ１１）、バス使用許可信号送信部１２からバス使用許可信号ＡＣＫを送信する（図６、ステップＳ１２）。
【００９７】
アクセスするスレーブの応答性能値が最小値のマスタが複数存在する場合は、その複数のマスタ情報をまとめてマスタ固定優先調停部１１へ出力する（図６、ステップＳ９）。マスタ固定優先調停部１１では予め設定した固定優先順位に従いマスタの調停を行う（図６、ステップＳ１０）。
【００９８】
調停により最優先順位のマスタが決まると（図６、ステップＳ１１）、バス使用許可信号送信部１２を介してバス使用許可信号ＡＣＫをアクセス対象のマスタへ送信する（図６、ステップＳ１２）。
【００９９】
ここで、バスタイムアウト残り時間演算部６における演算方法の例を以下に示す。
【０１００】
Ａ＝Ｂ−Ｃ・・・・・・・・・・・・・（１）
Ａは、バスタイムアウト残り時間演算部６の出力する、マスタのバスタイムアウト残り時間である。Ｂは、バスタイムアウト残り時間演算部６に入力する、マスタのバスタイムアウト時間である。Ｃは、バスタイムアウト残り時間演算部６に入力する、マスタの待機時間である。
【０１０１】
なお、バスタイムアウト残り時間演算部６において式（１）の演算を行う場合、バスタイムアウト残り時間演算部６は減算回路で構成できる。
【０１０２】
次に、スレーブ応答性能演算部９における演算方法の例を以下に示す。
【０１０３】
Ｄ＝Ｅ＋Ａ・・・・・・・・・・・・・・（２）
ここで、Ｄはスレーブ応答性能演算部９の出力する、アクセススレーブ応答性能の値である。Ｅはスレーブ応答性能演算部９の入力する、アクセススレーブの応答時間の設定値である。Ａはスレーブ応答性能演算部９の入力する、マスタのバスタイムアウト残り時間である。
【０１０４】
アクセススレーブの応答時間の設定値は、前述したように小さい値ほど優れているとし、スレーブ応答性能優先順調停部１０では、スレーブの応答性能値が小さいマスタを最優先とする調停を行う。
【０１０５】
なお、スレーブ応答性能演算部９で式（２）の演算を行う場合、スレーブ応答性能演算部９は加算回路で構成できる。
【０１０６】
次に、マスタ２１〜２４のバスタイムアウト時間およびスレーブ２５〜２８の応答時間例を示した図８と、表１と、バスに接続する各スレーブの応答時間例をまとめた表２と、各マスタの優先順位例をまとめた表３と、動作説明用のタイミングチャートを示した図９および図とを併せて参照しながら、動作をさらに詳細に説明する。
【０１０７】
なお、図９および図１０のタイミングチャートは連続しており、両図中のＴ４は同一のタイミングである。
【０１０８】
なお、ここでマスタのバスタイムアウト時間は、マスタがバス使用要求信号ＲＥＱを出力してからバスタイムアウトするまでのクロック数である。スレーブの応答時間は、小さい値ほど高速スレーブであることを示し、マスタがスレーブにアクセスする時のバス占有時間のクロック数と同じ値である。
【０１０９】
図８に示すように、４つのマスタ２１〜２４と４つのスレーブ２５〜２８とを接続した場合を例にとって説明する。
【０１１０】
スレーブ応答性能演算部９では、式（２）の演算を行うものとする。この演算により、バスタイムアウトまでの残り時間の長いマスタほど、アクセスするスレーブの応答性能値を落とす演算を行う。すなわち相対的に数値を増加または減少させ、応答性能値を変化させる。
【０１１１】
スレーブ応答性能優先順調停部１０では、スレーブの応答性能値が小さいマスタを最優先順位とする調停を行う。マスタ固定優先調停部１１でのマスタの固定優先順位は、式（３）に示すように、マスタ１がもっとも優先順位が高く、マスタ４が最も優先順位が低い設定とする。
【０１１２】
マスタ１＞マスタ２＞マスタ３＞マスタ４・・・・（３）
図９および図１０におけるＲＥＱ１とは、マスタ１からのバス使用要求信号であり、ＲＥＱ２とはマスタ２からのバス使用要求信号であり、ＲＥＱ３とはマスタ３からのバス使用要求信号であり、ＲＥＱ４とはマスタ４からのバス使用要求信号である。
【０１１３】
ＡＣＫ１とはマスタ１へのバス使用許可信号であり、ＡＣＫ２とはマスタ２へのバス使用許可信号であり、ＡＣＫ３とはマスタ３へのバス使用許可信号であり、ＡＣＫ４とはマスタ４へのバス使用許可信号である。
【０１１４】
いずれも、レベル“１”がアクティブレベルとする。図９、図１０において、ＲＥＱ１、ＲＥＱ２、ＲＥＱ３、ＲＥＱ４信号の下方に、マスタ２１〜２４がアクセスするスレーブ２５〜２８を示す（スレーブ通知信号ＳＬＶでもある）。
【０１１５】
待機時間は、マスタからバス使用要求信号ＲＥＱを受信して調停しバス使用許可信号ＡＣＫを出力するまでのクロック数であり、残り時間は、マスタがバス使用許可信号ＡＣＫを取得した時点における、バスタイムアウトまでの残りクロック数である。
【０１１６】
図１１は、タイミングＴ０からＴ９までの期間で、バス使用要求信号ＲＥＱを出力しているマスタ、それぞれのマスタのアクセスするスレーブ、アクセスするスレーブの応答時間、マスタのバスタイムまでの残り時間、演算後のスレーブ応答性能値、調停結果に基づきバス使用を許可するマスタの一覧表である。図１１を併せて参照しながら説明する。
【０１１７】
Ｔ０において、バス使用要求信号ＲＥＱ４を発信しているマスタがマスタ４だけなので、マスタ４にバス使用許可信号ＡＣＫ４を送信する。
【０１１８】
Ｔ１において、マスタ１、マスタ２、マスタ３からバス使用要求信号ＲＥＱを受信する。マスタ１はスレーブ３にアクセスし、マスタ２はスレーブ２にアクセスし、マスタ３はスレーブ１にアクセスする。それぞれのマスタがアクセスするスレーブの応答時間は、表２に示すように、スレーブ３は３クロック、スレーブ２は８クロック、スレーブ１は１２クロックである。
【０１１９】
【表２】
2004078508.tif 000004
【０１２０】
タイミングＴ１で各マスタがバス使用要求信号ＲＥＱを発信してからの待機時間は、マスタ１で１１クロック、マスタ２で６クロック、マスタ３で０クロックである。
【０１２１】
表１によれば、バスタイムアウト時間はマスタ１が５０クロック、マスタ２が６０クロック、マスタ３が３０クロック、マスタ４が４０クロックであるから、式（１）で示したとおりバスタイムアウトまでの残り時間は、〔バスタイムアウト時間〕−〔マスタの待機時間〕であり、マスタ１が（５０−１１）＝３９クロック、マスタ２が（６０−６）＝５４クロック、マスタ３が（３０−０）＝３０クロックとなる。
【０１２２】
演算後のスレーブ応答性能値は、表２に示したスレーブの応答時間を基に、式（２）で示すとおり、〔スレーブの応答時間〕＋〔マスタのタイムアウト残り時間〕であり、マスタ１ではスレーブ３にアクセスするから（３＋３９）＝４２、マスタ２ではスレーブ２にアクセスするから（８＋５４）＝６２、マスタ３ではスレーブ１にアクセスするから（１２＋３０）＝４２となる。
【０１２３】
最優先順位のマスタは、演算後のスレーブ応答性能値が４２であるマスタ１およびマスタ３の２つとなる。
【０１２４】
ここで、スレーブ応答性能値が最小値のマスタが複数存在するため（マスタ１とマスタ３）、マスタ固定優先順で調停を行い、式（３）で示すとおり、マスタ１の優先度を高く設定しているため、マスタ１にバス使用許可信号ＡＣＫ１を送信する。
【０１２５】
Ｔ２において、マスタ２、マスタ３、マスタ４からバス使用要求信号ＲＥＱを受信する。マスタ２はスレーブ２にアクセス、マスタ３はスレーブ１にアクセス、マスタ４はスレーブ２にアクセスする。
【０１２６】
それぞれのマスタがアクセスするスレーブの応答時間は、表２に示すように、スレーブ２は８クロック、スレーブ１は１２クロックである。
【０１２７】
タイミングＴ２で各マスタがバス使用要求信号ＲＥＱを発信してからの待機時間は、マスタ２で９クロック、マスタ３で３クロック、マスタ４で２クロックであり、式（１）で示したとおりバスタイムアウトまでの残り時間はマスタ２が（６０−９）＝５１クロック、マスタ３が（３０−３）＝２７クロック、マスタ４が（４０−２）＝３８クロックとなる。
【０１２８】
演算後のスレーブ応答性能値は式（２）で示すとおり、マスタ２が（８＋５１）＝５９、マスタ３が（１２＋２７）＝３９、マスタ４が（８＋３８）＝４６となる。最も高優先順位のマスタは、演算後のスレーブ応答性能値が３９であるマスタ３となるため、マスタ３にバス使用許可信号ＡＣＫ３を送信する。他のタイミングにおいても上記説明に準じた動作をするので、ここでの説明は省略する。
【０１２９】
上述した第１の実施の形態における効果を説明する。応答性能値が小さい（優れている）スレーブへアクセスするマスタを高優先順位とする調停ができることにより、バス占有時間の短いマスタが高優先順位となり、優先的にバスを使用することができる。したがって、低優先順位となるマスタの待機時間を短くすることができ、マスタのバスタイムアウトの発生を抑制することができる。
【０１３０】
また、バスタイムアウトまでの残り時間に応じて、そのマスタのアクセスするスレーブの応答性能値を演算して、一時的でかつ相対的にその値を増減させ、バスタイムアウトまでの残り時間が短いマスタを一時的でかつ相対的に優先度が向上する調停を行うことが出来る。したがって、バスタイムアウト時間の短いマスタや、待機時間を経てバスタイムアウトまでの残り時間が短くなったマスタを、調停時に一時的でかつ相対的に優先度を上げることができ、マスタのバスタイムアウトの発生を抑制することができる。
【０１３１】
以下に実際の効果を説明する。例えば図８に示すように４つのマスタ２１〜２４と４つのスレーブ２５〜２８とを接続した場合を想定し、効果比較するための、従来例のバス調停回路１０１での調停のタイミングチャートを示した図１２と、本発明のタイミングチャートを示した図１３と表１と表２とを参照すると、ＲＥＱ１とはマスタ１からのバス使用要求信号であり、ＲＥＱ２とはマスタ２からのバス使用要求信号であり、ＲＥＱ３とはマスタ３からのバス使用要求信号であり、ＲＥＱ４とはマスタ４からのバス使用要求信号である。
【０１３２】
ＡＣＫ１とはマスタ１へのバス使用許可信号であり、ＡＣＫ２とはマスタ２へのバス使用許可信号であり、ＡＣＫ３とはマスタ３へのバス使用許可信号であり、ＡＣＫ４とはマスタ４へのバス使用許可信号である。
【０１３３】
いずれも、レベル“１”がアクティブレベルとする。ＲＥＱ１、ＲＥＱ２、ＲＥＱ３、ＲＥＱ４とＡＣＫ１、ＡＣＫ２，ＡＣＫ３，ＡＣＫ４との関係は、ＲＥＱの下方にアクセス対象のＡＣＫ１〜４を示してある。また、このＡＣＫ１〜４はマスタがアクセスするスレーブを示すスレーブ通知信号ＳＬＶ１〜４でもある。
【０１３４】
待機時間は、マスタからバス使用要求信号ＲＥＱを受信してバス使用許可信号ＡＣＫを取得するまでのクロック数であり、残り時間は、マスタがバス使用許可信号ＡＣＫを取得した時点のバスタイムアウトまでの残りクロック数である。
【０１３５】
また、図１２および図１３では、いずれのマスタからもバス使用要求信号ＲＥＱを受信していない初期状態のとき、マスタ１からのバス使用要求信号ＲＥＱ１を受信して、その１クロック後にマスタ４のバス使用要求信号ＲＥＱ４を受信する。
【０１３６】
さらに、１クロック後にマスタ２とマスタ３のバス使用要求信号ＲＥＱ２，ＲＥＱ３を受信する。マスタ１は応答時間１２クロックのスレーブ１へアクセスし、マスタ２も応答時間１２クロックのスレーブ１へアクセスし、マスタ３は応答時間３クロックのスレーブ３へアクセスし、マスタ４は応答時間８クロックのスレーブ２へアクセスする。
【０１３７】
バス調停回路で、マスタを固定優先順で調停する場合の優先順位を式（３）のように設定する。
【０１３８】
前述した従来のバス調停回路１０１では、バス使用要求信号ＲＥＱの先着順とマスタの固定優先順で調停を行っていた。
【０１３９】
すなわち、タイミングＴ１０において、記憶部１０４には記憶しているマスタがない、つまり初期状態で、マスタ１からのみバス使用要求信号ＲＥＱ１を受信する。
【０１４０】
マスタ１のマスタ情報を格納レジスタ１０５で一旦格納し、最上位の格納レジスタ１０８までマスタ１のマスタ情報をシフトする。
【０１４１】
格納レジスタ１０８でマスタ１のマスタ情報を格納しているのでバス使用許可信号送信部１１０でマスタ１へバス使用許可信号ＡＣＫ１を送信する。
【０１４２】
タイミングＴ１１において、Ｔ１０の１クロック後、格納レジスタ１０８にマスタ１のマスタ情報を格納し、マスタ１の転送が終了していない状態で、マスタ４のバス使用要求信号ＲＥＱ４を新たに受信する。
【０１４３】
マスタ４のマスタ情報を格納レジスタ１０５で一旦格納し、格納レジスタ１０７までシフトする。
【０１４４】
タイミングＴ１２において、Ｔ１１の１クロック後、格納レジスタ１０８でマスタ１のマスタ情報を、格納レジスタ１０７でマスタ４のマスタ情報を格納し、マスタ１の転送が終了していない状態で、マスタ２とマスタ３のバス使用要求信号ＲＥＱ２，ＲＥＱ４を新たに受信する。
【０１４５】
同時に複数のマスタのバス使用要求信号ＲＥＱ２，ＲＥＱ４を受信したため、マスタ固定優先調停部１０３で設定したマスタの優先度を、式（３）に基づき、まず、マスタ２のマスタ情報を格納レジスタ１０５で一旦格納し、格納レジスタ１０６までシフトし、その後、マスタ３のマスタ情報を格納レジスタ１０５で格納する。
【０１４６】
タイミングＴ１３において、マスタ１の転送が終了したので、格納レジスタ１０８のマスタ１のマスタ情報を消去し、格納レジスタ１０７のマスタ４のマスタ情報を格納レジスタ１０８へ、格納レジスタ１０６のマスタ２のマスタ情報を格納レジスタ１０７へ、格納レジスタ１０５のマスタ３のマスタ情報を格納レジスタ１０６へシフトする。
【０１４７】
格納レジスタ１０８でマスタ４のマスタ情報を格納しているので、バス使用許可信号送信部１１０でマスタ４へバス使用許可信号を送信する。
【０１４８】
タイミングＴ１４において、マスタ４の転送が終了したので、格納レジスタ１０８のマスタ４のマスタ情報を消去し、格納レジスタ１０７のマスタ２のマスタ情報を格納レジスタ１０８へ、格納レジスタ１０６のマスタ３のマスタ情報を格納レジスタ１０７へ、それぞれシフトする。格納レジスタ１０８でマスタ２のマスタ情報を格納しているのでバス使用許可信号送信部１１０でマスタ２へバス使用許可信号ＡＣＫ２を送信する。
【０１４９】
タイミングＴ１５において、マスタ２の転送が終了したので、格納レジスタ１０８のマスタ２のマスタ情報を消去し、格納レジスタ１０７のマスタ３のマスタ情報を格納レジスタ１０８へシフトする。
【０１５０】
しかし、マスタ３の待機時間がバスタイムアウト時間に達しているので、マスタ３にバスタイムアウトが発生する。以上の動作の結果、以下のようになる。
【０１５１】
バス使用許可信号の遷移：マスタ１→マスタ４→マスタ２→マスタ３
バスタイムアウトまでの残り時間の平均時間：３０
バスタイムアウトまでの残り時間の最小時間：０（マスタ３）⇒ここでバスタイムアウト発生
次に、本発明のバス調停回路１を適用した場合の効果を説明する。図１に示す本発明のバス調停回路１では、マスタ２１〜２４のアクセスするスレーブ２５〜２８の応答性能値とマスタのバスタイムアウト時間とを考慮して調停を行う。
【０１５２】
Ｔ２０において、いずれのマスタにもバス使用許可信号ＡＣＫを送信していない初期状態で、マスタ１からのみバス使用要求信号ＲＥＱ１を受信する。
【０１５３】
バス使用要求信号ＲＥＱ１を発信しているマスタが１つ（マスタ１）であるので、そのマスタ（マスタ１）にバス使用許可信号ＡＣＫ１を送信する。
【０１５４】
タイミングＴ２１において、Ｔ２０の１クロック後、既にマスタ１のバス使用要求信号ＲＥＱ１を受信し、マスタ１にバス使用許可信号ＲＥＱ１を送信している状態で、マスタ４のバス使用要求信号ＲＥＱ４を新たに受信する。マスタ１がバスを占有しているため、マスタ４は待機状態となる。
【０１５５】
タイミングＴ２２において、Ｔ２１の１クロック後、既にマスタ１とマスタ４のバス使用要求信号ＲＥＱ１，ＲＥＱ４を受信し、マスタ１にバス使用許可信号ＡＣＫ１を送信している状態で、マスタ２とマスタ３のバス使用要求信号ＲＥＱ２，ＲＥＱ３を新たに受信する。
【０１５６】
マスタ１がバスを占有しているため、マスタ２とマスタ３はマスタ４と共に待機状態となる。
【０１５７】
タイミングＴ２３において、マスタ２、マスタ３、マスタ４からバス使用要求信号ＲＥＱ２，ＲＥＱ３，ＲＥＱ４を受信している状態で、マスタ１の転送が終了する。
【０１５８】
マスタ２はスレーブ１にアクセス、マスタ３はスレーブ３にアクセス、マスタ４はスレーブ２にアクセスする。それぞれのマスタがアクセスするスレーブの応答時間は、表２に示すように、スレーブ１は１２クロック、スレーブ３は３クロック、スレーブ２は８クロックである。
【０１５９】
Ｔ２３のタイミングで各マスタのバス使用要求信号ＲＥＱを受信してからの待機時間は、マスタ２で１０クロック、マスタ３で１０クロック、マスタ４で１１クロックであり、式（１）で示したとおりバスタイムアウトまでの残り時間は、マスタ２が（６０−１０）＝５０クロック、マスタ３が（３０−１０）＝２０クロック、マスタ４が（４０−１１）＝２９クロックとなる。
【０１６０】
演算後のスレーブ応答性能値は式（２）で示すとおり、マスタ２で（１２＋５６）＝６２、マスタ３で（３＋２０）＝２３、マスタ４で（８＋２９）＝３７となる。最優先のマスタは、演算後のスレーブ応答性能値が２３であるマスタ３となるため、マスタ３にバス使用許可信号ＡＣＫ３を送信する。
【０１６１】
タイミングＴ２４において、マスタ２、マスタ４からバス使用要求信号ＲＥＱ２，ＲＥＱ３を受信している状態で、マスタ３の転送が終了する。マスタ２はスレーブ１にアクセス、マスタ４はスレーブ２にアクセスする。
【０１６２】
それぞれのマスタがアクセスするスレーブの応答時間は、表２に示すように、スレーブ１は１２クロック、スレーブ２は８クロックである。
【０１６３】
Ｔ２４のタイミングで各マスタのバス使用要求信号ＲＥＱを受信してからの待機時間は、マスタ２で１３クロック、マスタ４で１４クロックであり、式（１）で示したとおりバスタイムアウトまでの残り時間はマスタ２が（６０−１３）＝４７クロック、マスタ４が（４０−１４）＝２６クロックとなる。
【０１６４】
演算後のスレーブ応答性能値は式（２）で示すとおり、マスタ２ではスレーブ１をアクセスしているので（４７＋１２）＝５９、マスタ４ではスレーブ２をアクセスしているので（２６＋８）＝３４となる。最も高優先のマスタは、演算後のスレーブ応答性能値が３４であるマスタ４となるため、マスタ４にバス使用許可信号ＡＣＫ４を送信する。
【０１６５】
タイミングＴ２５において、マスタ２からバス使用要求信号ＲＥＱ２を受信している状態で、マスタ４の転送が終了する。バス使用要求信号ＲＥＱ２を受信しているマスタがマスタ２のみであるので、マスタ２へバス使用許可信号ＡＣＫ２を送信する。
【０１６６】
以上の動作の結果、以下のようになる。
【０１６７】
バス使用許可信号の遷移：マスタ１→マスタ３→マスタ４→マスタ２
バスタイムアウトまでの残り時間の平均時間：３８
バスタイムアウトまでの残り時間の最小時間：２０（マスタ３）
次に、第２の実施の形態を説明する。
【０１６８】
第２の実施の形態の構成を示した図１４を参照すると、上述した第１の実施の形態との相違点は、マスタのバスタイムアウト時間を記憶するマスタ情報記憶部４の代わりに、マスタのバスタイムアウト時間に関する情報をバス調停回路の外部から受信するマスタ情報信号受信部１３を設けたことである。それ以外の構成は第１の実施の形態と同様であるから、ここでの構成の説明は省略する。
【０１６９】
第１の実施の形態では、マスタ２１〜マスタ２４がバス使用要求信号ＲＥＱ１〜ＲＥＱ４を出力してからバスタイムアウトが発生するまでの時間を示すバスタイムアウト時間を予めマスタ情報記憶部４に記憶させていたので、それ以外の新たに追加するマスタには対応できなかった。
【０１７０】
また、ある目的を持って意識的にバスタイムアウト時間を変更してバスの優先順位を任意に変更することや、マスタの動作状態やアクセス領域により、バスタイムアウト時間が変動する場合に対応が出来なかった。
【０１７１】
したがって、マスタ情報信号受信部１３を設けることにより、第１の実施の形態の効果に加え、マスタのバスタイムアウト時間をダイナミックに変化させる場合に対応できる効果も有する。
【０１７２】
次に、第３の実施の形態を説明する。
【０１７３】
第３の実施の形態の構成を示した図１５を参照すると、前述した第１の実施の形態との相違点は、スレーブの応答時間を記憶するスレーブ情報記憶部７の代わりに、スレーブの応答時間をバス調停回路１の外部から受信するスレーブ情報信号受信部１４を設けたことである。それ以外の構成は第１の実施の形態と同様であるから、ここでの構成の説明は省略する。
【０１７４】
第１の実施の形態ではスレーブの応答時間をスレーブ情報信号受信部１４に記憶させていたので、それ以外の新たに追加するスレーブには対応できなかった。
【０１７５】
また、ある目的を持って意識的にスレーブの応答時間を変更してバスの優先順位を任意に変更することや、スレーブの動作状態やアクセス領域により、スレーブの応答時間が変動する場合に対応が出来なかった。
【０１７６】
したがって、スレーブ情報信号受信部１４を設けることにより、第１の実施の形態の効果に加え、スレーブの応答時間がダイナミックに変化する場合に対応できる効果もある。
【０１７７】
次に、第４の実施の形態を説明する。
【０１７８】
第４の実施の形態の構成を示した図１６を参照すると、第１の実施の形態との相違点は、マスタを固定優先順位で調停を行うマスタ固定優先調停部１１の代わりに、マスタを回転優先順位（ラウンドロビン）で調停を行うマスタ回転優先調停部１５を設けたことである。それ以外の構成は第１の実施の形態と同様であるから、ここでの構成の説明は省略する。
【０１７９】
前述したように回転優先順位（ラウンドロビン）は優先順位を巡回させて調整する方法であるが、本発明に適用する場合の一例として表３に示す。この表３ではマスタ回転優先調停部１５において優先順位を変化させた例である。
【０１８０】
【表３】
2004078508.tif 000005
【０１８１】
すなわち、図７のステップＳ１０において、第１の実施の形態では、アクセスするスレーブの応答性能値が最小値のマスタが複数存在する場合は、その複数のマスタの情報をまとめてマスタ固定優先調停部１１へ出力されるのを受けて、マスタ固定優先調停部１１では予め設定した固定優先順位に従いマスタの調停を行っていた。
【０１８２】
これに対しここでは、固定優先に代わりに回転優先順位に基づいて調停を行うので、例えば、前の調停でバス使用許可信号を送信したマスタがマスタ１であったとすると、次調停の優先順位はマスタ２、マスタ３、マスタ４、マスタ１となり、同様に前の調停がマスタ４であったとすると、次調停の優先順位はマスタ１、マスタ２、マスタ３、マスタ４のように優先順位が巡回する。
【０１８３】
上述したように、マスタ回転優先調停部１５を設けることにより、第１の実施の形態の効果に加え、スレーブ応答性能優先順調停部１０で最も高優先となるマスタが複数存在することが多くなる場合に、特定のマスタを優先することなく巡回して調停することができる。
【０１８４】
次に、第５の実施の形態を説明する。
【０１８５】
第５の実施の形態の構成を示した図１７を参照すると、第１の実施の形態との相違点は、第１の実施の形態におけるバスタイムアウト残り時間演算部６とマスタ情報記憶部４を削除して、スレーブ応答性能演算部１６で、マスタの待機時間からアクセスするスレーブの応答性能を演算させたことである。それ以外の構成要素は第１の実施の形態と同様であるから、ここでの構成の説明は省略する。
【０１８６】
また、上記構成要素の削除に伴い、図７のフローチャートでもステップＳ５を削除する。以下に、スレーブ応答性能演算部１６での演算方法の例を説明する。
【０１８７】
アクセススレーブ応答性能値を求めるには、次の演算を行う。
【０１８８】
Ｄ＝Ｅ−Ｃ・・・・・・・・・・・・・（４）
Ｄはスレーブ応答性能演算部１６の出力するアクセススレーブ応答性能値である。Ｅはスレーブ応答性能演算部１６の入力するスレーブ情報選択部８で選択したアクセススレーブの応答時間の設定値である。Ｃはスレーブ応答性能演算部１６の入力するマスタの待機時間である。
【０１８９】
式（４）を実行することにより、例えば、バスタイムアウト時間がほぼ等しいマスタのバス使用が競合した場合、応答時間の短いスレーブは先にタイムアウトしてしまうことになる。
【０１９０】
そのため、それぞれのマスタがアクセスするスレーブに設定されている応答時間からその時点におけるそれぞれのマスタが待たされた待機時間を引き算すると、応答時間の短いスレーブはその応答性能値が小さくなるので、優先順位が上がり、タイムアウトを避けることが出来る。
【０１９１】
構成要素としては第１の実施の形態のバス調停回路１から演算部と記憶部を削除し、図７の動作フローからステップＳ５を削除できるので、バス調停回路１の構成を小さくすることができチップ面積の有効利用または縮小に貢献する効果もある。
【０１９２】
なお、スレーブ応答性能演算部１６で式（４）の演算を行う場合、スレーブ応答性能演算部１６は減算回路で構成できる。
【０１９３】
次に、第６の実施の形態を説明する。
【０１９４】
第６の実施の形態の構成を示した図１８を参照すると、第１の実施の形態との相違点は、バス調停回路１の外部からマスタ転送回数信号が与えられるマスタ転送回数信号受信部１７を追加し、その出力のマスタ転送回数信号をスレーブ応答性能演算部１８に演算条件として与えることである。それ以外の構成要素は第１の実施の形態と同様であるから、ここでの構成の説明は省略する。
【０１９５】
すなわち、外部からマスタ転送回数信号が与えられることにより、スレーブ応答性能演算部１８では以下の演算を行う。
【０１９６】
Ｄ＝Ｅ×Ｆ＋Ａ・・・・・・・・・・・・・（５）
ここで、Ｄはスレーブ応答性能演算部１８の出力するアクセススレーブ応答性能としての値である。Ｅはスレーブ応答性能演算部１８の入力するアクセススレーブの応答時間の設定値である。Ｆはスレーブ応答性能演算部１８の入力する受信したマスタの転送回数である。Ａはスレーブ応答性能演算部１８の入力するマスタのバスタイムアウト残り時間である。
【０１９７】
マスタ転送回数信号受信部１７を設けることにより、例えば、あるマスタが連続で複数回の転送を行った場合、他のマスタは残り時間がなくなりタイムアウトする場合が考えられる。
【０１９８】
すなわち、マスタ１がアクセスするスレーブの応答性能値が小さくマスタの残り時間は長いものとする。このマスタ１が繰り返しバスを占有すると他のマスタはタイムアウトするので、上記の式（５）の演算を実行することにより、例えスレーブの応答性能値が小さくとも、その値が転送回数倍され、さらに残り時間が加算されるので、マスタ１の優先順位は下がり、他のマスタがタイムアウトされるのを防ぐことが出来る。
【０１９９】
スレーブ応答性能演算部１８で式（５）の演算を行う場合、スレーブ応答性能演算部１８は乗算回路と加算回路で構成できる。
【０２００】
次に、第７の実施の形態を説明する。
【０２０１】
第７の実施の形態の構成を示した図１９を参照すると、第１の実施の形態との相違点は、バス調停回路１の内部に、マスタとマスタがアクセスするスレーブの組み合わせにより決定する定数を予め記憶し、スレーブ通知信号受信部３の出力信号をもとに、定数を選択する組み合わせ定数選択部２０を有することである。
それ以外の構成要素は第１の実施の形態と同様であるので、ここでの構成の説明は省略する。
【０２０２】
なお、組み合わせ定数選択部２０で記憶する、マスタとスレーブの組み合わせで設定する定数Ｇの例を表４に示す。
【０２０３】
【表４】
2004078508.tif 000006
【０２０４】
表４を参照すると、例えばマスタ１ではスレーブ４との組み合わせの定数が５に設定され、マスタ２ではスレーブ１との組み合わせの定数が３に設定され、
マスタ３ではスレーブは全ての組み合わせの定数が０に設定され、マスタ４ではスレーブ４との組み合わせの定数が８に設定されている。
【０２０５】
上記定数に従いスレーブ応答性能演算部１９での演算方法の例を以下に示す。
【０２０６】
Ｄ＝Ｅ＋Ａ−Ｇ・・・・・・・・・・・・・（６）
ここで、Ｄは、スレーブ応答性能演算部１９の出力する、アクセススレーブ応答性能の値である。Ｅは、スレーブ応答性能演算部１９の入力する、アクセススレーブの応答時間の設定値である。Ａはスレーブ応答性能演算部１９の入力する、マスタのバスタイムアウト残り時間である。Ｇはスレーブ応答性能演算部１９の入力する組み合わせ定数選択部２０で、スレーブ通知信号受信部３の出力信号をもとに、マスタとスレーブの組み合わせで設定する定数である。
【０２０７】
従って、スレーブ応答性能演算部１９では、組み合わせ定数選択部２０で出力する定数も用いて演算を行う。上記式（６）に表（４）の定数を適用して演算すると、定数が大きいほどアクセススレーブ応答性能値が小さくなり、この例ではマスタ４とスレーブ４の組み合わせが最も優先順位が高く、次にマスタ１とスレーブ４、マスタ２とスレーブ１、マスタ３と全てのスレーブの順に優先順位を変化させることが出来る。
【０２０８】
すなわち、特定のマスタから特定のスレーブに対してアクセスする場合に優先度を一時的に向上することが解る。
【０２０９】
上述したように、本実施の形態では、特定のマスタが特定のスレーブにアクセスすることがシステム上で重要である場合に有効である。
【０２１０】
スレーブ応答性能演算部１９で式（６）の演算を行う場合、スレーブ応答性能演算部１９は加算回路と減算回路で構成できる。
【０２１１】
次に、第８の実施の形態を説明する。
【０２１２】
上述した本発明は、図７における通知信号受信ステップＳ１から許可信号送信ステップＳ１２までのアルゴリズムを有するプログラムを備えるが、このプログラムをメモリに書き込み、かつそのプログラムをＣＰＵに読み込み、そのプログラムでＣＰＵを制御することによってバス調停を行うこともできる。
【０２１３】
【発明の効果】
上述したように、本発明のバス調停回路およびバス調停方法およびそのプログラムは、マスタに予め設定されたバスタイムアウト時間までの残り時間に応じて、アクセス対象のスレーブの応答性能値を一時的でかつ他のマスタとの間で相対的に再設定する演算を行うことにより、調停時に残り時間が短くなってきたマスタの優先度を引き上げて、マスタのバスタイムアウト発生を抑制するバス使用調停手段を有するので、
応答性能値が小さいスレーブへアクセスするマスタを高優先とする調停ができるので、バス占有時間の短いマスタが優先的にバスを使用することができ、かつ低優先となるマスタの待機時間を短くすることができ、従って、マスタのバスタイムアウトの発生を抑制する効果が得られる。
【０２１４】
また、バスタイムアウトまでの残り時間に応じて、そのマスタのアクセスするスレーブの応答性能値を演算して、一時的でかつ相対的にその値を増加または減少させることにより、バスタイムアウトまでの残り時間が短いマスタを一時的でかつ相対的に優先度を向上させる調停を行い、バスタイムアウト時間の短いマスタや、待機時間を経てバスタイムアウトまでの残り時間が短くなったマスタを、調停時に一時的でかつ相対的に優先度を上げることができ、マスタのバスタイムアウトの発生を抑制する効果が得られる。
【図面の簡単な説明】
【図１】本発明のバス調整回路を含むシステムの構成図である。
【図２】第１の実施の形態におけるバス調停回路の構成図である。
【図３】スレーブ応答性能優先順調停部１０の構成図である。
【図４】比較部Ａ４１の構成図である。
【図５】比較部Ｂ４３の構成図である。
【図６】マスタ固定優先調停部１１の構成図である。
【図７】バス調停方法のフローチャートである。
【図８】マスタ２１〜２４のバスタイムアウト時間およびスレーブ２５〜２８の応答時間例を示す図である。
【図９】第１の実施の形態の動作説明用タイミングチャートである。
【図１０】図９の後半のタイミングチャートである。
【図１１】本発明における調整を行うタイミングとバス調停結果に基づき使用を許可するマスタの一覧表を示す図である。
【図１２】効果比較するための、従来例のバス調停回路１０１での調停のタイミングチャートである。
【図１３】効果比較するための、本発明のバス調停回路１での調停のタイミングチャートである。
【図１４】第２の実施の形態の構成図である。
【図１５】第３の実施の形態の構成図である。
【図１６】第４の実施の形態の構成図である。
【図１７】第５の実施の形態の構成図である。
【図１８】第６の実施の形態の構成図である。
【図１９】第７の実施の形態の構成図である。
【図２０】従来のバス調停回路の構成図である。
【図２１】従来のバス調整回路を含むシステムの接続図である。
【符号の説明】
１，１０１　　バス調停回路
２，１０２　　バス使用要求信号受信部
３　　スレーブ通知信号受信部
４　　マスタ情報記憶部
５　　マスタ待機時間監視部
６　　バスタイムアウト残り時間演算部
７　　スレーブ情報記憶部
８　　スレーブ情報選択部
９，１６，１８，１９　　スレーブ応答性能演算部
１０　　スレーブ応答性能優先順調停部
１１，１０３　　マスタ固定優先調停部
１２，１１０　　バス使用許可信号送信部
１３　　マスタ情報信号受信部
１４　　スレーブ情報信号受信部
１５　　マスタ回転優先調停部
１７　　マスタ転送回数信号受信部
２０　　組み合わせ定数選択部
２１　　マスタ１
２２　　マスタ２
２３　　マスタ３
２４　　マスタ４
２５　　スレーブ１
２６　　スレーブ２
２７　　スレーブ３
２８　　スレーブ４
３１，・・・，３４，７１，７２　　ＯＲ回路
４１，４２　　比較部Ａ
４３　　比較部Ｂ
５１，・・・，５４，９５，９６，９７　　ＡＮＤ回路
６１，８１　　比較回路
６２，８２　　一致判定回路
７３，９１，・・・，９４　　組み合わせ回路
１０４　　記憶部
１０５，・・・，１０８　　格納レジスタ
１０９　　出力信号制御部
ＡＣＫ１，ＡＣＫ２，ＡＣＫ３，ＡＣＫ４　　バス使用許可信号
ＲＥＱ，ＲＥＱ２，ＲＥＱ３，ＲＥＱ４　　バス使用要求信号
ＳＬＶ１，ＳＬＶ２，ＳＬＶ３，ＳＬＶ４　　スレーブ通知信号
【図１】
2004078508.tif 000007
【図２】
2004078508.tif 000008
【図３】
2004078508.tif 000009
【図４】
2004078508.tif 000010
【図５】
2004078508.tif 000011
【図６】
2004078508.tif 000012
【図７】
2004078508.tif 000013
【図８】
2004078508.tif 000014
【図９】
2004078508.tif 000015
【図１０】
2004078508.tif 000016
【図１１】
2004078508.tif 000017
【図１２】
2004078508.tif 000018
【図１３】
2004078508.tif 000019
【図１４】
2004078508.tif 000020
【図１５】
2004078508.tif 000021
【図１６】
2004078508.tif 000022
【図１７】
2004078508.tif 000023
【図１８】
2004078508.tif 000024
【図１９】
2004078508.tif 000025
【図２０】
2004078508.tif 000026
【図２１】
2004078508.tif 000027