(57)【要約】      （修正有）【課題】キャッシュミス確率を低減させるキャッシュメモリシステムを提供する。【解決手段】キャッシュメモリシステム２００は、メインメモリに保存されたメインデータのうち一部に該当するキャッシュデータ及びキャッシュデータそれぞれに対応する優先順位データを保存するキャッシュメモリ２３０と、メインデータのアクセス頻度情報を含む優先順位テーブルを保存するテーブル保存部２１０と、メインデータのうち少なくとも一つに対する要請がある場合、キャッシュメモリに要請に対応するキャッシュデータが保存されているかどうかを判別し、判別結果によって、優先順位データに基づいてキャッシュデータのうちいずれか一つを削除し、新たなデータにアップデートするコントローラ２２０とを備え、優先順位データは、アクセス頻度情報に基づいて定められる。【選択図】図２
2015069641.tif 000002
【特許請求の範囲】
【請求項１】
メインメモリに保存されたメインデータのうち一部に該当するキャッシュデータ及び前記キャッシュデータそれぞれに対応する優先順位データを保存するキャッシュメモリと、
前記メインデータのアクセス頻度情報を含む優先順位テーブルを保存するテーブル保存部と、
前記メインデータのうち少なくとも一つに対する要請がある場合、前記キャッシュメモリに前記要請に対応するキャッシュデータが保存されているかどうかを判別し、前記判別結果によって、前記優先順位データに基づいて前記キャッシュデータのうちいずれか一つを削除し、新たなデータにアップデートするコントローラと、を備え、
前記優先順位データは、前記アクセス頻度情報に基づいて定められることを特徴とするキャッシュメモリシステム。
【請求項２】
前記キャッシュメモリは、前記キャッシュデータそれぞれに対応するタグデータを保存し、
前記キャッシュメモリは、複数のデータセットを含み、
前記データセットは、前記キャッシュデータ、前記タグデータ及び前記優先順位データを含むことを特徴とする請求項１に記載のキャッシュメモリシステム。
【請求項３】
前記コントローラは、前記要請されるメインデータのタグアドレス及びセットアドレスを受信し、
前記セットアドレスが示すデータセットに含まれる前記タグデータを前記タグアドレスと比較し、前記要請に対応するキャッシュデータが保存されているかどうかを判別することを特徴とする請求項２に記載のキャッシュメモリシステム。
【請求項４】
前記比較結果、前記複数のタグデータのうちいずれか一つと前記タグアドレスとが一致する場合、
前記コントローラはキャッシュヒットと判断し、前記一致するタグデータに対応するキャッシュデータを外部に出力することを特徴とする請求項３に記載のキャッシュメモリシステム。
【請求項５】
前記比較結果、前記複数のタグデータのうちいずれか一つが前記タグアドレスと一致しない場合、
前記コントローラは、
キャッシュミスと判断し、前記メインメモリの前記タグアドレスが示す領域から前記新たなデータを受信することを特徴とする請求項３に記載のキャッシュメモリシステム。
【請求項６】
前記優先順位テーブルは、前記メインデータを示すデータＩＤ及び前記メインデータのアクセス回数を含み、
前記コントローラは、前記メインデータのアクセス回数が多いほど前記メインデータと同じ前記キャッシュデータの優先順位が高くなるように、前記優先順位データを定めることを特徴とする請求項１〜５のうち何れか一項に記載のキャッシュメモリシステム。
【請求項７】
前記コントローラは、
前記要請されたメインデータに対応するデータＩＤを受信し、前記受信したデータＩＤに対応するメインデータの前記アクセス回数を増加させて、前記優先順位テーブルをアップデートすることを特徴とする請求項６に記載のキャッシュメモリシステム。
【請求項８】
前記コントローラは、
前記アップデートされた優先順位テーブルに基づいて、前記優先順位データをアップデートすることを特徴とする請求項７に記載のキャッシュメモリシステム。
【請求項９】
前記キャッシュメモリシステムは、
前記キャッシュメモリで削除されるキャッシュデータを候補データと保存する臨時保存部をさらに備え、
前記コントローラは、
前記削除されるキャッシュデータに対応する優先順位データに基づいて、前記削除されるキャッシュデータを候補データと保存するかどうかを定めることを特徴とする請求項１〜８のうち何れか一項に記載のキャッシュメモリシステム。
【請求項１０】
前記コントローラは、
テーブル変更要請を受信する場合、
前記優先順位テーブルを外部メモリに保存し、変更された優先順位テーブルを前記テーブル保存部に保存することを特徴とする請求項１〜９のうち何れか一項に記載のキャッシュメモリシステム。
【請求項１１】
前記要請されたメインデータが、第Ｎ＋１フレーム映像のピクセルの処理に必要なデータである場合、
前記優先順位テーブルの初期アクセス頻度情報は、第Ｎフレーム映像のピクセル処理時に収集されたアクセス頻度情報を含むことを特徴とする請求項１〜１０のうち何れか一項に記載のキャッシュメモリシステム。
【請求項１２】
メインデータのうち少なくとも一つに対する要請を受信する段階と、
前記要請されたメインデータがキャッシュメモリに保存されているかどうかを判別する段階と、
前記判別結果によって、前記キャッシュメモリに保存されているキャッシュデータそれぞれに対応する優先順位データに基づいて、前記キャッシュデータのうちいずれか一つを選択する段階と、
前記選択されたキャッシュデータを削除して新たなデータにアップデートする段階と、を含み、
前記優先順位データは、前記キャッシュメモリに保存されている優先順位テーブルのアクセス頻度情報に基づいて定められることを特徴とするキャッシュメモリシステムの動作方法。
【請求項１３】
前記要請を受信する段階は、
前記要請されるメインデータのタグアドレス及びセットアドレスを受信する段階をさらに含み、
前記判別する段階は、
前記セットアドレスが示す前記キャッシュメモリのデータセットに含まれる複数のタグデータを前記タグアドレスと比較し、前記要請に対応するキャッシュデータが保存されているかどうかを判別する段階を含むことを特徴とする請求項１２に記載のキャッシュメモリシステム。
【請求項１４】
前記動作方法は、
前記メインデータのアクセス回数が多いほど前記メインデータと同じ前記キャッシュデータの優先順位が高くなるように、前記優先順位データを定める段階をさらに含むことを特徴とする請求項１２〜１３のうち何れか一項に記載のキャッシュメモリシステムの動作方法。
【請求項１５】
前記要請を受信する段階は、
前記メインデータに対応するデータＩＤを受信する段階を含み、
前記動作方法は、
前記受信したデータＩＤに対応するメインデータの前記アクセス回数を増加させ、前記優先順位テーブルをアップデートする段階をさらに含むことを特徴とする請求項１４に記載のキャッシュメモリシステムの動作方法。
【請求項１６】
前記動作方法は、
前記削除されるキャッシュデータに対応する優先順位データに基づいて、前記削除されるキャッシュデータを候補データと保存する段階をさらに含むことを特徴とする請求項１２〜１５のうち何れか一項に記載のキャッシュメモリシステムの動作方法。
【請求項１７】
前記動作方法は、
テーブル変更要請を受信する段階と、
前記優先順位テーブルを外部メモリに保存し、変更された優先順位テーブルを前記テーブル保存部に保存する段階をさらに含むことを特徴とする請求項１２〜１６のうち何れか一項に記載のキャッシュメモリシステムの動作方法。
【請求項１８】
メインメモリに保存されたメインデータのうち一部に該当するキャッシュデータ及び前記キャッシュデータそれぞれに対応する優先順位データを保存するキャッシュメモリと、
前記メインデータのアクセス頻度情報を含む優先順位テーブルを保存するテーブル保存部と、
前記メインデータのうち少なくとも一つに対する要請がある場合、前記キャッシュメモリに前記要請に対応するキャッシュデータが保存されているかどうかを判別し、前記判別結果によって、前記キャッシュデータのうちいずれか一つを削除して新たなデータにアップデートするコントローラと、
前記削除されるキャッシュデータに対応する優先順位データに基づいて、前記削除されるキャッシュデータを候補データと保存する臨時保存部と、を備え、
前記優先順位データは、前記アクセス頻度情報に基づいて定められることを特徴とするキャッシュメモリシステム。
【請求項１９】
前記コントローラは、
前記削除されるキャッシュデータの優先順位が既定の優先順位以上の場合、前記削除されるキャッシュデータを前記臨時保存部に前記候補データとして保存することを特徴とする請求項18に記載のキャッシュメモリシステム。
【請求項２０】
前記コントローラは、
前記要請されたメインデータが前記キャッシュメモリに存在しない場合、前記要請されたメインデータが前記臨時保存部に存在するかどうかを判別し、判別結果によって、前記候補データを出力するか、または前記メインメモリのメインデータを出力することを特徴とする請求項１８又は１９に記載のキャッシュメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、キャッシュメモリシステム及びその動作方法に係り、さらに具体的には、キャッシュミス確率を低減させるキャッシュメモリシステム及びその動作方法に関する。
【背景技術】
【０００２】
一般的にＣＰＵのような処理装置は、大容量の外部メモリに保存された命令語やデータを持ってきて処理する。大部分の大容量外部メモリの処理速度は、ＣＰＵに比べて非常に遅いため、動作速度を改善するためにキャッシュメモリシステムを使っている。
【０００３】
キャッシュメモリシステムは、ＣＰＵが最近アクセスしたデータを保存していて、ＣＰＵが同じデータを再び要求する場合、外部メモリをアクセスせずに高速のキャッシュメモリをアクセスさせることで、データ伝送速度を向上させる役割を行う。
【０００４】
ＣＰＵが要請したデータがキャッシュメモリに積載されている場合（キャッシュヒット、ｃａｃｈｅ  ｈｉｔ）には、キャッシュメモリのデータがＣＰＵに伝達され、ＣＰＵが要請したデータのない場合（キャッシュミス、ｃａｃｈｅ  ｍｉｓｓ）には、外部メモリのデータがＣＰＵに伝達される。
【０００５】
このようなキャッシュメモリは、マッピング方式によって、セット関連マッピング方式を用いるセット関連キャッシュメモリと、直接マッピング方式を用いる直接マップキャッシュメモリとで具現する。セット関連キャッシュメモリのセットの数、すなわち、サイズが１であるセット関連キャッシュメモリが直接マップキャッシュメモリであるといえ、セットサイズが１のセット関連キャッシュメモリを示す直接マップキャッシュメモリは、キャッシュメモリの最も単純な構造である。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明が解決しようとする課題は、キャッシュミス確率を低減させるキャッシュメモリシステム及びその動作方法を提供することである。
【課題を解決するための手段】
【０００７】
実施の形態によるキャッシュメモリシステムは、
メインメモリに保存されたメインデータのうち一部に該当するキャッシュデータ及び前記キャッシュデータそれぞれに対応する優先順位データを保存するキャッシュメモリと、
前記メインデータのアクセス頻度情報を含む優先順位テーブルを保存するテーブル保存部と、
前記メインデータのうち少なくとも一つに対する要請がある場合、前記キャッシュメモリに前記要請に対応するキャッシュデータが保存されているかどうかを判別し、前記判別結果によって、前記優先順位データに基づいて前記キャッシュデータのうちいずれか一つを削除し、新たなデータにアップデートするコントローラと、を備え、
前記優先順位データは、前記アクセス頻度情報に基づいて定められることを特徴とするキャッシュメモリシステムである。
【発明の効果】
【０００８】
キャッシュミス確率を低減させることができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の一実施形態によるグラフィックス処理システムを説明するための図面である。
【図２】本発明の一実施形態によるキャッシュメモリシステムを示すブロック図である。
【図３】本発明の一実施形態によるキャッシュメモリを説明するための図面である。
【図４】本発明の一実施形態によるキャッシュメモリシステムの動作方法を示すフローチャートである。
【図５】図４の動作方法を説明するために参照される図面である。
【図６】本発明の一実施形態によるアクセス頻度情報を収集する方法を示す図面である。
【図７】本発明の一実施形態によるキャッシュメモリシステムを示すブロック図である。
【図８】本発明の一実施形態によるキャッシュメモリシステムの動作方法を示すフローチャートである。
【図９】図８の動作方法を説明するために参照される図面である。
【発明を実施するための形態】
【００１０】
＜実施の形態の概要＞
本発明の一実施形態によるキャッシュメモリシステムは、メインメモリに保存されたメインデータのうち一部に該当するキャッシュデータ及び前記キャッシュデータそれぞれに対応する優先順位データを保存するキャッシュメモリと、前記メインデータのアクセス頻度情報を含む優先順位テーブルを保存するテーブル保存部と、前記メインデータのうち少なくとも一つに対する要請がある場合、前記キャッシュメモリに前記要請に対応するキャッシュデータが保存されているかどうかを判別し、前記判別結果によって、前記優先順位データに基づいて前記キャッシュデータのうちいずれか一つを削除し、新たなデータにアップデートするコントローラと、を備え、前記優先順位データは、前記アクセス頻度情報に基づいて定められることを特徴とする。
【００１１】
本発明の一実施形態によるキャッシュメモリは、前記キャッシュデータそれぞれに対応するタグデータを保存し、前記キャッシュメモリは、複数のデータセットを含み、前記データセットは、前記キャッシュデータ、前記タグデータ及び前記優先順位データを含むことを特徴とする。
【００１２】
本発明の一実施形態によるコントローラは、前記要請されるメインデータのタグアドレス及びセットアドレスを受信し、前記セットアドレスが示すデータセットに含まれる前記タグデータを前記タグアドレスと比較し、前記要請に対応するキャッシュデータが保存されているかどうかを判別することを特徴とする。
【００１３】
本発明の一実施形態によるコントローラは、前記比較結果、前記複数のタグデータのうちいずれか一つと前記タグアドレスとが一致する場合、前記コントローラはキャッシュヒットと判断し、前記一致するタグデータに対応するキャッシュデータを外部に出力する。
【００１４】
本発明の一実施形態によるコントローラは、前記比較結果、前記複数のタグデータのうちいずれか一つが前記タグアドレスと一致しない場合、前記コントローラは、キャッシュミスと判断し、前記メインメモリの前記タグアドレスが示す領域から前記新たなデータを受信することを特徴とする。
【００１５】
本発明の一実施形態による優先順位テーブルは、前記メインデータを示すデータＩＤ及び前記メインデータのアクセス回数を含み、前記コントローラは、前記メインデータのアクセス回数が多いほど前記メインデータと同じ前記キャッシュデータの優先順位が高くなるように、前記優先順位データを定めることを特徴とする。
【００１６】
本発明の一実施形態によるコントローラは、前記要請されたメインデータに対応するデータＩＤを受信し、前記受信したデータＩＤに対応するメインデータの前記アクセス回数を増加させて、前記優先順位テーブルをアップデートすることを特徴とする。
【００１７】
本発明の一実施形態による前記コントローラは、アップデートされた優先順位テーブルに基づいて、前記優先順位データをアップデートすることを特徴とする。
【００１８】
本発明の一実施形態によるキャッシュメモリシステムは、前記キャッシュメモリで削除されるキャッシュデータを候補データと保存する臨時保存部をさらに備え、前記コントローラは、前記削除されるキャッシュデータに対応する優先順位データに基づいて、前記削除されるキャッシュデータを候補データと保存するかどうかを定めることを特徴とする。
【００１９】
本発明の一実施形態によるコントローラは、テーブル変更要請を受信する場合、前記優先順位テーブルを外部メモリに保存し、変更された優先順位テーブルを前記テーブル保存部に保存することを特徴とする。
【００２０】
本発明の一実施形態による要請されたメインデータが、第Ｎ＋１フレーム映像のピクセルの処理に必要なデータである場合、前記優先順位テーブルの初期アクセス頻度情報は、第Ｎフレーム映像のピクセル処理時に収集されたアクセス頻度情報を含むことを特徴とする。
【００２１】
本発明の一実施形態によるキャッシュメモリシステムの動作方法は、メインデータのうち少なくとも一つに対する要請を受信する段階と、前記要請されたメインデータがキャッシュメモリに保存されているかどうかを判別する段階と、前記判別結果によって、前記キャッシュメモリに保存されているキャッシュデータそれぞれに対応する優先順位データに基づいて、前記キャッシュデータのうちいずれか一つを選択する段階と、前記選択されたキャッシュデータを削除して新たなデータにアップデートする段階と、を含み、前記優先順位データは、前記キャッシュメモリに保存されている優先順位テーブルのアクセス頻度情報に基づいて定められることを特徴とする。
【００２２】
本発明の一実施形態による要請を受信する段階は、前記要請されるメインデータのタグアドレス及びセットアドレスを受信する段階をさらに含み、前記判別する段階は、前記セットアドレスが示す前記キャッシュメモリのデータセットに含まれる複数のタグデータを前記タグアドレスと比較し、前記要請に対応するキャッシュデータが保存されているかどうかを判別する段階を含むことを特徴とする。
【００２３】
本発明の一実施形態によるキャッシュメモリシステムの動作方法は、前記比較結果、前記複数のタグデータのうちいずれか一つと前記タグアドレスとが一致する場合、キャッシュヒットと判断し、前記一致するタグデータに対応するキャッシュデータを外部に出力する段階をさらに含むことを特徴とする。
【００２４】
本発明の一実施形態によるキャッシュメモリシステムの動作方法は、前記比較結果、前記複数のタグデータのうちいずれか一つが前記タグアドレスと一致しない場合、キャッシュミスと判断し、前記メインメモリの前記タグアドレスが示す領域から前記新たなデータを受信する段階をさらに含むことを特徴とする。
【００２５】
本発明の一実施形態によるキャッシュメモリシステムの動作方法は、前記メインデータのアクセス回数が多いほど前記メインデータと同じ前記キャッシュデータの優先順位が高くなるように、前記優先順位データを定める段階をさらに含むことを特徴とする。
【００２６】
本発明の一実施形態による要請を受信する段階は、前記メインデータに対応するデータＩＤを受信する段階を含み、前記動作方法は、前記受信したデータＩＤに対応するメインデータの前記アクセス回数を増加させ、前記優先順位テーブルをアップデートする段階をさらに含むことを特徴とする。
【００２７】
本発明の一実施形態によるキャッシュメモリシステムの動作方法は、前記削除されるキャッシュデータに対応する優先順位データに基づいて、前記削除されるキャッシュデータを候補データと保存する段階をさらに含むことを特徴とする。
【００２８】
本発明の一実施形態によるキャッシュメモリシステムの動作方法は、テーブル変更要請を受信する段階と、前記優先順位テーブルを外部メモリに保存し、変更された優先順位テーブルを前記テーブル保存部に保存する段階をさらに含むことを特徴とする。
【００２９】
本発明の一実施形態によるキャッシュメモリシステムは、メインメモリに保存されたメインデータのうち一部に該当するキャッシュデータ及び前記キャッシュデータそれぞれに対応する優先順位データを保存するキャッシュメモリと、前記メインデータのアクセス頻度情報を含む優先順位テーブルを保存するテーブル保存部と、前記メインデータのうち少なくとも一つに対する要請がある場合、前記キャッシュメモリに前記要請に対応するキャッシュデータが保存されているかどうかを判別し、前記判別結果によって、前記キャッシュデータのうちいずれか一つを削除して新たなデータにアップデートするコントローラと、前記削除されるキャッシュデータに対応する優先順位データに基づいて、前記削除されるキャッシュデータを候補データと保存する臨時保存部と、を備え、前記優先順位データは、前記アクセス頻度情報に基づいて定められることを特徴とする。
【００３０】
本発明の一実施形態によるコントローラは、前記削除されるキャッシュデータの優先順位が既定の優先順位以上の場合、前記削除されるキャッシュデータを前記臨時保存部に前記候補データとして保存することを特徴とする。
【００３１】
本発明の一実施形態によるコントローラは、前記要請されたメインデータが前記キャッシュメモリに存在しない場合、前記要請されたメインデータが前記臨時保存部に存在するかどうかを判別し、判別結果によって、前記候補データを出力するか、または前記メインメモリのメインデータを出力することを特徴とする。
【００３２】
本発明の一実施形態によるキャッシュメモリシステムの動作方法は、メインデータのうち少なくとも一つに対する要請を受信する段階と、前記要請されたメインデータがキャッシュメモリに保存されているかどうかを判別する段階と、前記判別結果によって、前記キャッシュメモリに保存されているキャッシュデータのうちいずれか一つを選択する段階と、前記選択されたキャッシュデータを削除して新たなデータにアップデートする段階と、前記削除されるキャッシュデータに対応する優先順位データに基づいて、前記削除されるキャッシュデータを候補データと保存する段階と、を含み、前記優先順位データは、前記キャッシュメモリに保存されている優先順位テーブルのアクセス頻度情報に基づいて定められることを特徴とする。
【００３３】
本発明の一実施形態による保存する段階は、前記削除されるキャッシュデータの優先順位が既定の優先順位以上の場合、前記削除されるキャッシュデータを前記候補データと保存する段階を含むことを特徴とする。
【００３４】
本発明の一実施形態によるキャッシュメモリシステムの動作方法は、前記要請されたメインデータが前記キャッシュメモリに存在しない場合、前記要請されたメインデータが前記臨時保存部に存在するかどうかを判別する段階と、前記判別結果によって、前記候補データを出力するか、または前記メインメモリのメインデータを出力する段階と、をさらに含むことを特徴とする。
【００３５】
本発明によれば、キャッシュミスの発生時、キャッシュデータの優先順位データに基づいて削除するキャッシュデータを選択することで、キャッシュミス確率を低減させる。
【００３６】
キャッシュミス確率の低減によって、外部メモリアクセスによる電力消耗量を低減させる。
【００３７】
また、削除されるキャッシュデータの一部を臨時保存することで、外部メモリアクセスによる電力消耗量を低減させる。
【００３８】
＜実施の形態の詳細な説明＞
以下、図面を参照して本発明の実施形態を詳細に説明する。
【００３９】
図１は、グラフィックス処理システムを説明するための図面である。図１を参照すれば、グラフィックス処理システムは、ラスタライザー１０、ピクセルシェーダコア２０、キャッシュメモリシステム２００、ピクセル処理部３０、タイルバッファ４０を備える。また、システムバス６０には、キャッシュメモリシステム２００のライン、タイルバッファ４０のライン及びメインメモリ５０のラインが連結される。
【００４０】
本発明の一実施形態によるグラフィックス処理システム１００は、３次元グラフィックス処理システムである。また、３次元グラフィックス処理システムは、メモリ帯域幅を効率的に使えるタイルに基づいたレンダリング（ＴＢＲ；ｔｉｌｅ−ｂａｓｅｄ−ｒｅｎｄｅｒｉｎｇ）技法を使える。ＴＢＲ技法は、一つの映像を一定サイズのタイルに分割し、ラスタライザー１０−ピクセルシェーダコア２０−ピクセル処理部３０で構成された一つのチャネルから分割された一つのタイルに含まれたピクセルをいずれも処理した後、他の一つのタイルに含まれているピクセルを処理する技法である。例えば、図１に示したように、グラフィックス処理システムが３個のチャネルを含む場合、第１チャネルで第１タイルを、第２チャネルで第２タイルを、第３チャネルで第３タイルを同時に処理した後、また第１チャネルで第４タイルを、第２チャネルで第５タイルを、第３チャネルで第６タイルを同時に処理する。
【００４１】
一方、映像に含まれる３次元オブジェクトはメッシュ単位に変換され、変換されたメッシュデータがラスタライザー１０に入力される。ラスタライザー１０は、入力されたメッシュデータをピクセルに変換する。例えば、ラスタライザー１０は、３次元オブジェクトが三角形単位に区分された場合、３次元オブジェクトを構成する三角形の空間的位置を座標で規定でき、各三角形をピクセルに分解して各三角形のピクセルに対する座標を定める。
【００４２】
ピクセルシェーダコア２０は、ラスタライザー１０で変換されたピクセルの色相値を定めるピクセルシェーディングを行える。この時、ピクセルシェーダコア２０は、ピクセルの色相値決定に使うためにテクスチャデータを要請する。
【００４３】
一方、ピクセルシェーダコア２０は、テクスチャデータを要請するために、メインメモリ５０をアクセスする前に先ずキャッシュメモリにアクセスする。この場合にピクセルシェーダコア２０は、テクスチャデータ要請をキャッシュメモリシステム２００に印加する。
【００４４】
キャッシュメモリ２３０（図２参照）に要請されたテクスチャデータが存在する場合、キャッシュヒットによる動作が行われ、キャッシュメモリ２３０から出力されたキャッシュデータ（テクスチャデータ）がピクセルシェーダコア２０に印加される。
【００４５】
頻繁に使われるメインメモリ５０のデータ（テクスチャデータ）の場合、キャッシュメモリ２３０に保存されている確率が大きい。よって、ピクセルシェーダコア２０は、メインメモリ５０より先にキャッシュメモリ２３０にアクセスすることで、データ伝送速度を向上させる。特に、ピクセルシェーディングで要求するメインデータアクセスパターンは、局所的であるため（又は地域性が非常に高いため）、本発明の一実施形態によるキャッシュメモリシステム２００を適用することでメインメモリ５０のアクセス回数を低減させる。
【００４６】
一方、キャッシュメモリ２３０に要請されたメインデータが存在しない場合には、キャッシュミスによる動作が行われる。これによって、メインメモリ５０がアクセスされ、メインメモリ５０から出力されたデータが前記システムバス６０を経てキャッシュメモリシステム２００に印加される。
【００４７】
一方、ピクセルシェーダコア２０でピクセルシェーディングが行われた処理結果はピクセル処理部３０に伝送される。ピクセル処理部３０は、各ピクセルに対して多様なテスト（例えば、ステンシルテスト及び深度テスト）を行い、ピクセル表示如何を定める。
【００４８】
前記のように、複数のチャネル（ラスタライザー１０−ピクセルシェーダコア２０−ピクセル処理部３０）それぞれで処理されたタイル別ピクセルの処理結果は、タイルバッファ４０に保存され、タイルバッファ４０に保存されたデータはフレームバッファ（図示せず）に伝送され、グラフィックス処理システム１００は、各タイルについてのデータを用いて最終映像を出力する。
【００４９】
図１では、説明の便宜のために、キャッシュメモリシステム２００がピクセルシェーダコア２０と別々に位置する例を示したが、この例に限定されず、キャッシュメモリシステム２００は、ピクセルシェーダコア２０と同じ一つのチップ内に含まれてもよい。
【００５０】
図２は、本発明の一実施形態によるキャッシュメモリシステムを示すブロック図である。図２を参照すれば、本発明の一実施形態によるキャッシュメモリシステム２００は、テーブル保存部２１０、キャッシュメモリ２３０及びコントローラ２２０を備える。
【００５１】
テーブル保存部２１０は、メインメモリ５０に保存されたメインデータ（テクスチャデータ）の接近頻度情報を含む優先順位テーブルを保存する。接近頻度情報はアクセス頻度情報等と言及されてもよい。例えば、図３のように、優先順位テーブル２１５は、データＩＤ（ＩＤ）、データアクセス回数（ｃｏｕｎｔ）及び優先順位データ（ｐｒｉｏｒｉｔｙ）を含む。データＩＤ（ＩＤ）は、メインデータを示す識別値であり、データアクセス回数（ｃｏｕｎｔ）は、メインデータにアクセスした回数を示す。優先順位データ（ｐｒｉｏｒｉｔｙ）は、データアクセス回数によってデータの優先順位を示す。
【００５２】
例えば、メインデータの種類がＮ個である時、アクセス回数が最も多いメインデータの優先順位データを１と指定し、アクセス回数の少ないメインデータの優先順位データをＮと指定する。またはこれと逆に、アクセス回数の最も多いメインデータの優先順位をＮと指定し、アクセス回数の最も少ないメインデータの優先順位データを１と指定してもよい。
【００５３】
キャッシュメモリ２３０は、メインメモリ５０に保存されたメインデータのうち一部に該当するキャッシュデータ、キャッシュデータそれぞれに対応する優先順位データ及びキャッシュデータそれぞれのアドレスを示すタグデータを保存する。言い換えれば、キャッシュデータは、メインメモリに保存されているメインデータのうちいずれか一つと同一であり、タグデータは、キャッシュデータが保存されているメインメモリ５０の実際アドレスを示す。また、優先順位データは、優先順位テーブルに保存されているメインデータの優先順位データに基づいて定められる。例えば、図３に示されたように、ＩＤ値が２であるメインデータの優先順位データが優先順位テーブルに４として保存されている場合、ＩＤ値が２であるメインデータと同じキャッシュデータ（ＣＤ１）の優先順位データも４と定められる。
【００５４】
一方、キャッシュメモリ２３０の構造については、以下、図３を参照して詳細に説明する。
【００５５】
図３を参照すれば、キャッシュメモリは、複数のデータセットを含む。この時、一つのデータセット３３５は、複数のタグデータ、複数のキャッシュデータ及び複数の優先順位データを含む。例えば、キャッシュメモリ２３０が４ウェイ（ｗａｙ）セット関連キャッシュメモリで構成される場合、一つのデータセットは、第１ないし第４キャッシュデータＣＤ１、ＣＤ２、ＣＤ３、ＣＤ４を含み、第１ないし第４キャッシュデータそれぞれのアドレスを示す第１ないし第４タグデータＴＤ１、ＴＤ２、ＴＤ３、ＴＤ４を含む。また、第１ないし第４キャッシュデータＣＤ１、ＣＤ２、ＣＤ３、ＣＤ４それぞれの優先順位を示す第１ないし第４優先順位データＰ１、Ｐ２、Ｐ３、Ｐ４を含む。
【００５６】
一方、キャッシュメモリ２３０は、キャッシュデータが保存されるキャッシュ部２３２、タグデータが保存されるタグ部２３１及び優先順位データが保存されるＰ領域２３３で構成され、Ｐ領域２３３は、タグ部２３１に含まれる。
【００５７】
コントローラ２２０は、メインデータのうちいずれか一つに対する要請がある場合、要請に対応するキャッシュデータがキャッシュメモリに保存されているか、言い換えれば、キャッシュヒットであるか、キャッシュミスであるかを判別する。判別結果によって、コントローラ２２０は、優先順位データに基づいてデータセットに含まれるキャッシュデータのうちいずれか一つを削除し、新たなデータにアップデートする。これについては、図４を参照して詳細に後述する。
【００５８】
図４は、本発明の一実施形態によるキャッシュメモリシステムの動作方法を示すフローチャートであり、図５は、図４の動作方法を説明するために参照される図面である。
【００５９】
図４を参照すれば、キャッシュメモリシステム２００は、外部からデータ要請を受信する（Ｓ４１０）。この時、データは、図１で前述したピクセルシェーディングに必要なテクスチャデータ（メインデータ）であり、キャッシュメモリシステム２００は、図５に示されたように、外部から伝送されたメインデータに対するタグアドレス５２１及びセットアドレス５２２を受信する。
【００６０】
一方、キャッシュメモリシステム２００は、要請されたメインデータのタグアドレス５２１及びセットアドレス５２２以外に、データＩＤ
５１０を受信する。この時、キャッシュメモリシステム２００は、受信したデータＩＤ ５１０に対応するメインデータのアクセス回数を増加させ、優先順位テーブル２１５をアップデートする。キャッシュメモリシステム２００は、要請されたデータがキャッシュメモリ内に保存されているかどうか、言い換えれば、キャッシュヒット／ミス如何を判断する（Ｓ４２０）。この時、図５に示されたように、コントローラ２２０は、受信したセットアドレス５２２が示すデータセット３３５に含まれる前記タグデータＴＤ１、ＴＤ２、ＴＤ３、ＴＤ４を前記タグアドレス５２１と比較し、前記要請に対応するキャッシュデータが保存されているかどうかを判別する。比較結果、複数のタグデータＴＤ１、ＴＤ２、ＴＤ３、ＴＤ４のうちいずれか一つとタグアドレス５２１とが一致する場合、キャッシュメモリシステム２００はキャッシュヒットと判断し、複数のタグデータＴＤ１、ＴＤ２、ＴＤ３、ＴＤ４のうちいずれか一つがタグアドレス５２１と一致しない場合、キャッシュミスと判断する。
【００６１】
一方、キャッシュヒットと判断される場合、キャッシュメモリシステム２００は、一致するタグデータに対応するキャッシュデータを外部に出力する（Ｓ４５０）。例えば、キャッシュメモリシステム２００は、タグアドレス５２１と第２タグデータＴＤ２とが一致する場合、第２タグデータＴＤ２に対応する第２キャッシュデータＣＤ２を外部に出力する。
【００６２】
一方に、キャッシュミスと判断される場合、キャッシュメモリシステム２００は、受信したセットアドレスが示すデータセットに含まれる複数の優先順位データを比べて、最も低い優先順位を持つキャッシュデータを選択し（Ｓ４３０）、選択されたキャッシュデータを削除し、新たなデータにアップデートする（Ｓ４４０）。例えば、図５に示されたように、セットアドレス５２２が示すデータセット３３５に含まれる第１ないし第４キャッシュデータＣＤ１、ＣＤ２、ＣＤ３、ＣＤ４それぞれに対応する第１ないし第４優先順位データＰ１、Ｐ２、Ｐ３、Ｐ４を比べ、最も低い優先順位を持つキャッシュデータを選択する。この時、第３優先順位データＰ３が最も低い優先順位を持つ場合、キャッシュメモリシステムは、第３優先順位データＰ３に対応するキャッシュデータＣＤ３を削除し、新たなデータにアップデートする。新たなデータは、タグアドレス５２１が示すメインメモリ領域から受信したデータである。また、新たなデータにアップデートされた第３キャッシュデータＣＤ３に対応する優先順位データＰ３及びタグデータＴＤ３をアップデートする。
【００６３】
例えば、第３キャッシュデータＣＤ３が新たなデータにアップデートされる場合、優先順位テーブルに基づいて、新たなデータに対する優先順位データを定め、第３優先順位データＰ３を、定められた優先順位データにアップデートする。
【００６４】
また、キャッシュメモリシステム２００は、新たなデータを外部に出力する（Ｓ４５０）。
【００６５】
一方、キャッシュメモリシステム２００は、削除されるキャッシュデータの優先順位データに基づいて、削除されるキャッシュデータを臨時保存部に保存するかどうかを定める。この時、キャッシュメモリシステム２００は、削除されるキャッシュデータの優先順位データが既定の値以下であるか、または逆に既定の値以上の場合、削除されるキャッシュデータを臨時保存部に保存する。例えば、優先順位が高いほど優先順位データが小さな値に定められる場合において、削除されるキャッシュデータに対応する優先順位データが既定の値以下ならば、削除されるキャッシュデータを臨時保存部に保存する。
【００６６】
逆に、優先順位が高いほど優先順位データが大きい値に定められる場合において、削除されるキャッシュデータに対応する優先順位データが既定の値以上ならば、削除されるキャッシュデータを臨時保存部に保存する。
【００６７】
このように、削除されるキャッシュデータの優先順位が高い場合、臨時保存部に保存することで、以後、削除されるキャッシュデータに対する要請がある場合、メインメモリに近付かずに臨時保存部に近付き、データを獲得することでデータ処理速度を速くできる。
【００６８】
一方、優先順位テーブルに対する変更要請を受信する場合、キャッシュメモリシステム２００は、優先順位テーブル２１５を外部メモリに保存する。例えば、ピクセルシェーディングコア２０でタイルに対するピクセルシェーディング実行時に使われるシェーダプログラムが変更される場合、キャッシュメモリシステム２００は、優先順位テーブルに対する変更要請を受信する。
【００６９】
また、第１シェーダプログラムから第２シェーダプログラムに変更される場合、キャッシュメモリシステム２００は、現在テーブル保存部２１０に保存されている第１シェーダプログラムに対応する第１優先順位テーブルを外部メモリに保存し、第２シェーダプログラムに対応する第２優先順位テーブルをテーブル保存部２１０に保存する。次いで、再びシェーダプログラムが第１シェーダプログラムに変更される場合、キャッシュメモリシステム２００は、外部メモリに保存されていた第１優先順位テーブルをテーブル保存部２１０に保存し、キャッシュメモリの優先順位データを第１優先順位テーブルに基づいて定める。
【００７０】
図６は、本発明の一実施形態による接近頻度情報を収集する方法を示す図面である。図６を参照すれば、ピクセルシェーダコア２０でＮフレーム映像のピクセル処理時に収集された接近頻度情報を、Ｎ＋１フレーム映像のピクセル処理時に用いる。例えば、ピクセルシェーダコア２０は、Ｎフレーム映像のピクセル処理時に必要なテクスチャデータ（メインデータ）をキャッシュメモリシステム２００に要請でき、キャッシュメモリシステム２００は、要請されるテクスチャデータ（メインデータ）のデータＩＤを受信し、メインデータに対する接近頻度情報を収集する。メモリシステム２００は、メインデータが要請される度に要請されるメインデータに該当するデータのアクセス回数を増加させ、テーブル保存部２１０に保存されている優先順位テーブルをアップデートすることで、メインデータに対する接近頻度情報を収集する。
【００７１】
一方、前記のように収集されたＮフレーム映像に対応するメインデータに対する接近頻度情報は、Ｎ＋１フレーム映像に対応するメインデータに対する接近頻度情報として用いられる。例えば、図６のように、Ｎフレーム映像のピクセル処理時、第１ＩＤ（１）を持つ第１テクスチャデータアクセス回数（ｃｏｕｎｔ）が３０３２、第２ＩＤ（２）を持つ第２テクスチャデータアクセス回数（ｃｏｕｎｔ）が１０５６である場合、Ｎ＋１フレーム映像のピクセル処理に使われるキャッシュメモリシステムは、優先順位テーブルの初期値を、第１ＩＤ（１）に対応するデータアクセス回数（ｃｏｕｎｔ）は３０３２に、第２ＩＤ（２）に対応するデータアクセス回数（ｃｏｕｎｔ）は１０５６に設定する。
【００７２】
これによって、Ｎ＋１フレーム映像のピクセルを処理するピクセルシェーダコアに対応するキャッシュメモリシステム２００に保存される優先順位テーブルの初期値を、Ｎフレーム映像のピクセル処理時に収集された接近頻度情報を用いて定める。
【００７３】
また、キャッシュメモリシステム２００は、前記のように設定された優先順位テーブルに基づいて、キャッシュデータに対応する優先順位データを定める。Ｎフレーム映像とＮ＋１フレーム映像とは互いに類似しているため、Ｎフレーム映像とＮ＋１フレーム映像とのピクセル処理時に要求されるテクスチャデータも類似している。よって、Ｎフレーム映像処理時に収集されたテクスチャデータに対する接近頻度情報をＮ＋１フレーム映像処理時に用いれば、キャッシュデータに対応する優先順位データの信頼度が向上し、これによってキャッシュミス確率を低減させる。
【００７４】
図７は、本発明の一実施形態によるキャッシュメモリシステムを示すブロック図である。図７を参照すれば、本発明の一実施形態によるキャッシュメモリシステム７００は、テーブル保存部７１０、キャッシュメモリ７３０、コントローラ７２０及び臨時保存部７４０を備える。一方、テーブル保存部７１０、キャッシュメモリ７３０、及びコントローラ７２０は、図２の構成と同一なので、その具体的な説明は省略する。
【００７５】
テーブル保存部７１０は、メインメモリ５０に保存されたメインデータ（テクスチャデータ）のアクセス頻度情報を含む優先順位テーブルを保存する。
【００７６】
キャッシュメモリ７３０は、メインメモリ５０に保存されたメインデータのうち一部に該当するキャッシュデータ、キャッシュデータそれぞれに対応する優先順位データ及びキャッシュデータそれぞれのアドレスを示すタグデータを保存する。また、キャッシュメモリ７３０は、複数のデータセットを含む。この時、一つのデータセットは複数のタグデータ、複数のキャッシュデータ及び複数の優先順位データを含む。
【００７７】
コントローラ７２０は、メインデータのうちいずれか一つに対する要請がある場合、要請に対応するキャッシュデータがキャッシュメモリに保存されているのか、言い換えれば、キャッシュヒットであるか、キャッシュミスであるかを判別する。判別結果によって、コントローラ７２０は、データセットに含まれる複数のキャッシュデータのうちいずれか一つを削除し、新たなデータにアップデートする。この時、データセットに含まれる複数のキャッシュデータのうち削除されるキャッシュデータは、既定の基準によって選択される。例えば、最も少なく使われたキャッシュデータを選択する方式（ＬＲＵ、Ｌｅａｓｔ  Ｒｅｃｅｎｔｌｙ  Ｕｓｅｄ）、最も最近に使われたキャッシュデータを選択する方式（ＭＲＵ、Ｍｏｓｔ  Ｒｅｃｅｎｔｌｙ  Ｕｓｅｄ）、最も先に保存されたキャッシュデータを選択する方式（ＦＩＦＯ、Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）などによってキャッシュデータを選択する。
【００７８】
臨時保存部７４０は、選択されたキャッシュデータ（削除されるキャッシュデータ）に対応する優先順位データに基づいて、選択されたキャッシュデータを保存する。これについては、図８及び図９で詳細に後述する。
【００７９】
図８は、本発明の一実施形態によるキャッシュメモリシステムの動作方法を示すフローチャートであり、図９は、図８の動作方法を説明するために参照される図面である。図８を参照すれば、キャッシュメモリシステム７００は、外部からデータ要請を受信する（Ｓ８１０）。この時、データは、図１で前述したピクセルシェーディングに必要なテクスチャデータ（メインデータ）であり、キャッシュメモリシステム７００は、外部から伝送されたメインデータに対するタグアドレス９２１及びセットアドレス９２２を受信する。
【００８０】
一方、キャッシュメモリシステム７００は、要請されたメインデータのタグアドレス９２１及びセットアドレス９２２以外にデータＩＤを受信する。キャッシュメモリシステム７００は、受信したデータＩＤに対応するメインデータのアクセス回数を増加させて、優先順位テーブルをアップデートする。キャッシュメモリシステム７００は、要請されたデータがキャッシュメモリ内に保存されているかどうか、言い換えれば、キャッシュヒット／ミス如何を判断する（Ｓ８２０）。
【００８１】
この時、キャッシュメモリシステム７００は、図９に示されたように、受信したセットアドレス９２２が示すデータセット９３５に含まれる前記タグデータＴＤ１、ＴＤ２、ＴＤ３、ＴＤ４を前記タグアドレス９２１と比較し、前記要請に対応するキャッシュデータが保存されているかどうかを判別する。比較結果、複数のタグデータＴＤ１、ＴＤ２、ＴＤ３、ＴＤ４のうちいずれか一つとタグアドレス９２１とが一致する場合、キャッシュメモリシステム７００は、キャッシュヒットと判断し、複数のタグデータのうちいずれか一つがタグアドレスと一致しない場合、キャッシュミスと判断する。
【００８２】
一方、キャッシュヒットと判断される場合、キャッシュメモリシステム７００は、一致するタグデータに対応するキャッシュデータを外部に出力する（Ｓ８７０）。例えば、キャッシュメモリシステム７００は、タグアドレス９２１と第２タグデータＴＤ２とが一致する場合、第２タグデータＴＤ２に対応する第２キャッシュデータＣＤ２を外部に出力する。
【００８３】
一方に、キャッシュミスと判断される場合、キャッシュメモリシステム７００は、受信したタグアドレス９２１が示すデータセット９３５に含まれる複数のキャッシュデータＣＤ１、ＣＤ２、ＣＤ３、ＣＤ４のうちいずれか一つのキャッシュデータを選択し（Ｓ８３０）、選択されたキャッシュデータを削除し、新たなデータにアップデートする（Ｓ８４０）。この時、図７で前述したＬＲＵ方式、ＭＲＵ方式、ＦＩＦＯ方式などによってキャッシュデータを選択する。また、新たなデータにアップデートされたキャッシュデータに対応する優先順位データ及びタグデータをアップデートする。
【００８４】
一方、キャッシュメモリシステム７００は、削除されるキャッシュデータの優先順位データに基づいて、削除されるキャッシュデータを臨時保存部に保存するかどうかを定める（Ｓ８５０）。キャッシュメモリシステム７００は、削除されるキャッシュデータの優先順位が既定の優先順位より高い場合、削除されるキャッシュデータを臨時保存部に保存する（Ｓ８６０）。
【００８５】
図９に示されたように、キャッシュメモリシステム７００は、削除されるキャッシュデータが第４キャッシュデータＣＤ４と選択され、第４キャッシュデータＣＤ４の優先順位データが既定の優先順位より高い場合、第４キャッシュデータＣＤ４を臨時保存部７４０に保存する。この時、キャッシュメモリシステム７００は、第４キャッシュデータＣＤ４に対応する第４優先順位データＰ４及び第４タグデータＴＤ４も臨時保存部７４０に保存する。
【００８６】
キャッシュメモリシステム７００は、削除されるキャッシュデータの優先順位データが既定の値以下であるか、逆に既定の値以上である場合、削除されるキャッシュデータを臨時保存部７４０に保存する。例えば、優先順位が高いほど優先順位データが小さな値に定められる場合において、削除されるキャッシュデータに対応する優先順位データが既定の値以下ならば、削除されるキャッシュデータを臨時保存部７４０に保存する。逆に、優先順位が高いほど優先順位データが大きい値と定められる場合において、削除されるキャッシュデータに対応する優先順位データが既定の値以上ならば、削除されるキャッシュデータを臨時保存部７４０に保存する。
【００８７】
または、削除されるキャッシュデータに対応する優先順位と、臨時保存部７４０に既に保存されている候補データに対応する優先順位とを比較し、削除されるキャッシュデータの優先順位が候補データに対応する優先順位より高い場合、削除されるキャッシュデータを臨時保存部７４０に保存する。
【００８８】
前記のように、削除されるキャッシュデータの優先順位が高い場合、臨時保存部７４０に保存することで、以後、削除されるキャッシュデータに対する要請がある場合、メインメモリに近付かずに臨時保存部に近付き、データを獲得することでデータ処理速度を速くできる。
【００８９】
例えば、外部から要請されたメインデータがキャッシュメモリ内に存在しない場合、コントローラ７２０は、要請されたメインデータが臨時保存部７４０に存在するかどうかを判別する。この時、臨時保存部７４０に保存された候補データそれぞれに対応するタグデータとタグアドレスとを比較することで、要請されたメインデータが臨時保存部７４０に存在するかどうかを判別する。比較結果、タグデータとタグアドレスとが一致する場合、一致するタグデータに対応する候補データ（要請されたメインデータ）を外部に出力する。
【００９０】
一方に、タグデータとタグアドレスとが一致しない場合、タグアドレスが示すメインメモリ領域からデータを受信して外部に出力する。
【００９１】
本発明によるキャッシュメモリシステム及びその動作方法は、前記のように説明された実施形態の構成及び方法が限定的に適用されるものではなく、前記実施形態は多様な変形がなされるように、各実施形態の全部または一部が選択的に組み合わせれて構成されてもよい。
【００９２】
一方、本発明のキャッシュメモリシステム及びその動作方法は、コンピュータで読み取り可能な記録媒体にコンピュータで読み取り可能なコードとして具現できる。コンピュータで読み取り可能な記録媒体は、コンピュータシステムによって読み取られるデータが保存されるすべての記録装置を含む。コンピュータで読み取り可能な記録媒体の例としては、ＲＯＭ、ＲＡＭ、ＣＤ−ＲＯＭ、磁気テープ、フロッピー（登録商標）ディスク、光データ保存装置などがあり、またインターネットを通じる伝送などのキャリアウェーブの形態で具現されるものも含む。また、コンピュータで読み取り可能な記録媒体は、ネットワークに連結されたコンピュータシステムに分散され、分散方式でプロセッサで読み取り可能なコードが保存されて実行される。
【００９３】
以上、本発明の実施形態について図示して説明したが、本発明は前述した特定の実施形態に限定されず、特許請求の範囲で請求する本発明の趣旨を逸脱せずに当業者によって多様な変形実施が可能であるということはいうまでもなく、これらの変形実施は本発明の技術的思想や展望と別途に理解されてはならない。
【００９４】
本発明は、キャッシュメモリシステム関連の技術分野に好適に用いられる。
【符号の説明】
【００９５】
１００  キャッシュメモリシステム
１１０  アドレスバッファ
１２０  コントローラ
１３０  キャッシュメモリ
１４０  レジスタ
【図１】
2015069641.tif 000003
【図２】
2015069641.tif 000004
【図３】
2015069641.tif 000005
【図４】
2015069641.tif 000006
【図５】
2015069641.tif 000007
【図６】
2015069641.tif 000008
【図７】
2015069641.tif 000009
【図８】
2015069641.tif 000010
【図９】
2015069641.tif 000011