(57)【特許請求の範囲】
【請求項１】
一のバスを共有する複数のバスマスタのバス使用権を調停するバスアービタ装置において：
一のバスマスタがバス権を放棄すべき回数であるバス権放棄判定指示数（ｍａｘ）を保持するバス権放棄判定指示数保持装置と；
前記一のバスマスタがバス権を放棄した回数であるバス権放棄判定数（ｓｋｉｐ）を計数するバス権放棄判定数カウンタと；
前記バス権放棄判定数（ｓｋｉｐ）と前記バス権放棄判定指示数（ｍａｘ）とを比較して，前記バス権放棄判定数（ｓｋｉｐ）が前記バス権放棄判定指示数（ｍａｘ）に到達した場合に，前記一のバスマスタのバス使用要求信号の有無を判定するバス権判定装置と；
前記バス権放棄判定数（ｓｋｉｐ）と前記バス権放棄判定指示数（ｍａｘ）とを比較して，前記バス権放棄判定数（ｓｋｉｐ）が前記バス権放棄判定指示数（ｍａｘ）に到達した場合に，予め設定され，前記バス使用要求信号があった場合となかった場合のそれぞれについて前記バス権放棄判定指示数（ｍａｘ）の増減を定める更新モードに応じて，前記一のバスマスタの前記バス権放棄判定指示数（ｍａｘ）を更新するバス権放棄判定指示数更新装置と；
を備え，
前記更新モードは，前記一のバスマスタのバス使用要求信号があった場合には，前記バス権放棄判定指示数（ｍａｘ）を減じ，前記一のバスマスタのバス使用要求信号がなかった場合には，前記バス権放棄判定指示数（ｍａｘ）を増やすことを特徴とする，バスアービタ装置。
【請求項２】
一のバスを共有する複数のバスマスタのバス使用権を調停するバスアービタ装置において：
一のバスマスタがバス権を放棄すべき回数であるバス権放棄判定指示数（ｍａｘ）を保持するバス権放棄判定指示数保持装置と；
前記一のバスマスタがバス権を放棄した回数であるバス権放棄判定数（ｓｋｉｐ）を計数するバス権放棄判定数カウンタと；
前記バス権放棄判定数（ｓｋｉｐ）と前記バス権放棄判定指示数（ｍａｘ）とを比較して，前記バス権放棄判定数（ｓｋｉｐ）が前記バス権放棄判定指示数（ｍａｘ）に到達した場合に，前記一のバスマスタのバス使用要求信号の有無を判定するバス権判定装置と；
前記バス権放棄判定数（ｓｋｉｐ）と前記バス権放棄判定指示数（ｍａｘ）とを比較して，前記バス権放棄判定数（ｓｋｉｐ）が前記バス権放棄判定指示数（ｍａｘ）に到達した場合に，予め設定され，前記バス使用要求信号があった場合となかった場合のそれぞれについて前記バス権放棄判定指示数（ｍａｘ）の増減を定める更新モードに応じて，前記一のバスマスタの前記バス権放棄判定指示数（ｍａｘ）を更新するバス権放棄判定指示数更新装置と；
を備え，
前記更新モードは，前記一のバスマスタのバス使用要求信号があった場合に，前記バス権放棄判定指示数（ｍａｘ）をゼロ値に設定し，前記一のバスマスタのバス使用要求信号がなかった場合には，前記バス権放棄判定指示数（ｍａｘ）を増やすことを特徴とする，バスアービタ装置。
【請求項３】
一のバスを共有する複数のバスマスタのバス使用権を調停するバスアービタ装置において：
一のバスマスタがバス権を放棄すべき回数であるバス権放棄判定指示数（ｍａｘ）を保持するバス権放棄判定指示数保持装置と；
前記一のバスマスタがバス権を放棄した回数であるバス権放棄判定数（ｓｋｉｐ）を計数するバス権放棄判定数カウンタと；
前記バス権放棄判定数（ｓｋｉｐ）と前記バス権放棄判定指示数（ｍａｘ）とを比較して，前記バス権放棄判定数（ｓｋｉｐ）が前記バス権放棄判定指示数（ｍａｘ）に到達した場合に，前記一のバスマスタのバス使用要求信号の有無を判定するバス権判定装置と；
前記バス権放棄判定数（ｓｋｉｐ）と前記バス権放棄判定指示数（ｍａｘ）とを比較して，前記バス権放棄判定数（ｓｋｉｐ）が前記バス権放棄判定指示数（ｍａｘ）に到達した場合に，予め設定され，前記バス使用要求信号があった場合となかった場合のそれぞれについて前記バス権放棄判定指示数（ｍａｘ）の増減を定める更新モードに応じて，前記一のバスマスタの前記バス権放棄判定指示数（ｍａｘ）を更新するバス権放棄判定指示数更新装置と；
を備え，
前記更新モードは，前記一のバスマスタのバス使用要求信号の有無にかかわらず，前記バス権放棄判定指示数（ｍａｘ）を最大値に設定することを特徴とする，バスアービタ装置。
【請求項４】
前記更新モードは，前記バスマスタごとに設定可能であることを特徴とする，請求項１〜３のいずれかに記載のバスアービタ装置。
【請求項５】
一のバスを共有する複数のバスマスタのバス使用権を調停するバスアービタ方法において：
一のバスマスタに関するステージは：
一のバスマスタがバス権を放棄すべき回数であるバス権放棄判定指示数（ｍａｘ）と前記一のバスマスタがバス権を放棄をした回数であるバス権放棄判定数（ｓｋｉｐ）とを比較する工程と；
前記バス権放棄判定数（ｓｋｉｐ）が前記バス権放棄判定指示数（ｍａｘ）に到達しない場合には，次のバスマスタに関するステージに進行する工程と；
前記バス権放棄判定数（ｓｋｉｐ）が前記バス権放棄判定指示数（ｍａｘ）に到達した場合には，前記一のバスマスタのバス使用要求信号の有無を判定するとともに，予め設定され，前記バス使用要求信号があった場合となかった場合のそれぞれについて前記バス権放棄判定指示数（ｍａｘ）の増減を定める更新モードに応じて，前記一のバスマスタの前記バス権放棄判定指示数（ｍａｘ）を更新し，次のバスマスタに関するステージに進行する工程と；
から成り，
前記更新モードは，前記一のバスマスタのバス使用要求信号があった場合には，前記バス権放棄判定指示数（ｍａｘ）を減じ，前記一のバスマスタのバス使用要求信号がなかった場合には，前記バス権放棄判定指示数（ｍａｘ）を増やすことを特徴とする，バスアービタ方法。
【請求項６】
一のバスを共有する複数のバスマスタのバス使用権を調停するバスアービタ方法において：
一のバスマスタに関するステージは：
一のバスマスタがバス権を放棄すべき回数であるバス権放棄判定指示数（ｍａｘ）と前記一のバスマスタがバス権を放棄をした回数であるバス権放棄判定数（ｓｋｉｐ）とを比較する工程と；
前記バス権放棄判定数（ｓｋｉｐ）が前記バス権放棄判定指示数（ｍａｘ）に到達しない場合には，次のバスマスタに関するステージに進行する工程と；
前記バス権放棄判定数（ｓｋｉｐ）が前記バス権放棄判定指示数（ｍａｘ）に到達した場合には，前記一のバスマスタのバス使用要求信号の有無を判定するとともに，予め設定され，前記バス使用要求信号があった場合となかった場合のそれぞれについて前記バス権放棄判定指示数（ｍａｘ）の増減を定める更新モードに応じて，前記一のバスマスタの前記バス権放棄判定指示数（ｍａｘ）を更新し，次のバスマスタに関するステージに進行する工程と；
から成り，
前記更新モードは，前記一のバスマスタのバス使用要求信号があった場合に，前記バス権放棄判定指示数（ｍａｘ）をゼロ値に設定し，前記一のバスマスタのバス使用要求信号がなかった場合には，前記バス権放棄判定指示数（ｍａｘ）を増やすことを特徴とする，バスアービタ方法。
【請求項７】
一のバスを共有する複数のバスマスタのバス使用権を調停するバスアービタ方法において：
一のバスマスタに関するステージは：
一のバスマスタがバス権を放棄すべき回数であるバス権放棄判定指示数（ｍａｘ）と前記一のバスマスタがバス権を放棄をした回数であるバス権放棄判定数（ｓｋｉｐ）とを比較する工程と；
前記バス権放棄判定数（ｓｋｉｐ）が前記バス権放棄判定指示数（ｍａｘ）に到達しない場合には，次のバスマスタに関するステージに進行する工程と；
前記バス権放棄判定数（ｓｋｉｐ）が前記バス権放棄判定指示数（ｍａｘ）に到達した場合には，前記一のバスマスタのバス使用要求信号の有無を判定するとともに，予め設定され，前記バス使用要求信号があった場合となかった場合のそれぞれについて前記バス権放棄判定指示数（ｍａｘ）の増減を定める更新モードに応じて，前記一のバスマスタの前記バス権放棄判定指示数（ｍａｘ）を更新し，次のバスマスタに関するステージに進行する工程と；
から成り，
前記更新モードは，前記一のバスマスタのバス使用要求信号の有無にかかわらず，前記バス権放棄判定指示数（ｍａｘ）を最大値に設定することを特徴とする，バスアービタ方法。
【請求項８】
前記更新モードは，前記バスマスタごとに設定可能であることを特徴とする，請求項５〜７のいずれかに記載のバスアービタ方法。
【請求項９】
前記一のバスマスタのバス使用要求信号があった場合には，前記一のバスマスタにバス使用許可を与え，前記一のバスマスタがバス開放するのを待って，次のバスマスタに関するステージに進行することを特徴とする，請求項５〜８のいずれかに記載のバスアービタ方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はバスアービタ装置およびバスアービタ方法にかかり、特に使用権決定アルゴリズムに関する。
【０００２】
【従来の技術】
一つのバスを共有する複数のバスマスタから使用要求がある場合に，どのバスマスタにバス使用権を与えるかを調停するアルゴリズムに関して，たとえば「特開２０００−２０１１６１」で示されているものがある。
【０００３】
図８は，上記文献に記載されたアービトレーション制御回路の構成を示す図である。図８に示すように，アービトレーション制御回路５００には、アービトレーションカウンタ部５０１，優先度設定レジスタ部５０２，優先度判定部５０３，ＣＰＵ５０４などが設けられている。
【０００４】
アービトレーション制御回路５００は，システムバス５０５に接続された複数のバスマスタ（図示せず）からのバス獲得要求に対して，所定のアービトレーション優先度変更方式により調停を行なう。
【０００５】
優先度判定部５０３は，バスに接続された各バスマスタから出力されるバス獲得要求信号５０６を受け，アービトレーションカウンタ部５０１から各バスマスタのバス獲得表明回数を示すカウンタ値５１０と，優先度設定レジスタ部５０２に予め設定された各バスマスタの優先度のデータ５１１とを取り出して優先度判定を行なう。
【０００６】
この時，優先度判定５０３は，カウンタ値が最も大きいバスマスタにバスの使用許可を与えるものと判定する。優先度判定部５０３は，判定したバスマスタのアービトレーションＩＤをシステムバス５０５上に送出し，同時にアービトレーションカウンタ部５０１に対してバスを獲得したバスマスタのカウンタ値を０にリセットするようにカウンタリセット信号５０７にて通知する。
【０００７】
またＣＰＵ５０４は、図示せぬメモリに記憶されたプログラムに基づいて動作することにより、優先度設定レジスタ５０２に記憶された各バスマスタに対するアービトレーション優先度を任意に設定するための書き換え装置として機能する。
【０００８】
かかる構成により，バスに接続された複数のバスマスタからのバス獲得要求回数を各々のバスマスタごとにカウントする一方，複数のバスマスタのそれぞれに対して予め任意に優先度を設定することができる。
【０００９】
例えば，バスに接続されたバスマスタからバス獲得要求があった場合には，バス獲得要求を出力したバスマスタの中でカウンタ値が最も大きいバスマスタにバス使用権を与えることができる。カウンタ値が最も大きいバスマスタが複数ある場合には，カウンタ値が最も大きいバスマスタの中で予め設定された優先度が最も高いバスマスタにバス使用権を与えることができる。
【００１０】
【発明が解決しようとする課題】
しかしながら，「特開２０００−２０１１６１」を始めとする従来の方式は，同時リクエストが発生した際に，どのデバイスに優先的にバス権を与えるかどうかを決定するものであり，バス使用優先順位は固定されている。
【００１１】
また，バス使用要求をカウントする機能を有し，優先順位可変システムであっても，バス使用頻度の低い装置が一度バス権を獲得すると，優先順位は下がってしまい，バス権を取得しにくくなる。
【００１２】
さらに，バス使用頻度の低い装置が連続的にバスを使用したい場合には，連続してバス使用要求を行なうこととなるが，バス使用頻度の高い装置が，連続的にバス使用要求を行なっていれば，相対的な優先順位は変わらないことになる。
【００１３】
一方，バスの使用頻度は各装置によって異なり，動作させるアプリケーションによっても各装置のバス要求は時々刻々と変化する。そのため，あまりバスを使用しない装置であっても，瞬間的にバス権を連続して取得したい場合がある。このような場合には従来の制御方式では対応することができない。
【００１４】
本発明は，従来のバスアービトレーション方法が有する上記問題点に鑑みてなされたものであり，本発明の目的は，自律的にバス使用の優先順位を変更することの可能な，新規かつ改良されたバスアービタ装置およびバスアービタ方法を提供することである。
【００１５】
【課題を解決するための手段】
上記課題を解決するため，本発明の第１の観点によれば，一のバスを共有する複数のバスマスタのバス使用権を調停するバスアービタ装置において，一のバスマスタがバス権を放棄すべき回数であるバス権放棄判定指示数（ｍａｘ）を保持するバス権放棄判定指示数保持装置と，一のバスマスタがバス権を放棄した回数であるバス権放棄判定数（ｓｋｉｐ）を計数するバス権放棄判定数カウンタと，バス権放棄判定数（ｓｋｉｐ）とバス権放棄判定指示数（ｍａｘ）とを比較して，バス権放棄判定数（ｓｋｉｐ）がバス権放棄判定指示数（ｍａｘ）に到達した場合に，一のバスマスタのバス使用要求信号の有無を判定するバス権判定装置と，バス権放棄判定数（ｓｋｉｐ）とバス権放棄判定指示数（ｍａｘ）とを比較して，バス権放棄判定数（ｓｋｉｐ）がバス権放棄判定指示数（ｍａｘ）に到達した場合に，予め設定され，バス使用要求信号があった場合となかった場合のそれぞれについてバス権放棄判定指示数（ｍａｘ）の増減を定める更新モードに応じて，一のバスマスタのバス権放棄判定指示数（ｍａｘ）を更新するバス権放棄判定指示数更新装置とを備え，更新モードは，一のバスマスタのバス使用要求信号があった場合には，バス権放棄判定指示数（ｍａｘ）を減じ，一のバスマスタのバス使用要求信号がなかった場合には，バス権放棄判定指示数（ｍａｘ）を増やすことを特徴とする。
【００１６】
かかる構成によって，バスに接続された複数のバスマスタに対するバス使用優先度を各バスマスタのバス使用状況に応じて，柔軟に設定してバス獲得要求に対する調停を行なうことができる。
【００１７】
また，本発明の第２の観点によれば，一のバスを共有する複数のバスマスタのバス使用権を調停するバスアービタ方法において，一のバスマスタに関するステージは，一のバスマスタがバス権を放棄すべき回数であるバス権放棄判定指示数（ｍａｘ）と一のバスマスタがバス権を放棄した回数であるバス権放棄判定数（ｓｋｉｐ）とを比較する工程と，バス権放棄判定数（ｓｋｉｐ）がバス権放棄判定指示数（ｍａｘ）に到達しない場合には，次のバスマスタに関するステージに進行する工程と，バス権放棄判定数（ｓｋｉｐ）がバス権放棄判定指示数（ｍａｘ）に到達した場合には，一のバスマスタのバス使用要求信号の有無を判定するとともに，予め設定され，前記バス使用要求信号があった場合となかった場合のそれぞれについてバス権放棄判定指示数（ｍａｘ）の増減を定める更新モードに応じて，一のバスマスタのバス権放棄判定指示数（ｍａｘ）を更新し，次のバスマスタに関するステージに進行する工程と，から成り，更新モードは，一のバスマスタのバス使用要求信号があった場合には，バス権放棄判定指示数（ｍａｘ）を減じ，一のバスマスタのバス使用要求信号がなかった場合には，バス権放棄判定指示数（ｍａｘ）を増やすことを特徴とする。
【００１８】
かかる構成によって，バスに接続された複数のバスマスタに対するバス使用優先度をバス使用の優先順位に関係なく，各バスマスタのバス使用状況に応じて，柔軟に設定してバス獲得要求に対する調停を行なうことができる。
【００１９】
【発明の実施の形態】
以下に添付図面を参照しながら，本発明の好適な実施の形態について詳細に説明する。なお，本明細書及び図面において，実質的に同一の機能構成を有する構成要素については，同一の符号を付することにより重複説明を省略する。
【００２０】
図１は，３つのバスマスタ間でのラウンドロビン・アービトレーション方式図である。また図１では，本実施形態での各バスマスタ１００（１００ａ，１００ｂ，１００ｃ）のアービトレーション順も示している。
【００２１】
ラウンドロビン・アービトレーション方式では，図１で示される各バスマスタ１００（１００ａ，１００ｂ，１００ｃ）のアービトレーションが行なわれるステージでは，各ステージに対応したバスマスタ１００からのバス使用要求のみを監視している。あるバスマスタ１００，例えばバスマスタＡ１００ａに対応したステージにバス権が遷移するまでに，他のバスマスタ１００からのバス使用要求があっても，そのバスマスタ１００へのバス使用許可は出さない。
【００２２】
通常この方式でのバスアービタ装置は，あるステージにおいてそのステージに対応したバスマスタ１００，例えばバスマスタＡ１００ａからのバス使用要求があればバスマスタＡ１００ａにバス使用許可を与えるといった具合に，バス使用要求がなければ次のバスマスタ１００，この場合はバスマスタＢ１００ｂへのバス権を遷移させるものである。
【００２３】
本実施形態は，従来のラウンドロビン・アービトレーション方式を改良したもので，各々のステージごとに，図２に示すプロトコルでバスアービトレーションを行なう。
【００２４】
この方法は，各ステージで，各バスマスタ１００（１００ａ，１００ｂ，１００ｃ）からのバス使用要求をチェックするかどうかの判定を行ない，判定結果に応じてバスマスタ１００のバス使用要求をチェックするか，あるいはそのバスマスタ１００のバス使用要求をチェックしないで，次のステージにバス権を遷移させるかのいずれかを取る。本実施形態では，バス使用要求をチェックするかどうかの判定をバス権放棄判定と呼ぶことにする。
【００２５】
図２は，各ステージでどのようにバス権放棄判定を行なっているかを示したフロー図である。
【００２６】
まず，以下に図２での各変数を定義する。
【００２７】
バス権放棄判定数（ｓｋｉｐ）は，各バスマスタ１００（１００ａ，１００ｂ，
１００ｃ）がバス権放棄判定をした回数を表わす。なお図中ではｓｋｉｐと表記する。
【００２８】
バス権放棄判定指示数（ｍａｘ）は、各バスマスタ１００（１００ａ，１００ｂ，１００ｃ）がバス権放棄判定をしなければならない回数を表す。バス権放棄判定指示数（ｍａｘ）は，アービトレーション間隔を決定する変数で，バス使用権を得たバスマスタ１００は，更新モード（ｍｏｄｅ）で指定される更新方法に従い，更新される。なお，図中ではｍａｘと表記する。
【００２９】
最大バス権放棄判定指示数（ｌｉｍｉｔ）は，バス権放棄判定指示数（ｍａｘ）の上限となる最大値であり，バスアービトレーションの優先順位を表す。なお，図中ではｌｉｍｉｔと表記する。
【００３０】
更新モード（ｍｏｄｅ）は，バス権放棄判定指示数（ｍａｘ）を制御するための変数である。図中ではｍｏｄｅと表記する。なお本実施形態では，更新モード（ｍｏｄｅ）は，バス権放棄判定指示数（ｍａｘ）を次のように３種類に設定する。
【００３１】
ｍｏｄｅ＝１：一のバスマスタ１００がバス使用権を得られた場合には，アービトレーション順位を１つ上げる，バスの使用要求が無い場合には，アービトレーション順位を１つ下げる。これにより，一のバスマスタ１００はバスを使用すれば使用するほど，バスアービトレーション優先順位が上がることとなり，バスを使用しなければ，バスアービトレーション優先順位は下がることとなる。
【００３２】
ｍｏｄｅ＝２：一のバスマスタ１００が一度バスを使用すると連続してバス使用要求がある確率が高いため，一度バス使用権を得られたバスマスタ１００はバスアービトレーション優先順位を最高に設定する更新モード（ｍｏｄｅ）である。なお，バス使用要求がない場合は，ｍｏｄｅ＝１の場合と同様にバスアービトレーション優先順位は下がることとなる。
【００３３】
ｍｏｄｅ＝３：バスアービトレーションの優先順位は変更しない。すなわち，バス権放棄判定指示数（ｍａｘ）は，設定された最大バス権放棄判定指示数（ｌｉｍｉｔ）を使用し，あらかじめ各バスマスタ間のバスアービトレーション優先順位によって動作させる。
【００３４】
バス使用要求信号は，各バスマスタ１００（１００ａ，１００ｂ，１００ｃ）から発するバス使用要求を伝える信号である。図中ではｒｅｑｕｅｓｔと表記する。
【００３５】
バス使用許可信号は，バスアービトレーション後に各バスマスタ１００（１００ａ，１００ｂ，１００ｃ）へバスの使用許可を伝える信号である。図中ではＧＮＴと表記する。
【００３６】
次に，図２での各ステージで行われる各プロトコルの役割について以下で説明する。
【００３７】
図１の順序に従って，前ステージからバス権が遷移して次のステージのバスアービトレーションが開始される。なお，この段階を以下Ｓ１００と表記する。
なお、Ｓ１００では特に何も処理を行なわない。
【００３８】
バス権放棄判定数（ｓｋｉｐ）がバス権放棄判定指示数（ｍａｘ）と等しいかを判定する。バス権放棄判定数（ｓｋｉｐ）がバス権放棄判定指示数（ｍａｘ）と等しい（ｓｋｉｐ＝ｍａｘ）場合には，バス権放棄判定を行なうこととなり，バス権放棄判定数（ｓｋｉｐ）がバス権放棄判定指示数（ｍａｘ）と等しくない（ｓｋｉｐ≠ｍａｘ）場合にはバス権放棄判定を放棄することとなる。なお，この段階を以下Ｓ１０２と表記する。
【００３９】
前段階Ｓ１０２で，バス権放棄判定数（ｓｋｉｐ）がバス権放棄判定指示数
（ｍａｘ）と等しい場合，バス権放棄判定を行なうため，バス権放棄判定数（ｓｋｉｐ）を初期化する。なお，この段階を以下Ｓ１０４と表記する。
【００４０】
バス権放棄判定数（ｓｋｉｐ）が初期化された後に，現在処理中のバスマスタ１００に，バス使用要求信号（ｒｅｑｕｅｓｔ）によりバス使用要求があるかどうかを判定する。なお，この段階を以下Ｓ１０６と表記する。
【００４１】
バス使用要求信号が合った場合，更新モード（ｍｏｄｅ）に従って，バス権放棄判定指示数（ｍａｘ）を制御することにより，バスアービトレーションの優先順位の変更をする。ここではｒｅｑｕｅｓｔ＝１とバス使用要求があるため，優先順位を上げる。なお本実施形態では，更新モード（ｍｏｄｅ）によりバス権放棄判定指示数（ｍａｘ）の設定方法は，前述の通り３種類である。また，更新モード（ｍｏｄｅ）により変更されたバス権放棄判定指示数（ｍａｘ）は，次のサイクルでのＳ１０２でバス権放棄判定数（ｓｋｉｐ）との比較に用いる。なお，この段階を以下Ｓ１０８と表記する。
【００４２】
更新モード（ｍｏｄｅ）に従って，バス権放棄判定指示数（ｍａｘ）を制御することによりバスアービトレーションの優先順位の変更をした後に，各バスマスタ１００（１００ａ，１００ｂ，１００ｃ）にバス使用許可（ＧＮＴ）を与える。なお，この段階を以下Ｓ１１０と表記する。
【００４３】
各バスマスタ１００（１００ａ，１００ｂ，１００ｃ）にバス使用許可を与えた後に，バスがアイドル状態になるまで待ち合わせる。本実施形態では，バスがアイドル状態になるまで次アービトレーションを行なわない仕様としているが，次アービトレーションを行なっても構わない。なお，この段階を以下Ｓ１１２と表記する。
【００４４】
バス権放棄判定数（ｓｋｉｐ）がバス権放棄判定指示数（ｍａｘ）と等しくない場合，バス権放棄判定の要求を放棄することとなるため，バス権放棄判定数（ｓｋｉｐ）を１増加させる。なお，この段階を以下Ｓ１１４と表記する。
【００４５】
また，バス権放棄判定を行なったが，該当バスマスタ１００ではバス使用要求がない場合は，更新モード（ｍｏｄｅ）に従って，バス権放棄判定指示数（ｍａｘ）を制御することによりバスアービトレーションの優先順位の変更を行なう。ここでは，バス権放棄判定を行なったが，該当バスマスタ１００ではバス使用要求がないため，バスアービトレーションの優先順位を下げる。なお本実施形態では，更新モード（ｍｏｄｅ）によるバス権放棄判定指示数（ｍａｘ）の設定方法は，前述の通り３種類である。また，更新モードにより変更されたバス権放棄判定指示数（ｍａｘ）は，次のサイクルでのＳ１０２でバス権放棄判定数（ｓｋｉｐ）との比較に用いる。なお，この段階を以下Ｓ１１６と表記する。
【００４６】
バス権放棄判定の要求を放棄したＳ１１４の場合，またはバス権放棄判定を
行なったが，該当バスマスタ１００ではバス使用要求がない場合にＳ１１６を経た後は，次のバスマスタ１００のバスアービトレーションをする為の同期あわせを行なう。本段階とＳ１１２以外は１クロック（１ＣＬＫ）サイクルで実行される。そのため，本段階が無い場合，バスが使用されないと空かさず図１のアービトレーション順にしたがってバスアービトレーションが行われる為，バスが使用されなくとも１クロックサイクル単位でアービトレーションを行なわせる為に本段階がある。なお，この段階を以下Ｓ１１８と表記する。
【００４７】
Ｓ１１２またはＳ１１８を経た後に，バスアービタ装置は図１の順序に従って次のバスマスタ１００のバスアービトレーションを行なうため，次のステージヘバス権を遷移する。なお，この段階を以下Ｓ１２０と表記する。
【００４８】
次に本実施形態の構成を図３で示すブロック図で説明する。
【００４９】
バスアービタ装置１０２内には，各バスマスタ１００（１００ａ，１００ｂ，１００ｃ）に４つの各変数のリソースがある。バス権放棄判定指示数（ｍａｘ）を保持するバス権放棄判定指示数保持装置１０４（１０４ａ，１０４ｂ，１０４ｃ）とバス権放棄判定数（ｓｋｉｐ）を保持するバス権放棄判定数保持装置１０６（１０６ａ，１０６ｂ，１０６ｃ）と各バスマスタ１００（１００ａ，１００ｂ，１００ｃ）のバス権放棄判定指示数（ｍａｘ）の更新方式を決定する更新モード（ｍｏｄｅ）を保持する更新モード保持装置１０８（１０８ａ，１０８ｂ，１０８ｃ），およびバス権放棄判定指示数（ｍａｘ）の制限値となる最大バス権放棄判定指示数（ｌｉｍｉｔ）を保持する最大バス権放棄判定指示数保持装置１１０（１１０ａ，１１０ｂ，１１０ｃ）である。
【００５０】
バス権放棄判定指示数保持装置１０４（１０４ａ，１０４ｂ，１０４ｃ）において，バス権放棄判定指示数（ｍａｘ）は，バス権放棄判定指示数更新装置１１２により設定される。
【００５１】
バス権放棄判定指示数更新装置１１２は，バス権要求監視回路１１４からの入力信号，最大バス権放棄判定指示数保持装置１１０（１１０ａ，１１０ｂ，１１０ｃ）からの入力信号，および更新モード保持装置１０８（１０８ａ，１０８ｂ，１０８ｃ）からの入力信号からバス権放棄判定指示数（ｍａｘ）を演算し，演算結果を各バスマスタ１００（１００ａ，１００ｂ，１００ｃ）のバス権放棄判定指示数（ｍａｘ）のリソースとなるバス権放棄判定指示数保持装置１０４（１０４ａ，１０４ｂ，１０４ｃ）へ，信号線ｍａｘ．Ａ−Ｗ〜信号線ｍａｘ．Ｃ−Ｗにより接続する。
【００５２】
また最大バス権放棄判定指示数保持装置１１０（１１０ａ，１１０ｂ，１１０ｃ），更新モード保持装置１０８（１０８ａ，１０８ｂ，１０８ｃ）からバス権放棄判定指示数更新装置１１２への入力信号を図中では，それぞれｌｉｍｉｔ．Ａ〜ｌｉｍｉｔ．Ｃ，ｍｏｄｅ．Ａ〜ｍｏｄｅ．Ｃと表記する。なお，最大バス権放棄判定指示数保持装置１１０（１１０ａ，１１０ｂ，１１０ｃ）および更新モード保持装置１０８（１０８ａ，１０８ｂ，１０８ｃ）での最大バス権放棄判定指示数（ｌｉｍｉｔ）および更新モード（ｍｏｄｅ）は，本図では図示されていないが，外部の制御レジスタなどで自由に設定できる。
【００５３】
バス権判定装置１１６は，各バスマスタ１００（１００ａ，１００ｂ，１００ｃ）の変数のリソースとなるバス権放棄判定数保持装置１０６（１０６ａ，１０６ｂ，１０６ｃ）からの入力信号ｓｋｉｐ．Ａ−Ｒ〜入力信号ｓｋｉｐ．Ｃ−Ｒとバス権放棄判定指示数保持装置１０４（１０４ａ，１０４ｂ，１０４ｃ）からの入力信号ｍａｘ．Ａ−Ｒ〜入力信号ｍａｘ．Ｃ−Ｒが接続され，その判定結果が判定信号（ｊｕｄｇｅ）によってバス権要求監視回路１１４に接続される。また，バス権放棄判定数カウンタ１１８にも接続され，前記バス権放棄判定数カウンタ１１８での演算結果が，入力信号ｓｋｉｐ．Ａ−Ｗ〜入力信号ｓｋｉｐ．Ｃ−Ｗにより，各バスマスタ１００（１００ａ，１００ｂ，１００ｃ）のバス権放棄判定数保持装置１０６（１０６ａ，１０６ｂ，１０６ｃ）へ接続され，バス権放棄判定数（ｓｋｉｐ）は，バス権放棄判定数カウンタ１１８により設定される。
【００５４】
バス権要求監視回路１１４は，各バスマスタ１００（１００ａ，１００ｂ，１００ｃ）からのバス要求信号ｒｅｑ．Ａ〜ｒｅｑ．Ｃが接続され，出力がバス権使用許可回路１２０とバス権放棄判定指示数更新装置１１２に接続される。
【００５５】
バス権使用許可回路１２０では，バス権要求監視回路１１４からの出力と接続され，各バスマスタ１００（１００ａ，１００ｂ，１００ｃ）へバス使用許可信号ｇｎｔ．Ａ〜ｇｎｔ．Ｃを出すかどうかの制御を行なう。
【００５６】
ラウンドロビン・シーケンサ１２２は，図１に示した順序に従ってバスと接続された各バスマスタ１００（１００ａ，１００ｂ，１００ｃ）の作動順序を制御して，バス権判定装置１１６にどのバスマスタ１００にバス権を与えるべきか作用信号（図中ではｃｕｒｒｅｎｔと表記する。）を送信する。
【００５７】
次に，バス権放棄判定指示数（ｍａｘ），バス権放棄判定数（ｓｋｉｐ），最大バス権放棄判定指示数（ｌｉｍｉｔ），および更新モード（ｍｏｄｅ）のデータの流れを図３に沿って説明する。
【００５８】
まず，どのバスマスタ１００（１００ａ，１００ｂ，１００ｃ）にバス権を与えるべきかをラウンドロビン・シーケンサ１２２による作用信号（ｃｕｒｒｅｎｔ）にて，バス権判定装置１１６に入力される。
【００５９】
このバス権判定装置１１６では，バスマスタ１００のバス権放棄判定指示数（ｍａｘ）とバス権放棄判定数（ｓｋｉｐ）を比較し，バス権放棄判定指示数（ｍａｘ）とバス権放棄判定数（ｓｋｉｐ）が等しければ（ｍａｘ＝ｓｋｉｐ），判定信号（ｊｕｄｇｅ）でバス権要求監視回路１１４へバス使用要求をチェックさせ，バス権放棄判定数（ｓｋｉｐ）を初期化する。
【００６０】
バス使用要求がある場合には，バス権使用許可回路１２０でバス権使用許可信号（ｇｎｔ）により，バス権を与える。またバスの使用有無により，バス権放棄判定指示数更新装置１１２により，バス権放棄判定指示数保持装置１０４でのバス権放棄判定指示数（ｍａｘ）の値を増加，あるいは減少させる。このバス権放棄判定指示数更新装置１１２は，図２においてＳ１０８またはＳ１１６に相当する。
【００６１】
バス権判定装置１１６で，バス権放棄判定指示数（ｍａｘ）とバス権放棄判定数（ｓｋｉｐ）が等しくない場合には，バス権使用要求チェックを行なわず，バス権放棄判定数カウンタ１１８でバス権放棄判定数保持装置１０６（１０６ａ，１０６ｂ，１０６ｃ）のデータを書き換える。これは図２においてＳ１１４にあたる。そして，ラウンドロビン・シーケンサ１２２により次のバスマスタ１００（１００ａ，１００ｂ，１００ｃ）にバス権を移行させる。
【００６２】
この様に，バス権放棄判定指示数保持装置１０４（１０４ａ，１０４ｂ，１０４ｃ）でのバス権放棄判定指示数（ｍａｘ）とバス権放棄判定数保持装置１０６（１０６ａ，１０６ｂ，１０６ｃ）でのバス権放棄判定数（ｓｋｉｐ）が等しくなるまで，本発明のバスアービタ装置１０２はバス権要求監視回路１１４には動作しないため，バス権放棄判定指示数（ｍａｘ）の値が大きければ大きいほど，アービトレーンョン間隔は長くなり，小さければ小さいほどアービトレーション間隔は短くなる。
【００６３】
しかし，バスを使用するとバス権放棄判定指示数更新装置１１２によりバス権放棄判定指示数保持装置１０４（１０４ａ，１０４ｂ，１０４ｃ）でのバス権放棄判定指示数（ｍａｘ）が減少するので，バスを使用すればするほどバス権放棄判定指示数（ｍａｘ）は小さくなり，最大バス権放棄判定指示数（ｌｉｍｉｔ）により優先順位が低く設定されていても，バス権放棄判定指示数（ｍａｘ）が小さくなれば，優先的にアービトレーションされることとなる。
【００６４】
次に，本実施形態の動作を更新モード（ｍｏｄｅ）ごとに説明する。図４は，更新モード（ｍｏｄｅ）が１（ｍｏｄｅ＝１）のときのタイムチャートを示し，図５は図４に示す実施形態での各バスマスタ１００（１００ａ，１００ｂ，１００ｃ）へ設定した各変数の初期値をまとめた表である。
【００６５】
なお，図４および５に使用している信号名は，どのバスマスタ１００への信号かを明示する為に，バスマスタＡ１００ａのバス権放棄判定指示数（ｍａｘ）をＡ．ｍａｘと言った具合にバスマスタ名を頭に付与して表記している。
【００６６】
また，本実施の形態にかかるバスアービタ装置１０２の動作の同期をとるクロック信号（図中ではＣＬＫと称する）の１周期ごとのタイミングを順にタイミングＴ１，タイミングＴ２，・・・，タイミングＴｎ（ｎは自然数）と称する。
【００６７】
図１で示した順序に従って，アービトレーションが行われる。本動作ではバスマスタＡ１００ａからアービトレーションが開始されるものとする。
【００６８】
まず図４について説明を行なう。
【００６９】
クロック信号がタイミングＴ１の時には，バスアービタ装置１０２の状態は，図２に表記のＳ１００からＳ１０２へと遷移する。Ｓ１０２の動作をする時間ＴＩＭ１でバスマスタＡ１００ａのバス権放棄判定数Ａ．ｓｋｉｐとバス権放棄判定指示数Ａ．ｍａｘの値を評価する。ここでは，バス権放棄判定数Ａ．ｓｋｉｐ＝０，バス権放棄判定指示数Ａ．ｍａｘ＝１と値が異なる為，バスアービタ装置１０２の状態は，図２に表記のＳ１０２からＳ１１４へと遷移する。
【００７０】
Ｓ１１４ではバス権判定を放棄した為，バス権放棄判定数（ｓｋｉｐ）を１増加させる。また，バスマスタＡ１００ａからのバス使用要求もなく（Ａ．ｒｅｑｕｅｓｔ＝０），バス権放棄判定も行なわないため，バスマスタＡ１００ａにはバス権を与えない（Ａ，ＧＮＴ＝０）。
【００７１】
次にバスアービタ装置１０２の状態は，図２に表記のＳ１１４からＳ１１８へと遷移し，次のバスマスタＢ１００ｂへのアービトレーション準備に入る。Ｓ１１８にて１クロック（１ＣＬＫ）待ち合わせ，Ｓ１２０にて次のバスマスタＢ１００ｂへのアービトレーションを行なう。図１で示した順序通りにバスマスタＡ１００ａからバスマスタＢ１００ｂへとアービトレーションが遷移する。
【００７２】
クロック信号がタイミングＴ２の時には，バスマスタＢ１００ｂのアービトレーションを行なう。バスマスタＡ１００ａの時と同様に，バスアービタ装置１０２の状態は，図２に表記のＳ１００からＳ１０２へと遷移する。Ｓ１０２の動作をする時間ＴＩＭ２で，バスマスタＢ１００ｂのバス権放棄判定数Ｂ．ｓｋｉｐとバス権放棄判定指示数Ｂ．ｍａｘを評価する。この時，バス権放棄判定数Ｂ．ｓｋｉｐとバス権放棄判定指示数Ｂ．ｍａｘは共に２である為，バスアービタの状態は図２に表記のＳ１０２からＳ１０４へと遷移する。Ｓ１０４でバス権放棄判定数（ｓｋｉｐ）を初期化し，バス権放棄判定数ｓｋｉｐ＝０とする。図４では，バス権放棄判定数Ｂ．ｓｋｉｐの値がＳ１０２の動作をする時間ＴＩＭ２の評価の後，初期化され０となる。
【００７３】
次にバスアービタ装置１０２の状態は，図２に表記のＳ１０４からＳ１０６に遷移し，Ｓ１０６にて，バスマスタＢ１００ｂからのバス使用要求（Ｂ．ｒｅｑｕｅｓｔ）があるかどうかを判定する。Ｓ１０６でバス使用要求がある（Ｂ．ｒｅｑｕｅｓｔ＝１）ので，バスアービタ装置１０２の状態は，図２に表記のＳ１０６からＳ１０８へと遷移する。Ｓ１０８ではバス権を使用した為，アービトレーションの優先順位を決定するバス権放棄指示数（ｍａｘ）の値を変更する。値の変更は，更新モード（ｍｏｄｅ）で規定されている。本実施形態では，更新モード（ｍｏｄｅ）は１であるので，バス権放棄判定指示数（ｍａｘ）は，ｍａｘ＝ｍａｘ−１が実行されバス権放棄判定指示数（ｍａｘ）は１となる。
【００７４】
この時，バス権放棄判定指示数（ｍａｘ）の値は，最低アービトレーション値である最大バス権放棄判定指示数（ｌｉｍｉｔ）を越えないように設定され，逆に最高アービトレーション値である０を越えないように計算される。バス権放棄判定指示数（ｍａｘ）は，バス権の使用要求状態によりバスアービタ装置１０２内で決定される変数である。
【００７５】
バス権放棄判定指示数（ｍａｘ）の値を変更した後に，バスアービタ装置１０２の状態はＳ１０８からＳ１１０と遷移し，Ｓ１１０でバス使用要求をするバスマスタＢ１００ｂに対しバス権を与える（Ｂ．ＧＮＴ＝１）。そして，バスアービタ装置１０２の状態はＳ１１２に遷移し，バスマスタＢ１００ｂのバス開放を待ち合わせる。
【００７６】
クロック信号がタイミングＴ１１の時には，バスマスタＢ１００ｂはバスを開放している（Ｂ．ＧＮＴ＝０）。
【００７７】
図４のバスマスタＢ１００ｂでは，最大バス権放棄判定指示数保持装置１１０ｂで予め設定された最大バス権放棄判定指示数（ｌｉｍｉｔ）は３であり（Ｂ．ｌｉｍｉｔ＝３），バスアービトレーション優先順位は低い。しかしながら，バス権を得て，さらにバスを使用した場合には，バス権放棄判定指示数Ｂ．ｍａｘは２から１へとなりバスアービトレーション優先順位は上がっている。これにより，低優先順位に指定されているバスマスタ１００であっても，バスを使用することによりバスアービトレーンョン優先順位が上がることとなる。
【００７８】
次に，クロック信号がタイミングＴ１１の時でバスマスタＢ１００ｂのバス使用が終了したため，バスアービタ装置１０２は，クロック信号がタイミングＴ１２の時でバス開放を検出し，図１のアービトレーション順に従い，バスマスタＣ１００ｃへのバスアービトレーションを開始する。
【００７９】
バスマスタＣ１００ｃのバスアービトレーション開始により，バスマスタＡ１００ａおよびバスマスタＢ１００ｂのバスアービトレーションの際と同様に，バスアービタ装置１０２の状態は，図２に表記のＳ１００からＳ１０２へと遷移する。
【００８０】
Ｓ１０２では，バスマスタＣ１００ｃのバス権放棄判定数Ｃ．ｓｋｉｐとバス権放棄判定指示数Ｃ．ｍａｘが等しいかどうかを判定しているが，バス権放棄判定指示数（ｍａｘ）の値は，最大バス権放棄判定指示数（ｌｉｍｉｔ）以上にはならない。このことからバス権放棄判定数Ｃ．ｌｉｍｉｔの値が０であるため，バス権放棄判定指示数（ｍａｘ）の値も０をこえることはない。
【００８１】
そのため，図４に記載してあるように，Ｓ１０２の動作をする時間ＴＩＭ３ではバス権放棄判定数Ｃ．ｓｋｉｐとバス権放棄判定指示数Ｃ．ｍａｘは共に０となり，バスアービタ装置１０２の状態は，図２に表記のＳ１０２からＳ１０４へと遷移し，バス権放棄判定数（ｓｋｉｐ）を０と再設定した後に，バスアービタ装置１０２の状態はＳ１０６へ遷移する。
【００８２】
Ｓ１０６では，バスマスタＣ１００ｃからのバス使用要求（Ｃ．ｒｅｑｕｅｓｔ）を調べる。バス使用要求Ｃ．ｒｅｑｕｅｓｔ＝１であり，バスの使用要求があるため，バスアービタ装置１０２の状態は，図２に表記のＳ１０６からＳ１０８となる。
【００８３】
Ｓ１０８では，更新モード（ｍｏｄｅ）は１であるので，バス権放棄判定指示数（ｍａｘ）の値を更新しようとするが，上述したように既にバス権放棄判定指示数（ｍａｘ）は０であり，これ以上バスアービトレーション優先順位を上げられないので，バス権放棄判定指示数Ｃ．ｍａｘは０のままとなる。そして図２に表記のＳ１０８からＳ１１０となり，バス使用許可信号Ｃ．ＧＮＴ＝１にてバスマスタＣ１００ｃへバス使用許可を出す。
【００８４】
以後バスアービタ装置１０２の状態は，図２に表記のＳ１１２のバス開放待ちを経て，Ｓ１２０で次のバスマスタＡ１００aへとバスアービトレーション判定を行なう。
【００８５】
図４において，Ｓ１０２の動作をする時間ＴＩＭ４では，バスマスタＡ１００aのバス権放棄判定数Ａ．ｓｋｉｐとバス権放棄判定指示数Ａ．ｍａｘは，共に１であるので，バス使用要求（Ａ．ｒｅｑｕｅｓｔ）があるかを検査する。
【００８６】
このとき，バスマスタＡ１００ａはバス使用要求がないため，バスアービタ装置１０２の状態は，図２に表記のＳ１０６からＳ１１６と遷移する。Ｓ１１６ではバス権を与えようとしたが，実際はバス使用要求がなかったので，バスアービトレーション優先順位を下げる為，バスマスタＡ１００ａのバス権放棄判定指示数Ａ．ｍａｘの値を変更する。値の変更は更新モード（ｍｏｄｅ）で規定され，本実施形態では更新モード（ｍｏｄｅ）は１であるので，バス権放棄判定指示数（ｍａｘ）は，ｍａｘ＝ｍａｘ＋１が実行されバス権放棄判定指示数（ｍａｘ）は２となる。
【００８７】
この時，バス権放棄判定指示数（ｍａｘ）の値は，最低アービトレーンョン値である最大バス権放棄判定指示数（ｌｉｍｉｔ）を越えないように設定され，逆に最高アービトレーション値である０を越えないように計算される。バスマスタＡ１００ａのバス権放棄判定指示数Ａ．ｍａｘの値変更の後，バスアービタ装置１０２の状態は，図２に表記のＳ１１６からＳ１１８となり，Ｓ１２０にて次のバスマスタＢ１００ｂのアービトレーションを行なう。
【００８８】
図４の時間ＴＩＭ５〜ＴＩＭ８は，各バスマスタ１００（１００ａ，１００ｂ，１００ｃ）からのバス使用要求が無い場合に，バスアービタ装置１０２の各バスマスタ１００（１００ａ，１００ｂ，１００ｃ）のバス権放棄判定数（ｓｋｉｐ）またはバス権放棄判定指示数（ｍａｘ）がどのように変化するかを示したタイムチャートあり，動作は上記の時間ＴＩＭ１〜ＴＩＭ４と同様な動作となる。
【００８９】
バスマスタＣ１００ｃでは優先順位を常に最高に保つ為に最大バス権放棄判定指示数Ｃ．ｌｉｍｉｔは０となっている。
【００９０】
これにより，バス権を得られて，かつバスを使用しなかった場合でもバス権放棄判定指示数Ｃ．ｍａｘ値は変化しない。これは常にバスアービトレーション順位が最高に設定されていることを示している。最大バス権放棄判定指示数（ｌｉｍｉｔ）はバス権放棄判定指示数（ｍａｘ）の最大値を規定するものであるので，各バスマスタ１００（１００ａ，１００ｂ，１００ｃ）の最大バス権放棄判定指示数（ｌｉｍｉｔ）が，かかるバスマスタ１００のバスアービトレーション優先順位となる。この最大バス権放棄判定指示数（ｌｉｍｉｔ）を変更することにより，各バスマスタ１００（１００ａ，１００ｂ，１００ｃ）間のバスアービトレーション優先順位をコントロールすることが可能となる。
【００９１】
図６は，更新モード（ｍｏｄｅ）が２（ｍｏｄｅ＝２）のときのタイムチャートを示し，図７は図６に示す実施形態での各バスマスタ１００（１００ａ，１００ｂ，１００ｃ）へ設定した各変数の初期値をまとめた表である。更新モード（ｍｏｄｅ）が２のときでは，図２に表記のＳ１０８でのバス権放棄判定指示数（ｍａｘ）の更新方法が異なっているのみである。動作は図２および４と同様な動作を行なう。
【００９２】
なお，図６および７に使用している信号名は，図４および５と同様に，どのバスマスタ１００への信号かを明示する為に，バスマスタＡ１００ａのバス権放棄判定指示数（ｍａｘ）をＡ．ｍａｘと言った具合にバスマスタ名を頭に付与して表記している。
【００９３】
また，図４と同様に本実施の形態にかかるバスアービタ装置１０２の動作の同期をとるクロック信号（図中ではＣＬＫと称する）の１周期ごとのタイミングを順にタイミングＴ１，タイミングＴ２，・・・，タイミングＴｎ（ｎは自然数）と称する。
【００９４】
まずクロック信号がタイミングＴ１の時には，バスアービタ装置１０２の状態は，図２に表記のＳ１００からＳ１０２へと遷移する。Ｓ１０２の動作をする時間ＴＩＭ１でバスマスタＡ１００ａのバス権放棄判定数Ａ．ｓｋｉｐとバス権放棄判定指示数Ａ．ｍａｘの値を評価する。ここでは，バス権放棄判定数Ａ．ｓｋｉｐ＝０，バス権放棄判定指示数Ａ．ｍａｘ＝１と値が異なる為，バスアービタ装置１０２の状態は，図２に表記のＳ１０２からＳ１１４へと遷移する。
【００９５】
Ｓ１１４ではバス権判定を放棄した為，バス権放棄判定数（ｓｋｉｐ）を１増加させる。また，バスマスタＡ１００ａからのバス使用要求もなく（Ａ．ｒｅｑｕｅｓｔ＝０），バス権放棄判定も行なわないため，バスマスタＡ１００ａにはバス権を与えない（Ａ，ＧＮＴ＝０）。
【００９６】
次にバスアービタ装置１０２の状態は，図２に表記のＳ１１４からＳ１１８へと遷移し，次のバスマスタＢ１００ｂへのアービトレーション準備に入る。Ｓ１１８にて１クロック（１ＣＬＫ）待ち合わせ，Ｓ１２０にて次のバスマスタＢ１００ｂへのアービトレーションを行なう。図１で示した順序通りにバスマスタＡ１００ａからバスマスタＢ１００ｂへとアービトレーションが遷移する。
【００９７】
クロック信号がタイミングＴ２の時には，バスマスタＢ１００ｂのアービトレーションを行なう。バスマスタＡ１００ａの時と同様に，バスアービタ装置１０２の状態は，図２に表記のＳ１００からＳ１０２へと遷移する。Ｓ１０２の動作をする時間ＴＩＭ２で，バスマスタＢ１００ｂのバス権放棄判定数Ｂ．ｓｋｉｐとバス権放棄判定指示数Ｂ．ｍａｘを評価する。この時，バス権放棄判定数Ｂ．ｓｋｉｐとバス権放棄判定指示数Ｂ．ｍａｘは共に２である為，バスアービタの状態は図２に表記のＳ１０２からＳ１０４へと遷移する。Ｓ１０４でバス権放棄判定数（ｓｋｉｐ）を初期化し，バス権放棄判定数ｓｋｉｐ＝０とする。図６では，バス権放棄判定数Ｂ．ｓｋｉｐの値がＳ１０２の動作をする時間ＴＩＭ２の評価の後，初期化され０となる。
【００９８】
次にバスアービタ装置１０２の状態は，図２に表記のＳ１０４からＳ１０６に遷移し，Ｓ１０６にて，バスマスタＢ１００ｂからのバス使用要求（Ｂ．ｒｅｑｕｅｓｔ）があるかどうかを判定する。Ｓ１０６でバス使用要求がある（Ｂ．ｒｅｑｕｅｓｔ＝１）ので，バスアービタ装置１０２の状態は，図２に表記のＳ１０６からＳ１０８へと遷移する。Ｓ１０８ではバス権を使用した為，アービトレーションの優先順位を決定するバス権放棄指示数（ｍａｘ）の値を変更する。値の変更は，更新モード（ｍｏｄｅ）で規定されている。本実施形態では，更新モード（ｍｏｄｅ）は２であるので，バス権放棄判定指示数（ｍａｘ）は初期化され，バス権放棄判定指示数（ｍａｘ）は０となる。
【００９９】
この時，バス権放棄判定指示数（ｍａｘ）の値は，最低アービトレーション値である最大バス権放棄判定指示数（ｌｉｍｉｔ）を越えないように設定され，逆に最高アービトレーション値である０を越えないように計算される。バス権放棄判定指示数（ｍａｘ）は，バス権の使用要求状態によりバスアービタ装置１０２内で決定される変数である。
【０１００】
バス権放棄判定指示数（ｍａｘ）の値を変更した後に，バスアービタ装置１０２の状態はＳ１０８からＳ１１０と遷移し，Ｓ１１０でバス使用要求をするバスマスタＢ１００ｂに対しバス権を与える（Ｂ．ＧＮＴ＝１）。そして，バスアービタ装置１０２の状態はＳ１１２に遷移し，バスマスタＢ１００ｂのバス開放を待ち合わせる。
【０１０１】
クロック信号がタイミングＴ１１の時には，バスマスタＢ１００ｂはバスを開放している（Ｂ．ＧＮＴ＝０）。
【０１０２】
図６のバスマスタＢ１００ｂでは，最大バス権放棄判定指示数保持装置１１０ｂで予め設定された最大バス権放棄判定指示数（ｌｉｍｉｔ）は３であり（Ｂ．ｌｉｍｉｔ＝３），バスアービトレーション優先順位は低い。しかしながら，バス権を得て，さらにバスを使用した場合には，バス権放棄判定指示数Ｂ．ｍａｘは２から０へとなりバスアービトレーション優先順位は上がっている。これにより，低優先順位に指定されているバスマスタ１００であっても，バスを使用することによりバスアービトレーンョン優先順位が上がることとなる。
【０１０３】
次に，クロック信号がタイミングＴ１１の時でバスマスタＢ１００ｂのバス使用が終了したため，バスアービタ装置１０２は，クロック信号がタイミングＴ１２の時でバス開放を検出し，図１のアービトレーション順に従い，バスマスタＣ１００ｃへのバスアービトレーションを開始する。
【０１０４】
バスマスタＣ１００ｃのバスアービトレーション開始により，バスマスタＡ１００ａおよびバスマスタＢ１００ｂのバスアービトレーションの際と同様に，バスアービタ装置１０２の状態は，図２に表記のＳ１００からＳ１０２へと遷移する。
【０１０５】
Ｓ１０２では，バスマスタＣ１００ｃのバス権放棄判定数Ｃ．ｓｋｉｐとバス権放棄判定指示数Ｃ．ｍａｘが等しいかどうかを判定しているが，バス権放棄判定指示数（ｍａｘ）の値は，最大バス権放棄判定指示数（ｌｉｍｉｔ）以上にはならない。このことからバス権放棄判定数Ｃ．ｌｉｍｉｔの値が０であるため，バス権放棄判定指示数（ｍａｘ）の値も０をこえることはない。
【０１０６】
そのため，図６に記載してあるように，Ｓ１０２の動作をする時間ＴＩＭ３ではバス権放棄判定数Ｃ．ｓｋｉｐとバス権放棄判定指示数Ｃ．ｍａｘは共に０となり，バスアービタ装置１０２の状態は，図２に表記のＳ１０２からＳ１０４へと遷移し，バス権放棄判定数（ｓｋｉｐ）を０と再設定した後に，バスアービタ装置１０２の状態はＳ１０６へ遷移する。
【０１０７】
Ｓ１０６では，バスマスタＣ１００ｃからのバス使用要求（Ｃ．ｒｅｑｕｅｓｔ）を調べる。バス使用要求Ｃ．ｒｅｑｕｅｓｔ＝１であり，バスの使用要求があるため，バスアービタ装置１０２の状態は，図２に表記のＳ１０６からＳ１０８となる。
【０１０８】
Ｓ１０８では，更新モード（ｍｏｄｅ）は２であるので，バス権放棄判定指示数（ｍａｘ）の値を更新しようとするが，上述したように既にバス権放棄判定指示数（ｍａｘ）は０であり，これ以上バスアービトレーション優先順位を上げられないので，バス権放棄判定指示数Ｃ．ｍａｘは０のままとなる。そして図２に表記のＳ１０８からＳ１１０となり，バス使用許可信号Ｃ．ＧＮＴ＝１にてバスマスタＣ１００ｃへバス使用許可を出す。
【０１０９】
以後バスアービタ装置１０２の状態は，図２に表記のＳ１１２のバス開放待ちを経て，Ｓ１２０で次のバスマスタＡ１００aへとバスアービトレーション判定を行なう。
【０１１０】
図６において，Ｓ１０２の動作をする時間ＴＩＭ４では，バスマスタＡ１００aのバス権放棄判定数Ａ．ｓｋｉｐとバス権放棄判定指示数Ａ．ｍａｘは，共に１であるので，バス使用要求（Ａ．ｒｅｑｕｅｓｔ）があるかを検査する。
【０１１１】
このとき，バスマスタＡ１００ａはバス使用要求がないため，バスアービタ装置１０２の状態は，図２に表記のＳ１０６からＳ１１６と遷移する。Ｓ１１６ではバス権を与えようとしたが，実際はバス使用要求がなかったので，バスアービトレーション優先順位を下げる為，バスマスタＡ１００ａのバス権放棄判定指示数Ａ．ｍａｘの値を変更する。値の変更は更新モード（ｍｏｄｅ）で規定され，本実施形態では更新モード（ｍｏｄｅ）は２であるので，バス権放棄判定指示数（ｍａｘ）は，ｍａｘ＝ｍａｘ＋１が実行されバス権放棄判定指示数（ｍａｘ）は２となる。
【０１１２】
この時，バス権放棄判定指示数（ｍａｘ）の値は，最低アービトレーンョン値である最大バス権放棄判定指示数（ｌｉｍｉｔ）を越えないように設定され，逆に最高アービトレーション値である０を越えないように計算される。バスマスタＡ１００ａのバス権放棄判定指示数Ａ．ｍａｘの値変更の後，バスアービタ装置１０２の状態は，図２に表記のＳ１１６からＳ１１８となり，Ｓ１２０にて次のバスマスタ１００のアービトレーションを行なう。
【０１１３】
図４の時間ＴＩＭ５〜ＴＩＭ８は，各バスマスタ１００（１００ａ，１００ｂ，１００ｃ）からのバス使用要求が無い場合に，バスアービタ装置１０２の各バスマスタ１００（１００Ａ，１００ｂ，１００ｃ）のバス権放棄判定数（ｓｋｉｐ）またはバス権放棄判定指示数（ｍａｘ）がどのように変化するかを示したタイムチャートあり，動作は上記の時間ＴＩＭ１〜ＴＩＭ４と同様な動作となる。
【０１１４】
バスマスタＣ１００ｃでは優先順位を常に最高に保つ為に最大バス権放棄判定指示数Ｃ．ｌｉｍｉｔは０となっている。
【０１１５】
これにより，バス権を得られて，かつバスを使用しなかった場合でもバス権放棄判定指示数Ｃ．ｍａｘ値は変化しない。これは常にバスアービトレーション順位が最高に設定されていることを示している。最大バス権放棄判定指示数（ｌｉｍｉｔ）はバス権放棄判定指示数（ｍａｘ）の最大値を規定するものであるので，各バスマスタ１００（１００ａ，１００ｂ，１００ｃ）の最大バス権放棄判定指示数（ｌｉｍｉｔ）が，かかるバスマスタ１００のバスアービトレーション優先順位となる。この最大バス権放棄判定指示数（ｌｉｍｉｔ）を変更することにより，各バスマスタ１００（１００ａ，１００ｂ，１００ｃ）間のバスアービトレーション優先順位をコントロールすることが可能となる。
【０１１６】
以上，添付図面を参照しながら本発明の好適な実施形態について説明したが，本発明はかかる例に限定されない。当業者であれば，特許請求の範囲に記載された技術的思想の範疇内において各種の変更例または修正例に想到し得ることは明らかであり，それらについても当然に本発明の技術的範囲に属するものと了解される。
【０１１７】
例えば，本発明の本実施形態では最大バス権放棄判定指示数（ｌｉｍｉｔ）の与え方は，制御レジスタなどといった具合に特に規定していないが，内部レジスタに割り当て自由に設定する方法が考えられる。また，本実施形態では更新モード（ｍｏｄｅ）は，１乃至３の３種のみ示しているが，この３種のみではなく，他の更新方法も追加することができる。
【０１１８】
かかる作用によって，バスに接続された複数のバスマスタ１００に対するバス使用優先度を各バスマスタ１００（１００ａ，１００ｂ，１００ｃ）のバス使用状況に応じて，より柔軟に設定してバス獲得要求に対する調停を行なうことができる。
【０１１９】
さらに，本発明の本実施形態では，１つのバスに対して３つのバスマスタ１００（１００ａ，１００ｂ，１００ｃ）が接続されているが，接続されるバスマスタ１００の数を任意の数としても，本実施形態と同様な構成，作用とすることにより，やはり同様な効果が得られる。
【０１２０】
【発明の効果】
以上説明したように，本発明によれば，バスアービトレーションの優先順位を各バスマスタのバス使用状態に応じて自律的に変更する自己学習機能をもつ。このアービトレーション優先順位自己学習機能を設けたことにより，優先順位が低くとも，バスの使用率があがれば，優先順位があがるという自己学習機能により，低優先でもバスの使用が優先となる。
【０１２１】
さらに，優先順位を付けたいデバイスを予め意図的に自由に設定できるという効果も得られる。
【図面の簡単な説明】
【図１】  ラウンドロビン・アービトレーション方式図である。
【図２】  本発明のバスアービトレーションのフロー図である。
【図３】  本発明のバスアービタ装置の構成を示すブロック図である。
【図４】  更新モード（ｍｏｄｅ）が１の場合のタイムチャートを示す図である。
【図５】  図４での実施形態における各変数の初期設定値をまとめた表である。
【図６】  更新モード（ｍｏｄｅ）が２の場合のタイムチャートを示す図である。
【図７】  図６での実施形態における各変数の初期設定値をまとめた表である。
【図８】  従来のアービトレーション制御回路の構成を示す構成図である。
【符号の説明】
１００      バスマスタ
１００ａ    バスマスタａ
１００ｂ    バスマスタｂ
１００ｃ    バスマスタｃ
１０２      バスアービタ装置
１０４      バス権放棄判定指示数保持装置
１０４ａ    バス権放棄判定指示数保持装置Ａ
１０４ｂ    バス権放棄判定指示数保持装置Ｂ
１０４ｃ    バス権放棄判定指示数保持装置Ｃ
１０６      バス権放棄判定数保持装置
１０６ａ    バス権放棄判定数保持装置Ａ
１０６ｂ    バス権放棄判定数保持装置Ｂ
１０６ｃ    バス権放棄判定数保持装置Ｃ
１０８      更新モード保持装置
１０８ａ    更新モード保持装置Ａ
１０８ｂ    更新モード保持装置Ｂ
１０８ｃ    更新モード保持装置Ｃ
１１０      最大バス権放棄判定指示数保持装置
１１０ａ    最大バス権放棄判定指示数保持装置Ａ
１１０ｂ    最大バス権放棄判定指示数保持装置Ｂ
１１０ｃ    最大バス権放棄判定指示数保持装置Ｃ
１１２      バス権放棄判定指示数更新装置
１１４      バス権要求監視回路
１１６      バス権判定装置
１１８      バス権放棄判定数カウンタ
１２０      バス権使用許可回路
１２２      ラウンドロビン・シーケンサ
【図１】
0004002093.tif 000002
【図２】
0004002093.tif 000003
【図３】
0004002093.tif 000004
【図４】
0004002093.tif 000005
【図５】
0004002093.tif 000006
【図６】
0004002093.tif 000007
【図７】
0004002093.tif 000008
【図８】
0004002093.tif 000009