(57)【要約】【課題】タグの個数を減らしてキャッシュ処理に要する時間やハードウェアコストを低減することができる画像キャッシュメモリ装置および半導体集積回路の提供を図る。【解決手段】画像データのキャッシュ処理を行う画像キャッシュメモリ装置(１)であって、矩形に配列された複数のピクセルを含む矩形ブロックＲＢを単位とするキャッシュデータを格納するキャッシュバッファ(１２)と、前記矩形ブロックを複数含む矩形ブロック集合ＢＧに対応するタグを格納するキャッシュタグ部(１３)と、前記キャッシュタグ部に格納された前記タグを比較する比較部(１４)と、前記キャッシュバッファ，前記キャッシュタグ部および前記比較部を制御して前記キャッシュ処理を行う制御部(１１)と、を有する。【選択図】図４
2014235689.tif 000002
【特許請求の範囲】
【請求項１】
画像データのキャッシュ処理を行う画像キャッシュメモリ装置であって、
矩形に配列された複数のピクセルを含む矩形ブロックを単位とするキャッシュデータを格納するキャッシュバッファと、
前記矩形ブロックを複数含む矩形ブロック集合に対応するタグを格納するキャッシュタグ部と、
前記キャッシュタグ部に格納された前記タグを比較する比較部と、
前記キャッシュバッファ，前記キャッシュタグ部および前記比較部を制御して前記キャッシュ処理を行う制御部と、を有する、
ことを特徴とする画像キャッシュメモリ装置。
【請求項２】
前記矩形ブロック集合は、ＫおよびＬを正の整数で、少なくとも一方を２以上として、
前記矩形ブロックが水平方向にＫ個配列され、
前記矩形ブロックが垂直方向にＬ個配列されている、
ことを特徴とする請求項１に記載の画像キャッシュメモリ装置。
【請求項３】
前記タグは、
前記矩形ブロック集合に含まれる、前記矩形ブロックの水平方向の数である水平ブロック数Ｋと、
前記矩形ブロック集合に含まれる、前記矩形ブロックの垂直方向の数である垂直ブロック数Ｌと、
対応する矩形ブロックが１つのピクチャ内のどの位置にあるかを示すピクチャアドレスと、
前記タグの有効／無効を示す第１フラグと、
前記キャッシュバッファ内のデータが変更されたか否かを示す第２フラグと、を含む、
ことを特徴とする請求項２に記載の画像キャッシュメモリ装置。
【請求項４】
前記制御部は、
リードアクセスのとき、前記キャッシュタグ部にあるタグを、前記比較部を通して走査し、
前記リードアクセスのデータがキャッシュヒットしたブロックを、前記キャッシュバッファから読み出し、
前記リードアクセスのデータがキャッシュミスヒットしたブロックを、矩形形状に分割し、それぞれの矩形形状を矩形ブロック集合として前記キャッシュバッファ内に読み込み、
前記キャッシュバッファ内に読み込んだ前記矩形ブロック集合に対して新たなタグを用意し、その新たなタグの第１フラグを有効とすると共に第２フラグを無効とする、
ことを特徴とする請求項３に記載の画像キャッシュメモリ装置。
【請求項５】
前記制御部は、
ライトアクセスのとき、前記キャッシュタグ部にあるタグを、前記比較部を通して走査し、
前記ライトアクセスのデータがキャッシュヒットしたブロックを、前記ライトアクセスのデータに書き換えると共に、そのキャッシュヒットしたブロックに対応するタグの第２フラグを有効とし、
前記ライトアクセスのデータがキャッシュミスヒットしたブロックを、矩形形状に分割し、それぞれの矩形形状を矩形ブロック集合として前記キャッシュバッファ内に格納し、
前記キャッシュバッファ内に格納した前記矩形ブロック集合に対して新たなタグを用意し、その新たなタグの第１フラグを有効とすると共に第２フラグを有効とする、
ことを特徴とする請求項３に記載の画像キャッシュメモリ装置。
【請求項６】
前記制御部は、
アクセスサイズが一定であり、直前の第１アクセスから次の第２アクセスが、隣接した領域のアクセスのとき、前記第１アクセスのタグと前記第２アクセスのタグを併合する、
ことを特徴とする請求項３乃至請求項５のいずれか１項に記載の画像キャッシュメモリ装置。
【請求項７】
前記タグは、さらに、
アドレススキャンが、第１方向および該第１方向と交差する第２方向のいずれの方向のスキャン順かを示す第３フラグを含む、
ことを特徴とする請求項３乃至請求項５のいずれか１項に記載の画像キャッシュメモリ装置。
【請求項８】
請求項１乃至請求項７のいずれか１項に記載の画像キャッシュメモリ装置と、
前記画像キャッシュメモリ装置における前記制御部を介して、外部メモリに格納された画像データのキャッシュ処理を行わせる処理装置と、を有する、
ことを特徴とする半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書で言及する実施例は、画像キャッシュメモリ装置および半導体集積回路に関する。
【背景技術】
【０００２】
近年、例えば、ＣＰＵや動画像符号化装置等の処理装置と、外部メモリとの間に画像キャッシュメモリ装置を配置して、画像処理を高速化することが行われている。
【０００３】
このような画像キャッシュメモリ装置は、例えば、１つの画像(ピクチャ，フレーム)を複数の矩形ブロックに分割し、その矩形ブロック単位でデータの入出力、並びに、内蔵されたキャッシュバッファに対するデータの格納や管理を行っている。
【０００４】
すなわち、キャッシュバッファに対するデータの格納や管理は、矩形ブロック単位で行われており、それは、各矩形ブロックに対応したタグを格納するキャッシュタグ部、および、そのキャッシュタグ部のタグを比較する比較部により制御されている。
【０００５】
ところで、従来、処理装置と外部メモリとの間に画像キャッシュメモリ装置を配置し、１つの画像を複数の矩形ブロックに分割してキャッシュ処理を制御する様々な提案がなされている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平１０−２６１０７６号公報
【特許文献２】特開平０６−０５９９７５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上述した画像キャッシュメモリ装置において、例えば、キャッシュタグ部に格納されるタグの個数は、キャッシュバッファの容量が大きくなるに従って増加する。
【０００８】
このように、タグの個数が増加すると、比較部による比較処理に要する時間や比較部自体のハード構成の増大を招く。すなわち、タグの個数が増加すると、キャッシュ処理に要する時間やハードウェアコストの増大を招くことになる。
【課題を解決するための手段】
【０００９】
一実施形態によれば、画像データのキャッシュ処理を行う画像キャッシュメモリ装置であって、キャッシュバッファと、キャッシュタグ部と、比較部と、制御部と、を有する、画像キャッシュメモリ装置が提供される。
【００１０】
前記キャッシュバッファは、矩形に配列された複数のピクセルを含む矩形ブロックを単位とするキャッシュデータを格納し、前記キャッシュタグ部は、前記矩形ブロックを複数含む矩形ブロック集合に対応するタグを格納する。
【００１１】
前記比較部は、前記キャッシュタグ部に格納された前記タグを比較し、前記制御部は、前記キャッシュバッファ，前記キャッシュタグ部および前記比較部を制御して前記キャッシュ処理を行う。
【発明の効果】
【００１２】
開示の画像キャッシュメモリ装置および半導体集積回路は、タグの個数を減らしてキャッシュ処理に要する時間やハードウェアコストを低減することができるという効果を奏する。
【図面の簡単な説明】
【００１３】
【図１】図１は、半導体集積回路の全体構成を示すブロック図である。
【図２】図２は、ピクチャと矩形ブロックの関係を説明するための図である。
【図３】図３は、画像キャッシュメモリ装置の一例におけるキャッシュタグ部および比較部を説明するための図である。
【図４】図４は、本実施例の画像キャッシュメモリ装置における矩形ブロック集合を説明するための図である。
【図５】図５は、図４に示す矩形ブロック集合のタグにおけるキャッシュバッファ内アドレスを説明するための図である。
【図６】図６は、本実施例の画像キャッシュメモリ装置におけるキャッシュタグ部および比較部の一例を説明するための図である。
【図７】図７は、本実施例の画像キャッシュメモリ装置において、キャッシュミスヒット時のアクセスを説明するための図である。
【図８】図８は、本実施例の画像キャッシュメモリ装置におけるタグの併合処理の一例を説明するための図(その１)である。
【図９】図９は、本実施例の画像キャッシュメモリ装置におけるタグの併合処理の一例を説明するための図(その２)である。
【図１０】図１０は、本実施例の画像キャッシュメモリ装置におけるタグの併合処理の変形例を説明するための図(その１)である。
【図１１】図１１は、本実施例の画像キャッシュメモリ装置におけるタグの併合処理の変形例を説明するための図(その２)である。
【図１２】図１２は、本実施例の画像キャッシュメモリ装置におけるキャッシュタグ部および比較部の他の例を説明するための図である。
【発明を実施するための形態】
【００１４】
まず、画像キャッシュメモリ装置および半導体集積回路の実施例を詳述する前に、図１〜図３を参照して、画像キャッシュメモリ装置を含む半導体集積回路の一例および画像キャッシュメモリ装置における問題点を説明する。
【００１５】
図１は、半導体集積回路の全体構成を示すブロック図である。図１に示されるように、半導体集積回路１００は、画像キャッシュメモリ装置１、および、ＣＰＵや動画像符号化装置等の処理装置(画像処理装置)２を含む。ここで、画像キャッシュメモリ装置１は、処理装置２と外部メモリ３との間に配置される。なお、外部メモリ３は、例えば、ＳＤＲＡＭ(Synchronous Dynamic Random Access Memory)を適用することができる。
【００１６】
画像キャッシュメモリ装置１は、全体を制御する制御部１１，キャッシュデータを格納するキャッシュバッファ１２，および，キャッシュバッファ１２内のデータ(画像データ)を管理するキャッシュタグ部１３を含む。
【００１７】
さらに、画像キャッシュメモリ装置１は、キャッシュバッファ１２内に所定のデータがあるかどうかを、キャッシュタグ部１３にあるタグから判定する比較部１４，内部バスＩＦ(InterFace：インターフェース)１５，および，外部バスＩＦ１６を含む。
【００１８】
ここで、内部バスＩＦ１５は、内部バスＩＢを介して処理装置２に接続され、処理装置２とキャッシュバッファ１２との間でデータの遣り取りを行うために使用される。また、外部バスＩＦ１６は、外部バスＥＢを介して外部メモリ３に接続され、外部メモリ３とキャッシュバッファ１２との間でデータの遣り取りを行うために使用される。
【００１９】
制御部１１は、例えば、処理装置２からの指示に従って、キャッシュバッファ１２，キャッシュタグ部１３，比較部１４，内部バスＩＦ１５および外部バスＩＦ１６を制御して画像キャッシュメモリ装置１におけるキャッシュ処理を制御する。
【００２０】
図２は、ピクチャと矩形ブロックの関係を説明するための図である。図２に示されるように、入出力を行うデータが画像のとき、通常、１つのピクチャ(画像，フレーム)ＰＩＣを、複数の矩形ブロックＲＢに分割する。
【００２１】
図２は、１つのピクチャＰＩＣが、縦方向に１８分割されると共に、横方向に１６分割され、１８×１６＝２８８個の矩形ブロックＲＢに分割された場合を示している。なお、それぞれの矩形ブロックＲＢは、横方向がｍピクセルで縦方向がｎピクセルになっている。
【００２２】
このように、１つのピクチャＰＩＣは、ｍ×ｎピクセルの矩形ブロックＲＢにより管理され、この矩形ブロックＲＢを単位として、データの入出力、並びに、キャッシュバッファ１２に対するデータの格納や管理を行うようになっている。
【００２３】
図３は、画像キャッシュメモリ装置の一例におけるキャッシュタグ部および比較部を説明するための図である。図３に示されるように、キャッシュタグ部１３には、複数のタグＴＧrbが格納されている。
【００２４】
ここで、キャッシュタグ部１３に格納されたタグＴＧrbは、それぞれキャッシュバッファ１２内に存在する１つの矩形ブロックＲＢに対応している。従って、キャッシュタグ部１３のタグＴＧrbの個数は、キャッシュバッファ１２内に格納された矩形ブロックＲＢの最大個数になる。
【００２５】
タグＴＧrbは、対応する矩形ブロックＲＢがピクチャＰＩＣ内のどの位置にあるかを示すピクチャアドレス(ｘ，ｙ)、タグの有効／無効を示すＶフラグ、および、キャッシュバッファ１２内のデータが処理装置２により変更されたか否かを示すＭフラグを含む。
【００２６】
ここで、例えば、任意のタグＴＧrbに対応する矩形ブロックＲＢがキャッシュバッファ１２内に存在する場合、そのタグのＶフラグは『１』(有効)になり、逆に、存在しない場合、Ｖフラグは『０』(無効)になる。
【００２７】
また、例えば、処理装置２により、任意のタグＴＧrbに対応する矩形ブロックＲＢのデータが書き換えられたとき、すなわち、キャッシュバッファ１２に格納された矩形ブロックＲＢのデータが外部メモリ３のデータと異なる場合、Ｍフラグは『１』になる。
【００２８】
一方、任意のタグＴＧrbに対応する矩形ブロックＲＢのデータが書き換えられずにそのままキャッシュバッファ１２に保持され、外部メモリ３のデータと一致している場合、Ｍフラグは『０』になる。
【００２９】
図１〜図３を参照して、画像キャッシュメモリ装置の一例の動作を説明する。まず、処理装置２から画像キャッシュメモリ装置１に対してリード(読み出し)アクセスがあった場合、制御部１１は、リードアクセスに対応するピクチャアドレス(ｘ，ｙ)の矩形ブロックＲＢがキャッシュバッファ１２内に存在するかどうかの確認を行う。
【００３０】
すなわち、制御部１１は、キャッシュタグ部１３にある複数のタグＴＧrbを、比較部１４を通して走査し、Ｖフラグが有効(『１』)でピクチャアドレスが一致するタグがある場合は、キャッシュヒットと判定する。そして、キャッシュバッファ１２から、キャッシュヒットと判定したタグに対応する矩形ブロックＲＢのデータを処理装置２に転送する。
【００３１】
一方、Ｖフラグが有効でピクチャアドレスが一致するタグが存在しない場合は、キャッシュミスヒットと判定し、キャッシュミスヒットと判定したタグに対応する矩形ブロックのデータを、外部メモリ３からキャッシュバッファ１２内に読み込む。そして、読み込んだ矩形ブロックに対応するタグのピクチャアドレス(ｘ，ｙ)を更新し、Ｖフラグを有効(『１』)とし、Ｍフラグを無効(『０』)とする。
【００３２】
次に、処理装置２から画像キャッシュメモリ装置１に対してライト(書き込み)アクセスがあった場合、制御部１１は、ライトアクセスに対応するピクチャアドレス(ｘ，ｙ)の矩形ブロックＲＢがキャッシュバッファ１２内に存在するかどうかの確認を行う。すなわち、制御部１１は、キャッシュタグ部１３にある複数のタグＴＧrbを、比較部１４を通して走査する。
【００３３】
ここで、Ｖフラグが有効でピクチャアドレスが一致するタグがある場合は、キャッシュバッファ１２内の対応する矩形ブロックのデータを処理装置２からのデータに書き換える。さらに、そのデータを書き換えた矩形ブロックのタグのＭフラグを有効(『１』)とする。
【００３４】
一方、Ｖフラグが有効でピクチャアドレスが一致するタグが存在しない場合は、キャッシュバッファ１２の新たな領域に処理装置２からのデータを格納する。そして、対応する新たなタグに対してピクチャアドレス(ｘ，ｙ)を更新し、Ｖフラグを有効(『１』)、Ｍフラグを有効(『１』)とする。
【００３５】
以上において、リードアクセスしてミスヒットしたとき、並びに、ライトアクセスのとき、キャッシュバッファ１２に十分な空き容量が無い場合には、キャッシュバッファ１２内のデータを解放して空き容量を確保する。
【００３６】
すなわち、制御部１１は、キャッシュタグ部１３にあるタグを、比較部１４を通して走査し、Ｖフラグが有効になっているタグ、および、対応するキャッシュバッファ１２内の矩形ブロック(データ領域)を解放する。
【００３７】
なお、キャッシュバッファ１２内のデータを解放する順序については、例えば、ＬＲＵ(Least Recently Used)による最もアクセス時期が古いものから優先して行う方法を適用することができる。或いは、例えば、画像処理装置で利用されている他のキャッシュアルゴリズムを適用することもできるのはいうまでもない。
【００３８】
また、解放するタグのＭフラグが有効(『１』)になっている場合は、処理装置２によりデータの内容が書き換わっているため、そのタグに対応するキャッシュバッファ１２内の矩形ブロックＲＢのデータを外部メモリ３に書き出す(書き戻す)ことになる。
【００３９】
上述した画像キャッシュメモリ装置において、例えば、キャッシュタグ部１３に格納されるタグの個数は、キャッシュバッファ１２の容量に従って増加する。そして、タグの個数が増加すると、比較部１４による比較処理に要する時間や比較部１４自体のハードウェアコストが増大することになる。
【００４０】
ところで、矩形ブロックＲＢの大きさは、外部メモリ３をアクセスする最小粒度や外部バス幅を考慮したサイズに従って決めるのが一般的である。具体的に、例えば、矩形ブロックＲＢの大きさとして２５６ビットを想定した場合、１画素を８ビットとすると、矩形ブロックＲＢは、横８画素×縦４画素、或いは、横１６画素×縦２画素といった大きさになる。
【００４１】
これに対して、画像キャッシュメモリ装置１にアクセスする処理装置２は、ある一連の処理単位で見たとき、矩形ブロックＲＢよりも大きな矩形形状によりメモリアクセスを行う場合が多い。
【００４２】
例えば、動画像符号化処理装置等においては、１６画素×１６画素〜６４画素×６４画素を１つの処理単位とするのが一般的であり、処理装置２によるアクセスサイズは、それらに近い大きさになり、矩形ブロックＲＢのサイズよりも大きくなる。
【００４３】
このような場合、画像キャッシュメモリ装置１においては、矩形ブロックＲＢのそれぞれに対してタグＴＧrbを用いて管理するよりも、より大きな矩形形状を１つの管理単位とした方がタグの個数が少なくて済むと考えられる。
【００４４】
以下、本実施例の画像キャッシュメモリ装置を、添付図面を参照して詳述する。図４は、本実施例の画像キャッシュメモリ装置における矩形ブロック集合を説明するための図である。
【００４５】
また、図５は、図４に示す矩形ブロック集合のタグにおけるキャッシュバッファ内アドレスを説明するための図であり、図６は、本実施例の画像キャッシュメモリ装置におけるキャッシュタグ部および比較部の一例を説明するための図である。
【００４６】
なお、本実施例の画像キャッシュメモリ装置１および半導体集積回路の全体構成は、例えば、図１を参照して説明したのと同様のものになるが、図６を参照して詳述するように、キャッシュタグ部１３および比較部１４は、前述した図３のものとは異なっている。
【００４７】
［タグの構成］
図４および図６に示されるように、本実施例の画像キャッシュメモリ装置１において、１つのタグＴＧbgは、複数の矩形ブロックＲＢ((Ａ)〜(Ｆ))を含む矩形ブロック集合ＢＧと対応付けられている。
【００４８】
ここで、図４に示されるように、矩形ブロック集合ＢＧは、例えば、横方向がＫ個で、縦方向がＬ個の矩形ブロックを含む。すなわち、１つの矩形ブロック集合ＢＧは、Ｋ×Ｌ個の矩形ブロックＲＢを含む。具体的に、図４に示す例では、Ｋ＝３，Ｌ＝２になっており、１つの矩形ブロック集合ＢＧは、６個の矩形ブロックＲＢ((Ａ)〜(Ｆ))を含むことになる。
【００４９】
図６に示されるように、タグＴＧbgは、ピクチャアドレス，水平ブロック数(Ｋ)，垂直ブロック数(Ｌ)，キャッシュバッファ内アドレス(ＣＢＡ)，ＶフラグおよびＭフラグを含む。ピクチャアドレスは、タグに対応する矩形ブロック集合の内、例えば、最も左上に位置する矩形ブロック(Ａ)を原点(０，０)として表す。
【００５０】
図５に示されるように、図４に示す矩形ブロック集合ＢＧ内に位置する６個の矩形ブロック(Ａ)〜(Ｆ)は、キャッシュバッファ１２内のあるアドレスから連続して配置され、タグＴＧbgのキャッシュバッファ内アドレスＣＢＡにより開始位置が示される。
【００５１】
ここで、矩形ブロック集合ＢＧ内の各矩形ブロックＲＢ((Ａ)〜(Ｆ))の位置(キャッシュバッファアドレス)Ａｄｒは、次のようにして求めることができる。
【００５２】
例えば、矩形ブロック(Ｅ)は、矩形ブロック(Ａ)を原点(０，０)として、水平方向(右方向)に『１』、垂直方向(下方向)に『１』だけ離れているので、矩形ブロック集合ＢＧ内の相対ブロック座標で、(Ｂｘ，Ｂｙ)＝(１，１)になる。
【００５３】
また、例えば、矩形ブロック(Ｆ)は、原点(０，０)の矩形ブロック(Ａ)から水平方向(右方向)に『２』で垂直方向(下方向)に『１』だけ離れているので、矩形ブロック集合ＢＧ内の相対ブロック座標で、(Ｂｘ，Ｂｙ)＝(２，１)になる。
【００５４】
矩形ブロック(Ｅ)に対応するキャッシュバッファアドレスＡｄｒ(Ｅ)、および、矩形ブロック(Ｆ)に対応するキャッシュバッファアドレスＡｄｒ(Ｆ)は、次のようになる。
Ａｄｒ(Ｅ)＝ＣＢＡ＋Ｋ×Ｂｙ＋Ｂｘ
＝ＣＢＡ＋Ｋ×１＋１
Ａｄｒ(Ｆ)＝ＣＢＡ＋Ｋ×１＋２
【００５５】
［比較部動作］
次に、比較部１４の動作を説明する。キャッシュバッファ１２内に所望の矩形ブロックＲＢが存在するかどうかを確認する際、キャッシュタグ部１３に格納されたタグを走査する。
【００５６】
すなわち、キャッシュバッファ１２内に所望の矩形ブロックが存在するかどうかを確認する際、比較部１４により、キャッシュタグ部１３のそれぞれのタグＴＧbgが示すピクチャアドレスの範囲と、所望の矩形ブロックのピクチャアドレス(Ｓｘ，Ｓｙ)を比較する。すなわち、図６に示す比較部１４によって、キャッシュタグ部１３のそれぞれのタグＴＧbgに対して、以下の処理を行う。
【００５７】
タグのＶフラグが有効、かつ、
ピクチャアドレス(ｘ)≦Ｓｘ≦ピクチャアドレス(ｘ)＋(Ｋ−１)、かつ、
ピクチャアドレス(ｙ)≦Ｓｙ≦ピクチャアドレス(ｙ)＋(Ｌ−１)が成立する場合、ヒットとし、
成立しない場合、ミスヒットとする。
【００５８】
キャッシュヒット時における対象ブロックをＱとし、タグをＨとすると、対象ブロックＱのキャッシュバッファアドレスＡｄｒ(Ｑ)は、以下のようにして算出される。
【００５９】
Ｂｘ＝Ｑピクチャアドレス(ｘ)−Ｈピクチャアドレス(ｘ)
Ｂｙ＝Ｑピクチャアドレス(ｙ)−Ｈピクチャアドレス(ｙ)
Ａｄｒ(Ｑ)＝Ｈキャッシュバッファ内アドレス＋Ｋ×Ｂｙ＋Ｂｘ
【００６０】
図７は、本実施例の画像キャッシュメモリ装置において、キャッシュミスヒット時のアクセスを説明するための図である。なお、図７において、参照符号ＲＴは、処理装置２からアクセスリクエストがあったブロック(データ領域)を示し、ＭＢは、キャッシュミスヒットしたブロックを示す。
【００６１】
次に、リードアクセスおよびライトアクセス時の動作を説明する。処理装置２から画像キャッシュメモリ装置１に対するリードアクセスおよびライトアクセスは、複数の矩形ブロックの集合(矩形ブロック集合ＢＧ)であり、矩形形状とする。
【００６２】
［リード(読み出し)アクセス動作］
処理装置２から画像キャッシュメモリ装置１に対してリードアクセスがあった場合、制御部１１は、リードアクセスに対応する複数の矩形ブロックＲＢのそれぞれに対してキャッシュバッファ１２内に存在するかどうかの確認を行う。
【００６３】
すなわち、制御部１１は、キャッシュタグ部１３にあるタグＴＧbgを、比較部１４を通して走査し、前述した比較動作を行って、キャッシュヒットしたブロック(例えば、図７の矩形ブロック(Ｅ)，(Ｆ))をキャッシュバッファ１２から処理装置２に転送する。
【００６４】
キャッシュミスヒットしたブロックＭＢ(図７におけるハッチング部分)は、右側に抜き出して示されるように、矩形形状に分割し、外部メモリ３からそれぞれの矩形形状を矩形ブロック集合ＢＧ１，ＢＧ２としてキャッシュバッファ１２内に読み込む。
【００６５】
すなわち、キャッシュミスヒットしたブロックＭＢは、１つの矩形ブロックＲＢを有する矩形ブロック集合ＢＧ１と、６つの矩形ブロックＲＢを有する矩形ブロック集合ＢＧ２とに分割される。
【００６６】
なお、例えば、矩形ブロック集合ＢＧ１は、外部メモリ３に対する１回目のアクセスでキャッシュバッファ１２内に読み込まれ、また、矩形ブロック集合ＢＧ２は、外部メモリ３に対する２回目のアクセスでキャッシュバッファ１２内に読み込まれる。
【００６７】
読み込んだ矩形ブロック集合ＢＧ１およびＢＧ２に対しては、それぞれ新たなタグを用意し、ピクチャアドレス，水平ブロック数(Ｋ)，垂直ブロック数(Ｌ)，キャッシュバッファ内アドレス(ＣＢＡ)を更新する。さらに、矩形ブロック集合ＢＧ１およびＢＧ２のそれぞれのタグにおけるＶフラグを有効(『１』)とし、Ｍフラグを無効(『０』)とする。
【００６８】
［ライト(書き込み)アクセス動作］
次に、処理装置２から画像キャッシュメモリ装置１に対してライトアクセスがあった場合、制御部１１は、ライトアクセスに対応する複数の矩形ブロックＲＢのそれぞれに対してキャッシュバッファ１２内に存在するかどうかの確認を行う。
【００６９】
すなわち、制御部１１は、キャッシュタグ部１３にあるタグＴＧbgを、比較部１４を通して走査し、前述した比較動作を行って、キャッシュヒットしたブロック(例えば、図７の矩形ブロック(Ｅ)，(Ｆ))を処理装置２からのデータ(画像データ)に書き換える。そして、キャッシュヒットしたブロック(Ｅ)，(Ｆ)に対応するタグのＭフラグを有効(『１』)とする。
【００７０】
キャッシュミスヒットしたブロックＭＢは、図７の右側に抜き出して示されるように、矩形形状に分割し、それぞれの矩形形状を矩形ブロック集合ＢＧ１，ＢＧ２としてキャッシュバッファ１２内に格納する。
【００７１】
すなわち、キャッシュミスヒットしたブロックＭＢは、１つの矩形ブロックＲＢを有する矩形ブロック集合ＢＧ１と、６つの矩形ブロックＲＢを有する矩形ブロック集合ＢＧ２とに分割される。
【００７２】
なお、例えば、矩形ブロック集合ＢＧ１は、１回目のアクセスでキャッシュバッファ１２内に書き込まれ、また、矩形ブロック集合ＢＧ２は、２回目のアクセスでキャッシュバッファ１２内に書き込まれる。
【００７３】
キャッシュバッファ１２に格納した矩形ブロック集合ＢＧ１およびＢＧ２に対しては、それぞれ新たなタグを用意し、ピクチャアドレス，水平ブロック数(Ｋ)，垂直ブロック数(Ｌ)，キャッシュバッファ内アドレス(ＣＢＡ)を更新する。さらに、矩形ブロック集合ＢＧ１およびＢＧ２それぞれのＶフラグを有効(『１』)とし、Ｍフラグを有効(『１』)とする。
【００７４】
［キャッシュの追い出し動作］
以上において、リードアクセスしてミスヒットしたとき、並びに、ライトアクセスのとき、キャッシュバッファ１２に十分な空き容量が無い場合には、キャッシュバッファ１２内のデータを解放して空き容量を確保する。
【００７５】
すなわち、制御部１１は、キャッシュタグ部１３にあるタグを、比較部１４を通して走査し、Ｖフラグが有効になっているタグ、および、対応するキャッシュバッファ１２内の矩形ブロック(データ領域)を解放する。
【００７６】
なお、キャッシュバッファ１２内のデータを解放する順序については、例えば、前述したように、ＬＲＵによる最もアクセス時期が古いものから優先して行う方法を適用することができる。或いは、例えば、画像処理装置で利用されている他のキャッシュアルゴリズムを適用してもよい。
【００７７】
ここで、解放するタグのＭフラグが有効(『１』)になっている場合は、処理装置２によりデータの内容が書き換わっているため、そのタグに対応するキャッシュバッファ１２内の矩形ブロックＲＢのデータを外部メモリ３に書き出す(書き戻す)ことになる。
【００７８】
このように、本実施例の画像キャッシュメモリ装置は、例えば、図１〜図３を参照して説明したものと比較して、キャッシュタグ部１３に格納されるタグの個数を削減することが可能になる。これにより、例えば、比較部１４による比較処理に要する時間や比較部１４自体のハードウェアコストを低減することができる。
【００７９】
図８および図９は、本実施例の画像キャッシュメモリ装置におけるタグの併合処理の一例を説明するための図である。
【００８０】
［タグの併合処理］
処理装置２からのアクセスのサイズが一定であり、前回のアクセスから隣接した領域のアクセスを繰り返すような場合、それら複数のアクセス領域は１つの矩形形状とすることができる。
【００８１】
図８に示されるように、例えば、１回目のアクセスが水平方向に３ブロックで垂直方向に２ブロック連続する領域(Ａ)(Ｂ)(Ｃ)，(Ｄ)(Ｅ)(Ｆ)で、２回目のアクセスが水平方向に３ブロック連続する領域(Ｇ)(Ｈ)(Ｉ)の場合、まとめると１つの矩形形状になる。
【００８２】
すなわち、１回目のアクセスによる矩形ブロック集合ＢＧ１'((Ａ)(Ｂ)(Ｃ)，(Ｄ)(Ｅ)(Ｆ))、および、２回目のアクセスによる矩形ブロック集合ＢＧ２'((Ｇ)(Ｈ)(Ｉ))は、１つの矩形ブロック集合ＢＧＮにまとめられる。
【００８３】
そして、水平方向に３ブロックで垂直方向に３ブロック連続する領域(Ａ)(Ｂ)(Ｃ)，(Ｄ)(Ｅ)(Ｆ)，(Ｇ)(Ｈ)(Ｉ)を１つの新たな矩形ブロック集合ＢＧＮとし、その新たな矩形ブロック集合ＢＧＮに対して１つのタグを対応させる。
【００８４】
図９に示されるように、新たな矩形ブロック集合ＢＧＮに対して２つのタグＴＧbg1，ＴＧbg2ではなく、１つのタグＴＧbg1だけを対応させることにより、タグの個数をさらに削減することが可能になる。
【００８５】
すなわち、制御部１１は、以下の＜処理１＞および＜処理２＞を行うことにより、新たなタグの使用を抑制することが可能になる。
【００８６】
＜処理１＞
キャッシュミスヒット時において、キャッシュバッファ１２に対して新たな矩形ブロック集合ＢＧＮ(ＢＧ１'，ＢＧ２')を格納する際、以下のタグを検索する。
Ｖフラグが有効(『１』)、かつ、
【００８７】
水平ブロック数(Ｋ)が新たな矩形ブロック集合ＢＧＮの水平ブロック数と等しい(すなわち、１回目のアクセスによる矩形ブロック集合ＢＧ１'と２回目のアクセスによる矩形ブロック集合ＢＧ２'の水平ブロック数が等しい)、かつ、
【００８８】
リードアクセスでＭフラグが無効(『０』)，または，ライトアクセスでＭフラグが有効(『１』)、かつ、
矩形ブロック集合ＢＧＮに対して垂直方向の上側または下側に領域が隣接(すなわち、１回目のアクセスによる矩形ブロック集合ＢＧ１'と２回目のアクセスによる矩形ブロック集合ＢＧ２'が垂直方向の上側または下側に領域が隣接)している。
【００８９】
＜処理２＞
上記＜処理１＞において、該当するタグが見つからない場合は、新たなタグの使用を抑制することが困難なので、矩形ブロック集合ＢＧＮに対して新たにタグを割り当てる。
【００９０】
一方、該当するタグ(ＴＧbg1)が見つかった場合、矩形ブロック集合ＢＧＮ(ＢＧ１'およびＢＧ2')に対する新たなタグは割り当てずに、そのタグＴＧbg1の内容を以下のように書き換える。
【００９１】
タグＴＧbg1の垂直ブロック数(Ｌ)を、新たな矩形ブロック集合ＢＧＮの垂直ブロック数とし、かつ、
【００９２】
タグＴＧbg1が矩形ブロック集合ＢＧＮの下側に位置する場合、タグＴＧbg1のピクチャアドレスを矩形ブロック集合ＢＧＮのピクチャアドレスに書き換える。これにより、新たなタグの使用を抑制することが可能になる。
【００９３】
ここで、例えば、リード領域とライト領域のタグを併合すると、Ｍフラグが有効になるタグ１個で管理されるため、キャッシュ追い出し時にリード領域も合わせて外部メモリ３に書き出すことになる。
【００９４】
従って、外部メモリ３に対するアクセスデータ量およびアクセス時間の増大を考慮すると、タグの併合は、リード領域(Ｍフラグが無効)のタグ間、或いは、ライト領域(Ｍフラグが有効)のタグ間で独立して行うのが好ましい。
【００９５】
ところで、図８および図９を参照して説明したように、矩形ブロック集合内の各矩形ブロックのキャッシュバッファ１２内におけるアドレススキャンは、水平方向のスキャン順になっている。
【００９６】
そのため、上述したタグの併合処理は、キャッシュバッファ１２内のブロックアドレスを連続させるために、垂直方向に隣接している矩形ブロック集合ＢＧ同士のみで行うことが困難になる。
【００９７】
画像キャッシュメモリ装置１にアクセスする処理装置２の特性によっては、垂直方向に連続する領域にアクセスを行うのではなく、水平方向に連続した領域にアクセスを行うものがある。
【００９８】
この場合、矩形ブロック集合内の各矩形ブロックのキャッシュバッファ１２内におけるアドレススキャンは、垂直方向のスキャン順になっている方が好ましい。
【００９９】
図１０および図１１は、本実施例の画像キャッシュメモリ装置におけるタグの併合処理の変形例を説明するための図であり、図１２は、図１０に示す矩形ブロック集合のタグの一例を説明するための図である。
【０１００】
図１２と前述した図６との比較から明らかなように、タグの併合処理の変形例における矩形ブロック集合ＢＧＮ0のタグは、前述した矩形ブロック集合ＢＧＮのタグに対して、アドレススキャンが水平方向順か垂直方向順かを示すＳフラグが追加されている。
【０１０１】
ここで、例えば、矩形ブロック集合内の各矩形ブロックのキャッシュバッファ１２内におけるアドレススキャンが、水平方向のスキャン順の場合にはＳフラグを『０』とし、垂直方向のスキャン順の場合にはＳフラグを『１』とする。
【０１０２】
すなわち、Ｓ＝０のときは、該当するブロックのキャッシュバッファ１２内におけるアドレススキャンが水平方向のスキャン順であることを示し、Ｓ＝１のときは、垂直方向のスキャン順であることを示す。
【０１０３】
画像キャッシュメモリ装置１は、例えば、外部からの設定や処理装置２からの識別信号に従って、水平スキャン(アドレススキャンが水平方向のスキャン順)、または、垂直スキャン(アドレススキャンが垂直方向のスキャン順)を切り替える。
【０１０４】
ここで、タグの併合処理に関して、Ｓ＝０になっているタグ間においては、垂直方向に隣接している場合に併合可能であり、Ｓ＝１になっているタグ間においては、水平方向に隣接している場合に併合可能である。
【０１０５】
すなわち、Ｓ＝０の場合、タグの併合処理は、例えば、図８および図９を参照して説明したのと同様なので、その説明は省略する。そこで、Ｓ＝１の場合、すなわち、垂直スキャンの場合を図１０および図１１を参照して説明する。
【０１０６】
図１０は、Ｓ＝１のとき、１回目のアクセスが垂直方向に２ブロックで水平方向に３ブロック連続する領域(Ａ)(Ｂ)，(Ｃ)(Ｄ)，(Ｅ)(Ｆ)で、２回目のアクセスが垂直方向に２ブロックで水平方向に２ブロック連続する領域(Ｇ)(Ｈ)，(Ｉ)(Ｊ)の場合を示す。
【０１０７】
すなわち、１回目のアクセスによる矩形ブロック集合ＢＧ１"((Ａ)(Ｂ)，(Ｃ)(Ｄ)，(Ｅ)(Ｆ))、および、２回目のアクセスによる矩形ブロック集合ＢＧ２"((Ｇ)(Ｈ)，(Ｉ)(Ｊ))は、１つの矩形ブロック集合ＢＧＮ0にまとめられる。
【０１０８】
そして、１回目のアクセスおよび２回目のアクセスをまとめた１つの新たな矩形ブロック集合ＢＧＮ0は、垂直方向に２ブロックで水平方向に５ブロック連続する領域(Ａ)(Ｂ)，(Ｃ)(Ｄ)，(Ｅ)(Ｆ)，(Ｇ)(Ｈ)，(Ｉ)(Ｊ)になり、これに１つのタグを対応させる。
【０１０９】
図１１に示されるように、新たな矩形ブロック集合ＢＧＮ0に対して２つのタグＴＧbg10，ＴＧbg20ではなく、１つのタグＴＧbg10だけを対応させることにより、タグの併合を行ってタグの個数を削減することができる。
【０１１０】
なお、Ｓ＝１になっているタグにおいて、タグ内ブロックのキャッシュバッファ内アドレス(ＣＢＡ)の計算がＳ＝０の場合と異なる。すなわち、対象ブロックをＱ、タグをＲとすると、対象ブロックＱのキャッシュバッファアドレスＡｄｒ(Ｑ)は、以下のようにして算出される。
【０１１１】
Ｂｘ＝Ｑピクチャアドレスｘ−Ｒピクチャアドレスｘ
Ｂｙ＝Ｑピクチャアドレスｙ−Ｒピクチャアドレスｙ
Ａｄｒ(Ｑ)＝Ｒキャッシュバッファ内アドレス＋Ｌ×Ｂｘ＋Ｂｙ
【０１１２】
このように、図１０〜図１２を参照して説明した変形例は、水平スキャンおよび垂直スキャンの両方に対してタグの併合を行うことができる。
【０１１３】
上述したように、本実施例の画像キャッシュメモリ装置によれば、キャッシュバッファに格納されたデータに対応したタグの個数を削減することができる。さらに、タグの併合処理により、より一層少ないタグの個数で大きな容量のキャッシュバッファを扱うことが可能になる。
【０１１４】
以上、実施形態を説明したが、ここに記載したすべての例や条件は、発明および技術に適用する発明の概念の理解を助ける目的で記載されたものであり、特に記載された例や条件は発明の範囲を制限することを意図するものではない。また、明細書のそのような記載は、発明の利点および欠点を示すものでもない。発明の実施形態を詳細に記載したが、各種の変更、置き換え、変形が発明の精神および範囲を逸脱することなく行えることが理解されるべきである。
【０１１５】
以上の実施例を含む実施形態に関し、さらに、以下の付記を開示する。
（付記１）
画像データのキャッシュ処理を行う画像キャッシュメモリ装置であって、
矩形に配列された複数のピクセルを含む矩形ブロックを単位とするキャッシュデータを格納するキャッシュバッファと、
前記矩形ブロックを複数含む矩形ブロック集合に対応するタグを格納するキャッシュタグ部と、
前記キャッシュタグ部に格納された前記タグを比較する比較部と、
前記キャッシュバッファ，前記キャッシュタグ部および前記比較部を制御して前記キャッシュ処理を行う制御部と、を有する、
ことを特徴とする画像キャッシュメモリ装置。
【０１１６】
（付記２）
前記矩形ブロック集合は、ＫおよびＬを正の整数で、少なくとも一方を２以上として、
前記矩形ブロックが水平方向にＫ個配列され、
前記矩形ブロックが垂直方向にＬ個配列されている、
ことを特徴とする付記１に記載の画像キャッシュメモリ装置。
【０１１７】
（付記３）
前記タグは、
前記矩形ブロック集合に含まれる、前記矩形ブロックの水平方向の数である水平ブロック数Ｋと、
前記矩形ブロック集合に含まれる、前記矩形ブロックの垂直方向の数である垂直ブロック数Ｌと、
対応する矩形ブロックが１つのピクチャ内のどの位置にあるかを示すピクチャアドレスと、
前記タグの有効／無効を示す第１フラグと、
前記キャッシュバッファ内のデータが変更されたか否かを示す第２フラグと、を含む、
ことを特徴とする付記２に記載の画像キャッシュメモリ装置。
【０１１８】
（付記４）
前記制御部は、
リードアクセスのとき、前記キャッシュタグ部にあるタグを、前記比較部を通して走査し、
前記リードアクセスのデータがキャッシュヒットしたブロックを、前記キャッシュバッファから読み出し、
前記リードアクセスのデータがキャッシュミスヒットしたブロックを、矩形形状に分割し、それぞれの矩形形状を矩形ブロック集合として前記キャッシュバッファ内に読み込み、
前記キャッシュバッファ内に読み込んだ前記矩形ブロック集合に対して新たなタグを用意し、その新たなタグの第１フラグを有効とすると共に第２フラグを無効とする、
ことを特徴とする付記３に記載の画像キャッシュメモリ装置。
【０１１９】
（付記５）
前記制御部は、
ライトアクセスのとき、前記キャッシュタグ部にあるタグを、前記比較部を通して走査し、
前記ライトアクセスのデータがキャッシュヒットしたブロックを、前記ライトアクセスのデータに書き換えると共に、そのキャッシュヒットしたブロックに対応するタグの第２フラグを有効とし、
前記ライトアクセスのデータがキャッシュミスヒットしたブロックを、矩形形状に分割し、それぞれの矩形形状を矩形ブロック集合として前記キャッシュバッファ内に格納し、
前記キャッシュバッファ内に格納した前記矩形ブロック集合に対して新たなタグを用意し、その新たなタグの第１フラグを有効とすると共に第２フラグを有効とする、
ことを特徴とする付記３に記載の画像キャッシュメモリ装置。
【０１２０】
（付記６）
前記制御部は、
アクセスサイズが一定であり、直前の第１アクセスから次の第２アクセスが、隣接した領域のアクセスのとき、前記第１アクセスのタグと前記第２アクセスのタグを併合する、
ことを特徴とする付記３乃至付記５のいずれか１項に記載の画像キャッシュメモリ装置。
【０１２１】
（付記７）
前記タグは、さらに、
アドレススキャンが、第１方向および該第１方向と交差する第２方向のいずれの方向のスキャン順かを示す第３フラグを含む、
ことを特徴とする付記３乃至付記５のいずれか１項に記載の画像キャッシュメモリ装置。
【０１２２】
（付記８）
前記制御部は、
アクセスサイズが一定であり、直前の第１アクセスおよび次の第２アクセスのアドレススキャンが前記第３フラグにより規定された第１方向のスキャン順であり、前記第２方向に隣接した領域のアクセスのとき、前記第１アクセスのタグと前記第２アクセスのタグを併合する、
ことを特徴とする付記７に記載の画像キャッシュメモリ装置。
【０１２３】
（付記９）
前記第１アクセスによる第１矩形ブロック集合は、前記矩形ブロックが前記第１方向にＫ個配列され、
前記第２アクセスによる第２矩形ブロック集合は、前記矩形ブロックが前記第１方向にＫ個配列され、前記第１矩形ブロック集合と前記第２方向で領域が隣接しているとき、
前記制御部は、
前記第１矩形ブロック集合および前記第２矩形ブロック集合を、新たな第３矩形ブロック集合として、該第３矩形ブロック集合に対応する新たなタグにより管理する、
ことを特徴とする付記８に記載の画像キャッシュメモリ装置。
【０１２４】
（付記１０）
付記１乃至付記９のいずれか１項に記載の画像キャッシュメモリ装置と、
前記画像キャッシュメモリ装置における前記制御部を介して、外部メモリに格納された画像データのキャッシュ処理を行わせる処理装置と、を有する、
ことを特徴とする半導体集積回路。
【０１２５】
（付記１１）
前記制御部は、
前記処理装置からリードアクセスがあった場合、前記キャッシュタグ部にあるタグを、前記比較部を通して走査し、
前記リードアクセスのデータがキャッシュヒットしたブロックを、前記キャッシュバッファから前記処理装置に転送し、
前記リードアクセスのデータがキャッシュミスヒットしたブロックを、矩形形状に分割し、それぞれの矩形形状を矩形ブロック集合として前記外部メモリから前記キャッシュバッファ内に読み込み、
前記キャッシュバッファ内に読み込んだ前記矩形ブロック集合に対して新たなタグを用意し、その新たなタグの第１フラグを有効とすると共に第２フラグを無効とする、
ことを特徴とする付記１０に記載の半導体集積回路。
【０１２６】
（付記１２）
前記制御部は、
前記処理装置からライトアクセスがあった場合、前記キャッシュタグ部にあるタグを、前記比較部を通して走査し、
前記ライトアクセスのデータがキャッシュヒットしたブロックを、前記処理装置からのデータに書き換えると共に、そのキャッシュヒットしたブロックに対応するタグの第２フラグを有効とし、
前記ライトアクセスのデータがキャッシュミスヒットしたブロックを、矩形形状に分割し、それぞれの矩形形状を矩形ブロック集合として前記キャッシュバッファ内に格納し、
前記キャッシュバッファ内に格納した前記矩形ブロック集合に対して新たなタグを用意し、その新たなタグの第１フラグを有効とすると共に第２フラグを有効とする、
ことを特徴とする付記１０に記載の半導体集積回路。
【符号の説明】
【０１２７】
１    画像キャッシュメモリ装置
２    処理装置
３    外部メモリ
１１    制御部
１２    キャッシュバッファ
１３    キャッシュタグ部
１４    比較部
１５    内部バスＩＦ
１６    外部バスＩＦ
【図１】
2014235689.tif 000003
【図２】
2014235689.tif 000004
【図３】
2014235689.tif 000005
【図４】
2014235689.tif 000006
【図５】
2014235689.tif 000007
【図６】
2014235689.tif 000008
【図７】
2014235689.tif 000009
【図８】
2014235689.tif 000010
【図９】
2014235689.tif 000011
【図１０】
2014235689.tif 000012
【図１１】
2014235689.tif 000013
【図１２】
2014235689.tif 000014