JP7036925B2 - キャッシュ制御を考慮したメモリコントローラ - Google Patents
キャッシュ制御を考慮したメモリコントローラ Download PDFInfo
- Publication number
- JP7036925B2 JP7036925B2 JP2020532005A JP2020532005A JP7036925B2 JP 7036925 B2 JP7036925 B2 JP 7036925B2 JP 2020532005 A JP2020532005 A JP 2020532005A JP 2020532005 A JP2020532005 A JP 2020532005A JP 7036925 B2 JP7036925 B2 JP 7036925B2
- Authority
- JP
- Japan
- Prior art keywords
- access request
- tag
- memory
- cache
- data
- 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
- 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/0893—Caches characterised by their organisation or structure
-
- 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/1024—Latency reduction
-
- 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/30—Providing cache or TLB in specific location of a processing system
- G06F2212/304—In main memory subsystem
- G06F2212/3042—In main memory subsystem being part of a memory device, e.g. cache DRAM
-
- 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
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つの問題は、2次元平面レイアウトチップの連続した世代で単位長さあたりの相互接続遅延が増加し続けていることである。また、個々のチップ間の電気インピーダンスが高いため、待ち時間が長くなる。さらに、チップ外の別のダイに渡る信号は、これらの長い信号経路で寄生容量が増加するため、これらの信号の消費電力を大幅に(例えば10~100倍)増加させる場合がある。従って、オフチップダイナミックランダムアクセスメモリ(DRAM)などのシステムメモリへのメモリアクセス待ち時間は、相当なものである。
Claims (17)
- メモリアクセス要求を受信するための第1のインタフェースと、
キャッシュタグアクセス要求及びキャッシュデータアクセス要求をRAMキャッシュメモリデバイスに送信するための第2のインタフェースと、
制御ロジックと、
を含む、ランダムアクセスメモリ(RAM)キャッシュメモリコントローラであって、
メモリアクセス要求の受信に応答して、前記制御ロジックが、
前記メモリアクセス要求に基づいてキャッシュタグアクセス要求を生成することと、
前記キャッシュタグアクセス要求を送信する前に、前記メモリアクセス要求に基づいて前記キャッシュタグアクセス要求とは異なるキャッシュデータアクセス要求を生成することと、
前記キャッシュタグアクセス要求及び前記キャッシュデータアクセス要求のそれぞれに一意の識別子を記憶することであって、前記一意の識別子は、前記キャッシュタグアクセス要求と前記キャッシュデータアクセス要求が同じメモリアクセス要求から生成されることを特定する、ことと、
前記第2のインタフェースを介して前記キャッシュタグアクセス要求を前記RAMキャッシュメモリデバイスに送信することと、
前記キャッシュタグアクセス要求を処理することによって生成された情報に基づいて、前記RAMキャッシュメモリデバイスへの前記キャッシュデータアクセス要求の送信をスケジュールすることと、
を行うように構成される、ランダムアクセスメモリ(RAM)キャッシュメモリコントローラ。 - 前記制御ロジックが、
前記RAMキャッシュメモリデバイス内の複数の行のうち、前記キャッシュタグアクセス要求のアドレスに対応する所与の行を識別することと、
前記所与の行に記憶されている1つまたは複数のタグの一部分のみを、前記キャッシュタグアクセス要求の前記アドレスのタグの一部分のみと比較するすることと、
を行うように構成される、請求項1に記載のRAMキャッシュメモリコントローラ。 - 前記キャッシュデータアクセス要求の送信をスケジュールすることが、前記アドレスの前記タグの一部分のみを比較することに基づいてタグミスを判別することに応答して、前記RAMキャッシュメモリデバイスへの前記キャッシュデータアクセス要求の送信をキャンセルすることを含む、請求項2に記載のRAMキャッシュメモリコントローラ。
- 前記アドレスの前記タグの前記一部分のみを比較することに基づいてタグミスを判別することに応答して、前記制御ロジックが、システムメモリとメインメモリとの1つまたは複数に前記メモリアクセス要求を送信するようにさらに構成される、請求項2に記載のRAMキャッシュメモリコントローラ。
- 前記キャッシュデータアクセス要求の送信をスケジュールすることが、前記所与の行の前記1つまたは複数のタグの全体を前記キャッシュタグアクセス要求の前記アドレスの前記タグの全体と比較することに基づいてタグヒットを判別することに応答して、前記第2のインタフェースを介して前記RAMキャッシュメモリデバイスに前記キャッシュデータアクセス要求を送信することを含む、請求項2に記載のRAMキャッシュメモリコントローラ。
- 前記制御ロジックが、前記キャッシュデータアクセス要求によるアクセスから生じる前記タグヒットに対応するタグの位置に基づいて、前記キャッシュデータアクセス要求によってアクセスされる所与の行のデータを識別するようにさらに構成される、請求項5に記載のRAMキャッシュメモリコントローラ。
- プロセッサが、メモリデバイスに記憶されたデータに対するメモリアクセス要求を生成することと、
メモリコントローラが、前記プロセッサから前記メモリアクセス要求を受信することと、
メモリアクセス要求の受信に応答して、
前記メモリコントローラが、前記メモリアクセス要求に基づいてタグアクセス要求を生成することと、
前記メモリコントローラが、前記タグアクセス要求を送信する前に、前記メモリアクセス要求に基づいて前記タグアクセス要求とは異なるデータアクセス要求を生成することと、
前記メモリコントローラが、前記タグアクセス要求と前記データアクセス要求のそれぞれに一意の識別子を記憶することであって、前記一意の識別子は、前記タグアクセス要求と前記データアクセス要求が同じメモリアクセス要求から生成されていることを特定する、ことと、
前記メモリコントローラが、前記タグアクセス要求を前記メモリデバイスに送信することと、
前記メモリコントローラが、前記タグアクセス要求を処理することによって生成された情報に基づいて、前記データアクセス要求の送信をスケジュールすることと、を含む、
方法。 - 前記メモリデバイス内の複数の行のうち、前記タグアクセス要求のアドレスに対応する所与の行を識別することと、
前記所与の行に記憶されている1つまたは複数のタグの一部分のみを、前記タグアクセス要求の前記アドレスのタグの一部分のみと比較することと、
をさらに含む、請求項7に記載の方法。 - 前記データアクセス要求の送信をスケジュールすることが、前記アドレスの前記タグの前記一部分のみを比較することに基づいてタグミスを判別することに応答して、前記データアクセス要求の前記メモリデバイスへの送信をキャンセルすることを含む、請求項8に記載の方法。
- 前記アドレスの前記タグの前記一部分のみを比較することに基づいてタグミスを判別することに応答して、前記方法が、システムメモリとメインメモリとの1つまたは複数に前記メモリアクセス要求を送信することをさらに含む、請求項8に記載の方法。
- 前記データアクセス要求の送信をスケジュールすることが、前記所与の行の前記1つまたは複数のタグの全体を前記タグアクセス要求の前記アドレスの前記タグの全体と比較することに基づいてタグヒットを判別することに応答して、前記データアクセス要求を前記メモリデバイスに送信することを含む、請求項8に記載の方法。
- 前記タグアクセス要求によるアクセスから生じる前記タグヒットに対応するタグの位置に基づいて、前記データアクセス要求によってアクセスされる所与の行のデータを識別することをさらに含む、請求項11に記載の方法。
- メモリデバイスに記憶されたデータに対するメモリアクセス要求を生成するように構成されたプロセッサと、
前記メモリデバイスに結合されたメモリコントローラと、
を含む、コンピューティングシステムであって、
メモリアクセス要求の受信に応答して、前記メモリコントローラが、
前記メモリアクセス要求に基づいてタグアクセス要求を生成することと、
前記タグアクセス要求を送信する前に、前記メモリアクセス要求に基づいて前記タグアクセス要求とは異なるデータアクセス要求を生成することと、
前記タグアクセス要求及び前記データアクセス要求のそれぞれに一意の識別子を記憶することであって、前記一意の識別子は、前記タグアクセス要求と前記データアクセス要求が同じメモリアクセス要求から生成されることを特定する、ことと、
前記タグアクセス要求を前記メモリデバイスに送信することと、
前記タグアクセス要求を処理することによって生成される情報に基づいて、前記データアクセス要求の送信をスケジュールすることと、
を行うように構成される、コンピューティングシステム。 - 前記メモリコントローラが、
前記メモリデバイス内の複数の行のうち、前記タグアクセス要求のアドレスに対応する所与の行を識別し、且つ、
前記所与の行に記憶されている1つまたは複数のタグの一部分のみを、前記タグアクセス要求の前記アドレスのタグの一部分のみと比較する
ように構成される、請求項13に記載のコンピューティングシステム。 - 前記データアクセス要求の送信をスケジュールすることが、前記アドレスの前記タグの前記一部分のみを比較することに基づいてタグミスを判別することに応答して、前記データアクセス要求の前記メモリデバイスへの送信をキャンセルすることを含む、請求項14に記載のコンピューティングシステム。
- 前記アドレスの前記タグの前記一部分のみを比較することに基づいてタグミスを判別することに応答して、前記メモリコントローラが、システムメモリとメインメモリとの1つまたは複数に前記メモリアクセス要求を送信するようにさらに構成される、請求項14に記載のコンピューティングシステム。
- 前記データアクセス要求の送信をスケジュールすることが、前記所与の行の前記1つまたは複数のタグの全体を前記タグアクセス要求の前記アドレスの前記タグの全体と比較することに基づいてタグヒットを判別することに応答して、前記データアクセス要求を前記メモリデバイスに送信することを含む、請求項15に記載のコンピューティングシステム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/839,700 US10572389B2 (en) | 2017-12-12 | 2017-12-12 | Cache control aware memory controller |
US15/839,700 | 2017-12-12 | ||
PCT/US2018/051624 WO2019118035A1 (en) | 2017-12-12 | 2018-09-19 | Cache control aware memory controller |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2021506033A JP2021506033A (ja) | 2021-02-18 |
JP2021506033A5 JP2021506033A5 (ja) | 2021-10-28 |
JP7036925B2 true JP7036925B2 (ja) | 2022-03-15 |
Family
ID=63794666
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020532005A Active JP7036925B2 (ja) | 2017-12-12 | 2018-09-19 | キャッシュ制御を考慮したメモリコントローラ |
Country Status (6)
Country | Link |
---|---|
US (1) | US10572389B2 (ja) |
EP (1) | EP3724775B1 (ja) |
JP (1) | JP7036925B2 (ja) |
KR (1) | KR102402630B1 (ja) |
CN (1) | CN111684427A (ja) |
WO (1) | WO2019118035A1 (ja) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10782908B2 (en) | 2018-02-05 | 2020-09-22 | Micron Technology, Inc. | Predictive data orchestration in multi-tier memory systems |
US11416395B2 (en) | 2018-02-05 | 2022-08-16 | Micron Technology, Inc. | Memory virtualization for accessing heterogeneous memory components |
US11099789B2 (en) | 2018-02-05 | 2021-08-24 | Micron Technology, Inc. | Remote direct memory access in multi-tier memory systems |
US10880401B2 (en) * | 2018-02-12 | 2020-12-29 | Micron Technology, Inc. | Optimization of data access and communication in memory systems |
US10732897B2 (en) | 2018-07-03 | 2020-08-04 | Western Digital Technologies, Inc. | Quality of service based arbitrations optimized for enterprise solid state drives |
US11392320B2 (en) | 2018-07-03 | 2022-07-19 | Western Digital Technologies, Inc. | Quality of service based arbitrations optimized for enterprise solid state drives |
US10877892B2 (en) | 2018-07-11 | 2020-12-29 | Micron Technology, Inc. | Predictive paging to accelerate memory access |
US10852949B2 (en) | 2019-04-15 | 2020-12-01 | Micron Technology, Inc. | Predictive data pre-fetching in a data storage device |
KR102579319B1 (ko) | 2023-04-19 | 2023-09-18 | 메티스엑스 주식회사 | 캐시 메모리 장치 및 이를 이용하는 캐시 스케줄링 구현 방법 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090006777A1 (en) | 2007-06-28 | 2009-01-01 | Donley Greggory D | Apparatus for reducing cache latency while preserving cache bandwidth in a cache subsystem of a processor |
JP2012103826A (ja) | 2010-11-09 | 2012-05-31 | Fujitsu Ltd | キャッシュメモリシステム |
US20120151251A1 (en) | 2010-12-08 | 2012-06-14 | Advanced Micro Devices, Inc. | Queue freeze on protocol error |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2256512B (en) * | 1991-06-04 | 1995-03-15 | Intel Corp | Second level cache controller unit and system |
US6427188B1 (en) * | 2000-02-09 | 2002-07-30 | Hewlett-Packard Company | Method and system for early tag accesses for lower-level caches in parallel with first-level cache |
JP4520788B2 (ja) * | 2004-07-29 | 2010-08-11 | 富士通株式会社 | マルチスレッドプロセッサ |
US7680985B2 (en) * | 2007-06-28 | 2010-03-16 | International Business Machines Corporation | Method and apparatus for accessing a split cache directory |
US8341358B1 (en) * | 2009-09-18 | 2012-12-25 | Nvidia Corporation | System and method for cleaning dirty data in a cache via frame buffer logic |
US20120136857A1 (en) * | 2010-11-30 | 2012-05-31 | Advanced Micro Devices, Inc. | Method and apparatus for selectively performing explicit and implicit data line reads |
US20120144118A1 (en) * | 2010-12-07 | 2012-06-07 | Advanced Micro Devices, Inc. | Method and apparatus for selectively performing explicit and implicit data line reads on an individual sub-cache basis |
US20120297256A1 (en) | 2011-05-20 | 2012-11-22 | Qualcomm Incorporated | Large Ram Cache |
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 |
US8868843B2 (en) * | 2011-11-30 | 2014-10-21 | Advanced Micro Devices, Inc. | Hardware filter for tracking block presence in large caches |
US9753858B2 (en) * | 2011-11-30 | 2017-09-05 | Advanced Micro Devices, Inc. | DRAM cache with tags and data jointly stored in physical rows |
US9535832B2 (en) * | 2013-04-30 | 2017-01-03 | Mediatek Singapore Pte. Ltd. | Multi-hierarchy interconnect system and method for cache system |
US9652397B2 (en) * | 2014-04-23 | 2017-05-16 | Texas Instruments Incorporated | Dynamic power reduction and performance improvement in caches using fast access |
US9779025B2 (en) | 2014-06-02 | 2017-10-03 | Micron Technology, Inc. | Cache architecture for comparing data |
-
2017
- 2017-12-12 US US15/839,700 patent/US10572389B2/en active Active
-
2018
- 2018-09-19 WO PCT/US2018/051624 patent/WO2019118035A1/en unknown
- 2018-09-19 EP EP18783233.2A patent/EP3724775B1/en active Active
- 2018-09-19 KR KR1020207020210A patent/KR102402630B1/ko active IP Right Grant
- 2018-09-19 JP JP2020532005A patent/JP7036925B2/ja active Active
- 2018-09-19 CN CN201880088583.4A patent/CN111684427A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090006777A1 (en) | 2007-06-28 | 2009-01-01 | Donley Greggory D | Apparatus for reducing cache latency while preserving cache bandwidth in a cache subsystem of a processor |
JP2012103826A (ja) | 2010-11-09 | 2012-05-31 | Fujitsu Ltd | キャッシュメモリシステム |
US20120151251A1 (en) | 2010-12-08 | 2012-06-14 | Advanced Micro Devices, Inc. | Queue freeze on protocol error |
Also Published As
Publication number | Publication date |
---|---|
US20190179760A1 (en) | 2019-06-13 |
KR20200096971A (ko) | 2020-08-14 |
US10572389B2 (en) | 2020-02-25 |
WO2019118035A1 (en) | 2019-06-20 |
EP3724775B1 (en) | 2022-11-16 |
KR102402630B1 (ko) | 2022-05-26 |
JP2021506033A (ja) | 2021-02-18 |
EP3724775A1 (en) | 2020-10-21 |
CN111684427A (zh) | 2020-09-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7036925B2 (ja) | キャッシュ制御を考慮したメモリコントローラ | |
US20210073152A1 (en) | Dynamic page state aware scheduling of read/write burst transactions | |
US10296230B1 (en) | Scheduling memory requests with non-uniform latencies | |
JP6236011B2 (ja) | 物理的な行に共に記憶されたタグ及びデータを有するdramキャッシュ | |
CN112088368B (zh) | 动态的每存储体和全存储体刷新 | |
US11429281B2 (en) | Speculative hint-triggered activation of pages in memory | |
US8868843B2 (en) | Hardware filter for tracking block presence in large caches | |
US20200133905A1 (en) | Memory request management system | |
US11422707B2 (en) | Scheduling memory requests for a ganged memory device | |
US10152434B2 (en) | Efficient arbitration for memory accesses | |
US11526278B2 (en) | Adaptive page close prediction |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210916 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210916 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20210916 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20211019 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220117 |
|
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: 20220201 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20220303 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7036925 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |