(57)【要約】【課題】各バスマスタが複雑なバス要求をしたとしても、最適なバス使用許可期間を保証することができるバス調停回路を提供することである。【解決手段】本発明にかかるバス調停回路１は、複数のバスマスタ４、５、６からのアクセス要求のうち優先度の高いバスマスタからのアクセス要求に対してバス使用権を許可する固定優先判定回路３と、複数のバスマスタからのアクセス要求を固定優先判定回路３へアサートするか否かを判定する判定調整回路２と、を備える。判定調整回路２は、バス使用権が許可されているバスマスタのアクセス要求とバス使用権が許可されていないバスマスタのアクセス要求とが競合した場合、バス使用権が許可されているバスマスタのアクセス要求を所定の期間マスクする。【選択図】図１
2010286983.tif 000002
【特許請求の範囲】
【請求項１】
複数のバスマスタからのアクセス要求のうち優先度の高いバスマスタからのアクセス要求に対してバス使用権を許可する固定優先判定回路と、
前記複数のバスマスタからの前記アクセス要求を前記固定優先判定回路へアサートするか否かを判定する判定調整回路と、を備え、
前記判定調整回路は、バス使用権が許可されているバスマスタのアクセス要求とバス使用権が許可されていないバスマスタのアクセス要求とが競合した場合、前記バス使用権が許可されているバスマスタのアクセス要求を所定の期間マスクするマスク回路を有する、
バス調停回路。
【請求項２】
前記マスク回路が前記バスマスタのアクセス要求をマスクする前記所定の期間は、前記固定優先判定回路が次のバスマスタにバス使用権を許可するバス調停処理が完了するまでの期間である、請求項１に記載のバス調停回路。
【請求項３】
前記判定調整回路は、前記複数のバスマスタに対して前記固定優先判定回路がバス使用権を許可するために出力するバス許可信号に基づき前記バス使用権が許可されているバスマスタを認識する、請求項１または２に記載のバス調停回路。
【請求項４】
前記判定調整回路は、前記複数のバスマスタへ出力される前記バス許可信号を比較する比較回路を有し、前記比較回路は前記バス許可信号の比較結果に基づき前記マスク回路へマスク信号を出力する、請求項１乃至３のいずれか一項に記載のバス調停回路。
【請求項５】
前記判定調整回路は、前記固定優先判定回路が連続してバス使用権を許可した期間が所定の期間に達した場合に、前記バスマスタからの前記アクセス要求をマスクする、請求項１に記載のバス調停回路。
【請求項６】
前記固定優先判定回路が連続してバス使用権を許可した期間は、前記バス使用権が許可されたバスマスタのバスサイクルに対応している、請求項５に記載のバス調停回路。
【請求項７】
前記バスマスタからの前記アクセス要求をマスクする期間は、前記アクセス要求がマスクされるバスマスタのバスサイクルに対応した所定の期間である、請求項５または６に記載のバス調停回路。
【請求項８】
前記固定優先判定回路が連続してバス使用権を許可することができる期間、及び前記マスク回路が前記バスマスタからの前記アクセス要求をマスクする期間は、前記複数のバスマスタ毎に設定することができる、請求項５乃至７のいずれか一項に記載のバス調停回路。
【請求項９】
前記判定調整回路は、
前記バスマスタからの前記アクセス要求をマスクする期間の設定値を格納するマスクレジスタと、
前記固定優先判定回路が連続してバス使用権を許可することができる期間の設定値を格納するサイクルレジスタと、
前記バスマスタからの前記アクセス要求をマスクしたマスク期間に対応する値、及び前記固定優先判定回路が連続してバス使用権を許可した使用許可期間に対応する値、をカウントするサイクルカウンタと、
前記マスクレジスタに格納された設定値と前記サイクルカウンタがカウントした前記マスク期間に対応する値、及び、前記サイクルレジスタに格納された設定値と前記サイクルカウンタがカウントした前記使用許可期間に対応する値、のそれぞれを比較する比較回路と、
を有する、請求項５乃至８のいずれか一項に記載のバス調停回路。
【請求項１０】
複数のバスマスタからのアクセス要求を調停するバス調停方法であって、
バス使用権が許可されているバスマスタのアクセス要求とバス使用権が許可されていないバスマスタのアクセス要求との競合状態を検出し、
前記バス使用権が許可されているバスマスタのアクセス要求と前記バス使用権が許可されていないバスマスタのアクセス要求とが競合している場合は、前記バス使用権が許可されているバスマスタのアクセス要求を所定の期間マスクし、
前記バス使用権が許可されていないバスマスタのアクセス要求が複数ある場合は、優先度の高いバスマスタからのアクセス要求に対してバス使用権を許可する、バス調停方法。
【請求項１１】
前記バスマスタのアクセス要求をマスクする前記所定の期間は、次のバスマスタにバス使用権を許可するバス調停処理が完了するまでの期間である、請求項１０に記載のバス調停方法。
【請求項１２】
前記複数のバスマスタに対してバス使用権を許可するために出力されるバス許可信号に基づき前記バス使用権が許可されているバスマスタを認識する、請求項１０または１１に記載のバス調停方法。
【請求項１３】
前記複数のバスマスタのうち同一のバスマスタに対して連続してバス使用権が許可された期間が所定の期間に達した場合、前記バスマスタからの前記アクセス要求をマスクする、請求項１０に記載のバス調停方法。
【請求項１４】
前記連続してバス使用権が許可された期間は、前記バス使用権が許可されたバスマスタのバスサイクルに対応している、請求項１３に記載のバス調停方法。
【請求項１５】
前記バスマスタからの前記アクセス要求をマスクする期間は、前記アクセス要求がマスクされるバスマスタのバスサイクルに対応した所定の期間である、請求項１３または１４に記載のバス調停方法。
【請求項１６】
前記連続してバス使用権が許可される期間、及び前記バスマスタからの前記アクセス要求がマスクされる期間は、前記複数のバスマスタ毎に設定することができる、請求項１３乃至１５のいずれか一項に記載のバス調停方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はバス調停回路及びバス調停方法に関し、特に複数のバスマスタのバスアクセスを調停するバス調停回路及びバス調停方法に関する。
【背景技術】
【０００２】
種々のデータを処理するデータ処理システムでは、複数のデバイスが１つのバスに共通に接続され、特定のデバイスのみがバスを占有しデータ転送等のバスアクセスを行なっている。データ処理システムには、バス調停回路が設けられており、このバス調停回路によって、各デバイスのバスアクセスが調停されバスを使用するための使用権が与えられる。バスアクセスをバス調停回路に要求しバスの使用権の取得をするデバイスをバスマスタという。
【０００３】
例えば、複数のＣＰＵを接続するＣＰＵバスや複数のＤＭＡ（Direct Memory Access）を接続するＤＭＡ転送用バス等のように、複数のバスマスタが存在しバスマスタが１つのリソース（バススレーブ）にアクセスするようなシステムでは、バス調停回路が所定の方式に従ってバスマスタからのバスアクセス要求を調停し、バスマスタにバス使用権を割り当てている。
【０００４】
図６は、複数のバスマスタから構成されるシステム回路を示す図である。図６に示す回路は、第１乃至第３のバスマスタ１０４、１０５、１０６が１つのバススレーブ１０７にアクセスする際に、そのバスの使用権を獲得するためにバス調停回路１０１にバス要求（ＢＵＳＲＱｎ：ｎ＝１〜３）をアサートする。当該バス要求を受けたバス調停回路１０１は、一定の調停基準に従ってバス使用許可（ＢＵＳＡＫｎ：ｎ＝１〜３）をアサートする。そして、当該バス使用許可を受けたバスマスタはバススレーブ１０７に対してアクセスを実行する。
【０００５】
このようなバス調停回路がバスアクセス要求を調停する方式として、固定優先順位方式とラウンドロビン方式がある（特許文献１参照）。固定優先順位方式は、複数のバスマスタからのバス要求が競合した場合に、優先度の高いバスマスタからサービスを実行する方式である。また、ラウンドロビン方式は、所定の順序に従い各バスマスタに同じ割合でバス使用権を与える方式であり、一度サービスを許可したバスマスタの優先順位を最下位とする方式である。
【０００６】
図７は、図６に示す３つのバスマスタ１０４、１０５、１０６からのバスアクセスをバス調停回路１０１が固定優先順位方式に従い調停する際の動作を説明するための図である。このときの優先順位は第１のバスマスタ１０４（高優先）、第２のバスマスタ１０５（中優先）、第３のバスマスタ１０６（低優先）の順であり、この優先順位は固定である。また、バス使用許可を受けた後、次のバス要求をアサートするまでの期間（図中の矢印表記の期間）は一定周期としている。また、図７のＢＵＳＲＱｎ（ｎ＝１〜３）は各バスマスタ１０４、１０５、１０６からのバス要求を示し、ＢＵＳＡＫｎ（ｎ＝１〜３）はバス調停回路１０１からのバス使用許可を示す。また、図７のＢＵＳＩＦに示すＭ１からＭ３はバススレーブ１０７にアクセスしているバスマスタを示す。つまり、Ｍ１は第１のバスマスタ１０４を示し、Ｍ２は第２のバスマスタ１０５を示し、Ｍ３は第３のバスマスタ１０６を示している。図７において、アクティブレベルはハイレベルで示している。
【０００７】
図７に示すように、Ｔ１のタイミングにおいて、全てのバスマスタ１０４、１０５、１０６から同時にバス要求（ＢＵＳＲＱ１〜ＢＵＳＲＱ３）がアサートされる。そして、Ｔ２のタイミングで、高優先の第１のバスマスタ１０４がバススレーブ１０７に対してアクセスを開始する。次に、Ｔ３のタイミングで、中優先の第２のバスマスタ１０５がバススレーブ１０７に対してアクセスを開始する。次に、Ｔ４のタイミングで、高優先の第１のバスマスタ１０４が再びバススレーブ１０７に対してアクセスを開始する。次に、Ｔ５のタイミングで、低優先の第３のバスマスタ１０６がバススレーブ１０７に対してアクセスを開始する。Ｔ６のタイミングで、高優先の第１のバスマスタ１０４がバススレーブ１０７に対してアクセスを開始する（５期間連続）。更に、Ｔ７のタイミングで、中優先の第２のバスマスタ１０５がバススレーブ１０７に対してアクセスを開始する（３期間連続）。次に、Ｔ８のタイミングで、高優先の第１のバスマスタ１０４がバススレーブ１０７に対してアクセスを開始する（３期間連続）。次に、Ｔ９のタイミングで、中優先の第２のバスマスタ１０５がバススレーブ１０７に対してアクセスを開始する。
このように、固定優先順位方式では、複数のバスマスタ１０４、１０５、１０６からのバス要求が競合した場合に、優先度の高いバスマスタからサービスを実行している。
【０００８】
図８は、図６に示す３つのバスマスタ１０４、１０５、１０６からのバスアクセスをバス調停回路１０１がラウンドロビン方式に従い調停する際の動作を説明するための図である。このときの初期の優先順位は第１のバスマスタ１０４（高優先）、第２のバスマスタ１０５（中優先）、第３のバスマスタ１０６（低優先）の順である。また、一度バス使用許可をアサートした場合、最下位の優先順位に再配置される。バス使用許可を受けた後、次のバス要求をアサートするまでの期間（図中の矢印表記の期間）は一定周期としている。また、図８において、アクティブレベルはハイレベルで示している。
【０００９】
図８に示すように、Ｔ１のタイミングで全てのバスマスタ１０４、１０５、１０６から同時にバス要求がアサートされる。次に、Ｔ２のタイミングで、高優先の第１のバスマスタ１０４がバススレーブ１０７に対してアクセスを開始するとともに、第１のバスマスタ１０４は低優先に移行する。このときの優先順位は、第２のバスマスタ１０５、第３のバスマスタ１０６、第１のバスマスタ１０４となる。次に、Ｔ３のタイミングで、高優先の第２のバスマスタ１０５がバススレーブ１０７に対してアクセスを開始するとともに、第２のバスマスタ１０５は低優先に移行する。このときの優先順位は、第３のバスマスタ１０６、第１のバスマスタ１０４、第２のバスマスタ１０５となる。次に、Ｔ４のタイミングで、高優先の第３のバスマスタ１０６がバススレーブ１０７に対してアクセスを開始するとともに、第３のバスマスタ１０６は低優先に移行する。このときの優先順位は、再び第１のバスマスタ１０４、第２のバスマスタ１０５、第３のバスマスタ１０６となる。以降、Ｔ５〜Ｔ８まで同様に動作を繰り返す。
【００１０】
また、特許文献２には高優先のバスマスタからのバス要求が頻繁に発生した場合であっても、低優先のバスマスタにもバス使用権を許可することができるバス調停回路が開示されている。この技術では、バス要求が競合した際に、各バスマスタのバス使用時間及びバス要求のサイクルを考慮してバス調停を実現している。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２００７−２６０２２号公報
【特許文献２】特開平７−１７５７１４号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
しかしながら、背景技術で説明した固定優先順位方式では、バス調停時に必ず高優先のバスマスタからのバス要求に対してバス使用権を許可しているので、高優先のバスマスタからのバス要求が連続した場合、低優先のバスマスタに対してバス使用権が許可されにくい。このため、低優先のバスマスタに対するバス使用許可期間が不足し、システムとしての性能低下やシステム構成上破綻するという問題がある。
【００１３】
また、背景技術で説明したラウンドロビン方式では、バス使用権を許可したバスマスタの優先順位は、次の調停時において最低となる。このため、バスマスタの優先順位は考慮されず全てのバスマスタに対して均等にバス使用権が許可されるため、高優先に位置づけたいバスマスタのバス使用許可期間が不足し、システムとしての性能低下やシステム構成上破綻するという問題がある。
【００１４】
また、特許文献２に開示されているバス調停回路では、各バスマスタのバスサイクルが一定となっており、かつバス要求の発生サイクルも固定とする必要があるため、バスマスタからのバス要求期間やバス要求サイクルが不定期となるような複雑なバスサイクル及びバス要求に対して最適なバス使用許可を実現できないという問題がある。
【課題を解決するための手段】
【００１５】
本発明にかかるバス調停回路は、複数のバスマスタからのアクセス要求のうち優先度の高いバスマスタからのアクセス要求に対してバス使用権を許可する固定優先判定回路と、前記複数のバスマスタからの前記アクセス要求を前記固定優先判定回路へアサートするか否かを判定する判定調整回路と、を備える。前記判定調整回路は、バス使用権が許可されているバスマスタのアクセス要求とバス使用権が許可されていないバスマスタのアクセス要求とが競合した場合、前記バス使用権が許可されているバスマスタのアクセス要求を所定の期間マスクするマスク回路を有する。
【００１６】
このように、本発明にかかるバス調停回路では、各バスマスタからアクセス要求が競合した場合、バス使用権が許可されているバスマスタのアクセス要求を所定の期間マスクすることができるので、各バスマスタの優先順位を維持しつつ、万遍なくバスマスタのアクセス要求を調停することができる。
【００１７】
また、本発明にかかる、複数のバスマスタからのアクセス要求を調停するバス調停方法は、バス使用権が許可されているバスマスタのアクセス要求とバス使用権が許可されていないバスマスタのアクセス要求との競合状態を検出し、前記バス使用権が許可されているバスマスタのアクセス要求と前記バス使用権が許可されていないバスマスタのアクセス要求とが競合している場合は、前記バス使用権が許可されているバスマスタのアクセス要求を所定の期間マスクし、前記バス使用権が許可されていないバスマスタのアクセス要求が複数ある場合は、優先度の高いバスマスタからのアクセス要求に対してバス使用権を許可する。
【００１８】
このように、本発明にかかるバス調停方法では、各バスマスタからアクセス要求が競合した場合、バス使用権が許可されているバスマスタのアクセス要求を所定の期間マスクすることができるので、各バスマスタの優先順位を維持しつつ、万遍なくバスマスタのアクセス要求を調停することができる。
【発明の効果】
【００１９】
本発明により、各バスマスタが複雑なバス要求をしたとしても、最適なバス使用許可期間を保証することができるバス調停回路及びバス調停方法を提供することができる。
【図面の簡単な説明】
【００２０】
【図１】実施の形態１、２にかかるバス調停回路を含むシステム構成を示すブロック図である。
【図２】実施の形態１にかかるバス調停回路を含むシステム構成を示すブロック図である。
【図３】実施の形態１にかかるバス調停回路の動作を説明するためのタイミングチャートである。
【図４】実施の形態２にかかるバス調停回路を含むシステム構成を示すブロック図である。
【図５】実施の形態２にかかるバス調停回路の動作を説明するためのタイミングチャートである。
【図６】背景技術にかかるバス調停回路を含むシステム構成を示すブロック図である。
【図７】背景技術にかかるバス調停回路の動作を説明するためのタイミングチャートである（固定優先順位方式）。
【図８】背景技術にかかるバス調停回路の動作を説明するためのタイミングチャートである（ラウンドロビン方式）。
【発明を実施するための形態】
【００２１】
実施の形態１
以下、図面を参照して本発明の実施の形態について説明する。
図１は、実施の形態１にかかるバス調停回路１を含むシステム構成を示すブロック図である。本実施の形態にかかるバス調停回路１は、判定調整回路２と固定優先判定回路３とを有する。判定調整回路２は、第１乃至第３のバスマスタ４、５、６からのバス要求（ＢＵＳＲＱｎ：ｎ＝１〜３）を受け付けると、その時点のバス要求の状態およびバス許可の状態に応じて、ＲＱｎ（ｎ＝１〜３）をアサートする／しないを判定する。ＲＱｎ（ｎ＝１〜３）をアサートすると判定した場合は、固定優先判定回路３に対して、ＲＱｎ（ｎ＝１〜３）をアサートする。
【００２２】
固定優先判定回路３は、アサートされているＲＱｎ（ｎ＝１〜３）のうち、優先順位の高いバス要求に対して許可信号ＡＫｎ（ｎ＝１〜３）をアサートする。判定調整回路２は、入力されているＡＫｎ（ｎ＝１〜３）の状態に応じて、ＢＵＳＡＫｎ（ｎ＝１〜３）をアサートし、そのＢＵＳＡＫｎ（ｎ＝１〜３）を受け付けた第１乃至第３のバスマスタ４、５、６が、バススレーブ７にアクセスする。なお、図中のＢＵＳＩＦは、各バスマスタ４、５、６とバススレーブ７との間の通信経路を示す。
【００２３】
次に、判定調整回路２の詳細な構成について図２を用いて説明する。図２に示すように、本実施の形態にかかる判定調整回路２は、第１及び第２の比較回路１５、２５、第１及び第２のマスク回路１１、２１を有する。
第１及び第２の比較回路１５、２５は、バス許可信号（ＢＵＳＡＫｎ：ｎ＝１〜２）とバスサイクル有効信号（ＲＥＡＤＹ）に基づき、現時点でバス使用権を持っているバスマスタを認識する。また、バス使用権を持つバスマスタによるバスサイクル期間中に他のバスマスタからのバス使用要求を検出した場合、次のバス調停実施タイミングで、直前にサービスされていたバスマスタのバス要求信号（ＢＵＳＲＱｎ：ｎ＝１〜２）を当該バス調停処理が完了するまでの一定期間マスクするため、第１及び第２のマスク回路１１、２１にマスク信号（ＭＡＳＫｎ：ｎ＝１〜２）をアサートする。
第１のマスク回路１１は、マスク信号（ＭＡＳＫ１）を受けている期間は、ＢＵＳＲＱ１をマスクし、固定優先判定回路３に対してＲＱ１を伝達しない。同様に、第２のマスク回路２１は、マスク信号（ＭＡＳＫ２）を受けている期間は、ＢＵＳＲＱ２をマスクし、固定優先判定回路３に対してＲＱ２を伝達しない。
【００２４】
次に、本実施の形態にかかるバス調停回路１の動作について、図３を用いて説明する。図３は、本実施の形態にかかるバス調停回路１の動作を説明するためのタイミングチャートである。この図において、アクティブレベルはハイレベルで示している。
【００２５】
ここで、Ｂｕｓ＿ｃｙｃｌｅ＿ｎ（ｎ＝１〜３）のアクティブ期間を示すパルス内の矢印幅は、各バスマスタ４、５、６の１回のバスサイクル期間を示す。図３に示す動作例では、各バスマスタ４、５、６は、バスサイクル期間の終了時にＢＵＳＡＫｎ（ｎ＝１〜３）がディアサートとなると、次のＢＵＳＡＫｎ（ｎ＝１〜３）のアサートまで、バスへのアクセスを待機する。また、当該Ｂｕｓ＿ｃｙｃｌｅ＿ｎの幅は、ＢＵＳＡＫｎ（ｎ＝１〜３）とＲＥＡＤＹ信号の状態に基づき決定される。
【００２６】
図３に示すように、Ｔ１のタイミングで第１のバスマスタ４がバス要求を発行し、ＢＵＳＲＱ１がアサートされる。このとき、他のバスマスタからはバス要求がないため、第１の比較回路１５は動作しない。判定調整回路２はＢＵＳＲＱ１をそのままＲＱ１として、固定優先判定回路３にアサートする。固定優先判定回路３は判定調整回路２に対してＡＫ１をアサートし、判定調整回路２は第１のバスマスタ４に対してＢＵＳＡＫ１をアサートする。これにより、第１のバスマスタ４のバスサイクル（Ｂｕｓ＿ｃｙｃｌｅ＿１がハイの期間）が発生し、第１のバスマスタ４はバススレーブ７に対してアクセスを開始する。
【００２７】
Ｔ２のタイミングで、第１のバスマスタ４のバスサイクルが完了することが保証されたため、第１のバスマスタ４はＢＵＳＲＱ１をディアサートする。
Ｔ３のタイミングで第１のバスマスタ４が再度バス要求を発行し、ＢＵＳＲＱ１がアサートされる。この場合、Ｔ１のときと同様に他のバスマスタからのバス要求がない状態なので、第１の比較回路１５は動作しない。判定調整回路２は、ＢＵＳＲＱ１をそのままＲＱ１として、固定優先判定回路３にアサートする。固定優先判定回路３は判定調整回路２に対してＡＫ１をアサートし、判定調整回路２は第１のバスマスタ４に対してＢＵＳＡＫ１をアサートする。これにより、第１のバスマスタ４のバスサイクル（Ｂｕｓ＿ｃｙｃｌｅ＿１がハイの期間）が発生し、第１のバスマスタ４はバススレーブ７に対してアクセスを開始する。
【００２８】
Ｔ４のタイミング、つまり第１のバスマスタ４のバスサイクルが２サイクル目（Ｂｕｓ＿ｃｙｃｌｅ１のパルス内の矢印の２個目）の期間で、第２のバスマスタ５、第３のバスマスタ６がバス要求を発行し、ＢＵＳＲＱ２、ＢＵＳＲＱ３がアサートされる。
第１の比較回路１５は、第１のバスマスタ４のバスサイクル期間中に他のバスマスタからバス要求があったことを認識し、次のバス調停期間中ＢＵＳＲＱ１をマスクするマスク信号（ＭＡＳＫ１）をアサートする。マスク信号（ＭＡＳＫ１）のアサートを受けた第１のマスク回路１１は、当該期間ＲＱ１信号をマスクする。
【００２９】
Ｔ５のタイミングで、固定優先判定回路３は、ＲＱ１がディアサートとなったためＲＱ２、ＲＱ３入力に対する調停を実施し、高優先のＲＱ２に対してバス使用権を許可する。これにより、第２のバスマスタ５のバスサイクル（Ｂｕｓ＿ｃｙｃｌｅ＿２がハイの期間）が発生し、第２のバスマスタ５はバススレーブ７に対してアクセスを開始する。
Ｔ６のタイミングでは、第１のバスマスタ４、第３のバスマスタ６がバス要求を発行している。このとき、ＢＵＳＲＱ２がアサートされているため、第２の比較回路２５は、次のバス調停期間中ＢＵＳＲＱ２をマスクするマスク信号（ＭＡＳＫ２）をアサートする。当該マスク信号（ＭＡＳＫ２）のアサートを受けた第２のマスク回路２１は、当該期間ＲＱ２信号をマスクする。
【００３０】
Ｔ７のタイミングで、固定優先判定回路３は、ＲＱ２がディアサートとなったためＲＱ１、ＲＱ３入力に対する調停を実施し、高優先のＲＱ１に対してバス使用権を許可する。これにより、第１のバスマスタ４のバスサイクル（Ｂｕｓ＿ｃｙｃｌｅ＿１がハイの期間）が発生し、第１のバスマスタ４はバススレーブ７に対してアクセスを開始する。
Ｔ８のタイミングで、第２のバスマスタ５のバス要求がなくなり、第２のバスマスタ５のバスサイクルが完了することが保証されたため、第２のバスマスタ５はＢＵＳＲＱ２をディアサートする。
【００３１】
Ｔ９のタイミングで、固定優先判定回路３はＲＱ１、ＲＱ３入力に対する調停を実施し、高優先のＲＱ１に対してバス使用権を許可する。これにより、第１のバスマスタ４のバスサイクル（Ｂｕｓ＿ｃｙｃｌｅ＿１がハイの期間）が発生し、第１のバスマスタ４はバススレーブ７に対してアクセスを開始する。
Ｔ１０のタイミングでは、第３のバスマスタ６がバス要求を発行しており、ＢＵＳＲＱ３がアサートされている。よって、第１の比較回路１５は、次のバス調停期間中ＢＵＳＲＱ１をマスクするマスク信号（ＭＡＳＫ１）をアサートする。当該マスク信号（ＭＡＳＫ１）のアサートを受けた第１のマスク回路１１は、当該期間ＲＱ１信号をマスクする。
【００３２】
Ｔ１１のタイミングで、固定優先判定回路３は、ＲＱ３入力に対する調停を実施する。このとき、ＲＱ１がディアサートとなっているため、固定優先判定回路３は、ＲＱ３に対してバス使用権を許可する。これにより、第３のバスマスタ６のバスサイクル（Ｂｕｓ＿ｃｙｃｌｅ＿３がハイの期間）が発生し、第３のバスマスタ６はバススレーブ７に対してアクセスを開始する。
Ｔ１２のタイミングで、第３のバスマスタ６のバス要求がなくなり、第３のバスマスタ６のバスサイクルが完了することが保証されたため、第３のバスマスタ６はＢＵＳＲＱ３をディアサートする。
【００３３】
Ｔ１３のタイミングで、固定優先判定回路３は、ＲＱ１入力に対する調停を実施し、ＲＱ１に対してバス使用権を許可する。これにより、第１のバスマスタ４のバスサイクル（Ｂｕｓ＿ｃｙｃｌｅ＿１がハイの期間）が発生し、第１のバスマスタ４はバススレーブ７に対してアクセスを開始する。
Ｔ１４のタイミング、つまり第１のバスマスタ４のバスサイクルが３サイクル目の期間で、第２のバスマスタ５がバス要求を発行し、ＢＵＳＲＱ２がアサートされる。
Ｔ１５のタイミングで、第１の比較回路１５は、第１のバスマスタ４のバスサイクル期間中に他のバスマスタからのバス要求を認識することで、次のバス調停期間中ＢＵＳＲＱ１をマスクするマスク信号（ＭＡＳＫ１）をアサートする。当該マスク信号（ＭＡＳＫ１）のアサートを受けた第１のマスク回路１１は、当該期間ＲＱ１信号をマスクする。
【００３４】
以上で説明したように、本実施の形態にかかるバス調停回路１は、各バスマスタ４、５、６からアクセス要求が競合した場合、バス使用権が許可されているバスマスタのアクセス要求を所定の期間マスクすることができるので、各バスマスタ４、５、６の優先順位を維持しつつ、万遍なくバスマスタのアクセス要求を調停することができる。
【００３５】
よって、本実施の形態にかかる発明により、各バスマスタが複雑なバス要求をしたとしても、最適なバス使用許可期間を保証することができるバス調停回路を提供することができる。
【００３６】
次に、本実施の形態にかかるバス調停方法について説明する。
本実施の形態にかかる、複数のバスマスタからのアクセス要求を調停するバス調停方法は次のステップを有する。
バス使用権が許可されているバスマスタのアクセス要求とバス使用権が許可されていないバスマスタのアクセス要求との競合状態を検出するステップ。
バス使用権が許可されているバスマスタのアクセス要求とバス使用権が許可されていないバスマスタのアクセス要求とが競合している場合は、バス使用権が許可されているバスマスタのアクセス要求を所定の期間マスクするステップ。
バス使用権が許可されていないバスマスタのアクセス要求が複数ある場合は、優先度の高いバスマスタからのアクセス要求に対してバス使用権を許可するステップ。
【００３７】
ここで、バスマスタのアクセス要求をマスクする所定の期間は、例えば、次のバスマスタにバス使用権を許可するバス調停処理が完了するまでの期間である。
また、本実施の形態にかかるバス調停方法では、複数のバスマスタに対してバス使用権を許可するために出力されるバス許可信号に基づき、バス使用権が許可されているバスマスタを認識することができる。
【００３８】
また、バスマスタのアクセス要求の競合状態は、例えば図２に示す第１及び第２の比較回路１５、２５を用いて検出することができる。また、バスマスタのアクセス要求をマスクする場合は、例えば図２に示す第１及び第２のマスク回路１１、２１を用いることができる。
【００３９】
本実施の形態にかかるバス調停方法でも、各バスマスタからアクセス要求が競合した場合、バス使用権が許可されているバスマスタのアクセス要求を所定の期間マスクすることができるので、各バスマスタの優先順位を維持しつつ、万遍なくバスマスタのアクセス要求を調停することができる。
よって、本実施の形態にかかる発明により、各バスマスタが複雑なバス要求をしたとしても、最適なバス使用許可期間を保証することができるバス調停方法を提供することができる。
【００４０】
実施の形態２
次に、本発明の実施の形態２について説明する。図１は、実施の形態２にかかるバス調停回路１を含むシステム構成を示すブロック図である。本実施の形態にかかるバス調停回路１も実施の形態１にかかるバス調停回路１と同様に、判定調整回路２と固定優先判定回路３とを有する。本実施の形態にかかるバス調停回路１では、判定調整回路２が実施の形態１と異なる。
【００４１】
判定調整回路２の詳細な構成について図４を用いて説明する。なお、本実施の形態においてｎは全てｎ＝１〜３とする。
図４に示すように、判定調整回路２は、第１乃至第３のマスク回路１１、２１、３１、第１乃至第３のサイクルレジスタ１２、２２、３２、第１乃至第３のマスクレジスタ１３、２３、３３、第１乃至第３のサイクルカウンタ１４、２４、３４、第１乃至第３の比較回路１５、２５、３５を有する。
【００４２】
第１のサイクルレジスタ１２は、バス要求（ＢＵＳＲＱｎ）が競合した場合に、対象のバス要求のサービスの実行について、連続してサービスを許可する期間を設定する書き換え可能なレジスタである。
第１のマスクレジスタ１３は、バス要求（ＢＵＳＲＱｎ）が競合した場合に、対象のバス要求を固定優先判定回路３に伝達しない期間を設定する書き換え可能なレジスタである。
【００４３】
第１のサイクルカウンタ１４は、対象のバスマスタからのバス要求と他のバスマスタからのバス要求が競合し、対象のバスマスタに対してバス使用許可を開始した場合、当該バス使用許可がされた対象のバスマスタがバススレーブ７に対してアクセスするサイクルの期間を１回とカウントするカウンタである。
第１のサイクルカウンタ１４は、カウント値を第１の比較回路１５に対してサイクルカウント値（ＳＣ１）として常時通知するとともに、第１の比較回路１５からのサイクルカウント一致信号（ＳＥ１）のアサートを受けると、当該アサート入力をトリガにしてマスクカウント値（ＭＣ１）のカウント動作を開始する。
ＭＣ１も常時通知するカウント値であり、当該バスマスタのアクセスサイクルの期間を１回とカウントするカウンタである。第１の比較回路１５からのマスクカウント一致信号（ＭＥ１）のアサートを受けると、第１のサイクルカウンタ１４は初期化される。
【００４４】
第１の比較回路１５は、第１のサイクルレジスタ１２の設定値とサイクルカウント値（ＳＣ１）を比較し、カウント数が一致した時点で、ＳＥ１信号をアサートする。また、第１のマスクレジスタ１３の設定値とマスクカウント値（ＭＣ１）を比較し、カウント数が一致した時点で、ＭＥ１信号をアサートする。第１の比較回路１５は、ＳＥ１信号のアサート後、ＭＥ１信号をアサートするまでの期間、第１のマスク回路１１にマスク信号（ＭＡＳＫ１）をアサートする。
第１のマスク回路１１は、当該マスク信号（ＭＡＳＫ１）を受けている期間は、ＢＵＳＲＱ１をマスクし、固定優先判定回路３に対してＲＱ１を伝達しない。
【００４５】
以上では、例として、第１のマスク回路１１、第１のサイクルレジスタ１２、第１のマスクレジスタ１３、第１のサイクルカウンタ１４、第１の比較回路１５で構成される回路について説明をした。ここで、図４に示す、第２のマスク回路２１、第２のサイクルレジスタ２２、第２のマスクレジスタ２３、第２のサイクルカウンタ２４、第２の比較回路２５で構成される回路、及び、第３のマスク回路３１、第３のサイクルレジスタ３２、第３のマスクレジスタ３３、第３のサイクルカウンタ３４、第３の比較回路３５で構成される回路についても、以上で説明した第１のマスク回路１１等で構成される回路の場合と同様である。
【００４６】
次に、固定優先判定回路３について説明する。固定優先判定回路３は、アサートされているＲＱｎのうち、優先順位の高いバス要求に対して許可信号ＡＫｎをアサートする。判定調整回路２は、入力されているＡＫｎの状態に応じて、ＢＵＳＡＫｎをアサートし、そのＢＵＳＡＫｎを受け付けた第１乃至第３のバスマスタ４、５、６が、バススレーブ７にアクセスする。なお、図中のＢＵＳＩＦは、各バスマスタ４、５、６とバススレーブ７との間の通信経路を示す。
【００４７】
次に、本実施の形態にかかるバス調停回路１の動作について、図５を用いて説明する。図５は、本実施の形態にかかるバス調停回路１の動作を説明するためのタイミングチャートである。この図において、アクティブレベルはハイレベルで示している。
【００４８】
ここで、ＢＵＳＡＫｎのアクティブ期間を示すパルス内の矢印幅は、各バスマスタ４、５、６の１回のバスサイクル期間であり、図５に示す動作例では、各バスマスタ４、５、６は、バスサイクル期間の終了時にＢＵＳＡＫｎがディアサートとなると、次のＢＵＳＡＫｎのアサートまで、バスへのアクセスを待機する。
なお、各サイクルレジスタ１２、２２、３２およびマスクレジスタ１３、２３、３３の設定値は、例えば以下のように設定することができる。これらの値は任意に設定することができ、この設定値を調整することでバス調停回路１の調停処理を最適化することができる。
【００４９】
第１のサイクルレジスタ１２＝「３」（１度に３回のバスサイクルまで許容する）。
第１のマスクレジスタ１３＝「１」（ＢＵＳＲＱ１の要求をマスクする期間は、１バスサイクル期間とする）。
第２のサイクルレジスタ２２＝「２」（１度に２回のバスサイクルまで許容する）。
第２のマスクレジスタ２３＝「２」（ＢＵＳＲＱ２の要求をマスクする期間は、２バスサイクル期間とする）。
第３のサイクルレジスタ３２＝「１」（１度に１回のバスサイクルまで許容する）。
第３のマスクレジスタ３３＝「１」（ＢＵＳＲＱ３の要求をマスクする期間は、１バスサイクル期間とする）。
【００５０】
図５に示すように、Ｔ１のタイミングで第１のバスマスタ４がバス要求を発行し、ＢＵＳＲＱ１がアサートされる。このとき、他のバスマスタからのバス要求がないので、第１の比較回路１５は動作しない。判定調整回路２はＢＵＳＲＱ１をそのままＲＱ１として、固定優先判定回路３にアサートする。固定優先判定回路３はＡＫ１をアサートし、判定調整回路２はＢＵＳＡＫ１をアサートする。
【００５１】
Ｔ２のタイミングで、第１のバスマスタ４のバスサイクルが完了することが保証されたため、第１のバスマスタ４はＢＵＳＲＱ１をディアサートする。これにより、ＢＵＳＡＫ１がディアサートされる。
Ｔ３のタイミングで第１のバスマスタ４が再度バス要求を発行し、ＢＵＳＲＱ１がアサートされる。この場合、Ｔ１のときと同様に他のバスマスタからのバス要求がないので、第１の比較回路１５は動作しない。判定調整回路２は、ＢＵＳＲＱ１をそのままＲＱ１として、固定優先判定回路３にアサートする。固定優先判定回路３はＡＫ１をアサートし、判定調整回路２はＢＵＳＡＫ１をアサートする。
【００５２】
Ｔ４のタイミング、つまり第１のバスマスタ４のバスサイクルが２サイクル目（ＢＵＳＡＫ１のアサートパルス内の矢印の２個目）の期間で、第２のバスマスタ５、第３のバスマスタ６がバス要求を発行し、ＢＵＳＲＱ２、ＢＵＳＲＱ３がアサートされる。
そして、Ｔ５のタイミング、つまり第１のバスマスタ４の２回目のバスサイクルが完了した時点で、判定調整回路２の第１のサイクルカウンタ１４が、第１のバスマスタ４のバスサイクル数のカウントを開始する。
【００５３】
Ｔ６のタイミングで、第１の比較回路１５は、第１のバスマスタ４のバスサイクルが３回発生し、第１のサイクルカウンタ１４のカウント値（ＳＣ１＝３）と第１のサイクルレジスタ１２の設定値（＝３）が一致したのでＳＥ１をアサートする。ＳＥ１のアサートを受けた第１のサイクルカウンタ１４はマスクカウント値（ＭＣ１）のカウントを開始する。第１の比較回路１５は、第１のマスクレジスタ１３に設定した値（＝１）と当該マスクカウント値（ＭＣ１）が一致するまで、つまり、１バスサイクル期間、マスク信号（ＭＡＳＫ１）をアサートする。そして、第１の比較回路１５は、第１のマスクレジスタ１３に設定した値（＝１）と当該マスクカウント値（ＭＣ１）が一致したらＭＥ１をアサートして第１のサイクルカウンタ１４を初期化する。第１のマスク回路１１は、当該マスク期間、固定優先判定回路３へのＲＱ１のアサートをマスクする。
【００５４】
Ｔ７のタイミングで、固定優先判定回路３は、ＲＱ１がディアサートとなったためＲＱ２、ＲＱ３入力に対する調停を実施し、高優先のＲＱ２に対してＡＫ２をアサートする。これにより、ＢＵＳＡＫ２がアサートされる。このとき、判定調整回路２の第２のサイクルカウンタ２４は、第２のバスマスタ５のバスサイクル数のカウントを開始する。
【００５５】
次に、Ｔ８のタイミングで、第２の比較回路２５は、第２のバスマスタ５のバスサイクルが２回発生し、第２のサイクルカウンタ２４のカウント値（ＳＣ２＝２）と第２のサイクルレジスタ２２の設定値（＝２）が一致したのでＳＥ２をアサートする。ＳＥ２のアサートを受けた第２のサイクルカウンタ２４はマスクカウント値（ＭＣ２）のカウントを開始する。第２の比較回路２５は、第２のマスクレジスタ２３に設定した値（＝２）と当該マスクカウント値（ＭＣ２）が一致するまで、つまり、２バスサイクル期間、マスク信号（ＭＡＳＫ２）をアサートする。そして、第２の比較回路２５は、第２のマスクレジスタ２３に設定した値（＝２）と当該マスクカウント値（ＭＣ２）が一致したらＭＥ２をアサートして第２のサイクルカウンタ２４を初期化する。第２のマスク回路２１は、当該マスク期間、固定優先判定回路３へのＲＱ２のアサートをマスクする。
【００５６】
Ｔ９のタイミングで、固定優先判定回路３は、ＲＱ２がディアサートとなったため、ＲＱ１、ＲＱ３入力に対する調停を実施し、高優先のＲＱ１に対してＡＫ１をアサートする。これにより、ＢＵＳＡＫ１がアサートされる。このとき、判定調整回路２の第１のサイクルカウンタ１４は、第１のバスマスタ４のバスサイクル数のカウントを開始する。
【００５７】
次に、Ｔ１０のタイミングで、第１の比較回路１５は、第１のバスマスタ４のバスサイクルが３回発生し、第１のサイクルカウンタ１４のカウント値（ＳＣ１＝３）と第１のサイクルレジスタ１２の設定値（＝３）が一致したのでＳＥ１をアサートする。ＳＥ１のアサートを受けた第１のサイクルカウンタ１４はマスクカウント値（ＭＣ１）のカウントを開始する。第１の比較回路１５は、第１のマスクレジスタ１３に設定した値（＝１）と当該マスクカウント値（ＭＣ１）が一致するまで、つまり、１バスサイクル期間、マスク信号（ＭＡＳＫ１）をアサートする。そして、第１の比較回路１５は、第１のマスクレジスタ１３に設定した値（＝１）と当該マスクカウント値（ＭＣ１）が一致したらＭＥ１をアサートして第１のサイクルカウンタ１４を初期化する。第１のマスク回路１１は、当該マスク期間、固定優先判定回路３へのＲＱ１のアサートをマスクする。
【００５８】
Ｔ１１のタイミングで、固定優先判定回路３は、ＲＱ１がディアサートとなったため、ＲＱ３入力に対する調停を実施し、ＲＱ３に対してＡＫ３をアサートする。これにより、ＢＵＳＡＫ３がアサートされる。このとき、判定調整回路２の第３のサイクルカウンタ３４は、第３のバスマスタ６のバスサイクル数のカウントを開始する。
【００５９】
次に、Ｔ１２のタイミングで、第３の比較回路３５は、第３のバスマスタ６のバスサイクルが１回発生し、第３のサイクルカウンタ３４のカウント値（ＳＣ３＝１）と第３のサイクルレジスタ３２の設定値（＝１）が一致したのでＳＥ３をアサートする。ＳＥ３のアサートを受けた第３のサイクルカウンタ３４はマスクカウント値（ＭＣ３）のカウントを開始する。第３の比較回路３５は、第３のマスクレジスタ３３に設定した値（＝１）と当該マスクカウント値（ＭＣ３）が一致するまで、つまり、１バスサイクル期間、マスク信号（ＭＡＳＫ３）をアサートする。そして、第３の比較回路３５は、第３のマスクレジスタ３３に設定した値（＝１）と当該マスクカウント値（ＭＣ３）が一致したらＭＥ３をアサートして第３のサイクルカウンタ３４を初期化する。第３のマスク回路３１は、当該マスク期間、固定優先判定回路３へのＲＱ３のアサートをマスクする。
【００６０】
Ｔ１３のタイミングで、固定優先判定回路３は、ＲＱ３がディアサートとなったため、ＲＱ１、ＲＱ２入力に対する調停を実施し、高優先のＲＱ１に対してＡＫ１をアサートする。これにより、ＢＵＳＡＫ１がアサートされる。このとき、判定調整回路２の第１のサイクルカウンタ１４は、第１のバスマスタ４のバスサイクル数のカウントを開始する。
【００６１】
次に、Ｔ１４のタイミングで、第１の比較回路１５は、第１のバスマスタ４のバスサイクルが３回発生し、第１のサイクルカウンタ１４のカウント値（ＳＣ１＝３）と第１のサイクルレジスタ１２の設定値（＝３）が一致したのでＳＥ１をアサートする。ＳＥ１のアサートを受けた第１のサイクルカウンタ１４はマスクカウント値（ＭＣ１）のカウントを開始する。第１の比較回路１５は、第１のマスクレジスタ１３に設定した値（＝１）と当該マスクカウント値（ＭＣ１）が一致するまで、つまり、１バスサイクル期間、マスク信号（ＭＡＳＫ１）をアサートする。そして、第１の比較回路１５は、第１のマスクレジスタ１３に設定した値（＝１）と当該マスクカウント値（ＭＣ１）が一致したらＭＥ１をアサートして第１のサイクルカウンタ１４を初期化する。第１のマスク回路１１は、当該マスク期間、固定優先判定回路３へのＲＱ１のアサートをマスクする。
【００６２】
Ｔ１５のタイミングで、固定優先判定回路３は、ＲＱ１がディアサートとなったためＲＱ２、ＲＱ３入力に対する調停を実施し、高優先のＲＱ２に対してＡＫ２をアサートする。これにより、ＢＵＳＡＫ２がアサートされる。このとき、判定調整回路２の第２のサイクルカウンタ２４が、第２のバスマスタ５のバスサイクル数のカウントを開始する。
【００６３】
以上で説明したように、本実施の形態にかかるバス調停回路１は、各バスマスタ４、５、６からアクセス要求が競合した場合、バス使用権が許可されているバスマスタのアクセス要求を所定の期間マスクすることができるので、各バスマスタ４、５、６の優先順位を維持しつつ、万遍なくバスマスタのアクセス要求を調停することができる。
【００６４】
よって、本実施の形態にかかる発明により、各バスマスタが複雑なバス要求をしたとしても、最適なバス使用許可期間を保証することができるバス調停回路を提供することができる。また、例えば、サイクルレジスタとマスクレジスタの設定値を変更することで、バスサービスの分配をプログラムにより適宜変更することができる。したがって、システム構成が変更された場合であっても、容易にバス調停回路を最適化することができる。さらに、同一システム内においても、処理状況に応じてバスサービスの分配を動的に変更することができるため、常に最適なバスサービスを実現することができる。
【００６５】
次に、本実施の形態にかかるバス調停方法について説明する。
本実施の形態にかかる、複数のバスマスタからのアクセス要求を調停するバス調停方法は次のステップを有する。
バス使用権が許可されているバスマスタのアクセス要求とバス使用権が許可されていないバスマスタのアクセス要求との競合状態を検出するステップ。
バス使用権が許可されているバスマスタのアクセス要求とバス使用権が許可されていないバスマスタのアクセス要求とが競合している場合は、バス使用権が許可されているバスマスタのアクセス要求を所定の期間マスクするステップ。このステップでは、複数のバスマスタのうち同一のバスマスタに対して連続してバス使用権が許可された期間が所定の期間に達した場合に、バスマスタからのアクセス要求をマスクしている。
バス使用権が許可されていないバスマスタのアクセス要求が複数ある場合は、優先度の高いバスマスタからのアクセス要求に対してバス使用権を許可するステップ。
【００６６】
ここで、連続してバス使用権が許可された期間は、バス使用権が許可されたバスマスタのバスサイクルに対応している。また、バスマスタからのアクセス要求をマスクする期間は、アクセス要求がマスクされるバスマスタのバスサイクルに対応した所定の期間である。そして、連続してバス使用権が許可される期間、及びバスマスタからのアクセス要求がマスクされる期間は、複数のバスマスタ毎に設定することができる。
【００６７】
バスマスタのアクセス要求の競合状態は、例えば図４に示す第１乃至第３の比較回路１５、２５、３５を用いて検出することができる。また、バスマスタのアクセス要求をマスクする場合は、例えば図４に示す第１乃至第３のマスク回路１１、２１、３１を用いることができる。
【００６８】
本実施の形態にかかるバス調停方法においても、各バスマスタからアクセス要求が競合した場合、バス使用権が許可されているバスマスタのアクセス要求を所定の期間マスクすることができるので、各バスマスタの優先順位を維持しつつ、万遍なくバスマスタのアクセス要求を調停することができる。
よって、本実施の形態にかかる発明により、各バスマスタが複雑なバス要求をしたとしても、最適なバス使用許可期間を保証することができるバス調停方法を提供することができる。
【００６９】
なお、実施の形態１、２ではバスマスタが３つの場合を例として説明したが、本発明はバスマスタの数が２以上の場合に適用することができる。この場合、バスマスタの数に応じて、バスマスタからのバス要求をマスクするための回路の数を決定することができる。
【００７０】
以上、本発明を上記実施形態に即して説明したが、上記実施形態の構成にのみ限定されるものではなく、本願特許請求の範囲の請求項の発明の範囲内で当業者であればなし得るであろう各種変形、修正、組み合わせを含むことは勿論である。
【符号の説明】
【００７１】
１  バス調停回路
２  判定調整回路
３  固定優先判定回路
４  第１のバスマスタ
５  第２のバスマスタ
６  第３のバスマスタ
７  バススレーブ
１１  第１のマスク回路
１２  第１のサイクルレジスタ
１３  第１のマスクレジスタ
１４  第１のサイクルカウンタ
１５  第１の比較回路
２１  第２のマスク回路
２２  第２のサイクルレジスタ
２３  第２のマスクレジスタ
２４  第２のサイクルカウンタ
２５  第２の比較回路
３１  第３のマスク回路
３２  第３のサイクルレジスタ
３３  第３のマスクレジスタ
３４  第３のサイクルカウンタ
３５  第３の比較回路
【図１】
2010286983.tif 000003
【図２】
2010286983.tif 000004
【図３】
2010286983.tif 000005
【図４】
2010286983.tif 000006
【図５】
2010286983.tif 000007
【図６】
2010286983.tif 000008
【図７】
2010286983.tif 000009
【図８】
2010286983.tif 000010