(57)【特許請求の範囲】
【請求項１】
複数のバンクから構成される記憶装置に対して複数のマスタから非同期に発行される複数のコマンドを順次処理するコマンド処理装置であって、
前記複数のマスタの一つからの第１コマンドを選択した場合、前記第１コマンドを発行したマスタに関係し、かつ前記第１コマンドによってアクセスされるバンクとは異なるバンクをアクセスするための第２コマンドを前記第１コマンドに連続して選択した後に、他のマスタからの第３コマンドを選択する調停手段と、
前記調停手段によって選択された前記第１コマンドおよび前記第２コマンドを前記記憶装置に連続して発行する発行手段と
を備えることを特徴とするコマンド処理装置。
【請求項２】
前記各マスタは、コマンドを発行する際に、そのコマンドを、直前に発行したコマンドによってアクセスされるバンクとは異なるバンクを対象として発行し、
前記調停手段は、前記第１コマンドを選択した場合、前記第１コマンドを発行したマスタから後続して発行されるコマンドが得られるまで、他のコマンドを選択せずに待ち、前記得られたコマンドを前記第２コマンドとして選択する
ことを特徴とする請求項１に記載のコマンド処理装置。
【請求項３】
前記各マスタは、連続してアクセスされるべきデータを、相異なるバンクにおける予め定められた規則で対応付けられる複数の領域に配置し、
前記調停手段は、前記第１コマンドを選択した場合、前記第１コマンドによってアクセスされるバンクの領域に前記規則で対応付けられる他のバンクの領域を対象とするコマンドを生成し、前記生成されたコマンドを、他のコマンドを選択する前に前記第２コマンドとして前記発行手段へ転送する
ことを特徴とする請求項１に記載のコマンド処理装置。
【請求項４】
前記各マスタは、コマンドを発行する際に、そのコマンドによってアクセスされるバンクとは異なるバンクをアクセスする他のコマンドを後続して発行するか否かを示す指示信号をそのコマンドと共に出力し、
前記調停手段は、前記第１コマンドを選択した場合、前記第１コマンドと共に出力される指示信号が肯定を示す場合にのみ、前記第１コマンドを発行したマスタから後続して発行されるコマンドが得られるまで、他のコマンドを選択せずに待ち、前記得られたコマンドを前記第２コマンドとして選択する
ことを特徴とする請求項１に記載のコマンド処理装置。
【請求項５】
前記調停手段は、同じ画像に関して相異なるバンクに配置される輝度データ及び色差データをそれぞれアクセスするための複数のコマンドを連続して選択する
ことを特徴とする請求項１に記載のコマンド処理装置。
【請求項６】
前記調停手段は、同じグラフィクスデータに関して相異なるバンクに配置される色成分データ及び透明度データ、並びにステンシルデータ及び奥行きデータをそれぞれアクセスするための複数のコマンドを連続して選択する
ことを特徴とする請求項１に記載のコマンド処理装置。
【請求項７】
複数のバンクから構成される記憶装置に対して複数のマスタから非同期に発行されるコマンドを処理する集積回路装置であって、
前記複数のマスタの一つからの第１コマンドを選択した場合、前記第１コマンドを発行したマスタに関係し、かつ前記第１コマンドによってアクセスされるバンクとは異なるバンクをアクセスするための第２コマンドを前記第１コマンドに連続して選択した後に、他のマスタからの第３コマンドを選択する調停回路と、
前記調停回路によって選択された前記第１コマンドおよび前記第２コマンドを前記記憶装置に連続して発行する発行回路と
を備えることを特徴とする集積回路装置。
【請求項８】
複数のバンクから構成される記憶装置に対して複数のマスタから非同期に発行されるコマンドを処理するコマンド処理方法であって、
前記複数のマスタの一つからの第１コマンドを選択した場合、前記第１コマンドを発行したマスタに関係し、かつ前記第１コマンドによってアクセスされるバンクとは異なるバンクをアクセスするための第２コマンドを前記第１コマンドに連続して選択した後に、他のマスタからの第３コマンドを選択する調停ステップと、
前記調停ステップで選択された前記第１コマンドおよび前記第２コマンドを前記記憶装置に連続して発行する発行ステップと
を含むことを特徴とするコマンド処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のバンクから構成される記憶装置に対して複数のマスタから非同期に発行されるコマンドを処理するコマンド処理装置に関するものである。
【背景技術】
【０００２】
従来、複数のバンクから構成される記憶装置にアクセスする場合、データを複数のバンクに分散して配置し、異なるバンクを交互にアクセスすることにより、行アドレスを変更する際に必要な切り替え時間を隠蔽する技術が知られている（例えば、特許文献１参照）。
【０００３】
以下、特許文献１に開示されている画像復号化装置について説明する。
【０００４】
図１は、従来の画像復号化装置のメモリへの画像データのマッピング例を示す図であり、符号化データ用バッファ領域、フレームメモリ１、フレームメモリ２、フレームメモリ３がそれぞれ２つのバンク０、バンク１に分散して配置されている。フレームメモリはそれぞれ、輝度信号用の領域と色信号用の領域から成る。
【０００５】
図２は、従来の画像復号化装置のメモリ制御方式の動作遷移パターンを示す図である。図２に示されるように、符号化データ用バッファ領域、フレームメモリ１ないしフレームメモリ３へのアクセスは、バンク０とバンク１を交互にアクセスし、行アドレスの変更は、バンク０に対する行アドレスを変更する場合は、その直前のバンク１に対するアクセスの期間に行うことにより、行アドレス変更に伴う待ち時間を隠蔽している。
【０００６】
このような交互に異なるバンクへアクセスさせるメモリ制御動作は、例えば単一のマスタ装置の管理下で行われ、（ａ）表示画像データ読出し、（ｂ）参照画像データ読出し、（ｃ）符号化データ読出し、（ｄ）符号化データ書き込み、（ｅ）復号画像データ書き込み、といった異なるタイプのアクセス間にまたがる箇所においても守られる。
【特許文献１】特開平８−６５６８６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記従来の画像復号化装置では、前述した各タイプのアクセスが、例えば異なる複数のマスタ装置から非同期に行われ、しかも競合する可能性がある場合には、必ずしもバンク０とバンク１とを交互にアクセスすることができず、そうなると行アドレス変更に伴う待ち時間の隠蔽ができなくなるという問題が生じる。
【０００８】
本発明は上記従来の問題点を解決するもので、前述した各タイプのアクセスが競合する場合でも、バンク０とバンク１を交互にアクセスすることができるコマンド処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
この目的を達成するために、本発明のコマンド処理装置は、複数のバンクから構成される記憶装置に対して複数のマスタから非同期に発行される複数のコマンドを順次処理するコマンド処理装置であって、前記複数のマスタの一つからの第１コマンドを選択した場合、前記第１コマンドを発行したマスタに関係し、かつ前記第１コマンドによってアクセスされるバンクとは異なるバンクをアクセスするための第２コマンドを前記第１コマンドに連続して選択した後に、他のマスタからの第３コマンドを選択する調停手段と、前記調停手段によって選択された前記第１コマンドおよび前記第２コマンドを前記記憶装置に連続して発行する発行手段とを備える。
【００１０】
ここで、連続してアクセスされる相異なるバンクには、同じ画像に関する輝度データ及び色差データが配置されているとしてもよく、また、同じグラフィクスデータに関する色成分データ及び透明度データ、並びにステンシルデータ及び奥行きデータが配置されているとしてもよい。
【００１１】
この構成によれば、相異なるバンクをアクセスするための複数のコマンドが連続して選択され発行されるので、同じバンクをアクセスするコマンドが続けて発行されることがない。これにより、先のバンクをアクセスした後、後のバンクをアクセスしている間に、前記先のバンクについて次にアクセスされるべき行アドレスを変更することができるので、同一バンクの行アドレスを変更する際に必要な切り替え時間を必ず隠蔽し、高いスループットでデータをアクセスできるコマンド処理装置が実現される。
【００１２】
また、前記各マスタが、コマンドを発行する際に、そのコマンドを、直前に発行したコマンドによってアクセスされるバンクとは異なるバンクを対象として発行することが予め分かっている場合には、前記調停手段は、一つのマスタからのコマンドを選択した場合、同一のマスタから後続するコマンドが得られるまで待ち、前記後続するコマンドを選択してもよい。
【００１３】
これにより、同じバンクへの連続するアクセスを回避できる。
【００１４】
また、前記各マスタが、連続してアクセスされるべきデータを、相異なるバンクにおける予め定められた規則で対応付けられる複数の領域に配置する場合には、前記調停手段は、一つのマスタからのコマンドを選択した場合、前記選択されたコマンドによってアクセスされるバンクの領域に前記規則で対応付けられる他のバンクの領域を対象とするコマンドを生成し、前記生成されたコマンドを選択してもよい。
【００１５】
これにより、同じバンクへの連続するアクセスの回避と共に、マスタのコマンド発行負荷を軽減する効果も得られる。
【００１６】
また、前記各マスタは、コマンドを発行する際に、そのコマンドによってアクセスされるバンクとは異なるバンクをアクセスする他のコマンドを後続して発行するか否かを示す指示信号をそのコマンドと共に出力し、前記調停手段は、一つのマスタからのコマンドを選択した場合、前記コマンドと共に出力される指示信号が肯定を示す場合にのみ、同一のマスタから後続するコマンドが得られるまで待ち、前記後続するコマンドを選択してもよい。
【００１７】
この構成によれば、マスタから異なるバンクを対象とするコマンドが後続して発行されない場合に、前記調停手段がそのコマンドを待ち続ける不都合を回避できる。
【００１８】
なお、本発明は、このようなコマンド処理装置として実現できるだけでなく、集積回路装置、及びコマンド処理方法として実現することもできる。
【発明の効果】
【００１９】
本発明のコマンド処理装置によれば、相異なるバンクをアクセスするための複数のコマンドが連続して選択され発行されるので、同じバンクをアクセスするコマンドが続けて発行されることがない。
【００２０】
これにより、先のバンクをアクセスした後、後のバンクをアクセスしている間に、前記先のバンクについて次にアクセスされるべき行アドレスを変更することができるので、同一バンクの行アドレスを変更する際に必要な切り替え時間を必ず隠蔽し、高いスループットでデータをアクセスできるコマンド処理装置が実現される。
【発明を実施するための最良の形態】
【００２１】
以下、本発明の実施形態について、図面を参照しながら説明する。
【００２２】
（第１の実施形態）
図３は、第１の実施形態におけるコマンド処理装置３０９の機能的な構成の一例を示すブロック図である。コマンド処理装置３０９は、複数のバンク（例えばバンク０とバンク１）から構成される記憶装置３０８に対してマスタＡ３００、マスタＢ３０１、及びマスタＣ３０２から非同期に発行されるコマンドを処理するコマンド処理装置であって、バッファ部３０３、３０４、３０５、調停部３０６、及び発行部３０７から構成される。
【００２３】
マスタＡ３００、マスタＢ３０１、マスタＣ３０２によってアクセスされるデータは、記憶装置３０８のバンク０とバンク１に分散して配置されており、マスタＡ３００、マスタＢ３０１、マスタＣ３０２は記憶装置３０８にアクセスする時には、バンク０から始まり、バンク１、バンク０のように、バンク０とバンク１に対して交互にコマンドを発行する。
【００２４】
ここで、典型的な一例として、記憶装置３０８のバンク０には画像の輝度データが配置され、バンク１にはその画像の色差データが配置されるとしてもよい。
【００２５】
また、他の典型的な一例として、記憶装置３０８のバンク０にはグラフィクスデータの色成分データ及び透明度データ（一般にＲＧＢαデータと称される）が配置され、バンク１にはそのグラフィクスデータのステンシルデータ及び奥行きデータ（一般にＳＺデータと称される）が配置されるとしてもよい。
【００２６】
バッファ部３０３、３０４、及び３０５は並行動作し、それぞれマスタＡ３００、マスタＢ３０１、及びマスタＣ３０２から非同期に発行されるコマンドを取得する。
【００２７】
図４は、第１の実施形態におけるコマンド処理装置３０９が行うコマンド処理を示すフローチャートである。
【００２８】
このフローチャートは、マスタＡ３００、マスタＢ３０１、及びマスタＣ３０２から発行されたコマンドが、それぞれバッファ部３０３、３０４、及び３０５によって取得された後、記憶装置３０８へ転送されるまでの処理を示している。
【００２９】
調停部３０６は、バッファ部３０３、３０４、及び３０５からコマンドを読み出し（Ｓ４００）、読み出されたコマンドを調停することによって一つのマスタに係るコマンドを選択する（Ｓ４０１）。本発明はこの調停の具体的な方法を限定しないが、一例を挙げれば、周知のラウンドロビン法を用いてこの調停を行うことができる。
【００３０】
調停部３０６は、調停の結果、マスタＡ３００のコマンドを選択した場合（Ｓ４０２でＹｅｓ）、マスタＡ３００の次のコマンドが読み出し可能であるかどうかを判定する（Ｓ４０３）。
【００３１】
そして、マスタＡ３００の次のコマンドが読み出し不可であった場合（Ｓ４０３でＮｏ）、１サイクル待ち（Ｓ４０４）、マスタＡ３００の次のコマンドが読み出し可能であった場合（Ｓ４０３でＹｅｓ）、マスタＡ３００の次のコマンドをバッファ部３０３から読み出す（Ｓ４０５）。
【００３２】
調停部３０６は、調停の結果、マスタＢ３０１のコマンドを選択した場合（Ｓ４０６でＹｅｓ）、マスタＢ３０１の次のコマンドが読み出し可能であるかどうかを判定する（Ｓ４０７）。
【００３３】
そして、マスタＢ３０１の次のコマンドが読み出し不可であった場合（Ｓ４０７でＮｏ）、１サイクル待ち（Ｓ４０８）、マスタＢ３０１の次のコマンドが読み出し可能であった場合（Ｓ４０７でＹｅｓ）、マスタＢ３０１の次のコマンドをバッファ部３０４から読み出す（Ｓ４０９）。
【００３４】
調停部３０６は、調停の結果、マスタＡ３００のコマンドでも、マスタＢ３０１のコマンドでもなく、マスタＣ３０２のコマンドを選択した場合（Ｓ４０６でＮｏ）、マスタＣ３０２の次のコマンドが読み出し可能であるかどうかを判定する（Ｓ４１０）。
【００３５】
そして、マスタＣ３０２の次のコマンドが読み出し不可であった場合（Ｓ４１０でＮｏ）、１サイクル待ち（Ｓ４１１）、マスタＣ３０２の次のコマンドが読み出し可能であった場合（Ｓ４１０でＹｅｓ）、マスタＣ３０２の次のコマンドをバッファ部３０５から読み出す（Ｓ４１２）。
【００３６】
調停部３０６は、コマンド調停ステップＳ４０１で調停された結果のコマンドと、マスタＡコマンド読み出しステップＳ４０５、マスタＢコマンド読み出しステップＳ４０９、マスタＣコマンド読み出しステップＳ４１２のいずれかで読み出された２つ目のコマンドとを、発行部３０７へ転送し（Ｓ４１３）、発行部３０７は、調停部３０６から転送されたコマンドを記憶装置３０８へ発行する（Ｓ４１４）。
【００３７】
以上のように構成された本実施例のコマンド処理装置の動作の具体例について詳細に説明する。
【００３８】
まず、マスタＡ３００、マスタＢ３０１、マスタＣ３０２が非同期に記憶装置３０８にコマンドを発行する。マスタＡ３００の発行したコマンドはバッファ部３０３に、マスタＢ３０１の発行したコマンドはバッファ部３０４に、マスタＣ３０２の発行したコマンドはバッファ部３０５にそれぞれ一旦格納される。
【００３９】
調停部３０６は、バッファ部３０３ないし３０５に格納されたコマンドをコマンド読み出しステップＳ４００で読み出し、コマンド調停ステップＳ４０１で３つのマスタのコマンド間の調停を実施し、１つのマスタのコマンドを選択する。
【００４０】
選択されたコマンドは、マスタＡコマンド判定ステップＳ４０２で、マスタＡ３００のコマンドかどうか判定される。選択されたコマンドが、マスタＡ３００のコマンドである場合、マスタＡコマンド読み出し可否判定ステップＳ４０３に遷移し、マスタＡ３００の次のコマンドが読み出し可能かどうかを判断する。
【００４１】
マスタＡ３００の次のコマンドが読み出し可能でない場合は、待ちステップＳ４０４に遷移して１サイクル待ち、再度マスタＡコマンド読み出し可否判定ステップＳ４０３に遷移する。マスタＡ３００の次のコマンドが読み出し可能になるまで、待ちステップＳ４０４とマスタＡコマンド読み出し可否判定ステップＳ４０３の間の遷移を繰り返す。
【００４２】
マスタＡコマンド読み出し可否判定ステップＳ４０３で、マスタＡ３００の次のコマンドが読み出し可能になると、マスタＡコマンド読み出しステップＳ４０５に遷移し、マスタＡ３００の次のコマンドを読み出し、コマンド転送ステップＳ４１３へ遷移し、コマンド調停ステップＳ４０１で選択されたコマンドと、マスタＡコマンド読み出しステップＳ４０５で読み出されたコマンドの２つのマスタＡのコマンドが、発行部３０７へ転送される。
【００４３】
発行部３０７へ転送された２つのコマンドは、コマンド発行ステップＳ４１４で連続して記憶装置３０８に発行される。ここで、マスタＡ３００は、バンク０とバンク１に対して交互にコマンドを発行するため、コマンド調停ステップＳ４００で選択されたコマンドと、マスタＡコマンド読み出しステップＳ４０５で読み出されたコマンドの２つのマスタＡのコマンドは、それぞれ異なるバンクに対するコマンドである。
【００４４】
コマンド転送ステップＳ４１３で、コマンド調停ステップＳ４００で選択されたコマンドと、マスタＡコマンド読み出しステップＳ４０５で読み出されたコマンドの２つのマスタＡのコマンドとが発行部３０７へ転送された後、再度図４に示される処理に従って３つのマスタのコマンド間の新たな調停が行われ、次のコマンドが選択される。
【００４５】
次に選択されたコマンドは、マスタＡコマンド判定ステップＳ４０２で、マスタＡ３００のコマンドかどうか判定される。選択されたコマンドが、マスタＢ３０１のコマンドである場合、マスタＡ３００のコマンドではないため、マスタＢコマンド判定ステップＳ４０６に遷移する。選択されたコマンドはマスタＢ３０１のコマンドであるので、マスタＢコマンド読み出し可否判定ステップＳ４０７に遷移し、マスタＢ３０１の次のコマンドが読み出し可能であるかを判定する。
【００４６】
マスタＢ３０１の次のコマンドが読み出し可能でない場合は、待ちステップＳ４０８に遷移して１サイクル待ち、再度マスタＢコマンド読み出し可否判定ステップＳ４０７に遷移する。マスタＢ３０１の次のコマンドが読み出し可能になると、マスタＢコマンド読み出しステップＳ４０９に遷移し、マスタＢ３０１の次のコマンドを読み出し、コマンド転送ステップＳ４１３に遷移し、コマンド調停ステップＳ４００で選択されたコマンドと、マスタＢコマンド読み出しステップＳ４０９で読み出されたコマンドの２つのマスタＢのコマンドとが、発行部３０７へ転送される。
【００４７】
発行部３０７へ転送された２つのコマンドは、コマンド発行ステップＳ４１４で連続して記憶装置３０８に発行される。ここで、マスタＡ３００と同様、マスタＢ３０１も、バンク０とバンク１に対して交互にコマンドを発行するため、コマンド調停ステップＳ４００で選択されたコマンドと、マスタＢコマンド読み出しステップＳ４０９で読み出されたコマンドの２つのマスタＢのコマンドは、それぞれ異なるバンクに対するコマンドである。
【００４８】
ここで、マスタＡ３００、マスタＢ３０１、マスタＣ３０２のいずれもバンク０から始まり、バンク１、バンク０と交互にアクセスするので、マスタＡのコマンドとマスタＢのコマンドが、コマンド発行ステップＳ４１４で連続して記憶装置３０８に発行される場合、発行されるコマンドのバンクは、バンク０、バンク１、バンク０、バンク１の順になっており、バンク０とバンク１とが交互にアクセスされるので、行アドレスを変更する際に必要な切り替え時間を隠蔽することができる。
【００４９】
以上のように、本実施形態によれば、記憶装置３０８に非同期に、連続して２つのバンク０とバンク１に対するコマンドを発行するマスタＡ３００、マスタＢ３０１、マスタＣ３０２のコマンドを、調停部３０６で２つ連続して選択し、記憶装置３０８に発行することによって、行アドレスを変更する際に必要な切り替え時間を隠蔽することができる。
【００５０】
この連続して選択される２つのコマンドは、先に述べた典型的な一例によれば、画像の輝度データをアクセスするためのコマンド及び色差データをアクセスするためのコマンドであり、また、他の典型的な一例によれば、グラフィクスデータの色成分データ及び透明度データをアクセスするためのコマンドとステンシルデータ及び奥行きデータをアクセスするためのコマンドである。
【００５１】
なお、実施形態１では、記憶装置が２つのバンクから構成され、３つのマスタが発行するコマンドが１つのバンクに対するコマンドである場合を記載したが、記憶装置が４つのバンクから構成され、３つのマスタが発行するコマンドが２つのバンクに対するコマンドである場合でも、１つのコマンドのそれぞれのバンクの転送サイズが、行アドレスを変更する際に必要な切り替え時間を隠蔽するには小さすぎる場合は、バンク０とバンク１に対するコマンドと、バンク２とバンク３に対するコマンドを調停部で２つ連続して選択することにより同様の効果が得られる。
【００５２】
（第２の実施形態）
次に、第２の実施形態におけるコマンド処理装置について説明する。第２の実施の形態では、マスタＡ３００、マスタＢ３０１、マスタＣ３０２から連続してアクセスされるべきデータは、記憶装置３０８のバンク０とバンク１との予め定められた規則で対応付けられる複数の領域に分散して配置されるとする。
【００５３】
そのような配置の一つの典型として、画像の一つの画素に関する輝度データと色差データとが、それぞれバンク０とバンク１とにおける所定のベースアドレスから同じオフセットにある領域に配置される例が挙げられる。輝度データと色差データとの密度が異なる場合は、輝度データと色差データとについて密度の比を反映した異なるオフセットが用いられる。
【００５４】
マスタＡ３００がアクセスするバンク１に配置されたデータのアドレスは、バンク０に割り当てられたデータのアドレスから前記規則に従って算出でき、ゆえにマスタＡ３００の記憶装置３０８のバンク１に対するコマンドは、マスタＡ３００の記憶装置３０８のバンク０に対するコマンドから作成可能である。
【００５５】
同様に、マスタＢ３０１、マスタＣ３０２がアクセスするバンク１に配置されたデータのアドレスは、それぞれのマスタのバンク０に割り当てられたデータのアドレスから前記規則に従って算出でき、ゆえにマスタＢ３０１、マスタＣ３０２の記憶装置３０８のバンク１に対するコマンドは、マスタＢ３０１、マスタＣ３０２の記憶装置３０８のバンク０に対するコマンドから作成可能である。
【００５６】
マスタＡ３００、マスタＢ３０１、マスタＣ３０２は記憶装置３０８にアクセスする時には、バンク０に対するコマンドのみ発行する。
【００５７】
第２の実施形態におけるコマンド処理装置は、第１の実施形態におけるコマンド処理装置と比べて、同様の構成（図３参照）を有し、バンク０に対するコマンドに対応するバンク１に対するコマンドを生成し、バンク０に対するコマンドと生成されたバンク１に対するコマンドとを連続して発行する点で異なる。
【００５８】
以下、第２の実施形態におけるコマンド処理装置の動作について説明する。
【００５９】
図５は、第２の実施形態におけるコマンド処理装置３０９が行うコマンド処理を示すフローチャートである。
【００６０】
このフローチャートは、マスタＡ３００、マスタＢ３０１、及びマスタＣ３０２から発行されたバンク０に対するコマンドが、それぞれバッファ部３０３、３０４、及び３０５によって取得された後、調停部３０６によって生成されたバンク１に対するコマンドと共に記憶装置３０８へ転送されるまでの処理を示している。
【００６１】
調停部３０６は、バッファ部３０３、３０４、及び３０５からコマンドを読み出し（Ｓ５００）、読み出されたコマンドを調停することによって一つのマスタに係るコマンドを選択する（Ｓ５０１）。本発明はこの調停の具体的な方法を限定しないが、一例を挙げれば、周知のラウンドロビン法を用いてこの調停を行うことができる。
【００６２】
調停部３０６は、調停の結果、マスタＡ３００のコマンドを選択した場合（Ｓ５０２でＹｅｓ）、マスタＡ３００のバンク１に対するコマンドを生成する（Ｓ５０３）。
【００６３】
調停部３０６は、調停の結果、マスタＢ３０１のコマンドを選択した場合（Ｓ５０４でＹｅｓ）、マスタＢ３０１のバンク１に対するコマンドを生成する（Ｓ５０５）。
【００６４】
調停部３０６は、調停の結果、マスタＡ３００のコマンドでも、マスタＢ３０１のコマンドでもなく、マスタＣ３０２のコマンドを選択した場合（Ｓ５０４でＮｏ）、マスタＣ３０２のバンク１に対するコマンドを生成する（Ｓ５０６）。
【００６５】
調停部３０６は、コマンド調停ステップＳ５０１で調停の結果選択されたバンク０に対するコマンドと、マスタＡコマンド生成ステップＳ５０３、マスタＢコマンド生成ステップＳ５０５、マスタＣコマンド生成ステップＳ５０６のいずれかで生成されたバンク１に対するコマンドとを、発行部３０７へ転送し（Ｓ５０７）、発行部３０７は、調停部３０６から転送されたコマンドを記憶装置３０８へ発行する（Ｓ５０８）。
【００６６】
以上のように構成された本実施例のコマンド処理装置の動作の具体例について詳細に説明する。
【００６７】
まず、マスタＡ３００、マスタＢ３０１、マスタＣ３０２が非同期に記憶装置３０８のバンク０に対するコマンドを発行する。マスタＡ３００の発行したコマンドはバッファ部３０３に、マスタＢ３０１の発行したコマンドはバッファ部３０４に、マスタＣ３０２の発行したコマンドはバッファ部３０５にそれぞれ一旦格納される。
【００６８】
調停部３０６は、バッファ部３０３ないし３０５に格納されたコマンドをコマンド読み出しステップＳ５００で読み出し、コマンド調停ステップＳ５０１で３つのマスタのコマンド間の調停を実施し、１つのマスタのコマンドを選択する。
【００６９】
選択されたコマンドは、マスタＡコマンド判定ステップＳ５０２で、マスタＡ３００のコマンドかどうか判定される。選択されたコマンドがマスタＡ３００のコマンドである場合、マスタＡコマンド作成ステップＳ５０３に遷移する。ここで、マスタＡ３００のバンク１に割り当てられたデータのアドレスは、バンク０に割り当てられたデータのアドレスより計算できるため、マスタＡコマンド作成ステップＳ５０３で、マスタＡ３００の次のバンク１に対するコマンドを作成することができる。
【００７０】
次に、コマンド調停ステップＳ５０１で選択されたコマンドと、マスタＡコマンド作成ステップＳ５０３で作成されたコマンドは、コマンド転送ステップＳ５０７で、発行部３０７へ転送される。発行部３０７へ転送された２つのコマンドは、コマンド発行ステップＳ５０７で連続して記憶装置３０８に発行される。ここで、コマンド発行ステップＳ５０７で連続して記憶装置３０８に発行されるコマンドは、バンク０に対するコマンドと、バンク１に対するコマンドである。
【００７１】
コマンド転送ステップＳ５０７で、コマンド調停ステップＳ５００で選択されたコマンドと、マスタＡコマンド作成ステップＳ５０３で作成されたコマンドの２つのマスタＡのコマンドが、発行部３０７へ転送された後、再度図５に示される処理に従って３つのマスタのコマンド間の新たな調停が行われ次のコマンドが選択される。
【００７２】
次に選択されたコマンドは、マスタＡコマンド判定ステップＳ５０２でマスタＡ３００のコマンドかどうか判定される。選択されたコマンドがマスタＢ３０１のコマンドである場合、マスタＡ３００のコマンドではないため、マスタＢコマンド判定ステップＳ５０４に遷移する。選択されたコマンドはマスタＢ３０１のコマンドであるので、マスタＢコマンド作成ステップＳ５０５に遷移し、マスタＢ３０１の次のバンク１に対するコマンドを作成する。次に、コマンド調停ステップＳ５０１で選択されたコマンドと、マスタＢコマンド作成ステップＳ５０５で作成されたコマンドは、コマンド転送ステップＳ５０７で、発行部３０７へ転送される。
【００７３】
発行部３０７へ転送された２つのコマンドは、コマンド発行ステップＳ５０７で連続して記憶装置３０８に発行される。ここで、コマンド発行ステップＳ５０７で連続して記憶装置３０８に発行されるコマンドは、やはりバンク０に対するコマンドと、バンク１に対するコマンドである。
【００７４】
マスタＡのコマンドとマスタＢのコマンドが、コマンド発行ステップＳ５０８で連続して記憶装置３０８に発行される場合、発行されるコマンドのバンクは、バンク０、バンク１、バンク０、バンク１の順になっており、バンク０とバンク１とが交互にアクセスされるので、行アドレスを変更する際に必要な切り替え時間を隠蔽することができる。
【００７５】
以上のように、本実施形態によれば、記憶装置３０８のバンク０に対してのみ非同期にコマンドを発行し、そのバンク１へのコマンドはバンク０へのコマンドから計算可能なマスタＡ３００、マスタＢ３０１、マスタＣ３０２の、記憶装置３０８のバンク０に対するコマンドを調停部３０６で調停し、バンク１に対するコマンドを調停部３０６で作成し、マスタＡ３００、マスタＢ３０１、マスタＣ３０２のコマンドを２つ連続して記憶装置３０８に発行することによって、行アドレスを変更する際に必要な切り替え時間を隠蔽することができる。
【００７６】
なお、実施形態２では、記憶装置が２つのバンクから構成され、３つのマスタが発行するコマンドが１つのバンクに対するコマンドである場合を記載したが、記憶装置が４つのバンクから構成され、３つのマスタが発行するコマンドが２つのバンクに対するコマンドである場合でも、１つのコマンドのそれぞれのバンクの転送サイズが、行アドレスを変更する際に必要な切り替え時間を隠蔽するには小さすぎる場合は、バンク０とバンク１に対するコマンドからバンク２とバンク３に対するコマンドを調停部で作成し、同一マスタのコマンドを２つ連続して記憶装置に発行することにより同様の効果が得られる。
【００７７】
（第３の実施形態）
次に、第３の実施形態におけるコマンド処理装置について説明する。
【００７８】
図６は、第３の実施形態におけるコマンド処理装置６１５の機能的な構成の一例を示すブロック図である。コマンド処理装置６１５は、複数のバンク（例えばバンク０とバンク１）から構成される記憶装置６０８に対してマスタＡ６００、マスタＢ６０１、及びマスタＣ６０２から非同期に発行されるコマンドを処理するコマンド処理装置であって、バッファ部６０３、６０４、６０５、調停部６０６、及び発行部６０７から構成される。
【００７９】
第３の実施の形態では、マスタＡ６００、マスタＢ６０１、マスタＣ６０２によってアクセスされるデータは、記憶装置６０８のバンク０とバンク１に分散して配置されており、マスタＡ６００、マスタＢ６０１、マスタＣ６０２は、記憶装置６０８のバンク０、もしくはバンク１のいずれか一方にのみ単独でアクセスする場合と、バンク０とバンク１の両方に連続してアクセスする場合がある。
【００８０】
マスタＡ６００は、記憶装置６０８のバンク０、もしくはバンク１のいずれか一方にのみ単独でアクセスする場合、調停部６０６へコマンドを発行し、連続選択要求信号６０９、６１０をアサートしない。マスタＡ６００は、バンク０とバンク１に連続してアクセスする場合、調停部６０６へコマンドを発行すると共に、連続選択要求信号６０９、６１０をアサートする。
【００８１】
マスタＢ６０１、マスタＣ６０２も同様に、記憶装置６０８のバンク０、もしくはバンク１のいずれか一方にのみ単独でアクセスする場合、調停部６０６にコマンドを発行し、連続選択要求信号６１１、６１２、６１３、６１４をアサートせず、記憶装置６０８のバンク０とバンク１に連続してアクセスする場合、調停部６０６にコマンドを発行すると共に、連続選択要求信号６１１、６１２、６１３、６１４をアサートする。
【００８２】
つまり、これらの連続選択要求信号は、そのマスタが他のバンクをアクセスする他のコマンドを後続して発行するか否かを示す指示信号である。
【００８３】
図７は、第３の実施形態におけるコマンド処理装置６１５が行うコマンド処理を示すフローチャートである。
【００８４】
このフローチャートは、マスタＡ６００、マスタＢ６０１、及びマスタＣ６０２から発行されたコマンドが、それぞれバッファ部６０３、６０４、及び６０５によって取得された後、記憶装置６０８へ転送されるまでの処理を示している。
【００８５】
調停部６０６は、バッファ部６０３、６０４、及び６０５からコマンドを読み出し（Ｓ７００）、読み出されたコマンドを調停することによって一つのマスタに係るコマンドを選択する（Ｓ７０１）。本発明はこの調停の具体的な方法を限定しないが、一例を挙げれば、周知のラウンドロビン法を用いてこの調停を行うことができる。
【００８６】
調停部６０６は、調停の結果、マスタＡ６００のコマンドを選択した場合（Ｓ７０２でＹｅｓ）、マスタＡ６００からの連続選択要求信号６１０がアサートされているかどうかを判定する（Ｓ７０３）。
【００８７】
連続選択要求信号６１０がアサートされていれば（Ｓ７０３でＹｅｓ）、マスタＡ６００の次のコマンドが読み出し可能となるまで待って（Ｓ７０４〜Ｓ７０５）、マスタＡ６００の次のコマンドをバッファ部６０３から読み出す（Ｓ７０６）。
【００８８】
調停部６０６は、調停の結果、マスタＢ６０１のコマンドを選択した場合（Ｓ７０７でＹｅｓ）、マスタＢ６０１からの連続選択要求信号６１２がアサートされているかどうかを判定する（Ｓ７０８）。
【００８９】
連続選択要求信号６１２がアサートされていれば（Ｓ７０８でＹｅｓ）、マスタＢ６０１の次のコマンドが読み出し可能となるまで待って（Ｓ７０９〜Ｓ７１０）、マスタＢ６０１の次のコマンドをバッファ部６０４から読み出す（Ｓ７１１）。
【００９０】
調停部６０６は、調停の結果、マスタＡ６００のコマンドでも、マスタＢ６０１のコマンドでもなく、マスタＣ６０２のコマンドを選択した場合（Ｓ７０７でＮｏ）、マスタＣ６０２の次のコマンドが読み出し可能となるまで待って（Ｓ７１３〜Ｓ７１４）、マスタＣ６０２の次のコマンドをバッファ部６０５から読み出す（Ｓ７１５）。
【００９１】
調停部６０６は、コマンド調停ステップＳ７０１で調停の結果選択されたコマンドと、マスタＡコマンド読み出しステップＳ７０６、マスタＢコマンド読み出しステップＳ７１１、マスタＣコマンド読み出しステップＳ７１５のいずれかでコマンドが読み出された場合にはその読み出されたコマンドとを発行部６０７へ転送し（Ｓ７１６）、発行部６０７は、調停部６０６から転送されたコマンドを記憶装置６０８へ発行する（Ｓ７１７）。
【００９２】
以上のように構成された本実施例のコマンド処理装置の動作の具体例について詳細に説明する。
【００９３】
まず、マスタＡ６００、マスタＢ６０１、マスタＣ６０２が非同期に記憶装置６０８に対するコマンドを発行する。マスタＡ６００の発行したコマンドはバッファ部６０３に、マスタＢ６０１の発行したコマンドはバッファ部６０４に、マスタＣ６０２の発行したコマンドはバッファ部６０５にそれぞれ一旦格納される。
【００９４】
調停部６０６は、バッファ部６０３ないし６０５に格納されたコマンドをコマンド読み出しステップＳ７００で読み出し、コマンド調停ステップＳ７０１で３つのマスタのコマンド間の調停を実施し、１つのマスタのコマンドを選択する。
【００９５】
選択されたコマンドは、マスタＡコマンド判定ステップＳ７０２で、マスタＡ６００のコマンドかどうかが判定される。選択されたコマンドがマスタＡ６００のコマンドである場合、連続選択判定ステップＳ７０３に遷移し、マスタＡからの連続選択要求信号６１０がアサートされているかどうかの判定が行われる。連続判定ステップＳ７０３で、マスタＡからの連続選択要求信号６１０がアサートされていないと判定すると、選択されたコマンドは、コマンド転送ステップＳ７１６で、発行部６０７へ転送され、コマンド発行ステップＳ７１７で記憶装置６０８に発行される。コマンド転送ステップＳ７１６で、選択されたコマンドが発行部６０７へ転送されると、再度図７に示される処理に従って次のコマンドが選択される。
【００９６】
コマンド調停ステップＳ７０１で再び３つのマスタのコマンド間の調停を実施し、次の１つのコマンドを選択する。
【００９７】
次に選択されたコマンドは、最初に選択されたコマンドと同様、マスタＡコマンド判定ステップＳ７０２で、マスタＡ６００のコマンドかどうかが判定される。選択されたコマンドがマスタＡ６００のコマンドでない場合、マスタＢコマンド判定ステップＳ７０７に遷移し、マスタＢ６０１のコマンドかどうか判定される。選択されたコマンドがマスタＢ６０１のコマンドである場合、連続判定ステップＳ７０８に遷移し、マスタＢ６０１からの連続選択要求信号６１２がアサートされているかどうかの判定が行われる。
【００９８】
マスタＢ６０１からの連続選択要求信号６１２がアサートされていると判定すると、マスタＢコマンド読み出し可否判定ステップＳ７０９に遷移する。マスタＢコマンド読み出し可否判定ステップＳ７０９で、マスタＢ６０１の次のコマンドが読み出し可能かどうかを判断し、読み出し可能でない場合は、待ちステップＳ７１０に遷移して１サイクル待ち、再度マスタＢコマンド読み出し可否判定ステップＳ７０９に遷移する。マスタＢ６０１の次のコマンドが読み出し可能になるまで、待ちステップＳ７１０とマスタＢコマンド読み出し可否判定ステップＳ７１０の間の遷移を繰り返す。
【００９９】
マスタＢ６０１の次のコマンドが読み出し可能になると、マスタＢコマンド読み出しステップＳ７１１に遷移し、マスタＢ６０１の次のコマンドを読み出し、コマンド転送ステップＳ７１６で、コマンド調停ステップＳ７０１で選択されたコマンドと、マスタＢコマンド読み出しステップＳ７１１で読み出された２つのマスタＢ６０１のコマンドが、発行部６０７へ転送される。発行部６０７へ転送された２つのマスタＢ６０１のコマンドは、コマンド発行ステップＳ７１７で連続して記憶装置６０８に発行される。ここで、マスタＢ６０１は、連続選択要求信号６１２をアサートしているため、２つのマスタＢ６０１のコマンドは、異なるバンク０とバンク１に対するコマンドである。
【０１００】
コマンド転送ステップＳ７１６で、マスタＢ６０１の２つのコマンドが発行部６０７へ転送されると、再度図７に示される処理に従って次のコマンドが選択される。
【０１０１】
コマンド調停ステップＳ７０１で再び３つのマスタのコマンド間の調停を実施し、次の１つのコマンドを選択する。
【０１０２】
次に選択されたコマンドは、マスタＡコマンド判定ステップＳ７０２で、マスタＡ６００のコマンドかどうかが判定される。選択されたコマンドがマスタＡ６００のコマンドでない場合、マスタＢコマンド判定ステップＳ７０７に遷移し、マスタＢ６０１のコマンドかどうか判定される。選択されたコマンドがマスタＢ６０１のコマンドでない場合、すなわち、マスタＣ６０２のコマンドである場合、連続判定ステップＳ７１２に遷移し、マスタＣ６０２からの連続選択要求信号６１４がアサートされているかどうかの判定が行われる。連続判定ステップＳ７１２で、マスタＣ６０２からの連続選択要求信号６１４がアサートされていないと判定すると、選択されたコマンドは、コマンド転送ステップＳ７１６により、発行部６０７へ転送され、コマンド発行ステップＳ７１７で記憶装置６０８に発行される。
【０１０３】
ここで、最初に記憶装置６０８に発行されたマスタＡ６００のコマンド、２番目と３番目に記憶装置６０８に発行されたマスタＢのコマンド、４番目に記憶装置６０８に発行されたマスタＣのコマンドのバンクの組合せは、２番目と３番目のマスタＢ６０１のコマンドが、バンク０とバンク１に対するものである場合、図８に示した８つのケースとなる。
【０１０４】
図８のケース１とケース２では、バンク０とバンク１を交互にアクセスしているため、２番目と４番目のアクセスで発生する、行アドレスを変更する際に必要な切り替え時間を全て隠蔽することができる。
【０１０５】
図８のケース３、ケース４では、２番目、３番目、４番目のアクセスで、バンク０とバンク１を交互にアクセスしているため、２番目のアクセスで発生する、行アドレスを変更する際に必要な切り替え時間は隠蔽することはできないが、４番目のアクセスで発生する、行アドレスを変更する際に必要な切り替え時間を隠蔽することができる。
【０１０６】
図８のケース５、ケース６では、１番目、２番目、３番目のアクセスで、バンク０とバンク１を交互にアクセスしているため、３番目のアクセスで発生する、行アドレスを変更する際に必要な切り替え時間は隠蔽することはできるが、４番目のアクセスで発生する、行アドレスを変更する際に必要な切り替え時間を隠蔽することはできない。
【０１０７】
図８のケース７とケース８では、バンク０とバンク１を連続にアクセスしているため、２番目と４番目のアクセスで発生する、行アドレスを変更する際に必要な切り替え時間を全く隠蔽することができない。
【０１０８】
以上のように、本実施形態によれば、記憶装置６０８に対して非同期にコマンドを発行するマスタＡ６００、マスタＢ６０１、マスタＣ６０２が、バンク０とバンク１の両方にコマンドを発行する場合には、連続選択要求信号６１０、６１２、６１４をアサートし、調停部６０６で連続選択要求信号６１０、６１２、６１４をアサートしているマスタのコマンドを連続して選択することにより、前後のコマンドのバンクの組合せによって、８ケース中６ケースで行アドレスを変更する際に必要な切り替え時間を隠蔽することができ、行アドレスを変更する際に必要な切り替え時間を隠蔽できる可能性を向上させることができる。
【０１０９】
なお、実施形態３では、記憶装置が２つのバンクから構成され、３つのマスタが発行するコマンドが１つのバンクに対するコマンドである場合を記載したが、記憶装置が４つのバンクから構成され、３つのマスタが発行するコマンドが２つのバンクに対するコマンドである場合でも、１つのコマンドのそれぞれのバンクの転送サイズが、行アドレスを変更する際に必要な切り替え時間を隠蔽するには小さすぎる場合は、バンク０とバンク１に対するコマンドと、バンク２とバンク３に対するコマンドを両方発行する場合に、連続選択要求信号をアサートし、調停部で連続して選択することにより同様の効果が得られる。
【０１１０】
なお、実施形態１ないし実施形態３では、３つのマスタが記憶装置にアクセスする場合を記載したが、記憶装置にアクセスするマスタは３つに限らない。
【０１１１】
さらに、実施形態１ないし実施形態３では、記憶装置が２つ、もしくは４つのバンクから構成される場合を記載したが、記憶装置を構成するバンクは２つ、もしくは４つに限らない。
【０１１２】
さらに、実施形態１ないし実施形態３では、３つのマスタ全てが同種のアクセスをする場合を記載したが、３つのマスタのうち１つでも実施形態１ないし実施形態３に記載の動作をすることにより、効果の程度は減少する場合があるものの同様の効果が得られる。
【０１１３】
さらに、実施形態１ないし実施形態３のコマンド処理方法を組み合わせることによっても、実施形態１ないし実施形態３で得られた同様の効果が得られる。
【０１１４】
また、実施形態１ないし実施形態３で説明したコマンド処理装置を、そのコマンド処理装置に含まれる各部の機能を有する回路ブロックから構成される集積回路装置として実現することも可能である。
【産業上の利用可能性】
【０１１５】
本発明にかかるコマンド処理装置は、複数のバンクから構成される記憶装置を対象とする調停回路として有用である。
【図面の簡単な説明】
【０１１６】
【図１】図１は、従来技術の画像復号化装置のメモリへの画像データのマッピング例を示す図である。
【図２】図２は、従来技術の画像符号化装置のメモリ制御方式の動作遷移パターンを示す図である。
【図３】図３は、第１の実施形態におけるコマンド処理装置の機能的な構成の一例を示すブロック図である。
【図４】図４は、第１の実施形態におけるコマンド処理装置の動作を示すフローチャートである。
【図５】図５は、第２の実施形態におけるコマンド処理装置の動作を示すフローチャートである。
【図６】図６は、第３の実施形態におけるコマンド処理装置の機能的な構成の一例を示すブロック図である。
【図７】図７は、第３の実施形態におけるコマンド処理装置の動作を示すフローチャートである。
【図８】図８は、第３の実施形態におけるコマンド処理装置から発行されるコマンドの対象となるバンクの組合せの一例を示す図である。
【符号の説明】
【０１１７】
３００  マスタＡ
３０１  マスタＢ
３０２  マスタＣ
３０３、３０４、３０５  バッファ部
３０６  調停部
３０７  発行部
３０８  記憶装置
３０９  コマンド処理装置
６００  マスタＡ
６０１  マスタＢ
６０２  マスタＣ
６０３、６０４、６０５  バッファ部
６０６  調停部
６０７  発行部
６０８  記憶装置
６０９〜６１４  連続選択要求信号
６１５  コマンド処理装置
【図１】
0004690424.tif 000002
【図２】
0004690424.tif 000003
【図３】
0004690424.tif 000004
【図４】
0004690424.tif 000005
【図５】
0004690424.tif 000006
【図６】
0004690424.tif 000007
【図７】
0004690424.tif 000008
【図８】
0004690424.tif 000009