JP2020523676A - 仮想キャッシュのための変換支援 - Google Patents
仮想キャッシュのための変換支援 Download PDFInfo
- Publication number
- JP2020523676A JP2020523676A JP2019567254A JP2019567254A JP2020523676A JP 2020523676 A JP2020523676 A JP 2020523676A JP 2019567254 A JP2019567254 A JP 2019567254A JP 2019567254 A JP2019567254 A JP 2019567254A JP 2020523676 A JP2020523676 A JP 2020523676A
- Authority
- JP
- Japan
- Prior art keywords
- cache
- directory
- address
- entry
- thread
- 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
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/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
- 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/0808—Multiuser, multiprocessor or multiprocessing cache systems with cache invalidating 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/0815—Cache consistency protocols
- G06F12/0817—Cache consistency protocols using directory methods
-
- 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/0842—Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
-
- 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/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/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/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
-
- 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/1016—Performance improvement
- G06F2212/1021—Hit rate improvement
-
- 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/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/65—Details of virtual memory and virtual address translation
- G06F2212/656—Address space sharing
-
- 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/683—Invalidation
-
- 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次キャッシュ・ディレクトリにおける対応する1次キャッシュ・ディレクトリ・エントリの有効ビットをそれに応じて設定することを更に含む。
仮想キャッシュのディレクトリ142(「logdir」)タグ600(本明細書で「logdir」と称される)は、従前の変換ルックアサイド・バッファ(TLB)143が典型的に保持するであろう変換に関連した全ての情報を保持する。図6は、実施形態に係る例証的なlogdirタグ600の略図である。タグ600は、ビット0:49として例示される論理アドレス・ビット601、アドレス空間識別子(ここでは「ASCE」として例示される)602、「実」ビット指標R603(アドレスを仮想対実として標記する)、仮想対実アドレス・インジケータ604、および潜在的に他の内容605を含む。
オペレーティング・システムは、しばしば実アドレスを直接使用する。すなわち、プロセッサによって保持される実際の情報、命令またはデータを見つけるために、アドレス変換は必要とされない。仮想キャッシュのlogdirにおいて、これは、アドレス変換が必要とされないことを示すように「R」ビット603を設定することによって、エントリが「実」アドレスとして標記されることを意味する。
仮想キャッシュのディレクトリ142(「logdir」)タグは、TLB143などのTLBが通常保持する変換に関連した全ての情報を保持する。図10は、例示的な実施形態に係るタグ例1000を例示する。タグ1000は、論理アドレス・ビット0:49(1001)、アドレス空間識別子1002(「ASCE」)、「実」ビット指標1003(通常オペレーティング・システム使用のために、アドレスを、アドレス変換を必要としないとして標記する)、およびキャッシュ・ヒット対ミスを判定するために必要とされるまたは有用な他の内容、集合的に1004を含む。一部の実施形態において、タグは、図6〜9に関して上記したV=Rビットを含むことができる。
同時マルチスレッディング・コア(SMT)では、各スレッドは潜在的に、スレッド間で共有される絶対アドレスに対するそれ自身の変換を必要とする。上記したスレッド共有手法では、これは、スレッド1がL1ディレクトリ・ルックアップ中に正しい情報(例えば論理アドレス、ASCE、…)を見つけられないことに帰着する。したがって、たとえptrdir対L2ディレクトリ/TLB比較プロセスが、正しいキャッシュ・ラインが既にL1キャッシュにあることを示しても、このスレッドに対する有効ビットを設定することは誤りであろう。異なる変換(すなわち第1のスレッドからのもの)は、結局そのラインのために使用されるであろう。この手法では、あたかもキャッシュ・ラインにスレッドごとディレクトリ有効ビットが存在しない、すなわちトランスロードを行うかのように、状況は扱われることができる。従来の(第1の)スレッドのlogdirエントリが第2のスレッドの情報で上書きされ、そしてその他の第1のスレッドの有効ビットはオフにされる。
Claims (19)
- 仮想メモリ・サポートおよび複数スレッドを有するプロセッサにおける、仮想キャッシュ・ディレクトリであって、前記仮想キャッシュ・ディレクトリが複数のディレクトリ・エントリを有し、各エントリがキャッシュ・ラインと関連し、前記キャッシュ・ラインが、
前記複数のディレクトリ・エントリの各々と関連するタグを備え、前記タグが、
論理アドレスと、
アドレス空間識別子と、
実アドレス・ビット・インジケータと、
前記キャッシュ・ラインにアクセスする各スレッドに対するスレッドごと有効性ビットと、
を備える、
仮想キャッシュ・ディレクトリ。 - 前記キャッシュ・ラインが、プロセッサでの少なくとも2つの異なるスレッドによって共有されるように構成される、請求項1に記載の仮想キャッシュ・ディレクトリ。
- ライン有効ビットであり、前記キャッシュ・ラインにおける少なくとも1つの変換が現在有効であることを示す、前記ライン有効ビット
を更に備える、請求項1に記載の仮想キャッシュ・ディレクトリ。 - 前記論理アドレスが実アドレスと同じであることを示す仮想アドレス対実アドレス・インジケータ
を更に備える、請求項1に記載の仮想キャッシュ・ディレクトリ。 - 前記仮想アドレス対実アドレス・インジケータが設定されると、動的アドレス変換が行われない、請求項4に記載の仮想キャッシュ・ディレクトリ。
- 仮想メモリ・サポートおよび複数スレッドを伴うプロセッサのための1次プロセッサ・キャッシュを動作させる方法であって、論理インデックス付きかつ論理タグ付きキャッシュ・ディレクトリが使用され、かつ前記ディレクトリにおけるエントリが、対応する論理メモリ・アドレスに加えて絶対メモリ・アドレスを含み、各エントリが、各エントリにアクセスする各スレッドに対する有効ビットを含み、前記方法が、
第1のスレッドによって、キャッシュ・ラインが1次キャッシュに存在しないと判定することと、
前記キャッシュ・ラインが2次キャッシュにあると判定することと、
前記キャッシュ・ラインが前記2次キャッシュにあると判定することに応答して、前記1次キャッシュに前記キャッシュ・ラインに対する新たなエントリを作成することと、
第2のスレッドによって、前記キャッシュ・ラインに対するエントリが前記1次キャッシュに存在すると判定することと、
前記キャッシュ・ラインに対する前記エントリが前記1次キャッシュに存在すると判定することに応答して、前記キャッシュ・ラインが前記第2のスレッドに対して有効でないと判定することと、
前記1次キャッシュにおける前記キャッシュ・ラインに対するアドレスを判定するためにルックアップを実行することと、
前記キャッシュ・ラインに対する前記アドレスおよび前記エントリが同じキャッシュ・ラインであると判定することと、
前記アドレスおよび前記エントリが同じであると判定することに応答して、前記第2のスレッドと関連する前記有効ビットを有効に設定し、そしてキャッシュ・エントリにおける他のスレッドと関連する前記有効ビットを無効化しないことと、
を含む、方法。 - 前記2次キャッシュがL2キャッシュである、請求項6に記載の方法。
- 前記2次キャッシュがL3キャッシュである、請求項6に記載の方法。
- 前記新たなエントリを作成することが、前記1次キャッシュにおける以前のエントリを上書きする、請求項6に記載の方法。
- 前記新たなエントリを作成することが、前記2次キャッシュから前記1次キャッシュに前記キャッシュ・ラインをコピーする、請求項6に記載の方法。
- 作成することが、前記キャッシュ・ラインにおける前記第1のスレッドと関連する前記有効ビットをオンに設定する、請求項10に記載の方法。
- 作成することが、前記キャッシュ・ラインにおける任意の他のスレッドと関連する前記有効ビットを無効化する、請求項11に記載の方法。
- 前記キャッシュ・ラインが前記1次キャッシュにないと判定することが、前記ディレクトリにおけるスレッド共有エントリに基づいて判定し、かつ前記第1のスレッドが前記キャッシュ・ディレクトリにスレッド専用エントリを有する、請求項6に記載の方法。
- 仮想メモリ・サポートおよび複数スレッドを伴うプロセッサを動作させるためのコンピュータ実行可能命令を有するコンピュータ・プログラム製品であって、論理インデックス付きかつ論理タグ付きキャッシュ・ディレクトリが使用され、かつ前記ディレクトリにおけるエントリが、対応する論理メモリ・アドレスに加えて絶対メモリ・アドレスを含み、各エントリが、各エントリにアクセスする各スレッドに対する有効ビットを含み、前記コンピュータ実行可能命令が、実行されると少なくとも1つのコンピュータに、
第1のスレッドによって、キャッシュ・ラインが1次キャッシュに存在しないと判定することと、
前記キャッシュ・ラインが2次キャッシュにあると判定することと、
前記キャッシュ・ラインが前記2次キャッシュにあると判定することに応答して、前記1次キャッシュに前記キャッシュ・ラインに対する新たなエントリを作成することと、
第2のスレッドによって、前記キャッシュ・ラインに対するエントリが前記1次キャッシュに存在すると判定することと、
前記キャッシュ・ラインに対する前記エントリが前記1次キャッシュに存在すると判定することに応答して、前記キャッシュ・ラインが前記第2のスレッドに対して有効でないと判定することと、
前記1次キャッシュにおける前記キャッシュ・ラインに対するアドレスを判定するためにルックアップを実行することと、
前記キャッシュ・ラインに対する前記アドレスおよび前記エントリが同じキャッシュ・ラインであると判定することと、
前記アドレスおよび前記エントリが同じであると判定することに応答して、前記第2のスレッドと関連する前記有効ビットを有効に設定し、そしてキャッシュ・エントリにおける他のスレッドと関連する前記有効ビットを無効化しないことと、
を含む方法を実行させる、
コンピュータ・プログラム製品。 - 前記2次キャッシュがL2キャッシュである、請求項14に記載のコンピュータ・プログラム製品。
- 前記新たなエントリを作成することが、前記1次キャッシュにおける以前のエントリを上書きする、請求項14に記載のコンピュータ・プログラム製品。
- 前記新たなエントリを作成することが、前記2次キャッシュから前記1次キャッシュに前記キャッシュ・ラインをコピーする、請求項14に記載のコンピュータ・プログラム製品。
- 作成することが、前記キャッシュ・ラインにおける前記第1のスレッドと関連する前記有効ビットをオンに設定する、請求項17に記載のコンピュータ・プログラム製品。
- 作成することが、前記キャッシュ・ラインにおける任意の他のスレッドと関連する前記有効ビットを無効化する、請求項18に記載のコンピュータ・プログラム製品。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/625,289 US10698836B2 (en) | 2017-06-16 | 2017-06-16 | Translation support for a virtual cache |
US15/625,289 | 2017-06-16 | ||
PCT/IB2018/054357 WO2018229701A1 (en) | 2017-06-16 | 2018-06-14 | Translation support for a virtual cache |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2020523676A true JP2020523676A (ja) | 2020-08-06 |
JP7184815B2 JP7184815B2 (ja) | 2022-12-06 |
Family
ID=64656598
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019567254A Active JP7184815B2 (ja) | 2017-06-16 | 2018-06-14 | 仮想キャッシュのための変換支援 |
Country Status (5)
Country | Link |
---|---|
US (4) | US10698836B2 (ja) |
JP (1) | JP7184815B2 (ja) |
DE (1) | DE112018002028T5 (ja) |
GB (1) | GB2577023B (ja) |
WO (1) | WO2018229701A1 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10698836B2 (en) | 2017-06-16 | 2020-06-30 | International Business Machines Corporation | Translation support for a virtual cache |
US10831664B2 (en) | 2017-06-16 | 2020-11-10 | International Business Machines Corporation | Cache structure using a logical directory |
US10776281B2 (en) * | 2018-10-04 | 2020-09-15 | International Business Machines Corporation | Snoop invalidate filter for distributed memory management unit to reduce snoop invalidate latency |
CN110363401B (zh) * | 2019-06-26 | 2022-05-03 | 北京百度网讯科技有限公司 | 整合粘性评估方法、装置、计算机设备及存储介质 |
US11977486B2 (en) | 2022-04-04 | 2024-05-07 | International Business Machines Corporation | Shadow pointer directory in an inclusive hierarchical cache |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6299844A (ja) * | 1985-10-28 | 1987-05-09 | Hitachi Ltd | アドレス変換装置 |
JPS62260248A (ja) * | 1986-05-01 | 1987-11-12 | インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション | データ処理システム |
US20040215882A1 (en) * | 2003-04-25 | 2004-10-28 | International Business Machines Corp. | Cache predictor for simultaneous multi-threaded processor system supporting multiple translations |
US20050182912A1 (en) * | 2004-02-12 | 2005-08-18 | International Business Machines Corporation | Method of effective to real address translation for a multi-threaded microprocessor |
WO2017053109A1 (en) * | 2015-09-25 | 2017-03-30 | Qualcomm Incorporated | Method and apparatus for cache line deduplication via data matching |
Family Cites Families (40)
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 |
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 |
US6122709A (en) | 1997-12-19 | 2000-09-19 | Sun Microsystems, Inc. | Cache with reduced tag information storage |
US8135962B2 (en) | 2002-03-27 | 2012-03-13 | Globalfoundries Inc. | System and method providing region-granular, hardware-controlled memory encryption |
US7873785B2 (en) | 2003-08-19 | 2011-01-18 | Oracle America, Inc. | Multi-core multi-thread processor |
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 |
JP5300407B2 (ja) | 2008-10-20 | 2013-09-25 | 株式会社東芝 | 仮想アドレスキャッシュメモリ及び仮想アドレスキャッシュ方法 |
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 |
WO2014014452A1 (en) | 2012-07-18 | 2014-01-23 | 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 | 广州优倍达信息科技有限公司 | 一种计算机缓存系统的管理方法 |
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 |
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 |
US10698836B2 (en) | 2017-06-16 | 2020-06-30 | International Business Machines Corporation | Translation support for a virtual cache |
-
2017
- 2017-06-16 US US15/625,289 patent/US10698836B2/en active Active
- 2017-12-15 US US15/844,164 patent/US10831674B2/en active Active
-
2018
- 2018-06-14 GB GB2000046.9A patent/GB2577023B/en active Active
- 2018-06-14 JP JP2019567254A patent/JP7184815B2/ja active Active
- 2018-06-14 DE DE112018002028.2T patent/DE112018002028T5/de active Pending
- 2018-06-14 WO PCT/IB2018/054357 patent/WO2018229701A1/en active Application Filing
-
2020
- 2020-10-13 US US17/069,290 patent/US11775445B2/en active Active
-
2023
- 2023-08-18 US US18/452,310 patent/US20230401161A1/en active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6299844A (ja) * | 1985-10-28 | 1987-05-09 | Hitachi Ltd | アドレス変換装置 |
JPS62260248A (ja) * | 1986-05-01 | 1987-11-12 | インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション | データ処理システム |
US4797814A (en) * | 1986-05-01 | 1989-01-10 | International Business Machines Corporation | Variable address mode cache |
US20040215882A1 (en) * | 2003-04-25 | 2004-10-28 | International Business Machines Corp. | Cache predictor for simultaneous multi-threaded processor system supporting multiple translations |
US20050182912A1 (en) * | 2004-02-12 | 2005-08-18 | International Business Machines Corporation | Method of effective to real address translation for a multi-threaded microprocessor |
WO2017053109A1 (en) * | 2015-09-25 | 2017-03-30 | Qualcomm Incorporated | Method and apparatus for cache line deduplication via data matching |
US20170091117A1 (en) * | 2015-09-25 | 2017-03-30 | Qualcomm Incorporated | Method and apparatus for cache line deduplication via data matching |
Also Published As
Publication number | Publication date |
---|---|
WO2018229701A1 (en) | 2018-12-20 |
JP7184815B2 (ja) | 2022-12-06 |
US20180365170A1 (en) | 2018-12-20 |
GB2577023A (en) | 2020-03-11 |
US11775445B2 (en) | 2023-10-03 |
US20230401161A1 (en) | 2023-12-14 |
US20180365172A1 (en) | 2018-12-20 |
DE112018002028T5 (de) | 2020-01-16 |
GB202000046D0 (en) | 2020-02-19 |
US10831674B2 (en) | 2020-11-10 |
GB2577023B (en) | 2020-08-05 |
US10698836B2 (en) | 2020-06-30 |
US20210026783A1 (en) | 2021-01-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7062696B2 (ja) | 仮想キャッシュにおける仮想および実変換の共有 | |
JP7184815B2 (ja) | 仮想キャッシュのための変換支援 | |
JP7062695B2 (ja) | 論理ディレクトリを使用したキャッシュ構造 | |
JP2618175B2 (ja) | キャッシュ・アクセスのための仮想アドレス変換予測の履歴テーブル | |
US7089398B2 (en) | Address translation using a page size tag | |
US7472253B1 (en) | System and method for managing table lookaside buffer performance | |
KR20170100003A (ko) | 가상 주소들을 사용하여 액세스된 캐시 | |
JP2018504694A5 (ja) | ||
JP2020529656A (ja) | アドレス変換キャッシュ | |
US7549035B1 (en) | System and method for reference and modification tracking | |
US11989136B2 (en) | Methods and systems for translating virtual addresses in a virtual memory based system | |
US20050027963A1 (en) | System and method for employing a process identifier to minimize aliasing in a linear-addressed cache | |
US11636045B2 (en) | Translating virtual addresses in a virtual memory based system | |
JPS623354A (ja) | キヤツシユメモリ・アクセス方式 | |
US11474953B2 (en) | Configuration cache for the ARM SMMUv3 | |
US7546439B1 (en) | System and method for managing copy-on-write faults and change-protection |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20201130 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20211227 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20220201 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20220304 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20220502 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220628 |
|
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: 20221115 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20221124 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7184815 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |