(57)【特許請求の範囲】
【請求項１】
複数のマスタとスレーブが接続されたバスに接続されているバス調停装置であって、
前記マスタ毎に転送回数を設定する設定手段と、
前記マスタ毎にバス使用権が付与された回数をカウントするカウンタと、
前記カウンタの値に応じて、前記マスタからのバス使用要求を抑制するバス使用要求抑制手段と、
前記バス使用要求抑制手段により抑制されなかったバス使用要求の中からバス使用権を付与するバス使用要求を選択する選択手段と、
前記スレーブの動作中、前記転送回数のバス使用権が全ての前記マスタに対して付与されていない場合、前記カウンタの再設定を待つように制御する制御手段とを有することを特徴とするバス調停装置。
【請求項２】
前記カウンタは、マスタにバス使用権が付与された回数をカウントするカウンタであることを特徴とする請求項１に記載のバス調停装置。
【請求項３】
前記制御手段は、スレーブが受信した転送コマンドを保持するコマンドキューの使用段数を監視し、前記コマンドキューの使用段数が予め設定した数以下となり、かつ、前記バス使用要求抑制手段により抑制されなかったバス使用要求がなくなった場合に、前記カウンタを再設定するように制御することを特徴とする請求項１に記載のバス調停装置。
【請求項４】
前記バス使用要求抑制手段は、前記カウンタの値に応じて前記マスタからのバス使用要求をマスクする回路であり、前記選択手段は前記バス使用要求抑制手段によりマスクされなかったバス使用要求の中からバス使用権を付与するバス使用要求を選択することを特徴とする請求項１に記載のバス調停装置。
【請求項５】
複数のマスタとスレーブが接続されたバスに接続され、前記マスタ毎にバス使用権が付与された回数をカウントするカウンタを有するバス調停装置によるバス調停方法であって、
前記マスタ毎に転送回数を設定する設定工程と、
前記カウンタによって前記マスタ毎にバス使用権が付与された回数をカウントするカウント工程と、
前記カウント工程でカウントした値に応じて、前記マスタからのバス使用要求を抑制するバス使用要求抑制工程と、
前記バス使用要求抑制工程で抑制されなかったバス使用要求の中からバス使用権を付与するバス使用要求を選択する選択工程と、
前記スレーブの動作中、前記転送回数のバス使用権が全ての前記マスタに対して付与されていない場合、前記カウンタの再設定を待つように制御する制御工程とを有することを特徴とするバス調停方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バスマスタのバス使用権獲得回数の比率を設定するバス調停装置に関する。
【背景技術】
【０００２】
従来、バスを共有する複数のバスマスタに対するバス使用権を決定するために、バス調停装置が使用されている。各バスマスタに対するバス使用権の優先順位は、それぞれのマスタに平等であるものや、予め定めた固定の順位を設定するものなど、用途に応じて様々なものが提案されている。
【０００３】
また、バス調停装置の中には、各バスマスタに対するバスを使用する割合を設定可能なものも提案されている。特許文献１では、バスマスタがバス使用権を獲得する回数の比率を自由に設定できるバス調停装置が提案されている。
【０００４】
これは、バスマスタごとにバス使用権を獲得する数を予め設定し、バス使用権を与えた回数が予め設定した数に達したバスマスタに対するバス使用要求信号をマスクすることで、各バスマスタのバス使用権の獲得回数を制御する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１０−３２６２５３
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上述した従来のバス調停装置では、実際にバス使用権を獲得した数を、バスマスタに対応したカウンタでカウントする。実際にバス使用権を与えた数が、各バスマスタに対応して予め設定した回数に達すると、バス使用権を与えたバスマスタの転送許可を与えないように動作する。また、バス使用権を与えた回数が予め設定した数に達していないバスマスタからのバス使用要求がなくなった場合に、カウンタを再設定する。
【０００７】
図４を用いて、従来のバス調停装置の動作を説明する。図４のタイミングチャートでは、バスマスタが４個ある構成でのバス調整装置の挙動を示す。なお、各バスマスタにバス使用権を獲得する回数の比率について、バスマスタ０とバスマスタ２は２回、バスマスタ１とバスマスタ３は１回に設定している。
【０００８】
バスマスタ０、１、３のバス使用要求はアサートされ続けており、バスマスタ２のバス使用要求は、Ｔ０〜Ｔ７期間はアサートされず、Ｔ８期間からアサートされている。Ｔ０のタイミングにおける各バスマスタの使用許可カウンタは、予め外部から設定された値である。その後、バス調停装置は、バス使用要求があるバスから、１つのバスを選択し、バス使用許可信号を与える。Ｔ０〜Ｔ３期間まで、バスマスタ０、バスマスタ１、バスマスタ３、バスマスタ０の順で、バス使用許可が与えられている。
【０００９】
Ｔ４のタイミングでは、バスマスタ０、１、３は、予め設定したバス使用権獲得回数分のバス使用許可が与えられため、カウンタがリセットされない限り新たなバス使用許可は与えられないことになる。Ｔ４のタイミングでバスマスタ２からバス使用要求があれば、バスマスタ２に対してバス使用許可が与えられるのだが、この時点で、バスマスタ２からのバス使用要求がない。
【００１０】
ここで、マスク後のバス使用要求信号が全てデアサートされ、バス使用権を与えた回数のカウントをやり直す条件が成立するため、使用許可カウンタを再設定する。使用許可カウンタの再設定は、ｃｌｅａｒ信号で示される。Ｔ４期間でｃｌｅａｒ信号がアサートされる。
【００１１】
Ｔ５〜Ｔ７期間は、バスマスタ０、１、３に対して其々一回のバス使用許可が与えられている。また、Ｔ８のタイミングで、バスマスタ２のバス使用要求がアサートされる。
【００１２】
Ｔ８〜Ｔ１０期間までは、バスマスタ１に１回、バスマスタ２に２回のバス使用許可が与えられている。
【００１３】
Ｔ１１のタイミングでは、全てのバスマスタの予め設定したバス使用権獲得回数分のバス使用許可が与えられているため、バス使用許可は与えられない。従って、新たなバス使用要求を受付けるために使用許可カウンタを再設定するという判断がされｃｌｅａｒ信号がアサートされる。
【００１４】
以上のように、Ｔ０〜Ｔ１１期間までに、各バスマスタのバス使用権獲得回数は、バスマスタ０は４回、バスマスタ１は２回、バスマスタ２は２回、バスマスタ３は２回となっている。バスマスタ２は、バスマスタ０と同じ回数のバス獲得回数を期待されているが、実際には期待された回数の半分のバス使用権獲得となっている。
【００１５】
上述したように、従来のバス調停装置では、バス調停装置がバス使用許可を与えようとした時に、バス使用要求信号を出力できなかったバスマスタは、予め設定したバス獲得回数の比率でのバス使用要求が得られない場合があった。
【００１６】
本発明は、予め設定したバス獲得回数に応じたバス使用権を精度よく付与することを目的とする。
【課題を解決するための手段】
【００１７】
上記課題を解決するために本発明に係るバス調停装置は、複数のマスタとスレーブが接続されたバスに接続されているバス調停装置であって、前記マスタ毎に転送回数を設定する設定手段と、前記マスタ毎にバス使用権が付与された回数をカウントするカウンタと、前記カウンタの値に応じて、前記マスタからのバス使用要求を抑制するバス使用要求抑制手段と、前記バス使用要求抑制手段により抑制されなかったバス使用要求の中からバス使用権を付与するバス使用要求を選択する選択手段と、前記スレーブの動作中、前記転送回数のバス使用権が全ての前記マスタに対して付与されていない場合、前記カウンタの再設定を待つように制御する制御手段とを有することを特徴とする。
【発明の効果】
【００１８】
本発明のバス調停装置は、従来のバス調停装置よりも、予め設定したバス使用権を獲得する回数に合うように、各バスマスタにバス使用権を精密に与えることが可能となる。
【図面の簡単な説明】
【００１９】
【図１】バス調停装置を組み込んだシステムの概略構成図である。
【図２】バス調停装置の概略構成図である。
【図３】実施形態１のバス調停処理のタイミングチャートである。
【図４】従来のバス調停処理のタイミングチャートである。
【発明を実施するための形態】
【００２０】
＜実施形態１＞
図１は本発明の一実施形態であるバス調停装置を組み込んだシステムの概略構成図である。本実施の形態のバスシステムは、バス１０６に接続された４つのバスマスタモジュール１０１〜１０４（以下、単にバスマスタと称す）が、同じバス１０６に接続されたスレーブモジュール１０５（以下、単にスレーブと称す）に対してバス転送を行う。複数のバスマスタからバスの使用要求が発行されて競合した場合、バス調停装置１０７でバス使用権を調停する構成となっている。
【００２１】
本実施形態のバスシステムにおいて、使用要求を発行したバスマスタはスレーブからの応答を待たずに続けてバス使用要求を発行できるように構成されている。このバスマスタやスレーブの構成は一般的な構成であるためその説明は省略する。そのため、バス１０６は、アドレスや転送の属性（アクセス種別や転送方向など）を転送するためのコマンドバスと、データを転送するためのデータバスを個別に有している。
【００２２】
スレーブ１０５は、内部に各バスマスタから受信した転送コマンドを複数個格納させておくためのコマンドキューを有する。また、スレーブ１０５は、コマンドキューの状態をバス調停装置１０７に通知できるように、キュー状態通知信号（線）１０８を有している。キュー状態通知信号１０８は、スレーブ１０５のコマンドキューに格納されている転送コマンドの数を示す信号を通知する。
【００２３】
図２は実施形態１のバス調停装置２００の概略構成を示す。バス調停装置２００は、使用許可カウンタ２０１、バス使用要求マスク部２０２、選択部２０３、クリア制御部２０５、および各バスマスタのバス使用権獲得回数を設定し保持する転送回数設定部２０４を有する。
【００２４】
使用許可カウンタ２０１は、選択部２０３の出力するバス転送許可信号であるｇｎｔ信号を監視し、選択部２０３がバス使用権を与えた回数をバスマスタごとにカウントする。そして、転送回数設定部２０４に予め設定した転送回数に達したバスマスタについては、バス使用要求信号をマスクするためのｍａｓｋ信号をバス使用要求マスク部２０２に通知する。各バスマスタの転送回数が、転送回数設定部２０４に予め設定した転送回数に達した場合、使用許可カウンタ２０１は自身のカウンタを再設定する。
【００２５】
クリア制御部２０５は、クリア要求信号であるｃｌｅａｒ＿ｒｅｑ信号がアサートされ、かつスレーブから受取るキュー状態通知信号１０８の示す状態がコマンドキューに格納されている転送コマンドの数が０である（スレーブが動作中でない）ことを通知した場合に、ｃｌｅａｒ信号をアサートする。
【００２６】
バス使用要求マスク部２０２は、使用許可カウンタ２０１からｍａｓｋ信号を受け取り、ｍａｓｋ信号に対応するバス使用要求信号をマスク（遮蔽）する。詳細には、ｍａｓｋ信号に対応するバスマスタについてはバス使用要求信号がアサートされていても、マスク後のバス使用要求信号（ｒｅｑ０＿ｍａｓｋ〜ｒｅｑ３＿ｍａｓｋ）はアサートしない。マスク後の各バスマスタのバス使用要求信号（ｒｅｑ０＿ｍａｓｋ〜ｒｅｑ３＿ｍａｓｋ）は選択部２０３に通知され。また、バス使用要求マスク部２０２は、マスク後のバス使用要求信号（ｒｅｑ０＿ｍａｓｋ〜ｒｅｑ３＿ｍａｓｋ）が全てデアサートされた場合に、使用許可カウンタの再設定を要求するためのｃｌｅａｒ＿ｒｅｑ信号をアサートする。
【００２７】
選択部２０３は、バス使用要求マスク部２０２から受信したマスク後のバス使用要求（ｒｅｑ０＿ｍａｓｋ〜ｒｅｑ３＿ｍａｓｋ）に基づいて、予め定められた方式（固定プライオリティ方式やラウンドロビン等）でバス使用権を付与するバスマスタを選択する。なお、本実施形態では、バスマスタ０、１、２、３の順にプライオリティが付与されている若しくは、バスマスタ０、１、２、３の順に巡回的に選択されるものとする。そして、選択部２０３は選択したバスマスタに対してバス転送許可信号（ｇｎｔ）を用いてバス使用権が付与されていることを通知する。
【００２８】
転送回数設定部２０４は、本バス調停装置の動作設定を行うレジスタ群であり、図示しないＣＰＵ等により外部からバスマスタ毎の転送回数を設定される。例えば、バスマスタ０とバスマスタ１の転送受付け回数の比を、１：２となるように動作させたい場合は、バスマスタ０に１回、バスマスタ１に２回、を設定する。
【００２９】
次に本実施形態の動作について、図３のバス調停のタイミングチャートを用いて説明する。図３は、バスマスタが４つ、バス使用権を獲得する回数の比率を、バスマスタ０、２は２回、バスマスタ１、３は１回に設定している構成のバス調停装置のタイミングチャートを示す。
【００３０】
バスマスタ０、１、３のバス使用要求はアサートされ続け、バスマスタ２のバス使用要求は、Ｔ０〜Ｔ７期間までアサートされず、Ｔ８からアサートされている。Ｔ０のタイミングにおける各バスマスタの使用許可カウンタは、予め外部から設定された値である。図に示すようにバスマスタ０、１、２、３の夫々は２回、１回、２回、１回に設定されている。また、Ｔ０のタイミングでは、バスマスタ０、１、３から、バス使用を要求されている。
【００３１】
バス調停装置２００、Ｔ０のタイミングでバス０に、Ｔ１でバス１に、Ｔ２でバス３に、Ｔ３でバス１に、Ｔ３期間でバス１に、夫々バス使用許可を与える。選択部２０３がバス使用許可を与えたことに応じて、使用許可カウンタ２０１は該当するバスの使用許可カウンタをデクリメントする。また、使用許可カウンタが０になると、使用許可カウンタ２０１からの通知に基づいてバス使用要求マスク部２０２により該当するバスのバス使用要求信号はマスクされる。
【００３２】
Ｔ４のタイミングでは、バスマスタ０、１、３からバス使用要求がアサートされているが、該当するバスマスタの使用許可カウンタが０となっているため、マスク後のバス使用要求信号であるｒｅｑ＿ｍａｓｋ信号（ｒｅｑ０＿ｍａｓｋ、ｒｅｑ１＿ｍａｓｋ、ｒｅｑ３＿ｍａｓｋ）はマスクされる。また、Ｔ４のタイミングで、バスマスタ２からのバス使用要求はない。同時にＴ４のタイミングで、使用許可カウンタ２０１の再設定を要求するｃｌｅａｒ＿ｒｅｑ信号がバス試用要求マスク部２０２からアサートされている。
【００３３】
本実施形態では、ｃｌｅａｒ＿ｒｅｑ信号がアサートされても、クリア制御部２０５は直ぐにカウンタの再設定を行うためのｃｌｅａｒ信号をアサートしない。キュー状態通知信号１０８は、スレーブのコマンドキューの使用段数を示している。バス使用許可が与えられると、１加算され、スレーブ内で受付けた転送が１つ完了すると１減算される。バス使用許可が与えられると同時に、スレーブでの転送が完了すると数は変化しない。キュー状態通知信号１０８が０ではない場合、スレーブは各バスマスタから受付けた転送を実行中であることがわかる。キュー状態通知信号１０８が０になるまで、使用許可カウンタの再設定を行わないように設定した場合、図３に示すようにＴ４〜Ｔ７期間は、ｃｌｅａｒ信号はアサートされず使用許可カウンタの再設定は行わない。
【００３４】
Ｔ８のタイミングで、バスマスタ２からのバス使用要求があり、Ｔ９、Ｔ１０のタイミングで連続してバスマスタ２のバス使用が許可される。
【００３５】
Ｔ１０のタイミングでは、全マスタの使用許可カウンタが０となり、Ｔ１１のタイミングで使用許可カウンタは再設定される。
【００３６】
図３のタイミングチャートにおいては、ｃｌｅａｒ信号は、アサートされない。仮に、Ｔ４〜Ｔ７期間の間に、ｃｌｅａｒ＿ｒｅｑ信号がアサートされ且つキュー状態通知信号が０となる場合は、クリア制御部２０５は使用許可カウンタを再設定するｃｌｅａｒ信号をアサートする。これは、バス使用要求が無いバスマスタのバス使用要求を待ち続ける状態を避けるためである。
【００３７】
以上、説明したように本実施形態に係るバス調停装置によると、スレーブの状態におうじて使用許可カウンタのクリアを制御するので、各バスマスタのバスの使用回数を設定どおりに付与することができる。
【００３８】
なお、本発明は使用許可カウンタを再設定する条件を、キュー状態通知信号が０になるまでに限定するものではない。例えば、キュー状態通知信号が予め設定した数以下（値以下）になった場合に、使用許可カウンタを再設定するように構成してもよい。この場合、転送を受付けてから実際に転送を開始するまでに時間を要するスレーブを使用した場合にも、スレーブが動作を停止する時間が少ない、より効率的にバスを使用できるシステムを構成可能である。
【００３９】
また、本実施例では、使用許可カウンタをダウンカウンタで構成した例を説明しているが、使用許可カウンタをアップカウンタで構成することも可能である。
【図１】
0005677007.tif 000002
【図２】
0005677007.tif 000003
【図３】
0005677007.tif 000004
【図４】
0005677007.tif 000005