(57)【要約】【課題】  外部記憶装置に記憶されたデータの一部をブロックごとに細分化して保持するとともに、回路規模の増大を防止する。【解決手段】  データ保持部１２は外部記憶装置２０に記憶された所定のデータ量ごとのブロック３０に分割して表現された２次元以上のデータ空間のうち、一部の領域のデータを保持し、アドレス管理部１３は、複数のブロック３０からなる所定の大きさの領域内におけるデータのデータ空間上での位置を、領域ごとに１つ記憶し、データ保持部１２に保持されるデータのアドレスを管理する。【選択図】  図１
2006338334.tif 000002
【特許請求の範囲】
【請求項１】
外部記憶装置に記憶されたデータの一部を保持してデータ処理を行うデータ処理装置において、
前記外部記憶装置に記憶された所定のデータ量ごとのブロックに分割して表現された２次元以上のデータ空間のうち、一部の領域のデータを保持するデータ保持部と、
複数の前記ブロックからなる所定の大きさの前記領域の前記データ空間上での位置を、前記領域ごとに１つ記憶し、前記データ保持部に保持される前記データのアドレスを管理するアドレス管理部と、
を有することを特徴とするデータ処理装置。
【請求項２】
前記データ保持部は、前記領域内の複数の前記ブロックのうち、データ処理に使用する前記ブロックのデータのみ前記外部記憶装置から読み出して保持し、
前記アドレス管理部は、前記領域内の複数の前記ブロックのうち、前記データ保持部に前記データを保持した前記ブロックと、保持しない前記ブロックの位置を管理することを特徴とする請求項１記載のデータ処理装置。
【請求項３】
前記アドレス管理部は、前記データ保持部に前記データを記憶する前記領域が変更されると、変更前と変更後の前記領域が重なっている場合には、前記データ保持部におけるデータ記憶開始位置を変更して、重なり部分の変更前の前記領域の前記データをそのまま保持させることを特徴とする請求項１記載のデータ処理装置。
【請求項４】
前記位置は、前記領域の所望の位置であることを特徴とする請求項１記載のデータ処理装置。
【請求項５】
外部記憶装置に記憶されたデータの一部を保持してデータ処理を行うデータ処理方法において、
前記外部記憶装置に記憶された所定のデータ量ごとのブロックに分割して表現された２次元以上のデータ空間のうち、一部の領域のデータをデータ保持部に保持し、
複数の前記ブロックからなる所定の大きさの前記領域の前記データ空間上での位置を、前記領域ごとに１つ記憶し、
前記データ保持部に保持される前記データのアドレスを管理する、
ことを特徴とするデータ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ処理装置及びデータ処理方法に関し、特に外部記憶装置に記憶されたデータの一部を保持してデータ処理を行うデータ処理装置及びデータ処理方法に関する。
【背景技術】
【０００２】
近年、マルチメディア技術の発展によりコンピュータが処理するデータ量がますます増加してきている。特に画像においては高解像度かつ高速な処理が要求されている。
図２０は、従来の画像処理ＬＳＩの概略の構成を示す図である。
【０００３】
従来の画像処理を行う画像処理ＬＳＩ（Large Scale Integrated circuit）９０ａは、画像データに対し所定の演算処理を行う演算処理部９１を有する。そして、画像処理ＬＳＩ９０ａは、膨大なデータ量の画像データを扱うため、画像処理ＬＳＩ９０ａとは別の外部ＲＡＭ（Random Access Memory）１００を使用し、画像１枚分あるいはそれ以上のデータを保持しておき、画像処理の際には外部ＲＡＭ１００からデータを読み出し演算処理部９１にて処理を行う。
【０００４】
しかしながら、外部ＲＡＭ１００へのアクセスには、データを要求してから出力されるまでに時間がかかるという問題や、アクセスの際の消費電力が多いという問題、アクセス量が多いときには、外部ＲＡＭのアクセス量の限界を超えないよう複数の外部ＲＡＭが必要となることもありコストアップにつながるという問題が生じる。
【０００５】
従って従来、内部ＲＡＭを有する画像処理ＬＳＩが用いられている。
図２１は、内部ＲＡＭを有する従来の画像処理ＬＳＩの概略の構成を示す図である。
画像処理ＬＳＩ９０ｂは、内部に外部ＲＡＭ１００より小容量で高速な内部ＲＡＭ（以下キャッシュメモリという場合もある。）９２を有しており、頻繁に利用するデータをこの内部ＲＡＭ９２に保持することにより、外部ＲＡＭ１００へのアクセス量を減らすことができる構成となっている。
【０００６】
但し、この内部ＲＡＭ９２は、画像処理ＬＳＩ９０ｂの回路規模の増大を避けるために、例えば、１枚の画像データの一部分だけを記憶している。画像データのうち内部ＲＡＭ９２に保持するデータ領域（以下キャッシュ領域という。）は、頻繁に使用するデータ使用領域に対して、例えば以下のように設定される。
【０００７】
図２２は、キャッシュ領域の設定を示す図であり、（Ａ）がキャッシュ領域を大きく設定した場合、（Ｂ）がキャッシュ領域を小さく設定した場合の例を示す図である。
図２２（Ａ）のように、画像データのうち内部ＲＡＭ９２に保持するキャッシュ領域１１１０を大きくしすぎると、内部ＲＡＭ９２の規模そのものが増えるほか、実際に画像処理に使用するデータ使用領域１１１に対し大きくなりすぎ、外部ＲＡＭ１００への無駄な外部アクセスが増えることになる。また図２２（Ｂ）のように、キャッシュ領域１１２を小さくした場合、キャッシュのヒット率（演算処理部９１がデータを要求した際に内部ＲＡＭ９２内に既にデータが存在している確率）が下がる。そして、領域１１３、１１４、１１５のデータも保持する必要があるので、結局、外部ＲＡＭ１００へ頻繁にアクセスすることになってしまう。
【０００８】
そのため、さらに、以下のような手法により効率的なキャッシュメモリの使用を図る技術があった（例えば、特許文献１、２参照。）。
図２３は、画像データをブロックで細分化して必要なデータをキャッシュメモリに記憶する従来の手法を説明する図である。
【０００９】
画像データを例えば、１６×１６画素のブロック１２０で細分化し、頻繁に使用するデータ使用領域のブロック（図中のａ〜ｆ）のデータをキャッシュメモリ１２１に記憶する手法である。この場合、キャッシュメモリ１２１に記憶するブロックのデータが、画像データ中のどの位置のデータを記憶しているのかを、データマップ１２２としてブロックごとに記憶する。
【００１０】
上記のような記憶方法では、画像データを区切るブロックサイズをより細分化し、マッピング数を増やすことによって、必要なデータ領域のみキャッシュメモリに保持することができ、キャッシュメモリの容量を増やさずにキャッシュのヒット率を上げ、外部ＲＡＭ１００へのアクセス量を低減させることができる。
【特許文献１】特表２００２−５１４８１８号公報（第４図）
【特許文献２】特開平１０−５１６４４号公報（第２図、第５図）
【発明の開示】
【発明が解決しようとする課題】
【００１１】
しかし、画像データを区切るブロックサイズをより細分化すると、それを管理するデータマップの記憶領域が増え、それに伴いアドレスを指定するための比較器などの演算器も巨大化し、回路規模が増大してしまうという問題があった。
【００１２】
本発明はこのような点に鑑みてなされたものであり、外部記憶装置に記憶されたデータの一部をブロックごとに細分化して保持するとともに、回路規模の増大を招かないデータ処理装置を提供することを目的とする。
【００１３】
また、本発明の他の目的は、外部記憶装置に記憶されたデータの一部をブロックごとに細分化して保持するとともに、回路規模の増大を招かないデータ処理方法を提供することである。
【課題を解決するための手段】
【００１４】
本発明では上記問題を解決するために、外部記憶装置に記憶されたデータの一部を保持してデータ処理を行うデータ処理装置において、図１に示すように、外部記憶装置２０に記憶された所定のデータ量ごとのブロック３０に分割して表現された２次元以上のデータ空間のうち、一部の領域（図１では２つのデータ使用領域３１ａ、３１ｂ）のデータを保持するデータ保持部１２と、複数のブロック３０からなる所定の大きさ（図１では４×４ブロック）の領域内におけるデータのデータ空間上での位置（図１ではデータ使用領域３１ａ、３１ｂの左上の頂点３２ａ、３２ｂ）を、領域ごとに１つ記憶し、データ保持部１２に保持されるデータのアドレスを管理するアドレス管理部１３と、を有することを特徴とするデータ処理装置１０が提供される。
【００１５】
上記の構成によれば、データ保持部１２は外部記憶装置２０に記憶された所定のデータ量ごとのブロック３０に分割して表現された２次元以上のデータ空間のうち、一部の領域のデータを保持し、アドレス管理部１３は、複数のブロック３０からなる所定の大きさの領域内におけるデータのデータ空間上での位置を、領域ごとに１つ記憶し、データ保持部１２に保持されるデータのアドレスを管理する。
【発明の効果】
【００１６】
本発明では、データ保持部は外部記憶装置に記憶された所定のデータ量ごとのブロックに分割して表現された２次元以上のデータ空間のうち、一部の領域のデータを保持し、アドレス管理部は、複数のブロックからなる所定の大きさの領域内におけるデータのデータ空間上での位置を、領域ごとに１つ記憶し、データ保持部に保持されるデータのアドレスを管理するので、複数のブロックに細分化されたデータを保持しても、回路規模の増大を招かない。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の実施の形態を図面を参照して詳細に説明する。
まず、本実施の形態の概略を説明する。
図１は、データ処理装置の概略の構成を示すブロック図である。
【００１８】
データ処理装置１０は、各種データ処理を行う演算処理部１１と、外部記憶装置２０に記憶されたデータの一部を保持するデータ保持部１２と、データ保持部１２で保持するデータの領域のデータ空間上での位置（以下記憶基準位置という。）を記憶基準位置記憶部に記憶し、データ保持部１２に記憶されるデータのアドレスを管理するアドレス管理部１３と、外部記憶装置２０との間でデータの入出力を行うメモリインタフェイス１４を有している。
【００１９】
演算処理部１１は、例えば２次元データから頻繁に使用するデータ領域（データ使用領域）をデータ保持部１２に記憶しておくために、データ使用領域の外部記憶装置２０でのアドレスを指定する。２次元データは、図１に示すように、所定のデータ量ごとのブロック３０に分割されて表現されている。演算処理部１１は、例えば、データ保持部１２に記憶したい矩形のデータ使用領域３１ａ、３１ｂの左上の頂点３２ａ、３２ｂのデータの外部記憶装置２０でのアドレスと、そのデータ使用領域３１ａ、３１ｂの大きさを指定する。
【００２０】
データ保持部１２は、指定されたデータ使用領域３１ａ、３１ｂを含むキャッシュ領域のデータを保持する。なおキャッシュ領域の大きさは、データ保持部１２の大きさで決まり、以下では４×４ブロックで固定の値とするが、この数に限定されるものではない。図１の場合、キャッシュ領域とデータ使用領域３１ａ、３１ｂは等しいので、以下ではこのデータ使用領域３１ａ、３１ｂをキャッシュ領域３１ａ、３１ｂと呼ぶことにする。
【００２１】
アドレス管理部１３は、キャッシュ領域３１ａ、３１ｂ内の２次元データ上での記憶基準位置を記憶する記憶基準位置記憶部１３ａを有している。以下では、記憶基準位置をキャッシュ領域３１ａ、３１ｂの左上の頂点３２ａ、３２ｂの座標とする。アドレス管理部１３はさらに、キャッシュ領域３１ａ、３１ｂのデータを書き込むデータ保持部１２のアドレスの指定や、各種データ処理において演算処理部１１から要求されたデータがデータ保持部１２にある場合は、記憶された記憶基準位置を参照して要求されたデータのデータ保持部１２上のアドレスを指定する。
【００２２】
メモリインタフェイス１４は、指定された上記のキャッシュ領域３１ａ、３１ｂのデータを外部記憶装置２０に要求し、外部記憶装置２０から得られたデータをデータ保持部１２に転送する。
【００２３】
以下、データ処理装置１０の動作の概略を説明する。
まず、演算処理部１１が頻繁に使用するデータをデータ保持部１２に書き込む際のデータ処理装置１０の動作を説明する。データ書き込みの際、演算処理部１１により、頂点３２ａ、３２ｂを記憶基準位置とした４×４ブロックのキャッシュ領域３１ａ、３１ｂが指定されると、アドレス管理部１３は、記憶基準位置記憶部１３ａに、頂点３２ａ、３２ｂの座標を記憶する。図１のような２次元データにおいて、横方向をＸ方向、縦方向をＹ方向とし、１番左上のブロックの左上頂点のアドレスを座標（０，０）で表し、各ブロックの左上頂点のアドレスを（Ｘ，Ｙ）（Ｘ、Ｙは自然数である。）で表すとすると、キャッシュ領域３１ａの頂点３２ａの座標は（１，１）、キャッシュ領域３１ｂの頂点３２ｂの座標は（６，４）である。そして、データ保持部１２は、メモリインタフェイス１４を介して外部記憶装置２０から設定されたキャッシュ領域３１ａ、３１ｂ内のデータを受け取り、アドレス管理部１３により指定されるアドレスにデータを保持する。なお、記憶基準位置の記憶は、データ保持部１２への書き込みの後でもよい。
【００２４】
次に、演算処理部１１によるデータ処理の際のデータ処理装置１０の動作を説明する。演算処理部１１はデータ処理に必要なデータ領域を指定する。データ領域の指定において演算処理部１１は、例えば要求する矩形のデータ領域の左上頂点の座標と、データ領域の大きさをアドレス管理部１３に通知する。アドレス管理部１３は、記憶基準位置記憶部１３ａに記憶されたキャッシュ領域３１ａ、３１ｂの頂点３２ａ、３２ｂの座標を参照し、要求されたデータが４×４ブロックのキャッシュ領域３１ａ、３１ｂ内にあれば、該当するデータのデータ保持部１２上のアドレスを指定して演算処理部１１にそのデータを読み出す。一方、データがキャッシュ領域３１ａ、３１ｂ内にない場合には、メモリインタフェイス１４を介して、そのデータを外部記憶装置２０に要求し、外部記憶装置２０からデータを演算処理部１１に読み出す。なお、外部記憶装置２０から読み出したデータを、データ保持部１２に保持するようにしてから演算処理部１１に読み出すようにしてもよい。
【００２５】
このように、本実施の形態のデータ処理装置１０によれば、４×４の１６ブロックからなるキャッシュ領域の２次元データ上での位置をキャッシュ領域ごとに１つ記憶するので、従来のようにブロックごとに記憶基準位置を記憶していた場合と比べ１／１６の記憶量で済み、回路規模の増大を招かない。
【００２６】
次に本実施の形態のデータ処理装置の詳細を説明する。なお、以下では、データ処理装置として、画像データを処理する画像処理ＬＳＩを例にして説明するがこれに限定されるものではない。
【００２７】
図２は、本実施の形態の画像処理ＬＳＩの構成を示す図である。
画像処理ＬＳＩ５０は、画像処理回路５１、キャッシュメモリ５２、キャッシュアドレス管理部５３、メモリインタフェイス５４を有する。
【００２８】
画像処理回路５１は、外部記憶装置６０に記憶された画像データをもとに各種画像処理を行う。なお、外部記憶装置６０は、例えば、ＳＤＲＡＭ（Synchronous Dynamic RAM）である。
【００２９】
キャッシュメモリ５２は、外部記憶装置６０に記憶された画像データの一部を記憶する。キャッシュメモリ５２には、例えば、ＳＲＡＭ（Static RAM）が用いられる。
キャッシュアドレス管理部５３は、外部記憶装置６０に記憶された画像データのうち、キャッシュメモリ５２に記憶されたキャッシュ領域のデータを指定するための記憶基準位置が管理されたデータマップ５３ａと、キャッシュ領域中で有効なデータブロック（詳細は後述する）の位置を記憶する有効ブロック位置記憶部５３ｂを有する。さらに、画像処理回路５１からのデータ要求などに応じて、キャッシュメモリ５２上のアドレスを指定する。
【００３０】
メモリインタフェイス５４は、画像処理ＬＳＩ５０と外部記憶装置６０との間でデータの送受信を行う機能を有し、画像処理ＬＳＩ５０からのデータの要求に応じて、外部記憶装置６０に記憶されているデータを読み出して、キャッシュメモリ５２に転送する機能を有している。
【００３１】
以下、本実施の形態の画像処理ＬＳＩ５０の動作を説明する。
まず、キャッシュメモリ５２への書き込み時の動作を説明する。
なお、以下でもキャッシュ領域の大きさは４×４ブロックの固定であるとして説明するが、特にこの数に限定されるものではない。
【００３２】
図３は、キャッシュメモリへのデータ書き込み時の動作を説明するフローチャートである。
画像処理ＬＳＩ５０において、画像処理回路５１は、キャッシュメモリ５２へのデータの書き込み要求を行い、キャッシュアドレス管理部５３に対しキャッシュメモリ５２に書き込む、画像データ上のデータ使用領域を指定する（ステップＳ１）。書き込み要求では、例えば、画像データ上で使用する矩形のデータ使用領域の左上頂点の座標と、そのデータ使用領域の大きさが指定される。ここでは、キャッシュ領域と同じ４×４ブロックのデータ使用領域が指定された場合について説明する。
【００３３】
図４は、キャッシュ領域の設定の例を示す図である。
画像データは、例えば、１つが１６×１６画素からなるブロックで細分化されて表現されている。そして、２次元画像データの横方向をＸ方向、縦方向をＹ方向とし、一番左上のブロックの左上頂点画素のアドレスを座標（０，０）で表し、各ブロックの左上頂点画素のアドレスを（Ｘ，Ｙ）（Ｘ、Ｙは自然数である。）で表すとすると、画像処理回路５１は、要求するデータ使用領域を以下のように指定する。例えば、３つの４×４ブロックのデータ使用領域７１ａ、７１ｂ、７１ｃを指定する場合、データ使用領域７１ａ、７１ｂ、７１ｃの左上頂点７２ａ、７２ｂ、７２ｃの座標（２，１）、（３，８）、（９，３）を指定する。この座標がキャッシュ領域の記憶基準位置となり、４×４ブロックの３つのキャッシュ領域が設定される。なお、この例の場合はデータ使用領域７１ａ、７１ｂ、７１ｃと同じ領域となるので、以下ではキャッシュ領域７１ａ、７１ｂ、７１ｃと記す。
【００３４】
次に、キャッシュアドレス管理部５３は、画像処理回路５１で指定された座標をキャッシュ領域７１ａ、７１ｂ、７１ｃの記憶基準位置としてデータマップ５３ａに記憶する（ステップＳ２）。
【００３５】
図５は、データマップの例である。
例えば、図４のような場合、データマップ５３ａにはステップＳ１で指定された座標（２，１）、（３，８）、（９，３）が記憶される。さらに、キャッシュ領域７１ａ、７１ｂ、７１ｃのデータの有効性が管理されており、キャッシュ領域７１ａ、７１ｂ、７１ｃのデータがキャッシュメモリ５２に書き込まれていない場合は“無効”が設定され、書き込まれている場合には“有効”が設定され、画像処理回路５１により読み出しが可能になる。
【００３６】
次に、設定されたキャッシュ領域７１ａ、７１ｂ、７１ｃのデータを、メモリインタフェイス５４を介して外部記憶装置６０に要求する（ステップＳ３）。このとき、指定された記憶基準位置の座標をもとに外部記憶装置６０の４×４ブロックのデータ要求が行われる。
【００３７】
外部記憶装置６０から読み出されたデータは、メモリインタフェイス５４を介してキャッシュメモリ５２に書き込まれる（ステップＳ４）。この際、キャッシュアドレス管理部５３は、キャッシュメモリ５２上のアドレスを指定してデータを書き込む。
【００３８】
キャッシュメモリ５２に要求したキャッシュ領域７１ａ、７１ｂ、７１ｃのデータの書き込みが完了すると、キャッシュアドレス管理部５３は、キャッシュメモリ５２からの書き込み完了の通知をうけ、書き込んだキャッシュ領域７１ａ、７１ｂ、７１ｃに対応するデータの有効性（図５参照）を“有効”とし、キャッシュメモリ５２への書き込み処理を終了する（ステップＳ５）。
【００３９】
次に、画像処理回路５１により所定のデータアクセスがあった場合の画像処理ＬＳＩ５０の動作を説明する。
図６は、データアクセス時の動作を説明するフローチャートである。
【００４０】
画像処理回路５１によってデータ要求がなされると（ステップＳ６）、キャッシュアドレス管理部５３はデータマップ５３ａを参照して、指定されたデータがキャッシュメモリ５２にあるか否かを判断する（ステップＳ７）。例えば、図４のようにキャッシュ領域７１ａ、７１ｂ、７１ｃが設定されている画像データにおいて、座標（３，２）から、２×２ブロック分のデータの要求があった場合、そのデータはキャッシュ領域７１ａに含まれる。このとき、キャッシュアドレス管理部５３は、キャッシュメモリ５２上のアドレスを指定して、要求されたデータをキャッシュメモリ５２から画像処理回路５１に読み出す（ステップＳ８）。一方、ステップＳ７の処理で、指定されたデータがキャッシュメモリ５２にないと判断された場合には、メモリインタフェイス５４を介して外部記憶装置６０にそのデータが要求され、外部記憶装置６０から画像処理回路５１に読み出される（ステップＳ９）。なお、外部記憶装置６０から読み出したデータをキャッシュメモリ５２の所定の領域に新たに保持するようにしてもよい。
【００４１】
このように、キャッシュ領域をブロック単位ではなく複数のブロックごと（上記では４×４ブロック）に設定し、キャッシュ領域の画像データ上での記憶基準位置をキャッシュ領域ごとに１つ記憶するようにしたので、複数のブロックに細分化されたデータをキャッシュメモリ５２で保持しても、データマップ５３ａの領域の増加は少なく、回路規模の増大を防止することが可能である。
【００４２】
ところで上記では、画像処理回路５１でのデータ使用領域、キャッシュ領域とも４×４ブロックで同じ大きさの場合について説明したが、データ使用領域がキャッシュ領域よりも小さい場合、無駄なデータをキャッシュメモリ５２に記憶してしまう。
【００４３】
この無駄を避けるためには、必要なデータのみを外部記憶装置６０から読み出し、キャッシュメモリ５２に記憶すればよい。但しキャッシュメモリ５２への記憶は固定の大きさのキャッシュ領域ごとである。つまり図４の例では４×４ブロックのキャッシュ領域７１ａ、７１ｂ、７１ｃごとである。そこで、本実施の形態の画像処理ＬＳＩ５０において、キャッシュアドレス管理部５３は、外部記憶装置６０から読み出してキャッシュメモリ５２に保持したデータのブロックと、保持しないデータのブロックの位置を管理する。具体的には、図２で示したキャッシュアドレス管理部５３の有効ブロック位置記憶部５３ｂに、１つのキャッシュ領域内におけるブロックごとのデータの有効性を記憶する。ここでは、１つのキャッシュ領域内で、外部記憶装置６０から読み込んだデータのブロックを有効にし、読み込まなかったデータのブロックを無効に設定する。以下、その設定方法について説明する。
【００４４】
図７は、３×４ブロックのデータ使用領域にキャッシュ領域を設定した例である。
例えば、画像処理回路５１が、座標（２，１）を矩形の左上頂点の座標とする３×４ブロックのデータ使用領域７３をキャッシュメモリ５２に記憶する場合、キャッシュ領域７４は４×４ブロックの固定であるので、キャッシュ領域７４内にはデータ使用領域７３以外に、座標（５，１）を左上頂点とする１×４ブロック分のデータを使用しない領域も含むようになる。
【００４５】
この場合のキャッシュメモリ５２への書き込み処理は図３の処理の流れとほぼ同様である。ステップＳ１で画像処理回路５１から座標（２，１）で大きさ３×４ブロックの書き込み要求があると、ステップＳ２で記憶基準位置となるキャッシュ領域７４の左上頂点７５の座標（２，１）をデータマップ５３ａに記憶したのち、ステップＳ３で外部記憶装置６０へデータ使用領域７３のみのデータ要求を行う。その後、ステップＳ４でキャッシュメモリ５２のアドレスが指定されてデータ書き込みが行われる。書き込みが完了すると、ステップＳ５で、キャッシュアドレス管理部５３は書き込み完了の通知を受けるが、このとき書き込んだキャッシュ領域７４のデータを有効ブロック位置記憶部５３ｂに記憶する。
【００４６】
図８は、有効ブロック位置記憶部に記憶されたキャッシュ領域の各ブロックにおけるデータの有効性を示す図である。
有効ブロック位置記憶部５３ｂには、図７のように設定したキャッシュ領域７４において外部記憶装置６０から書き込んだデータ領域のブロックを有効“１”とし、それ以外を無効“０”とすることで、有効なデータのブロック位置が記憶されている。
【００４７】
次に、上記のように記憶したデータに対して画像処理回路５１により所定のデータアクセスがあった場合の画像処理ＬＳＩ５０の動作を説明する。
図９は、有効ブロック位置記憶部を用いた場合におけるデータアクセス時の動作を説明するフローチャートである。
【００４８】
画像処理回路５１によるデータ要求があると（ステップＳ１０）、キャッシュアドレス管理部５３はデータマップ５３ａを参照して、指定されたデータがキャッシュ領域７４内にあるか否かを判断する（ステップＳ１１）。指定されたデータがキャッシュ領域７４外にある場合には、キャッシュアドレス管理部５３は、外部記憶装置６０上のアドレスを指定してメモリインタフェイス５４を介して外部記憶装置６０のデータを画像処理回路５１に読み出す（ステップＳ１２）。なお、このとき外部記憶装置６０から読み出したデータをキャッシュメモリ５２の所定の領域に新たに保持するようにしてもよい。
【００４９】
ステップＳ１１の処理でキャッシュ領域７４内に指定されたデータがあると判断された場合には、キャッシュアドレス管理部５３は、有効ブロック位置記憶部５３ｂを参照して指定されたデータのブロックが有効か無効かを判断する（ステップＳ１３）。
【００５０】
図１０は、キャッシュ領域内で指定されたデータ領域を示す図であり、（Ａ）が指定されたデータ領域内が全て有効なブロックである場合、（Ｂ）が指定されたデータ領域内に無効なブロックを含む場合を示している。
【００５１】
図１０（Ａ）のように、指定されたデータ領域７６のブロックが全て有効“１”である場合には、キャッシュメモリ５２からそのデータ領域７６に対応するデータが画像処理回路５１に読み出される（ステップＳ１４）。
【００５２】
一方、図１０（Ｂ）のように、指定されたデータ領域７７が無効“０”なブロックを含んでいる場合、キャッシュアドレス管理部５３は不足している分のデータを外部記憶装置６０から読み出す。このとき指定する外部記憶装置６０のアドレスは図７より（５，２）であり、１×３ブロックデータを読み出す（ステップＳ１５）。さらに、キャッシュアドレス管理部５３は、読み出したデータをキャッシュメモリ５２に書き込む。このとき指定するアドレスはキャッシュメモリ５２上でのアドレスであり、図７のキャッシュ領域７４の左上頂点７５をキャッシュメモリ５２上のアドレス（０，０）とすると、（３，１）であり、１×３ブロックのデータを書き込む（ステップＳ１６）。キャッシュメモリ５２によりデータの書き込みの完了がキャッシュアドレス管理部５３に通知されると、キャッシュアドレス管理部５３は、有効ブロック位置記憶部５３ｂに記憶されているキャッシュ領域７４の各データブロックの有効性を更新する。
【００５３】
図１１は、更新された有効ブロックを示す図である。
この図のように、キャッシュメモリ５２に書き込まれたデータの位置に対応するブロックが有効“１”に変更される（ステップＳ１７）。そして、キャッシュアドレス管理部５３は、ステップＳ１６までの処理でキャッシュメモリ５２に書き込まれているデータのうち、画像処理回路５１で要求されているデータのキャッシュメモリ５２上でのアドレス（２，１）を指定する。これによってキャッシュメモリ５２は、２×３ブロックのデータを画像処理回路５１に読み出す（ステップＳ１８）。
【００５４】
以上のように、キャッシュ領域内で必要のあるデータのみ外部記憶装置６０からキャッシュメモリ５２に記憶するので、画像処理回路５１が必要とするデータ領域に応じて、キャッシュ領域を柔軟に設定でき、キャッシュのヒット率を上げることができ、外部記憶装置６０への外部アクセスを減少できる。
【００５５】
本実施の形態の画像処理ＬＳＩ５０で行う画像処理として、例えば、ＭＰＥＧ（Moving Picture Experts Group）−４の符号化処理などが考えられる。ＭＰＥＧ−４の任意形状符号化処理では、表示する人物や動物などのオブジェクトの形状に応じて符号化するが、そのような場合にデータ使用領域も複雑な形状となる。このとき、上記のようにキャッシュ領域内の細分化されたブロックにおいて有効なブロック、無効なブロックを設定し、有効なブロックのみデータをキャッシュメモリ５２に記憶することで、画像処理回路５１からの効率的なデータアクセスが実現できる。
【００５６】
ところで、画像処理回路５１が必要とするデータ使用領域が画像データ内で変更された場合、新たにキャッシュ領域を設定するが、新しいキャッシュ領域が元のキャッシュ領域と重なっている場合には、すべてのキャッシュ領域内のデータを更新するのは効率が悪い。本実施の形態の画像処理ＬＳＩ５０は、以下のような処理によって、元のキャッシュ領域のデータを再利用することが可能である。
【００５７】
図１２は、変更前のデータ使用領域とキャッシュ領域及びキャッシュアドレス管理部に記憶されるデータを示す図であり、（Ａ）が変更前のデータ使用領域及びキャッシュ領域、（Ｂ）が変更前にキャッシュアドレス管理部に記憶されているデータマップ及び有効ブロック位置記憶部の内容を示す図である。
【００５８】
図１２（Ａ）のように、データ使用領域８０ａに対して、左上頂点８１ａを記憶基準位置とした４×４ブロックのキャッシュ領域８２ａが設定されており、このとき有効ブロック位置記憶部５３ｂに記憶されているキャッシュ領域８２ａの各ブロックのデータの有効性は、図１２（Ｂ）のように１番右上のブロックのみが無効“０”となっている。データマップ５３ａには、キャッシュ領域８２ａの左上頂点８１ａの座標（２，１）を記憶基準位置として記憶する。さらに、データマップ５３ａには、変更前のキャッシュ領域８２ａにおけるキャッシュメモリ５２上でのデータの記憶開始位置を記憶する。以下では、変更前のキャッシュ領域８２ａの左上頂点８１ａのデータを記憶するキャッシュメモリ５２上のアドレスを（０，０）とする。変更前では、データ使用領域８０ａのデータを全て外部記憶装置６０から読み出して書き込むので記憶開始位置は（０，０）となる。なお、データの有効性は“有効”であり、画像処理回路５１に読み出し可能な状態となっている。
【００５９】
この状態から、画像処理回路５１より、（４，３）から大きさ４×３ブロック分のデータを、キャッシュメモリ５２に記憶する書き込み要求があった場合、キャッシュ領域を以下の図のように設定する。
【００６０】
図１３は、変更後のデータ使用領域とキャッシュ領域及びキャッシュアドレス管理部に記憶されるデータを示す図であり、（Ａ）が変更後のデータ使用領域及びキャッシュ領域、（Ｂ）が変更後にキャッシュアドレス管理部に記憶されるデータマップ及び有効ブロック位置記憶部の内容を示す図である。
【００６１】
図１３（Ａ）のように、アドレス（４，３）から大きさ４×３ブロックのデータ使用領域８０ｂが指定されると、キャッシュアドレス管理部５３は、データ使用領域８０ｂを含み、例えば、変更前のキャッシュ領域８２ａと多く重なるように左上頂点８１ｂを決めた４×４ブロックのキャッシュ領域８２ｂを設定する。ここでは、キャッシュ領域８２ｂの記憶基準位置となる左上頂点８１ｂの座標は（４，２）として、図１３（Ｂ）のようにデータマップ５３ａに記憶する。このときさらに、キャッシュアドレス管理部５３は、変更後のキャッシュメモリ５２上の記憶開始位置を（２，１）に設定する。
【００６２】
図１４は、キャッシュメモリ上の記憶開始位置を示す図である。
変更前のキャッシュ領域８２ａの左上頂点８１ａをキャッシュメモリ５２上のアドレス（０，０）とした場合、斜線で示した（２，１）からの２×３ブロックのデータは、変更後のキャッシュ領域８２ｂ内に含まれるデータ領域である。キャッシュメモリ５２に記憶されているこのデータ領域を残すために、キャッシュアドレス管理部５３は、図１３（Ｂ）の有効ブロック位置記憶部５３ｂのように、変更前のキャッシュ領域８２ａの右下の２×３ブロックのデータの有効性を“１”のままにして、それ以外は新たな領域となるためキャッシュメモリ５２に記憶しているデータを無効“０”にする。そして、新たな領域に外部記憶装置６０からのデータを書き込むために、変更後のキャッシュ領域８２ｂにおける記憶開始位置を、図１４に示すようにキャッシュメモリ５２上の（２，１）に変更する。また、変更後のキャッシュ領域８２ｂのデータの書き込みが完了していないのでデータマップ５３ａのデータの有効性は“無効”とする。
【００６３】
この状態から、不足しているデータを外部記憶装置６０へ要求する。一般にデータは矩形領域ごとに取得するので、ここでも２回に分けて外部記憶装置６０からデータを取得する。
【００６４】
まず、不足データのうち、図１３（Ａ）で示す変更後のキャッシュ領域８２ｂ内で、画像処理回路５１から書き込み要求されている座標（６，３）からの２×３ブロック分のデータを外部記憶装置６０に要求する。そして、外部記憶装置６０からデータを読み出すと、キャッシュメモリ５２は、キャッシュアドレス管理部５３によって指定されたアドレス（０，２）から２×３ブロック分のデータを書き込む。書き込みが完了すると、キャッシュメモリ５２は、書き込み完了をキャッシュアドレス管理部５３に通知する。これを受けてキャッシュアドレス管理部５３は、有効ブロック位置記憶部５３ｂの内容を更新する。
【００６５】
図１５は、１回目の書き込み完了時に更新された有効ブロックを示す図である。
図のように、書き込みが完了したキャッシュメモリ５２のアドレス（０，２）から２×３ブロック分（図の斜線部）のブロックを有効“１”としている。
【００６６】
続いて、不足データの残りである図１３（Ａ）の画像データの座標（４，５）からの２×１ブロック分のデータを、外部記憶装置６０に要求する。そして、外部記憶装置６０からデータを読み出すと、キャッシュメモリ５２は、キャッシュアドレス管理部５３によって指定されたアドレス（２，０）から２×１ブロック分のデータを書き込む。書き込みが完了すると、キャッシュメモリ５２は、書き込み完了をキャッシュアドレス管理部５３に通知する。これを受けてキャッシュアドレス管理部５３は、有効ブロック位置記憶部５３ｂの内容を更新する。
【００６７】
図１６は、２回目の書き込み完了時に更新された有効ブロックを示す図である。
図のように、書き込みが完了したアドレス（２，０）から２×１ブロック分（図の斜線部）のブロックを有効“１”としている。
【００６８】
これで、変更したキャッシュ領域８２ｂ内のデータの書き込みが完了したので、図１３（Ａ）で示したデータマップ５３ａにおいて、データの有効性を“有効”とし画像処理回路５１からの読み出しを可能とする。
【００６９】
このようにキャッシュ領域を変更してキャッシュメモリ５２にデータを記憶した状態において、画像処理回路５１から、所定のデータアクセスがあった場合の動作を簡単に説明する。
【００７０】
図１７は、変更後のデータ使用領域に対応したキャッシュ領域の設定後に、画像処理回路からデータ要求がなされた場合に指定されるキャッシュメモリ上のアドレスを示す図であり、（Ａ）が画像処理回路から要求されたデータ領域と、（Ｂ）がそのデータ領域のキャッシュメモリ上での位置を示す図である。
【００７１】
例えば、（５，３）を左上頂点とした２×３ブロック分のデータの読み出しが要求されると、キャッシュアドレス管理部５３は、データマップ５３ａを参照して要求されたデータがキャッシュメモリ５２に記憶されているか否かを調べる。図１３で示すように、データマップ５３ａに記憶されているキャッシュ領域８２ｂの記憶基準位置は、キャッシュ領域８２ｂの左上頂点８１ｂの（４，２）であるから、要求されたデータ領域８３は、図１７（Ａ）のようにキャッシュ領域８２ｂに存在する。さらに、キャッシュアドレス管理部５３は、キャッシュメモリ５２の記憶開始位置を参照する。データマップ５３ａからキャッシュ領域８２ｂの記憶開始位置は（２，１）である。この位置はキャッシュ領域８２ｂの記憶基準位置である（４，２）のデータを記憶する、キャッシュメモリ５２上でのアドレスである。そのため、画像処理回路５１に読み出すデータは、図１７（Ｂ）のようにアドレス（３，２）から２×３ブロック分のデータ（図の斜線部）となる。
【００７２】
以上のように、画像処理回路５１が必要とするデータ領域の変更の際に、キャッシュ領域内のデータを全て書き換えるのではなく、変更前のキャッシュ領域と同じデータは残し再利用し、新しいキャッシュ領域内において必要とされるデータのみを外部記憶装置６０から読み出すようにしたので、外部記憶装置６０への無駄なアクセスを抑えることができる。
【００７３】
なお、上記の説明では２次元データを処理する場合を例にして説明したが、２次元以上のデータに適用することも可能である。
図１８は、３次元データの一部をキャッシュメモリに記憶する場合の例を説明する図であり、（Ａ）は３次元データにキャッシュ領域を設定した例、（Ｂ）は設定したキャッシュ領域の詳細を示す図である。
【００７４】
３次元データは、図１８（Ａ）では図示を省略しているが、所定のデータ量ごとの複数のブロックで表現される。そして、この３次元データに、記憶基準位置８５ａ、８５ｂから所定の大きさのキャッシュ領域８６ａ、８６ｂが設定される。キャッシュ領域８６ａ、８６ｂは、図１８（Ｂ）のように、例えばそれぞれ記憶基準位置８５ａ、８５ｂからの３×３×３ブロックからなる。なお、キャッシュ領域８６ａ、８６ｂにおいて斜線のデータブロックは、外部記憶装置から読み出す必要のない無効なデータブロックを示している。
【００７５】
図１９は、３次元データを扱うキャッシュアドレス管理部が記憶するデータの一例を示す図である。
図１８で示した２つのキャッシュ領域８６ａ、８６ｂにおいて、３次元データ上での記憶基準位置８５ａ、８５ｂの座標をデータマップ５３ａに記憶する。例えば、キャッシュ領域８６ａの記憶基準位置８５ａに対して座標（３，３，３）、キャッシュ領域８６ｂの記憶基準位置８５ｂに対して座標（１０，３，１２）が記憶される。さらに、有効ブロック位置記憶部５３ｂにおいて、領域８７ａにはキャッシュ領域８６ａの２７ブロック分の有効ブロック位置が記憶され、領域８７ｂにはキャッシュ領域８６ｂの２７ブロック分の有効ブロック位置が記憶される。
【００７６】
その他の具体的な処理については説明を省略するが、基本的には２次元データ（画像データ）の場合と同様であり、単に３次元に拡張するだけである。
なお、上記では、記憶基準位置をキャッシュ領域に含まれるブロックのうち左上のブロックの左上頂点の座標と設定したが、これに限定されることはない。例えば、データブロック内の個々のデータ（画像データの場合は画素）の位置に対し記憶基準位置を決めキャッシュ領域を設定するようにしてもよい。これにより、キャッシュ領域をより柔軟に設定することができ、キャッシュ効率を上げることができる。
【産業上の利用可能性】
【００７７】
本発明は、例えば、表示する人物や動物などのオブジェクトの形状に応じて符号化するＭＰＥＧ−４の任意形状符号化処理を行う画像処理ＬＳＩに好適に利用可能である。
【図面の簡単な説明】
【００７８】
【図１】データ処理装置の概略の構成を示すブロック図である。
【図２】本実施の形態の画像処理ＬＳＩの構成を示す図である。
【図３】キャッシュメモリへのデータ書き込み時の動作を説明するフローチャートである。
【図４】キャッシュ領域の設定の例を示す図である。
【図５】データマップの例である。
【図６】データアクセス時の動作を説明するフローチャートである。
【図７】３×４ブロックのデータ使用領域にキャッシュ領域を設定した例である。
【図８】有効ブロック位置記憶部に記憶されたキャッシュ領域の各ブロックにおけるデータの有効性を示す図である。
【図９】有効ブロック位置記憶部を用いた場合におけるデータアクセス時の動作を説明するフローチャートである。
【図１０】キャッシュ領域内で指定されたデータ領域を示す図であり、（Ａ）が指定されたデータ領域内が全て有効なブロックである場合、（Ｂ）が指定されたデータ領域内に無効なブロックを含む場合を示す図である。
【図１１】更新された有効ブロックを示す図である。
【図１２】変更前のデータ使用領域とキャッシュ領域及びキャッシュアドレス管理部に記憶されるデータを示す図であり、（Ａ）が変更前のデータ使用領域及びキャッシュ領域、（Ｂ）が変更前にキャッシュアドレス管理部に記憶されているデータマップ及び有効ブロック位置記憶部の内容を示す図である。
【図１３】変更後のデータ使用領域とキャッシュ領域及びキャッシュアドレス管理部に記憶されるデータを示す図であり、（Ａ）が変更後のデータ使用領域及びキャッシュ領域、（Ｂ）が変更後にキャッシュアドレス管理部に記憶されるデータマップ及び有効ブロック位置記憶部の内容を示す図である。
【図１４】キャッシュメモリ上の記憶開始位置を示す図である。
【図１５】１回目の書き込み完了時に更新された有効ブロックを示す図である。
【図１６】２回目の書き込み完了時に更新された有効ブロックを示す図である。
【図１７】変更後のデータ使用領域に対応したキャッシュ領域の設定後に、画像処理回路からデータ要求がなされた場合に指定されるキャッシュメモリ上のアドレスを示す図であり、（Ａ）が画像処理回路から要求されたデータ領域と、（Ｂ）がそのデータ領域のキャッシュメモリ上での位置を示す図である。
【図１８】３次元データの一部をキャッシュメモリに記憶する場合の例を説明する図であり、（Ａ）は３次元データにキャッシュ領域を設定した例、（Ｂ）は設定したキャッシュ領域の詳細を示す図である。
【図１９】３次元データを扱うキャッシュアドレス管理部が記憶するデータの一例を示す図である。
【図２０】従来の画像処理ＬＳＩの概略の構成を示す図である。
【図２１】内部ＲＡＭを有する従来の画像処理ＬＳＩの概略の構成を示す図である。
【図２２】キャッシュ領域の設定を示す図であり、（Ａ）がキャッシュ領域を大きく設定した場合、（Ｂ）がキャッシュ領域を小さく設定した場合の例を示す図である。
【図２３】画像データをブロックで細分化して必要なデータをキャッシュメモリに記憶する従来の手法を説明する図である。
【符号の説明】
【００７９】
１０  データ処理装置
１１  演算処理部
１２  データ保持部
１３  アドレス管理部
１３ａ  記憶基準位置記憶部
１４  メモリインタフェイス
２０  外部記憶装置
３０  ブロック
３１ａ、３１ｂ  データ使用領域（キャッシュ領域）
３２ａ、３２ｂ  左上頂点
【図１】
2006338334.tif 000003
【図２】
2006338334.tif 000004
【図３】
2006338334.tif 000005
【図４】
2006338334.tif 000006
【図５】
2006338334.tif 000007
【図６】
2006338334.tif 000008
【図７】
2006338334.tif 000009
【図８】
2006338334.tif 000010
【図９】
2006338334.tif 000011
【図１０】
2006338334.tif 000012
【図１１】
2006338334.tif 000013
【図１２】
2006338334.tif 000014
【図１３】
2006338334.tif 000015
【図１４】
2006338334.tif 000016
【図１５】
2006338334.tif 000017
【図１６】
2006338334.tif 000018
【図１７】
2006338334.tif 000019
【図１８】
2006338334.tif 000020
【図１９】
2006338334.tif 000021
【図２０】
2006338334.tif 000022
【図２１】
2006338334.tif 000023
【図２２】
2006338334.tif 000024
【図２３】
2006338334.tif 000025