(57)【要約】      （修正有）【課題】パターンメモリとして安価なメモリを使用する場合でも、効率的にパターンメモリからデータを読み出して処理を行うことができる画像処理装置を提供する。【解決手段】キャッシュ制御回路５２は、キャッシュメモリ５１内のデータを対象とするリードリクエストが与えられた場合には、そのリードリクエストの対象であるデータをキャッシュメモリ５１から読み出して出力し、キャッシュメモリ５１に格納されていないデータを対象とするリードリクエストが与えられた場合には、当該データを含む１ページ分のデータをパターンＲＯＭ２０４から読み出して、キャッシュメモリ５１内の書き換え対象の記憶エリアに格納する。その際、リードリクエストの対象であるデータに連続するデータがキャッシュメモリ５１内に格納されている場合に、その連続するデータが格納された記憶エリアを書き換え対象とする。【選択図】図２
2010257237.tif 000002
【特許請求の範囲】
【請求項１】
画像処理を行うモジュールを含む複数のモジュールと、
前記複数のモジュールの処理対象となるデータを記憶したパターンメモリと前記複数のモジュールとの間のデータの授受を仲介するメモリインタフェースとを具備し、
前記メモリインタフェースは、前記パターンメモリから読み出されたデータを格納する複数ページ分の記憶エリアを有するキャッシュメモリと、
前記複数のモジュールの中のいずれかのモジュールから前記キャッシュメモリに格納されたデータを対象とするリードリクエストが与えられた場合には、そのリードリクエストの対象であるデータを前記キャッシュメモリから読み出して当該モジュールに対して出力し、前記キャッシュメモリに格納されていないデータを対象とするリードリクエストが与えられた場合には、前記キャッシュメモリ内において書き換え対象の記憶エリアを決定し、前記リードリクエストの対象であるデータを含む１ページ分のデータを前記パターンメモリから読み出して前記書き換え対象の記憶エリアに格納するとともに、前記リードリクエストの対象であるデータを当該モジュールに対して出力する手段であり、前記リードリクエストの対象であるデータに連続するデータが前記キャッシュメモリのいずれかの記憶エリアに格納されている場合に、当該記憶エリアを書き換え対象とするキャッシュ制御手段とを具備することを特徴とする画像処理装置。
【請求項２】
前記キャッシュ制御手段は、前記キャッシュメモリに格納されていないデータを対象とするリードリクエストが与えられ、前記リードリクエストの対象であるデータに連続するデータが前記キャッシュメモリのいずれかの記憶エリアにも格納されていない場合に、前記キャッシュメモリの複数の記憶エリアを所定の順序で巡回的かつ順次に選択して書き換え対象とすることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記キャッシュ制御手段は、前記パターンメモリにおいて前記リードリクエストの対象であるデータが属するページと連続するページのデータが前記キャッシュメモリのいずれかの記憶エリアに格納されている場合に、当該記憶エリアを書き換え対象とする請求項１または２に記載の画像処理装置。
【請求項４】
前記パターンメモリは、ページ単位でのアクセスを受け付ける不揮発性メモリであることを特徴とする請求項１〜３に記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、アミューズメント機器等に好適な画像処理装置に関する。
【背景技術】
【０００２】
ゲーム機等のアミューズメント機器では、パターンメモリに記憶された各種のパターンデータを読み出して、静止画や動画を表示装置に表示させる。なお、この種のアミューズメント機器に好適な画像処理装置に関する特許文献のうち本願発明者によるものとして特許文献１〜６がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−１６３８１１号公報
【特許文献２】特開２００４−２３３７４７号公報
【特許文献３】特開２００４−２３３７４８号公報
【特許文献４】特開２００５−２４１７９７号公報
【特許文献５】特開２００６−１８３８２号公報
【特許文献６】特開２００７−１８７８８２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
アミューズメント機器において、スピード感に溢れる多彩な表示を実現するためには、パターンメモリからデータを効率的に読み出す能力が求められる。そのため、従来、アミューズメント機器のパターンメモリには、ランダムアクセスレイテンシーの小さいマスクＲＯＭやＮＯＲ型フラッシュＲＯＭ等が使用されていた。しかし、近年、アミューズメント機器では、動画コンテンツが多用され、かつ、高画質が求められるようになってきたため、パターンメモリとして大容量のものが必要になってきた。このような状況において、マスクＲＯＭやＮＯＲ型フラッシュＲＯＭをパターンメモリとして使用すると、コストが増加する問題がある。そこで、対策として、大容量で安価なＮＡＮＤ型フラッシュＲＯＭとともに、不良ブロック発生の対策としてのＥＣＣ（Error Correction Coding）等の専用回路を含んだＲＯＭモジュールをパターンメモリとして採用することが考えられる。しかし、ＮＡＮＤ型フラッシュＲＯＭにおけるデータアクセスは、５１２、１０２４、２０４８ワードを１ページとするページ単位のアクセスとなり、ランダムアクセスレイテンシーが大きい。また、ＮＡＮＤ型フラッシュＲＯＭと上記専用回路を含んだＲＯＭモジュールは、データ読み出しの際にＥＣＣ処理を行うので、ランダムアクセスレイテンシーがさらに大きくなる。このため、ＲＯＭモジュールの帯域が狭くなり、アクセス効率が低下する。
【０００５】
この発明は、以上説明した事情に鑑みてなされたものであり、パターンメモリとしてランダムアクセスレイテンシーが大きく安価なメモリを使用する場合でも、効率的にパターンメモリからデータを読み出して処理を行うことができる画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
この発明は、画像処理を行うモジュールを含む複数のモジュールと、前記複数のモジュールの処理対象となるデータを記憶したパターンメモリと前記複数のモジュールとの間のデータの授受を仲介するメモリインタフェースとを具備し、前記メモリインタフェースは、前記パターンメモリから読み出されたデータを格納する複数ページ分の記憶エリアを有するキャッシュメモリと、前記複数のモジュールの中のいずれかのモジュールから前記キャッシュメモリに格納されたデータを対象とするリードリクエストが与えられた場合には、そのリードリクエストの対象であるデータを前記キャッシュメモリから読み出して当該モジュールに対して出力し、前記キャッシュメモリに格納されていないデータを対象とするリードリクエストが与えられた場合には、前記キャッシュメモリ内において書き換え対象の記憶エリアを決定し、前記リードリクエストの対象であるデータを含む１ページ分のデータを前記パターンメモリから読み出して前記書き換え対象の記憶エリアに格納するとともに、前記リードリクエストの対象であるデータを当該モジュールに対して出力する手段であり、前記リードリクエストの対象であるデータに連続するデータが前記キャッシュメモリのいずれかの記憶エリアに格納されている場合に、当該記憶エリアを書き換え対象とするキャッシュ制御手段とを具備することを特徴とする画像処理装置を提供する。
【０００７】
かかる発明によれば、メモリインタフェースは、キャッシュ記憶機能を備えている。このため、パターンメモリが安価でランダムアクセスレイテンシーの大きなＮＡＮＤ型フラッシュＲＯＭ等であっても、各モジュールはメモリインタフェースを介してパターンメモリから効率的にデータを読み出すことができる。また、メモリインタフェースのキャッシュ制御手段は、キャッシュメモリに格納されていないデータを対象とするリードリクエストが与えられ、リードリクエストの対象であるデータに連続するデータがキャッシュメモリ内に格納されている場合に、その連続するデータを格納している記憶エリアを書き換え対象とする。このようなリードリクエストの対象であるデータに連続するデータは、再度のリードリクエストが発生する可能性が極めて低いので、このようなデータを格納している記憶エリアは書き換え対象とするのに最適である。従って、この発明によれば、キャッシュメモリのページ数が少ない小規模な構成でも、キャッシュヒット率を向上させ、パターンメモリから効率的なデータ読み出しを行うことができる。
【図面の簡単な説明】
【０００８】
【図１】この発明による画像処理装置の一実施形態である画像表示ＬＳＩ（Large ScaleIntegrated circuit）の構成を示すブロック図である。
【図２】同画像表示ＬＳＩにおけるＲＯＭインタフェースの構成例を示すブロック図である。
【図３】同ＲＯＭインタフェースにおけるキャッシュ制御回路の処理内容を示すフローチャートである。
【図４】同ＲＯＭインタフェースにおいて各種の方法によりリプレースメントを行った場合におけるキャッシュメモリの記憶内容の変遷を示す図である。
【発明を実施するための形態】
【０００９】
以下、図面を参照し、この発明の実施の形態を説明する。
図１は、この発明による画像処理装置の一実施形態である画像表示ＬＳＩ１００の構成を示すブロック図である。なお、図１では、画像表示ＬＳＩ１００の機能の理解を容易にするため、画像表示ＬＳＩ１００の外部のＣＰＵ２０１、表示装置２０２、ＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）２０３、パターンＲＯＭ２０４およびデジタルアンプ２０５も併せて図示されている。
【００１０】
本実施形態による画像表示ＬＳＩ１００は、アミューズメント機器に搭載されるＬＳＩであり、ＣＰＵ２０１からの指示に従い、パターンＲＯＭ２０４から必要なデータを読み出して、その処理を行い、静止画や動画を表示装置２０２に表示させ、デジタルアンプ２０５を駆動して音楽や各種の効果音を発生させるものである。
【００１１】
この画像表示ＬＳＩ１００の構成は次の通りである。まず、クロックジェネレータ１０１は、画像表示ＬＳＩ１００内の各部の動作タイミングを制御するクロックを発生する回路である。ＣＰＵインタフェース１０２は、ＣＰＵ２０１と画像表示ＬＳＩ１００内の各部との間で行われるコマンドや制御情報の授受を仲介する装置である。汎用メモリ１０３は、ＲＡＭ等により構成されており、画像表示ＬＳＩ１００内の各部間の制御情報の引き渡し等に用いられる。ＳＤＲＡＭインタフェース１０４は、動画デコーダ１１１、静止画デコーダ１１２、描画エンジン１１３および音源１１４からＳＤＲＡＭ２０３へのアクセスを仲介する装置である。動画デコーダ１１１、静止画デコーダ１１２、描画エンジン１１３および音源１１４は、このＳＤＲＡＭインタフェース１０４を介してＳＤＲＡＭ２０３にアクセスし、ＳＤＲＡＭ２０３をワークエリアとして使用する。
【００１２】
ＲＯＭインタフェース１０５は、動画デコーダ１１１、静止画デコーダ１１２、描画エンジン１１３、音源１１４およびＣＰＵインタフェース１０２からパターンＲＯＭ２０４へのアクセスを仲介する装置である。
【００１３】
本実施形態では、パターンＲＯＭ２０４として、ページ単位でのアクセスを受け付ける不揮発性メモリ、具体的にはＮＡＮＤ型フラッシュＲＯＭとＥＣＣのための専用回路とが組み込まれたＲＯＭモジュールが用いられている。図１に示すように、このパターンＲＯＭ２０４には、動画エンコードデータ、静止画エンコードデータ、スプライト属性データ、動画アルファチャネルデータ、静止画アルファチャネルデータ、音源データ等の各種のデータが記憶されている。動画デコーダ１１１は、ＣＰＵ２０１からの指示に従い、パターンＲＯＭ２０４内の動画エンコードデータを読み出してデコードし、動画を構成する各フレームの画像データを描画エンジン１１３に引き渡す。また、静止画デコーダ１１２は、ＣＰＵ２０１からの指示に従い、パターンＲＯＭ２０４内のスプライトの静止画エンコードデータを読み出してデコードし、スプライトの画像データをスプライトバッファ１１５に一時格納し、描画エンジン１１３に引き渡す。
【００１４】
描画エンジン１１３は、動画デコーダ１１１から引き渡される動画の画像データおよび静止画デコーダ１１２から引き渡されるスプライトの画像データをフレームバッファ１１６に格納することによりレンダリングを行う。ＣＰＵ２０１は、描画エンジン１１３にスプライトの画像データのレンダリングを行わせる場合、そのスプライトのフレーム内での位置情報等を定義したスプライト属性データをパターンＲＯＭ２０４から読み出して汎用メモリ１０３に格納する。描画エンジン１１３は、この汎用メモリ１０３内のスプライト属性データを参照して、スプライトの画像データのレンダリングを行う。なお、描画エンジン１１３は、レンダリングの際に、動画エンコードデータおよび静止画エンコードデータの一部にランダムアクセスする場合がある。表示コントローラ１１７は、一定のフレーム周期毎にフレームバッファ１１６内の画像データを読み出して表示装置２０２に表示させる。
【００１５】
動画デコーダ１１１による動画エンコードデータのデコードおよび静止画デコーダ１１２による静止画エンコードデータのデコードは、デコード結果である画像データが１６×１６ドットのマクロとなるようなデータ量単位で逐次実行される。そして、動画デコーダ１１１および静止画デコーダ１１２は、パターンＲＯＭ２０４内にまとまって格納された動画エンコードデータまたは静止画エンコードデータを一方向的かつ連続的（例えばアドレスおよびページが順次増加する方向）に順次読み出し、そのデコードを行う。
【００１６】
このデコードの対象である動画エンコードデータおよび静止画エンコードデータが動画アルファチャネルデータや静止画アルファチャネルデータを伴う場合がある。ここで、動画アルファチャネルデータおよび静止画アルファチャネルデータは、描画エンジン１１３が動画またはスプライトの画像データをフレームバッファ１１６内の背景画像の画像データにレンダリングする場合に、背景画像をどの程度透かして見せるかを指示するデータのエンコードデータである。
【００１７】
デコード対象である動画エンコードデータがこの動画アルファチャネルデータを伴う場合、動画デコーダ１１１は、あるマクロに対応した動画エンコードデータを読み出してデコードした後、同マクロに対応した動画アルファチャネルデータを読み出してデコードする、という具合に、マクロ単位で、動画エンコードデータの読み出しおよびデコードと動画アルファチャネルデータの読み出しおよびデコードとを交互に繰り返す。
【００１８】
この場合において、動画エンコードデータと動画アルファチャネルデータは図１にも示すようにパターンＲＯＭ２０４内の互いに離れたエリアに格納されている。従って、動画デコーダ１１１が動画エンコードデータを継続的に読み出している期間および動画アルファチャネルデータを継続的に読み出している期間では、読み出しアドレスは連続的に変化するが、動画エンコードデータを読み出す期間および動画アルファチャネルデータを読み出す期間の一方から他方へ、他方から一方へ切り換わるとき、読み出しアドレスは飛躍的に変化することとなる。しかしながら、動画エンコードデータの読み出しアドレスおよび動画アルファチャネルデータの読み出しアドレスの各々を独立に観測すると、各読み出しアドレスは、上述したように一方向的かつ連続的に変化する。静止画エンコードデータおよび静止画アルファチャネルデータについても同様である。
【００１９】
ＣＰＵインタフェース１０２は、ＣＰＵ２０１からの指示に従い、パターンＲＯＭ２０４内の動画エンコードデータや静止画エンコードデータを帯域の広いＳＤＲＡＭ２０３にＤＭＡ（Direct Memory Access）転送させ、動画デコーダ１１１や静止画デコーダ１１２にこのＳＤＲＡＭ２０３内の動画エンコードデータや静止画エンコードデータのデコードを行わせる場合がある。この場合のパターンＲＯＭ２０４からＳＤＲＡＭ２０３への動画エンコードデータや静止画エンコードデータのＤＭＡ転送では、パターンＲＯＭ２０４内の連続したアドレスにある動画エンコードデータまたは静止画エンコードデータが一方向的かつ連続的に順次アクセス対象となる。
【００２０】
音源１１４は、ＣＰＵ２０１からの指示に従い、パターンＲＯＭ２０４内の音源データを読み出してデジタルアンプ２０５を駆動する。この場合において、パターンＲＯＭ２０４内において連続したアドレスを持った一連の音源データが一方向的かつ連続的に音源１１４のアクセス対象となる。
【００２１】
以上説明した画像表示ＬＳＩ１００において、動画デコーダ１１１、静止画デコーダ１１２、ＣＰＵインタフェース１０２、音源１１４の各モジュールに着目すると、これらの各モジュールは、パターンＲＯＭ２０４内において連続したアドレスを持った一連のデータを一方向的かつ連続的に順次アクセス対象とすることが多い。本実施形態の特徴は、この点を活かして、各モジュールが必要とするデータを効率的にパターンＲＯＭ２０４から読み出して各モジュールに提供するＲＯＭインタフェース１０５の構成にある。
【００２２】
図２は本実施形態におけるＲＯＭインタフェース１０５の構成を示すブロック図である。本実施形態におけるＲＯＭインタフェース１０５は、キャッシュ記憶機能を備えたメモリインタフェースであり、図２に示すように、キャッシュメモリ５１と、キャッシュ制御回路５２とを有する。ここで、キャッシュメモリ５１は、パターンＲＯＭ２０４から読み出されたデータを記憶するためのＮページ分の記憶エリアを有するメモリであり、ＳＲＡＭ（Static Random Access Memory）等のランダムアクセスレイテンシーの小さな書き換え可能なメモリにより構成されている。本実施形態におけるパターンＲＯＭ２０４は、ＮＡＮＤ型フラッシュＲＯＭであるため、ＲＯＭインタフェース１０５は、パターンＲＯＭ２０４に対してページ単位のアクセスを行う必要がある。このため、キャッシュメモリ５１における１ページ分の記憶容量は、パターンＲＯＭ２０４のアクセス単位である１ページ分のデータ量と同じ量になっている。本実施形態では、複数のモジュールからのパターンＲＯＭ２０４へのアクセスが競合する。従って、キャッシュヒット率を向上させるために、パターンＲＯＭ２０４にアクセスするモジュール毎にキャッシュメモリを設ける構成も考えられる。しかし、全てのモジュールが常に動作してパターンＲＯＭ２０４にアクセスする訳ではないので、モジュール毎にキャッシュメモリを設けるのは無駄が多く不経済である。そこで、本実施形態では、１個のキャッシュメモリ５１のみがＲＯＭインタフェース１０５に設けられている。
【００２３】
キャッシュ制御回路５２は、必要に応じてキャッシュメモリ５１の書き換えを行いつつ、画像表示ＬＳＩ１００内のモジュールからのリードリクエストの対象であるデータをキャッシュメモリ５１から読み出して当該モジュールに提供する回路である。キャッシュ制御回路５２は、キャッシュメモリ５１の書き換えに関連する機能として、４つの主要な機能を有している。第１の機能は、画像表示ＬＳＩ１００内のいずれかのモジュールからパターンＲＯＭ２０４内のデータに対するリードリクエストが与えられた場合に、そのリードリクエストの対象であるデータがキャッシュメモリ５１に格納されているか否か、すなわち、キャッシュヒットかキャッシュミスかを判断するキャッシュヒット判断機能である。第２の機能は、キャッシュヒットが発生した場合に、リードリクエストの対象であるデータのキャッシュメモリ５１内での所在を示すアクセスアドレスを生成するアクセスアドレス生成機能である。第３の機能は、キャッシュミスが発生した場合に、リードリクエストの対象であるデータを含む１ページ分のデータを格納する書き換え対象の記憶エリアを決定するリプレース先決定機能である。第４の機能は、キャッシュミスが発生した場合に、リードリクエストの対象であるデータを含む１ページ分のデータをパターンＲＯＭ２０４から読み出して、キャッシュメモリ５１における書き換え対象の記憶エリアに格納する（リプレースする）機能である。
【００２４】
キャッシュ記憶に関する技術において、キャッシュミス発生時における書き換え対象の記憶エリアの決定方法の１つとして、ＬＲＵ（Least Recently Used）ルールがよく用いられる。これはキャッシュメモリの各記憶エリア毎にアクセス履歴を管理し、最も古くアクセスされた記憶エリアを書き換え対象とするルールである。このＬＲＵルールは、キャッシュヒット率を高めることができるルールではあるが、キャッシュメモリの各記憶エリア毎にアクセス履歴を管理しなければならず、その管理負担が大きいという問題がある。そこで、本実施形態では、以下説明するように、キャッシュ制御回路５２がＦＩＦＯ（First In First Out）ルールと本実施形態独自の新規なルールを組み合わせたルールによりキャッシュミス発生時における書き換え対象の記憶エリアを決定する。
【００２５】
図３は、キャッシュ制御回路５２の処理内容を示すフローチャートである。キャッシュ制御回路５２は、キャッシュメモリ５１のページ１〜Ｎの各記憶エリアに格納された各データのパターンＲＯＭ２０４内でのページアドレスを記憶している。そして、画像表示ＬＳＩ１００内のいずれかのモジュール（例えば動画デコーダ１１１）からリードリクエストが与えられた場合、そのリードリクエストに含まれるリクエストアドレスとＮ個の記憶したページアドレスとを比較し、リクエストアドレスに対してヒットするデータがキャッシュメモリ５１のいずれかのページの記憶エリアに格納されているか否かの判断、すなわち、キャッシュヒットまたはキャッシュミスのいずれが発生したかの判断を行う（ステップＳ１）。キャッシュヒットが発生した場合（ステップＳ１＝「ＹＥＳ」）、キャッシュ制御回路５２は、リクエストアドレスに対応したデータのキャッシュメモリ５１内での所在を示すアクセスアドレスを生成し、このアクセスアドレスに対応したデータを読み出して、リードリクエストの発生元のモジュールであるマスタモジュールに供給する（ステップＳ２）。
【００２６】
一方、キャッシュミスが発生した場合（ステップＳ１＝「ＮＯ」）、キャッシュ制御回路５２は、キャッシュメモリ５１のページ１〜Ｎの各記憶エリアの中にキャッシュミスを発生させたリクエストアドレスの対象であるデータに連続するデータを格納しているものがあるか否か、より具体的にはそれらの記憶エリアの格納データの中にパターンＲＯＭ２０４内でのページアドレスがキャッシュミスを発生させたリクエストアドレスに連続するものがあるか否かを判断する（ステップＳ３）。この判断結果が「ＹＥＳ」である場合、キャッシュ制御回路５２は、本実施形態独自の新規な方法によりキャッシュメモリ５１における書き換え対象の記憶エリアを決定する。さらに詳述すると、例えばキャッシュメモリ５１のページｋの記憶エリアの格納データのパターンＲＯＭ２０４内でのページアドレスがキャッシュミスを発生させたリクエストアドレスに連続する場合、キャッシュ制御回路５２は、ページｋの記憶エリアを書き換え対象とする。そして、リクエストアドレスに対応するデータを含む１ページ分のデータをパターンＲＯＭ２０４から読み出し、書き換え対象であるキャッシュメモリ５１のページｋの記憶エリアにリプレースする（ステップＳ４）。すなわち、キャッシュメモリ５１のページｋの記憶エリアのデータは、パターンＲＯＭ２０４内のページｋ＋１のデータで書き換えられる。また、キャッシュ制御回路５２は、このページｋの記憶エリアに格納されたデータのうちリクエストアドレスに対応したデータをマスタモジュールに供給する。
【００２７】
ステップＳ３において、キャッシュメモリ５１のページ１〜Ｎの各記憶エリアの格納データのパターンＲＯＭ２０４内での各ページアドレスの中にキャッシュミスを発生させたリクエストアドレスに連続するものがない場合、キャッシュ制御回路５２は、ＦＩＦＯルールに従ってリプレースメントを実行する（ステップＳ５）。すなわち、キャッシュ制御回路５２は、このステップＳ５に進む度に、書き換え対象である記憶エリアを指示するＦＩＦＯポインタをページ１→ページ２→…→ページＮ→ページ１という具合に１ページずつ巡回的かつ順次に進め、ＦＩＦＯポインタが指示するページを書き換え対象とする。そして、リクエストアドレスに対応するデータを含む１ページ分のデータをパターンＲＯＭ２０４から読み出してキャッシュメモリ５１の書き換え対象の記憶エリアにリプレースする。
以上が本実施形態におけるＲＯＭインタフェース１０５の構成および処理内容の詳細である。
【００２８】
本実施形態の特徴は、キャッシュミス発生時におけるリプレースメントの処理内容、より具体的には上述したステップＳ３〜Ｓ５の処理内容にある。このようなリプレースメントを行うのは、キャッシュメモリ５１のページ数を増加させることなく、キャッシュヒット率を向上させ、安価であり、かつ、効率的なパターンＲＯＭ２０４のアクセスを実現するためである。以下、その詳細を説明する。
【００２９】
キャッシュメモリ５１のページ数を増加させることなく、キャッシュミスを少なくしてキャッシュヒット率を向上させるためには、キャッシュミスが発生してリプレースメントを行う場合に、さらなるキャッシュミスの発生を回避すること、すなわち、その後発生するリクエストアドレスに対応したデータが格納されている記憶エリアをリプレースメントの際の書き換え対象になるべくしないことが必要である。この要求を満たすため、本実施形態では、キャッシュミスが発生してリプレースメントを行う場合に、その後、リクエストアドレスが発生するとは考えにくいデータを格納している記憶エリアを書き換え対象にする。
【００３０】
上述したように、画像表示ＬＳＩ１００内の各モジュールがＲＯＭインタフェース１０５を介してパターンＲＯＭ２０４内のデータにアクセスするとき、通常は、パターンＲＯＭ２０４内の連続したアドレスにある一連のデータを一方向的かつ連続的にアクセス対象とし、アクセス対象が後戻りすることはない。従って、パターンＲＯＭ２０４内のあるページ（以下、先行ページという）のデータに対するアクセスが終了したとき、次のページ（以下、後続ページという）のデータがキャッシュメモリ５１に格納されておらず、キャッシュミスが発生した場合に、先行ページのデータはキャッシュミスを発生させたモジュールにとって用済みであるといえる。そこで、本実施形態では、あるリクエストアドレスに対してキャッシュミスが発生してリプレースメントを行う場合において、そのリクエストアドレスの対象であるデータに連続するデータがキャッシュメモリ５１のいずれかのページの記憶エリアに格納されている場合、その連続するデータを格納している記憶エリアを書き換え対象とするのである。このようにすることで、リクエストアドレスとして上記後続ページのデータのアドレスが与えられてキャッシュミスが発生したとき、上記先行ページのデータを記憶している記憶エリアが書き換え対象となる。このため、本実施形態では、キャッシュメモリ５１のページ数を増加させなくてもキャッシュヒット率を向上させることができる。
【００３１】
ここで、具体例を挙げて、本実施形態の作用効果を説明する。図４（ａ）〜（ｄ）は、各種の方法によりキャッシュメモリ５１のリプレースメントを行った場合のキャッシュメモリ５１の記憶内容の変遷を各々例示するものある。これらの各例では、簡単のため、キャッシュメモリ５１が４ページ分の記憶エリアを有する場合を想定している。また、これらの各例において、Ａ（ｋ）、Ｂ（ｍ）、Ｃ（ｎ）、Ｄ（ｐ）等の各々は、画像表示ＬＳＩ１００内のモジュールＡ、Ｂ、Ｃ、Ｄ（これらの各々は動画デコーダ１１１であってもよく、静止画デコーダ１１２等の他のモジュールであってもよい。）の各々からのリードリクエストによりキャッシュメモリ５１に格納された１ページ分のデータであり、Ａ（ｋ）、Ｂ（ｍ）、Ｃ（ｎ）、Ｄ（ｐ）等の括弧内にあるｋ、ｍ、ｎ、ｐ等のインデックスは、パターンＲＯＭ２０４内において当該データが所在するページを示している。また、各例において、モジュールＡ、Ｂ、Ｃ、Ｄは、Ａ＞Ｂ＞Ｄ＞Ｃの順で高い帯域を必要とし、アクセスの頻度もＡ＞Ｂ＞Ｄ＞Ｃの順になっているものとする。
【００３２】
図４（ａ）に示す例では、ＲＯＭインタフェース１０５のキャッシュ制御回路５２に、上述した本実施形態によるリプレースメントの代わりに通常のＦＩＦＯルールによるリプレースメントを行わせている。この例において、最初、キャッシュメモリ５１のページ４の記憶エリアにはパターンＲＯＭ２０４のページｋのデータＡ（ｋ）が格納されており、モジュールＡはこのデータＡ（ｋ）を読み出してその処理を行っている。この時点においてＦＩＦＯポインタはページ４を指示している。モジュールＡは、処理に必要なデータＡ（ｋ）の全てを読み出し終えると、次のページｋ＋１に属するデータに対するリードリクエストを発生する。しかし、このページｋ＋１のデータはキャッシュメモリ５１内にないのでキャッシュミスとなり、キャッシュ制御回路５２は、ＦＩＦＯポインタをページ１に進め、リードリクエストに対応したデータを含むパターンＲＯＭ２０４のページｋ＋１のデータＡ（ｋ＋１）を読み出してキャッシュメモリ５１のページ１の記憶エリアにリプレースする。
【００３３】
その後、モジュールＡは、このキャッシュメモリ５１のページ１の記憶エリアからデータＡ（ｋ＋１）を読み出して処理を実行するが、モジュールＡが処理に必要なデータＡ（ｋ＋１）の全てのデータを読み出し終える前に、他のモジュールＢからパターンＲＯＭ２０４のページｍ〜ｍ＋５までの各記憶エリアに記憶された一連のデータを対象とした一連のリードリクエストが連続して発生される。キャッシュ制御回路５２は、これらの一連のリードリクエストの処理を行う。この一連のリードリクエストの発生に伴って６回のキャッシュミスが発生し、ＦＩＦＯルールによる６回のリプレースメントが行われる。前半の３回のキャッシュミスの発生時には、パターンＲＯＭ２０４のページｍ〜ｍ＋２の各データＢ（ｍ）〜Ｂ（ｍ＋２）が順次読み出され、キャッシュメモリ５１のページ２〜４の各記憶エリアに順次リプレースされている。そして、後半の３回のキャッシュミス発生時には、パターンＲＯＭ２０４のページｍ＋３〜ｍ＋５の各データＢ（ｍ＋３）〜Ｂ（ｍ＋５）が順次読み出され、ＦＩＦＯルールに従い、キャッシュメモリ５１のページ１〜３の各記憶エリアに順次リプレースされる。
【００３４】
その後、モジュールＡはパターンＲＯＭ２０４のページｋ＋１のデータＡ（ｋ＋１）のうち読み出し未了のデータについてのリードリクエストを発生させるが、このとき既にキャッシュメモリ５１のページ１の記憶エリアにはデータＢ（ｍ＋３）が上書きされており、キャッシュメモリ５１にデータＡ（ｋ＋１）は存在せず、キャッシュミスとなる。そこで、キャッシュ制御回路５２は、パターンＲＯＭ２０４のページｋ＋１のデータＡ（ｋ＋１）を再び読み出し、ＦＩＦＯルールに従い、キャッシュメモリ５１のページ４の記憶エリアにリプレースする。
【００３５】
このＦＩＦＯルールによるリプレースメントを実行した場合には、以上のような同一ページの再読み出しが頻発する。図４（ａ）に示す例では、太枠で囲ったデータＢ（ｍ＋５）、Ｃ（ｎ）がキャッシュメモリ５１から全て読み出される前に他のデータによって上書きされ、その後発生するリードリクエストにより再びパターンＲＯＭ２０４から読み出されている。
【００３６】
図４（ｂ）に示す例において、ＲＯＭインタフェース１０５のキャッシュ制御回路５２はキャッシュミス発生時に上述した本実施形態による方法でリプレースメントを行っている。この例においても、図４（ａ）の場合と同様なリードリクエストが同じ順序で発生している。
【００３７】
図４（ｂ）に示す例において、最初、モジュールＡは、キャッシュメモリ５１のページ４の記憶エリアにあるデータＡ（ｋ）を読み出して処理を行っている。この時点において、ＦＩＦＯポインタはページ４を指示している。モジュールＡは、キャッシュメモリ５１のページ４の記憶エリアにあるデータＡ（ｋ）を全て読み出すと、次のページｋ＋１に属するデータに対するリードリクエストを発生する。このページｋ＋１のデータはキャッシュメモリ５１内にないのでキャッシュミスとなる。その際、キャッシュ制御回路５２は、パターンＲＯＭ２０４内においてリードリクエストに含まれるリクエストアドレスに連続するページアドレスのデータがキャッシュメモリ５１に記憶されているか否かを判断する。この場合、リクエストアドレスがページｋ＋１のものであるのに対し、キャッシュメモリ５１のページ４の記憶エリアには、このページｋ＋１に連続するページｋのデータＡ（ｋ）が格納されている。そして、このデータＡ（ｋ）は、モジュールＡにとって用済みのデータであり、キャッシュメモリ５１に残しておいてもさらなるキャッシュヒットを期待することができない。そこで、キャッシュ制御回路５２は、キャッシュメモリ５１においてデータＡ（ｋ）が格納されたページ４の記憶エリアを書き換え対象とし、パターンＲＯＭ２０４からページｋ＋１のデータＡ（ｋ＋１）を読み出して、キャッシュメモリ５１のページ４の記憶エリアにリプレースする。
【００３８】
その後、モジュールＡは、このキャッシュメモリ５１のページ４の記憶エリアからデータＡ（ｋ＋１）を読み出して処理を実行するが、処理に必要なデータＡ（ｋ＋１）の全てのデータを読み出し終える前に、他のモジュールＢからパターンＲＯＭ２０４のページｍ〜ｍ＋５までの各記憶エリアに記憶された一連のデータを対象とした一連のリードリクエストが連続して発生される。キャッシュ制御回路５２は、これらの一連のリードリクエストの処理を行う。
【００３９】
この一連のリードリクエストの発生に伴って６回のキャッシュミスが発生し、その都度、リプレースメントが行われる。最初のキャッシュミスの発生時には、パターンＲＯＭ２０４のページｍに連続するデータがキャッシュメモリ５１に格納されていないので、キャッシュ制御回路５２は、ＦＩＦＯルールに従い、ＦＩＦＯポインタを１だけ進めてページ１を指示させ、キャッシュメモリ５１においてＦＩＦＯポインタが指示するページ１の記憶エリアを書き換え対象として選択し、パターンＲＯＭ２０４のページｍのデータＢ（ｍ）を読み出してキャッシュメモリ５１のページ１の記憶エリアにリプレースする。その後、ページｍ＋１のデータに対するリードリクエストが発生してキャッシュミスが発生する。このとき、キャッシュメモリ５１のページ１の記憶エリアにはリードリクエストの対象であるページｍ＋１に連続するページｍのデータＢ（ｍ）が格納されている。そこで、キャッシュ制御回路５２は、キャッシュメモリ５１のページ１の記憶エリアを書き換え対象とし、パターンＲＯＭ２０４のページｍ＋１のデータＢ（ｍ＋１）を読み出してキャッシュメモリ５１のページ１の記憶エリアにリプレースする。このリプレースメントは、ＦＩＦＯルールによるものではないので、この時点でＦＩＦＯポインタの更新はなく、ＦＩＦＯポインタの指示はページ１のままである。その後、パターンＲＯＭ２０４のページｍ＋２〜ｍ＋５を対象としたリードリクエストが発生してキャッシュミスが発生するとき、いずれの場合においても、リードリクエストの対象であるリクエストアドレスに連続するデータを格納しているキャッシュメモリ５１のページ１の記憶エリアが書き換え対象となる。このため、キャッシュミス発生の都度、パターンＲＯＭ２０４のページｍ＋２〜ｍ＋５の各データＢ（ｍ＋２）〜Ｂ（ｍ＋５）が順次読み出され、キャッシュメモリ５１のページ１の記憶エリアにリプレースされる。この間、ＦＩＦＯポインタの更新はない。
【００４０】
その後、モジュールＡがパターンＲＯＭ２０４のページｋのデータＡ（ｋ＋１）のうち読み出し未了のデータについてのリードリクエストを発生させるが、このときキャッシュメモリ５１のページ４の記憶エリアにはデータＡ（ｋ＋１）が残っており、キャッシュヒットとなる。このため、パターンＲＯＭ２０４のページｋ＋１のデータＡ（ｋ＋１）の再度の読み出しは行われない。
【００４１】
その後、モジュールＡがパターンＲＯＭ２０４のページｑのデータについてのリードリクエストを発生させると、このページｑのデータがキャッシュメモリ５１に格納されていないことからキャッシュミスとなる。また、このページｑのデータに連続するデータは、キャッシュメモリ５１のいずれのページにも格納されていない。このため、キャッシュ制御回路５２は、ＦＩＦＯルールによるリプレースメントを行う。すなわち、ＦＩＦＯポインタの指示をページ１からページ２に更新し、キャッシュメモリ５１におけるページ２の記憶エリアを書き換え対象とし、パターンＲＯＭ２０４のページｑのデータＡ（ｑ）を読み出してキャッシュメモリ５１のページ２の記憶エリアにリプレースする。以下同様であり、キャッシュミスが発生した場合において、パターンＲＯＭ２０４内においてそのキャッシュミスを発生させたリクエストアドレスに連続するページのデータがキャッシュメモリ５１のいずれの記憶エリアにも格納されていない場合には、ＦＩＦＯポインタが１ページだけ進められ、ＦＩＦＯポインタが指示するページの記憶エリアが書き換え対象となる。
【００４２】
以上のように、本実施形態によれば、キャッシュミスの発生時、パターンＲＯＭ２０４内においてそのキャッシュミスを発生させたリクエストアドレスに連続するページのデータがキャッシュメモリ５１のいずれかの記憶エリアに格納されている場合には、ＦＩＦＯポインタの更新は行われず、その連続するページのデータが格納されている記憶エリアが書き換え対象とされる。また、キャッシュミスの発生時、パターンＲＯＭ２０４内においてそのキャッシュミスを発生させたリクエストアドレスに連続するページのデータがキャッシュメモリ５１のいずれの記憶エリアにも格納されていない場合には、ＦＩＦＯポインタが１ページだけ進められ、ＦＩＦＯポインタが指示する記憶エリアが書き換え対象とされる。従って、本実施形態によれば、ＦＩＦＯポインタの更新速度が低下するため、キャッシュッモリ５１においてキャッシュヒットの可能性のある記憶エリアが、ＦＩＦＯルールによるリプレースメントによって上書きされるのを抑制し、パターンＲＯＭ２０４における同一ページの再読み出しの発生頻度を低下させることができる。図４（ｂ）に示す例は、図４（ａ）と同様なリードリクエストが発生する場合を想定しているが、パターンＲＯＭ２０４における同一ページの再読み出しは１回も発生していない。
【００４３】
図４（ｃ）に示す例では、ＲＯＭインタフェース１０５のキャッシュ制御回路５２に、キャッシュミス発生時に上述した本実施形態によるリプレースメントの代わりに通常のＬＲＵルールによるリプレースメントを行わせている。そして、この例では、Ｄ（ｐ）、Ｄ（ｐ＋１）、Ｄ（ｐ＋２）、Ｂ（ｍ）、Ｃ（ｎ）、Ａ（ｋ）、Ｂ（ｍ＋１）、Ｂ（ｍ＋２）、Ｂ（ｍ＋３）、Ｃ（ｎ）、Ａ（ｋ＋１）、Ｄ（ｐ＋２）の順に各々を対象としたリードリクエストが発生し、キャッシュ制御回路５２がその処理を行っている。この例の場合、発生頻度によって太線枠で囲ったＤ（ｐ＋２）、Ｃ（ｎ）の再読み出しが行われる可能性がある。
【００４４】
それに対して、図４（ｄ）に示す本実施形態の方式では、ＲＯＭインタフェース１０５のキャッシュ制御回路５２は、キャッシュミス発生時、リクエストアドレスに連続するページのデータがキャッシュメモリ５１に格納されている場合には、その連続するページのデータの記憶エリアを書き換え対象とし、リクエストアドレスに連続するページのデータがキャッシュメモリ５１に格納されていない場合には、通常のＦＩＦＯルールによるリプレースメントを行っているので、Ｄ（ｐ）、Ｄ（ｐ＋１）、Ｄ（ｐ＋２）、Ｂ（ｍ）、Ｃ（ｎ）、Ａ（ｋ）、Ｂ（ｍ＋１）、Ｂ（ｍ＋２）、Ｂ（ｍ＋３）、Ｃ（ｎ）、Ａ（ｋ＋１）、Ｄ（ｐ＋２）の順に各々を対象としたリードリクエストが発生した場合、図４（ｃ）の場合と異なり、同一ページの再読み出しは発生しない。このように本実施形態によれば、通常のＬＲＵよりもキャッシュヒット率を向上させることができる。さらにＬＲＵルールによるリプレースメントを行うためには、モジュール毎にパターンＲＯＭ２０４へのアクセス頻度を管理する回路を設けなければならないため、その分だけ回路規模が大型化する。従って、回路全体を小型化する観点からは本実施形態によるリプレースメント方法を採用することが好ましい。
【００４５】
以上のように、本実施形態によれば、キャッシュメモリ５１のページ数を増加させなくてもキャッシュヒット率を向上させて、パターンＲＯＭ２０４について効率的なデータ読み出しを行うことができる。
【００４６】
＜他の実施形態＞
以上、この発明の実施形態を説明したが、この発明には、他にも各種の実施形態が考えられる。例えば次の通りである。
【００４７】
（１）上記実施形態では、ＲＯＭインタフェース１０５を１個だけ画像表示ＬＳＩ１００に設けたが、複数個設けてもよい。
【００４８】
（２）上記実施形態では、画像表示ＬＳＩ１００内のモジュールがパターンＲＯＭ２０４内において複数ページに跨る一連のデータを読み出す場合に、ページ１、ページ２、…という具合に昇順にアクセスしてゆくことを前提とした。しかし、このように昇順にアクセスするモジュールと、ページ１０、ページ９、…という具合に降順にアクセスしてゆくモジュールとが画像表示ＬＳＩ１００内に混在する場合や、同一のモジュールが複数の連続したページを昇順にアクセスしてゆく過程と降順にアクセスしてゆく過程を交互に繰り返すようなアプリケーションも考えられる。そのような態様では、キャッシュ制御回路５２は、上述したステップＳ３において、キャッシュメモリ５１のページ１〜Ｎの各記憶エリアの中にパターンＲＯＭ２０４においてキャッシュミスを発生させたリクエストアドレスが属するページの後のページまたは前のページのデータを格納しているものがあるか否かを判断すればよい。
【００４９】
（３）キャッシュミスを発生させたリードリクエストの対象であるデータとキャッシュメモリ５１の各ページの記憶エリア内のデータが連続するものであるか否かは、キャッシュミスを発生させたキャッシュリクエストの発生元であるモジュールの処理との関係で定まる。例えば、あるモジュールがパターンＲＯＭ２０４のページ１、２、３、…の各データを順次読み出して処理する場合、ページ１とページ２のデータは連続するデータ、ページ２とページ３のデータは連続するデータである。しかし、他のモジュールがパターンＲＯＭ２０４のページ１、９、１７、…の各データを順次読み出して処理する場合、ページ１とページ９のデータは連続するデータ、ページ９とページ１７のデータは連続するデータである。そこで、モジュール毎に、リクエストアドレスと、このリクエストアドレスの対象であるデータに連続するデータのページアドレスとの対応関係を定義する情報を用意しておき、上述したステップＳ３では、キャッシュミスを発生させたモジュールに対応した定義情報を選択して、書き換え対象を決定するための判断に用いてもよい。あるいは、このような定義情報を幾つか用意しておき、画像表示ＬＳＩ１００の外部から定義情報の選択指示をキャッシュ制御回路５２に与え、キャッシュ制御回路５２は、指示された定義情報を用いてステップＳ３の判断を行うように構成してもよい。
【符号の説明】
【００５０】
１００……画像表示ＬＳＩ、１０１……クロックジェネレータ、１０２……ＣＰＵインタフェース、１０３……汎用メモリ、１０４……ＳＤＲＡＭインタフェース、１０５……ＲＯＭインタフェース、１１１……動画デコーダ、１１２……静止画デコーダ、１１３……描画エンジン、１１４……音源、１１７……表示コントローラ、１１５……スプライトバッファ、１１６……フレームバッファ、２０１……ＣＰＵ、２０２……表示装置、２０３……ＳＤＲＡＭ、２０４……パターンＲＯＭ、５１……キャッシュメモリ、５２……キャッシュ制御回路。
【図１】
2010257237.tif 000003
【図２】
2010257237.tif 000004
【図３】
2010257237.tif 000005
【図４】
2010257237.tif 000006