(57)【要約】【課題】  複数のマスタから共有リソースへのアクセスの管理を行うリソース管理装置において、アクセスコマンドの発行順序を入れ替える際の消費電力を低減する。【解決手段】  各々複数のマスタのうちのいずれかから受け付けたアクセスコマンド１５０を保持する複数のコマンドレジスタ２３１〜２３４と、各々有効なアクセスコマンドを保持しているコマンドレジスタを特定するレジスタ番号を保持する複数のアドレスレジスタ２２１〜２２４とを設ける。アクセスコマンドの発行順序の入れ替えの際には、アドレスレジスタ２２１〜２２４が保持しているレジスタ番号を入れ替える。【選択図】  図３
2006099731.tif 000002
【特許請求の範囲】
【請求項１】
複数のマスタが共有リソースにアクセスするように構成されたシステムにおけるリソース管理装置であって、
前記複数のマスタからのアクセス要求に応じてアクセス競合を調停するアクセス要求調停部と、
前記複数のマスタのうち前記アクセス要求調停部によりアクセスが許可されたマスタから発行されたアクセスコマンドを順次受け付けて保持し、かつコマンド発行を要求されるつど発行待ちのアクセスコマンドのうちの１つを発行するコマンドキューと、
前記コマンドキューへコマンド発行要求を与えて当該コマンドキューから発行されたアクセスコマンドを受け取り、当該受け取ったアクセスコマンドに従って前記複数のマスタのうちの１つと前記共有リソースとの間のデータの受け渡しを制御するリソース制御部とを備え、
前記コマンドキューは、
各々前記複数のマスタのうちのいずれかから受け付けたアクセスコマンドを保持するための複数の第１ストレージ要素と、
各々前記複数の第１ストレージ要素のうち有効なアクセスコマンドを保持している第１ストレージ要素を特定するアドレスを保持するための複数の第２ストレージ要素と、
新たに受け付けたアクセスコマンドが前記複数の第１ストレージ要素のうちの空いている第１ストレージ要素に保持されるように制御するコマンド書き込み制御部と、
前記複数の第１ストレージ要素のうち前記新たに受け付けたアクセスコマンドを保持した第１ストレージ要素を特定するアドレスと、先行アクセスコマンドを保持した第１ストレージ要素を特定するアドレスとを含む全アドレスがコマンド発行順に並ぶように、所定のコマンド追い越し条件に従って前記複数の第２ストレージ要素のアドレス保持順序を制御するコマンド追い越し条件判定部と、
前記複数の第１ストレージ要素のうち前記複数の第２ストレージ要素中の先頭アドレスにより特定された第１ストレージ要素からアクセスコマンドを読み出し、かつ当該読み出されたアクセスコマンドを前記リソース制御部へ供給するように制御するための制御手段とを有することを特徴とするリソース管理装置。
【請求項２】
請求項１記載のリソース管理装置において、
前記コマンドキューは、
前記複数の第２ストレージ要素のうちアドレスが次に書き込まれるべき第２ストレージ要素を指定するライトポインタと、
前記複数の第２ストレージ要素のうちアドレスが次に読み出されるべき第２ストレージ要素を指定するリードポインタとを更に有し、
前記複数の第２ストレージ要素は、巡回キューを構成するように互いに連結されていることを特徴とするリソース管理装置。
【請求項３】
請求項１記載のリソース管理装置において、
前記共有リソースはメモリであり、
前記コマンドキューが受け付けるアクセスコマンドは、前記複数のマスタの中から当該アクセスコマンドを発行したマスタを特定する情報と、前記メモリのリードアクセスとライトアクセスとのいずれであるかを指定する情報と、前記メモリのアクセスアドレス範囲とを含むことを特徴とするリソース管理装置。
【請求項４】
請求項１記載のリソース管理装置において、
前記共有リソースはメモリであり、
前記コマンド追い越し条件判定部は、前記新たに受け付けたアクセスコマンドが前記メモリのうちの優先メモリ空間へのアクセスを要求するアクセスコマンドであるか否かを前記コマンド追い越し条件の１つとして動作することを特徴とするリソース管理装置。
【請求項５】
請求項１記載のリソース管理装置において、
前記コマンド追い越し条件判定部は、前記新たに受け付けたアクセスコマンドが前記複数のマスタのうち優先マスタに指定されたマスタから発行されたアクセスコマンドであるか否かを前記コマンド追い越し条件の１つとして動作することを特徴とするリソース管理装置。
【請求項６】
請求項１記載のリソース管理装置において、
前記共有リソースはメモリであり、
前記コマンド追い越し条件判定部は、前記新たに受け付けたアクセスコマンドがアクセスを要求しているメモリ空間と、先行アクセスコマンドがアクセスを要求しているメモリ空間とが互いに異なるか否かを前記コマンド追い越し条件の１つとして動作することを特徴とするリソース管理装置。
【請求項７】
請求項１記載のリソース管理装置において、
前記共有リソースはメモリであり、
前記コマンド追い越し条件判定部は、前記新たに受け付けたアクセスコマンドと先行アクセスコマンドとが共にリードアクセスを要求しているか否かを前記コマンド追い越し条件の１つとして動作することを特徴とするリソース管理装置。
【請求項８】
請求項１記載のリソース管理装置において、
前記コマンド追い越し条件判定部は、前記コマンド追い越し条件を設定するためのプログラム入力を有することを特徴とするリソース管理装置。
【請求項９】
共有リソースにアクセスしてデータのやり取りを行う複数のマスタと、前記複数のマスタから受け取ったアクセスコマンドを保持する複数のレジスタを有するコマンド記憶部と、前記コマンド記憶部に保持したアクセスコマンドのレジスタ番号を保持するコマンド管理部とを有するシステムにおいて、前記複数のマスタから前記共有リソースへのアクセスコマンドの発行順序を入れ替えるリソース管理方法であって、
前記複数のマスタからアクセスコマンドを受け付けると、前記コマンド記憶部の空きレジスタに、前記複数のマスタから受け付けたアクセスコマンドを保持する第１のステップと、
前記アクセスコマンドが、予め決められた優先して発行すべきアクセスコマンドであるかどうかを判定する第２のステップと、
前記第２のステップの判定の結果、前記アクセスコマンドが優先して発行すべきアクセスコマンドであったとき、発行待ちアクセスコマンドがあるかどうかを判定する第３のステップと、
前記第３のステップの判定の結果、発行待ちアクセスコマンドがあったとき、前記発行待ちアクセスコマンドが優先して発行すべきアクセスコマンドであるかどうかを判定する第４のステップと、
前記第４のステップの判定の結果、前記発行待ちアクセスコマンドが優先して発行すべきアクセスコマンドでなかったとき、更に発行待ちアクセスコマンドと比較するように操作する第５のステップと、
前記第２のステップの判定の結果、前記アクセスコマンドが優先して発行すべきアクセスコマンドでなかったとき、又は前記第３のステップの判定の結果、発行待ちアクセスコマンドがなかったとき、又は前記第４のステップの判定の結果、前記発行待ちアクセスコマンドが優先して発行すべきアクセスコマンドであったとき、前記アクセスコマンドが比較したアクセスコマンドの後に発行すべきアクセスコマンドとなるよう、前記コマンド管理部に前記アクセスコマンドのレジスタ番号を保持する第６のステップとを備え、
前記第５のステップの後は、前記第３のステップから第５のステップを更に繰り返すことを特徴とするリソース管理方法。
【請求項１０】
請求項９記載のリソース管理方法において、
前記優先して発行すべきアクセスコマンドは、予め決められた優先メモリ空間へのアクセスコマンドであることを特徴とするリソース管理方法。
【請求項１１】
請求項９記載のリソース管理方法において、
前記優先して発行すべきアクセスコマンドは、予め決められた優先マスタからのアクセスコマンドであることを特徴とするリソース管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のマスタから共有リソースへのアクセスを管理するためのリソース管理装置に関し、特に共有リソースへのアクセスコマンド発行順序の制御技術に関するものである。
【背景技術】
【０００２】
一番先に入れたデータが最初に取り出せるようにしたバッファメモリ、すなわちＦＩＦＯ（first-in first-out）が広く知られている。記憶するデータそれぞれに優先順位が定義されている場合、順位の高いものから順に取り出すこともある。この場合のデータ構造は、優先式キュー（priority queue）と呼ばれる。優先式キューについても、様々な技術が既に知られている。
【０００３】
ある従来技術によれば、複数の計算機により共有されるディスク装置において、各計算機からのアクセス要求の実行順序を緊急度に応じて制御する。そのため、アドレス空間毎の優先度を定義する優先度テーブルを準備する。ディスク装置に新たに到着したアクセス要求は、キュー中にいくつかの先行アクセス要求が存在するとき、当該新たなアクセス要求よりも低い優先度を有する先行アクセス要求を追い越すことができる（特許文献１参照）。
【０００４】
他の従来技術によれば、光ディスクのオートチェンジャを備えた装置において、要求キューファイルとは別に中間キューファイルが設けられる。要求キューファイルは、ディスク名を指定したアクセス要求を、その入力順に記憶する。ある時点で、要求キューファイルに溜まっているアクセス要求を並べ替え、その結果を中間キューファイルに格納する。この際、ディスクの頻繁な入れ替え操作を軽減するため、現時点で再生中のディスクへのアクセス要求を優先し、かつ同一ディスクへのアクセス要求が連続するように並べ替えが実行される。そして、中間キューファイルの内容に従ってオートチェンジャが駆動される（特許文献２参照）。
【０００５】
更に他の従来技術によれば、データ処理システムにおいて、複数のプロセッサと主記憶との間に共有バッファが介在し、各プロセッサからメモリ参照要求が送られてくる。メモリ参照要求は、メモリ参照アドレスと、プロセッサの識別子と、メモリ参照要求の種類と、命令の実行順序を表す番号とを含んでおり、キューに受け付けられる。そして、共有バッファへのアクセスがヒットしなければ、主記憶へのアクセスが実行される。ただし、主記憶へのアクセスには長い時間がかかる。そこで、あるメモリ参照要求が主記憶から必要なデータを転送されるまでキューで待っている間に、後続メモリ参照要求を待たせることなく処理すること、つまり追い越し処理により、共有バッファへのアクセスを可能にする。しかも、同じプロセッサから送られたメモリ参照要求に対し、所定のメモリ参照順序を保証しながら追い越しを可能にする（特許文献３参照）。
【０００６】
更に他の従来技術によれば、ＡＴＭ（asynchronous transfer mode）通信において、送信すべきセルをランダムアクセス可能なメモリに順次格納するとともに、各セルのメモリアドレスを別に保持しておき、通常は先着優先でセルを伝送路へ送信する。ただし、メモリ中の送信待ちセルのうち特定のセルを優先送信する必要が生じた場合には、保持しておいたメモリアドレスを参照してメモリから優先セルを読み出して伝送路へ送信する（特許文献４参照）。
【０００７】
更に他の従来技術によれば、ＬＡＮ（local area network）の通信ノードや多重プログラミング・プロセッサにおいて、複数のキュー要素を保持するためのスタックメモリと、最優先順位を有するキュー要素を保持するためのレジスタとが設けられる。各キュー要素は、データ又はデータを指定するアドレスである。レジスタから最優先順位のキュー要素が読み出された後には、レジスタとスタックメモリとの間のスワップ操作を伴う探索オペレーションが実行される結果、次に高い優先順位を有するキュー要素がレジスタに保持されることとなる。そして、キューに書き込まれるべき新たな要素が到着したとき、当該新たな要素の優先度とレジスタに保持されたキュー要素の優先度とが比較される。レジスタに保持されたキュー要素よりも新たな要素の方が高い優先度を有する場合には、レジスタに保持されたキュー要素がスタックメモリに書き込まれるとともに、これに代わって新たなキュー要素がレジスタに書き込まれる。一方、レジスタ中のキュー要素の方が高い優先度を有する場合には、新たなキュー要素がスタックメモリに書き込まれる。これにより、最優先順位を有するキュー要素をレジスタが常に保有することが保証され、優先式キューの機能が達成される（特許文献５参照）。
【特許文献１】特開２００１−２２２３８２号公報
【特許文献２】特開平５−６１８０５号公報
【特許文献３】特開平６−２１４８７５号公報
【特許文献４】特開平１１−３３１１９７号公報
【特許文献５】特公平５−７０１７７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
複数のマスタが共有リソースにアクセスするように構成されたシステムでは、リソース管理装置が共有リソースへのアクセスを管理する。この場合にリソース管理装置が各マスタから受け取るアクセスコマンドは、当該アクセスコマンドを発行したマスタを特定する情報を含んでいる。更に、各アクセスコマンドは、共有リソースがメモリである場合にはメモリアドレスを、共有リソースが周辺Ｉ／Ｏ（input/output）コントローラである場合にはＩ／Ｏポートアドレスをそれぞれ含んでいる。したがって、各アクセスコマンドは、大きいビット長を有するのが通例である。特にメモリの容量が大きい場合には、アクセスコマンドのサイズが例えば４０ビットにも達することがある。
【０００９】
このような背景を持つリソース管理装置に優先式キューとして動作するコマンドキューを持たせるとき、アクセスコマンド自体の並べ替えをコマンドキュー内で実現しようとすると、大きなサイズのデータ入れ替えが発生することとなり、消費電力が大きくなってしまうという課題があった。とりわけ低消費電力が要求される携帯端末では、この課題が顕著になってきた。また、データ入れ替えのために大きい回路規模を持つハードウェア構成が要求されるという課題もあった。
【００１０】
本発明の目的は、優先式キューとして動作するコマンドキューを持つリソース管理装置の最適な内部構成を提供することにある。
【００１１】
本発明の他の目的は、優先式キューとして動作するコマンドキューの消費電力を低減し、またその回路規模を小さくすることにある。
【課題を解決するための手段】
【００１２】
上記目的を達成するため、本発明は、複数のマスタが共有リソースにアクセスするように構成されたシステムにおけるリソース管理装置を、アクセス要求調停部と、コマンドキューと、リソース制御部とで構成することとしたものである。アクセス要求調停部は、複数のマスタからのアクセス要求に応じてアクセス競合を調停する。コマンドキューは、複数のマスタのうちアクセス要求調停部によりアクセスが許可されたマスタから発行されたアクセスコマンドを順次受け付けて保持し、かつコマンド発行を要求されるつど発行待ちのアクセスコマンドのうちの１つを発行する。リソース制御部は、コマンドキューへコマンド発行要求を与えて当該コマンドキューから発行されたアクセスコマンドを受け取り、当該受け取ったアクセスコマンドに従って複数のマスタのうちの１つと共有リソースとの間のデータの受け渡しを制御する。
【００１３】
しかも、本発明におけるコマンドキューは、各々複数のマスタのうちのいずれかから受け付けたアクセスコマンドを保持するための複数の第１ストレージ要素と、各々複数の第１ストレージ要素のうち有効なアクセスコマンドを保持している第１ストレージ要素を特定するアドレスを保持するための複数の第２ストレージ要素と、新たに受け付けたアクセスコマンドが複数の第１ストレージ要素のうちの空いている第１ストレージ要素に保持されるように制御するコマンド書き込み制御部と、複数の第１ストレージ要素のうち新たに受け付けたアクセスコマンドを保持した第１ストレージ要素を特定するアドレスと、先行アクセスコマンドを保持した第１ストレージ要素を特定するアドレスとを含む全アドレスがコマンド発行順に並ぶように、所定のコマンド追い越し条件に従って複数の第２ストレージ要素のアドレス保持順序を制御するコマンド追い越し条件判定部と、複数の第１ストレージ要素のうち複数の第２ストレージ要素中の先頭アドレスにより特定された第１ストレージ要素からアクセスコマンドを読み出し、かつ当該読み出されたアクセスコマンドをリソース制御部へ供給するように制御するための制御手段とを有するものである。
【００１４】
複数の第１ストレージ要素は、小容量のメモリ、１セットのレジスタ等で構成できる。複数の第２ストレージ要素についても同様である。しかも、複数の第２ストレージ要素の各々が保持するアドレス（メモリセルロケーション、レジスタ番号等）は、複数の第１ストレージ要素の各々が保持するアクセスコマンド自体と比較してサイズを小さくすることができる。
【発明の効果】
【００１５】
本発明によれば、アクセス要求調停部と、優先式キューとして動作するコマンドキューと、リソース制御部とでリソース管理装置を構成することとしたので、調停によりアクセスが許可されたマスタから発行されたアクセスコマンドのみを順次コマンドキューに与えることができ、かつ共有リソースがアクセス可能になるつどコマンドキューに最優先のアクセスコマンドを発行させることができる。しかも、アクセスコマンド自体と比較してサイズの小さいアドレスをコマンドキュー内で入れ替えることで、アクセスコマンドの発行順序を制御することができるようになる。したがって、コマンドキューの消費電力を低減し、またその回路規模を小さくすることができる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の実施形態について、図面を参照しながら説明する。
【００１７】
図１は、本発明に係るリソース管理装置の概略構成例を示している。図１には、５個のマスタ（Ａ〜Ｅ）１０１，１０２，１０３，１０４，１０５が共有リソース１１１にアクセスするように構成されたデータ処理システムにおけるリソース管理装置が例示されている。このリソース管理装置は、アクセス要求調停部１００と、コマンドキュー１０６と、リソース制御部１１０とを備えている。更に、マスタ１０１〜１０５とコマンドキュー１０６との間にキュー入力セレクタ１１２が配置されている。各マスタ１０１〜１０５は、マイクロプロセッサ、ＤＳＰ（digital signal processor）、ＤＭＡ（direct memory access）コントローラ等のうちのいずれかである。共有リソース１１１は、メモリ、周辺Ｉ／Ｏコントローラ等のうちのいずれかである。ただし、以下の説明では共有リソース１１１がメモリであるものとする。
【００１８】
アクセス要求調停部１００は、５個のマスタ１０１〜１０５からのアクセス要求に応じてアクセス競合を調停する。具体的に説明すると、各マスタ１０１〜１０５は、共有リソース１１１にアクセスしてデータのやり取りを行うため、必要に応じてアクセス要求調停部１００にアクセス要求を発行する。アクセス要求調停部１００は、５個のマスタ１０１〜１０５のいずれかにアクセス許可を与える。５個のマスタ１０１〜１０５のうちアクセス許可を受け取ったマスタは、共有リソース１１１へのアクセスコマンドを、キュー入力セレクタ１１２を介してコマンドキュー１０６へ発行する。
【００１９】
コマンドキュー１０６は、５個のマスタ１０１〜１０５のうちアクセスが許可されたマスタから発行されてキュー入力セレクタ１１２を通過したアクセスコマンド１５０を順次受け付けて保持し、かつリソース制御部１１０からコマンド発行要求１５１を受け取るつど発行待ちのアクセスコマンドのうちの１つをリソース制御部１１０へ発行する。
【００２０】
リソース制御部１１０は、共有リソース１１１がアクセス可能状態になるつどコマンドキュー１０６へコマンド発行要求１５１を与える。更に、リソース制御部１１０は、コマンド発行要求１５１に応答してコマンドキュー１０６から発行されたアクセスコマンド１５２を受け取り、当該受け取ったアクセスコマンド１５２に従って５個のマスタ１０１〜１０５のうちの１つと共有リソース１１１との間のデータの受け渡しを制御する。なお、リソース制御部１１０のこれらの機能を共有リソース１１１自体に持たせてもよい。
【００２１】
図２は、図１中のコマンドキュー１０６に与えられるアクセスコマンド１５０のフォーマットの一例を示している。図２に例示したアクセスコマンド１５０は、４０ビットからなる。最下位ビット（ビット０）は、共有リソース１１１のリードアクセスとライトアクセスとのいずれであるかを指定する情報（Ｒ／Ｗ）を表す。次の４ビット（ビット４〜１）からなるフィールドは、当該アクセスコマンド１５０を発行したマスタを特定する情報（ＩＤ）を表す。次の４ビット（ビット８〜５）からなるフィールドは、バーストモードアクセスのビート数を指定する情報（ＢＥＡＴ）を表す。次の２ビット（ビット１０〜９）からなるフィールドは、１ビートあたりのアクセスサイズが１／２／４／８バイトのうちのいずれであるかを指定する情報（ＳＩＺＥ）を表す。次の２８ビット（ビット３８〜１１）からなるフィールドは、共有リソース１１１のアクセス開始アドレスを指定する情報（ＡＤＲＳ）を表す。最上位ビット（ビット３９）は、共有リソース１１１へのデータライト動作が完了したことを通知するための情報（Ｄ）を表す。なお、図１中の共有リソース１１１は、各々２８ビットアドレスのうちの上位８ビットで指定される２５６個のメモリ空間に区切られているものとする。つまり、各メモリ空間は１Ｍバイトの容量を持つ。
【００２２】
図３は、図１中のコマンドキュー１０６の詳細構成例を示している。図３のコマンドキュー１０６は、コマンド書き込み制御部２０１と、ライトポインタ２０２と、リードポインタ２０３と、コマンド追い越し条件判定部２０６と、コマンド管理部２５０と、コマンド記憶部２６０とで構成されている。コマンド管理部２５０は、４個のアドレスレジスタ２２１，２２２，２２３，２２４と、１個のアドレスセレクタ２０４と、４個のレジスタ入力セレクタ２１１，２１２，２１３，２１４とからなる。コマンド記憶部２６０は、４個のコマンドレジスタ２３１，２３２，２３３，２３４と、１個のコマンドセレクタ２０５とからなる。
【００２３】
コマンド記憶部２６０中の４個のコマンドレジスタ２３１〜２３４は、各々５個のマスタ１０１〜１０５のうちのいずれかから受け付けたアクセスコマンド１５０を保持するためのストレージ要素であって、各々レジスタ番号０，１，２，３により特定される。これらコマンドレジスタ２３１〜２３４の各々は、コマンド書き込み制御部２０１からロード（load）／ホールド（hold）信号２６を受け取り、当該信号２６が「ロード」を指示する場合にはアクセスコマンド１５０が新たに書き込まれ、当該信号２６が「ホールド」を指示する場合には現在保持しているアクセスコマンドをそのまま保持する。コマンドセレクタ２０５は、コマンド管理部２５０から与えられたレジスタ番号信号２７に従って４個のコマンドレジスタ２３１〜２３４のうちの１つを選択し、当該選択したコマンドレジスタから読み出したアクセスコマンド１５２をリソース制御部１１０へ供給するように動作する。
【００２４】
コマンド管理部２５０中の４個のアドレスレジスタ２２１〜２２４は、各々４個のコマンドレジスタ２３１〜２３４のうち有効なアクセスコマンドを保持しているコマンドレジスタを特定するレジスタ番号を保持するためのストレージ要素であって、各々レジスタ番号０，１，２，３により特定される。アドレスセレクタ２０４は、リードポインタ２０３から与えられるリードアドレス信号２２に従って４個のアドレスレジスタ２２１〜２２４のうちの１つを選択し、当該選択したアドレスレジスタから得たレジスタ番号信号２７をコマンドセレクタ２０５に与えるように動作する。しかも、４個のアドレスレジスタ２２１〜２２４は、１つの巡回キュー（circular queue）を構成するように４個のレジスタ入力セレクタ２１１〜２１４を介して互いに連結されている。コマンド追い越し条件判定部２０６は、４個のレジスタ入力セレクタ２１１〜２１４の各々へシフト制御信号２３を、４個のアドレスレジスタ２２１〜２２４の各々へロード／ホールド信号２４をそれぞれ供給する。４個のアドレスレジスタ２２１〜２２４のうちのいずれかに新たに書き込まれるべきレジスタ番号信号２５は、コマンド書き込み制御部２０１から与えられる。４個のレジスタ入力セレクタ２１１〜２１４の各々は、シフト制御信号２３が「１」を示す場合には４個のアドレスレジスタ２２１〜２２４のうちの対応するアドレスレジスタの出力を、シフト制御信号２３が「０」を示す場合にはコマンド書き込み制御部２０１から与えられたレジスタ番号信号２５をそれぞれ選択する。
【００２５】
ライトポインタ２０２は、コマンド書き込み制御部２０１からレジスタ番号信号２５が出力される際に４個のアドレスレジスタ２２１〜２２４のうち当該レジスタ番号信号２５が書き込まれるべきアドレスレジスタの番号を指定するライトアドレス信号２１をコマンド書き込み制御部２０１及びコマンド追い越し条件判定部２０６へ供給した後、自動的にインクリメントされる。リードポインタ２０３は、コマンド発行要求１５１を受け取ったとき、４個のアドレスレジスタ２２１〜２２４のうちレジスタ番号信号２７が次に読み出されるべきアドレスレジスタの番号を指定するリードアドレス信号２２をアドレスセレクタ２０４、コマンド書き込み制御部２０１及びコマンド追い越し条件判定部２０６へ供給した後、自動的にインクリメントされる。これらライトポインタ２０２及びリードポインタ２０３は、アドレスレジスタ２２１〜２２４が１つの巡回キューを構成する点に対応して、「３」の次は「０」に戻るようにインクリメントされる。なお、当該巡回キューの満杯（full）／空（empty）を表すフラグも存在するが、説明を省略する。
【００２６】
コマンド書き込み制御部２０１は、新たに受け付けたアクセスコマンド１５０が４個のコマンドレジスタ２３１〜２３４のうちの空いているコマンドレジスタに保持されるように制御するものである。そのためコマンド書き込み制御部２０１は、ライトアドレス信号２１及びリードアドレス信号２２に基づいて、４個のアドレスレジスタ２２１〜２２４のうちのいずれのアドレスレジスタに有効なレジスタ番号が保持されているかを判定し、更に当該有効なレジスタ番号に基づいて、４個のコマンドレジスタ２３１〜２３４のうちいずれのコマンドレジスタが使用されていないかを判定し、使用されていないコマンドレジスタのうちの１つを新たなアクセスコマンド１５０のロード先として指定するように、４個のコマンドレジスタ２３１〜２３４の各々へロード／ホールド信号２６を出力する。更に、コマンド書き込み制御部２０１は、４個のコマンドレジスタ２３１〜２３４のうちアクセスコマンド１５０のロード先として指定したコマンドレジスタの番号を表す信号２５をコマンド管理部２５０へ出力する。
【００２７】
コマンド追い越し条件判定部２０６は、４個のコマンドレジスタ２３１〜２３４のうち新たに受け付けたアクセスコマンド１５０を保持したコマンドレジスタを特定するレジスタ番号と、先行アクセスコマンドを保持したコマンドレジスタを特定するレジスタ番号とを含む全レジスタ番号がコマンド管理部２５０の中でコマンド発行順に並ぶように、例えばプログラム入力２８を通じて設定された所定のコマンド追い越し条件に従って、４個のアドレスレジスタ２２１〜２２４のレジスタ番号保持順序を制御するものである。そのためコマンド追い越し条件判定部２０６は、アクセスコマンド１５０と、ライトアドレス信号２１と、リードアドレス信号２２と、４個のアドレスレジスタ２２１〜２２４の出力と、４個のコマンドレジスタ２３１〜２３４の出力とを入力する。そして、これらの入力情報に基づいて、４個のレジスタ入力セレクタ２１１〜２１４の各々へ供給すべきシフト制御信号２３と、４個のアドレスレジスタ２２１〜２２４の各々へ供給すべきロード／ホールド信号２４とが決定される。例えば、３個のアドレスレジスタ２２１、２２２，２２３が先行アクセスコマンドのレジスタ番号を保持しており、新たなアクセスコマンド１５０がこれらの先行アクセスコマンドを追い越すことが許される場合、４個のレジスタ入力セレクタ２１１〜２１４の各々に「０」、「１」、「１」及び「１」のシフト制御信号２３が供給され、４個のアドレスレジスタ２２１〜２２４の全てに「ロード」を指示するロード／ホールド信号２４が供給される。逆に追い越しが禁止される場合には、レジスタ入力セレクタ２１４に「０」のシフト制御信号２３が供給されるとともに、４個のアドレスレジスタ２２１〜２２４の各々に「ホールド」、「ホールド」、「ホールド」及び「ロード」を指示するロード／ホールド信号２４が供給される。
【００２８】
図４は、図２中のコマンド書き込み制御部２０１及びコマンド追い越し条件判定部２０６の動作例を示している。この例では、新たに受け付けたアクセスコマンド１５０が共有リソース１１１のうちの優先メモリ空間へのアクセスを要求するアクセスコマンドであるか否かをコマンド追い越し条件の１つとして、コマンド追い越し条件判定部２０６が動作する。優先メモリ空間とは、共有リソース１１１の全部で２５６個のメモリ空間のうち優先的なアクセスを必要とする１又は複数のメモリ空間をいい、各々８ビットの情報で指定される。なお、「ｗ」はライトアドレス信号２１が示すレジスタ番号を初期値とする変数であり、「ｒ」はリードアドレス信号２２が示すレジスタ番号と一致した定数である。
【００２９】
図４によれば、ステップＳ６１にてコマンドキュー１０６が新たなアクセスコマンド１５０を受け付けると、コマンド書き込み制御部２０１は、ステップＳ６２にて当該アクセスコマンド１５０を４個のコマンドレジスタ２３１〜２３４のうちの空きレジスタに保持させるように制御する。ここで、４個のコマンドレジスタ２３１〜２３４のうち新たなアクセスコマンド１５０を保持したコマンドレジスタを指定するレジスタ番号信号２５が、コマンド書き込み制御部２０１から出力される。次に、ステップＳ６３にて、コマンド追い越し条件判定部２０６は、新たなアクセスコマンド１５０が優先メモリ空間へのアクセスコマンドであるかどうかを、コマンド追い越し条件判定部２０６が保持している優先メモリ空間指定情報と、新たなアクセスコマンド１５０中のＡＤＲＳフィールドの情報との比較により判定する。新たなアクセスコマンド１５０が優先メモリ空間へのアクセスコマンドでないときには、追い越しがないようにステップＳ６４にて、４個のアドレスレジスタ２２１〜２２４のうちのｗ段目のアドレスレジスタにコマンド書き込み制御部２０１からのレジスタ番号信号２５を保持させる。一方、新たなアクセスコマンド１５０が優先メモリ空間へのアクセスコマンドであるときには、ステップＳ６５にて変数ｗが定数ｒと比較される。ここでｒ＝ｗのときには、発行待ちのアクセスコマンドが存在しないので、追い越しの必要がないためステップＳ６４へ処理が進む。逆にｒ＝ｗでないときには、コマンド追い越し条件判定部２０６は、ステップＳ６６にて１つ前のアクセスコマンドが優先メモリ空間へのアクセスコマンドであるかどうかを調べる。１つ前のアクセスコマンドとは、４個のアドレスレジスタ２２１〜２２４のうちの（ｗ−１）段目のアドレスレジスタが保持しているレジスタ番号により指定されるコマンドレジスタ中の先行アクセスコマンドである。当該先行アクセスコマンドが優先メモリ空間へのアクセスコマンドであるときには、追い越しをしないようにステップＳ６４へ処理が進む。一方、当該先行アクセスコマンドが優先メモリ空間へのアクセスコマンドでないときには、新たなアクセスコマンド１５０が当該先行アクセスコマンドを追い越すことが許可されるので、ステップＳ６７にて変数ｗをデクリメントして更新したうえ、ステップＳ６５に戻る。この際、アドレスレジスタ２２１〜２２４が１つの巡回キューを構成する点に対応して、「０」の次は「３」に戻るように変数ｗがデクリメントされる。
【００３０】
再度のステップＳ６５にてｒ＝ｗのときには、もはや追い越し判定をすべき先行アクセスコマンドが存在しないので、ステップＳ６４へ進んで現時点での変数ｗをもとに、４個のアドレスレジスタ２２１〜２２４のうちのｗ段目のアドレスレジスタにコマンド書き込み制御部２０１からのレジスタ番号信号２５を保持させるとともに、追い越されるべき先行アクセスコマンドのレジスタ番号をシフトさせる。次のステップＳ６６にて１つ前のアクセスコマンドが優先メモリ空間へのアクセスコマンドであることが判明した場合も、ステップＳ６４へ進んで同様の処理がなされる。ステップＳ６６にて１つ前のアクセスコマンドが優先メモリ空間へのアクセスコマンドでないことが判明した場合には、ステップＳ６７にて変数ｗをデクリメントしてステップＳ６５に戻る。
【００３１】
なお、複数のメモリ空間がそれぞれ優先メモリ空間に指定される場合には、これらの優先メモリ空間の間に優先度の高低を設定してもよい。
【００３２】
図５は、図２中のコマンド書き込み制御部２０１及びコマンド追い越し条件判定部２０６の他の動作例を示している。この例では、新たに受け付けたアクセスコマンド１５０が５個のマスタ１０１〜１０５のうち各々優先マスタに指定された１又は複数のマスタから発行されたアクセスコマンドであるか否かをコマンド追い越し条件の１つとして、コマンド追い越し条件判定部２０６が動作する。しかも、新たなアクセスコマンド１５０と先行アクセスコマンドとが同じメモリ空間へのアクセスを要求し、かつ両アクセスコマンドのうちの少なくとも一方がライトアクセスを要求している場合には、当該新たなアクセスコマンド１５０が優先マスタからのアクセスコマンドであっても、先行アクセスコマンドの追い越しが禁止されるものとする。
【００３３】
図５中のステップＳ７１及びステップＳ７２の処理は、図４中のステップＳ６１及びステップＳ６２の処理と同じである。図５によれば、ステップＳ７３にて、コマンド追い越し条件判定部２０６は、新たなアクセスコマンド１５０が優先マスタからのアクセスコマンドであるかどうかを、コマンド追い越し条件判定部２０６が保持している優先マスタ指定情報と、新たなアクセスコマンド１５０中のＩＤフィールドの情報との比較により判定する。新たなアクセスコマンド１５０が優先マスタからのアクセスコマンドでないときには、追い越しがないようにステップＳ７４にて、４個のアドレスレジスタ２２１〜２２４のうちのｗ段目のアドレスレジスタに、４個のコマンドレジスタ２３１〜２３４のうち新たなアクセスコマンド１５０を保持したコマンドレジスタを指定するレジスタ番号を保持させる。一方、新たなアクセスコマンド１５０が優先マスタからのアクセスコマンドであるときには、ステップＳ７５にて変数ｗが定数ｒと比較される。ここでｒ＝ｗのときには、発行待ちのアクセスコマンドが存在しないので、追い越しの必要がないためステップＳ７４へ処理が進む。逆にｒ＝ｗでないときには、コマンド追い越し条件判定部２０６は、新たなアクセスコマンド１５０がアクセスを要求しているメモリ空間と、１つ前のアクセスコマンドがアクセスを要求しているメモリ空間とが互いに異なるか否かをステップＳ７６にて調べる。１つ前のアクセスコマンドとは、４個のアドレスレジスタ２２１〜２２４のうちの（ｗ−１）段目のアドレスレジスタが保持しているレジスタ番号により指定されるコマンドレジスタ中の先行アクセスコマンドである。両アクセスコマンドがアクセスを要求しているメモリ空間が一致する場合には、更にステップＳ７８にて両アクセスコマンドが共にリードアクセスを要求しているか否かが調べられる。この際、新たなアクセスコマンド１５０中の最下位ビットの情報（Ｒ／Ｗ）と先行アクセスコマンド中の対応する情報とが参照される。両アクセスコマンドが同じメモリ空間へのアクセスを要求し、かつ少なくとも一方がライトアクセスを要求している場合には、追い越しをしないようにステップＳ７４へ処理が進む。一方、両アクセスコマンドが異なるメモリ空間へのアクセスを要求している場合、又は両アクセスコマンドが共にリードアクセスを要求している場合には、新たなアクセスコマンド１５０が当該先行アクセスコマンドを追い越すことが許可されるので、ステップＳ７７にて変数ｗをデクリメントして更新したうえ、ステップＳ７５に戻る。
【００３４】
再度のステップＳ７５にてｒ＝ｗのときには、もはや追い越し判定をすべき先行アクセスコマンドが存在しないので、ステップＳ７４へ進んで現時点での変数ｗをもとに、４個のアドレスレジスタ２２１〜２２４のうちのｗ段目のアドレスレジスタにコマンド書き込み制御部２０１からのレジスタ番号信号２５を保持させるとともに、追い越されるべき先行アクセスコマンドのレジスタ番号をシフトさせる。次のステップＳ７６及びＳ７８にて新たなアクセスコマンド１５０と１つ前のアクセスコマンドとが同じメモリ空間へのアクセスを要求し、かつ少なくとも一方がライトアクセスを要求していることが判明した場合も、ステップＳ７４へ進んで同様の処理がなされる。一方、両アクセスコマンドが異なるメモリ空間へのアクセスを要求している場合、又は両アクセスコマンドが共にリードアクセスを要求している場合には、ステップＳ７７にて変数ｗをデクリメントしてステップＳ７５に戻る。
【００３５】
なお、複数のマスタがそれぞれ優先マスタに指定される場合には、これらの優先マスタの間に優先度の高低を設定してもよい。また、ステップＳ７８の判断を省略して、新たなアクセスコマンド１５０と先行アクセスコマンドとが同じメモリ空間へのアクセスを要求している場合には、コマンド追い越しが必ず禁止されることとしてもよい。
【００３６】
上記マスタの数は、２以上で任意である。また、コマンドキュー１０６内のレジスタ段数も、２以上で任意である。
【産業上の利用可能性】
【００３７】
以上説明してきたとおり、本発明に係るリソース管理装置は、消費電力低減効果等を有し、複数のマスタがリソースを共有するための技術において特に有用である。
【図面の簡単な説明】
【００３８】
【図１】本発明に係るリソース管理装置の概略構成例を示すブロック図である。
【図２】図１中のコマンドキューに与えられるアクセスコマンドのフォーマットの一例を示す概念図である。
【図３】図１中のコマンドキューの詳細構成例を示すブロック図である。
【図４】図２中のコマンド書き込み制御部及びコマンド追い越し条件判定部の動作例を示すフローチャートである。
【図５】図２中のコマンド書き込み制御部及びコマンド追い越し条件判定部の他の動作例を示すフローチャートである。
【符号の説明】
【００３９】
１００  アクセス要求調停部
１０１〜１０５  マスタ
１０６  コマンドキュー
１１０  リソース制御部
１１１  共有リソース
１１２  キュー入力セレクタ
２０１  コマンド書き込み制御部
２０２  ライトポインタ
２０３  リードポインタ
２０４  アドレスセレクタ
２０５  コマンドセレクタ
２０６  コマンド追い越し条件判定部
２１１〜２１４  レジスタ入力セレクタ
２２１〜２２４  アドレスレジスタ
２３１〜２３４  コマンドレジスタ
２５０  コマンド管理部
２６０  コマンド記憶部
【図１】
2006099731.tif 000003
【図２】
2006099731.tif 000004
【図３】
2006099731.tif 000005
【図４】
2006099731.tif 000006
【図５】
2006099731.tif 000007