JP2020523678A - 論理ディレクトリを使用したキャッシュ構造 - Google Patents
論理ディレクトリを使用したキャッシュ構造 Download PDFInfo
- Publication number
- JP2020523678A JP2020523678A JP2019567327A JP2019567327A JP2020523678A JP 2020523678 A JP2020523678 A JP 2020523678A JP 2019567327 A JP2019567327 A JP 2019567327A JP 2019567327 A JP2019567327 A JP 2019567327A JP 2020523678 A JP2020523678 A JP 2020523678A
- Authority
- JP
- Japan
- Prior art keywords
- directory
- cache
- bits
- entry
- effective 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0864—Addressing 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
- G06F12/0895—Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1045—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
- G06F12/1063—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently virtually addressed
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1028—Power efficiency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/28—Using a specific disk cache architecture
- G06F2212/283—Plural cache memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/62—Details of cache specific to multiprocessor cache arrangements
- G06F2212/621—Coherency control relating to peripheral accessing, e.g. from DMA or I/O device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/68—Details of translation look-aside buffer [TLB]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/68—Details of translation look-aside buffer [TLB]
- G06F2212/681—Multi-level TLB, e.g. microTLB and main TLB
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/68—Details of translation look-aside buffer [TLB]
- G06F2212/684—TLB miss handling
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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
Description
タグ・フィールドの第1の群のビットおよび第2の群のビットを判定することと、
キャッシュ・ライン・インデックス・フィールドのライン・インデックス・ビットを使用して論理的にインデックス付けされかつ第1の群のビットを使用して論理的にタグ付けされるセット・ディレクトリを設けることと、
ライン・インデックス・ビットおよびセット・ビットを使用して論理的にインデックス付けされかつ第2の群のビットを使用して論理的にタグ付けされる有効化ディレクトリを設けることと、
セット・ディレクトリにおいて実効アドレスのライン・インデックス・ビットおよび第1の群のビットを求めて第1に検索し、そして実効アドレスのそれぞれのキャッシュ・ラインを含むセットを示すセット識別子を生成することと、
有効化ディレクトリにおいて実効アドレスのセット識別子、ライン・インデックス・ビットおよび第2の群のビットを求めて第2に検索することと、
第2の検索に基づいてセットにおけるキャッシュ・ラインの存在を判定することに応答して、ヒット信号を発生することとを含む。
− 論理的にアドレス付けおよび論理的にタグ付けされている1次キャッシュ・ディレクトリと、
− キャッシュ・ライン・インデックス・フィールドのライン・インデックス・ビットを使用して論理的にインデックス付けされかつ第1の群のビットを使用して論理的にタグ付けされているセット・ディレクトリと、
− ライン・インデックス・ビットおよびセット・ビットを使用して論理的にインデックス付けされかつ第2の群のビットを使用して論理的にタグ付けされている有効化ディレクトリとを備え、
セット・ディレクトリが、実効アドレスのライン・インデックス・ビットおよび第1の群のビットを受け、そして実効アドレスのそれぞれのキャッシュ・ラインを含むセットを示すセット識別子を生成するために構成されており、
有効化ディレクトリが、実効アドレスのセット識別子、ライン・インデックス・ビットおよび第2の群のビットを受け、そしてキャッシュ・ラインがあるセットを示すセット識別子を返すために構成されている。
例えば、有効ビットがL1ディレクトリ・エントリの一部である場合、エントリの実際の無効化は、所与のL1ディレクトリにおけるセットの全てのエントリに並列に行われることもできる。
タグ・フィールドの第1の群のビットおよび第2の群のビットを判定することと、
キャッシュ・ライン・インデックス・フィールドのライン・インデックス・ビットを使用して論理的にインデックス付けされかつ第1の群のビットを使用して論理的にタグ付けされるセット・ディレクトリを設けることと、
ライン・インデックス・ビットおよびセット・ビットを使用して論理的にインデックス付けされかつ第2の群のビットを使用して論理的にタグ付けされる有効化ディレクトリを設けることと、
セット・ディレクトリにおいて実効アドレスのライン・インデックス・ビットおよび第1の群のビットを求めて第1に検索し、そして実効アドレスのそれぞれのキャッシュ・ラインを含むセットを示すセット識別子を生成することと、
有効化ディレクトリにおいて実効アドレスのセット識別子、ライン・インデックス・ビットおよび第2の群のビットを求めて第2に検索することと、
第2の検索に基づいてセットにおけるキャッシュ・ラインの存在を判定することに応答して、ヒット信号を発生することとを含む、方法。
1次キャッシュ・ディレクトリにおいてライン・インデックス・ビットを求めて検索して、各見つけられるエントリに対して、論理ポインタに帰着することであり、論理ポインタが、エントリが存在するセットのセット・インデックスおよび実効アドレスの一部分を備える、ことと、
論理ポインタのうちセット・インデックスがセット識別子に一致する論理ポインタを選択することと、
実効アドレスと関連する絶対アドレスを特定するためにTLBにおいて実効アドレスを求めて検索することと、
キャッシュ・メモリのより高レベルの2次キャッシュ・ディレクトリにおける各セットにおける実効アドレスに対応するエントリであり、他の絶対アドレスを備える、エントリを得るために2次キャッシュ・ディレクトリにおいて実効アドレスを求めて検索することと、
2次キャッシュ・ディレクトリの各得られた絶対アドレスをTLBの絶対アドレスと比較して、2次キャッシュ・ディレクトリのセットの他のセット識別子に帰着することと、
他のセット識別子を有する2次キャッシュ・ディレクトリのセットのエントリの論理アドレスを選択された論理ポインタと比較し、そして比較結果に基づいてミス信号を確認するもしくはセットおよび有効化ディレクトリをそれに応じて更新するまたはその両方を行うこととを更に含む。
実効アドレスのシノニムである第2の実効アドレスを受けることと、
第2の実効アドレスを使用して第1および第2の検索を繰り返すことと、
第2の検索が第2の実効アドレスによって参照されるキャッシュ・ラインの存在を確認しない場合、第2の実効アドレスに対応するセット・ディレクトリのエントリを無効化することと、
ミスを検出するために第2の実効アドレスを使用して第1の検索を行うことと、
1次キャッシュ・ディレクトリにおいて第2の実効アドレスを求めて検索して、1次キャッシュ・ディレクトリにおける各セットに対する論理ポインタに帰着することであり、論理ポインタがセット・インデックスおよび第2の実効アドレスの一部分を備える、ことと、
キャッシュ・メモリのより高レベルの2次キャッシュ・ディレクトリにおける各セットにおける第2の実効アドレスに対応するエントリを得るために2次キャッシュ・ディレクトリにおいて第2の実効アドレスを求めて検索することと、
2次キャッシュ・ディレクトリのセットのエントリの論理アドレスを論理ポインタの各々と比較し、そして比較結果に基づいて1次キャッシュ・ディレクトリにおけるキャッシュ・ラインの存在を確認することと、
実効アドレスに関連したエントリを第2の実効アドレスで上書きすることによってセットおよび有効化ディレクトリを更新することと、
特徴組合せ1の最後の3つのステップを繰り返すこととを更に含む。
Claims (20)
- タグ・フィールドおよびキャッシュ・ライン・インデックス・フィールドを備える実効アドレスを介してキャッシュ・メモリへのアクセスを操作するための方法であって、前記キャッシュ・メモリが、論理的にアドレス付けおよび論理的にタグ付けされている1次キャッシュ・ディレクトリを備えており、前記方法が、
前記タグ・フィールドの第1の群のビットおよび第2の群のビットを判定することと、
前記キャッシュ・ライン・インデックス・フィールドのライン・インデックス・ビットを使用して論理的にインデックス付けされかつ前記第1の群のビットを使用して論理的にタグ付けされるセット・ディレクトリを設けることと、
前記ライン・インデックス・ビットおよびセット・ビットを使用して論理的にインデックス付けされかつ前記第2の群のビットを使用して論理的にタグ付けされる有効化ディレクトリを設けることと、
前記セット・ディレクトリにおいて前記実効アドレスの前記ライン・インデックス・ビットおよび前記第1の群のビットを求めて第1に検索し、そして前記実効アドレスのそれぞれのキャッシュ・ラインを含むセットを示すセット識別子を生成することと、
前記有効化ディレクトリにおいて前記実効アドレスの前記セット識別子、前記ライン・インデックス・ビットおよび前記第2の群のビットを求めて第2に検索することと、
前記第2の検索に基づいて前記セットにおける前記キャッシュ・ラインの存在を判定することに応答して、ヒット信号を発生することと、
を含む、方法。 - 前記第2の検索が前記セットにおける前記キャッシュ・ラインの存在を確認しない場合、ミス信号を発生する、請求項1に記載の方法。
- 前記キャッシュ・メモリが変換ルックアサイド・バッファ(TLB)を更に備えており、前記1次キャッシュ・ディレクトリにおける所与のエントリが有効ビット、前記実効アドレスの一部分およびセット・インデックスを記憶しており、前記第2の検索が前記セットにおける前記キャッシュ・ラインの存在を確認しない場合、前記方法が、
前記1次キャッシュ・ディレクトリにおいて前記ライン・インデックス・ビットを求めて検索して、各見つけられるエントリに対して、論理ポインタに帰着することであり、前記論理ポインタが、前記エントリが存在する前記セットの前記セット・インデックスおよび前記実効アドレスの前記一部分を備える、ことと、
前記論理ポインタのうち前記セット・インデックスが前記セット識別子に一致する論理ポインタを選択することと、
前記実効アドレスと関連する絶対アドレスを特定するために前記TLBにおいて前記実効アドレスを求めて検索することと、
前記キャッシュ・メモリのより高レベルの2次キャッシュ・ディレクトリにおける各セットにおける前記実効アドレスに対応するエントリであり、他の絶対アドレスを備える、前記エントリを得るために前記2次キャッシュ・ディレクトリにおいて前記実効アドレスを求めて検索することと、
前記2次キャッシュ・ディレクトリの各得られた絶対アドレスを前記TLBの前記絶対アドレスと比較して、前記2次キャッシュ・ディレクトリのセットの他のセット識別子に帰着することと、
前記他のセット識別子を有する前記2次キャッシュ・ディレクトリの前記セットの前記エントリの論理アドレスを前記選択された論理ポインタと比較し、そして前記比較の結果に基づいてミス信号を確認するもしくは前記セットおよび有効化ディレクトリをそれに応じて更新するまたはその両方を行うことと、
を更に含む、請求項1に記載の方法。 - 前記1次キャッシュ・ディレクトリの前記検索が前記第1の検索と並列に行われる、請求項3に記載の方法。
- 前記論理ポインタの前記有効ビットが有効状態に設定されている場合に前記ヒット信号の発生が行われることを更に含む、請求項4に記載の方法。
- 前記TLBにおける前記検索および前記2次キャッシュ・ディレクトリにおける前記検索が並列に行われる、請求項3に記載の方法。
- 前記第1の群のビットが前記タグ・フィールドからの最下位ビットであり、そして前記第2の群のビットが前記タグ・フィールドからの最上位ビットである、請求項1に記載の方法。
- 前記有効化ディレクトリが、前記キャッシュ・メモリの全てのセットの各キャッシュ・ラインごとに1つのディレクトリ・エントリを保持する1つの物理アレイ構造から構築される、請求項1に記載の方法。
- 前記1次キャッシュ・ディレクトリにおける所与のエントリが有効ビット、前記実効アドレスの一部分およびセット・インデックスを記憶しており、前記方法が、前記第1の検索と並列に、前記1次キャッシュ・ディレクトリにおいて前記ライン・インデックス・ビットを検索して、前記1次キャッシュ・ディレクトリにおける各見つけられるエントリに対する有効ビット値に帰着することと、前記有効ビット値のうち関連するセット・インデックスが前記セット識別子に一致する有効ビット値を選択することであり、前記有効ビット値が有効状態を示す場合に前記ヒット信号の発生が行われる、こととを更に含む、請求項1に記載の方法。
- 前記1次キャッシュ・ディレクトリがL1レベル・キャッシュ・ディレクトリである、請求項1に記載の方法。
- 前記2次キャッシュ・ディレクトリがL2レベル・キャッシュ・ディレクトリである、請求項3に記載の方法。
- 前記キャッシュ・メモリが、2次キャッシュ・ディレクトリを更に備えるマルチ・レベル・キャッシュ・ディレクトリである、請求項1に記載の方法。
- 前記1次キャッシュ・ディレクトリにおける所与のエントリが有効ビット、前記実効アドレスの一部分およびセット・インデックスを記憶しており、前記方法が、
前記実効アドレスのシノニムである第2の実効アドレスを受けることと、
前記第2の実効アドレスを使用して前記第1および第2の検索を繰り返すことと、
前記第2の検索が前記第2の実効アドレスによって参照される前記キャッシュ・ラインの存在を確認しない場合、前記第2の実効アドレスに対応する前記セット・ディレクトリの前記エントリを無効化することと、
ミスを検出するために前記第2の実効アドレスを使用して前記第1の検索を行うことと、
前記1次キャッシュ・ディレクトリにおいて前記第2の実効アドレスを求めて検索して、前記1次キャッシュ・ディレクトリにおける各セットに対する論理ポインタに帰着することであり、前記論理ポインタが前記セット・インデックスおよび前記第2の実効アドレスの一部分を備える、ことと、
前記キャッシュ・メモリのより高レベルの2次キャッシュ・ディレクトリにおける各セットにおける前記第2の実効アドレスに対応するエントリを得るために前記2次キャッシュ・ディレクトリにおいて前記第2の実効アドレスを求めて検索することと、
前記2次キャッシュ・ディレクトリの前記セットの前記エントリの論理アドレスを前記論理ポインタの各々と比較し、そして前記比較の結果に基づいて前記1次キャッシュ・ディレクトリにおける前記キャッシュ・ラインの存在を確認することと、
前記実効アドレスに関連したエントリを前記第2の実効アドレスで上書きすることによって前記セットおよび有効化ディレクトリを更新することと、
前記第1の検索、前記第2の検索および前記ヒット信号の発生のステップを繰り返すことと、
を更に含む、請求項1に記載の方法。 - 前記有効化ディレクトリのエントリを無効化するための要求を受けることに応答して、前記1次キャッシュ・ディレクトリにおける対応するエントリの有効ビットをそれに応じて設定することを更に含む、請求項1に記載の方法。
- 前記1次キャッシュ・ディレクトリと関連付けて第1の補助データ構造を設けることであり、前記第1の補助データ構造の各エントリが、マルチプロセッサ・システムのTLBパージ要求に示される情報を反映する前記実効アドレスのビットを備える、ことと、前記受けた要求に対応する前記第1の補助データ構造におけるエントリを特定することであり、前記特定されるエントリが前記1次キャッシュ・ディレクトリのエントリを示す、こととを更に含む、請求項14に記載の方法。
- 前記1次キャッシュ・ディレクトリと関連付けて第2の補助データ構造を設けることであり、前記第2の補助データ構造が論理的にインデックス付けおよび物理的にタグ付けされている、ことと、前記1次キャッシュにエントリを記憶するための要求を受けることに応答して、記憶場所の絶対アドレスを特定するために前記第2の補助データ構造を使用し、そして前記絶対アドレスを使用して前記記憶場所に前記エントリを記憶することとを更に含む、請求項1に記載の方法。
- タグ・フィールドおよびキャッシュ・ライン・インデックス・フィールドを備える実効アドレスを介してキャッシュ・ラインへのアクセスを制御するための装置であって、前記タグ・フィールドが第1の群のビットおよび第2の群のビットを備えており、前記装置が、
− 論理的にアドレス付けおよび論理的にタグ付けされている1次キャッシュ・ディレクトリと、
− 前記キャッシュ・ライン・インデックス・フィールドのライン・インデックス・ビットを使用して論理的にインデックス付けされかつ前記第1の群のビットを使用して論理的にタグ付けされているセット・ディレクトリと、
− 前記ライン・インデックス・ビットおよびセット・ビットを使用して論理的にインデックス付けされかつ前記第2の群のビットを使用して論理的にタグ付けされている有効化ディレクトリと、
を備え、
前記セット・ディレクトリが、前記実効アドレスの前記ライン・インデックス・ビットおよび前記第1の群のビットを受け、そして前記実効アドレスのそれぞれのキャッシュ・ラインを含むセットを示すセット識別子を生成するために構成されており、
前記有効化ディレクトリが、前記実効アドレスの前記セット識別子、前記ライン・インデックス・ビットおよび前記第2の群のビットを受け、そして前記キャッシュ・ラインがあるセットを示すセット識別子を返すために構成されている、
装置。 - コンピュータ可読プログラム・コードが具現化されたコンピュータ可読記憶媒体を備えるコンピュータ・プログラム製品であって、前記コンピュータ可読プログラム・コードが、
タグ・フィールドの第1の群のビットおよび第2の群のビットを判定するステップと、
キャッシュ・ライン・インデックス・フィールドのライン・インデックス・ビットを使用して論理的にインデックス付けされかつ前記第1の群のビットを使用して論理的にタグ付けされるセット・ディレクトリを設けるステップと、
前記ライン・インデックス・ビットおよびセット・ビットを使用して論理的にインデックス付けされかつ前記第2の群のビットを使用して論理的にタグ付けされる有効化ディレクトリを設けるステップと、
前記セット・ディレクトリにおいて実効アドレスの前記ライン・インデックス・ビットおよび前記第1の群のビットを求めて第1に検索し、そして前記実効アドレスのそれぞれのキャッシュ・ラインを含むセットを示すセット識別子を生成するステップと、
前記有効化ディレクトリにおいて前記実効アドレスの前記セット識別子、前記ライン・インデックス・ビットおよび前記第2の群のビットを求めて第2に検索するステップと、
前記第2の検索に基づいて前記セットにおける前記キャッシュ・ラインの存在を判定することに応答して、ヒット信号を発生するステップと、
の全てを実装するように構成されている、
コンピュータ・プログラム製品。 - 前記有効化ディレクトリのエントリを無効化するための要求を受けることに応答して、1次キャッシュ・ディレクトリにおける対応するエントリの有効ビットをそれに応じて設定するステップ
を更に含む、請求項18に記載のコンピュータ・プログラム製品。 - 前記1次キャッシュ・ディレクトリと関連付けて第1の補助データ構造を設けるステップであり、前記第1の補助データ構造の各エントリが、マルチプロセッサ・システムのTLBパージ要求に示される情報を反映する前記実効アドレスのビットを備える、前記ステップと、
前記受けた要求に対応する前記第1の補助データ構造におけるエントリを特定するステップであり、前記特定されるエントリが前記1次キャッシュ・ディレクトリのエントリを示す、前記ステップと、
を更に含む、請求項19に記載のコンピュータ・プログラム製品。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/625,223 | 2017-06-16 | ||
US15/625,223 US10831664B2 (en) | 2017-06-16 | 2017-06-16 | Cache structure using a logical directory |
PCT/IB2018/054355 WO2018229699A1 (en) | 2017-06-16 | 2018-06-14 | Cache structure using a logical directory |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2020523678A true JP2020523678A (ja) | 2020-08-06 |
JP7062695B2 JP7062695B2 (ja) | 2022-05-06 |
Family
ID=64657413
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019567327A Active JP7062695B2 (ja) | 2017-06-16 | 2018-06-14 | 論理ディレクトリを使用したキャッシュ構造 |
Country Status (5)
Country | Link |
---|---|
US (3) | US10831664B2 (ja) |
JP (1) | JP7062695B2 (ja) |
DE (1) | DE112018003032T5 (ja) |
GB (1) | GB2578070B (ja) |
WO (1) | WO2018229699A1 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2560336B (en) * | 2017-03-07 | 2020-05-06 | Imagination Tech Ltd | Address generators for verifying integrated circuit hardware designs for cache memory |
US10831664B2 (en) | 2017-06-16 | 2020-11-10 | International Business Machines Corporation | Cache structure using a logical directory |
US10698836B2 (en) | 2017-06-16 | 2020-06-30 | International Business Machines Corporation | Translation support for a virtual cache |
CN110059026B (zh) * | 2018-01-19 | 2021-06-29 | 华为技术有限公司 | 一种目录处理方法、装置及存储系统 |
US11693785B2 (en) | 2019-12-27 | 2023-07-04 | Intel Corporation | Memory tagging apparatus and method |
US11392503B2 (en) * | 2019-12-27 | 2022-07-19 | Intel Corporation | Memory tagging apparatus and method |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6122709A (en) * | 1997-12-19 | 2000-09-19 | Sun Microsystems, Inc. | Cache with reduced tag information storage |
JP2010097558A (ja) * | 2008-10-20 | 2010-04-30 | Toshiba Corp | 仮想アドレスキャッシュメモリ及び仮想アドレスキャッシュ方法 |
Family Cites Families (43)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4654790A (en) | 1983-11-28 | 1987-03-31 | Amdahl Corporation | Translation of virtual and real addresses to system addresses |
US4797814A (en) | 1986-05-01 | 1989-01-10 | International Business Machines Corporation | Variable address mode cache |
JPH06299844A (ja) | 1991-07-10 | 1994-10-25 | Usui Internatl Ind Co Ltd | 排気ガス浄化装置 |
JP2839060B2 (ja) | 1992-03-02 | 1998-12-16 | インターナショナル・ビジネス・マシーンズ・コーポレイション | データ処理システムおよびデータ処理方法 |
JPH07287668A (ja) | 1994-04-19 | 1995-10-31 | Hitachi Ltd | データ処理装置 |
JP3713312B2 (ja) | 1994-09-09 | 2005-11-09 | 株式会社ルネサステクノロジ | データ処理装置 |
KR970029072A (ko) | 1995-11-17 | 1997-06-26 | 김주용 | 이중 디렉토리 가상 캐쉬 및 그 제어 방법 |
US6055605A (en) | 1997-10-24 | 2000-04-25 | Compaq Computer Corporation | Technique for reducing latency of inter-reference ordering using commit signals in a multiprocessor system having shared caches |
US8135962B2 (en) * | 2002-03-27 | 2012-03-13 | Globalfoundries Inc. | System and method providing region-granular, hardware-controlled memory encryption |
US7039768B2 (en) | 2003-04-25 | 2006-05-02 | International Business Machines Corporation | Cache predictor for simultaneous multi-threaded processor system supporting multiple transactions |
US7873785B2 (en) | 2003-08-19 | 2011-01-18 | Oracle America, Inc. | Multi-core multi-thread processor |
US20050182912A1 (en) | 2004-02-12 | 2005-08-18 | International Business Machines Corporation | Method of effective to real address translation for a multi-threaded microprocessor |
US7318127B2 (en) | 2005-02-11 | 2008-01-08 | International Business Machines Corporation | Method, apparatus, and computer program product for sharing data in a cache among threads in an SMT processor |
US7496730B2 (en) * | 2005-04-15 | 2009-02-24 | Microsoft Corporation | System and method for reducing the number of translation buffer invalidates an operating system needs to issue |
US7363463B2 (en) | 2005-05-13 | 2008-04-22 | Microsoft Corporation | Method and system for caching address translations from multiple address spaces in virtual machines |
US7426627B2 (en) | 2006-03-10 | 2008-09-16 | Microsoft Corporation | Selective address translation for a resource such as a hardware device |
US7881921B1 (en) | 2006-07-05 | 2011-02-01 | Synopsys, Inc. | Caching information to map simulation addresses to host addresses in computer system simulations |
US8019968B2 (en) | 2008-02-14 | 2011-09-13 | International Business Machines Corporation | 3-dimensional L2/L3 cache array to hide translation (TLB) delays |
US8041894B2 (en) | 2008-02-25 | 2011-10-18 | International Business Machines Corporation | Method and system for a multi-level virtual/real cache system with synonym resolution |
US8095773B2 (en) | 2008-02-26 | 2012-01-10 | International Business Machines Corporation | Dynamic address translation with translation exception qualifier |
US7472226B1 (en) | 2008-03-20 | 2008-12-30 | International Business Machines Corporation | Methods involving memory caches |
US8549208B2 (en) * | 2008-12-08 | 2013-10-01 | Teleputers, Llc | Cache memory having enhanced performance and security features |
US20100211616A1 (en) | 2009-02-16 | 2010-08-19 | Rajesh Khandelwal | Performance by Avoiding Disk I/O for Deduplicated File Blocks |
WO2010095182A1 (ja) | 2009-02-17 | 2010-08-26 | パナソニック株式会社 | マルチスレッドプロセッサ及びデジタルテレビシステム |
US8429377B2 (en) | 2010-01-08 | 2013-04-23 | International Business Machines Corporation | Optimizing TLB entries for mixed page size storage in contiguous memory |
WO2013058745A1 (en) | 2011-10-18 | 2013-04-25 | Soft Machines, Inc. | Methods and systems for managing synonyms in virtually indexed physically tagged caches |
US9047194B2 (en) | 2012-07-18 | 2015-06-02 | Empire Technology Development Llc | Virtual cache directory in multi-processor architectures |
US20140082252A1 (en) | 2012-09-17 | 2014-03-20 | International Business Machines Corporation | Combined Two-Level Cache Directory |
GB2507759A (en) | 2012-11-08 | 2014-05-14 | Ibm | Hierarchical cache with a first level data cache which can access a second level instruction cache or a third level unified cache |
CN104252425B (zh) | 2013-06-28 | 2017-07-28 | 华为技术有限公司 | 一种指令缓存的管理方法和处理器 |
GB2516477A (en) | 2013-07-24 | 2015-01-28 | Ibm | Method and system for handling virtual memory address synonyms in a multi-level cache hierarchy structure |
CN105095104B (zh) | 2014-04-15 | 2018-03-27 | 华为技术有限公司 | 数据缓存处理方法及装置 |
CN104679669B (zh) | 2014-11-27 | 2018-04-27 | 华为技术有限公司 | 高速缓存cache存储器系统及访问缓存行cache line的方法 |
US10089240B2 (en) | 2014-12-26 | 2018-10-02 | Wisconsin Alumni Research Foundation | Cache accessed using virtual addresses |
US9477613B2 (en) | 2015-02-13 | 2016-10-25 | International Business Machines Corporation | Position-based replacement policy for address synonym management in shared caches |
CN105095114A (zh) | 2015-08-13 | 2015-11-25 | 广州优倍达信息科技有限公司 | 一种计算机缓存系统的管理方法 |
US20170091117A1 (en) | 2015-09-25 | 2017-03-30 | Qualcomm Incorporated | Method and apparatus for cache line deduplication via data matching |
GB2543745B (en) | 2015-10-15 | 2018-07-04 | Advanced Risc Mach Ltd | An apparatus and method for operating a virtually indexed physically tagged cache |
CN105677581A (zh) | 2016-01-05 | 2016-06-15 | 上海斐讯数据通信技术有限公司 | 一种内存访问装置和方法 |
US10176099B2 (en) * | 2016-07-11 | 2019-01-08 | Intel Corporation | Using data pattern to mark cache lines as invalid |
US10698836B2 (en) | 2017-06-16 | 2020-06-30 | International Business Machines Corporation | Translation support for a virtual cache |
US10606762B2 (en) | 2017-06-16 | 2020-03-31 | International Business Machines Corporation | Sharing virtual and real translations in a virtual cache |
US10831664B2 (en) | 2017-06-16 | 2020-11-10 | International Business Machines Corporation | Cache structure using a logical directory |
-
2017
- 2017-06-16 US US15/625,223 patent/US10831664B2/en active Active
- 2017-12-15 US US15/844,084 patent/US10713168B2/en active Active
-
2018
- 2018-06-14 JP JP2019567327A patent/JP7062695B2/ja active Active
- 2018-06-14 GB GB2000445.3A patent/GB2578070B/en active Active
- 2018-06-14 WO PCT/IB2018/054355 patent/WO2018229699A1/en active Application Filing
- 2018-06-14 DE DE112018003032.6T patent/DE112018003032T5/de active Pending
-
2020
- 2020-10-13 US US17/069,738 patent/US11403222B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6122709A (en) * | 1997-12-19 | 2000-09-19 | Sun Microsystems, Inc. | Cache with reduced tag information storage |
JP2010097558A (ja) * | 2008-10-20 | 2010-04-30 | Toshiba Corp | 仮想アドレスキャッシュメモリ及び仮想アドレスキャッシュ方法 |
Also Published As
Publication number | Publication date |
---|---|
JP7062695B2 (ja) | 2022-05-06 |
US20210026771A1 (en) | 2021-01-28 |
GB2578070B (en) | 2020-09-09 |
GB2578070A (en) | 2020-04-15 |
GB202000445D0 (en) | 2020-02-26 |
DE112018003032T5 (de) | 2020-03-26 |
US11403222B2 (en) | 2022-08-02 |
WO2018229699A1 (en) | 2018-12-20 |
US10831664B2 (en) | 2020-11-10 |
US20180365153A1 (en) | 2018-12-20 |
US10713168B2 (en) | 2020-07-14 |
US20180365152A1 (en) | 2018-12-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7062695B2 (ja) | 論理ディレクトリを使用したキャッシュ構造 | |
JP7062696B2 (ja) | 仮想キャッシュにおける仮想および実変換の共有 | |
US7089398B2 (en) | Address translation using a page size tag | |
US11775445B2 (en) | Translation support for a virtual cache | |
JP2618175B2 (ja) | キャッシュ・アクセスのための仮想アドレス変換予測の履歴テーブル | |
JP6091598B2 (ja) | ハイブリッド・アドレス変換のためのシステム、方法、およびコンピュータ・プログラム(ハイブリッド・アドレス変換) | |
CN107818053B (zh) | 用于存取高速缓存的方法与装置 | |
US11221963B2 (en) | Methods and systems for incorporating non-tree based address translation into a hierarchical translation lookaside buffer (TLB) | |
US20220012183A1 (en) | Methods and systems for translating virtual addresses in a virtual memory based system | |
US10740248B2 (en) | Methods and systems for predicting virtual address | |
US20140013054A1 (en) | Storing data structures in cache | |
JPS623354A (ja) | キヤツシユメモリ・アクセス方式 | |
US11461237B2 (en) | Methods and systems for translating virtual addresses in a virtual memory based system | |
US10140217B1 (en) | Link consistency in a hierarchical TLB with concurrent table walks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20201130 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20211227 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20211228 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220322 |
|
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: 20220413 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20220420 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7062695 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |