(57)【要約】【課題】  複数のマスタが共有リソースにアクセスするデータ処理システムにおいて、各マスタのアクセス帯域幅を保証しつつアクセス遅延をリアルタイムに低減する。【解決手段】  各々アクセス競合を調停するための最優先順位情報を有する複数のスロットを持つ帯域幅情報１２０と、複数のマスタ１０１，１０２，１０３のうち共有リソースであるメモリ１０５へのアクセス遅延を低減したいマスタを優先マスタとして指定するための優先マスタ情報１２１とを調停情報１１３として持つ。調停部１１４は、所定の調停タイミング毎に、帯域幅情報１２０のスロットを切り替えながらアクセス競合を調停する際、優先マスタ情報１２１で指定された優先マスタからアクセスリクエストがある場合に、帯域幅情報１２０のスロットの順番を入れ替えることにより優先マスタからメモリ１０５へのアクセスを優先的に許可する。【選択図】  図１
2005258867.tif 000002
【特許請求の範囲】
【請求項１】
複数のマスタが共有リソースにアクセスするデータ処理システムにおけるリソース管理装置であって、
前記複数のマスタが前記共有リソースにアクセスする際のアクセス競合を調停するタイミングを生成する調停タイミング生成部と、
各々前記アクセス競合を調停するための最優先順位情報を有する複数のスロットを持つ帯域幅情報と、前記複数のマスタのうち前記共有リソースへのアクセス遅延を低減したいマスタを優先マスタとして指定するための優先マスタ情報とを持つ調停情報と、
前記アクセス競合を前記調停情報に従って調停する調停部とを備え、
前記調停部は、前記調停タイミング生成部が生成する調停タイミング毎に、前記帯域幅情報の前記スロットを切り替えながら前記アクセス競合を調停する際、前記優先マスタからアクセスリクエストがある場合に、前記帯域幅情報の前記スロットの順番を入れ替えることにより前記優先マスタから前記共有リソースへのアクセスを優先的に許可することを特徴とするリソース管理装置。
【請求項２】
複数のマスタが共有リソースにアクセスするデータ処理システムにおけるリソース管理装置であって、
前記複数のマスタが前記共有リソースにアクセスする際のアクセス競合を調停するタイミングを生成する調停タイミング生成部と、
各々前記アクセス競合を調停するための最優先順位情報を有する複数のスロットを持つ帯域幅情報と、前記複数のマスタのうち前記共有リソースへのアクセス遅延を低減したいマスタを優先マスタとして指定するための優先マスタ情報と、前記優先マスタから前記共有リソースへのアクセス遅延を低減するための帯域幅情報である優先マスタ用帯域幅情報とを持つ調停情報と、
前記アクセス競合を前記調停情報に従って調停する調停部とを備え、
前記調停部は、前記調停タイミング生成部が生成する調停タイミング毎に、前記帯域幅情報の前記スロットを切り替えながら前記アクセス競合を調停する際、前記優先マスタからアクセスリクエストがある場合に、前記優先マスタ用帯域幅情報を前記帯域幅情報の対応するスロットに挿入することにより前記優先マスタから前記共有リソースへのアクセスを優先的に許可することを特徴とするリソース管理装置。
【請求項３】
複数のマスタが共有リソースにアクセスするデータ処理システムにおけるリソース管理装置であって、
前記複数のマスタが前記共有リソースにアクセスする際のアクセス競合を調停するタイミングを生成する調停タイミング生成部と、
各々前記アクセス競合を調停するための最優先順位情報を有する複数のスロットを持つ帯域幅情報と、前記複数のマスタのうち前記共有リソースへのアクセス遅延を低減したいマスタを優先マスタとして指定するための優先マスタ情報とを持つ調停情報と、
前記優先マスタの一定期間内のアクセス回数を制限するためのアクセスカウンタと、
前記アクセス競合を前記調停情報に従って調停する調停部とを備え、
前記調停部は、前記調停タイミング生成部が生成する調停タイミング毎に、前記帯域幅情報の前記スロットを切り替えながら前記アクセス競合を調停する際、前記優先マスタからアクセスリクエストがある場合に、前記アクセスカウンタにより前記優先マスタのアクセス回数を制限しつつ前記優先マスタから前記共有リソースへのアクセスを優先的に許可することを特徴とするリソース管理装置。
【請求項４】
複数のマスタが共有リソースにアクセスするデータ処理システムにおけるリソース管理装置であって、
前記複数のマスタが前記共有リソースにアクセスする際のアクセス競合を調停するタイミングを生成する調停タイミング生成部と、
各々前記アクセス競合を調停するための前記複数のマスタの一定期間内のアクセス回数を指定する帯域幅情報を持つ調停情報と、
前記各マスタの一定期間内のアクセス回数を制限するためのアクセスカウンタと、
前記アクセス競合を前記調停情報に従って調停する調停部とを備え、
前記調停部は、前記調停タイミング生成部が生成する調停タイミング毎に、前記複数のマスタのいずれかからアクセスリクエストがある場合、前記アクセスカウンタにより前記各マスタのアクセス回数を制限しつつ当該アクセスリクエストを出したマスタから前記共有リソースへのアクセスを許可することを特徴とするリソース管理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のマスタが共有リソースにアクセスするデータ処理システムにおけるリソース管理装置に関するものである。
【背景技術】
【０００２】
近年、プロセッサ、ＤＳＰ（Digital Signal Processor）、ＤＭＡ（Direct Memory Access）等の複数のマスタと、メモリ、入出力デバイス等のリソースとが複数のバスで接続されるシステムＬＳＩにおいて、小面積、低消費電力で、効率的に処理が可能であることが重要となっている。そのためには、リソースを共有し、効率的なアクセス制御を実現することが重要である。
【０００３】
リソースを共有するためのアクセス制御では、複数のマスタから送られるアクセスリクエストの衝突を防止する目的で、リソースの使用権を調停する必要がある。このとき、各マスタのアクセス条件は多様であるため、マスタ毎のアクセス条件に対応可能な柔軟な調停が必要となる。柔軟な調停を行う従来のアクセス制御装置としては、次のものが存在した。
【０００４】
第１の従来技術においては、複数の入出力デバイスによる１つのバスに対するアクセスを調停するバス調停システムにおいて、一定の時間毎に最優先デバイスを切り替え、最優先デバイスがバスを使用しない場合又は最優先デバイスを指定していない期間には公平なラウンド・ロビンスキーム等に従って調停を行う（特許文献１参照）。
【０００５】
第２の従来技術においては、複数のマスタから共有リソースへのアクセスにおいて、各マスタからのアクセスを事前に割り当てることによりアクセス帯域幅を保証する（特許文献２参照）。
【０００６】
第３の従来技術においては、複数のマスタから１つのバスに対するアクセスを制御するバス調停システムにおいて、バスの動作サイクル単位である１バスサイクル毎に、優先順位を切り替えて次の１バスサイクル単位のみにバス使用権を与える（特許文献３参照）。
【特許文献１】特開平８−８３２５４号公報
【特許文献２】特表２００１−５１６１００号公報
【特許文献３】特開平１０−２２８４４６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上記第１の従来技術においては、各デバイスに最優先にバスを割り当てる時間を設定できるが、バスを使用して行われるバスサイクルが複数クロックかかる場合には、一度開始したアクセスが最優先デバイスを切り替えても停止せず、最優先で調停されるべきデバイスのアクセスが阻害されてしまう。
【０００８】
上記第２の従来技術においては、各マスタのアクセスに応じて適切な期間、バスを割り当てることができるが、各マスタから送られるアクセスリクエストが予測できない場合には、各マスタへの共有リソース使用権の割り当てが適切に行えないという問題がある。
【０００９】
上記第３の従来技術においては、各マスタのバス使用権の分配に重み付けを与えることが可能であるが、転送サイズの異なるバスサイクルが混在したり、場合によりリソースへのアクセス時間が変化したりする場合には各バスサイクルのクロック数が異なるため、各マスタに対し一定の期間内での転送サイズを保証することができず、アクセス帯域幅が保証されないという問題がある。
【００１０】
本発明の目的は、アクセス帯域幅を保証しつつ、リアルタイム処理のような共有リソースへのアクセス権が早急に必要なアクセスリクエストに対して、共有リソースへのアクセス権を早急に与えることができるリソース管理装置を提供することにある。
【課題を解決するための手段】
【００１１】
上記課題を解決するために、本発明に係る第１のリソース管理装置は、複数のマスタが共有リソースにアクセスするデータ処理システムにおけるリソース管理装置であって、前記複数のマスタが前記共有リソースにアクセスする際のアクセス競合を調停するタイミングを生成する調停タイミング生成部と、各々前記アクセス競合を調停するための最優先順位情報を有する複数のスロットを持つ帯域幅情報と前記複数のマスタのうち前記共有リソースへのアクセス遅延を低減したいマスタを優先マスタとして指定するための優先マスタ情報とを持つ調停情報と、前記アクセス競合を前記調停情報に従って調停する調停部とを備え、前記調停部は、前記調停タイミング生成部が生成する調停タイミング毎に、前記帯域幅情報の前記スロットを切り替えながら前記アクセス競合を調停する際、前記優先マスタからアクセスリクエストがある場合に、前記帯域幅情報の前記スロットの順番を入れ替えることにより前記優先マスタから前記共有リソースへのアクセスを優先的に許可することを特徴としている。
【００１２】
本発明に係る第２のリソース管理装置は、複数のマスタが共有リソースにアクセスするデータ処理システムにおけるリソース管理装置であって、前記複数のマスタが前記共有リソースにアクセスする際のアクセス競合を調停するタイミングを生成する調停タイミング生成部と、各々前記アクセス競合を調停するための最優先順位情報を有する複数のスロットを持つ帯域幅情報と前記複数のマスタのうち前記共有リソースへのアクセス遅延を低減したいマスタを優先マスタとして指定するための優先マスタ情報と前記優先マスタから前記共有リソースへのアクセス遅延を低減するための帯域幅情報である優先マスタ用帯域幅情報とを持つ調停情報と、前記アクセス競合を前記調停情報に従って調停する調停部とを備え、前記調停部は、前記調停タイミング生成部が生成する調停タイミング毎に、前記帯域幅情報の前記スロットを切り替えながら前記アクセス競合を調停する際、前記優先マスタからアクセスリクエストがある場合に、前記優先マスタ用帯域幅情報を前記帯域幅情報の対応するスロットに挿入することにより前記優先マスタから前記共有リソースへのアクセスを優先的に許可することを特徴としている。
【００１３】
本発明に係る第３のリソース管理装置は、複数のマスタが共有リソースにアクセスするデータ処理システムにおけるリソース管理装置であって、前記複数のマスタが前記共有リソースにアクセスする際のアクセス競合を調停するタイミングを生成する調停タイミング生成部と、各々前記アクセス競合を調停するための最優先順位情報を有する複数のスロットを持つ帯域幅情報と前記複数のマスタのうち前記共有リソースへのアクセス遅延を低減したいマスタを優先マスタとして指定するための優先マスタ情報とを持つ調停情報と、前記優先マスタの一定期間内のアクセス回数を制限するためのアクセスカウンタと、前記アクセス競合を前記調停情報に従って調停する調停部とを備え、前記調停部は、前記調停タイミング生成部が生成する調停タイミング毎に、前記帯域幅情報の前記スロットを切り替えながら前記アクセス競合を調停する際、前記優先マスタからアクセスリクエストがある場合に、前記アクセスカウンタにより前記優先マスタのアクセス回数を制限しつつ前記優先マスタから前記共有リソースへのアクセスを優先的に許可することを特徴としている。
【００１４】
本発明に係る第４のリソース管理装置は、複数のマスタが共有リソースにアクセスするデータ処理システムにおけるリソース管理装置であって、前記複数のマスタが前記共有リソースにアクセスする際のアクセス競合を調停するタイミングを生成する調停タイミング生成部と、各々前記アクセス競合を調停するための前記複数のマスタの一定期間内のアクセス回数を指定する帯域幅情報を持つ調停情報と、前記各マスタの一定期間内のアクセス回数を制限するためのアクセスカウンタと、前記アクセス競合を前記調停情報に従って調停する調停部とを備え、前記調停部は、前記調停タイミング生成部が生成する調停タイミング毎に、前記複数のマスタのいずれかからアクセスリクエストがある場合、前記アクセスカウンタにより前記各マスタのアクセス回数を制限しつつ当該アクセスリクエストを出したマスタから前記共有リソースへのアクセスを許可することを特徴としている。
【発明の効果】
【００１５】
本発明によれば、複数のマスタが共有リソースにアクセスするデータ処理システムのリソース管理装置において、各マスタのアクセス帯域幅を保証しつつアクセス遅延をリアルタイムに低減することが可能となる。したがって、当該システム上で動作するアプリケーションのリアルタイム性を保証することが可能となる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明に係る第１〜第４の実施形態について、図面を用いて説明する。
【００１７】
〈第１の実施形態〉
図１は、本発明の第１の実施形態に係るリソース管理装置１０４を含むデータ処理システムの概略構成を示している。図１において、１０１、１０２、１０３はマスタであり、それぞれバスを介してリソース管理装置１０４に接続されている。リソース管理装置１０４は、各マスタ１０１，１０２，１０３から共有リソースであるメモリ１０５に対するアクセスリクエストを調停し、選択したリクエストを、メモリ１０５に接続されたメモリコントローラ１０６へ送る。メモリコントローラ１０６は、送られてきたアクセスリクエストを解釈し、メモリプロトコルに従う信号を生成し、メモリ１０５のデータの読み書きを行う。なお、以下の説明では、マスタ１０１，１０２，１０３を適宜マスタＡ，Ｂ，Ｃと呼ぶ。
【００１８】
図１のリソース管理装置１０４において、１１０は調停タイミング生成部、１１１は調停間隔設定レジスタ、１１２は調停スロットカウンタ、１１３は帯域幅情報１２０と優先マスタ情報１２１とを持つ調停情報、１１４は調停部、１１５はコマンドバッファ、１１６はデータバッファである。調停タイミング生成部１１０はクロックカウンタ１１８を有し、クロック入力を検出すると、クロックカウンタ１１８に１を加え、当該クロックカウンタ１１８の値と調停間隔設定レジスタ１１１の値とを比較し、等しければ調停タイミング信号１１９をセットし、クロックカウンタ１１８をリセットする。また、等しくなければ、調停タイミング信号１１９をリセットする。
【００１９】
図２は、図１中の帯域幅情報１２０の一例を示している。左端の列（第１列）はマスタＡ，Ｂ，Ｃ間の固定的な優先順位を表す。上の行にあるマスタほど高い優先順位を有する。他の列（第２列〜第９列）はそれぞれマスタＡ，Ｂ，Ｃ間の最優先順位情報を表し、「１」で表示されるマスタが最優先順位を有し、上記固定的な優先順位よりも優先する。ここで、第２列から第９列までをそれぞれスロットと呼び、各列の一番上の数値をスロット番号と呼ぶ。調停スロットカウンタ１１２は、帯域幅情報１２０に含まれる複数のスロットから次の調停で用いるスロットを選択するために使用され、調停タイミング信号１１９がセットされる毎に１ずつインクリメントされ、予め設定された最大値（この例では８）に達すると０にリセットされる。つまり、スロット０からスロット７までが１サイクルを構成する。
【００２０】
図３は、図１中の優先マスタ情報１２１の一例を示している。優先マスタ情報１２１は、共有リソースであるメモリ１０５へのアクセス遅延を低減したい優先マスタの設定を行う。図３中の「設定」の欄は優先マスタの設定を「１」で表し、ここではマスタＡ及びマスタＣが優先マスタとして設定されている。「優先順位」の欄は、優先マスタ間の優先順位を表している。
【００２１】
図４は、図１中の調停部１１４の動作を示している。調停部１１４は、調停タイミング信号１１９がセットされると、優先マスタ情報１２１により優先マスタに設定されたマスタからアクセスリクエストがあるかどうかを、その優先順位に従って判定する（ステップ４０１）。ここで、アクセスリクエストを出している優先マスタを「アクティブ優先マスタ」と呼ぶ。優先マスタからリクエストがあれば、帯域幅情報１２０の中で調停スロットカウンタ１１２が示す現スロット以降のスロットに、アクティブ優先マスタの最優先順位情報があるかどうか判定する（ステップ４０２）。例えば、調停スロットカウンタ１１２が「２」の時点で、帯域幅情報１２０が図２のように、優先マスタ情報１２１が図３のようにそれぞれ設定されていた場合、マスタＡからアクセスリクエストがなく、マスタＣからのアクセスリクエストがあるとき、スロット２からスロット７までにマスタＣの最優先順位情報が設定されているかどうかを判定する。この場合、スロット５にマスタＣの最優先順位情報が設定されている。
【００２２】
ステップ４０２で最優先順位情報があると判定されると、アクティブ優先マスタのアクセス遅延（レイテンシ）を低減するように帯域幅情報１２０のスロットの入れ替えを行う（ステップ４０３）。上記の例の場合には、スロット５をスロット２に挿入し、スロット４はスロット５に、スロット３はスロット４に、スロット２はスロット３にそれぞれ移動させる。そして、ステップ４０３からステップ４０４に進む。
【００２３】
図５は、図２の帯域幅情報１２０のスロット入れ替え後の状態を示している。図５によれば、マスタＣは、スロット１に続けてスロット２でも最優先順位が与えられるので、連続データ転送が可能となる。
【００２４】
一方、ステップ４０１において優先マスタからのリクエストがなかった場合、又はステップ４０２においてアクティブ優先マスタの最優先順位情報がなかった場合には、ステップ４０４に進む。
【００２５】
次に、調停部１１４は、調停スロットカウンタ１１２が示すスロットの最優先順位情報を帯域幅情報１２０から読み出し、これに従って各マスタＡ，Ｂ，Ｃのアクセスリクエストを調停する（ステップ４０４）。最後に、この調停で選択されたリクエストをアクセスコマンドとしてコマンドバッファ１１５に登録する（ステップ４０５）。
【００２６】
メモリ１０５へのアクセスリクエストのサイズが４ワードを越える連続転送である場合には、リクエストを４ワード毎の転送に分割し、１スロットで調停されるデータ転送を４ワードに制限する。これにより、あるマスタが連続転送リクエストを行った場合には、最優先順位に設定されたスロットで４ワード転送の選択が保証されるため、帯域幅情報１２０中の最優先順位情報と、レジスタ１１１中の調停間隔との設定により、メモリ１０５への当該マスタのアクセス帯域幅が保証される。
【００２７】
調停部１１４によりコマンドバッファ１１５に登録されたアクセスコマンドは、メモリコントローラ１０６により読み出される。このようにコマンドバッファ１１５を用いることにより、調停部１１４とメモリコントローラ１０６との駆動クロック周波数が異なる場合にもアクセスコマンドを受け渡すことができる。
【００２８】
書き込みアクセス時には、選択されたマスタから送られるデータがデータバッファ１１６に格納され、データバッファ１１６に格納されたデータをメモリコントローラ１０６が読み出してメモリ１０５へ送る。読み出しアクセス時には、メモリ１０５からメモリコントローラ１０６が読み出したデータをデータバッファ１１６に格納し、データバッファ１１６に格納されたデータを該当マスタが読み出す。このようにデータバッファ１１６を用いることにより、各マスタ１０１〜１０３とメモリコントローラ１０６との駆動クロック周波数が異なる場合にもデータの受け渡しができる。
【００２９】
本実施形態によれば、共有リソースであるメモリ１０５へのアクセス遅延を低減したいマスタ（リアルタイム処理が必要なマスタ）が出すアクセスリクエストに対して、帯域幅情報１２０のスロットを入れ替えることで、メモリ１０５へのアクセス遅延をリアルタイムに低減できるようになる。また、帯域幅情報１２０の設定により、一定期間内に各マスタ１０１〜１０３が最優先となる調停タイミングの回数を保証できるため、連続してアクセスを行うマスタに対するアクセス帯域幅を保証することができる。
【００３０】
同時に複数のアクティブ優先マスタが存在する場合、マスタＡ，Ｂ，Ｃ間の優先順位（図３参照）に従って調停すればよい。
【００３１】
なお、スロットを入れ替える方法は、本実施形態で示したものに限られるものではなく、調停スロットカウンタ１１２の値を一時的に変化させる方法などが考えられる。
【００３２】
また、調停に際して優先マスタのみが連続して選択されることがないように、優先マスタが所定回数選択された次の調停では当該優先マスタを選択しないなどの制限を設けることも可能である。
【００３３】
〈第２の実施形態〉
図６は、本発明の第２の実施形態に係るリソース管理装置１０４を含むデータ処理システムの概略構成を示している。図１との違いは、調停情報１１３の中に優先マスタ用帯域幅情報１２２を更に持っている点である。
【００３４】
図７は図６中の帯域幅情報１２０の一例を、図８は図６中の優先マスタ用帯域幅情報１２２の一例をそれぞれ示している。優先マスタ情報１２１は図３の例と同様であるものとする。図７のスロット６及びスロット７は、優先マスタからのアクセスリクエストがない場合に使用されるものである。図８の優先マスタ用帯域幅情報１２２は、優先マスタから共有リソースであるメモリ１０５へのアクセス遅延を低減するために使用される帯域幅情報である。図７及び図８の場合、帯域幅を保証する範囲は、帯域幅情報１２０のスロット０からスロット５までと、優先マスタ用帯域幅情報１２２の優先スロットＰ１から優先スロットＰ２までとなる。
【００３５】
図９は、図６中の調停部１１４の動作を示している。調停部１１４は、調停タイミング信号１１９がセットされると、優先マスタからアクセスリクエストがあるかどうかを、その優先順位に従って判定する（ステップ９０１）。優先マスタからリクエストがある場合、帯域幅情報１２０の中で調停スロットカウンタ１１２が示す現スロットに、アクティブ優先マスタの最優先順位情報があるかどうか判定する（ステップ９０２）。例えば、アクティブ優先マスタがマスタＡであり、調停スロットカウンタ１１２が「１」を示している場合、スロット１の最優先順位情報はマスタＣを示しているため、ステップ９０２の判定は「ＮＯ」となる。
【００３６】
帯域幅情報１２０の中にアクティブ優先マスタの最優先順位情報がなければ、優先マスタ用帯域幅情報１２２の中にアクティブ優先マスタの最優先順位情報があるかどうかを判定する（ステップ９０３）。例えば、アクティブ優先マスタがマスタＡである場合、優先マスタ用帯域幅情報１２２は、優先スロットＰ１にマスタＡの最優先順位情報を有しているので、ステップ９０３の判定は「ＹＥＳ」となる。
【００３７】
優先マスタ用帯域幅情報１２２の中にアクティブ優先マスタの最優先順位情報があれば、この優先マスタ用帯域幅情報１２２から当該優先スロットを取り出し、この優先スロットを帯域幅情報１２０の現スロットに挿入する（ステップ９０４）。例えば、アクティブ優先マスタがマスタＡであり、調停スロットカウンタ１１２が「１」を示している場合、優先マスタ用帯域幅情報１２２の優先スロットＰ１を帯域幅情報１２０のスロット１の位置に挿入し、元のスロット１をスロット２に、元のスロット２をスロット３に、元のスロット３をスロット４にのように１スロットずつシフトさせる。そして、ステップ９０４からステップ９０５に進む。
【００３８】
図１０は、図７の帯域幅情報１２０のスロット挿入・調整後の状態を示している。図１０によれば、マスタＡは、スロット０に続けてスロット１でも最優先順位が与えられるので、連続データ転送が可能となる。
【００３９】
一方、ステップ９０１において優先マスタからのリクエストがなかった場合、又はステップ９０２において帯域幅情報１２０の中にアクティブ優先マスタの最優先順位情報があった場合、又はステップ９０３において優先マスタ用帯域幅情報１２２の中にアクティブ優先マスタの最優先順位情報がなかった場合には、ステップ９０５に進む。
【００４０】
次に、調停部１１４は、調停スロットカウンタ１１２が示すスロットの最優先順位情報を帯域幅情報１２０から読み出し、これに従って各マスタＡ，Ｂ，Ｃのアクセスリクエストを調停する（ステップ９０５）。最後に、この調停で選択されたリクエストをコマンドバッファ１１５に登録する（ステップ９０６）。
【００４１】
調停スロットカウンタ１１２が最大値（この例では８）に達した場合、当該調停スロットカウンタ１１２を０にリセットするとともに、帯域幅情報１２０と優先マスタ用帯域幅情報１２２とを元の状態に戻す。
【００４２】
本実施形態によれば、共有リソースであるメモリ１０５へのアクセス遅延を低減したいマスタが出すアクセスリクエストに対して、優先マスタ用帯域幅情報１２２を利用して帯域幅情報１２０を動的に調整することで、メモリ１０５へのアクセス遅延をリアルタイムに低減できるようになる。また、帯域幅情報１２０の設定により、一定期間内に各マスタ１０１〜１０３が最優先となる調停タイミングの回数を保証できるため、連続してアクセスを行うマスタに対するアクセス帯域幅を保証することができる。
【００４３】
同時に複数のアクティブ優先マスタが存在する場合、マスタＡ，Ｂ，Ｃ間の優先順位（図３参照）に従って調停すればよい。優先マスタ用帯域幅情報１２２の任意の優先スロットに複数の最優先順位を設定してもよい。
【００４４】
なお、調停に際して優先マスタのみが連続して選択されることがないように、優先マスタが所定回数選択された次の調停では当該優先マスタを選択しないなどの制限を設けることも可能である。
【００４５】
〈第３の実施形態〉
図１１は、本発明の第３の実施形態に係るリソース管理装置１０４を含むデータ処理システムの概略構成を示している。図１との違いは、優先マスタの一定期間内のアクセス回数を制限するためのアクセスカウンタ１２３をリソース管理装置１０４が更に備えている点である。また、図１１の調停スロットカウンタ１１２は、調停部１１４から更新禁止信号１３０を受け取るように構成されている。
【００４６】
図１２は図１１中の帯域幅情報１２０の一例を、図１３は図１１中の優先マスタ情報１２１の一例をそれぞれ示している。図１２の帯域幅情報１２０では、いずれのスロットでもマスタＡの最優先順位情報が「０」に設定されている。図１３の優先マスタ情報１２１は、優先マスタの設定と、優先マスタ間の優先順位とに加えて、アクセスカウンタ１２３の優先マスタ毎の初期値とを持つ。図１３の例では、マスタＡのみが優先マスタに設定され、そのアクセスカウンタ初期値（つまり、１サイクル内の最大アクセス回数）が２に設定されている。
【００４７】
調停スロットカウンタ１１２が最大値（この例では８）に達すると、当該調停スロットカウンタ１１２が０にリセットされるとともに、優先マスタ情報１２１中の優先マスタのアクセスカウンタ初期値がアクセスカウンタ１２３に設定される。このアクセスカウンタ１２３は、アクセス許可がなされる毎に１ずつ減算され、そのカウント値が０になった後は、当該サイクルでは対応する優先マスタのアクセスリクエストが選択されないようになっている。
【００４８】
調停スロットカウンタ１１２に調停部１１４から更新禁止信号１３０がセットされた場合、調停スロットカウンタ１１２のインクリメントを停止する。更に、調停スロットカウンタ１１２の最大値（この例では初期値８）を１つ減算し、その後、更新禁止信号１３０をリセットする。
【００４９】
図１４は、図１１中の調停部１１４の動作を示している。調停部１１４は、調停タイミング信号１１９がセットされると、優先マスタからアクセスリクエストがあるかどうかを、その優先順位に従って判定する（ステップ１４０１）。図１３の設定例の場合、マスタＡのリクエストがあるかどうか判定する。優先マスタからリクエストがあれば、当該アクティブ優先マスタのアクセスカウンタ１２３の値が０より大きいかどうか判定する（ステップ１４０２）。アクセスカウンタ１２３の値が０より大きければ、当該アクティブ優先マスタのアクセスカウンタ１２３の値を１つ減算し、当該アクティブ優先マスタを選択する調停を行い、かつ調停スロットカウンタ１１２に更新禁止信号１３０をセットする（ステップ１４０３）。次に、当該アクティブ優先マスタのリクエストをコマンドバッファ１１５に登録する（ステップ１４０４）。また、この時点で更新禁止信号１３０がリセットされる。
【００５０】
ステップ１４０１において優先マスタからのリクエストがなかった場合、又はステップ１４０２においてアクセスカウンタ１２３の値が０であった場合には、調停部１１４は、調停スロットカウンタ１１２が示すスロットの最優先順位情報を帯域幅情報１２０から読み出し、これに従って各マスタＡ，Ｂ，Ｃのアクセスリクエストを調停する（ステップ１４０５）。最後に、この調停で選択されたリクエストをコマンドバッファ１１５に登録する（ステップ１４０６）。
【００５１】
図１２及び図１３の設定例の場合、スロット０からスロット５までの間に優先マスタであるマスタＡからのアクセスリクエストが２回あった場合、調停スロットカウンタ１１２は６で最大値（更新値）に達するため、残りのスロット６及びスロット７は使用されない。また、優先マスタであるマスタＡからのアクセスリクエストが０回であった場合、調停スロットカウンタ１１２は８で最大値（初期値）に達するため、スロット０からスロット７までを全て使用する。これにより、優先マスタからのアクセスリクエストの有無にかかわらず、１サイクルが常に８スロットで構成されることとなる。
【００５２】
本実施形態によれば、共有リソースであるメモリ１０５へのアクセス遅延を低減したいマスタが出すアクセスリクエストに対して、帯域幅情報１２０を利用しつつ優先マスタからのアクセスリクエストを最優先順位のリクエストとして調停を行い、かつ優先マスタの一定期間内のアクセス回数を制限するためのアクセスカウンタ１２３を備えることで、メモリ１０５へのアクセス遅延をリアルタイムに低減できるようになる。また、帯域幅情報１２０及び優先マスタ情報１２１の設定により、一定期間内に各マスタ１０１〜１０３が最優先となる調停タイミングの回数を保証できるため、連続してアクセスを行うマスタに対するアクセス帯域幅を保証することができる。
【００５３】
〈第４の実施形態〉
図１５は、本発明の第４の実施形態に係るリソース管理装置１０４を含むデータ処理システムの概略構成を示している。図１との違いは、図１１の場合と同様にリソース管理装置１０４がアクセスカウンタ１２３を備えている点である。図１５の調停情報１１３は、帯域幅情報１２０を持っている。
【００５４】
図１６は、図１５中の帯域幅情報１２０の一例を示している。図１６の帯域幅情報１２０の第１欄は、それぞれ複数のマスタ間の優先順位を表している。上の行にあるマスタほど高い優先順位を有する。第２欄には、アクセスカウンタ１２３のマスタ毎の初期値が設定される。図１６の例では、マスタＡ，Ｂ，Ｃの各々のアクセスカウンタ初期値（つまり、１サイクル内の最大アクセス回数）が２、４、２にそれぞれ設定されている。
【００５５】
調停スロットカウンタ１１２が最大値（この例では８）に達すると、当該調停スロットカウンタ１１２が０にリセットされるとともに、帯域幅情報１２０中の全てのマスタのアクセスカウンタ初期値がアクセスカウンタ１２３に設定される。このアクセスカウンタ１２３は、マスタ毎にアクセス許可がなされる都度１ずつ減算される。
【００５６】
図１７は、図１５中の調停部１１４の動作を示している。調停部１１４は、調停タイミング信号１１９がセットされると、１つ以上のマスタからアクセスリクエストがあるかどうかを判定する（ステップ１７０１）。全くリクエストがない場合、調停は終了する。１つ以上のマスタからリクエストがある場合、帯域幅情報１２０の第１欄で設定されている優先順位に従って、各マスタからリクエストがあるかどうかを順次判定する（ステップ１７０２）。当該マスタからリクエストがあれば、当該マスタのアクセスカウンタ１２３の値が０より大きいかどうか判定する（ステップ１７０３）。アクセスカウンタ１２３の値が０より大きければ、当該マスタのアクセスカウンタ１２３の値を１つ減算し、当該マスタを選択する調停を行う（ステップ１７０４）。次に、当該マスタのリクエストをコマンドバッファ１１５に登録する（ステップ１７０５）。
【００５７】
ステップ１７０２において当該マスタからのリクエストがなかった場合、又はステップ１７０３においてアクセスカウンタ１２３の値が０であった場合には、当該マスタよりも優先順位の低いマスタがあるかどうかを判定する（ステップ１７０６）。更に調停する必要のあるマスタがあれば、ステップ１７０２に戻る。これ以上調停する必要のあるマスタがなければ、帯域幅情報１２０の第１欄で設定された優先順位に従って調停を行う（ステップ１７０７）。ステップ１７０７ではアクセスカウンタ１２３の値に関係なく、帯域幅情報１２０で設定される優先順位情報により調停を行う。ステップ１７０７により、アクセスリクエストのあるマスタのアクセスカウンタ１２３の値が０であっても、他のマスタからアクセスリクエストがない場合には、アクセスリクエストのあるマスタがアクセス可能となり、リソースの使用効率を下げない。
【００５８】
本実施形態によれば、共有リソースであるメモリ１０５へのアクセスリクエストに対して、複数のマスタ間の優先順位に従って調停を行い、かつ各マスタの一定期間内のアクセス回数を制限するためのアクセスカウンタ１２３を備えることで、帯域幅情報１２０の設定により、一定期間内に各マスタ１０１〜１０３が最優先となる調停タイミングの回数を保証できる。そのため、連続してアクセスを行うマスタに対するアクセス帯域幅を保証することができる。また、あるマスタの優先順位を指定する帯域幅情報１２０の優先順位を高くすることで当該マスタのアクセス遅延の低減が可能となる。
【００５９】
なお、調停情報１１３のフォーマットは上記各実施形態で示したものに限らない。
【００６０】
また、上記各実施形態ではメモリ１０５を共有リソースの例としたが、メモリ以外の入出力デバイスを共有リソースとする場合にも本発明は適用可能である。
【００６１】
更に、上記各実施形態では３つのマスタ１０１〜１０３と１つの共有リソース１０５とを用いて説明したが、より多くのマスタ及び複数の共有リソースを有する複雑なデータ処理システムにおいても、本発明は適用可能である。
【産業上の利用可能性】
【００６２】
以上説明してきたとおり、本発明に係るリソース管理装置は、各マスタのアクセス帯域幅を保証しつつアクセス遅延をリアルタイムに低減することができるという効果を有し、複数のマスタが共有リソースにアクセスするデータ処理システム等として有用である。
【図面の簡単な説明】
【００６３】
【図１】本発明の第１の実施形態に係るリソース管理装置を含むデータ処理システムの概略構成を示すブロック図である。
【図２】図１中の帯域幅情報の一例を示す図である。
【図３】図１中の優先マスタ情報の一例を示す図である。
【図４】図１中の調停部の動作を示すフローチャート図である。
【図５】図２の帯域幅情報のスロット入れ替え後の状態を示す図である。
【図６】本発明の第２の実施形態に係るリソース管理装置を含むデータ処理システムの概略構成を示すブロック図である。
【図７】図６中の帯域幅情報の一例を示す図である。
【図８】図６中の優先マスタ用帯域幅情報の一例を示す図である。
【図９】図６中の調停部の動作を示すフローチャート図である。
【図１０】図７の帯域幅情報のスロット挿入・調整後の状態を示す図である。
【図１１】本発明の第３の実施形態に係るリソース管理装置を含むデータ処理システムの概略構成を示すブロック図である。
【図１２】図１１中の帯域幅情報の一例を示す図である。
【図１３】図１１中の優先マスタ情報の一例を示す図である。
【図１４】図１１中の調停部の動作を示すフローチャート図である。
【図１５】本発明の第４の実施形態に係るリソース管理装置を含むデータ処理システムの概略構成を示すブロック図である。
【図１６】図１５中の帯域幅情報の一例を示す図である。
【図１７】図１５中の調停部の動作を示すフローチャート図である。
【符号の説明】
【００６４】
１０１〜１０３  マスタ
１０４  リソース管理装置
１０５  メモリ（共有リソース）
１０６  メモリコントローラ
１１０  調停タイミング生成部
１１１  調停間隔設定レジスタ
１１２  調停スロットカウンタ
１１３  調停情報
１１４  調停部
１１５  コマンドバッファ
１１６  データバッファ
１１８  クロックカウンタ
１１９  調停タイミング信号
１２０  帯域幅情報
１２１  優先マスタ情報
１２２  優先マスタ用帯域幅情報
１２３  アクセスカウンタ
１３０  更新禁止信号
【図１】
2005258867.tif 000003
【図２】
2005258867.tif 000004
【図３】
2005258867.tif 000005
【図４】
2005258867.tif 000006
【図５】
2005258867.tif 000007
【図６】
2005258867.tif 000008
【図７】
2005258867.tif 000009
【図８】
2005258867.tif 000010
【図９】
2005258867.tif 000011
【図１０】
2005258867.tif 000012
【図１１】
2005258867.tif 000013
【図１２】
2005258867.tif 000014
【図１３】
2005258867.tif 000015
【図１４】
2005258867.tif 000016
【図１５】
2005258867.tif 000017
【図１６】
2005258867.tif 000018
【図１７】
2005258867.tif 000019