(57)【要約】【課題】１つのバスマスタからの情報を選択する間隔（選択間隔）と、そのバスマスタから転送された情報を共有リソースが処理する処理時間とを一致させることが望ましい。しかし、バスマスタの動作周波数と共有リソースを制御する制御手段との動作周波数が異なることから、これらの時間を完全に一致させることはできない。このため、バスマスタや共有リソースを最大限有効に利用することができないという課題がある。【解決手段】共有リソース（共有メモリ）Ｆの動作速度とは異なる動作速度をもち、共有リソースに対して複数のバスマスタＭ１〜Ｍ５のいずれかから転送されるコマンドとデータからなる情報を選択する情報選択部Ｃと、情報選択部Ｃにより選択された情報を格納するバッファ部Ｄと、所定量の情報の複数分に対する情報選択部Ｃでの情報選択のための選択時間の合計と共有リソースでの処理時間の合計とがほぼ等しくなるように、情報選択部Ｃでの情報選択のタイミングを制御するタイミング調整部Ｂとを備えている。【選択図】図２
2005100379.tif 000002
【特許請求の範囲】
【請求項１】
共有リソースの動作速度とは異なる動作速度をもち、前記共有リソースに対して複数のバスマスタのいずれかから転送されるコマンドとデータからなる情報を選択する情報選択部と、
前記情報選択部により選択された情報を格納するバッファ部と、
所定量の情報の複数分に対する前記情報選択部での情報選択のための選択時間の合計と前記共有リソースでの処理時間の合計とがほぼ等しくなるように、前記情報選択部での情報選択のタイミングを制御するタイミング調整部と、
を備えるリソース管理装置。
【請求項２】
前記タイミング調整部は、所定量の情報の単数分に対する前記情報選択部での情報選択のための選択時間と前記共有リソースでの処理時間とがほぼ等しくなるように、前記情報選択部での情報選択のタイミングを制御する請求項１に記載のリソース管理装置。
【請求項３】
前記タイミング調整部は、前記バッファ部における格納情報量に応じて計数の比較基準値を可変する請求項１に記載のリソース管理装置。
【請求項４】
前記タイミング調整部は、前記バッファ部における格納情報量が閾値より多いときに、前記比較基準値を増大して選択間隔を長くする請求項３に記載のリソース管理装置。
【請求項５】
前記タイミング調整部は、前記バッファ部における格納情報量が前記閾値よりも多く、かつ、最優先の優先順位をもつバスマスタからの情報が前記情報選択部に転送されていないときは、前記情報選択部に対して情報の選択を禁止するように構成されている請求項３に記載のリソース管理装置。
【請求項６】
共有リソースに対して複数のバスマスタのいずれかから転送されるコマンドとデータからなる情報を、単位の選択期間ごとに優先順位に基づいて選択するもので、前記単位の選択期間内での最大転送情報量が設定されており、優先順位が最優先のバスマスタからの情報量が前記最大転送情報量以下のときは、前記バスマスタ以外で優先順位が高く、かつ、前記バスマスタの情報量との合計の情報量が前記最大転送情報量以下となる別のバスマスタからの情報を選択する情報選択部と、
前記情報選択部により選択された情報を格納するバッファ部と、
を備えるリソース管理装置。
【請求項７】
共有リソースに対して複数のバスマスタのいずれかから転送されるコマンドとデータからなる情報を選択する情報選択部と、
前記複数のバスマスタに共通の共有メモリから読み出された所望の情報を格納しておく格納部とを備え、
前記複数のバスマスタの全てが情報を転送していない場合に、予め前記格納部に前記共有メモリから読み出した所望の情報を格納するリソース管理装置。
【請求項８】
前記情報選択部により選択された情報から前記格納部に格納された情報の読み出しコマンドが出力されたときは、前記共有メモリにアクセスすることなく、前記格納部から情報を読み出す請求項７に記載のリソース管理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のバスマスタからの共有リソースへのアクセス制御を行うリソース管理装置に関する。バスマスタとは、プロセッサやＤＳＰ、ＤＭＡ等である。共有リソースとは、複数のバスマスタが共有するメモリや周辺入出力デバイス等である。
【背景技術】
【０００２】
複数のバスマスタと共有リソースとがバスを介して接続され、これらの複数のバスマスタからのバス使用権が競合した場合に、バス調停部（bus arbitrator）を用いる（例えば、特許文献１、２参照）。
【特許文献１】特開平８−２５５１２５号公報（図１および図５）
【特許文献２】特開平６−２６６６６０号公報（図１および図３）
【発明の開示】
【発明が解決しようとする課題】
【０００３】
一般的に、バスマスタの動作速度は共有リソースの動作速度に比べて高速である。そのため、バスマスタが一定数の情報を転送する時間は、その一定数の情報を共有リソースが処理する時間より短い。共有リソースは、最初のバスマスタから転送された情報の処理を実行中に、次のバスマスタから転送された情報を同時に処理することはできない。バスマスタからの情報を選択する間隔を共有リソースが情報を処理する時間よりも長くすることが必要である。しかし、そうすると、共有リソースを効率的に動作させることができない。
【０００４】
１つのバスマスタからの情報を選択する間隔（選択間隔）と、そのバスマスタから転送された情報を共有リソースが処理する処理時間とを一致させることが望ましい。しかし、バスマスタの動作周波数と共有リソースを制御する制御手段との動作周波数が異なることから、これらの時間を完全に一致させることはできない。
【０００５】
さらに、ＳＤＲＡＭのように、プリチャージやリフレッシュといわれる特殊な処理が必要となる場合もある。情報の選択間隔が固定されていると、共有リソースの処理時間が変動すれば、所定時間内に処理を終了できない。
【０００６】
これらの問題点を解決するために、情報を選択する情報選択部と選択された情報を処理する共有リソースの間にバッファを設ける構成が考えられる。その場合でも以下のような問題点がある。
【０００７】
図１（ａ）に示すように、先のバスマスタが転送した情報の処理が完了するまでバスマスタに一定の待ち時間を与える。そして、情報選択部の選択間隔を共有リソースの処理時間よりも長くすることにより、バスマスタと共有リソースの動作時間を調整する方法が考えられる。
【０００８】
しかし、バスマスタおよび共有リソースのいずれにおいても処理を行わない時間が生じるため、バスマスタおよび共有リソースの効率的な使用はむずかしい。
【０００９】
一方、図１（ｂ）に示すように、バスマスタの動作速度に合わせてバッファに連続して情報を格納するという方法も考えられる。しかし、バッファの容量には限りがあり、バッファに情報を格納できないときは、必要な情報を処理することができない。
【００１０】
したがって、本発明の主たる目的は、バスマスタからの転送情報を選択するタイミングを調整することにより、バスマスタや共有リソースの効率的な使用が可能なリソース管理装置を提供することである。
【課題を解決するための手段】
【００１１】
以下、複数種類の構成要素手段が記述されるが、これら各手段については、ハードウエアで構成してもよいし、あるいはソフトウエアで構成してもよいし、あるいはハードウエアとソフトウエアとの組み合わせで構成してもよい。
【００１２】
上記の目標を達成するために、本発明によるリソース管理装置は、
共有リソースの動作速度とは異なる動作速度をもち、前記共有リソースに対して複数のバスマスタのいずれかから転送されるコマンドとデータからなる情報を選択する情報選択部と、
前記情報選択部により選択された情報を格納するバッファ部と、
所定量の情報の複数分に対する前記情報選択部での情報選択のための選択時間の合計と前記共有リソースでの処理時間の合計とがほぼ等しくなるように、前記情報選択部での情報選択のタイミングを制御するタイミング調整部と、
を備えた構成とされている。
【００１３】
この構成によれば、タイミング調整部により、所定量の情報の複数分に対する情報選択部での選択時間の合計と共有リソースでの処理時間の合計とをほぼ等しくすることにより、バスマスタの情報転送間隔の平均値と共有リソースでの処理時間の平均値とをほぼ一致させることができる。その結果、バスマスタも共有リソースも効率的な動作が可能となり、かつ、バッファにおける格納情報量も適切なものとなる。
【００１４】
上記において好ましい態様は、前記タイミング調整部が、所定量の情報の単数分に対する前記情報選択部での情報選択のための選択時間と前記共有リソースでの処理時間とがほぼ等しくなるように、前記情報選択部での情報選択のタイミングを制御することである。
【００１５】
これによれば、所定量の情報の単数分についても均等化を配慮しているので、バスマスタおよび共有リソースの動作をさらに効率的にでき、かつ、バッファ部における格納情報量もさらに適切なものとできる。
【００１６】
上記において好ましい態様は、前記タイミング調整部が、前記バッファ部における格納情報量に応じて計数の比較基準値を可変することである。この場合、前記タイミング調整部は、前記バッファ部における格納情報量が閾値より多いときに、前記比較基準値を増大して選択間隔を長くする。
【００１７】
これによれば、結果として、バッファ部の格納情報量を調整することができ、バスマスタおよび共有リソースの動作をさらに効率的にでき、かつ、バッファ部における格納情報量もさらに適切なものとできる。
【００１８】
また、上記において好ましい態様は、前記タイミング調整部が、前記バッファ部における格納情報量が前記閾値よりも多く、かつ、最優先の優先順位をもつバスマスタからの情報が前記情報選択部に転送されていないときは、前記情報選択部に対して情報の選択を禁止するように構成されていることである。
【００１９】
これによれば、バッファ部に所定の閾値よりも多い情報が格納されているときは、優先度の低い情報を選択せずバッファ部に格納された情報を処理するもので、バッファ部の情報量を少なくできる。
【００２０】
また、本発明によるリソース管理装置は、前記単位の選択期間内での最大転送情報量が設定されており、
共有リソースに対して複数のバスマスタのいずれかから転送されるコマンドとデータからなる情報を、単位の選択期間ごとに優先順位に基づいて選択する情報選択部と、
前記情報選択部により選択された情報を格納するバッファ部と、
を備え、
前記情報選択部は、優先順位が最優先のバスマスタからの情報量が前記最大転送情報量以下のときは、前記バスマスタ以外で優先順位が高く、かつ、前記バスマスタの情報量との合計の情報量が前記最大転送情報量以下となる別のバスマスタからの情報を選択するように構成されている。
【００２１】
これによれば、選択期間内に転送可能な最大の情報量を転送することができ、効率的な処理を行うことが可能になる。
【００２２】
また、本発明によるリソース管理装置は、複数のバスマスタが使用する共通のメモリから所望の情報を格納する格納部を有し、複数のバスマスタの全てが情報を出力していない場合に、予め所定の情報を共有のメモリから格納部に格納するように構成されている。
【００２３】
これによれば、１つのバスマスタの動作状況のみならず他のバスマスタの動作状況も踏まえて、所定の情報を予め格納部に格納することが可能になる。
【発明の効果】
【００２４】
以上のように、本発明によれば、バスマスタから転送される情報を処理するタイミングを調整することにより、効率的にバスマスタや共有リソースを使用することが可能になる。
【発明を実施するための最良の形態】
【００２５】
以下、本発明のリソース管理装置の好ましい実施の形態について図面を参照して説明する。
【００２６】
（実施の形態１）
図２のシステムにおけるリソース管理装置１００は、選択間隔設定部Ａ、タイミング調整部Ｂ、複数のバスマスタからの競合する情報を選択する情報選択部Ｃおよびバッファ部Ｄから構成されている。バッファ部Ｄは、コマンドバッファＤ１とデータバッファＤ２からなる。周辺には、複数のバスマスタＭ１，Ｍ２，Ｍ３，Ｍ４，Ｍ５と、メモリコントローラＥと、複数のバスマスタＭ１〜Ｍ５の共有リソースの一例として共有メモリＦがある。バスマスタは、プロセッサやＤＳＰ、ＤＭＡ等である。
【００２７】
コマンドバッファＤ１およびデータバッファＤ２は、情報選択部Ｃにより選択されたバスマスタからの情報を格納する。メモリコントローラＥは、コマンドバッファＤ１に格納された情報を解釈し、メモリ等のプロトコルに従う信号を生成する。
【００２８】
バスおよびバスマスタは優先順位が設定されている。複数のバスマスタＭ１〜Ｍ５に対してバスマスタ調停部（図示せず）が設けられている。バスマスタ調停部は、バスマスタＭ１〜Ｍ５の２つ以上が同時に共有メモリＦにアクセスした場合に、優先権に従って調停する。バスマスタ調停部により許可を与えられたバスマスタは、共有メモリＦに対するコマンドを情報選択部Ｃを介して転送する。情報選択部Ｃは、共有メモリＦへのアクセスの許可を与えられたバスマスタからバスを介して転送されてくる情報を、バスの優先順位に基づいて選択する。
【００２９】
タイミング調整部Ｂのクロックカウンタｂの動作周波数とメモリコントローラＥのクロックカウンタｅの動作周波数とは異なっている。その結果、情報選択部Ｃの動作周波数とメモリコントローラＥの動作周波数とが異なっている。
【００３０】
なお、バッファ部Ｄは、情報選択部Ｃとともに１つのチップ上に形成されていてもよいし、あるいは、情報選択部Ｃとは別のチップ上に形成されていてもよい。また、データバッファＤ２は１つのみ示しているが、バスマスタごとにデータバッファを設けてもよい。
【００３１】
選択間隔設定部Ａは、情報選択部Ｃにおける選択間隔を設定する。タイミング調整部Ｂは、選択間隔設定部Ａからの選択間隔に基づいて所要の選択信号を生成し、その選択信号を情報選択部Ｃに送出する。その選択信号は、情報の選択のタイミングを示すものである。タイミング調整部Ｂはクロックカウンタｂを備え、クロックカウンタｂは選択間隔を基準にクロックをカウントする。情報選択部Ｃは、選択信号が示すタイミングでバスマスタからの情報を選択する。
【００３２】
図３は、タイミング調整部Ｂのクロックごとの動作を示すフローチャートであり、図４は、タイミング調整部Ｂにおいて、バスマスタからの情報を選択する選択信号を出力するタイミングを示す図である。
【００３３】
選択間隔設定部Ａは、上位５ビットが整数部を表し、下位３ビットが小数部を表す８ビットの固定小数点で値を格納するレジスタで構成される。
【００３４】
メモリコントローラＥは、共有メモリＦの動作速度を考慮して６４ＭＨｚの動作周波数よって動作する。一方、情報選択部Ｃは、１００ＭＨｚの動作周波数によって動作する。この動作周波数の違いが次の相違を生じる。情報選択部Ｃが１ワードを１クロックで処理するとき、共有メモリＦは１．５６２５（１００/６４）クロックを必要とする。この１．５６２５クロックを選択間隔として選択間隔設定部Ａに設定する。なお、バスマスタおよび共有メモリＦの動作周波数の値を格納し、さらに、選択間隔を算出する構成でもよい。
【００３５】
次に、連続したデータを転送することにより転送速度を上げる場合について説明する。
【００３６】
所定のワード数（一例として４ワードの場合）を連続（一例として４つの情報）して処理する場合について説明する。
【００３７】
共有メモリＦが４ワードを処理するのに要する時間は、情報選択部Ｃのクロック数に換算して６．２５クロックの時間である。４ワードの情報を４つ処理するには、２５クロック必要となる。
【００３８】
そこで、選択間隔設定部Ａには、“６．２５”を２進表示として８ビットの固定小数点で表した値“００１１０．０１０”を格納する。整数部の“６”は上位５ビットで“００１１０”となる。小数部の“０．２５”は下位３ビットで“０１０”となる。整数部と小数部を一体として“００１１００１０”を考えると、１６進数で“３２”に該当する。
【００３９】
ステップＳ１１において、タイミング調整部Ｂはクロックの立ち上がりエッジを検出すると、クロックカウンタｂに１を加算する。すなわち、カウント値ＣＮＴをインクリメントする。この１クロックの加算は、整数部と小数部を一体とする１６進数では、０８の加算に対応する。
【００４０】
次いでステップＳ１２において、クロックカウンタｂのカウント値ＣＮＴが予め設定された選択間隔ＴＳ０以上となったかを判定する。図４（ａ）のＮ１のタイミングでは、カウント値ＣＮＴが０８（Ｈ）〈１クロック〉であり、選択間隔ＴＳ０が３２（Ｈ）〈６．２５クロック〉で、ＴＳ０≦ＣＮＴｂの判定が否定となる。そこでステップＳ１３に進んで、選択信号をリセットし（選択信号は出力しない）、処理を終了する。
【００４１】
再度、ステップＳ１１から始め、上記動作を繰り返す。この間、カウント値ＣＮＴは０８（Ｈ）〈１クロック〉ずつ増える。Ｎ７のタイミングにおいて、カウント値ＣＮＴが３８（Ｈ）〈７クロック〉となり、選択間隔ＴＳ０の３２（Ｈ）〈６．２５クロック〉よりも大きくなる。すなわち、ステップＳ１２の判定が肯定的となり、ステップＳ１４に進む。ステップＳ１４において、カウント値ＣＮＴから選択間隔ＴＳ０を減算する。ここでは、３８（Ｈ）〈７クロック〉から３２（Ｈ）〈６．２５クロック〉を減算する。その結果は、０６（Ｈ）〈０．７５クロック〉となる。この差分は、余分にバスを占有したことに相当する。Ｎ７のタイミングでは０６（Ｈ）が図示されている。減算で得られた差分の０６（Ｈ）〈０．７５クロック〉が次の選択期間で利用される。
【００４２】
次いでステップＳ１５において、選択信号をセットして出力する。この選択信号に基づいて、情報選択部Ｃはバスの調停を行う。
【００４３】
上記の差分０６（Ｈ）〈０．７５クロック〉は、次の第２の選択期間Ｐ２で参照される。
【００４４】
先行する選択期間で得られた差分を次の選択期間において考慮する方法には２つある。これを、図４（ｂ）を参照して説明する。図４（ｂ）での表示は、１０進数（クロック単位）である。
【００４５】
第１の方法においては、第１の選択期間Ｐ１の最初に選択間隔設定部Ａでの初期設定値ＴＳ０の６．２５クロック〈３２（Ｈ）〉を比較基準値Ｔrefに設定する（Ｔref＝６．２５）。
【００４６】
第１の選択期間Ｐ１でのカウント値ＣＮＴが０から初めて１，２，３，４，５，６と進み、カウント値ＣＮＴ＝７クロックとなった時点で比較基準値Ｔref＝６．２５を超える。そこで、差分ΔＴをとる。ここでは、
ΔＴ＝ＣＮＴｂ−Ｔref＝７−６．２５＝０．７５
となる。さらに、新しい比較基準値Ｔrefを生成する。それは、初期設定値ＴＳ０から差分ΔＴを減算して得られる。
【００４７】
Ｔref＝ＴＳ０−ΔＴ＝６．２５−０．７５＝５．５
である。第２の選択期間Ｐ２では、５．５クロック〈２８（Ｈ）〉が比較基準値Ｔrefとなる。
【００４８】
第２の選択期間Ｐ２に移行する段階でカウント値ＣＮＴはゼロクリアされる。第２の選択期間Ｐ２でのカウント値ＣＮＴが０から初めて１，２，３，４，５と進み、カウント値ＣＮＴ＝６クロックとなった時点で比較基準値Ｔref＝５．５を超える。そこで、差分ΔＴをとる。ここでは、
ΔＴ＝ＣＮＴｂ−Ｔref＝６−５．５＝０．５
となる。さらに、新しい比較基準値Ｔrefを生成する。
【００４９】
Ｔref＝ＴＳ０−ΔＴ＝６．２５−０．５＝５．７５
である。第３の選択期間Ｐ３では、５．７５クロック〈２８（Ｈ）〉が比較基準値Ｔrefとなる。Ｎ１３の時点において、選択信号を出力する。
【００５０】
第３の選択期間Ｐ３に移行する段階でカウント値ＣＮＴはゼロクリアされる。第３の選択期間Ｐ３でのカウント値ＣＮＴが０から初めて１，２，３，４，５と進み、カウント値ＣＮＴ＝６クロックとなった時点で比較基準値Ｔref＝５．７５を超える。そこで、差分ΔＴをとる。ここでは、
ΔＴ＝ＣＮＴｂ−Ｔref＝６−５．７５＝０．２５
となる。さらに、新しい比較基準値Ｔrefを生成する。
【００５１】
Ｔref＝ＴＳ０−ΔＴ＝６．２５−０．２５＝６
である。Ｎ１９の時点において、選択信号を出力する。
【００５２】
第４の選択期間Ｐ４では、６クロック〈３０（Ｈ）〉が比較基準値Ｔrefとなる。この比較基準値Ｔrefの６クロックには端数がない。Ｎ２５の時点において、選択信号を出力する。
【００５３】
情報選択部Ｃが選択に要した合計時間は、Ｎ１からＮ７にかけては７クロック、Ｎ８からＮ１３にかけては６クロック、Ｎ１４からＮ１９にかけては６クロック、Ｎ２０からＮ２５にかけては６クロックとなる。このクロック数の合計は、
Ｔ１＋Ｔ２＋Ｔ３＋Ｔ４＝７＋６＋６＋６＝２５（クロック）
となる。
【００５４】
共有メモリＦが要した時間の合計は、
６．２５×４＝２５（クロック）
となり、両者は一致する。すなわち、複数のバスマスタの選択期間の合計時間が、その複数のバスマスタからの情報を処理する共有メモリＦでの処理時間の合計時間と一致することとなる。選択期間の平均値は、６．２５クロックとなる。
【００５５】
次に、第２の方法について説明する。第２の方法においては、差分を予め選択間隔設定部Ａの値から減算することをしない。
【００５６】
第２の選択期間Ｐ２では、差分（０．７５クロック）を新初期値として、カウント値ＣＮＴは１クロック単位でインクリメントしていく。カウント値ＣＮＴは、１．７５，２．７５…５．７５，６．７５と進み、比較基準値Ｔref＝選択間隔ＴＳ０（６．２５クロック）よりも大きくなって選択信号を出力する。
【００５７】
再度、カウント値ＣＮＴ（６．７５クロック）と選択間隔ＴＳ０（６．２５クロック）との差分（０．５クロック）が算出される。
【００５８】
第３の選択期間Ｐ２では、差分（０．５クロック）を新初期値として、カウント値ＣＮＴは１クロック単位でインクリメントしていく。カウント値ＣＮＴは、１．５，２．５…５．５，６．５と進み、比較基準値Ｔref＝選択間隔ＴＳ０（６．２５クロック）よりも大きくなって選択信号を出力する。
【００５９】
再度、カウント値ＣＮＴ（６．５クロック）と選択間隔ＴＳ０（６．２５クロック）との差分（０．２５クロック）が算出される。
【００６０】
第４の選択期間Ｐ４では、差分（０．２５クロック）を新初期値として、カウント値ＣＮＴは１クロック単位でインクリメントしていく。カウント値ＣＮＴは、１．２５，２．２５…５．２５，６．２５と進み、比較基準値Ｔref＝選択間隔ＴＳ０（６．２５クロック）と一致するに至り、選択信号を出力する。
【００６１】
すなわち、複数のバスマスタの選択期間の合計時間が、その複数のバスマスタからの情報を処理する共有メモリＦの処理時間の合計時間と一致することとなる。
【００６２】
第２の方法では、カウント値ＣＮＴをゼロクリアするのではなく、予め設定された値との差分を次のクロックカウンタの値に加える。すなわち、先の選択期間に生じた差分を次の選択期間で選択間隔設定部の値から減算する必要がない。したがって、第１の方法よりも効率が良い。リソース管理装置
以上のように、複数のバスマスタからの情報を選択するのに要する合計時間と、複数のバスマスタの情報を共有メモリＦで処理するのに要する合計時間とをほぼ一致させることができる。これにより、バスマスタおよび共有メモリＦを有効に活用することが可能になり、かつ、バッファに格納された情報量を抑制することが可能になる。
【００６３】
また、個々の選択期間と共有メモリの処理時間とがほぼ一致することにより、個々の選択期間においても、バスマスタおよび共有メモリＦの効率的な動作が可能になる。かつ、バッファに格納される情報量を少なくすることが可能で、必要な情報のバッファへの格納を確実なものとする。
【００６４】
なお、本実施の形態においては、ＳＤＲＡＭのように連続して固定長の情報を処理する場合について説明したが、本発明はこれに限定されるものではなく、可変長の情報を処理することも可能である。
【００６５】
このときは、選択間隔設定部Ａにおいては、次の選択期間において処理される情報量および次に使用するバスマスタの動作周波数等に基づいて上述した選択間隔ＴＳ０を再度調整することにより実現可能となる。
【００６６】
次に、本発明と従来技術とを比較する。
【００６７】
図５（ａ），５（ｂ）は従来方法を示し、図５（ｃ）は本発明の方法を示す。
【００６８】
共有メモリＦでバスマスタから転送された４ワードの情報を処理する時間は６．２５クロックである。
【００６９】
図５（ａ）の場合、情報選択部Ｃによりバスマスタの調停を行う時間は、６．２５クロック以上に設定する必要がある。少なくとも７クロックの間隔をおく必要がある。７クロックが終了するまでは、バスマスタが情報を転送することができない。また、共有メモリＦも６．２５クロックが終了した後、情報が転送されるまでは、処理ができない。結果として、選択期間合計は２８クロック、共有メモリＦの処理時間は２７．２５クロックとなる。
【００７０】
また、図５（ｂ）の場合、バスマスタの動作速度と共有メモリＦの動作速度の違いを吸収するバッファを用いているもので、連続動作が可能になり、選択期間合計は１６クロック、共有メモリＦの処理時間は２５クロックとなる。
【００７１】
これに対して、本発明によれば、上述したように、第１の選択期間Ｐ１が７クロック、第２の選択期間Ｐ２が６クロック、第３の選択期間Ｐ３も６クロック、第４の選択期間Ｐ４も６クロックとなる。情報選択部Ｃの所要の合計時間は２５クロックである。共有メモリＦでの処理の合計時間は２５クロックである。第１の選択期間Ｐ１から第２の選択期間Ｐ２に移るときの差分の０．７５クロックを加えると、実質的には２５．７５クロックとなる。
【００７２】
このことから明らかなように、本発明によれば、バスマスタおよび共有メモリを有効に活用することが可能になる。併せて、バッファに格納された情報量を抑制することが可能で、必要な情報が格納できないという問題を解消できる。
【００７３】
次に、複数のバスマスタと情報選択部Ｃにおける情報の選択との関係について、図６を参照して説明する。ここで、バスマスタＭ１のバスの優先順位が第１位であるとする。
【００７４】
Ｔ２以前では、バスマスタＭ１から共有メモリＦにおいて処理する情報が情報選択部Ｃに出力されている。他のバスマスタからの情報はない。
【００７５】
次に、Ｔ２において、情報選択部ＣがバスマスタＭ１からの情報を確認する。一方、Ｔ２からＴ３の間において、バスマスタＭ２が情報を出力する。
【００７６】
次に、Ｔ３において、情報選択部Ｃは、バスマスタＭ１とバスマスタＭ２について選択を行い、優先順位に基づいてバスマスタＭ１に対して選択信号を送る。
【００７７】
このように、第１の選択期間Ｐ１においてはバスマスタＭ１からの情報を選択する。１選択期間の処理情報量の限界のため、バスマスタＭ２に対しては選択信号を出力できない。従って、情報選択部Ｃは、第１の選択期間Ｐ１では、Ｔ４からＴ１０の間に、どのバスマスタに対しても選択信号を出力しない非選択期間を設ける。これにより、情報選択部Ｃは、バスマスタＭ１のみからの情報を選択することが可能になる。
【００７８】
（実施の形態２）
図７は、実施の形態２にかかるリソース管理装置２００を含むシステムの構成図である。このシステムにおいては、実施の形態１の構成に加えて、コマンドバッファＤ１とタイミング調整部Ｂとが接続され、コマンドバッファＤ１からの制御信号を用いてタイミング調整部Ｂの選択信号の生成を制御するように構成してある。その他の構成については図１と同様であるので、同一部分に同一符号を付し、説明を省略する。
【００７９】
コマンドバッファＤ１は、ＦＩＦＯ（First In First Out）構造によって構成され、情報選択部Ｃにより選択されたバスマスタからの情報を複数格納することができる。すなわち、先に選択された情報の処理が終了する前に、他のバスマスタから転送された情報を格納することが可能である。
【００８０】
タイミング調整部Ｂには、コマンドバッファＤ１の格納情報量Ｑｃに関する所定の閾値Ｑthが設けられ、閾値Ｑthに基づいて選択間隔ＴＳ０を調整する。これにより、複数のバスマスタおよび共有メモリＦの効率的な動作が可能となる。また、コマンドバッファＤ１にも適切な数の情報量が格納される。なお、閾値Ｑthの設定箇所はタイミング調整部Ｂ以外でもよい。
【００８１】
タイミング調整部Ｂには、第１の選択間隔ＴＳ０ａと第２の選択間隔ＴＳ０ｂとがある。第２の選択間隔ＴＳ０ｂは第１の選択間隔ＴＳ０ａよりも長いものに設定されている。
【００８２】
次に、以上のように構成された本実施の形態のリソース管理装置の動作を図８のフローチャートに従って説明する。
【００８３】
ステップＳ２１において、タイミング調整部Ｂがクロックの立ち上がりエッジを検出すると、カウント値ＣＮＴをインクリメントする。
【００８４】
次いでステップＳ２２において、タイミング調整部Ｂは、コマンドバッファＤ１の格納情報量Ｑｃを閾値Ｑthと比較する。
【００８５】
格納情報量が閾値Ｑth以下であるときは、ステップＳ２３に進み、格納情報量Ｑｃが閾値Ｑthを超えるときは、ステップＳ２４に進む。
【００８６】
ステップＳ２３において、実施の形態１と同様に、現在のカウント値ＣＮＴと第１の選択間隔ＴＳ０ａとを比較する。この結果、カウント値ＣＮＴが第１の選択間隔ＴＳ０ａよりも小さいときは、ステップＳ２５に進み、選択信号を出力することなく処理を終了する。カウント値ＣＮＴが第１の選択間隔ＴＳ０ａ以上となったときは、ステップＳ２６に進んで、カウント値ＣＮＴをゼロクリアした上で、次いでステップＳ２７で選択信号を出力する。
【００８７】
一方、ステップＳ２２の判断で格納情報量Ｑｃが閾値Ｑthを超えると、ステップＳ２４に進む。ステップＳ２４では、現在のカウント値ＣＮＴと第２の選択間隔ＴＳ０ｂとを比較する。この結果、カウント値ＣＮＴが第２の選択間隔ＴＳ０ｂよりも小さいときは、ステップＳ２５に進み、選択信号を出力することなく処理を終了する。カウント値ＣＮＴが第２の選択間隔ＴＳ０ｂ以上となったときは、ステップＳ２６に進んで、カウント値ＣＮＴをゼロクリアし、次いでステップＳ２７で選択信号を出力する。
【００８８】
以上のように、コマンドバッファＤ１の格納情報量Ｑｃが少ないときは、短い第１の選択間隔ＴＳ０ａを基準に比較することにより、共有メモリＦの使用効率を高めることができる。
【００８９】
一方、格納情報量Ｑｃが多いときは、より長い第２の選択間隔ＴＳ０ｂを基準に比較する。すなわち、格納情報量Ｑｃが多めになったときは、選択期間を長めにして余裕をもたせている。これは、任意の時刻における、最優先のバスマスタからの情報を確実にコマンドバッファＤ１に格納できるようにするためである。
【００９０】
以上のように、本実施の形態においては、このように選択間隔ＴＳ０を調整することにより、複数のバスマスタおよび共有メモリＦの効率的な動作が可能となり、かつ、コマンドバッファＤ１にも適切な大きさの情報量を格納できる
図９は変形の実施の形態のリソース管理装置３００を示す。メモリコントローラＥからの制御信号によって選択間隔設定部Ａでの選択間隔ＴＳ０を可変にするものである。その制御信号としては、メモリコントローラＥでのプリチャージやリフレッシュなどによる余分なクロックの発生を表す信号が考えられる。その他の構成については図１と同様であるので、同一部分に同一符号を付し、説明を省略する。
【００９１】
制御信号を入力したタイミング調整部Ｂは、選択間隔ＴＳ０を長めに設定する。これにより、複数のバスマスタおよび共有メモリＦを効率的に使用することができる。また、コマンドバッファＤ１に適切な情報量を格納することが可能になる。
【００９２】
例えば、ＳＤＲＡＭのようにアクセス時間が変動するような共有メモリＦを用いた場合でも、コマンドバッファＤ１に蓄積された情報量あるいはアクセスするメモリコントローラＥの情報を用いて選択間隔ＴＳ０を調整することにより、コマンドバッファＤ１に適切な情報量を格納することができる。
【００９３】
コマンドバッファＤ１でのオーバーフローを防止し、かつ、コマンドバッファＤ１での格納情報量が抑制されることも防止できる。すなわち、マスタに対するバンド幅を保証しながら、メモリの使用効率を高めることができる。
【００９４】
なお、ある選択期間において、バッファでの格納情報量Ｑｃが閾値Ｑthよりも多く、かつ、優先順位が最優先のバスマスタからの情報が転送されていないときは、現在以外の情報の選択を禁止する構成としてもよい。
【００９５】
（実施の形態３）
本実施の形態は、バスまたはバスマスタの優先順位との関係を考慮したものである。情報選択部Ｃは、バスの優先順位に基づいて情報を選択するように構成されている。構成図については、上記のものが援用される。
【００９６】
動作を図１０のフローチャートに従って説明する。
【００９７】
ステップＳ３１において、情報選択部Ｃは、図１１に示す各バスの優先順位を示す選択情報を確認し、最優先バスマスタの指定が行われているか否かを判定する。この判定は、バス毎およびスロット毎に行われる。例えば、スロット０では“１”を指定のバスＡに最優先マスタがあり、スロット６では全てのバスが“０”のため最優先マスタはないと判定される。
【００９８】
最優先のバスマスタの指定があるときは、ステップＳ３２に進んで、その最優先バスマスタが情報を出力しているか否かを判定する。最優先のバスマスタが情報を出力しているときは、ステップＳ３３に進んで、その情報を選択し、バッファに格納する。
【００９９】
一方、ステップＳ３１の判定で最優先のバスマスタの指定がないとき、およびステップＳ３２の判定で最優先のバスマスタが情報を出力していないときは、ステップＳ３４に進んで、コマンドバッファＤ１の格納情報量Ｑｃと所定の閾値Ｑthとを比較し、格納情報量Ｑｃが閾値Ｑthより大きいときは、情報の選択を行わずに処理を終了する。一方、格納情報量Ｑｃが閾値Ｑth以下のときは、固定的な優先順位に従って情報の選択を行い、選択した情報をバッファ部Ｄに格納する。
【０１００】
以上のように情報選択部Ｃは、バッファ部Ｄに蓄積された情報量が多いときは、バッファ部Ｄへの情報の格納を禁止し、バッファ部Ｄがあふれることを防止する。また、最優先のバスマスタを設定した選択期間では情報が選択されるため、メモリへのアクセスバンド幅が保証される。
【０１０１】
以上のように本実施の形態によれば、バッファ部Ｄの状況に応じて情報の選択を行うか否かを切替えることにより、情報選択のための比較基準値がメモリコントローラＥのコマンド処理間隔を一時的に超えた場合にも、コマンドバッファＤ１があふれることを防止できる。これにより、選択間隔を従来よりも小さく設定でき、メモリコントローラＥのコマンド処理間隔が小さくなった場合でも、メモリの使用効率を高め、システムの性能を向上することができる。
【０１０２】
なお、本実施の形態ではコマンドバッファＤ１の格納情報量が多いときは、最優先バスを持たない調停タイミングではコマンドを選択しないとしているが、格納情報量に応じてコマンドの転送サイズに制限を加えるなどとしてもよい。
【０１０３】
ここで、上述したバスマスタの優先順位としては、例えば、バスマスタがデイジチェイン方式により配線されている場合に、情報選択部Ｃに対する接続経路によって優先順位が決定してもよい。あるいは、図１１に示すように、選択期間ごとに最優先のバスまたはバスマスタを変化させることにより、各バスおよびバスマスタがバス使用権を占有する時間がほぼ均等になるように調整するのでもよい。
【０１０４】
なお、上述したバッファ部Ｄの格納情報量Ｑｃと閾値Ｑthとの比較は、バッファ部Ｄに情報が格納された際のほか、所定期間ごとに行うのでもよい。
【０１０５】
（実施の形態４）
本実施の形態は、バスマスタからの転送情報量に上限（最大転送情報量）が決められているリソース管理装置に関するものである。
【０１０６】
優先順位が最優先のバスマスタからの情報量が最大転送情報量以下である場合に、最優先の優先順位以外で優先順位が高く、かつ、合計の情報量が最大転送情報量以下となるような別のバスマスタからの情報を選択する。これにより、最大転送情報量を確保し、効率的な処理を行うことが可能になる。
【０１０７】
図１２は、情報選択部Ｃのクロック毎の動作を表したフローチャートである。残り転送サイズは、情報選択部Ｃにあるレジスタに格納され、初期設定時は０である。
【０１０８】
ステップＳ４１において、情報選択部Ｃはクロックの立ち上がりエッジを検出すると、選択信号がセットされているか否かを判断する。
【０１０９】
選択信号がセットされているときは、ステップＳ４２に進んで、残り転送サイズを初期化する。例えば、１つの選択期間当たりの最大転送ワード数（例えば４ワード）に設定する。
【０１１０】
次いでステップＳ４３において、その選択期間内で情報選択部Ｃにより選択された情報をコマンドバッファＤ１およびデータバッファＤ２に格納する。このとき、選択した情報の転送サイズが最大転送ワード数を超えるときは、最大転送ワード数の情報に分割して処理する。
【０１１１】
一方、ステップＳ４１の判断で選択信号がリセットされているときは、ステップＳ４４に進んで、残り転送サイズが０より大きいかを確認し、０のときは、その選択期間の処理を終了する。
【０１１２】
一方、残り転送サイズが０より大きいときは、ステップＳ４５に進む。ステップＳ４６において、その選択期間での優先順位に従って次の優先順位の情報を選択し、コマンドバッファＤ１およびデータバッファＤ２に格納する。ただし、残り転送サイズよりも大きな転送サイズの情報は選択対象から除外する。
【０１１３】
情報の格納が済むと、ステップＳ４６に進み、残り転送サイズを更新する。すなわち、残り転送サイズからコマンドバッファＤ１およびデータバッファＤ２に格納した情報の転送サイズを減じる。選択した情報がないときは、残り転送サイズを０にする。
【０１１４】
以上により、情報選択部Ｃは、選択期間当たりの最大転送ワード数より転送サイズの小さな情報を受け付けたときは、同じ選択期間に複数の情報を受けることができる。同じ選択期間に受け付けた複数の情報の転送サイズの合計は、選択期間当たりの最大転送ワード数を超えない。連続した情報を発行するマスタに対しては、上記同様に、最優先順位に設定した選択期間で選択信号が出力されるため、メモリへのアクセスバンド幅が保証される。
【０１１５】
以上のように本実施の形態によれば、転送サイズの小さなアクセスを受け付けたときは、ひとつの選択期間の間に複数のアクセスを受け付ける。これにより、連続アクセスを行うバスマスタに対するメモリバンド幅を保証し、その使用効率ひいてはシステム全体の性能を高めることができる。
【０１１６】
（実施の形態５）
図１３のリソース管理装置４００は、アクセス予測部Ｇが情報選択部Ｃとバッファ部Ｄの間に接続されている。アクセス予測部Ｇは、予測コマンドＧ１と先出しコマンドＧ２により構成されている。その他の構成については図１と同様であるので、同一部分に同一符号を付し、説明を省略する。
【０１１７】
アクセス予測部Ｇは、過去にバスマスタＭ１〜Ｍ５から転送された読み出しに関する情報を基にコマンドを予測する（予測コマンド）。予測コマンドＧ１は、その予測コマンドを格納する。先出しコマンドＧ２は、予測を通じて既にバッファ部Ｄに格納された情報（先出しコマンド）を格納する。情報選択部Ｃは、選択した情報をアクセス予測部Ｇに転送する。本実施の形態では、情報選択部Ｃは、バスマスタＭ１〜Ｍ５のいずれも情報を発行していないときは、予測要求コマンドをアクセス予測部Ｇに送出する。
【０１１８】
アクセス予測部Ｇの動作を図１４に示すフローチャートに従って説明する。これは、アクセス予測部Ｇのサイクル毎の動作を表す。初期化時には予測コマンドＧ１と先出しコマンドＧ２はともにクリアされている。
【０１１９】
ステップＳ５１において、アクセス予測部Ｇは、まず情報選択部Ｃに情報（アクセスコマンド）が転送されたか否か判定する。情報が転送されているときは、ステップＳ５２に進んで、コマンドがが書き込みコマンドか読み出しコマンドかを判定する。書き込みコマンドのときは、ステップＳ５３に進んで、その情報をそのままコマンドバッファＤ１に格納する。一方、読み出しコマンドのときは、ステップＳ５４に進んで、その読み出しコマンドが先出しコマンドＧ２にあるコマンド（先出しコマンド）と一致するか否かを判定する。
【０１２０】
一致しないときは、ステップＳ５５に進んで、バッファ部Ｄにミスヒット信号ＳＭを出力し、次いでステップＳ５６で、その読み出しコマンドをコマンドバッファＤ１に格納し、ステップＳ５７で先出しコマンドＧ２をクリアし、ステップＳ５８で予測コマンドＧ１を更新する。このとき、予測コマンドＧ１は、コマンドバッファＤ１に格納した読み出しコマンドにより読み出されるアドレスを基準とし、その次のアドレスから始まる読み出しコマンドに更新する。更新の読み出しコマンドは同じアクセスサイズとする。これにより、有効な予測が可能になる。
【０１２１】
また、ステップＳ５４の判定で読み出しコマンドが先出しコマンドに一致するときは、ステップＳ５９に進んで、次のアドレスからのコマンドに先出しコマンドＧ２を更新し、ステップＳ６４では、更新した先出しコマンドをコマンドバッファＤ１に格納する。これにより、連続したアドレスを指定するときは、有効な先出しコマンドをコマンドバッファＤ１に格納することが可能になる。
【０１２２】
一方、ステップＳ５１において、全てのバスマスタから情報が転送されていないときは、ステップＳ６０に進んで、予測要求コマンドがあるか否かを判定し、予測要求コマンドがないときは、そのまま処理を終了する。
【０１２３】
また、予測要求コマンドがあるときは、ステップＳ６１に進んで、次に予測コマンドがあるか否かを判定し、ないときは、そのまま処理を終了する。一方、有効な読み出しコマンドが設定されているときは、ステップＳ６２に進んで、先出しコマンドＧ２に予測コマンドＧ１の予測コマンドを格納し、ステップＳ６３で予測コマンドＧ１をクリアし、ステップＳ６４で先出しコマンドＧ２の先出しコマンドをコマンドバッファＤ１に格納する。
【０１２４】
以上により、情報選択部Ｃは、全てのバスマスタからのバスの使用権を要求するコマンドが出力されていない場合にのみ、共有メモリＦから所望の情報をプリフェッチすることが可能になる。
【０１２５】
これにより、いずれかのバスマスタが共有メモリＦを使用したい場合に、プリフェッチが実行されていることから、共有メモリＦにおけるそのバスマスタからの処理を確実なものにする。結果として、システムの性能を向上することができる。
【０１２６】
なお、ここで所望の情報とは、複数のバスマスタが頻繁に使用するコマンドまたはデータである。
【０１２７】
なお、本実施の形態では、直前のコマンドに対して予測を行っているが、バスマスタの性質に応じて特定のバスマスタについてのみ予測を行ったり、バスマスタ毎に予測を行い、どのバスマスタからもコマンドがない場合に最優先マスタに対する予測情報を発行したりするなどの方法も可能である。
【０１２８】
なお、本実施の形態では１つの情報の予測コマンドを発行したが、複数の情報を予測して発行しデータを読み出すことも可能である。
【０１２９】
また、予測コマンドの発行方法は本実施の形態に限られるものではなく、バッファ部Ｄに蓄積されたコマンド数が少なくなった場合に、予測コマンドを発行するなどの方法でもよい。
【０１３０】
また、先読みのデータが読み出される前に、同じアドレスに書き込みが行われたときは、データの一致性を保つため、上書きするかデータ破棄をする。
【０１３１】
（実施の形態６）
本実施の形態では、複数のバスマスタＭ１，Ｍ２，Ｍ３からのリクエストを調停するバス調停部Ｈを備えている。
【０１３２】
図１５に示すように、バスマスタＭ１，Ｍ２，Ｍ３は、バスの使用権を要求するためのリクエストを出力するバス要求出力部ＢＲ１，ＢＲ２，ＢＲ３と、許可信号入力部Ｂｇ１，Ｂｇ２，Ｂｇ３を備えている。バス要求出力部ＢＲ１，ＢＲ２，ＢＲ３は、バス調停部Ｈにおいてそれぞれ個別に対応するバス要求入力部Ｂｒ１，Ｂｒ２，Ｂｒ３に接続されている。
【０１３３】
また、バス調停部Ｈは、バスの使用権を付与するための許可信号を出力する許可信号出力部ＢＧ１，ＢＧ２，ＢＧ３と、バス要求入力部Ｂｒ１，Ｂｒ２，Ｂｒ３を備えている。許可信号出力部ＢＧ１，ＢＧ２，ＢＧ３は、それぞれのバスマスタの許可信号入力部Ｂｇ１，Ｂｇ２，Ｂｇ３に接続されている。
【０１３４】
この構成により、複数のバスマスタＭ１，Ｍ２，Ｍ３からのリクエストが競合した場合に、バス調停部Ｈが１つのバスマスタに許可信号を出力することにより、１つのバスマスタのみがバスを占有することが可能になる。
【０１３５】
次に、動作を説明する。図１６は、複数のバスマスタＭ１，Ｍ２，Ｍ３からのリクエストをバス調停部Ｈが調停する場合について示している。ここで、バスマスタＭ１の優先順位はバスマスタＭ２よりも高いとする。
【０１３６】
まず、Ｔ２以前に、バスマスタＭ１からバスの使用に関するリクエストがバス調停部Ｈに出力されており、これに対して、バスマスタＭ２からはバスの使用に関するリクエストはバス調停部Ｈには入力されていない。次に、Ｔ２において、バス調停部ＨがバスマスタＭ１からのリクエストを確認する。一方、Ｔ２からＴ３の間において、バスマスタＭ２がリクエストを出力する。
【０１３７】
次に、Ｔ３において、バス調停部Ｈは、バスマスタＭ１およびバスマスタＭ２からのリクエストを調停し、優先順位を考慮して、バスマスタＭ１に対して許可信号が送る。これにより、許可信号を受信したバスマスタＭ１は、バスの使用が可能となり、バスを介してコマンドを送出する。一方、Ｔ３において、バスマスタＭ２からのバスリクエストが入力されたことをバス調停部Ｈが確認する。しかし、バスマスタＭ１に対して許可信号を出力し、第１のバス占有期間においてバスマスタＭ１にバス使用権を付与しているため、バスマスタＭ２に対しては、すぐに許可信号を出力することはしない。
【０１３８】
その後、バスマスタＭ１は、バスの使用が不要になったと判断した場合に、自発的にリクエストを取り下げる。このリクエストの取り下げたことを伝える信号が、Ｔ６の時点で、バス調停部Ｈに入力される。
【０１３９】
次に、Ｔ７において、バス調停部Ｈは、バスマスタＭ１に対する許可信号を取り下げる。しかし、バス調停部Ｈは、Ｔ３からＴ１０の第１のバス占有期間は、他のバスマスタにバスの使用権を占有させないようにするために、Ｔ７からＴ１０の間は、どのバスマスタに対しても許可信号を出力しない不許可期間を設ける。このことにより、第１のバス占有期間となるＴ３からＴ１０までは、第１のバスマスタＭ１以外のバスマスタに許可信号を出力しないため、事実上、バスマスタＭ１がバスを占有することが可能になる。
【０１４０】
一方、バスマスタＭ２からはＴ２以降リクエストが出力され続けている。そこで、第１のバス占有期間が終了したＴ１０において、バス調停部Ｈにより、バスマスタＭ２に対して許可信号が出力することにより、バスマスタＭ１からバスマスタＭ２へとバスの使用権が変更される。この後、バスマスタＭ２は、許可信号を受けているＴ１０からＴ１４の間、バスを介してコマンドを出力することが可能になる。
【０１４１】
一方、バスマスタＭ１は、リクエストを取り下げた後、再度Ｔ１４までにリクエストを出力する。上述したように、バスマスタＭ１はバスマスタＭ２よりもバスの使用権に関する優先順位が高いため、バスマスタＭ１からのリクエストが出力されたときは、バス調停部ＨはバスマスタＭ２への許可信号を取り下げる。これにより、第３のバス占有期間であるＴ１６からＴ２２においては、バスマスタＭ１がバスを占有することが可能になる。
【０１４２】
一方、Ｔ１４において、バス調停部Ｈは、バスマスタＭ２に対する許可信号を取り下げる。この場合も、上述した第１のバス占有期間と同様に、Ｔ１４で許可信号が取り下げられた後も、どのバスマスタに対しても許可信号を送らない不許可時間をＴ１４からＴ１６の間に設ける。このことにより、第２のバス占有期間となるＴ１０からＴ１６までは、第２のバスマスタＭ２以外のバスマスタに許可信号を出力することはしないため、事実上、バスマスタＭ２がバスを占有することが可能になる。
【０１４３】
次に、バスマスタＭ１は、Ｔ１６において、バス調停部Ｈが出力した許可信号を受け、バスの占有を開始する。この後、バスマスタＭ１は、上述した第１または第２のバス占有期間と同様に、バスの占有が認められるＴ１６からＴ２０までバスを介してコマンドを転送することが可能になる。このことにより、第３のバス占有期間となるＴ１６からＴ２２までは、バス調停部Ｈは、バスマスタＭ１以外のバスマスタに許可信号を出力することはしないため、事実上、バスマスタＭ１がバスを占有することが可能になる。
【０１４４】
さらに、バスマスタＭ１はＴ１４から継続して、また、バスマスタＭ２はＴ１９から継続してバスのリクエストを出力し続けている。上述したように、バスマスタＭ１はバスマスタＭ２よりもバスの使用権に関する優先順位が高いため、バスマスタＭ１からのリクエストを優先する。従って、第３のバス占有期間（Ｔ１６〜Ｔ２２）に引き続いて、第４のバス占有期間であるＴ２２からＴ２８においても、バスマスタＭ１に対して許可信号を出力する。これにより、第４のバス占有期間においてバスマスタＭ１がバスを介してコマンドを転送することが可能になる。
【０１４５】
なお、図１６においては、一度バスマスタＭ１に対する許可信号を取り下げ、再度、バスマスタＭ１に対して許可信号を出力する動作について説明しているが、一度バスマスタＭ１に対する許可信号を取り下げることなく、継続して許可信号を出力することにより、連続してバスマスタＭ１にバスの使用権を付与することも可能である。
【０１４６】
なお、上述した説明においては、バス調停部Ｈが許可信号を出力するタイミングと、バス占有期間が一致していればよく、バスマスタから出力されたリクエストに対してバス調停部Ｈは、許可期間内もしくは不許可期間内のいずれの期間においても、調停を行うことは可能である。
【０１４７】
なお、実施の形態１においては、説明の簡単化のため、４ワードを処理する場合について説明したが、本発明はこれに限定されるものではなく、可変長のコマンドを処理することも可能である。この場合にも、適切なバス占有期間を調整することにより、上述した内容と同様の効果を奏することが可能である。
【０１４８】
また、上記では、複数のバスマスタのそれぞれが同じ動作周波数において動作している場合について説明したが、本発明はこれに限定されるものではない。それぞれの動作周波数が異なる場合であっても、各バスマスタの動作周波数と共有メモリＦの動作周波数との動作周波数の違いを考慮してバス占有期間を設定することにより、本発明を実現することが可能になる。
【０１４９】
このときは、バス占有期間設定のレジスタには、各バスマスタの動作周波数と、共有メモリＦの動作周波数と、１ワードを処理するためのクロック数の違いを格納する。また、このレジスタに各バスマスタおよび共有メモリＦの動作周波数を格納し、その後に、１ワードを処理するためのクロック数の違いを算出する構成としてもよい。
【０１５０】
また、複数のバスマスタの占有が終了した時点においてそれぞれの処理の合計時間をほぼ一致させること以外に、さらに、各バス占有期間と各共有メモリの処理時間とをほぼ一致させるように構成してもよい。この場合、各バス占有期間においても、バスマスタおよび共有メモリの効率的な動作が可能になり、かつ、コマンドバッファに格納されるコマンド数を少なくすることが可能になる。
【産業上の利用可能性】
【０１５１】
本発明のリソース管理装置は、バスマスタから転送される処理情報を処理するタイミングを調整することにより、効率的にバスマスタや共有リソースを使用することが可能になるという効果を有し、複数のバスマスタからの共有リソースへのアクセス制御を行う等の技術として有用である。
【図面の簡単な説明】
【０１５２】
【図１】従来のリソース管理装置の情報転送時間と選択間隔と共有リソースの処理時間との関係を示す図
【図２】本発明の実施の形態１におけるシステムの構成を示すブロック図
【図３】本発明の実施の形態１のシステムのフローチャート
【図４】本発明の実施の形態１のクロックカウンタの動作を示す図
【図５】本発明の実施の形態１の情報転送時間と選択間隔と共有リソースの処理時間との関係を示す図
【図６】本発明の実施の形態１のタイミング調整部の動作を示す図
【図７】本発明の実施の形態２のシステムの構成を示すブロック図
【図８】本発明の実施の形態２のシステムのフローチャート
【図９】本発明の実施の形態２のシステムの構成を示すブロック図
【図１０】本発明の実施の形態３のシステムのフローチャート
【図１１】本発明の実施の形態３の優先順位の一例を示す図
【図１２】本発明の実施の形態４のシステムのフローチャート
【図１３】本発明の実施の形態５のシステムの構成を示すブロック図
【図１４】本発明の実施の形態５のシステムのフローチャート
【図１５】本発明の実施の形態６のシステムの構成を示すブロック図
【図１６】本発明の実施の形態６のシステムのクロックごとの動作を示す図
【符号の説明】
【０１５３】
１００，２００，３００，４００  リソース管理装置
Ａ  選択間隔設定部
Ｂ  タイミング調整部
Ｃ  情報選択部
Ｄ  バッファ部
Ｄ１  コマンドバッファ
Ｄ２  データバッファ
Ｅ  メモリコントローラ
Ｆ  メモリ（共有リソース）
Ｇ  アクセス予測部
Ｇ１  予測コマンド
Ｇ２  先出しコマンド
Ｈ  バス調停部
Ｍ１，Ｍ２，Ｍ３，Ｍ４，Ｍ５  バスマスタ
【図１】
2005100379.tif 000003
【図２】
2005100379.tif 000004
【図３】
2005100379.tif 000005
【図４】
2005100379.tif 000006
【図５】
2005100379.tif 000007
【図６】
2005100379.tif 000008
【図７】
2005100379.tif 000009
【図８】
2005100379.tif 000010
【図９】
2005100379.tif 000011
【図１０】
2005100379.tif 000012
【図１１】
2005100379.tif 000013
【図１２】
2005100379.tif 000014
【図１３】
2005100379.tif 000015
【図１４】
2005100379.tif 000016
【図１５】
2005100379.tif 000017
【図１６】
2005100379.tif 000018