(57)【要約】【課題】  キャッシュメモリ・システム及びその動作方法を提供する。【解決手段】  少なくとも１つのバンクを含むキャッシュメモリ；バンクをピクセルシェーディング時に必要な複数のテクスチャのうち少なくとも１つのテクスチャに割り当てることにより、キャッシュメモリを複数のパーティションに分割するパーティション構成部；及び、ピクセルシェーディングを行う装置から要請されるテクスチャデータのパーティションＩＤを受信し、複数のパーティションのうち、パーティションＩＤに対応するパーティションに要請されたテクスチャデータが保存されているか否かということを判断し、該判断結果により、要請されたテクスチャデータを装置に出力するコントローラ；を含むキャッシュメモリ・システムである。【選択図】      図３
2016085729.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つのバンクを含むキャッシュメモリと、
前記バンクを、レンダリングに必要な複数のテクスチャのうち少なくとも１つのテクスチャに割り当てることにより、前記キャッシュメモリを複数のパーティションに分割するパーティション構成部と、
前記レンダリングを行う装置から要請されるテクスチャデータのパーティションＩＤを受信し、前記複数のパーティションのうち、前記パーティションＩＤに対応するパーティションに、前記要請されたテクスチャデータが保存されているか否かということを判断し、前記判断結果により、前記要請されたテクスチャデータを、前記装置に出力するコントローラと、
を含む、キャッシュメモリ・システム。
【請求項２】
前記キャッシュメモリは、
前記複数のテクスチャのうち、第１テクスチャに含まれる一部テクスチャデータを、前記第１テクスチャに対応するパーティションに保存し、第２テクスチャに含まれる一部テクスチャデータを、前記第２テクスチャに対応するパーティションに保存する、
請求項１に記載のキャッシュメモリ・システム。
【請求項３】
前記コントローラは、
前記要請されるテクスチャデータのセットアドレス及びタグアドレスを受信し、前記パーティションＩＤに対応するパーティションに含まれる少なくとも１つのセットのうち、前記セットアドレスが示すセットに含まれるタグデータを、前記タグアドレスと比較し、前記要請されたテクスチャデータが保存されているか否かということを判断する、
請求項１または２に記載のキャッシュメモリ・システム。
【請求項４】
前記コントローラは、
前記比較の結果、前記タグデータのうちいずれか一つと、前記タグアドレスが一致する場合、キャッシュヒットと判断し、前記一致するタグデータに対応するテクスチャデータを、前記装置に出力する、
請求項３に記載のキャッシュメモリ・システム。
【請求項５】
前記コントローラは、
前記比較の結果、前記タグデータが前記タグアドレスと一致しない場合、キャッシュミスと判断し、テクスチャメモリの前記タグアドレスが示す領域から、前記要請されたテクスチャデータを受信する、
請求項３または４に記載のキャッシュメモリ・システム。
【請求項６】
前記パーティション構成部は、
前記テクスチャの個数と、前記バンクの個数とを比較し、前記比較の結果に基づき、前記バンクを、前記テクスチャのうち少なくとも一つに割り当てる、
請求項１乃至５いずれか一項に記載のキャッシュメモリ・システム。
【請求項７】
前記パーティション構成部は、
前記比較の結果、前記テクスチャの個数が、前記バンクの個数より少ない場合、前記テクスチャそれぞれに１つのバンクを割り当て、前記割り当てられていないバンクを、前記テクスチャのうちいずれか一つに追加して割り当て、前記テクスチャそれぞれに割り当てられた少なくとも１つのバンクを、１つのパーティションとして決定する、
請求項６に記載のキャッシュメモリ・システム。
【請求項８】
前記パーティション構成部は、
前記テクスチャのうちミップマップされていないテクスチャを検出し、前記検出されたテクスチャに、前記割り当てられていないバンクを追加して割り当てる、
請求項６または７に記載のキャッシュメモリ・システム。
【請求項９】
前記パーティション構成部は、
前記レンダリングに利用されるシェーダ・プログラムと同一シェーダ・プログラムを利用した以前レンダリング結果に基づき、前記テクスチャのアクセスパターンを分析し、前記分析結果に基づき、前記割り当てられていないバンクを、前記テクスチャのうちいずれか一つに追加して割り当てる、
請求項６乃至８いずれか一項に記載のキャッシュメモリ・システム。
【請求項１０】
前記パーティション構成部は、
前記レンダリングの最中、前記テクスチャのアクセスパターンをリアルタイムでモニタリングし、前記モニタリング結果に基づき、前記割り当てられていないバンクを、前記テクスチャのうちいずれか一つに動的に追加して割り当てる、
請求項６乃至９いずれか一項に記載のキャッシュメモリ・システム。
【請求項１１】
前記パーティション構成部は、
前記比較の結果、前記テクスチャの個数が、前記バンクの個数より多い場合、前記テクスチャのうち、第１テクスチャ及び第２テクスチャに同一バンクを割り当て、前記同一バンクを、１つのパーティションとして決定する、
請求項６乃至１０いずれか一項に記載のキャッシュメモリ・システム。
【請求項１２】
前記パーティション構成部は、
前記テクスチャのうち、テクスチャ座標を共有しない前記第１テクスチャ及び第２テクスチャを検出する、
ことを特徴とする請求項１１に記載のキャッシュメモリ・システム。
【請求項１３】
前記パーティション構成部は、
前記テクスチャのうち、テクスチャサイズが互いに異なる前記第１テクスチャ及び第２テクスチャを検出する
請求項１１または１２に記載のキャッシュメモリ・システム。
【請求項１４】
前記レンダリングは、ピクセルシェーディングを含む、
請求項１乃至１３いずれか一項に記載のキャッシュメモリ・システム。
【請求項１５】
キャッシュメモリに含まれる少なくとも１つのバンクを、レンダリングに必要な複数のテクスチャのうち少なくとも１つのテクスチャに割り当てることにより、前記キャッシュメモリを複数のパーティションに分割する段階と、
前記レンダリングを行う装置から要請されるテクスチャデータのパーティションＩＤを受信する段階と、
前記複数のパーティションのうち、前記パーティションＩＤに対応するパーティションに、前記要請されたテクスチャデータが保存されているか否かということを判断する段階と、
前記判断結果により、前記要請されたテクスチャデータを、前記装置に出力する段階と、
を含む、キャッシュメモリ・システムの動作方法。
【請求項１６】
前記方法は、
前記要請されるテクスチャデータのセットアドレス及びタグアドレスを受信する段階をさらに含み、
前記判断する段階は、
前記パーティションＩＤに対応するパーティションに含まれる少なくとも１つのセットのうち、前記セットアドレスが示すセットに含まれるタグデータを、前記タグアドレスと比較し、前記要請されたテクスチャデータが保存されているか否かということを判断する段階である、
請求項１５に記載のキャッシュメモリ・システムの動作方法。
【請求項１７】
前記判断結果により、前記要請されたテクスチャデータを前記装置に出力する段階は、
前記比較の結果、前記タグデータのうちいずれか一つと、前記タグアドレスが一致する場合、キャッシュヒットと判断し、前記一致するタグデータに対応するテクスチャデータを、前記装置に出力する段階である、
請求項１６に記載のキャッシュメモリ・システムの動作方法。
【請求項１８】
前記判断結果により、前記要請されたテクスチャデータを前記装置に出力する段階は、
前記比較の結果、前記タグデータが前記タグアドレスと一致しない場合、キャッシュミスと判断し、テクスチャメモリの前記タグアドレスが示す領域から、前記要請されたデータを受信する段階、をさらに含む、
請求項１６または１７に記載のキャッシュメモリ・システムの動作方法。
【請求項１９】
前記キャッシュメモリを複数のパーティションに分割する段階は、
前記テクスチャの個数と、前記バンクの個数とを比較する段階をさらに含み、
前記比較の結果に基づき、前記バンクを前記テクスチャのうち少なくとも一つに割り当て、前記キャッシュメモリを複数のパーティションに分割する、
請求項１５乃至１８いずれか一項に記載のキャッシュメモリ・システムの動作方法。
【請求項２０】
前記比較の結果、前記テクスチャの個数が、前記バンクの個数より少ない場合、
前記キャッシュメモリを複数のパーティションに分割する段階は、
前記テクスチャそれぞれに１つのバンクを割り当てる段階と、
前記割り当てられていないバンクを、前記テクスチャのうちいずれか一つに追加して割り当てる段階と、
前記テクスチャそれぞれに割り当てられた少なくとも１つのバンクを、１つのパーティションとして決定する段階と、を含む、
請求項１９に記載のキャッシュメモリ・システムの動作方法。
【請求項２１】
前記割り当てられていないバンクを、前記テクスチャのうちいずれか一つに追加して割り当てる段階は、
前記テクスチャのうちミップマップされていないテクスチャを検出する段階と、
前記検出されたテクスチャに、前記割り当てられていないバンクを追加して割り当てる段階と、を含む、
請求項１９または２０に記載のキャッシュメモリ・システムの動作方法。
【請求項２２】
前記割り当てられていないバンクを、前記テクスチャのうちいずれか一つに追加して割り当てる段階は、
前記レンダリングに利用されるシェーダ・プログラムと同一シェーダ・プログラムを利用した以前レンダリング結果に基づき、前記テクスチャのアクセスパターンを分析する段階と、
前記分析結果に基づき、前記割り当てられていないバンクを、前記テクスチャのうちいずれか一つに追加して割り当てる段階と、を含む、
請求項１９乃至２１いずれか一項に記載のキャッシュメモリ・システムの動作方法。
【請求項２３】
前記割り当てられていないバンクを、前記テクスチャのうちいずれか一つに追加して割り当てる段階は、
前記レンダリングの最中、前記テクスチャのアクセスパターンをリアルタイムでモニタリングする段階と、
前記モニタリング結果に基づき、前記割り当てられていないバンクを、前記テクスチャのうちいずれか一つに動的に追加して割り当てる段階と、を含む、
請求項１９乃至２２いずれか一項に記載のキャッシュメモリ・システムの動作方法。
【請求項２４】
前記比較の結果、前記テクスチャの個数が、前記バンクの個数より多い場合、
前記キャッシュメモリを複数のパーティションに分割する段階は、
前記複数のテクスチャのうち、第１テクスチャ及び第２テクスチャに同一バンクを割り当てる段階と、
前記同一バンクを、１つのパーティションとして決定する段階と、を含む、
請求項１９乃至２３いずれか一項に記載のキャッシュメモリ・システムの動作方法。
【請求項２５】
前記キャッシュメモリを複数のパーティションに分割する段階は、
前記テクスチャのうち、テクスチャ座標を共有しない前記第１テクスチャ及び第２テクスチャを検出する段階をさらに含む、
請求項２４に記載のキャッシュメモリ・システムの動作方法。
【請求項２６】
前記キャッシュメモリを複数のパーティションに分割する段階は、
前記テクスチャのうちテクスチャサイズが互いに異なる前記第１テクスチャ及び第２テクスチャを検出する段階をさらに含む、
請求項２４または２５に記載のキャッシュメモリ・システムの動作方法。
【請求項２７】
前記レンダリングは、ピクセルシェーディングを含む、
請求項１５乃至２６いずれか一項に記載のキャッシュメモリ・システムの動作方法。
【請求項２８】
請求項１５乃至２７いずれか一項に記載の方法をコンピュータで実行させるためのプログラムを記録したコンピュータで読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、キャッシュメモリ・システム及びその動作方法に関し、さらに具体的には、キャッシュミス確率を低下させることができるキャッシュメモリ・システム及びその動作方法に関する。
【背景技術】
【０００２】
一般的に、ＣＰＵ（central  processing  unit）やＧＰＵ（graphics  processing  unit）のような処理装置は、大容量の外部メモリに保存された命令語やデータを持ってきて処理する。ほとんどの大容量外部メモリの処理速度は、処理装置に比べてはるかに遅いので、動作速度を改善するために、キャッシュメモリ・システムを使用している。
【０００３】
キャッシュメモリ・システムは、処理装置が最近アクセスしたデータを保存していて、処理装置が、同一データをさらに要請する場合、外部メモリにアクセスせず、高速のキャッシュメモリにアクセスさせることにより、データ伝送速度を向上させる役割を行う。
【０００４】
処理装置が要請したデータが、キャッシュメモリ・システムのデータメモリに保存されている場合（キャッシュヒット（cache  hit））には、データメモリのデータが処理装置に伝達され、処理装置が要請したデータがない場合（キャッシュミス（cache  miss））には、外部メモリからデータを読み取る。また、キャッシュメモリ・システムは、データメモリに保存されているキャッシュデータのうちいずれか一つを削除し、読み取ったデータでアップデートし、読み取ったデータは、処理装置に伝達される。
【０００５】
かようなキャッシュメモリ・システムは、マッピング（mapping）方式により、セット関連マッピング方式を利用するセット関連キャッシュメモリと、直接マッピング方式を利用する直接マップキャッシュメモリ（direct  mapped  cache  memory）とによって具現化することができる。セット関連キャッシュメモリは、複数のウェイ（way）を有し、キャッシュミスの場合、交替政策（replacement  status）により、いずれか１つのウェイに対応するキャッシュデータを、外部メモリから読み取った新たなデータでアップデートする。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明が解決しようとする課題は、キャッシュミス確率を低下させるキャッシュメモリ・システム及びその動作方法を提供するところにある。
【課題を解決するための手段】
【０００７】
前記課題を解決するために本発明の一実施形態によるキャッシュメモリ・システムは、少なくとも１つのバンクを含むキャッシュメモリ；前記バンクを、レンダリングに必要な複数のテクスチャのうち少なくとも１つのテクスチャに割り当てることにより、前記キャッシュメモリを複数のパーティションに分割するパーティション構成部；及び前記レンダリングを行う装置から要請されるテクスチャデータのパーティションＩＤ（identification）を受信し、前記複数のパーティションのうち、前記パーティションＩＤに対応するパーティションに、前記要請されたテクスチャデータが保存されているか否かということを判断し、前記判断結果によって、前記要請されたテクスチャデータを前記装置に出力するコントローラ；を含んでもよい。
【０００８】
一実施形態によるキャッシュメモリは、前記複数のテクスチャのうち、第１テクスチャに含まれる一部テクスチャデータを、前記第１テクスチャに対応するパーティションに保存し、第２テクスチャに含まれる一部テクスチャデータを、前記第２テクスチャに対応するパーティションに保存することができる。
【０００９】
一実施形態によるコントローラは、前記要請されるテクスチャデータのセットアドレス及びタグアドレスを受信し、前記パーティションＩＤに対応するパーティションに含まれる少なくとも１つのセットのうち、前記セットアドレスが示すセットに含まれるタグデータを、前記タグアドレスと比較し、前記要請されたテクスチャデータが保存されているか否かということを判断することができる。
【００１０】
一実施形態によるコントローラは、前記比較の結果、前記タグデータのうちいずれか一つと、前記タグアドレスが一致する場合、キャッシュヒットと判断し、前記一致するタグデータに対応するテクスチャデータを、前記装置に出力することができる。
【００１１】
一実施形態によるコントローラは、前記比較の結果、前記タグデータが前記タグアドレスと一致しない場合、キャッシュミスと判断し、テクスチャメモリの前記タグアドレスが示す領域から、前記要請されたテクスチャデータを受信することができる。
【００１２】
一実施形態によるパーティション構成部は、前記テクスチャの個数と、前記バンクの個数とを比較し、前記比較の結果に基づき、前記バンクを、前記テクスチャのうち少なくとも一つに割り当てることができる。
【００１３】
一実施形態によるパーティション構成部は、前記比較の結果、前記テクスチャの個数が、前記バンクの個数より少ない場合、前記テクスチャそれぞれに１つのバンクを割り当て、前記割り当てられていないバンクを、前記テクスチャのうちいずれか一つに追加して割り当て、前記テクスチャそれぞれに割り当てられた少なくとも１つのバンクを１つのパーティションとして決定することができる。
【００１４】
一実施形態によるパーティション構成部は、前記テクスチャのうちミップマップされていないテクスチャ（non-mipmapped  texture）を検出し、前記検出されたテクスチャに、前記割り当てられていないバンクを追加して割り当てることができる。
【００１５】
一実施形態によるパーティション構成部は、前記レンダリングに利用されるシェーダ・プログラムと同一シェーダ・プログラムを利用した以前レンダリング結果に基づき、前記テクスチャのアクセスパターンを分析し、前記分析結果に基づき、前記割り当てられていないバンクを、前記テクスチャのうちいずれか一つに追加して割り当てることができる。
【００１６】
一実施形態によるパーティション構成部は、前記レンダリングの最中、前記テクスチャのアクセスパターンをリアルタイムでモニタリングし、前記モニタリング結果に基づき、前記割り当てられていないバンクを、前記テクスチャのうちいずれか一つに動的に追加して割り当てることができる。
【００１７】
一実施形態によるパーティション構成部は、前記比較の結果、前記テクスチャの個数が、前記バンクの個数より多い場合、前記テクスチャのうち、第１テクスチャ及び第２テクスチャに同一バンクを割り当て、前記同一バンクを１つのパーティションとして決定することができる。
【００１８】
一実施形態によるパーティション構成部は、前記テクスチャのうちテクスチャ座標を共有しない前記第１テクスチャ及び第２テクスチャを検出することができる。
【００１９】
一実施形態によるパーティション構成部は、前記テクスチャのうちテクスチャサイズが互いに異なる前記第１テクスチャ及び第２テクスチャを検出することができる。
【００２０】
前記課題を解決するために本発明の一実施形態によるキャッシュメモリ・システムの動作方法は、キャッシュメモリに含まれる少なくとも１つのバンクを、レンダリングに必要な複数のテクスチャのうち少なくとも１つのテクスチャに割り当てることにより、前記キャッシュメモリを複数のパーティションに分割する段階、前記レンダリングを行う装置から要請されるテクスチャデータのパーティションＩＤを受信する段階、前記複数のパーティションのうち、前記パーティションＩＤに対応するパーティションに、前記要請されたテクスチャデータが保存されているか否かということを判断する段階、及び前記判断結果によって、前記要請されたテクスチャデータを、前記装置に出力する段階を含んでもよい。
【００２１】
一実施形態によるキャッシュメモリ・システムの動作方法は、前記要請されるテクスチャデータのセットアドレス及びタグアドレスを受信する段階をさらに含み、前記判断する段階は、前記パーティションＩＤに対応するパーティションに含まれる少なくとも１つのセットのうち、前記セットアドレスが示すセットに含まれるタグデータを、前記タグアドレスと比較し、前記要請されたテクスチャデータが保存されているか否かということを判断する段階でもある。
【００２２】
一実施形態による前記判断結果により、前記要請されたテクスチャデータを、前記装置に出力する段階は、前記比較の結果、前記タグデータのうちいずれか一つと、前記タグアドレスが一致する場合、キャッシュヒットと判断し、前記一致するタグデータに対応するテクスチャデータを、前記装置に出力する段階でもある。
【００２３】
一実施形態による前記判断結果により、前記要請されたテクスチャデータを、前記装置に出力する段階は、前記比較の結果、前記タグデータが前記タグアドレスと一致しない場合、キャッシュミスと判断し、前記テクスチャメモリの前記タグアドレスが示す領域から、前記要請されたデータを受信する段階をさらに含んでもよい。
【００２４】
一実施形態による前記キャッシュメモリを複数のパーティションに分割する段階は、前記テクスチャの個数と、前記バンクの個数とを比較する段階をさらに含み、前記比較の結果に基づき、前記バンクを、前記テクスチャのうち少なくとも一つに割り当て、前記キャッシュメモリを複数のパーティションに分割することができる。
【００２５】
一実施形態による前記比較の結果、前記テクスチャの個数が、前記バンクの個数より少ない場合、前記キャッシュメモリを複数のパーティションに分割する段階は、前記テクスチャそれぞれに１つのバンクを割り当てる段階、前記割り当てられていないバンクを、前記テクスチャのうちいずれか一つに追加して割り当てる段階、及び前記テクスチャそれぞれに割り当てられた少なくとも１つのバンクを、１つのパーティションとして決定する段階を含んでもよい。
【００２６】
一実施形態による前記割り当てられていないバンクを、前記テクスチャのうちいずれか一つに追加して割り当てる段階は、前記テクスチャのうちミップマップされていないテクスチャ（non-mipmapped  texture）を検出する段階、及び前記検出されたテクスチャに、前記割り当てられていないバンクを追加して割り当てる段階を含んでもよい。
【００２７】
一実施形態による前記割り当てられていないバンクを、前記テクスチャのうちいずれか一つに追加して割り当てる段階は、前記レンダリングに利用されるシェーダ・プログラムと同一シェーダ・プログラムを利用した以前レンダリング結果に基づき、前記テクスチャのアクセスパターンを分析する段階、及び前記分析結果に基づき、前記割り当てられていないバンクを、前記テクスチャのうちいずれか一つに追加して割り当てる段階を含んでもよい。
【００２８】
一実施形態による前記割り当てられていないバンクを、前記テクスチャのうちいずれか一つに追加して割り当てる段階は、前記レンダリングの最中、前記テクスチャのアクセスパターンをリアルタイムでモニタリングする段階、及び前記モニタリング結果に基づき、前記割り当てられていないバンクを、前記テクスチャのうちいずれか一つに動的に追加して割り当てる段階を含んでもよい。
【００２９】
一実施形態による前記比較の結果、前記テクスチャの個数が、前記バンクの個数より多い場合、前記キャッシュメモリを複数のパーティションに分割する段階は、前記複数のテクスチャのうち、第１テクスチャ及び第２テクスチャに同一バンクを割り当てる段階、及び前記同一バンクを、１つのパーティションとして決定する段階を含んでもよい。
【００３０】
一実施形態による前記キャッシュメモリを複数のパーティションに分割する段階は、前記テクスチャのうち、テクスチャ座標を共有しない前記第１テクスチャ及び第２テクスチャを検出する段階をさらに含んでもよい。
【００３１】
一実施形態による前記キャッシュメモリを複数のパーティションに分割する段階は、前記テクスチャのうちテクスチャサイズが互いに異なる前記第１テクスチャ及び第２テクスチャを検出する段階をさらに含んでもよい。
【発明の効果】
【００３２】
本発明によれば、複数のテクスチャにバンクを効率的に割り当てることにより、キャッシュミス確率を低下させることができる。
本発明によれば、また、当該パーティション内でのみキャッシング動作が行われるために、電力消費量を減少させることができる。
【図面の簡単な説明】
【００３３】
【図１】三次元イメージのレンダリング過程を示す図面である。
【図２】本発明の一実施形態によるピクセルシェーディング処理システムについて説明するための図面である。
【図３】本発明の一実施形態によるキャッシュメモリ・システムの構成を示すブロック図である。
【図４】本発明の一実施形態によるキャッシュメモリについて説明するための図面である。
【図５】本発明の一実施形態によるキャッシュメモリ・システムの動作方法について説明するために参照される図面である。
【図６】本発明の一実施形態によるキャッシュメモリ・システムにおいて、キャッシュメモリを複数のパーティションに分割する方法について説明するために参照される図面である。
【図７】本発明の一実施形態によるキャッシュメモリ・システムにおいて、キャッシュメモリを複数のパーティションに分割する方法について説明するために参照される図面である。
【図８】本発明の一実施形態によるキャッシュメモリ・システムの動作方法を示すフローチャートである。
【図９】典型的な実施例に従って、キャッシュメモリを図８の複数のパーティションに分割するオペレーションに係るフローチャートである。
【図１０】典型的な実施例に従って、キャッシュメモリを図８の複数のパーティションに分割するオペレーションに係るフローチャートである。
【発明を実施するための形態】
【００３４】
実施形態において使用される用語は、本発明での機能を考慮しながら、可能な限り現在広く使用される一般的な用語を選択したが、それは、当業者の意図、判例または新たな技術の出現などによっても異なる。また、特定の場合、出願人が任意に選定した用語もあり、その場合、当該発明の説明部分において、詳細にその意味を記載する。従って、本発明で使用される用語は、単純な用語の名称ではない、その用語が有する意味と、本発明の全般にわたる内容とを基に定義されなければならない。
明細書全体において、ある部分がある構成要素を「含む」とするとき、それは、特別に反対となる記載がない限り、他の構成要素を除くものではなく、他の構成要素をさらに含んでもよいということを意味する。また、明細書に記載された「…部」、「…モジュール」のような用語は、少なくとも１つの機能や動作を処理する単位を意味し、それは、ハードウェアまたはソフトウェアによって具現化されたり、あるいはハードウェアとソフトウェアとの結合によって具現化されたりもする。
以下、添付した図面を参照し、本発明の実施形態について、本発明が属する技術分野における当業者が、容易に実施することができるように詳細に説明する。しかし、本発明は、さまざまに異なる形態に具現化され、ここで説明する実施形態に限定されるものではない。
【００３５】
以下、図面を参照しつつ、本発明の実施形態について詳細に説明する。
【００３６】
図１は、三次元イメージのレンダリング過程を示す図面である。図１を参照すれば、三次元イメージのレンダリング過程は、オペレーションＳ１１ないしオペレーションＳ１７を含んでもよい。また、図１の下端の図形は、各段階において、頂点（vertex）またはピクセルの処理を概念的に示している。
【００３７】
オペレーションＳ１１は、映像を示す頂点を生成する段階である。頂点は、映像に含まれたオブジェクト（object）を示すために生成される。
【００３８】
オペレーションＳ１２は、生成された頂点をシェーディング（shading）する段階である。頂点シェーダ（vertex  shader）は、オペレーションＳ１１で生成された頂点の色を指定し、頂点に対するシェーディングを行うことができる。
【００３９】
オペレーションＳ１３は、プリミティブ（primitives）を生成する段階である。プリミティブは、点、線または頂点から形成される多角形（polygon）を示す。一例として、プリミティブは、頂点を連結して形成された三角形を示すこともできる。
【００４０】
オペレーションＳ１４は、プリミティブをラスタ化（rasterization）する段階である。プリミティブのラスタ化は、プリミティブを複数のフラグメント（fragments）に分割することを示す。フラグメントは、プリミティブを構成する単位であり、映像処理を行うための基本単位でもある。プリミティブは、頂点に係わる情報のみを含む。従って、ラスタ化する段階において、頂点と頂点との間のフラグメントを生成するとき、補間（interpolation）が行われる。
【００４１】
オペレーションＳ１５は、ピクセルをシェーディングする段階を示す。図１では、ピクセル単位でシェーディングが行われるように図示されているが、フラグメント単位でもシェーディングが行われる。例えば、ピクセルまたはフラグメントのシェーディングは、ピクセルまたはフラグメントの色を指定するものである。
【００４２】
オペレーションＳ１６は、ラスタ・オペレーション段階を示す。ラスタ・オペレーション段階においては、カラーブレンディング、深さ検査などを行うことにより、シェーディングされたピクセルの情報に基づき、ラスタイメージ（ピクセルまたはサンプル）を生成する。生成されたラスタイメージは、フレームバッファ（frame  buffer）に出力される。
【００４３】
オペレーションＳ１７は、フレームバッファに保存されたフレームを表示する段階を示す。オペレーションＳ１１ないしオペレーションＳ１６を介して生成されたフレームは、フレームバッファに保存される。フレームバッファに保存されたフレームは、ディスプレイ装置を介して表示される。
【００４４】
図２は、一実施形態によるピクセルシェーディング処理システムについて説明するための図面である。
【００４５】
一実施形態によるピクセルシェーディング処理システムは、図１で説明したオペレーションＳ１５のピクセルシェーディングを行うことができる。図２では、説明の便宜のために、一実施形態によるキャッシュメモリ・システムが、ピクセルシェーディング処理システムに適用される例を図示している。ただし、それに限定されるものではなく、一実施形態によるキャッシュメモリ・システムは、レンダリング過程のうち、テクスチャデータを必要とする演算を処理するシステムには、いずれも適用される。
【００４６】
また、以下では、一実施形態によるキャッシュメモリ・システムが、ピクセルシェーディングに利用される一例について図示して説明するが、それに限定されるものではなく、一実施形態によるキャッシュメモリ・システムは、レンダリング演算のうち任意のシェーディングにも利用される。
【００４７】
図２を参照すれば、ピクセルシェーディング処理システムは、グラフィックス処理装置（ＧＰＵ（graphics  processing  unit）１０及びテクスチャメモリ２００を含んでもよく、グラフィックス処理装置１０は、ピクセルシェーダ・コア５０及びキャッシュメモリ・システム１００を含んでもよい。また、システムバス６０には、キャッシュメモリ・システム１００のラインと、テクスチャメモリ２００のラインとが連結される。
図２では、説明の便宜のために、グラフィックス処理装置１０がピクセルシェーダ・コア５０及びキャッシュメモリ・システム１００だけ含む場合を図示しているが、それに限定されるものではなく、グラフィックス処理装置１０は、図１に説明した各段階を遂行するための他の構成要素をさらに含んでもよい。
【００４８】
また、図２では、キャッシュメモリ・システム１００が、ピクセルシェーダ・コア５０と別途に位置する場合を図示しているが、それに限定されるものではなく、キャッシュメモリ・システム１００は、ピクセルシェーダ・コア５０と同一の１つのチップ内に含まれてもよい。
【００４９】
ピクセルシェーダ・コア５０は、三次元イメージ・レンダリング時、ピクセルの色相値を決定するピクセルシェーディングを行うことができる。ピクセルシェーダ・コア５０は、ピクセルの色相値決定に使用されるテクスチャ（texture）データを要請するため、テクスチャメモリ２００にアクセスする前に、まず、キャッシュメモリ・システム１００にアクセスする。ピクセルシェーダ・コア５０は、キャッシュメモリ・システム１００に、互いに異なる種類のテクスチャデータを要請することができる。例えば、ピクセルシェーダ・コア５０が遂行する１つのシェーダ・プログラムは、多様な種類のテクスチャを必要とする。
【００５０】
キャッシュメモリ・システム１００にピクセルシェーダ・コア５０が要請したデータや命令（以下、ターゲットデータとする）が存在する場合、キャッシュヒット（cache  hit）による動作が行われる。キャッシュヒット時には、キャッシュメモリ・システム１００から出力されたキャッシュデータ（ターゲットデータ）がピクセルシェーダ・コア５０に出力される。
【００５１】
ピクセルシェーダ・コア５０が、テクスチャメモリ２００より、キャッシュメモリ・システム１００にまずアクセスする理由は、頻繁に使用されるテクスチャメモリ２００のデータ（テクスチャデータ）の場合、キャッシュメモリ・システム１００に保存されている確率が高いからである。従って、テクスチャメモリ２００より、キャッシュメモリ・システム１００にまずアクセスすることにより、データ伝送速度を向上させることができる。
【００５２】
一方、キャッシュメモリ・システム１００に、ターゲットデータが存在しない場合には、キャッシュミス（cache  miss）による動作が行われる。すなわち、その場合、キャッシュメモリ・システム１００は、メインメモリ２００にアクセスし、メインメモリ２００から出力されたデータは、前記システムバス６０を経て、キャッシュメモリ・システム２００に印加される。そのとき、キャッシュメモリ・システム１００は、既存に保存されているテクスチャデータのうちいずれか一つを削除し、テクスチャメモリ２００から出力されたデータを保存することができる。
【００５３】
図３は、一実施形態によるキャッシュメモリ・システムの構成を示すブロック図である。図３を参照すれば、一実施形態によるキャッシュメモリ・システム１００は、パーティション構成部１１０、キャッシュメモリ１２０及びコントローラ１３０を含んでもよい。
【００５４】
キャッシュメモリ１２０は、タグメモリとデータメモリとを含んでもよい。データメモリは、テクスチャメモリ２００に保存されているテクスチャデータの一部データ（キャッシュデータ）を保存する。すなわち、キャッシュデータは、テクスチャメモリ２００に保存されているテクスチャデータのうちいずれか一つと同一である。タグメモリは、データメモリに保存されたキャッシュデータにそれぞれ対応するタグデータを保存することができる。タグデータは、キャッシュデータが保存されているテクスチャメモリ２００の実際アドレスを示すことができる。タグメモリとデータメモリとの構造については、以下、図４を参照して詳細に説明する。
【００５５】
図４は、一実施形態によるキャッシュメモリ１２０について説明するための図面である。図４を参照すれば、タグメモリとデータメモリは、少なくとも１つのセット１２３を含んでよい。キャッシュメモリ１２０は、複数のウェイ（way）を有し、ウェイを示す少なくとも１つのバンク（bank）１２５を含んでもよい。また、キャッシュメモリ１２０のロウ（row）は、セットを意味し、カラム（column）は、バンクを意味する。
【００５６】
図４は、８個のウェイを有する８ウェイセット関連キャッシュメモリの構造を示す。図４に図示されているように、キャッシュメモリ１２０が８ウェイセット関連キャッシュメモリから構成される場合、キャッシュメモリ１２０は、８個のバンク（bank  ０ないしbank  ７を含む。また、図４のキャッシュメモリ１２０は、８個のセットを含み、８個のセットは、インデックスindex  ０ないしindex  ７によって区分される。１つのセット１２３は、８個のキャッシュデータ（第１キャッシュデータないし第８キャッシュデータ）と、８個のキャッシュデータそれぞれのアドレスを示す８個のタグデータ（第１タグデータないし第８タグデータ）とを含んでもよい。また、８個のタグデータは、それぞれ第１ウェイないし第８ウェイに対応する。
【００５７】
一方、キャッシュメモリ１２０は、複数のパーティションを含んでもよく、パーティションは、少なくとも１つのバンクを含んでもよい。また、複数のパーティションは、パーティションＩＤ（identification）によって区分される。例えば、図４のキャッシュメモリは、４個のパーティションを有し、パーティションそれぞれは，パーティションＩＤ（例えば、Part  ０、Part  １、Part  ２、Part  ３）によって区分される。
【００５８】
一方、コントローラ１３０は、外部から要請されるテクスチャデータのパーティションＩＤを受信し、当該パーティションに、要請されたテクスチャデータが保存されているか否かということを判断することができる。
【００５９】
図４を参照すれば、コントローラ１３０は、外部（例えば、ピクセルシェーダ・コア５０）から要請されるテクスチャデータのパーティションＩＤを受信することができる。パーティションＩＤが受信されれば、コントローラ１３０は、パーティションＩＤに対応するパーティションに、要請されたテクスチャデータが保存されているか否かということを判断することができる。それについては、図５を参照して詳細に説明する。また、以下では、説明の便宜のために、受信したパーティションＩＤに対応するパーティションが第１パーティション（Part  ０）であるとする。
【００６０】
図５は、本発明の一実施形態によるキャッシュメモリ・システム１００の動作方法について説明するために参照される図面である。図５を参照すれば、キャッシュメモリ・システム１００は、要請されるテクスチャデータのアドレスビットを受信することができる。そのとき、アドレスビットは、図５に図示されているように、タグアドレス（Tag  add）とセットアドレス（Set  add）とを含んでもよい。そのとき、セットアドレス（Set  add）は、キャッシュメモリ１２０のロウアドレスを示すデータである。すなわち、セットアドレス（Set  add）は、キャッシュメモリ１２０に含まれる複数のセットのうちいずれか１つのセットを示す。
【００６１】
コントローラ１３０は、タグ比較部１３５を含み、タグ比較部１３５は、第１パーティションPart０内の複数のセットのうち、セットアドレス（Set  add）が示すセット（index  ３）３２０に含まれるタグデータそれぞれをタグアドレスと比較し、一致するか否かということを判断する。
【００６２】
コントローラ１３０は、タグアドレス（Tag  add）がタグデータのうちいずれか一つと一致する場合、キャッシュヒットと判断する。すなわち、キャッシュヒットは、外部から要請されたテクスチャデータ（ターゲットデータ）が、当該パーティション内に保存されているということを示す。コントローラ１３０がキャッシュヒットと判断した場合、タグアドレス（Tag  add）と一致するタグデータに対応するキャッシュデータが、外部（例えば、ピクセルシェーダ・コア５０）に出力される。コントローラ１３０は、キャッシュメモリ１２０に保存されているキャッシュデータを読み取り、外部に出力することができる。
【００６３】
一方、コントローラ１３０は、タグデータのうちいずれか一つもタグアドレスと一致しない場合、キャッシュミスと判断する。すなわち、キャッシュミスは、外部から要請されたテクスチャデータが、当該パーティション内に保存されていないということを示す。コントローラ１３０がキャッシュミスと判断した場合、コントローラ１３０は、メインメモリ２００にキャッシュミス信号を出力し、外部から要請されたテクスチャデータ（ターゲットデータ）を要請することができる。
【００６４】
コントローラ１３０は、当該パーティションに含まれた複数のセットのうち、セットアドレス（Set  add）が示すセットに含まれたキャッシュデータのうちいずれか一つを削除し、テクスチャメモリ２００から受信したテクスチャデータでアップデートすることができる。
【００６５】
一方、パーティション構成部１３０は、複数のパーティションを決定することができる。パーティション構成部１３０は、ピクセルシェーディング時に必要なテクスチャの個数と、キャッシュメモリ１２０に含まれたバンクの個数とを比較し、比較結果によって、複数のテクスチャにバンクを割り当て、パーティションを決定することができる。  それについては、以下、図６及び図７を参照して詳細に説明する。図６及び図７は、一実施形態によるキャッシュメモリ・システムにおいて、キャッシュメモリを、複数のパーティションに分割する方法について説明するために参照される図面である。
【００６６】
図６は、バンクの個数が、必要なテクスチャの個数より多い場合、キャッシュメモリを複数のパーティションに分割する方法について説明するための図面である。
【００６７】
図６を参照すれば、バンクの個数が、必要なテクスチャの個数より多い場合、パーティション構成部１１０は、複数のテクスチャそれぞれに１つのバンクを割り当てることができる。例えば、ピクセルシェーディング時、３個のテクスチャ（第１テクスチャ４１０、第２テクスチャ４２０、第３テクスチャ４３０）が必要であり、テクスチャメモリ２００には、第１テクスチャ４１０ないし第３テクスチャ４３０が保存されている。また、キャッシュメモリ１２０は、４ウェイ・キャッシュメモリから構成され、第１バンクないし第４バンク（bank  ０、bank  １、bank  ２、および、bank  ３）を含んでもよい。かような場合、パーティション制御部１１０は、第１テクスチャ４１０に第１バンクbank  ０を割り当て、第２テクスチャ４２０に第２バンクbank  １を割り当て、第３テクスチャ４３０に第３バンクbank  ２を割り当てる。
【００６８】
また、パーティション構成部１１０は、割り当てられていないバンクを複数のテクスチャのうちいずれか一つに追加して割り当てることができる。例えば、割り当てられていない第４バンクbank  ３を、第１テクスチャ４１０ないし第３テクスチャ４３０のうちいずれか一つに追加して割り当てることができ、複数のテクスチャのうちコンフリクトミス（conflict  miss）の発生確率が高いテクスチャに、残りのバンクを追加して割り当てることができる。コンフリクトミスは、キャッシュメモリの１つのセットにマッピングされたデータが多く、ウェイの数が不足する場合に発生するミスを意味する。そのとき、ウェイの数を増加させれば、コンフリクトミスの発生確率が低下する。
【００６９】
一方、パーティション構成部１１０は、第１テクスチャ４１０ないし第３テクスチャ４３０のうちミップマップされていないテクスチャ（non-mipmapped  texture）を検出し、検出されたテクスチャに、第４バンクbank  ３を追加して割り当てることができる。ミップマップを使用するテクスチャ（mipmapped  texture）は、本来サイズのテクスチャ以外に、さらに横縦のサイズを大きさをそれぞれ１／２、１／４、１／８ほど縮めたテクスチャを含んでもよい。ミップマップを使用するテクスチャをピクセルシェーディングに利用する場合、シェーディングするピクセルの大きさに、適切な大きさのテクスチャを使用し、キャッシュの効率（キャッシュヒット確率）を上昇させることができる。しかし、ミップマップされていないテクスチャの場合、同一セットにマッピングされるテクスチャデータの数がミップマップされたテクスチャより多くなり、コンフリクトミス発生確率が上昇する。それにより、パーティション構成部１１０は、ミップマップされていないテクスチャに、バンクを追加して割り当てることができる。
【００７０】
また、パーティション構成部１１０は、現在のピクセルシェーディング時、利用されるシェーダ・プログラムと同一シェーダ・プログラムを利用した以前ピクセルシェーディングの遂行結果に基づき、テクスチャのアクセスパターンを分析することができる。パーティション構成部１１０は、アクセスパターンの分析結果、コンフリクトミスが最も多く発生するテクスチャに、残りのバンクを割り当てることができる。例えば、第１テクスチャ４１０ないし第３テクスチャ４３０において、第３テクスチャ４３０に係わるデータにアクセスするとき、コンフリクトミスが最も多く発生した場合、パーティション構成部１１０は、第４バンク（bank  ３）を第３テクスチャ４３０に割り当てることができる。
【００７１】
また、パーティション構成部１１０は、ピクセルシェーディングの遂行時、テクスチャのアクセスパターンをリアルタイムでモニタリングすることができる。パーティション構成部１１０は、アクセスパターンのモニタリング結果、コンフリクトミスが最も多く発生するテクスチャに、残りのバンクを割り当てることができる。例えば、第１テクスチャ４１０ないし第３テクスチャ４３０において、第３テクスチャ４３０に含まれるテクスチャデータにアクセスするとき、コンフリクトミスが最も多く発生する場合、パーティション構成部１１０は、第４バンク（bank  ３）を第３テクスチャ４３０に割り当てることができる。
【００７２】
パーティション構成部１１０は、キャッシュメモリ１２０に含まれる全てのバンクが複数のテクスチャのうちいずれか一つに割り当てられれば、１つのテクスチャに割り当てられた少なくとも１つのバンクを、１つのパーティションとして決定することができる。例えば、パーティション構成部１１０は、第１テクスチャ４１０に割り当てられた第１バンク（bank  ０）を、第１パーティション（Part０）として決定し、第２テクスチャ４２０に割り当てられた第２バンク（bank  １）を、第２パーティション（Part  １）として決定し、第３テクスチャ４３０に割り当てられた第３バンク（bank  ２）及び第４バンク（bank  ３）を、第３パーティション（Part２）として決定することができる。
【００７３】
図７は、必要なテクスチャの個数が、バンクの個数より多い場合、キャッシュメモリを複数のパーティションに分割する方法について説明するための図面である。図７を参照すれば、必要なテクスチャの個数が、バンクの個数より多い場合、パーティション構成部１１０は、複数のテクスチャのうち少なくとも２個のテクスチャに、同一バンクを割り当てることができる。
【００７４】
パーティション構成部１１０は、複数のテクスチャのうち、テクスチャ座標を共有しないテクスチャに、同一バンクを割り当てることができる。または、パーティション構成部１１０は、テクスチャサイズ（dimension）が異なるテクスチャに、同一バンクを割り当てることができる。
【００７５】
例えば、ピクセルシェーディング時、３個のテクスチャ（第１テクスチャ５１０、第２テクスチャ５２０、第３テクスチャ５３０）が必要である。また、キャッシュメモリは、２ウェイ・キャッシュメモリから構成され、第１バンク（bank  ０）及び第２バンク（bank  １）を含んでもよい。かような場合、パーティション構成部１１０は、３個のテクスチャのうち２個のテクスチャに、同一バンクを割り当てることができる。
【００７６】
図７を参照すれば、第１テクスチャ５１０と第２テクスチャ５２０は、テクスチャ座標を一部共有し、第１テクスチャ５１０及び第３テクスチャ５３０も、テクスチャ座標を一部共有する。しかし、第２テクスチャ５２０と第３テクスチャ５３０は、テクスチャ座標を共有しない。すなわち、第２テクスチャ５２０と第３テクスチャ５３０は、互いに同一座標を含まない。それにより、パーティション構成部１１０は、第１テクスチャ５１０に、第１バンク（bank  ０）を割り当て、第２テクスチャ５２０及び第３テクスチャ５３０に、第２バンク（bank  １）を割り当てることができる。
【００７７】
パーティション構成部１１０は、それぞれのバンクを、１つのパーティションとして決定することができる。例えば、パーティション制御部１１０は、第１テクスチャ５１０に割り当てられた第１バンク（bank  ０）を、第１パーティション（Part０）として決定し、第２テクスチャ５２０及び第３テクスチャ５３０に割り当てられた第２バンク（bank  １）を、第２パーティション（Part  １）として決定することができる。すなわち、第２テクスチャ５２０及び第３テクスチャ５３０は、同一パーティションに対応する。
【００７８】
前述のように、テクスチャに対応するパーティションが決定されれば、テクスチャデータは、当該パーティションにマッピングされ、キャッシュメモリに保存される。例えば、第１テクスチャに対応するパーティションが第１パーティションとして決定され、第２テクスチャに対応するパーティションが第２パーティションとして決定される場合、第１テクスチャデータは、第１パーティションにマッピングされ、キャッシュメモリに保存され、第２テクスチャデータは、第２パーティションにマッピングされ、キャッシュメモリに保存される。
【００７９】
図８は、一実施形態によるキャッシュメモリ・システムの動作方法を示すフローチャートである。図８を参照すれば、キャッシュメモリ・システムは、オペレーションＳ６１０において、キャッシュメモリを、複数のパーティションに分割することができる。
【００８０】
例えば、キャッシュメモリ・システム１００は、キャッシュメモリ１２０に含まれる少なくとも１つのバンクを、テクスチャメモリに保存された複数のテクスチャのうち少なくとも一つに割り当て、キャッシュメモリ１２０を、複数のパーティションに分割することができる。
【００８１】
キャッシュメモリ・システムは、ピクセルシェーディング時、必要なテクスチャの個数と、キャッシュメモリに含まれたバンクの個数とを比較することができる。例えば、ピクセルシェーダ・コア５０が遂行する１つのシェーダ・プログラムは、多様な種類のテクスチャを必要とし、シェーダ・プログラムごとに必要なテクスチャの種類が異なる。キャッシュメモリ・システム１００は、ピクセルシェーダ・コア５０から、シェーダ・プログラムで使用するテクスチャの種類、座標情報などを受信することができる。それにより、キャッシュメモリ・システム１００は、ピクセルシェーディング時に必要なテクスチャの個数を知ることができる。それにより、キャッシュメモリ・システム１００は、必要なテクスチャの個数と、キャッシュメモリに含まれたバンクの個数とを比較することができる。
【００８２】
キャッシュメモリ・システム１００は、比較結果に基づき、複数のテクスチャにバンクを割り当て、パーティションを決定することができる。それについては、図９及び図１０を参照して詳細に説明する。
【００８３】
再び図８を参照すれば、キャッシュメモリ・システムは、オペレーションＳ６２０において、要請されるテクスチャデータのパーティションＩＤを受信することができる。
【００８４】
例えば、受信したパーティションＩＤは、要請されるテクスチャデータのテクスチャ種類を示し、キャッシュメモリ・システムに含まれた複数のパーティションのうちいずれか一つに対応する。また、キャッシュメモリ・システム１００は、要請されるテクスチャデータのアドレスビットを受信することができる。アドレスビットは、タグアドレスとセットアドレスとを含んでもよい。
【００８５】
キャッシュメモリ・システムは、オペレーションＳ６３０において、当該パーティションに、要請されたテクスチャデータが保存されているか否かということを判断することができる。
キャッシュメモリ・システム１００は、受信したパーティションＩＤに対応するパーティションに含まれた複数のセットのうち、セットアドレスが示すセットに含まれたタグデータそれぞれに対して、タグアドレスと一致するか否かということを判断することができる。キャッシュメモリ・システム１００は、タグアドレスがタグデータのうちいずれか一つと一致する場合、要請されたテクスチャデータが、当該パーティションに保存されていると判断する（キャッシュヒット）。
【００８６】
一方、タグデータのうちいずれか一つもタグアドレスと一致しない場合、キャッシュメモリ・システム１００は、要請されたテクスチャデータが、当該パーティションに保存されていないと判断する（キャッシュミス）。
【００８７】
キャッシュメモリ・システムは、オペレーションＳ６４０において、判断結果により、要請されたテクスチャデータを外部に出力することができる。
【００８８】
例えば、キャッシュヒットと判断された場合、キャッシュメモリ・システム１００は、タグアドレスと一致するタグデータに対応するキャッシュデータを、外部（例えば、ピクセルシェーダ・コア５０）に出力することができる。一方、キャッシュミスと判断された場合、キャッシュメモリ・システム１００は、テクスチャメモリ２００にキャッシュミス信号を出力し、外部から要請されたテクスチャデータ（ターゲットデータ）をテクスチャメモリ２００に要請することができる。それにより、キャッシュメモリ・システム１００は、テクスチャメモリ２００から、新たなテクスチャデータを受信し、受信したテクスチャデータを外部に出力することができる。また、キャッシュメモリ・システム１００は、当該パーティションに含まれた複数のセットのうち、セットアドレスが示すセットに含まれたキャッシュデータのうちいずれか一つを削除し、テクスチャメモリ２００から受信したテクスチャデータでアップデートすることができる。
【００８９】
図９は、図８のオペレーションＳ６１０の一実施形態について説明するためのフローチャートである。さらに具体的に説明すれば、図９は、必要なテクスチャの個数がキャッシュメモリに含まれたバンクの個数より少ない場合、キャッシュメモリを複数のパーティションに分割する方法を示すフローチャートである。
【００９０】
図９を参照すれば、キャッシュメモリ・システムは、複数のテクスチャそれぞれに、１つのバンクを割り当てることができる。
【００９１】
例えば、ピクセルシェーディング時、３個のテクスチャ（第１テクスチャ、第２テクスチャ、第３テクスチャ）が必要であり、キャッシュメモリ１２０は、４ウェイ・キャッシュメモリから構成され、第１バンクないし第４バンクを含む場合、第１テクスチャに第１バンクを割り当て、第２テクスチャに第２バンクを割り当て、第３テクスチャに第３バンクを割り当てることができる。
【００９２】
キャッシュメモリ・システム１００は、オペレーションＳ７２０において、割り当てられていないバンクを複数のテクスチャのうち少なくとも一つに追加して割り当てることができる。
【００９３】
例えば、キャッシュメモリ・システム１００は、複数のテクスチャのうちミップマップされていないテクスチャを検出し、検出されたテクスチャに割り当てられていないバンクを追加して割り当てることができる。
【００９４】
また、キャッシュメモリ・システム１００は、現在ピクセルシェーディングに利用されるシェーダ・プログラムと同一シェーダ・プログラムを利用した以前ピクセルシェーディングの遂行結果に基づき、テクスチャのアクセスパターンを分析することができる。キャッシュメモリ・システム１００は、アクセスパターンの分析結果、コンフリクトミスが最も多く発生するテクスチャに、残りのバンクを割り当てることができる。
【００９５】
また、キャッシュメモリ・システム１００は、ピクセルシェーディング遂行時、テクスチャデータのアクセスパターンをリアルタイムでモニタリングし、コンフリクトミスが最も多く発生するテクスチャに、残りのバンクを割り当てることができる。
【００９６】
キャッシュメモリ・システム１００は、オペレーションＳ７３０において、１つのテクスチャに割り当てられた少なくとも１つのバンクを、１つのパーティションとして決定することができる。
【００９７】
図１０は、図８のオペレーションＳ６１０の一実施形態について説明するためのフローチャートである。さらに具体的に説明すれば、図１０は、必要なテクスチャの個数がキャッシュメモリに含まれたバンクの数より多い場合、キャッシュメモリを複数のパーティションに分割する方法を示すフローチャートである。
【００９８】
図１０を参照すれば、キャッシュメモリ・システムは、オペレーションＳ８１０において、複数のテクスチャのうち少なくとも２個のテクスチャに、同一バンクを割り当てることができる。
【００９９】
キャッシュメモリ・システム１００は、複数のテクスチャのうち、テクスチャ座標を共有しないテクスチャに、同一バンクを割り当てることができる。または、キャッシュメモリ・システム１００は、テクスチャサイズが異なるテクスチャに、同一バンクを割り当てることができる。
【０１００】
キャッシュメモリ・システム１００は、オペレーションＳ８２０において、それぞれのバンクを、１つのパーティションとして決定することができる。
【０１０１】
本発明によるキャッシュメモリ・システム及びその動作方法は、前述のような実施形態の構成及び方法が限定されるように適用されるものではなく、前記実施形態は、多様な変形がなされるように、各実施形態の全部または一部が、選択的に組み合わされて構成されてもよい。
【０１０２】
一方、本発明のキャッシュメモリ・システム及びその動作方法は、コンピュータで読み取り可能な記録媒体に、コンピュータで読み取り可能なコードとして具現化することが可能である。コンピュータで読み取り可能な記録媒体は、コンピュータシステムによって読み取り可能なデータが保存される全ての種類の記録装置を含む。コンピュータで読み取り可能な記録媒体の例としては、ＲＯＭ（read  only  memory）、ＲＡＭ（random  access  memory）、ＣＤ（compact  disc）−ＲＯＭ、磁気テープ、フロッピー（登録商標）ディスク、光データ保存装置などがあり、またインターネットを介した伝送のようなキャリアウェーブの形態で具現化されるものも含む。また、コンピュータで読み取り可能な記録媒体は、ネットワークに連結されたコンピュータシステムに分散され、分散方式でプロセッサで読み取り可能なコードが保存されて実行される。
【０１０３】
以上、本発明の実施形態について図示して説明したが、本発明は、前述の特定実施形態に限定されるものではなく、特許請求の範囲で請求する本発明の要旨を外れることなしに、当該発明が属する技術分野で当業者によって多様な変形実施が可能であるということは言うまでもなく、かような変形実施は、本発明の技術的思想や展望から個別的に理解されらるものではない。
【産業上の利用可能性】
【０１０４】
本発明のキャッシュメモリ・システム及びその動作方法は、例えば、データ処理関連の技術分野に効果的に適用可能である。
【符号の説明】
【０１０５】
１０    グラフィック処理装置
５０    ピクセルシェーダ・コア
６０    システムバス
１００  キャッシュメモリ・システム
１１０  パーティション構成部
１２０  キャッシュメモリ
１２３，３２０  セット
１２５  バンク
１３０  コントローラ
１３５  タグ比較部
２００  テクスチャメモリ
３２０  セット
４１０，５１０  第１テクスチャ
４２０，５２０  第２テクスチャ
４３０，５３０  第３テクスチャ
【図１】
2016085729.tif 000003
【図２】
2016085729.tif 000004
【図３】
2016085729.tif 000005
【図４】
2016085729.tif 000006
【図５】
2016085729.tif 000007
【図８】
2016085729.tif 000008
【図９】
2016085729.tif 000009
【図１０】
2016085729.tif 000010
【図６】
2016085729.tif 000011
【図７】
2016085729.tif 000012