JP2016062613A - キャッシュメモリ・システム及びその動作方法 - Google Patents

キャッシュメモリ・システム及びその動作方法 Download PDF

Info

Publication number
JP2016062613A
JP2016062613A JP2015181168A JP2015181168A JP2016062613A JP 2016062613 A JP2016062613 A JP 2016062613A JP 2015181168 A JP2015181168 A JP 2015181168A JP 2015181168 A JP2015181168 A JP 2015181168A JP 2016062613 A JP2016062613 A JP 2016062613A
Authority
JP
Japan
Prior art keywords
data
tag
cache
bits
address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2015181168A
Other languages
English (en)
Other versions
JP6339987B2 (ja
Inventor
雄 徐
Woong Seo
雄 徐
尚 憲 李
San-Heon Yi
尚 憲 李
秀 晶 柳
Soo Jung Ryu
秀 晶 柳
淵 坤 趙
Enkon Cho
淵 坤 趙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2016062613A publication Critical patent/JP2016062613A/ja
Application granted granted Critical
Publication of JP6339987B2 publication Critical patent/JP6339987B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/604Details relating to cache allocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】キャッシュミス発生時、交替されるキャッシュデータを効率的に決定するためのキャッシュメモリ・システムを提供する。
【解決手段】複数のウェイを有する少なくとも1つのセットを含み、キャッシュデータに対応するNビットのタグデータを保存するタグメモリ123と、受信したセットアドレスが示すセットに含まれるタグデータそれぞれの上位K(1≦K<N)ビットと、受信したNビットのタグアドレスの上位Kビットとを比較し、タグデータそれぞれの残り(N−K)ビットと、タグアドレスの残り(N−K)ビットとを比較するタグ比較部110と、キャッシュミスの場合、タグデータそれぞれの上位Kビットと、タグアドレスの上位Kビットとの比較結果でタグデータに対応するキャッシュデータをアップデート候補とし、アップデート候補のいずれか1つのキャッシュデータを削除し、新たなデータでアップデートするアップデート制御部130と、を含む。
【選択図】図2

Description

本発明は、キャッシュメモリ・システム及びその動作方法に関する。
一般的に、CPU(central processing unit)やGPU(graphics processing unit)のような処理装置は、大容量の外部メモリに保存された命令語やデータにアクセスして処理する。ほとんどの大容量外部メモリの処理速度は、処理装置に比べ、はるかに遅いために、動作速度を改善するために、キャッシュメモリ・システムを使用している。
キャッシュメモリ・システムは、処理装置が最近アクセスしたデータを保存していて、処理装置が同一データを再びリクエストする場合、外部メモリにアクセスせず、高速のキャッシュメモリにアクセスさせることにより、データ転送速度を速くする役割を行う。
処理装置がリクエストしたデータが、キャッシュメモリ・システムのデータメモリに積載されている場合(キャッシュヒット(cache hit))には、データメモリのデータが処理装置に伝送され、処理装置がリクエストしたデータがない場合(キャッシュミス(cache miss))には、外部メモリからデータを読み取る。また、キャッシュメモリ・システムは、データメモリに保存されているキャッシュデータのうちいずれか一つを削除し、読み取ったデータでアップデートし、読み取ったデータは、処理装置に伝送される。
このようなキャッシュメモリ・システムは、マッピング方式により、セット関連マッピング方式を利用するセット関連キャッシュメモリと、直接マッピング方式を利用する直接マップキャッシュメモリ(direct mapped cache memory)とで具現化することができる。セット関連キャッシュメモリは、複数のウェイ(way)を有し、キャッシュミスの場合、交替政策(replacement status)によって、いずれか1つのウェイに対応するキャッシュデータを外部メモリから読み取った新たなデータでアップデートする。
本発明が解決しようとする課題は、キャッシュミス発生時、交替されるキャッシュデータを効率的に決定するためのキャッシュメモリ・システム及びその動作方法を提供するところにある。
本発明の一実施形態によるキャッシュメモリ・システムは、メインメモリに保存されたデータのうち一部に該当するキャッシュデータを保存するデータメモリ;複数のウェイを有する少なくとも1つのセットを含み、前記キャッシュデータにそれぞれ対応するNビットのタグデータを、前記少なくとも1つのセットで保存するタグメモリ;外部から受信したセットアドレスが示すセットに含まれる前記タグデータそれぞれの上位K(1≦K<N)ビットと、前記外部から受信したNビットのタグアドレスの上位Kビットとを比較し、前記タグデータそれぞれの残り(N−K)ビットと、前記タグアドレスの残り(N−K)ビットとを比較し、キャッシュヒットであるか、あるいはキャッシュミスであるかを判断するタグ比較部;及び前記キャッシュミスと判断される場合、前記タグデータそれぞれの上位Kビットと、前記タグアドレスの上位Kビットとの比較結果によって、当該タグデータに対応するキャッシュデータを、アップデート候補として決定し、前記アップデート候補のうちいずれか1つのキャッシュデータを削除し、新たなデータでアップデートするアップデート制御部;を含んでもよい。
本発明の一実施形態によるアップデート制御部は、前記タグデータのうちいずれか1つの上位Kビットが、前記タグアドレスの上位Kビットと一致しない場合、前記いずれか一つに対応するキャッシュデータを、前記アップデート候補として決定することができる。
本発明の一実施形態によるタグ比較部は、前記タグデータのうちいずれか一つも、前記タグアドレスと一致しない場合、前記キャッシュミスと判断し、前記タグデータそれぞれの上位Kビットと、前記タグアドレスの上位Kビットとの比較結果を、前記アップデート制御部に出力することができる。
本発明の一実施形態によるタグ比較部は、前記タグデータのうちいずれか一つと、前記タグアドレスが一致する場合、前記キャッシュヒットと判断することができる。
本発明の一実施形態によるキャッシュメモリ・システムは、前記キャッシュヒットと判断した場合、前記タグアドレスと一致するタグデータに対応するキャッシュデータを読み取り、前記外部に出力するデータ出力部をさらに含んでもよい。
本発明の一実施形態によるキャッシュメモリ・システムが、前記セットアドレスが同一である複数のデータリクエストを受信する場合、前記アップデート制御部は、前記複数のデータそれぞれに対して受信した前記タグアドレスの上位Kビットと、前記タグデータそれぞれの上位Kビットとを比較した結果により、前記複数のデータそれぞれの前記アップデート候補を決定し、前記アップデート候補に含まれるキャッシュデータのうち前記アップデート候補として決定された回数が最多であるキャッシュデータを削除し、新たなデータでアップデートすることができる。
本発明の一実施形態によるタグ比較部は、前記複数のデータにそれぞれ対応する比較ベクトルを出力し、前記比較ベクトルそれぞれは、前記ウェイの個数と同一個数の成分を含み、前記成分は、当該データのタグアドレスの上位Kビットと、前記タグデータそれぞれの上位Kビットとを比較し、一致する場合、第1値を示し、一致しない場合、第2値を示し、前記アップデート制御部は、前記比較ベクトルの前記成分値を前記ウェイ別に合算し、前記合算した結果値に基づいて、前記複数のウェイのうちいずれか一つに対応するキャッシュデータを削除し、新たなデータでアップデートすることができる。
本発明の一実施形態による第1値は1であり、第2値は0であり、前記アップデート制御部は、前記ウェイ別に合算した結果値のうち最小値を有するウェイに対応するキャッシュデータを削除し、新たなデータでアップデートすることができる。
本発明の一実施形態によるキャッシュメモリ・システムは、メインメモリに保存されたデータのうち一部に該当するキャッシュデータを保存するデータメモリ;複数のウェイを有する少なくとも1つのセットを含み、前記キャッシュデータにそれぞれ対応するNビットのタグデータを、前記少なくとも1つのセットで保存するタグメモリ;外部から受信したセットアドレスが示すセットに含まれる前記タグデータそれぞれの上位K(1≦K<N)ビットと、前記外部から受信したNビットのタグアドレスの上位Kビットとの差値を計算し、前記タグアドレスと、前記タグデータそれぞれとを比較し、キャッシュヒットであるか、あるいはキャッシュミスであるかを判断するタグ比較部;及び前記キャッシュミスと判断される場合、前記タグデータそれぞれの上位Kビットと、前記タグアドレスの上位Kビットとの差値に基づいて、当該タグデータに対応するキャッシュデータを、アップデート候補として決定し、前記アップデート候補のうちいずれか1つのキャッシュデータを削除し、新たなデータでアップデートするアップデート制御部;を含んでもよい。
本発明の一実施形態によるアップデート制御部は、前記差値が臨界値以上である場合、前記タグデータに対応するキャッシュデータを、アップデート候補として決定することができる。
本発明の一実施形態によるタグ比較部は、前記タグデータのうちいずれか一つも、前記タグアドレスと一致しない場合、前記キャッシュミスと判断し、前記アップデート制御部に、前記タグデータそれぞれの上位Kビットと、前記タグアドレスの上位Kビットとの差値を、前記アップデート制御部に出力することができる。
本発明の一実施形態によるキャッシュメモリ・システムが、前記セットアドレスが同一である複数のデータリクエストを受信する場合、前記アップデート制御部は、前記複数のデータそれぞれに対して受信した前記タグアドレスの上位Kビットと、前記タグデータそれぞれの上位Kビットとの差値により、前記複数のデータそれぞれの前記アップデート候補を決定し、前記アップデート候補に含まれるキャッシュデータのうち、前記アップデート候補として決定された回数が最多であるキャッシュデータを削除し、新たなデータでアップデートすることができる。
本発明の一実施形態によるキャッシュメモリ・システムの動作方法は、外部からリクエストされるデータに対応するセットアドレス、及びNビットのタグアドレスを受信する段階、受信したセットアドレスが示すセットに含まれるタグデータそれぞれの上位K(1≦K<N)ビットと、前記外部から受信したNビットのタグアドレスの上位Kビットとを比較し、前記タグデータそれぞれの残り(N−K)ビットと、前記タグアドレスの残り(N−K)ビットとを比較し、キャッシュヒットであるか、あるいはキャッシュミスであるかを判断する段階、前記キャッシュミスと判断される場合、前記タグデータそれぞれの上位Kビットと、前記タグアドレスの上位Kビットとの比較結果により、当該タグデータに対応するキャッシュデータを、アップデート候補として決定する段階、及び前記アップデート候補のうちいずれか1つのキャッシュデータを削除し、新たなデータでアップデートする段階を含んでもよい。
本発明の一実施形態によるアップデート候補を決定する段階は、前記タグデータのうちいずれか1つの上位Kビットが、前記タグアドレスの上位Kビットと一致しない場合、前記いずれか一つに対応するキャッシュデータを、前記アップデート候補として決定する段階を含んでもよい。
本発明の一実施形態によるキャッシュミスであるか否かを判断する段階は、前記タグデータのうちいずれか一つも、前記タグアドレスと一致しない場合、前記キャッシュミスと判断する段階を含み、前記方法は、前記キャッシュミスと判断される場合、前記タグデータそれぞれの上位Kビットと、前記タグアドレスの上位Kビットとの比較結果を出力する段階をさらに含んでもよい。
本発明の一実施形態によるキャッシュヒットであるか、あるいはキャッシュミスであるかを判断する段階は、前記タグデータのうちいずれか一つと、前記タグアドレスが一致する場合、前記キャッシュヒットと判断する段階を含んでもよい。
本発明の一実施形態によるキャッシュメモリ・システムの動作方法は、前記キャッシュヒットと判断した場合、前記タグアドレスと一致するタグデータに対応するキャッシュデータを読み取り、前記外部に出力する段階をさらに含んでもよい。
本発明の一実施形態によるキャッシュメモリ・システムの動作方法は、前記セットアドレスが同一である複数のデータリクエストを受信する段階をさらに含み、前記アップデート候補を決定する段階は、前記複数のデータそれぞれに対して受信した前記タグアドレスの上位Kビットと、前記タグデータそれぞれの上位Kビットとを比較した結果により、前記複数のデータそれぞれの前記アップデート候補を決定する段階であり、前記アップデートする段階は、前記アップデート候補に含まれるキャッシュデータのうち、前記アップデート候補として決定された回数が最多であるキャッシュデータを削除し、新たなデータでアップデートする段階でもある。
本発明の一実施形態によるキャッシュメモリ・システムの動作方法は、前記複数のデータにそれぞれ対応する比較ベクトルを出力する段階をさらに含み、前記比較ベクトルそれぞれは、前記ウェイの個数と同一個数の成分を含み、前記成分は、当該データのタグアドレスの上位Kビットと、前記タグデータそれぞれの上位Kビットとを比較し、一致する場合、第1値を示し、一致しない場合、第2値を示し、前記アップデートする段階は、前記比較ベクトルの前記成分値を前記ウェイ別に合算し、前記合算した結果値に基づいて、前記複数のウェイのうちいずれか一つに対応するキャッシュデータを削除し、新たなデータでアップデートする段階でもある。
本発明の一実施形態による第1値は1であり、前記第2値は0であり、前記アップデートする段階は、前記ウェイ別に合算した結果値のうち最小値を有するウェイに対応するキャッシュデータを削除し、新たなデータでアップデートする段階でもある。
本発明の一実施形態によるキャッシュメモリ・システムの動作方法は、外部からリクエストされるデータに対応するセットアドレス、及びNビットのタグアドレスを受信する段階、受信したセットアドレスが示すセットに含まれる前記タグデータそれぞれの上位K(1≦K<N)ビットと、前記外部から受信したNビットのタグアドレスの上位Kビットとの差値を計算し、前記タグアドレスと、前記タグデータそれぞれとを比較し、キャッシュヒットであるか、あるいはキャッシュミスであるかを判断する段階、前記キャッシュミスと判断される場合、前記タグデータそれぞれの上位Kビットと、前記タグアドレスの上位Kビットとの差値に基づいて、当該タグデータに対応するキャッシュデータを、アップデート候補として決定する段階、及び前記アップデート候補のうちいずれか1つのキャッシュデータを削除し、新たなデータでアップデートする段階を含んでもよい。
本発明の一実施形態によるアップデート候補を決定する段階は、前記差値が臨界値以上である場合、前記タグデータに対応するキャッシュデータを、アップデート候補として決定する段階でもある。
本発明の一実施形態によるキャッシュミスであるか否かを判断する段階は、前記タグデータのうちいずれか一つも、前記タグアドレスと一致しない場合、前記キャッシュミスと判断する段階を含み、前記方法は、前記キャッシュミスと判断される場合、前記タグデータそれぞれの上位Kビットと、前記タグアドレスの上位Kビットとの差値を出力する段階をさらに含んでもよい。
本発明の一実施形態によるキャッシュメモリ・システムの動作方法は、前記セットアドレスが同一である複数のデータリクエストを受信する段階をさらに含み、前記アップデート候補を決定する段階は、前記複数のデータそれぞれに対して受信した前記タグアドレスの上位Kビットと、前記タグデータそれぞれの上位Kビットとの差値により、前記複数のデータそれぞれの前記アップデート候補を決定する段階であり、前記アップデートする段階は、前記アップデート候補に含まれるキャッシュデータのうち、前記アップデート候補として決定された回数が最多であるキャッシュデータを削除し、新たなデータでアップデートする段階でもある。
本発明によれば、キャッシュミスの発生時、交替されるキャッシュデータを決定するためのさらなる情報を必要とせず、メモリを最小化することができる。また、交替されるキャッシュデータを決定するためのロジックの複雑さの上昇を最小化することができる。
データ処理システムについて説明するための図面である。 本発明の一実施形態によるキャッシュメモリ・システムの構成を示すブロック図である。 本発明の一実施形態による4ウェイセット関連キャッシュメモリの構造を示す図面である。 本発明の一実施形態による、1つのセットに含まれる複数のウェイのうち1つのウェイに対応するタグデータを、タグアドレスと比較する方法について説明するために参照される図面である。 本発明の一実施形態による、1つのセットに含まれる複数のウェイに対応するタグデータを、それぞれタグアドレスと比較する方法について説明するために参照される図面である。 本発明の一実施形態によるベクトル(hit_results_h[M−1:0])の一例を示す図面である。 本発明の一実施形態によるキャッシュメモリ・システムのデータアップデート方法を示すフローチャートである。 本発明の一実施形態によるキャッシュメモリ・システムのデータアップデート方法を示すフローチャートである。 本発明の一実施形態による複数のデータに対するベクトル(hit_results_h[M−1:0])の一例を示す図面である。 本発明の一実施形態による、1つのセットに含まれる複数のウェイのうち1つのウェイに対応するタグデータを、タグアドレスと比較する方法について説明するために参照される図面である。 本発明の一実施形態による、1つのセットに含まれる複数のウェイに対応するタグデータを、それぞれタグアドレスと比較する方法について説明するために参照される図面である。 本発明の一実施形態によるキャッシュメモリ・システムのデータアップデート方法を示すフローチャートである。 本発明の一実施形態による複数のデータに対するベクトル(hit_results_d[M−1:0])の一例を示す図面である。
本発明で使用される用語は、本発明での機能を考慮しながら、可能な限り現在汎用される一般的な用語を選択したが、それは、当業者の意図、判例、または新たな技術の出現などによって異なりもする。また、特定の場合は、出願人が任意に選定した用語もあり、その場合、当該発明の説明部分において、詳細にその意味を記載する。従って、本発明で使用される用語は、単純な用語の名称ではない、その用語が有する意味と、本発明の全般にわたった内容とを基に定義されなければならない。
明細書全体において、ある部分がある構成要素を「含む」とするとき、それは、特別に反対となる記載がない限り、他の構成要素を除くものではなく、他の構成要素をさらに含んでもよいことを意味する。また、明細書に記載された「…部」、「…モジュール」のような用語は、少なくとも1つの機能や動作を処理する単位を意味し、それは、ハードウェアまたはソフトウェアで具現化されたり、あるいはハードウェアとソフトウェアとの結合によって具現化されたりもする。
以下、添付した図面を参照し、本発明の実施形態について、本発明が属する技術分野で当業者が容易に実施することができるように詳細に説明する。しかし、本発明は、さまざまに異なる形態に具現化され、ここで説明する実施形態に限定されるものではない。
以下では、図面を参照し、本発明の実施形態について詳細に説明する。
図1は、データ処理システムについて説明するための図面である。図1を参照すれば、データ処理システムは、データ処理装置10及びメインメモリ200を含んでもよく、データ処理装置10は、コア(core)50及びキャッシュメモリ・システム100を含んでもよい。また、システムバス60には、キャッシュメモリ・システム100のラインと、メインメモリ50のラインとが接続される。
図1では、説明の便宜のために、キャッシュメモリ・システム100が、コア50と別途に位置する場合を図示しているが、それに限定されるものではなく、キャッシュメモリ・システム100は、コア50と同一の1チップ内に含まれてもよい。また、図1のデータ処理装置10は、グラフィックス処理装置(GPU:graphics processing unit)でもあるが、それに限定されるものではない。
コア50は、データプロセッシング中に必要とするデータをリクエストするために、メインメモリ200にアクセスする前に、まずキャッシュメモリ・システム100にアクセスすることができる。例えば、データ処理装置10がGPUで構成される場合、コア50は、ピクセルシェーダコアによって構成されてもよい。ピクセルシェーダコアは、レンダリング時、ピクセルの色相値を決定するピクセルシェーディングを行い、ピクセルシェーダコアは、ピクセルの色相値の決定に使用するために、テクスチャ(texture)データをキャッシュメモリ・システム100にリクエストすることができる。また、コア50は、複数で構成されもし、複数のコアは、同時にキャッシュメモリ・システム100にデータをリクエストすることができる。
キャッシュメモリ・システム100に、コア50がリクエストしたデータや命令(以下、ターゲットデータとする)が存在する場合、キャッシュヒット(cache hit)による動作が遂行される。キャッシュヒット時には、キャッシュメモリ・システム100から出力されたキャッシュデータ(ターゲットデータ)がコア50に出力される。
コア50が、メインメモリ200より、キャッシュメモリ・システム100に先にアクセスする理由は、頻繁に使用されるメインメモリ200のデータの場合、キャッシュメモリ・システム100に保存されている確率が高いからである。従って、メインメモリ200より、キャッシュメモリ・システム100に先にアクセスすることにより、データ転送速度を向上させることができる。
一方、キャッシュメモリ・システム100にターゲットデータが存在しない場合には、キャッシュミス(cache miss)による動作が遂行される。すなわち、その場合、キャッシュメモリ・システム100は、メインメモリ200にアクセスし、メインメモリ200から出力されたデータが、前記システムバス60を経て、キャッシュメモリ・システム200に印加される。
そのとき、キャッシュメモリ・システム100は、既存に保存されているキャッシュデータのうちいずれか一つを削除し、メインメモリ200から出力されたデータを保存することができる。
図2は、本発明の一実施形態によるキャッシュメモリ・システムの構成を示すブロック図である。図2を参照すれば、本発明の一実施形態によるキャッシュメモリ・システム100は、タグ比較部110、キャッシュメモリ120及びアップデート制御部130を含んでもよい。
キャッシュメモリ120は、タグメモリ123と、データメモリ125とを含んでもよい。データメモリ125は、メインメモリ200に保存されているデータの一部データ(キャッシュデータ)を保存する。すなわち、キャッシュデータは、メインメモリ200に保存されているメインデータのうちいずれか一つと同一である。タグメモリ123は、データメモリ125に保存されたキャッシュデータにそれぞれ対応するタグデータを保存することができる。タグデータは、キャッシュデータが保存されているメインメモリ200の実際アドレスを示すことができる。タグメモリ123と、データメモリ125との構造については、以下、図3を参照し、詳細に説明する。
図3を参照すれば、タグメモリ123とデータメモリ125は、少なくとも1つのセット310を含んでもよく、1つのセットは、複数のウェイ(way)を有することができる。タグメモリ123及びデータメモリ125のロウ(row)は、セットを示し、カラム(column)は、ウェイを示すことができる。すなわち、1つのセットは、タグメモリ123及びデータメモリ125の同一のロウに保存されてもよい。
図3は、4個のウェイを有する4ウェイセット関連キャッシュメモリの構造を示す図面である。図3に示されているように、キャッシュメモリが4ウェイセット関連キャッシュメモリで構成される場合、1つのセットは、第1キャッシュデータCD1、第2キャッシュデータCD2、第3キャッシュデータCD3及び第4キャッシュデータCD4と、第1キャッシュデータCD1、第2キャッシュデータCD2、第3キャッシュデータCD3及び第4キャッシュデータCD4それぞれのアドレスを示す、第1タグデータTD1、第2タグデータTD2、第3タグデータTD3及び第4タグデータTD4と、を含んでもよい。
また、第1タグデータTD1、第2タグデータTD2、第3タグデータTD3及び第4タグデータTD4は、タグメモリ123の同一ロウに保存されてもよい。そのとき、第1タグデータTD1は、第1ウェイ(1−way)に対応し、第2タグデータTD2は、第2ウェイ(2−way)に対応し、第3タグデータTD3は、第3ウェイ(3−way)に対応し、第4タグデータTD4は、第4ウェイ(4−way)に対応する。第1タグデータTD1、第2タグデータTD2、第3タグデータTD3及び第4タグデータTD4にそれぞれ対応する、第1キャッシュデータCD1、第2キャッシュデータCD2、第3キャッシュデータCD3及び第4キャッシュデータCD4も、第1タグデータTD1、第2タグデータTD2、第3タグデータTD3及び第4タグデータTD4と同一の方式でデータメモリ125に保存されてもよい。
一方、キャッシュメモリ・システム100は、外部からのリクエストデータに対応するアドレスビット320を受信することができる。そのとき、アドレスビット320は、図3に示されているように、タグアドレス(Tag add)とセットアドレス(Set add)とを含んでもよい。そのとき、セットアドレス(Set add)は、キャッシュメモリのロウアドレスを示すデータである。すなわち、セットアドレス(Set add)は、キャッシュメモリ120に含まれる複数のセットのうちいずれか1つのセットを示す。
一方、タグ比較部110は、外部(例えば、コア)からのデータリクエストがある場合、リクエストされたデータが、キャッシュメモリ120に保存されているか否かを判断することができる。すなわち、キャッシュヒットであるか、あるいはキャッシュミスであるかを判断する。
タグ比較部110は、セットアドレス(Set add)が示すセット310に含まれるタグデータそれぞれがタグアドレスと一致するか否かを比較する。タグ比較部110は、タグアドレス(Tag add)のNビットがタグデータのうちいずれか1つのNビットと一致する場合、キャッシュヒットと判断する。すなわち、キャッシュヒットは、外部からリクエストされたターゲットデータが、データメモリ内に存在していることを示す。
タグ比較部110は、タグアドレス(Tag add)のNビットのうち上位K(1≦K<N)ビット(Tag add[N−1:N−K])と、タグデータのNビットのうち上位Kビット(tagway[N−1:N−K])とを比較することができる。また、タグ比較部110は、タグアドレス(Tag add)の残り(N−K)ビット(Tag add[N−K−1:0])と、タグデータの残り(N−K)ビット(tagway[N−K−1:0])とを比較することができる。タグ比較部110は、比較結果に基づいて、キャッシュヒットであるか、あるいはキャッシュミスであるかを判断する。それについては、図4及び図5を参照し、詳細に説明する。
タグ比較部110がキャッシュヒットと判断した場合、タグアドレス(Tag add)と一致するタグデータに対応するキャッシュデータが外部に出力される。タグ比較部110は、データ出力部150にキャッシュヒット信号を出力することができ、データ出力部150は、データメモリ125に保存されているキャッシュデータを読み取り、外部に出力することができる。一方、タグ比較部110がキャッシュミスと判断した場合、タグ比較部110は、メインメモリ200にキャッシュミス信号を出力し、ターゲットデータをリクエストすることができる。また、タグ比較部110は、タグアドレス(Tag add)の残り(N−K)ビットと、タグデータの残り(N−K)ビットとを比較した結果をアップデート制御部130に出力することができる。
アップデート制御部130は、タグアドレスの残り(N−K)ビットと、タグデータの残り(N−K)ビットとを比較した結果に基づいて、アップデート候補を決定することができる。アップデート制御部130は、アップデート候補として決定されたキャッシュデータのうちいずれか一つを削除し、メインメモリ200から受信した新たなデータでアップデートすることができる。
図4は、本発明の一実施形態による、1つのセットに含まれる複数のウェイのうち1つのウェイに対応するタグデータを、タグアドレスと比較する方法について説明するために参照される図面である。
図4を参照すれば、タグメモリ123に保存されたタグデータ及びタグアドレスは、Nビットで示すことができる。また、タグ比較部110は、第1比較器410、第2比較器420及びAND演算器430を含んでもよい。第1比較器410は、Kビット比較器でもあり、第2比較器420は、(N−K)ビット比較器でもある。
タグ比較部110は、第1比較器410を利用して、タグアドレス(Tag add)の上位K(1≦K<N)ビット(Tag add[N−1:N−K])と、タグデータの上位Kビット(tagway[N−1:N−K])とを比較することができる。また、タグ比較部110は、第2比較器420を利用して、タグアドレス(Tag add)の残り(N−K)ビット(Tag add[N−K−1:0])と、タグデータの残り(N−K)ビット(tagway[N−K−1:0])とを比較することができる。
第1比較器410は、タグアドレスの上位K(1≦K<N)ビット(Tag add[N−1:N−K])と、タグデータそれぞれの上位Kビット(tagway[N−1:N−K])とが一致する場合、「1」を出力し、一致しない場合、「0」を出力することができる。または反対に、タグアドレスの上位K(1≦K<N)ビット(Tag add[N−1:N−K])と、タグデータの上位Kビット(tagway[N−1:N−K])とが一致する場合、「0」を出力し、一致しない場合、「1」を出力することができる。ただし、それに限定されるものではない。
また、第2比較器420は、タグアドレスの残り(N−K)ビット(Tag add[N−K−1:0])と、タグデータの残り(N−K)ビット(tagway[N−K−1:0])とが一致する場合、「1」を出力し、一致しない場合、「0」を出力することができる。または反対に、タグアドレスの残り(N−K)ビット(Tag add[N−K−1:0])と、タグデータの残り(N−K)ビット(tagway[N−K−1:0])とが一致する場合、「0」を出力し、一致しない場合、「1」を出力することができる。ただし、それに限定されるものではない。
以下では、説明の便宜のために、第1比較器410及び第2比較器420は、入力されるビットデータが一致する場合、「1」を出力するとして説明する。
AND演算器430は、第1比較器410の出力値と、第2比較器420の出力値とを入力値にして、AND演算を行うことができる。例えば、タグアドレスの上位K(1≦K<N)ビット(Tag add[N−1:N−K])と、タグデータそれぞれの上位Kビット(tagway[N−1:N−K])とが一致(第1比較器410から「1」が出力される)し、タグアドレスの残り(N−K)ビット(Tag add[N−K−1:0])と、タグデータの残り(N−K)ビット(tagway[N−K−1:0])とが一致(第2比較器420から「1」が出力される)する場合、AND演算器430は、「1」を出力することができる。
反対に、タグアドレスの上位K(1≦K<N)ビット(Tag add[N−1:N−K])と、タグデータそれぞれの上位Kビット(tagway[N−1:N−K])とが一致しないか、あるいはタグアドレスの残り(N−K)ビット(Tag add[N−K−1:0])と、タグデータの残り(N−K)ビット(tagway[N−K−1:0])とが一致しない場合、AND演算器430は、「0」を出力することができる。
すなわち、AND演算器430で1が出力される場合、タグアドレスのNビット(Tag add[N−1:0])と、タグデータのNビット(tagway[N−1:0])とが一致すると判断され、AND演算器430で0が出力される場合、タグアドレスのNビット(Tag add[N−1:0])と、タグデータのNビット(tagway[N−1:0])とが一致しないと判断される。
図5は、本発明の一実施形態による、1つのセットに含まれる複数のウェイに対応するタグデータを、それぞれタグアドレスと比較する方法について説明するために参照される図面である。
図5を参照すれば、ウェイがM個である場合、タグ比較部110は、M個の第1比較器と、M個の第2比較器とを含み、2M個のAND演算器を含んでもよい。
タグ比較部110は、図4で説明したように、複数のウェイに対応するタグデータそれぞれを、タグアドレス(Tag add)と比較することができる。タグデータとタグアドレス(Tag add)とを比較する方法については、図4で詳細に説明したので、ここでは説明を省略する。
一方、タグ比較部110は、第2AND演算器510をさらに含んでもよい。第2AND演算器510は、データメモリ125の当該ウェイにキャッシュデータが保存されているか否かを示す値(valid_way)と、当該ウェイのタグデータ及びタグアドレスが一致するか否かを示す値とを入力される。そのとき、キャッシュデータが保存されているか否かを示す値(valid_way)は、当該ウェイにキャッシュデータが保存されている場合、「1」を示し、当該ウェイにキャッシュデータが保存されていない場合、「0」を示すことができる。
それにより、当該ウェイに、キャッシュデータが保存されていないか(valid_wayは「0」)、あるいは当該ウェイのタグデータとタグアドレス(Tag add)とが一致しない場合、第2AND演算器510は、「0」を出力することができる。また、当該ウェイに、キャッシュデータが保存(valid_wayは「1」)されており、当該ウェイのタグデータ及びタグアドレスが一致する場合、第2AND演算器510は、「1」を出力することができる。タグ比較部110は、ウェイにそれぞれ対応するM個の第2AND演算器から出力される値を、ベクトル(hit_results[M−1:0])として出力することができ、そのとき、ベクトルの大きさは、ウェイの数(M)と同一である。
例えば、図5に示されているように、キャッシュメモリが4ウェイキャッシュメモリによって構成される場合、第1ウェイに対応する第2AND演算器から1を出力し、第2ウェイに対応する第2AND演算器から0を出力し、第3ウェイに対応する第2AND演算器から0を出力し、第4ウェイに対応する第2AND演算器から0が出力することができる。また、出力されるベクトル(hit_results)は、[1,0,0,0]として示すことができる。
そのとき、タグ比較部110は、ベクトルの成分のうちいずれか一つが1を示す場合、キャッシュヒットと判断する。すなわち、1を示す成分がある場合、当該成分に対応するウェイのタグデータがタグアドレスと一致し、タグアドレスと一致するタグデータに対応するキャッシュデータが、外部(例えば、コア50)からリクエストされたターゲットデータであることを示す。
キャッシュヒットと判断されれば、データ出力部150は、タグアドレスと一致するタグデータに対応するキャッシュデータを、データメモリから読み取り、外部に出力することができる。
一方、タグ比較部110は、ベクトルの成分がいずれも0を示す場合、キャッシュミスと判断する。すなわち、全てのウェイのタグデータがタグアドレス(Tag add)と一致せず、コア50からリクエストされたターゲットデータが、キャッシュメモリ125に保存されていないことを示す。
キャッシュミスと判断されれば、タグ比較部110は、ウェイにそれぞれ対応する第1比較器で出力される値をベクトル(hit_result_h[M−1:0])に出力することができる。
図6は、本発明の一実施形態によるベクトル(hit_results_h[M−1:0])の一例を示す図面である。
そのとき、ベクトルの大きさは、ウェイの数(M)と同一であり、図6は、4個のウェイを有する場合のベクトル(hit_results_h[M−1:0])を示す図面である。ベクトル(hit_results_h[M−1:0])の成分のうち「0」を示す成分は、当該成分に対応するタグデータの上位Kビット(tagway[N−1:N−K])が、タグアドレスの上位Kビット(Tag add[N−1:N−K])と一致しないことを示す。一方、ベクトル(hit_result_h[])の成分のうち「1」を示す成分は、当該成分に対応するタグデータの上位Kビット(tagway[N−1:N−K])が、タグアドレスの上位Kビット(Tag add[N−1:N−K])と一致することを示す。
アップデート制御部130は、タグアドレスの上位Kビット(Tag add[N−1:N−K])と、タグデータの上位Kビット(tagway[N−1:N−K])とが一致しない場合、当該タグデータに対応するキャッシュデータと、外部からリクエストされたデータ(ターゲットデータ)との空間的地域性(spatial locality)がないと判断することができる。それにより、ベクトル(hit_results_h[])の成分のうち「0」を示す成分に対応するウェイのキャッシュデータを、アップデート候補として決定することができる。
アップデート制御部130は、キャッシュミスの場合、ターゲットデータをメインメモリ200から受信し、アップデート候補として決定されたキャッシュデータのうちいずれか一つを削除し、メインメモリ200から受信した新たなデータでアップデートすることができる。
データ出力部150は、メインメモリ200から受信した新たなデータを、外部(例えば、コア50)に出力することができる。
図7は、本発明の一実施形態による、キャッシュメモリ・システムのデータアップデート方法を示すフローチャートである。
図7を参照すれば、キャッシュメモリ・システム100は、Nビットのタグアドレス(Tag add[N−1:0])を受信することができる(S710)。
例えば、図3で説明したように、キャッシュメモリ・システム100は、外部からデータリクエストを受信することができ、リクエストされるデータに対応するセットアドレス(Set add)及びタグアドレス(Tag add)を含むアドレスビットを受信することができる。セットアドレス(Set add)は、キャッシュメモリのロウアドレスを示すデータであり、タグアドレス(Tag add)は、リクエストされるデータのメインメモリ200での実際アドレスでもある。
また、タグアドレス(Tag add)は、Nビットでもある。アドレスビットが受信されれば、キャッシュメモリ・システム100は、セットアドレス(Set add)が示すセットに含まれるタグデータを出力することができる。そのとき、タグデータは、タグアドレス(Tag add)と同一のNビットでもある。
キャッシュメモリ・システム100は、出力されたタグデータそれぞれの上位Kビットと、タグアドレスの上位Kビットとを比較し、タグデータそれぞれの残り(N−K)ビットと、タグアドレスの残り(N−K)ビットとを比較することができる(S720)。
例えば、キャッシュメモリ・システム100は、第1比較器410及び第2比較器420を含んでもよい。キャッシュメモリ・システム100は、第1比較器410を利用して、タグアドレスの上位K(1≦K<N)ビット(Tag add[N−1:N−K])と、タグデータの上位Kビット(tagway[N−1:N−K])とを比較することができる。また、キャッシュメモリ・システム100は、第2比較器420を利用して、タグアドレスの残り(N−K)ビット(Tag add[N−K−1:0])と、タグデータの残り(N−K)ビット(tagway[N−K−1:0])とを比較することができる。
キャッシュメモリ・システム100は、比較結果に基づいて、キャッシュヒットであるか、あるいはキャッシュミスであるかを判断することができる(S730)。
例えば、出力されたタグデータのうち、いずれか1つのタグデータが、タグアドレスと一致する場合、キャッシュメモリ・システム100は、キャッシュヒットと判断する。一方、出力されたタグデータのうち、タグアドレスと一致するタグデータが存在しない場合、キャッシュメモリ・システム100は、キャッシュミスと判断する。
そのとき、セットアドレス(Set add)が示すセットのキャッシュデータのうち、有効ではないデータが存在する場合(少なくとも1つのキャッシュラインが空いている場合)、キャッシュメモリ・システム100は、メインメモリから受信したターゲットデータを、空いているキャッシュラインに保存することができる。
一方、セットアドレス(Set add)が示すセットのキャッシュデータがいずれも有効である場合(全てのキャッシュラインにキャッシュデータが保存されている場合)、キャッシュメモリ・システム100は、タグデータそれぞれの上位Kビットと、タグアドレスの上位Kビットとを比較した結果により、当該タグデータに対応するキャッシュデータを、アップデート候補として決定することができる(S740)。
例えば、キャッシュメモリ・システム100は、キャッシュミスと判断される場合、出力されたタグデータそれぞれに対して、タグデータの上位Kビット(tagway[N−1:N−K])と、タグアドレスの上位Kビット(Tag add[N−1:N−K])とが一致する場合、当該タグデータに対応するキャッシュデータを、アップデート候補に含めることができる。一方、タグデータの上位Kビット(tagway[N−1:N−K])と、タグアドレスの上位Kビット(Tag add[N−1:N−K])とが一致しない場合、当該タグデータに対応するキャッシュデータを、アップデート候補から除外させることができる。
キャッシュメモリ・システム100は、決定されたアップデート候補のうちいずれか1つのキャッシュデータを削除し、新たなデータでアップデートすることができる(S750)。
キャッシュメモリ・システム100は、キャッシュミスと判断される場合、キャッシュミス信号を出力し、メインメモリからターゲットデータを受信することができる。キャッシュメモリ・システム100は、決定されたアップデート候補のうちいずれか1つのキャッシュデータを削除し、メインメモリ200から受信したデータでアップデートすることができる。
図8は、本発明の一実施形態による、キャッシュメモリ・システムのキャッシュデータアップデート方法を示すフローチャートである。図8を参照すれば、キャッシュメモリ・システムは、セットアドレスが同一である複数のデータリクエストを受信することができる(S810)。
例えば、図1のコア50がマルチコアによって構成される場合、キャッシュメモリ・システム100は、同時に複数のデータリクエストを受信することができる。キャッシュメモリ・システム100は、複数のデータそれぞれに対応するタグアドレス(Tag add)及びセットアドレス(Set add)を受信することができ、そのとき、複数のデータにそれぞれ対応するセットアドレスは同一である。
キャッシュメモリ・システム100は、複数のデータそれぞれに対して、図4で説明したように、受信したタグアドレスの上位Kビット(Tag add[N−1:N−K])と、セットアドレス(Set add)が示すセットに含まれるタグデータそれぞれの上位Kビット(tagway[N−1:N−K])とを比較し、タグアドレスの残り(N−K)ビット(Tag add[N−K−1:0])と、タグデータそれぞれの(N−K)ビット(tagway[N−K−1:0])とを比較することができる。キャッシュメモリ・システム100は、比較結果に基づいて、リクエストされた複数のデータそれぞれに対して、キャッシュヒットであるか、あるいはキャッシュミスであるかを判断することができる。それについては、図5で詳細に説明したので、具体的な説明は省略する。
また、キャッシュミスの場合、キャッシュメモリ・システム100は、複数のデータそれぞれに対して、図9に示されているように、ベクトル(hit_results_h[])を出力することができる。
例えば、キャッシュメモリ・システム100が4個のデータを同時にリクエストされた場合、第1データに対応するベクトル(hit_result_h[0][M−1:0]=[1000])、第2データに対応するベクトル(hit_result_h[1][M−1:0]=[0000])、第3データに対応するベクトル(hit_result_h[2][M−1:0]=[0110])、及び第4データに対応するベクトル(hit_result_h[3][M−1:0]=[0000])を出力することができる。
そのとき、ベクトルの成分値が1を示せば、タグアドレスの上位Kビット(Tag add[N−1:N−K])と、当該ウェイのタグデータの上位Kビット(tagway[N−1:N−K])とが一致するという意味であり、ベクトルの成分値が0を示せば、タグアドレスの上位Kビット(Tag add[N−1:N−K])と、当該ウェイのタグデータの上位Kビット(tagway[N−1:N−K])とが一致しないことを意味する。それについては、図6で詳細に説明したので、具体的な説明は省略する。
それにより、キャッシュメモリ・システム100は、ベクトルの成分値に基づいて、複数のデータそれぞれに対するアップデート候補を決定することができる(S820)。
例えば、ベクトルの成分値が0である場合(当該ウェイのタグデータの上位Kビットと、タグアドレスの上位Kビットとが一致しない場合)、キャッシュメモリ・システム100は、外部(例えば、コア50)からリクエストされたデータと、当該タグデータに対応するキャッシュデータは、空間的地域性がないと判断することができる。それにより、キャッシュメモリ・システム100は、ベクトル(hit_results_h[])の成分のうち「0」を示す成分に対応するウェイのキャッシュデータを、アップデート候補として決定することができる。
図9を参照すれば、キャッシュメモリ・システム100は、第1データに対して、第2ウェイに対応するキャッシュデータ(第2キャッシュデータ)、第3ウェイに対応するキャッシュデータ(第3キャッシュデータ)、及び第4ウェイに対応するキャッシュデータ(第4キャッシュデータ)をアップデート候補として決定することができる。また、キャッシュメモリ・システム100は、第2データ及び第4データに対して、第1ウェイないし第4ウェイそれぞれに対応するキャッシュデータ(第1キャッシュデータないし第4キャッシュデータ)をアップデート候補として決定することができ、第3データに対して、第1キャッシュデータ及び第4キャッシュデータを、アップデート候補として決定することができる。
複数のデータそれぞれに対して、アップデート候補が決定されれば、キャッシュメモリ・システム100は、複数のデータに対して、アップデート候補として決定された回数が最多であるキャッシュデータを削除し、新たなデータでアップデートすることができる(S830)。
例えば、図9を参照すれば、第1キャッシュデータの場合、第2データないし第4データに対するアップデート候補として決定され、アップデート候補として決定された回数が3回である。また、第2キャッシュデータの場合も、第2データないし第4データに対するアップデート候補として決定され、アップデート候補として決定された回数が3回である。また、第3キャッシュデータの場合、第1データ、第2データ及び第4データに対するアップデート候補として決定され、アップデート候補として決定された回数が3回である。第4キャッシュデータの場合、第1データないし第4データに対するアップデート候補として決定され、アップデート候補として決定された回数が4回である。
それにより、キャッシュメモリ・システム100は、第4キャッシュデータを削除し、新たなデータでアップデートすることができる。
一方、キャッシュメモリ・システム100は、図9に示されているように、複数のベクトルが出力される場合、複数のベクトルの成分値をウェイ別に合算することができる。そのとき、キャッシュメモリ・システム100は、複数のウェイのうち合算値が最小であるウェイを選択することができ、選択されたウェイに対応するキャッシュデータを削除し、新たなデータでアップデートすることができる。
例えば、各データに対して、第1ウェイの合算値は1となり、第2ウェイの合算値は1となり、第3ウェイの合算値は1となり、第4ウェイの合算値は0となる。キャッシュメモリ・システム100は、合算値が最小である第4ウェイを選択することができ、選択された第4ウェイに対応するキャッシュデータを削除し、新たなデータでアップデートすることができる。
図10は、本発明の一実施形態による、1つのセットに含まれる複数のウェイのうち1つのウェイに対応するタグデータを、タグアドレスと比較する方法について説明するために参照される図面である。
図10を参照すれば、タグメモリに保存されたタグデータ及びタグアドレスは、Nビットで示すことができる。また、タグ比較部110は、第3比較器1010、減算器1020を含んでもよい。第3比較器1010は、Nビット比較器でもあり、減算器1020は、Kビット減算器でもある。
タグ比較部110は、第3比較器1010を利用して、タグアドレスのNビット(Tag add[N−1:0])と、タグデータのNビット(tagway[N−1:0])とを比較することができる。第3比較器1010は、タグアドレスのNビット(Tag add[N−1:0])と、タグデータのNビット(tagway[N−1:0])とが一致する場合、「1」を出力し、一致しない場合、「0」を出力することができる。または、反対に、タグアドレスのNビット(Tag add[N−1:0])と、タグデータのNビット(tagway[N−1:0])とが一致する場合、「0」を出力し、一致しない場合、「1」を出力することができる。ただし、それに限定されるものではない。以下では、説明の便宜のために、第3比較器1010に入力されるビットデータが一致する場合、「1」を出力するとして説明する。
また、タグ比較部110は、減算器1020を利用して、タグアドレスの上位Kビット(Tag add[N−1:N−K])と、タグデータの上位K(1≦K<N)ビット(tagway[N−1:N−K])との差値を演算することができる。
また、タグ比較部110は、第4比較器1030をさらに含み、第4比較器1030は、減算器1020から出力された差値が、臨界値以下であるならば、1を出力し、減算器1020から出力された差値が、臨界値以上であるならば、0を出力することができる。ただし、それに限定するものではない。
図11は、本発明の一実施形態による、1つのセットに含まれる複数のウェイに対応するタグデータを、それぞれタグアドレスと比較する方法について説明するために参照される図面である。
図11を参照すれば、ウェイがM個である場合、タグ比較部110は、M個の第3比較器と、M個の減算器とを含み、M個の第2AND演算器を含んでもよい。
タグ比較部110は、図10で説明したように、複数のウェイに対応するタグデータそれぞれを、タグアドレスと比較することができる。タグデータとタグアドレスとを比較する方法については、図10で詳細に説明したので、ここでは説明を省略する。
一方、タグ比較部110は、第2AND演算器510をさらに含んでもよい。第2AND演算器510は、データメモリ125の当該ウェイにキャッシュデータが保存されているか否かを示す値(valid_way)と、当該ウェイのタグデータ及びタグアドレスが一致するか否かを示す値とを入力される。そのとき、キャッシュデータが保存されているか否かを示す値(valid_way)は、当該ウェイにキャッシュデータが保存されている場合、「1」を示し、当該ウェイにキャッシュデータが保存されていない場合「0」を示すことができる。
それにより、当該ウェイにキャッシュデータが保存されていないか(valid_wayは「0」)、あるいは当該ウェイのタグデータ及びタグアドレスが一致しない場合、第2AND演算器510は、「0」を出力することができる。また、当該ウェイにキャッシュデータが保存(valid)されており、当該ウェイのタグデータ及びタグアドレスが一致する場合、第2AND演算器510は、「1」を出力することができる。
タグ比較部110は、ウェイにそれぞれ対応するM個の第2AND演算器から出力される値を、ベクトル(hit_results[])として出力することができ、そのとき、ベクトルの大きさは、ウェイ数(M)と同一である。例えば、第1ウェイに対応する第2AND演算器から1を出力され、第2ウェイに対応する第2AND演算器から0を出力され、第3ウェイに対応する第2AND演算器から0を出力され、第4ウェイに対応する第2AND演算器から0が出力されれば、ベクトル(hit_result)は、[1,0,0,0]として示すことができる。
そのとき、タグ比較部110は、ベクトルの成分のうちいずれか一つが1を示す場合、キャッシュヒットと判断する。すなわち、1を示す成分がある場合、当該成分に対応するウェイのタグデータがタグアドレスと一致し、タグアドレスと一致するタグデータに対応するキャッシュデータが、外部(例えば、コア50)からリクエストされたターゲットデータであることを示す。
キャッシュヒットと判断されれば、データ出力部150は、タグアドレスと一致するタグデータに対応するキャッシュデータを、データメモリから読み取り、外部に出力することができる。
一方、タグ比較部110は、ベクトルの成分がいずれも0を示す場合、キャッシュミスと判断する。すなわち、全てのウェイのタグデータがタグアドレスと一致せず、外部(例えば、コア50)からリクエストされたターゲットデータが、キャッシュメモリに保存されていないことを示す。
キャッシュミスと判断されれば、タグ比較部110は、ウェイにそれぞれ対応する第4比較器1030から出力される値を、ベクトル(hit_results_d[])に出力することができる。
そのとき、ベクトルの大きさは、ウェイの数(M)と同一である。ベクトルの成分のうち0を示す成分は、当該成分に対応するタグデータの上位Kビットと、タグアドレスの上位Kビットとの差が臨界値より大きいことを示す。一方、ベクトルの成分のうち「1」を示す成分は、当該成分に対応するタグデータの上位Kビットと、タグアドレスの上位Kビットとの差が臨界値以下であることを示す。
アップデート制御部130は、タグアドレスの上位Kビットと、タグデータの上位Kビットとの差が臨界値より大きい場合、当該タグデータに対応するキャッシュデータと、外部からリクエストされたデータ(ターゲットデータ)との空間的地域性がないと判断することができる。それにより、ベクトル(hit_result_h[])の成分のうち、「0」を示す成分に対応するウェイのキャッシュデータを、アップデート候補として決定することができる。
アップデート制御部130は、キャッシュミスの場合、ターゲットデータをメインメモリ200から受信し、アップデート候補として決定されたキャッシュデータのうちいずれか一つを削除し、メインメモリ200から受信した新たなデータでアップデートすることができる。また、データ出力部150は、メインメモリ200から受信した新たなデータを外部に出力することができる。
図12は、本発明の一実施形態による、キャッシュメモリ・システムのデータアップデート方法を示すフローチャートである。図12を参照すれば、キャッシュメモリ・システム100は、Nビットのタグアドレスを受信することができる(S1210)。
例えば、図3で説明したように、キャッシュメモリ・システム100は、外部からデータリクエストを受信することができ、リクエストされるデータに対応するセットアドレス(Set add)及びタグアドレス(Tag add)を含むアドレスビットを受信することができる。セットアドレス(Set add)は、キャッシュメモリのロウアドレスを示すデータであり、タグアドレス(Tag add)は、リクエストされるデータのメインメモリ200での実際アドレスでもある。
また、タグアドレス(Tag add)は、Nビットでもある。アドレスビットが受信されれば、キャッシュメモリ・システム100は、セットアドレス(Set add)が示すセットに含まれるタグデータを出力することができる。そのとき、タグデータは、タグアドレス(Tag add)と同一のNビットでもある。
キャッシュメモリ・システム100は、出力されたタグデータそれぞれのNビットと、タグアドレスのNビットとを比較し、タグデータそれぞれの上位Kビットと、タグアドレスの上位Kビットとの差値を演算し、臨界値と比較することができる(S1220)。
例えば、キャッシュメモリ・システム100は、第3比較器1010、減算器1020及び第4比較器1030を含んでもよい。キャッシュメモリ・システム100は、第3比較器1010を利用して、タグアドレスのNビット(Tag add[N−1:0])と、タグデータのNビット(tagway[N−1:0])とを比較することができる。また、キャッシュメモリ・システム100は、減算器1020を利用して、タグアドレスの上位Kビット(Tag add[N−1:N−K])と、タグデータの上位Kビット(tagway[N−1:N−K])との差値を演算することができる。また、キャッシュメモリ・システム100は、第4比較器1030を利用して、演算された差値が臨界値以下であるか否かを判断することができる。
キャッシュメモリ・システム100は、出力されたタグデータそれぞれのNビットと、タグアドレスのNビットとを比較した結果に基づいて、キャッシュヒットであるか、あるいはキャッシュミスであるかを判断することができる(S1230)。
例えば、出力されたタグデータのうち、いずれか1つのタグデータが、タグアドレスと一致する場合、キャッシュメモリ・システムは、キャッシュヒットと判断する。一方、出力されたタグデータのうち、タグアドレスと一致するタグデータが存在しない場合、キャッシュミスと判断する。
そのとき、セットアドレス(Set add)が示すセットのキャッシュデータのうち、有効ではないデータが存在する場合(少なくとも1つのキャッシュラインが空いている場合)、メインメモリから受信したターゲットデータを、空いているキャッシュラインに保存することができる。
一方、セットアドレス(Set add)が示すセットのキャッシュデータがいずれも有効である場合(全てのキャッシュラインにキャッシュデータが保存されている場合)、タグデータそれぞれの上位Kビットと、タグアドレスの上位Kビットとの差値により、当該タグデータに対応するキャッシュデータを、アップデート候補として決定することができる(S1240)。
例えば、キャッシュメモリ・システム100は、キャッシュミスと判断される場合、出力されたタグデータそれぞれに対して、タグデータの上位Kビット(tagway[N−1:N−K])と、タグアドレスの上位Kビット(Tag add[N−1:N−K])との差値が臨界値超過である場合、当該タグデータに対応するキャッシュデータを、アップデート候補に含める。一方、タグデータの上位Kビット(tagway[N−1:N−K])と、タグアドレスの上位Kビット(Tag add[N−1:N−K])との差値が臨界値以下である場合、当該タグデータに対応するキャッシュデータを、アップデート候補から除外することができる。
キャッシュメモリ・システム100は、決定されたアップデート候補のうちいずれか1つのキャッシュデータを削除し、新たなデータでアップデートすることができる(S1250)。
キャッシュメモリ・システム100は、キャッシュミスと判断される場合、キャッシュミス信号を出力し、メインメモリ200からターゲットデータを受信することができる。キャッシュメモリ・システム100は、決定されたアップデート候補のうちいずれか1つのキャッシュデータを削除し、メインメモリ200から受信したデータでアップデートすることができる。
また、本発明の一実施形態によるキャッシュメモリ・システム100は、セットアドレスが同一である複数のデータリクエストを受信することができる。そのような場合、キャッシュメモリ・システム100は、複数のデータそれぞれに対して、図10及び図11で説明したように、タグアドレス及びセットアドレスが示すセットに含まれるタグデータそれぞれを比較することができる。また、キャッシュメモリ・システム100は、複数のデータそれぞれに対して、図10及び図11で説明したように、タグアドレスの上位Kビットと、タグデータそれぞれの上位Kビットとの差値を演算することができる。
キャッシュメモリ・システム100は、キャッシュミスである場合、複数のデータそれぞれに対して、図13に示されているように、ベクトル(hit_results_d[])を出力することができる。
例えば、キャッシュメモリ・システム100が4個のデータを同時にリクエストされた場合、第1データに対応するベクトル(hit_results_d[0][M−1:0]=[0001])、第2データに対応するベクトル(hit_results_d[1][M−1:0]=[0000])、第3データに対応するベクトル(hit_results_d[2][M−1:0]=[1100]、)及び第4データに対応するベクトル(hit_results_d[3][M−1:0]=[0000])を出力することができる。
そのとき、ベクトルの成分値が1を示せば、タグアドレスの上位Kビット(Tag add[N−1:N−K])と、当該ウェイのタグデータの上位Kビット(tagway[N−1:N−K])との差値が、臨界値以下であることを意味する。一方、ベクトルの成分値が0を示せば、タグアドレスの上位Kビット(Tag add[N−1:N−K])と、当該ウェイのタグデータの上位Kビット(tagway[N−1:N−K])との差値が、臨界値より大きいことを意味する。
それにより、キャッシュメモリ・システム100は、ベクトルの成分値に基づいて、複数のデータそれぞれに対するアップデート候補を決定することができる。例えば、ベクトルの成分値が0である場合(当該ウェイのタグデータの上位Kビットと、タグアドレスの上位Kビットとの差値が臨界値より大きい場合)、キャッシュメモリ・システム100は、外部からリクエストされたデータと、当該タグデータに対応するキャッシュデータは、空間的地域性がないと判断することができる。
それにより、キャッシュメモリ・システム100は、ベクトル(hit_result_d[])の成分のうち「0」を示す成分に対応するウェイのキャッシュデータを、アップデート候補として決定することができる。
図13を参照すれば、キャッシュメモリ・システム100は、第1データに対して、第1ウェイに対応するキャッシュデータ(第1キャッシュデータ)、第2ウェイに対応するキャッシュデータ(第2キャッシュデータ)、及び第3ウェイに対応するキャッシュデータ(第3キャッシュデータ)を、第1データに対するアップデート候補として決定することができる。また、キャッシュメモリ・システム100は、第2データ及び第4データに対して、第1ウェイないし第4ウェイそれぞれに対応するキャッシュデータ(第1キャッシュデータないし第4キャッシュデータ)を、第2データ及び第4データに対するアップデート候補として決定することができ、第3データに対して、第1キャッシュデータ及び第2キャッシュデータを、第3データに対するアップデート候補として決定することができる。
複数のデータそれぞれに対して、アップデート候補が決定されれば、キャッシュメモリ・システム100は、複数のデータに対して、アップデート候補として決定された回数が最多であるキャッシュデータを削除し、新たなデータでアップデートすることができる。
アップデート候補のうち、アップデート候補として決定された回数が最多であるキャッシュデータを選択する方法については、図9で詳細に説明したので、具体的な説明は省略する。
また、キャッシュメモリ・システム100は、複数のベクトルが出力される場合、複数のベクトルの成分値をウェイ別に合算することができる。そのとき、キャッシュメモリ・システム100は、複数のウェイのうち合算値が最小であるウェイを選択することができ、選択されたウェイに対応するキャッシュデータを削除し、新たなデータでアップデートすることができる。
アップデート候補のうちウェイ別に合算値に基づいて、キャッシュデータを選択する方法についても、図9で詳細に説明したので、具体的な説明は省略する。
本発明によるキャッシュメモリ・システム及びその動作方法は、前述のように説明された実施形態の構成及び方法が限定されるように適用されるものではなく、前記実施形態は、多様な変形が行われるように、各実施形態の全部または一部が選択的に組み合わされて構成される。
一方、本発明のキャッシュメモリ・システム及びその動作方法は、コンピュータで読み取り可能な記録媒体に、コンピュータで読み取り可能なコードとして具現化することが可能である。コンピュータで読み取り可能な記録媒体は、コンピュータシステムによって読み取り可能なデータが保存される全ての種類の記録装置を含む。コンピュータで読み取り可能な記録媒体の例としては、ROM(read only memory)、RAM(random access memory)、CD(compact disc)−ROM、磁気テープ、フロッピー(登録商標)ディスク、光データ保存装置などがあり、またインターネットを介した転送のようなキャリアウェーブの形態で具現化されるものも含む。また、コンピュータで読み取り可能な記録媒体は、ネットワークに接続されたコンピュータシステムに分散され、分散方式でプロセッサで読み取り可能なコードが保存されて実行される。
以上、本発明の実施形態について図示して説明したが、本発明は、前述の特定実施形態に限定されるものではなく、特許請求の範囲で請求する本発明の要旨を外れることなしに、当該発明が属する技術分野における当業者によって、多様な変形実施が可能であることは言うまでもなく、そのような変形実施は、本発明の技術的思想や展望から個別的に理解されるものではない。
本発明のキャッシュメモリ・システム及びその動作方法は、例えば、データ処理関連の技術分野に効果的に適用可能である。
10 データ処理装置
50 コア
60 システムバス
100 キャッシュメモリ・システム
110 タグ比較部
120 キャッシュメモリ
123 タグメモリ
125 データメモリ
130 アップデート制御部
200 メインメモリ
310 セットアドレスが示すセット
320 アドレスビット
410 第1比較器
420 第2比較器
430 AND演算器
510 第2AND演算器
1010 第3比較器
1020 演算器
1030 第4比較器

Claims (24)

  1. メインメモリに保存されたデータのうち一部に該当するキャッシュデータを保存するデータメモリと、
    複数のウェイを有する少なくとも1つのセットを含み、前記キャッシュデータにそれぞれ対応するNビットのタグデータを、前記少なくとも1つのセットで保存するタグメモリと、
    外部から受信したセットアドレスが示すセットに含まれる前記タグデータそれぞれの上位K(1≦K<N)ビットと、前記外部から受信したNビットのタグアドレスの上位Kビットとを比較し、前記タグデータそれぞれの残り(N−K)ビットと、前記タグアドレスの残り(N−K)ビットとを比較し、キャッシュヒットであるか、あるいはキャッシュミスであるかを判断するタグ比較部と、
    前記キャッシュミスと判断される場合、前記タグデータそれぞれの上位Kビットと、前記タグアドレスの上位Kビットとの比較結果により、当該タグデータに対応するキャッシュデータを、アップデート候補として決定し、前記アップデート候補のうちいずれか1つのキャッシュデータを削除し、新たなデータでアップデートするアップデート制御部と、を含む、
    キャッシュメモリ・システム。
  2. 前記アップデート制御部は、
    前記タグデータのうちいずれか1つの上位Kビットが、前記タグアドレスの上位Kビットと一致しない場合、前記いずれか一つに対応するキャッシュデータを、前記アップデート候補として決定する、
    請求項1に記載のキャッシュメモリ・システム。
  3. 前記タグ比較部は、
    前記タグデータのうちいずれか一つも、前記タグアドレスと一致しない場合、前記キャッシュミスと判断し、前記タグデータそれぞれの上位Kビットと、前記タグアドレスの上位Kビットとの比較結果を、前記アップデート制御部に出力する、
    請求項1または2に記載のキャッシュメモリ・システム。
  4. 前記タグ比較部は、
    前記タグデータのうちいずれか一つと、前記タグアドレスが一致する場合、前記キャッシュヒットと判断する、
    請求項1乃至3いずれか一項に記載のキャッシュメモリ・システム。
  5. 前記キャッシュメモリ・システムは、
    前記キャッシュヒットと判断した場合、前記タグアドレスと一致するタグデータに対応するキャッシュデータを読み取り、前記外部に出力するデータ出力部、をさらに含む、
    請求項1乃至4いずれか一項に記載のキャッシュメモリ・システム。
  6. 前記キャッシュメモリ・システムが、前記セットアドレスが同一である複数のデータリクエストを受信する場合、
    前記アップデート制御部は、
    前記複数のデータそれぞれに対して受信した前記タグアドレスの上位Kビットと、前記タグデータそれぞれの上位Kビットとを比較した結果により、前記複数のデータそれぞれの前記アップデート候補を決定し、前記アップデート候補に含まれるキャッシュデータのうち、前記アップデート候補として決定された回数が最多であるキャッシュデータを削除し、新たなデータでアップデートする、
    請求項1に記載のキャッシュメモリ・システム。
  7. 前記タグ比較部は、
    前記複数のデータにそれぞれ対応する比較ベクトルを出力し、
    前記比較ベクトルそれぞれは、前記ウェイの個数と同一個数の成分を含み、
    前記成分は、当該データのタグアドレスの上位Kビットと、前記タグデータそれぞれの上位Kビットとを比較して、一致する場合、第1値を示し、一致しない場合、第2値を示し、
    前記アップデート制御部は、
    前記比較ベクトルの前記成分値を前記ウェイ別に合算し、前記合算した結果値に基づいて、前記複数のウェイのうちいずれか一つに対応するキャッシュデータを削除し、新たなデータでアップデートする、
    請求項6に記載のキャッシュメモリ・システム。
  8. 前記第1値は1であり、前記第2値は0であり、
    前記アップデート制御部は、
    前記ウェイ別に合算した結果値のうち最小値を有するウェイに対応するキャッシュデータを削除し、新たなデータでアップデートする、
    請求項7に記載のキャッシュメモリ・システム。
  9. メインメモリに保存されたデータのうち一部に該当するキャッシュデータを保存するデータメモリと、
    複数のウェイを有する少なくとも1つのセットを含み、前記キャッシュデータにそれぞれ対応するNビットのタグデータを、前記少なくとも1つのセットで保存するタグメモリと、
    外部から受信したセットアドレスが示すセットに含まれる前記タグデータそれぞれの上位K(1≦K<N)ビットと、前記外部から受信したNビットのタグアドレスの上位Kビットとの差値を計算し、前記タグアドレスと、前記タグデータそれぞれとを比較して、キャッシュヒットであるか、あるいはキャッシュミスであるかを判断するタグ比較部と、
    前記キャッシュミスと判断される場合、前記タグデータそれぞれの上位Kビットと、前記タグアドレスの上位Kビットとの差値に基づいて、当該タグデータに対応するキャッシュデータを、アップデート候補として決定し、前記アップデート候補のうちいずれか1つのキャッシュデータを削除し、新たなデータでアップデートするアップデート制御部と、
    を含む、キャッシュメモリ・システム。
  10. 前記アップデート制御部は、
    前記差値が臨界値以上である場合、前記タグデータに対応するキャッシュデータを、アップデート候補として決定する、
    請求項9に記載のキャッシュメモリ・システム。
  11. 前記タグ比較部は、
    前記タグデータのうちいずれも、前記タグアドレスと一致しない場合、前記キャッシュミスと判断し、前記タグデータそれぞれの上位Kビットと、前記タグアドレスの上位Kビットとの差値を前記アップデート制御部に出力する、
    請求項9または10に記載のキャッシュメモリ・システム。
  12. 前記キャッシュメモリ・システムが、前記セットアドレスが同一である複数のデータリクエストを受信する場合、
    前記アップデート制御部は、
    前記複数のデータそれぞれに対して受信した前記タグアドレスの上位Kビットと、前記タグデータそれぞれの上位Kビットとの差値により、前記複数のデータそれぞれの前記アップデート候補を決定し、前記アップデート候補に含まれるキャッシュデータのうち、前記アップデート候補として決定された回数が最多であるキャッシュデータを削除し、新たなデータでアップデートする、
    請求項9乃至11いずれか一項に記載のキャッシュメモリ・システム。
  13. 外部からリクエストされるデータに対応するセットアドレス、及びNビットのタグアドレスを受信する段階と、
    受信したセットアドレスが示すセットに含まれるタグデータそれぞれの上位K(1≦K<N)ビットと、前記外部から受信したNビットのタグアドレスの上位Kビットとを比較し、前記タグデータそれぞれの残り(N−K)ビットと、前記タグアドレスの残り(N−K)ビットとを比較し、キャッシュヒットであるか、あるいはキャッシュミスであるかを判断する段階と、
    前記キャッシュミスと判断される場合、前記タグデータそれぞれの上位Kビットと、前記タグアドレスの上位Kビットとの比較結果により、当該タグデータに対応するキャッシュデータを、アップデート候補として決定する段階と、
    前記アップデート候補のうちいずれか1つのキャッシュデータを削除し、新たなデータでアップデートする段階と、
    を含む、キャッシュメモリ・システムの動作方法。
  14. 前記アップデート候補を決定する段階は、
    前記タグデータのうちいずれか1つの上位Kビットが、前記タグアドレスの上位Kビットと一致しない場合、前記いずれか一つに対応するキャッシュデータを、前記アップデート候補として決定する段階を含む、
    請求項13に記載のキャッシュメモリ・システムの動作方法。
  15. 前記キャッシュミスであるか否かを判断する段階は、
    前記タグデータのうちいずれも、前記タグアドレスと一致しない場合、前記キャッシュミスと判断する段階を含み、
    前記動作方法は、
    前記キャッシュミスと判断される場合、前記タグデータそれぞれの上位Kビットと、前記タグアドレスの上位Kビットとの比較結果を出力する段階を、さらに含む、
    請求項13または14に記載のキャッシュメモリ・システムの動作方法。
  16. 前記キャッシュヒットであるか、あるいはキャッシュミスであるかを判断する段階は、
    前記タグデータのうちいずれか一つと、前記タグアドレスが一致する場合、前記キャッシュヒットと判断する段階を含む、
    請求項13乃至15いずれか一項に記載のキャッシュメモリ・システムの動作方法。
  17. 前記動作方法は、
    前記キャッシュヒットと判断した場合、前記タグアドレスと一致するタグデータに対応するキャッシュデータを読み取り、前記外部に出力する段階を、さらに含む、
    請求項13乃至16いずれか一項に記載のキャッシュメモリ・システムの動作方法。
  18. 前記動作方法は、
    前記セットアドレスが同一である複数のデータリクエストを受信する段階を、さらに含み、
    前記アップデート候補を決定する段階は、
    前記複数のデータそれぞれに対して受信した前記タグアドレスの上位Kビットと、前記タグデータそれぞれの上位Kビットとを比較した結果により、前記複数のデータそれぞれの前記アップデート候補を決定する段階であり、
    前記アップデートする段階は、
    前記アップデート候補に含まれるキャッシュデータのうち、前記アップデート候補として決定された回数が最多であるキャッシュデータを削除し、新たなデータでアップデートする段階である、
    請求項13に記載のキャッシュメモリ・システムの動作方法。
  19. 前記動作方法は、
    前記複数のデータにそれぞれ対応する比較ベクトルを出力する段階を、さらに含み、
    前記比較ベクトルそれぞれは、ウェイの個数と同一個数の成分を含み、前記成分は、当該データのタグアドレスの上位Kビットと、前記タグデータそれぞれの上位Kビットとを比較して、一致する場合、第1値を示し、一致しない場合、第2値を示し、
    前記アップデートする段階は、
    前記比較ベクトルの前記成分値を前記ウェイ別に合算し、前記合算した結果値に基づいて、前記複数のウェイのうちいずれか一つに対応するキャッシュデータを削除し、新たなデータでアップデートする段階である、
    請求項18に記載のキャッシュメモリ・システムの動作方法。
  20. 前記第1値は1であり、前記第2値は0であり、
    前記アップデートする段階は、
    前記ウェイ別に合算した結果値のうち最小値を有するウェイに対応するキャッシュデータを削除し、新たなデータでアップデートする段階である、
    請求項19に記載のキャッシュメモリ・システムの動作方法。
  21. 外部からリクエストされるデータに対応するセットアドレス、及びNビットのタグアドレスを受信する段階と、
    受信したセットアドレスが示すセットに含まれる前記タグデータそれぞれの上位K(1≦K<N)ビットと、前記外部から受信したNビットのタグアドレスの上位Kビットとの差値を計算し、前記タグアドレスと、前記タグデータそれぞれとを比較して、キャッシュヒットであるか、あるいはキャッシュミスであるかを判断する段階と、
    前記キャッシュミスと判断される場合、前記タグデータそれぞれの上位Kビットと、前記タグアドレスの上位Kビットとの差値に基づいて、当該タグデータに対応するキャッシュデータを、アップデート候補として決定する段階と、
    前記アップデート候補のうちいずれか1つのキャッシュデータを削除し、新たなデータでアップデートする段階と、を含む、
    キャッシュメモリ・システムの動作方法。
  22. 前記アップデート候補を決定する段階は、
    前記差値が臨界値以上である場合、前記タグデータに対応するキャッシュデータを、アップデート候補として決定する、
    請求項21に記載のキャッシュメモリ・システムの動作方法。
  23. 前記キャッシュミスであるか否かを判断する段階は、
    前記タグデータのうちいずれも、前記タグアドレスと一致しない場合、前記キャッシュミスと判断する段階を、含み、
    前記方法は、
    前記キャッシュミスと判断される場合、前記タグデータそれぞれの上位Kビットと、前記タグアドレスの上位Kビットとの差値を出力する段階を、さらに含む、
    請求項21または22に記載のキャッシュメモリ・システムの動作方法。
  24. 前記方法は、
    前記セットアドレスが同一である複数のデータリクエストを受信する段階を、さらに含み、
    前記アップデート候補を決定する段階は、
    前記複数のデータそれぞれに対して受信した前記タグアドレスの上位Kビットと、前記タグデータそれぞれの上位Kビットとの差値により、前記複数のデータそれぞれの前記アップデート候補を決定する段階であり、
    前記アップデートする段階は、
    前記アップデート候補に含まれるキャッシュデータのうち、前記アップデート候補として決定された回数が最多であるキャッシュデータを削除し、新たなデータでアップデートする段階である、
    請求項21乃至23いずれか一項に記載のキャッシュメモリ・システムの動作方法。
JP2015181168A 2014-09-17 2015-09-14 キャッシュメモリ・システム及びその動作方法 Active JP6339987B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2014-0123704 2014-09-17
KR1020140123704A KR102354990B1 (ko) 2014-09-17 2014-09-17 캐시 메모리 시스템 및 그 동작방법

Publications (2)

Publication Number Publication Date
JP2016062613A true JP2016062613A (ja) 2016-04-25
JP6339987B2 JP6339987B2 (ja) 2018-06-06

Family

ID=53719643

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015181168A Active JP6339987B2 (ja) 2014-09-17 2015-09-14 キャッシュメモリ・システム及びその動作方法

Country Status (5)

Country Link
US (1) US9852070B2 (ja)
EP (1) EP2998868B1 (ja)
JP (1) JP6339987B2 (ja)
KR (1) KR102354990B1 (ja)
CN (1) CN106201915B (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105912476A (zh) * 2016-04-06 2016-08-31 中国科学院计算技术研究所 片上重复寻址的方法及装置
CN111108527B (zh) * 2017-05-19 2023-06-30 莫维迪乌斯有限公司 用于当取回像素核时降低存储器延迟的方法、系统和设备
KR20190006314A (ko) 2017-07-10 2019-01-18 에스케이하이닉스 주식회사 메모리 시스템 및 이의 동작 방법
KR20190040614A (ko) 2017-10-11 2019-04-19 에스케이하이닉스 주식회사 메모리 시스템 및 그의 동작방법
KR20200083048A (ko) * 2018-12-31 2020-07-08 삼성전자주식회사 폴링 시간을 예측하는 뉴럴 네트워크 시스템 및 이를 이용한 뉴럴 네트워크 모델 처리 방법
CN109933543B (zh) * 2019-03-11 2022-03-18 珠海市杰理科技股份有限公司 Cache的数据锁定方法、装置和计算机设备
US11263015B1 (en) * 2019-12-05 2022-03-01 Marvell Asia Pte, Ltd. Microarchitectural sensitive tag flow
US11307857B2 (en) 2019-12-05 2022-04-19 Marvell Asia Pte, Ltd. Dynamic designation of instructions as sensitive for constraining multithreaded execution
US11372647B2 (en) 2019-12-05 2022-06-28 Marvell Asia Pte, Ltd. Pipelines for secure multithread execution
CN117130663B (zh) * 2023-09-19 2024-06-11 摩尔线程智能科技(北京)有限责任公司 一种指令读取方法及l2指令缓存、电子设备和存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH086857A (ja) * 1994-06-17 1996-01-12 Mitsubishi Electric Corp キャッシュメモリ
JPH10340226A (ja) * 1997-06-09 1998-12-22 Nec Corp 連想記憶方式のキャッシュメモリ
JP2000330869A (ja) * 1999-05-19 2000-11-30 Hitachi Ltd キャッシュメモリ装置
US6493797B1 (en) * 2000-03-31 2002-12-10 Intel Corporation Multi-tag system and method for cache read/write
US6581140B1 (en) * 2000-07-03 2003-06-17 Motorola, Inc. Method and apparatus for improving access time in set-associative cache systems
US20090182951A1 (en) * 2003-11-21 2009-07-16 International Business Machines Corporation Cache line replacement techniques allowing choice of lfu or mfu cache line replacement
US20110022773A1 (en) * 2009-07-27 2011-01-27 International Business Machines Corporation Fine Grained Cache Allocation
US20140189473A1 (en) * 2012-12-28 2014-07-03 Ariel Szapiro Apparatus and Method For Fast Tag Hit With Double Error Correction and Triple Error Detection

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW374873B (en) 1997-06-30 1999-11-21 Hyundai Electronics Ind A high-performance LRU memory capable of supporting multiple ports
US6122709A (en) * 1997-12-19 2000-09-19 Sun Microsystems, Inc. Cache with reduced tag information storage
US6449694B1 (en) * 1999-07-27 2002-09-10 Intel Corporation Low power cache operation through the use of partial tag comparison
US6687789B1 (en) * 2000-01-03 2004-02-03 Advanced Micro Devices, Inc. Cache which provides partial tags from non-predicted ways to direct search if way prediction misses
US6912623B2 (en) 2002-06-04 2005-06-28 Sandbridge Technologies, Inc. Method and apparatus for multithreaded cache with simplified implementation of cache replacement policy
US6950904B2 (en) 2002-06-25 2005-09-27 Intel Corporation Cache way replacement technique
US7020748B2 (en) 2003-01-21 2006-03-28 Sun Microsystems, Inc. Cache replacement policy to mitigate pollution in multicore processors
US7069390B2 (en) * 2003-09-04 2006-06-27 International Business Machines Corporation Implementation of a pseudo-LRU algorithm in a partitioned cache
JP4008947B2 (ja) 2003-12-22 2007-11-14 松下電器産業株式会社 キャッシュメモリ及びその制御方法
KR100851298B1 (ko) 2005-12-28 2008-08-08 엠텍비젼 주식회사 캐시 메모리 컨트롤러 및 이를 이용한 캐시 메모리 관리방법
US7512739B2 (en) 2006-07-05 2009-03-31 International Business Machines Corporation Updating a node-based cache LRU tree
US7545702B2 (en) 2006-07-21 2009-06-09 Freescale Semiconductor, Inc. Memory pipelining in an integrated circuit memory device using shared word lines
US8364900B2 (en) 2008-02-12 2013-01-29 Oracle America, Inc. Pseudo-LRU cache line replacement for a high-speed cache
US7546417B1 (en) * 2008-07-15 2009-06-09 International Business Machines Corporation Method and system for reducing cache tag bits
TW201015319A (en) * 2008-09-17 2010-04-16 Panasonic Corp Cache memory, memory system, data copying method and data rewriting method
US8825955B2 (en) 2011-11-22 2014-09-02 The Regents Of The University Of Michigan Data processing apparatus having a cache configured to perform tag lookup and data access in parallel, and a method of operating the data processing apparatus
WO2013095636A1 (en) 2011-12-23 2013-06-27 Intel Corporation Address range priority mechanism

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH086857A (ja) * 1994-06-17 1996-01-12 Mitsubishi Electric Corp キャッシュメモリ
JPH10340226A (ja) * 1997-06-09 1998-12-22 Nec Corp 連想記憶方式のキャッシュメモリ
JP2000330869A (ja) * 1999-05-19 2000-11-30 Hitachi Ltd キャッシュメモリ装置
US6493797B1 (en) * 2000-03-31 2002-12-10 Intel Corporation Multi-tag system and method for cache read/write
US6581140B1 (en) * 2000-07-03 2003-06-17 Motorola, Inc. Method and apparatus for improving access time in set-associative cache systems
US20090182951A1 (en) * 2003-11-21 2009-07-16 International Business Machines Corporation Cache line replacement techniques allowing choice of lfu or mfu cache line replacement
US20110022773A1 (en) * 2009-07-27 2011-01-27 International Business Machines Corporation Fine Grained Cache Allocation
US20140189473A1 (en) * 2012-12-28 2014-07-03 Ariel Szapiro Apparatus and Method For Fast Tag Hit With Double Error Correction and Triple Error Detection

Also Published As

Publication number Publication date
US20160077969A1 (en) 2016-03-17
US9852070B2 (en) 2017-12-26
EP2998868A1 (en) 2016-03-23
JP6339987B2 (ja) 2018-06-06
KR20160032934A (ko) 2016-03-25
CN106201915A (zh) 2016-12-07
CN106201915B (zh) 2020-06-09
EP2998868B1 (en) 2017-08-30
KR102354990B1 (ko) 2022-01-24

Similar Documents

Publication Publication Date Title
JP6339987B2 (ja) キャッシュメモリ・システム及びその動作方法
US11163828B2 (en) Building and querying hash tables on processors
US9971700B2 (en) Cache with address space mapping to slice subsets
JP6708019B2 (ja) 演算処理装置、情報処理装置および演算処理装置の制御方法
US11010056B2 (en) Data operating method, device, and system
US9697111B2 (en) Method of managing dynamic memory reallocation and device performing the method
CN106687937B (zh) 用于压缩算法的高速缓冲存储体扩展
US9720829B2 (en) Online learning based algorithms to increase retention and reuse of GPU-generated dynamic surfaces in outer-level caches
CN108431831A (zh) 循环代码处理器优化
CN103777898A (zh) 操作存储器设备的方法及系统
US20100100684A1 (en) Set associative cache apparatus, set associative cache method and processor system
US9754561B2 (en) Managing memory regions to support sparse mappings
JP2016110636A (ja) メモリ管理
US11625225B2 (en) Applications of and techniques for quickly computing a modulo operation by a Mersenne or a Fermat number
JP6189266B2 (ja) データ処理装置、データ処理方法及びデータ処理プログラム
KR102356704B1 (ko) 컴퓨팅 장치 및 컴퓨팅 장치에서 연산들을 처리하는 방법
US11599415B2 (en) Memory tiering techniques in computing systems
US12014046B2 (en) Method, electronic device, and computer program product for storage management
US10831661B2 (en) Coherent cache with simultaneous data requests in same addressable index
US11288200B2 (en) Method and system for task-based cache isolation
WO2015004570A1 (en) Method and system for implementing a dynamic array data structure in a cache line
KR20150009883A (ko) 캐시 메모리 시스템 및 그 동작방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170424

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180322

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180417

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180511

R150 Certificate of patent or registration of utility model

Ref document number: 6339987

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250