(57)【特許請求の範囲】
【請求項１】
メインメモリに保存されたデータのうち一部に該当するキャッシュデータを保存するデータメモリと、
複数のウェイを有する少なくとも１つのセットを含み、前記キャッシュデータにそれぞれ対応するＮビットのタグデータを、前記少なくとも１つのセットで保存するタグメモリと、
外部から受信したセットアドレスが示すセットに含まれる前記タグデータそれぞれの上位Ｋ（１≦Ｋ＜Ｎ）ビットと、前記外部から受信したＮビットのタグアドレスの上位Ｋビットとを比較し、前記タグデータそれぞれの残り（Ｎ−Ｋ）ビットと、前記タグアドレスの残り（Ｎ−Ｋ）ビットとを比較し、キャッシュヒットであるか、あるいはキャッシュミスであるかを判断するタグ比較部と、
前記キャッシュミスと判断される場合、前記タグデータそれぞれの上位Ｋビットと、前記タグアドレスの上位Ｋビットとの比較結果により、当該タグデータに対応するキャッシュデータを、アップデート候補として決定し、前記アップデート候補のうちいずれか１つのキャッシュデータを削除し、新たなデータでアップデートするアップデート制御部と、を含む、
キャッシュメモリ・システム。
【請求項２】
前記アップデート制御部は、
前記タグデータのうちいずれか１つの上位Ｋビットが、前記タグアドレスの上位Ｋビットと一致しない場合、前記いずれか一つに対応するキャッシュデータを、前記アップデート候補として決定する、
請求項１に記載のキャッシュメモリ・システム。
【請求項３】
前記タグ比較部は、
前記タグデータのうちいずれか一つも、前記タグアドレスと一致しない場合、前記キャッシュミスと判断し、前記タグデータそれぞれの上位Ｋビットと、前記タグアドレスの上位Ｋビットとの比較結果を、前記アップデート制御部に出力する、
請求項１または２に記載のキャッシュメモリ・システム。
【請求項４】
前記タグ比較部は、
前記タグデータのうちいずれか一つと、前記タグアドレスが一致する場合、前記キャッシュヒットと判断する、
請求項１乃至３いずれか一項に記載のキャッシュメモリ・システム。
【請求項５】
前記キャッシュメモリ・システムは、
前記キャッシュヒットと判断した場合、前記タグアドレスと一致するタグデータに対応するキャッシュデータを読み取り、前記外部に出力するデータ出力部、をさらに含む、
請求項１乃至４いずれか一項に記載のキャッシュメモリ・システム。
【請求項６】
前記キャッシュメモリ・システムが、前記セットアドレスが同一である複数のデータリクエストを受信する場合、
前記アップデート制御部は、
前記複数のデータそれぞれに対して受信した前記タグアドレスの上位Ｋビットと、前記タグデータそれぞれの上位Ｋビットとを比較した結果により、前記複数のデータそれぞれの前記アップデート候補を決定し、前記アップデート候補に含まれるキャッシュデータのうち、前記アップデート候補として決定された回数が最多であるキャッシュデータを削除し、新たなデータでアップデートする、
請求項１に記載のキャッシュメモリ・システム。
【請求項７】
前記タグ比較部は、
前記複数のデータにそれぞれ対応する比較ベクトルを出力し、
前記比較ベクトルそれぞれは、前記ウェイの個数と同一個数の成分を含み、
前記成分は、当該データのタグアドレスの上位Ｋビットと、前記タグデータそれぞれの上位Ｋビットとを比較して、一致する場合、第１値を示し、一致しない場合、第２値を示し、
前記アップデート制御部は、
前記比較ベクトルの前記成分値を前記ウェイ別に合算し、前記合算した結果値に基づいて、前記複数のウェイのうちいずれか一つに対応するキャッシュデータを削除し、新たなデータでアップデートする、
請求項６に記載のキャッシュメモリ・システム。
【請求項８】
前記第１値は１であり、前記第２値は０であり、
前記アップデート制御部は、
前記ウェイ別に合算した結果値のうち最小値を有するウェイに対応するキャッシュデータを削除し、新たなデータでアップデートする、
請求項７に記載のキャッシュメモリ・システム。
【請求項９】
メインメモリに保存されたデータのうち一部に該当するキャッシュデータを保存するデータメモリと、
複数のウェイを有する少なくとも１つのセットを含み、前記キャッシュデータにそれぞれ対応するＮビットのタグデータを、前記少なくとも１つのセットで保存するタグメモリと、
外部から受信したセットアドレスが示すセットに含まれる前記タグデータそれぞれの上位Ｋ（１≦Ｋ＜Ｎ）ビットと、前記外部から受信したＮビットのタグアドレスの上位Ｋビットとの差値を計算し、前記タグアドレスと、前記タグデータそれぞれとを比較して、キャッシュヒットであるか、あるいはキャッシュミスであるかを判断するタグ比較部と、
前記キャッシュミスと判断される場合、前記タグデータそれぞれの上位Ｋビットと、前記タグアドレスの上位Ｋビットとの差値に基づいて、当該タグデータに対応するキャッシュデータを、アップデート候補として決定し、前記アップデート候補のうちいずれか１つのキャッシュデータを削除し、新たなデータでアップデートするアップデート制御部と、
を含む、キャッシュメモリ・システム。
【請求項１０】
前記アップデート制御部は、
前記差値が臨界値以上である場合、前記タグデータに対応するキャッシュデータを、アップデート候補として決定する、
請求項９に記載のキャッシュメモリ・システム。
【請求項１１】
前記タグ比較部は、
前記タグデータのうちいずれも、前記タグアドレスと一致しない場合、前記キャッシュミスと判断し、前記タグデータそれぞれの上位Ｋビットと、前記タグアドレスの上位Ｋビットとの差値を前記アップデート制御部に出力する、
請求項９または１０に記載のキャッシュメモリ・システム。
【請求項１２】
前記キャッシュメモリ・システムが、前記セットアドレスが同一である複数のデータリクエストを受信する場合、
前記アップデート制御部は、
前記複数のデータそれぞれに対して受信した前記タグアドレスの上位Ｋビットと、前記タグデータそれぞれの上位Ｋビットとの差値により、前記複数のデータそれぞれの前記アップデート候補を決定し、前記アップデート候補に含まれるキャッシュデータのうち、前記アップデート候補として決定された回数が最多であるキャッシュデータを削除し、新たなデータでアップデートする、
請求項９乃至１１いずれか一項に記載のキャッシュメモリ・システム。
【請求項１３】
外部からリクエストされるデータに対応するセットアドレス、及びＮビットのタグアドレスを受信する段階と、
受信したセットアドレスが示すセットに含まれるタグデータそれぞれの上位Ｋ（１≦Ｋ＜Ｎ）ビットと、前記外部から受信したＮビットのタグアドレスの上位Ｋビットとを比較し、前記タグデータそれぞれの残り（Ｎ−Ｋ）ビットと、前記タグアドレスの残り（Ｎ−Ｋ）ビットとを比較し、キャッシュヒットであるか、あるいはキャッシュミスであるかを判断する段階と、
前記キャッシュミスと判断される場合、前記タグデータそれぞれの上位Ｋビットと、前記タグアドレスの上位Ｋビットとの比較結果により、当該タグデータに対応するキャッシュデータを、アップデート候補として決定する段階と、
前記アップデート候補のうちいずれか１つのキャッシュデータを削除し、新たなデータでアップデートする段階と、
を含む、キャッシュメモリ・システムの動作方法。
【請求項１４】
前記アップデート候補を決定する段階は、
前記タグデータのうちいずれか１つの上位Ｋビットが、前記タグアドレスの上位Ｋビットと一致しない場合、前記いずれか一つに対応するキャッシュデータを、前記アップデート候補として決定する段階を含む、
請求項１３に記載のキャッシュメモリ・システムの動作方法。
【請求項１５】
前記キャッシュミスであるか否かを判断する段階は、
前記タグデータのうちいずれも、前記タグアドレスと一致しない場合、前記キャッシュミスと判断する段階を含み、
前記動作方法は、
前記キャッシュミスと判断される場合、前記タグデータそれぞれの上位Ｋビットと、前記タグアドレスの上位Ｋビットとの比較結果を出力する段階を、さらに含む、
請求項１３または１４に記載のキャッシュメモリ・システムの動作方法。
【請求項１６】
前記キャッシュヒットであるか、あるいはキャッシュミスであるかを判断する段階は、
前記タグデータのうちいずれか一つと、前記タグアドレスが一致する場合、前記キャッシュヒットと判断する段階を含む、
請求項１３乃至１５いずれか一項に記載のキャッシュメモリ・システムの動作方法。
【請求項１７】
前記動作方法は、
前記キャッシュヒットと判断した場合、前記タグアドレスと一致するタグデータに対応するキャッシュデータを読み取り、前記外部に出力する段階を、さらに含む、
請求項１３乃至１６いずれか一項に記載のキャッシュメモリ・システムの動作方法。
【請求項１８】
前記動作方法は、
前記セットアドレスが同一である複数のデータリクエストを受信する段階を、さらに含み、
前記アップデート候補を決定する段階は、
前記複数のデータそれぞれに対して受信した前記タグアドレスの上位Ｋビットと、前記タグデータそれぞれの上位Ｋビットとを比較した結果により、前記複数のデータそれぞれの前記アップデート候補を決定する段階であり、
前記アップデートする段階は、
前記アップデート候補に含まれるキャッシュデータのうち、前記アップデート候補として決定された回数が最多であるキャッシュデータを削除し、新たなデータでアップデートする段階である、
請求項１３に記載のキャッシュメモリ・システムの動作方法。
【請求項１９】
前記動作方法は、
前記複数のデータにそれぞれ対応する比較ベクトルを出力する段階を、さらに含み、
前記比較ベクトルそれぞれは、ウェイの個数と同一個数の成分を含み、前記成分は、当該データのタグアドレスの上位Ｋビットと、前記タグデータそれぞれの上位Ｋビットとを比較して、一致する場合、第１値を示し、一致しない場合、第２値を示し、
前記アップデートする段階は、
前記比較ベクトルの前記成分値を前記ウェイ別に合算し、前記合算した結果値に基づいて、前記複数のウェイのうちいずれか一つに対応するキャッシュデータを削除し、新たなデータでアップデートする段階である、
請求項１８に記載のキャッシュメモリ・システムの動作方法。
【請求項２０】
前記第１値は１であり、前記第２値は０であり、
前記アップデートする段階は、
前記ウェイ別に合算した結果値のうち最小値を有するウェイに対応するキャッシュデータを削除し、新たなデータでアップデートする段階である、
請求項１９に記載のキャッシュメモリ・システムの動作方法。
【請求項２１】
外部からリクエストされるデータに対応するセットアドレス、及びＮビットのタグアドレスを受信する段階と、
受信したセットアドレスが示すセットに含まれる前記タグデータそれぞれの上位Ｋ（１≦Ｋ＜Ｎ）ビットと、前記外部から受信したＮビットのタグアドレスの上位Ｋビットとの差値を計算し、前記タグアドレスと、前記タグデータそれぞれとを比較して、キャッシュヒットであるか、あるいはキャッシュミスであるかを判断する段階と、
前記キャッシュミスと判断される場合、前記タグデータそれぞれの上位Ｋビットと、前記タグアドレスの上位Ｋビットとの差値に基づいて、当該タグデータに対応するキャッシュデータを、アップデート候補として決定する段階と、
前記アップデート候補のうちいずれか１つのキャッシュデータを削除し、新たなデータでアップデートする段階と、を含む、
キャッシュメモリ・システムの動作方法。
【請求項２２】
前記アップデート候補を決定する段階は、
前記差値が臨界値以上である場合、前記タグデータに対応するキャッシュデータを、アップデート候補として決定する、
請求項２１に記載のキャッシュメモリ・システムの動作方法。
【請求項２３】
前記キャッシュミスであるか否かを判断する段階は、
前記タグデータのうちいずれも、前記タグアドレスと一致しない場合、前記キャッシュミスと判断する段階を、含み、
前記方法は、
前記キャッシュミスと判断される場合、前記タグデータそれぞれの上位Ｋビットと、前記タグアドレスの上位Ｋビットとの差値を出力する段階を、さらに含む、
請求項２１または２２に記載のキャッシュメモリ・システムの動作方法。
【請求項２４】
前記方法は、
前記セットアドレスが同一である複数のデータリクエストを受信する段階を、さらに含み、
前記アップデート候補を決定する段階は、
前記複数のデータそれぞれに対して受信した前記タグアドレスの上位Ｋビットと、前記タグデータそれぞれの上位Ｋビットとの差値により、前記複数のデータそれぞれの前記アップデート候補を決定する段階であり、
前記アップデートする段階は、
前記アップデート候補に含まれるキャッシュデータのうち、前記アップデート候補として決定された回数が最多であるキャッシュデータを削除し、新たなデータでアップデートする段階である、
請求項２１乃至２３いずれか一項に記載のキャッシュメモリ・システムの動作方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、キャッシュメモリ・システム及びその動作方法に関する。
【背景技術】
【０００２】
一般的に、ＣＰＵ（central  processing  unit）やＧＰＵ（graphics  processing  unit）のような処理装置は、大容量の外部メモリに保存された命令語やデータにアクセスして処理する。ほとんどの大容量外部メモリの処理速度は、処理装置に比べ、はるかに遅いために、動作速度を改善するために、キャッシュメモリ・システムを使用している。
【０００３】
キャッシュメモリ・システムは、処理装置が最近アクセスしたデータを保存していて、処理装置が同一データを再びリクエストする場合、外部メモリにアクセスせず、高速のキャッシュメモリにアクセスさせることにより、データ転送速度を速くする役割を行う。
【０００４】
処理装置がリクエストしたデータが、キャッシュメモリ・システムのデータメモリに積載されている場合（キャッシュヒット（cache  hit））には、データメモリのデータが処理装置に伝送され、処理装置がリクエストしたデータがない場合（キャッシュミス（cache  miss））には、外部メモリからデータを読み取る。また、キャッシュメモリ・システムは、データメモリに保存されているキャッシュデータのうちいずれか一つを削除し、読み取ったデータでアップデートし、読み取ったデータは、処理装置に伝送される。
【０００５】
このようなキャッシュメモリ・システムは、マッピング方式により、セット関連マッピング方式を利用するセット関連キャッシュメモリと、直接マッピング方式を利用する直接マップキャッシュメモリ（direct  mapped  cache  memory）とで具現化することができる。セット関連キャッシュメモリは、複数のウェイ（way）を有し、キャッシュミスの場合、交替政策（replacement  status）によって、いずれか１つのウェイに対応するキャッシュデータを外部メモリから読み取った新たなデータでアップデートする。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明が解決しようとする課題は、キャッシュミス発生時、交替されるキャッシュデータを効率的に決定するためのキャッシュメモリ・システム及びその動作方法を提供するところにある。
【課題を解決するための手段】
【０００７】
本発明の一実施形態によるキャッシュメモリ・システムは、メインメモリに保存されたデータのうち一部に該当するキャッシュデータを保存するデータメモリ；複数のウェイを有する少なくとも１つのセットを含み、前記キャッシュデータにそれぞれ対応するＮビットのタグデータを、前記少なくとも１つのセットで保存するタグメモリ；外部から受信したセットアドレスが示すセットに含まれる前記タグデータそれぞれの上位Ｋ（１≦Ｋ＜Ｎ）ビットと、前記外部から受信したＮビットのタグアドレスの上位Ｋビットとを比較し、前記タグデータそれぞれの残り（Ｎ−Ｋ）ビットと、前記タグアドレスの残り（Ｎ−Ｋ）ビットとを比較し、キャッシュヒットであるか、あるいはキャッシュミスであるかを判断するタグ比較部；及び前記キャッシュミスと判断される場合、前記タグデータそれぞれの上位Ｋビットと、前記タグアドレスの上位Ｋビットとの比較結果によって、当該タグデータに対応するキャッシュデータを、アップデート候補として決定し、前記アップデート候補のうちいずれか１つのキャッシュデータを削除し、新たなデータでアップデートするアップデート制御部；を含んでもよい。
本発明の一実施形態によるアップデート制御部は、前記タグデータのうちいずれか１つの上位Ｋビットが、前記タグアドレスの上位Ｋビットと一致しない場合、前記いずれか一つに対応するキャッシュデータを、前記アップデート候補として決定することができる。
【０００８】
本発明の一実施形態によるタグ比較部は、前記タグデータのうちいずれか一つも、前記タグアドレスと一致しない場合、前記キャッシュミスと判断し、前記タグデータそれぞれの上位Ｋビットと、前記タグアドレスの上位Ｋビットとの比較結果を、前記アップデート制御部に出力することができる。
【０００９】
本発明の一実施形態によるタグ比較部は、前記タグデータのうちいずれか一つと、前記タグアドレスが一致する場合、前記キャッシュヒットと判断することができる。
本発明の一実施形態によるキャッシュメモリ・システムは、前記キャッシュヒットと判断した場合、前記タグアドレスと一致するタグデータに対応するキャッシュデータを読み取り、前記外部に出力するデータ出力部をさらに含んでもよい。
【００１０】
本発明の一実施形態によるキャッシュメモリ・システムが、前記セットアドレスが同一である複数のデータリクエストを受信する場合、前記アップデート制御部は、前記複数のデータそれぞれに対して受信した前記タグアドレスの上位Ｋビットと、前記タグデータそれぞれの上位Ｋビットとを比較した結果により、前記複数のデータそれぞれの前記アップデート候補を決定し、前記アップデート候補に含まれるキャッシュデータのうち前記アップデート候補として決定された回数が最多であるキャッシュデータを削除し、新たなデータでアップデートすることができる。
【００１１】
本発明の一実施形態によるタグ比較部は、前記複数のデータにそれぞれ対応する比較ベクトルを出力し、前記比較ベクトルそれぞれは、前記ウェイの個数と同一個数の成分を含み、前記成分は、当該データのタグアドレスの上位Ｋビットと、前記タグデータそれぞれの上位Ｋビットとを比較し、一致する場合、第１値を示し、一致しない場合、第２値を示し、前記アップデート制御部は、前記比較ベクトルの前記成分値を前記ウェイ別に合算し、前記合算した結果値に基づいて、前記複数のウェイのうちいずれか一つに対応するキャッシュデータを削除し、新たなデータでアップデートすることができる。
本発明の一実施形態による第１値は１であり、第２値は０であり、前記アップデート制御部は、前記ウェイ別に合算した結果値のうち最小値を有するウェイに対応するキャッシュデータを削除し、新たなデータでアップデートすることができる。
【００１２】
本発明の一実施形態によるキャッシュメモリ・システムは、メインメモリに保存されたデータのうち一部に該当するキャッシュデータを保存するデータメモリ；複数のウェイを有する少なくとも１つのセットを含み、前記キャッシュデータにそれぞれ対応するＮビットのタグデータを、前記少なくとも１つのセットで保存するタグメモリ；外部から受信したセットアドレスが示すセットに含まれる前記タグデータそれぞれの上位Ｋ（１≦Ｋ＜Ｎ）ビットと、前記外部から受信したＮビットのタグアドレスの上位Ｋビットとの差値を計算し、前記タグアドレスと、前記タグデータそれぞれとを比較し、キャッシュヒットであるか、あるいはキャッシュミスであるかを判断するタグ比較部；及び前記キャッシュミスと判断される場合、前記タグデータそれぞれの上位Ｋビットと、前記タグアドレスの上位Ｋビットとの差値に基づいて、当該タグデータに対応するキャッシュデータを、アップデート候補として決定し、前記アップデート候補のうちいずれか１つのキャッシュデータを削除し、新たなデータでアップデートするアップデート制御部；を含んでもよい。
【００１３】
本発明の一実施形態によるアップデート制御部は、前記差値が臨界値以上である場合、前記タグデータに対応するキャッシュデータを、アップデート候補として決定することができる。
【００１４】
本発明の一実施形態によるタグ比較部は、前記タグデータのうちいずれか一つも、前記タグアドレスと一致しない場合、前記キャッシュミスと判断し、前記アップデート制御部に、前記タグデータそれぞれの上位Ｋビットと、前記タグアドレスの上位Ｋビットとの差値を、前記アップデート制御部に出力することができる。
【００１５】
本発明の一実施形態によるキャッシュメモリ・システムが、前記セットアドレスが同一である複数のデータリクエストを受信する場合、前記アップデート制御部は、前記複数のデータそれぞれに対して受信した前記タグアドレスの上位Ｋビットと、前記タグデータそれぞれの上位Ｋビットとの差値により、前記複数のデータそれぞれの前記アップデート候補を決定し、前記アップデート候補に含まれるキャッシュデータのうち、前記アップデート候補として決定された回数が最多であるキャッシュデータを削除し、新たなデータでアップデートすることができる。
【００１６】
本発明の一実施形態によるキャッシュメモリ・システムの動作方法は、外部からリクエストされるデータに対応するセットアドレス、及びＮビットのタグアドレスを受信する段階、受信したセットアドレスが示すセットに含まれるタグデータそれぞれの上位Ｋ（１≦Ｋ＜Ｎ）ビットと、前記外部から受信したＮビットのタグアドレスの上位Ｋビットとを比較し、前記タグデータそれぞれの残り（Ｎ−Ｋ）ビットと、前記タグアドレスの残り（Ｎ−Ｋ）ビットとを比較し、キャッシュヒットであるか、あるいはキャッシュミスであるかを判断する段階、前記キャッシュミスと判断される場合、前記タグデータそれぞれの上位Ｋビットと、前記タグアドレスの上位Ｋビットとの比較結果により、当該タグデータに対応するキャッシュデータを、アップデート候補として決定する段階、及び前記アップデート候補のうちいずれか１つのキャッシュデータを削除し、新たなデータでアップデートする段階を含んでもよい。
【００１７】
本発明の一実施形態によるアップデート候補を決定する段階は、前記タグデータのうちいずれか１つの上位Ｋビットが、前記タグアドレスの上位Ｋビットと一致しない場合、前記いずれか一つに対応するキャッシュデータを、前記アップデート候補として決定する段階を含んでもよい。
【００１８】
本発明の一実施形態によるキャッシュミスであるか否かを判断する段階は、前記タグデータのうちいずれか一つも、前記タグアドレスと一致しない場合、前記キャッシュミスと判断する段階を含み、前記方法は、前記キャッシュミスと判断される場合、前記タグデータそれぞれの上位Ｋビットと、前記タグアドレスの上位Ｋビットとの比較結果を出力する段階をさらに含んでもよい。
【００１９】
本発明の一実施形態によるキャッシュヒットであるか、あるいはキャッシュミスであるかを判断する段階は、前記タグデータのうちいずれか一つと、前記タグアドレスが一致する場合、前記キャッシュヒットと判断する段階を含んでもよい。
【００２０】
本発明の一実施形態によるキャッシュメモリ・システムの動作方法は、前記キャッシュヒットと判断した場合、前記タグアドレスと一致するタグデータに対応するキャッシュデータを読み取り、前記外部に出力する段階をさらに含んでもよい。
【００２１】
本発明の一実施形態によるキャッシュメモリ・システムの動作方法は、前記セットアドレスが同一である複数のデータリクエストを受信する段階をさらに含み、前記アップデート候補を決定する段階は、前記複数のデータそれぞれに対して受信した前記タグアドレスの上位Ｋビットと、前記タグデータそれぞれの上位Ｋビットとを比較した結果により、前記複数のデータそれぞれの前記アップデート候補を決定する段階であり、前記アップデートする段階は、前記アップデート候補に含まれるキャッシュデータのうち、前記アップデート候補として決定された回数が最多であるキャッシュデータを削除し、新たなデータでアップデートする段階でもある。
【００２２】
本発明の一実施形態によるキャッシュメモリ・システムの動作方法は、前記複数のデータにそれぞれ対応する比較ベクトルを出力する段階をさらに含み、前記比較ベクトルそれぞれは、前記ウェイの個数と同一個数の成分を含み、前記成分は、当該データのタグアドレスの上位Ｋビットと、前記タグデータそれぞれの上位Ｋビットとを比較し、一致する場合、第１値を示し、一致しない場合、第２値を示し、前記アップデートする段階は、前記比較ベクトルの前記成分値を前記ウェイ別に合算し、前記合算した結果値に基づいて、前記複数のウェイのうちいずれか一つに対応するキャッシュデータを削除し、新たなデータでアップデートする段階でもある。
【００２３】
本発明の一実施形態による第１値は１であり、前記第２値は０であり、前記アップデートする段階は、前記ウェイ別に合算した結果値のうち最小値を有するウェイに対応するキャッシュデータを削除し、新たなデータでアップデートする段階でもある。
【００２４】
本発明の一実施形態によるキャッシュメモリ・システムの動作方法は、外部からリクエストされるデータに対応するセットアドレス、及びＮビットのタグアドレスを受信する段階、受信したセットアドレスが示すセットに含まれる前記タグデータそれぞれの上位Ｋ（１≦Ｋ＜Ｎ）ビットと、前記外部から受信したＮビットのタグアドレスの上位Ｋビットとの差値を計算し、前記タグアドレスと、前記タグデータそれぞれとを比較し、キャッシュヒットであるか、あるいはキャッシュミスであるかを判断する段階、前記キャッシュミスと判断される場合、前記タグデータそれぞれの上位Ｋビットと、前記タグアドレスの上位Ｋビットとの差値に基づいて、当該タグデータに対応するキャッシュデータを、アップデート候補として決定する段階、及び前記アップデート候補のうちいずれか１つのキャッシュデータを削除し、新たなデータでアップデートする段階を含んでもよい。
【００２５】
本発明の一実施形態によるアップデート候補を決定する段階は、前記差値が臨界値以上である場合、前記タグデータに対応するキャッシュデータを、アップデート候補として決定する段階でもある。
【００２６】
本発明の一実施形態によるキャッシュミスであるか否かを判断する段階は、前記タグデータのうちいずれか一つも、前記タグアドレスと一致しない場合、前記キャッシュミスと判断する段階を含み、前記方法は、前記キャッシュミスと判断される場合、前記タグデータそれぞれの上位Ｋビットと、前記タグアドレスの上位Ｋビットとの差値を出力する段階をさらに含んでもよい。
【００２７】
本発明の一実施形態によるキャッシュメモリ・システムの動作方法は、前記セットアドレスが同一である複数のデータリクエストを受信する段階をさらに含み、前記アップデート候補を決定する段階は、前記複数のデータそれぞれに対して受信した前記タグアドレスの上位Ｋビットと、前記タグデータそれぞれの上位Ｋビットとの差値により、前記複数のデータそれぞれの前記アップデート候補を決定する段階であり、前記アップデートする段階は、前記アップデート候補に含まれるキャッシュデータのうち、前記アップデート候補として決定された回数が最多であるキャッシュデータを削除し、新たなデータでアップデートする段階でもある。
【発明の効果】
【００２８】
本発明によれば、キャッシュミスの発生時、交替されるキャッシュデータを決定するためのさらなる情報を必要とせず、メモリを最小化することができる。また、交替されるキャッシュデータを決定するためのロジックの複雑さの上昇を最小化することができる。
【図面の簡単な説明】
【００２９】
【図１】データ処理システムについて説明するための図面である。
【図２】本発明の一実施形態によるキャッシュメモリ・システムの構成を示すブロック図である。
【図３】本発明の一実施形態による４ウェイセット関連キャッシュメモリの構造を示す図面である。
【図４】本発明の一実施形態による、１つのセットに含まれる複数のウェイのうち１つのウェイに対応するタグデータを、タグアドレスと比較する方法について説明するために参照される図面である。
【図５】本発明の一実施形態による、１つのセットに含まれる複数のウェイに対応するタグデータを、それぞれタグアドレスと比較する方法について説明するために参照される図面である。
【図６】本発明の一実施形態によるベクトル（hit＿results＿ｈ［Ｍ−１：０］）の一例を示す図面である。
【図７】本発明の一実施形態によるキャッシュメモリ・システムのデータアップデート方法を示すフローチャートである。
【図８】本発明の一実施形態によるキャッシュメモリ・システムのデータアップデート方法を示すフローチャートである。
【図９】本発明の一実施形態による複数のデータに対するベクトル（hit＿results＿ｈ［Ｍ−１：０］）の一例を示す図面である。
【図１０】本発明の一実施形態による、１つのセットに含まれる複数のウェイのうち１つのウェイに対応するタグデータを、タグアドレスと比較する方法について説明するために参照される図面である。
【図１１】本発明の一実施形態による、１つのセットに含まれる複数のウェイに対応するタグデータを、それぞれタグアドレスと比較する方法について説明するために参照される図面である。
【図１２】本発明の一実施形態によるキャッシュメモリ・システムのデータアップデート方法を示すフローチャートである。
【図１３】本発明の一実施形態による複数のデータに対するベクトル（hit＿results＿ｄ［Ｍ−１：０］）の一例を示す図面である。
【発明を実施するための形態】
【００３０】
本発明で使用される用語は、本発明での機能を考慮しながら、可能な限り現在汎用される一般的な用語を選択したが、それは、当業者の意図、判例、または新たな技術の出現などによって異なりもする。また、特定の場合は、出願人が任意に選定した用語もあり、その場合、当該発明の説明部分において、詳細にその意味を記載する。従って、本発明で使用される用語は、単純な用語の名称ではない、その用語が有する意味と、本発明の全般にわたった内容とを基に定義されなければならない。
【００３１】
明細書全体において、ある部分がある構成要素を「含む」とするとき、それは、特別に反対となる記載がない限り、他の構成要素を除くものではなく、他の構成要素をさらに含んでもよいことを意味する。また、明細書に記載された「…部」、「…モジュール」のような用語は、少なくとも１つの機能や動作を処理する単位を意味し、それは、ハードウェアまたはソフトウェアで具現化されたり、あるいはハードウェアとソフトウェアとの結合によって具現化されたりもする。
以下、添付した図面を参照し、本発明の実施形態について、本発明が属する技術分野で当業者が容易に実施することができるように詳細に説明する。しかし、本発明は、さまざまに異なる形態に具現化され、ここで説明する実施形態に限定されるものではない。
以下では、図面を参照し、本発明の実施形態について詳細に説明する。
【００３２】
図１は、データ処理システムについて説明するための図面である。図１を参照すれば、データ処理システムは、データ処理装置１０及びメインメモリ２００を含んでもよく、データ処理装置１０は、コア（core）５０及びキャッシュメモリ・システム１００を含んでもよい。また、システムバス６０には、キャッシュメモリ・システム１００のラインと、メインメモリ５０のラインとが接続される。
【００３３】
図１では、説明の便宜のために、キャッシュメモリ・システム１００が、コア５０と別途に位置する場合を図示しているが、それに限定されるものではなく、キャッシュメモリ・システム１００は、コア５０と同一の１チップ内に含まれてもよい。また、図１のデータ処理装置１０は、グラフィックス処理装置（ＧＰＵ：graphics  processing  unit）でもあるが、それに限定されるものではない。
【００３４】
コア５０は、データプロセッシング中に必要とするデータをリクエストするために、メインメモリ２００にアクセスする前に、まずキャッシュメモリ・システム１００にアクセスすることができる。例えば、データ処理装置１０がＧＰＵで構成される場合、コア５０は、ピクセルシェーダコアによって構成されてもよい。ピクセルシェーダコアは、レンダリング時、ピクセルの色相値を決定するピクセルシェーディングを行い、ピクセルシェーダコアは、ピクセルの色相値の決定に使用するために、テクスチャ（texture）データをキャッシュメモリ・システム１００にリクエストすることができる。また、コア５０は、複数で構成されもし、複数のコアは、同時にキャッシュメモリ・システム１００にデータをリクエストすることができる。
【００３５】
キャッシュメモリ・システム１００に、コア５０がリクエストしたデータや命令（以下、ターゲットデータとする）が存在する場合、キャッシュヒット（cache  hit）による動作が遂行される。キャッシュヒット時には、キャッシュメモリ・システム１００から出力されたキャッシュデータ（ターゲットデータ）がコア５０に出力される。
【００３６】
コア５０が、メインメモリ２００より、キャッシュメモリ・システム１００に先にアクセスする理由は、頻繁に使用されるメインメモリ２００のデータの場合、キャッシュメモリ・システム１００に保存されている確率が高いからである。従って、メインメモリ２００より、キャッシュメモリ・システム１００に先にアクセスすることにより、データ転送速度を向上させることができる。
【００３７】
一方、キャッシュメモリ・システム１００にターゲットデータが存在しない場合には、キャッシュミス（cache  miss）による動作が遂行される。すなわち、その場合、キャッシュメモリ・システム１００は、メインメモリ２００にアクセスし、メインメモリ２００から出力されたデータが、前記システムバス６０を経て、キャッシュメモリ・システム２００に印加される。
【００３８】
そのとき、キャッシュメモリ・システム１００は、既存に保存されているキャッシュデータのうちいずれか一つを削除し、メインメモリ２００から出力されたデータを保存することができる。
【００３９】
図２は、本発明の一実施形態によるキャッシュメモリ・システムの構成を示すブロック図である。図２を参照すれば、本発明の一実施形態によるキャッシュメモリ・システム１００は、タグ比較部１１０、キャッシュメモリ１２０及びアップデート制御部１３０を含んでもよい。
【００４０】
キャッシュメモリ１２０は、タグメモリ１２３と、データメモリ１２５とを含んでもよい。データメモリ１２５は、メインメモリ２００に保存されているデータの一部データ（キャッシュデータ）を保存する。すなわち、キャッシュデータは、メインメモリ２００に保存されているメインデータのうちいずれか一つと同一である。タグメモリ１２３は、データメモリ１２５に保存されたキャッシュデータにそれぞれ対応するタグデータを保存することができる。タグデータは、キャッシュデータが保存されているメインメモリ２００の実際アドレスを示すことができる。タグメモリ１２３と、データメモリ１２５との構造については、以下、図３を参照し、詳細に説明する。
【００４１】
図３を参照すれば、タグメモリ１２３とデータメモリ１２５は、少なくとも１つのセット３１０を含んでもよく、１つのセットは、複数のウェイ（way）を有することができる。タグメモリ１２３及びデータメモリ１２５のロウ（row）は、セットを示し、カラム（column）は、ウェイを示すことができる。すなわち、１つのセットは、タグメモリ１２３及びデータメモリ１２５の同一のロウに保存されてもよい。
【００４２】
図３は、４個のウェイを有する４ウェイセット関連キャッシュメモリの構造を示す図面である。図３に示されているように、キャッシュメモリが４ウェイセット関連キャッシュメモリで構成される場合、１つのセットは、第１キャッシュデータＣＤ１、第２キャッシュデータＣＤ２、第３キャッシュデータＣＤ３及び第４キャッシュデータＣＤ４と、第１キャッシュデータＣＤ１、第２キャッシュデータＣＤ２、第３キャッシュデータＣＤ３及び第４キャッシュデータＣＤ４それぞれのアドレスを示す、第１タグデータＴＤ１、第２タグデータＴＤ２、第３タグデータＴＤ３及び第４タグデータＴＤ４と、を含んでもよい。
【００４３】
また、第１タグデータＴＤ１、第２タグデータＴＤ２、第３タグデータＴＤ３及び第４タグデータＴＤ４は、タグメモリ１２３の同一ロウに保存されてもよい。そのとき、第１タグデータＴＤ１は、第１ウェイ（１−way）に対応し、第２タグデータＴＤ２は、第２ウェイ（２−way）に対応し、第３タグデータＴＤ３は、第３ウェイ（３−way）に対応し、第４タグデータＴＤ４は、第４ウェイ（４−way）に対応する。第１タグデータＴＤ１、第２タグデータＴＤ２、第３タグデータＴＤ３及び第４タグデータＴＤ４にそれぞれ対応する、第１キャッシュデータＣＤ１、第２キャッシュデータＣＤ２、第３キャッシュデータＣＤ３及び第４キャッシュデータＣＤ４も、第１タグデータＴＤ１、第２タグデータＴＤ２、第３タグデータＴＤ３及び第４タグデータＴＤ４と同一の方式でデータメモリ１２５に保存されてもよい。
【００４４】
一方、キャッシュメモリ・システム１００は、外部からのリクエストデータに対応するアドレスビット３２０を受信することができる。そのとき、アドレスビット３２０は、図３に示されているように、タグアドレス（Tag  add）とセットアドレス（Set  add）とを含んでもよい。そのとき、セットアドレス（Set  add）は、キャッシュメモリのロウアドレスを示すデータである。すなわち、セットアドレス（Set  add）は、キャッシュメモリ１２０に含まれる複数のセットのうちいずれか１つのセットを示す。
一方、タグ比較部１１０は、外部（例えば、コア）からのデータリクエストがある場合、リクエストされたデータが、キャッシュメモリ１２０に保存されているか否かを判断することができる。すなわち、キャッシュヒットであるか、あるいはキャッシュミスであるかを判断する。
【００４５】
タグ比較部１１０は、セットアドレス（Set  add）が示すセット３１０に含まれるタグデータそれぞれがタグアドレスと一致するか否かを比較する。タグ比較部１１０は、タグアドレス（Tag  add）のＮビットがタグデータのうちいずれか１つのＮビットと一致する場合、キャッシュヒットと判断する。すなわち、キャッシュヒットは、外部からリクエストされたターゲットデータが、データメモリ内に存在していることを示す。
【００４６】
タグ比較部１１０は、タグアドレス（Tag  add）のＮビットのうち上位Ｋ（１≦Ｋ＜Ｎ）ビット（Tag  add［Ｎ−１：Ｎ−Ｋ］）と、タグデータのＮビットのうち上位Ｋビット（tagway［Ｎ−１：Ｎ−Ｋ］）とを比較することができる。また、タグ比較部１１０は、タグアドレス（Tag  add）の残り（Ｎ−Ｋ）ビット（Tag  add［Ｎ−Ｋ−１：０］）と、タグデータの残り（Ｎ−Ｋ）ビット（tagway［Ｎ−Ｋ−１：０］）とを比較することができる。タグ比較部１１０は、比較結果に基づいて、キャッシュヒットであるか、あるいはキャッシュミスであるかを判断する。それについては、図４及び図５を参照し、詳細に説明する。
【００４７】
タグ比較部１１０がキャッシュヒットと判断した場合、タグアドレス（Tag  add）と一致するタグデータに対応するキャッシュデータが外部に出力される。タグ比較部１１０は、データ出力部１５０にキャッシュヒット信号を出力することができ、データ出力部１５０は、データメモリ１２５に保存されているキャッシュデータを読み取り、外部に出力することができる。一方、タグ比較部１１０がキャッシュミスと判断した場合、タグ比較部１１０は、メインメモリ２００にキャッシュミス信号を出力し、ターゲットデータをリクエストすることができる。また、タグ比較部１１０は、タグアドレス（Tag  add）の残り（Ｎ−Ｋ）ビットと、タグデータの残り（Ｎ−Ｋ）ビットとを比較した結果をアップデート制御部１３０に出力することができる。
【００４８】
アップデート制御部１３０は、タグアドレスの残り（Ｎ−Ｋ）ビットと、タグデータの残り（Ｎ−Ｋ）ビットとを比較した結果に基づいて、アップデート候補を決定することができる。アップデート制御部１３０は、アップデート候補として決定されたキャッシュデータのうちいずれか一つを削除し、メインメモリ２００から受信した新たなデータでアップデートすることができる。
【００４９】
図４は、本発明の一実施形態による、１つのセットに含まれる複数のウェイのうち１つのウェイに対応するタグデータを、タグアドレスと比較する方法について説明するために参照される図面である。
【００５０】
図４を参照すれば、タグメモリ１２３に保存されたタグデータ及びタグアドレスは、Ｎビットで示すことができる。また、タグ比較部１１０は、第１比較器４１０、第２比較器４２０及びＡＮＤ演算器４３０を含んでもよい。第１比較器４１０は、Ｋビット比較器でもあり、第２比較器４２０は、（Ｎ−Ｋ）ビット比較器でもある。
【００５１】
タグ比較部１１０は、第１比較器４１０を利用して、タグアドレス（Tag  add）の上位Ｋ（１≦Ｋ＜Ｎ）ビット（Tag  add［Ｎ−１：Ｎ−Ｋ］）と、タグデータの上位Ｋビット（tagway［Ｎ−１：Ｎ−Ｋ］）とを比較することができる。また、タグ比較部１１０は、第２比較器４２０を利用して、タグアドレス（Tag  add）の残り（Ｎ−Ｋ）ビット（Tag  add［Ｎ−Ｋ−１：０］）と、タグデータの残り（Ｎ−Ｋ）ビット（tagway［Ｎ−Ｋ−１：０］）とを比較することができる。
【００５２】
第１比較器４１０は、タグアドレスの上位Ｋ（１≦Ｋ＜Ｎ）ビット（Tag  add［Ｎ−１：Ｎ−Ｋ］）と、タグデータそれぞれの上位Ｋビット（tagway［Ｎ−１：Ｎ−Ｋ］）とが一致する場合、「１」を出力し、一致しない場合、「０」を出力することができる。または反対に、タグアドレスの上位Ｋ（１≦Ｋ＜Ｎ）ビット（Tag  add［Ｎ−１：Ｎ−Ｋ］）と、タグデータの上位Ｋビット（tagway［Ｎ−１：Ｎ−Ｋ］）とが一致する場合、「０」を出力し、一致しない場合、「１」を出力することができる。ただし、それに限定されるものではない。
【００５３】
また、第２比較器４２０は、タグアドレスの残り（Ｎ−Ｋ）ビット（Tag  add［Ｎ−Ｋ−１：０］）と、タグデータの残り（Ｎ−Ｋ）ビット（tagway［Ｎ−Ｋ−１：０］）とが一致する場合、「１」を出力し、一致しない場合、「０」を出力することができる。または反対に、タグアドレスの残り（Ｎ−Ｋ）ビット（Tag  add［Ｎ−Ｋ−１：０］）と、タグデータの残り（Ｎ−Ｋ）ビット（tagway［Ｎ−Ｋ−１：０］）とが一致する場合、「０」を出力し、一致しない場合、「１」を出力することができる。ただし、それに限定されるものではない。
【００５４】
以下では、説明の便宜のために、第１比較器４１０及び第２比較器４２０は、入力されるビットデータが一致する場合、「１」を出力するとして説明する。
【００５５】
ＡＮＤ演算器４３０は、第１比較器４１０の出力値と、第２比較器４２０の出力値とを入力値にして、ＡＮＤ演算を行うことができる。例えば、タグアドレスの上位Ｋ（１≦Ｋ＜Ｎ）ビット（Tag  add［Ｎ−１：Ｎ−Ｋ］）と、タグデータそれぞれの上位Ｋビット（tagway［Ｎ−１：Ｎ−Ｋ］）とが一致（第１比較器４１０から「１」が出力される）し、タグアドレスの残り（Ｎ−Ｋ）ビット（Tag  add［Ｎ−Ｋ−１：０］）と、タグデータの残り（Ｎ−Ｋ）ビット（tagway［Ｎ−Ｋ−１：０］）とが一致（第２比較器４２０から「１」が出力される）する場合、ＡＮＤ演算器４３０は、「１」を出力することができる。
【００５６】
反対に、タグアドレスの上位Ｋ（１≦Ｋ＜Ｎ）ビット（Tag  add［Ｎ−１：Ｎ−Ｋ］）と、タグデータそれぞれの上位Ｋビット（tagway［Ｎ−１：Ｎ−Ｋ］）とが一致しないか、あるいはタグアドレスの残り（Ｎ−Ｋ）ビット（Tag  add［Ｎ−Ｋ−１：０］）と、タグデータの残り（Ｎ−Ｋ）ビット（tagway［Ｎ−Ｋ−１：０］）とが一致しない場合、ＡＮＤ演算器４３０は、「０」を出力することができる。
【００５７】
すなわち、ＡＮＤ演算器４３０で１が出力される場合、タグアドレスのＮビット（Tag  add［Ｎ−１：０］）と、タグデータのＮビット（tagway［Ｎ−１：０］）とが一致すると判断され、ＡＮＤ演算器４３０で０が出力される場合、タグアドレスのＮビット（Tag  add［Ｎ−１：０］）と、タグデータのＮビット（tagway［Ｎ−１：０］）とが一致しないと判断される。
【００５８】
図５は、本発明の一実施形態による、１つのセットに含まれる複数のウェイに対応するタグデータを、それぞれタグアドレスと比較する方法について説明するために参照される図面である。
【００５９】
図５を参照すれば、ウェイがＭ個である場合、タグ比較部１１０は、Ｍ個の第１比較器と、Ｍ個の第２比較器とを含み、２Ｍ個のＡＮＤ演算器を含んでもよい。
【００６０】
タグ比較部１１０は、図４で説明したように、複数のウェイに対応するタグデータそれぞれを、タグアドレス（Tag  add）と比較することができる。タグデータとタグアドレス（Tag  add）とを比較する方法については、図４で詳細に説明したので、ここでは説明を省略する。
【００６１】
一方、タグ比較部１１０は、第２ＡＮＤ演算器５１０をさらに含んでもよい。第２ＡＮＤ演算器５１０は、データメモリ１２５の当該ウェイにキャッシュデータが保存されているか否かを示す値（valid＿way）と、当該ウェイのタグデータ及びタグアドレスが一致するか否かを示す値とを入力される。そのとき、キャッシュデータが保存されているか否かを示す値（valid＿way）は、当該ウェイにキャッシュデータが保存されている場合、「１」を示し、当該ウェイにキャッシュデータが保存されていない場合、「０」を示すことができる。
【００６２】
それにより、当該ウェイに、キャッシュデータが保存されていないか（valid＿wayは「０」）、あるいは当該ウェイのタグデータとタグアドレス（Tag  add）とが一致しない場合、第２ＡＮＤ演算器５１０は、「０」を出力することができる。また、当該ウェイに、キャッシュデータが保存（valid＿wayは「１」）されており、当該ウェイのタグデータ及びタグアドレスが一致する場合、第２ＡＮＤ演算器５１０は、「１」を出力することができる。タグ比較部１１０は、ウェイにそれぞれ対応するＭ個の第２ＡＮＤ演算器から出力される値を、ベクトル（hit＿results［Ｍ−１：０］）として出力することができ、そのとき、ベクトルの大きさは、ウェイの数（Ｍ）と同一である。
【００６３】
例えば、図５に示されているように、キャッシュメモリが４ウェイキャッシュメモリによって構成される場合、第１ウェイに対応する第２ＡＮＤ演算器から１を出力し、第２ウェイに対応する第２ＡＮＤ演算器から０を出力し、第３ウェイに対応する第２ＡＮＤ演算器から０を出力し、第４ウェイに対応する第２ＡＮＤ演算器から０が出力することができる。また、出力されるベクトル（hit＿results）は、［１，０，０，０］として示すことができる。
【００６４】
そのとき、タグ比較部１１０は、ベクトルの成分のうちいずれか一つが１を示す場合、キャッシュヒットと判断する。すなわち、１を示す成分がある場合、当該成分に対応するウェイのタグデータがタグアドレスと一致し、タグアドレスと一致するタグデータに対応するキャッシュデータが、外部（例えば、コア５０）からリクエストされたターゲットデータであることを示す。
キャッシュヒットと判断されれば、データ出力部１５０は、タグアドレスと一致するタグデータに対応するキャッシュデータを、データメモリから読み取り、外部に出力することができる。
【００６５】
一方、タグ比較部１１０は、ベクトルの成分がいずれも０を示す場合、キャッシュミスと判断する。すなわち、全てのウェイのタグデータがタグアドレス（Tag  add）と一致せず、コア５０からリクエストされたターゲットデータが、キャッシュメモリ１２５に保存されていないことを示す。
【００６６】
キャッシュミスと判断されれば、タグ比較部１１０は、ウェイにそれぞれ対応する第１比較器で出力される値をベクトル（hit＿result＿ｈ［Ｍ−１：０］）に出力することができる。
【００６７】
図６は、本発明の一実施形態によるベクトル（hit＿results＿ｈ［Ｍ−１：０］）の一例を示す図面である。
【００６８】
そのとき、ベクトルの大きさは、ウェイの数（Ｍ）と同一であり、図６は、４個のウェイを有する場合のベクトル（hit＿results＿ｈ［Ｍ−１：０］）を示す図面である。ベクトル（hit＿results＿ｈ［Ｍ−１：０］）の成分のうち「０」を示す成分は、当該成分に対応するタグデータの上位Ｋビット（tagway［Ｎ−１：Ｎ−Ｋ］）が、タグアドレスの上位Ｋビット（Tag  add［Ｎ−１：Ｎ−Ｋ］）と一致しないことを示す。一方、ベクトル（hit＿result＿ｈ［］）の成分のうち「１」を示す成分は、当該成分に対応するタグデータの上位Ｋビット（tagway［Ｎ−１：Ｎ−Ｋ］）が、タグアドレスの上位Ｋビット（Tag  add［Ｎ−１：Ｎ−Ｋ］）と一致することを示す。
【００６９】
アップデート制御部１３０は、タグアドレスの上位Ｋビット（Tag  add［Ｎ−１：Ｎ−Ｋ］）と、タグデータの上位Ｋビット（tagway［Ｎ−１：Ｎ−Ｋ］）とが一致しない場合、当該タグデータに対応するキャッシュデータと、外部からリクエストされたデータ（ターゲットデータ）との空間的地域性（spatial  locality）がないと判断することができる。それにより、ベクトル（hit＿results＿ｈ［］）の成分のうち「０」を示す成分に対応するウェイのキャッシュデータを、アップデート候補として決定することができる。
【００７０】
アップデート制御部１３０は、キャッシュミスの場合、ターゲットデータをメインメモリ２００から受信し、アップデート候補として決定されたキャッシュデータのうちいずれか一つを削除し、メインメモリ２００から受信した新たなデータでアップデートすることができる。
【００７１】
データ出力部１５０は、メインメモリ２００から受信した新たなデータを、外部（例えば、コア５０）に出力することができる。
【００７２】
図７は、本発明の一実施形態による、キャッシュメモリ・システムのデータアップデート方法を示すフローチャートである。
【００７３】
図７を参照すれば、キャッシュメモリ・システム１００は、Ｎビットのタグアドレス（Tag  add［Ｎ−１：０］）を受信することができる（Ｓ７１０）。
【００７４】
例えば、図３で説明したように、キャッシュメモリ・システム１００は、外部からデータリクエストを受信することができ、リクエストされるデータに対応するセットアドレス（Set  add）及びタグアドレス（Tag  add）を含むアドレスビットを受信することができる。セットアドレス（Set  add）は、キャッシュメモリのロウアドレスを示すデータであり、タグアドレス（Tag  add）は、リクエストされるデータのメインメモリ２００での実際アドレスでもある。
【００７５】
また、タグアドレス（Tag  add）は、Ｎビットでもある。アドレスビットが受信されれば、キャッシュメモリ・システム１００は、セットアドレス（Set  add）が示すセットに含まれるタグデータを出力することができる。そのとき、タグデータは、タグアドレス（Tag  add）と同一のＮビットでもある。
【００７６】
キャッシュメモリ・システム１００は、出力されたタグデータそれぞれの上位Ｋビットと、タグアドレスの上位Ｋビットとを比較し、タグデータそれぞれの残り（Ｎ−Ｋ）ビットと、タグアドレスの残り（Ｎ−Ｋ）ビットとを比較することができる（Ｓ７２０）。
【００７７】
例えば、キャッシュメモリ・システム１００は、第１比較器４１０及び第２比較器４２０を含んでもよい。キャッシュメモリ・システム１００は、第１比較器４１０を利用して、タグアドレスの上位Ｋ（１≦Ｋ＜Ｎ）ビット（Tag  add［Ｎ−１：Ｎ−Ｋ］）と、タグデータの上位Ｋビット（tagway［Ｎ−１：Ｎ−Ｋ］）とを比較することができる。また、キャッシュメモリ・システム１００は、第２比較器４２０を利用して、タグアドレスの残り（Ｎ−Ｋ）ビット（Tag  add［Ｎ−Ｋ−１：０］）と、タグデータの残り（Ｎ−Ｋ）ビット（tagway［Ｎ−Ｋ−１：０］）とを比較することができる。
【００７８】
キャッシュメモリ・システム１００は、比較結果に基づいて、キャッシュヒットであるか、あるいはキャッシュミスであるかを判断することができる（Ｓ７３０）。
【００７９】
例えば、出力されたタグデータのうち、いずれか１つのタグデータが、タグアドレスと一致する場合、キャッシュメモリ・システム１００は、キャッシュヒットと判断する。一方、出力されたタグデータのうち、タグアドレスと一致するタグデータが存在しない場合、キャッシュメモリ・システム１００は、キャッシュミスと判断する。
【００８０】
そのとき、セットアドレス（Set  add）が示すセットのキャッシュデータのうち、有効ではないデータが存在する場合（少なくとも１つのキャッシュラインが空いている場合）、キャッシュメモリ・システム１００は、メインメモリから受信したターゲットデータを、空いているキャッシュラインに保存することができる。
【００８１】
一方、セットアドレス（Set  add）が示すセットのキャッシュデータがいずれも有効である場合（全てのキャッシュラインにキャッシュデータが保存されている場合）、キャッシュメモリ・システム１００は、タグデータそれぞれの上位Ｋビットと、タグアドレスの上位Ｋビットとを比較した結果により、当該タグデータに対応するキャッシュデータを、アップデート候補として決定することができる（Ｓ７４０）。
【００８２】
例えば、キャッシュメモリ・システム１００は、キャッシュミスと判断される場合、出力されたタグデータそれぞれに対して、タグデータの上位Ｋビット（tagway［Ｎ−１：Ｎ−Ｋ］）と、タグアドレスの上位Ｋビット（Tag  add［Ｎ−１：Ｎ−Ｋ］）とが一致する場合、当該タグデータに対応するキャッシュデータを、アップデート候補に含めることができる。一方、タグデータの上位Ｋビット（tagway［Ｎ−１：Ｎ−Ｋ］）と、タグアドレスの上位Ｋビット（Tag  add［Ｎ−１：Ｎ−Ｋ］）とが一致しない場合、当該タグデータに対応するキャッシュデータを、アップデート候補から除外させることができる。
【００８３】
キャッシュメモリ・システム１００は、決定されたアップデート候補のうちいずれか１つのキャッシュデータを削除し、新たなデータでアップデートすることができる（Ｓ７５０）。
【００８４】
キャッシュメモリ・システム１００は、キャッシュミスと判断される場合、キャッシュミス信号を出力し、メインメモリからターゲットデータを受信することができる。キャッシュメモリ・システム１００は、決定されたアップデート候補のうちいずれか１つのキャッシュデータを削除し、メインメモリ２００から受信したデータでアップデートすることができる。
【００８５】
図８は、本発明の一実施形態による、キャッシュメモリ・システムのキャッシュデータアップデート方法を示すフローチャートである。図８を参照すれば、キャッシュメモリ・システムは、セットアドレスが同一である複数のデータリクエストを受信することができる（Ｓ８１０）。
【００８６】
例えば、図１のコア５０がマルチコアによって構成される場合、キャッシュメモリ・システム１００は、同時に複数のデータリクエストを受信することができる。キャッシュメモリ・システム１００は、複数のデータそれぞれに対応するタグアドレス（Tag  add）及びセットアドレス（Set  add）を受信することができ、そのとき、複数のデータにそれぞれ対応するセットアドレスは同一である。
【００８７】
キャッシュメモリ・システム１００は、複数のデータそれぞれに対して、図４で説明したように、受信したタグアドレスの上位Ｋビット（Tag  add［Ｎ−１：Ｎ−Ｋ］）と、セットアドレス（Set  add）が示すセットに含まれるタグデータそれぞれの上位Ｋビット（tagway［Ｎ−１：Ｎ−Ｋ］）とを比較し、タグアドレスの残り（Ｎ−Ｋ）ビット（Tag  add［Ｎ−Ｋ−１：０］）と、タグデータそれぞれの（Ｎ−Ｋ）ビット（tagway［Ｎ−Ｋ−１：０］）とを比較することができる。キャッシュメモリ・システム１００は、比較結果に基づいて、リクエストされた複数のデータそれぞれに対して、キャッシュヒットであるか、あるいはキャッシュミスであるかを判断することができる。それについては、図５で詳細に説明したので、具体的な説明は省略する。
【００８８】
また、キャッシュミスの場合、キャッシュメモリ・システム１００は、複数のデータそれぞれに対して、図９に示されているように、ベクトル（hit＿results＿ｈ［］）を出力することができる。
【００８９】
例えば、キャッシュメモリ・システム１００が４個のデータを同時にリクエストされた場合、第１データに対応するベクトル（hit＿result＿ｈ［０］［Ｍ−１：０］＝［１０００］）、第２データに対応するベクトル（hit＿result＿ｈ［１］［Ｍ−１：０］＝［００００］）、第３データに対応するベクトル（hit＿result＿ｈ［２］［Ｍ−１：０］＝［０１１０］）、及び第４データに対応するベクトル（hit＿result＿ｈ［３］［Ｍ−１：０］＝［００００］）を出力することができる。
【００９０】
そのとき、ベクトルの成分値が１を示せば、タグアドレスの上位Ｋビット（Tag  add［Ｎ−１：Ｎ−Ｋ］）と、当該ウェイのタグデータの上位Ｋビット（tagway［Ｎ−１：Ｎ−Ｋ］）とが一致するという意味であり、ベクトルの成分値が０を示せば、タグアドレスの上位Ｋビット（Tag  add［Ｎ−１：Ｎ−Ｋ］）と、当該ウェイのタグデータの上位Ｋビット（tagway［Ｎ−１：Ｎ−Ｋ］）とが一致しないことを意味する。それについては、図６で詳細に説明したので、具体的な説明は省略する。
【００９１】
それにより、キャッシュメモリ・システム１００は、ベクトルの成分値に基づいて、複数のデータそれぞれに対するアップデート候補を決定することができる（Ｓ８２０）。
【００９２】
例えば、ベクトルの成分値が０である場合（当該ウェイのタグデータの上位Ｋビットと、タグアドレスの上位Ｋビットとが一致しない場合）、キャッシュメモリ・システム１００は、外部（例えば、コア５０）からリクエストされたデータと、当該タグデータに対応するキャッシュデータは、空間的地域性がないと判断することができる。それにより、キャッシュメモリ・システム１００は、ベクトル（hit＿results＿ｈ［］）の成分のうち「０」を示す成分に対応するウェイのキャッシュデータを、アップデート候補として決定することができる。
【００９３】
図９を参照すれば、キャッシュメモリ・システム１００は、第１データに対して、第２ウェイに対応するキャッシュデータ（第２キャッシュデータ）、第３ウェイに対応するキャッシュデータ（第３キャッシュデータ）、及び第４ウェイに対応するキャッシュデータ（第４キャッシュデータ）をアップデート候補として決定することができる。また、キャッシュメモリ・システム１００は、第２データ及び第４データに対して、第１ウェイないし第４ウェイそれぞれに対応するキャッシュデータ（第１キャッシュデータないし第４キャッシュデータ）をアップデート候補として決定することができ、第３データに対して、第１キャッシュデータ及び第４キャッシュデータを、アップデート候補として決定することができる。
【００９４】
複数のデータそれぞれに対して、アップデート候補が決定されれば、キャッシュメモリ・システム１００は、複数のデータに対して、アップデート候補として決定された回数が最多であるキャッシュデータを削除し、新たなデータでアップデートすることができる（Ｓ８３０）。
【００９５】
例えば、図９を参照すれば、第１キャッシュデータの場合、第２データないし第４データに対するアップデート候補として決定され、アップデート候補として決定された回数が３回である。また、第２キャッシュデータの場合も、第２データないし第４データに対するアップデート候補として決定され、アップデート候補として決定された回数が３回である。また、第３キャッシュデータの場合、第１データ、第２データ及び第４データに対するアップデート候補として決定され、アップデート候補として決定された回数が３回である。第４キャッシュデータの場合、第１データないし第４データに対するアップデート候補として決定され、アップデート候補として決定された回数が４回である。
【００９６】
それにより、キャッシュメモリ・システム１００は、第４キャッシュデータを削除し、新たなデータでアップデートすることができる。
【００９７】
一方、キャッシュメモリ・システム１００は、図９に示されているように、複数のベクトルが出力される場合、複数のベクトルの成分値をウェイ別に合算することができる。そのとき、キャッシュメモリ・システム１００は、複数のウェイのうち合算値が最小であるウェイを選択することができ、選択されたウェイに対応するキャッシュデータを削除し、新たなデータでアップデートすることができる。
【００９８】
例えば、各データに対して、第１ウェイの合算値は１となり、第２ウェイの合算値は１となり、第３ウェイの合算値は１となり、第４ウェイの合算値は０となる。キャッシュメモリ・システム１００は、合算値が最小である第４ウェイを選択することができ、選択された第４ウェイに対応するキャッシュデータを削除し、新たなデータでアップデートすることができる。
【００９９】
図１０は、本発明の一実施形態による、１つのセットに含まれる複数のウェイのうち１つのウェイに対応するタグデータを、タグアドレスと比較する方法について説明するために参照される図面である。
【０１００】
図１０を参照すれば、タグメモリに保存されたタグデータ及びタグアドレスは、Ｎビットで示すことができる。また、タグ比較部１１０は、第３比較器１０１０、減算器１０２０を含んでもよい。第３比較器１０１０は、Ｎビット比較器でもあり、減算器１０２０は、Ｋビット減算器でもある。
【０１０１】
タグ比較部１１０は、第３比較器１０１０を利用して、タグアドレスのＮビット（Tag  add［Ｎ−１：０］）と、タグデータのＮビット（tagway［Ｎ−１：０］）とを比較することができる。第３比較器１０１０は、タグアドレスのＮビット（Tag  add［Ｎ−１：０］）と、タグデータのＮビット（tagway［Ｎ−１：０］）とが一致する場合、「１」を出力し、一致しない場合、「０」を出力することができる。または、反対に、タグアドレスのＮビット（Tag  add［Ｎ−１：０］）と、タグデータのＮビット（tagway［Ｎ−１：０］）とが一致する場合、「０」を出力し、一致しない場合、「１」を出力することができる。ただし、それに限定されるものではない。以下では、説明の便宜のために、第３比較器１０１０に入力されるビットデータが一致する場合、「１」を出力するとして説明する。
【０１０２】
また、タグ比較部１１０は、減算器１０２０を利用して、タグアドレスの上位Ｋビット（Tag  add［Ｎ−１：Ｎ−Ｋ］）と、タグデータの上位Ｋ（１≦Ｋ＜Ｎ）ビット（tagway［Ｎ−１：Ｎ−Ｋ］）との差値を演算することができる。
【０１０３】
また、タグ比較部１１０は、第４比較器１０３０をさらに含み、第４比較器１０３０は、減算器１０２０から出力された差値が、臨界値以下であるならば、１を出力し、減算器１０２０から出力された差値が、臨界値以上であるならば、０を出力することができる。ただし、それに限定するものではない。
【０１０４】
図１１は、本発明の一実施形態による、１つのセットに含まれる複数のウェイに対応するタグデータを、それぞれタグアドレスと比較する方法について説明するために参照される図面である。
【０１０５】
図１１を参照すれば、ウェイがＭ個である場合、タグ比較部１１０は、Ｍ個の第３比較器と、Ｍ個の減算器とを含み、Ｍ個の第２ＡＮＤ演算器を含んでもよい。
【０１０６】
タグ比較部１１０は、図１０で説明したように、複数のウェイに対応するタグデータそれぞれを、タグアドレスと比較することができる。タグデータとタグアドレスとを比較する方法については、図１０で詳細に説明したので、ここでは説明を省略する。
【０１０７】
一方、タグ比較部１１０は、第２ＡＮＤ演算器５１０をさらに含んでもよい。第２ＡＮＤ演算器５１０は、データメモリ１２５の当該ウェイにキャッシュデータが保存されているか否かを示す値（valid＿way）と、当該ウェイのタグデータ及びタグアドレスが一致するか否かを示す値とを入力される。そのとき、キャッシュデータが保存されているか否かを示す値（valid＿way）は、当該ウェイにキャッシュデータが保存されている場合、「１」を示し、当該ウェイにキャッシュデータが保存されていない場合「０」を示すことができる。
【０１０８】
それにより、当該ウェイにキャッシュデータが保存されていないか（valid＿wayは「０」）、あるいは当該ウェイのタグデータ及びタグアドレスが一致しない場合、第２ＡＮＤ演算器５１０は、「０」を出力することができる。また、当該ウェイにキャッシュデータが保存（valid）されており、当該ウェイのタグデータ及びタグアドレスが一致する場合、第２ＡＮＤ演算器５１０は、「１」を出力することができる。
【０１０９】
タグ比較部１１０は、ウェイにそれぞれ対応するＭ個の第２ＡＮＤ演算器から出力される値を、ベクトル（hit＿results［］）として出力することができ、そのとき、ベクトルの大きさは、ウェイ数（Ｍ）と同一である。例えば、第１ウェイに対応する第２ＡＮＤ演算器から１を出力され、第２ウェイに対応する第２ＡＮＤ演算器から０を出力され、第３ウェイに対応する第２ＡＮＤ演算器から０を出力され、第４ウェイに対応する第２ＡＮＤ演算器から０が出力されれば、ベクトル（hit＿result）は、［１，０，０，０］として示すことができる。
【０１１０】
そのとき、タグ比較部１１０は、ベクトルの成分のうちいずれか一つが１を示す場合、キャッシュヒットと判断する。すなわち、１を示す成分がある場合、当該成分に対応するウェイのタグデータがタグアドレスと一致し、タグアドレスと一致するタグデータに対応するキャッシュデータが、外部（例えば、コア５０）からリクエストされたターゲットデータであることを示す。
【０１１１】
キャッシュヒットと判断されれば、データ出力部１５０は、タグアドレスと一致するタグデータに対応するキャッシュデータを、データメモリから読み取り、外部に出力することができる。
【０１１２】
一方、タグ比較部１１０は、ベクトルの成分がいずれも０を示す場合、キャッシュミスと判断する。すなわち、全てのウェイのタグデータがタグアドレスと一致せず、外部（例えば、コア５０）からリクエストされたターゲットデータが、キャッシュメモリに保存されていないことを示す。
【０１１３】
キャッシュミスと判断されれば、タグ比較部１１０は、ウェイにそれぞれ対応する第４比較器１０３０から出力される値を、ベクトル（hit＿results＿ｄ［］）に出力することができる。
【０１１４】
そのとき、ベクトルの大きさは、ウェイの数（Ｍ）と同一である。ベクトルの成分のうち０を示す成分は、当該成分に対応するタグデータの上位Ｋビットと、タグアドレスの上位Ｋビットとの差が臨界値より大きいことを示す。一方、ベクトルの成分のうち「１」を示す成分は、当該成分に対応するタグデータの上位Ｋビットと、タグアドレスの上位Ｋビットとの差が臨界値以下であることを示す。
【０１１５】
アップデート制御部１３０は、タグアドレスの上位Ｋビットと、タグデータの上位Ｋビットとの差が臨界値より大きい場合、当該タグデータに対応するキャッシュデータと、外部からリクエストされたデータ（ターゲットデータ）との空間的地域性がないと判断することができる。それにより、ベクトル（hit＿result＿ｈ［］）の成分のうち、「０」を示す成分に対応するウェイのキャッシュデータを、アップデート候補として決定することができる。
【０１１６】
アップデート制御部１３０は、キャッシュミスの場合、ターゲットデータをメインメモリ２００から受信し、アップデート候補として決定されたキャッシュデータのうちいずれか一つを削除し、メインメモリ２００から受信した新たなデータでアップデートすることができる。また、データ出力部１５０は、メインメモリ２００から受信した新たなデータを外部に出力することができる。
【０１１７】
図１２は、本発明の一実施形態による、キャッシュメモリ・システムのデータアップデート方法を示すフローチャートである。図１２を参照すれば、キャッシュメモリ・システム１００は、Ｎビットのタグアドレスを受信することができる（Ｓ１２１０）。
【０１１８】
例えば、図３で説明したように、キャッシュメモリ・システム１００は、外部からデータリクエストを受信することができ、リクエストされるデータに対応するセットアドレス（Set  add）及びタグアドレス（Tag  add）を含むアドレスビットを受信することができる。セットアドレス（Set  add）は、キャッシュメモリのロウアドレスを示すデータであり、タグアドレス（Tag  add）は、リクエストされるデータのメインメモリ２００での実際アドレスでもある。
【０１１９】
また、タグアドレス（Tag  add）は、Ｎビットでもある。アドレスビットが受信されれば、キャッシュメモリ・システム１００は、セットアドレス（Set  add）が示すセットに含まれるタグデータを出力することができる。そのとき、タグデータは、タグアドレス（Tag  add）と同一のＮビットでもある。
【０１２０】
キャッシュメモリ・システム１００は、出力されたタグデータそれぞれのＮビットと、タグアドレスのＮビットとを比較し、タグデータそれぞれの上位Ｋビットと、タグアドレスの上位Ｋビットとの差値を演算し、臨界値と比較することができる（Ｓ１２２０）。
【０１２１】
例えば、キャッシュメモリ・システム１００は、第３比較器１０１０、減算器１０２０及び第４比較器１０３０を含んでもよい。キャッシュメモリ・システム１００は、第３比較器１０１０を利用して、タグアドレスのＮビット（Tag  add［Ｎ−１：０］）と、タグデータのＮビット（tagway［Ｎ−１：０］）とを比較することができる。また、キャッシュメモリ・システム１００は、減算器１０２０を利用して、タグアドレスの上位Ｋビット（Tag  add［Ｎ−１：Ｎ−Ｋ］）と、タグデータの上位Ｋビット（tagway［Ｎ−１：Ｎ−Ｋ］）との差値を演算することができる。また、キャッシュメモリ・システム１００は、第４比較器１０３０を利用して、演算された差値が臨界値以下であるか否かを判断することができる。
【０１２２】
キャッシュメモリ・システム１００は、出力されたタグデータそれぞれのＮビットと、タグアドレスのＮビットとを比較した結果に基づいて、キャッシュヒットであるか、あるいはキャッシュミスであるかを判断することができる（Ｓ１２３０）。
【０１２３】
例えば、出力されたタグデータのうち、いずれか１つのタグデータが、タグアドレスと一致する場合、キャッシュメモリ・システムは、キャッシュヒットと判断する。一方、出力されたタグデータのうち、タグアドレスと一致するタグデータが存在しない場合、キャッシュミスと判断する。
【０１２４】
そのとき、セットアドレス（Set  add）が示すセットのキャッシュデータのうち、有効ではないデータが存在する場合（少なくとも１つのキャッシュラインが空いている場合）、メインメモリから受信したターゲットデータを、空いているキャッシュラインに保存することができる。
【０１２５】
一方、セットアドレス（Set  add）が示すセットのキャッシュデータがいずれも有効である場合（全てのキャッシュラインにキャッシュデータが保存されている場合）、タグデータそれぞれの上位Ｋビットと、タグアドレスの上位Ｋビットとの差値により、当該タグデータに対応するキャッシュデータを、アップデート候補として決定することができる（Ｓ１２４０）。
【０１２６】
例えば、キャッシュメモリ・システム１００は、キャッシュミスと判断される場合、出力されたタグデータそれぞれに対して、タグデータの上位Ｋビット（tagway［Ｎ−１：Ｎ−Ｋ］）と、タグアドレスの上位Ｋビット（Tag  add［Ｎ−１：Ｎ−Ｋ］）との差値が臨界値超過である場合、当該タグデータに対応するキャッシュデータを、アップデート候補に含める。一方、タグデータの上位Ｋビット（tagway［Ｎ−１：Ｎ−Ｋ］）と、タグアドレスの上位Ｋビット（Tag  add［Ｎ−１：Ｎ−Ｋ］）との差値が臨界値以下である場合、当該タグデータに対応するキャッシュデータを、アップデート候補から除外することができる。
【０１２７】
キャッシュメモリ・システム１００は、決定されたアップデート候補のうちいずれか１つのキャッシュデータを削除し、新たなデータでアップデートすることができる（Ｓ１２５０）。
【０１２８】
キャッシュメモリ・システム１００は、キャッシュミスと判断される場合、キャッシュミス信号を出力し、メインメモリ２００からターゲットデータを受信することができる。キャッシュメモリ・システム１００は、決定されたアップデート候補のうちいずれか１つのキャッシュデータを削除し、メインメモリ２００から受信したデータでアップデートすることができる。
【０１２９】
また、本発明の一実施形態によるキャッシュメモリ・システム１００は、セットアドレスが同一である複数のデータリクエストを受信することができる。そのような場合、キャッシュメモリ・システム１００は、複数のデータそれぞれに対して、図１０及び図１１で説明したように、タグアドレス及びセットアドレスが示すセットに含まれるタグデータそれぞれを比較することができる。また、キャッシュメモリ・システム１００は、複数のデータそれぞれに対して、図１０及び図１１で説明したように、タグアドレスの上位Ｋビットと、タグデータそれぞれの上位Ｋビットとの差値を演算することができる。
【０１３０】
キャッシュメモリ・システム１００は、キャッシュミスである場合、複数のデータそれぞれに対して、図１３に示されているように、ベクトル（hit＿results＿ｄ［］）を出力することができる。
【０１３１】
例えば、キャッシュメモリ・システム１００が４個のデータを同時にリクエストされた場合、第１データに対応するベクトル（hit＿results＿ｄ［０］［Ｍ−１：０］＝［０００１］）、第２データに対応するベクトル（hit＿results＿ｄ［１］［Ｍ−１：０］＝［００００］）、第３データに対応するベクトル（hit＿results＿ｄ［２］［Ｍ−１：０］＝［１１００］、）及び第４データに対応するベクトル（hit＿results＿ｄ［３］［Ｍ−１：０］＝［００００］）を出力することができる。
【０１３２】
そのとき、ベクトルの成分値が１を示せば、タグアドレスの上位Ｋビット（Tag  add［Ｎ−１：Ｎ−Ｋ］）と、当該ウェイのタグデータの上位Ｋビット（tagway［Ｎ−１：Ｎ−Ｋ］）との差値が、臨界値以下であることを意味する。一方、ベクトルの成分値が０を示せば、タグアドレスの上位Ｋビット（Tag  add［Ｎ−１：Ｎ−Ｋ］）と、当該ウェイのタグデータの上位Ｋビット（tagway［Ｎ−１：Ｎ−Ｋ］）との差値が、臨界値より大きいことを意味する。
【０１３３】
それにより、キャッシュメモリ・システム１００は、ベクトルの成分値に基づいて、複数のデータそれぞれに対するアップデート候補を決定することができる。例えば、ベクトルの成分値が０である場合（当該ウェイのタグデータの上位Ｋビットと、タグアドレスの上位Ｋビットとの差値が臨界値より大きい場合）、キャッシュメモリ・システム１００は、外部からリクエストされたデータと、当該タグデータに対応するキャッシュデータは、空間的地域性がないと判断することができる。
【０１３４】
それにより、キャッシュメモリ・システム１００は、ベクトル（hit＿result＿ｄ［］）の成分のうち「０」を示す成分に対応するウェイのキャッシュデータを、アップデート候補として決定することができる。
【０１３５】
図１３を参照すれば、キャッシュメモリ・システム１００は、第１データに対して、第１ウェイに対応するキャッシュデータ（第１キャッシュデータ）、第２ウェイに対応するキャッシュデータ（第２キャッシュデータ）、及び第３ウェイに対応するキャッシュデータ（第３キャッシュデータ）を、第１データに対するアップデート候補として決定することができる。また、キャッシュメモリ・システム１００は、第２データ及び第４データに対して、第１ウェイないし第４ウェイそれぞれに対応するキャッシュデータ（第１キャッシュデータないし第４キャッシュデータ）を、第２データ及び第４データに対するアップデート候補として決定することができ、第３データに対して、第１キャッシュデータ及び第２キャッシュデータを、第３データに対するアップデート候補として決定することができる。
【０１３６】
複数のデータそれぞれに対して、アップデート候補が決定されれば、キャッシュメモリ・システム１００は、複数のデータに対して、アップデート候補として決定された回数が最多であるキャッシュデータを削除し、新たなデータでアップデートすることができる。
アップデート候補のうち、アップデート候補として決定された回数が最多であるキャッシュデータを選択する方法については、図９で詳細に説明したので、具体的な説明は省略する。
【０１３７】
また、キャッシュメモリ・システム１００は、複数のベクトルが出力される場合、複数のベクトルの成分値をウェイ別に合算することができる。そのとき、キャッシュメモリ・システム１００は、複数のウェイのうち合算値が最小であるウェイを選択することができ、選択されたウェイに対応するキャッシュデータを削除し、新たなデータでアップデートすることができる。
【０１３８】
アップデート候補のうちウェイ別に合算値に基づいて、キャッシュデータを選択する方法についても、図９で詳細に説明したので、具体的な説明は省略する。
【０１３９】
本発明によるキャッシュメモリ・システム及びその動作方法は、前述のように説明された実施形態の構成及び方法が限定されるように適用されるものではなく、前記実施形態は、多様な変形が行われるように、各実施形態の全部または一部が選択的に組み合わされて構成される。
【０１４０】
一方、本発明のキャッシュメモリ・システム及びその動作方法は、コンピュータで読み取り可能な記録媒体に、コンピュータで読み取り可能なコードとして具現化することが可能である。コンピュータで読み取り可能な記録媒体は、コンピュータシステムによって読み取り可能なデータが保存される全ての種類の記録装置を含む。コンピュータで読み取り可能な記録媒体の例としては、ＲＯＭ（read  only  memory）、ＲＡＭ（random  access  memory）、ＣＤ（compact  disc）−ＲＯＭ、磁気テープ、フロッピー（登録商標）ディスク、光データ保存装置などがあり、またインターネットを介した転送のようなキャリアウェーブの形態で具現化されるものも含む。また、コンピュータで読み取り可能な記録媒体は、ネットワークに接続されたコンピュータシステムに分散され、分散方式でプロセッサで読み取り可能なコードが保存されて実行される。
【０１４１】
以上、本発明の実施形態について図示して説明したが、本発明は、前述の特定実施形態に限定されるものではなく、特許請求の範囲で請求する本発明の要旨を外れることなしに、当該発明が属する技術分野における当業者によって、多様な変形実施が可能であることは言うまでもなく、そのような変形実施は、本発明の技術的思想や展望から個別的に理解されるものではない。
【産業上の利用可能性】
【０１４２】
本発明のキャッシュメモリ・システム及びその動作方法は、例えば、データ処理関連の技術分野に効果的に適用可能である。
【符号の説明】
【０１４３】
１０      データ処理装置
５０      コア
６０      システムバス
１００    キャッシュメモリ・システム
１１０    タグ比較部
１２０    キャッシュメモリ
１２３    タグメモリ
１２５    データメモリ
１３０    アップデート制御部
２００    メインメモリ
３１０    セットアドレスが示すセット
３２０    アドレスビット
４１０    第１比較器
４２０    第２比較器
４３０    ＡＮＤ演算器
５１０    第２ＡＮＤ演算器
１０１０  第３比較器
１０２０  演算器
１０３０  第４比較器
【図１】
0006339987.tif 000002
【図２】
0006339987.tif 000003
【図３】
0006339987.tif 000004
【図４】
0006339987.tif 000005
【図５】
0006339987.tif 000006
【図６】
0006339987.tif 000007
【図７】
0006339987.tif 000008
【図８】
0006339987.tif 000009
【図９】
0006339987.tif 000010
【図１０】
0006339987.tif 000011
【図１１】
0006339987.tif 000012
【図１２】
0006339987.tif 000013
【図１３】
0006339987.tif 000014