CN114830101A - 基于访问类型优先级的高速缓存管理 - Google Patents
基于访问类型优先级的高速缓存管理 Download PDFInfo
- Publication number
- CN114830101A CN114830101A CN202080087186.2A CN202080087186A CN114830101A CN 114830101 A CN114830101 A CN 114830101A CN 202080087186 A CN202080087186 A CN 202080087186A CN 114830101 A CN114830101 A CN 114830101A
- Authority
- CN
- China
- Prior art keywords
- access type
- cache
- counter
- demand
- cache line
- 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/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/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1021—Hit rate 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/1041—Resource optimization
- G06F2212/1044—Space efficiency 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/60—Details of cache memory
- G06F2212/602—Details relating to cache prefetching
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
公开了用于基于访问类型优先级进行高速缓存管理的系统、设备和方法。系统至少包括处理器和高速缓存。在程序执行阶段期间,某些访问类型比其他访问类型更可能产生高速缓存中的需求命中。需求命中是对高速缓存的加载命中和存储命中。使用运行时分析机制来查找哪些访问类型更有可能引起需求命中。基于分析结果,未来将可能访问的高速缓存行基于其最近的访问类型而保留。目标是增加需求命中,从而提高系统性能。有效的高速缓存替换策略可以潜在地减少冗余数据移动,从而提高系统性能并降低能耗。
Description
背景技术
本发明是在Lawrence Livermore National Security的PathForward项目(由美国能源部授予的主合同号为DE-AC52-07NA27344、转包合同号为B620717)下在政府支持下进行的。美国政府对本发明拥有某些权利。
相关技术的描述
计算机系统使用通常由廉价且高密度的动态随机存取存储器(DRAM)芯片形成的主存储器。然而,DRAM芯片承受相对长的访问时间。为了提高性能,数据处理器通常包括至少一个称为高速缓存的本地高速存储器。高速缓存存储处理器经常访问的数据块。如本文所使用的,“块”是存储在连续存储器位置中的一组字节,所述一组字节出于一致性目的而被视为一个单元。如本文所使用的,术语“高速缓存块”、“块”、“高速缓存行”和“行”中的每一者是可互换的。在一些实施方案中,块还可以是高速缓存中的分配和解除分配的单元。块中的字节数根据设计选择而变化,并且可以具有任何大小。另外,术语“高速缓存标签”、“高速缓存行标签”和“高速缓存块标签”中的每一者是可互换的。
由于高速缓存具有有限的存储容量,高速缓存管理策略确定当高速缓存的对应区域已满时选择哪些高速缓存行来进行替换。有效的高速缓存管理策略对于提高应用程序性能至关重要。然而,一些常规的高速缓存管理策略,诸如基于最近最少使用(LRU)原则的那些策略,在处理对高速缓存行的不规则访问时效率较低,或者需要可能限制其适用性的相对复杂的电路实现方式。
附图说明
通过结合附图参考以下描述,可以更好地理解本文描述的方法和机制的优点,在附图中:
图1是计算系统的一个实现方式的框图。
图2是计算系统的一个实现方式的框图。
图3是跟踪每个高速缓存行的最后访问类型的高速缓存的一个实现方式的框图。
图4是维护用于跟踪每种访问类型引起多少需求命中的计数器的高速缓存的一个实现方式的框图。
图5是示出用于基于最后访问类型设置高速缓存行的优先级的方法的一个实现方式的一般化流程图。
图6是示出用于选择高速缓存行以进行逐出的方法的一个实现方式的一般化流程图。
具体实施方式
在以下描述中,阐述了众多具体细节以提供对本文呈现的方法和机制的透彻理-解。然而,本领域普通技术人员应认识到,可在没有这些具体细节的情况下实践各种实现方式。在一些情况下,并未详细示出众所周知的结构、部件、信号、计算机程序指令和技术,以避免混淆本文所述的方法。应了解,出于说明简明和清楚起见,在图中示出的元件不一定按比例绘制。例如,一些元件的尺寸可能相对于其他元件被放大。
本文公开了用于基于访问类型优先级进行高速缓存管理的各种系统、设备和方法。在一个实现方式中,一种系统至少包括处理器和高速缓存。在程序执行阶段期间,某些访问类型比其他访问类型更可能产生高速缓存中的需求命中。需求命中是对高速缓存的加载命中和存储命中。使用运行时分析机制来查找哪些访问类型更有可能引起需求命中。基于分析结果,未来将可能访问的高速缓存行基于其最近的访问类型而保留。目标是增加需求命中,从而提高系统性能。有效的高速缓存替换策略可以潜在地减少冗余数据移动,从而提高系统性能并降低能耗。
现在参考图1,示出了计算系统100的一个实现方式的框图。在一个实现方式中,计算系统100至少包括处理器110、组构120、输入/输出(I/O)接口125、存储器接口130、外围装置135以及存储器子系统140。在其他实现方式中,计算系统100可以包括其他部件,计算系统100可以省略所示部件,和/或计算系统100可以被不同地布置。在一个实现方式中,每个处理器110包括高速缓存子系统115。高速缓存子系统115具有带有可以根据实现方式而变化的各种类型的高速缓存中的任一者的任何数量的高速缓存层级。在一些情况下,高速缓存子系统115的高速缓存层次结构中的一个或多个高速缓存可以位于处理器110外部的其他位置中。
在一个实现方式中,高速缓存子系统115的一个或多个高速缓存采用基于访问类型优先级的高速缓存管理方案。例如,在一个实现方式中,高速缓存控制器确定哪些访问类型更可能引起需求命中。需求命中是由加载操作或存储操作引起的对高速缓存的命中。在分析阶段期间,高速缓存控制器从多个访问类型中确定哪种访问类型引起最少数量的需求命中。然后在替换期间,高速缓存控制器尝试从多个访问类型中逐出具有使访问类型与最少数量的需求命中相匹配的所记录的最后访问类型的高速缓存行。换句话说,高速缓存控制器动态地确定最有可能在对高速缓存行的加载命中或存储命中之前的访问类型。然后,高速缓存控制器保护最近由最有可能在加载命中或存储命中之前的访问类型访问的高速缓存行。关于用于基于访问类型优先级管理高速缓存替换策略的技术的更多细节将贯穿本公开的其余部分提供。
处理器110表示任何数量和类型的处理单元(例如,中央处理单元(CPU)、图形处理单元(GPU)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、专用集成电路(ASIC))。存储器子系统140包括任何数量和类型的存储器装置。例如,存储器子系统140中的存储器类型可包括高带宽存储器(HBM)、非易失性存储器(NVM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、NAND闪存存储器、NOR闪存存储器、铁电随机存取存储器(FeRAM)等。I/O接口125表示任何数量和类型的I/O接口(例如,外围部件互连(PCI)总线、PCI扩展(PCI-X)、PCIE(PCI高速)总线、吉比特以太网(GBE)总线、通用串行总线(USB))。各种类型的外围装置135可以耦合到I/O接口125。此类外围装置135包括(但不限于)显示器、键盘、鼠标、打印机、扫描仪、操纵杆或其他类型的游戏控制器、媒体录制装置、外部存储装置、网络接口卡,等等。
在各种实现方式中,计算系统100是计算机、膝上型计算机、移动装置、游戏控制台、服务器、流式传输装置、可穿戴装置或各种其他类型的计算系统或装置中的任一种。应注意,计算系统100的部件的数量因实现方式而不同。例如,在其他实现方式中,存在与图1所示的数量相比更多的给定部件。还应注意,在其他实现方式中,计算系统100包括图1中未示出的其他部件。另外,在其他实现方式中,计算系统100以与图1中所示不同的方式进行结构化。
现在转到图2,示出了计算系统200的一个实现方式的框图。如图所示,系统200表示台式计算机210、膝上型计算机220、服务器230、移动装置240等的芯片、电路、部件等。其他部件是可能的并且被设想在内。在所示实现方式中,系统200包括高速缓存子系统115(图1)的至少一个实例。尽管图2中未示出,但是系统200还可以包括任何数量和类型的其他部件,诸如一个或多个处理器、一个或多个存储器装置、一个或多个外围装置等等。高速缓存子系统115包括任何数量的高速缓存层级,所述高速缓存层级采用基于访问类型优先级的高速缓存管理方案。
现在参考图3,示出了跟踪每个高速缓存行的最后访问类型的高速缓存300的一个实现方式的框图。在各种实现方式中,高速缓存300是与系统存储器分开的低时延高带宽存储器。在一些实现方式中,高速缓存300用作高速缓存存储器子系统(例如,图1的高速缓存子系统115)中的最后层级的高速缓存。在其他实现方式中,高速缓存300是高速缓存子系统内的另一个层级。
当高速缓存300接收到读取或写入请求时,使用请求所针对的地址的标签来执行对标签存储区302的查找。如果查找产生命中并且对数据存储区304的高速缓存行执行访问,则访问类型存储在标签存储装置302的对应条目306的最后访问类型字段308中。在一个实施方案中,标签存储区302和数据存储区304被组织为阵列,但是其他组织是可能的并且被设想。在一些实施方案中,标签存储区302和数据存储区304中的每一个都是不同的实体,而在其他实施方案中,它们被组合在单个存储实体(装置)中。在任一情况下,标签存储区302和数据存储区304可以简单地称为数据存储区或数据存储装置。在一个实现方式中,不同的可能访问类型包括加载、存储、预取和写回。如本文所使用的,“加载操作”或“加载访问”被定义为指定将数据从存储器位置传送到处理器或执行单元的操作。“存储操作”或“存储访问”被定义为指定将数据从处理器或执行单元传送到存储器位置的操作。“预取操作”或“预取访问”被定义为在通过需求操作请求数据之前指定将数据从存储器位置传送到高速缓存的操作。如果基于不正确的预测,则预取访问所针对的数据可能最终不会被执行单元使用。“写回操作”或“写回访问”被定义为将脏高速缓存行传送到更低层级的高速缓存或存储器位置。“脏高速缓存行”被定义为已被修改但尚未写入更低层级的高速缓存或主存储器的高速缓存行。
如果对第二302的查找未命中并且将为请求分配高速缓存行,则高速缓存控制器320确定要逐出哪个高速缓存行以便能够存储新的高速缓存行。在一个实现方式中,高速缓存控制器320使用存储在对应组的第二302中的每个条目中的最后访问类型字段308来确定要从第二304中逐出哪个高速缓存行。例如,在一个实现方式中,高速缓存控制器320检索经排序的优先级350,所述优先级列出了与每个访问类型相关联的优先级。一旦高速缓存控制器320已经检索经排序的优先级350,高速缓存控制器320便根据经排序的优先级350搜索具有优先级为最低的最后访问类型的高速缓存行。注意,高速缓存控制器320也可以称为控制单元或控制逻辑。
在一个实现方式中,高速缓存300包括计数器340以跟踪每种访问类型的需求命中数。需求命中是指命中第二308中的条目的加载或存储操作。在一个实现方式中,计数器340包括用于每种不同访问类型的计数器。例如,当需求访问命中其最后访问类型字段308用预取编码进行编码的高速缓存行时,预取访问类型的计数器340递增。在一个实现方式中,计数器340的值用于决定每个访问类型的优先级。例如,计数器值越大,对应的访问类型的优先级就越高。在一个实现方式中,高速缓存控制器320周期性地检索计数器340的值并且按降序对这些值进行排序。然后,高速缓存控制器320基于计数器340的经排序的值生成经排序的优先级350,其中最高优先级被分配给其计数器具有最高值的访问类型。其他访问类型基于其计数器的值按降序被分配优先级。
可以根据一个实现方式使用的最后访问类型编码的一个示例在最后访问类型编码表330中示出。例如,位“00”表示最后访问类型是加载。对于位“01”,这表示最后访问类型是存储。对于位“10”,这表示最后访问类型是预取。对于位“11”,这表示最后访问类型是写回。在其他实现方式中,第二302中的条目的最后访问类型字段308可以具有除了两位之外的其他位数。此外,在其他实现方式中,可以使用不同于最后访问类型编码表330中所示的编码的其他编码。
现在转到图4,示出了维护用于跟踪每种访问类型引起多少需求命中的计数器的高速缓存400的一个实现方式的框图。当针对给定地址对高速缓存400执行查找时,使用给定地址的标记410、组415和偏移420部分来访问高速缓存400的各种结构。地址的组部分415用于选择高速缓存400的给定组,然后比较器425将地址的标签部分410与存储在给定组的路405中的标签进行比较。在所示示例中,高速缓存400的给定组包括四个路405(路0到路3),但是在其他高速缓存中可以实现更多或更少的路。
如果在地址的标签部分410的路405中的一个中找到匹配,则从对应的最后访问类型字段430中检索最后访问类型。如果访问是需求命中(即,加载命中或存储命中),则将最后访问类型提供给比较逻辑440。根据最后访问类型,对应的计数器递增。例如,如果最后访问类型是加载,则加载计数器445递增。如果最后访问类型是存储,则存储计数器450递增。如果最后访问类型是预取,则预取计数器455递增。否则,如果最后访问类型是写回,则写回计数器460递增。
当访问次数达到某个可编程阈值数时,则高速缓存控制器执行排序阶段465以根据其计数按降序对计数器445、450、455和460进行排序。然后,高速缓存控制器执行分配优先级阶段470以将优先级分配给经排序的计数器445、450、455和460。具有最高计数的计数器获得最高优先级,具有次高计数的计数器获得次高优先级,依此类推。然后,当高速缓存控制器正在搜索要逐出的高速缓存行时,使用优先级来确定替换策略。换句话说,当高速缓存控制器需要将高速缓存行逐出时,高速缓存控制器会将优先级为最低的高速缓存行逐出。
现在参考图5,示出了用于基于最后访问类型设置高速缓存行的优先级的方法500的一个实现方式。出于论述的目的,按顺序次序示出此实现方式中的步骤和图6的那些步骤。然而,应注意,在所描述方法的各种实现方式中,同时执行、按与所示不同的次序执行、或者完全省略所描述要素中的一个或多个。也根据需要执行其他附加要素。本文中所描述的各种系统或设备中的任一者被配置为实现方法500。
计数器由高速缓存控制器针对每种不同的访问类型进行维护(框505)。在一个实现方式中,存在用于加载、存储、预取和写回这四种单独的访问类型的四个计数器。在其他实现方式中,其他数量的计数器可以跟踪其他数量的不同访问类型。例如,在另一个实现方式中,多个计数器可以跟踪多种不同类型的加载,其中第一计数器跟踪来自第一应用程序的加载,第二计数器跟踪来自第二应用程序的加载,等等。其他计数器可以跟踪来自每个单独应用程序的存储、来自每个单独应用程序的预取以及来自每个应用程序的写回。在其他实现方式中,高速缓存控制器可以跟踪其他类型的访问类型。在一个实现方式中,高速缓存中的所有组共享同一群组的访问类型计数器。在另一个实现方式中,存在多群组的计数器,其中每一群组的计数器由高速缓存组的一部分共享。在另外的实现方式中,单群组的计数器跟踪几个代表性组而不是整个高速缓存。
当高速缓存接收到的请求产生需求命中(例如,加载命中、存储命中)时,检索对应于命中高速缓存行的最后访问类型字段(框510)。接下来,使与由检索到的最后访问类型字段指定的访问类型相对应的计数器递增(框515)。如果进行了少于阈值数量的高速缓存访问(条件框520,“否”分支),则方法500返回到框510。如果高速缓存访问的数量已经达到阈值数量(条件框520,“是”分支),则访问类型计数器按降序排序,并且基于排序次序将优先级分配给访问类型(框525)。接下来,优先级用于确定用于选择要逐出的高速缓存行的替换策略(框530)。例如,如果预取访问类型计数器具有所有计数器中的最低值,则高速缓存控制器将优先选择最后被预取访问访问的高速缓存行逐出。在另一个示例中,如果加载访问类型计数器具有所有计数器中的最高值,则高速缓存控制器将尝试保留最后被加载访问访问的那些高速缓存行。在框530之后,方法500结束。应注意,方法500可以周期性地或响应于检测到某个事件(例如,应用程序的新阶段开始)来执行以更新不同访问类型的优先级。
现在转到图6,示出了用于选择高速缓存行以进行逐出的方法600的一个实现方式。高速缓存控制器检测给定请求的高速缓存未命中(框605)。响应于检测到未命中,高速缓存控制器搜索要逐出的高速缓存行以为给定请求所针对的数据腾出空间(框610)。接下来,高速缓存控制器基于最近的跟踪间隔确定哪种访问类型具有最低优先级(框615)。在各种实施方案中,间隔是给定的时间段、给定数量的时钟周期、给定数量的事务或访问等。在与(图5的)方法500相关联的讨论中描述了基于最近的跟踪间隔确定哪种访问类型具有最低优先级的一个示例。然后,高速缓存控制器搜索具有与最低优先级访问类型匹配的最后访问类型字段的高速缓存行(框620)。
如果找到具有设置为最低优先级访问类型的最后访问类型字段的高速缓存行(条件框625,“是”分支),则高速缓存控制器将此高速缓存行逐出(框630)。否则,如果未找到具有设置为最低优先级访问类型的最后访问字段的高速缓存行(条件框625,“否”分支),则高速缓存控制器确定其他剩余访问类型中的哪个访问类型具有最低优先级(框640)。如果找到具有设置为此次低优先级访问类型的最后访问字段的高速缓存行(条件框645,“是”分支),则高速缓存控制器将此高速缓存行逐出(框650)。否则,如果未找到具有设置为此次低优先级访问类型的最后访问字段的高速缓存行(条件框645,“否”分支),则方法600返回到框640,其中高速缓存控制器确定其他剩余访问类型中的哪个访问类型具有最低优先级。在框630和650之后,高速缓存控制器将新的高速缓存行存储在被逐出的高速缓存行的路中(框635)。在框650之后,方法600结束。
在各种实现方式中,使用软件应用程序的程序指令来实现本文描述的方法和/或机制。例如,设想到可由通用处理器或专用处理器执行的程序指令。在各种实现方式中,此类程序指令由高级编程语言表示。在其他实现方式中,程序指令从高级编程语言编译成二进制形式、中间形式或其他形式。替代地,写入描述硬件的行为或设计的程序指令。此类程序指令由诸如C的高级编程语言表示。替代地,使用诸如Verilog的硬件设计语言(HDL)。在各种实现方式中,程序指令存储在多种非暂时性计算机可读存储介质中的任一种上。在使用期间,计算系统可访问存储介质,以将程序指令提供到计算系统以用于程序执行。一般来讲,此类计算系统至少包括一个或多个存储器和被配置为执行程序指令的一个或多个处理器。
应强调,上述实现方式仅是实现方式的非限制性示例。一旦充分了解上述公开内容,许多变型和修改将对本领域技术人员显而易见。所附权利要求意图被解释为涵盖所有此类变型和修改。
Claims (20)
1.一种系统,其包括:
处理器;以及
高速缓存,所述高速缓存被配置为:
针对多个高速缓存行中的每一行维护最后访问类型指示;
维护多个计数器,其中所述多个计数器中的每一个跟踪多个不同访问类型中的每一个的数量;
将最低优先级分配给对应于具有最低数量的需求命中的计数器的给定访问类型,其中需求命中是针对加载操作或存储操作对所述高速缓存的命中;以及
响应于检测到高速缓存未命中,优先逐出具有设置为被分配所述最低优先级的所述给定访问类型的最后访问类型字段的高速缓存行。
2.根据权利要求1所述的系统,其中响应于检测到对第一高速缓存行的需求命中,所述高速缓存还被配置为:
响应于检测到所述第一高速缓存行具有设置为预取访问类型的最后访问类型字段而使第一计数器递增;以及
响应于检测到所述第一高速缓存行具有设置为写回访问类型的最后访问类型字段而使第二计数器递增。
3.根据权利要求1所述的系统,其中所述高速缓存被配置为:
将最高优先级分配给具有具最高数量的需求命中的计数器的第一访问类型;以及
优先保留具有设置为所述第一访问类型的最后访问类型字段的高速缓存行。
4.根据权利要求1所述的系统,其中所述高速缓存还被配置为根据最近时间间隔内每个计数器的需求命中数对所述多个计数器进行排序。
5.根据权利要求1所述的系统,其中所述高速缓存还被配置为将所述最后访问类型指示存储在对应高速缓存行的第一标签条目的最后访问类型字段中。
6.根据权利要求1所述的系统,其中所述给定访问类型是预取访问类型。
7.根据权利要求1所述的系统,其中所述给定访问类型是写回访问类型。
8.一种方法,其包括:
由高速缓存针对多个高速缓存行中的每一行维护最后访问类型指示;
维护多个计数器,其中所述多个计数器中的每一个跟踪多个不同访问类型中的每一个的数量;
将最低优先级分配给对应于具有最低数量的需求命中的计数器的给定访问类型,其中需求命中是针对加载操作或存储操作对所述高速缓存的命中;以及
响应于检测到高速缓存未命中,优先逐出具有设置为被分配所述最低优先级的所述给定访问类型的最后访问类型字段的高速缓存行。
9.根据权利要求8所述的方法,其中响应于检测到对第一高速缓存行的需求命中,所述方法还包括:
响应于检测到所述第一高速缓存行具有设置为预取访问类型的最后访问类型字段而使第一计数器递增;以及
响应于检测到所述第一高速缓存行具有设置为写回访问类型的最后访问类型字段而使第二计数器递增。
10.根据权利要求8所述的方法,其还包括:
将最高优先级分配给具有所述多个计数器中具有最高数量的需求命中的计数器的第一访问类型;以及
优先保留具有设置为所述第一访问类型的最后访问类型字段的高速缓存行。
11.根据权利要求8所述的方法,其还包括根据最近时间间隔内每个计数器的需求命中数对所述多个计数器进行排序。
12.根据权利要求8所述的方法,其还包括将所述最后访问类型指示存储在对应高速缓存行的第一标签条目的最后访问类型字段中。
13.根据权利要求8所述的方法,其中所述给定访问类型是预取访问类型。
14.根据权利要求8所述的方法,其中所述给定访问类型是写回访问类型。
15.一种高速缓存,其包括:
数据存储区;以及
高速缓存控制器,所述高速缓存控制器被配置为:
在所述数据存储区中针对多个高速缓存行中的每一行维护所述数据存储区中的最后访问类型指示;
维护多个计数器,其中所述多个计数器中的每一个跟踪多个不同访问类型中的每一个的数量;
将最低优先级分配给对应于具有最低数量的需求命中的计数器的给定访问类型,其中需求命中是针对加载操作或存储操作对所述高速缓存的命中;以及
响应于检测到高速缓存未命中,优先逐出具有设置为被分配所述最低优先级的所述给定访问类型的最后访问类型字段的高速缓存行。
16.根据权利要求15所述的处理器,其中响应于检测到对第一高速缓存行的需求命中,所述高速缓存控制器还被配置为:
响应于检测到所述第一高速缓存行具有设置为预取访问类型的最后访问类型字段而使第一计数器递增;以及
响应于检测到所述第一高速缓存行具有设置为写回访问类型的最后访问类型字段而使第二计数器递增。
17.根据权利要求15所述的处理器,其中所述高速缓存控制器还被配置为:
将最高优先级分配给具有所述多个计数器中具有最高数量的需求命中的计数器的第一访问类型;以及
优先保留具有设置为所述第一访问类型的最后访问类型字段的高速缓存行。
18.根据权利要求15所述的处理器,其中所述高速缓存控制器还被配置为根据最近时间间隔内每个计数器的需求命中数对所述多个计数器进行排序。
19.根据权利要求15所述的处理器,其中所述给定访问类型是预取访问类型。
20.根据权利要求15所述的处理器,其中所述给定访问类型是写回访问类型。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/716,194 US11768779B2 (en) | 2019-12-16 | 2019-12-16 | Cache management based on access type priority |
US16/716,194 | 2019-12-16 | ||
PCT/US2020/064884 WO2021126777A1 (en) | 2019-12-16 | 2020-12-14 | Cache management based on access type priority |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114830101A true CN114830101A (zh) | 2022-07-29 |
Family
ID=74175955
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080087186.2A Pending CN114830101A (zh) | 2019-12-16 | 2020-12-14 | 基于访问类型优先级的高速缓存管理 |
Country Status (6)
Country | Link |
---|---|
US (1) | US11768779B2 (zh) |
EP (1) | EP4078387B1 (zh) |
JP (1) | JP2023506264A (zh) |
KR (1) | KR20220110225A (zh) |
CN (1) | CN114830101A (zh) |
WO (1) | WO2021126777A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113778693B (zh) * | 2021-11-12 | 2022-02-08 | 北京壁仞科技开发有限公司 | 缓存操作方法、缓存操作装置、电子设备及处理器 |
KR102579320B1 (ko) | 2023-04-19 | 2023-09-18 | 메티스엑스 주식회사 | 캐시 메모리 장치 및 이를 이용하는 캐시 스케줄링 구현 방법 |
KR102579319B1 (ko) | 2023-04-19 | 2023-09-18 | 메티스엑스 주식회사 | 캐시 메모리 장치 및 이를 이용하는 캐시 스케줄링 구현 방법 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003131946A (ja) * | 2001-10-19 | 2003-05-09 | Nec Corp | キャッシュメモリ制御装置及び方法 |
US8688915B2 (en) | 2011-12-09 | 2014-04-01 | International Business Machines Corporation | Weighted history allocation predictor algorithm in a hybrid cache |
US10152421B2 (en) * | 2015-11-23 | 2018-12-11 | Intel Corporation | Instruction and logic for cache control operations |
EP3388935B1 (en) * | 2016-01-06 | 2021-09-29 | Huawei Technologies Co., Ltd. | Cache management method, cache controller and computer system |
US10007614B2 (en) * | 2016-02-02 | 2018-06-26 | Cavium, Inc. | Method and apparatus for determining metric for selective caching |
US10268600B2 (en) | 2017-09-12 | 2019-04-23 | Intel Corporation | System, apparatus and method for prefetch-aware replacement in a cache memory hierarchy of a processor |
US11429529B2 (en) * | 2019-11-21 | 2022-08-30 | Arm Limited | Prefetching based on detection of interleaved constant stride sequences of addresses within a sequence of demand target addresses |
-
2019
- 2019-12-16 US US16/716,194 patent/US11768779B2/en active Active
-
2020
- 2020-12-14 EP EP20839190.4A patent/EP4078387B1/en active Active
- 2020-12-14 JP JP2022536763A patent/JP2023506264A/ja active Pending
- 2020-12-14 WO PCT/US2020/064884 patent/WO2021126777A1/en unknown
- 2020-12-14 KR KR1020227020575A patent/KR20220110225A/ko unknown
- 2020-12-14 CN CN202080087186.2A patent/CN114830101A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2021126777A1 (en) | 2021-06-24 |
EP4078387A1 (en) | 2022-10-26 |
EP4078387B1 (en) | 2023-11-15 |
US20210182216A1 (en) | 2021-06-17 |
JP2023506264A (ja) | 2023-02-15 |
US11768779B2 (en) | 2023-09-26 |
KR20220110225A (ko) | 2022-08-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10387315B2 (en) | Region migration cache | |
US10831678B2 (en) | Multi-tier cache placement mechanism | |
US10007614B2 (en) | Method and apparatus for determining metric for selective caching | |
EP1654660B1 (en) | A method of data caching | |
US7552286B2 (en) | Performance of a cache by detecting cache lines that have been reused | |
US7571285B2 (en) | Data classification in shared cache of multiple-core processor | |
EP4078387B1 (en) | Cache management based on access type priority | |
US20140181402A1 (en) | Selective cache memory write-back and replacement policies | |
CN111052095B (zh) | 使用动态预取深度的多行数据预取 | |
US9251069B2 (en) | Mechanisms to bound the presence of cache blocks with specific properties in caches | |
US20170168957A1 (en) | Aware Cache Replacement Policy | |
KR102453192B1 (ko) | 다른 캐시에서의 엔트리들의 가용성을 기반으로 한 캐시 엔트리 교체 | |
US20110320720A1 (en) | Cache Line Replacement In A Symmetric Multiprocessing Computer | |
US20180113815A1 (en) | Cache entry replacement based on penalty of memory access | |
US9406361B2 (en) | Low latency, high bandwidth memory subsystem incorporating die-stacked DRAM | |
US9128856B2 (en) | Selective cache fills in response to write misses | |
US20110055482A1 (en) | Shared cache reservation | |
US20210182213A1 (en) | Cache line re-reference interval prediction using physical page address | |
US11321235B2 (en) | Cache memory device, system including the same, and method of operating the same | |
Jokar et al. | Cooperative nv-numa: prolonging non-volatile memory lifetime through bandwidth sharing | |
US20190196974A1 (en) | Tag accelerator for low latency dram cache | |
US20060101208A1 (en) | Method and apparatus for handling non-temporal memory accesses in a cache | |
US9734071B2 (en) | Method and apparatus for history-based snooping of last level caches |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
CB03 | Change of inventor or designer information | ||
CB03 | Change of inventor or designer information |
Inventor after: Yin Jieming Inventor after: Jingzi Exeter Inventor after: Suhashi Setumurugan Inventor before: Yin Jieming Inventor before: Jingzi Exeter Inventor before: Suhashi Setumurugan |
|
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |