CN111263934B - 至少具有三个缓存级别的缓存层级的混合低级缓存包含策略 - Google Patents
至少具有三个缓存级别的缓存层级的混合低级缓存包含策略 Download PDFInfo
- Publication number
- CN111263934B CN111263934B CN201880068941.5A CN201880068941A CN111263934B CN 111263934 B CN111263934 B CN 111263934B CN 201880068941 A CN201880068941 A CN 201880068941A CN 111263934 B CN111263934 B CN 111263934B
- Authority
- CN
- China
- Prior art keywords
- cache
- level
- line
- cache line
- hierarchy
- 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
- 238000012545 processing Methods 0.000 claims description 29
- 238000000034 method Methods 0.000 claims description 28
- 230000004044 response Effects 0.000 claims description 17
- 230000000717 retained effect Effects 0.000 claims description 3
- 230000008901 benefit Effects 0.000 description 8
- 238000013479 data entry Methods 0.000 description 8
- 238000013461 design Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 238000009434 installation Methods 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 238000011960 computer-aided design Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 241000699670 Mus sp. Species 0.000 description 1
- 230000002730 additional effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000011900 installation process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 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/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/128—Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
-
- 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/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory 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/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/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
- 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
- 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/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/126—Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
-
- 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
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
一种系统(100),包括一个或多个处理器核心(111‑114)、和缓存层级(104)。所述缓存层级包括一级缓存(121‑124)、二级缓存(131‑134)和三级缓存(140)。所述缓存层级还包括缓存层级控制逻辑(142),所述缓存层级控制逻辑被配置为实现其中缓存在所述一级缓存中的每个缓存行均具有缓存在所述二级缓存和所述三级缓存中的至少一个中的所述缓存行的副本的缓存策略(144)。所述缓存策略还提供了从所述二级缓存中逐出缓存行不会触发从所述一级缓存中逐出该缓存行的副本,并且当所述缓存行不存在于所述二级缓存中时,从所述三级缓存中逐出缓存行会触发所述缓存层级控制逻辑,以从所述一级缓存中逐出该缓存行的副本。
Description
背景技术
处理系统通常利用具有可供一个或多个处理器核心访问的多个缓存级别的缓存层级。对于具有三个或更多个缓存级别的缓存层级,在常规处理系统中,关于在最高级缓存(例如,L1缓存)处缓存的地址的数据,需要三种缓存策略中的一种:(1)所述数据不需要复制或包含在任何其他缓存中;(2)要求所述数据的副本始终包含第二最高级的缓存(例如,所述L2缓存)中,并且在从第二最高级的缓存中逐出缓存数据的副本时,还会发送无效消息以从最高级的缓存中逐出缓存的数据;或者(3)要求所述数据的副本始终包含在第三最高级的缓存(例如,L3缓存)中,并且在从第三最高级的缓存中逐出时,还会发送无效消息以从最高级的缓存中逐出缓存的数据。第一个策略的问题在于,由于不需要任何其他缓存级别的缓存数据的副本,因此对于无法访问最高级缓存的组件来说,可能无法访问缓存的数据,或缓存的数据从低级缓存中的缺失可能会导致在发现和访问缓存的数据之前出现过多的缓存丢失,从而影响系统性能。后两个策略的问题在于,由于它们导致过多的无效消息传递和缓存行逐出,这也对系统性能产生负面影响。
附图说明
通过参考附图,可以更好地理解本公开,并且使其许多特征和优点对于本领域技术人员来说是显而易见的。不同附图中使用的相同附图标记指代相似或相同物品。
图1是根据一些实施例的采用具有混合低级缓存包含策略的缓存层级的数据处理系统的框图。
图2是根据一些实施例的示出图1的数据处理系统的缓存层级的框图。
图3是示出根据一些实施例的用于将缓存行安装在数据处理系统的缓存层级的一级缓存中的混合低级缓存包含策略的一方面的流程图。
图4是示出根据一些实施例的用于从数据处理系统的缓存层级的二级缓存中逐出缓存行的混合低级缓存包含策略的一方面的流程图。
图5是示出根据一些实施例的用于从数据处理系统的缓存层级的三级缓存中逐出缓存行的混合低级缓存包含策略的一方面的流程图。
具体实施方式
图1至图5示出了用于在具有三个或更多个缓存级别的缓存层级中进行有效数据缓存的系统和方法。根据一些实施例,缓存层级的各种缓存的控制逻辑一起操作以实现混合低级缓存包含策略,所述混合低级缓存包含策略确保在最高级缓存处缓存的缓存行在缓存层级中的其他位置具有至少一个副本,同时还提供了比常规缓存策略更少的缓存间消息传递和逐出。如本文中更详细描述的,该缓存策略在本文中被称为“混合低级缓存包含策略”,其至少实现以下三个准则。首先,要求存在于一级缓存(例如,1级或L1缓存)中的缓存行位于二级缓存(例如,2级或L2缓存)或三级缓存(例如,3级或L3缓存)的至少一个中。其次,从二级缓存中逐出的缓存行不需要从一级缓存中逐出同一缓存行。第三,如果缓存行也不存在于二级缓存中,则从三级缓存中逐出缓存行需要从一级缓存中逐出该缓存行。这是有利的,因为如果系统已经在二级缓存和三级缓存中进行搜索以访问缓存行,则以上描述的缓存策略导致可以保证系统知道所寻求的缓存行是否也在一级缓存中。注意,如本文中所发现的,对缓存行“存在”于缓存中的引用是指副本既被存储在缓存中又在该缓存处具有有效状态。因此,在缓存处标记为“无效”或某些类似状态的缓存行的副本不被视为“存在”于该缓存处。
图1示出了根据至少一些实施例的使用混合低级缓存包含策略的处理系统100。处理系统100包括计算复合体102、缓存层级104、存储器控制器(MC)106和南桥108。计算复合体102包括一个或多个处理器核心,诸如四个处理器核心111、112、113、114。处理器核心包括例如中央处理单元(CPU)核心、图形处理单元(GPU)核心、数字信号处理器(DSP)核心或其组合。应明白计算复合体102的处理器核心的数量可以少于或多于四个。
存储器控制器106用作缓存层级104与系统存储器116之间的接口。因此,通常将要在缓存层级104中缓存的数据作为称为“缓存行”的数据块进行操纵,并且使用系统存储器116的物理地址在存储器层级中对这些数据块进行寻址或以其他方式定位。响应于来自缓存层级104的存储器请求,存储器控制器106从系统存储器116访问缓存行,并且将缓存行安装或缓存在缓存层级104的一个或多个缓存中。同样,当包含已修改数据的缓存行从缓存层级104中逐出且因此需要在系统存储器116中进行更新时,存储器控制器106将管理此回写过程。南桥108用作缓存层级104、存储器控制器106和处理系统100的一个或多个外围设备118(例如,网络接口、键盘、鼠标、显示器和其他输入/输出装置)之间的接口。
缓存层级104包括三个或更多个级别的缓存,包括缓存的一级(L1)、二级(L2)和三级(L3)。尽管图1的示例性实施例仅包括三个级别,在其他实施例中,缓存层级104包括四个或更多个缓存级别。每个缓存级别在该级别处包括一个或多个缓存。对于系统100,计算复合体102为L1处的每个处理核心实现小型专用缓存,实现为L1缓存121、122、123、124,每个缓存与处理器核心111-114中的对应的一个相关联。此外,对于L2,计算复合体102为每个处理器核心实现更大的专用缓存,分别被实现为与处理器核心111-114相对应的L2缓存131、132、133、134。L2缓存131-134中的每一个对其对应的处理器核心是专用的,但是缓存层级104运行以维持L2缓存131-134之间的一致性。在一些实施例中,L2缓存131-134可以是直接映射的或者是n路组关联缓存。在其他实施例中,两个或更多个L1缓存可以共享单个L2缓存。对于L3缓存级别,缓存层级104实现L3缓存140,其由计算复合体102的处理器核心共享,且因此至少由L2缓存131-134共享。在其他实施例中,L3缓存级别可以包括由L2缓存131-134以各种组合方式共享的多于一个的L3缓存。
缓存层级104的缓存用于缓存数据以供处理器核心111-114访问和操纵。通常,较低级(例如,L1)的缓存倾向于具有较低的存储容量和较低的访问延迟,而较高级(例如,L3)的缓存则倾向于具有较高的存储容量和较高的访问延迟。因此,鉴于缓存的存储容量和访问延迟通过由缓存层级104的缓存层级控制逻辑142管理的缓存行逐出过程和缓存行安装过程,数据的缓存行在不同缓存级别的缓存之间传送,以便更好地优化缓存数据的利用率。尽管为了便于在图1中说明,在缓存层级104的各个缓存外部使用单个块来描绘,但应明白在典型的实施方式中,在每个缓存处将缓存层级控制逻辑142的各个组件实现为该缓存的缓存控制逻辑,且因此,缓存层级控制逻辑142表示在缓存层级104的每个缓存处实现的各个缓存控制逻辑组件的集合。在一些实施例中,缓存层级控制逻辑142的逻辑组件被实现为实现处理系统100的一个或多个集成电路(IC)芯片上的硬编码逻辑。在其他实施例中,缓存层级控制逻辑142的一些或全部逻辑组件被实现为可编程逻辑、可配置逻辑(例如,熔丝可配置逻辑)、执行指令程序的一个或多个处理器、或其组合。
在操作中,缓存层级控制逻辑142根据经由硬编码逻辑、可编程元件(例如,熔丝)、寄存器组或其组合为缓存层级控制逻辑142定义的一种或多种缓存策略来安装和逐出(即,移除)从系统存储器116提取的数据的缓存行。这些缓存策略中的一个包括缓存策略144,用于根据其在其他缓存级别(在本文中称为“混合低级缓存包含策略144”)中选择性地逐出缓存行。混合低级缓存包含策略144的准则简要总结如下:(1)一级缓存(例如,L1缓存121-124中的一个)中存在的任何缓存行也必须存在于二级缓存(例如,L2缓存131-134中的一个)或三级缓存(例如,L3缓存140)的至少一个中;(2)当从二级缓存中逐出缓存行时,不需要从一级缓存中逐出该缓存行(也就是说,如果该缓存行存在于L1缓存中,即使在从L2缓存中逐出缓存行之后,该缓存行仍将保留在L1缓存中);以及(3)当从三级缓存中逐出缓存行并且在逐出时该缓存行不存在于二级缓存中时,则也会从一级缓存中逐出该缓存行。这种特定缓存策略提高了性能,因为当二级缓存将一级缓存行逐出时,它们不需要被逐出。虽然包含性的三级(L3)策略也可以实现这一点,但是由于重复的缓存行而降低了三级缓存的容量。
图2更详细地示出了根据一些实施例的缓存层级控制逻辑142和来自缓存层级104的缓存的示例性实施方式。如上所述,缓存级别中的每一个在该级别内具有一个或多个缓存。然而,为了便于说明,在图2中仅示出了来自每个缓存级别的单个缓存,即为L1缓存121、L2缓存131和L3缓存140。应理解,缓存层级104的其他缓存将以下面描述的方式类似地配置。
L1缓存121包括标签阵列202、数据阵列204和L1控制逻辑206。数据阵列204包括多个数据条目208或行,数据条目208或行中的每一个被配置为存储来自系统存储器116的对应的一组数据(即“缓存行”)。标签阵列202同样包括多个标签条目209,标签条目209中的每一个与数据阵列204的对应数据条目208相关联,并且被配置为存储关于存储在对应条目208中的缓存行的各种信息,诸如与地址字段210中的缓存行相关联的地址(或其一部分)和存储在状态字段211中的一个或多个状态位。L2缓存131和L3缓存140被类似地配置。这样,L2缓存131包括标签阵列232、数据阵列234和L2控制逻辑236,并且L3缓存140包括标签阵列242、数据阵列244和L3控制逻辑246。数据阵列234、244分别包括用于存储数据的缓存行的多个数据条目238、248,并且标签阵列232、242包括分别与数据条目238、248相对应的多个标签条目239、249。与标签条目209一样,标签条目239具有用于存储对应的缓存行的地址的地址字段240,用于存储对应的缓存行的状态位的状态字段241等。类似地,标签条目249具有用于存储在数据条目248中的对应缓存行的地址字段250和状态字段251。
L1控制逻辑206、L2控制逻辑236和L3控制逻辑246一起构成了缓存层级控制逻辑142的至少一部分,如上所述,用于为缓存层级实现一个或多个缓存策略,包括缓存策略144(图1)。为此,控制逻辑206、236、246中的每一个分别包括一致性逻辑254、256、258,以实现混合低级缓存包含策略144的对应方面,如下面参考图3至图5更详细描述的。为了促进该操作,在一些实施例中,缓存121、131、140中的一个或多个存储存在信息,该存在信息标识存储在缓存中的每个缓存行是否也存储在缓存层级104的一个或多个其他缓存中。在一个实施例中,该存在信息被存储在缓存的标签阵列中或与缓存的标签阵列相关联。为了说明,L1缓存121的标签阵列202的标签条目209各自都包括存在(或位置“LOC”)字段262,该存在字段262存储该缓存行关于其他缓存中的缓存行的存储的共存信息。
为了说明,在一个实施例中,存在字段262被配置为单位字段(single bit field)263,该单位字段263指示是否在L2缓存或L3缓存中找到对应的缓存行。因此,如果单位字段263被设置为0,则这指示L1缓存121的对应数据条目208中的缓存行存在于L2缓存中,而单位字段263被设置为1指示在L3缓存中找到缓存行。在其他实施例中,存在字段262被配置为两位字段(two-bit field)265,该两位字段265指示是否在L2缓存或L3缓存中找到对应的缓存行,并且还标识存储缓存行的副本的特定缓存级别。为了说明,值为10指示缓存行的副本存在于L2缓存中,但在不存在于L3缓存中,值为01指示缓存行的副本不存在于L2缓存中,但存在于L3缓存中,并且值为11指示L2缓存和L3缓存均存储缓存行的副本。在又其他实施例中,存在字段262被实现为多位字段(multiple-bit field)267,该多位字段267标识可以在其中找到缓存行副本的低缓存级别,以及在存储缓存行的每个低缓存级别的特定缓存方式。
在一些实施例中,L3缓存140类似地配置有具有存在字段264的标签阵列242的标签条目249,该存在字段264用于指示对应的数据条目238中的缓存行是否存在于较高的缓存级别中。与存在字段262一样,在一些实施例中,存在字段264被配置为单位字段273,该单位字段273只标识在L1缓存中或L2缓存中是否找到缓存行的副本,但是不标识两个较高缓存级别或存储缓存行的特定缓存中的哪一个。在其他实施例中,存在字段264被配置为两位字段275,该两位字段275标识是否在较高缓存级别中找到缓存行的副本,以及标识包含缓存行的副本的较高缓存级别。在又其他实施例中,存在字段264被实现为多位字段277,该多位字段277不仅标识哪个或哪些较高缓存级别存储缓存行的副本,而且还标识特定缓存。L2缓存131同样可以在标签条目239中或在L2缓存131中配置有存在字段266,该存在字段266被配置为单位字段283、两位字段285或多位字段287中的一个,以用于标识在L1缓存级别和L3缓存级别中的一者或两者中存在对应的缓存行。
对应的一致性逻辑254、256、258使用由存在字段262、264、266表示的存在信息,以响应于将缓存行安装到特定缓存或响应于从缓存中逐出缓存行来共同实现混合低级缓存包含策略144。为此,一致性逻辑254、256、258利用消息传递互连290在各个缓存之间传递安装消息和逐出消息,以便根据缓存策略144指定的缓存准则将缓存行的副本安装在目标缓存中或从目标缓存中逐出缓存行的副本。图3至图5分别示出了用于一致性逻辑254、256和258的示例性操作方法。
图3示出了根据一些实施例的用于在L1缓存(诸如L1缓存121)处实现缓存策略144的对应方面的方法300。方法300在框302处以从系统存储器116提取数据的缓存行并且将缓存行安装在缓存层级104中开始。响应于引用包含在缓存行中的数据的指令的初始执行,缓存行作为需求提取被提取,或者作为推测性预提取操作的一部分从系统存储器116中提取缓存行。通常,首先将从系统存储器116提取的缓存行安装在低级缓存中,诸如L2缓存131或L3缓存140中。在某个时刻,作为从系统存储器116的缓存行的初始提取,或者随后作为处理器核心对缓存行中存储的数据的请求的一部分,在框304处,将缓存行的副本安装在L1缓存(例如,L1缓存131)中。
作为初始缓存行安装的一部分以及将缓存行安装到L1缓存中的一部分,在框305处,缓存层级104的缓存更新其相应的存在信息字段以反映在缓存层级104的一个或多个缓存中存在缓存行。在一个实施例中,响应于经由消息传递互连290在各个缓存的一致性逻辑之间传输的一致性消息来执行位置状态更新。为了说明,在L1缓存131中安装缓存行会触发L1控制逻辑206的一致性逻辑254,以将该缓存行的一致性消息传播到缓存层级104的其他缓存,以便通知缓存层级104在L1缓存131处安装缓存行。响应于接收到该一致性消息,L2控制逻辑236的一致性逻辑256访问该缓存行的标签条目239(如果存储在L2缓存131中)并且更新存在字段266以反映该缓存行的副本存储在L1缓存级别处,并且如果这样配置,则特定L1缓存现在将存储缓存行。在L3缓存140处接收到一致性消息之后,一致性逻辑258以类似的方式更新对应的存在字段264。
回想一下,混合低级缓存包含策略144的各个方面或准则中的一者是,如果将缓存行存储在L1缓存中,则该缓存行的副本也必须存储在L2缓存或L3缓存的至少一个中。因此,在框306处,存储缓存行的L1缓存的一致性逻辑(例如,一致性逻辑254)检查该缓存行的存在字段262,以确定缓存行是否存在于L2或L3缓存级别的缓存中。如果是,则方法300在框308处终止,直到在缓存层级104中安装了下一个缓存行。否则,如果缓存行不存在于L2缓存或L3缓存中,则在框310处,L1缓存的一致性逻辑通过向L1缓存可访问的低级缓存发送指示该低级缓存安装缓存行的副本的安装消息来触发将缓存行的副本安装在低级缓存处。通常,将使用下一个低级,且因此,例如,L1缓存121将在框310处指示L2缓存131安装缓存行的副本。由于安装了缓存行的副本,在框312处,接收并存储缓存行的副本的低级缓存将一致性消息传播到其他缓存,使得其他缓存相应地更新其本地存在信息存储。
图4示出了根据一些实施例的用于在L2缓存(诸如L2缓存131)处实现混合低级缓存包含策略144的对应方面的方法400。方法400在框402处以从L2缓存中逐出缓存行开始。通常响应于L2缓存的数据阵列234被超额预订来触发对缓存行的逐出。在常规缓存策略中,从L2缓存中逐出缓存行将需要从与L2缓存相关联的所有L1缓存中逐出同一缓存行。然而,如上所解释,混合低级缓存包含策略144的一个准则是,从L2缓存级别逐出缓存行不需要因此从L1缓存级别逐出同一缓存行。因此,如方框404所表示,根据混合低级缓存包含策略144,将在框402处从L2缓存中逐出的缓存行保留在L1缓存中。此外,作为在L2缓存处的缓存行逐出的结果,在框406处,L2缓存向其他缓存传播一致性消息以反映对缓存行的逐出,使得其他缓存相应地更新其本地存在信息存储。
图5示出了根据一些实施例的用于在L3缓存(诸如L3缓存140)处实现混合低级缓存包含策略144的对应方面的方法500。方法500在框502处以L3缓存确定将要逐出缓存行开始。因此,L3控制逻辑(例如,L3控制逻辑246)在与缓存行相对应的标签条目的状态字段中将缓存行标记为无效,并且向缓存层级104的其他缓存传输指示L3缓存已经逐出缓存行的一致性消息。在一些实现方式中,从L3缓存中逐出缓存行导致该缓存行(如果被修改)被提供给系统存储器116,以便重写原始数据。此外,在框503处,响应于L3缓存传输的一致性消息,缓存层级104的其他缓存更新其本地位置存储。
如上所解释,混合低级缓存包含策略144的一个方面或准则是,从L3缓存级别逐出缓存行需要从L1缓存级别逐出缓存行,除非该缓存行也存在于L2缓存中。该准则允许缓存层级104通过对L2和L3缓存进行查看并且无需搜索L1缓存且因此节省了功耗并提高了性能,在对缓存行的任何后续访问中确定缓存行确实不在L1缓存中。因此,在框504处,缓存层级104确定从L3缓存逐出的缓存行是否存在于L2缓存中。在一些实现方式中,这由L3缓存的L3控制逻辑246的一致性逻辑258确定,该一致性逻辑258使用L3缓存中的对应标签条目249的存在字段264将缓存行逐出。在其他实施例中,L2缓存中被逐出的缓存行的存在由缓存层级的一个或多个L2缓存的L2控制逻辑236的一致性逻辑256使用L2缓存的对应标签条目239的存在字段266共同确定。在又其他实施例中,L2缓存中被逐出的缓存行的存在由缓存层级104的一个或多个L1缓存的L1控制逻辑206的一致性逻辑254共同确定。
如果缓存行被标识为存在于L2缓存中,则在框506处,将缓存行保留在L2缓存中,并且方法500的当前迭代终止。否则,如果在L2缓存级别中没有找到逐出的缓存行的副本,则在框508处,缓存层级104也从L1缓存级别逐出缓存行。如果在框504处由L1缓存执行了在L2缓存级别逐出的缓存行的存在,则在框508处,L1缓存的一致性逻辑254触发从其相应数据阵列204逐出缓存行。否则,如果在L2缓存级别或L3缓存级别执行了在L2缓存级别逐出的缓存行的存在,则该低缓存级别的缓存经由消息传递互连290将逐出消息发送到缓存层级104的一个或多个L1缓存,响应于所述逐出消息,L1缓存逐出所标识的缓存行。此外,在框510处,响应于传输的逐出消息(响应于从一个或多个L1缓存对缓存行的副本的逐出),缓存层级104的缓存更新其本地存在信息存储,以便反映缓存行不再存在于L1缓存级别中。
根据一个方面,数据处理系统包括一个或多个处理器核心、和缓存层级。所述缓存层级具有一级缓存、二级缓存和三级缓存,并且缓存层级控制逻辑配置为实现缓存策略,在所述缓存策略中,缓存在所述一级缓存中的每个缓存行均具有缓存在所述二级缓存和所述三级缓存中的至少一个中的所述缓存行的副本。在一些实施例中,所述缓存策略还提供了从所述二级缓存中逐出缓存行不会触发从所述一级缓存中逐出该缓存行的副本。在某些实施例中,所述缓存策略还提供了当所述缓存行不存在于所述二级缓存中时,从所述三级缓存逐出缓存行会触发所述缓存层级控制逻辑,以从所述一级缓存逐出该缓存行的副本。所述缓存策略还可以提供从所述三级缓存中逐出缓存行会触发所述缓存层级控制逻辑以:当该缓存行的副本不存在于所述二级缓存中时,从所述一级缓存逐出该缓存行的副本;并且当该缓存行的副本存在于所述二级缓存中时,在所述一级缓存中保留该缓存行的所述副本。
在一些实施例中,所述三级缓存可以访问第一组存在字段,以存储第一存在信息,该第一存在信息标识所述三级缓存中的哪些缓存行也存储在所述一级缓存或所述二级缓存的任一个中。在一些实施例中,所述第一存在信息仅标识对应的缓存行是否在所述一级缓存或所述二级缓存的一个中。在其他实施例中,所述第一存在信息标识对应的缓存行是否在所述一级缓存中以及所述对应的缓存行是否在所述二级缓存中。在一些实施例中,所述缓存层级包括多个一级缓存和多个二级缓存,并且所述第一存在信息标识对应的缓存行存储在所述多个一级缓存中的哪个一级缓存或所述多个二级缓存中的哪个二级缓存中。所述第一组存在字段可以是所述三级缓存的标签阵列的一部分。在一些实施例中,所述一级缓存可以访问第二组存在字段以存储第二存在信息,该第二存在信息标识所述一级缓存中的哪些缓存行也存储在所述二级缓存或所述三级缓存的任一个中。在一些实施例中,所述第二存在信息仅标识对应的缓存行是否在所述二级缓存或所述三级缓存的一个中。在其他实施例中,所述第二存在信息标识对应的缓存行是否在所述二级缓存中以及所述对应的缓存行是否在所述三级缓存中。所述缓存层级可以包括多个二级缓存,并且所述第二存在信息可以标识对应的缓存行存储在所述多个二级缓存中的哪个二级缓存中。
根据另一个方面,一种方法,其包括:从存储器提取缓存行;通过缓存层级的缓存层级控制逻辑将所述缓存行存储在所述缓存层级的一级缓存中;响应于其中所述一级缓存中的每个缓存行也存储在所述缓存层级的所述二级缓存或所述三级缓存的至少一个中的缓存策略,通过所述缓存层级控制逻辑将所述缓存行存储在二级缓存中;以及通过所述缓存层级控制逻辑从所述二级缓存中逐出所述缓存行,同时将所述缓存行保留在所述一级缓存中。在一些实施例中,通过所述缓存层级控制逻辑将所述缓存行存储在所述二级缓存中包括:通过所述缓存层级控制逻辑基于存储在所述一级缓存处的存在信息确定所述一级缓存和所述二级缓存当前都不存储所述缓存行,所述存在信息针对存储在所述一级缓存中的每个缓存行标识该缓存行是否也存储在所述二级缓存或所述三级缓存的至少一个中。在一些实施例中,所述存在信息标识所述缓存行是存储在所述二级缓存或存储在所述三级缓存中。在其他实施例中,所述缓存层级包括多个二级缓存,并且所述存在信息标识所述多个二级缓存中存储所述缓存行的特定二级缓存。
在一些实施例中,从所述二级缓存中逐出所述缓存行包括以下项中的一个:将所述缓存行存储在所述三级缓存中;或者利用所述缓存行的修改后的值更新所述存储器。因此,所述方法还可以包括:通过所述缓存层级控制逻辑从所述三级缓存中逐出所述缓存行;通过所述缓存层级控制逻辑确定所述缓存行是否存在于所述二级缓存中;以及响应于从所述三级缓存中逐出所述缓存行以及响应于确定所述缓存行不存在于所述二级缓存中,通过所述缓存层级控制逻辑根据所述缓存策略从所述一级缓存中逐出所述缓存行。在一些实施例中,确定所述缓存行是否存在于所述二级缓存中是基于存储在所述三级缓存处的存在信息,所述存在信息针对存储在所述三级缓存中的每个缓存行指示所述缓存行是否也存在于所述二级缓存中。在其他实施例中,所述缓存层级包括多个二级缓存,并且所述存在信息标识所述多个二级缓存中存储所述缓存行的特定二级缓存。
根据另一个方面,一种方法,其包括:从存储器提取缓存行;根据缓存策略将所述缓存行缓存在缓存层级中,所述缓存层级具有一级缓存、二级缓存和三级缓存,并且其中所述缓存策略提供在所述一级缓存中缓存的任何缓存行也都存储在所述二级缓存或所述三级缓存的至少一个中,从所述二级缓存中逐出缓存行不需要从所述一级缓存中逐出该缓存行,并且从所述三级缓存中逐出缓存行也从所述一级缓存中逐出该缓存行,除非该缓存行也缓存在所述二级缓存中。在一些实施例中,所述缓存层级控制逻辑使用存储在所述一级缓存、所述二级缓存或所述三级缓存中的一个或多个缓存中的存在信息来实现所述缓存策略,在给定缓存级别处的所述存在信息指示是否将存储在所述给定缓存级别的缓存处的缓存行存储在所述缓存的一个或多个其他缓存级别处。
在一些实施例中,以上描述的设备和技术在包括一个或多个集成电路(IC)装置(也称为集成电路封装或微芯片)的系统(诸如以上参考图1至图5更详细描述的系统100)中实现。电子设计自动化(EDA)和计算机辅助设计(CAD)软件工具可以用于这些IC装置的设计和制作。这些设计工具通常表示为一个或多个软件程序。一个或多个软件程序包括代码,所述代码可由计算机系统执行以操纵计算机系统对代表一个或多个IC装置的电路的代码进行操作,以便执行过程的至少一部分来设计或调整制造系统以制作电路。此代码可以包括指令、数据或指令和数据的组合。表示设计工具或制作工具的软件指令通常存储在计算系统可访问的计算机可读存储介质中。同样地,代表IC装置的设计或制作的一个或多个阶段的代码可以存储在同一计算机可读存储介质或不同计算机可读存储介质中并可以从同一计算机可读存储介质或不同计算机可读存储介质进行访问。
计算机可读存储介质可以包括使用期间可由计算机系统访问以将指令和/或数据提供给计算机系统的任何非暂时性存储介质或非暂时性存储介质的组合。这种存储介质可以包括但不限于光学介质(例如,光盘(CD)、数字通用光盘(DVD)、蓝光光盘)、磁性介质(例如,软盘、磁带或磁性硬盘驱动器)、易失性存储器(例如,随机存取存储器(RAM)或缓存)、非易失性存储器(例如,只读存储器(ROM)或快闪存储器)或基于微机电系统(MEMS)的存储介质。计算机可读存储介质可以嵌入计算系统(例如,系统RAM或ROM)中,固定地附接到计算系统(例如,磁性硬盘驱动器),可移除地附接到计算系统(例如,光盘或基于通用串行总线(USB)的快闪存储器),或者经由有线或无线网络(例如,网络可访问存储装置(NAS))耦合到计算机系统。
在一些实施例中,上文描述的技术的某些方面可以由执行软件的处理系统的一个或多个处理器来实现。软件包括存储或以其他方式有形地体现在非暂时性计算机可读存储介质上的一个或多个可执行指令集。软件可以包括指令和某些数据,所述指令和某些数据在由一个或多个处理器执行时操纵一个或多个处理器来执行以上描述技术的一个或多个方面。非暂时性计算机可读存储介质可以包括例如磁盘或光盘存储装置、固态存储装置,诸如快闪存储器、缓存、随机存取存储器(RAM)或其他一个或多个非易失性存储装置等。存储在非暂时性计算机可读存储介质上的可执行指令可以是源代码、汇编语言代码、目标代码或由一个或多个处理器解译或以其他方式可执行的其他指令格式。
注意,并非所有上面在整体描述中描述的活动或元素都是必需的,具体活动或装置的一部分可能不是必需的,并且可以在描述的活动或元素之外执行一个或多个另外的活动或包括另外的元素。此外,活动列出的顺序不一定是它们执行的顺序。而且,已经参考具体实施例对这些概念进行了描述。然而,本领域普通技术人员明白在不脱离如所附权利要求所阐述的本公开的范围的情况下,可以进行各种修改和改变。因此,说明书和附图应被视为说明性的而不是限制性的,并且所有这种修改都旨在包括在本公开的范围内。
上文已经关于具体实施例描述了益处、其他优点和问题的解决方案。然而,益处、优点、问题的解决方案以及可能导致任何益处、优点或解决方案发生或变得更明显的任何特征都不应被解释为任何或所有权利要求的关键、必需或本质特征。此外,上文公开的特定实施例仅仅是说明性的,因为所公开的主题可以以具有本文教导的益处的不同但等效的方式进行修改和实践,这些方式对于本领域技术人员来说是显而易见的。除了在所附权利要求中所描述的之外,不旨在对本文示出的构造或设计的细节进行限制。因此,很明显,上文公开的特定实施例可以被更改或修改,并且所有这种变化都被认为在所公开的主题的范围内。因此,本文寻求的保护如所附权利要求中所阐述。
Claims (22)
1.一种数据处理系统,其包括:
一个或多个处理器核心;以及
缓存层级,其包括:
一级缓存;
二级缓存;
三级缓存;和
缓存层级控制逻辑,其被配置为实现其中缓存在所述一级缓存中的每个缓存行均具有缓存在所述二级缓存和所述三级缓存中的至少一个中的所述缓存行的副本的缓存策略并且其中当所述缓存行的所述副本不存在于所述二级缓存中时,从所述三级缓存中逐出缓存行会触发所述缓存层级控制逻辑以从所述一级缓存中逐出该缓存行的副本。
2.如权利要求1所述的数据处理系统,其中:
所述缓存策略还提供了从所述二级缓存中逐出缓存行不会触发从所述一级缓存中逐出该缓存行的副本。
3.如权利要求1所述的数据处理系统,其中:
所述缓存策略还提供了从所述三级缓存逐出缓存行会触发所述缓存层级控制逻辑以:
当该缓存行的副本存在于所述二级缓存中时,在所述一级缓存中保留该缓存行的所述副本。
4.如权利要求3所述的数据处理系统,其中:
所述三级缓存可以访问第一组存在字段以存储第一存在信息,该第一存在信息标识所述三级缓存中的哪些缓存行也存储在所述一级缓存或所述二级缓存的任一个中。
5.如权利要求4所述的数据处理系统,其中所述第一存在信息仅标识对应的缓存行是否在所述一级缓存或所述二级缓存的一个中。
6.如权利要求4所述的数据处理系统,其中所述第一存在信息标识对应的缓存行是否在所述一级缓存中以及所述对应的缓存行是否在所述二级缓存中。
7.如权利要求4所述的数据处理系统,其中:
所述缓存层级包括多个一级缓存和多个二级缓存;并且
所述第一存在信息标识对应的缓存行存储在所述多个一级缓存中的哪个一级缓存中或所述多个二级缓存中的哪个二级缓存中。
8.如权利要求4所述的数据处理系统,其中第一组存在字段是所述三级缓存的标签阵列的一部分。
9.如权利要求4所述的数据处理系统,其中:
所述一级缓存能够访问第二组存在字段以存储第二存在信息,所述第二存在信息标识所述一级缓存中的哪些缓存行也存储在所述二级缓存或所述三级缓存的任一个中。
10.如权利要求9所述的数据处理系统,其中所述第二存在信息仅标识对应的缓存行是否在所述二级缓存或所述三级缓存的一个中。
11.如权利要求9所述的数据处理系统,其中所述第二存在信息标识对应的缓存行是否在所述二级缓存中以及所述对应的缓存行是否在所述三级缓存中。
12.如权利要求9所述的数据处理系统,其中:
所述缓存层级包括多个二级缓存;并且
所述第二存在信息标识对应的缓存行存储在所述多个二级缓存中的哪个二级缓存中。
13.如权利要求9所述的数据处理系统,其中所述第二组存在字段是所述一级缓存的标签阵列的一部分。
14.一种方法,其包括:
从存储器提取缓存行;
通过缓存层级的缓存层级控制逻辑来将所述缓存行存储在所述缓存层级的一级缓存中;
响应于其中所述一级缓存中的每个缓存行也存储在所述缓存层级的二级缓存或三级缓存的至少一个中的缓存策略,通过所述缓存层级控制逻辑将所述缓存行存储在所述二级缓存中;
通过所述缓存层级控制逻辑从所述二级缓存中逐出所述缓存行,同时将所述缓存行保留在所述一级缓存中;
通过所述缓存层级控制逻辑从所述三级缓存中逐出所述缓存行;
通过所述缓存层级控制逻辑确定所述缓存行是否存在于所述二级缓存中;以及
响应于从所述三级缓存中逐出所述缓存行并且响应于确定所述缓存行不存在于所述二级缓存中,通过所述缓存层级控制逻辑根据所述缓存策略从所述一级缓存中逐出所述缓存行,其中:
从所述二级缓存中逐出所述缓存行包括以下项中的一个:
将所述缓存行存储在所述三级缓存中;或者
利用所述缓存行的修改后的值更新所述存储器。
15.如权利要求14所述的方法,其中:
通过所述缓存层级控制逻辑将所述缓存行存储在所述二级缓存中,包括:
通过所述缓存层级控制逻辑基于存储在所述一级缓存处的存在信息确定所述一级缓存和所述二级缓存当前都不存储所述缓存行,所述存在信息针对存储在所述一级缓存中的每个缓存行标识该缓存行是否也存储在所述二级缓存或所述三级缓存的至少一个中。
16.如权利要求15所述的方法,其中所述存在信息标识所述缓存行是否存储在所述二级缓存处或存储在所述三级缓存处。
17.如权利要求16所述的方法,其中:
所述缓存层级包括多个二级缓存;并且
所述存在信息标识所述多个二级缓存中存储所述缓存行的特定二级缓存。
18.如权利要求14所述的方法,其中:
从所述二级缓存中逐出所述缓存行包括以下项中的一个:
将所述缓存行存储在所述三级缓存中;或者
利用所述缓存行的修改后的值更新所述存储器。
19.如权利要求14所述的方法,其中:
确定所述缓存行是否存在于所述二级缓存中是基于存储在所述三级缓存处的存在信息,所述存在信息针对存储在所述三级缓存中的每个缓存行指示所述缓存行是否也存在于所述二级缓存中。
20.如权利要求19所述的方法,其中:
所述缓存层级包括多个二级缓存;并且
所述存在信息标识所述多个二级缓存中存储所述缓存行的特定二级缓存。
21.一种方法,其包括:
从存储器中提取缓存行;
根据缓存策略将所述缓存行缓存在缓存层级中,所述缓存层级具有一级缓存、二级缓存和三级缓存;并且
其中所述缓存策略提供了缓存在所述一级缓存中的任何缓存行也都存储在所述二级缓存或所述三级缓存的至少一个中,从所述二级缓存中逐出缓存行不需要从所述一级缓存中逐出该缓存行,并且从所述三级缓存中逐出缓存行也从所述一级缓存中逐出该缓存行,除非该缓存行也缓存在所述二级缓存中。
22.如权利要求21所述的方法,其中缓存层级控制逻辑使用存储在所述一级缓存、所述二级缓存或所述三级缓存中的一个或多个缓存处的存在信息来实现所述缓存策略,在给定缓存级别的缓存处的所述存在信息指示是否将存储在所述给定缓存级别的缓存处的缓存行存储在所述缓存的一个或多个其他缓存级别处。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/790,743 | 2017-10-23 | ||
US15/790,743 US10528483B2 (en) | 2017-10-23 | 2017-10-23 | Hybrid lower-level cache inclusion policy for cache hierarchy having at least three caching levels |
PCT/US2018/047992 WO2019083599A1 (en) | 2017-10-23 | 2018-08-24 | LOWER LEVEL CACHE HYBRID INCLUSION POLICY FOR CACHE HIERARCHY COMPRISING AT LEAST THREE LEVELS OF CACHE |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111263934A CN111263934A (zh) | 2020-06-09 |
CN111263934B true CN111263934B (zh) | 2022-08-02 |
Family
ID=66169318
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880068941.5A Active CN111263934B (zh) | 2017-10-23 | 2018-08-24 | 至少具有三个缓存级别的缓存层级的混合低级缓存包含策略 |
Country Status (6)
Country | Link |
---|---|
US (1) | US10528483B2 (zh) |
EP (1) | EP3701380A4 (zh) |
JP (1) | JP6776482B1 (zh) |
KR (1) | KR102253028B1 (zh) |
CN (1) | CN111263934B (zh) |
WO (1) | WO2019083599A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210079637A (ko) * | 2019-12-20 | 2021-06-30 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그 동작 방법 |
CN113973502B (zh) * | 2020-05-25 | 2023-11-17 | 华为技术有限公司 | 一种高速缓存冲撞处理方法及装置 |
CN111723115A (zh) * | 2020-06-24 | 2020-09-29 | 深圳前海微众银行股份有限公司 | 基于多级缓存的数据统计方法、装置、终端及存储介质 |
CN112256600B (zh) * | 2020-10-22 | 2023-04-11 | 海光信息技术股份有限公司 | 数据读取方法及相关装置 |
CN112612727B (zh) * | 2020-12-08 | 2023-07-07 | 成都海光微电子技术有限公司 | 一种高速缓存行替换方法、装置及电子设备 |
US20240045805A1 (en) * | 2021-01-20 | 2024-02-08 | Alibaba Group Holding Limited | Core-aware caching systems and methods for multicore processors |
US11561901B1 (en) * | 2021-08-04 | 2023-01-24 | International Business Machines Corporation | Distribution of injected data among caches of a data processing system |
CN116342371B (zh) * | 2023-03-24 | 2024-05-24 | 摩尔线程智能科技(北京)有限责任公司 | 用于gpu、二级缓存的方法和gpu、二级缓存 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103870394A (zh) * | 2012-12-13 | 2014-06-18 | Arm有限公司 | 基于保留优先级的缓存替换策略 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0603552D0 (en) | 2006-02-22 | 2006-04-05 | Advanced Risc Mach Ltd | Cache management within a data processing apparatus |
US7711902B2 (en) | 2006-04-07 | 2010-05-04 | Broadcom Corporation | Area effective cache with pseudo associative memory |
US8499124B2 (en) | 2008-12-16 | 2013-07-30 | International Business Machines Corporation | Handling castout cache lines in a victim cache |
US8364898B2 (en) | 2009-01-23 | 2013-01-29 | International Business Machines Corporation | Optimizing a cache back invalidation policy |
US20130166846A1 (en) * | 2011-12-26 | 2013-06-27 | Jayesh Gaur | Hierarchy-aware Replacement Policy |
US9122612B2 (en) * | 2012-06-25 | 2015-09-01 | Advanced Micro Devices, Inc. | Eliminating fetch cancel for inclusive caches |
US9058269B2 (en) * | 2012-06-25 | 2015-06-16 | Advanced Micro Devices, Inc. | Method and apparatus including a probe filter for shared caches utilizing inclusion bits and a victim probe bit |
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 |
JP6027562B2 (ja) | 2014-02-24 | 2016-11-16 | 株式会社東芝 | キャッシュメモリシステムおよびプロセッサシステム |
US20160055100A1 (en) * | 2014-08-19 | 2016-02-25 | Advanced Micro Devices, Inc. | System and method for reverse inclusion in multilevel cache hierarchy |
US9990289B2 (en) * | 2014-09-19 | 2018-06-05 | Advanced Micro Devices, Inc. | System and method for repurposing dead cache blocks |
US10204047B2 (en) * | 2015-03-27 | 2019-02-12 | Intel Corporation | Memory controller for multi-level system memory with coherency unit |
US9817760B2 (en) * | 2016-03-07 | 2017-11-14 | Qualcomm Incorporated | Self-healing coarse-grained snoop filter |
US10073776B2 (en) * | 2016-06-23 | 2018-09-11 | Advanced Micro Device, Inc. | Shadow tag memory to monitor state of cachelines at different cache level |
US20180121353A1 (en) * | 2016-10-27 | 2018-05-03 | Intel Corporation | System, method, and apparatus for reducing redundant writes to memory by early detection and roi-based throttling |
-
2017
- 2017-10-23 US US15/790,743 patent/US10528483B2/en active Active
-
2018
- 2018-08-24 KR KR1020207010880A patent/KR102253028B1/ko active IP Right Grant
- 2018-08-24 JP JP2020521504A patent/JP6776482B1/ja active Active
- 2018-08-24 EP EP18870626.1A patent/EP3701380A4/en active Pending
- 2018-08-24 WO PCT/US2018/047992 patent/WO2019083599A1/en unknown
- 2018-08-24 CN CN201880068941.5A patent/CN111263934B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103870394A (zh) * | 2012-12-13 | 2014-06-18 | Arm有限公司 | 基于保留优先级的缓存替换策略 |
Also Published As
Publication number | Publication date |
---|---|
EP3701380A4 (en) | 2021-08-25 |
US20190121748A1 (en) | 2019-04-25 |
KR20200062238A (ko) | 2020-06-03 |
JP6776482B1 (ja) | 2020-10-28 |
EP3701380A1 (en) | 2020-09-02 |
KR102253028B1 (ko) | 2021-05-17 |
JP2021500655A (ja) | 2021-01-07 |
WO2019083599A1 (en) | 2019-05-02 |
US10528483B2 (en) | 2020-01-07 |
CN111263934A (zh) | 2020-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111263934B (zh) | 至少具有三个缓存级别的缓存层级的混合低级缓存包含策略 | |
US7805574B2 (en) | Method and cache system with soft I-MRU member protection scheme during make MRU allocation | |
US10474583B2 (en) | System and method for controlling cache flush size | |
US10430349B2 (en) | Scaled set dueling for cache replacement policies | |
CN109154911B (zh) | 用于监视高速缓存行在不同的高速缓存级下的状态的阴影标签存储器 | |
JP4226057B2 (ja) | 包含キャッシュにおける望ましくない置換動作を低減するための先行犠牲選択のための方法及び装置 | |
US8762651B2 (en) | Maintaining cache coherence in a multi-node, symmetric multiprocessing computer | |
US8423736B2 (en) | Maintaining cache coherence in a multi-node, symmetric multiprocessing computer | |
US8364904B2 (en) | Horizontal cache persistence in a multi-compute node, symmetric multiprocessing computer | |
US20090132750A1 (en) | Cache memory system | |
JP6630449B2 (ja) | 他のキャッシュでのエントリの可用性に基づくキャッシュエントリの置換 | |
JP6663542B2 (ja) | 遅延キャッシュの利用のためのシステム及び方法 | |
US10282295B1 (en) | Reducing cache footprint in cache coherence directory | |
EP3688597B1 (en) | Preemptive cache writeback with transaction support | |
US11526449B2 (en) | Limited propagation of unnecessary memory updates | |
KR20230017244A (ko) | 코어 대 코어 캐시 스태싱 및 타깃 발견 | |
EP3260986B1 (en) | Shadow tag memory to monitor state of cachelines at different cache level | |
US11960399B2 (en) | Relaxed invalidation for cache coherence | |
WO2019118042A1 (en) | Rinsing cache lines from a common memory page to memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |