(57)【要約】【課題】複数のバスマスタにおけるバススレーブに対するアクセス要求を調停する際に使用される時間情報を適切に制御することが可能な技術を提供する。【解決手段】アクセス調停回路ＡＣは、バスマスタＢＭ０，ＢＭ１のそれぞれに対応する記憶回路ＭＥＭ内の許容待ち時間情報に基づいて、バスマスタＢＭ０，ＢＭ１のバススレーブＢＳ０，ＢＳ１に対するアクセス要求の許容待ち時間を更新する。そして、これらの許容待ち時間を比較し、その比較結果に基づいてバスマスタＢＭ０，ＢＭ１のどちらかのアクセス要求を受付ける。また、バスマスタＢＭ０は記憶回路ＭＥＭ内の許容待ち時間情報を制御することができる。【選択図】図１
2006040019.tif 000002
【特許請求の範囲】
【請求項１】
複数のバスマスタと、
少なくとも一つのバススレーブと、
前記複数のバスマスタにおける前記バススレーブに対するアクセス要求を調停するアクセス調停回路と、
記憶情報の書き換えが可能な記憶回路と
を備え、
前記記憶回路には、前記複数のバスマスタのそれぞれについて、前記バススレーブに対するアクセス要求が発行された際の当該アクセス要求の許容待ち時間を決定するための時間情報が記憶され、
前記複数のバスマスタの少なくとも一つが、前記記憶回路内における前記複数のバスマスタについての前記時間情報を制御し、
前記アクセス調停回路は、
前記複数のバスマスタのそれぞれについて、前記バススレーブに対するアクセス要求が発行されてから受付けられるまでの間、前記記憶回路内の前記時間情報に基づいて当該アクセス要求の許容待ち時間を更新する許容待ち時間更新回路と、
前記許容待ち時間更新回路で更新される前記許容待ち時間を前記複数のバスマスタ間で比較し、その比較結果に基づいて、前記複数のバスマスタのいずれかの前記アクセス要求を受付けるアクセス要求受付け回路と
を有する、アクセス制御装置。
【請求項２】
請求項１に記載のアクセス制御装置であって、
前記許容待ち時間更新回路は、
新たなアクセス要求が発行された時点での許容待ち時間として前記時間情報が示す値を採用し、前記時間情報が示す値を減少させて当該新たなアクセス要求の許容待ち時間を更新する、アクセス制御装置。
【請求項３】
請求項１に記載のアクセス制御装置であって、
前記許容待ち時間更新回路は、
前回のアクセス要求が受付けられた際に残存している許容待ち時間の少なくとも一部を前記時間情報が示す値に加算し、その加算によって得られた値を新たなアクセス要求が発行された時点での許容待ち時間として採用し、当該加算によって得られた値を時間の経過とともに減少させることによって当該新たなアクセス要求の許容待ち時間を更新する、アクセス制御装置。
【請求項４】
請求項１乃至請求項３のいずれか一つに記載のアクセス制御装置であって、
前記複数のバスマスタには、前記バススレーブに対するアクセス要求が受付けられる優先順位が割り当てられており、
前記アクセス要求受付け回路は、
前記複数のバスマスタにおいて前記許容待ち時間更新回路で更新される前記許容待ち時間がしきい値よりも小さいバスマスタが存在する場合、前記比較結果を用いることなく、前記許容待ち時間がしきい値よりも小さいバスマスタのうち前記優先順位が最も高いバスマスタのアクセス要求を最優先して受け付ける、アクセス制御装置。
【請求項５】
請求項１乃至請求項３のいずれか一つに記載のアクセス制御装置であって、
前記複数のバスマスタのそれぞれは、前記バススレーブに対する連続アクセスの要求を出力することが可能であり、
前記アクセス要求受付け回路は、前記比較結果と、前記複数のバスマスタからの前記連続アクセスの要求に基づいて、前記複数のバスマスタのいずれか一つのアクセス要求を、他のバスマスタのアクセス要求を割り込ませること無く連続して受付ける、アクセス制御装置。
【請求項６】
請求項１乃至請求項３のいずれか一つに記載のアクセス制御装置であって、
前記複数のバスマスタには、前記バススレーブに対するアクセス要求が受付けられる優先順位が割り当てられており、
前記複数のバスマスタのそれぞれは、前記バススレーブに対する連続アクセスの要求を出力することが可能であり、
前記アクセス要求受付け回路は、
前記比較結果と、前記複数のバスマスタからの前記連続アクセスの要求に基づいて、前記複数のバスマスタのいずれか一つのアクセス要求を、他のバスマスタのアクセス要求を割り込ませること無く連続して受付け、
前記複数のバスマスタのそれぞれが連続アクセスを行っていない場合には、前記複数のバスマスタにおいて前記許容待ち時間更新回路で更新される前記許容待ち時間がしきい値よりも小さいバスマスタが存在する場合、前記比較結果を用いることなく、前記許容待ち時間がしきい値よりも小さいバスマスタのうち前記優先順位が最も高いバスマスタのアクセス要求を最優先して受け付ける、アクセス制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のバスマスタによるバススレーブへのアクセス要求を調停するアクセス制御装置に関する。
【背景技術】
【０００２】
半導体集積回路において、機能ブロック間の情報の通信を少ない配線で効率的に行うために、「バス」と呼ばれるアクセス経路を用いることが多い。このようなバスを利用する回路は、一般的に、アクセス要求を送信する複数のバスマスタと、当該複数のバスマスタによってアクセスされるバススレーブと、複数のバスマスタ間でアクセス要求の競合が生じた場合に当該アクセス要求を調停するアクセス調停回路とを備えている。
【０００３】
従来から、複数のバスマスタからのアクセス要求を調停する方法として様々な方法が提案されている。例えば、特許文献１におけるバス調停制御装置では、各バスマスタのバス使用回数とバス使用待ち許容時間に基づいてアクセスの優先順位を決定しており、これにより、バス使用権の均一化を図っている。
【０００４】
また、予め設定された固定の優先順位に基づいて調停する方法、バスマスタ間で決まった順番でアクセス権を巡回させる方法（ラウンドロビン）、最も長い時間アクセス権を得ていないバスマスタにアクセス権を付与する方法（LRU：Least Recently Used）、事前に決められた時間割り当て（タイムスロット）に従って、各バスマスタがアクセス権を得る方法なども提案されている。更に、特許文献２〜５には他の調停方法が提案されている。
【０００５】
【特許文献１】特開平１０−３３４０４２号公報
【特許文献２】特開２０００−２９３４８３号公報
【特許文献３】特開平１０−２７１５６号公報
【特許文献４】特開平９−３３０２９０号公報
【特許文献５】特開平８−３１４８５２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上述の特許文献１の技術では、予めタイマに記憶されたバス使用待ち許容時間を使用して、複数のバスマスタ間におけるアクセスの優先順位を決定している。そのため、バスマスタの動作状況や、システム全体の動作状況が変化した際に、バス使用待ち許容時間を適切な値に設定することができない。
【０００７】
そこで、本発明は上記点に鑑みて成されたものであり、複数のバスマスタにおけるバススレーブに対するアクセス要求を調停する際に使用される時間情報を適切に制御することが可能な技術を提供することを目的とする。
【課題を解決するための手段】
【０００８】
この発明のアクセス制御装置は、複数のバスマスタと、少なくとも一つのバススレーブと、前記複数のバスマスタにおける前記バススレーブに対するアクセス要求を調停するアクセス調停回路と、記憶情報の書き換えが可能な記憶回路とを備え、前記記憶回路には、前記複数のバスマスタのそれぞれについて、前記バススレーブに対するアクセス要求が発行された際の当該アクセス要求の許容待ち時間を決定するための時間情報が記憶され、前記複数のバスマスタの少なくとも一つが、前記記憶回路内における前記複数のバスマスタについての前記時間情報を制御し、前記アクセス調停回路は、前記複数のバスマスタのそれぞれについて、前記バススレーブに対するアクセス要求が発行されてから受付けられるまでの間、前記記憶回路内の前記時間情報に基づいて当該アクセス要求の許容待ち時間を更新する許容待ち時間更新回路と、前記許容待ち時間更新回路で更新される前記許容待ち時間を前記複数のバスマスタ間で比較し、その比較結果に基づいて、前記複数のバスマスタのいずれかの前記アクセス要求を受付けるアクセス要求受付け回路とを有する、アクセス制御装置。
【発明の効果】
【０００９】
この発明のアクセス制御装置によれば、各バスマスタでの許容待ち時間を比較し、その比較結果に基づいてバスマスタのいずれかのアクセス要求を受付けるため、複数のバスマスタのアクセス要求が競合した際に許容待ち時間が少ないバスマスタにアクセス権を付与することができる。その結果、バスマスタとバススレーブ間のデータ転送性能を犠牲にすることなく、バスマスタのバススレーブへのアクセスに要する時間を許容範囲内に収めることができる。
【００１０】
更に、許容待ち時間を更新する際に使用される時間情報がバスマスタによって制御されるため、各バスマスタの動作状況やシステム全体の動作状況に応じて当該時間情報を最適にすることが可能となる。
【発明を実施するための最良の形態】
【００１１】
実施の形態１．
図１は、本発明の実施の形態１に係るアクセス制御装置の構成を示すブロック図である。図１に示されるように、本実施の形態１に係るアクセス制御装置は、バススレーブＢＳ０，ＢＳ１と、バススレーブＢＳ０，ＢＳ１に対してアクセスを行うバスマスタＢＭ０，ＢＭ１と、バスマスタＢＭ０，ＢＭ１間のバススレーブＢＳ０，ＢＳ１に対するアクセス要求を調停するアクセス調停回路ＡＣと、記憶回路ＭＥＭとを備えており、バスマスタＢＭ０，ＢＭ１は、共通のバスを利用してバススレーブＢＳ０，ＢＳ１にアクセスする。バスマスタＢＭ０,ＢＭ１は、例えばＣＰＵやＤＭＡコントローラであり、バススレーブＢＳ０，ＢＳ１は、例えばメモリ、ＵＡＲＴ、あるいはＤＲＡＭコントローラである。
【００１２】
図２は、記憶回路ＭＥＭ及びアクセス調停回路ＡＣの構成を示すブロック図である。図２に示されるように、記憶回路ＭＥＭはレジスタＲＥＧ０，ＲＥＧ１を備えており、アクセス調停回路ＡＣは、許容待ち時間更新回路ＡＷＣと、アクセス要求受付け回路ＡＲＲとを備えている。レジスタＲＥＧ０，ＲＥＧ１は、バスマスタＢＭ０が出力する許容待ち時間情報ＡＷＩ０，ＡＷＩ１をそれぞれ記憶する。そして、バスマスタＢＭ０は、レジスタＲＥＧ０内の許容待ち時間情報ＡＷＩ０及びレジスタＲＥＧ１内の許容待ち時間情報ＡＷＩ１を書き換え可能であり、それらの内容を制御する。
【００１３】
許容待ち時間更新回路ＡＷＣはカウンタＣＴ０，ＣＴ１を備えており、許容待ち時間情報ＡＷＩ０，ＡＷＩ１に基づいて、各バスマスタＢＭ０，ＢＭ１のアクセス要求の許容待ち時間を更新する。ここで、許容待ち時間とは、バスマスタから発行されたバススレーブに対するアクセス要求が受付けられるまでの許容時間である。例えば、ある時点での許容待ち時間が１００μｓであれば、バスマスタのアクセス要求は以後１００μｓ以内に受付けられれば良いことになる。従って、アクセス要求が出力されてからそれが受付けられるまでの間においては、許容待ち時間は時間の経過とともに小さくなる。
【００１４】
また、許容待ち時間情報ＡＷＩ０は、バスマスタＢＭ０からアクセス要求が発行された際の当該アクセス要求の許容待ち時間を決定するための時間情報であって、許容待ち時間情報ＡＷＩ１は、バスマスタＢＭ１からアクセス要求が発行された際の当該アクセス要求の許容待ち時間を決定するための時間情報である。
【００１５】
アクセス要求受付け回路ＡＲＲは、比較器ＣＯＭと、リクエストセレクタＲＱＳと、制御信号セレクタＣＳＳとを備えており、バスマスタＢＭ０，ＢＭ１のアクセス要求が競合する際に、許容待ち時間更新回路ＡＷＣで更新された各バスマスタＢＭ０，ＢＭ１の許容待ち時間を比較し、その比較結果に基づいて当該アクセス要求を調停する。
【００１６】
カウンタＣＴ０には、レジスタＲＥＧ０が出力する許容待ち時間情報ＡＷＩ０と、バスマスタＢＭ０が出力するアクセス要求信号ＲＱ０と、リクエストセレクタＲＱＳが出力するグラント信号ＧＲＴ０が入力される。一方、カウンタＣＴ１には、レジスタＲＥＧ１が出力する許容待ち時間情報ＡＷＩ１と、バスマスタＢＭ１が出力するアクセス要求信号ＲＱ１と、リクエストセレクタＲＱＳが出力するグラント信号ＧＲＴ１が入力される。そして、カウンタＣＴ０，ＣＴ１は、図示しないシステムクロックＣＬＫに基づいてクロック入力ごとに、つまりシステムクロックＣＬＫの立ち上がりごとにカウンタ値をダウンカウントする。
【００１７】
なお、バスマスタＢＭ０は、アクセス要求信号ＲＱ０を“１”に設定することによってバススレーブＢＳ０，ＢＳ１に対するアクセス要求を出力する。また、バスマスタＢＭ１は、アクセス要求信号ＲＱ１を“１”に設定することによってバススレーブＢＳ０，ＢＳ１に対するアクセス要求を出力する。
【００１８】
アクセス要求受付け回路ＡＲＲの比較器ＣＯＭは、カウンタＣＴ０からのカウンタ出力値ＣＯＵＴ０と、カウンタＣＴ１からカウンタ出力値ＣＯＵＴ１とを比較して、その比較結果に基づいて、バスマスタＢＭ０，ＢＭ１のどちらのアクセス要求の受付けを優先させるかを示す優先順位値ＰＲＶを生成して出力する。リクエストセレクタＲＱＳは、バスマスタＢＭ０からのアクセス要求信号ＲＱ０と、バスマスタＢＭ１からのアクセス要求信号ＲＱ１と、比較器ＣＯＭからの優先順位値ＰＲＶと、後述するグラント信号ＧＲＴ１０とが入力され、それらの信号に基づいて、グラント信号ＧＲＴ０，ＧＲＴ１を生成して出力する。グラント信号ＧＲＴ０が“１”のとき、バスマスタＢＭ０のアクセス要求が受付けられ、グラント信号ＧＲＴ１が“１”のとき、バスマスタＢＭ１のアクセス要求が受付けられる。
【００１９】
制御信号セレクタＣＳＳは、リクエストセレクタＲＱＳからのグラント信号ＧＲＴ０，ＧＲＴ１に基づいて、バスマスタＢＭ０が出力する制御信号ＣＮＴ０と、バスマスタＢＭ１が出力する制御信号ＣＮＴ１とのどちらか一方を制御信号ＣＮＴ１０として出力する。これにより、バスマスタＢＭ０，ＢＭ１のどちらか一方のアクセス要求が受付けられる。また、制御信号セレクタＣＳＳはアクセス要求信号ＲＱ１０も出力する。なお、制御信号ＣＮＴ０，ＣＮＴ１は、バススレーブＢＳ０，ＢＳ１を制御するための信号であって、それぞれライトデータ信号、アドレス信号、リード信号及びライト信号などが含まれている。
【００２０】
図１に示されるように、本実施の形態１に係るアクセス制御装置には、アドレスデコーダＡＤとＡＮＤ回路１０とリードセレクタＲＳが更に設けられている。アドレスデコーダＡＤは、制御信号セレクタＣＳＳからのアクセス要求信号ＲＱ１０が“１”を示すと、制御信号ＣＮＴ１０に含まれるアドレス信号のうちの上位アドレス信号をデコードしてチップセレクト信号ＣＳ０，ＣＳ１を生成して出力する。
【００２１】
バススレーブＢＳ０にはチップセレクト信号ＣＳ０が入力され、当該信号が“１”のときバススレーブＢＳ０が選択される。一方、バススレーブＢＳ１にはチップセレクト信号ＣＳ１が入力され、当該信号が“１”のときバススレーブＢＳ１が選択される。そして、各バススレーブＢＳ０，ＢＳ１には、制御信号ＣＮＴ１０に含まれる上位アドレス信号以外の信号が入力される。
【００２２】
また、バススレーブＢＳ０は、自身の動作状態に基づいてグラント信号ＧＲＴ２０を出力し、バススレーブＢＳ１も、自身の動作状態に基づいてグラント信号ＧＲＴ２１を出力する。例えば、バススレーブＢＳ０，ＢＳ１は、バスマスタＢＭ０，ＢＭ１からアクセスされている場合や初期動作を行っている場合に、グラント信号ＧＲＴ２０，ＧＲＴ２１を“０”に設定して、その設定期間はアクセス要求の受付けを行わない。
【００２３】
ＡＮＤ回路１０は、グラント信号ＧＲＴ２０，ＧＲＴ２１の論理積を演算してその結果をグラント信号ＧＲＴ１０としてリクエストセレクタＲＱＳに出力する。従って、グラント信号ＧＲＴ１０が“０”を示す際、バススレーブＢＳ０，ＢＳ１の両方に対するアクセスが禁止されていることになる。
【００２４】
本実施の形態１では、バスマスタＢＭ０，ＢＭ１は、アクセス調停回路ＡＣとバススレーブＢＳ０，ＢＳ１との間の信号線の束を共通バスとして利用し、当該共通バスを利用してバススレーブＢＳ０，ＢＳ１にアクセスする。
【００２５】
また、リードセレクタＲＳは、アドレスデコーダＡＤが出力する、アクセス中のバススレーブを示す制御信号ＣＮＴＳに基づいて、バススレーブＢＳ０，ＢＳ１がそれぞれ出力するリードデータ信号ＲＤＤ２０，ＲＤＤ２１のどちらか一方をリードデータＲＤＤ１０としてバスマスタＢＭ０，ＢＭ１に出力する。
【００２６】
次に、許容待ち時間更新回路ＡＷＣ及びアクセス要求受付け回路ＡＲＲの動作について詳細に説明する。図３は許容待ち時間更新回路ＡＷＣのカウンタＣＴ０の動作を、図４はアクセス要求受付け回路ＡＲＲの比較器ＣＯＭの動作を、図５はリクエストセレクタＲＱＳの動作を、図６は制御信号セレクタＣＳＳの動作をそれぞれ示している。なお、図中の「−」は任意の値で良いことを示している。
【００２７】
図３の動作１に示されるように、アクセス要求信号ＲＱ０が“０”のときには、カウンタＣＴ０のカウンタ出力値ＣＯＵＴ０は“０”となり、次のクロックが入力された際のカウンタ値も“０”となる。後述の説明からも理解できるように、アクセス要求信号ＲＱ０が“０”のときには、カウンタ出力値ＣＯＵＴ０はリクエストセレクタＲＱＳの出力に影響を与えないため、カウンタ出力値ＣＯＵＴ０の値は“０”以外でも問題とならない。
【００２８】
また、図３の動作２，３に示されるように、アクセス要求信号ＲＱ０が“１”の場合では、１クロック前のアクセス要求信号ＲＱ０及びグラント信号ＧＲＴ０がともに“０”のとき、あるいは１クロック前のアクセス要求信号ＲＱ０及びグラント信号ＧＲＴ０がともに“１”のときには、カウンタＣＴ０は、許容待ち時間情報ＡＷＩ０が示す値βをカウンタ値に設定して、それをカウンタ出力値ＣＯＵＴ０として出力する。そして、次のクロックが入力された際にはカウンタ値をダウンカウントして（β−１）に設定する。なお、β＝０のときには、次のクロックが入力された際のカウンタ値は“０”となる。また、本実施の形態１では、許容待ち時間情報ＡＷＩ０，ＡＷＩ１は、システムクロックＣＬＫのクロック数で表現されている。
【００２９】
図３の動作４に示されるように、アクセス要求信号ＲＱ０が“１”の場合であって、１クロック前のアクセス要求信号ＲＱ０及びグラント信号ＧＲＴ０がそれぞれ“１”，“０”の場合には、カウンタＣＴ０は、カウンタ出力値ＣＯＵＴ０として現状態のカウンタ値αを出力する。そして、次のクロックが入力された際には、カウンタ値をダウンカウントして（α−１）に設定する。なお、現状態のカウンタ値αが“０”のときには、次のクロックが入力された際のカウンタ値は“０”のままである。
【００３０】
上述の動作２では１クロック前のアクセス要求信号ＲＱ０が“０”であるため、この動作２は、バスマスタＢＭ０から新たなアクセス要求が出力された際の動作を示していることになる。また、上述のように、グラント信号ＧＲＴ０の“１”はバスマスタＢＭ０のアクセス要求が受付けられることを示しており、１クロック前のグラント信号ＧＲＴ０が“１”である動作３も、バスマスタＢＭ０から新たなアクセス要求が出力された際の動作を示していることになる。
【００３１】
一方、動作４では、１クロック前のアクセス要求信号ＲＱ０が“１”であるにも関わらず、１クロック前のグラント信号ＧＲＴ０は“０”であるため、１クロック前ではバスマスタＢＭ０のアクセス要求は受付けられなかったことになる。従って、動作４は、バスマスタＢＭ０のアクセス要求が受付けられなかった際の次のクロック入力での動作を示していることになる。
【００３２】
以上のことから、バスマスタＢＭ０から新たなアクセス要求が出力された際には、カウンタＣＴ０ではカウンタ出力値ＣＯＵＴ０として許容待ち時間情報ＡＷＩ０の値βが出力される。そして、このアクセス要求が受付けられない間は、許容待ち時間情報ＡＷＩ０の値βがクロック入力ごとにダウンカウントされて、その値がカウンタ出力値ＣＯＵＴ０として出力される。その後、当該アクセス要求が受付けられると、次のクロック入力では、アクセス要求信号ＲＱ０の値によってカウンタ出力値ＣＯＵＴ０が“０”となったり、許容待ち時間情報ＡＷＩ０の値βとなったりする。
【００３３】
本実施の形態１では、許容待ち時間情報ＡＷＩ０が示す値を、バスマスタＢＭ０からアクセス要求が発行された時点での当該アクセス要求の許容待ち時間としている。そして、カウンタＣＴ０は、バスマスタＢＭ０からアクセス要求が発行されてからそれが受付けられるまでの間、時間の経過とともに許容待ち時間情報ＡＷＩ０が示す値を減少させることによって当該アクセス要求の許容待ち時間を更新している。
【００３４】
なお、許容待ち時間情報ＡＷＩ１についても同様であり、それが示す値を、バスマスタＢＭ１からアクセス要求が発行された時点での当該アクセス要求の許容待ち時間としている。そして、カウンタＣＴ１もカウンタＣＴ０と同様に動作し、バスマスタＢＭ１からアクセス要求が発行されてからそれが受付けられるまでの間、時間の経過とともに、許容待ち時間情報ＡＷＩ１が示す値を減少させることによって、バスマスタＢＭ１に関する許容待ち時間を更新している。従って、比較器ＣＯＭにおいて、カウンタ出力値ＣＯＵＴ０，ＣＯＵＴ１を比較することによって、その時点でのバスマスタＢＭ０，ＢＭ１の許容待ち時間のどちらが少ないかを比較することができ、どちらのアクセス要求を優先させるべきかを判断することができる。その結果、バスマスタＢＭ０，ＢＭ１間のアクセス要求の待ち時間を調整できる。
【００３５】
図４に示されるように、比較器ＣＯＭは、カウンタ出力値ＣＯＵＴ０，ＣＯＵＴ１を比較し、カウンタ出力値ＣＯＵＴ１がカウンタ出力値ＣＯＵＴ０以上の場合には、バスマスタＢＭ０のアクセス要求の受付けを優先させるべきと判断して、優先順位値ＰＲＶを“０”に設定する。一方、カウンタ出力値ＣＯＵＴ１がカウンタ出力値ＣＯＵＴ０よりも小さい場合には、バスマスタＢＭ１のアクセス要求の受付けを優先させるべきと判断して、優先順位値ＰＲＶを“１”に設定する。なお、本実施の形態１では、カウンタ出力値ＣＯＵＴ０とカウンタ出力値ＣＯＵＴ１とが同じ値のときには優先順位値ＰＲＶを“０”に設定しているが、“１”に設定しても良い。
【００３６】
リクエストセレクタＲＱＳは、図５に示されるように、グラント信号ＧＲＴ１０が“０”のとき、グラント信号ＧＲＴ０，ＧＲＴ１をともに“０”に設定する。これにより、バススレーブＢＳ０，ＢＳ１の少なくとも一方がアクセス禁止のときには、バスマスタＢＭ０，ＢＭ１のアクセス要求はともに受付けられなくなる。
【００３７】
リクエストセレクタＲＱＳは、グラント信号ＧＲＴ１０が“１”であって、バススレーブＢＳ０，ＢＳ１の両方に対してアクセスが可能の場合には、アクセス要求信号ＲＱ０，ＲＱ１のどちらか一方が“１”、つまりバスマスタＢＭ０，ＢＭ１のどちらか一方がアクセス要求を発行すると、グラント信号ＧＲＴ０，ＧＲＴ１のうち、そのアクセス要求を発行しているバスマスタに対応した信号を“１”に設定し、当該アクセス要求を受付ける。
【００３８】
そして、リクエストセレクタＲＱＳは、グラント信号ＧＲＴ１０が“１”の場合には、アクセス要求信号ＲＱ０，ＲＱ１の両方が“１”となり、バスマスタＢＭ０，ＢＭ１のアクセス要求が競合すると、優先順位値ＰＲＶに基づいてグラント信号ＧＲＴ０，ＧＲＴ１のどちらか一方を“１”に設定する。具体的には、バスマスタＢＭ０のアクセス要求の許容待ち時間がバスマスタＢＭ１のそれ以下であって優先順位値ＰＲＶが“０”のときには、グラント信号ＧＲＴ０を“１”に設定して、バスマスタＢＭ０のアクセス要求を受付ける。そして、バスマスタＢＭ１のアクセス要求の許容待ち時間がバスマスタＢＭ０のそれよりも小さく、優先順位値ＰＲＶが“１”のときには、グラント信号ＧＲＴ１を“１”に設定して、バスマスタＢＭ１のアクセス要求を受付ける。
【００３９】
リクエストセレクタＲＱＳからのグラント信号ＧＲＴ０，ＧＲＴ１は、バスマスタＢＭ０，ＢＭ１にそれぞれ入力される。従って、各バスマスタＢＭ０，ＢＭ１は、発行したアクセス要求が受付けられたかどうかを認識することができ、アクセス要求が受付けられなかった場合にはアクセス要求信号を“１”の状態で保持する。
【００４０】
制御信号セレクタＣＳＳは、図６に示されるように、グラント信号ＧＲＴ０，ＧＲＴ１の両方が“０”のとき、アクセス要求信号ＲＱ１０を“０”に設定する。このとき、制御信号ＣＮＴ１０の値は、バススレーブＢＳ０，ＢＳ１やアドレスデコーダＡＤで使用されないため特に規定しない。図６中の「Ｘ」はそのことを意味している。また制御信号セレクタＣＳＳは、グラント信号ＧＲＴ０が“１”のときには、バスマスタＢＭ０のアクセス要求が受付けられているため、アクセス要求信号ＲＱ１０を“１”に設定し、制御信号ＣＮＴ０を制御信号ＣＮＴ１０として出力する。一方、グラント信号ＧＲＴ１が“１”のときには、バスマスタＢＭ１のアクセス要求が受付けられているため、アクセス要求信号ＲＱ１０を“１”に設定し、制御信号ＣＮＴ１を制御信号ＣＮＴ１０として出力する。なお、図６中の符号“Ａ”は制御信号ＣＮＴ０の内容を説明の便宜上示す符号であり、符号“Ｂ”は制御信号ＣＮＴ１の内容を説明の便宜上示す符号である。
【００４１】
アドレスデコーダＡＤは、アクセス要求信号ＲＱ１０が“０”ときには、バススレーブＢＳ０，ＢＳ１に対するアクセス要求は無いものと判断して、チップセレクト信号ＣＳ０，ＣＳ１をともに“０”に設定する。従って、このときには、バススレーブＢＳ０，ＢＳ１は両方とも読み出し又は書き込みのアクセス動作を行わない。そして、アドレスデコーダＡＤは、アクセス要求信号ＲＱ１０が“１”のときには、制御信号ＣＮＴ１０に含まれる上位アドレスをデコードして、チップセレクト信号ＣＳ０，ＣＳ１のうちその値に応じた方を“１”に設定する。これにより、バススレーブＢＳ０，ＢＳ１のどちらか一方が読み出し又は書き込みのアクセス動作を行う。また、バススレーブＢＳ０，ＢＳ１のそれぞれには、制御信号ＣＮＴ１０に含まれる信号のうち上位アドレスを除く信号が入力される。
【００４２】
バススレーブに対するデータの読み出し動作においては、制御信号ＣＮＴ１０に含まれるリード信号が“１”を示すと、バススレーブＢＳ０，ＢＳ１のうちのチップセレクト信号ＣＳ０，ＣＳ１で選択された方は、入力された下位アドレス信号が示す記憶領域に格納されているデータを出力する。そして、アクセス要求を出力したバスマスタは、バススレーブから出力されたデータを受け取る。一方、バススレーブに対するデータの書き込み動作においては、制御信号ＣＮＴ１０に含まれるライト信号が“１”を示すと、バススレーブＢＳ０，ＢＳ１のうちのチップセレクト信号ＣＳ０，ＣＳ１で選択された方は、入力された下位アドレス信号が示す記憶領域に、受け取ったデータ信号を書き込む。
【００４３】
次に、図７を参照して、バスマスタＢＭ０，ＢＭ１のアクセス要求が調停されるまでの本実施の形態１に係るアクセス制御装置の一連の動作について説明する。図７は、本アクセス制御装置内で生成される信号の波形を示すタイミングチャートである。図７では、説明の便宜上、制御信号ＣＮＴ０の内容を符号Ａ０〜Ａ２で示し、制御信号ＣＮＴ１の内容を符号Ｂ０，Ｂ１で示している。以下では、許容待ち時間情報ＡＷＩ０が示す値が“８”に設定され、許容待ち時間情報ＡＷＩ１が示す値が“１１”に設定されている場合の動作例について説明する。
【００４４】
図７に示されるように、クロックＴ２においては、バスマスタＢＭ０から新たなアクセス要求が発行されているため、許容待ち時間情報ＡＷＩ０が示す値がそのときの許容待ち時間に採用され、カウンタＣＴ０はカウンタ出力値ＣＯＵＴ０として許容待ち時間情報ＡＷＩ０の値“８”を出力する。
【００４５】
また、クロックＴ２においては、バスマスタＢＭ１からも新たなアクセス要求が発行されているため、許容待ち時間情報ＡＷＩ１が示す値がそのときの許容待ち時間に採用され、カウンタＣＴ１はカウンタ出力値ＣＯＵＴ１として許容待ち時間情報ＡＷＩ１の値“１１”を出力する。
【００４６】
そして、クロックＴ２においては、バススレーブ側からのグラント信号ＧＲＴ１０が“１”の状態で、アクセス要求信号ＲＱ０，ＲＱ１がともに“１”を示しているため、リクエストセレクタＲＱＳは、優先順位値ＰＲＶに基づいてグラント信号ＧＲＴ０，ＧＲＴ１のどちらを“１”に設定するかを決定する。クロックＴ２では、カウンタ出力値ＣＯＵＴ０の方がカウンタ出力値ＣＯＵＴ１よりも小さいため、優先順位値ＰＲＶは“０”を示す。従って、グラント信号ＧＲＴ０が“１”となり、グラント信号ＧＲＴ１が“０”となり、バスマスタＢＭ０のアクセス要求が受付けられる。その結果、制御信号セレクタＣＳＳからは、制御信号ＣＮＴ１０として、バスマスタＢＭ０の制御信号ＣＮＴ０が出力される。
【００４７】
一方、バスマスタＢＭ１のアクセス要求はクロックＴ２では受付けられなかったため、クロックＴ３では、カウンタ出力値ＣＯＵＴ１が“１１”から“１０”に減少する。これにより、クロックＴ２で発行されたバスマスタＢＭ１のアクセス要求の許容待ち時間が更新される。この許容待ち時間の更新は、当該バスマスタＢＭ１のアクセス要求が受付けられるまで、本例ではクロックＴ９まで実行される。
【００４８】
クロックＴ５においては、バスマスタＢＭ０から新たなアクセス要求が発行されるため、カウンタ出力値ＣＯＵＴ０は再び“８”に設定される。クロックＴ５，Ｔ６においては、バススレーブ側のグラント信号ＧＲＴ１０が“０”であるため、バスマスタＢＭ０のアクセス要求は受付けられない。従って、クロックＴ６では、バスマスタＢＭ０のアクセス要求の許容待ち時間が更新される。そして、クロックＴ７においては、バススレーブ側のグラント信号ＧＲＴ１０が“１”であるため、優先順位値ＰＲＶに基づいてバスマスタＢＭ０，ＢＭ１のアクセス要求が調停される。本例では、クロックＴ７におけるカウンタ出力値ＣＯＵＴ０，ＣＯＵＴ１はともに“６”であるため優先順位値ＰＲＶは“０”となり、バスマスタＢＭ０のアクセス要求が受付けられる。そして、クロックＴ８では、バスマスタＢＭ０から新たなアクセス要求が発行されるため、カウンタ出力値ＣＯＵＴ０は“８”に設定される。
【００４９】
クロックＴ９では、グラント信号ＧＲＴ１０が“１”であるため、優先順位値ＰＲＶに基づいてバスマスタＢＭ０，ＢＭ１のアクセス要求が調停される。本例では、クロックＴ９におけるカウンタ出力値ＣＯＵＴ０，ＣＯＵＴ１はそれぞれ“７”，“４”であるため、優先順位値ＰＲＶは“１”となる。従って、バスマスタＢＭ１のアクセス要求が受付けられる。
【００５０】
クロックＴ１１では、バスマスタＢＭ１から新たなアクセス要求が発行されるため、カウンタ出力値ＣＯＵＴ１には“１１”が設定される。クロックＴ１２では、グラント信号ＧＲＴ１０が“１”であり優先順位値ＰＲＶが“０”であるため、クロックＴ８で発行されたバスマスタＢＭ０のアクセス要求が受付けられる。そして、クロックＴ１３では、バスマスタＢＭ０からのアクセス要求が出力されていないため、バスマスタＢＭ１のアクセス要求が受付けられる。
【００５１】
以上のように、本実施の形態１に係るアクセス制御装置では、バスマスタＢＭ０，ＢＭ１での許容待ち時間を比較して、その比較結果に基づいてバスマスタＢＭ０，ＢＭ１のどちらかのアクセス要求が受付けられる。そのため、アクセス要求が競合した際に許容待ち時間が少ないバスマスタにアクセス権を付与することができる。その結果、バスマスタＢＭ０，ＢＭ１とバススレーブＢＳ０，ＢＳ１間のデータ転送性能を犠牲にすることなく、各バスマスタＢＭ０，ＢＭ１のバススレーブＢＳ０，ＢＳ１に対するアクセスに要する時間（アクセスレイテンシ）を許容範囲内に収めることができる。
【００５２】
更に、許容待ち時間情報ＡＷＩ０，ＡＷＩ１は、記憶情報が書き換え可能な記憶回路ＭＥＭに記憶されるため、システム仕様やシステムの動作状態に応じて許容待ち時間情報ＡＷＩ０，ＡＷＩ１を更新することができる。従って、バスマスタＢＭ０，ＢＭ１とバススレーブＢＳ０，ＢＳ１間において、最適なデータ転送性能を実現できる。これにより、例えば、各バスマスタＢＭ０，ＢＭ１が動画像データ等の大量のデータをリアルタイムに取り扱う場合であっても、画像表示が不能となる等のシステム破綻を引き起こすことを防止できる。
【００５３】
更に、許容待ち時間情報ＡＷＩ０，ＡＷＩ１はバスマスタＢＭ０によって制御されるため、各バスマスタＢＭ０，ＢＭ１の動作状況やシステム全体の動作状況に応じて許容待ち時間情報ＡＷＩ０，ＡＷＩ１をソフトウェア等で適切に制御することができる。例えば、バスマスタＢＭ０の動作モードとして、バススレーブＢＳ０，ＢＳ１との間で頻繁にデータの受け渡しを行うモードＭ１と、それほどデータの受け渡しを行わないモードＭ２とが存在する場合、モードＭ１のときには許容待ち時間情報ＡＷＩ０が示す値を小さくして、バスマスタＢＭ０のアクセス要求が頻繁に受付けられるようにし、モードＭ２の場合には、許容待ち時間情報ＡＷＩ０が示す値を大きくして、バスマスタＢＭ１のアクセス要求が受付けられやすくすることができる。
【００５４】
また、バスマスタＢＭ０は、バスマスタＢＭ１からの指示を受けて、許容待ち時間情報ＡＷＩ１をも最適に制御することができるし、本アクセス制御装置が組み込まれるシステムの全体を管理する上位の制御装置からの指示を受けて許容待ち時間情報ＡＷＩ０，ＡＷＩ１を制御し、バスマスタＢＭ０，ＢＭ１間のアクセス要求の待ち時間の調整をシステム全体の動作状況に応じて適切に制御することもできる。
【００５５】
また、本実施の形態１では、許容待ち時間情報ＡＷＩ０，ＡＷＩ１が示す値をアクセス要求が発行された時点での許容待ち時間とし、時間の経過とともにそれを減少させて許容待ち時間を更新している。そのため、毎回のアクセス要求の待ち時間を許容待ち時間情報ＡＷＩ０，ＡＷＩ１が示す時間内に収めることができる。図７の例では、バスマスタＢＭ０の毎回のアクセス要求の待ち時間を８クロック以内にすることができるし、バスマスタＢＭ１の毎回のアクセス要求の待ち時間を１１クロック以内にすることができる。
【００５６】
なお、本実施の形態１では、バスマスタＢＭ０が許容待ち時間情報ＡＷＩ０，ＡＷＩ１の両方を制御しているが、バスマスタＢＭ０がレジスタＲＥＧ０内の許容待ち時間情報ＡＷＩ０を、バスマスタＢＭ１がレジスタＲＥＧ１内の許容待ち時間情報ＡＷＩ１をそれぞれ制御してもよい。更に、バスマスタＢＭ１が許容待ち時間情報ＡＷＩ０，ＡＷＩ１の両方を制御しても良い。
【００５７】
また、本実施の形態１では、バスマスタが２つの場合について説明したが、本発明はこれに限定されるわけではなく、それよりも多いバスマスタが存在する場合にも適用することができる。以下に、４つのバスマスタＢＭ０〜ＢＭ３を備えるアクセス制御装置に本発明を適用する場合について説明する。図８は、本実施の形態１に係るアクセス制御装置の変形例を示すブロック図であって、具体的には記憶回路ＭＥＭ及びアクセス調停回路ＡＣの構成を示している。
【００５８】
図８に示されるように、４つのバスマスタＢＭ０〜ＢＭ３が存在する場合には、記憶回路ＭＥＭにはレジスタＲＥＧ２，ＲＥＧ３が追加される。レジスタＲＥＧ２，ＲＥＧ３は、バスマスタＢＭ０が出力する許容待ち時間情報ＡＷＩ２，ＡＷＩ３をそれぞれ記憶する。本例では、許容待ち時間情報ＡＷＩ２は、バスマスタＢＭ２からアクセス要求が発行された際の当該アクセス要求の許容待ち時間を決定するための時間情報であって、許容待ち時間情報ＡＷＩ２の値を、バスマスタＢＭ２からアクセス要求が発行された時点での当該アクセス要求の許容待ち時間として採用する。また、許容待ち時間情報ＡＷＩ３は、バスマスタＢＭ３からアクセス要求が発行された際の当該アクセス要求の許容待ち時間を決定するための時間情報であって、許容待ち時間情報ＡＷＩ３の値を、バスマスタＢＭ３からアクセス要求が発行された時点での当該アクセス要求の許容待ち時間として採用する。
【００５９】
許容待ち時間更新回路ＡＷＣにはカウンタＣＴ２，ＣＴ３が追加される。カウンタＣＴ２には、レジスタＲＥＧ２が出力する許容待ち時間情報ＡＷＩ２と、バスマスタＢＭ２が出力するアクセス要求信号ＲＱ２と、リクエストセレクタＲＱＳが出力するグラント信号ＧＲＴ２が入力される。一方、カウンタＣＴ３には、レジスタＲＥＧ３が出力する許容待ち時間情報ＡＷＩ３と、バスマスタＢＭ３が出力するアクセス要求信号ＲＱ３と、リクエストセレクタＲＱＳが出力するグラント信号ＧＲＴ３が入力される。
【００６０】
カウンタＣＴ２，ＣＴ３は、カウンタＣＴ０，ＣＴ１と同様に動作する。つまり、カウンタＣＴ２は、バスマスタＢＭ２からアクセス要求が発行されてからそれが受付けられるまでの間、時間の経過とともに許容待ち時間情報ＡＷＩ２が示す値を減少させることによって当該アクセス要求の許容待ち時間を更新し、その更新した許容待ち時間をカウンタ出力値ＣＯＵＴ２として出力する。また、カウンタＣＴ３は、バスマスタＢＭ３からアクセス要求が発行されてからそれが受付けられるまでの間、時間の経過とともに許容待ち時間情報ＡＷＩ３が示す値を減少させることによって許容待ち時間を更新し、その更新した許容待ち時間をカウンタ出力値ＣＯＵＴ３として出力する。
【００６１】
図８に示されるように、比較器ＣＯＭには、カウンタＣＴ０〜ＣＴ３から出力されるカウンタ出力値ＣＯＵＴ０〜ＣＯＵＴ３が入力される。そして、比較器ＣＯＭは、４つのカウンタ出力値ＣＯＵＴ０〜ＣＯＵＴ３における任意の２つの値の比較を全組み合わせについて行い、それらの比較結果を優先順位値ＰＲＶｘｙとして出力する。ここで、優先順位値の符号に含まれるｘ，ｙは変数であって、優先順位値が示す比較結果のもとになる２つのカウンタ出力値の末尾の符号に対応している。例えば、優先順位値ＰＲＶ０３は、カウンタ出力値ＣＯＵＴ０とカウンタ出力値ＣＯＵＴ３との比較結果を示し、優先順位値ＰＲＶ２３は、カウンタ出力値ＣＯＵＴ２とカウンタ出力値ＣＯＵＴ３との比較結果を示している。そして、（ｘ，ｙ）の組みとしては、（０，１），（０，２），（０，３），（１，２），（１，３），（２，３）の６通り存在する。
【００６２】
図９は、比較器ＣＯＭが出力する優先順位値ＰＲＶｘｙの値を示す図である。図９に示されるように、比較器ＣＯＭは、カウンタ出力値ＣＯＵＴｘがカウンタ出力値ＣＯＵＴｙ以下の場合には、バスマスタＢＭｘのアクセス要求の受付けを優先させるべきと判断して、優先順位値ＰＲＶｘｙを“０”に設定する。そして、カウンタ出力値ＣＯＵＴｘがカウンタ出力値ＣＯＵＴｙよりも大きい場合には、バスマスタＢＭｙのアクセス要求の受付けを優先させるべきと判断して、優先順位値ＰＲＶｘｙを“１”に設定する。
【００６３】
このように優先順位値ＰＲＶｘｙが“０”のときには、バスマスタＢＭｘのアクセス要求の優先順位がバスマスタＢＭｙよりも勝っており、優先順位値ＰＲＶｘｙが“１”のときには、バスマスタＢＭｙのアクセス要求の優先順位がバスマスタＢＭｘよりも勝っている。
【００６４】
リクエストセレクタＲＱＳは、図８に示されるように、比較器ＣＯＭからの優先順位値ＰＲＶｘｙと、バスマスタＢＭ０〜ＢＭ３からのアクセス要求信号ＲＱ０〜ＲＱ３と、グラント信号ＧＲＴ１０とに基づいて、グラント信号ＧＲＴ０〜ＧＲＴ３を出力する。グラント信号ＧＲＴ０が“１”のとき、バスマスタＢＭ０のアクセス要求が優先して受付けられ、グラント信号ＧＲＴ１が“１”のとき、バスマスタＢＭ１のアクセス要求が優先して受付けられ、グラント信号ＧＲＴ２が“１”のとき、バスマスタＢＭ２のアクセス要求が優先して受付けられ、グラント信号ＧＲＴ３が“１”のとき、バスマスタＢＭ３のアクセス要求が優先して受付けられる。
【００６５】
図１０は図８のリクエストセレクタＲＱＳの動作を示す図であって、図１０（ａ）〜１０（ｄ）はグラント信号ＧＲＴ０〜ＧＲＴ３の値をそれぞれ示している。図１０（ａ）に示されるように、バススレーブＢＳ０，ＢＳ１についてアクセスが禁止されておりグラント信号ＧＲＴ１０が“０”を示すとき、あるいはバスマスタＢＭ０からアクセス要求が発行されずにアクセス要求信号ＲＱ０が“０”のときには、グラント信号ＧＲＴ０は“０”を示す。また、アクセス要求信号ＲＱ１が“１”かつ優先順位値ＰＲＶ０１が“１”のとき、又はアクセス要求信号ＲＱ２が“１”かつ優先順位値ＰＲＶ０２が“１”のとき、又はアクセス要求信号ＲＱ３が“１”かつ優先順位値ＰＲＶ０３が“１”のときのいずれかを満たす場合には、グラント信号ＧＲＴ０は“０”となる。そして、それ以外の場合には、グラント信号ＧＲＴ０が“１”となる。つまり、バスマスタＢＭ１〜ＢＭ３の各々について、アクセス要求が出力されずにアクセス要求信号ＲＱｚ0が“０”の場合か、バスマスタＢＭ０のアクセス要求の優先順位が、他のバスマスタＢＭｚ0よりも勝っている場合のいずれかを満たす場合は、バスマスタＢＭ０のアクセス要求を受付ける。ここで符号ＲＱｚ0，ＢＭｚ0の“ｚ0”は、バスマスタＢＭ１〜ＢＭ３に対応した１〜３を示す。
【００６６】
図１０（ｂ）〜（ｄ）に示されるように、グラント信号ＧＲＴ１〜ＧＲＴ３が示す値についてもグラント信号ＧＲＴ０と同様である。従って、バスマスタＢＭ０，ＢＭ２，ＢＭ３の各々について、アクセス要求信号ＲＱｚ1（ｚ1＝０，２，３）が“０”の場合か、バスマスタＢＭ１のアクセス要求の優先順位が、他のバスマスタＢＭｚ1よりも勝っている場合のいずれかを満たす場合は、バスマスタＢＭ１のアクセス要求が受付けられる。同様に、バスマスタＢＭ０，ＢＭ１，ＢＭ３の各々について、アクセス要求が出力されずにアクセス要求信号ＲＱｚ2（ｚ2＝０，１，３）が“０”の場合か、バスマスタＢＭ２のアクセス要求の優先順位が、他のバスマスタＢＭｚ2よりも勝っている場合のいずれかを満たす場合は、バスマスタＢＭ２のアクセス要求が受付けられ、バスマスタＢＭ０〜ＢＭ２の各々について、アクセス要求が出力されずにアクセス要求信号ＲＱｚ3（ｚ3＝０〜２）が“０”の場合か、バスマスタＢＭ３のアクセス要求の優先順位が、他のバスマスタＢＭｚ3よりも勝っている場合のいずれかを満たす場合は、バスマスタＢＭ３のアクセス要求が受付けられる。
【００６７】
図１１は図８の制御信号セレクタＣＳＳの動作を示す図である。なお図１１では、説明の便宜上、制御信号ＣＮＴ０〜ＣＮＴ３の内容を符号Ａ〜Ｄでそれぞれ示している。図１１に示されるように、制御信号セレクタＣＳＳは、グラント信号ＧＲＴ０〜ＧＲＴ３のすべてが“０”の場合には、アクセス要求信号ＲＱ１０を“０”に設定する。このとき、制御信号ＣＮＴ１０の値は、バススレーブＢＳ０，ＢＳ１やアドレスデコーダＡＤで使用されていないため特に規定しない。図１１中の“Ｘ”はそれを意味している。そして、グラント信号ＧＲＴ０〜ＧＲＴ３のいずれか一つが“１”の場合には、アクセス要求信号ＲＱ１０を“１”に設定し、バスマスタＢＭ０〜ＢＭ３からそれぞれ出力される制御信号ＣＮＴ０〜ＣＮＴ３のうち、“１”を示すグラント信号に対応したバスマスタからの制御信号を制御信号ＣＮＴ１０として出力する。
【００６８】
以上の構成により、バスマスタが３つ以上存在する場合であっても、上述のような効果を得ることができる。
【００６９】
実施の形態２．
上述の実施の形態１に係るアクセス制御装置では、バスマスタから出力される毎回のアクセス要求の待ち時間が許容待ち時間情報が示す時間以内になるように制御されている。しかしながら、本発明が適用されるアプリケーションによっては、毎回のアクセス要求の待ち時間はそれほど問題とならず、アクセス要求が受付けられる平均的な時間間隔が所定時間内に収まっていれば良いような場合も存在する。このような場合においては、実施の形態１のように毎回のアクセス要求の待ち時間を所定時間内に収める必要はなく、逆にそのように制御した場合には、必要以上の頻度で特定のバスマスタからのアクセス要求が受付けられるようになり、複数のバスマスタ間のアクセス権獲得回数のバランスが悪化し、結果的にシステム性能を低下させる場合がある。
【００７０】
例えば、許容待ち時間情報ＡＷＩ０が示す値が“５”であって、許容待ち時間情報ＡＷＩ１が示す値が“１５”である場合、各バスマスタＢＭ０，ＢＭ１から同時に新たなアクセス要求が発行された場合には、バスマスタＢＭ０の許容待ち時間の方が小さいため、バスマスタＢＭ０のアクセス要求がまず優先的に受付けられる。そして、バスマスタＢＭ１のアクセス要求は受付けられなかったため、次のクロック入力においては、バスマスタＢＭ１における許容待ち時間は“１４”となる。つまり、カウンタ出力値ＣＯＵＴ１は“１４”となる。このときに、バスマスタＢＭ０から新たなアクセス要求が出力された場合にはカウンタ出力値ＣＯＵＴ０は“５”となる。このカウンタ出力値ＣＯＵＴ０とカウンタ出力値ＣＯＵＴ１とを比較すると、カウンタ出力値ＣＯＵＴ０の方が小さいため、バスマスタＢＭ１のアクセス要求が受付けられずに、再びバスマスタＢＭ０のアクセス要求が受付けられる。
【００７１】
そして、バスマスタＢＭ１のアクセス要求は受付けられなかったため、次のクロック入力においてはカウンタ出力値ＣＯＵＴ１は“１３”となるが、このときに、バスマスタＢＭ０から新たなアクセス要求が出力された場合には、カウンタ出力値ＣＯＵＴ１の方がカウンタ出力値ＣＯＵＴ０よりもまだ大きいので、再びバスマスタＢＭ０のアクセス要求が受付けられる。
【００７２】
このように、実施の形態１のように毎回のアクセス要求の待ち時間を所定時間内に収めるように制御した場合には、必要以上の頻度で特定のバスマスタからのアクセス要求が受付けられるようになり、複数のバスマスタ間のアクセス権獲得回数のバランスが悪化する。そこで、本実施の形態２では、毎回のアクセス要求の待ち時間は問題とならず、アクセス要求が受付けられる平均時間間隔が所定時間内に収まっていれば良いようなアプリケーションに適したアクセス制御装置を提供する。
【００７３】
図１２は、本実施の形態２に係るアクセス制御装置におけるカウンタＣＴ０の動作を示す図である。本実施の形態２に係るアクセス制御装置は、実施の形態１に係るアクセス制御装置と比較して、基本的には、カウンタＣＴ０，ＣＴ１の動作が異なるだけである。以下では、実施の形態１との相違点だけを説明する。
【００７４】
図１２に示されるように、本実施の形態２に係るカウンタＣＴ０は、バスマスタＢＭ０からアクセス要求が出力されない場合（動作５）、あるいはアクセス要求が受付けられずに待たされている場合（動作８）には、現状態のカウンタ値αをカウンタ出力値ＣＯＵＴ０として出力し、次のクロックが入力された際にはカウンタ値αをダウンカウントする。一方、バスマスタＢＭ０から新たなアクセス要求が出力された際には（動作６，７）、現状態のカウンタ値αに許容待ち時間情報ＡＷＩ０が示す値βを足し合わせた値（α＋β）を新たなカウンタ値として設定し、それをカウンタ出力値ＣＯＵＴ０として出力する。そして、次のクロックが入力された際にはカウンタ値をダウンカウントする。
【００７５】
なお、動作５，８において、現状態のカウンタ値が“０”の場合には、次のクロック入力でのカウンタ値も“０”となる。また、動作６，７においては、値（α＋β）がカウンタＣＴ０に設定可能な値の最大値を越える場合には、カウンタ出力値ＣＯＵＴ０は当該最大値となる。更に、動作６，７においては、カウンタ出力値ＣＯＵＴ０の値（α＋β）が“０”の場合には、次のクロックが入力された際にはカウンタ値は“０”となり変化しない。
【００７６】
このように、本実施の形態２に係るカウンタＣＴ０は、バスマスタＢＭ０から新たなアクセス要求が発行された際には、許容待ち時間情報ＡＷＩ０の値に現在のカウンタ値を足し合わせている。本実施の形態２では、この足し合わせた値を、新たなアクセス要求が発行された時点での許容待ち時間として採用している。そして、上述の動作８に示されるように、アクセス要求が待たされている間は、当該足し合わせた値を時間の経過とともに減少させ、これによって許容待ち時間を更新し、それをカウンタ出力値ＣＯＵＴ０として出力している。
【００７７】
なお、本実施の形態２に係るカウンタＣＴ１もカウンタＣＴ０と同様に動作し、バスマスタＢＭ１から新たなアクセス要求が発行された際には、許容待ち時間情報ＡＷＩ１の値に現在のカウンタ値を足し合わせ、この足し合わせた値を時間の経過とともに減少させることによって当該アクセス要求の許容待ち時間を更新している。そして、更新した許容待ち時間をカウンタ出力値ＣＯＵＴ１として出力している。
【００７８】
また、本実施の形態２に係るカウンタＣＴ０，ＣＴ１では、上記動作５からも理解できるように、対応するバスマスタのアクセス要求が受付けられた後も、当該対応するバスマスタが次のアクセス要求を発行するまで、カウンタ値を継続してダウンカウントしている。
【００７９】
以上のように、本実施の形態２では、バスマスタから新たなアクセス要求が発行された際には、許容待ち時間情報が示す値に現在のカウンタのカウンタ値を足し合わせた値をその時点での許容待ち時間としているため、前回のアクセス要求が受付けられた際に残存していた許容待ち時間の少なくとも一部を、新たなのアクセス要求が発行された時点での許容待ち時間に組み入れることができる。その結果、特定のバスマスタのアクセス要求が必要以上の頻度で受付けられることを防止できるとともに、アクセス要求が受付けられる平均時間間隔を所定時間以内にすることができる。以下に、このことについて詳細に説明する。
【００８０】
図１３は、本実施の形態２に係るアクセス制御装置内で生成される信号の波形を示すタイミングチャートである。図１３では、許容待ち時間情報ＡＷＩ０の値が“８”に設定され、許容待ち時間情報ＡＷＩ１の値が“１１”に設定されている場合のタイミングチャートが示されている。
【００８１】
図１３に示されるように、クロックＴ２においては、バスマスタＢＭ０から新たなアクセス要求が発行されているため、カウンタＣＴ０は、現在のカウンタ値“０”に許容待ち時間情報ＡＷＩ０の値“８”を足し合わせた値“８”をカウンタ出力値ＣＯＵＴ０として出力する。また、クロックＴ２においては、バスマスタＢＭ１からも新たなアクセス要求が発行されているため、カウンタＣＴ１は、現在のカウンタ値“０”に許容待ち時間情報ＡＷＩ１の値“１１”を足し合わせた値“１１”をカウンタ出力値ＣＯＵＴ１として出力する。そして、クロックＴ２においては、バススレーブ側からのグラント信号ＧＲＴ１０が“１”の状態で、アクセス要求信号ＲＱ０，ＲＱ１がともに“１”を示しているため、リクエストセレクタＲＱＳは優先順位値ＰＲＶに基づいてグラント信号ＧＲＴ０，ＧＲＴ１のどちらを“１”に設定するかを決定する。クロックＴ２では、カウンタ出力値ＣＯＵＴ０の方がカウンタ出力値ＣＯＵＴ１よりも小さいため、優先順位値ＰＲＶは“０”を示す。従って、グラント信号ＧＲＴ０が“１”となり、グラント信号ＧＲＴ１が“０”となる。その結果、バスマスタＢＭ０のアクセス要求が受付けられる。
【００８２】
一方、バスマスタＢＭ１のアクセス要求はクロックＴ２では受付けられなかったため、クロックＴ３では、カウンタ出力値ＣＯＵＴ１が“１１”から“１０”に減少する。これにより、クロックＴ２で発行されたバスマスタＢＭ１のアクセス要求の許容待ち時間が更新される。また、クロックＴ３ではカウンタＣＴ０のカウンタ値はダウンカウントされて、カウンタ出力値ＣＯＵＴ０は“８”から“７”に減少する。
【００８３】
クロックＴ５においては、バスマスタＢＭ０から新たなアクセス要求が発行されるため、カウンタＣＴ０は、現在のカウンタ値“５”に許容待ち時間情報ＡＷＩ０の値“８”を加算した値“１３”をこの時点での許容待ち時間として、カウンタ出力値ＣＯＵＴ０に“１３”を設定している。クロックＴ５，Ｔ６においては、バススレーブ側のグラント信号ＧＲＴ１０が“０”であるため、バスマスタＢＭ０のアクセス要求は受付けられない。従って、クロックＴ６では、バスマスタＢＭ０のアクセス要求の許容待ち時間が更新される。
【００８４】
クロックＴ７においては、バススレーブ側のグラント信号ＧＲＴ１０が“１”であるため、優先順位値ＰＲＶに基づいてバスマスタＢＭ０，ＢＭ１のアクセス要求が調停される。本例では、クロックＴ７におけるカウンタ出力値ＣＯＵＴ０，ＣＯＵＴ１はそれぞれ“１１”，“６”であるため優先順位値ＰＲＶは“１”となり、バスマスタＢＭ１のアクセス要求が受付けられる。
【００８５】
クロックＴ７ではバスマスタＢＭ０のアクセス要求は受付けられなかったため、クロックＴ８においてはカウンタ出力値ＣＯＵＴ０は減少する。また、クロックＴ８ではカウンタＣＴ１のカウンタ値はダウンカウントされて、カウンタ出力値ＣＯＵＴ０は“６”から“５”に減少する。
【００８６】
クロックＴ９では、グラント信号ＧＲＴ１０が“１”であり、バスマスタＢＭ１からアクセス要求は発行されていないため、バスマスタＢＭ０のアクセス要求が受付けられる。そして、クロックＴ１０では、バスマスタＢＭ０から新たなアクセス要求が発行されるため、許容待ち時間情報ＡＷＩ０の値“８”にカウンタＣＴ０の現在のカウンタ値“８”が加算された値“１６”がこの時点での許容待ち時間として採用され、カウンタ出力値ＣＯＵＴ０は“１６”となる。
【００８７】
クロックＴ１１では、バスマスタＢＭ１から新たなアクセス要求が発行されるため、許容待ち時間情報ＡＷＩ１の値“１１”にカウンタＣＴ１の現在のカウンタ値“２”が加算された値“１３”がこの時点での許容待ち時間として採用され、カウンタ出力値ＣＯＵＴ１は“１３”となる。そして、クロックＴ１２では、グラント信号ＧＲＴ１０が“１”であるため、バスマスタＢＭ０，ＢＭ１における許容待ち時間が比較され、その比較結果に基づいてアクセス要求が調停される。本例では、優先順位値ＰＲＶが“１”であるため、クロックＴ１１で発行されたバスマスタＢＭ１のアクセス要求が受付けられる。
【００８８】
クロックＴ１３では、グラント信号ＧＲＴ１０が“１”であり、バスマスタＢＭ１からはアクセス要求が発行されていないため、バスマスタＢＭ０のアクセス要求が受付けられる。
【００８９】
このように、本実施の形態２に係るアクセス制御装置では、新たなアクセス要求が発行された時点での許容待ち時間には、前回のアクセス要求が受付けられた際に残存していた許容待ち時間の少なくとも一部が組み込まれるため、実施の形態１と比較して、特定のバスマスタのアクセス要求が集中して受付けられられることを回避することができるとともに、バスマスタのアクセス要求が受付けられる時間間隔の平均値が、許容待ち時間情報が示す値以内となる。従って、本実施の形態２に係るアクセス制御装置は、アクセス要求ごとの待ち時間は問題とならず、各バスマスタが所定の平均時間間隔以内でアクセスすれば良いようなアプリケーションに好適である。
【００９０】
なお、図８に示される装置のように、バスマスタが３つ以上存在する場合であっても、各バスマスタに対応するカウンタの機能を同様に変更することによって本発明を適用することができる。
【００９１】
実施の形態３．
一般的に、コスト削減のためにバスのデータ幅を低減するなどによってバスのデータ転送性能にほとんど余裕を持たせることができない場合には、全てのバスマスタのバススレーブに対するアクセスレイテンシを許容範囲内に収めることはできない場合がある。このような場合においては、アクセスレイテンシを許容範囲内に収めることができないことにより生じるシステム破綻を確実に防止するために、当該システム破綻に結びつくバスマスタのアクセス要求を最優先して受付ける必要がある。
【００９２】
実施の形態１，２に係るアクセス制御装置において、このような問題を解決するためには、例えば、システム破綻に結びつくバスマスタに関する許容待ち時間情報の値を適当な分だけ差し引き、この差し引いた値を用いてアクセス調停を行う方法が考えられる。しかしながら、このような方法では、値を小さくした許容待ち時間情報に対応するバスマスタのアクセス要求における許容待ち時間が小さくなるため、当該バスマスタに必要以上の頻度でアクセス権が付与されることになり、他のバスマスタのバススレーブに対するアクセスが受付けられる頻度が低下することがある。
【００９３】
そこで、本実施の形態３では、バスのデータ転送性能に余裕が無い場合であっても、確実にシステム破綻を防止できるとともに、特定のバスマスタのアクセス要求が受付けられる頻度が極端に高くなることを防止することが可能なアクセス制御装置を提供する。
【００９４】
図１４は、本実施の形態３に係るアクセス制御装置の比較器ＣＯＭの動作を示す図である。本実施の形態３に係るアクセス制御装置は、上述の実施の形態２に係るアクセス制御装置と比較して、基本的には、比較器ＣＯＭの動作が異なるだけである。以下では、実施の形態２との相違点だけを説明する。
【００９５】
本実施の形態３では、バスマスタＢＭ０がシステム破綻に結びつくバスマスタであって、バスマスタＢＭ０，ＢＭ１のアクセス要求の受付けに関して予め固定優先順位が定められている。具体的には、バスマスタＢＭ０の方がバスマスタＢＭ１よりもアクセス要求が受付けられる固定優先順位が高い。
【００９６】
図１４に示されるように、本実施の形態３に係る比較器ＣＯＭは、カウンタ出力値ＣＯＵＴ０が所定のしきい値ｔｈ以下の場合には、優先順位値ＰＲＶを“０”に設定する。これにより、固定優先順位の高いバスマスタＢＭ０における許容待ち時間がしきい値ｔｈ以下になると、バスマスタＢＭ０のアクセス要求が優先的に受付けられる。
【００９７】
一方、カウンタ出力値ＣＯＵＴ０がしきい値ｔｈよりも大きい場合には、実施の形態２と同様に、カウンタ出力値ＣＯＵＴ０，ＣＯＵＴ１を比較し、その比較結果に基づいて優先順位値ＰＲＶを決定する。具体的には、カウンタ出力値ＣＯＵＴ０がしきい値ｔｈよりも大きい場合であって、カウンタ出力値ＣＯＵＴ０がカウンタ出力値ＣＯＵＴ１以下の場合には優先順位値ＰＲＶを“０”に設定し、カウンタ出力値ＣＯＵＴ０がしきい値ｔｈよりも大きい場合であって、カウンタ出力値ＣＯＵＴ０がカウンタ出力値ＣＯＵＴ１よりも大きい場合には優先順位値ＰＲＶを“１”に設定する。なお、図１４中の「○」はカウンタ出力値ＣＯＵＴ０がしきい値ｔｈ以下であることを示し、「×」はカウンタ出力値ＣＯＵＴ０がしきい値ｔｈよりも大きいことを示している。
【００９８】
本実施の形態３では、カウンタ出力値ＣＯＵＴ０がしきい値ｔｈ以下の場合には、優先順位値ＰＲＶを“０”に設定し、カウンタ出力値ＣＯＵＴ０がしきい値ｔｈよりも大きい場合には、カウンタ出力値ＣＯＵＴ０，ＣＯＵＴ１の比較結果に基づいて優先順位値ＰＲＶを決定しているが、カウンタ出力値ＣＯＵＴ０がしきい値ｔｈより小さい場合には優先順位値ＰＲＶを“０”に設定し、カウンタ出力値ＣＯＵＴ０がしきい値ｔｈ以上の場合には、カウンタ出力値ＣＯＵＴ０，ＣＯＵＴ１の比較結果に基づいて優先順位値ＰＲＶを決定しても良い。
【００９９】
本実施の形態３に係るしきい値ｔｈは比較器ＣＯＭ内でハードウェア的に固定された値である。また、バスマスタＢＭ０，ＢＭ１に関する固定優先順位の情報も、本実施の形態３に係るアクセス制御装置内でハードウェア的に固定された値である。なお、記憶情報が書き換え可能なレジスタにしきい値ｔｈや固定優先順位の情報を記憶させ、バスマスタＢＭ０，ＢＭ１などによってその値を書き換え可能にしても良い。
【０１００】
次に、図１５を参照して、バスマスタＢＭ０，ＢＭ１のアクセス要求が調停されるまでの本実施の形態３に係るアクセス制御装置の一連の動作について説明する。図１５は、本アクセス制御装置内で生成される信号の波形を示すタイミングチャートである。なお以下では、許容待ち時間情報ＡＷＩ０の値が“８”、許容待ち時間情報ＡＷＩ１の値が“１１”、しきい値ｔｈの値が“７”にそれぞれ設定されている場合の動作例について説明する。
【０１０１】
図１５に示されるように、クロックＴ２においては、バスマスタＢＭ０，ＢＭ１から新たなアクセス要求が発行されているため、カウンタＣＴ０は、現在のカウンタ値“０”に許容待ち時間情報ＡＷＩ０の値“８”を足し合わせた値“８”を出力し、カウンタＣＴ１は、現在のカウンタ値“０”に許容待ち時間情報ＡＷＩ１の値“１１”を足し合わせた値“１１”を出力する。そして、クロックＴ２においては、バススレーブ側からのグラント信号ＧＲＴ１０が“１”の状態で、アクセス要求信号ＲＱ０，ＲＱ１がともに“１”を示しているため、リクエストセレクタＲＱＳは、優先順位値ＰＲＶに基づいてグラント信号ＧＲＴ０，ＧＲＴ１のどちらを“１”に設定するかを決定する。クロックＴ２では、カウンタ出力値ＣＯＵＴ０はしきい値ｔｈの値“７”よりも大きく、カウンタ出力値ＣＯＵＴ０がカウンタ出力値ＣＯＵＴ１よりも小さいため、優先順位値ＰＲＶは“０”を示す。従って、グラント信号ＧＲＴ０が“１”となり、グラント信号ＧＲＴ１が“０”となる。その結果、バスマスタＢＭ０のアクセス要求が受付けられる。
【０１０２】
クロックＴ５においては、バスマスタＢＭ０から新たなアクセス要求が発行されるため、カウンタＣＴ０は、現在のカウンタ値“５”に許容待ち時間情報ＡＷＩ０の値“８”を加算した値“１３”をこの時点での許容待ち時間として出力する。クロックＴ５〜Ｔ１１においては、バススレーブ側のグラント信号ＧＲＴ１０が“０”であるため、バスマスタＢＭ０のアクセス要求も、バスマスタＢＭ１のアクセス要求も受付けられない。従って、この間は、バスマスタＢＭ０，ＢＭ１のアクセス要求の許容待ち時間は更新される。
【０１０３】
クロックＴ１２では、バススレーブ側のグラント信号ＧＲＴ１０が“１”であるため、バスマスタＢＭ０，ＢＭ１のアクセス要求のどちらかが受付けられる。クロックＴ１２では、カウンタ出力値ＣＯＵＴ１はカウンタ出力値ＣＯＵＴ０よりも小さいが、カウンタ出力値ＣＯＵＴ０がしきい値ｔｈよりも小さくなっているため、優先順位値ＰＲＶは“０”となり、バスマスタＢＭ０のアクセス要求が受付けられる。そして、クロックＴ１３では、バスマスタＢＭ０からのアクセス要求は出力されていないため、バスマスタＢＭ１のアクセス要求が受付される。
【０１０４】
このように、本実施の形態３では、バスマスタＢＭ０，ＢＭ１のうち、アクセス要求の受付けの固定優先順位が高いバスマスタについての許容待ち時間がしきい値ｔｈよりも大きい場合には、バスマスタＢＭ０，ＢＭ１のアクセス要求の許容待ち時間を比較して、その比較結果に基づいてバスマスタＢＭ０，ＢＭ１のいずれかのアクセス要求が受付けられる。そして、固定優先順位が高いバスマスタについての許容待ち時間がしきい値ｔｈと同じかそれよりも小さくなると、当該固定優先順位が高いバスマスタのアクセス要求が優先して受け付けられる。従って、本実施の形態３のように、システム破綻を起こす可能性があるバスマスタに高い固定優先順位を割り付けることによって、当該バスマスタのアクセス要求を優先して受付けることができる。その結果、バスのデータ転送性能、言い換えればバスマスタとバススレーブ間のデータ転送性能に余裕が無い場合であっても、確実にシステム破綻を防止できる。更に、許容待ち時間情報ＡＷＩ０の値を予め小さくする必要がないことから、バスマスタＢＭ０のアクセス要求が受付けられる頻度が極端に高くなることもない。
【０１０５】
なお、本実施の形態３では、実施の形態２に係るアクセス制御装置を変形して本発明を説明したが、実施の形態１に係る比較器ＣＯＭの機能を同様に変更することによって、実施の形態１に係るアクセス制御装置にも本発明を適用することができる。
【０１０６】
また、本実施の形態３では、バスマスタが２つの場合について説明したが、図８に示されるように、３つ以上のバスマスタが存在する場合にも本発明を適用することは可能である。図１６は、この場合の比較器ＣＯＭの動作を示す図である。なお、図１６に示される例では、カウンタ出力値ＣＯＵＴｘに対応するバスマスタＢＭｘよりも、カウンタ出力値ＣＯＵＴｙに対応するバスマスタＢＭｙの方が固定優先順位が高いものとする。
【０１０７】
図１６に示されるように、比較器ＣＯＭは、固定優先順位の高い方のバスマスタＢＭｘに対応するカウンタ出力値ＣＯＵＴｘとしきい値ｔｈとを比較する。そして、カウンタ出力値ＣＯＵＴｘがしきい値ｔｈ以下であれば、バスマスタＣＯＵＴｘの優先順位が勝るように優先順位値ＰＲＶｘｙの値を“０”に設定する。
【０１０８】
一方、カウンタ出力値ＣＯＵＴｘがしきい値ｔｈよりも大きければ、カウンタ出力値ＣＯＵＴｘとカウンタ出力値ＣＯＵＴｙとを比較し、カウンタ出力値ＣＯＵＴｘがカウンタ出力値ＣＯＵＴｙ以下であれば優先順位値ＰＲＶｘｙを“０”に設定し、カウンタ出力値ＣＯＵＴｘがカウンタ出力値ＣＯＵＴｙよりも大きければ優先順位値ＰＲＶｘｙを“１”に設定する。
【０１０９】
例えば、バスマスタＢＭ０〜ＢＭ３の順でアクセス要求の固定優先順位が高く、バスマスタＢＭ０の固定優先順位が最も高い場合、比較器ＣＯＭは、バスマスタＢＭ０に対応するカウンタ出力値ＣＯＵＴ０がしきい値ｔｈ以下であれば優先順位値ＰＲＶ０１，ＰＲＶ０２，ＰＲＶ０３のすべてを“０”に設定して、バスマスタＢＭ０のアクセス要求の受付けを最優先させる。
【０１１０】
また、比較器ＣＯＭは、カウンタ出力値ＣＯＵＴ０がしきい値ｔｈよりも大きく、２番目に固定優先順位が高いバスマスタＢＭ１に対応するカウンタ出力値ＣＯＵＴ１がしきい値ｔｈ以下であれば、優先順位値ＰＲＶ１２，ＰＲＶ１３の両方を“０”に設定して、バスマスタＢＭ１〜ＢＭ３の間ではバスマスタＢＭ１のアクセス要求の受付けを優先させる。従って、この場合、しきい値ｔｈとの比較結果より明らかな様に、カウンタ出力値ＣＯＵＴ１がカウンタ出力値ＣＯＵＴ０よりも小さいので、リクエストセレクタＲＱＳではバスマスタＢＭ１のアクセス要求の受付けが最優先される。
【０１１１】
また、比較器ＣＯＭは、カウンタ出力値ＣＯＵＴ０，ＣＯＵＴ１がともにしきい値ｔｈよりも大きく、３番目に固定優先順位が高いバスマスタＢＭ２に対応するカウンタ出力値ＣＯＵＴ２がしきい値ｔｈ以下であれば、優先順位値ＰＲＶ２３を“０”に設定して、バスマスタＢＭ２，ＢＭ３の間ではバスマスタＢＭ２のアクセス要求の受付けを優先させる。従って、この場合、しきい値ｔｈとの比較結果より明らかな様に、カウンタ出力値ＣＯＵＴ２がカウンタ出力値ＣＯＵＴ０よりも小さく、カウンタ出力値ＣＯＵＴ１よりも小さいので、バスマスタＢＭ２のアクセス要求の受付けが最優先される。
【０１１２】
以上の説明から理解できるように、バスマスタが３つ以上存在する場合であっても、複数のバスマスタのうち許容待ち時間がしきい値ｔｈよりも小さいバスマスタが存在する場合、許容待ち時間がしきい値ｔｈよりも小さいバスマスタのうち、固定優先順位が最も高いバスマスタのアクセス要求が最優先して受付けられる。従って、システム破綻を起こす可能性があるバスマスタに最も高い固定優先順位を割り付けることによって、当該バスマスタのアクセス要求を最優先して受付けることができる。その結果、バスマスタとバススレーブ間のデータ転送性能に余裕が無い場合であっても確実にシステム破綻を防止できるとともに、特定のバスマスタのアクセス要求が受付けられる頻度が極端に高くなることも防止できる。
【０１１３】
実施の形態４．
上述の実施の形態１〜３に係るアクセス制御装置では、各バスマスタのアクセス要求の許容待ち時間に基づいてアクセス要求を調停しているため、同一のバスマスタからの複数回のアクセス要求を連続して受付けたい場合であっても、その間に他のバスマスタのアクセス要求の受付けが割り込まれることがある。
【０１１４】
例えば、バススレーブの一つがＳＤＲＡＭであって、あるバスマスタが当該ＳＤＲＡＭの同一ロウアドレスに連続してアクセスしたい場合であっても、他のバスマスタからのアクセスがその間に割り込むことがある。その結果、オーバーヘッド時間が増加して、バスマスタとバススレーブ間のデータ転送性能が劣化することがある。
【０１１５】
そこで、本実施の形態４では、同一のバスマスタからの複数回のアクセス要求を、他のバスマスタのアクセス要求の受付けを割り込ませること無く連続して受付けることによって、データ転送性能を向上させることが可能なアクセス制御装置を提供する。
【０１１６】
図１７は、本発明の実施の形態４に係るアクセス制御装置の記憶回路ＭＥＭ及びアクセス調停回路ＡＣの構成を示すブロック図である。本実施の形態４に係るアクセス制御装置は、上述の実施の形態２に係るアクセス制御装置と比較して、基本的には、アクセス要求受付け回路ＡＲＲにロック制御部ＬＣ０，ＬＣ１が更に設けられ、アクセス要求信号ＲＱ０の代わりにロック制御部ＬＣ０が出力するアクセス要求信号ＲＱ００が、アクセス要求信号ＲＱ１の代わりにロック制御部ＬＣ１が出力するアクセス要求信号ＲＱ１１がリクエストセレクタＲＱＳに入力されているものである。以下では、実施の形態２との相違点について説明する。
【０１１７】
図１７に示されるように、ロック制御部ＬＣ０は、バスマスタＢＭ０が出力するアクセス要求信号ＲＱ０及びロック信号ＬＫ０と、ロック制御部ＬＣ１が出力するロックフラグＬＦ１と、リクエストセレクタＲＱＳが出力するグラント信号ＧＲＴ０と、図示しないシステムクロックＣＬＫとが入力され、これらの信号に基づいてアクセス要求信号ＲＱ００をリクエストセレクタＲＱＳに出力する。
【０１１８】
また、ロック制御部ＬＣ１は、バスマスタＢＭ１が出力するアクセス要求信号ＲＱ１及びロック信号ＬＫ１と、ロック制御部ＬＣ０が出力するロックフラグＬＦ０と、リクエストセレクタＲＱＳが出力するグラント信号ＧＲＴ１と、図示しないシステムクロックＣＬＫとが入力され、これらの信号に基づいてアクセス要求信号ＲＱ１１をリクエストセレクタＲＱＳに出力する。
【０１１９】
ロック信号ＬＫ０の“１”は、バスマスタＢＭ０のバススレーブＢＳ０，ＢＳ１に対する連続アクセスの要求を示しており、ロック信号ＬＫ１の“１”は、バスマスタＢＭ１のバススレーブＢＳ０，ＢＳ１に対する連続アクセスの要求を示している。また、ロックフラグＬＦ０の“１”は、バスマスタＢＭ０が排他的に連続してバススレーブＢＳ０，ＢＳ１にアクセスしている旨を示し、ロックフラグＬＦ１の“１”は、バスマスタＢＭ１が排他的に連続してバススレーブＢＳ０，ＢＳ１にアクセスしている旨を示す。
【０１２０】
本実施の形態４に係るリクエストセレクタＲＱＳでは、実施の形態２に係るリクエストセレクタＲＱＳと比較して、グラント信号ＧＲＴ０，ＧＲＴ１の値を決定する際に、アクセス要求信号ＲＱ０の値の代わりにアクセス要求信号ＲＱ００の値が使用され、アクセス要求信号ＲＱ１の値の代わりにアクセス要求信号ＲＱ１１の値が使用される。
【０１２１】
図１８はロック制御部ＬＣ０の動作説明図である。なお、ロック制御部ＬＣ１はロック制御部ＬＣ０と同様に動作し、その動作説明図は、図１８中のロックフラグＬＦ０，ＬＦ１、アクセス要求信号ＲＱ０，ＲＱ００、ロック信号ＬＫ０及びグラント信号ＧＲＴ０を、ロックフラグＬＦ１，ＬＦ０、アクセス要求信号ＲＱ１，ＲＱ１１、ロック信号ＬＫ１及びグラント信号ＧＲＴ１にそれぞれ置き換えたものとなる。
【０１２２】
図１８の動作１１に示されるように、ロック制御部ＬＣ０は、ロックフラグＬＦ１が“１”を示しバスマスタＢＭ１が排他的にバススレーブＢＳ０，ＢＳ１に対して連続アクセスしている場合には、バスマスタＢＭ０がアクセス要求を出力しアクセス要求信号ＲＱ０が“１”が示すときであっても、アクセス要求信号ＲＱ００を“０”に設定し、バスマスタＢＭ０のアクセス要求が受付けられないようにする。この場合、次のクロック入力でもロックフラグＬＦ０は“０”のままである。
【０１２３】
動作１２に示されるように、アクセス要求信号ＲＱ０が“０”を示しバスマスタＢＭ０からアクセス要求が発行されていない場合には、ロック制御部ＬＣ０はアクセス要求信号ＲＱ００を“０”に設定する。この場合、次のクロック入力でもロックフラグＬＦ０は“０”のままである。
【０１２４】
動作１３〜１５に示されるように、ロックフラグＬＦ１が“０”の状態で、バスマスタＢＭ０からアクセス要求が発行された場合には、ロック制御部ＬＣ０は、アクセス要求信号ＲＱ００を“１”に設定する。動作１３のように、ロック信号ＬＫ０が“０”でありバスマスタＢＭ０が連続アクセスの要求を行っていない場合には、次のクロック入力でもロックフラグＬＦ０は“０”のままである。また動作１４のように、ロック信号ＬＫ０が“１”を示すものの、グラント信号ＧＲＴ０が“０”でありバスマスタＢＭ０のアクセス要求が受付けられなかった場合には、次のクロック入力でもロックフラグＬＦ０は“０”のままである。一方、動作１５のように、ロック信号ＬＫ０及びグラント信号ＧＲＴ０がともに“１”を示し、バスマスタＢＭ０が連続アクセスする際の最初のアクセス要求が受付けられた場合には、次のクロック入力ではロックフラグＬＦ０が“１”に設定される。この“１”を示すロックフラグＬＦ０はロック制御部ＬＣ１に入力され、以後のバスマスタＢＭ１のアクセス要求は受付けられなくなる。その結果、バスマスタＢＭ０のアクセス要求が排他的に連続して受付けられるようになる。
【０１２５】
動作１６に示されるように、ロックフラグＬＦ０が“１”の状態で、バスマスタＢＭ０からのアクセス要求が発行されない場合には、アクセス要求信号Ｒ００は“０”に設定され、次のクロック入力でのロックフラグＬＦ０は“１”のままである。
【０１２６】
動作１７〜１９に示されるように、ロックフラグＬＦ１が“０”であって、バスマスタＢＭ０からアクセス要求が発行されると、アクセス要求信号ＲＱ００は“１”を示す。動作１７に示されるように、ロックフラグＬＦ０が“１”の状態で、ロック信号ＬＫ０が“０”を示すものの、グラント信号ＧＲＴ０が“０”でありバスマスタＢＭ０のアクセス要求が受付けられなかった場合、次のクロック入力でのロックフラグＬＦ０は“１”の状態を保持する。一方、動作１８に示されるように、ロック信号ＬＫ０及びグラント信号ＧＲＴ０がそれぞれ“０”，“１”であり、連続アクセスする必要の無い場合のバスマスタＢＭ０のアクセス要求が受付けられたときには、次のクロック入力ではロックフラグＬＦ０が“１”から“０”に変化して、バスマスタＢＭ０の排他的なアクセスは終了する。また、動作１９に示されるように、ロックフラグＬＦ０及びロック信号ＬＫ０がともに“１”を示し、バスマスタＢＭ０の連続アクセスが実行中である場合には、次のクロック入力ではロックフラグＬＦ０は“１”の状態を保持する。
【０１２７】
次に、図１８を参照して、バスマスタＢＭ０，ＢＭ１のアクセス要求が調停されるまでの本実施の形態４に係るアクセス制御装置の一連の動作について説明する。図１８は、本アクセス制御装置内で生成される信号の波形を示すタイミングチャートである。図１８では、許容待ち時間情報ＡＷＩ０の値が“８”に設定され、許容待ち時間情報ＡＷＩ１の値が“１１”に設定されている場合のタイミングチャートが示されている。
【０１２８】
図１８に示されるように、クロックＴ５においては、バスマスタＢＭ０から新たなアクセス要求が発行される。それと同時にロック信号ＬＫ０が“１”となり、バスマスタＢＭ０のバススレーブＢＳ０，ＢＳ１に対する連続アクセスの要求がロック制御部ＬＣ０に通知される。そして、クロックＴ９において、クロックＴ５で発行されたバスマスタＢＭ０のアクセス要求が受付けられると、次のクロックＴ１０でロックフラグＬＦ０が“１”となり、バスマスタＢＭ０が連続アクセス中であることがロック制御部ＬＣ１に通知される。ロック制御部ＬＣ１は、ロックフラグＬＦ０が“１”を示す場合には、バスマスタＢＭ１からアクセス要求が発行されたとしても、それを無視して、アクセス要求信号ＲＱ１１を“０”に設定する。
【０１２９】
クロックＴ１０では、バスマスタＢＭ０から新たなアクセス要求が発行される。このアクセス要求は、クロックＴ１０，Ｔ１１ではグラント信号ＧＲＴ１０が“０”であるため受付けられないが、クロックＴ１２では、グラント信号ＧＲＴ１０が“１”であり、ロックフラグＬＦ０が“１”であるため、カウンタ出力値ＣＯＵＴ０がカウンタ出力値ＣＯＵＴ１よりも大きいにも関わらず受付けられている。これにより、バスマスタＢＭ０の複数回のアクセス要求が排他的に連続して受付けられる。
【０１３０】
クロックＴ１２では、クロックＴ１０で発行された、連続アクセスを実行する必要がない場合のアクセス要求が受付けられているため、次のクロックＴ１３ではロックフラグＬＦ０は“１”から“０”に変化し、バスマスタＢＭ０の連続アクセスが終了する。
【０１３１】
以上のように、本実施の形態４では、カウンタ出力値ＣＯＵＴ０，ＣＯＵＴ１の比較結果と、バスマスタＢＭ０，ＢＭ１の連続アクセスの要求とに基づいて、バスマスタＢＭ０，ＢＭ１のいずれか一つのアクセス要求を、他のバスマスタのアクセス要求を割り込ませること無く連続して受付けている。従って、各バスマスタの意思表示に応じて、同一のバスマスタの複数回のアクセス要求を排他的に連続して受付けることができ、その結果、例えばＳＤＲＡＭへのアクセスにおいて、あるバスマスタが同一ロウアドレスに連続アクセスする場合などでオーバーヘッド時間を短縮でき、バスマスタとバススレーブ間のデータ転送性能を向上させることができる。
【０１３２】
なお、本実施の形態４では、実施の形態２に係るアクセス制御装置に本発明を適用する場合について説明したが、実施の形態１や実施の形態３に係るアクセス制御装置に対して同様の変更を加えることにより、実施の形態１や実施の形態３に係るアクセス制御装置にも本発明を適用することができる。
【０１３３】
実施の形態３に係るアクセス制御装置に本発明を適用した場合には、固定優先順位の最も高いバスマスタＢＭ０の許容待ち時間がしきい値ｔｈよりも小さくなり優先順位値ＰＲＶが“０”となった場合であっても、その際にロックフラグＬＦ１が“１”の場合には、アクセス要求信号Ｒ００は“０”であるため、バスマスタＢＭ１のアクセス要求が優先して受付けられる。従って、本発明を実施の形態３に係るアクセス制御装置に適用した場合には、複数のバスマスタのそれぞれが連続アクセスを行っていない状態で、許容待ち時間がしきい値ｔｈよりも小さいバスマスタが存在する場合、許容待ち時間がしきい値時間ｔｈよりも小さいバスマスタのうち、固定優先順位が最も高いバスマスタのアクセス要求が最優先して受け付けられることになる。
【０１３４】
また、バスマスタが３つ以上存在するアクセス制御装置にも本発明を適用することができる。例えば、図８のアクセス制御装置に本発明を適用するためには、まず、上述のロック制御部ＬＣ０，ＬＣ１と、当該ロック制御部ＬＣ０，ＬＣ１と同様に動作するロック制御部ＬＣ２，ＬＣ３を設ける。そして、ロック制御部ＬＣ１〜ＬＣ３から出力されるロックフラグＬＦ１〜ＬＦ３の論理和をロック制御部ＬＣ０に入力する。この論理和が“１”を示す場合にはバスマスタＢＭ１〜ＢＭ３のいずれかが連続アクセスしていることになることから、ロック制御部ＬＣ０はアクセス要求信号ＲＱ０の値に関わらずアクセス要求信号ＲＱ００を“０”に設定する。
【０１３５】
同様に、ロックフラグＬＦ０，ＬＦ２，ＬＦ３の論理和をロック制御部ＬＣ１に入力し、ロックフラグＬＦ０，ＬＦ１，ＬＦ３の論理和をロック制御部ＬＣ２に入力し、ロックフラグＬＦ０〜ＬＦ２の論理和をロック制御部ＬＣ３に入力する。ロック制御部ＬＣ１は入力された論理和が“１”のときにはアクセス要求信号ＲＱ１の値に関わらずアクセス要求信号ＲＱ１１を“０”に設定し、ロック制御部ＬＣ２は入力された論理和が“１”のときにはアクセス要求信号ＲＱ２の値に関わらずアクセス要求信号ＲＱ２２を“０”に設定し、ロック制御部ＬＣ３は入力された論理和が“１”のときにはアクセス要求信号ＲＱ３の値に関わらずアクセス要求信号ＲＱ３３を“０”に設定する。そして、リクエストセレクタＲＱＳは、アクセス要求信号ＲＱ０〜ＲＱ３の値の代わりにアクセス要求信号ＲＱ００〜ＲＱ３３の値を用いてグラント信号ＧＲＴ０〜ＧＲＴ３の値を決定する。
【０１３６】
以上のように構成することにより、バスマスタが３つ以上存在する場合であっても、本実施の形態３に係るアクセス制御装置と同様の効果を得ることができる。
【図面の簡単な説明】
【０１３７】
【図１】本発明の実施の形態１に係るアクセス制御装置の構成を示すブロック図である。
【図２】本発明の実施の形態１に係る記憶回路及びアクセス調停回路の構成を示すブロック図である。
【図３】本発明の実施の形態１に係る許容待ち時間更新回路の動作を示す図である。
【図４】本発明の実施の形態１に係る比較器の動作を示す図である。
【図５】本発明の実施の形態１に係るリクエストセレクタの動作を示す図である。
【図６】本発明の実施の形態１に係る制御信号セレクタの動作を示す図である。
【図７】本発明の実施の形態１に係るアクセス制御装置の動作を示すタイミングチャートである。
【図８】本発明の実施の形態１に係る記憶回路及びアクセス調停回路の変形例の構成を示すブロック図である。
【図９】本発明の実施の形態１に係る比較器の変形例の動作を示す図である。
【図１０】本発明の実施の形態１に係るリクエストセレクタの変形例の動作を示す図である。
【図１１】本発明の実施の形態１に係る制御信号セレクタの変形例の動作を示す図である。
【図１２】本発明の実施の形態２に係る許容待ち時間更新回路の動作を示す図である。
【図１３】本発明の実施の形態２に係るアクセス制御装置の動作を示すタイミングチャートである。
【図１４】本発明の実施の形態３に係る比較器の動作を示す図である。
【図１５】本発明の実施の形態３に係るアクセス制御装置の動作を示すタイミングチャートである。
【図１６】本発明の実施の形態３に係る比較器の変形例を示す図である。
【図１７】本発明の実施の形態４に係る記憶回路及びアクセス調停回路の構成を示すブロック図である。
【図１８】本発明の実施の形態４に係るロック制御部の動作を示す図である。
【図１９】本発明の実施の形態４に係るアクセス制御装置の動作を示すタイミングチャートである。
【符号の説明】
【０１３８】
ＡＣ  アクセス調停回路、ＡＲＲ  アクセス要求受付け回路、ＡＷＣ  許容待ち時間更新回路、ＡＷＩ０〜ＡＷＩ３  許容待ち時間情報、ＢＭ０〜ＢＭ３  バスマスタ、ＢＳ０，ＢＳ１  バススレーブ、ＬＫ０，ＬＫ１  ロック信号、ＭＥＭ  記憶回路、ＲＱ０〜ＲＱ３  アクセス要求信号。
【図１】
2006040019.tif 000003
【図２】
2006040019.tif 000004
【図３】
2006040019.tif 000005
【図４】
2006040019.tif 000006
【図５】
2006040019.tif 000007
【図６】
2006040019.tif 000008
【図７】
2006040019.tif 000009
【図８】
2006040019.tif 000010
【図９】
2006040019.tif 000011
【図１０】
2006040019.tif 000012
【図１１】
2006040019.tif 000013
【図１２】
2006040019.tif 000014
【図１３】
2006040019.tif 000015
【図１４】
2006040019.tif 000016
【図１５】
2006040019.tif 000017
【図１６】
2006040019.tif 000018
【図１７】
2006040019.tif 000019
【図１８】
2006040019.tif 000020
【図１９】
2006040019.tif 000021