JP2021533464A - ハイブリッドの精密および非精密キャッシュスヌープフィルタリング - Google Patents
ハイブリッドの精密および非精密キャッシュスヌープフィルタリング Download PDFInfo
- Publication number
- JP2021533464A JP2021533464A JP2021505657A JP2021505657A JP2021533464A JP 2021533464 A JP2021533464 A JP 2021533464A JP 2021505657 A JP2021505657 A JP 2021505657A JP 2021505657 A JP2021505657 A JP 2021505657A JP 2021533464 A JP2021533464 A JP 2021533464A
- Authority
- JP
- Japan
- Prior art keywords
- group
- cache
- snoop filter
- cache lines
- snoop
- 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
- 238000001914 filtration Methods 0.000 title claims abstract description 19
- 238000000034 method Methods 0.000 claims abstract description 28
- 230000004044 response Effects 0.000 claims description 18
- 230000002123 temporal effect Effects 0.000 claims description 5
- 239000003795 chemical substances by application Substances 0.000 description 35
- 238000012545 processing Methods 0.000 description 11
- 230000001427 coherent effect Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 238000007726 management method Methods 0.000 description 5
- 230000001186 cumulative effect Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 239000000470 constituent Substances 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- LHMQDVIHBXWNII-UHFFFAOYSA-N 3-amino-4-methoxy-n-phenylbenzamide Chemical compound C1=C(N)C(OC)=CC=C1C(=O)NC1=CC=CC=C1 LHMQDVIHBXWNII-UHFFFAOYSA-N 0.000 description 1
- 101100406385 Caenorhabditis elegans ola-1 gene Proteins 0.000 description 1
- 101000879673 Streptomyces coelicolor Subtilisin inhibitor-like protein 3 Proteins 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000002860 competitive effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
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
- G06F12/0833—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means in combination with broadcast means (e.g. for invalidation or updating)
-
- 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
-
- 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/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/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
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- 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のサブセットの個々のキャッシュラインによってスヌープ要求をフィルタリングするように構成される。第2のスヌープフィルタが相互接続回路に結合され、メモリのアドレスの第2のサブセットのキャッシュラインのグループによってスヌープ要求をフィルタリングするように構成される。各グループは複数のキャッシュラインを包含する。
方法およびシステムのさまざまな局面および特徴は、以下の詳細な説明を考察し、図面を参照すれば、明らかになるであろう。
以下の説明では、多くの特定の詳細が、ここに提示される特定の例を説明するために述べられる。しかしながら、1つ以上の他の例および/またはこれらの例の変形が、以下に与えられるすべての特定の詳細がなくても実践され得るということは、当業者には明らかであるはずである。他の例では、ここでの例の説明を不明瞭にしないように、周知の特徴は詳細には説明されていない。例示を容易にするために、異なる図において、同じ参照番号が、同じ要素、または同じ要素の追加の例を指すために使用されてもよい。
Claims (15)
- 回路構成であって、
相互接続回路と、
前記相互接続回路に結合されたメモリと、
前記相互接続回路に結合された複数のプロセッサ回路と、
前記複数のプロセッサ回路にそれぞれ結合された複数のキャッシュ回路と、
前記相互接続に結合され、前記メモリのアドレスの第1のサブセットの個々のキャッシュラインによってスヌープ要求をフィルタリングするように構成された、第1のスヌープフィルタと、
前記相互接続に結合され、前記メモリのアドレスの第2のサブセットのキャッシュラインのグループによってスヌープ要求をフィルタリングするように構成された、第2のスヌープフィルタとを含み、各グループは複数のキャッシュラインを包含する、回路構成。 - 前記第1のスヌープフィルタおよび前記第2のスヌープフィルタに結合された制御回路をさらに含み、前記制御回路は、前記第2のスヌープフィルタによってフィルタリングされるキャッシュラインのグループを、前記第1のスヌープフィルタによってフィルタリングされるキャッシュラインに再割り当てするように構成される、請求項1に記載の回路構成。
- 前記制御回路はさらに、前記第1のスヌープフィルタへの再割り当てのためのキャッシュラインの前記グループを、キャッシュラインの前記グループへの参照の時間的局所性に基づいて選択するように構成される、請求項2に記載の回路構成。
- 前記制御回路はさらに、前記第1のスヌープフィルタへの再割り当てのためのキャッシュラインの前記グループを、キャッシュラインの前記グループにおけるキャッシュラインの独占的所有権に基づいて選択するように構成される、請求項2に記載の回路構成。
- 前記制御回路はさらに、前記第1のスヌープフィルタへの再割り当てのためのキャッシュラインの前記グループを、キャッシュラインの前記グループにおける頻繁にアクセスされるキャッシュラインの判定に基づいて選択するように構成される、請求項2に記載の回路構成。
- 前記制御回路はさらに、
再割り当てのために選択された前記グループに属するキャッシュラインを判定し、
前記グループに属する前記キャッシュラインを前記第1のスヌープフィルタに再割り当てするように構成される、請求項2に記載の回路構成。 - 前記制御回路はさらに、前記第1のスヌープフィルタからの第1のキャッシュラインを、前記第2のスヌープフィルタによってフィルタリングされる第1のグループに再割り当てするように構成される、請求項2〜6に記載の回路構成。
- 前記制御回路はさらに、
前記第1のスヌープフィルタからの第1のキャッシュラインを、前記第2のスヌープフィルタによってフィルタリングされる第1のグループに再割り当てし、
前記第1のグループに属する、前記第1のスヌープフィルタによってフィルタリングされるキャッシュラインを判定し、
前記第1のグループに属する前記キャッシュラインのキャッシュライン状態を、グループ状態に集約し、
前記グループ状態を、前記第1のグループのタグと関連付けて格納し、
前記第1のスヌープフィルタから、前記第1のグループにおける前記キャッシュラインを除去するように構成される、請求項2〜6のいずれか1項に記載の回路構成。 - 前記制御回路はさらに、
前記第1のスヌープフィルタからの第1のキャッシュラインを、前記第2のスヌープフィルタによってフィルタリングされる第1のグループに再割り当てし、
前記第1のスヌープフィルタのディレクトリがいっぱいであることに応答して、前記第1のスヌープフィルタからの前記第1のキャッシュラインを、前記第2のスヌープフィルタによってフィルタリングされる前記第1のグループに再割り当てするように構成される、請求項2〜6のいずれか1項に記載の回路構成。 - 前記制御回路はさらに、
前記第1のスヌープフィルタからの第1のキャッシュラインを、前記第2のスヌープフィルタによってフィルタリングされる第1のグループに再割り当てし、
前記第1のスヌープフィルタから前記第2のスヌープフィルタによってフィルタリングされる前記第1のグループに再割り当てされるべき前記第1のキャッシュラインを、前記第1のキャッシュラインが最も長い間使用されていないことに基づいて選択するように構成される、請求項2〜6のいずれか1項に記載の回路構成。 - 前記第1のスヌープフィルタは、個々のキャッシュラインの複数のキャッシュラインタグの格納のために構成された第1のメモリを含み、
前記第2のスヌープフィルタは、キャッシュラインのグループにそれぞれ関連付けられた複数のグループタグの格納のために構成された第2のメモリを含み、各グループタグは、複数のキャッシュラインにマッピングする、請求項1〜6のいずれか1項に記載の回路構成。 - 前記制御回路はさらに、
前記第2のスヌープフィルタによってフィルタリングされるキャッシュラインの第1のグループの所有者カウントを判定し、
前記第1のグループの前記所有者カウントが1に等しく、かつ、前記第1のグループのアクセスカウントがゼロよりも大きいことに応答して、前記第2のスヌープフィルタからのキャッシュラインの前記第1のグループのキャッシュラインを、前記第1のスヌープフィルタに再割り当てするように構成される、請求項2に記載の回路構成。 - メモリのキャッシュラインを、複数のプロセッサのキャッシュ回路にキャッシュするステップと、
第1のスヌープフィルタが、前記メモリのアドレスの第1のサブセットの個々のキャッシュラインによってスヌープ要求をフィルタリングするステップと、
第2のスヌープフィルタが、前記メモリのアドレスの第2のサブセットのキャッシュラインのグループによってスヌープ要求をフィルタリングするステップとを含み、各グループは複数のキャッシュラインを包含する、方法。 - 制御回路が、前記第2のスヌープフィルタによってフィルタリングされるキャッシュラインのグループを、前記第1のスヌープフィルタによってフィルタリングされるキャッシュラインに再割り当てするステップをさらに含む、請求項13に記載の方法。
- 前記第1のスヌープフィルタからの第1のキャッシュラインを、前記第2のスヌープフィルタによってフィルタリングされる第1のグループに再割り当てするステップをさらに含む、請求項13〜14のいずれか1項に記載の方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/053,488 US10761985B2 (en) | 2018-08-02 | 2018-08-02 | Hybrid precise and imprecise cache snoop filtering |
US16/053,488 | 2018-08-02 | ||
PCT/US2019/044742 WO2020028714A1 (en) | 2018-08-02 | 2019-08-01 | Hybrid precise and imprecise cache snoop filtering |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2021533464A true JP2021533464A (ja) | 2021-12-02 |
JPWO2020028714A5 JPWO2020028714A5 (ja) | 2022-08-02 |
JP7383007B2 JP7383007B2 (ja) | 2023-11-17 |
Family
ID=67659995
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021505657A Active JP7383007B2 (ja) | 2018-08-02 | 2019-08-01 | ハイブリッドの精密および非精密キャッシュスヌープフィルタリング |
Country Status (6)
Country | Link |
---|---|
US (1) | US10761985B2 (ja) |
EP (1) | EP3830699B1 (ja) |
JP (1) | JP7383007B2 (ja) |
KR (1) | KR20210035226A (ja) |
CN (1) | CN112513825B (ja) |
WO (1) | WO2020028714A1 (ja) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11099991B2 (en) | 2019-01-24 | 2021-08-24 | Vmware, Inc. | Programming interfaces for accurate dirty data tracking |
US11068400B2 (en) * | 2019-01-24 | 2021-07-20 | Vmware, Inc. | Failure-atomic logging for persistent memory systems with cache-coherent FPGAs |
US10817455B1 (en) * | 2019-04-10 | 2020-10-27 | Xilinx, Inc. | Peripheral I/O device with assignable I/O and coherent domains |
US10817462B1 (en) | 2019-04-26 | 2020-10-27 | Xilinx, Inc. | Machine learning model updates to ML accelerators |
US11586369B2 (en) | 2019-05-29 | 2023-02-21 | Xilinx, Inc. | Hybrid hardware-software coherent framework |
US11074208B1 (en) | 2019-07-24 | 2021-07-27 | Xilinx, Inc. | Routing network using global address map with adaptive main memory expansion for a plurality of home agents |
US11474871B1 (en) | 2019-09-25 | 2022-10-18 | Xilinx, Inc. | Cache coherent acceleration function virtualization |
US11556344B2 (en) | 2020-09-28 | 2023-01-17 | Xilinx, Inc. | Hardware coherent computational expansion memory |
US11567870B2 (en) * | 2021-03-29 | 2023-01-31 | Arm Limited | Snoop filter with imprecise encoding |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6959364B2 (en) * | 2002-06-28 | 2005-10-25 | Intel Corporation | Partially inclusive snoop filter |
US7636815B1 (en) | 2003-04-09 | 2009-12-22 | Klaiber Alexander C | System and method for handling direct memory accesses |
US7380071B2 (en) * | 2005-03-29 | 2008-05-27 | International Business Machines Corporation | Snoop filtering system in a multiprocessor system |
US7392351B2 (en) * | 2005-03-29 | 2008-06-24 | International Business Machines Corporation | Method and apparatus for filtering snoop requests using stream registers |
JP2008310414A (ja) | 2007-06-12 | 2008-12-25 | Hitachi Ltd | コンピュータシステム |
US8015365B2 (en) * | 2008-05-30 | 2011-09-06 | Intel Corporation | Reducing back invalidation transactions from a snoop filter |
US8856456B2 (en) | 2011-06-09 | 2014-10-07 | Apple Inc. | Systems, methods, and devices for cache block coherence |
US8812786B2 (en) * | 2011-10-18 | 2014-08-19 | Advanced Micro Devices, Inc. | Dual-granularity state tracking for directory-based cache coherence |
US20140095806A1 (en) * | 2012-09-29 | 2014-04-03 | Carlos A. Flores Fajardo | Configurable snoop filter architecture |
JP6272011B2 (ja) | 2013-12-24 | 2018-01-31 | Necプラットフォームズ株式会社 | キャッシュ装置、キャッシュ装置を備えるコンピュータ、および、キャッシュ制御方法 |
GB2522057B (en) * | 2014-01-13 | 2021-02-24 | Advanced Risc Mach Ltd | A data processing system and method for handling multiple transactions |
US9817760B2 (en) * | 2016-03-07 | 2017-11-14 | Qualcomm Incorporated | Self-healing coarse-grained snoop filter |
US9990292B2 (en) * | 2016-06-29 | 2018-06-05 | Arm Limited | Progressive fine to coarse grain snoop filter |
US20190073304A1 (en) * | 2017-09-07 | 2019-03-07 | Alibaba Group Holding Limited | Counting cache snoop filter based on a bloom filter |
-
2018
- 2018-08-02 US US16/053,488 patent/US10761985B2/en active Active
-
2019
- 2019-08-01 WO PCT/US2019/044742 patent/WO2020028714A1/en unknown
- 2019-08-01 KR KR1020217004749A patent/KR20210035226A/ko active Search and Examination
- 2019-08-01 EP EP19753558.6A patent/EP3830699B1/en active Active
- 2019-08-01 CN CN201980051648.2A patent/CN112513825B/zh active Active
- 2019-08-01 JP JP2021505657A patent/JP7383007B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP7383007B2 (ja) | 2023-11-17 |
WO2020028714A1 (en) | 2020-02-06 |
KR20210035226A (ko) | 2021-03-31 |
US10761985B2 (en) | 2020-09-01 |
EP3830699A1 (en) | 2021-06-09 |
CN112513825B (zh) | 2024-01-16 |
US20200042446A1 (en) | 2020-02-06 |
CN112513825A (zh) | 2021-03-16 |
EP3830699B1 (en) | 2024-04-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7383007B2 (ja) | ハイブリッドの精密および非精密キャッシュスヌープフィルタリング | |
US7380071B2 (en) | Snoop filtering system in a multiprocessor system | |
US8677073B2 (en) | Snoop filter for filtering snoop requests | |
US7386683B2 (en) | Method and apparatus for filtering snoop requests in a point-to-point interconnect architecture | |
US7392351B2 (en) | Method and apparatus for filtering snoop requests using stream registers | |
US6408362B1 (en) | Data processing system, cache, and method that select a castout victim in response to the latencies of memory copies of cached data | |
US7603524B2 (en) | Method and apparatus for filtering snoop requests using multiple snoop caches | |
US9355035B2 (en) | Dynamic write priority based on virtual write queue high water mark for set associative cache using cache cleaner when modified sets exceed threshold | |
US7287122B2 (en) | Data replication in multiprocessor NUCA systems to reduce horizontal cache thrashing | |
US7809889B2 (en) | High performance multilevel cache hierarchy | |
US7380068B2 (en) | System and method for contention-based cache performance optimization | |
CN106663061A (zh) | 用于可编程逻辑的存储器的虚拟化 | |
US7617366B2 (en) | Method and apparatus for filtering snoop requests using mulitiple snoop caches | |
US9448937B1 (en) | Cache coherency | |
US6442653B1 (en) | Data processing system, cache, and method that utilize a coherency state to indicate the latency of cached data | |
WO2023113942A1 (en) | Cache probe transaction filtering | |
US20040030950A1 (en) | Apparatus for imprecisely tracking cache line inclusivity of a higher level cache | |
KR20070017551A (ko) | Dma, 태스크 종료 및 동기화 동작들을 위한 캐시코히어런시 유지 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220725 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220725 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230801 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230913 |
|
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: 20231010 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20231107 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7383007 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |