JP7264806B2 - キャッシュエントリでメモリアクセス要求のペンデンシを識別するシステム及び方法 - Google Patents
キャッシュエントリでメモリアクセス要求のペンデンシを識別するシステム及び方法 Download PDFInfo
- Publication number
- JP7264806B2 JP7264806B2 JP2019501927A JP2019501927A JP7264806B2 JP 7264806 B2 JP7264806 B2 JP 7264806B2 JP 2019501927 A JP2019501927 A JP 2019501927A JP 2019501927 A JP2019501927 A JP 2019501927A JP 7264806 B2 JP7264806 B2 JP 7264806B2
- Authority
- JP
- Japan
- Prior art keywords
- cache
- data
- memory
- entry
- processor
- 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.)
- Active
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
-
- 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/0844—Multiple simultaneous or quasi-simultaneous cache accessing
-
- 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/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- 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/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/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/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
- 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/28—Using a specific disk cache architecture
- G06F2212/281—Single cache
-
- 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/31—Providing disk cache in a specific location of a storage system
- G06F2212/313—In storage 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/60—Details of cache memory
- G06F2212/608—Details relating to cache mapping
-
- 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)
Description
処理システムは、プロセッサでの命令の実行をサポートするために、通常、実行する命令によってアクセスされるデータを記憶するためのメモリモジュールから構成されたメモリサブシステムを含む。処理効率を促進するために、メモリサブシステムは、実行する命令によってアクセス可能な全てのデータを記憶するために、最上位のメインメモリと、メインメモリに記憶されるデータのサブセットを記憶するための下位レベルの1つ以上のキャッシュと、を有するメモリ階層で構成することができる。処理効率をさらに向上させるために、処理システムは、1つ以上のキャッシュコントローラを介してメインメモリから1つ以上の下位レベルのメモリへデータをフェッチするのを管理するメモリ管理プロトコルを実装することができる。例えば、プロセッサが必要とするデータがメモリ階層のキャッシュに見つからない場合(「キャッシュミス」と呼ばれる)、キャッシュコントローラは、メモリ階層の異なるレベルから(例えば、異なるキャッシュ又はメインメモリから等)データを取り出すメモリアクセス要求を発行する。
Claims (11)
- プロセッサが、データに対する第1要求(102)のキャッシュ(140)でのキャッシュミスに応じて、前記データを記憶するために前記キャッシュのキャッシュエントリ(245)を割り当てることと、
前記プロセッサが、前記データが異なるレベルのメモリ(150)から前記キャッシュに取り出されている間に、前記第1要求が前記キャッシュで保留中であるという指標(147)を前記キャッシュエントリに記憶することと、データインデックス及びキャッシュエントリの位置情報を含む識別子(165)をバッファ(130)に記憶することと、
前記プロセッサが、前記データが前記キャッシュに取り出されている間に、前記キャッシュにおいて前記データに対する第2要求(104)を受信したことに応じて、前記キャッシュエントリの前記指標を読み取ることと、
前記プロセッサが、前記指標に基づいて、前記第1要求が前記キャッシュで保留中であることを識別したことに応じて、前記データが前記キャッシュに取り出されるまで、前記データに対する第2要求を保留状態にし、前記第2要求を、既に前記プロセッサにコピーされたキャッシュヒットとして扱う(722)ことと、を含む、
方法。 - 前記キャッシュにおいて前記データを受信したことに応じて、前記データを前記キャッシュの前記キャッシュエントリに記憶することをさらに含む、
請求項1の方法。 - 前記キャッシュにおいて前記データを受信したことに応じて、前記バッファにアクセスして、前記データを記憶するための前記キャッシュの前記キャッシュエントリを決定することをさらに含む、
請求項2の方法。 - 前記キャッシュエントリに有効なデータが記憶されていることを示すために、前記キャッシュエントリの前記指標を更新することをさらに含む、
請求項2の方法。 - 前記識別子は、前記キャッシュエントリのセットの指標(512)とウェイ(514)とを含む、
請求項1の方法。 - 前記識別子は、前記データに対応するメモリアドレスに基づくタグ値を含む、
請求項1の方法。 - プロセッサ(100)であって、
キャッシュ(140)と、
キャッシュコントローラ(120)と、を備え、
前記キャッシュコントローラ(120)は、
データに対する第1要求(102)の前記キャッシュでのキャッシュミスに応じて、前記データを記憶するために前記キャッシュのキャッシュエントリ(245)を割り当てることと、
前記データが異なるレベルのメモリ(150)から前記キャッシュに取り出されている間に、前記第1要求が前記キャッシュで保留中であるという指標(147)を前記キャッシュエントリに記憶することと、データインデックス及びキャッシュエントリの位置情報を含む識別子(165)をバッファ(130)に記憶することと、
前記データが前記キャッシュに取り出されている間に、前記キャッシュにおいて前記データに対する第2要求(104)を受信したことに応じて、前記キャッシュエントリの前記指標を読み取ることと、
前記指標に基づいて、前記第1要求が前記キャッシュで保留中であることを識別したことに応じて、前記データが前記キャッシュに取り出されるまで、前記データに対する第2要求を保留状態にし、前記第2要求を、既に前記プロセッサにコピーされたキャッシュヒットとして扱う(722)ことと、
を行うように構成されている、
プロセッサ(100)。 - 前記キャッシュコントローラは、
前記データを受信したことに応じて、前記データを前記キャッシュの前記キャッシュエントリに記憶することを行うように構成されている、
請求項7のプロセッサ。 - 前記キャッシュコントローラは、
前記データを受信したことに応じて、前記バッファにアクセスして、前記データを記憶するための前記キャッシュの前記キャッシュエントリを決定することを行うように構成されている、
請求項8のプロセッサ。 - 前記キャッシュコントローラは、
前記キャッシュエントリに有効なデータが記憶されていることを示すために、前記指標を更新することを行うように構成されている、
請求項8のプロセッサ。 - 前記識別子は、前記キャッシュエントリのセットの指標とウェイとを含む、
請求項7のプロセッサ。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/211,547 | 2016-07-15 | ||
US15/211,547 US10922230B2 (en) | 2016-07-15 | 2016-07-15 | System and method for identifying pendency of a memory access request at a cache entry |
PCT/US2017/041935 WO2018013813A1 (en) | 2016-07-15 | 2017-07-13 | System and method for identifying pendency of a memory access request at a cache entry |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2019525327A JP2019525327A (ja) | 2019-09-05 |
JP7264806B2 true JP7264806B2 (ja) | 2023-04-25 |
Family
ID=60941112
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019501927A Active JP7264806B2 (ja) | 2016-07-15 | 2017-07-13 | キャッシュエントリでメモリアクセス要求のペンデンシを識別するシステム及び方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US10922230B2 (ja) |
EP (1) | EP3485381A4 (ja) |
JP (1) | JP7264806B2 (ja) |
KR (1) | KR102465851B1 (ja) |
CN (1) | CN109478163B (ja) |
WO (1) | WO2018013813A1 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11403035B2 (en) * | 2018-12-19 | 2022-08-02 | Micron Technology, Inc. | Memory module including a controller and interfaces for communicating with a host and another memory module |
US11568932B2 (en) * | 2021-02-22 | 2023-01-31 | Micron Technology, Inc. | Read cache for reset read disturb mitigation |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030056066A1 (en) | 2001-09-14 | 2003-03-20 | Shailender Chaudhry | Method and apparatus for decoupling tag and data accesses in a cache memory |
JP2007286990A (ja) | 2006-04-19 | 2007-11-01 | Nec Corp | キャッシュメモリ装置及びそれに用いるキャッシュメモリ制御方法並びにそのプログラム |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6430654B1 (en) | 1998-01-21 | 2002-08-06 | Sun Microsystems, Inc. | Apparatus and method for distributed non-blocking multi-level cache |
WO2002099652A1 (en) * | 2001-06-06 | 2002-12-12 | Sun Microsystems, Inc. | Method and apparatus for facilitating flow control during accesses to cache memory |
US6912623B2 (en) * | 2002-06-04 | 2005-06-28 | Sandbridge Technologies, Inc. | Method and apparatus for multithreaded cache with simplified implementation of cache replacement policy |
US20060015689A1 (en) | 2004-07-15 | 2006-01-19 | International Business Machines Corporation | Implementation and management of moveable buffers in cache system |
US20070067572A1 (en) | 2005-09-19 | 2007-03-22 | Via Technologies, Inc. | Buffering missed requests in processor caches |
US8285926B2 (en) * | 2010-05-03 | 2012-10-09 | Oracle America, Inc. | Cache access filtering for processors without secondary miss detection |
US20140089600A1 (en) | 2012-09-27 | 2014-03-27 | Apple Inc. | System cache with data pending state |
JP2014186579A (ja) * | 2013-03-25 | 2014-10-02 | Sony Corp | キャッシュメモリ、キャッシュメモリ制御装置、および、そのキャッシュメモリ制御方法 |
US9304929B2 (en) | 2013-10-24 | 2016-04-05 | Mediatek Singapore Pte. Ltd. | Storage system having tag storage device with multiple tag entries associated with same data storage line for data recycling and related tag storage device |
GB2537357A (en) * | 2015-04-09 | 2016-10-19 | Imagination Tech Ltd | Cache operation in a multi-threaded processor |
GB2538055B (en) * | 2015-04-28 | 2017-04-19 | Advanced Risc Mach Ltd | Data processing apparatus having a cache |
US10331561B1 (en) * | 2016-06-29 | 2019-06-25 | Emc Corporation | Systems and methods for rebuilding a cache index |
-
2016
- 2016-07-15 US US15/211,547 patent/US10922230B2/en active Active
-
2017
- 2017-07-13 KR KR1020197001278A patent/KR102465851B1/ko active IP Right Grant
- 2017-07-13 JP JP2019501927A patent/JP7264806B2/ja active Active
- 2017-07-13 WO PCT/US2017/041935 patent/WO2018013813A1/en unknown
- 2017-07-13 EP EP17828465.9A patent/EP3485381A4/en active Pending
- 2017-07-13 CN CN201780043868.1A patent/CN109478163B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030056066A1 (en) | 2001-09-14 | 2003-03-20 | Shailender Chaudhry | Method and apparatus for decoupling tag and data accesses in a cache memory |
JP2007286990A (ja) | 2006-04-19 | 2007-11-01 | Nec Corp | キャッシュメモリ装置及びそれに用いるキャッシュメモリ制御方法並びにそのプログラム |
Also Published As
Publication number | Publication date |
---|---|
CN109478163B (zh) | 2024-03-26 |
EP3485381A4 (en) | 2020-03-25 |
CN109478163A (zh) | 2019-03-15 |
WO2018013813A1 (en) | 2018-01-18 |
KR20190019157A (ko) | 2019-02-26 |
JP2019525327A (ja) | 2019-09-05 |
KR102465851B1 (ko) | 2022-11-11 |
EP3485381A1 (en) | 2019-05-22 |
US20180018264A1 (en) | 2018-01-18 |
US10922230B2 (en) | 2021-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111344684B (zh) | 多层缓存安置机制 | |
US10599578B2 (en) | Dynamic cache bypassing | |
US20210173789A1 (en) | System and method for storing cache location information for cache entry transfer | |
TWI603264B (zh) | 準確預測記憶體存取之以區域爲基礎的技術 | |
JP6630449B2 (ja) | 他のキャッシュでのエントリの可用性に基づくキャッシュエントリの置換 | |
US8364904B2 (en) | Horizontal cache persistence in a multi-compute node, symmetric multiprocessing computer | |
US8583873B2 (en) | Multiport data cache apparatus and method of controlling the same | |
US20180113815A1 (en) | Cache entry replacement based on penalty of memory access | |
JP7264806B2 (ja) | キャッシュエントリでメモリアクセス要求のペンデンシを識別するシステム及び方法 | |
US11288205B2 (en) | Access log and address translation log for a processor | |
US8356141B2 (en) | Identifying replacement memory pages from three page record lists | |
US20140013054A1 (en) | Storing data structures in cache | |
KR101976320B1 (ko) | 라스트 레벨 캐시 메모리 및 이의 데이터 관리 방법 | |
US20160041916A1 (en) | Systems and Methods to Manage Cache Data Storage | |
JP2019521410A (ja) | 別のキャッシュレベルからのヒントに基づくキャッシュエントリエイジの設定 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200710 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20210628 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20210706 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20211006 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20211203 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20220412 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220812 |
|
C60 | Trial request (containing other claim documents, opposition documents) |
Free format text: JAPANESE INTERMEDIATE CODE: C60 Effective date: 20220812 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20220822 |
|
C21 | Notice of transfer of a case for reconsideration by examiners before appeal proceedings |
Free format text: JAPANESE INTERMEDIATE CODE: C21 Effective date: 20220823 |
|
A912 | Re-examination (zenchi) completed and case transferred to appeal board |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20221021 |
|
C211 | Notice of termination of reconsideration by examiners before appeal proceedings |
Free format text: JAPANESE INTERMEDIATE CODE: C211 Effective date: 20221025 |
|
C22 | Notice of designation (change) of administrative judge |
Free format text: JAPANESE INTERMEDIATE CODE: C22 Effective date: 20221108 |
|
C22 | Notice of designation (change) of administrative judge |
Free format text: JAPANESE INTERMEDIATE CODE: C22 Effective date: 20221213 |
|
C23 | Notice of termination of proceedings |
Free format text: JAPANESE INTERMEDIATE CODE: C23 Effective date: 20230221 |
|
C03 | Trial/appeal decision taken |
Free format text: JAPANESE INTERMEDIATE CODE: C03 Effective date: 20230322 |
|
C30A | Notification sent |
Free format text: JAPANESE INTERMEDIATE CODE: C3012 Effective date: 20230322 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20230413 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7264806 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |