JPWO2020028714A5 - - Google Patents

Download PDF

Info

Publication number
JPWO2020028714A5
JPWO2020028714A5 JP2021505657A JP2021505657A JPWO2020028714A5 JP WO2020028714 A5 JPWO2020028714 A5 JP WO2020028714A5 JP 2021505657 A JP2021505657 A JP 2021505657A JP 2021505657 A JP2021505657 A JP 2021505657A JP WO2020028714 A5 JPWO2020028714 A5 JP WO2020028714A5
Authority
JP
Japan
Prior art keywords
group
snoop filter
cache lines
cache
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
Application number
JP2021505657A
Other languages
Japanese (ja)
Other versions
JP7383007B2 (en
JP2021533464A (en
Publication date
Priority claimed from US16/053,488 external-priority patent/US10761985B2/en
Application filed filed Critical
Publication of JP2021533464A publication Critical patent/JP2021533464A/en
Publication of JPWO2020028714A5 publication Critical patent/JPWO2020028714A5/ja
Application granted granted Critical
Publication of JP7383007B2 publication Critical patent/JP7383007B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Description

一例では、回路構成が提供される。そのような回路構成は、相互接続回路と、相互接続回路に結合されたメモリと、相互接続回路に結合された複数のプロセッサ回路と、複数のプロセッサ回路にそれぞれ結合された複数のキャッシュ回路と、相互接続回路に結合され、メモリのアドレスの第1のサブセットの個々のキャッシュラインによってスヌープ要求をフィルタリングするように構成された、第1のスヌープフィルタと、相互接続回路に結合され、メモリのアドレスの第2のサブセットのキャッシュラインのグループによってスヌープ要求をフィルタリングするように構成された、第2のスヌープフィルタとを含んでいてもよく、各グループは複数のキャッシュラインを包含する。 In one example, a circuit configuration is provided. Such circuitry includes: an interconnect circuit; a memory coupled to the interconnect circuit; a plurality of processor circuits coupled to the interconnect circuit; a plurality of cache circuits each coupled to the plurality of processor circuits; a first snoop filter coupled to the interconnect circuitry and configured to filter snoop requests by individual cache lines of a first subset of addresses in the memory; and a second snoop filter configured to filter snoop requests by a second subset of groups of cache lines, each group containing a plurality of cache lines.

Claims (15)

回路構成であって、
相互接続回路と、
前記相互接続回路に結合されたメモリと、
前記相互接続回路に結合された複数のプロセッサ回路と、
前記複数のプロセッサ回路にそれぞれ結合された複数のキャッシュ回路と、
前記相互接続回路に結合され、前記メモリのアドレスの第1のサブセットの個々のキャッシュラインによってスヌープ要求をフィルタリングするように構成された、第1のスヌープフィルタと、
前記相互接続回路に結合され、前記メモリのアドレスの第2のサブセットのキャッシュラインのグループによってスヌープ要求をフィルタリングするように構成された、第2のスヌープフィルタとを含み、各グループは複数のキャッシュラインを包含する、回路構成。
A circuit configuration,
an interconnect circuit;
a memory coupled to the interconnect circuit;
a plurality of processor circuits coupled to the interconnect circuit;
a plurality of cache circuits respectively coupled to the plurality of processor circuits;
a first snoop filter coupled to the interconnect circuit and configured to filter snoop requests by individual cache lines of a first subset of addresses of the memory;
a second snoop filter coupled to said interconnect circuit and configured to filter snoop requests by groups of cache lines of a second subset of addresses of said memory, each group comprising a plurality of cache lines. A circuit configuration including
前記第1のスヌープフィルタおよび前記第2のスヌープフィルタに結合された制御回路をさらに含み、前記制御回路は、前記第2のスヌープフィルタによってフィルタリングされるキャッシュラインのグループを、前記第1のスヌープフィルタによってフィルタリングされるキャッシュラインに再割り当てするように構成される、請求項1に記載の回路構成。 further comprising control circuitry coupled to the first snoop filter and the second snoop filter, the control circuitry controlling the group of cache lines filtered by the second snoop filter to the first snoop filter; 2. The circuit arrangement of claim 1, configured to reassign cache lines filtered by . 前記制御回路はさらに、前記第1のスヌープフィルタへの再割り当てのためのキャッシュラインの前記グループを、キャッシュラインの前記グループへの参照の時間的局所性に基づいて選択するように構成される、請求項2に記載の回路構成。 The control circuit is further configured to select the group of cache lines for reassignment to the first snoop filter based on temporal locality of references to the group of cache lines. 3. The circuit configuration according to claim 2. 前記制御回路はさらに、前記第1のスヌープフィルタへの再割り当てのためのキャッシュラインの前記グループを、キャッシュラインの前記グループにおけるキャッシュラインの独占的所有権に基づいて選択するように構成される、請求項2に記載の回路構成。 the control circuit is further configured to select the group of cache lines for reassignment to the first snoop filter based on exclusive ownership of cache lines in the group of cache lines; 3. The circuit configuration according to claim 2. 前記制御回路はさらに、前記第1のスヌープフィルタへの再割り当てのためのキャッシュラインの前記グループを、キャッシュラインの前記グループにおける頻繁にアクセスされるキャッシュラインの判定に基づいて選択するように構成される、請求項2に記載の回路構成。 The control circuit is further configured to select the group of cache lines for reassignment to the first snoop filter based on a determination of frequently accessed cache lines in the group of cache lines. 3. The circuit configuration of claim 2, wherein 前記制御回路はさらに、
再割り当てのために選択された前記グループに属するキャッシュラインを判定し、
前記グループに属する前記キャッシュラインを前記第1のスヌープフィルタに再割り当てするように構成される、請求項2に記載の回路構成。
The control circuit further
determining cache lines belonging to the group selected for reassignment;
3. The circuit arrangement of claim 2, configured to reassign said cache lines belonging to said group to said first snoop filter.
前記制御回路はさらに、前記第1のスヌープフィルタからの第1のキャッシュラインを、前記第2のスヌープフィルタによってフィルタリングされる第1のグループに再割り当てするように構成される、請求項2~6のいずれか1項に記載の回路構成。 Claims 2-6, wherein the control circuit is further configured to reassign a first cache line from the first snoop filter to a first group filtered by the second snoop filter. The circuit configuration according to any one of . 前記制御回路はさらに、
前記第1のスヌープフィルタからの第1のキャッシュラインを、前記第2のスヌープフィルタによってフィルタリングされる第1のグループに再割り当てし、
前記第1のグループに属する、前記第1のスヌープフィルタによってフィルタリングされるキャッシュラインを判定し、
前記第1のグループに属する前記キャッシュラインのキャッシュライン状態を、グループ状態に集約し、
前記グループ状態を、前記第1のグループのタグと関連付けて格納し、
前記第1のスヌープフィルタから、前記第1のグループにおける前記キャッシュラインを除去するように構成される、請求項2~6のいずれか1項に記載の回路構成。
The control circuit further
reassigning a first cache line from the first snoop filter to a first group filtered by the second snoop filter;
determining cache lines filtered by the first snoop filter that belong to the first group;
Aggregating the cache line states of the cache lines belonging to the first group into a group state;
storing the group state in association with the tag of the first group;
A circuit arrangement as claimed in any one of claims 2 to 6, arranged to remove the cache lines in the first group from the first snoop filter.
前記制御回路はさらに、
前記第1のスヌープフィルタからの第1のキャッシュラインを、前記第2のスヌープフィルタによってフィルタリングされる第1のグループに再割り当てし、
前記第1のスヌープフィルタのディレクトリがいっぱいであることに応答して、前記第1のスヌープフィルタからの前記第1のキャッシュラインを、前記第2のスヌープフィルタによってフィルタリングされる前記第1のグループに再割り当てするように構成される、請求項2~6のいずれか1項に記載の回路構成。
The control circuit further
reassigning a first cache line from the first snoop filter to a first group filtered by the second snoop filter;
responsive to the directory of the first snoop filter being full, directing the first cache line from the first snoop filter to the first group filtered by the second snoop filter; A circuit arrangement according to any one of claims 2 to 6, arranged for reassignment.
前記制御回路はさらに、
前記第1のスヌープフィルタからの第1のキャッシュラインを、前記第2のスヌープフィルタによってフィルタリングされる第1のグループに再割り当てし、
前記第1のスヌープフィルタから前記第2のスヌープフィルタによってフィルタリングされる前記第1のグループに再割り当てされるべき前記第1のキャッシュラインを、前記第1のキャッシュラインが最も長い間使用されていないことに基づいて選択するように構成される、請求項2~6のいずれか1項に記載の回路構成。
The control circuit further
reassigning a first cache line from the first snoop filter to a first group filtered by the second snoop filter;
selecting the first cache line to be reassigned from the first snoop filter to the first group filtered by the second snoop filter, wherein the first cache line has been least recently used; A circuit arrangement as claimed in any one of claims 2 to 6, arranged to select based on.
前記第1のスヌープフィルタは、個々のキャッシュラインの複数のキャッシュラインタグの格納のために構成された第1のメモリを含み、
前記第2のスヌープフィルタは、キャッシュラインのグループにそれぞれ関連付けられた複数のグループタグの格納のために構成された第2のメモリを含み、各グループタグは、複数のキャッシュラインにマッピングする、請求項1~6のいずれか1項に記載の回路構成。
the first snoop filter includes a first memory configured for storage of multiple cache line tags for individual cache lines;
The second snoop filter includes a second memory configured for storing a plurality of group tags each associated with a group of cache lines, each group tag mapping to a plurality of cache lines. 7. The circuit configuration according to any one of items 1 to 6.
前記制御回路はさらに、
前記第2のスヌープフィルタによってフィルタリングされるキャッシュラインの第1のグループの所有者カウントを判定し、
前記第1のグループの前記所有者カウントが1に等しく、かつ、前記第1のグループのアクセスカウントがゼロよりも大きいことに応答して、前記第2のスヌープフィルタからのキャッシュラインの前記第1のグループのキャッシュラインを、前記第1のスヌープフィルタに再割り当てするように構成される、請求項2に記載の回路構成。
The control circuit further
determining an owner count for a first group of cache lines filtered by the second snoop filter;
the first cache line from the second snoop filter in response to the owner count of the first group being equal to one and the access count of the first group being greater than zero; 3. The circuit arrangement of claim 2, configured to reassign cache lines of groups of .
メモリのキャッシュラインを、複数のプロセッサのキャッシュ回路にキャッシュするステップと、
第1のスヌープフィルタが、前記メモリのアドレスの第1のサブセットの個々のキャッシュラインによってスヌープ要求をフィルタリングするステップと、
第2のスヌープフィルタが、前記メモリのアドレスの第2のサブセットのキャッシュラインのグループによってスヌープ要求をフィルタリングするステップとを含み、各グループは複数のキャッシュラインを包含する、方法。
caching cache lines of memory in cache circuitry of multiple processors;
a first snoop filter filtering snoop requests by individual cache lines of a first subset of addresses of said memory;
a second snoop filter filtering snoop requests by groups of cache lines of a second subset of addresses of said memory, each group containing multiple cache lines.
制御回路が、前記第2のスヌープフィルタによってフィルタリングされるキャッシュラインのグループを、前記第1のスヌープフィルタによってフィルタリングされるキャッシュラインに再割り当てするステップをさらに含む、請求項13に記載の方法。 14. The method of claim 13, further comprising control circuitry reassigning groups of cache lines filtered by the second snoop filter to cache lines filtered by the first snoop filter. 前記第1のスヌープフィルタからの第1のキャッシュラインを、前記第2のスヌープフィルタによってフィルタリングされる第1のグループに再割り当てするステップをさらに含む、請求項13~14のいずれか1項に記載の方法。 15. The method of any one of claims 13-14, further comprising reassigning a first cache line from said first snoop filter to a first group filtered by said second snoop filter. the method of.
JP2021505657A 2018-08-02 2019-08-01 Hybrid precision and non-precision cache snoop filtering Active JP7383007B2 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/053,488 2018-08-02
US16/053,488 US10761985B2 (en) 2018-08-02 2018-08-02 Hybrid precise and imprecise cache snoop filtering
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 JP2021533464A (en) 2021-12-02
JPWO2020028714A5 true JPWO2020028714A5 (en) 2022-08-02
JP7383007B2 JP7383007B2 (en) 2023-11-17

Family

ID=67659995

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021505657A Active JP7383007B2 (en) 2018-08-02 2019-08-01 Hybrid precision and non-precision cache snoop filtering

Country Status (6)

Country Link
US (1) US10761985B2 (en)
EP (1) EP3830699B1 (en)
JP (1) JP7383007B2 (en)
KR (1) KR20210035226A (en)
CN (1) CN112513825B (en)
WO (1) WO2020028714A1 (en)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 (en) 2007-06-12 2008-12-25 Hitachi Ltd Computer system
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 (en) 2013-12-24 2018-01-31 Necプラットフォームズ株式会社 Cache device, computer including cache device, and cache control method
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

Similar Documents

Publication Publication Date Title
US20210042238A1 (en) Memory management for a hierarchical memory system
TWI536258B (en) Method and apparatus for adaptive granularity row-buffer caching, and memory apparatus
US20070073974A1 (en) Eviction algorithm for inclusive lower level cache based upon state of higher level cache
US9361236B2 (en) Handling write requests for a data array
CN1307561C (en) Multi-level cache having overlapping congruence groups of associativity sets in different cache levels
KR100978156B1 (en) Method, apparatus, system and computer readable recording medium for line swapping scheme to reduce back invalidations in a snoop filter
US9575893B2 (en) Snoop filter for multi-processor system and related snoop filtering method
EP0557050A1 (en) Apparatus and method for executing processes in a multiprocessor system
US20080098178A1 (en) Data storage on a switching system coupling multiple processors of a computer system
CN107315694B (en) Cache consistency management method and node controller
JPWO2020028714A5 (en)
US11360891B2 (en) Adaptive cache reconfiguration via clustering
US20170168942A1 (en) Technologies for managing cache memory in a distributed shared memory compute system
US20160085691A1 (en) Regulating memory activation rates
US20130031327A1 (en) System and method for allocating cache memory
CN103729309B (en) A kind of catalogue Cache coherence methods
US20240103876A1 (en) Direct swap caching with zero line optimizations
EP4200708A1 (en) Scalable region-based directory
JP2016522915A (en) Shared memory system
CN107526528B (en) Mechanism for realizing on-chip low-delay memory
US10579519B2 (en) Interleaved access of memory
JPS6154547A (en) Data processing system with 3-level hierarchical memory
US10691625B2 (en) Converged memory device and operation method thereof
US20200301844A1 (en) Cache memory, memory system including the same and operating method thereof
KR20180044451A (en) Memory system and method of wear-leveling for the same