CN110998547A - 筛选被预测为到达即死(doa)的经逐出高速缓冲条目到高速缓冲存储器系统的最后层级高速缓冲(llc)存储器中的插入 - Google Patents
筛选被预测为到达即死(doa)的经逐出高速缓冲条目到高速缓冲存储器系统的最后层级高速缓冲(llc)存储器中的插入 Download PDFInfo
- Publication number
- CN110998547A CN110998547A CN201880048084.2A CN201880048084A CN110998547A CN 110998547 A CN110998547 A CN 110998547A CN 201880048084 A CN201880048084 A CN 201880048084A CN 110998547 A CN110998547 A CN 110998547A
- Authority
- CN
- China
- Prior art keywords
- level cache
- memory
- cache
- entry
- llc
- 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.)
- Pending
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/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/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/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/122—Replacement control using replacement algorithms of the least frequently used [LFU] type, e.g. with individual count value
-
- 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/0877—Cache access modes
- G06F12/0879—Burst mode
-
- 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
本发明揭示筛选被预测为到达即死DOA的经逐出高速缓冲条目到最后层级高速缓冲LLC存储器中的插入。较低层级高速缓冲存储器更新与DOA预测电路中的所请求高速缓冲条目相关联的DOA预测值,所述DOA预测值指示高速缓冲条目重新使用历史记录。基于所述较低层级高速缓冲存储器中对所述所请求高速缓冲条目的高速缓冲未命中是否由所述LLC存储器服务,更新所述DOA预测值以指示所述所请求高速缓冲条目是否在所述LLC存储器中被重新使用。随后,在从所述较低层级高速缓冲存储器逐出所述所请求高速缓冲条目时,可以咨询所述相关联DOA预测值以预测所述高速缓冲条目是否将为DOA。如果所述高速缓冲条目将为DOA,那么对所述LLC存储器进行筛选,以将所述经逐出高速缓冲条目存储在系统存储器中或插入在所述LLC存储器中最近较少使用位置。
Description
优先权申请案
本申请案主张在2017年7月26日提出申请且标题为“筛选被预测为到达即死(DOA)的经逐出高速缓冲条目到高速缓冲存储器系统的最后层级高速缓冲(LLC)存储器中的插入(FILTERING INSERTION OF EVICTED CACHE ENTRIES PREDICTED AS DEAD-ON-ARRIVAL(DOA)INTO A LAST LEVEL CACHE(LLC)MEMORY OF A CACHE MEMORY SYSTEM)”的美国专利申请案第15/660,006号的优先权,所述美国专利申请案的内容以全文引用的方式并入本文中。
技术领域
本发明的技术通常涉及提供在计算机系统中的高速缓冲存储器系统,且更特定来说涉及高速缓冲存储器系统中的较低层级高速缓冲存储器与最后层级高速缓冲(LLC)存储器之间的存取和逐出。
背景技术
存储器单元为计算机数据存储装置(其也被称为“存储器”)的基本构建块。计算机系统可以从存储器读取数据或将数据写入到存储器。作为实例,可以使用存储器在中央处理单元(CPU)系统中提供高速缓冲存储器。高速缓冲存储器(Cache memory,其也可以仅被称为“cache”)是一种更小、更快的存储器,所述存储器将存储在频繁存取的存储器地址处的数据的副本存储在主存储器或更高层级高速缓冲存储器中,以减少存储器存取等待时间。因此,CPU可以使用高速缓冲存储器来减少存储器存取时间。例如,高速缓冲存储器可用于存储由CPU提取的指令,以便更快地执行指令。作为另一实例,高速缓冲存储器可以用于存储待由CPU提取的数据,以便更快地进行数据存取。
高速缓冲存储器由标记阵列和数据阵列组成。标记阵列包含地址,也被称为“标记”。所述标记提供到数据阵列中的数据存储位置的索引。标记阵列中的标记和存储在数据阵列中标记索引处的数据也被称为“高速缓冲行”或“高速缓冲条目”。如果作为存储器存取请求的一部分经提供为高速缓冲存储器的索引的存储器地址或其一部分与标记阵列中的标记匹配,那么者被称为“高速缓冲命中”。高速缓冲命中是指数据阵列中的包含在匹配标记索引处的数据包含与主存储器和/或较低层级高速缓冲存储器中的所请求存储地址相对应的数据。与必须存取主存储器或具有更大存储器存取等待时间的更高层级的高速缓冲存储器相反,包含在数据阵列中在匹配标记的索引处的数据可用于存储器存取请求。然而,如果存储器存取请求的索引与标记阵列中的标记不匹配,或如果高速缓冲行在另一方面无效,那么这被称为“高速缓冲未命中”。在高速缓冲未命中时,数据阵列被视为不包含可以满足存储器存取请求的数据。高速缓冲未命中将触发查询以确定关于存储器地址的数据是否包含在更高层级高速缓冲存储器中。如果所有高速缓冲存储器均未命中,将从系统存储器(例如,动态随机存取存储器(DRAM))中存取数据。
可以在CPU系统中提供包含多个层级高速缓冲存储器的多层级高速缓冲存储器系统。多层级高速缓冲存储系统可以为包含性或排他性的最后层级高速缓冲存储器(LLC)。如果高速缓冲存储器系统为包含性LLC,那么较低层级高速缓冲存储器中的高速缓冲数据条目的副本也包含在LLC存储器中。LLC存储器为在存取系统或主存储器之前存取的高速缓冲存储器。然而,如果高速缓冲存储器系统为排他性LLC,那么存储在较低层级高速缓冲存储器中的经高速缓冲数据条目未存储在LLC存储器中,以维持较低层级高速缓冲存储器与LLC存储器之间的排他性。由于不通过在高速缓冲存储器层次的多个层级中复制经高速缓冲数据条目而获得容量优势,因此采用了排他性LLC而非包含性LLC。排他性LLC还可以展现出比包含性LLC显著的性能优势,因为在包含性LLC中,基于其替换策略从LLC存储器逐出会强制将所述高速缓冲行从内部层级高速缓冲存储器逐出,而无需知道是否将重新使用所述高速缓冲行。然而,排他性LLC与包含性LLC可能具有性能劣势。在排他性LLC中,且与包含性LLC不同,在由于来自较低层级高速缓冲存储器的请求而引起的LLC存储器的高速缓冲命中时,LLC存储器中的所存取高速缓冲行从LLC存储取消分配以维持排他性。
在包容性LLC或排他性LLC任一状况下,如果在从LLC存储器逐出高速缓冲行之前,未重新使用LLC存储器中的已安装高速缓冲行,那么高速缓冲行为“死的”。“死”高速缓冲行为在重新使用高速缓冲行之前已安装在高速缓冲存储器中并从高速缓冲存储器逐出的高速缓冲行。例如,对于其中相同存储器位置未被重新存取的流式处理应用程序,或当特定存储器位置未被频繁重新存取使得在重新使用之前逐出用于存储器位置的高速缓冲条目时,可能会出现“死”高速缓冲行。因此,由于从较低别高速缓冲存储器逐出以实现高速缓冲行的一次性安装,因此任何LLC存储器中的“死”高速缓冲行引致安装高速缓冲行的额外开销。安装在LLC存储器中的死高速缓冲行消耗空间,而不会带来重新使用的额外好处。
发明内容
本文中揭示的方面包含筛选被预测为到达即死(DOA)的经逐出高速缓冲条目到高速缓冲存储器系统的最后层级高速缓冲存储器(LLC)存储器中的插入。DOA高速缓冲条目为高速缓冲条目(即,高速缓冲行),所述高速缓冲条目经安装且在重新使用所述高速缓冲条目之前从高速缓冲存储器逐出。DOA高速缓冲条目浪费了高速缓冲存储器中的空间,而没有获得重新使用的好处。响应于较低层级高速缓冲存储器的高速缓冲未命中,较低层级高速缓冲存储器存取LLC存储器以获得所请求高速缓冲条目。如果LLC存储器中发生针对所请求高速缓冲条目的高速缓冲命中,那么所述高速缓冲条目由LLC存储器供应,这意味着所述高速缓冲条目在从LLC存储器被逐出之前被重新使用。然而,如果LLC存储器中发生针对所请求高速缓冲条目的高速缓冲未命中,那么所述高速缓冲条目由系统存储器供应,这意味着所述高速缓冲条目在其从LLC存储器被逐出之前未被重新使用。
在本文中所揭示的示范性方面中,较低层级高速缓冲存储器经配置以更新指示高速缓冲条目的重新使用历史记录的与DOA预测电路中的所请求高速缓冲条目相关联的DOA预测值。如果由于较低层级高速缓冲存储器的高速缓冲未命中而导致所请求高速缓冲条目由系统存储器服务,那么DOA预测值经更新以指示未重新使用所请求高速缓冲条目。如果由于到较低层级高速缓冲存储器的高速缓冲未命中而导致所请求高速缓冲条目由LLC存储器服务,那么DOA预测值经更新以指示在LLC存储器中重新使用高速缓冲条目。因此,随后在从较低层级高速缓冲存储器逐出所请求高速缓冲条目时,可以咨询与经逐出高速缓冲条目相关联的DOA预测电路中的DOA预测值,以预测高速缓冲条目是否为DOA。在本文中所揭示的某些方面中,如果经逐出高速缓冲条目被预测为DOA,那么对LLC存储器进行筛选且更具体地绕过所述LLC存储器,且经逐出高速缓冲条目在脏的情况下被逐出到系统存储器(且在干净的情况下被悄悄地逐出)以避免浪费LLC存储器中的空间用于所预测DOA高速缓冲条目。绕过从LLC存储器插入经逐出高速缓冲条目可以避免在LLC存储器中安装经逐出高速缓冲条目的额外开销。在本文中所揭示的其它方面中,如果经逐出高速缓冲条目被预测为DOA,那么对LLC存储器进行筛选以将经逐出高速缓冲条目安装在LLC存储器中的最近较少使用的高速缓冲条目中,以减少或避免逐出最近较多使用的高速缓冲条目。
对于排他性LLC,提供DOA预测电路以预测经逐出较低层级高速缓冲条目在LLC存储器中是否为DOA。这是因为在排他性LLC中,LLC存储器中的高速缓冲条目在其第一次重新使用高速缓冲条目(即,高速缓冲命中)时便被取消分配,以维持排他性。响应于排他性LLC存储器中的高速缓冲条目的高速缓冲命中,所述高速缓冲条目从LLC存储器中取消分配且安装在较低层级高速缓冲存储器中。这不会在LLC存储器中留下任何重新使用历史记录以供咨询来确定高速缓冲条目被重新使用。可以采用本文中所揭示的方面来提供DOA预测电路,以在排他性LLC存储器中维持高速缓冲条目的重新使用历史记录,以使得可以咨询此重新使用历史记录以确定是否应对LLC存储器进行筛选以查找经逐出较低层级高速缓冲条目。
就此来说,在一个示范性方面中,提供一种高速缓冲存储器系统。所述高速缓冲存储器系统包括较低层级高速缓冲存储器,所述较低层级高速缓冲存储器经配置以存储多个较低层级高速缓冲条目,每一较低层级高速缓冲条目表示系统存储器中的系统数据条目。较低层级高速缓冲存储器经配置以将多个较低层级高速缓冲条目中的较低层级高速缓冲条目逐出到LLC存储器。较低层级高速缓冲存储器还经配置以响应于较低层级高速缓冲存储器的高速缓冲未命中而从LLC存储器接收最后层级高速缓冲条目。高速缓冲存储器系统也包括LLC存储器,所述LLC存储器经配置以存储多个最后层级高速缓冲条目,每一最后层级高速缓冲条目表示系统存储器中的数据条目。LLC存储器经配置以基于经逐出较低层级高速缓冲条目的地址,将来自较低层级高速缓冲存储器的经逐出较低层级高速缓冲条目插入在多个较低层级高速缓冲条目中的最后层级高速缓冲条目中。LLC存储器还经配置以将最后层级高速缓冲条目逐出到系统存储器。LLC存储器还经配置以响应于LLC存储器的高速缓冲未命中而从系统存储器接收系统数据条目。高速缓冲存储器系统还包括DOA预测电路,所述DOA预测电路包括与多个较低层级高速缓冲条目相关联的一或多个DOA预测寄存器,每一DOA寄存器均经配置以存储DOA预测值,所述DOA预测值指示多个较低层级高速缓冲条目是否被预测为死于LLC存储器。较低层级高速缓冲存储器经配置以将较低层级高速缓冲条目逐出到LLC存储器。响应于从较低层级高速缓冲存储器逐出较低层级高速缓冲条目,高速缓冲存储器系统经配置以存取与经逐出较低层级高速缓冲条目相关联的一或多个DOA预测寄存器中的DOA预测寄存器中的DOA预测值,且基于所存取DOA预测值确定经逐出较低层级高速缓冲条目是否被预测为死于LLC存储器,及响应于确定经逐出较低层级高速缓冲条目被预测为死于LLC存储器,在LLC存储器中筛选经逐出较低层级高速缓冲条目。
在另一示范性方面中,提供一种在高速缓冲存储器系统中逐出较低层级高速缓冲条目的方法。所述方法包括将多个较低层级高速缓冲条目中的较低层级高速缓冲条目从较低层级高速缓冲存储器逐出到LLC存储器。所述方法还包括存取与经逐出较低层级高速缓冲条目相关联的一或多个DOA预测寄存器中的DOA预测寄存器中的DOA预测值。所述方法还包括基于所存取DOA预测值来确定经逐出较低层级高速缓冲条目是否被预测为死于LLC存储器。响应于确定经逐出较低层级高速缓冲条目被预测为死于LLC存储器,所述方法还包括在LLC存储器中筛选经逐出较低层级高速缓冲条目。
在另一示范性方面中,提供一种LLC存储器。LLC存储器包括最后层级高速缓冲存储器,所述最后层级高速缓冲存储器经配置以存储多个最后层级高速缓冲条目,每一最后层级高速缓冲条目表示系统存储器中的数据条目。LLC存储器还包括LLC控制器。LLC控制器经配置以从较低层级高速缓冲接收经逐出较低层级高速缓冲条目。LLC控制器还经配置以基于经逐出较低层级高速缓冲条目的地址,将所接收经逐出较低层级高速缓冲条目插入在多个较低层级高速缓冲条目中的最后层级高速缓冲条目中。LLC控制器经配置以将最后层级高速缓冲条目逐出到系统存储器。LLC控制器还经配置以响应于LLC存储器的高速缓冲未命中而从系统存储器接收系统数据条目。响应于从较低层级高速缓冲条目接收的经逐出较低层级高速缓冲存储器,LLC控制器经配置以存取与经逐出较低层级高速缓冲条目相关联的一或多个DOA预测寄存器中的DOA预测寄存器中的DOA预测值,且基于所存取DOA预测值确定经逐出较低层级高速缓冲条目是否被预测为死于LLC存储器,及响应于确定经逐出较低层级高速缓冲条目被预测为死于LLC存储器,在多个较低层级高速缓冲条目中的最后层级高速缓冲条目中筛选经逐出较低层级高速缓冲条目。
在另一示范性方面中,提供一种较低层级高速缓冲存储器。较低层级高速缓冲存储器包括较低层级高速缓冲存储器,所述较低层级高速缓冲存储器包括多个较低层级高速缓冲条目,每一较低层级高速缓冲条目表示系统存储器中的系统数据条目。较低层级高速缓冲存储器还包括较低层级高速缓冲存储器控制器。较低层级高速缓冲存储器控制器经配置以将多个较低层级高速缓冲条目中的较低层级高速缓冲条目逐出到最后层级高速缓冲(LLC)存储器。较低层级高速缓冲存储器控制器还经配置以响应于较低层级高速缓冲存储器的高速缓冲未命中而从LLC存储器接收最后层级高速缓冲条目。较低层级高速缓冲存储器控制器还经配置以接收存取较低层级高速缓冲存储器中的多个较低层级高速缓冲条目中的较低层级高速缓冲条目的请求。较低层级高速缓冲存储器控制器还经配置以响应于所请求较低层级高速缓冲条目不存在于较低层级高速缓冲存储器中而生成较低层级高速缓冲未命中。响应于较低层级高速缓冲未命中,较低层级高速缓冲存储器控制器经配置以确定与所请求较低层级高速缓冲条目的存储器地址相关联的所接收数据条目是否由系统存储器服务,及基于所接收数据条目是否由系统存储器服务的确定,更新与所请求较低层级高速缓冲条目相关联的一或多个DOA预测寄存器中的DOA预测寄存器中的DOA预测值。
附图说明
图1为示范性处理器系统的框图,所述示范性处理器系统包含多个中央处理单元(CPU)和存储器系统,所述存储器系统包含高速缓冲存储系统,所述高速缓冲存储系统包含本地和共享高速缓冲存储器的层次,所述本地和共享高速缓冲存储器包含最后层级高速缓冲(LLC)存储器和系统存储器;
图2为说明示范性存储器未命中服务简档的图表,所述图表依据所请求高速缓冲条目的存储器区域指示图1的高速缓冲存储器系统中的较低层级高速缓冲存储器中的所请求高速缓冲条目的高速缓冲未命中是由LLC存储器还是系统存储器服务;
图3为可以在图1中的处理器系统中提供的示范性高速缓冲存储器系统的框图,其中高速缓冲存储器系统经配置以更新到达即死(DOA)预测电路,所述到达即死(DOA)预测电路指示从较低层级高速缓冲存储器逐出的较低层级高速缓冲条目是否在LLC存储器中被预测为DOA,且筛选被预测为DOA的经逐出较低层级高速缓冲条目在LLC存储器中的插入;
图4为说明示范性过程的流程图,所述过程响应于从高速缓冲存储器系统中的较低层级高速缓冲存储器逐出高速缓冲条目而咨询图3中的DOA预测电路中的DOA预测值以预测经逐出高速缓冲条目是否为DOA,并确定是否应筛选出LLC存储器以查找经逐出高速缓冲条目的插入;
图5为说明示范性过程的流程图,所述过程响应于高速缓冲存储器系统中的较低层级高速缓冲存储器中的高速缓冲未命中而更新与图3的DOA预测电路中的所请求高速缓冲条目相关联的DOA预测值;
图6为示范性DOA预测电路的框图,所述DOA预测电路可以用于图3的高速缓冲存储器系统中以存储与高速缓冲条目相关联的DOA预测值,所述DOA预测值指示高速缓冲条目将被重新使用还是未被重新使用且为死的;
图7A说明示范性基于地址的条目,所述基于地址的条目由于采用DOA预测电路的图3中的高速缓冲存储器系统中的较低层级高速缓冲存储器的高速缓冲未命中而被插入到图6的DOA预测电路中;
图7B说明示范性基于程序计数器的条目,所述基于程序计数器的条目由于采用DOA预测电路的图3中的高速缓冲存储器系统中的较低层级高速缓冲存储器的高速缓冲未命中而被插入到图6的DOA预测电路中;
图8为另一示范性标记DOA预测电路的框图,所述标记DOA预测电路可以用于图3的高速缓冲存储器系统中以存储与高速缓冲条目相关联的DOA预测值,所述DOA预测值指示高速缓冲条目将被重新使用还是未被重新使用且为死的;
图9A说明示范性基于地址的条目,所述基于地址的条目由于采用标记DOA预测电路的图3中的高速缓冲存储器系统中的较低层级高速缓冲存储器的高速缓冲未命中而被插入到图8的标记DOA预测电路中;
图9B说明示范性基于PC的条目,所述基于PC的条目由于采用标记DOA预测电路的图3中的高速缓冲存储器系统中的较低层级高速缓冲存储器的高速缓冲未命中而被插入到图8的标记DOA预测电路中;
图10说明示范性LLC高速缓冲存储器,所述LLC高速缓冲存储器可以被包含在图3中的高速缓冲存储器系统中,且其包含随动高速缓冲存储器组和与经逐出高速缓冲条目插入策略相关联的竞争专用高速缓冲存储器组,其中LLC存储器经配置以响应于较低层级高速缓冲存储器的高速缓冲未命中,基于插入策略电路中的插入策略值将插入策略应用于从较低层级高速缓冲存储器逐出的高速缓冲条目,所述插入策略值是由LLC存储器基于每一专用高速缓冲存储器组的竞争高速缓冲未命中进行更新;及
图11为示范性基于处理器的系统的框图,所述基于处理器的系统包含高速缓冲存储器系统,所述高速缓冲存储器系统经配置以筛选被预测为DOA的经逐出高速缓冲条目在LLC存储器中的插入。
具体实施方式
现在参考图式图,描述本发明的数个示范性方面。措词“示范性”在本文中用于意指“用作实例、例子或说明”。本文中描述为“示范性”的任一方面未必解释为比其它方面较佳或有利。
本文中揭示的方面包含筛选被预测为到达即死(DOA)的经逐出高速缓冲条目到高速缓冲存储器系统的最后层级高速缓冲存储器(LLC)存储器中的插入。DOA高速缓冲条目为高速缓冲条目(即,高速缓冲行),所述高速缓冲条目经安装且在重新使用所述高速缓冲条目之前从高速缓冲存储器逐出。DOA高速缓冲条目浪费了高速缓冲存储器中的空间,而没有获得重新使用的好处。响应于较低层级高速缓冲存储器的高速缓冲未命中,较低层级高速缓冲存储器存取LLC存储器以获得所请求高速缓冲条目。如果LLC存储器中发生针对所请求高速缓冲条目的高速缓冲命中,那么所述高速缓冲条目由LLC存储器供应,这意味着所述高速缓冲条目在从LLC存储器被逐出之前被重新使用。然而,如果LLC存储器中发生针对所请求高速缓冲条目的高速缓冲未命中,那么所述高速缓冲条目由系统存储器供应,这意味着所述高速缓冲条目在其从LLC存储器被逐出之前未被重新使用。
在本文中所揭示的示范性方面中,较低层级高速缓冲存储器经配置以更新指示高速缓冲条目的重新使用历史记录的与DOA预测电路中的所请求高速缓冲条目相关联的DOA预测值。如果由于较低层级高速缓冲存储器的高速缓冲未命中而导致所请求高速缓冲条目由系统存储器服务,那么DOA预测值经更新以指示未重新使用所请求高速缓冲条目。如果由于到较低层级高速缓冲存储器的高速缓冲未命中而导致所请求高速缓冲条目由LLC存储器服务,那么DOA预测值经更新以指示在LLC存储器中重新使用高速缓冲条目。因此,随后在从较低层级高速缓冲存储器逐出所请求高速缓冲条目时,可以咨询与经逐出高速缓冲条目相关联的DOA预测电路中的DOA预测值,以预测高速缓冲条目是否为DOA。在本文中所揭示的某些方面中,如果经逐出高速缓冲条目被预测为DOA,那么对LLC存储器进行筛选且更具体地绕过所述LLC存储器,且经逐出高速缓冲条目在脏的情况下被逐出到系统存储器(且在干净的情况下被悄悄地逐出)以避免浪费LLC存储器中的空间用于所预测DOA高速缓冲条目。绕过从LLC存储器插入经逐出高速缓冲条目可以避免在LLC存储器中安装经逐出高速缓冲条目的额外开销。在本文中所揭示的其它方面中,如果经逐出高速缓冲条目被预测为DOA,那么对LLC存储器进行筛选以将经逐出高速缓冲条目安装在LLC存储器中的最近较少使用的高速缓冲条目中,以减少或避免逐出最近较多使用的高速缓冲条目。
对于排他性LLC,提供DOA预测电路以预测经逐出较低层级高速缓冲条目在LLC存储器中是否为DOA。这是因为在排他性LLC中,LLC存储器中的高速缓冲条目在其第一次重新使用高速缓冲条目(即,高速缓冲命中)时便被取消分配,以维持排他性。响应于排他性LLC存储器中的高速缓冲条目的高速缓冲命中,所述高速缓冲条目从LLC存储器中取消分配且安装在较低层级高速缓冲存储器中。这不会在LLC存储器中留下任何重新使用历史记录以供咨询来确定高速缓冲条目被重新使用。可以采用本文中所揭示的方面来提供DOA预测电路,以在排他性LLC存储器中维持高速缓冲条目的重新使用历史记录,以使得可以咨询此重新使用历史记录以确定是否应对LLC存储器进行筛选以查找经逐出较低层级高速缓冲条目。
就此来说,图1为示范性处理器系统100的框图,处理器系统100包含多个中央处理单元(CPU)102(0)到102(N)和用于将高速缓冲数据条目与数据存储在系统存储器106中的高速缓冲存储器系统104。在此实例中,高速缓冲存储器系统104包含本地私有高速缓冲存储器108(0)到108(N)、本地公共高速缓冲存储器110(0)到110(N)以及LLC存储器114的层次,所述本地私有高速缓冲存储器与每一相应CPU 102(0)到102(N)在芯片上且仅可由每一相应CPU 102(0)到102(N)存取,所述本地公共高速缓冲存储器形成可由所有CPU 102(0)到102(N)存取的共享较低层级高速缓冲存储器112。LLC存储器114为在存储器存取到达系统存储器106之前的高速缓冲存储器的最后层级。例如,系统存储器106可以为动态读取存取存储器(DRAM)。作为实例,本地私有高速缓冲存储器108(0)到108(N)可以是层级1(L1)高速缓冲存储器,共享较低层级高速缓冲存储器112可以为界别2(L2)高速缓冲存储器,且LLC存储器114可以为层级3(L3)高速缓冲存储器。LLC存储器114可以为排他性LLC存储器,其在LLC存储器114与共享较低层级高速缓冲存储器112之间维持高速缓冲条目的排他性。替代地,LLC存储器114可以为包含性LLC存储器,其允许将相同的高速缓冲条目存储在LLC存储器114和较低层级高速缓冲存储器112中。提供内部系统总线116,其可为相干总线,其允许CPU 102(0)到102(N)中的每一个存取LLC存储器114以及其它共享资源。CPU 102(0)到102(N)可通过内部系统总线116存取的其它共享资源可包含用于存取系统存储器106的存储器控制器118、外围设备120及直接存储器存取(DMA)控制器122。
继续参考图1,如果对本地私有高速缓冲存储器108(0)到108(N)的数据读取操作导致高速缓冲未命中,那么正在请求的CPU 102(0)到102(N)将数据读取操作提供到下一层级高速缓冲存储器,其在此实例中为本地公共高速缓冲存储器110(0)到110(N)。如果数据读取操作然后导致较低层级高速缓冲存储器112中的高速缓冲未命中,那么将数据读取操作转发到LLC存储器114。如果数据读取操作导致LLC存储器114中的高速缓冲命中,那么LLC存储器114将与数据读取操作的存储器地址相关联的高速缓冲条目(例如,高速缓冲行)提供到较低层级高速缓冲存储器112。如果LLC存储器114为排他性LLC存储器,那么使与LLC存储器114中的数据读取操作的存储器地址相关联的高速缓冲条目无效以维持LLC存储器114和较低层级高速缓冲存储器112之间的高速缓冲条目的排他性。然而,如果数据读取操作导致LLC存储器114中的高速缓冲命中,那么通过存储器控制器118将数据读取操作转发到系统存储器106。如果LLC存储器114为排他性LLC存储器,那么然后将与数据读取操作的存储器地址相对应的数据条目从存储器控制器118转发到较低层级高速缓冲存储器112以维持排他性。然而,如果LLC存储器114为包含性LLC存储器,那么将与数据读取操作的存储器地址相对应的数据条目从存储器控制器118转发到LLC存储器114,LLC存储器114然后还将所述数据条目转发到较低层级高速缓冲存储器112。
继续参考图1,响应于较低层级高速缓冲存储器112的高速缓冲未命中,较低层级高速缓冲存储器112逐出其中所存储高速缓冲条目,以为从LLC存储器114或系统存储器106接收的新高速缓冲条目腾出空间。较低层级高速缓冲存储器112将其中所存储高速缓冲条目逐出到LLC存储器114。LLC存储器114可以作为响应将LLC存储器114中所存储高速缓冲存储器逐出到系统存储器106。在包含性或排他性LLC存储器114的任一状况下,如果LLC存储器114中所安装高速缓冲条目在将所述高速缓冲条目从LLC存储器114逐出之前未被重新使用,那么所述高速缓冲条目为“死的”。“死”高速缓冲条目为在重新使用高速缓冲行之前已安装在高速缓冲存储器中并从高速缓冲存储器逐出的高速缓冲条目。例如,对于其中相同存储器位置未被重新存取的流式处理应用程序,或当特定存储器位置未被频繁重新存取使得在重新使用之前从LLC存储器114逐出用于存储器位置的高速缓冲条目时,在LLC存储器114中可能会出现“死”高速缓冲行。因此,由于从较低别高速缓冲存储器112逐出以实现高速缓冲条目在LLC存储器114中的一次性安装,因此LLC存储器114中的“死”高速缓冲条目引致安装高速缓冲条目的额外开销。
继续参考图1,如果在较低层级高速缓冲存储器112中引致的高速缓冲未命中由LLC存储器114服务,那么这意味着LLC存储器114中的高速缓冲条目被重新使用,且因此不是死高速缓冲条目。然而,如果在较低层级高速缓冲存储器112中引致的高速缓冲未命中代替地由系统存储器106服务,那么这是LLC存储器114引致高速缓冲未命中的指示。因此,如果较低层级高速缓冲存储器112将高速缓冲条目逐出到LLC存储器114,所述高速缓冲条目最终成为死高速缓冲条目(即,在从LLC存储器114取消分配之前未被重新使用),那么死高速缓冲条目为不必要地消耗了LLC存储器114中的空间,从而导致高速缓冲污染。此外,当在LLC存储器114中分配死高速缓冲条目时,在将LLC存储器114中的另一高速缓冲条目取消分配到系统存储器106以为死高速缓冲条目腾出空间时引致额外开销,因此导致高速缓冲存储器系统104中的性能的低效率。因此,在本文中所揭示的方面中,通过预测从较低层级高速缓冲存储器112逐出的高速缓冲条目是将被重新使用,还是将不被重新使用且因此在LLC存储器114中为死的,此信息可用于确定是否应对经逐出高速缓冲条目进行筛选以安装在LLC存储器114中。例如,如果经逐出高速缓冲条目被预测为DOA,那么在经逐出高速缓冲条目被安装在系统存储器106中的情况下,可以绕过LLC存储器114,以避免消耗LLC存储器114中的空间用于死高速缓冲条目。
此外,对于排他性LLC,能够预测来自较低层级高速缓冲存储器112的高速缓冲条目在LLC存储器114中是否为DOA可能特别有利。这是因为如果LLC存储器114为排他性LLC,那么LLC存储器114中的高速缓冲条目在其第一次重新使用高速缓冲条目(即,高速缓冲命中)时就被取消分配,以维持与较低层级高速缓冲存储器112的排他性。这在LLC存储器114中没有留下任何重新使用历史记录以供咨询来确定LLC存储器114中的高速缓冲条目被重新使用以预测高速缓冲条目是否为DOA。然而,可以从统计学上观察到,响应于较低层级高速缓冲存储器112的高速缓冲未命中,LLC存储器114相对于系统存储器106为图1中的处理器系统100的存储器区域提供服务的频率。就此来说,图2为说明较低层级高速缓冲存储器112中的示范性未命中服务简档的图表200,所述图表指示所请求高速缓冲条目的高速缓冲未命中是由LLC存储器114还是系统存储器106服务。所述未命中服务简档是根据X轴上的存储器区域202以及Y轴上的每一存储器区域202在LLC存储器114或系统存储器106之间服务高速缓冲未命中的百分比划分来用图表表示。如其中所展示,某些存储器区域202主要由LLC存储器114服务,例如存储器区域3和16。另一方面,其它存储器区域202主要由系统存储器106服务,例如存储器区域1和12。可以使用此未命中服务简档来预测从较低层级高速缓冲存储器112逐出的高速缓冲条目在被安装在LLC存储器114中的情况下是否将为DOA。
因此,如下文中更详细地论述,在本文中所揭示的方面中,在从图1中的处理器系统100中的较低层级高速缓冲存储器112逐出所请求高速缓冲条目时,可以预测经逐出高速缓冲条目是否为DOA。在本文中所揭示的某些方面中,如果经逐出高速缓冲条目被预测为DOA,那么对LLC存储器114进行筛选且更具体地绕过所述LLC存储器114,且经逐出高速缓冲条目在脏的情况下被逐出到系统存储器106(且在干净的情况下被无声地逐出)以避免浪费LLC存储器中的空间用于所预测DOA高速缓冲条目。绕过从LLC存储器114插入经逐出高速缓冲条目可以避免在LLC存储器114中安装经逐出高速缓冲条目的额外开销。在本文中所揭示的其它方面中,如果经逐出高速缓冲条目被预测为DOA,那么对LLC存储器114进行筛选以将经逐出高速缓冲条目安装在LLC存储器114中的最近较少使用的高速缓冲条目中,以避免逐出最近较多使用的高速缓冲条目。与逐出最近较少或最少使用的高速缓冲条目相反,避免逐出LLC存储器114中的最近较多使用的高速缓冲条目可以改进高速缓冲存储器系统104的效率。
就此来说,图3为可以在图1中的处理器系统100中提供的高速缓冲存储器系统104的更详细实例的框图。如在下文将更详细地论述,图3中的高速缓冲存储器系统104经配置以筛选从较低层级高速缓冲存储器112逐出的被预测为DOA的较低层级高速缓冲条目在LLA存储器114中的插入。就此来说,图1中的LLC存储器114包含高速缓冲存储器300。在此实例中,高速缓冲存储器300为组相联高速缓冲存储器。高速缓冲存储器300包含标记阵列302和数据阵列304。数据阵列304包含多个最后层级高速缓冲存储器组306(0)到306(M),其中“M+1”等于最后层级高速缓冲存储器组306(0)到306(M)的数目。作为一个实例,可以在数据阵列304中提供1,024个最后层级高速缓冲存储器组306(0)到306(1023)。多个最后层级高速缓冲存储器组306(0)到306(M)中的每一个经配置以将高速缓冲数据存储在一或多个最后层级高速缓冲条目308(0)到308(N)中,其中“N+1”等于每最后层级高速缓冲存储器组306(0)到306(M)的最后层级高速缓冲条目308(0)到308(N)的数目。在高速缓冲存储器系统104中还提供高速缓冲存储器控制器310。高速缓冲存储器控制器310经配置以将来自系统存储器106中的系统数据条目318的系统数据312填充到数据阵列304中。根据系统数据312的存储器地址,将所接收系统数据312作为高速缓冲数据314存储在数据阵列304中的最后层级高速缓冲条目308(0)到308(N)中。以此方式,与必须从系统存储器106获得高速缓冲数据314相反,CPU 102可以存取存储在高速缓冲存储器300中的高速缓冲数据314。
继续参考图3,高速缓冲存储器控制器310还经配置以从较低层级高速缓冲存储器112接收请求316。在较低层级高速缓冲存储器112的高速缓冲未命中,或在将较低层级高速缓冲存储器112中的较低层级高速缓冲条目320逐出到LLC存储器114中的逐出请求的情况下,请求316可以包含存储器存取请求316(1)。对于存储器存取请求316(1),高速缓冲器控制器310使用存储器存取请求316(1)的存储器地址来对高速缓冲存储器300中的标记阵列302加索引。如果存储在由存储器地址加索引的标记阵列302中的索引处的标记与存储器存取请求316(1)中的存储器地址匹配,且所述标记有效,那么发生高速缓冲命中。这意味着与存储器存取请求316(1)的存储器地址相对应的高速缓冲数据314被包含在数据阵列304中的最后层级高速缓冲条目308(0)到308(N)中。作为响应,高速缓冲存储器控制器310致使与存储器存取请求316(1)的存储器地址相对应的经加索引高速缓冲数据314被提供回到较低层级高速缓冲存储器112。如果发生高速缓冲未命中,那么生成高速缓冲未命中作为高速缓冲未命中/命中指示符322,且高速缓冲存储器控制器310将存储器存取请求316(1)转发到系统存储器106。
如上文所论述,如果较低层级高速缓冲存储器112中引致的高速缓冲未命中由LLC存储器114服务,那么这意味着LLC存储器114中的最后层级高速缓冲条目308(0)到308(N)被重新使用,且因此不是死的最后层级高速缓冲条目308(0)到308(N)。然而,如果在较低层级高速缓冲存储器112中引致的高速缓冲未命中代替地由系统存储器106服务,那么这是LLC存储器114引致高速缓冲未命中的指示,这降低高速缓冲存储器系统104的性能。因此,响应于在所接收较低层级高速缓冲未命中请求316(2)中从较低层级高速缓冲存储器112中逐出较低层级高速缓冲条目320,高速缓冲存储器系统104,且在此实例中更具体地高速缓冲存储器控制器310,经配置以预测所接收经逐出较低层级高速缓冲条目320在被安装在LLC存储器114中的情况下是否将为DOA。响应于确定经逐出较低层级高速缓冲条目320被预测为在LLC存储器114中为死的,高速缓冲存储器控制器310经配置以在LLC存储器114中筛选经逐出较低层级高速缓冲条目320。如下文将更详细地论述,在一个实例中,如果经逐出较低层级高速缓冲条目320被预测为DOA,那么可以在经逐出较低层级高速缓冲条目320被安装在系统存储器106中的情况下,绕过LLC存储器114,以避免浪费LLC存储器114中的空间用于死高速缓冲条目。在本文中及下文中所揭示的其它方面中,如果经逐出较低层级高速缓冲条目320被预测为DOA,那么对LLC存储器114进行筛选以将较低层级高速缓冲条目320安装在LLC存储器114的数据阵列304中的最近较少使用的最后层级高速缓冲条目308(0)到308(N)中以减少或避免逐出LLC存储器114中最近较多使用的最后层级高速缓冲条目308(0)到308(N)。
继续参考图3,在此实例中,为了向LLA存储器114提供一种用以允许高速缓冲存储器控制器310预测经逐出较低层级高速缓冲条目320是否为DOA的机制,在高速缓冲存储器系统104中提供DOA预测电路324。DOA预测电路324包含一或多个DOA预测寄存器326(0)到326(P),所述DOA预测寄存器可能与较低层级高速缓冲条目320相关联。DOA预测电路324可以为具有存储器位单元(例如,静态随机存取存储器(SRAM)位单元)以形成DOA预测寄存器326(0)到326(P)中的每一个的存储器表。如在下文将更详细地论述,作为实例,DOA预测电路324可以经组织使得经逐出较低层级高速缓冲条目320的存储器地址或触发较低层级高速缓冲条目320的逐出的加载指令的程序计数器(PC)用于对DOA预测电路324中的DOA预测寄存器326(0)到326(P)加索引。每一DOA预测寄存器326(0)到326(P)经配置以存储DOA预测值328(0)到328(P),所述DOA预测值指示对应较低层级高速缓冲条目320被预测为是否死于LLC存储器114。
如参考图3中的高速缓冲存储器系统104的图4中的示范性过程400中所展示,较低层级高速缓冲存储器112经配置以将较低层级高速缓冲条目320从较低层级高速缓冲存储器112逐出到LLC存储器114(框402)。作为响应,高速缓冲存储器控制器310经配置以存取与所接收经逐出较低层级高速缓冲条目320相关联的一或多个DOA预测寄存器326(0)到326(P)中的DOA预测寄存器326中的DOA预测值328(0)到328(P)(框404)。高速缓冲存储器控制器310经配置以基于与经逐出较低层级高速缓冲条目320相关联的所存取DOA预测值328(0)到328(P),确定经逐出较低层级高速缓冲条目320是否被预测为死于LLC存储器114(框406)。响应于确定经逐出较低层级高速缓冲条目320被预测为死于LLC存储器114,高速缓冲存储器控制器310经配置以在LLC存储器114中筛选经逐出较低层级高速缓冲条目320(框408)。此筛选可以包含例如,绕过LLC存储器114以将经逐出较低层级高速缓冲条目320存储在系统存储器106中,以及将经逐出较低层级高速缓冲条目320存储在高速缓冲存储器300的数据阵列304中的最近较少使用的最后层级高速缓冲条目308(0)到308(N)中。在一个实例中,如果高速缓冲存储器控制器310基于DOA预测电路324中所存取DOA预测值328(0)到328(P),确定经逐出较低层级高速缓冲条目320被预测为从LLC存储器114起为DOA,那么在经逐出较低层级高速缓冲条目320为脏的情况下,高速缓冲存储器控制器310将经逐出较低层级高速缓冲条目320转发到系统存储器106。否则,高速缓冲控制器310可以仅将经逐出较低层级高速缓冲条目320悄悄地逐出到系统存储器106。然而,如果高速缓冲存储器控制器310基于DOA预测电路324中所存取DOA预测值328(0)到328(P),确定经逐出较低层级高速缓冲条目320被预测为并非从LLC存储器114起为DOA,那么高速缓冲存储器控制器310将经逐出较低层级高速缓冲条目320插入到LLC存储器114的高速缓冲存储器300中(框410)。
在图3中的高速缓冲存储器系统104的实例中,高速缓冲存储器系统104中的DOA预测电路324被提供为与LLC存储器114分开的单独电路。这是因为DOA预测电路324通过使用存储在相应DOA预测寄存器326(0)到326(P)中的DOA预测值328(0)到328(P)在LLC存储器114中包含最后层级高速缓冲条目308(0)到308(N)的重新使用历史记录。如果DOA预测值328(0)到328(P)与最后层级高速缓冲条目308(0)到308(N)一起存储在LLC存储器114的高速缓冲存储器300中,那么在最后层级高速缓冲条目308(0)到308(N)被逐出且最后层级高速缓冲条目308(0)到308(N)被覆盖时,最后层级高速缓冲条目308(0)到308(N)的重新使用历史记录将从LLC存储器114丢失。可以在标记阵列302和数据阵列304之外的LLC存储器114中提供DOA预测电路324。DOA预测电路324也可以提供在LLC存储器114的外部。
如上文所论述,DOA预测电路324由高速缓冲存储器控制器310存取,以预测经逐出较低层级高速缓冲条目320是否将在LLC存储器114中为死的。然而,DOA预测电路324也被更新以将重新使用历史记录存储在与经逐出较低层级高速缓冲条目320相关联的LLC存储器114中。就此来说,高速缓冲存储器系统104经配置以在高速缓冲未命中在较低层级高速缓冲存储器112中发生且作为较低层级高速缓冲未命中请求316(2)发送到LLC存储器114时,建立和更新DOA预测寄存器326(0)到326(P)中的DOA预测值328(0)到328(P)。这是因为如先前所论述,如果较低层级高速缓冲未命中请求316(2)导致LLC存储器114中的高速缓冲命中,那么这意味着LLC存储器114能够服务较低层级高速缓冲存储器112中的高速缓冲未命中。因此,重新使用与较低层级高速缓冲未命中请求316(2)的服务相对应的最后层级高速缓冲条目308(0)到308(N)。
就此来说,图5为说明示范性过程500的流程图,所述过程更新与针对图3中的DOA预测电路324中的较低层级高速缓冲条目320的较低层级高速缓冲未命中请求316(2)相关联的DOA预测值328(0)到328(P)。就此来说,较低层级高速缓冲存储器112接收存储器存取请求316(1)以存取较低层级高速缓冲条目320(框502)。如果与存储器存取请求316(1)相关联的较低层级高速缓冲条目320不存在于较低层级高速缓冲存储器112中,那么较低层级高速缓冲存储器112向LLC存储器114生成较低层级高速缓冲未命中请求316(2)(框504)。对应于与较低层级高速缓冲未命中请求316(2)相对应的较低层级高速缓冲条目320的DOA预测电路324中的DOA预测寄存器326(0)到326(P)中的DOA预测值328(0)到328(P)可以经更新以指示此重新使用发生。就此来说,响应于较低层级高速缓冲未命中请求316(2),此实例中的较低层级高速缓冲存储器112经配置以更新与DOA预测电路324中的所请求较低层级高速缓冲条目320相关联的DOA预测寄存器326(0)到326(P)中的DOA预测寄存器326中的DOA预测值328(0)到328(P)(块506)。
如果较低层级高速缓冲未命中请求316(2)导致LLC存储器114中的高速缓冲未命中,那么这意味着较低层级高速缓冲条目320不能由LLC存储器114服务,而是由系统存储器106服务,意味着与较低层级高速缓冲未命中请求316(2)相对应的较低层级高速缓冲条目320在其可以被重新使用之前从LLC存储器114中逐出。对应于与较低层级高速缓冲未命中请求316(2)相对应的较低层级高速缓冲条目320的DOA预测电路324中的DOA预测寄存器326(0)到326(P)中的DOA预测值328(0)到328(P)可以经更新以指示此未重新使用发生。然而,如果较低层级高速缓冲未命中请求316(2)导致LLC存储器114中的高速缓冲命中,那么这意味着较低层级高速缓冲条目320不能由LLC存储器114服务,意味着与较低层级高速缓冲未命中请求316(2)相对应的较低层级高速缓冲条目320在其可以被重新使用之前未从LLC存储器114中逐出。对应于与较低层级高速缓冲未命中请求316(2)相对应的较低层级高速缓冲条目320的DOA预测电路324中的DOA预测寄存器326(0)到326(P)中的DOA预测值328(0)到328(P)可以经更新以指示LLC存储器114中的此重新使用发生。如上文所论述,LLC存储器114中的高速缓冲存储器控制器310例如可以响应于作为较低层级高速缓冲未命中请求316(2)接收在LLC存储器114中的经逐出较低层级高速缓冲条目320来存取DOA预测电路324中的此重新使用历史记录。
可以取决于如何设计以跟踪和更新LLC存储器114中经逐出较低层级高速缓冲条目320的重新使用历史记录,可以将图3中的高速缓冲存储器系统104中的DOA预测电路324提供在不同的电路和不同的架构中。例如,图6说明示范性DOA预测电路324(1),其可以用作图3中的高速缓冲存储器系统104中的DOA预测电路324。DOA预测电路324(1)包含多个DOA预测寄存器326(1)(0)到326(1)(P),所述DOA预测寄存器可以为DOA预测计数器600(0)到600(P),每一计数器各自经配置以存储DOA预测计数602(0)到602(P)作为DOA预测值328(1)(0)到328(1)(P)。DOA预测计数602(0)到602(P)可以由图3中的高速缓冲存储系统104和一个实例中的高速缓冲存储器控制器310用来预测经逐出较低层级高速缓冲条目320是否在LLC存储器114为死的。
例如,如果DOA预测电路324(1)中的所存取DOA预测计数602(0)到602(P)超过预定义的预测计数值,那么经逐出较低层级高速缓冲条目320可以被预测为死的。例如,在响应于较低层级高速缓冲存储器112中的高速缓冲未命中,首先在DOA预测电路324(1)中建立用于较低层级高速缓冲条目320的DOA预测计数602(0)到602(P)时,可以将初始DOA预测计数602(0)到602(P)设置为饱和水平(例如,在DOA预测寄存器326(1)(0)到326(1)(P)为八(8)位长的情况下为355)。然后,在从较低层级高速缓冲存储器112接收到较低层级高速缓冲未命中请求316(2)时,如果在LLC存储器114中也发生用于较低层级高速缓冲未命中请求316(2)的高速缓冲未命中使得较低层级高速缓冲未命中请求316(2)由系统存储器106服务,那么与较低层级高速缓冲未命中请求316(2)相对应的的DOA预测寄存器326(1)(0)到326(1)(P)中的DOA预测计数602(0)到602(P)可以递减。在另一方面,如果高速缓冲未命中为LLC存储器114中的命中且因此由LLC存储器114服务,那么与较低层级高速缓冲未命中请求316(2)相对应的DOA预测寄存器326(1)(0)到326(1)(P)中的DOA预测计数602(0)到602(P)除非饱和否则可以递增。超过预定义的预测计数值可以包含与较低层级高速缓冲未命中请求316(2)相对应的DOA预测寄存器326(1)(0)到326(1)(P)中的DOA预测计数602(0)到602(P)在此实例中低于所定义的DOA预测计数602(0)到602(P),这是因为响应于LLC存储器114的高速缓冲未命中而使DOA预测计数602(0)到602(P)递减。
替代地,作为另一实例,初始DOA预测计数602(0)到602(P)可以被设置为其最低计数值(例如,0),其中与较低层级高速缓冲未命中请求316(2)相对应的DOA预测寄存器326(1)(0)到326(1)(P)中的DOA预测计数602(0)到602(P)在较低层级高速缓冲未命中请求316(2)由系统存储器106服务时递增,且然后在较低层级高速缓冲未命中请求316(2)由LLC存储器114服务时递减。在此状况下,超过预定义的预测计数值可以包含与较低层级高速缓冲未命中请求316(2)相对应的DOA预测寄存器326(1)(0)到326(1)(P)中的DOA预测计数602(0)到602(P)低于高于所定义的DOA预测计数602(0)到602(P)。
可以根据需要调整与DOA预测电路324(1)中所存取DOA预测计数602(0)到602(P)相比较的预定义预测计数值。例如,可以设置预定义的预测计数值,以使得由于LLC存储器114最初没有较低层级高速缓冲条目308(0)到308(N),因此并非始终对LLC存储器114进行筛选。例如,如果例如在图1中的处理器系统100的系统启动或复位和/或高速缓冲存储器系统104的复位之后LLC存储器114最初为空的,那么对较低层级高速缓冲存储器112的存储器存取请求将由系统存储器106服务。因此,如果预定义的预测计数值使得从较低层级高速缓冲存储器112逐出的较低层级高速缓冲条目320最初被预测为DOA,那么其将始终被预测为DOA。这是因为将来自较低层级高速缓冲存储器112的较低层级高速缓冲条目320预测为DOA将筛选出LLC存储器114,且因此LLC存储器114将永远不会被填充。然而,如果预定义的预测计数值经设置使得从较低层级高速缓冲存储器112最初逐出较低层级高速缓冲条目320并非最初被预测为DOA,那么LLC存储器114将不会被筛选出且将最终填满。此后,例如上文所描述,将更新DOA预测电路324(1)中的DOA预测计数602(0)到602(P),以用于未来从较低层级高速缓冲存储器112逐出的较低层级高速缓冲条目320的DOA预测。
DOA预测电路324(1)可以经配置以响应于较低层级高速缓冲未命中请求316(2)以不同方式被存取。例如,如在图7A中所展示,DOA预测电路324(1)可以经配置以基于较低层级高速缓冲未命中请求316(2)的物理存储器地址被存取。就此来说,DOA预测寄存器326(1)(0)到326(1)(P)与物理存储器地址相关联。例如,如果DOA预测电路324(1)包含1034个DOA预测寄存器326(1)(0)到326(1)(P),其中“P”等于1033,那么较低层级高速缓冲未命中请求316(2)的物理存储器地址(例如,0xDB119500)可经截断或散列为10位以对DOA预测电路324(1)中的DOA预测寄存器326(1)(0)到326(1)(P)加索引。例如,物理存储器地址的十(10)个最低有效位(LSB)(例如,物理存储器地址0xDB119500的0x100 10位LSB)可用于对DOA预测电路324(1)中的DOA预测寄存器326(1)(0)到326(1)(P)加索引。作为如图7B中所展示的另一实例,DOA预测电路324(1)可以经配置以基于发布致使由较低层级高速缓冲存储器112生成较低层级高速缓冲未命中请求316(2)的数据请求的加载指令的程序计数器(PC)进行存取。在此实例中,DOA预测寄存器326(1)(0)到326(1)(P)与PC相关联。例如,如果DOA预测电路324(1)包含1034个DOA预测寄存器326(1)(0)到326(1)(P),其中“P”等于1033,那么与较低层级高速缓冲未命中请求316(2)相对应的PC(例如,0x4045B4)可经截断为10位以对DOA预测电路324(1)中的DOA预测寄存器326(1)(0)到326(1)(P)加索引。例如,PC的十(10)个最低有效位(LSB)(例如,PC 0x404B54的10位LSB 0x354)可用于对DOA预测电路324(1)中的DOA预测寄存器326(1)(0)到326(1)(P)加索引。
图8说明另一示范性标记DOA预测电路324(2),其可以用作图3中的高速缓冲存储器系统104中的DOA预测电路324。DOA预测电路324(2)包含多个DOA预测寄存器326(2)(0)到326(2)(P),所述DOA预测寄存器可以为DOA预测计数器800(0)到800(P),每一计数器各自经配置以存储DOA预测计数802(0)到802(P)作为DOA预测值328(2)(0)到328(2)(P)。DOA预测计数802(0)到802(P)可以由图3中的高速缓冲存储系统104和一个实例中的高速缓冲存储器控制器310用来预测经逐出较低层级高速缓冲条目320是否在LLC存储器114为死的。DOA预测电路324(2)经配置以基于存储在与每一DOA预测计数器800(0)到800(P)相关联的相应DOA预测标记806(0)到806(P)中的标记804(0)到804(P)进行存取。例如,如在图9A中所展示,DOA预测电路324(2)可以经配置以基于;来自图3中的较低层级高速缓冲存储器112的较低层级高速缓冲未命中请求316(2)的物理存储器地址被存取。例如,较低层级高速缓冲未命中请求316(2)的物理存储器地址(例如,0xDB119500)可以移动定义数目个位数(例如,14位到0x36846)以形成标记以与存储在DOA预测电路324(2)中的标记804(0)到804(P)。例如,DOA预测电路324(2)可以包含318(即,356K)DOA预测寄存器326(2)(0)到326(2)(P),其中“P”等于318-1。如果基于较低层级高速缓冲未命中请求316(2)的物理存储器地址形成的标记匹配存储在DOA预测电路324(2)中的标记804(0)到804(P),那么与匹配标记804(0)到804(P)相关联的DOA预测计数器800(0)到800(P)用于存取DOA预测计数802(0)到802(P),以预测为DOA的经逐出较低层级高速缓冲条目320,且用于更新与对较低层级高速缓冲条目320的较低层级高速缓冲未命中请求316(2)相关联的DOA预测计数802(0)到802(P)。
作为如图9B中所展示的另一实例,DOA预测电路324(2)可以经配置以基于发布致使由较低层级高速缓冲存储器112生成较低层级高速缓冲未命中请求316(2)的数据请求的加载指令的程序计数器(PC)进行存取。例如,与较低层级高速缓冲未命中请求316(2)相关联的PC(例如,0x404B54)可以移动定义数目个位数(例如,3位到0x1013B5)以形成标记以与存储在DOA预测电路324(2)中的标记804(0)到804(P)。例如,DOA预测电路324(2)可以包含318(即,356K)DOA预测寄存器326(2)(0)到326(2)(P),其中“P”等于318-1。如果基于与较低层级高速缓冲未命中请求316(2)相关联的PC形成的标记匹配存储在DOA预测电路324(2)中的标记804(0)到804(P),那么与匹配标记804(0)到804(P)相关联的DOA预测计数器800(0)到800(P)用于存取DOA预测计数802(0)到802(P),以预测为DOA的经逐出较低层级高速缓冲条目320,且用于更新与对较低层级高速缓冲条目320的较低层级高速缓冲未命中请求316(2)相关联的DOA预测计数802(0)到802(P)。
如先前所论述,返回参考图3中的处理器系统100,也可能代替绕过被预测为在图3中的LLC存储器114中为DOA的经逐出较低层级高速缓冲条目320的插入,仍可将被预测为DOA的经逐出较低层级高速缓冲条目320,包含根据上文所论述的DOA预测实例中的任一个,插入在LLC存储器114中。然而,在此实例中,筛选被预测为DOA的此类经逐出较低层级高速缓冲条目320以将其插入在LLC存储器114的高速缓冲存储器300的数据阵列304中的最近较少使用最后层级高速缓冲条目308(0)到308(P)中可能是有利的。高速缓冲存储器控制器310经配置以跟踪和确定最后层级高速缓冲条目308(0)到308(P)的使用,以确定哪些为最近较多使用的,且哪些为最近较少用于确定最后层级高速缓冲条目308(0)到308(P)中的哪些插入从较低层级高速缓冲存储器112逐出的较低层级高速缓冲条目320。以此方式,LLC存储器114不必逐出最近较多使用最后层级高速缓冲条目308(0)到308(P),以腾出空间来存储经逐出较低层级高速缓冲条目320。与最近较少使用的最后层级高速缓冲条目308(0)到308(P)相比,最近较多使用的最后层级高速缓冲条目308(0)到308(P)可能具有更大的重新使用可能性,以提高LLC存储器114的效率和性能。
此外,虽然上文是论述的先前实例预测经逐出较低层级高速缓冲条目320在LLC存储器114中是否为DOA,但在确定是否筛选出LLC存储器114中未必必须遵循DOA预测。例如,LLC存储器114可以将用于经逐出较低层级高速缓冲条目320的DOA预测用作关于是否筛选出LLC存储器114的提示,而不是绝对要求。
就此来说,图10说明具有替代LLC存储器114(1)的图3中的处理器系统100,所述替代LLC存储器采用高速缓冲存储器组竞争来确定LLC存储器114(1)将是否跟随针对较低层级高速缓冲条目320的DOA预测提示。换句话说,响应于较低层级高速缓冲存储器112指示撤出的较低层级高速缓冲条目320是对LLC存储器114(1)的DOA,LLC存储器114(1)可以使用高速缓冲组竞争来确定是否将遵循DOA预测。如果遵循对经逐出较低层级高速缓冲条目320的DOA预测,那么LLC存储器114(1)可以从LLC存储器114(1)绕过到系统存储器106。如果不遵循对经逐出较低层级高速缓冲条目320的DOA预测,那么经逐出较低层级高速缓冲条目320可以被存储在LLC存储器114(1)中,且未被绕过到系统存储器106。在图3与图10之间以共用元件编号说明共用组件。
在图10中的LLC存储器114(1)的高速缓冲存储器300中,最后层级高速缓冲存储器组306(0)到306(M)的子组被分配为“专用”高速缓冲存储器组306A、306B。未经分配为专用高速缓冲存储器组306A、306B的其它最后层级高速缓冲存储器组306(0)到306(M)为非专用高速缓冲存储器组,也被称为“随动”高速缓冲存储器组。专用高速缓冲存储器组306A,306B中的每一个具有用于给定的专用高速缓冲存储器组306A、306B的相关联专用筛选策略。符号“A”指定高速缓冲存储器控制器310将第一DOA预测策略A用于到专用高速缓冲存储器组306A中的高速缓冲未命中。最后层级高速缓冲存储器组306(0)到306(M)中的其它最后层级高速缓冲存储器组306(0)到306(M)被指定为专用高速缓冲存储器组306B。符号“B”表示高速缓冲存储器控制器310将与第一DOA预测策略A不同的第二DOA预测策略B用于到专用高速缓冲存储器组306B中的高速缓冲命中。例如,第一DOA预测策略A可以用于绕过LLC存储器114,且第二DOA预测策略B可以用于不绕过LLC存储器114。高速缓冲存储器控制器310跟踪响应于来自较低层级高速缓冲存储器112的较低层级高速缓冲未命中请求316(2)而存取专用高速缓冲存储器组306A,306B中的每一个的高速缓冲未命中。例如,专用高速缓冲存储器组306A的高速缓冲未命中可用于更新(例如,递增或递减)与较低层级高速缓冲未命中请求316(2)相关联的DOA预测寄存器1004(例如,计数器)中的DOA预测值1002(例如,计数)。专用高速缓冲存储器组306B的高速缓冲未命中可用于更新(例如,递减或递增)与较低层级高速缓冲未命中请求316(2)相关联的DOA预测寄存器1004中的DOA预测值1002。换句话说,图10中的数据阵列304中的专用高速缓冲存储器组306A,306B被设置为彼此竞争,在其它方面被称为“竞争”。当LLC存储器114(1)接收经逐出较低层级高速缓冲条目320时,LLC存储器114(1)可咨询DOA预测寄存器1004,以基于专用高速缓冲存储器组306A,306B的过去高速缓冲未命中和对命中确定应采用第一DOA预测策略A与第二DOA预测策略B之间的哪一策略。应采用绕过LLC存储器114(1)的第一DOA预测策略A,或不绕过LLC存储器114(1)的第二DOA预测策略B。
作为实例,DOA预测寄存器1004可以为单个正数/倒数高速缓冲未命中计数器,其基于高速缓冲未命中存取LLC存储器114(1)中的专用高速缓冲存储器组306A还是专用高速缓冲存储器组306B来递增和递减。
可以在任何基于处理器的装置中提供或集成到其中的高速缓冲存储系统,所述高速缓冲存储系统根据本文中所揭示的方面经配置以筛选被预测为DOA的经逐出高速缓冲条目到高速缓冲存储系统的最后LLC存储器中的插入。实例但非限制性包含机顶盒、娱乐单元、导航装置、通信装置、固定位置数据单元、移动位置数据单元、全球定位系统(GPS)装置、移动电话、蜂窝式电话、智能电话、会话初始化协议(SIP)电话、平板、平板手机、服务器、计算机、便携式计算机、移动计算装置、可穿戴计算装置(例如,智能手表、健康或健身追踪器、眼镜等等)、桌上型计算机、个人数位助理(PDA)、监视器、计算机监视器、电视、调谐器、无线电、卫星无线电、音乐播放器、数字音乐播放器、便携式音乐播放器、数字视频播放器、视频播放器、数字视频光盘(DVD)播放器、便携式数字视频播放器、汽车、运载工具组件、航空电子系统、无人机及直升机。
就此来说,图11说明基于处理器的系统1100的实例,所述基于处理器的系统经配置以筛选将被预测为DOA的经逐出高速缓冲条目到LLC存储器中的插入,包含根据上文所论述的特定方面中的任何一个。基于处理器的系统1100包含处理器1102,其可以为图3和10中的处理器系统100。基于处理器的系统1110可以被提供为单片系统(SoC)1104。处理器1103包含高速缓冲存储器系统1106。例如,高速缓冲存储器系统1106可以为图3或10中的高速缓冲存储器系统104。在此实例中,处理器1103在图3或10中的处理器系统100中包含多个CPU102(0)到102(N)。CPU 102(0)到102(N)耦合到系统总线1108,且可以相互耦合包含在基于处理器的系统1100中的外围装置。尽管图11中未说明,但可提供多个系统总线1108,其中每一系统总线1108构成不同组构。众所周知,CPU 102(0)到102(N)通过在系统总线1108上交换地址、控制和数据信息来与其它装置通信。例如,CPU 102(0)到102(N)可以将总线事务请求传递到作为从装置的实例的存储系统1112中的存储控制器1110。存储器控制器1110可以为图3或10中的存储器控制器118。在此实例中,存储器控制器1110经配置以向系统存储器1114提供存储器存取请求,所述系统存储器1114可以为图3和10中的系统存储器106。
其它装置可以连接到系统总线1108。如图11中所说明,作为实例,这些装置可以包含存储器系统1112、一或多个输入装置1116、一或多个输出装置1118、一或多个网络接口装置1120和一或多个显示控制器1122。输入装置1116可以包含任何类型的输入装置,包含但不限于输入键、开关、语音处理器等。输出装置1118可以包含任何类型的输出装置,包含但不限于音频、视频、其它视觉指示器等。网络接口装置1120可以为经配置以允许与网络1124往返进行数据交换的任何装置。网络1124可以为任何类型的网络,包含但不限于有线或无线网络,专用或公共网络、局域网(LAN)、无线局域网(WLAN)、广域网(WAN)、BLUETOOTHTM网络和因特网。网络接口装置1120可经配置以支持所要的任何类型的通信协议。
CPU 102(0)到102(N)还可以经配置以在系统总线1108上存取显示控制器1122,以控制发送到一或多个显示器1126的信息。显示控制器1122经由一或多个视频处理器1128将信息发送到显示器1126以进行显示,所述视频处理器1128将待显示的信息处理成适合于显示器1126的格式。显示器1126可以包含任何类型的显示器,包含但不限于阴极射线管(CRT)、液晶显示器(LCD)、等离子显示器等。
所属领域的技术人员将进一步了解,结合本文中所揭示的方面所描述的各种说明性逻辑块、模块、电路及算法可实施为电子硬件、存储于存储器中或另一计算机可读媒体中且由处理器或其它处理装置执行的指令,或两者的组合。作为实例,本文中所描述的主控装置及从控装置可用于任何电路、硬件组件、集成电路(IC)或IC芯片中。本文中所揭示的存储器可为任何类型及大小的存储器且可经配置以存储所要的任何类型的信息。为清楚地说明此可互换性,上文通常已就其功能性方面描述了各种说明性组件、块、模块、电路及步骤。如何实施此类功能取决于特定应用、设计选择及/或强加于整个系统的设计约束。虽然所属领域的技术人员可针对每一特定应用以变化方式实施所描述功能性,但不应将此些实施方案决策解释为导致对本发明的范围的脱离。
结合本文中所揭示的方面所描述的各种说明性逻辑块、模块及电路可通过以下各项来实施或执行:处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、场可编程门阵列(FPGA)或其它可编程逻辑装置、离散闸或晶体管逻辑、离散硬件组件或其经设计以执行本文中所描述的功能的任一组合。处理器可为微处理器,但在替代方案中,处理器可为任何常规处理器、控制器、微控制器或状态机。还可将处理器实施为计算装置的组合,例如DSP与微处理器的组合、多个微处理器、结合DSP核心的一或多个微处理器或任一其它此类配置。
本文中所揭示的方面可以硬件及存储于硬件中的指令体现,且可驻留在(例如)随机存取存储器(RAM)、快闪存储器、只读存储器(ROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、寄存器、硬盘、可拆卸磁盘、CD-ROM或此项技术中已知的任何其它形式的计算机可读媒体。示范性存储媒体耦合到处理器使得处理器可从存储媒体读取信息,且将信息写入到存储媒体。在替代方案中,所述存储媒体可与处理器成整体。处理器及存储媒体可驻存在ASIC中。ASIC可驻存于远程站中。在替代方案中,处理器及存储媒体可作为离散组件驻存于远程站、基站或服务器中。
还应注意,本文中的示范性方面中的任一者中所描述的可操作步骤经描述以提供实例及论述。所描述的操作可以除所说明次序外的众多不同次序执行。此外,单个操作步骤中所描述的操作可实质上以多个不同步骤执行。另外,可组合示范性方面中所论述的一或多个操作步骤。应理解,流程图中所说明的操作步骤可以经受众多不同的修改,如对于所属领域的技术人员将易于显而易见。所属领域的技术人员也应理解,可使用各种不同科技及技术中的任一者表示信息及信号。举例来说,可通过电压、电流、电磁波、磁场或磁性粒子、光场或光学粒子或其任何组合来表示可贯穿上文描述所参考的数据、指令、命令、信息、信号、位、符号和码片。
本发明的前述描述经提供以使得所属领域的技术人员能够制作或使用本发明。对本发明非各种修改对于所属领域的技术人员来说将易于显而易见,且在不脱离本发明的精神或范围的情况下,本文中所定义的一般原理可应用于其它变化形式。因此,本发明并不意欲限于本文中所描述的实例及设计,而是欲赋予其与本文中所揭示的原理及新颖特征相一致的最宽广范围。
Claims (31)
1.一种高速缓冲存储器系统,其包括:
较低层级高速缓冲存储器,其经配置以存储多个较低层级高速缓冲条目,每一较低层级高速缓冲条目表示系统存储器中的系统数据条目,所述较低层级高速缓冲存储器经配置以:
将所述多个较低层级高速缓冲条目中的较低层级高速缓冲条目逐出到最后层级高速缓冲LLC存储器;及
响应于较低层级高速缓冲存储器的高速缓冲未命中,从所述LLC存储器接收最后层级高速缓冲条目;
所述LLC存储器,其经配置以存储多个最后层级高速缓冲条目,每一最后层级高速缓冲条目表示所述系统存储器中的所述系统数据,所述LLC存储器经配置以:
基于所述经逐出较低层级高速缓冲条目的地址,将来自所述较低层级高速缓冲存储器的所述经逐出较低层级高速缓冲条目插入在所述多个最后层级高速缓冲条目中的最后层级高速缓冲条目中;
将所述最后层级高速缓冲条目逐出到所述系统存储器;及
响应于所述LLC存储器的高速缓冲未命中,从所述系统存储器接收所述系统数据条目;
到达即死DOA预测电路,其包括与所述多个较低层级高速缓冲条目相关联的一或多个DOA预测寄存器,每一DOA预测寄存器经配置以存储DOA预测值,所述DOA预测值指示所述多个较低层级高速缓冲条目是否被预测为死于所述LLC存储器;且
响应于从所述较低层级高速缓冲存储器逐出所述较低层级高速缓冲条目,所述高速缓冲存储器系统经配置以:
存取与所述经逐出较低层级高速缓冲条目相关联的所述一或多个DOA预测寄存器中的DOA预测寄存器中的DOA预测值;
基于所述所存取DOA预测值,确定所述经逐出较低层级高速缓冲条目是否被预测为死于所述LLC存储器;及
响应于确定所述经逐出较低层级高速缓冲条目被预测为死于所述LLC存储器,在所述LLC存储器中筛选所述经逐出较低层级高速缓冲条目。
2.根据权利要求1所述的高速缓冲存储系统,其中响应于确定所述经逐出较低层级高速缓冲条目被预测为死于所述LLC存储器,所述高速缓冲存储系统经配置以通过经配置以不将所述经逐出较低层级高速缓冲条目插入到所述LLC存储器中筛选所述经逐出较低层级高速缓冲条目。
3.根据权利要求1所述的高速缓冲存储系统,其中响应于确定所述经逐出较低层级高速缓冲条目被预测为死于所述LLC存储器,所述高速缓冲存储系统经配置以通过经配置以将所述经逐出较低层级高速缓冲条目插入到所述LLC存储器中的最近较少使用高速缓冲条目中筛选所述经逐出较低层级高速缓冲条目。
4.根据权利要求1所述的高速缓冲存储器系统,其经进一步配置以响应于基于所述所存取DOA预测值确定所述经逐出较低层级高速缓冲条目被预测为死于所述LLC存储器;
确定所述经逐出较低层级高速缓冲条目是否为脏的;及
响应于确定所述经逐出较低层级高速缓冲条目为脏的,将所述经逐出较低层级高速缓冲条目插入到所述系统存储器中。
5.根据权利要求1所述的高速缓冲存储器系统,其经进一步配置以响应于确定所述经逐出较低层级高速缓冲条目未被预测为死于所述LLC存储器,将所述经逐出较低层级高速缓冲条目插入在所述LLC存储器中。
6.根据权利要求1所述的高速缓冲存储器系统,其中所述DOA预测电路未被包含在所述LLC存储器的所述多个最后层级高速缓冲条目中。
7.根据权利要求1所述的高速缓冲存储器系统,其中所述一或多个DOA预测寄存器包括一或多个DOA预测计数器,每一DOA预测计数器经配置以存储包括DOA预测计数的所述DOA预测值;
其中所述高速缓冲存储器系统经配置以响应于从所述较低层级高速缓冲存储器逐出所述较低层级高速缓冲条目:
存取与所述经逐出较低层级高速缓冲条目相关联的所述一或多个DOA预测计数器中的DOA预测计数器中的DOA预测计数;及
基于所述所存取DOA预测计数,确定所述经逐出较低层级高速缓冲条目是否被预测为死于所述LLC存储器。
8.根据权利要求7所述的高速缓冲存储器系统,其中所述高速缓冲存储器系统经配置以响应于从所述较低层级高速缓冲存储器逐出所述较低层级高速缓冲条目:
基于所述所存取DOA预测计数超过预定义的预测计数值,确定所述经逐出较低层级高速缓冲条目是否被预测为死于所述LLC存储器。
9.根据权利要求8所述的高速缓冲存储器系统,其中所述高速缓冲存储器系统经配置以响应于从所述较低层级高速缓冲存储器逐出所述较低层级高速缓冲条目:
基于所述所存取DOA预测计数超过低于所述预定义的预测计数值,确定所述经逐出较低层级高速缓冲条目是否被预测为死于所述LLC存储器。
10.根据权利要求1所述的高速缓冲存储器系统,其中所述一或多个DOA预测寄存器各自与至少一个存储器地址相关联;且
其中所述高速缓冲存储器系统经配置以响应于从所述较低层级高速缓冲存储器逐出所述较低层级高速缓冲条目,存取与所述经逐出较低层级高速缓冲条目的存储器地址相关联的所述一或多个DOA预测寄存器中的DOA预测寄存器中的DOA预测值。
11.根据权利要求10所述高速缓冲存储器系统,其中:
所述高速缓冲存储器系统经进一步配置以响应于从所述较低层级高速缓冲存储器逐出所述较低层级高速缓冲条目,基于所述经逐出较低层级高速缓冲条目的所述存储器地址生成散列值;且
所述高速缓冲存储器系统经配置以响应于从所述较低层级高速缓冲存储器逐出所述较低层级高速缓冲条目,基于所述经逐出较低层级高速缓冲条目的所述存储器地址的所述散列值存取所述一或多个DOA预测寄存器中的所述DOA预测寄存器中的所述DOA预测值。
12.根据权利要求1所述的高速缓冲存储器系统,其中所述一或多个DOA预测寄存器各自与至少一个存储器地址相关联;
其中所述高速缓冲存储器系统经配置以响应于从所述较低层级高速缓冲存储器逐出所述较低层级高速缓冲条目:
存取与生成所述经逐出较低层级高速缓冲条目的加载指令的程序计数器相关联的所述一或多个DOA预测寄存器中的DOA预测寄存器中的DOA预测值。
13.根据权利要求1所述的高速缓冲存储器系统,其中所述DOA预测电路进一步包括一或多个DOA预测标记,每一DOA预测标记与所述一或多个DOA预测寄存器中的DOA预测寄存器相关联;
其中所述高速缓冲存储器系统经配置以响应于从所述较低层级高速缓冲存储器逐出所述较低层级高速缓冲条目,通过经配置以进行以下操作来存取所述DOA预测值:
存取与所述经逐出较低层级高速缓冲条目相关联的所述一或多个DOA预测标记中的DOA预测标记;及
存取与所述所存取DOA预测标记相关联的所述一或多个DOA预测寄存器中的所述DOA预测寄存器中的所述DOA预测值。
14.根据权利要求1所述高速缓冲存储器系统,其中:
所述较低层级高速缓冲存储器经配置以:
接收存取所述多个较低层级高速缓冲条目中的较低层级高速缓冲条目的请求;及
响应于所述所请求较低层级高速缓冲条目不存在于所述较低层级高速缓冲存储器中而生成较低层级高速缓冲未命中;及
响应于所述较低层级高速缓冲未命中,所述高速缓冲存储器系统经进一步配置以更新与所述DOA预测电路中的所述所请求较低层级高速缓冲条目相关联的所述一或多个DOA预测寄存器中的DOA预测寄存器中的DOA预测值。
15.根据权利要求14所述的高速缓冲存储器系统,其中响应于所述较低层级高速缓冲未命中,所述高速缓冲存储器系统经进一步配置以确定与所述所请求较低层级高速缓冲条目的存储器地址相关联的所接收数据条目是否由所述系统存储器服务;且
其中所述高速缓冲存储器系统经配置以基于所述所接收数据条目是否由所述系统存储器服务的所述确定,更新与所述所请求较低层级高速缓冲条目相关联的所述一或多个DOA预测寄存器中的所述DOA预测寄存器中的所述DOA预测值。
16.根据权利要求15所述的高速缓冲存储器系统,其中所述一或多个DOA预测寄存器包括一或多个DOA预测计数器,每一DOA预测计数器经配置以存储包括DOA预测计数的所述DOA预测值;且
其中所述高速缓冲存储器系统经配置以在所述所接收数据条目由所述系统存储器服务的情况下,更新与所述所请求较低层级高速缓冲条目相关联的所述一或多个DOA预测计数器中的DOA预测计数器中的所述DOA预测计数。
17.根据权利要求16所述的高速缓冲存储器系统,其中响应于所述较低层级高速缓冲存储器中的所述较低层级高速缓冲未命中的第一例子,所述高速缓冲存储器系统经配置以用饱和计数将与所述所请求较低层级高速缓冲条目相关联的所述一或多个DOA预测计数器中的所述DOA预测计数器中的所述DOA预测计数初始化。
18.根据权利要求1所述的高速缓冲存储器系统,其中:
所述LLC存储器包括:
LLC高速缓冲存储器,其包括多个高速缓冲存储器组,所述多个高速缓冲存储器组包括多个随动高速缓冲存储器组和多个专用高速缓冲存储器组,所述多个专用高速缓冲存储器组包括至少一个第一专用高速缓冲存储器组和至少一个第二专用高速缓冲存储器组,所述至少一个第一专用高速缓冲存储器组包括所述
LLC高速缓冲存储器中的所述多个专用高速缓冲存储器组中的被应用至少一个第一DOA预测策略的第一专用子组,且所述至少一个第二专用高速缓冲存储器组包括所述LLC高速缓冲存储器中的所述多个专用高速缓冲存储器组中的被施加至少一个第二DOA预测策略的第二专用子组,所述至少一个第二DOA预测策略不同于所述至少一个第一DOA预测策略;
所述LLC存储器经配置以基于由仅在所述LLC高速缓冲存储器中的所述多个专用高速缓冲存储器组中的专用高速缓冲存储器组中的所存取高速缓冲条目导致的高速缓冲未命中来更新DOA预测寄存器中的DOA预测值;
所述较低层级高速缓冲存储器经配置以:
存取与所述经逐出较低层级高速缓冲条目相关联的所述DOA预测寄存器中的所述DOA预测值;
基于所述所存取DOA预测值,确定所述经逐出较低层级高速缓冲条目是否被预测为死于所述LLC存储器;及
响应于确定所述经逐出较低层级高速缓冲条目被预测为死于所述LLC存储器,将对所述经逐出较低层级高速缓冲条目的DOA预测传递到所述LLC存储器中;及
所述LLC存储器经进一步配置以:
存取所述DOA预测寄存器中的DOA预测值;
基于所述所存取DOA预测值,确定应将所述至少一个第一DOA预测策略还是所述至少一个第二DOA预测策略应用于所述经逐出较低层级高速缓冲条目;及
基于所述至少一个第一DOA预测策略和所述至少一个第二DOA预测策略中的所述所确定DOA预测策略,在所述LLC存储器中筛选所述经逐出较低层级高速缓冲条目。
19.根据权利要求1所述的高速缓冲存储器系统,其中存储在所述LLC存储器中的所述多个最后层级高速缓冲条目不包括存储在所述较低层级高速缓冲存储器中的所述多个较低层级高速缓冲条目。
20.根据权利要求1所述的高速缓冲存储器系统,其中存储在所述LLC存储器中的所述多个最后层级高速缓冲条目包含存储在所述较低层级高速缓冲存储器中的所述多个较低层级高速缓冲条目。
21.根据权利要求1所述的高速缓冲存储器系统,其经集成到单片系统SoC中。
22.根据权利要求1所述的高速缓冲存储器系统,其经集成到选自由以下组成的群组的装置:机顶盒;娱乐单元;导航装置;通信装置;固定位置数据单元;移动位置数据单元;全球定位系统GPS装置;移动电话;蜂窝式电话;智能电话;会话初始化协议SIP电话;平板;平板手机;服务器;计算机;便携式计算机;移动计算装置;可穿戴计算装置;桌上型计算机;个人数字助理PDA;监视器;计算机监视器;电视;调谐器;无线电;卫星无线电;音乐播放器;数字音乐播放器;便携式音乐播放器;数字视频播放器;视频播放器;数字视频光盘DVD播放器;便携式数字视频播放器;汽车;运载工具组件;航空电子系统;无人机和直升机。
23.一种在高速缓冲存储器系统中逐出较低层级高速缓冲条目的方法,其包括:
将多个较低层级高速缓冲条目中的较低层级高速缓冲条目从较低层级高速缓冲存储器逐出到最后层级高速缓冲LLC存储器;
存取与所述经逐出较低层级高速缓冲条目相关联的一或多个DOA预测寄存器中的DOA预测寄存器中的到达即死DOA预测值;
基于所述所存取DOA预测值,确定所述经逐出较低层级高速缓冲条目是否被预测为死于所述LLC存储器;及
响应于确定所述经逐出较低层级高速缓冲条目被预测为死于所述LLC存储器,在所述LLC存储器中筛选所述经逐出较低层级高速缓冲条目。
24.根据权利要求23所述的方法,其中对所述较低层级高速缓冲条目进行筛选包括不将所述经逐出较低层级高速缓冲条目插入到所述LLC存储器中。
25.根据权利要求23所述的方法,其中对所述较低层级高速缓冲条目进行筛选包括不将所述经逐出较低层级高速缓冲条目插入到所述LLC存储器中的最近较少使用高速缓冲条目中。
26.根据权利要求23所述的方法,其中响应于确定所述经逐出较低层级高速缓冲条目未被预测为死于所述LLC存储器,将所述经逐出较低层级高速缓冲条目插入在所述LLC存储器中。
27.一种最后层级高速缓冲LLC存储器,其包括:
最后层级高速缓冲存储器,其经配置以存储将多个最后层级高速缓冲条目,每一最后层级高速缓冲条目表示系统存储器中的数据条目;及
LLC控制器,其经配置以:
从较低层级高速缓冲存储器中接收经逐出较低层级高速缓冲条目;
基于所述经逐出较低层级高速缓冲条目的地址,将所述所接收经逐出较低层级高速缓冲条目插入在所述多个最后层级高速缓冲条目中的最后层级高速缓冲条目中;
将所述多个最后层级高速缓冲条目中的最后层级高速缓冲条目逐出到系统存储器;
响应于所述LLC存储器的高速缓冲未命中,从所述系统存储器接收系统数据条目;及
响应于从所述较低层级高速缓冲存储器接收的所述经逐出较低层级高速缓冲条目:
存取与所述经逐出较低层级高速缓冲条目相关联的一或多个DOA预测寄存器中的DOA预测寄存器中的到达即死DOA预测值;
基于所述所存取DOA预测值,确定所述经逐出较低层级高速缓冲条目是否被预测为死于所述LLC存储器;及
响应于确定所述经逐出较低层级高速缓冲条目被预测为死于所述LLC存储器,在所述较低层级高速缓冲存储器中筛选所述多个较低层级高速缓冲条目中的所述经逐出较低层级高速缓冲条目。
28.根据权利要求27所述的LLC存储器,其中所述LLC控制器经进一步配置以响应于基于所述所存取DOA预测值确定所述经逐出较低层级高速缓冲条目被预测为死于所述LLC存储器;
确定所述经逐出较低层级高速缓冲条目是否为脏的;及
响应于确定所述经逐出较低层级高速缓冲条目为脏的,将所述经逐出较低层级高速缓冲条目插入到所述系统存储器中。
29.根据权利要求27所述的LLC存储器,其中所述LLC控制器经进一步配置以响应于确定所述经逐出较低层级高速缓冲条目未被预测为死于所述LLC存储器,将所述经逐出较低层级高速缓冲条目插入到所述LLC存储器。
30.一种较低层级高速缓冲存储器,其包括:
多个较低层级高速缓冲条目,每一较低层级高速缓冲条目表示系统存储器中的系统数据条目;及
所述较低层级高速缓冲存储器,其经配置以:
将所述多个较低层级高速缓冲条目中的较低层级高速缓冲条目逐出到最后层级高速缓冲LLC存储器;
响应于所述较低层级高速缓冲存储器的高速缓冲未命中,从所述LLC存储器接收最后层级高速缓冲条目;
接收存取所述较低层级高速缓冲存储器中的所述多个较低层级高速缓冲条目中的所述较低层级高速缓冲条目的请求;
响应于所述所请求较低层级高速缓冲条目不存在于所述较低层级高速缓冲存储器中而生成较低层级高速缓冲未命中;及
响应于所述较低层级高速缓冲未命中:
确定与所述所请求较低层级高速缓冲条目的存储器地址相关联的所接收数据条目是否由所述系统存储器服务;及
基于所述所接收数据条目是否由所述系统存储器服务的所述确定,更新与所述所请求较低层级高速缓冲条目相关联的一或多个DOA预测寄存器中的DOA预测寄存器中的到达即死DOA预测值。
31.根据权利要求30所述的较低层级高速缓冲存储器,其中所述一或多个DOA预测寄存器包括一或多个DOA预测计数器,每一DOA预测计数器经配置以存储包括DOA预测计数的所述DOA预测值;且
其中所述下部较低高速缓冲存储器经配置以在所述所接收数据条目由所述系统存储器服务的情况下,更新与所述所请求较低层级高速缓冲条目相关联的所述一或多个DOA预测计数器中的DOA预测计数器中的所述DOA预测计数。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/660,006 | 2017-07-26 | ||
US15/660,006 US20190034354A1 (en) | 2017-07-26 | 2017-07-26 | Filtering insertion of evicted cache entries predicted as dead-on-arrival (doa) into a last level cache (llc) memory of a cache memory system |
PCT/US2018/040566 WO2019022923A1 (en) | 2017-07-26 | 2018-07-02 | INSERT FILTERING OF PREVIOUS-DRAFTED COATED MEMORY INPUTS AS INACTIVE AT THE ARRIVAL (DOA) IN A LAST-LEVEL CACHE MEMORY (LLC) OF A CACHE-MEMORY SYSTEM |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110998547A true CN110998547A (zh) | 2020-04-10 |
Family
ID=63013116
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880048084.2A Pending CN110998547A (zh) | 2017-07-26 | 2018-07-02 | 筛选被预测为到达即死(doa)的经逐出高速缓冲条目到高速缓冲存储器系统的最后层级高速缓冲(llc)存储器中的插入 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20190034354A1 (zh) |
CN (1) | CN110998547A (zh) |
WO (1) | WO2019022923A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11113207B2 (en) * | 2018-12-26 | 2021-09-07 | Samsung Electronics Co., Ltd. | Bypass predictor for an exclusive last-level cache |
US11609858B2 (en) * | 2018-12-26 | 2023-03-21 | Samsung Electronics Co., Ltd. | Bypass predictor for an exclusive last-level cache |
US11163688B2 (en) * | 2019-09-24 | 2021-11-02 | Advanced Micro Devices, Inc. | System probe aware last level cache insertion bypassing |
US20230244606A1 (en) * | 2022-02-03 | 2023-08-03 | Arm Limited | Circuitry and method |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110087845A1 (en) * | 2009-10-14 | 2011-04-14 | Doug Burger | Burst-based cache dead block prediction |
US20130166846A1 (en) * | 2011-12-26 | 2013-06-27 | Jayesh Gaur | Hierarchy-aware Replacement Policy |
US20160062916A1 (en) * | 2014-08-27 | 2016-03-03 | The Board Trustees Of The Leland Stanford Junior University | Circuit-based apparatuses and methods with probabilistic cache eviction or replacement |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10296457B2 (en) * | 2017-03-30 | 2019-05-21 | Intel Corporation | Reducing conflicts in direct mapped caches |
-
2017
- 2017-07-26 US US15/660,006 patent/US20190034354A1/en not_active Abandoned
-
2018
- 2018-07-02 WO PCT/US2018/040566 patent/WO2019022923A1/en active Application Filing
- 2018-07-02 CN CN201880048084.2A patent/CN110998547A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110087845A1 (en) * | 2009-10-14 | 2011-04-14 | Doug Burger | Burst-based cache dead block prediction |
US20130166846A1 (en) * | 2011-12-26 | 2013-06-27 | Jayesh Gaur | Hierarchy-aware Replacement Policy |
US20160062916A1 (en) * | 2014-08-27 | 2016-03-03 | The Board Trustees Of The Leland Stanford Junior University | Circuit-based apparatuses and methods with probabilistic cache eviction or replacement |
Also Published As
Publication number | Publication date |
---|---|
WO2019022923A1 (en) | 2019-01-31 |
US20190034354A1 (en) | 2019-01-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102545726B1 (ko) | 프로세서-기반 시스템들에서 공간 QoS(Quality of Service) 태깅을 사용한 이종 메모리 시스템들의 유연한 관리의 제공 | |
US10353819B2 (en) | Next line prefetchers employing initial high prefetch prediction confidence states for throttling next line prefetches in a processor-based system | |
CN110998547A (zh) | 筛选被预测为到达即死(doa)的经逐出高速缓冲条目到高速缓冲存储器系统的最后层级高速缓冲(llc)存储器中的插入 | |
US20150286571A1 (en) | Adaptive cache prefetching based on competing dedicated prefetch policies in dedicated cache sets to reduce cache pollution | |
US20110055489A1 (en) | Managing Counter Saturation In A Filter | |
US20170212840A1 (en) | Providing scalable dynamic random access memory (dram) cache management using tag directory caches | |
US20180173623A1 (en) | Reducing or avoiding buffering of evicted cache data from an uncompressed cache memory in a compressed memory system to avoid stalling write operations | |
US11822487B2 (en) | Flexible storage and optimized search for multiple page sizes in a translation lookaside buffer | |
US12007896B2 (en) | Apparatuses, systems, and methods for configuring combined private and shared cache levels in a processor-based system | |
EP3420460B1 (en) | Providing scalable dynamic random access memory (dram) cache management using dram cache indicator caches | |
US20180217930A1 (en) | Reducing or avoiding buffering of evicted cache data from an uncompressed cache memory in a compression memory system when stalled write operations occur | |
EP3436952A1 (en) | Providing memory bandwidth compression using compression indicator (ci) hint directories in a central processing unit (cpu)-based system | |
US20240176742A1 (en) | Providing memory region prefetching in processor-based devices | |
US11762660B2 (en) | Virtual 3-way decoupled prediction and fetch | |
US20190012265A1 (en) | Providing multi-socket memory coherency using cross-socket snoop filtering in processor-based systems | |
CN117795490A (zh) | 用于在基于处理器的系统中配置组合私有和共享高速缓存层级的设备、系统和方法 |
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 |