CN114297100B - 用于缓存的写策略调整方法、缓存装置及计算设备 - Google Patents
用于缓存的写策略调整方法、缓存装置及计算设备 Download PDFInfo
- Publication number
- CN114297100B CN114297100B CN202111626537.5A CN202111626537A CN114297100B CN 114297100 B CN114297100 B CN 114297100B CN 202111626537 A CN202111626537 A CN 202111626537A CN 114297100 B CN114297100 B CN 114297100B
- Authority
- CN
- China
- Prior art keywords
- write
- cache
- write strategy
- count
- monitoring
- 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
- 238000000034 method Methods 0.000 title claims abstract description 49
- 238000012544 monitoring process Methods 0.000 claims abstract description 124
- 230000004044 response Effects 0.000 claims abstract description 42
- 238000012545 processing Methods 0.000 claims description 72
- 230000003044 adaptive effect Effects 0.000 claims description 4
- 238000013459 approach Methods 0.000 claims description 2
- 230000006870 function Effects 0.000 abstract description 9
- 238000010586 diagram Methods 0.000 description 10
- 230000008901 benefit Effects 0.000 description 7
- 230000002349 favourable effect Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000003247 decreasing effect Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000005641 tunneling Effects 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
Images
Classifications
-
- 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
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明提供了用于缓存的写策略调整方法、缓存装置及计算设备,缓存包括与下级存储器以组相联模式映射的多个缓存组,该方法包括:在多个缓存组中设置多个监测组和多个跟随组,监测组包括被配置为写回及写分配模式的第一监测组和被配置为直写及非写分配模式的第二监测组;监控第一监测组和第二监测组各自响应于缓存访问请求而执行的实例模式,并根据实例模式自适应调整跟随组的写策略。利用上述方法,能够针对动态变化的缓存访问场景而自适应调整写策略,进而使缓存功能得到优化。
Description
技术领域
本发明属于缓存领域,具体涉及用于缓存的写策略调整方法、缓存装置及计算设备。
背景技术
本部分旨在为权利要求书中陈述的本发明的实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
现代处理器(如CPU、GPU、DPU等)为了提高系统性能,一般都会设计有高速缓存(cache),甚至多层级缓存。其中缓存单元被配置为存储由处理器执行单元在存储器中所访问的数据的本地副本,从而使得如果再次需要访问那些数据,则可以通过访问被存储在缓存中的本地副本来避免重新访问存储器中的数据。
关于缓存的写策略,处理器一般只能从写回策略和直写策略中选择一种缓存写策略,但是一种策略不能对所有缓存访问场景都友好,缓存功能因此受到不利影响。
发明内容
针对上述现有技术中存在的问题,提出了一种用于缓存的写策略调整方法、缓存装置及计算设备,能够解决上述问题。
本发明提供了以下方案。
第一方面,提供一种用于缓存的写策略调整方法,缓存包括与下级存储器以组相联模式映射的多个缓存组,方法包括:在多个缓存组中设置多个监测组和多个跟随组,监测组包括被配置为写回及写分配模式的第一监测组和被配置为直写及非写分配模式的第二监测组;监控第一监测组和第二监测组各自响应于缓存访问请求而执行的实例模式,并根据实例模式自适应调整跟随组的写策略。
在一些实施例中,根据实例模式自适应调整跟随组的写策略,还包括:设置写策略计数,当实例模式满足多种预设情况中的任意一种预设情况时,对写策略计数进行多种预设操作中对应于任意一种预设情况的调整操作;以及,在写策略计数满足第一阈值条件的情况下,将跟随组配置为写回及写分配模式;在写策略计数满足第二阈值条件的情况下,将跟随组配置为直写及非写分配模式。
在一些实施例中,对写策略计数进行对应于任意一种预设情况的调整操作至少包括:对写策略计数进行第一方向处理和/或第二方向处理;第一方向处理为使写策略计数更接近第一阈值条件的一种或多种处理方式;第二方向处理为使写策略计数更接近第二阈值条件的一种或多种处理方式。
在一些实施例中,在第一监测组响应于缓存访问请求发生写命中的情况下,对写策略计数进行第一方向处理。
在一些实施例中,在第一监测组响应于缓存访问请求发生缓存未命中(miss)且清除包含脏数据的缓存块的情况下,对写策略计数进行第二方向处理
在一些实施例中,在第二监测组响应于缓存访问请求发生写未命中的情况下,对写策略计数进行第二方向处理。
在一些实施例中,当第二监测组响应于缓存访问请求发生写命中的情况下,对写策略计数进行第一方向处理。
在一些实施例中,在第一监测组的每个缓存块(cacheline)设置分配位,用于记录每个缓存块当前为读缓存块或写缓存块;其中,每个缓存块的分配位根据上一次命中缓存块的请求类型确定或者根据开辟缓存块的请求类型确定。
在一些实施例中,在第一监测组响应于缓存访问请求发生读命中写缓存块的情况下,对写策略计数进行第一方向处理。
在一些实施例中,当写策略计数满足第一阈值条件时,暂停进行第一方向处理;当写策略计数满足第二阈值条件时,暂停进行第二方向处理。
在一些实施例中,根据实例模式自适应调整跟随组的写策略,还包括:在跟随组的每个缓存块(cacheline)设置策略位,策略位用于记录每个缓存块当前为写回模式或者直写模式;根据策略位和写策略计数周期性地调整跟随组的写策略。
在一些实施例中,用于执行并行任务的处理器执行单元向缓存发送的缓存访问请求携带并行任务编号,方法还包括:分别设置针对每个并行任务编号的写策略计数;监控第一监测组和第二监测组响应于携带并行任务编号的缓存访问请求而执行的实例模式;根据实例模式对并行任务编号对应的写策略计数进行调整操作;根据每个并行任务编号对应的写策略计数自适应调整跟随组对应于每个并行任务的写策略。
在一些实施例中,根据每个并行任务编号的写策略计数自适应调整跟随组对应于每个并行任务的写策略,还包括:当任意一个或多个跟随组接收到携带并行任务编号的缓存访问请求时,根据并行任务编号确定对应的写策略计数;根据并行任务编号对应的写策略计数、第一阈值条件和第二阈值条件,调整任意一个或多个跟随组的写策略。
在一些实施例中,一个或多个并行任务编号具有各自独立设置的第一阈值条件和第二阈值条件,和/或,一个或多个并行任务编号共享相同的第一阈值条件和第二阈值条件。
在一些实施例中,还包括:将监控获得的当前的写策略计数上传给上位机软件,上位机软件控制处理器执行单元向缓存发送携带写策略的缓存访问请求;当任意一个或多个跟随组接收到携带写策略的缓存访问请求时,按照写策略调整自身的写策略。
在一些实施例中,还包括:由上位机软件可调整地生成全局阈值组并下发到缓存中,全局阈值组包括第一阈值和第二阈值,以在缓存中形成针对全局任务的第一阈值条件和第二阈值条件。
在一些实施例中,还包括:由上位机软件可调整地生成并行任务阈值组并下发到缓存中,并行任务阈值组包括:并行任务编号及其对应的第一分阈值和第二分阈值,以在缓存中形成针对并行任务编号的第一阈值条件和第二阈值条件。
第二方面,提供一种缓存装置,其被配置为用于执行第一方面的方法,缓存装置包括:与下级存储器以组相联模式映射的多个缓存组,其中,多个缓存组中包括多个监测组和多个跟随组,监测组包括被配置为写回及写分配模式的第一监测组和被配置为直写及非写分配模式的第二监测组;缓存装置还包括:监控模块,用于监控第一监测组和第二监测组各自响应于缓存访问请求而执行的实例模式,并根据实例模式自适应调整跟随组的写策略。
第三方面,提供一种计算设备,包括:至少一个处理器执行单元;如第二方面的缓存装置,其中缓存装置与处理器执行单元连接;以及,与至少一个处理器执行单元通信连接的下级存储器,缓存装置与下级存储器之间以组相联模式连接。
上述实施例的优点之一,通过监控监测组响应于缓存访问请求而执行的实例模式,能够针对动态变化的缓存访问场景而自适应调整写策略,进而使缓存功能得到优化。
本发明的其他优点将配合以下的说明和附图进行更详细的解说。
应当理解,上述说明仅是本发明技术方案的概述,以便能够更清楚地了解本发明的技术手段,从而可依照说明书的内容予以实施。为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举例说明本发明的具体实施例。
附图说明
通过阅读下文的示例性实施例的详细描述,本领域普通技术人员将明白本文所述的优点和益处以及其他优点和益处。附图仅用于示出示例性实施例的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的标号表示相同的部件。在附图中:
图1为根据本发明一实施例的计算设备的结构示意图;
图2为根据本发明一实施例的用于缓存的写策略调整方法的流程示意图;
图3为根据本发明一实施例的针对第一监测组的写策略计数调整流程示意图;
图4为根据本发明一实施例的针对第二监测组的写策略计数调整流程示意图;
图5为根据本发明一实施例的针对第一监测组的另一写策略计数调整流程示意图;
图6为根据本发明一实施例的针对第二监测组的另一写策略计数调整流程示意图;
图7为根据本发明一实施例的针对跟随组的写策略调整流程示意图;
图8为根据本发明一实施例的针对跟随组的写策略的示例性动态调整图;
图9为根据本发明又一实施例的缓存装置的结构示意图。
在附图中,相同或对应的标号表示相同或对应的部分。
其中,附图中符号的简单说明如下:
处理器执行单元10;缓存装置20;下级存储器30;第一监测组21;第二监测组22;跟随组23;监控模块24。
具体实施例
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域技术人员。
在本申请实施例的描述中,应理解,诸如“包括”或“具有”等术语旨在指示本说明书中所公开的特征、数字、步骤、行为、部件、部分或其组合的存在,并且不旨在排除一个或多个其他特征、数字、步骤、行为、部件、部分或其组合存在的可能性。
除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”等的特征可以明示或者隐含地包括一个或者更多个该特征。在本申请实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
本申请中的所有代码都是示例性的,本领域技术人员根据所使用的编程语言,具体的需求和个人习惯等因素会在不脱离本申请的思想的条件下想到各种变型。
现代处理器(如CPU、GPU、DPU等)为了提高系统性能,一般都会设计有高速缓存(cache),甚至多层级缓存。其中缓存单元被配置为存储由处理器执行单元在存储器中所访问的数据的本地副本,从而使得如果再次需要访问那些数据,则可以通过访问被存储在缓存中的本地副本来避免重新访问存储器中的数据。
对于处理器执行单元发出的一个写操作,常见的写命中(write hit)的处理方式有写回(write back)和直写(write through)两种;写未命中(write miss)的处理方式有写分配(write allocate)和非写分配(write-no allocate)两种。无论是直写还是写回都可以使用写未命中的两种处理方式之一。然而,通常写回策略会和写分配策略搭配,而直写策略会和非写分配策略搭配。
但是传统方案存在如下问题:处理器一般只能从写回策略和直写策略中选择一种缓存写策略,但是一种策略不能对所有缓存访问场景都友好,尤其是针对动态变化的缓存访问场景,传统方案并不能满足自适应调整写策略的需求。
为了至少部分地解决上述问题以及其他潜在问题中的一个或者多个,本公开的示例实施例提出了一种缓存的写策略调整的方案。在该方案中,将高速缓存中与下级存储器以组相联模式映射的多个缓存组分为多个监测组和多个跟随组,其中监测组包括被配置为写回及写分配模式的第一监测组和被配置为直写及非写分配模式的第二监测组;进而监控所述第一监测组和所述第二监测组各自响应于缓存访问请求而执行的实例模式,并根据所述实例模式自适应调整所述跟随组的写策略。
以此方式,能够针对动态变化的缓存访问场景而自适应调整写策略,进而使缓存功能得到优化。
下面将参考附图并结合实施例来详细说明本发明。
首先参见图1,其示意性示出了其中可以使用根据本公开的示例性实现方式的环境100的示意图。
图1示出了根据本公开的实施例的计算设备100的示例的示意图。需要说明的是,图1即可为用于缓存的写策略调整方法的硬件运行环境的结构示意图。
如图1所示,该计算设备100可以包括:处理器执行单元10,例如CPU、GPU、NPU等处理器的执行单元;连接至处理器执行单元10的缓存装置20,其可以是高速缓存cache,例如是处理器中的L1、L2缓存,上述处理器执行单元10和缓存装置20可以组合成为处理器核心。连接至处理器执行单元10与缓存装置20的下级存储器30,例如设备主存,例如可以通过通信总线实现连接通信。本领域技术人员可以理解,图1中示出的计算设备结构并不构成对计算设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
在图1所示的计算设备中,缓存装置20可以被配置为执行以下操作:将缓存中与下级存储器30以组相联模式映射的多个缓存组分为多个监测组和多个跟随组,其中监测组包括被配置为写回及写分配模式的第一监测组和被配置为直写及非写分配模式的第二监测组;监控第一监测组和第二监测组各自响应于处理器执行单元10下发的缓存访问请求而执行的实例模式,该实例模式是指监测组响应于缓存访问请求而执行的缓存动作的实例模式,并根据实例模式自适应调整跟随组的写策略。由此,能够针对动态变化的缓存访问场景而自适应调整写策略,进而使缓存功能得到优化。
图2示出了根据本公开的实施例的用于执行高速缓存的写策略调整方法的流程图。该方法例如可以由如图1所示的计算设备100来执行。应当理解的是,方法200还可以包括未示出的附加框和/或可以省略所示出的框,本公开的范围在此方面不受限制。
在框202,在多个缓存组中设置多个监测组和多个跟随组,监测组包括被配置为写回及写分配模式的第一监测组和被配置为直写及非写分配模式的第二监测组;
多个缓存组(cache set)为高速缓存(cache)中与下级存储器以组相联模式映射的多个缓存组,每个缓存组包括多个缓存块(cacheline,也可成为缓存行)。跟随组的数量可以远多于监测组。
第一监测组由于被配置为写回及写分配模式,因此其在接收到写缓存访问请求之后,如发生写命中(write hit)则只写入缓存而不立即写入后级存储器,且只在该行数据被替换出缓存时才写回后级存储;如发生写未命中(write miss)则会将对应地址的数据从下级存储器先读入缓存,然后再对缓存进行写命中操作。为支持这种策略,每个缓存块可以配置一个脏位,用于指示该缓存块是否存储与后级存储器不一致的“脏数据”。
第二监测组由于被配置为直写及非写分配模式,因此当其接收到写缓存访问请求之后,如发生写命中(write hit)会同时写入缓存和后级存储,如发生写未命中(writemiss)则直接将数据写入后级存储器。
跟随组可以配置一个初始的写策略,比如按照经验配置为写回及写分配模式,以使其在初始情况下能够正常运行。
例如,假设某个2MB的高速缓存(cache),每个缓存块(cacheline)的大小为128byte,分为1024个缓存组(cache set),每个缓存组有16路。可以分别选择其中16个缓存组作为第一监测组以及第二监测组,其也可分别称为写回组(WriteBack set)和直写组(WriteThrough set),其他更多的缓存组作为跟随组(follower set)。由此在后续步骤中可以利用配置的该写回组和直写组统计分析出适合跟随组的写策略。
在框204,监控第一监测组和第二监测组各自响应于缓存访问请求而执行的实例模式(case pattern),并根据实例模式自适应调整跟随组的写策略。
实例模式(case pattern)是指上述监测组的缓存块响应于接收到的缓存访问请求而对应发生的事件,包括但不限于:写命中、读命中、写未命中、读未命中,清除包含脏数据的缓存块等等。
具体地,自适应调整跟随组的写策略可以是将跟随组的写策略在写回及写分配策略以及直写及非写分配策略之间切换。可选地,可以将跟随组进行整体切换,也可以将跟随组中的一个或多个组进行分别的切换,也可以将跟随组中一个或多个缓存块进行分别的切换,本申请对此不作具体限制。
可以理解,写回及写分配模式和直写及非写分配模式分别适用于不同的缓存访问场景,例如,直写及非写分配模式不利于写命中实例过多的场景,而写回及写分配模式不利于写未命中实例过多的场景,等等。因此,针对当前动态变化的缓存访问场景,通过监控上述第一监测组和第二监测组各自响应于缓存访问请求而执行的实例模式,能实时统计判断当前的缓存访问场景更适合的写策略,从而动态调整跟随组的写策略。
由此,能够针对动态变化的缓存访问场景自适应调整缓存的写策略,进而使缓存功能得到优化。
在一些实施例中,可以设置写策略计数(write policy counter),当实例模式满足多种预设情况中的任意一种预设情况时,对写策略计数进行多种预设操作中对应于任意一种预设情况的调整操作;以及,在写策略计数满足第一阈值条件的情况下,将跟随组配置为写回及写分配模式;在写策略计数满足第二阈值条件的情况下,将跟随组配置为直写及非写分配模式。由此可以根据实例模式自适应调整跟随组的写策略。
上述多种预设情况比如可以是第一监测组响应于缓存访问请求发生写命中、第一监测组响应于缓存访问请求发生读命中、第一监测组响应于缓存访问请求发生未命中(miss)、第一监测组响应于缓存访问请求清除包含脏数据的缓存块、第二监测组响应于缓存访问请求发生写命中、第二监测组响应于缓存访问请求发生写未命中等能够发生的多种预设情况。且每种预设情况都会存在相对应的调整操作。
第一阈值条件也即根据第一阈值而设置的条件,比如小于/等于/大于第一阈值都可作为该第一阈值条件,第二阈值条件与其类似。
在一些实施例中,可以由上位机软件可调整地生成全局阈值组并下发到所述缓存中,全局阈值组包括第一阈值和第二阈值,以在所述缓存中形成针对全局任务的第一阈值条件和第二阈值条件。进而可以在运行过程中实时根据场景调整该第一阈值条件和第二阈值条件。
在一些实施例中,对写策略计数进行对应于任意一种预设情况的调整操作至少包括:
对写策略计数进行第一方向处理和/或第二方向处理;第一方向处理为使写策略计数更接近第一阈值条件的一种或多种处理方式;第二方向处理为使写策略计数或更接近第二阈值条件的一种或多种处理方式。
例如,以第一阈值条件为小于或等于第一阈值、第二阈值为大于或等于第二阈值,且第一阈值小于第二阈值为例,第一方向处理可以是使得写策略计数得以减小的任意一种处理方式,比如减法处理等,第二方向处理可以是使得写策略计数得以增加的任意一种处理方式,比如加法处理等。
可以理解,不同的预设情况也可能同样对应于第一方向处理或第二方向处理,但进一步可以使不同的预设情况对应于不同程度的第一方向处理或第二方向处理,比如可以按照影响程度控制加/减的粒度。
以下,结合多个实施例对上述对写策略计数进行多种预设操作中对应于任意一种预设情况的调整操作进行详细阐述。
针对第一监测组,可以统计其发生写命中(write hit)、缓存未命中(cachemiss)、清除包含脏数据的缓存块以及读命中写缓存块等多种实例模式,并据此对写策略计数进行相应地调整处理,具体如下所述。
在一些实施例中,在第一监测组响应于缓存访问请求发生写命中的情况下,对写策略计数进行第一方向处理。如上文所描述的,第一方向处理是使得写策略计数更接近第一阈值条件的处理方式,也即更有利于切换为写回及写分配模式的处理方式。可以理解,当写命中情况比较多时,缓存更适合于配置成写回模式,以避免频繁访存后级存储器。
在一些实施例中,在第一监测组响应于缓存访问请求发生缓存未命中(miss)且清除包含脏数据的缓存块的情况下,对写策略计数进行第二方向处理。如上文所描述的,第二方向处理是使得写策略计数更接近第二阈值条件的处理方式,也即更有利于切换为直写模式的处理方式。可以理解,当缓存未命中(miss)时存在三种情况,一种是缓存组中还存在未占用缓存块,此时直接将后级存储器中所需的数据位置拉入该未占用缓存块即可,另一种是缓存组中全部缓存块均已被占用,需要顶替使用其中一个已占用缓存块,此时进一步又分为两种情况:1、该写回后级存储器的已占用缓存块不为“脏数据”,此时直接清除该已占用缓存块,并将后级存储器中所需的数据位置覆盖该已占用缓存块即可;2、该写回后级存储器的已占用缓存块为“脏数据”,也即其脏位(dirty bit)指示其为脏数据,此时需要首先将脏数据写回后级存储器,然后将后级存储器中所需的数据位置替换该已占用缓存块。针对后者的第2种情况,其更适合于配置成直写模式,以避免缓存中存放太多不必要的数据以及过多的总线活动。
上述清除包含脏数据的缓存块意味着将标记为“脏”的缓存块内容写入下一级存储器,并清除缓存块中的脏位,这使得当前的缓存块中的数据与下一级缓存器中的内容相同,实现替换缓存块的前提条件。
在一些实施例中,在第一监测组的每个缓存块(cacheline)设置分配位,用于记录每个缓存块当前为读缓存块或写缓存块;其中,每个缓存冲块的分配位根据上一次命中缓存块的请求类型确定或者根据开辟缓存块的请求类型确定。
对于第一监测组,为了区分统计写命中写缓存块/写命中读缓存块/读命中写缓存块/读命中读的情况,可以用1个bit的分配位来标记一个缓存块是否为写分配缓存块(即写缓存块),比如读缓存块可以标记为0,写缓存块标记为1。上述分配位的更新策略可以按最新的一个缓存访问请求的读/写属性来标记,发生命中时更新此分配位的值。也可以按照开辟此缓存块的第一个请求的读/写属性来定义,过程中不再更新。
对于分配位更新的两种形式,按最新的一个缓存访问请求的读/写属性来标记会使得分配位的更新频率更高,有利于跟踪最新的场景,但频繁更新可能会对写策略计数的更新造成一定的扰动。相反,开辟此缓存块的第一个请求的读/写属性来定义相对稳定,但对于跟踪场景的效果较不敏感。
在一些实施例中,在第一监测组响应于缓存访问请求发生读命中写缓存块的情况下,对写策略计数进行第一方向处理。
针对缓存访问请求为读请求的情况,如果命中的缓存块为读缓存块的情况较多,则无论哪种写策略都不造成影响。而如果是读命中写缓存块的情况较多时,则说明该缓存块之前发生写命中的情况和/或开辟写缓存块的情况比较多,缓存更适合于配置成写回及写分配模式,以避免频繁访存后级存储器。
参考图3,示出了根据第一监测组对写策略计数进行调整的示例性流程框图,其中,在第一监测组接收到缓存访问请求之后,首先判断是否命中;如命中,则进一步判断命中的缓存块的分配位是否为0(也即是否是读缓存块),如非读缓存块则将计数减一,如是读缓存块则进一步判断缓存请求类型是否为读请求,如是读请求则使计数不变,如非读请求则使计数减一;如未命中,则进一步判断是否需要清除缓存块以及该缓存块是否为脏数据,如是则将计数加一,如不是则计数不变。
针对第二监测组,统计其发生写命中、写未命中等多种实例模式,并据此对写策略计数进行相应地调整处理,具体如下所述。
在一些实施例中,在第二监测组响应于缓存访问请求发生写未命中的情况下,对写策略计数进行第二方向处理。如上文所描述的,第二方向处理是使得写策略计数更接近第二阈值条件的处理方式,也即更有利于配置为直写模式的处理方式。可以理解,当写未命中(write miss)情况比较多时,缓存更适合于配置成直写模式,以避免缓存中存放太多不必要的数据。
在一些实施例中,当第二监测组响应于缓存访问请求发生写命中的情况下,对写策略计数进行第一方向处理。如上文所描述的,第一方向处理是使得写策略计数更接近第一阈值条件的处理方式,也即更有利于切换为写回模式的处理方式。可以理解,当写命中情况比较多时,缓存更适合于配置成写回模式,以避免频繁访存后级存储器。
参考图4,示出了根据第二监测组对写策略计数进行调整的示例性流程框图,其中,在第二监测组接收缓存访问请求时,首先判断请求是否为读请求,如是读请求则使计数不变,如是写请求则进一步判断是否命中,如命中则将计数减一,如未命中则将计数加一。
在一些实施例中,为了使写策略计数能够更好地感知场景的动态变化,可以当写策略计数满足第一阈值条件时,暂停进行第一方向处理;当写策略计数满足第二阈值条件时,暂停进行第二方向处理。
以第一阈值小于第二阈值为例,本实施例将写策略计数的可调整范围控制在[第一阈值,第二阈值]之间,范围外的部分则溢出不考虑,如此可以更敏感地感知场景的动态变化,避免当写策略计数远小于第一阈值时/或者远大于第二阈值时需要过多的第一方向处理/过多的第二方向处理或者才能实现写策略调整。
参考图5和图6,示出了另一种写策略计数的调整方式,其分别在图3和图4的基础上将写策略计数的可调整范围控制在[第一阈值,第二阈值]之间。具体地,其在需要对计数减一之前判断该计数是否大于第一阈值,如不大于使得计数不变,如大于则使计数正常减一。且在需要对计数加一之前判断计数是否小于第二阈值,如不小于则使得计数不变,如小于则正常使计数加一。
在一些实施例中,可以在跟随组的每个缓存块(cacheline)设置策略位,策略位用于记录每个缓存块当前为写回模式或者直写模式;根据策略位和写策略计数周期性地调整跟随组的写策略。
参考图7,当跟随组接收到缓存访问请求时,首先判断当前写策略是否是写回模式,如是则进一步判断计数是否等于第二阈值,如是则将跟随组调整为直写及非写分配模式,如不是则不调整。如当前写策略不是写回模式,则进一步判断计数是否等于第一阈值,如是则将跟随组调整为写回及写分配模式,如不是则不调整。上述判断逻辑可以周期性地(比如每拍)循环执行,以实现自适应动态调整写策略。
参考图8,其示出了跟随组的写策略的示例性动态调整图,其中横轴为时间,纵轴为写策略计数的值,可以看出,写策略计数需要增加到第二阈值才会更新到直写模式,且需要减小到第一阈值才会更新到写回模式。由于程序执行时对缓存的冲击可能会有一定的波动性,上述设计上下两个阈值的方法可以防止写策略调换过于频繁。
在一些实施例中,用于执行并行任务的处理器执行单元向缓存发送的缓存访问请求携带并行任务编号,方法还包括:分别设置针对每个并行任务编号的写策略计数;监控第一监测组和第二监测组响应于携带并行任务编号的缓存访问请求而执行的实例模式;根据实例模式对并行任务编号对应的写策略计数进行调整操作;根据每个并行任务编号对应的写策略计数自适应调整跟随组对应于每个并行任务的写策略。
可以理解,考虑到现代处理器都支持并行处理,可以针对不同的并行任务(以可以按照并行任务编号ID来区分)设置不同的写策略计数器,处理器执行单元在发送请求给缓存时需要携带并行任务编号ID,缓存的监测组根据并行任务编号ID修改对应的写策略计数(比如携带该并行任务编号ID)。针对不同的并行任务,其所适合的写策略可能完全不同,通过上述方法可以获得针对不同并行任务而设置的写策略计数,进而可以根据携带某并行任务编号ID的写策略计数对执行该并行任务所使用的一个或多个跟随组进行写策略调整。
在一些实施例中,为了实现根据每个并行任务编号的写策略计数自适应调整跟随组对应于每个并行任务的写策略,可以当任意一个或多个跟随组接收到携带并行任务编号的缓存访问请求时,根据并行任务编号确定对应的写策略计数;根据并行任务编号对应的写策略计数、第一阈值条件和第二阈值条件,调整任意一个或多个跟随组的写策略。
在一些实施例中,一个或多个并行任务编号具有各自独立设置的第一阈值条件和第二阈值条件,和/或,一个或多个并行任务编号共享相同的第一阈值条件和第二阈值条件。也即是说,可以多个并行任务或者全局公用一组(第一阈值条件,第二阈值条件);也可以某一个或多个并行任务分别单独设置不同的(第一阈值条件,第二阈值条件),这种情况下每个并行任务对应的写策略计数和阈值条件均是单独设置的,自适应性调整性能更好。本申请对上述第一阈值条件和第二阈值条件的设置不做具体限制。
在一些实施例中,可以由上位机软件可调整地生成并行任务阈值组并下发到所述缓存中,所述并行任务阈值组包括:并行任务编号及其对应的第一分阈值和第二分阈值,以在所述缓存中形成针对所述并行任务编号的所述第一阈值条件和所述第二阈值条件。由此可以在运行过程中实时根据场景调整针对每个并行任务的第一阈值条件和第二阈值条件。
在一些实施例中,还可以将监控获得的当前的写策略计数上传给上位机软件,上位机软件控制处理器执行单元向缓存发送携带写策略的缓存访问请求;当任意一个或多个跟随组接收到携带写策略的缓存访问请求时,按照写策略调整自身的写策略。
在一些情况下,也可以从软件的角度来对缓存访问请求的写策略进行控制,为此,可以将监测组的监控结果(也即写策略计数的值)反馈给软件。比如可以设置监控寄存器,将写策略计数的值同步更新到监控寄存器;软件可以自主去读取监控寄存器的值,但不能改写。
软件获取到监控结果后,还可以将其附加到处理器执行单元发出的缓存访问请求上,也就是缓存访问请求增加一个写策略的属性控制信号。进一步,落到监测组的缓存访问请求不需要看携带的写策略的属性控制信号。但对于跟随组,即可以使用缓存访问请求中携带的写策略的属性控制信号,也可以根据自主根据监控结果来选择写策略。
在本说明书的描述中,参考术语“一些可能的实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述未必针对相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
关于本申请实施例的方法流程图,将某些操作描述为以一定顺序执行的不同的步骤。这样的流程图属于说明性的而非限制性的。可以将在本文中所描述的某些步骤分组在一起并且在单个操作中执行、可以将某些步骤分割成多个子步骤、并且可以以不同于在本文中所示出的顺序来执行某些步骤。可以由任何电路结构和/或有形机制(例如,由在计算机设备上运行的软件、硬件(例如,处理器或芯片实现的逻辑功能)等、和/或其任何组合)以任何方式来实现在流程图中所示出的各个步骤。
基于相同的技术构思,本发明实施例还提供一种缓存装置,用于执行上述任一实施例所提供的写策略调整方法。
如图9所示,缓存装置20包括:与下级存储器以组相联模式映射的多个缓存组,其中,多个缓存组中包括多个监测组(21,22)和多个跟随组23,监测组包括被配置为写回及写分配模式的第一监测组21和被配置为直写及非写分配模式的第二监测组22;
该缓存装置20还包括:监控模块24,用于监控第一监测组21和第二监测组22各自响应于缓存访问请求而执行的实例模式,并根据实例模式自适应调整跟随组23的写策略。
在一些实施例中,监控模块24被配置为还用于:设置写策略计数,当实例模式满足多种预设情况中的任意一种预设情况时,对写策略计数进行多种预设操作中对应于任意一种预设情况的调整操作;以及,在写策略计数满足第一阈值条件的情况下,将跟随组配置为写回及写分配模式;在写策略计数满足第二阈值条件的情况下,将跟随组配置为直写及非写分配模式。
在一些实施例中,监控模块24被配置为还用于:对写策略计数进行第一方向处理和/或第二方向处理;第一方向处理为使写策略计数更接近第一阈值条件的一种或多种处理方式;第二方向处理为使写策略计数更接近第二阈值条件的一种或多种处理方式。
在一些实施例中,监控模块24被配置为还用于:在第一监测组响应于缓存访问请求发生写命中的情况下,对写策略计数进行第一方向处理。
在一些实施例中,监控模块24被配置为还用于:在第一监测组响应于缓存访问请求发生缓存未命中(miss)且清除包含脏数据的缓存块的情况下,对写策略计数进行第二方向处理
在一些实施例中,监控模块24被配置为还用于:在第二监测组响应于缓存访问请求发生写未命中的情况下,对写策略计数进行第二方向处理。
在一些实施例中,监控模块24被配置为还用于:当第二监测组响应于缓存访问请求发生写命中的情况下,对写策略计数进行第一方向处理。
在一些实施例中,在第一监测组的每个缓存块(cacheline)设置分配位,用于记录每个缓存块当前为读缓存块或写缓存块;其中,每个缓存块的分配位根据上一次命中缓存块的请求类型确定或者根据开辟缓存块的请求类型确定。
在一些实施例中,监控模块24被配置为还用于:在第一监测组响应于缓存访问请求发生读命中写缓存块的情况下,对写策略计数进行第一方向处理。
在一些实施例中,监控模块24被配置为还用于:当写策略计数满足第一阈值条件时,暂停进行第一方向处理;当写策略计数满足第二阈值条件时,暂停进行第二方向处理。
在一些实施例中,在跟随组的每个缓存块(cacheline)设置策略位,策略位用于记录每个缓存块当前为写回模式或者直写模式;监控模块24被配置为还用于:根据策略位和写策略计数周期性地调整跟随组的写策略。
在一些实施例中,用于执行并行任务的处理器执行单元向缓存发送的缓存访问请求携带并行任务编号,监控模块24被配置为还用于:分别设置针对每个并行任务编号的写策略计数;监控第一监测组和第二监测组响应于携带并行任务编号的缓存访问请求而执行的实例模式;根据实例模式对并行任务编号对应的写策略计数进行调整操作;根据每个并行任务编号对应的写策略计数自适应调整跟随组对应于每个并行任务的写策略。
在一些实施例中,监控模块24被配置为还用于:当任意一个或多个跟随组接收到携带并行任务编号的缓存访问请求时,根据并行任务编号确定对应的写策略计数;根据并行任务编号对应的写策略计数、第一阈值条件和第二阈值条件,调整任意一个或多个跟随组的写策略。
在一些实施例中,一个或多个并行任务编号具有各自独立设置的第一阈值条件和第二阈值条件,和/或,一个或多个并行任务编号共享相同的第一阈值条件和第二阈值条件。
在一些实施例中,监控模块24被配置为还用于:将监控获得的当前的写策略计数上传给上位机软件,上位机软件控制处理器执行单元向缓存发送携带写策略的缓存访问请求;当任意一个或多个跟随组接收到携带写策略的缓存访问请求时,按照写策略调整自身的写策略。
需要说明的是,本申请实施例中缓存装置可以实现前述用于缓存的写策略调整方法的实施例的各个过程,并达到相同的效果和功能,这里不再赘述。
图1为根据本申请一实施例的计算设备,其包括:至少一个处理器执行单元;如上述实施例所述的缓存装置,所述缓存装置与所述处理器执行单元连接;以及,与至少一个处理器执行单元通信连接的下级存储器,所述缓存装置与所述下级存储器之间以组相联模式连接。
本申请中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、设备和计算机可读存储介质实施例而言,由于其基本相似于方法实施例,所以其描述进行了简化,相关之处可参见方法实施例的部分说明即可。
本申请实施例提供的装置、设备和计算机可读存储介质与方法是一一对应的,因此,装置、设备和计算机可读存储介质也具有与其对应的方法类似的有益技术效果,由于上面已经对方法的有益技术效果进行了详细说明,因此,这里不再赘述装置、设备和计算机可读存储介质的有益技术效果。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
虽然已经参考若干具体实施例描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施例,对各方面的划分也不意味着这些方面中的特征不能组合,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。
Claims (18)
1.一种用于缓存的写策略调整方法,其特征在于,所述缓存包括与下级存储器以组相联模式映射的多个缓存组,所述方法包括:
在所述多个缓存组中设置多个监测组和多个跟随组,所述监测组包括被配置为写回及写分配模式的第一监测组和被配置为直写及非写分配模式的第二监测组;
监控所述第一监测组和所述第二监测组各自响应于缓存访问请求而执行的实例模式,并根据所述实例模式自适应调整所述跟随组的写策略,其中所述自适应调整至少包括设置写策略计数,当所述实例模式满足多种预设情况中的任意一种预设情况时,对所述写策略计数进行第一方向处理和/或第二方向处理;其中所述实例模式为监测组的缓存块响应于接收到的缓存访问请求而对应发生的事件,以及,至少监控所述第一监测组的以下实例模式:读命中写缓存块,并在所述第一监测组响应于所述缓存访问请求发生读命中写缓存块的情况下,对所述写策略计数进行所述第一方向处理,其中所述缓存块的读/写属性根据上一次命中缓存块的请求类型确定或者根据开辟所述缓存块的请求类型确定。
2.根据权利要求1所述的方法,其特征在于,根据所述实例模式自适应调整所述跟随组的写策略,还包括:
在所述写策略计数满足第一阈值条件的情况下,将所述跟随组配置为写回及写分配模式;以及
在所述写策略计数满足第二阈值条件的情况下,将所述跟随组配置为直写及非写分配模式。
3.根据权利要求2所述的方法,其特征在于,
所述第一方向处理为使所述写策略计数更接近所述第一阈值条件的一种或多种处理方式;
所述第二方向处理为使所述写策略计数更接近所述第二阈值条件的一种或多种处理方式。
4.根据权利要求3所述的方法,其特征在于,还包括:
在所述第一监测组响应于所述缓存访问请求发生写命中的情况下,对所述写策略计数进行所述第一方向处理。
5.根据权利要求3所述的方法,其特征在于,还包括:
在所述第一监测组响应于所述缓存访问请求发生缓存未命中且清除包含脏数据的缓存块的情况下,对所述写策略计数进行第二方向处理。
6.根据权利要求3所述的方法,其特征在于,还包括:
在所述第二监测组响应于所述缓存访问请求发生写未命中的情况下,对所述写策略计数进行第二方向处理。
7.根据权利要求3所述的方法,其特征在于,还包括:
当所述第二监测组响应于所述缓存访问请求发生写命中的情况下,对所述写策略计数进行第一方向处理。
8.根据权利要求3所述的方法,其特征在于,还包括:
在所述第一监测组的每个缓存块设置分配位,用于记录每个缓存块当前为读缓存块或写缓存块;
其中,每个缓存块的所述分配位根据上一次命中所述缓存块的请求类型确定或者根据开辟所述缓存块的请求类型确定。
9.根据权利要求3所述的方法,其特征在于,还包括:
当所述写策略计数满足所述第一阈值条件时,暂停进行所述第一方向处理;
当所述写策略计数满足所述第二阈值条件时,暂停进行所述第二方向处理。
10.根据权利要求2所述的方法,其特征在于,根据所述实例模式自适应调整所述跟随组的写策略,还包括:
在所述跟随组的每个缓存块设置策略位,所述策略位用于记录每个缓存块当前为写回模式或者直写模式;
根据所述策略位和所述写策略计数周期性地调整所述跟随组的写策略。
11.根据权利要求2所述的方法,其特征在于,用于执行并行任务的处理器执行单元向所述缓存发送的所述缓存访问请求携带并行任务编号,所述方法还包括:
分别设置针对每个并行任务编号的写策略计数;
监控所述第一监测组和所述第二监测组响应于携带所述并行任务编号的缓存访问请求而执行的实例模式;
根据所述实例模式对所述并行任务编号对应的写策略计数进行调整操作;
根据每个并行任务编号对应的所述写策略计数自适应调整所述跟随组对应于每个并行任务的写策略。
12.根据权利要求11所述的方法,其特征在于,根据每个并行任务编号的写策略计数自适应调整所述跟随组对应于每个并行任务的写策略,还包括:
当任意一个或多个跟随组接收到携带所述并行任务编号的缓存访问请求时,根据所述并行任务编号确定对应的所述写策略计数;
根据所述并行任务编号对应的所述写策略计数、所述第一阈值条件和所述第二阈值条件,调整所述任意一个或多个跟随组的写策略。
13.根据权利要求11所述的方法,其特征在于,
一个或多个所述并行任务编号具有各自独立设置的所述第一阈值条件和所述第二阈值条件,和/或,一个或多个所述并行任务编号共享相同的所述第一阈值条件和所述第二阈值条件。
14.根据权利要求2所述的方法,其特征在于,还包括:
将监控获得的当前的所述写策略计数上传给上位机软件,所述上位机软件控制处理器执行单元向所述缓存发送携带写策略的缓存访问请求;
当任意一个或多个跟随组接收到携带所述写策略的所述缓存访问请求时,按照所述写策略调整自身的写策略。
15.根据权利要求2所述的方法,其特征在于,还包括:
由上位机软件可调整地生成全局阈值组并下发到所述缓存中,所述全局阈值组包括第一阈值和第二阈值,以在所述缓存中形成针对全局任务的所述第一阈值条件和所述第二阈值条件。
16.根据权利要求13所述的方法,其特征在于,还包括:
由上位机软件可调整地生成并行任务阈值组并下发到所述缓存中,所述并行任务阈值组包括:所述并行任务编号及其对应的第一分阈值和第二分阈值,以在所述缓存中形成针对所述并行任务编号的所述第一阈值条件和所述第二阈值条件。
17.一种缓存装置,其特征在于,被配置为用于执行如权利要求1-16中任一项所述的方法,
所述缓存装置包括:与下级存储器以组相联模式映射的多个缓存组,其中,所述多个缓存组中包括多个监测组和多个跟随组,所述监测组包括被配置为写回及写分配模式的第一监测组和被配置为直写及非写分配模式的第二监测组;
所述缓存装置还包括:监控模块,用于监控所述第一监测组和所述第二监测组各自响应于缓存访问请求而执行的实例模式,并根据所述实例模式自适应调整所述跟随组的写策略,其中所述自适应调整至少包括设置写策略计数,当所述实例模式满足多种预设情况中的任意一种预设情况时,对所述写策略计数进行第一方向处理和/或第二方向处理;其中所述实例模式为监测组的缓存块响应于接收到的缓存访问请求而对应发生的事件,以及,至少监控所述第一监测组的以下实例模式:读命中写缓存块,并在所述第一监测组响应于所述缓存访问请求发生读命中写缓存块的情况下,对所述写策略计数进行所述第一方向处理,其中所述缓存块的读/写属性根据上一次命中缓存块的请求类型确定或者根据开辟所述缓存块的请求类型确定。
18.一种计算设备,其特征在于,包括:至少一个处理器执行单元;如权利要求17所述的缓存装置,所述缓存装置与所述处理器执行单元连接;以及,与至少一个处理器执行单元通信连接的下级存储器,所述缓存装置与所述下级存储器之间以组相联模式连接。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111626537.5A CN114297100B (zh) | 2021-12-28 | 2021-12-28 | 用于缓存的写策略调整方法、缓存装置及计算设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111626537.5A CN114297100B (zh) | 2021-12-28 | 2021-12-28 | 用于缓存的写策略调整方法、缓存装置及计算设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114297100A CN114297100A (zh) | 2022-04-08 |
CN114297100B true CN114297100B (zh) | 2023-03-24 |
Family
ID=80972233
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111626537.5A Active CN114297100B (zh) | 2021-12-28 | 2021-12-28 | 用于缓存的写策略调整方法、缓存装置及计算设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114297100B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116107926B (zh) * | 2023-02-03 | 2024-01-23 | 摩尔线程智能科技(北京)有限责任公司 | 缓存替换策略的管理方法、装置、设备、介质和程序产品 |
CN116244216B (zh) * | 2023-03-17 | 2024-03-01 | 摩尔线程智能科技(北京)有限责任公司 | 缓存控制方法、装置、缓存行结构、电子设备和存储介质 |
CN116107932B (zh) * | 2023-04-13 | 2023-07-11 | 摩尔线程智能科技(北京)有限责任公司 | 一种数据队列更新方法、装置、存储介质及电子设备 |
CN116521095B (zh) * | 2023-07-03 | 2023-09-08 | 摩尔线程智能科技(北京)有限责任公司 | 响应输出系统、方法、电子设备、存储介质及程序产品 |
CN117742612A (zh) * | 2023-12-29 | 2024-03-22 | 支付宝(杭州)信息技术有限公司 | 用于磁盘文件系统io读写的io访问带宽调整方法及装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113342265A (zh) * | 2021-05-11 | 2021-09-03 | 中天恒星(上海)科技有限公司 | 缓存管理方法、装置、处理器及计算机装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6374330B1 (en) * | 1997-04-14 | 2002-04-16 | International Business Machines Corporation | Cache-coherency protocol with upstream undefined state |
WO2009153703A1 (en) * | 2008-06-17 | 2009-12-23 | Nxp B.V. | Multiprocessor system with mixed software hardware controlled cache management |
US20110099337A1 (en) * | 2008-06-17 | 2011-04-28 | Nxp B.V. | Processing circuit with cache circuit and detection of runs of updated addresses in cache lines |
US20100217937A1 (en) * | 2009-02-20 | 2010-08-26 | Arm Limited | Data processing apparatus and method |
CN101866318B (zh) * | 2010-06-13 | 2012-02-22 | 北京北大众志微系统科技有限责任公司 | 一种高速缓存替换策略的管理系统及方法 |
US9058282B2 (en) * | 2012-12-31 | 2015-06-16 | Intel Corporation | Dynamic cache write policy |
US20150286571A1 (en) * | 2014-04-04 | 2015-10-08 | Qualcomm Incorporated | Adaptive cache prefetching based on competing dedicated prefetch policies in dedicated cache sets to reduce cache pollution |
-
2021
- 2021-12-28 CN CN202111626537.5A patent/CN114297100B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113342265A (zh) * | 2021-05-11 | 2021-09-03 | 中天恒星(上海)科技有限公司 | 缓存管理方法、装置、处理器及计算机装置 |
Also Published As
Publication number | Publication date |
---|---|
CN114297100A (zh) | 2022-04-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114297100B (zh) | 用于缓存的写策略调整方法、缓存装置及计算设备 | |
US11531617B2 (en) | Allocating and accessing memory pages with near and far memory blocks from heterogenous memories | |
US9378153B2 (en) | Early write-back of modified data in a cache memory | |
US7757045B2 (en) | Synchronizing recency information in an inclusive cache hierarchy | |
JP7337173B2 (ja) | トランスレーションルックアサイドバッファエビクションに基づくキャッシュ置換 | |
US10725923B1 (en) | Cache access detection and prediction | |
US7552288B2 (en) | Selectively inclusive cache architecture | |
US7793049B2 (en) | Mechanism for data cache replacement based on region policies | |
US6295582B1 (en) | System and method for managing data in an asynchronous I/O cache memory to maintain a predetermined amount of storage space that is readily available | |
US7991956B2 (en) | Providing application-level information for use in cache management | |
US7577793B2 (en) | Patrol snooping for higher level cache eviction candidate identification | |
EP2336892A1 (en) | Replacing cache lines in a cache memory | |
US6810465B2 (en) | Limiting the number of dirty entries in a computer cache | |
US7640399B1 (en) | Mostly exclusive shared cache management policies | |
US20110320720A1 (en) | Cache Line Replacement In A Symmetric Multiprocessing Computer | |
WO2006034289A1 (en) | Method and apparatus for run-ahead victim selection to reduce undesirable replacement behavior in inclusive caches | |
CN109154912B (zh) | 根据另一个高速缓存中条目的可用性替换高速缓存条目 | |
KR20110059764A (ko) | 액티브 로우를 이용하는 캐시 필터링 | |
US5850534A (en) | Method and apparatus for reducing cache snooping overhead in a multilevel cache system | |
US10282295B1 (en) | Reducing cache footprint in cache coherence directory | |
KR101472967B1 (ko) | 라이트 백 동작을 수행하는 캐시 메모리, 이의 동작 방법, 및 이를 포함하는 시스템 | |
US7472225B2 (en) | Caching data | |
US11036639B2 (en) | Cache apparatus and method that facilitates a reduction in energy consumption through use of first and second data arrays | |
US9996478B1 (en) | No allocate cache policy | |
WO2006053334A1 (en) | Method and apparatus for handling non-temporal memory accesses in a cache |
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 |