(57)【特許請求の範囲】
【請求項１】
複数のマスタのそれぞれからのバスの使用要求を許可するグラント間隔の最小値を前記マスタごとに設定するグラント間隔設定部と、
前記複数のマスタからの前記バスの使用要求を保持し、保持した前記使用要求の中から許可されていない使用要求を選択する使用要求管理部と、
前記グラント間隔が前記最小値未満にならないように、前記選択された使用要求を前記マスタごとに制限する使用頻度制限部と、
前記複数のマスタからの、前記使用頻度制限部により制限されなかった使用要求の中から、いずれかのマスタの使用要求を許可する使用要求許可部と
を具備するアービトレーション回路。
【請求項２】
前記使用要求許可部は、前記バスの使用の優先度を前記マスタごとに予め設定しておき、前記使用要求の中から、前記優先度が最も高いマスタの使用要求を許可する請求項１記載のアービトレーション回路。
【請求項３】
前記バスの使用の優先度を前記マスタごとに設定する優先度設定部をさらに具備し、
前記使用要求許可部は、前記使用要求の中から、前記優先度設定部により設定された前記優先度が最も高いマスタの使用要求を選択して許可する請求項２記載のアービトレーション回路。
【請求項４】
前記使用要求許可部は、前記使用要求の中から、前記使用要求許可部が許可したときからの経過時間が最も長いマスタの使用要求を選択して許可する請求項１記載のアービトレーション回路。
【請求項５】
前記使用要求許可部は、
前記バスの使用の優先度を前記マスタごとに予め設定しておき、前記使用要求の中から、前記優先度が最も高いマスタの使用要求を選択する優先度選択部と、
前記優先度選択部により選択された前記使用要求のうち、自身が許可したときからの経過時間が最も長いマスタの使用要求を許可する最長経過時間選択部と
を具備する請求項１記載のアービトレーション回路。
【請求項６】
前記バスの使用の優先度を前記マスタごとに設定する優先度設定部をさらに具備し、
前記優先度選択部は、前記使用要求の中から、前記優先度設定部により設定された前記優先度が最も高いマスタの使用要求を選択する請求項５記載のアービトレーション回路。
【請求項７】
前記使用要求許可部は、
前記複数のマスタからの、前記使用頻度制限部により制限されなかった使用要求の中から、いずれかのマスタの使用要求を選択する使用要求選択部と、
前記使用要求選択部により前記使用要求が選択されたときから所定時間が経過した後に前記使用要求を許可する調整部と
を具備する請求項１記載のアービトレーション回路。
【請求項８】
前記調整部は、前記使用要求選択部により選択された前記使用要求のうち、前回許可した使用要求に対応するマスタと異なるマスタからの使用要求を許可する請求項７記載のアービトレーション回路。
【請求項９】
複数のマスタのそれぞれからのバスの使用要求を許可するグラント間隔の最小値を前記マスタごとに設定するグラント間隔設定手順と、
前記複数のマスタからの前記バスの使用要求を保持し、保持した前記使用要求の中から許可されていない使用要求を選択する使用要求管理手順と、
前記グラント間隔が前記最小値未満にならないように、前記選択された使用要求を前記マスタごとに制限する制限手順と、
前記複数のマスタからの、前記使用頻度制限手順により制限されなかった使用要求の中から、いずれかのマスタの使用要求を許可する使用要求許可手順と
を具備するアービトレーション回路の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アービトレーション回路に関し、特にマスタ、スレーブ間のバス制御を最適化するためのアービトレーション回路、および、その処理方法に関する。
【背景技術】
【０００２】
様々な種類の半導体チップを１つにまとめるＳｏＣ（System On a Chip）等の設計手法を用いた複雑化、大規模化した半導体集積回路では、１つのデバイスに、バスを介して、そのデバイスを制御しうるデバイスを２つ以上接続することがある。以下、制御対象のデバイスをスレーブと称し、スレーブを制御可能なデバイスをマスタと称する。マスタとしてはＣＰＵ（Central Processing Unit）や、ＤＭＡＣ（Direct Memory Access Controller）、ＧＰＵ（Graphics Processing Unit）などが想定される。スレーブとしては、メモリコントローラ、インターフェースポートや、ビデオメモリなどが想定される。
【０００３】
スレーブに対してマスタが複数ある場合、アービトレーション回路が設けられる。各マスタは、バスを介してデータを送信するためにバスの使用を要求するリクエスト信号を、このアービトレーション回路へ送信する。アービトレーション回路は、各マスタによるバスの使用が競合することを防止したり、バス制御を最適化したりするため、各マスタからのリクエストを調停する。そして、アービトレーション回路は、調停により選択したマスタに対してバスへのリクエストを許可するグラント信号を送信する。
【０００４】
アービトレーション回路が行う調停の方式には、様々な方式がある。例えば、バスの使用におけるマスタ間の優先順位を予め定めておく固定優先度方式や、各マスタを平等に扱い、順番にリクエストを許可するラウンドロビン方式がある。
【０００５】
さらに、固定優先度方式およびラウンドロビン方式を組み合わせた方式や、各マスタのバスの占有量を予め定めておく方式もある。ここで、占有量とは、１回のデータ処理に必要な、バスの占有時間や転送ワード数などである。
【０００６】
上記に例示したような方式のうち、どのような方式を用いるのが妥当かは、マスタがスレーブの制御を行うためのアプリケーションプログラムにより異なる。しかし、ハードウェアの開発段階においては、具体的な使用事例（ユースケース）が確定しておらず、どのようなアプリケーションプログラムが実行されるか不明な場合が多い。そのため、開発初期においては、バスの制御を行うアービトレーション回路の動作を最適化することが難しい。また、使用事例ごとに最適なバス制御が異なる場合もあり、アービトレーション回路のハードウェアを設計した後で、バス制御が最適化されていなかったことが判明したり、バスの使用の競合が生じたりする問題があった。この問題が実機により顕在化した場合は、ハードウェアの作り直しとなり、コストが多く掛かることとなる。
【０００７】
そこで、各マスタの優先順位を設定した優先順位レジスタを設け、この優先順位レジスタを書き換えることにより、ハードウェアを再設計することなく、各マスタの優先順位を変更できる回路が提案されている（例えば、特許文献１参照。）。この技術によれば、アプリケーションの仕様変更などにより、各マスタの優先順位が変更された場合であっても、ハードウェアを再設計することなく、バス制御を最適化できる。
【０００８】
また、各マスタのバスの占有量を定めておく場合、記憶手段に、データ処理１回あたりのバスの占有量をマスタごとに記憶しておき、この記憶手段を書き換えることで、占有量を変更できる装置も提案されている（例えば、特許文献２参照。）。この装置では、マスタごとに、固定の優先順位が設定されている。そして、優先順位が低いマスタがバスを占有している間に、そのマスタより優先順位が高いマスタがデータ転送を要求したとき、装置は、優先順位が高いマスタにバスの使用権を委譲することができる。この技術によれば、アプリケーションの仕様変更などにより、各マスタのバスの占有量が変更された場合であっても、ハードウェアを再設計することなく、バス制御を最適化できる。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開平８−１２３６３４号公報
【特許文献２】特開２０００−１３２５０５号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、上述の先行技術では、各マスタのＱｏＳ（Quality of Service）が変更された場合に、ハードウェアを再設計することなく、バス制御を最適化することができないおそれがある。すなわち、マスタごとに要求されるＱｏＳが異なる場合、各マスタのデータの転送速度をそれぞれのＱｏＳに応じた帯域に制限しなければならないことがある。上述の先行技術では、マスタごとの優先順位を変更したり、データ処理１回あたりのバスの占有時間をマスタごとに設定したりできる。しかし、上述の先行技術では、バスの使用頻度を制限しないため、バスの使用頻度に基づく転送速度をマスタごとに帯域内に制限することができなかった。すなわち、上述の先行技術では、ＱｏＳの変更などにより、各マスタの帯域が変更された場合、ハードウェアを再設計しなければならないという問題があった。
【００１１】
本発明はこのような状況に鑑みてなされたものであり、各マスタの帯域が変更されても、ハードウェアを変更することなく、マスタ、スレーブ間のバス制御の最適化を可能にすることを目的とする。
【課題を解決するための手段】
【００１２】
本発明は、上記課題を解決するためになされたものであり、その第１の側面は、複数のマスタのそれぞれのバスの使用頻度を制限する設定値を上記マスタごとに設定する使用頻度設定部と、上記複数のマスタからの上記バスの使用要求を保持し、保持した上記使用要求の中から許可されていない使用要求を選択する使用要求管理部と、それぞれの上記マスタのバスの使用頻度が、上記マスタに設定された上記設定値を越えないように、上記使用要求管理部により選択された上記使用要求を上記マスタごとに制限する使用頻度制限部と、上記複数のマスタからの、上記使用頻度制限部により制限されなかった使用要求の中から、いずれかのマスタの使用要求を許可する使用要求許可部とを具備するアービトレーション回路、および、その制御方法である。これにより、バスの使用頻度をマスタごとに制限するという作用をもたらす。
【００１３】
また、この第１の側面において、上記使用要求許可部は、上記バスの使用の優先度を上記マスタごとに予め設定しておき、上記使用要求の中から、上記優先度が最も高いマスタの使用要求を許可してもよい。これにより、予め設定された優先度に基づいて使用要求を許可するという作用をもたらす。
【００１４】
また、この第１の側面において、上記バスの使用の優先度を上記マスタごとに設定する優先度設定部をさらに具備し、上記使用要求許可部は、上記使用要求の中から、上記優先度設定部により設定された上記優先度が最も高いマスタの使用要求を選択して許可してもよい。これにより、優先度をマスタごとに設定しておき、設定した優先度に基づいて使用要求を許可するという作用をもたらす。
【００１５】
また、この第１の側面において、上記使用要求許可部は、上記使用要求の中から、上記使用要求許可部が許可したときからの経過時間が最も長いマスタの使用要求を選択して許可してもよい。これにより、最後に許可されたときからの経過時間に基づいて使用要求を許可するという作用をもたらす。
【００１６】
また、この第１の側面において、上記使用要求許可部は、上記バスの使用の優先度を上記マスタごとに予め設定しておき、上記使用要求の中から、上記優先度が最も高いマスタの使用要求を選択する優先度選択部と、上記優先度選択部により選択された上記使用要求のうち、自身が許可したときからの経過時間が最も長いマスタの使用要求を許可する最長経過時間選択部とを具備してもよい。これにより、最後に許可されたときからの経過時間と、予め設定された優先度とに基づいて使用要求を許可するという作用をもたらす。
【００１７】
また、この第１の側面において、上記バスの使用の優先度を上記マスタごとに設定する優先度設定部をさらに具備し、上記優先度選択部は、上記使用要求の中から、上記優先度設定部により設定された上記優先度が最も高いマスタの使用要求を選択してもよい。これにより、優先度をマスタごとに設定しておき、設定した優先度に基づいて使用要求を選択するという作用をもたらす。
【００１８】
また、この第１の側面において、上記使用要求許可部は、上記複数のマスタからの、上記使用頻度制限部により制限されなかった使用要求の中から、いずれかのマスタの使用要求を選択する使用要求選択部と、上記使用要求選択部により上記使用要求が選択されたときから所定時間が経過した後に上記使用要求を許可する調整部とを具備してもよい。これにより、使用要求が選択されてから、所定時間が経過した後に、その使用要求を許可するという作用をもたらす。
【００１９】
また、この第１の側面において、上記使用頻度設定部は、使用要求を監視する周期と、上記周期内で許可する使用要求の数とを上記マスタごとに設定してもよい。これにより、前回許可した使用要求に対応するマスタからの使用要求を許可しないという作用をもたらす。
【００２０】
また、この第１の側面において、上記使用頻度設定部は、使用要求を監視する周期と、上記周期内で許可する使用要求の数とを上記マスタごとに設定してもよい。これにより、周期および使用要求の数に基づいて使用要求を制限するという作用をもたらす。
【００２１】
また、この第１の側面において、上記使用頻度設定部は、使用要求を監視する周期、または、上記周期内で制限する使用要求の数を上記マスタごとに設定してもよい。これにより、周期または試用要求の数に基づいて使用要求を制限するという作用をもたらす。
【発明の効果】
【００２２】
本発明によれば、各マスタの帯域が変更されても、ハードウェアを変更することなく、マスタ、スレーブ間のバス制御の最適化を可能にするという優れた効果を奏し得る。
【図面の簡単な説明】
【００２３】
【図１】本発明の第１の実施の形態におけるバス制御装置の一構成例を示す全体図である。
【図２】本発明の第１の実施の形態におけるアービトレーション回路の一構成例を示すブロック図である。
【図３】本発明の第１の実施の形態におけるリクエスト管理部の一構成例を示すブロック図である。
【図４】本発明の第１の実施の形態における帯域制限フィルタの一構成例を示すブロック図である。
【図５】本発明の第１の実施の形態における帯域制限フィルタの設定例を示す図である。
【図６】本発明の第１の実施の形態における可変優先度フィルタの設定例を示す図である。
【図７】本発明の第１の実施の形態におけるアービトレーション回路の制御手順の一例を示すフローチャートである。
【図８】本発明の第１の実施の形態におけるリクエスト管理処理の一例を示すフローチャートである。
【図９】本発明の第１の実施の形態における帯域制限処理の一例を示すフローチャートである。
【図１０】本発明の第１の実施の形態における優先度方式リクエスト選択処理の一例を示すフローチャートである。
【図１１】本発明の第１の実施の形態におけるアービトレーション回路の動作結果の一例を示すタイミングチャートである。
【図１２】本発明の第１の実施の形態におけるアービトレーション回路の動作結果の一例を示すタイミングチャートである。
【図１３】本発明の第２の実施の形態におけるアービトレーション回路の一構成例を示す全体図である。
【図１４】本発明の第２の実施の形態におけるＬＲＧフィルタの一構成例を示す全体図である。
【図１５】本発明の第２の実施の形態におけるＬＲＧフィルタの構成を説明するための図である。
【図１６】本発明の第２の実施の形態におけるアービトレーション回路の制御手順の一例を示すフローチャートである。
【図１７】本発明の第２の実施の形態におけるＬＲＧ方式リクエスト選択処理の一例を示すフローチャートである。
【図１８】本発明の第２の実施の形態におけるアービトレーション回路の動作結果の一例を示すタイミングチャートである。
【図１９】本発明の第２の実施の形態におけるＬＲＧフィルタの変形成例を示すブロック図である。
【図２０】本発明の第３の実施の形態におけるアービトレーション回路の一構成例を示すブロック図である。
【図２１】本発明の第３の実施の形態における可変優先度フィルタの設定例を示す図である。
【図２２】本発明の第３の実施の形態におけるアービトレーション回路の制御手順の一例を示すフローチャートである。
【図２３】本発明の第３の実施の形態におけるアービトレーション回路の動作結果の一例を示すタイミングチャートである。
【図２４】本発明の第４の実施の形態におけるアービトレーション回路の一構成例を示すブロック図である。
【図２５】本発明の第４の実施の形態におけるスライサの一構成例を示すブロック図である。
【図２６】本発明の第４の実施の形態におけるアービトレーション回路の制御手順の一例を示すフローチャートである。
【図２７】本発明の第４の実施の形態におけるタイミング調整処理の一例を示すフローチャートである。
【図２８】本発明の第４の実施の形態におけるアービトレーション回路の動作結果の一例を示すタイミングチャートである。
【図２９】本発明の第５の実施の形態におけるアービトレーション回路の一構成例を示すブロック図である。
【図３０】本発明の第５の実施の形態における帯域制限フィルタの一構成例を示すブロック図である。
【図３１】本発明の第５の実施の形態における帯域制限フィルタの設定例を示す図である。
【図３２】本発明の第５の実施の形態における帯域制限処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００２４】
以下、本発明を実施するための形態（以下、実施の形態と称する）について説明する。説明は以下の順序により行う。
１．第１の実施の形態（アービトレーション回路：帯域制限の後に可変優先度方式を用いる例）
２．第２の実施の形態（アービトレーション回路：帯域制限の後に最長経過時間方式を用いる例）
３．第３の実施の形態（アービトレーション回路：帯域制限の後に可変優先度方式および最長経過時間方式を用いる例）
４．第４の実施の形態（アービトレーション回路：リクエスト信号を許可する時機を調整する例）
５．第５の実施の形態（アービトレーション回路：帯域制限の設定においてサイクル期間のみを設定する例）
【００２５】
＜１．第１の実施の形態＞
［バス制御装置の構成］
図１は、本発明の第１の実施の形態におけるバス制御装置の一構成例を示す全体図である。このバス制御装置は、Ｍ（Ｍは整数）個のマスタ１００と、スレーブ２００と、バス３００と、アービトレーション回路４００とを備えている。マスタ１００とアービトレーション回路４００との間は、信号線５００および信号線６００により接続されている。
【００２６】
信号線５００は、マスタ１００からアービトレーション回路４００へ調停を要求するための信号線である。信号線６００は、アービトレーション回路４００からマスタ１００へ調停結果を通知するための信号線である。ここで、調停とは、複数のマスタからリクエスト信号を受信したときに、アービトレーション回路４００が、いずれかのマスタへグラント信号を送信することである。リクエスト信号とは、マスタ１００がバス３００の使用を要求する信号である。グラント信号とは、アービトレーション回路４００がバス３００の使用をマスタに許可する信号である。
【００２７】
マスタ１００は、スレーブ２００を制御可能なデバイスである。スレーブ２００は、マスタ１００の制御対象のデバイスである。マスタ１００としては、例えば、プロセッサが想定される。また、スレーブ２００としては、例えば、メモリが想定される。この場合、プロセッサとメモリとの間でデータ転送が実行される際に、プロセッサは、メモリにアドレス等を発行して制御を行う。バス３００は、マスタ１００とスレーブ２００とがデータを送受信するための共通の経路である。マスタ１００は、バス３００を介してスレーブ２００の制御を行うとき、バス３００の使用を求めるリクエスト信号を、信号線５００を介してアービトレーション回路４００へ送信する。
【００２８】
アービトレーション回路４００は、複数のマスタ１００からのリクエスト信号に対して、１つのマスタ１００を調停するものである。アービトレーション回路４００は、複数のマスタ１００からリクエスト信号を受信すると、これらのリクエスト信号を、所定のアービトレーションポリシーに基づいて調停する。アービトレーションポリシーの詳細については、図２を参照して後述する。調停の結果、アービトレーション回路４００は、１つのマスタに対してバス３００の使用を許可するグラント信号を生成し、信号線６００を介して、そのマスタへ、そのグラント信号を送信する。アービトレーション回路４００から、グラント信号を受信したマスタ１００は、バス３００を使用してスレーブ２００の制御のためのデータ転送を行う。
【００２９】
図２は、本発明の第１の実施の形態が具現化されるアービトレーション回路の一例としてのアービトレーション回路４００の一構成例を示すブロック図である。このアービトレーション回路４００は、パラメータ設定部４１０、リクエスト管理部４２０、帯域制限フィルタ４３０、および、可変優先度フィルタ４４０を備える。
【００３０】
パラメータ設定部４１０は、バス３００の使用頻度に基づく転送速度を帯域内に制限する設定値と、バス３００の使用における優先度とをマスタごとに設定するものである。このパラメータ設定部４１０は、帯域設定部４１１および優先度設定部４１４を備える。
【００３１】
帯域設定部４１１は、バス３００の使用頻度に基づく転送速度を帯域内に制限する設定値をマスタごとに設定するものである。第１の実施の形態では、帯域設定部４１１は、サイクル期間レジスタ４１２およびグラント数レジスタ４１３を備える。
【００３２】
第１の実施の形態では、マスタごとに、サイクル期間および最大グラント数が設定される。サイクル期間は、リクエスト信号を監視する周期である。最大グラント数は、設定された周期内に送信が許容されるグラント信号の数の最大値である。各マスタのサイクル期間の設定値は、サイクル期間レジスタ４１２に格納される。また、各マスタの最大グラント数の設定値は、グラント数レジスタ４１３に格納される。帯域設定部４１１は、サイクル期間レジスタ４１２およびグラント数レジスタ４１３に格納された情報を帯域制限フィルタ４３０へ送信している。
【００３３】
ここで、アービトレーション回路４００は、マスタ１００がスレーブ２００を制御するアプリケーションの変更などに応じて、サイクル期間レジスタ４１２およびグラント数レジスタ４１３に格納された情報を更新することができる。
【００３４】
優先度設定部４１４は、マスタ１００のバスの使用の優先度をマスタごとに設定するものである。本実施の形態では、優先度設定部４１４は、優先度レジスタ４１５を備える。優先度レジスタ４１５には、マスタ間の優先度を示す情報が格納される。優先度設定部４１４は、可変優先フィルタ４４０へ優先度レジスタ４１５に格納された情報を送信している。第１の実施の形態では、バス３００へのアクセスの競合を避けるため、複数のマスタに同じ優先度が設定されないものとする。アービトレーション回路４００は、マスタ１００がスレーブ２００を制御するアプリケーションの変更などに応じて、優先度レジスタ４１５に格納された情報を更新することができる。
【００３５】
リクエスト管理部４２０は、各マスタからのリクエスト信号を受信し、それらのリクエスト信号の中から許可されていないリクエスト信号を帯域制限フィルタ４３０に送信するものである。具体的には、リクエスト管理部４２０は、各マスタからリクエスト信号を受信し、受信したリクエスト信号のうち、許可されていないリクエスト信号の数をマスタごとに計数する。リクエスト管理部４２０は、許可されていないリクエスト信号が１つ以上あるマスタのリクエスト信号を帯域制限フィルタ４３０に送信する。そして、リクエスト信号が許可されると、リクエスト管理部４２０は、許可されていないリクエスト数の値を１つ減少する。
【００３６】
帯域制限フィルタ４３０は、リクエスト管理部４２０から通知された各マスタのバスの使用頻度に基づく転送速度が、設定された帯域を越えないように、リクエスト信号をマスタごとに制限するものである。具体的には、帯域制限フィルタ４３０は、帯域設定部４１１から、各マスタに設定されたサイクル期間および最大グラント数を示す情報を受信する。そして、帯域制限フィルタ４３０は、サイクル期間内において、可変優先度フィルタ４４０から送信されたグラント信号の個数をカウントする。カウントした個数が、そのマスタに設定された最大グラント数を超えていれば、そのサイクル期間内において、そのリクエスト信号をマスクする。これにより、帯域制限フィルタ４３０は、マスクしなかったリクエスト信号を可変優先度フィルタ４４０へ出力する。ここで、帯域制限フィルタ４３０は、設定された帯域を超えない限りリクエスト信号を制限しないため、帯域制限フィルタ４３０は、複数のマスタからのリクエスト信号を可変優先度フィルタ４４０へ出力することがある。
【００３７】
可変優先度フィルタ４４０は、帯域制限フィルタ４３０によりマスクされなかったリクエスト信号の中から、優先度が最も高いマスタのリクエスト信号を許可するものである。具体的には、可変優先度フィルタ４４０は、マスタ間に設定された優先度を優先度設定部４１４から取得しておく。そして、帯域制限フィルタ４３０からリクエスト信号を受信したとき、それらのリクエスト信号の中から最も高い優先度が設定されたマスタのリクエスト信号を選択する。そして、可変優先度フィルタ４４０は、バスの使用を許可するグラント信号を生成し、選択したリクエスト信号に対応するマスタへ、そのグラント信号を送信する。可変優先度フィルタ４４０は、送信したグラント信号をリクエスト管理部４２０および帯域制限フィルタ４３０に通知する。
【００３８】
なお、上述の実施の形態の帯域設定部４１１は、特許請求の範囲に記載の使用頻度設定部の一例である。また、上述の実施の形態のリクエスト管理部４２０は、特許請求の範囲に記載の使用要求管理部の一例である。また、上述の実施の形態の帯域制限フィルタ４３０は、特許請求の範囲に記載の帯域制限部の一例である。また、上述の実施の形態の可変優先度フィルタ４４０は、特許請求の範囲に記載の使用要求許可部の一例である。
【００３９】
図３は、本発明の第１の実施の形態が具現化される使用要求管理部の一例としてのリクエスト管理部４２０の一構成例を示すブロック図である。リクエスト管理部４２０は、待機中リクエスト信号送信部４２１、および、待機中リクエスト数カウンタ群４２２を備える。
【００４０】
待機中リクエスト数カウンタ群４２２には、マスタごとに待機中リクエスト数カウンタが設けられる。これらの待機中リクエスト数カウンタは、受信したリクエスト信号のうち、許可されていないリクエスト信号の数を計数するカウンタである。
【００４１】
待機中リクエスト信号送信部４２１は、受信したリクエスト信号のうち、許可されていないリクエスト信号を帯域制限フィルタ４３０へ送信するものである。具体的には、待機中リクエスト信号送信部４２１は、各マスタからリクエスト信号を受信するたびに、待機中リクエスト数カウンタ群４２２のうち、そのマスタに対応する待機中リクエスト数カウンタにカウント値を１つ増加させる。そして、待機中リクエスト数カウンタ群４２２内の各マスタの待機中リクエスト数カウンタの値を参照し、その値が１以上のマスタのリクエスト信号を帯域制限フィルタ４３０へ送信する。
【００４２】
リクエスト信号を帯域制限フィルタ４３０へ送信した後、待機中リクエスト信号送信部４２１は、可変優先度フィルタ４４０から、送信したグラント信号の通知を受ける。待機中リクエスト信号送信部４２１は、待機中リクエスト数カウンタ群４２２のうち、通知されたグラント信号に対応するマスタの待機中リクエスト数カウンタに値を１つ減少させる。
【００４３】
図４は、本発明の第１の実施の形態が具現化される帯域制限部の一例としての帯域制限フィルタ４３０の一構成例を示すブロック図である。帯域制限フィルタ４３０は、帯域制限部４３１、サイクルカウンタ群４３２、および、サイクル内グラント数カウンタ群４３３を備える。
【００４４】
サイクルカウンタ群４３２には、マスタごとにサイクルカウンタが設けられる。これらのサイクルカウンタは、サイクル期間における経過時間を計数するカウンタである。サイクル内グラント数カウンタ群４３３には、マスタごとにサイクル内グラント数カウンタが設けられる。これらのサイクル内グラント数カウンタは、対応するマスタへ送信されたグラント信号の数を、設定されたサイクル内において計数するカウンタである。
【００４５】
帯域制限部４３１は、まず、サイクルカウンタ群４３２およびサイクル内グラント数カウンタ群４３３内の各カウンタを初期化する。また、帯域制限部４３１は、各マスタのサイクル期間および最大グラント数の設定値を示す情報を帯域設定部４１１から受信する。
【００４６】
この帯域制限部４３１は、システムクロックに基づいて動作し、１クロックサイクルごとにサイクルカウンタ群４３２内の各マスタのサイクルカウンタに値を１つ増加させる。帯域制限部４３１は、サイクル期間レジスタ４１２に格納された各マスタのサイクル期間と、グラント数レジスタ４１３に格納された各マスタの最大グラント数とを参照する。サイクル内グラント数カウンタ群４３３の中の、いずれかのマスタのサイクル内グラント数カウンタの値が、グラント数レジスタ４１３における、そのマスタの最大グラント数以上である場合について考える。この場合、帯域制限部４３１は、そのマスタからのリクエスト信号をマスクする。帯域制限部４３１は、可変優先度フィルタ４４０から、送信されたグラント信号の通知を受ける。帯域制限部４３１は、グラント信号の通知を受けるたびに、サイクル内グラント数カウンタ群４３３のうち、そのグラント信号が送信されたマスタのサイクル内グラント数カウンタに値を１つ増加させる。そして、サイクルカウンタの値が、そのサイクルカウンタに対応するマスタのサイクル期間を超えたのであれば、帯域制限部４３１は、サイクルカウンタ群４３２のうち、そのマスタに対応するサイクルカウンタに値を初期化させる。同時に、帯域制限部４３１は、サイクル内グラント数カウンタ群４３３のうち、そのマスタに対応するサイクル内グラント数カウンタに値を初期化させる。
【００４７】
このように、帯域制限部４３１は、各マスタに設定されたサイクル期間内で、マスタごとにグラント信号の数を計数し、計数した数が設定された数以上であれば、そのリクエスト信号をマスクする。この構成により、帯域制限部４３１は、バスの使用頻度に基づく転送速度をマスタごとに帯域内に制限することができる。
【００４８】
図５は、各マスタのサイクル期間および最大グラント数の設定例を示す図である。例えば、マスタ「＃１」について、サイクル期間「５」、最大グラント数「４」が設定されている。この場合、帯域制限フィルタ４３０は、５クロックサイクル内において、マスタ「＃１」へのグラント信号が４つとなった時点以降のマスタ「＃１」からのリクエスト信号をマスクする。
【００４９】
また、マスタ「＃２」および「＃３」については、サイクル期間「４」、最大グラント数「２」が設定されている。この場合、帯域制限フィルタ４３０は、４クロックサイクル内において、マスタ「＃２」へのグラント信号が２つとなった時点以降のマスタ「＃２」からのリクエスト信号をマスクする。また、帯域制限フィルタ４３０は、４クロックサイクル内において、マスタ「＃３」へのグラント信号が２つとなった時点以降のマスタ「＃３」からのリクエスト信号をマスクする。
【００５０】
図６は、各マスタの優先度の設定例を示す図である。可変優先度フィルタ４４０は、優先度の設定値が小さいほど、そのマスタの優先度が高いと判断する。例えば、マスタ「＃１」に「０」、マスタ「＃２」に「２」、マスタ「＃３」に「１」の値が設定されている。ここで、１クロックサイクル内に、マスタ「＃１」乃至「＃３」の全てからリクエストを受信した場合、可変優先度フィルタ４４０は、「０」の優先度が設定されたマスタ「＃１」を最も優先度が高いと判断し、マスタ「＃１」にのみグラント信号を生成する。
【００５１】
［バス制御装置の動作]
次に、本発明の第１の実施の形態におけるアービトレーション回路４００の制御手順について図７乃至１０を参照して説明する。
【００５２】
図７は、本発明の第１の実施の形態のアービトレーション回路４００の制御手順の一例を示すフローチャートである。この制御手順は、アービトレーション回路４００に電源が投入されたとき、または、マスタ１００がスレーブ２００を制御するためのアプリケーションが実行されたときに開始される。
【００５３】
リクエスト管理部４２０および帯域制限フィルタ４３０は、それぞれが管理する各カウンタの値を初期化する（ステップＳ９１０）。アービトレーション回路４００は、１クロックサイクルが経過したか否かを判断する（ステップＳ９２０）。１クロックサイクルが経過していなければ（ステップＳ９２０：Ｎｏ）、アービトレーション回路４００は、ステップＳ９２０に戻る。
【００５４】
１クロックサイクルが経過したのであれば（ステップＳ９２０：Ｙｅｓ）、リクエスト管理部４２０は、許可されていないリクエスト信号を送信するためのリクエスト管理処理を実行する（ステップＳ９３０）。帯域制限フィルタ４３０は、マスタごとに転送速度を帯域以下に制限するための帯域制限処理を実行する（ステップＳ９４０）。そして、可変優先度フィルタ４４０は、優先度に基づいてリクエスト信号を選択するための優先度方式リクエスト選択処理を実行する（ステップＳ９７０）。ステップＳ９７０の後、アービトレーション回路４００は、ステップＳ９２０に戻る。
【００５５】
図８は、本発明の第１の実施の形態のリクエスト管理処理の一例を示すフローチャートである。待機中リクエスト信号送信部４２１は、いずれかのマスタからリクエスト信号を受信したか否かを判断する（ステップＳ９３１）。いずれかのマスタからリクエスト信号を受信した場合（ステップＳ９３１：Ｙｅｓ）について説明する。この場合、待機中リクエスト信号送信部４２１は、待機中リクエスト数カウンタ群４２２内のうち、リクエスト信号を送信したマスタの待機中リクエスト数カウンタに値を１つ増加させる（ステップＳ９３２）。
【００５６】
待機中リクエスト信号送信部４２１は、待機中リクエスト数カウンタ群４２２のうち、待機中リクエスト数カウンタの値が１以上の各マスタのリクエスト信号を帯域制限フィルタ４３０へ送信する（ステップＳ９３３）。
【００５７】
待機中リクエスト信号送信部４２１は、可変優先度フィルタ４４０から、グラント信号が通知されたか否かを判断する（ステップＳ９３４）。通知されたのであれば（ステップＳ９３４：Ｙｅｓ）、待機中リクエスト信号送信部４２１は、待機中リクエスト数カウンタ群４２２のうち、通知されたグラント信号に対応するマスタの待機中リクエスト数カウンタに値を１つ減少させる（ステップ９３５）。ステップＳ９３５の後、待機中リクエスト信号送信部４２１は、リクエスト管理処理を終了する。
【００５８】
図９は、本発明の第１の実施の形態の帯域制限処理の一例を示すフローチャートである。帯域制限部４３１は、サイクルカウンタ群４３２内の各マスタに対応するサイクルカウンタに値を１つ増加させる（ステップＳ９４１）。帯域制限部４３１は、グラント数レジスタ４１３に格納された各マスタの最大グラント数を取得する。帯域制限部４３１は、サイクル内グラント数カウンタ群４３３内の各マスタのサイクル内グラント数カウンタの値と、各マスタの最大グラント数の設定値とを比較する。そして、帯域制限部４３１は、サイクル内グラント数カウンタ群４３３内のいずれかのマスタのサイクル内グラント数カウンタの値が設定値以上である否かを判断する（ステップＳ９４２）。サイクル内グラント数カウンタ群４３３内のいずれかのマスタのサイクル内グラント数カウンタの値が設定値以上であれば（ステップＳ９４２：Ｙｅｓ）、帯域制限部４３１は、そのマスタのリクエスト信号をマスクする（ステップＳ９４３）。
【００５９】
サイクル内グラント数カウンタ群４３３内の全てのマスタのサイクル内グラント数カウンタの値が設定値未満である場合（ステップＳ９４２：Ｎｏ）、またはステップＳ９４３の後の処理について説明する。この場合、帯域制限部４３１は、可変優先度フィルタ４４０から、グラント信号の通知を受けたか否かを判断する（ステップＳ９４４）。グラント信号の通知を受けたのであれば（ステップＳ９４４：Ｙｅｓ）、帯域制限部４３１は、サイクル内グラント数カウンタ群４３３のうち、グラント信号に対応するマスタのサイクル内グラント数カウンタに値を１つ増加させる（ステップＳ９４５）。
【００６０】
グラント信号の通知を受けていない場合（ステップＳ９４４：Ｎｏ）、または、ステップＳ９４５の後、帯域制限部４３１は、サイクル期間レジスタ４１２に格納された各マスタのサイクル期間を取得する。帯域制限部４３１は、サイクルカウンタ群４３２内の、いずれかのマスタのサイクルカウンタの値がサイクル期間を越えているか否かを判断する（ステップＳ９４６）。
【００６１】
いずれかのマスタのサイクルカウンタの値が、サイクル期間を越えている場合（ステップＳ９４６：Ｙｅｓ）について説明する。この場合、帯域制限部４３１は、サイクルカウンタ群４３２のうち、設定値を越えているマスタに対応するサイクルカウンタの値を初期化する。また、帯域制限部４３１は、サイクル内グラント数カウンタ群４３３のうち、設定値を越えているマスタに対応するサイクル内グラント数カウンタの値を初期化する（ステップＳ９４７）。各マスタのサイクルカウンタの値が、設定値を越えていない場合（ステップＳ９４６：Ｎｏ）、または、ステップＳ９４７の後、帯域制限部４３１は、１クロックサイクル内の帯域制限処理を終了する。
【００６２】
図１０は、本発明の第１の実施の形態の優先度方式リクエスト選択処理の一例を示すフローチャートである。可変優先度フィルタ４４０は、いずれかのマスタからのリクエスト信号を受信したか否かを判断する（ステップＳ９７１）。いずれかのマスタからのリクエスト信号を受信していれば（ステップＳ９７１：Ｙｅｓ）、可変優先度フィルタ４４０は、帯域制限フィルタ４３０を通過したリクエストの中から、優先度が最も高いマスタのリクエスト信号を選択して許可する（ステップＳ９７２）。可変優先度フィルタ４４０は、グラント信号を生成し、許可されたリクエスト信号に対応するマスタへ、そのグラント信号を送信する（ステップＳ９７３）。可変優先度フィルタ４４０は、送信したグラント信号をリクエスト管理部４２０および帯域制限フィルタ４３０へ通知する（ステップＳ９７４）。
【００６３】
いずれのマスタからもリクエスト信号を受信していない場合（ステップＳ９７１：Ｎｏ）、または、ステップＳ９７４の後、可変優先度フィルタ４４０は優先度方式リクエスト選択処理を終了する。
【００６４】
続いて、本発明の第１の実施の形態におけるアービトレーション回路４００の動作結果について図１１および図１２を参照して説明する。
【００６５】
図１１は、本実施の形態のアービトレーション回路４００の動作結果の一例を示すタイミングチャートである。この例では、バス制御装置に「＃１」、「＃２」、および、「＃３」の３つのマスタ１００を備える構成を想定している。帯域制限フィルタ４３０に設定された値は、図５に示したマスタ「＃１」乃至「＃３」の設定値と同様とする。可変優先度フィルタ４４０に設定された値は、図６に示したマスタ「＃１」乃至「＃３」の設定値と同様とする。
【００６６】
ここで、アービトレーション回路４００において、各フィルタは、各マスタからのリクエスト信号の有無を示す３ビットの信号を送受信するものとする。図中の「３'ｂ」以下の３ビット中の１ビット目が「＃１」のマスタのリクエスト信号の有無を示し、その３ビット中の２ビット目および３ビット目が「＃２」および「＃３」のマスタのリクエスト信号の有無を示す。例えば、「３'ｂ０１０」の信号は、マスタ「＃２」からのみリクエスト信号を受信したことを示している。
【００６７】
ここでは、クロックサイクル「Ｔ０」乃至「Ｔ５」の期間において、順に、「３'ｂ１１１」、「３'ｂ１１０」、「３'ｂ１００」、「３'ｂ１００」、「３'ｂ１００」、および、「３'ｂ０００」の信号を受信している。
【００６８】
リクエスト管理部４２０は、リクエスト信号を受信し、受信したリクエスト信号のうち、許可されていないリクエスト信号を帯域制限フィルタ４３０へ送信する。例えば、「Ｔ０」のクロックにおいて、全てのマスタからリクエスト信号を受信したことを示す「３'ｂ１１１」を受信している。リクエスト管理部４２０は、待機中リクエスト数カウンタ群４２２内の全てのマスタの待機中リクエスト数カウンタに値を１つ増加させる。全てのマスタの待機中リクエスト数カウンタが１以上であるため、リクエスト管理部４２０は、「３'ｂ１１１」を帯域制限フィルタ４３０へ送信する。そして、マスタ「＃１」へ送信されたグラント信号の通知を受けると、リクエスト管理部４２０は、マスタ「＃１」の待機中リクエスト数カウンタに値を１つ減少させる。
【００６９】
帯域制限フィルタ４３０は、マスタごとに各サイクル期間内におけるグラント数が設定値以上であるか否かを判断し、超えるのであれば、そのマスタのリクエスト信号をマスクする。例えば、マスタ「＃１」について、図５に示したように、サイクル期間は「５」、最大グラント数は「４」に設定されている。この設定に従って、帯域制限フィルタ４３０は、５クロックサイクル内において、マスタ「＃１」へのグラント信号が４つとなった時点以降のマスタ「＃１」からのリクエスト信号をマスクする。
【００７０】
この例では、「Ｔ０」乃至「Ｔ３」の４クロックサイクルにおいて、可変優先度フィルタ４４０は、マスタ「＃１」から４回グラント信号を送信している。「Ｔ４」のクロックにおいて、帯域制限フィルタ４３０が計数したグラント信号の送信回数は、設定値の「４」以上となる。このため、「Ｔ４」のクロックにおいて、帯域制限フィルタ４３０は、受信した「３'ｂ１１１」から、マスタ「＃１」からのリクエスト信号をマスクして「３'ｂ０１１」を送信する。
【００７１】
次に、可変優先度フィルタ４４０は、帯域制限フィルタ４３０から出力されたリクエスト信号の中から、優先度が最も高いマスタのリクエスト信号を選択する。例えば、クロックサイクル「Ｔ０」において可変優先度フィルタ４４０は、帯域制限フィルタ４３０から「３'ｂ１１１」を受信している。すなわち、マスタ「＃１」乃至「＃３」のいずれからもリクエスト信号が出力されている。ここで、図６に示したように、マスタ「＃１」、「＃２」、および、「＃３」の優先度は、「０」、「２」、および、「１」に設定されており、最も優先度が高いマスタは「＃１」である。そこで、可変優先度フィルタ４４０は、「＃１」のマスタのリクエスト信号を選択し、「３'ｂ１００」を送信する。
【００７２】
図１２は、第１の実施の形態のアービトレーション回路４００の動作結果の一例を示すタイミングチャートである。
【００７３】
この例では、マスタの数と、帯域制限および優先度の設定とは、図１１を参照して説明した場合と同様とする。また、図中の「Ｍ１＿Ａ」等における「Ｍ」に付随する数字は、マスタの番号であり、「＿」の後のアルファベットは、アルファベット順にリクエスト信号を受信したことを意味する。これらのアルファベットはリクエスト信号を受信した数を示すための便宜上のものであり、第１の実施の形態では、個々のリクエスト信号に、それぞれを識別できる識別子を付加する必要はない。
【００７４】
マスタ「＃１」からは、「Ｔ０」乃至「Ｔ４」、「Ｔ６」乃至「Ｔ９」、「Ｔ１１」乃至「Ｔ１４」、および、「Ｔ１６」乃至「Ｔ１８」の各期間に計１６回リクエスト信号を受信するものとする。マスタ「＃２」からは、「Ｔ０」、「Ｔ１」、「Ｔ１８」、および、「Ｔ１９」の各期間にリクエスト信号を計４回受信したものとする。マスタ「＃３」からは、「Ｔ０」、「Ｔ６」、「Ｔ７」、および、「Ｔ８」の各期間において、リクエスト信号を計４回受信したものとする。
【００７５】
この場合、「Ｔ０」乃至「Ｔ３」の期間において、アービトレーション回路４００は、マスタ「＃１」から４回リクエスト信号を受信し、マスタ「＃２」からは２回、マスタ「＃３」からは１回リクエスト信号を受信している。マスタ「＃１」の優先度が最も高いため、この期間内において「＃１」のリクエスト信号が帯域フィルタ４３０および可変優先度フィルタ４４０を通過する。このため、アービトレーション回路４００は、マスタ「＃１」に４回グラント信号を送信する。リクエスト管理部４２０は、待機中リクエスト数カウンタ群４２２のうち、許可されなかったマスタ「＃２」の待機中リクエスト数カウンタに値を２つ増加させる。リクエスト管理部４２０は、待機中リクエスト数カウンタ群４２２のうち、許可されなかったマスタ「＃３」の待機中リクエスト数カウンタに値を１つ増加させる。
【００７６】
５クロック内にマスタ「＃１」のグラント回数が４回となったため、「Ｔ４」において、帯域制限フィルタ４３０は、そのマスタからのリクエスト信号を制限する。この「Ｔ４」のクロックにおいて、リクエスト管理部４２０は、許可されていないマスタ「＃２」および「＃３」のリクエスト信号を選択して帯域制限フィルタ４３０へ送信する。そして、マスタ「＃２」より優先度の「＃３」の方が、優先度が高いため、可変優先度フィルタ４４０は、マスタ「＃３」のリクエスト信号を許可する。リクエスト管理部４２０は、待機中リクエスト数カウンタ群４２２のうち、許可されたマスタ「＃３」の各待機中リクエスト数カウンタに値を１つ減少させる。
【００７７】
「Ｔ５」乃至「Ｔ９」の期間においても、最も優先度の高いマスタ「＃１」のリクエスト信号が４回許可され、次に優先度の高いマスタ「＃３」のリクエスト信号が１回許可される。
【００７８】
優先度が最も低いマスタ「＃２」のリクエスト信号は、「Ｔ１９」までに４回送信されており、いずれも許可されていない。このため、この時点において、待機中リクエスト数カウンタ群４２２のうち、マスタ「＃２」の待機中リクエスト数カウンタの値は「４」である。「Ｔ２０」の時点で、マスタ「＃１」および「＃３」のリクエスト信号が全て許可されて、待機中リクエスト数カウンタ群４２２における、これらのマスタの待機中リクエスト数カウンタの値が「０」となる。リクエスト管理部４２０は、待機中リクエスト数カウンタ群４２２のうち、待機中リクエスト数カウンタの値が１つ以上のマスタ「＃２」のリクエスト信号のみを帯域制限フィルタ４３０に送信する。そして、「Ｔ２０」以降にマスタ「＃２」のリクエスト信号が許可される。
【００７９】
図１２に例示したように、帯域制限フィルタ４３０が優先度の高いマスタ「＃１」の帯域を制限しているため、５クロックに１回は、優先度の低いマスタ「＃３」にもグラント信号が送信される。このように、マスタごとにリクエスト信号を帯域制限することにより、マスタごとに要求されるＱｏＳ（Quality of Service）が異なる場合であっても、それらのＱｏＳを満たすことが可能となる。
【００８０】
このように、第１の実施の形態によれば、リクエスト管理部４２０がリクエスト信号を受信し、受信した中から、許可されていないリクエスト信号を出力する。帯域制限フィルタ４３０は、マスタによるバスの使用頻度に基づく転送速度が、設定された帯域以下となるように、マスタごとにリクエスト信号を制限する。可変優先度フィルタ４４０は、制限されなかったリクエスト信号の中から優先度に基づいていずれかのリクエスト信号を許可する。すなわち、この構成によれば、アービトレーション回路４００は、バスの使用頻度に基づくデータ転送速度を、マスタごとに帯域以下に制限することができる。また、帯域設定部４１１が帯域をマスタごとに設定できるため、アービトレーション回路４００は、ハードウェアを再設計することなく、その帯域を変更することができる。
【００８１】
なお、第１の実施の形態では、バス制御装置は、スレーブ２００を１つ備える構成としているが、複数のスレーブを備える構成としてもよい。
【００８２】
また、本実施の形態では、アービトレーション回路４００は、帯域制限フィルタ４３０を通過したリクエストの中から、優先度方式で、１つのマスタのリクエストを選択する構成としている。しかし、アービトレーション回路４００は、帯域制限後に、１つのマスタのリクエストを選択することができるのであれば、優先度方式以外の方式を用いることもできる。例えば、アービトレーション回路４００は、図１３で後述する、最長経過時間方式や、図１８で後述する、最長経過時間方式および優先度方式を組み合わせた方式を用いてもよい。ラウンドロビン方式など、これら以外の方式を用いてもよいのは勿論である。
【００８３】
また、第１の実施の形態では、アービトレーション回路４００は、優先度レジスタ４１５の更新により優先度を可変できる構成としているが、各マスタの優先度を固定値としてもよいのは勿論である。
【００８４】
さらに、第１の実施の形態では、アービトレーション回路４００は、グラント信号を監視する周期と、その周期内で許可するグラント数とを設定しておき、これらの設定値に基づいて転送速度を帯域内に制限する構成としている。しかし、マスタごとに転送速度を制限できるのであれば、周期およびグラント数以外の設定値を設定する構成としてもよい。例えば、図２９で後述するように、周期内で許可するグラント数を固定値とし、周期のみをマスタごとに設定する構成としてもよい。また、周期を固定値とし、グラント数のみをマスタごとに設定する構成としてもよい。あるいは、帯域そのものをマスタごとに設定する構成としてもよい。
【００８５】
＜２．第２の実施の形態＞
［バス制御装置の構成］
次に、図１３乃至図１７を参照して、本発明の第２の実施の形態について説明する。第１の実施の形態のアービトレーション回路は、帯域制限の後に優先度方式でマスタを選択していた。しかし、第２の実施の形態のアービトレーション回路は、帯域制限の後に最長経過時間方式でマスタを選択する点で第１の実施の形態と異なる。
【００８６】
図１３は、本発明の第２の実施の形態が具現化されるアービトレーション回路の一例としてのアービトレーション回路４０１の一構成例を示すブロック図である。このアービトレーション回路４０１は、パラメータ設定部４１０の代わりにパラメータ設定部４１６を備え、可変優先度フィルタ４４０の代わりにＬＲＧフィルタ４５０を備える点で、第１の実施の形態のアービトレーション回路４００と異なる。パラメータ設定部４１６は、優先度設定部４１４を備えない点で第１の実施の形態のパラメータ設定部４１０と異なる。
【００８７】
ＬＲＧフィルタ４５０は、帯域制限フィルタ４３０によりマスクされなかったリクエスト信号の中から、最後にＬＲＧフィルタ４５０がグラント信号を送信してからの経過時間が最も長いマスタのリクエスト信号を選択して許可するものである。このように、複数のリクエスト信号の中から、最後にグラント信号を送信してから最も経過時間が長いマスタのリクエスト信号を許可する方式を最長経過時間（ＬＲＧ：Least Recently Granted）方式と称する。ＬＲＧフィルタ４５０は、許可したリクエストに対応するマスタにグラント信号を生成し、信号線６００を介して、そのマスタへ出力する。
【００８８】
なお、上述の実施の形態のＬＲＧフィルタ４５０は、特許請求の範囲に記載の使用要求許可部の一例である。
【００８９】
図１４は、本発明の第２の実施の形態が具現化される使用要求許可部の一例としてのＬＲＧフィルタ４５０の一構成例を示すブロック図である。ＬＲＧフィルタ４５０は、ＬＲＧ方式選択部４５１および優先度保持部４５２を備える。
【００９０】
優先度保持部４５２は、マスタごとに、優先度を示す値を保持するものである。例えば、保持された値が小さいほど、優先度が高いものとする。
【００９１】
ＬＲＧ方式選択部４５１は、システムクロックに基づいて動作する。ＬＲＧ方式選択部４５１は、まず、優先度保持部４５２が保持する各優先度を初期化する。初期化においては、同じ優先度が複数のマスタに割り当てられないようにしておく。そして、ＬＲＧ方式選択部４５１は、帯域制限フィルタ４３０によりマスクされなかったリクエスト信号があれば、その中から、優先度が最も高いマスタのリクエスト信号を選択して許可する。ＬＲＧ方式選択部４５１は、優先度保持部４５２が保持する優先度を、許可したリクエスト信号に対応するマスタの優先度が最も低くなるように更新する。ＬＲＧ方式選択部４５１は、許可したリクエスト信号に対応するマスタにグラント信号を送信する。ＬＲＧ方式選択部４５１は、送信したグラント信号をリクエスト管理部４２０および帯域制限フィルタ４３０に通知する。
【００９２】
図１５は、本発明の第２の実施の形態におけるＬＲＧフィルタの構成を説明するための図である。この例では、バス制御装置に「Ｍ１」、「Ｍ２」、および、「Ｍ３」の３つのマスタ１００を備える構成を想定している。初期化においては、ＬＲＧフィルタ４５０は、優先度が高い順に「Ｍ１」、「Ｍ２」、「Ｍ３」となるように各マスタの優先度を保持しておくものとする。ある時刻において、「Ｍ２」および「Ｍ３」が帯域制限フィルタ４３０によりマスクされなかった場合、ＬＲＧフィルタ４５０は、その中から最も優先度が高い「Ｍ２」を許可する。そして、「Ｍ２」へグラント信号が出力される。ＬＲＧ方式選択部４５１は、許可した「Ｍ２」の優先度が最も低くなるように優先度保持部４５２が保持する値を更新する。この結果、優先度保持部４５２が保持する優先度は、高い順に「Ｍ１」、「Ｍ３」、「Ｍ２」となる。その後、「Ｍ３」が帯域制限フィルタ４３０によりマスクされなかった場合、ＬＲＧフィルタ４５０は、「Ｍ３」を許可する。ＬＲＧ方式選択部４５１は、そのマスタの優先度が最も低くなるように優先度保持部４５２が保持する値を更新する。この結果、優先度保持部４５２が保持する優先度は、高い順に「Ｍ１」、「Ｍ２」、「Ｍ３」となる。このように、ＬＲＧフィルタ４５０は、グラント信号に基づいて優先度を動的に更新する。
【００９３】
［バス制御装置の動作］
次に、本発明の第２の実施の形態におけるアービトレーション回路４０１の動作について図１６および図１７を参照して説明する。
【００９４】
図１５は、本発明の第２の実施の形態のアービトレーション回路４０１の制御手順の一例を示すフローチャートである。本実施の形態のアービトレーション回路４０１の制御手順は、優先度方式リクエスト選択処理（ステップＳ９７０）の代わりに、ＬＲＧ方式選択処理（ステップＳ９９０）を実行する点において、第１の実施の形態の制御手順と異なる。
【００９５】
図１７は、本発明の第２の実施の形態のＬＲＧ方式選択リクエスト処理の一例を示すフローチャートである。ＬＲＧ方式選択部４５１は、帯域制限フィルタ４３０からリクエスト信号を少なくとも１つ受信したか否かを判断する（ステップＳ９９１）。
【００９６】
リクエスト信号を受信したのであれば（ステップＳ９９１：Ｙｅｓ）、ＬＲＧ方式選択部４５１は、受信したリクエスト信号の中から、優先度が最も高いマスタのリクエストを選択して許可する（ステップＳ９９２）。ＬＲＧ方式選択部４５１は、優先度保持部４５２のうち、許可したリクエスト信号に対応するマスタの優先度を最も低くする（ステップＳ９９３）。ＬＲＧ方式選択部４５１は、許可されたリクエストに対応するマスタにグラント信号を送信する（ステップＳ９９４）。ＬＲＧ方式選択部４５１は、送信したグラント信号をリクエスト管理部４２０および帯域制限フィルタ４３０に通知する（ステップＳ９９５）。
【００９７】
リクエスト信号を１つも受信していない場合（ステップＳ９９１：Ｎｏ）、またはステップＳ９９６の後、ＬＲＧフィルタ４５０は、ＬＲＧ方式選択リクエスト処理を終了する。
【００９８】
続いて、本発明の第２の実施の形態におけるアービトレーション回路４０１の動作結果について図１８を参照して説明する。
【００９９】
図１８は、本実施の形態のアービトレーション回路４０１の動作結果の一例を示すタイミングチャートである。この例では、バスマスタの数と、帯域制限および優先度の設定値とは、第１の実施の形態と同様とする。また、「Ｔ０」乃至「Ｔ５」の期間において、アービトレーション回路４０１は、第１の実施の形態と同様のリクエスト信号を受信したものと想定する。すなわち、前述したように、「３'ｂ１１１」、「３'ｂ１１０」、「３'ｂ１００」、「３'ｂ１００」、「３'ｂ１００」、および、「３'ｂ０００」を受信したものと考える。
【０１００】
リクエスト管理部４２０は、第１の実施の形態の場合と同様に、リクエスト信号を受信し、受信したリクエスト信号のうち、許可されていないリクエスト信号を帯域制限フィルタ４３０へ送信する。帯域制限フィルタ４３０は、マスタごとに各サイクル期間内のグラント数が設定値以上であるか否かを判断し、設定値以上であれば、そのマスタのリクエストをマスクする。
【０１０１】
ＬＲＧフィルタ４５０は、帯域制限フィルタ４３０により制限されなかったリクエスト信号のうち、最後にグラント信号を送信してから最も経過時間の長いマスタのリクエスト信号を選択して許可する。例えば、「Ｔ０」より前のクロックでマスタ「＃２」、「＃１」の順にグラント信号が送信されていたと仮定する。そして、「Ｔ０」において、ＬＲＧフィルタ４５０がマスタ「＃１」にグラント信号を送信してから、「Ｔ１」において、ＬＲＧフィルタ４５０が「３'ｂ１１１」を受信している。この場合、最後に許可されてから経過時間が最も長いマスタは、「＃２」となる。このため、ＬＲＧフィルタ４５０は、「３'ｂ０１０」の信号を出力する。
【０１０２】
このように、本発明の第２の実施の形態によれば、帯域制限後に、最後にグラント信号を送信してから最も経過時間の長いマスタのリクエスト信号をＬＲＧフィルタ４５０が選択する。この構成によれば、リクエストが選択されない時間が長いマスタにもデータ転送を許可でき、マスタ間の公平性を確保することができる。
【０１０３】
なお、本発明の第２の実施の形態では、ＬＲＧフィルタ４５０がマスタごとに優先度を保持しておき、グラント信号に基づいて優先度を動的に変更する構成としている。しかし、例えば、図１９に示すように、マスタごとに経過時間を計数するカウンタを設ける構成としてもよい。図１９は、本発明の第２の実施の形態におけるＬＲＧフィルタ４５０の変形例を示すブロック図である。このＬＲＧフィルタ４５０は、ＬＲＧ方式選択部４５３および経過時間カウンタ群４５４を備える。
【０１０４】
経過時間カウンタ群４５４には、マスタごとに経過時間カウンタが設けられる。経過時間カウンタは、最後に選択されたときからの経過時間を計数するカウンタである。
【０１０５】
ＬＲＧ方式選択部４５３は、システムクロックに基づいて動作する。ＬＲＧ方式選択部４５３は、まず、経過時間カウンタ群４５４内の各カウンタを初期化する。そして、ＬＲＧ方式選択部４５３は、１クロックサイクルが経過するたびに各経過時間カウンタをカウントアップする。ＬＲＧ方式選択部４５３は、帯域制限フィルタ４３０によりマスクされなかったリクエスト信号があれば、その中から、経過時間カウンタの値が最も長いマスタのリクエスト信号を選択して許可する。ＬＲＧ方式選択部４５３は、許可したリクエスト信号に対応するマスタの経過時間カウンタを初期化する。ＬＲＧ方式選択部４５３は、許可したリクエスト信号に対応するマスタにグラント信号を送信する。ＬＲＧ方式選択部４５３は、送信したグラント信号をリクエスト管理部４２０および帯域制限フィルタ４３０に通知する。
【０１０６】
＜３．第３の実施の形態＞
［バス制御装置の構成］
次に、図２０乃至図２３を参照して、本発明の第３の実施の形態について説明する。第１の実施の形態のアービトレーション回路は、帯域制限の後に優先度方式によりマスタを選択していた。しかし、本発明の第３の実施の形態のアービトレーション回路は、帯域制限の後に優先度方式および最長経過時間方式によりマスタを選択する点で第１の実施の形態と異なる。
【０１０７】
図２０は、本発明の第３の実施の形態が具現化されるアービトレーション回路の一例としてのアービトレーション回路４０２の一構成例を示すブロック図である。このアービトレーション回路４０２は、可変優先度フィルタ４４０の代わりに可変優先度フィルタ４４５を備え、ＬＲＧフィルタ４５０をさらに備える点において、第１の実施の形態のアービトレーション回路４００と異なる。
【０１０８】
可変優先度フィルタ４４５は、帯域制限フィルタ４３０から受信したリクエスト信号の中から、最も高い優先度が設定されたマスタのリクエスト信号を選択するものである。
【０１０９】
ここで、第１の実施の形態では、複数のマスタに同じ優先度が設定されないものとしていたが、第２の実施の形態では、複数のマスタに同じ優先度を設定してもよいものとする。これは、可変優先度フィルタ４４５を通過したリクエスト信号が複数であっても、ＬＲＧフィルタ４５０が、その中から、いずれかのマスタのリクエスト信号を選択するためである。
【０１１０】
また、第１の実施の形態では、可変優先度フィルタ４４０は、選択したリクエスト信号をリクエスト管理部４２０および帯域制限フィルタ４３０に通知していた。しかし、第３の実施の形態の可変優先度フィルタ４４５は、グラント信号をリクエスト管理部４２０および帯域制限フィルタ４３０に通知しない。これは、前段の可変優先度フィルタ４４０でなく、後段のＬＲＧフィルタ４５０が、グラント信号をリクエスト管理部４２０および帯域制限フィルタ４３０に通知するためである。
【０１１１】
なお、上述の実施の形態の可変優先度フィルタ４４５は、特許請求の範囲に記載の優先度選択部の一例である。上述の実施の形態のＬＲＧフィルタ４５０は、特許請求の範囲に記載の最長経過時間選択部の一例である。
【０１１２】
図２１は、本発明の第３の実施の形態における、各マスタの優先度の設定例を示す図である。第１の実施の形態においては、図６で例示したように複数のマスタに同じ優先度を設定できないものとしていたが、第３の実施の形態においては、複数のマスタに同じ優先度を設定できるものとする。例えば、マスタ「＃１」、「＃２」、および、「＃３」には、それぞれ「０」、「１」、および、「１」の優先度が設定されており、マスタ「＃２」および「＃３」の優先度が同じである。
【０１１３】
［バス制御装置の動作］
次に、本発明の第３の実施の形態におけるアービトレーション回路４０２の制御手順について図２２を参照して説明する。
【０１１４】
図２２は、本発明の第３の実施の形態のアービトレーション回路４０２の制御手順の一例を示すフローチャートである。アービトレーション回路４０２の制御手順は、優先度方式リクエスト選択処理（ステップＳ９７０）の代わりに、ステップＳ９７５およびＳ９９０を実行する点において、第１の実施の形態の制御手順と異なる。
【０１１５】
ステップＳ９７０の後、可変優先度フィルタ４４５は、帯域制限フィルタ４３０を通過したリクエスト信号の中から、優先度が最も高いマスタのリクエスト信号を選択する（ステップＳ９７５）。ステップＳ９７５の後、ＬＲＧフィルタ４５０は、ＬＲＧ方式リクエスト選択処理を実行する（Ｓ９９０）。このリクエスト方式選択処理は、第２の実施の形態のＬＲＧ方式リクエスト選択処理と同様である。
【０１１６】
図２３は、本発明の第３の実施の形態のアービトレーション回路４０２の動作結果の一例を示すタイミングチャートである。この例では、バスマスタの数は、第１の実施の形態と同様に３つしかない構成を想定している。帯域制限フィルタ４３０の設定値は、第１の実施の形態と同様とする。可変優先度フィルタ４４５の設定値は、図２１に例示したように、マスタ「＃１」、「＃２」、および、「＃３」に対して、優先度「０」、「１」、および、「１」であるものとする。
【０１１７】
また、「Ｔ０」乃至「Ｔ５」の期間において、アービトレーション回路４０２は、第１の実施の形態と同様のリクエスト信号を受信したものと想定する。すなわち、前述したように、「３'ｂ１１１」、「３'ｂ１１０」、「３'ｂ１００」、「３'ｂ１００」、「３'ｂ１００」、および、「３'ｂ０００」を受信したものと考える。
【０１１８】
リクエスト管理部４２０は、第１の実施の形態の場合と同様に、リクエスト信号を受信し、受信した中から許可されていないリクエスト信号を送信する。帯域制限フィルタ４３０も、第１の実施の形態と同様に、マスタごとに各サイクル期間内のリクエスト数が設定値を越えるか否かを判断し、設定値を超えるのであれば、そのマスタのリクエスト信号をマスクする。
【０１１９】
可変優先度フィルタ４４５は、帯域制限フィルタ４３０から出力されたリクエスト信号の中から、優先度が最も高いマスタのリクエスト信号を選択する。但し、前述したように、第３の実施の形態においては、第１の実施の形態と異なり、複数のマスタに同じ優先度を設定することが許容される。このため、可変優先度フィルタ４４５は複数のリクエスト信号を出力することがある。
【０１２０】
例えば、「Ｔ４」のクロックにおいて、可変優先度フィルタ４４５は、帯域制限フィルタから「３'ｂ０１１」の信号を受信している。マスタ「＃２」および「＃３」の優先度が同じであるため、可変優先度フィルタ４４５は、複数のリクエスト信号を示す「３'ｂ０１１」の信号を出力する。
【０１２１】
ＬＲＧフィルタ４５０は、第２の実施の形態と同様に、可変優先度フィルタ４４５から受信したリクエスト信号のうち、許可されてから最も経過時間の長いマスタのリクエストを選択する。
【０１２２】
このように、本発明の第３の実施の形態によれば、帯域制限後に、可変優先度フィルタ４４５が優先度方式でリクエスト信号を選択し、その後にＬＲＧフィルタ４５０が最長経過時間方式でリクエスト信号を選択する。この構成によれば、アービトレーション回路４０２は、予め設定された優先度と、許可されたときからの経過時間とに基づいて選択要求を選択することができる。従って、アービトレーション回路４０２は、優先度を高く設定したマスタのリクエストを確実に選択できるとともに、マスタ間の公平性を確保することができる。
【０１２３】
なお、第３の実施の形態では、アービトレーション回路４０２は、優先度レジスタ４１５の更新により、優先度を可変できる構成としている。しかし、各マスタの優先度を固定値としてもよいのは勿論である。
【０１２４】
＜４．第４の実施の形態＞
［バス制御装置の構成］
次に、図２４乃至図２８を参照して、本発明の第４の実施の形態について説明する。第３の実施の形態では、アービトレーション回路４０２は、あるクロックサイクルにおいて受信したリクエスト信号を、そのクロックサイクル内に許可していた。しかし、第４の実実施の形態のアービトレーション回路４０３は、あるクロックサイクルにおいて受信したリクエスト信号を、そのクロックサイクル内でなく、次のクロックサイクルにおいて許可する点で第３の実施の形態と異なる。
【０１２５】
図２４は、本発明の第４の実施の形態が具現化されるアービトレーション回路の一例としてのアービトレーション回路４０３の一構成例を示すブロック図である。第３の実施の形態のアービトレーション回路４０２は、前述したように、各クロックサイクルにおいてリクエスト信号を選択して許可すると、許可していないリクエスト信号の数を１つ減少させる。ここで、リクエスト信号を受信してから、その中のいずれかを許可する処理が完了するのに、ある程度の時間を要する。このため、許可していないリクエスト信号を減らす処理が、リクエスト信号を受信したクロックサイクル内に終了しないことがありうる。その場合、待機中リクエスト数カウンタ群４２２内の待機中リクエスト数カウンタから、削除すべきリクエスト信号が削除されず、アービトレーション回路４０２が誤動作する原因となる。そこで、第３の実施の形態においては、アービトレーション回路４０２が、あるクロックサイクル内に選択したリクエスト信号を、そのクロックサイクルの次のサイクル以降に許可する構成にし、許可したリクエスト信号を確実に削除するようにしている。
【０１２６】
具体的には、アービトレーション回路４０３は、ＬＲＧフィルタ４５０の代わりにＬＲＧフィルタ４５５を備える点において、第３の実施の形態のアービトレーション回路４０２と異なる。また、アービトレーション回路４０３は、可変優先度フィルタ４４５とＬＲＧフィルタ４５５との間にスライサ４６０を備える点においても、第３の実施の形態のアービトレーション回路４０２と異なる。
【０１２７】
ＬＲＧフィルタ４５５は、グラント信号を、リクエスト管理部４２０および帯域制限フィルタ４３０のほか、さらにスライサ４６０にも通知する点において、第３の実施の形態のＬＲＧフィルタ４５０と異なる。
【０１２８】
スライサ４６０は、あるクロックサイクルにおいて可変優先度フィルタ４４５により選択されたリクエスト信号の一部または全部を、そのクロックサイクルの次のサイクルにＬＲＧフィルタ４５５へ出力するものである。詳細には、スライサ４６０は、前回送信されたグラント信号の通知をＬＲＧフィルタ４５５から受ける。そして、可変優先度フィルタ４４５により選択されたリクエスト信号のうち、前回グラント信号が通知されたマスタと異なるマスタのリクエスト信号をＬＲＧフィルタ４５５へ出力する。前回グラント信号が送信されたマスタからのリクエスト信号を出力しない理由については、図２５を参照して後述する。
【０１２９】
図２５は、スライサ４６０の一構成例を示すブロック図である。スライサ４６０は、タイミング調整部４６１、前回グラント信号保持部４６２、およびＥＯＲ回路４６３を備える。
【０１３０】
タイミング調整部４６１は、ＦＩＦＯ（First In First Out）方式を使用してリクエスト信号を保持し、ＬＲＧフィルタ４５５がリクエスト信号を出力するタイミングを調整するものである。具体的には、可変優先度フィルタ４４５からリクエスト信号が選択されると、タイミング調整部４６１は、前回のクロックサイクルにおいて自身が保持したリクエスト信号を取得する。そして、タイミング調整部４６１は、今回のクロックサイクルにおいて選択されたリクエスト信号を保持する。
【０１３１】
前回グラント信号保持部４６２は、ＬＲＧフィルタ４５５から通知されたグラント信号を保持するものである。前回グラントリクエスト信号保持部４６２は、ＬＲＧフィルタ４５５からリクエスト信号を受信するたびに、保持しているグラント信号を受信したグラント信号により更新する。前回グラント信号保持部４６２は、通知されたグラント信号を、グラント信号が送信されたか否かをマスタごとに示すビット列として保持する。
【０１３２】
ＥＯＲ回路４６３は、タイミング調整部４６１が取得したリクエスト信号の中から、前回許可されたリクエスト信号のマスタと異なるマスタのリクエスト信号をＬＲＧフィルタ４５５へ出力するものである。具体的には、ＥＯＲ回路４６３は、各マスタのリクエスト信号の有無を示すビット列をタイミング調整部４６１から受信する。また、ＥＯＲ回路４６３は、前回グラント信号が送信されたか否かをマスタごとに示すビット列を前回グラント信号保持部４６２から読み出す。ＥＯＲ回路４６３は、受信したビット列と読み出したビット列との排他的論理和を求め、求めた排他的論理和をＬＲＧフィルタ４５５へ出力する。
【０１３３】
上述したように、リクエスト管理部４２０とは別に、タイミング調整部４６１は、前回選択されたリクエスト信号を保持している。タイミング調整部４６１に保持されたリクエスト信号の中には、前回許可されたことにより、リクエスト管理部４２０が削除したリクエスト信号と同一の信号が含まれることがある。このため、前回許可されたリクエスト信号とマスタが同一のリクエスト信号をタイミング調整部４６１の出力信号から削除しておかないと、リクエスト管理部４２０により削除されたリクエスト信号が許可される可能性がある。この場合、アービトレーション回路４０３は、１つのリクエスト信号を２回許可することとなり、アービトレーション回路４０３に誤動作が生じうる。従って、この誤動作を防ぐ目的に基づき、前回許可されたリクエスト信号とマスタが同一のリクエスト信号をスライサ４６０が出力しない構成としている。
【０１３４】
なお、上述の実施の形態のスライサ４６０は、特許請求の範囲に記載の調整部の一例である。
【０１３５】
［バス制御装置の動作］
次に、本発明の第４の実施の形態におけるアービトレーション回路４０３の制御手順について図２６および図２７を参照して説明する。
【０１３６】
図２６は、本発明の第４の実施の形態のアービトレーション回路４０３の制御手順の一例を示すフローチャートである。第４の実施の形態の制御手順は、ステップＳ９７５の後に、リクエスト信号を許可する時機を調整するためのタイミング調整処理（ステップＳ９８０）をさらに実行する点において、第３の実施の形態の制御手順と異なる。
【０１３７】
図２７は、本発明の第４の実施の形態のタイミング調整処理の一例を示すフローチャートである。タイミング調整部４６１は、前回保持したリクエスト信号を取得し、今回受信したリクエスト信号を保持する（ステップＳ９８１）。
【０１３８】
ＥＯＲ回路４６３は、ＬＲＧフィルタ４５５により前回送信されたグラント信号を前回グラント信号保持部４６２から読み出して取得する（ステップＳ９８２）。ＥＯＲ回路４６３は、今回受信したリクエスト信号のうち、前回グラント信号が送信されたマスタからのリクエスト信号をマスクする（ステップＳ９８３）。ＥＯＲ回路４６３は、マスクしなかったリクエスト信号をＬＲＧフィルタ４５５に出力する（ステップＳ９８４）。
【０１３９】
前回グラント信号保持部４６２は、ＬＲＧフィルタ４５５から通知されたグラント信号を保持する（ステップＳ９８５）。
【０１４０】
図２８は、本発明の第４の実施の形態のアービトレーション回路４０３の動作結果の一例を示すタイミングチャートである。この例では、バスマスタの数と、帯域制限フィルタ４３０および可変優先度フィルタ４４５の設定値は、第３の実施の形態と同様とする。
【０１４１】
また、「Ｔ０」乃至「Ｔ５」の期間において、アービトレーション回路４０３は、第１の実施の形態と同様のリクエスト信号を受信したものと想定する。すなわち、前述したように、「３'ｂ１１１」、「３'ｂ１１０」、「３'ｂ１００」、「３'ｂ１００」、「３'ｂ１００」、および、「３'ｂ０００」を受信したものと考える。
【０１４２】
リクエスト管理部４２０は、第１の実施の形態の場合と同様に、リクエスト信号を受信し、受信した中から許可されていないリクエスト信号を送信する。帯域制限フィルタ４３０も、第１の実施の形態と同様に、マスタごとに各サイクル期間内のリクエスト数が設定値を越えるか否かを判断し、設定値を超えるのであれば、そのマスタのリクエスト信号をマスクする。
【０１４３】
可変優先度フィルタ４４５は、第３の実施の形態と同様に、帯域制限フィルタ４３０から出力されたリクエスト信号の中から、優先度が最も高いマスタのリクエスト信号を選択する。
【０１４４】
スライサ４６０は、可変優先度フィルタ４４５に選択されたリクエスト信号を保持し、選択されたクロックサイクルの次のサイクルに出力する。例えば、「Ｔ０」のクロックにおいて、スライサ４６０は、可変優先度フィルタ４４５から「３'ｂ１００」の信号を受信する。スライサ４６０は、「Ｔ０」の次の「Ｔ１」クロックにおいて、その信号を出力する。
【０１４５】
また、スライサ４６０は、前回許可されたリクエスト信号に対応するマスタと異なるマスタからのリクエスト信号のみを出力する。例えば、「Ｔ１」のクロックにおいて、ＬＲＧフィルタ４５５により、マスタ「＃１」のリクエスト信号が許可されている。そして、「Ｔ２」のクロックにおいて、スライサ４６０は、可変優先度フィルタ４４５から「３'ｂ１００」の信号を受信する。この場合、スライサ４６０は、前回許可されたマスタ「＃１」からのリクエスト信号をマスクし、「３'ｂ０００」の信号を出力する。
【０１４６】
このように、本発明の第４の実施の形態によれば、アービトレーション回路４０３は、あるクロックサイクルにおいて選択されたリクエスト信号を、そのクロックサイクルの次のサイクルに許可する。この構成によれば、アービトレーション回路４０３は、あるクロックサイクル内にリクエスト信号を選択して許可したとき、そのクロックサイクル内に許可したリクエスト信号を削除する必要が無くなる。このため、あるクロックサイクル内に許可されたリクエスト信号が削除されないことを原因とする誤動作を防止することができる。
【０１４７】
また、アービトレーション回路４０３は、前回グラント信号が送信されたマスタからのリクエスト信号を許可しない。この構成によれば、リクエスト管理部４２０により削除されたリクエスト信号と同一の信号を、ＬＲＧフィルタ４５５が再度許可することを防止することができる。
【０１４８】
なお、第４の実施の形態では、アービトレーション回路４０３は、リクエスト信号が優先度に基づいて選択されたクロックの次のクロックにおいて、そのリクエスト信号を許可する構成としている。ただし、アービトレーション回路４０３は、リクエスト信号が選択されてから２クロック以上が経過した後、そのリクエスト信号を許可する構成としてもよい。
【０１４９】
また、第４の実施の形態では、アービトレーション回路４０３において可変優先度フィルタ４４５とＬＲＧフィルタ４５５との間にスライサ４６０を設ける構成としている。しかし、リクエスト信号を受信してから、所定時間経過後にリクエスト信号を許可できるのであれば、スライサ４６０は、どのフィルタの前後に挿入してもよい。例えば、帯域制限フィルタ４３０と可変優先度フィルタ４４５との間にスライサ４６０を設ける構成としてもよい。
【０１５０】
＜５．第５の実施の形態＞
［バス制御装置の構成］
次に、図２９乃至図３２を参照して、本発明の第５の実施の形態について説明する。第１の実施の形態のアービトレーション回路は、帯域制限において、サイクル期間および最大グラント数を設定していたが、第５の実施の形態のアービトレーション回路は、サイクル期間のみを設定する点で第１の実施の形態と異なる。
【０１５１】
図２９は、本発明の第５の実施の形態が具現化されるアービトレーション回路の一例としてのアービトレーション回路４０４の一構成例を示すブロック図である。このアービトレーション回路４０４は、パラメータ設定部４１０の代わりにパラメータ設定部４１７を備え、帯域制限フィルタ４３０の代わりに帯域制限フィルタ４３５を備える点で、第１の実施の形態のアービトレーション回路４００と異なる。パラメータ設定部４１７は、帯域設定部４１１の代わりに帯域設定部４１６を備える点で第１の実施の形態のパラメータ設定部４１０と異なる。帯域設定部４１６は、グラント数レジスタ４１３を備えない点で第１の実施の形態の帯域設定部４１１と異なる。
【０１５２】
帯域制限フィルタ４３５は、グラント信号の間隔をマスタごとに計数し、計数した間隔が設定値未満であれば、そのマスタのリクエスト信号をマスクするものである。
【０１５３】
図３０は、本発明の第３の実施の形態が具現化される帯域制限部の一例としての帯域制限フィルタ４３５の一構成例を示すブロック図である。帯域制限フィルタ４３５は、帯域制限部４３１の代わりに帯域制限部４３４を備え、サイクル内グラント数カウンタ群４３３を備えない点で第１の実施の形態の帯域制限フィルタ４３０と異なる。
【０１５４】
帯域制限部４３４は、グラント信号の間隔が設定値以上となるように、リクエスト信号を制限するものである。具体的には、帯域制限部４３４は、１クロックサイクルが経過するたびに、サイクルカウンタ群４３２内の各サイクルカウンタに値を１つ増加させる。そして、サイクルカウンタ群４３２内の、いずれかのマスタのサイクルカウンタの値が、サイクル期間以下であれば、帯域制限部４３４は、そのマスタのリクエスト信号をマスクする。また、帯域制限部４３４は、グラント信号の通知を可変優先度フィルタ４４０から受ける。帯域制限部４３４は、サイクルカウンタ群４３２のうち、通知されたグラント信号に対応するマスタのサイクルカウンタの値を初期化する。
【０１５５】
図３１は、本発明の第５の実施の形態のリクエスト間隔としてのサイクル期間の設定例を示す図である。グラント間隔は、グラント信号の間に最低限設けるべきクロックサイクルの数により設定される。例えば、マスタ「＃１」、「＃２」、および、「＃３」に、リクエスト間隔として「２」、「１」、および、「０」が設定されている場合を想定する。この場合、あるクロックサイクルにおいて、マスタ「＃１」へグラント信号が送信されると、そのクロックから２クロックが経過するまでは、帯域制限フィルタ４３５は、マスタ「＃１」からのリクエスト信号を制限する。また、マスタ「＃３」のリクエスト間隔は「０」であるため、帯域制限フィルタ４３５は、各クロックサイクルにおいて、マスタ「＃３」からのリクエスト信号を制限しない。
【０１５６】
［バス制御装置の動作］
図３２は、本発明の第５の実施の形態の帯域制限処理の一例を示すフローチャートである。帯域制限部４３４は、サイクルカウンタ群４３２内の各マスタのサイクルカウンタに値を１つ増加させる（ステップＳ９５１）。帯域制限部４３４は、サイクルカウンタ群４３２内の、各マスタのサイクルカウンタの値が、いずれも設定値を超えているか否かを判断する（ステップＳ９５２）。いずれかのマスタにおいて、サイクルカウンタの値が設定値以下であれば（ステップＳ９５２：Ｎｏ）、帯域制限部４３４は、受信したリクエスト信号のうち、サイクルカウンタの値が設定値以下のマスタのリクエスト信号をマスクする（ステップＳ９５３）。
【０１５７】
全てのマスタのサイクルカウンタの値が設定値を越えている場合（ステップＳ９５２：Ｙｅｓ）、またはステップＳ９５３の後、帯域制限部４３４は、可変優先度フィルタ４４０からグラント信号の通知を受けたか否かを判断する（ステップＳ９５４）。グラント信号の通知を受けたのであれば（ステップＳ９５４：Ｙｅｓ）、帯域制限部４３４は、サイクルカウンタ群４３２のうち、そのグラント信号に対応するマスタのサイクルカウンタの値を初期化する（ステップＳ９５６）。
【０１５８】
グラント信号の通知を受けていない場合（ステップＳ９５４：Ｎｏ）、または、ステップＳ９５４の後、帯域制限部４３４は、帯域制限処理を終了する。
【０１５９】
このように、本発明の第５の実施の形態によれば、帯域制限部４３４は、サイクル期間を設定しておくことにより、グラント信号の間隔がサイクル期間以上となるように、リクエスト信号を制限する。この構成によれば、帯域制限部４３４は、サイクル期間の設定のみにより、帯域制限を行うことができる。また、図３０に例示したように、サイクル期間および最大グラント数を設定する場合と比較して、帯域制限フィルタに設けるカウンタの数が少なくて済む。
【０１６０】
なお、本発明の実施の形態は本発明を具現化するための一例を示したものであり、本発明の実施の形態において明示したように、本発明の実施の形態における事項と、特許請求の範囲における発明特定事項とはそれぞれ対応関係を有する。同様に、特許請求の範囲における発明特定事項と、これと同一名称を付した本発明の実施の形態における事項とはそれぞれ対応関係を有する。ただし、本発明は実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において実施の形態に種々の変形を施すことにより具現化することができる。
【０１６１】
また、本発明の実施の形態において説明した処理手順は、これら一連の手順を有する方法として捉えてもよく、また、これら一連の手順をコンピュータに実行させるためのプログラム乃至そのプログラムを記憶する記録媒体として捉えてもよい。この記録媒体として、例えば、ＣＤ（Compact Disc）、ＭＤ（MiniDisc）、ＤＶＤ（Digital Versatile Disk）、メモリカード、ブルーレイディスク（Blu-ray Disc（登録商標））等を用いることができる。
【符号の説明】
【０１６２】
１００  マスタ
２００  スレーブ
３００  バス
４００〜４０４  アービトレーション回路
５００、６００  信号線
４１０、４１７  パラメータ設定部
４１１、４１６  帯域設定部
４１２  サイクル期間レジスタ
４１３  グラント数レジスタ
４１４  優先度設定部
４１５  優先度レジスタ
４２０  リクエスト管理部
４２１  待機中リクエスト信号送信部
４２２  待機中リクエスト数カウンタ群
４３０、４３５  帯域制限フィルタ
４３１、４３４  帯域制限部
４３２  サイクルカウンタ群
４３３  サイクル内グラント数カウンタ群
４４０、４４５  可変優先度フィルタ
４５０、４５５  ＬＲＧフィルタ
４５１、４５３  ＬＲＧ方式選択部
４５２  優先度保持部
４５４  経過時間カウンタ
４６０  スライサ
４６１  タイミング調整部
４６２  前回グラント信号保持部
４６３  ＥＯＲ回路
【図１】
0005625766.tif 000002
【図２】
0005625766.tif 000003
【図３】
0005625766.tif 000004
【図４】
0005625766.tif 000005
【図５】
0005625766.tif 000006
【図６】
0005625766.tif 000007
【図７】
0005625766.tif 000008
【図８】
0005625766.tif 000009
【図９】
0005625766.tif 000010
【図１０】
0005625766.tif 000011
【図１１】
0005625766.tif 000012
【図１２】
0005625766.tif 000013
【図１３】
0005625766.tif 000014
【図１４】
0005625766.tif 000015
【図１５】
0005625766.tif 000016
【図１６】
0005625766.tif 000017
【図１７】
0005625766.tif 000018
【図１８】
0005625766.tif 000019
【図１９】
0005625766.tif 000020
【図２０】
0005625766.tif 000021
【図２１】
0005625766.tif 000022
【図２２】
0005625766.tif 000023
【図２３】
0005625766.tif 000024
【図２４】
0005625766.tif 000025
【図２５】
0005625766.tif 000026
【図２６】
0005625766.tif 000027
【図２７】
0005625766.tif 000028
【図２８】
0005625766.tif 000029
【図２９】
0005625766.tif 000030
【図３０】
0005625766.tif 000031
【図３１】
0005625766.tif 000032
【図３２】
0005625766.tif 000033