(57)【要約】【課題】使用するバッファの種類に応じて効率の良いキャッシュメモリの構成を実現することができるキャッシュメモリ制御装置を得る。【解決手段】使用されるバッファメモリの種類以上の個数のメモリユニット１００〜１３０を設ける。キャッシュ制御ユニット４００は、使用されるバッファメモリのデータが少なくとも一つのメモリユニットでキャッシュされるよう、インプットセレクタ２００〜２３０を割り当てる。アウトプットセレクタ３００〜３２０は、メモリユニット１００〜１３０のうち、いずれかのメモリユニットから出力されるヒットフラグ１０２〜１３２に基づいて、使用されるバッファメモリのデータがヒットしたか否かを判定する。【選択図】図１
2008090673.tif 000002
【特許請求の範囲】
【請求項１】
使用されるバッファメモリの種類以上の個数が設けられ、前記使用されるバッファメモリのデータをキャッシュすると共に、前記使用されるバッファメモリのアドレスが与えられた場合、前記キャッシュしたデータがヒットしたか否かを示すヒットフラグを出力する複数のメモリユニットと、
前記複数のメモリユニットに対応して設けられ、対応したメモリユニットに対して、前記使用されるバッファメモリのアドレスを与える複数の入力選択手段と、
前記使用されるバッファメモリに対応して設けられ、前記複数のメモリユニットのうちいずれかのメモリユニットから出力されるヒットフラグに基づいて、前記使用されるバッファメモリのデータがヒットしたか否かを判定する出力選択手段と、
前記使用されるバッファメモリのアドレスを、少なくとも一つの前記入力選択手段が選択するよう、当該入力選択手段を割り当てると共に、前記出力選択手段が、対応するバッファメモリのデータをキャッシュするメモリユニットの出力を選択するよう、当該出力選択手段を割り当てるキャッシュメモリ制御手段とを備えたキャッシュメモリ制御装置。
【請求項２】
キャッシュメモリ制御手段は、全てのメモリユニットでいずれかのバッファメモリのデータがキャッシュされるよう複数の入力選択手段および出力選択手段を割り当てることを特徴とする請求項１記載のキャッシュメモリ制御装置。
【請求項３】
キャッシュメモリ制御手段は、全てのメモリユニットのうち、バッファメモリのデータのキャッシュは行わない未使用状態のメモリユニットが存在するよう複数の入力選択手段および出力選択手段を割り当てることを特徴とする請求項１記載のキャッシュメモリ制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、主として、様々なバッファメモリを使用するグラフィクス装置に用いるキャッシュメモリ制御装置に関するものである。
【背景技術】
【０００２】
グラフィクス装置では様々なバッファメモリを使用する。例えば、カラーバッファ（フレームバッファ）／デプスバッファ／ステンシルバッファ／アルファバッファ／マスクバッファ／テクスチャーバッファ／ディスプレイリストバッファなどを使用する。各バッファデータはグラフィクス装置外部の記憶装置に保存し、そのバッファデータの一部をグラフィクス装置内部に設置したキャッシュメモリに一時保管するシステムでは、以下のような方式が適用されている。
【０００３】
（１）分離キャッシュメモリ方式
様々なバッファ毎に専用のキャッシュメモリを設置する。各キャッシュメモリは独立して動作する。但し、以下のようなデメリットが生じる。
使用するグラフィクス機能の種類によっては使用しないバッファが生じる場合がある。この場合、対応する専用キャッシュメモリは未使用状態となり、キャッシュメモリに無駄が生じてしまう（デメリット１）。例えば、グラフィクス機能としてアルファバッファを使用しない場合、アルファ専用のキャッシュメモリは未使用状態になる。
また、グラフィクス装置が使用するバッファの種類が増えると、それに対応する専用キャッシュメモリも増やさなくてはいけない（デメリット２）。
【０００４】
（２）ユニファイドキャッシュメモリ方式
一つのキャッシュメモリを共有使用する。使用するバッファのデータだけがキャッシュメモリに一時保管され、それらのデータでキャッシュメモリを使い切ることができる。分離キャッシュ方式のデメリット１，２は解決できる。但し、以下のようなデメリットが生じる。
並列動作ができなくなるため、グラフィクス装置の動作速度が遅くなる。例えば、カラーバッファのデータとアルファバッファのデータを同じタイミングで読み出せない場合、グラフィクス装置の動作速度が低下する可能性がある。
【０００５】
このように、分離キャッシュメモリ方式では未使用キャッシュメモリが生じてしまう。また、ユニファイドキャッシュメモリ方式ではこのような問題は発生しない反面、並列動作ができなくなる。どのような場合でも並列動作可能で未使用部分がないキャッシュメモリがグラフィクス装置にとって一番使用効率がよいが、従来ではどちらの方式でも実現できなった。
【０００６】
一方、キャッシュメモリを動的に再構築することでキャッシュメモリの使用効率を向上させる技術が開発されている（例えば、特許文献１または特許文献２参照）。
【０００７】
【特許文献１】特開平５−２４１９６２号公報
【特許文献２】特開２００５−２９３３００号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、上記従来のキャッシュメモリを動的に再構築する技術は、単独動作するキャッシュメモリについての構成変更に関するものであり、並列動作するキャッシュメモリには適用できないという問題点があった。
【０００９】
この発明は上記のような課題を解決するためになされたもので、使用するバッファの種類に応じて効率の良いキャッシュメモリの構成を実現することができるキャッシュメモリ制御装置を得ることを目的とする。
【課題を解決するための手段】
【００１０】
この発明に係るキャッシュメモリ制御装置は、使用されるバッファメモリの種類以上の個数が設けられた複数のメモリユニットと、複数のメモリユニットに対応して設けられ、対応したメモリユニットに対して、使用されるバッファメモリのアドレスを与える複数の入力選択手段と、使用されるバッファメモリに対応して設けられ、複数のメモリユニットのうちいずれかのメモリユニットから出力されるヒットフラグに基づいて、使用されるバッファメモリのデータがヒットしたか否かを判定する出力選択手段と、使用されるバッファメモリのアドレスを、少なくとも一つの入力選択手段が選択するよう、その入力選択手段を割り当てると共に、出力選択手段が、対応するバッファメモリのデータをキャッシュするメモリユニットの出力を選択するよう、出力選択手段を割り当てるキャッシュメモリ制御手段とを備えたものである。
【発明の効果】
【００１１】
この発明のキャッシュメモリ制御装置は、使用されるバッファメモリの種類以上の個数のメモリユニットを設け、キャッシュメモリ制御手段は、使用されるバッファメモリのデータが少なくとも一つのメモリユニットでキャッシュされるよう、入力選択手段と出力選択手段を割り当てるようにしたので、使用するバッファメモリの種類に応じて効率の良いキャッシュメモリの構成を実現することができる。
【発明を実施するための最良の形態】
【００１２】
実施の形態１．
図１は、この発明の実施の形態１によるキャッシュメモリ制御装置を示す構成図である。
図において、キャッシュメモリ制御装置は、メモリユニット１００〜１３０、インプットセレクタ（入力選択手段）２００〜２３０、アウトプットセレクタ（出力選択手段）３００〜３２０、キャッシュ制御ユニット（キャッシュメモリ制御手段）４００を備えている。
【００１３】
本実施の形態では、キャッシュメモリ制御装置を使用するグラフィック装置は、例えば、カラーバッファとデプスバッファとアルファバッファを同時に使用することを想定している。グラフィクス装置に内蔵する再構成可能キャッシュメモリは３つのバッファ用のキャッシュに割り当てられる。４個のメモリユニット１００〜１３０それぞれは、カラーバッファ／デプスバッファ／アルファバッファいずれかのキャッシュメモリとして動的に割り当てられる。
【００１４】
ここで、グラフィック装置が同時に処理するバッファメモリ（以下、単にバッファと称す）の数を最大並列動作数Ｍとし、メモリユニットの個数をＵとすると、Ｍ≦Ｕになるように再構成可能キャッシュメモリを構成する必要がある。Ｕ個のメモリユニットをＭ個の並列動作するキャッシュメモリに分割するからである。図１の例は、Ｍ＝３，Ｕ＝４の場合のキャッシュメモリ構成例である。従って、インプットセレクタ２００〜２３０はＵ個必要であり、それぞれのインプットセレクタ２００〜２３０に入力するアドレスはＭ個である。アウトプットセレクタ３００〜３２０はＭ個必要であり、メモリユニット１００〜１３０Ｕ個からヒットフラグとデータを受け取る。
【００１５】
以下、各構成の詳細について説明する。
メモリユニット１００〜１３０は、図示しないバッファのデータをキャッシュするためのキャッシュメモリであり、図示例では４個のメモリユニットが設けられている。インプットセレクタ２００〜２３０は、それぞれのメモリユニット１００〜１３０に対応して設けられ、キャッシュ制御ユニット４００の割り当てに基づいて、与えられた各バッファのアドレスのうち、いずれかのバッファのアドレスを対応したメモリユニット１００〜１３０に与えるよう構成されている。アウトプットセレクタ３００〜３２０は、使用するバッファの数に対応して設けられ、内部には、ヒット判定部３０１，３１１，３２１と、データセレクタ３０２，３１２，３２２を備えている。これらのアウトプットセレクタ３００〜３２０は、キャッシュ制御ユニット４００による割り当てに基づいて、ヒット判定部３０１，３１１，３２１により、各メモリユニット１００〜１３０からの出力信号がヒットしたか否かを判定し、ヒットした場合は、データセレクタ３０２，３１２，３２２によって該当するメモリユニット１００〜１３０からデータ信号を送出するよう構成されている。
【００１６】
キャッシュ制御ユニット４００は、インプットセレクタ２００〜２３０のそれぞれに対して、少なくとも一つのバッファのアドレスを選択するよう割り当てを行うと共に、割り当てを行ったインプットセレクタ２００〜２３０に対応したメモリユニット１００〜１３０から出力された信号のみ有効とするようアウトプットセレクタ３００〜３２０に対して割り当てを行うよう構成されている。
【００１７】
次に、実施の形態１のキャッシュメモリ制御装置の動作について説明する。
先ず、キャッシュ制御ユニット４００によるキャッシュメモリの再構成（インプットセレクタ２００〜２３０およびアウトプットセレクタ３００〜３２０の割り当て）を説明する。
グラフィクス装置は、機能パラメータを保持しており、その機能パラメータによって使用するグラフィクス機能を変更することができる。尚、グラフィクス装置の機能パラメータの設定は、図示しないグラフィクス装置のＣＰＵ等によって行われる。グラフィクス装置のキャッシュ制御ユニット４００は、設定された機能パラメータからグラフィクス装置が使用するバッファの種類を判定する。例えば、カラーバッファとデプスバッファしか使用しないグラフィクス機能のみが有効化されている場合、カラーバッファとデプスバッファ以外のバッファは使用しないと判定する。
【００１８】
キャッシュ制御ユニット４００は、使用するバッファの種類からメモリユニット１００〜１３０の割り当てを決定する。使用すると判定したバッファに少なくとも一つのメモリユニット１００〜１３０を割り当てる。
例えば、カラーバッファとデプスバッファしか使用しない描画を行う場合、アルファバッファに対してキャッシュメモリを割り当てる必要はない。そこでカラーバッファに対して２つのメモリユニット１００と１１０、デプスバッファに対して２つのメモリユニット１２０と１３０を割り当てる。このように、４つあるメモリユニット１００〜１３０を使い切るように分割する。
【００１９】
インプットセレクタ２００〜２３０では、キャッシュ制御ユニット４００からの割り当て結果に基づいてメモリユニット１００〜１３０への入力（アドレス）の選択を行う。例えば、上記のように、カラーバッファに対して２つのメモリユニット１００と１１０、デプスバッファに対して２つのメモリユニット１２０と１３０を割り当てる場合、インプットセレクタ２００と２１０はカラーバッファのアドレス５００を選択し、インプットセレクタ２２０と２３０はデプスバッファのアドレス５１０を選択する。
【００２０】
アウトプットセレクタ３００〜３２０では、キャッシュ制御ユニット４００による割り当て結果に基づいてメモリユニット１００〜１３０からの出力（ヒットフラグやデータ）の選択を行う。例えば、上記のように、カラーバッファに対して２つのメモリユニット１００と１１０、デプスバッファに対して２つのメモリユニット１２０と１３０を割り当てる場合、カラーバッファ用のアウトプットセレクタ３００は、メモリユニット１００と１１０の出力を選択し、デプスバッファ用のアウトプットセレクタ３１０は、メモリユニット１２０と１３０の出力を選択する。
【００２１】
カラーバッファ用のアウトプットセレクタ３００のヒット判定部３０１では、メモリユニット１００，１１０が出力するヒットフラグ１０２，１１２のいずれかが有効であれば、いずれかのメモリユニット１００，１１０がヒットしていることを表しているので、出力するヒットフラグ３０１ａを有効とする。尚、メモリユニット１００〜１３０では、与えられたアドレス１０１，１１１，１２１，１３１に基づいて、インデックスに対応するタグの値を取り出し、これをアドレス１０１，１１１，１２１，１３１に含まれるタグの値と比較することでヒット判定を行うが、これらのヒット判定やヒットした場合のデータ１０３，１１３，１２３，１３３の出力については、公知のキャッシュメモリの動作であるので、ここでの説明は省略する。
【００２２】
アウトプットセレクタ３００におけるデータセレクタ３０２ではヒットしているメモリユニット１００（または１１０）が出力するデータを選択してデータ３０２ａとして出力する。一方、アウトプットセレクタ３００では、カラーバッファに割り当てられていないメモリユニット１２０と１３０が出力する信号は有効でないとして扱う。
【００２３】
デプスバッファ用のアウトプットセレクタ３１０では、ヒット判定部３１１によって、メモリユニット１２０と１３０からの出力信号からヒットフラグ３１１ａを生成する。メモリユニット１００と１１０からの出力信号は無視する。２本のヒットフラグ１２２と１３２のどちらかが有効であれば、いずれかのメモリユニット１２０，１３０がヒットしていることを表している。この場合、出力するヒットフラグ３１１ａを有効化し、ヒットしているメモリユニット１２０（または１３０）のデータを選択し、データ３１２ａとして出力する。
【００２４】
アルファバッファ用のアウトプットセレクタ３２０では、メモリユニット１００〜１３０の出力を一切使用しない。従って、出力するヒットフラグ３２１ａおよびデータ３２２ａは常に無効化する。
【００２５】
このように再構築すれば、図２に示したキャッシュメモリと同様の構成になる。カラーバッファ用のキャッシュメモリは２ウェイセットアソシアティブ構成になり、デプスバッファ用のキャッシュメモリも２ウェイセットアソシアティブ構成になる。未使用キャッシュメモリは発生しない。
【００２６】
次に、カラーバッファとデプスバッファとアルファバッファを同時に使用する場合の再構成例を示す。
キャッシュ制御ユニット４００は、機能パラメータに基づいて、カラーバッファとデプスバッファとアルファバッファを使用すると判定した場合、例えば、カラーバッファに対して２つ、デプスバッファに対して１つ、アルファバッファに対して１つのメモリユニット１００〜１３０を割り当てる。ここでも４つあるメモリユニットを使い切るように分割する。即ち、キャッシュ制御ユニット４００は、２つのインプットセレクタ２００，２１０がカラーバッファ用のアドレス５００を、インプットセレクタ２２０がデプスバッファ用のアドレス５１０を、インプットセレクタ２３０がアルファバッファ用のアドレス５２０を選択するようそれぞれ制御を行う。
【００２７】
また、キャッシュ制御ユニット４００は、アウトプットセレクタ３００〜３２０に対して、アウトプットセレクタ３００がメモリユニット１００，１１０の出力を、アウトプットセレクタ３１０がメモリユニット１２０の出力を、アウトプットセレクタ３２０がメモリユニット１３０の出力に基づいてヒット判定およびデータ出力を行うよう制御を行う。
【００２８】
このように再構築すれば、図３に示したキャッシュメモリと同様の構成になる。カラーバッファ用のキャッシュメモリは２ウェイセットアソシアティブ構成になり、デプスバッファ用のキャッシュメモリとアルファバッファ用のキャッシュメモリは１ウェイセットアソシアティブ（＝ダイレクトマップ）構成になる。未使用キャッシュメモリは発生しない。尚、この例では、カラーバッファ用のキャッシュメモリを２ウェイセットアソシアティブ構成としたが、デプスバッファまたはアルファバッファに対して２ウェイセットアソシアティブ構成としてもよい。
【００２９】
次に、カラーバッファしか使用しない場合の再構築例を説明する。この場合、キャッシュ制御ユニット４００は、全てのメモリユニット１００〜１３０をカラーバッファ用のキャッシュメモリに割り当てるようインプットセレクタ２００〜２３０およびアウトプットセレクタ３００〜３２０を制御する。即ち、全てのインプットセレクタ２００〜２３０は、カラーバッファ用のアドレス５００を選択するよう制御し、また、カラーバッファ用のアウトプットセレクタ３００は、全てのメモリユニット１００〜１３０からの出力を選択する。
【００３０】
このように再構築すれば、図４に示したキャッシュメモリと同様の構成になる。カラーバッファ用のキャッシュメモリは４ウェイセットアソシアティブ構成になる。未使用キャッシュメモリは発生しない。
【００３１】
以上のように、実施の形態１のキャッシュメモリ制御装置によれば、使用されるバッファメモリの種類以上の個数が設けられ、使用されるバッファメモリのデータをキャッシュすると共に、使用されるバッファメモリのアドレスが与えられた場合、キャッシュしたデータがヒットしたか否かを示すヒットフラグを出力する複数のメモリユニットと、複数のメモリユニットに対応して設けられ、対応したメモリユニットに対して、使用されるバッファメモリのアドレスを与える複数の入力選択手段と、使用されるバッファメモリに対応して設けられ、複数のメモリユニットのうちいずれかのメモリユニットから出力されるヒットフラグに基づいて、使用されるバッファメモリのデータがヒットしたか否かを判定する出力選択手段と、使用されるバッファメモリのアドレスを、少なくとも一つの入力選択手段が選択するよう、その入力選択手段を割り当てると共に、出力選択手段が、対応するバッファメモリのデータをキャッシュするメモリユニットの出力を選択するよう、その出力選択手段を割り当てるキャッシュメモリ制御手段とを備えたので、例えば、複数のバッファメモリを使用する場合にも並列動作が可能で、また、バッファメモリを一つだけ使用する場合でも複数のメモリユニットを割り当てることが可能であるといったように、使用するバッファの種類に応じて効率の良いキャッシュメモリの構成を実現することができる。
【００３２】
また、実施の形態１のキャッシュメモリ制御装置によれば、キャッシュメモリ制御手段は、全てのメモリユニットでいずれかのバッファメモリのデータがキャッシュされるよう複数の入力選択手段および出力選択手段を割り当てるようにしたので、無駄のないキャッシュメモリの構成を実現することができる。
【００３３】
実施の形態２．
実施の形態２は、使用するバッファには少なくとも一つのメモリユニットを割り当てるという条件を満たしながら、使用しないメモリユニットを設けるようにしたものである。図面上の構成は図１と同様であるため、図１を援用して説明する。
【００３４】
実施の形態２におけるキャッシュ制御ユニット４００は、使用するバッファのアドレスを少なくとも一つのインプットセレクタ２００〜２３０が選択するよう制御すると共に、いずれのバッファのアドレスも選択しないインプットセレクタ２００〜２３０が存在するよう割り当て制御を行う構成とされている。また、未使用のメモリユニット１００〜１３０に対しては、電力供給やクロックの供給を停止させるよう構成されている。
【００３５】
例えば、カラーバッファとデプスバッファとアルファバッファを同時に使用する場合の再構成例を説明する。
キャッシュ制御ユニット４００は、機能パラメータに基づいて、カラーバッファとデプスバッファとアルファバッファを使用すると判定した場合、例えば、これらバッファに対してそれぞれ１つずつのメモリユニット１００〜１３０を割り当てる。その一例としては、インプットセレクタ２００がカラーバッファ用のアドレス５００を、インプットセレクタ２１０がデプスバッファ用のアドレス５１０を、インプットセレクタ２２０がアルファバッファ用のアドレス５２０をそれぞれ選択するよう割り当て制御する。また、アウトプットセレクタ３００〜３２０に対しては、カラーバッファ用のアウトプットセレクタ３００がメモリユニット１００の出力を、デプスバッファ用のアウトプットセレクタ３１０がメモリユニット１１０の出力を、アルファバッファ用のアウトプットセレクタ３２０がメモリユニット１２０の出力をそれぞれ選択するよう割り当て制御する。
【００３６】
このように割り当て制御することにより、４つあるメモリユニット１００〜１３０のうち、メモリユニット１３０は未使用となる。そして、この場合、キャッシュ制御ユニット４００は、メモリユニット１３０に対する電力の供給やクロックの供給を停止するよう図示しないグラフィクス装置の電力供給手段やクロック供給手段に対して指示を行う。その結果、メモリユニット１３０への電力の供給やクロックの供給が停止され、グラフィクス装置としての消費電力の削減を図ることができる。
【００３７】
尚、未使用のメモリユニットとしてメモリユニット１３０の場合を説明したが、未使用とするのはどのメモリユニットであっても構わない。また、使用するバッファに対して、少なくとも一つのメモリユニットを割り当てるという条件を満たす割り当てであれば、使用するバッファの種類とメモリユニットの個数との関係に応じてどのような割り当てであってもよい。
【００３８】
以上のように、実施の形態２のキャッシュメモリ制御装置によれば、キャッシュメモリ制御手段は、全てのメモリユニットのうち、バッファメモリのデータのキャッシュは行わない未使用状態のメモリユニットが存在するよう複数の入力選択手段および出力選択手段を割り当てるようにしたので、使用するバッファの種類に応じて効率の良いキャッシュメモリの構成を実現することができると共に、入力選択手段や出力選択手段への割り当て制御のみで必要最低限のキャッシュメモリの構成が得られ、例えば、消費電力の削減といった効果が得られる。
【図面の簡単な説明】
【００３９】
【図１】この発明の実施の形態１によるキャッシュメモリ制御装置を示す構成図である。
【図２】この発明の実施の形態１によるキャッシュメモリ制御装置の第１の再構成例を示す説明図である。
【図３】この発明の実施の形態１によるキャッシュメモリ制御装置の第２の再構成例を示す説明図である。
【図４】この発明の実施の形態１によるキャッシュメモリ制御装置の第３の再構成例を示す説明図である。
【符号の説明】
【００４０】
１００，１１０，１２０，１３０  メモリユニット、１０１，１１１，１２１，１３１  アドレス、１０２，１１２，１２２，１３２  ヒットフラグ、１０３，１１３，１２３，１３３  データ、２００，２１０，２２０，２３０  インプットセレクタ（入力選択手段）、３００，３１０，３２０  アウトプットセレクタ（出力選択手段）、３０１，３１１，３２１  ヒット判定部、３０２，３１２，３２２  データセレクタ、４００  キャッシュ制御ユニット（キャッシュメモリ制御手段）、５００  カラーバッファ用のアドレス、５１０  デプスバッファ用のアドレス、５２０  アルファバッファ用のアドレス。
【図１】
2008090673.tif 000003
【図２】
2008090673.tif 000004
【図３】
2008090673.tif 000005
【図４】
2008090673.tif 000006