(57)【特許請求の範囲】
【請求項１】
複数の記憶素子からなり、データを保持するため該記憶素子に電荷を補充するプリチャージ操作を必要とするダイナミックランダムアクセスメモリと、
上記ダイナミックランダムアクセスメモリの記憶領域を４分割したバンク毎に、該ダイナミックランダムアクセスメモリに行われたアクセスを管理し、画像データに対して冗長度を削減する符号化処理に係る動き予測処理、又は、該符号化処理によって符号化されたデータを復号する復号処理に係る動き補償処理において用いられる参照画像データの各ピクチャを複数の第１の画像領域に分割し、該分割した上記各第１の画像領域を水平方向及び垂直方向に２分割した合計４個の第２の画像領域に対応するデータを、上記ダイナミックランダムアクセスメモリの記憶領域を４分割したバンクに割り当てて記憶するメモリコントローラと、
バスを介して上記メモリコントローラと接続され、上記ダイナミックランダムアクセスメモリに記憶されているデータをキャッシュするキャッシュメモリと、
上記キャッシュメモリを介して、上記ダイナミックランダムアクセスメモリにリードアクセスを行い、上記ダイナミックランダムアクセスメモリが記憶する参照画像データを用いて、上記動き予測処理又は上記動き補償処理を行う情報処理ブロックとを備え、
上記キャッシュメモリは、上記情報処理ブロックが行ったリードアクセスに対するキャッシュミスに応じて上記ダイナミックランダムアクセスメモリに記憶されているデータをキャッシュするリフィル要求を、上記メモリコントローラがバンク単位で管理している各記憶領域に対して生成するリフィル要求生成手段と、上記リフィル要求生成手段により生成されたリフィル要求が上記メモリコントローラが管理している複数のバンクのうち、所定数のバンクに対して揃ったとき、該所定数のバンクに対するリフィル要求を連結して上記ダイナミックランダムアクセスメモリにリードアクセスを行うリードアクセス手段とを有し、
上記情報処理ブロックは、注目画像ブロックを水平方向に順次選択して、該選択した注目画像ブロックに対して処理を行う参照画像データを、上記キャッシュメモリを介して上記ダイナミックランダムアクセスメモリに対してリードアクセスすることにより読み出し、
上記メモリコントローラは、上記第１の画像領域の水平方向に並んだ画素数を、上記注目画素ブロックの水平方向に並んだ画素数の略２倍に設定し、垂直方向に並んだ上記第１の画像領域間で、上記水平方向に２分割した１組２個の第２の画像領域に対応するデータを、それぞれ、１組２個の上記バンクに対して互い違いに割り当てることを特徴とする情報処理装置。
【請求項２】
上記キャッシュメモリは、上記リフィル要求生成手段により生成したリフィル要求を、上記メモリコントローラが管理しているバンク単位で振り分けて格納するリフィル要求格納手段を更に備え、
上記リフィル要求生成手段は、上記情報処理ブロックが行ったリードアクセスに対して、水平方向又は垂直方向に隣接して並んだ１組複数個の第２の画像領域に対応するデータ単位で、キャッシュミスしたか否かを判断して、該キャッシュミスをしたデータを管理する複数のバンクを１組としたバンク群に対するリフィル要求を生成し、
上記リフィル要求格納手段は、上記リフィル要求生成手段により生成されたリフィル要求を、上記バンク群毎に振り分けて格納し、
上記リードアクセス手段は、上記リフィル要求格納手段に格納されている上記リフィル要求が、上記所定数のバンクに対して揃ったとき、該所定数のバンクに対するリフィル要求を連結して、上記ダイナミックランダムアクセスメモリにリードアクセスして、上記参照画像データをキャッシュすることを特徴とする請求項１記載の情報処理装置。
【請求項３】
上記キャッシュメモリは、上記リフィル要求生成手段により生成したリフィル要求を、上記メモリコントローラが管理しているバンク単位で振り分けて格納するリフィル要求格納手段を更に備え、
上記リフィル要求生成手段は、上記情報処理ブロックが行ったリードアクセスに対して、上記第２の画像領域に対応するデータ単位でキャッシュミスをしたか否かを判断して、該キャッシュミスをしたデータを管理する上記各バンクに対してリフィル要求を生成し、  上記リフィル要求格納手段は、上記リフィル要求生成手段が生成したリフィル要求を上記バンク単位で振り分けて格納し、
上記リードアクセス手段は、上記リフィル要求格納手段に格納されている上記リフィル要求が、上記所定数のバンクに対して揃ったとき、該所定数のバンクに対するリフィル要求を連結して上記ダイナミックランダムアクセスメモリにリードアクセスすることを特徴とする請求項１記載の情報処理装置。
【請求項４】
上記情報処理ブロックは、上記リフィル要求を連結することなくリードアクセスさせる非連結通知信号を上記キャッシュメモリに供給し、
上記キャッシュメモリのリードアクセス手段は、上記情報処理ブロックから供給される非連結通知信号に応じて、上記所定数のバンクに対して上記リフィル要求が揃う前に、上記リフィル要求格納手段に格納されたリフィル要求を連結することなく上記ダイナミックランダムアクセスメモリに対してリードアクセスすることを特徴とする請求項２又は３記載の情報処理装置。
【請求項５】
上記キャッシュメモリは、上記ダイナミックランダムアクセスメモリに対してリードアクセスのみを行うことを特徴とする請求項１乃至４の何れか１項記載の情報処理装置。
【請求項６】
複数の記憶素子からなり、データを保持するため該記憶素子に電荷を補充するプリチャージ操作を必要とするダイナミックランダムアクセスメモリと、上記ダイナミックランダムアクセスメモリの記憶領域を４分割したバンク毎に、該ダイナミックランダムアクセスメモリに行われたアクセスを管理し、画像データに対して冗長度を削減する符号化処理に係る動き予測処理、又は、該符号化処理によって符号化されたデータを復号する復号処理に係る動き補償処理において用いられる参照画像データの各ピクチャを複数の第１の画像領域に分割し、該分割した上記各第１の画像領域を水平方向及び垂直方向に２分割した合計４個の第２の画像領域に対応するデータを、上記ダイナミックランダムアクセスメモリの記憶領域を４分割したバンクに割り当てて記憶するメモリコントローラと、バスを介して上記メモリコントローラと接続され、上記ダイナミックランダムアクセスメモリに記憶されているデータをキャッシュするキャッシュメモリと、上記キャッシュメモリを介して、上記ダイナミックランダムアクセスメモリにリードアクセスを行い、上記ダイナミックランダムアクセスメモリが記憶する参照画像データを用いて、上記動き予測処理又は上記動き補償処理を行う情報処理ブロックとを備える情報処理装置の制御方法において、
上記メモリコントローラにより、上記第１の画像領域の水平方向に並んだ画素数を、上記注目画素ブロックの水平方向に並んだ画素数の略２倍に設定し、垂直方向に並んだ上記第１の画像領域間で、上記水平方向に２分割した１組２個の第２の画像領域に対応するデータを、それぞれ、１組２個の上記バンクに対して互い違いに割り当てて記憶し、
上記情報処理ブロックにより、注目画像ブロックを水平方向に順次選択して、該選択した注目画像ブロックに対して処理を行う参照画像データを、上記キャッシュメモリを介して上記ダイナミックランダムアクセスメモリに対してリードアクセスすることにより読み出し、
上記キャッシュメモリにより、上記情報処理ブロックが行ったリードアクセスに対するキャッシュミスに応じて上記ダイナミックランダムアクセスメモリに記憶されているデータをキャッシュするリフィル要求を、上記メモリコントローラがバンク単位で管理している各記憶領域に対して生成し、生成されたリフィル要求が上記メモリコントローラが管理している複数のバンクのうち、所定数のバンクに対して揃ったとき、該所定数のバンクに対するリフィル要求を連結して上記ダイナミックランダムアクセスメモリにリードアクセスを行うことを特徴とする情報処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、キャッシュメモリを介してダイナミックランダムアクセスメモリにアクセスする情報処理ブロックから構成される情報処理装置、及び、この情報処理装置の制御方法に関するものである。
【背景技術】
【０００２】
ＭＰＥＧ２（Moving Picture Experts Group 2）に代表される画像圧縮技術が進歩し、各種の分野で利用されている。このＭＰＥＧ２方式でエンコードされた画像データのデコードは、マクロブロック単位で行われる。具体的にエンコードに係る処理においては、可変長復号処理された注目マクロブロックの画像データから、ＤＣＴ係数と動きベクトルが分離される。ここで、イントラマクロブロックの場合、ＤＣＴ係数が、逆ＤＣＴ変換処理されることで、元の画像とされる。一方、ノンイントラマクロブロックの場合、例えば、予測マクロブロックは、番号順にフレームメモリから読み出され、逆ＤＣＴ変換された対応する注目マクロブロックの画像データと加算される。そして、デコードされたマクロブロックは、出力されると共に、フレームメモリへ転送され、記憶される。
【０００３】
上述の処理では、例えば、予測マクロブロックが、マクロブロック単位で、フレームメモリから読み出される。通常ダイナミックランダムアクセスメモリ（Dynamic Random Access Memory、ＤＲＡＭ）で構成されるフレームメモリは、１ラインが２個または３個程度のページに区分されており、読み出しアドレスが不連続となるため、メモリページミスの発生頻度が高くなるという問題がある。
【０００４】
また、マクロブロックは、フレームメモリに格納されるが、このときも頻繁に書き込みアドレスが不連続となるため、メモリページミスが発生し易くなると共に、マクロブロック単位でデータが転送されるため、フレームメモリのバンド幅の使用効率が悪くなるという問題があった。
【０００５】
このような問題に対して、特許文献１には、入力された画像データを、スライス単位で復号処理し、さらに、復号処理された画像データを、スライス単位で、ＤＲＡＭに転送することにより、フレーム単位でデータを記憶するメモリのバンド幅の使用効率を向上させる画像処理装置が記載されている。この画像処理装置では、ノンイントラマクロブロックに対応する予測マクロブロックの画像データを、フレーム単位でデータを記憶するメモリのアドレスの順番に転送するので、ページミスの発生頻度を低下させることができるという利点がある。
【０００６】
しかしながら、この画像処理装置では、１スライス分の画像データを格納する大きな容量を持つキャッシュメモリが必要である。また、この画像処理装置では、ページミスの発生頻度を低下させることはできるが、発生したページミスによるフレームメモリのバンド幅の使用効率の悪化を回避する点について考慮されていない。また、この画像処理装置ではページ単位という大きな転送長でのアクセスが発生するため、フレームメモリをＤＲＡＭのようなシステムメモリを使用して実装した場合、システムメモリにアクセスする他のバスマスターが本アクセスと競合し、アクセス待ち合わせになると、システム全体の処理性能が悪化するという問題があった。
【０００７】
【特許文献１】特開２０００―１７５２０１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
本発明は、このような実情に鑑みて提案されたものであり、ダイナミックランダムアクセスメモリのバンド幅の使用効率をより高くする情報処理装置、及び、この情報処理装置の制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決するための手段として、本発明に係る情報処理装置は、複数の記憶素子からなり、データを保持するため該記憶素子に電荷を補充するプリチャージ操作を必要とするダイナミックランダムアクセスメモリと、上記ダイナミックランダムアクセスメモリの記憶領域を４分割したバンク毎に、該ダイナミックランダムアクセスメモリに行われたアクセスを管理し、画像データに対して冗長度を削減する符号化処理に係る動き予測処理、又は、該符号化処理によって符号化されたデータを復号する復号処理に係る動き補償処理において用いられる参照画像データの各ピクチャを複数の第１の画像領域に分割し、該分割した上記各第１の画像領域を水平方向及び垂直方向に２分割した合計４個の第２の画像領域に対応するデータを、上記ダイナミックランダムアクセスメモリの記憶領域を４分割したバンクに割り当てて記憶するメモリコントローラと、バスを介して上記メモリコントローラと接続され、上記ダイナミックランダムアクセスメモリに記憶されているデータをキャッシュするキャッシュメモリと、上記キャッシュメモリを介して、上記ダイナミックランダムアクセスメモリにリードアクセスを行い、上記ダイナミックランダムアクセスメモリが記憶する参照画像データを用いて、上記動き予測処理又は上記動き補償処理を行う情報処理ブロックとを備え、上記キャッシュメモリは、上記情報処理ブロックが行ったリードアクセスに対するキャッシュミスに応じて上記ダイナミックランダムアクセスメモリに記憶されているデータをキャッシュするリフィル要求を、上記メモリコントローラがバンク単位で管理している各記憶領域に対して生成するリフィル要求生成手段と、上記リフィル要求生成手段により生成されたリフィル要求が上記メモリコントローラが管理している複数のバンクのうち、所定数のバンクに対して揃ったとき、該所定数のバンクに対するリフィル要求を連結して上記ダイナミックランダムアクセスメモリにリードアクセスを行うリードアクセス手段とを有し、上記情報処理ブロックは、注目画像ブロックを水平方向に順次選択して、該選択した注目画像ブロックに対して処理を行う参照画像データを、上記キャッシュメモリを介して上記ダイナミックランダムアクセスメモリに対してリードアクセスすることにより読み出し、上記メモリコントローラは、上記第１の画像領域の水平方向に並んだ画素数を、上記注目画素ブロックの水平方向に並んだ画素数の略２倍に設定し、垂直方向に並んだ上記第１の画像領域間で、上記水平方向に２分割した１組２個の第２の画像領域に対応するデータを、それぞれ、１組２個の上記バンクに対して互い違いに割り当てることを特徴とする。
【００１０】
また、複数の記憶素子からなり、データを保持するため該記憶素子に電荷を補充するプリチャージ操作を必要とするダイナミックランダムアクセスメモリと、上記ダイナミックランダムアクセスメモリの記憶領域を４分割したバンク毎に、該ダイナミックランダムアクセスメモリに行われたアクセスを管理し、画像データに対して冗長度を削減する符号化処理に係る動き予測処理、又は、該符号化処理によって符号化されたデータを復号する復号処理に係る動き補償処理において用いられる参照画像データの各ピクチャを複数の第１の画像領域に分割し、該分割した上記各第１の画像領域を水平方向及び垂直方向に２分割した合計４個の第２の画像領域に対応するデータを、上記ダイナミックランダムアクセスメモリの記憶領域を４分割したバンクに割り当てて記憶するメモリコントローラと、バスを介して上記メモリコントローラと接続され、上記ダイナミックランダムアクセスメモリに記憶されているデータをキャッシュするキャッシュメモリと、上記キャッシュメモリを介して、上記ダイナミックランダムアクセスメモリにリードアクセスを行い、上記ダイナミックランダムアクセスメモリが記憶する参照画像データを用いて、上記動き予測処理又は上記動き補償処理を行う情報処理ブロックとを備える情報処理装置の制御方法において、上記メモリコントローラにより、上記第１の画像領域の水平方向に並んだ画素数を、上記注目画素ブロックの水平方向に並んだ画素数の略２倍に設定し、垂直方向に並んだ上記第１の画像領域間で、上記水平方向に２分割した１組２個の第２の画像領域に対応するデータを、それぞれ、１組２個の上記バンクに対して互い違いに割り当てて記憶し、上記情報処理ブロックにより、注目画像ブロックを水平方向に順次選択して、該選択した注目画像ブロックに対して処理を行う参照画像データを、上記キャッシュメモリを介して上記ダイナミックランダムアクセスメモリに対してリードアクセスすることにより読み出し、上記キャッシュメモリにより、上記情報処理ブロックが行ったリードアクセスに対するキャッシュミスに応じて上記ダイナミックランダムアクセスメモリに記憶されているデータをキャッシュするリフィル要求を、上記メモリコントローラがバンク単位で管理している各記憶領域に対して生成し、生成されたリフィル要求が上記メモリコントローラが管理している複数のバンクのうち、所定数のバンクに対して揃ったとき、該所定数のバンクに対するリフィル要求を連結して上記ダイナミックランダムアクセスメモリにリードアクセスを行うことを特徴とする。
【発明の効果】
【００１１】
本発明は、情報処理ブロックが行ったリードアクセスに対するキャッシュミスに応じて生成したリフィル要求がメモリコントローラが管理している複数のバンクのうち所定数のバンクに対して揃ったとき、これらのリフィル要求を連結してキャッシュメモリがダイナミックランダムアクセスメモリにアクセスするので、あるバンクによって管理されているダイナミックランダムアクセスメモリの記憶領域のプリチャージ操作の終了を待つことなく、他のバンクによって管理されているダイナミックランダムアクセスメモリの記憶領域にアクセスする頻度が高まることによって、プリチャージ操作によるダイナミックランダムアクセスメモリがデータ転送を行うことができない時間を削減することができ、ダイナミックランダムアクセスメモリのバンド幅の使用効率を改善することができる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明を実施するための最良の形態について、図面を参照しながら詳細に説明する。
【００１３】
本発明が適用された情報処理装置は、キャッシュメモリを介してダイナミックランダムアクセスメモリにアクセスする情報処理ブロックから構成される装置である。以下では、この情報処理ブロックの具体例として、画像データに対して冗長度を削減する符号化処理に係る動き予測処理ブロック、及び、該符号化処理によって符号化されたデータを復号する復号処理に係る動き補償処理ブロックが組み込まれた図１に示すような画像処理装置１を用いて説明する。
【００１４】
画像処理装置１は、図１に示すように、画像データを記憶するダイナミックランダムアクセスメモリ１１と、ダイナミックランダムアクセスメモリ１１の記憶領域を管理するメモリコントローラ１２と、システムバス１３を介してメモリコントローラ１２と接続されダイナミックランダムアクセスメモリ１１に記憶されているデータをキャッシュするキャッシュメモリ１４と、キャッシュメモリ１４を介してダイナミックランダムアクセスメモリ１１に対してリードアクセスをする画像処理ブロック１５とを備える。また、画像処理装置１は、例えば、システムバス１３を介してメモリコントローラ１２と接続されダイナミックランダムアクセスメモリ１１にアクセスする２つのバスマスタ１６、１７を備えている。
【００１５】
ダイナミックランダムアクセスメモリ１１は、複数の記憶素子からなり、後述するように、データを保持するため記憶素子に電荷を補充するプリチャージ操作を必要とするランダムアクセス可能なメモリである。
【００１６】
また、画像処理装置１において、ダイナミックランダムアクセスメモリ１１は、画像データの符号化処理系又は復号処理系のフレームメモリとして機能し、画像処理ブロック１５により用いられる参照画像データを記憶する。なお、ダイナミックランダムアクセスメモリ１１は、参照画像データに加えて、プログラムを記憶する領域を設けるようにしてもよい。
【００１７】
メモリコントローラ１２は、ダイナミックランダムアクセスメモリ１１の記憶領域を複数に分割したバンク毎に、ダイナミックランダムアクセスメモリ１１に行われたアクセスを管理する。また、メモリコントローラ１２は、後述するように、参照画像データを、バンク毎に分割したダイナミックランダムアクセスメモリ１１の各記憶領域に記憶する。
【００１８】
システムバス１３は、メモリコントローラ１２と、メモリコントローラ１２を介してダイナミックランダムアクセスメモリ１１に対してアクセスを行う処理ブロックとして、キャッシュメモリ１４、及び、２つのバスマスタ１６、１７が接続されており、これらの接続された処理ブロック間でアクセスを行うためのデータを伝送する。また、システムバス１３には、接続された処理ブロック間でアクセスがコンフリクトしないようにするため、接続された処理ブロックのうち、何れか１つの処理ブロックにダイナミックランダムアクセスメモリ１１に対するアクセスを許可するかを制御するバスアービタ１３ａが設けられている。
【００１９】
キャッシュメモリ１４は、システムバス１３を介してメモリコントローラ１２と接続され、ダイナミックランダムアクセスメモリ１１に記憶されている参照画像データをキャッシュする。具体的に、キャッシュメモリ１４は、画像処理ブロック１５と接続され、画像処理ブロック１５が行ったリード要求に対するキャッシュミスに応じてリフィル要求を生成する。そして、キャッシュメモリ１４は、この生成したリフィル要求に応じて、ダイナミックランダムアクセスメモリ１１にリードアクセスして参照画像データをキャッシュする。
【００２０】
また、キャッシュメモリ１４は、ダイナミックランダムアクセスメモリ１１に対してリードアクセス及びライトアクセスを両方行うものでもよいが、画像処理ブロック１５でリードアクセスされたデータをダイナミックランダムアクセスメモリ１１から読み出せばよいので、特に、リードオンリーキャッシュとして機能する構成のメモリを用いることで、機能の簡易化とメモリ回路の回路規模の低減を図ることができる。
【００２１】
画像処理ブロック１５は、キャッシュメモリ１４を介して、ダイナミックランダムアクセスメモリ１１に対してリードアクセスをする処理ブロックである。画像処理ブロック１５は、例えば、符号化処理に係る動き予測処理を行う動き予測処理部１５１と、符号化された画像データを復号する復号処理に係る動き補償処理部１５２と、動き予測処理部１５１と動き補償処理部１５２とをそれぞれキャッシュメモリ１４に接続するローカルバス１５３とから構成される。
【００２２】
動き予測処理部１５１は、符号化対象の注目マクロブロックを水平方向に走査して順次選択して、選択した注目マクロブロックの動きベクトルを予測するために用いる参照画像データを取得するため、ダイナミックランダムアクセスメモリ１１にリードアクセスする。
【００２３】
動き補償処理部１５２は、復号対象の注目マクロブロックを水平方向に走査して順次選択して、選択した注目マクロブロックの動きベクトルに応じてダイナミックランダムアクセスメモリ１１にリードアクセスすることにより参照画像データを読み出す。そして、動き補償処理部１５２は、読み出した参照画像データを用いて注目マクロブロックの動き補償を行う。
【００２４】
ここで、動き予測処理部１５１、及び、動き補償処理部１５２は、水平方向に走査して注目マクロブロックが選択されるので、参照マクロブロックも水平方向に走査して選択される可能性が高い。
【００２５】
また、動き予測処理部１５１、及び、動き補償処理部１５２は、所望とする参照画像データを読み出すリードアクセス要求を、ローカルバス１５３を介してキャッシュメモリ１４に供給する。また、動き予測処理部１５１、及び、動き補償処理部１５２は、このリードアクセス要求に応じて、リフィル要求を連結することなくキャッシュメモリ１４にリードアクセスをさせる非連結通知信号をキャッシュメモリ１４に供給する。
【００２６】
また、動き予測処理部１５１及び動き補償処理部１５２は、キャッシュメモリ１４において後述するようにリードアクセス要求に応じたリフィル要求が生成されるので、アドレス指定の順番や転送長に制限が無いリード要求をキャッシュメモリ１４に出力することができる。これにより、動き予測処理部１５１及び動き補償処理部１５２は、アドレス生成の簡易化と回路規模の低減を実現することができる。
【００２７】
バスマスタ１６、１７は、それぞれシステムバス１３を介して、メモリコントローラ１２と接続され、ダイナミックランダムアクセスメモリ１１に対して、参照画像データ用の画像データを書き込むライトアクセスや、出力用画像データとして読み出すリードアクセスなどを行う。なお、バスマスタ１６、１７は、画像データのアクセスに限定されない。すなわち、ダイナミックランダムアクセスメモリ１１が画像データに加えてプログラムを記憶しているのであれば、バスマスタ１６、１７は、プログラムが記憶されている領域にアクセスするようにしてもよい。
【００２８】
以上のような構成からなる画像処理装置１において、メモリコントローラ１２は、参照画像データの各ピクチャの画像領域を複数のユニットに分割して、各ユニットの画像領域を更に分割したサブユニットに対応するデータを、それぞれ各バンクで管理しているダイナミックランダムアクセスメモリ１１の記憶領域に割り当てて記憶する。
【００２９】
具体的に、メモリコントローラ１２は、各ユニットを水平方向にｍ（ｍは、正の整数。）分割するとともに垂直方向にｎ（ｎは、正の整数。）分割した合計ｍ×ｎ個のサブユニットに対応するデータを、それぞれ、ダイナミックランダムアクセスメモリ１１の記憶領域を分割した少なくとも１個のバンクに割り当てて記憶する。
【００３０】
以下では、ｍ、及びｎの値を具体的に設定したメモリマップ構造によってダイナミックランダムアクセスメモリ１１が管理された画像処理装置１の構成と動作について説明する。
【００３１】
＜第１の実施例＞
第１の実施例として、画像処理装置１では、例えば、システムバス１３のデータ幅を６４ビットとして、図２に示すように、メモリコントローラ１２が、水平方向に７２０ピクセル、垂直方向に４８０ピクセルからなる画サイズの参照画像データの各ピクチャを領域分割してダイナミックランダムアクセスメモリ１１の記憶領域上で管理するものとする。
【００３２】
メモリコントローラ１２は、図２（Ａ）に示すように、参照画像データの各ピクチャを、水平方向に３２ピクセル、垂直方向に４ピクセルからなる合計２７００個のユニットに分割する。図２（Ａ）においては、２７００個のユニットの番号０〜２６９９を示している。
【００３３】
次に、メモリコントローラ１２は、各ユニットを、水平方向に１６ピクセル、垂直方向に２ピクセルからなる合計４個のサブユニットに分割する。
【００３４】
次に、メモリコントローラ１２は、各ユニット内の４個のサブユニットに対応する画像データを、それぞれ、ダイナミックランダムアクセスメモリ１１の記憶領域を４分割した各バンクＡ、Ｂ、Ｃ、Ｄに割り当てて記憶する。具体的に、メモリコントローラ１２は、垂直方向に並んだユニット間で、各ユニット内の上部１組２個のサブユニットに対してバンクＡ、Ｂを互い違いに割り当て、下部１組２個のサブユニットに対してバンクＣ、Ｄを互い違いに割り当てる。このような各サブユニットのデータを各バンクに割り当てるメモリマップ構造を、以下、千鳥格子状メモリマップ構造と呼ぶ。
【００３５】
また、メモリコントローラ１２は、サブユニットを、水平方向に８ピクセル、垂直方向に１ピクセルからなる４ｗｏｒｄに分割して各バンク毎に管理する。ここで、ｗｏｒｄのデータ幅は、システムバスのデータ幅である６４ビットに対応している。
【００３６】
また、メモリコントローラ１２は、各ｗｏｒｄのアドレスを、図２（Ｂ）に示すように設定して管理する。すなわち、各ｗｏｒｄのアドレスは、例えば３２ビット長のアドレスであって、０〜２番目のビットに６４ビット長を示す情報を割り当て、３、４番目のビットにバンク内部のアドレスを割り当て、５、６番目のビットに各バンクＡ、Ｂ、Ｃ、Ｄのアドレスを割り当て、７〜３１番目のビットに各ユニットのアドレスを任意に割り当てる。具体的に、３、４番目のビットに割り当てられたバンク内部のアドレスは、ｗｏｒｄ０〜３を示す。また、５、６番目のビットに割り当てられたアドレスでは、２進数表記で００、０１、１０、１１がそれぞれバンクＡ、Ｂ、Ｃ、Ｄを示している。
【００３７】
以上のようにしてメモリコントローラ１２により管理されたダイナミックランダムアクセスメモリ１１に対して、キャッシュメモリ１４は、メモリコントローラ１２が管理している複数のバンクのうち所定数のバンク、具体的には合計４個のバンクＡ、Ｂ、Ｃ、Ｄに対するリフィル要求が揃ったときに、これらのリフィル要求を連結してリードアクセスを行う。このようにしてデータをキャッシュすることにより、画像処理装置１では、後述するように、ダイナミックランダムアクセスメモリ１１がデータ転送を行うことができない時間を低減して、ダイナミックランダムアクセスメモリ１１のバンド幅の使用効率の改善を実現する。
【００３８】
このようなリードアクセスをダイナミックランダムアクセスメモリ１１に対して行うため、第１の実施例に係るキャッシュメモリ１４では、図３に示すように、ローカルバス１５３との間でデータの入出力を行うローカルバスインタフェース１４１と、画像処理ブロック１５が行ったリードアクセス要求に対するキャッシュミスに応じてダイナミックランダムアクセスメモリ１１に記憶されているデータをキャッシュするリフィル要求を生成するリフィル要求生成部１４２と、バンクＡ及びバンクＢに対するリフィル要求を格納する２つのバンクＡＢ用キュー１４３、バンクＣ及びバンクＤに対するリフィル要求を格納するバンクＣＤ用キュー１４４と、リフィル要求に応じたリードアクセス要求を出力する制御を行うキュー制御部１４５と、リードアクセス要求をシステムバス１３へ出力するシステムバスインタフェース１４６とを備える。
【００３９】
ローカルバスインタフェース１４１は、画像処理ブロック１５から、所望とする参照画像データを読み出すリードアクセス要求、及び、リフィル要求を連結することなくリードアクセスさせる非連結通知信号が供給される。そして、ローカルバスインタフェース１４１は、リードアクセス要求をリフィル要求生成部１４２に、非連結通知信号をキュー制御部１４５にそれぞれ供給する。
【００４０】
リフィル要求生成部１４２は、リードアクセス要求に対するキャッシュミスに応じて、ダイナミックランダムアクセスメモリ１１に記憶されている参照画像データをキャッシュするリフィル要求を、メモリコントローラ１２がバンク単位で管理している記憶領域に対して生成する。
【００４１】
すなわち、リフィル要求生成部１４２は、リードアクセス要求に対して、水平方向又は垂直方向に隣接して並んだ１組複数個のサブユニットに対応するデータ単位で、キャッシュミスしたか否かを判断して、キャッシュミスをしたデータを管理する複数個のバンクを１組としたバンク群に対するリフィル要求を生成する。具体的に、リフィル要求生成部１４２は、リードアクセス要求に対して、水平方向に隣接して並んだ１組２個のサブユニットに対応するデータ単位で、キャッシュミスしたか否かを判断して、キャッシュミスをしたデータを管理する合計２個のバンクを１組としたバンク群に対するリフィル要求を生成する。このバンク群は、ユニット内の水平方向に隣接する２個１組のサブユニットに限定されず、異なるユニット間で水平方向に隣接する２個１組のサブユニットを管理するものであってもよい。
【００４２】
バンクＡＢ用キュー１４３、及び、バンクＣＤ用キュー１４４は、それぞれ、リフィル要求生成部１４２により生成したリフィル要求を、メモリコントローラ１２が管理しているバンク単位で振り分けて格納するリフィル要求格納手段である。具体的に、バンクＡＢ用キュー１４３は、バンクＡ及びバンクＢを１組としたバンク群に対するリフィル要求を格納するリフィル要求格納手段である。また、バンクＣＤ用キュー１４４は、バンクＣ及びバンクＤを１組としたバンク群に対するリフィル要求を格納するリフィル要求格納手段である。
【００４３】
キュー制御部１４５は、バンクＡＢ用キュー１４３及びバンクＣＤ用キュー１４４に格納されているリフィル要求が、各バンクに対して揃ったとき、すなわちバンクＡ、Ｂ、Ｃ、Ｄに対してそれぞれ揃ったとき、これらのバンクに対するリフィル要求を連結して、ダイナミックランダムアクセスメモリ１１に対するリードアクセス要求をシステムバスインタフェース１４６に出力する。すなわち、キュー制御部１４５は、各バンクＡ、Ｂ、Ｃ、Ｄに対するリードアクセスを連結したリードアクセス要求をシステムバスインタフェース１４６に出力する。
【００４４】
ここで、キュー制御部１４５は、ローカルバスインタフェース１４１から非連結通知信号が供給された場合、バンクＡＢ用キュー１４３及びバンクＣＤ用キュー１４４に格納されているリフィル要求が、各バンクに対してそれぞれ揃うまで格納することなく、すなわち、リフィル要求を連結することなくリードアクセス要求をシステムバスインタフェース１４６に出力する。
【００４５】
システムバスインタフェース１４６は、システムバス１３に設けられたバスアービタ１３ａからバス使用権を取得して、システムバス１３を介してメモリコントローラ１２にリードアクセスを行う。
【００４６】
次に、以上のような構成を有する第１の実施例に係るキャッシュメモリ１４の動作について説明する。
【００４７】
例えば、図４（Ａ）に示すように、画像処理ブロック１５は、水平方向に８ピクセル、垂直方向に１６ピクセルの画サイズの参照マクロブロックを取得するため、垂直方向に５個連続して並んだサブユニット１〜５、及び、サブユニット６〜１０に対するリードアクセス要求を、キャッシュメモリ１４を介してダイナミックランダムアクセスメモリ１１に行うものとする。
【００４８】
具体的に、リードアクセス要求は、サブユニット１のデータを管理しているバンクＡへのリードアクセス、サブユニット２のデータを管理しているバンクＣへのリードアクセス、サブユニット３のデータを管理しているバンクＢへのリードアクセス、サブユニット４のデータを管理しているバンクＤへのリードアクセス、サブユニット５のデータを管理しているバンクＡへのリードアクセス、サブユニット６のデータを管理しているバンクＢへのリードアクセス、サブユニット７のデータを管理しているバンクＤへのリードアクセス、サブユニット８のデータを管理しているバンクＡへのリードアクセス、サブユニット９のデータを管理しているバンクＣへのリードアクセス、及び、サブユニット１０のデータを管理しているバンクＢへのリードアクセスから構成される。
【００４９】
キャッシュメモリ１４では、これらのリードアクセス要求に応じたデータをキャッシュしているか否かを判断して、例えば、図４（Ｂ）に示すように、サブユニット１、２、３、６、７に対応するデータがキャッシュヒットし、サブユニット４、５、８、９、１０に対応するデータがキャッシュミスした場合、リフィル要求生成部１４２は、サブユニット４とサブユニット４の左に隣接するサブユニットとを管理するバンクＣ、Ｄからなるバンク群に対するリフィル要求４：Ｍｉｓｓ、サブユニット５とサブユニット５の右に隣接するサブユニット１０とを管理するバンクＡ、Ｂからなるバンク群に対するリフィル要求５：Ｍｉｓｓ、サブユニット８とサブユニット８の右に隣接するサブユニットとを管理するバンクＡ、Ｂからなるバンク群に対するリフィル要求８：Ｍｉｓｓ、サブユニット９とサブユニット９の右に隣接するサブユニットとを管理するバンクＣ、Ｄからなるバンク群に対するリフィル要求９：Ｍｉｓｓを生成する。
【００５０】
次に、キャッシュメモリ１４では、図４（Ｃ）に示すように、リフィル要求５：Ｍｉｓｓ、リフィル要求８：ＭｉｓｓをバンクＡＢ用キュー１４３に順次格納し、リフィル要求４：Ｍｉｓｓ、リフィル要求９：ＭｉｓｓをバンクＣＤ用キュー１４４に順次格納する。
【００５１】
次に、キャッシュメモリ１４では、キュー制御部１４５が、バンクＡＢ用キュー１４３、バンクＣＤ用キュー１４４に格納されているリフィル要求が各バンクＡ、Ｂ、Ｃ、Ｄに対してそれぞれ揃ったときに順次リードアクセス要求を生成する。すなわち、キャッシュメモリ１４は、図４（Ｄ）に示すように、リフィル要求５：Ｍｉｓｓとリフィル要求４：Ｍｉｓｓとを連結したリードアクセス要求１−ＡＢＣＤ、リフィル要求８：Ｍｉｓｓとリフィル要求９：Ｍｉｓｓとを連結としたリードアクセス要求２−ＡＢＣＤを順次出力する。なお、非連結通知信号がローカルバスインタフェース１４１から供給されたとき、キュー制御部１４５は、バンクＡＢ用キュー１４３及びバンクＣＤ用キュー１４４に格納されたリフィル要求に応じて、上述した連結処理を行うことなくリードアクセス要求を出力する。
【００５２】
以上のようにして、キャッシュメモリ１４では、合計４個のバンクＡ、Ｂ、Ｃ、Ｄに対するリードアクセス要求を連結してシステムバス１３を介してダイナミックランダムアクセスメモリ１１にアクセスする。また、各バンクに対するアクセスが４ｗｏｒｄすなわち４バースト長であるため、キャッシュメモリ１４は、１回に１６バースト長のアクセスをダイナミックランダムアクセスメモリ１１に対して行う。
【００５３】
ここで、例えば、システムバス１３に設けられたバスアービタ１３ａが、８バースト長を１トランザクションとしてバス使用権をキャッシュメモリ１４及び２つのバスマスタ１６、１７に許可している場合、キャッシュメモリ１４に８バート長のアクセスを２つ連結した１６バースト長のアクセスを許可する必要がある。
【００５４】
そこで、システムバス１３を用いたアクセス制御においては、図５Ａに示すように、従来のバス伝送に用いられている信号に加えて、連結したアクセスを許可するための信号ＡＲＣＯＮＣＡＴを用いてシステムバス１３のバス使用権を取得する。
【００５５】
図５Ａは、キャッシュメモリ１４とシステムバス１３との間のリードアクセス処理に関するタイミングチャートを示し、図５Ｂは、システムバス１３とダイナミックランダムアクセスメモリ１１との間のリードアクセス処理に関するタイミングチャートを示している。
【００５６】
図５Ａ、及び、図５Ｂにおいて、信号ＡＲＲＥＡＤＹ、ＡＲＶＡＬＩＤ、ＡＲＬＥＮ、ＡＲＡＤＤＲ、ＲＲＥＡＤＹ、ＲＶＡＬＩＤ、ＲＬＡＳＴ、ＲＤＡＴＡは、通常のバス伝送に用いられる信号である。
【００５７】
すなわち、信号ＡＲＲＥＡＤＹは、ＨＩＧＨのときに、リードアクセス要求に応じた１トランザクションの読み出し処理の準備が整ったことを示す信号である。また、信号ＡＲＶＡＬＩＤは、ＨＩＧＨのときにリードアクセスが有効であることを示す信号である。信号ＡＲＬＥＮは、各トランザクションのリードアクセスのバースト長を示す信号である。信号ＡＲＡＤＤＲは、リードアドレス、具体的には各バンクＡ、Ｂ、Ｃ、Ｄのアドレスを示す信号である。信号ＲＲＥＡＤＹは、ＨＩＧＨのとき、リードアクセスの準備が整っていることを示す信号である。信号ＲＶＡＬＩＤは、ＨＩＧＨのとき、リードアクセスが有効であることを示す信号である。信号ＲＬＡＳＴは、ＨＩＧＨのとき、各トランザクションのリードアクセスの終了を示す信号である。信号ＲＤＡＴＡはリードデータを示す信号である。
【００５８】
また、信号ＡＲＣＯＮＣＡＴは、ＨＩＧＨの立ち上がりのリードアドレスから、立ち下がった次のリードアドレスまでのリードアクセスを連結する連結情報を示す信号である。
【００５９】
キャッシュメモリ１４は、図５Ａに示すように、バンクＡ、Ｂの両方に対するリフィル要求と、バンクＣ、Ｄの両方に対するリフィル要求を、それぞれ１トランザクションとし、これら２つのトランザクションを連結するための連結情報として、信号ＡＲＣＯＮＣＡＴをバスアービタ１３ａに供給する。一方、バスアービタ１３ａは、信号ＡＲＣＯＮＣＡＴに応じて、キャッシュメモリ１４が２つのリフィル要求を連結して１つのリードアクセス要求としてアクセスすることを許可する。このようにすることで、システムバス１３を介してダイナミックランダムアクセスメモリ１１に２つのバスマスタ１６、１７からリードアクセス要求があったとしても、例えば図５Ｂに示すように、キャッシュメモリ１４のリードアクセス要求に応じたデータを連続してダイナミックランダムアクセスメモリ１１から読み出して、読み出したデータを連続してキャッシュメモリ１４に供給することができる。
【００６０】
また、２つのバスマスタ１６、１７は、上述したキャッシュメモリ１４の処理と同様に、１回当たり１６バースト長未満のリードアクセス要求をダイナミックランダムアクセスメモリ１１に対して行う場合、信号ＡＲＣＯＮＣＡＴを出力してトランザクションを連結してバス使用権を取得して、１回当たり１６バースト長のリードアクセスをダイナミックランダムアクセスメモリ１１に対して行うようにする。
【００６１】
以上のようにして、キャッシュメモリ１４、及び、バスマスタ１６、１７により、各バンクＡ、Ｂ、Ｃ、Ｄに対するリードアクセス要求が連続して供給されるダイナミックランダムアクセスメモリ１１では、図６Ａに示すように、メモリコントローラ１２によって各バンクＡ、Ｂ、Ｃ、Ｄに管理されている記憶領域からデータが読み出される。
【００６２】
図６Ａは、各バンクＡ、Ｂ、Ｃ、Ｄ毎のリードアクセス要求に対する読み出し処理のタイミングチャートである。ここで、図６Ａにおいて、コマンドＡＣＴは、記憶領域内のアドレスデータ線を指定するコマンドであり、コマンドＲＥＡＤは、コマンドＡＣＴにより指定されたデータ線からデータを読み出すコマンドであり、コマンドＰＲＥは、コマンドＲＥＡＤでデータが読み出されたデータを保持するため、データ線上に並んだ記憶素子に電荷を補充するプリチャージ操作を行うコマンドである。
【００６３】
したがって、メモリコントローラ１２は、個々のバンクＡ、Ｂ、Ｃ、Ｄにおいて、コマンドＡＣＴ、ＲＥＡＤ、ＰＲＥの順で行って、それぞれ管理している記憶領域からデータを読み出す処理を行う。
【００６４】
ここで、図６Ｂに示すように、仮にバンクＡ、Ｂに管理されている記憶領域から交互にデータを読み出す処理を行った場合には、各バンク内において、コマンドＡＣＴ、ＲＥＡＤ、ＰＲＥのコマンド間隔をできるだけ短くしても、リードデータＲｅａｄＤａｔａをシステムバス１３に出力することができない時間が生じてしまう。
【００６５】
これに対して、メモリコントローラ１２は、各バンクＡ、Ｂ、Ｃ、Ｄに対するリードアクセスが連続して供給されるため、図６Ａに示すように、あるバンクによって管理されている記憶領域のプリチャージ操作の終了を待つことなく、他のバンクによって管理されているダイナミックランダムアクセスメモリの記憶領域にアクセスする頻度を高くすることができる。これにより、メモリコントローラ１２は、プリチャージ操作によるダイナミックランダムアクセスメモリ１１からリードデータを連続して出力することができる。
【００６６】
このようにして、画像処理装置１では、キャッシュメモリ１４が、合計４個のバンクＡ、Ｂ、Ｃ、Ｄに対するリフィル要求、すなわちリードアクセス要求が揃ったときに、これらのリードアクセス要求を連結してリードアクセスを行うことによって、例えば図６Ａに示すように、ダイナミックランダムアクセスメモリ１１からシステムバス１３を介してキャッシュメモリ１４にリードデータを連続して転送することができ、この結果、ダイナミックランダムアクセスメモリ１１のバンド幅の使用効率を改善できる。
【００６７】
なお、キャッシュメモリ１４は、メモリコントローラ１２が管理している４個のバンクのうち全てもバンクに対するリードアクセス要求が揃わなくても、例えば４個未満の複数のバンクに対するリードアクセス要求が揃ったとき、これらのバンクに対するリードアクセス要求を連結してダイナミックランダムアクセスメモリ１１にアクセスすることによっても、ダイナミックランダムアクセスメモリ１１がデータ転送を行うことができない時間を削減することができる。これは、仮に、連続してリードデータを出力することができなくても、より多くのバンクに対するリードアクセス要求を連続して行うことによって、あるバンクによって管理されている記憶領域のプリチャージ操作の終了を待つことなく、他のバンクによって管理されているダイナミックランダムアクセスメモリの記憶領域にリードアクセスする頻度を高めることができるからである。
【００６８】
ところで、第１の実施例において、メモリコントローラ１２は、垂直方向に並んだユニット間で、各ユニット内の上部１組２個のサブユニットに対してバンクＡ、Ｂを互い違いに割り当て、下部１組２個のサブユニットに対してバンクＣ、Ｄを互い違いに割り当てることで、参照画像データを千鳥格子状メモリマップ構造により管理している。このようなマップ構造以外にも、メモリコントローラ１２は、各ユニットを水平方向及び垂直方向に２分割した合計４個のサブユニットのうち、位置関係が右上、左上、右下、及び左下に対応するサブユニットのデータを、それぞれ、バンクＡ、バンクＢ、バンクＣ、及び、バンクＤに割り当てて記憶するようにしてもよい。このような各サブユニットのデータを各バンクに割り当てるメモリマップ構造を、以下、格子状メモリマップ構造と呼ぶ。この格子状メモリマップ構造に割り当てられた参照画像データに対して、キャッシュミスとなりうるサブユニットは、例えば、水平方向１６ピクセル、垂直方向に１６ピクセルからなる参照マクロブロックを、水平方向に走査して順次選択した場合、次のようにして選択される。
【００６９】
図７（Ａ）において、領域Ｍｉｓｓ１は、第１番目に選択される参照マクロブロックのリード要求に対してキャッシュミスとなりうる画像領域を示している。また、領域Ｍｉｓｓ３は、第３番目に選択される参照マクロブロックのリード要求に対してキャッシュミスとなりうる画像領域を示している。また、領域Ｍｉｓｓ４は、第４番目に選択される参照マクロブロックのリード要求に対してキャッシュミスとなりうる画像領域を示している。また、領域Ｍｉｓｓ５は、第５番目に選択される参照マクロブロックのリード要求に対してキャッシュミスとなりうる画像領域を示している。
【００７０】
このように、格子状メモリマップ構造では、水平方向に走査して選択されうる参照マクロブロック毎に、キャッシュミスとなってシステムバス１３を介してリードアクセスされるデータ量が変動してしまう。
【００７１】
そこで、上述した図７（Ｂ）に示すような千鳥格子状メモリマップ構造により参照画像データをメモリコントローラ１２が管理することにより、水平方向に走査して選択されうる参照マクロブロック毎に、キャッシュミスとなってシステムバス１３を介してリードアクセスされるデータ量を平均化することができる。
【００７２】
なお、図７（Ｂ）において、領域Ｍｉｓｓ１は、第１番目に選択される参照マクロブロックのリード要求に対してキャッシュミスとなりうる画像領域を示している。領域Ｍｉｓｓ２は、第２番目に選択される参照マクロブロックのリード要求に対してキャッシュミスとなりうる画像領域を示している。また、領域Ｍｉｓｓ３は、第３番目に選択される参照マクロブロックのリード要求に対してキャッシュミスとなりうる画像領域を示している。また、領域Ｍｉｓｓ４は、第４番目に選択される参照マクロブロックのリード要求に対してキャッシュミスとなりうる画像領域を示している。また、領域Ｍｉｓｓ５は、第５番目に選択される参照マクロブロックのリード要求に対してキャッシュミスとなりうる画像領域を示している。
【００７３】
ここで、千鳥格子状メモリマップ構造とは、垂直方向に並んだユニット間で、水平方向に２分割した１組２個のサブユニットに対応するデータを、それぞれ、１組２個のバンクに対して互い違いに割り当てたメモリマップの構造である。上述したように、メモリコントローラ１２は、垂直方向に並んだユニット間で、各ユニット内の上部１組２個のサブユニットに対してバンクＡ、Ｂを互い違いに割り当て、下部１組２個のサブユニットに対してバンクＣ、Ｄを互い違いに割り当てることで、図８に示すように、参照画像データを千鳥格子状メモリマップ構造により管理する。
【００７４】
図８（Ａ）は、千鳥格子状メモリマップ構造により管理された水平方向に１２８０ピクセル、垂直方向に７２０ピクセルの画サイズの参照画像データの一例を示している。なお、図８（Ａ）の点線で示される水平方向１６ピクセル、垂直方向７２０ピクセルの領域は、千鳥格子状メモリマップ構造にするために、参照画像データが存在しない領域である。
【００７５】
図８（Ｂ）は、千鳥格子状メモリマップ構造により管理された水平方向に１４４０ピクセル、垂直方向に１０８８ピクセルの画サイズの参照画像データの一例を示している。なお、図８（Ｂ）の斜線で示される水平方向に１６ピクセル、垂直方向に１０８８ピクセルの領域は、千鳥格子状メモリマップ構造にするために、参照画像データが存在しない領域である。
【００７６】
次に図９を参照して、格子状メモリマップ構造及び千鳥格子状メモリマップ構造を適用した適用例について説明する。
【００７７】
図９（Ａ）は、格子状メモリマップ構造で参照画像データが管理され、水平方向に１６ピクセル、垂直方向に８の参照マクロブロックを水平方向に走査して選択した具体例である。ここで、１ユニットの水平方向に並んだ画素数が、参照マクロブロックの水平方向に並んだ画素数の２倍である３２ピクセルから構成されているので、１から５回目に亘って水平方向に走査して選択された参照マクロブロックによって生じる各データ取得量は、４０ｗｏｒｄ（１回目）、３２ｗｏｒｄ（２回目）、０ｗｏｒｄ（３回目）、３２ｗｏｒｄ（４回目）、０ｗｏｒｄ（５回目）となる。
【００７８】
これに対して、図９（Ｂ）は、千鳥格子状メモリマップ構造で参照画像データが管理され、水平方向に１６ピクセル、垂直方向に８ピクセルの参照マクロブロックを水平方向に走査して選択した具体例である。ここで、１ユニットの水平方向に並んだ画素数が、参照マクロブロックの水平方向に並んだ画素数の２倍である３２ピクセルから構成されているので、１から６回目に亘って水平方向に走査して選択された参照マクロブロックによって生じる各データ取得量は、４０ｗｏｒｄ（１回目）、１６ｗｏｒｄ（２回目）、１６ｗｏｒｄ（３回目）、１６ｗｏｒｄ（４回目）、３２ｗｏｒｄ（５回目）、２４ｗｏｒｄ（６回目）となる。
【００７９】
したがって、参照マクロブロックの番号を横軸、データ取得量を縦軸として、格子状メモリマップ構造及び千鳥格子状メモリマップ構造の具体例を比較すると、図９（Ｃ）に示すように、千鳥格子状メモリマップ構造の方が単位時間当たりのデータ取得量を平均化することができていることが分かる。
【００８０】
したがって、メモリコントローラ１２は、ユニットの水平方向に並んだ画素数を参照マクロブロックの水平方向に並んだ画素数の略２倍に設定し、垂直方向に並んだユニット間で、水平方向に２分割した１組２個のサブユニットに対応するデータを、それぞれ、１組２個のバンクに対して互い違いに割り当てることによって、単位時間当たりのデータ取得量を平均化することができる。
【００８１】
＜第２の実施例＞
次に、第２の実施例に係る画像処理装置１では、例えば、システムバス１３のデータ幅を３２ビットとし、図１０に示すように、メモリコントローラ１２が、水平方向に７２０ピクセル、垂直方向に４８０ピクセルの画サイズの参照画像データの各ピクチャを領域分割してダイナミックランダムアクセスメモリ１１の記憶領域上で管理する。
【００８２】
メモリコントローラ１２は、図１０（Ａ）に示すように、参照画像データの各ピクチャを、水平方向に３２ピクセル、垂直方向に２ピクセルからなる合計５４００個のユニットに分割する。図１０（Ａ）においては、５４００個のユニットの番号０〜５３９９を示している。
【００８３】
次に、メモリコントローラ１２は、各ユニットを、水平方向に１６ピクセル、垂直方向に１ピクセルからなる合計４個のサブユニットに分割する。
【００８４】
次に、メモリコントローラ１２は、各ユニット内の４個のサブユニットに対応する画像データを、それぞれ、ダイナミックランダムアクセスメモリ１１の記憶領域を４分割した各バンクＡ、Ｂ、Ｃ、Ｄに割り当てて記憶する。具体的に、メモリコントローラ１２では、各ユニットを水平方向及び垂直方向に２分割した合計４個のサブユニットに対応するサブユニットのデータを、それぞれ、上述した千鳥格子状メモリマップ構造にしたがって、バンクＡ、バンクＢ、バンクＣ、及び、バンクＤに割り当てて記憶する。
【００８５】
また、メモリコントローラ１２は、サブユニットを、水平方向に１６ピクセル、垂直方向に１ピクセルからなる４ｗｏｒｄに分割して各バンク毎に管理する。ここで、ｗｏｒｄのデータ幅は、システムバスのデータ幅である３２ビットに当たる。
【００８６】
また、メモリコントローラ１２は、各ｗｏｒｄのアドレスを、図１０（Ｂ）に示すようにして設定して管理する。すなわち、各ｗｏｒｄのアドレスは、例えば３２ビット長のアドレスであって、０〜１番目のビットに３２ビット長を示す情報を割り当て、２、３番目のビットにバンク内部のアドレスを割り当て、４、５番目のビットに各バンクＡ、Ｂ、Ｃ、Ｄのアドレスを割り当て、６〜３１番目のビットに各ユニットのアドレスを任意に割り当てる。具体的に、２、３番目のビットに割り当てられたバンク内部のアドレスは、ｗｏｒｄ０〜３を示す。また、４、５番目のビットに割り当てられたアドレスでは、２進数表記で００、０１、１０、１１がそれぞれバンクＡ、Ｂ、Ｃ、Ｄを示している。
【００８７】
以上のようにしてメモリコントローラ１２により管理されたダイナミックランダムアクセスメモリ１１に対して、キャッシュメモリ１４は、メモリコントローラ１２が管理している複数のバンクのうち所定数のバンク、具体的には合計４個のバンクＡ、Ｂ、Ｃ、Ｄのに対するリードアクセス要求が揃ったときにアクセスしてデータをキャッシュすることにより、ダイナミックランダムアクセスメモリ１１がデータ転送を行うことができない時間を削減して、ダイナミックランダムアクセスメモリ１１のバンド幅の使用効率を改善する。
【００８８】
このようなアクセスをダイナミックランダムアクセスメモリ１１に対して行うため、第２の実施例に係るキャッシュメモリ２００は、図１１に示すように、ローカルバス１５３との間でデータの入出力を行うローカルバスインタフェース２０１と、画像処理ブロック１５が行ったリードアクセス要求に対するキャッシュミスに応じてダイナミックランダムアクセスメモリ１１に記憶されているデータをキャッシュするリフィル要求を生成するリフィル要求生成部２０２と、リフィル要求に応じたリードアクセス要求を出力する制御を行い、リードアクセス要求をシステムバス１３へ出力するシステムバスインタフェース２０３とを備える。
【００８９】
ローカルバスインタフェース２０１は、画像処理ブロック１５から、所望とする参照画像データを読み出すリード要求が供給される。そして、ローカルバスインタフェース１４１は、リードアクセス要求をリフィル要求生成部２０２に供給する。
【００９０】
リフィル要求生成部２０２は、リード要求に対するキャッシュミスに応じて、ダイナミックランダムアクセスメモリ１１に記憶されている参照画像データをキャッシュするリフィル要求を、メモリコントローラ１２がバンク単位で管理している記憶領域に対して生成する。具体的に、リフィル要求生成部２０２は、サブユニットに対応するデータ単位でキャッシュミスしたか否かを判断して、キャッシュミスをしたサブユニットとこのサブユニットに隣接するサブユニットとに対応するデータが管理されているバンクＡ、Ｂ、Ｃ、Ｄに対するリフィル要求を生成する。
【００９１】
システムバスインタフェース２０３は、リフィル要求生成部２０２が生成したリフィル要求に応じたリードアクセス要求を出力する制御を行い、リードアクセス要求をシステムバス１３へ出力するシステムバス１３に設けられたバスアービタ１３ａからバス使用権を取得して、システムバス１３を介してメモリコントローラ１２にリードアクセスを行う。
【００９２】
次に、以上のような構成を有する第２の実施例に係るキャッシュメモリ２００の動作について説明する。
【００９３】
例えば、図１２（Ａ）に示すように、画像処理ブロック１５は、水平方向に１６ピクセル、垂直方向に８ピクセルの画サイズの参照マクロブロックを取得するため、垂直方向に８個連続して並んだサブユニット１〜８、及び、サブユニット９〜１６に対するリードアクセス要求を、キャッシュメモリ２００を介してダイナミックランダムアクセスメモリ１１に行うものとする。
【００９４】
具体的に、リードアクセス要求は、サブユニット１のデータを管理しているバンクＤへのリードアクセス、サブユニット２のデータを管理しているバンクＡへのリードアクセス、サブユニット３のデータを管理しているバンクＣへのリードアクセス、サブユニット４のデータを管理しているバンクＢへのリードアクセス、サブユニット５のデータを管理しているバンクＤへのリードアクセス、サブユニット６のデータを管理しているバンクＡへのリードアクセス、サブユニット７のデータを管理しているバンクＣへのリードアクセス、サブユニット８のデータを管理しているバンクＢへのリードアクセス、サブユニット９のデータを管理しているバンクＣへのリードアクセス、サブユニット１０のデータを管理しているバンクＢへのリードアクセス、サブユニット１１のデータを管理しているバンクＤへのリードアクセス、サブユニット１２のデータを管理しているバンクＡへのリードアクセス、サブユニット１３のデータを管理しているバンクＣへのリードアクセス、サブユニット１４のデータを管理しているバンクＢへのリードアクセス、サブユニット１５のデータを管理しているバンクＤへのリードアクセス、及び、サブユニット１６のデータを管理しているバンクＡへのリードアクセスから構成される。
【００９５】
キャッシュメモリ１４では、これらのリードアクセス要求に応じたデータをキャッシュしているか判断して、例えば、図１２（Ｂ）に示すように、サブユニット１、２、３、４、５、７、１３、１４、１５に対応するデータがキャッシュヒットし、サブユニット６、８、９、１２、１６に対応するデータがキャッシュミスした場合、リフィル要求生成部２０２は、サブユニット６とこのサブユニット６に隣接するサブユニット７、１４、１５とを管理するバンクＡ、Ｂ、Ｃ、Ｄに対するリフィル要求６：Ｍｉｓｓ、サブユニット８とこのサブユニットに対して左、左下、下に隣接するサブユニットとを管理するバンクＡ、Ｂ、Ｃ、Ｄに対するリフィル要求８：Ｍｉｓｓ、サブユニット９とこのサブユニット９に対して右、右上、上に隣接するサブユニットとを管理するバンクＡ、Ｂ、Ｃ、Ｄに対するリフィル要求９：Ｍｉｓｓ、サブユニット１２とこのサブユニット１２に対して右、右下、下に隣接するサブユニットとを管理するバンクＡ、Ｂ、Ｃ、Ｄに対するリフィル要求１２：Ｍｉｓｓ、及び、サブユニット１６とこのサブユニット１６に対して右、右下、下に隣接するサブユニットとを管理するバンクＡ、Ｂ、Ｃ、Ｄに対するリフィル要求１６：Ｍｉｓｓを生成する。
【００９６】
次に、キャッシュメモリ１４では、図１２（Ｃ）に示すように、システムバスインタフェース２０３が、各バンクＡ、Ｂ、Ｃ、Ｄに対して揃ったリフィル要求６：Ｍｉｓｓ、８：Ｍｉｓｓ、９：Ｍｉｓｓ、１２：Ｍｉｓｓ、１６：Ｍｉｓｓを、それぞれ、リードアクセス要求１−ＡＢＣＤ、２−ＡＢＣＤ、３−ＡＢＣＤ、４−ＡＢＣＤ、５−ＡＢＣＤとして順次出力する。
【００９７】
キャッシュメモリ２００では、システムバスインタフェース２０３が、リフィル要求生成部２０２により生成されるリフィル要求が、合計４個のバンクＡ、Ｂ、Ｃ、Ｄに対して揃ったリードアクセス要求となっているので、システムバス１３を介してダイナミックランダムアクセスメモリ１１にリードアクセスして、データをキャッシュする。
【００９８】
そして、キャッシュメモリ２００は、第１の実施例に係るキャッシュメモリ１４と異なり、信号ＡＲＣＯＮＣＡＴを出力せず、バス使用権を取得する。これは、１トランザクションのバースト長が１６のバンクＡＢＣＤへのアクセスとなりデータを連続して出力できるため、連結する必要はないからである。
【００９９】
このようにして、画像処理装置１では、キャッシュメモリ１４が、合計４個のバンクＡ、Ｂ、Ｃ、Ｄに対してするリードアクセス要求を連結してリードアクセスを行うことによって、上述した第１の実施例と同様に、ダイナミックランダムアクセスメモリ１１からシステムバス１３を介してキャッシュメモリ１４にリードデータを連続して出力することができ、この結果、ダイナミックランダムアクセスメモリ１１のバンド幅の使用効率を改善できる。
【０１００】
ここで、第２の実施例に係るキャッシュメモリ２００は、リフィル要求生成部２０２が、キャッシュミスをしたサブユニットとこのサブユニットに隣接するサブユニットとに対応するデータが管理されているバンクＡ、Ｂ、Ｃ、Ｄに対するリフィル要求を生成するため、第１の実施例と比べて、読み出しが不要なサブユニットの画像データを読み出す頻度が高くなるが、リフィル要求を格納するリフィル要求格納手段を設ける必要がないことによって、回路規模の増大を抑制しつつ、ダイナミックランダムアクセスメモリ１１のバンド幅の使用効率を改善することができる。
【０１０１】
＜第３の実施例＞
次に、第３の実施例として、画像処理装置１では、例えば、システムバス１３のデータ幅を１２８ビットとし、図１３に示すように、メモリコントローラ１２が、水平方向に７２０ピクセル、垂直方向に４８０ピクセルからなる画サイズの参照画像データの各ピクチャを領域分割してダイナミックランダムアクセスメモリ１１の記憶領域上で管理する。
【０１０２】
メモリコントローラ１２は、図１３（Ａ）に示すように、参照画像データの各ピクチャを、水平方向に３２ピクセル、垂直方向に８ピクセルからなる合計１３５０個のユニットに分割する。図１３（Ａ）においては、１３５０個のユニットの番号０〜１３４９を示している。
【０１０３】
次に、メモリコントローラ１２は、各ユニットを、水平方向に３２ピクセル、垂直方向に２ピクセルからなる合計４個のサブユニットに分割する。
【０１０４】
次に、メモリコントローラ１２は、各ユニット内の４個のサブユニットに対応する画像データを、それぞれ、ダイナミックランダムアクセスメモリ１１の記憶領域を４分割した各バンクＡ、Ｂ、Ｃ、Ｄに割り当てて記憶する。具体的に、メモリコントローラ１２では、各ユニットを垂直方向に４分割した合計４個のサブユニットのうち、位置関係が上から順に並んだサブユニットのデータを、それぞれ、バンクＡ、バンクＢ、バンクＣ、及び、バンクＤに割り当てて記憶する。
【０１０５】
また、メモリコントローラ１２は、サブユニットを、水平方向に８ピクセル、垂直方向に２ピクセルからなる４ｗｏｒｄに分割して各バンク毎に管理する。ここで、ｗｏｒｄのデータ幅は、システムバスのデータ幅である１２８ビットに当たる。
【０１０６】
また、メモリコントローラ１２は、各ｗｏｒｄのアドレスを、図１３（Ｂ）に示すようにして設定して管理する。すなわち、各ｗｏｒｄのアドレスは、例えば３２ビット長のアドレスであって、０〜３番目のビットに１２８ビット長を示す情報を割り当て、４、５番目のビットにバンク内部のアドレスを割り当て、６、７番目のビットに各バンクＡ、Ｂ、Ｃ、Ｄのアドレスを割り当て、８〜３１番目のビットに各ユニットのアドレスを任意に割り当てる。具体的に、４、５番目のビットに割り当てられたバンク内部のアドレスは、ｗｏｒｄ０〜３を示す。また、６、７番目のビットに割り当てられたアドレスでは、２進数表記で００、０１、１０、１１がそれぞれバンクＡ、Ｂ、Ｃ、Ｄを示している。
【０１０７】
以上のようにしてメモリコントローラ１２により管理されたダイナミックランダムアクセスメモリ１１に対して、第３の実施例に係るキャッシュメモリ３００は、メモリコントローラ１２が管理している複数のバンクのうち所定数のバンク、具体的には合計４個のバンクＡ、Ｂ、Ｃ、Ｄに対するリードアクセス要求が揃ったときに、これらのリフィル要求を連結してリードアクセスを行う。このようにしてデータをキャッシュすることにより、画像処理装置１では、後述するように、ダイナミックランダムアクセスメモリ１１がデータ転送を行うことができない時間を削減して、ダイナミックランダムアクセスメモリ１１のバンド幅の使用効率を改善する。
【０１０８】
このようなアクセスをダイナミックランダムアクセスメモリ１１に対して行うため、第３の実施例に係るキャッシュメモリ３００は、図１４に示すように、ローカルバス１５３との間でデータの入出力を行うローカルバスインタフェース３０１と、画像処理ブロック１５が行ったリードアクセス要求に対するキャッシュミスに応じてダイナミックランダムアクセスメモリ１１に記憶されているデータをキャッシュするリフィル要求を生成するリフィル要求生成部３０２と、バンクＡに対するリフィル要求を格納する２つのバンクＡ用キュー３０３、バンクＢに対するリフィル要求を格納するバンクＢ用キュー３０４、バンクＣに対するリフィル要求を格納するバンクＣ用キュー３０５と、バンクＤに対するリフィル要求を格納するバンクＤ用キュー３０６と、リフィル要求に応じたリードアクセス要求を出力する制御を行うキュー制御部３０７と、リードアクセス要求をシステムバス１３へ出力するシステムバスインタフェース３０８とを備える。
【０１０９】
ローカルバスインタフェース３０１は、画像処理ブロック１５から、所望とする参照画像データを読み出すリード要求、及び、リフィル要求を連結することなくリードアクセスさせる非連結通知信号が供給される。そして、ローカルバスインタフェース３０１は、リード要求をリフィル要求生成部３０２に、非連結通知信号をキュー制御部３０７にそれぞれ供給する。
【０１１０】
リフィル要求生成部３０２は、リード要求に対するキャッシュミスに応じて、ダイナミックランダムアクセスメモリ１１に記憶されている参照画像データをキャッシュするリフィル要求を、メモリコントローラ１２がバンク単位で管理している記憶領域に対して生成する。具体的に、リフィル要求生成部３０２は、画像処理ブロック１５が行ったリード要求に対して、サブユニットに対応するデータ単位でキャッシュミスをしたか否かを判断して、キャッシュミスをしたデータを管理するバンクに対してリフィル要求を生成する。
【０１１１】
バンクＡ用キュー３０３、バンクＢ用キュー３０４、バンクＣ用キュー３０５、及び、バンクＤ用キュー３０６は、それぞれ、リフィル要求生成部３０２により生成したリフィル要求を、メモリコントローラ１２が管理しているバンク単位で振り分けて格納するリフィル要求格納手段である。具体的に、バンクＡ用キュー３０３は、バンクＡに対するリフィル要求を格納するリフィル要求格納手段である。バンクＢ用キュー３０４は、バンクＢに対するリフィル要求を格納するリフィル要求格納手段である。バンクＣ用キュー３０５は、バンクＣに対するリフィル要求を格納するリフィル要求格納手段である。バンクＤ用キュー３０６は、バンクＤに対するリフィル要求を格納するリフィル要求格納手段である。
【０１１２】
キュー制御部３０７は、バンクＡ用キュー３０３、バンクＢ用キュー３０４、バンクＣ用キュー３０５、及び、バンクＤ用キュー３０６のそれぞれにリフィル要求が格納されたとき、すなわち、各バンクに対するリフィル要求がそれぞれ揃ったとき、これらのバンクに対するリフィル要求を連結して、ダイナミックランダムアクセスメモリ１１に対するリードアクセス要求をシステムバスインタフェース３０８に出力する。すなわち、キュー制御部３０７は、各バンクＡ、Ｂ、Ｃ、Ｄに対するリードアクセスを連結したリードアクセス要求をシステムバスインタフェース３０８に出力する。
【０１１３】
ここで、キュー制御部３０７は、ローカルバスインタフェース３０１から非連結通知信号が供給されたときには、バンクＡ用キュー３０３、バンクＢ用キュー３０４、バンクＣ用キュー３０５、及び、バンクＤ用キュー３０６にそれぞれリフィル要求が格納される前に、リフィル要求を連結することなくリードアクセス要求をシステムバスインタフェース３０８に出力する。
【０１１４】
システムバスインタフェース３０８は、システムバス１３に設けられたバスアービタ１３ａからバス使用権を取得して、システムバス１３を介してメモリコントローラ１２にリードアクセスを行う。
【０１１５】
次に、以上のような構成を有する第３の実施例に係るキャッシュメモリ３００の動作について説明する。
【０１１６】
例えば、図１５（Ａ）に示すように、画像処理ブロック１５は、水平方向に１６ピクセル、垂直方向に８ピクセルの画サイズの参照マクロブロックを取得するため、合計７個のサブユニット１〜７に対するリード要求を、キャッシュメモリ３００を介してダイナミックランダムアクセスメモリ１１に行うものとする。
【０１１７】
具体的に、リード要求は、サブユニット１のデータを管理しているバンクＣへのリードアクセス、サブユニット２のデータを管理しているバンクＤへのリードアクセス、サブユニット３のデータを管理しているバンクＡへのリードアクセス、サブユニット４のデータを管理しているバンクＢへのリードアクセス、サブユニット５のデータを管理しているバンクＣへのリードアクセス、サブユニット６のデータを管理しているバンクＣへのリードアクセス、及び、サブユニット７のデータを管理しているバンクＤへのリードアクセスから構成される。
【０１１８】
キャッシュメモリ３００では、これらのリードアクセス要求に応じたデータをキャッシュしているか判断して、例えば、図１５（Ｂ）に示すように、サブユニット１、２、３に対応するデータがキャッシュヒットし、サブユニット４、５、６、７に対応するデータがキャッシュミスした場合、リフィル要求生成部３０２は、サブユニット４を管理するバンクＢに対するリフィル要求４：Ｍｉｓｓ、サブユニット５を管理するバンクＣに対するリフィル要求５：Ｍｉｓｓ、サブユニット６を管理するバンクＣに対するリフィル要求６：Ｍｉｓｓ、及び、サブユニット７を管理するバンクＤに対するリフィル要求７：Ｍｉｓｓ、を生成する。
【０１１９】
次に、キャッシュメモリ３００では、図１５（Ｃ）に示すように、リフィル要求４：ＭｉｓｓをバンクＢ用キュー３０４に格納し、リフィル要求５：Ｍｉｓｓ、リフィル要求６：ＭｉｓｓをバンクＣ用キュー３０５に順次格納し、リフィル要求７：ＭｉｓｓをバンクＤ用キュー３０６に格納する。
【０１２０】
次に、キャッシュメモリ３００では、キュー制御部３０７が、バンクＡ用キュー３０３、バンクＢ用キュー３０４、バンクＣ用キュー３０５、及び、バンクＤ用キュー３０６のそれぞれにリフィル要求が格納されたときに順次リードアクセス要求を生成する。このとき、非連結通知信号が供給されたときには、図１５（Ｄ）に示すように、キャッシュメモリ１４は、リフィル要求４：Ｍｉｓｓ、５：Ｍｉｓｓ、６：Ｍｉｓｓ、７：Ｍｉｓｓを、それぞれ、リードアクセス要求１−Ｂ、１−Ｃ、２−Ｃ、１−Ｄとして順次出力する。
【０１２１】
以上のようにして、キャッシュメモリ３００では、合計４個のバンクＡ、Ｂ、Ｃ、Ｄに対するリードアクセス要求を連結してシステムバス１３を介してダイナミックランダムアクセスメモリ１１にアクセスする。
【０１２２】
そして、キャッシュメモリ３００は、第１の実施例に係るキャッシュメモリ１４と同様に、信号ＡＲＣＯＮＣＡＴを出力してトランザクションを連結したバス使用権を取得する。
【０１２３】
このようにして、画像処理装置１では、キャッシュメモリ１４が、合計４個のバンクＡ、Ｂ、Ｃ、Ｄに対するリードアクセス要求を連結してリードアクセスを行うことによって、上述した第１の実施例と同様に、ダイナミックランダムアクセスメモリ１１からシステムバス１３を介してキャッシュメモリ１４にリードデータを連続して転送することができ、この結果、ダイナミックランダムアクセスメモリ１１のバンド幅の使用効率を改善できる。
【０１２４】
ここで、第３の実施例に係るキャッシュメモリ３００は、リフィル要求生成部３０２が、リード要求に対するキャッシュミスに応じて、ダイナミックランダムアクセスメモリ１１に記憶されている参照画像データをキャッシュするリフィル要求を、メモリコントローラ１２がバンク単位で管理している記憶領域に対して生成するため、第１の実施例と比べて、リフィル要求格納手段に全てのリフィル要求が格納されるまで比較的時間がかかるが、読み出しが不要なサブユニットの画像データを読み出すことがなく、ダイナミックランダムアクセスメモリ１１のバンド幅の使用効率を改善することができる。
【０１２５】
なお、上述した実施例１〜３においては、４バンクに分割したダイナミックランダムアクセスメモリを用いているが、例えば８バンクなどで分割したダイナミックランダムアクセスメモリ１１に適用することも可能である。
【０１２６】
＜第４の実施例＞
第４の実施例として、ダイナミックランダムアクセスメモリ１１の記憶領域を８バンクに分割する場合、メモリコントローラ１２は、例えば、各ユニットを水平方向に４分割するとともに垂直方向に２分割した合計８個のサブユニットに対応するデータを、それぞれ、ダイナミックランダムアクセスメモリ１１の記憶領域を分割した８個のバンクＡ〜Ｈに割り当てて記憶する。
【０１２７】
このようにして、メモリコントローラ１２によって合計８個のバンクＡ〜Ｈに記憶領域が分割されたダイナミックランダムアクセスメモリ１１に対してアクセスを行うため、キャッシュメモリ４００は、図１６に示すように、ローカルバス１５３との間でデータの入出力を行うローカルバスインタフェース４０１と、画像処理ブロック１５が行ったリードアクセス要求に対するキャッシュミスに応じてダイナミックランダムアクセスメモリ１１に記憶されているデータをキャッシュするリフィル要求を生成するリフィル要求生成部４０２と、バンクＡに対するリフィル要求を格納する２つのバンクＡ用キュー４０３、バンクＢに対するリフィル要求を格納するバンクＢ用キュー４０４、バンクＣに対するリフィル要求を格納するバンクＣ用キュー４０５と、バンクＤに対するリフィル要求を格納するバンクＤ用キュー４０６と、バンクＥに対するリフィル要求を格納するバンクＥ用キュー４０７と、バンクＦに対するリフィル要求を格納するバンクＦ用キュー４０８と、バンクＧに対するリフィル要求を格納するバンクＧ用キュー４０９と、バンクＨに対するリフィル要求を格納するバンクＨ用キュー４１０と、リフィル要求に応じたリードアクセス要求を出力する制御を行うキュー制御部４１１と、リードアクセス要求をシステムバス１３へ出力するシステムバスインタフェース４１２とを備える。
【０１２８】
ローカルバスインタフェース４０１は、画像処理ブロック１５から、所望とする参照画像データを読み出すリード要求、及び、リフィル要求を連結することなくリードアクセスさせる非連結通知信号が供給される。そして、ローカルバスインタフェース４０１は、リード要求をリフィル要求生成部４０２に、非連結通知信号をキュー制御部４１１にそれぞれ供給する。
【０１２９】
リフィル要求生成部４０２は、リード要求に対するキャッシュミスに応じて、ダイナミックランダムアクセスメモリ１１に記憶されている参照画像データをキャッシュするリフィル要求を、メモリコントローラ１２がバンク単位で管理している記憶領域に対して生成する。具体的に、リフィル要求生成部４０２は、画像処理ブロック１５が行ったリード要求に対して、サブユニットに対応するデータ単位でキャッシュミスをしたか否かを判断して、キャッシュミスをしたデータを管理するバンクに対してリフィル要求を生成する。
【０１３０】
バンクＡ用キュー４０３、バンクＢ用キュー４０４、バンクＣ用キュー４０５、バンクＤ用キュー４０６、バンクＥ用キュー４０７、バンクＦ用キュー４０８、バンクＧ用キュー４０９、及び、バンクＨ用キュー４１０は、それぞれ、リフィル要求生成部４０２により生成したリフィル要求を、メモリコントローラ１２が管理しているバンク単位で振り分けて格納するリフィル要求格納手段である。具体的に、バンクＡ用キュー４０３は、バンクＡに対するリフィル要求を格納するリフィル要求格納手段である。バンクＢ用キュー４０４は、バンクＢに対するリフィル要求を格納するリフィル要求格納手段である。バンクＣ用キュー４０５は、バンクＣに対するリフィル要求を格納するリフィル要求格納手段である。バンクＤ用キュー４０６は、バンクＤに対するリフィル要求を格納するリフィル要求格納手段である。バンクＥ用キュー４０７は、バンクＥに対するリフィル要求を格納するリフィル要求格納手段である。バンクＦ用キュー４０８は、バンクＦに対するリフィル要求を格納するリフィル要求格納手段である。バンクＤ用キュー４０９は、バンクＧに対するリフィル要求を格納するリフィル要求格納手段である。バンクＨ用キュー４１０は、バンクＨに対するリフィル要求を格納するリフィル要求格納手段である。
【０１３１】
キュー制御部４１１は、バンクＡ用キュー４０３、バンクＢ用キュー４０４、バンクＣ用キュー４０５、バンクＤ用キュー４０６、バンクＥ用キュー４０７、バンクＦ用キュー４０８、バンクＧ用キュー４０９、及び、バンクＦ用キュー４１０のうち、４つのキューにリフィル要求が格納されたとき、これらのバンクに対するリフィル要求を連結して、ダイナミックランダムアクセスメモリ１１に対するリードアクセス要求をシステムバスインタフェース３０８に出力する。
【０１３２】
このように、キュー制御部４１１が、８つのバンクに対するリフィル要求が揃う前に、４つのバンクに対するリフィル要求が揃ったときにリードアクセス要求を行うのは、４つのバンクに対するリフィル要求に対応するバースト長が、システムバス１３が１回当たり転送可能なバースト長に対応しているからである。すなわち、キャッシュメモリ４００内において４つに比べて８つのバンクに対するリフィル要求が揃うまでの平均時間が長くなるのに加えて、仮に８つのバンクに対するリフィル要求が揃った時点でリードアクセスを行ったとしても、図１７に示すように、例えばバンクＡ〜Ｄ、バンクＥ〜Ｈに対するリードアクセスに分割して、システムバス１３に対して２回の転送要求を行うこととなるからである。
【０１３３】
したがって、キュー制御部４１１は、システムバス１３が一度に転送可能なバースト長に対応した所定数のバンクに対するリフィル要求が揃ったときに、リードアクセス要求をシステムバスインタフェース４１２に出力することによって、上述した要因により転送速度を低下させることなくダイナミックランダムアクセスメモリ１１に対してリードアクセスを行うことができる。すなわち、仮に６つのバンクに対するリフィル要求に対応するバースト長がシステムバス１３が１回当たりに転送可能なバースト長と対応しているのであれば、キュー制御部４１１は、６つのバンクに対するリフィル要求が揃ったときに、リードアクセス要求を行うように動作すればよい。
【０１３４】
また、キュー制御部４１１は、ローカルバスインタフェース４０１から非連結通知信号が供給されたときには、所定数のキューにリフィル要求が格納される前に、リフィル要求を連結することなくリードアクセス要求をシステムバスインタフェース４１２に出力する。
【０１３５】
システムバスインタフェース４１２は、システムバス１３に設けられたバスアービタ１３ａからバス使用権を取得して、システムバス１３を介してメモリコントローラ１２にリードアクセスを行う。
【０１３６】
このようにして、画像処理装置１では、第４の実施例に係るキャッシュメモリ４００を用いることによって、８バンクに分割されたダイナミックランダムアクセスメモリ１１に対してリードアクセスする場合にも、ダイナミックランダムアクセスメモリ１１のバンド幅の使用効率を改善することができる。
【図面の簡単な説明】
【０１３７】
【図１】画像処理装置の全体構成を示すブロック図である。
【図２】第１の実施例において管理される参照画像データを示す図である。
【図３】第１の実施例に係るキャッシュメモリの構成を示す図である。
【図４】第１の実施例に係るキャッシュメモリの動作を説明するための図である。
【図５Ａ】システムバスによるデータ伝送を説明するためのタイミングチャートである。
【図５Ｂ】システムバスによるデータ伝送を説明するためのタイミングチャートである。
【図６Ａ】ダイナミックランダムアクセスメモリによるデータの読み出し処理を説明するための図である。
【図６Ｂ】ダイナミックランダムアクセスメモリによるデータの読み出し処理を説明するための図である。
【図７】格子状メモリマップ構造及び千鳥格子状メモリマップ構造について説明するための図である。
【図８】千鳥格子状メモリマップ構造により管理される参照画像データを示す図である。
【図９】格子状メモリマップ構造及び千鳥格子状メモリマップ構造を適用した場合の、リードアクセス処理について適用例について説明するための図である
【図１０】第２の実施例において管理される参照画像データを示す図である。
【図１１】第２の実施例に係るキャッシュメモリの構成を示す図である。
【図１２】第２の実施例に係るキャッシュメモリの動作を説明するための図である。
【図１３】第３の実施例において管理される参照画像データを示す図である。
【図１４】第３の実施例に係るキャッシュメモリの構成を示す図である。
【図１５】第３の実施例に係るキャッシュメモリの動作を説明するための図である。
【図１６】第４の実施例に係るキャッシュメモリの構成を示す図である。
【図１７】システムバスによるデータ伝送を説明するためのタイミングチャートである。
【符号の説明】
【０１３８】
１  画像処理装置、１１  ダイナミックランダムアクセスメモリ、１２  メモリコントローラ、１３  システムバス、１３ａ  バスアービタ、１４、２００、３００  キャッシュメモリ、１４１、２０１、３０１、４０１  ローカルバスインタフェース、１４２、２０２、３０２、４０２  リフィル要求生成部、１４３  バンクＡＢ用キュー、１４４  バンクＣＤ用キュー、１４５、３０７、４１１  キュー制御部、１４６、２０３、３０８、４１２  システムバスインタフェース、１５  画像処理ブロック、１５１  動き予測処理部、１５２  動き補償処理部、１５３  ローカルバス、１６、１７  バスマスタ、３０３、４０３  バンクＡ用キュー、３０４、４０４  バンクＢ用キュー、３０５、４０５  バンクＣ用キュー、３０６、４０６  バンクＤ用キュー、４０７  バンクＥ用キュー、４０８  バンクＦ用キュー、４０９  バンクＧ用キュー、４１０  バンクＨ用キュー
【図１】
0005145890.tif 000002
【図２】
0005145890.tif 000003
【図３】
0005145890.tif 000004
【図４】
0005145890.tif 000005
【図５Ａ】
0005145890.tif 000006
【図５Ｂ】
0005145890.tif 000007
【図６Ａ】
0005145890.tif 000008
【図６Ｂ】
0005145890.tif 000009
【図７】
0005145890.tif 000010
【図８】
0005145890.tif 000011
【図９】
0005145890.tif 000012
【図１０】
0005145890.tif 000013
【図１１】
0005145890.tif 000014
【図１２】
0005145890.tif 000015
【図１３】
0005145890.tif 000016
【図１４】
0005145890.tif 000017
【図１５】
0005145890.tif 000018
【図１６】
0005145890.tif 000019
【図１７】
0005145890.tif 000020