CN109154912B - 根据另一个高速缓存中条目的可用性替换高速缓存条目 - Google Patents
根据另一个高速缓存中条目的可用性替换高速缓存条目 Download PDFInfo
- Publication number
- CN109154912B CN109154912B CN201680086077.2A CN201680086077A CN109154912B CN 109154912 B CN109154912 B CN 109154912B CN 201680086077 A CN201680086077 A CN 201680086077A CN 109154912 B CN109154912 B CN 109154912B
- Authority
- CN
- China
- Prior art keywords
- cache
- entry
- data
- controller
- replacement
- 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 abstract description 33
- 230000004044 response Effects 0.000 claims description 26
- 238000000034 method Methods 0.000 claims description 20
- 238000012546 transfer Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000010276 construction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
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/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/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/0891—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting 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/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
- 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
-
- 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/1028—Power efficiency
-
- 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)
- Human Computer Interaction (AREA)
Abstract
一种处理系统[100]至少部分地基于不同高速缓存[140]处的对应条目的有效性状态来选择在一个高速缓存[130]处的条目以用于逐出。处理系统包括存储器层次结构,所述存储器层次结构具有至少两个高速缓存,较高级别高速缓存[140]和较低级别高速缓存[130]。较低级别高速缓存监视较高级别高速缓存的哪些位置已被指示为无效,并且当选择较低级别高速缓存的条目以便逐出到较高级别高速缓存时,至少部分地基于是否所选择的高速缓存条目将存储在较高级别高速缓存的无效高速缓存行中来选择该条目。
Description
技术领域
公开领域
本公开一般涉及处理器,并且更具体地涉及处理器处的高速缓存管理。
现有技术描述
为了支持指令的执行,处理系统通常包括具有存储器模块的存储器子系统,用于存储将由执行指令访问的数据。存储器子系统可以组织成存储器层次结构,其具有位于层次结构顶部的主存储器,以存储可由执行指令访问的更大量数据,以及存储器层次结构的较低级别处的一个或多个高速缓存以存储在主存储器中存储的数据的子集。通常,数据存储在存储器层次结构中越低,它可以被处理器越快地访问。为了进一步提高处理效率,处理系统可以实现存储器管理协议,该协议管理存储在存储器层次结构的每个级别的特定数据集。例如,处理系统可以实现存储器管理协议,该协议将最近被请求访问的数据移动到存储器层次结构的较低级别,期望在不久的将来处理器将再次访问该数据,并且将最近未访问的数据移动到存储器层次结构的更高级别。然而,这种通用存储器管理协议可导致存储器层次结构的级别之间的数据频繁移动,从而影响处理系统的处理效率和功耗。
附图简述
通过参考附图,可更好地理解本公开,并且它的许多特征和优点对本领域技术人员来说变得显而易见。在不同图式中使用的相同元件符号指示类似或完全相同的项目。
图1是采用存储器层次结构的处理系统的框图,其中根据一些实施方案,一个高速缓存基于另一个高速缓存处的条目的有效性状态选择用于替换的条目。
图2是图1的处理系统的实例的框图,根据一些实施方案,将数据从较高级别的高速缓存传输到较低级别的高速缓存。
图3是图1的处理系统的实例的框图,根据一些实施方案,在较低级别的高速缓存中跟踪哪些数据已经从较高级别的高速缓存传输到较低级别的高速缓存。
图4是根据一些实施方案的在图1的高速缓存中使用的无效表的框图。
图5是根据一些实施方案的跟踪一个级别的高速缓存处的条目的有效性状态以选择不同高速缓存级别的逐出数据的条目的方法的流程图。
具体实施方式
图1-5示出了用于通过至少部分地基于不同高速缓存处的对应条目的有效性状态在一个高速缓存处选择用于逐出的条目来提高处理系统处的存储器管理效率的技术。为了说明,处理系统可以包括具有至少两个高速缓存的存储器层次结构,较高级别高速缓存(更靠近存储器层次结构中的主存储器)和较低级别高速缓存(更接近处理系统的处理器核心)。当较高级别高速缓存的条目处的数据被移动到较低级别高速缓存的条目时,较高级别高速缓存的条目被标记为具有“无效”的有效性状态,从而指示该条目可用于存储更高级别高速缓存中的传入数据。较低级别高速缓存监视较高级别高速缓存的哪些位置已被指示为无效,并且当选择较低级别高速缓存的条目以便逐出到较高级别高速缓存时,至少部分地基于是否所选择的高速缓存条目将存储在当时的更高级别高速缓存的无效高速缓存行中来选择该条目。因此,处理系统减少了更高级别高速缓存的逐出次数,这导致功耗降低和存储器效率提高。
图1示出了根据一些实施方案的处理系统100的实例,该处理系统100被配置为在给定高速缓存级别跟踪在不同高速缓存级别的无效高速缓存条目,以在给定高速缓存级别的高速缓存替换策略中使用。处理系统100可以用于多种设备中的任何一种,例如个人计算机、工作站,诸如智能电话的移动设备、视频游戏控制台、智能电视等。处理系统100包括处理器核心110,多级高速缓存(例如,L1高速缓存120、L2高速缓存130、L3高速缓存140)和主存储器150。在一些实施方案中,处理器核心110和多级高速缓存(包括其相关联的高速缓存控制器)形成并入单个半导体管芯上的处理器,主存储器150并入单独的半导体管芯上。
处理器核心110包括一个或多个指令流水线以执行指令,从而代表电子设备执行任务。虽然处理器核心110可以具有一定量的整体存储器,例如,以寄存器文件的形式,但是这种存储器通常在存储容量方面受到限制。因此,为了执行指令,处理器核心110将数据存储至处理系统100的存储器层次结构和检索来自所述层次结构的数据,所述层次结构包括L1高速缓存120、L2高速缓存130、L3高速缓存140和主存储器150。具体地,在执行指令的过程中,处理器核心110生成被称为存储器访问请求的操作,以在存储器层次结构中存储(存储操作)数据或从存储器层次结构加载(读取操作)数据。L1高速缓存120、L2高速缓存130、L3高速缓存140和主存储器150一起工作以满足存储器访问请求,如本文进一步描述的。
L1高速缓存120是存储用于由处理器核心110访问的数据的存储器模块。在至少一个实施方案中,L1高速缓存120由一组条目组成,每个条目可以存储被称为高速缓存行的相关数据单元。L1高速缓存控制器122是被配置为从处理器核心110接收对数据的存储器访问请求并且搜索L1高速缓存120以确定其中一个高速缓存条目是否存储与存储器访问请求所针对的存储器地址相关联的高速缓存行的模块。如果在L1高速缓存120中找到所请求的高速缓存行,则发生高速缓存命中。在高速缓存命中的情况下,L1高速缓存控制器122通过在读取操作的情况下将来自L1高速缓存120的所请求的高速缓存行提供给处理器核心110或者在写操作的情况下,将写数据存储到高速缓存条目满足存储器访问请求。如果在L1高速缓存120中未找到所请求的高速缓存行,则发生高速缓存未命中。在L1高速缓存120处的高速缓存未命中的情况下,L1高速缓存控制器122将存储器访问请求提供给L2高速缓存130。
类似于L1高速缓存120,L2高速缓存130是包括一组条目的存储器,每个条目可以存储相关联的高速缓存行。L2高速缓存控制器132是被配置为响应于L1高速缓存120处的高速缓存未命中而从L1高速缓存控制器122接收存储器访问请求的模块。响应于接收到存储器访问请求,L2高速缓存控制器132识别L2高速缓存130的高速缓存条目之一是否存储与存储器访问请求所针对的存储器地址相关联的数据。如果是,则L2高速缓存控制器132识别高速缓存命中,并将来自L2高速缓存130的所请求的数据提供给L1高速缓存120。如果在L2高速缓存130中未找到所请求的数据,则L2高速缓存控制器识别高速缓存未命中并将存储器访问请求提供给L3高速缓存140。
与L1高速缓存120和L2高速缓存130一样,L3高速缓存140是包括一组条目的存储器,每个条目被配置为存储高速缓存行。L3高速缓存控制器142被配置为从L2高速缓存控制器132接收存储器访问请求。响应于接收到存储器访问请求,L3高速缓存控制器142识别L3高速缓存140的条目是否存储与存储器访问请求所针对的存储器地址相关联的数据。在高速缓存命中的情况下,L3高速缓存控制器142将来自L3高速缓存140的所请求的数据提供给L2高速缓存130,L2高速缓存130存储数据并进而将数据提供给L1高速缓存120,其满足存储器访问请求,如上所述。在L3高速缓存140处的高速缓存未命中的情况下,L3高速缓存控制器142将存储器访问请求提供给主存储器150。主存储器150在请求所针对的存储器地址处检索高速缓存行,并将高速缓存行提供给L3高速缓存140,L3高速缓存140又将高速缓存行提供给L2高速缓存130以提供给L1高速缓存120,其中存储器访问请求得到满足。因此,如上所述,存储器访问请求遍历存储器层次结构,直到找到所请求的数据。然后将所请求的数据传送到L1高速缓存120,其中满足存储器访问请求。
在一些实施方案中,L1高速缓存120、L2高速缓存130和L3高速缓存140中的每一个是组关联高速缓存,其中每个高速缓存被划分为多个集合。每个集合包括多个通道,每个通道对应于可以存储高速缓存行的高速缓存条目。每个集合仅存储与存储器地址子集相关联的高速缓存行,其中与集合相关联的子集由对应的高速缓存控制器基于被称为索引的存储器地址的一部分来识别。通过采用组关联性,高速缓存120、130和140便于相对快速地识别高速缓存未命中和高速缓存命中。此外,在一些实施方案中,L3高速缓存140大于L2高速缓存130,使得它可以针对其每个集合采用更大的索引大小。
在一些实施方案中,高速缓存120、130和140的大小使得它们通常不能在给定时间点存储处理器核心110所请求或可能请求的所有数据,从而需要如上所述,通过存储器层次结构传输数据。为了确保数据一致性和通过存储器层次结构有效地传输数据,每个高速缓存控制器122、132和142实现替换策略以识别是否存在可用于存储接收的高速缓存行的集合中的条目,如果不存在,选择集合中的一个条目进行替换。高速缓存条目的可用性由与条目相关联的状态信息指示,称为条目的有效状态。具体地,具有无效有效性状态的高速缓存行(这里称为无效高速缓存行)是可用于存储数据的高速缓存行,具有有效有效性状态的高速缓存行(这里称为有效高速缓存行)是除非被替换,否则无法存储数据的高速缓存行。要在条目处用传入高速缓存行替换有效的高速缓存行,高速缓存的高速缓存控制器首先通过将其传输到存储器层次结构的一个或多个其他级别来逐出有效的高速缓存行,然后将传入的高速缓存行存储在条目处。
为了说明,响应于处理系统100的重置,L1高速缓存120、L2高速缓存130和L3高速缓存140中的每一个中的所有高速缓存行由它们各自的高速缓存控制器设置为无效状态。当用从主存储器150检索的高速缓存行填充高速缓存条目时,相应的高速缓存控制器将高速缓存条目设置为有效状态。包含已设置为无效状态的高速缓存行的高速缓存通道可能会接收传入高速缓存行,该高速缓存行将替换或覆盖无效高速缓存行。当高速缓存接收要存储的高速缓存行时,它必须选择要存储高速缓存行的高速缓存通道。如果与传入高速缓存行相关联的高速缓存集具有可用空间(即,具有指示包含无效高速缓存行的一个或多个高速缓存通道),则将在无效通道之一存储传入高速缓存行。然而,如果与传入高速缓存行相关联的集合中的所有高速缓存通道被指示为有效,则高速缓存控制器选择与新高速缓存行相关联的集合的高速缓存行以供逐出,从而为传入高速缓存行腾出空间。
高速缓存控制器用于选择高速缓存行以进行替换的特定标准被称为替换策略。例如,高速缓存控制器122可以在高速缓存120处实现替换策略,其中它在与传入的高速缓存行相关联的高速缓存集中选择最近最少使用的高速缓存行(即,最近最少为存储器访问操作的目标的高速缓存行)用于逐出。
在一些实施方案中,L2高速缓存控制器132基于L3高速缓存140处的无效高速缓存行的位置来实现替换策略。特别地,L2高速缓存控制器132可以选择逐出高速缓存行,该高速缓存行在被传送到L3高速缓存140用于逐出时可能存储在无效高速缓存通道处。因此,L3高速缓存140不必逐出有效的高速缓存行,以便为来自L2高速缓存130的传入高速缓存行腾出空间。因此,通过至少部分地基于L3高速缓存140处的无效高速缓存行的位置来选择用于逐出的高速缓存行,L2高速缓存控制器132可以减少L3高速缓存处的逐出次数,从而节省功率并提高存储器效率。
为了说明,在操作中,处理器核心110执行存储器访问操作。处理器核心110从L1高速缓存控制器122请求数据(高速缓存行),L1高速缓存控制器122在L1高速缓存120中搜索所请求的高速缓存行。如果在L1高速缓存120中找到所请求的高速缓存行,则将所请求的高速缓存行读取到处理器核心110。如果在L1高速缓存120中未找到所请求的高速缓存行,则L1高速缓存控制器122从L2高速缓存控制器132请求高速缓存行。L2高速缓存控制器132在L2高速缓存130中搜索所请求的高速缓存行。如果在L2高速缓存130中找到所请求的高速缓存行,则L2高速缓存控制器132将所请求的高速缓存行复制到L1高速缓存120,L1高速缓存控制器122从所述L1高速缓存120读取所请求的高速缓存行到处理器核心110。
如果在L2高速缓存130中未找到所请求的高速缓存行,则L2高速缓存控制器132从L3高速缓存控制器142请求高速缓存行。L3高速缓存控制器142在L3高速缓存140中搜索所请求的高速缓存行。如果在L3高速缓存140中找到所请求的高速缓存行,则L3高速缓存控制器142将所请求的高速缓存行复制到L2高速缓存130,并将驻留在L3高速缓存140中的所请求的高速缓存行的保留副本中的状态位改变为无效的状态。L2高速缓存控制器132更新L3无效表134以指示L3高速缓存140中的所请求的高速缓存行已被设置为无效状态。L2高速缓存控制器132在L2高速缓存130中搜索高速缓存集,其可以将已经从L3高速缓存140复制的所请求的高速缓存行复制到所述高速缓存集。
如果L2高速缓存130中没有高速缓存集可用于存储所请求的高速缓存行,则L2高速缓存控制器132将从高速缓存集中选择高速缓存行以进行逐出和替换。在进行其选择时,L2高速缓存控制器132将查询L3无效表134以确定L3高速缓存140中的高速缓存集中的与传入高速缓存行相关联的驻留在高速缓存集中的任何高速缓存行是否包含无效高速缓存行。如果是这样的话,这样的高速缓存行将优选用于从L2高速缓存130逐出到L3高速缓存140,因为它们被逐出到L3高速缓存140将导致L3高速缓存140中的无效高速缓存行的位移,因此不会需要从L3高速缓存140中逐出有效数据。L2高速缓存控制器132可以基于其他因素考虑这样的优先选择,诸如驻留在L2高速缓存130中的最近最少使用的高速缓存行。例如,L2高速缓存控制器132可以向每个高速缓存行分配年龄值,并基于多个标准调整年龄值,包括高速缓存行是否与L3高速缓存140处的无效高速缓存行相关联,高速缓存行是存储器访问操作的目标等。因此,给定高速缓存行的年龄值反映了该高速缓存行的所有不同替换策略标准的组合。当选择用于逐出的集合的高速缓存行时,L2高速缓存控制器132可以基于集合中的高速缓存行的年龄值的比较来选择高速缓存行。
一旦高速缓存行已从L2高速缓存130逐出到L3高速缓存140,L2高速缓存控制器132将进入的所请求的高速缓存行从L3高速缓存140复制到L2高速缓存130。一旦所请求的高速缓存行已被复制到L2高速缓存130,L2高速缓存控制器132就将所请求的高速缓存行复制到L1高速缓存120。然后,L1高速缓存控制器122将所请求的高速缓存行提供给处理器核心110。
应当理解,处理系统100的不同高速缓存控制器可以在它们各自的高速缓存处实现不同的替换方案。例如,L2高速缓存控制器132可以如上所述至少部分地基于L3高速缓存140的条目的有效性状态来选择在L2高速缓存130处用于替换的条目。相反,L1高速缓存控制器122可以选择在L1高速缓存120处用于替换的条目,而不考虑L2高速缓存130处的条目的有效性状态或L3高速缓存140处的条目的有效性状态。在不同的高速缓存控制器处实现这样的不同替换方案可以提高处理系统100处的总体存储器访问效率。
图2示出了根据一些实施方案的L2高速缓存130处的高速缓存行的实例,基于将被逐出的L3高速缓存行的有效性状态,选择所述L2高速缓存130处的高速缓存行用于替换。在所示实例中,L3高速缓存140接收存储器访问请求221,其请求存储在高速缓存条目243处的高速缓存行235。响应于存储器访问请求221,L3高速缓存140将高速缓存行235提供给L2高速缓存130,L2高速缓存130将高速缓存行235存储在条目231处。另外,响应于存储器访问请求221,L3高速缓存240将高速缓存条目243的有效性位244设置为无效状态,指示存储在高速缓存条目243处的数据无效并且有资格进行替换。
在存储器访问请求221和有效性位244被设置为无效状态之后,L2高速缓存控制器132识别逐出222-即,L2高速缓存控制器132确定它必须从其一个条目中逐出数据以容纳从另一个高速缓存接收的数据,例如L3高速缓存140、L1高速缓存120等。响应于识别逐出222,L2高速缓存控制器132至少部分地基于所识别的条目是否将被存储在处于无效状态的L3高速缓存140的条目中来识别用于替换的条目。在所描绘的实例中,L2高速缓存130包括条目133,当其数据被逐出时,数据将由L3高速缓存140存储在高速缓存条目243处。也就是说,与条目133处的数据相关联的存储器地址使得如果L2高速缓存130将该数据提供给L3高速缓存140,则L3高速缓存140将数据存储在高速缓存集243处。此外,如上所述,响应于存储器访问请求221,高速缓存条目243的有效性位244先前被设置为无效状态。因此,响应于识别出有效位244将高速缓存条目243指示为存储无效数据,L2高速缓存控制器132选择用于替换的条目133,并将条目133处存储的数据提供给L3高速缓存140。
响应于从L2高速缓存130接收数据,L3高速缓存控制器142选择高速缓存条目243来存储数据。因为高速缓存条目243被指示为处于无效状态,所以L3高速缓存140不必逐出任何有效数据来容纳输入数据。因此,通过基于数据是否将被存储在被指示为无效的L3高速缓存140的条目处来选择用于逐出的数据,L2高速缓存130减少了L3高速缓存140处的逐出数量并且提高了处理系统100的整体存储效率。
如上面参考图1所述,在一些实施方案中,L2高速缓存控制器132跟踪在L3无效表134中L3高速缓存140的条目的有效性状态。图3示出了根据一些实施方案的L2高速缓存控制器132响应于L3高速缓存140的条目的有效性状态的改变而更新L3无效表134的实例。在所描绘的实例中,L3高速缓存140接收存储器访问请求321,其表示对L3高速缓存140将高速缓存行335传送到L2高速缓存130的请求。作为响应,L3高速缓存控制器142识别高速缓存行335存储在条目343处,并将存储在条目343处的数据传送到L2高速缓存130,L2高速缓存130将数据存储在条目331处。另外,L3高速缓存控制器142将条目343的有效性位344设置为无效状态,以指示存储在条目343处的数据无效。
响应于将条目343的有效性位344设置为无效状态,L3高速缓存控制器142向L2高速缓存控制器132发送消息(图3中未示出),指示条目343无效。作为响应,L2高速缓存控制器132将L3无效表134的条目333识别为对应于L3高速缓存140的条目343。L2高速缓存控制器132更新条目333以指示条目343无效,因此可能存储在条目343中的数据可以优先考虑以便从L2高速缓存130中逐出。L2高速缓存控制器132可以响应于在条目343处存储的数据的有效性的后续改变而继续更新条目333。通过在L3无效表134中存储L3高速缓存140的条目的有效性状态,L2高速缓存控制器可以在L2高速缓存130处识别用于替换的数据时快速并入有效性状态。
图4示出了根据一些实施方案的图1的无效表134的实例。在所示实例中,无效表134包括多个条目(例如,条目435),每个条目包括标签字段437,其存储L3高速缓存140处的条目的标签。无效表134的每个条目还包括状态字段438,其指示对应于标签的条目的有效性状态。在至少一个实施方案中,当响应于与标签相对应的高速缓存条目从L3高速缓存140传送到L2高速缓存130,在标签字段存储标签值时,将条目的状态字段设置为无效状态。L2高速缓存控制器132可以响应于指定的事件将状态字段更新为有效状态,例如新的高速缓存行正存储在L3高速缓存140的对应于标签值的高速缓存行的指示。L3无效表134由此保持L3高速缓存140的高速缓存行的有效性状态的最新记录,并且L2高速缓存控制器132可以使用L3无效表134来选择L2高速缓存130的高速缓存行以进行逐出,如上所述。
图5示出了基于与选择逐出的高速缓存行相关联的第二高速缓存的高速缓存集中的高速缓存行的无效状态,选择高速缓存行用于从第一高速缓存逐出到第二高速缓存的方法500。在框502处,L3高速缓存控制器接收对数据的请求。如果在L3高速缓存中找到所请求的高速缓存行,则在框504处,L3高速缓存控制器将所请求的高速缓存行复制到L2高速缓存。在框506处,L3高速缓存控制器将L3高速缓存中的高速缓存行的保留副本设置为无效状态。在框508处,L2高速缓存控制器更新L3无效表以指示L3高速缓存中的高速缓存行的保留副本是无效的。在框510,当L2高速缓存控制器从L2高速缓存中选择高速缓存行以便逐出以为输入数据腾出空间时,L2高速缓存控制器部分地基于L3高速缓存中的高速缓存行的无效状态从L2高速缓存中选择用于逐出的高速缓存行。尽管已经关于L3高速缓存和L2高速缓存之间的示例实施方案描述了方法500,但是方法500应用于包括多级高速缓存的其他存储器层次结构。
在一些实施方案中,以上所描述的技术的某些方面可通过执行软件的处理系统的一个或多个处理器来实施。该软件包括存储或以其他方式有形地体现在非暂时性计算机可读存储介质上的一组或多组可执行指令。软件可包括指令和某些数据,当由一个或多个处理器执行时,所述指令和某些数据操纵所述一个或多个处理器来执行以上所描述的技术的一个或多个方面。非暂态计算机可读存储介质可包括:例如,磁盘或光盘存储装置、固态存储装置诸如闪存、高速缓存、随机存取存储器(RAM)或一种或多种其他非易失性存储器装置等。存储在非暂态计算机可读存储介质上的可执行指令可以是源代码、汇编语言代码、目标代码或可由一个或多个处理器解译或以其他方式执行的其他指令格式。
应注意,并非上文在一般说明中描述的所有活动或元件都是需要的,具体活动或设备的一部分可能是不需要的,并且一个或多个其他活动可加以执行,或者,除所描述的那些元件之外,还可包括其他元件。更进一步来说,列出活动的次序并非必须是它们被执行的次序。另外,已经参考具体实施方案描述了概念。然而,本领域中的普通技术人员会了解,在不背离所附权利要求书中所阐述的本公开范围的情况下,可做出各种修改和改变。因此,本说明书和附图将以说明性而非限制性意义来看待,并且所有此类修改意在包括在本公开的范围内。
以上所公开的特定实施方案仅为说明性的,因为所公开的主题可以受益于本文教义的本领域的技术人员显而易见的不同但等效的方式来修改和实施。除了如以下权利要求书中所描述之外,并不旨在限制本文所示出的构造或设计的细节。因此,明显的是,以上所公开的特定实施方案可更改或修改,并且所有此类变型被认为在所公开的主题的范围内。因此,本文所寻求的保护如以下权利要求书中所阐述。
Claims (13)
1.一种在处理系统中执行的方法,所述方法包括:
将第一数据从所述处理系统的第一高速缓存的条目传送到所述处理系统的第二高速缓存的条目;
在所述处理系统中,响应于将所述第一数据从所述第一高速缓存的条目传送到所述第二高速缓存的条目,将所述第一高速缓存的条目的有效性状态设置为无效状态;
将所述第一高速缓存的条目的有效性状态存储在所述第二高速缓存的高速缓存控制器中;
在所述处理系统中,响应于确定所述第一高速缓存的条目的有效性状态指示所述无效状态并且确定在所述第二高速缓存处的第二数据将要存储在所述第一高速缓存的所述条目处,基于存储的有效性状态选择在所述第二高速缓存处的所述第二数据以进行替换;以及
响应于选择所述第二数据以进行替换,将所述第二数据从所述第二高速缓存传送到所述第一高速缓存。
2.如权利要求1所述的方法,所述方法还包括:
响应于在将所述第一数据从所述第一高速缓存的条目传送到所述第二高速缓存的条目之后,在所述第二高速缓存处接收的存储器访问请求,选择在所述第二高速缓存处的所述第二数据以进行替换。
3.如权利要求1所述的方法,所述方法还包括:
响应于所述第二数据已经存储在所述第一高速缓存的条目处的指示,更新存储的有效性状态。
4.如权利要求1所述的方法,其中选择在所述第二高速缓存处的所述第二数据以进行替换还基于所述第二高速缓存的条目的替换策略标准的组合。
5.如权利要求1所述的方法,所述方法还包括:
将第一数据从所述第二高速缓存的条目传送到第三高速缓存;以及
选择在所述第三高速缓存处的数据以进行替换而不考虑所述第二高速缓存的条目的有效性状态。
6.一种在处理系统中执行的方法,其包括:
在与所述处理系统的第一高速缓存相关联的第一高速缓存控制器处跟踪第二高速缓存的条目的有效性状态,其中所述第二高速缓存的条目的有效性状态存储在所述第一高速缓存控制器中;
在所述处理系统中,响应于由所述第一高速缓存控制器跟踪的所述第二高速缓存的条目的有效性状态指示无效状态,由所述第一高速缓存控制器基于存储的有效性状态从所述第一高速缓存中选择数据以进行逐出;
响应于识别出所述数据将被存储在所述第二高速缓存的条目处,从所述第一高速缓存中选择所述数据;以及
将选择用于逐出的数据从所述第一高速缓存传送到所述第二高速缓存。
7.如权利要求6所述的方法,所述方法还包括:
当数据从所述第二高速缓存处的条目传送到所述第一高速缓存时,将所述第二高速缓存处的条目的有效性状态识别为无效。
8.如权利要求6所述的方法,其中从所述第一高速缓存中选择用于逐出的数据还部分地基于所述第一高速缓存处的数据的替换策略标准的组合。
9.一种处理器,其包括:
第一高速缓存;
第二高速缓存;以及
第二高速缓存控制器,其被配置为:
响应于将第一数据从所述第一高速缓存的条目传送到所述第二高速缓存的条目,将所述第一高速缓存的条目的有效性状态设置为无效状态;
存储所述第一高速缓存的条目的有效性状态;
响应于确定所述第一高速缓存的条目的有效性状态指示所述无效状态并且确定在所述第二高速缓存处的第二数据将要存储在所述第一高速缓存的所述条目处,基于存储的有效性状态选择在所述第二高速缓存处的所述第二数据以进行替换;以及
将选择用于替换的所述第二数据从所述第二高速缓存传送到所述第一高速缓存。
10.如权利要求9所述的处理器,其中所述第二高速缓存控制器还被配置为:
响应于在将所述第一数据从所述第一高速缓存的条目传送到所述第二高速缓存的条目之后,在所述第二高速缓存处接收的存储器访问请求,选择所述第二高速缓存处的第二数据以进行替换。
11.如权利要求9所述的处理器,其中所述第二高速缓存控制器还被配置为:
响应于所述第二数据已经存储在所述第一高速缓存的条目处的指示,更新存储的有效性状态。
12.如权利要求9所述的处理器,其中所述第二高速缓存控制器还被配置为:
还基于所述第二高速缓存的条目的替换策略标准的组合来选择所述第二数据以进行替换。
13.如权利要求9所述的处理器,其还包括:
第三高速缓存,其中所述第二高速缓存控制器被配置为将所述第一数据从所述第二高速缓存的条目传送到所述第三高速缓存的条目;以及
第三高速缓存控制器,其被配置为选择在第三高速缓存处的数据用于替换而不考虑所述第二高速缓存的条目的可用性。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/180,807 | 2016-06-13 | ||
US15/180,807 US10152425B2 (en) | 2016-06-13 | 2016-06-13 | Cache entry replacement based on availability of entries at another cache |
PCT/US2016/051661 WO2017218022A1 (en) | 2016-06-13 | 2016-09-14 | Cache entry replacement based on availability of entries at another cache |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109154912A CN109154912A (zh) | 2019-01-04 |
CN109154912B true CN109154912B (zh) | 2024-01-12 |
Family
ID=60572796
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680086077.2A Active CN109154912B (zh) | 2016-06-13 | 2016-09-14 | 根据另一个高速缓存中条目的可用性替换高速缓存条目 |
Country Status (6)
Country | Link |
---|---|
US (1) | US10152425B2 (zh) |
EP (1) | EP3433743B1 (zh) |
JP (1) | JP6630449B2 (zh) |
KR (1) | KR102453192B1 (zh) |
CN (1) | CN109154912B (zh) |
WO (1) | WO2017218022A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10268558B2 (en) * | 2017-01-13 | 2019-04-23 | Microsoft Technology Licensing, Llc | Efficient breakpoint detection via caches |
US10528519B2 (en) * | 2017-05-02 | 2020-01-07 | Mellanox Technologies Ltd. | Computing in parallel processing environments |
US10534710B2 (en) * | 2018-06-22 | 2020-01-14 | Intel Corporation | Non-volatile memory aware caching policies |
US10740220B2 (en) | 2018-06-27 | 2020-08-11 | Microsoft Technology Licensing, Llc | Cache-based trace replay breakpoints using reserved tag field bits |
US10970222B2 (en) * | 2019-02-28 | 2021-04-06 | Micron Technology, Inc. | Eviction of a cache line based on a modification of a sector of the cache line |
US20220374431A1 (en) * | 2021-05-21 | 2022-11-24 | Oracle International Corporation | Techniques for a deterministic distributed cache to accelerate sql queries |
US11921640B2 (en) * | 2021-08-31 | 2024-03-05 | Apple Inc. | Mitigating retention of previously-critical cache lines |
US11886342B2 (en) * | 2021-12-01 | 2024-01-30 | International Business Machines Corporation | Augmenting cache replacement operations |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5812816A (en) * | 1995-06-02 | 1998-09-22 | Sun Microsystems, Inc. | System and method for transferring data between memories of different types occupying a single real address space using a dedicated memory transfer bus |
CN1728111A (zh) * | 2004-07-30 | 2006-02-01 | 惠普开发有限公司 | 清除而不用写回包含失效数据的高速缓存行 |
CN1955948A (zh) * | 2005-10-26 | 2007-05-02 | 国际商业机器公司 | 用于管理高速缓存数据的数字数据处理设备和方法 |
US20120254550A1 (en) * | 2011-04-01 | 2012-10-04 | Jayesh Gaur | Bypass and insertion algorithms for exclusive last-level caches |
US20160055100A1 (en) * | 2014-08-19 | 2016-02-25 | Advanced Micro Devices, Inc. | System and method for reverse inclusion in multilevel cache hierarchy |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070186045A1 (en) * | 2004-07-23 | 2007-08-09 | Shannon Christopher J | Cache eviction technique for inclusive cache systems |
US20060155934A1 (en) * | 2005-01-11 | 2006-07-13 | Ramakrishnan Rajamony | System and method for reducing unnecessary cache operations |
US7774549B2 (en) * | 2006-10-11 | 2010-08-10 | Mips Technologies, Inc. | Horizontally-shared cache victims in multiple core processors |
US9058272B1 (en) * | 2008-04-25 | 2015-06-16 | Marvell International Ltd. | Method and apparatus having a snoop filter decoupled from an associated cache and a buffer for replacement line addresses |
US8782348B2 (en) | 2008-09-09 | 2014-07-15 | Via Technologies, Inc. | Microprocessor cache line evict array |
US8949540B2 (en) | 2009-03-11 | 2015-02-03 | International Business Machines Corporation | Lateral castout (LCO) of victim cache line in data-invalid state |
US8285936B2 (en) | 2009-10-20 | 2012-10-09 | The Regents Of The University Of Michigan | Cache memory with power saving state |
US9176879B2 (en) | 2013-07-19 | 2015-11-03 | Apple Inc. | Least recently used mechanism for cache line eviction from a cache memory |
US9990289B2 (en) * | 2014-09-19 | 2018-06-05 | Advanced Micro Devices, Inc. | System and method for repurposing dead cache blocks |
US9836399B2 (en) * | 2015-03-27 | 2017-12-05 | Intel Corporation | Mechanism to avoid hot-L1/cold-L2 events in an inclusive L2 cache using L1 presence bits for victim selection bias |
-
2016
- 2016-06-13 US US15/180,807 patent/US10152425B2/en active Active
- 2016-09-14 KR KR1020187035192A patent/KR102453192B1/ko active IP Right Grant
- 2016-09-14 CN CN201680086077.2A patent/CN109154912B/zh active Active
- 2016-09-14 EP EP16905671.0A patent/EP3433743B1/en active Active
- 2016-09-14 JP JP2018555745A patent/JP6630449B2/ja active Active
- 2016-09-14 WO PCT/US2016/051661 patent/WO2017218022A1/en active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5812816A (en) * | 1995-06-02 | 1998-09-22 | Sun Microsystems, Inc. | System and method for transferring data between memories of different types occupying a single real address space using a dedicated memory transfer bus |
CN1728111A (zh) * | 2004-07-30 | 2006-02-01 | 惠普开发有限公司 | 清除而不用写回包含失效数据的高速缓存行 |
CN1955948A (zh) * | 2005-10-26 | 2007-05-02 | 国际商业机器公司 | 用于管理高速缓存数据的数字数据处理设备和方法 |
US20120254550A1 (en) * | 2011-04-01 | 2012-10-04 | Jayesh Gaur | Bypass and insertion algorithms for exclusive last-level caches |
US20160055100A1 (en) * | 2014-08-19 | 2016-02-25 | Advanced Micro Devices, Inc. | System and method for reverse inclusion in multilevel cache hierarchy |
Also Published As
Publication number | Publication date |
---|---|
EP3433743B1 (en) | 2023-02-15 |
US20170357446A1 (en) | 2017-12-14 |
KR102453192B1 (ko) | 2022-10-11 |
WO2017218022A1 (en) | 2017-12-21 |
CN109154912A (zh) | 2019-01-04 |
US10152425B2 (en) | 2018-12-11 |
KR20190008269A (ko) | 2019-01-23 |
EP3433743A4 (en) | 2019-11-06 |
JP2019517689A (ja) | 2019-06-24 |
EP3433743A1 (en) | 2019-01-30 |
JP6630449B2 (ja) | 2020-01-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109154912B (zh) | 根据另一个高速缓存中条目的可用性替换高速缓存条目 | |
KR102665339B1 (ko) | 변환 색인 버퍼 축출 기반 캐시 교체 | |
US6725341B1 (en) | Cache line pre-load and pre-own based on cache coherence speculation | |
US6704843B1 (en) | Enhanced multiprocessor response bus protocol enabling intra-cache line reference exchange | |
US6601144B1 (en) | Dynamic cache management in a symmetric multiprocessor system via snoop operation sequence analysis | |
US10725923B1 (en) | Cache access detection and prediction | |
US20060064547A1 (en) | Method and apparatus for run-ahead victim selection to reduce undesirable replacement behavior in inclusive caches | |
US7197605B2 (en) | Allocating cache lines | |
US11507519B2 (en) | Data compression and encryption based on translation lookaside buffer evictions | |
US20180113815A1 (en) | Cache entry replacement based on penalty of memory access | |
US6721856B1 (en) | Enhanced cache management mechanism via an intelligent system bus monitor | |
CN103076992A (zh) | 一种内存数据缓冲方法及装置 | |
CN109478164B (zh) | 用于存储用于高速缓存条目传输的高速缓存位置信息的系统和方法 | |
US8473686B2 (en) | Computer cache system with stratified replacement | |
US10452548B2 (en) | Preemptive cache writeback with transaction support | |
EP3485381A1 (en) | System and method for identifying pendency of a memory access request at a cache entry | |
US20170357585A1 (en) | Setting cache entry age based on hints from another cache level | |
US11334488B2 (en) | Cache management circuits for predictive adjustment of cache control policies based on persistent, history-based cache control information | |
US6631450B1 (en) | Symmetric multiprocessor address bus protocol with intra-cache line access information | |
CN112955877B (zh) | 修改存储数据的装置和方法 | |
US10534721B2 (en) | Cache replacement policy based on non-cache buffers |
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 |