CN116107926B - 缓存替换策略的管理方法、装置、设备、介质和程序产品 - Google Patents
缓存替换策略的管理方法、装置、设备、介质和程序产品 Download PDFInfo
- Publication number
- CN116107926B CN116107926B CN202310121478.9A CN202310121478A CN116107926B CN 116107926 B CN116107926 B CN 116107926B CN 202310121478 A CN202310121478 A CN 202310121478A CN 116107926 B CN116107926 B CN 116107926B
- Authority
- CN
- China
- Prior art keywords
- access request
- request group
- hit
- cache replacement
- period
- 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
- 238000007726 management method Methods 0.000 title description 30
- 238000000034 method Methods 0.000 claims abstract description 72
- 238000012545 processing Methods 0.000 claims description 40
- 238000003860 storage Methods 0.000 claims description 28
- 238000004590 computer program Methods 0.000 claims description 17
- 230000008569 process Effects 0.000 claims description 13
- 230000000977 initiatory effect Effects 0.000 claims description 8
- 238000013507 mapping Methods 0.000 description 21
- 238000010586 diagram Methods 0.000 description 20
- 230000004044 response Effects 0.000 description 12
- 230000006870 function Effects 0.000 description 10
- 238000005457 optimization Methods 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 4
- 230000010365 information processing Effects 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000003044 adaptive effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000000047 product Substances 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 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
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 238000012546 transfer Methods 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/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0888—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
-
- 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
Abstract
本公开涉及一种缓存替换策略的管理方法、装置、设备、介质和程序产品。所述方法包括:对于任一访存请求组,根据属于所述访存请求组的访存请求的命中情况,确定所述访存请求组对应的命中统计数据;根据所述访存请求组对应的命中统计数据,调整所述访存请求组对应的缓存替换策略。
Description
技术领域
本公开涉及缓存技术领域,尤其涉及一种缓存替换策略的管理方法、缓存替换策略的管理装置、电子设备、存储介质和程序产品。
背景技术
随着相关技术的发展,对于诸如GPU(Graphics Processing Unit,图形处理器)、CPU(Central Processing Unit,中央处理器)等的处理器而言,其运算速度往往高于内存的读写速度,因此,通常在这类处理器中设置一级或两级以上缓存,以解决处理器运算速度与内存读写速度不匹配的问题。具体而言,缓存可以用于存储处理器频繁使用的数据,从而减少访问这些数据的延时,以便提升处理效率。
然而,受限于芯片面积和功耗,缓存容量通常远小于内存容量。因此,当缓存被占满时,需要合理的缓存替换策略来降低将最近可能使用到的数据替换出缓存的概率。因此,如何更好地优化缓存替换策略成为优化处理器处理效率的重要环节。
发明内容
本公开提供了一种缓存替换策略的管理技术方案。
根据本公开的一方面,提供了一种缓存替换策略的管理方法,包括:
对于任一访存请求组,根据属于所述访存请求组的访存请求的命中情况,确定所述访存请求组对应的命中统计数据;
根据所述访存请求组对应的命中统计数据,调整所述访存请求组对应的缓存替换策略。
在一种可能的实现方式中,所述方法还包括:
根据以下任意一项划分访存请求组:发起访存请求的模块的标识信息、访存请求所请求的目标数据的地址区间、发出访存请求的进程的标识信息。
在一种可能的实现方式中,所述根据所述访存请求组对应的命中统计数据,调整所述访存请求组对应的缓存替换策略,包括:
根据所述访存请求组对应的命中统计数据,以及其他访存请求组对应的命中统计数据,确定所述访存请求组在所有访存请求组中的排序;
根据所述排序,调整所述访存请求组对应的缓存替换策略。
在一种可能的实现方式中,所述根据所述访存请求组对应的命中统计数据,调整所述访存请求组对应的缓存替换策略,包括:
响应于第一周期结束,调整所述访存请求组对应的缓存替换策略,以在第二周期根据调整后的缓存替换策略处理属于所述访存请求组的访存请求,其中,所述第一周期为任一周期,所述第二周期为所述第一周期的下一周期;
获得所述访存请求组在所述第一周期对应的命中统计数据,以及所述访存请求组在所述第二周期对应的命中统计数据;
根据所述访存请求组在所述第一周期对应的命中统计数据,以及所述访存请求组在所述第二周期对应的命中统计数据,调整所述访存请求组对应的缓存替换策略。
在一种可能的实现方式中,所述根据所述访存请求组对应的命中统计数据,调整所述访存请求组对应的缓存替换策略,包括:
根据所述访存请求组对应的命中统计数据,以及不同缓存替换策略对应的预设阈值,调整所述访存请求组对应的缓存替换策略。
在一种可能的实现方式中,所述命中统计数据包括命中率和/或命中次数。
在一种可能的实现方式中,所述方法还包括:
响应于任一访存请求,确定所述访存请求所属的目标访存请求组;
根据所述目标访存请求组对应的目标缓存替换策略,处理所述访存请求。
根据本公开的一方面,提供了一种缓存替换策略的管理装置,包括:
第一确定模块,用于对于任一访存请求组,根据属于所述访存请求组的访存请求的命中情况,确定所述访存请求组对应的命中统计数据;
调整模块,用于根据所述访存请求组对应的命中统计数据,调整所述访存请求组对应的缓存替换策略。
在一种可能的实现方式中,所述装置还包括:
分组模块,用于根据以下任意一项划分访存请求组:发起访存请求的模块的标识信息、访存请求所请求的目标数据的地址区间、发出访存请求的进程的标识信息。
在一种可能的实现方式中,所述调整模块用于:
根据所述访存请求组对应的命中统计数据,以及其他访存请求组对应的命中统计数据,确定所述访存请求组在所有访存请求组中的排序;
根据所述排序,调整所述访存请求组对应的缓存替换策略。
在一种可能的实现方式中,所述调整模块用于:
响应于第一周期结束,调整所述访存请求组对应的缓存替换策略,以在第二周期根据调整后的缓存替换策略处理属于所述访存请求组的访存请求,其中,所述第一周期为任一周期,所述第二周期为所述第一周期的下一周期;
获得所述访存请求组在所述第一周期对应的命中统计数据,以及所述访存请求组在所述第二周期对应的命中统计数据;
根据所述访存请求组在所述第一周期对应的命中统计数据,以及所述访存请求组在所述第二周期对应的命中统计数据,调整所述访存请求组对应的缓存替换策略。
在一种可能的实现方式中,所述调整模块用于:
根据所述访存请求组对应的命中统计数据,以及不同缓存替换策略对应的预设阈值,调整所述访存请求组对应的缓存替换策略。
在一种可能的实现方式中,所述命中统计数据包括命中率和/或命中次数。
在一种可能的实现方式中,所述装置还包括:
第二确定模块,用于响应于任一访存请求,确定所述访存请求所属的目标访存请求组;
处理模块,用于根据所述目标访存请求组对应的目标缓存替换策略,处理所述访存请求。
根据本公开的一方面,提供了一种电子设备,包括:一个或多个处理器;用于存储可执行指令的存储器;其中,所述一个或多个处理器被配置为调用所述存储器存储的可执行指令,以执行上述方法。
根据本公开的一方面,提供了一种计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述方法。
根据本公开的一方面,提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备中运行时,所述电子设备中的处理器执行上述方法。
在本公开实施例中,通过对于任一访存请求组,根据属于所述访存请求组的访存请求的命中情况,确定所述访存请求组对应的命中统计数据,并根据所述访存请求组对应的命中统计数据,调整所述访存请求组对应的缓存替换策略,由此能够基于访存请求的命中情况动态调整各个访存请求组对应的缓存替换策略,即,能够实现缓存替换策略的自适应调整,从而有助于优化缓存访问策略,提升数据交互效率和处理器处理效率。本公开实施例提供的缓存替换策略的管理方法能够根据应用实际执行情况(如运行时的调度、运行的硬件规格等信息)调整缓存替换策略,使缓存替换策略的配置能够根据实际运行时的系统状态动态调整,从而能够适用于更广泛的应用场景。
本公开实施例减少了软件开发者做性能优化时的负担,使软件开发者即使不通过手动为每个地址区间分配对应的缓存替换策略,也能获得较好的性能。另外,本公开实施例引入了运行时优化,能够得到更佳的带宽性能。再者,本公开实施例提高了处理器(例如GPU)在运行各种应用时的整体性能,减轻了处理器带宽对软件开发者优化手段的依赖。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本公开。
根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。
图1示出相关技术中的电子设备100的示例框图。
图2示出本公开实施例提供的缓存替换策略的管理方法的流程图。
图3示出本公开实施例提供的处理器300的结构的一示例性的框图。
图4示出本公开实施例提供的缓存替换策略管理单元320的示意图。
图5示出本公开实施例提供的缓存替换策略的管理装置的框图。
图6示出本公开实施例提供的电子设备1900的框图。
具体实施方式
以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括A、B、C中的至少一种,可以表示包括从A、B和C构成的集合中选择的任意一个或多个元素。
另外,为了更好地说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
图1示出相关技术中的电子设备100的示例框图。如图所示,电子设备100可以包括处理器110和内存120。可选地,处理器110可以为CPU、GPU等,其可以包括执行单元111和缓存单元112。示例性地,执行单元111可以发起对内存120中的某地址的访问请求,以获取该地址中存放的数据。此时,可以先在缓存单元112的缓存项中查找是否存在该地址的数据,若存在,则可视为该地址被命中,并直接从缓存单元112的缓存项中读取该地址的数据并返回至执行单元111;若不存在,则可视为该地址未被命中(缺失),并随后向内存120请求该地址的数据,内存120返回的数据可以经由缓存单元112反馈至执行单元111,并可以可选地通过替换缓存单元112中的某缓存项而被存储在缓存单元112中。
此外,可选地,处理器110还可以包括内存管理单元(Memory Management Unit,MMU)113。内存管理单元113可以基于地址映射表实施虚拟地址与物理地址之间的映射,地址映射表例如可以采取页表的形式,其可以存放在例如内存管理单元113本地、内存120或者两者的组合中。示例性地,执行单元111所发出的访问请求中的地址可以为虚拟地址,该虚拟地址可以由内存管理单元113转换为物理地址,进而被提供给缓存单元112进行处理。示例性地,虚拟地址空间和物理地址空间均可以以页为单位进行划分,每页可以具有预设大小,例如4KB或其他预设大小,内存管理单元113所使用的地址映射表中的每个映射项可以对应于一个页的地址映射。
一般而言,缓存单元可以具有预先设计的缓存大小,即缓存总空间的大小。缓存可以被划分为许多缓存行,每个缓存行的大小限定了一条缓存记录能够存储的数据量的大小。进而,缓存大小和缓存行大小可以决定缓存行的数目。为了实现内存空间与缓存空间之间的数据交换,通常会在缓存地址与内存地址之间建立预先设置的映射关系,例如直接映射、全相联映射、组相联映射等。具体而言,对于直接映射,内存中的各数据块只能映射至特定缓存行,即,映射至同一缓存行的数据块竞争使用该缓存行;对于全相联映射,内存中的各数据块可以映射至任一缓存行,即所有数据块竞争使用所有缓存行;对于组相联映射,内存中的各数据块可以被映射至一组缓存行中的任一缓存行,即,映射至同一组的数据块竞争使用该组内的若干缓存行。在上述映射机制下,当针对某个数据块的某个访问请求在缓存中未命中时,需要从内存获取该数据块,并在与该数据块存在映射关系的一个或多个缓存行中选择一个缓存行进行替换。一般而言,为了保证后续数据读写效率,可以选择最不可能被重复利用的缓存行进行替换。
相关技术中常用的缓存替换算法包括:
(1)最近最少使用(LRU,Least Recently Used)算法
该算法为每个缓存行记录一个引用时刻,并设置一个引用时刻全局计数器在每次访问时自增,通过每次替换引用时刻最小的计数器来实现替换近期最不常用数据。该算法能够最准确地找到最近最少使用的缓存行,但是,其在硬件上需要实现大量引用时刻记录的比较,开销较大。
(2)伪最近最少使用(PLRU,Pseudo-Least Recently Used)算法
该算法为对LRU算法的简化,通过二叉树维护每个缓存行是否最近被访问过,并在访问缓存行时更新二叉树。该方法相比LRU性能损失很小,并且对硬件实现比较友好。
(3)非最近使用(NRU,not recently used)算法
该算法为每个缓存行记录一个比特,如果某缓存行被访问过,则将相应比特置位为1,当所有缓存行均被置位为1,则进行一次清零,该算法也能达到接近最近最少使用算法的性能,并具有较小的硬件开销。
然而,仅基于最近最少使用原则往往不足以最大化利用缓存。这是因为,在程序运行中,有许多数据被重用的次数很少,如只会重用一次,但对应的初次和再次访问可能时间间隔很近。由此会产生对缓存内其他更频繁使用的数据的挤占,影响访存性能。为此,可以采用替换优先级作为最近最少使用替换原则的补充。即,在执行缓存行的替换时,参考对应数据的驻留优先级,对于高驻留优先级的数据,尽可能将其保留在缓存中,并限制其不会被具有低驻留优先级的数据替换或者以较靠后的顺序被低驻留优先级的数据替换。此外,还有方案将驻留优先级进一步降低,对于特定的访存请求,当发生缓存缺失时,不予分配新的缓存行,从而避免影响缓存中现存的数据。
然而,相关技术中的缓存替换策略或者是在硬件设计过程中固化于硬件电路中,或是需要在应用程序运行前通过驱动进行配置,或是需要在程序编写时给出显式定义与声明来控制不同的缓存替换策略。例如,上文所提及的基于最近最少使用原则的缓存替换策略通常为硬件固定实现,关于替换优先级的部分则通常需要软件人员在程序初始化时定义各地址区间对应的不同驻留优先级,或跟随指令传递给硬件。
由此,对于可以预先明确知晓内存中的各数据块的使用频率的情况,上述方案可以是有效的。但是,在大多数情况下,各数据块的使用频率是难以预估的,或者会受到运行时的状态及输入情况的影响,因此难以预先指定与各数据块对应的缓存替换策略,此时,上述方案可能是无效或难以达到期望优化效果的。
基于上述考虑,本公开实施例提出了一种缓存替换策略的管理方法,通过对于任一访存请求组,根据属于所述访存请求组的访存请求的命中情况,确定所述访存请求组对应的命中统计数据,并根据所述访存请求组对应的命中统计数据,调整所述访存请求组对应的缓存替换策略,由此能够基于访存请求的命中情况动态调整各个访存请求组对应的缓存替换策略,即,能够实现缓存替换策略的自适应调整,从而有助于优化缓存访问策略,提升数据交互效率和处理器处理效率。本公开实施例提供的缓存替换策略的管理方法能够根据应用实际执行情况(如运行时的调度、运行的硬件规格等信息)调整缓存替换策略,使缓存替换策略的配置能够根据实际运行时的系统状态动态调整,从而能够适用于更广泛的应用场景。
本公开实施例减少了软件开发者做性能优化时的负担,使软件开发者即使不通过手动为每个地址区间分配对应的缓存替换策略,也能获得较好的性能。另外,本公开实施例引入了运行时优化,能够得到更佳的带宽性能。再者,本公开实施例提高了处理器(例如GPU)在运行各种应用时的整体性能,减轻了处理器带宽对软件开发者优化手段的依赖。
图2示出本公开实施例提供的缓存替换策略的管理方法的流程图。在一种可能的实现方式中,所述缓存替换策略的管理方法的执行主体可以是缓存替换策略的管理装置,例如,所述缓存替换策略的管理方法可以由终端设备或服务器或其它电子设备执行。其中,终端设备可以是用户设备(User Equipment,UE)、移动设备、用户终端、终端、蜂窝电话、无绳电话、个人数字助理(Personal Digital Assistant,PDA)、手持设备、计算设备、车载设备或者可穿戴设备等。在一些可能的实现方式中,所述缓存替换策略的管理方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。如图2所示,所述缓存替换策略的管理方法包括步骤S21至步骤S22。
在步骤S21中,对于任一访存请求组,根据属于所述访存请求组的访存请求的命中情况,确定所述访存请求组对应的命中统计数据。
在步骤S22中,根据所述访存请求组对应的命中统计数据,调整所述访存请求组对应的缓存替换策略。
在本公开实施例中,访存请求组可以表示访存请求的分组。访存请求可以表示内存访问请求。属于同一访存请求组的不同访存请求可以具有相同的访存特征。例如,属于同一访存请求组的各个访存请求均来自同一模块;又如,属于同一访存请求组的各个访存请求均请求相同的地址区间;又如,属于同一访存请求组的各个访存请求均由同一进程发出;等等。
在本公开实施例中,可以根据预设的分组标准,进行访存请求组的划分。
在一种可能的实现方式中,所述方法还包括:根据以下任意一项划分访存请求组:发起访存请求的模块的标识信息、访存请求所请求的目标数据的地址区间、发出访存请求的进程的标识信息。
作为该实现方式的一个示例,可以根据发起访存请求的模块的标识信息,划分访存请求组。以GPU为例,发起访存请求的模块可以包括GPU中处理坐标变换的专用单元、GPU中负责纹理压缩的专用单元等等,在此不做限定。在该示例中,若两个访存请求由同一模块发起,则该两个访存请求属于同一访存请求组;若两个访存请求由不同模块发起,则该两个访存请求属于不同访存请求组。
作为该实现方式的另一个示例,可以根据访存请求所请求的目标数据的地址区间,划分访存请求组。在该示例中,若两个访存请求所请求的目标数据的地址区间相同,则该两个访存请求属于同一访存请求组;若两个访存请求所请求的目标数据的地址区间不同,则该两个访存请求属于不同访存请求组。
作为该实现方式的另一个示例,可以发出访存请求的进程的标识信息,划分访存请求组。在该示例中,若两个访存请求由同一进程发出,则该两个访存请求属于同一访存请求组;若两个访存请求由不同进程发出,则该两个访存请求属于不同访存请求组。
在该实现方式中,通过根据发起访存请求的模块的标识信息、访存请求所请求的目标数据的地址区间、发出访存请求的进程的标识信息中的任意一项划分访存请求组,由此能够实现访存请求组的合理划分,从而有利于提高数据交互效率以及处理器的处理效率。
需要说明的是,尽管以以上三种方式介绍了访存请求组的分组标准如上,但本领域技术人员能够理解,本公开应不限于此。本领域技术人员可以根据实际应用场景需求灵活设置访存请求组的分组标准。
在本公开实施例中,任一访存请求的命中情况,可以包括用于指示所述访存请求是否命中的信息。根据属于任一访存请求组的各个访存请求的命中情况,可以统计得到所述访存请求组对应的命中统计数据。其中,命中统计数据可以是能够表示属于所述访存请求组的访存请求的命中情况的统计数据。例如,可以响应于任一周期结束,获取属于任一访存请求组的各个访存请求在该周期的命中情况,并可以根据属于所述访存请求组的各个访存请求在该周期的命中情况,确定所述访存请求组对应的命中统计数据。其中,周期的大小可以根据实际应用场景需求灵活确定。任一访存请求组对应的缓存替换策略可以每个周期分别调整,也可以多个周期调整一次。
在一种可能的实现方式中,所述命中统计数据包括命中率和/或命中次数。
作为该实现方式的一个示例,所述命中统计数据包括命中率。在该示例中,可以根据属于所述访存请求组的访存请求的命中情况,确定所述访存请求组对应的命中率。
作为该实现方式的另一个示例,所述命中统计数据包括命中次数。
在一个例子中,所述命中统计数据可以包括属于所述访存请求组的各个访存请求在当前周期的总命中次数。
在另一个例子中,所述命中统计数据可以包括属于所述访存请求组的各个访存请求在已结束的各个周期的平均命中次数。
在该实现方式中,通过对于任一访存请求组,根据属于所述访存请求组的访存请求的命中情况,确定所述访存请求组对应的命中率和/或命中次数,并根据所述访存请求组对应的命中率和/或命中次数,调整所述访存请求组对应的缓存替换策略,由此能够基于所述访存请求组对应的命中率和/或命中次数,更准确地进行缓存替换策略的调整。
需要说明的是,尽管以命中率和/或命中次数介绍了命中统计数据如上,但本领域技术人员能够理解,本公开应不限于此。本领域技术人员可以根据实际应用场景需求灵活选择所需的命中统计数据。例如,命中统计数据还可以包括平均命中距离等等。
在本公开实施例中,属于同一访存请求组的各个访存请求对应于相同的缓存替换策略。例如,缓存替换策略可以包括但不限于:按照驻留优先级由低到高的缓存替换策略、按照缺失时是否申请缓存行区分的缓存替换策略、按照命中时是否仍旧保留缓存行区分的缓存替换策略。任一访存请求组在任一时刻可以对应于一种或两种以上缓存替换策略。
其中,每个访存请求组的初始缓存替换策略可以相同或不同,在此不做限定。例如,每个访存请求组的初始缓存替换策略可以均为中等优先级的缓存替换策略。
在本公开实施例中,对于任一访存请求组,可以根据所述访存请求组对应的命中统计数据,判断所述访存请求组对应的缓存替换策略是否需要进行调整。
在一种可能的实现方式中,所述根据所述访存请求组对应的命中统计数据,调整所述访存请求组对应的缓存替换策略,包括:根据所述访存请求组对应的命中统计数据,以及其他访存请求组对应的命中统计数据,确定所述访存请求组在所有访存请求组中的排序;根据所述排序,调整所述访存请求组对应的缓存替换策略。
作为该实现方式的一个示例,命中统计数据包括命中率;可以将各个访存请求组对应的命中率按照由高到低的顺序进行排序,并可以为排序较前的访存请求组分配优先级较高的缓存替换策略,为排序较后的访存请求组分配优先级较低的缓存替换策略。
作为该实现方式的另一个示例,命中统计数据包括命中率;可以将各个访存请求组对应的命中率按照由低到高的顺序进行排序,并可以为排序较前的访存请求组分配优先级较低的缓存替换策略,为排序较后的访存请求组分配优先级较高的缓存替换策略。
作为该实现方式的另一个示例,命中统计数据包括各个访存请求组在当前周期的总命中次数;可以将各个访存请求组在当前周期的总命中次数按照由低到高的顺序进行排序,并可以为排序较前的访存请求组分配优先级较低的缓存替换策略,为排序较后的访存请求组分配优先级较高的缓存替换策略。
作为该实现方式的另一个示例,命中统计数据包括各个访存请求组在当前周期的总命中次数;可以将各个访存请求组在当前周期的总命中次数按照由高到低的顺序进行排序,并可以为排序较前的访存请求组分配优先级较高的缓存替换策略,为排序较后的访存请求组分配优先级较低的缓存替换策略。
作为该实现方式的另一个示例,命中统计数据包括各个访存请求组在已结束的各个周期的平均命中次数;可以将各个访存请求组在已结束的各个周期的平均命中次数按照由高到低的顺序进行排序,并可以为排序较前的访存请求组分配优先级较高的缓存替换策略,为排序较后的访存请求组分配优先级较低的缓存替换策略。
作为该实现方式的另一个示例,命中统计数据包括各个访存请求组在已结束的各个周期的平均命中次数;可以将各个访存请求组在已结束的各个周期的平均命中次数按照由低到高的顺序进行排序,并可以为排序较前的访存请求组分配优先级较低的缓存替换策略,为排序较后的访存请求组分配优先级较高的缓存替换策略。
在该实现方式中,通过根据所述访存请求组对应的命中统计数据,以及其他访存请求组对应的命中统计数据,确定所述访存请求组在所有访存请求组中的排序,并根据所述排序,调整所述访存请求组对应的缓存替换策略,由此能够基于所有访存请求组的整体命中情况为各个访存请求组分别分配合适的缓存替换策略。
在另一种可能的实现方式中,所述根据所述访存请求组对应的命中统计数据,调整所述访存请求组对应的缓存替换策略,包括:响应于第一周期结束,调整所述访存请求组对应的缓存替换策略,以在第二周期根据调整后的缓存替换策略处理属于所述访存请求组的访存请求,其中,所述第一周期为任一周期,所述第二周期为所述第一周期的下一周期;获得所述访存请求组在所述第一周期对应的命中统计数据,以及所述访存请求组在所述第二周期对应的命中统计数据;根据所述访存请求组在所述第一周期对应的命中统计数据,以及所述访存请求组在所述第二周期对应的命中统计数据,调整所述访存请求组对应的缓存替换策略。
在该实现方式中,第一周期和第二周期为相邻的两个周期,第一周期为第二周期的上一周期。
在该实现方式中,可以响应于第一周期结束,以预设的调整策略调整所述访存请求组对应的缓存替换策略,以在第二周期根据调整后的缓存替换策略处理属于所述访存请求组的访存请求。例如,预设的调整策略可以为调高一级优先级或者调低一级优先级等,在此不做限定。在该实现方式中,响应于第一周期结束,以预设的调整策略调整所述访存请求组对应的缓存替换策略,而非基于所述访存请求组在第一周期对应的命中统计数据进行调整。因此,在该实现方式中,可以每两个周期根据所述访存请求组对应的命中统计数据调整所述访存请求组对应的缓存替换策略,其中,两个周期中的第一个周期根据预设的调整策略调整,第二个周期根据命中统计数据调整。
例如,预设的调整策略为调高一级优先级,命中统计数据为命中率,第一命中率表示所述访存请求组在所述第一周期对应的命中率,第二命中率表示所述访存请求组在所述第二周期对应的命中率。若第二命中率与第一命中率的比值大于或等于第一预设阈值,则可以调高所述访存请求组对应的缓存替换策略的优先级;若第二命中率与第一命中率的比值大于或等于第二预设阈值且小于第一预设阈值,则可以保持所述访存请求组对应的缓存替换策略不变;若第二命中率与第一命中率的比值小于第二预设阈值,则可以调低所述访存请求组对应的缓存替换策略的优先级。其中,第一预设阈值大于所述第二预设阈值,且所述第一预设阈值和所述第二预设阈值均大于1。
在该实现方式中,通过响应于第一周期结束,调整所述访存请求组对应的缓存替换策略,以在第二周期根据调整后的缓存替换策略处理属于所述访存请求组的访存请求,获得所述访存请求组在所述第一周期对应的命中统计数据,以及所述访存请求组在所述第二周期对应的命中统计数据,并根据所述访存请求组在所述第一周期对应的命中统计数据,以及所述访存请求组在所述第二周期对应的命中统计数据,调整所述访存请求组对应的缓存替换策略,由此能够针对各个访存请求组分别实现缓存替换策略的合理调整。
在另一种可能的实现方式中,所述根据所述访存请求组对应的命中统计数据,调整所述访存请求组对应的缓存替换策略,包括:根据所述访存请求组对应的命中统计数据,以及不同缓存替换策略对应的预设阈值,调整所述访存请求组对应的缓存替换策略。
作为该实现方式的一个示例,可以预先设置与各个缓存替换策略对应的预设阈值区间,并可以响应于任一访存请求组对应的命中统计数据落入任一缓存替换策略对应的预设阈值区间中,将该缓存替换策略更新为所述访存请求组对应的缓存替换策略。
例如,命中统计数据为命中率,可以预先设置于各个缓存替换策略对应的预设命中率区间,并可以响应于任一访存请求组对应的命中率落入任一缓存替换策略对应的预设命中率区间中,将该缓存替换策略更新为所述访存请求组对应的缓存替换策略。
作为该实现方式的另一个示例,可以响应于任一访存请求组对应的命中率大于或等于第三预设阈值,调高一级所述访存请求组对应的缓存替换策略的优先级;响应于任一访存请求组对应的命中率大于或等于第四预设阈值且小于第三预设阈值,保持所述访存请求组对应的缓存替换策略不变;响应于任一访存请求组对应的命中率小于第四预设阈值,调低一级所述访存请求组对应的缓存替换策略的优先级。其中,第三预设阈值大于所述第四预设阈值。
在该实现方式中,通过根据所述访存请求组对应的命中统计数据,以及不同缓存替换策略对应的预设阈值,调整所述访存请求组对应的缓存替换策略,由此能够针对各个访存请求组分别实现缓存替换策略的合理调整。
在本公开实施例中,可以基于实时的命中统计数据更新访存请求组对应的缓存替换策略,从而能够实时提高处理器的处理效率。
在一种可能的实现方式中,所述方法还包括:响应于任一访存请求,确定所述访存请求所属的目标访存请求组;根据所述目标访存请求组对应的目标缓存替换策略,处理所述访存请求。
在该实现方式中,可以由处理器的核心(core)发起访存请求。例如,可以由GPU核心发起访存请求。
作为该实现方式的一个示例,可以将目标缓存替换策略的参数添加至所述访存请求,得到更新后的访存请求。可以将所述更新后的访存请求发送至缓存单元,以便缓存单元可以根据所述更新后的访问请求所携带的目标缓存替换策略的参数来执行相应的访存操作。
在该实现方式中,通过响应于任一访存请求,确定所述访存请求所属的目标访存请求组,根据所述目标访存请求组对应的目标缓存替换策略,处理所述访存请求,由此能够针对属于不同访存请求组的访存请求采用不同的缓存替换策略进行处理,提高缓存替换的灵活性。
本公开实施例提供的缓存替换策略的管理方法可以应用于内存子系统、缓存、GPU等技术领域,在此不做限定。
图3示出本公开实施例提供的处理器300的结构的一示例性的框图。其中,处理器300可以为GPU、CPU等,并可以被实现为诸如芯片等各种形式。下面以处理器300为GPU为例进行说明。如图3所示,处理器300可以包括GPU核心310、缓存替换策略管理单元320和缓存单元330。
其中,GPU核心310可以被配置为发起针对目标地址的访存请求。例如,GPU核心310可以根据所运行的应用程序等的需求发起针对内存中的某目标地址的访存请求。
缓存替换策略管理单元320可以被配置为响应于接收到GPU核心310发起的访存请求,查询所述访存请求所属的目标访存请求组对应的目标缓存替换策略,并将携带目标缓存替换策略的所述访存请求发送至缓存单元330。例如,缓存替换策略管理单元320可以将目标缓存替换策略的参数添加至所述访存请求,得到更新后的访存请求,并可以将所述更新后的访存请求发送至缓存单元330。
缓存单元330可以被配置为根据目标缓存替换策略处理所述访存请求,并将针对所述访存请求的响应数据反馈至GPU核心310。缓存单元330还可以被配置为并将所述访存请求的命中情况的信息发送至缓存替换策略管理单元320。
缓存替换策略管理单元320还可以被配置为对属于各个访存请求组的访存请求的命中情况进行统计,得到各个访存请求组对应的命中统计数据,并根据各个访存请求组对应的命中统计数据,调整各个访存请求组对应的缓存替换策略。
图4示出本公开实施例提供的缓存替换策略管理单元320的示意图。如图4所示,缓存替换策略管理单元320可以包括访存请求组-缓存替换策略映射表321、命中情况统计转化逻辑322和命中统计数据-缓存替换策略转换逻辑323。其中,访存请求组-缓存替换策略映射表321可以用于记录访存请求组与缓存替换策略之间的映射关系,即,访存请求组-缓存替换策略映射表321可以用于记录各个访存请求组对应的缓存替换策略的参数。命中情况统计转化逻辑322可以将缓存单元返回的命中情况转换为命中统计数据(例如命中率和/或命中次数等)。命中统计数据-缓存替换策略转换逻辑323可以根据各个访存请求组对应的命中统计数据,调整各个访存请求组对应的缓存替换策略,并更新访存请求组-缓存替换策略映射表321。在接收到新的访存请求时,可以查询访存请求组-缓存替换策略映射表321,以得到相应的缓存替换策略,并将携带缓存替换策略的访存请求传递至缓存单元进行处理。可选地,缓存替换策略管理单元320可以是单独的结构,或者,也可以并入图1所示的内存管理单元113中。
下面通过一个具体的应用场景说明本公开实施例提供的方法。
在该应用场景中,系统具有多个GPU核心,每个GPU核心执行相似的运算任务。
在该应用场景中,根据发起访存请求的模块的ID,划分得到若干个访存请求组。访存请求经过内存管理单元转换后,送到缓存替换策略管理单元获取缓存替换策略。缓存替换策略管理单元根据访存请求携带的模块ID,查找到对应的访存请求组ID,随后将携带有缓存替换策略的访存请求送往地址映射模块进行地址重映射。地址重映射模块随后将携带有映射后地址的请求送往互连线网络,并经由互连线网路的路由到达目标缓存。其中,地址重映射模块可以调整物理地址以使其更加均匀地分布在多通道内存系统的多个通道上。互联线网络可以提供多个GPU核心和多个内存通道的互相连接。
目标缓存接收到访存请求后,若发生缓存缺失,则按照其携带的缓存替换策略和当前缓存中现有的缓存行的缓存替换策略的优先级进行缓存替换。若发生缓存命中,则直接访问缓存中的信息,并更新缓存中对应缓存行的命中情况。
当缓存单元完成访存操作后,可以将本地记录的命中情况携带在访存请求的响应中,连同前述访存请求组ID,经由互连线网络送回缓存替换策略管理单元。对于发生缓存缺失的情况,则可将发生缓存缺失时被替换的缓存行对应的访存请求组的ID和未命中的信息送回给缓存替换策略管理单元。
缓存替换策略管理单元接收到响应后,提取出访存请求组ID和命中情况信息,对命中情况进行统计,得到命中统计数据,并根据命中统计数据更新对应访存请求组的缓存替换策略。原始响应则送回GPU核心进行后续操作。
可以理解,本公开提及的上述各个方法实施例,在不违背原理逻辑的情况下,均可以彼此相互结合形成结合后的实施例,限于篇幅,本公开不再赘述。本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
此外,本公开还提供了缓存替换策略的管理装置、电子设备、计算机可读存储介质、计算机程序产品,上述均可用来实现本公开提供的任一种缓存替换策略的管理方法,相应技术方案和技术效果可参见方法部分的相应记载,不再赘述。
图5示出本公开实施例提供的缓存替换策略的管理装置的框图。如图5所示,所述缓存替换策略的管理装置包括:
第一确定模块51,用于对于任一访存请求组,根据属于所述访存请求组的访存请求的命中情况,确定所述访存请求组对应的命中统计数据;
调整模块52,用于根据所述访存请求组对应的命中统计数据,调整所述访存请求组对应的缓存替换策略。
在一种可能的实现方式中,所述装置还包括:
分组模块,用于根据以下任意一项划分访存请求组:发起访存请求的模块的标识信息、访存请求所请求的目标数据的地址区间、发出访存请求的进程的标识信息。
在一种可能的实现方式中,所述调整模块52用于:
根据所述访存请求组对应的命中统计数据,以及其他访存请求组对应的命中统计数据,确定所述访存请求组在所有访存请求组中的排序;
根据所述排序,调整所述访存请求组对应的缓存替换策略。
在一种可能的实现方式中,所述调整模块52用于:
响应于第一周期结束,调整所述访存请求组对应的缓存替换策略,以在第二周期根据调整后的缓存替换策略处理属于所述访存请求组的访存请求,其中,所述第一周期为任一周期,所述第二周期为所述第一周期的下一周期;
获得所述访存请求组在所述第一周期对应的命中统计数据,以及所述访存请求组在所述第二周期对应的命中统计数据;
根据所述访存请求组在所述第一周期对应的命中统计数据,以及所述访存请求组在所述第二周期对应的命中统计数据,调整所述访存请求组对应的缓存替换策略。
在一种可能的实现方式中,所述调整模块52用于:
根据所述访存请求组对应的命中统计数据,以及不同缓存替换策略对应的预设阈值,调整所述访存请求组对应的缓存替换策略。
在一种可能的实现方式中,所述命中统计数据包括命中率和/或命中次数。
在一种可能的实现方式中,所述装置还包括:
第二确定模块,用于响应于任一访存请求,确定所述访存请求所属的目标访存请求组;
处理模块,用于根据所述目标访存请求组对应的目标缓存替换策略,处理所述访存请求。
在一些实施例中,本公开实施例提供的装置具有的功能或包含的模块可以用于执行上文方法实施例描述的方法,其具体实现和技术效果可以参照上文方法实施例的描述,为了简洁,这里不再赘述。
本公开实施例还提供一种计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述方法。其中,所述计算机可读存储介质可以是非易失性计算机可读存储介质,或者可以是易失性计算机可读存储介质。
本公开实施例还提出一种计算机程序,包括计算机可读代码,当所述计算机可读代码在电子设备中运行时,所述电子设备中的处理器执行上述方法。
本公开实施例还提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备中运行时,所述电子设备中的处理器执行上述方法。
本公开实施例还提供一种电子设备,包括:一个或多个处理器;用于存储可执行指令的存储器;其中,所述一个或多个处理器被配置为调用所述存储器存储的可执行指令,以执行上述方法。
电子设备可以被提供为终端、服务器或其它形态的设备。
图6示出本公开实施例提供的电子设备1900的框图。例如,电子设备1900可以被提供为一服务器。参照图6,电子设备1900包括处理组件1922,其进一步包括一个或多个处理器,以及由存储器1932所代表的存储器资源,用于存储可由处理组件1922的执行的指令,例如应用程序。存储器1932中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1922被配置为执行指令,以执行上述方法。
电子设备1900还可以包括一个电源组件1926被配置为执行电子设备1900的电源管理,一个有线或无线网络接口1950被配置为将电子设备1900连接到网络,和一个输入/输出接口1958(I/O接口)。电子设备1900可以操作基于存储在存储器1932的操作系统,例如微软服务器操作系统(Windows ServerTM),苹果公司推出的基于图形用户界面操作系统(MacOS XTM),多用户多进程的计算机操作系统(UnixTM),自由和开放原代码的类Unix操作系统(LinuxTM),开放原代码的类Unix操作系统(FreeBSDTM)或类似。
在示例性实施例中,还提供了一种非易失性计算机可读存储介质,例如包括计算机程序指令的存储器1932,上述计算机程序指令可由电子设备1900的处理组件1922执行以完成上述方法。
本公开可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
上文对各个实施例的描述倾向于强调各个实施例之间的不同之处,其相同或相似之处可以互相参考,为了简洁,本文不再赘述。
若本公开实施例的技术方案涉及个人信息,应用本公开实施例的技术方案的产品在处理个人信息前,已明确告知个人信息处理规则,并取得个人自主同意。若本公开实施例的技术方案涉及敏感个人信息,应用本公开实施例的技术方案的产品在处理敏感个人信息前,已取得个人单独同意,并且同时满足“明示同意”的要求。例如,在摄像头等个人信息采集装置处,设置明确显著的标识告知已进入个人信息采集范围,将会对个人信息进行采集,若个人自愿进入采集范围即视为同意对其个人信息进行采集;或者在个人信息处理的装置上,利用明显的标识/信息告知个人信息处理规则的情况下,通过弹窗信息或请个人自行上传其个人信息等方式获得个人授权;其中,个人信息处理规则可包括个人信息处理者、个人信息处理目的、处理方式以及处理的个人信息种类等信息。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (10)
1.一种缓存替换策略的管理方法,其特征在于,包括:
对于任一访存请求组,根据属于所述访存请求组的访存请求的命中情况,确定所述访存请求组对应的命中统计数据;其中,所述命中统计数据包括命中率和/或命中次数;所述访存请求组对应的命中率根据属于所述访存请求组的访存请求的命中情况确定;所述访存请求组对应的命中次数包括:属于所述访存请求组的各个访存请求在当前周期的总命中次数,和/或,属于所述访存请求组的各个访存请求在已结束的各个周期的平均命中次数;
根据所述访存请求组对应的命中统计数据,调整所述访存请求组对应的缓存替换策略;其中,属于同一访存请求组的各个访存请求对应于相同的缓存替换策略。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据以下任意一项划分访存请求组:发起访存请求的模块的标识信息、访存请求所请求的目标数据的地址区间、发出访存请求的进程的标识信息。
3.根据权利要求1或2所述的方法,其特征在于,所述根据所述访存请求组对应的命中统计数据,调整所述访存请求组对应的缓存替换策略,包括:
根据所述访存请求组对应的命中统计数据,以及其他访存请求组对应的命中统计数据,确定所述访存请求组在所有访存请求组中的排序;
根据所述排序,调整所述访存请求组对应的缓存替换策略。
4.根据权利要求1或2所述的方法,其特征在于,所述根据所述访存请求组对应的命中统计数据,调整所述访存请求组对应的缓存替换策略,包括:
响应于第一周期结束,调整所述访存请求组对应的缓存替换策略,以在第二周期根据调整后的缓存替换策略处理属于所述访存请求组的访存请求,其中,所述第一周期为任一周期,所述第二周期为所述第一周期的下一周期;
获得所述访存请求组在所述第一周期对应的命中统计数据,以及所述访存请求组在所述第二周期对应的命中统计数据;
根据所述访存请求组在所述第一周期对应的命中统计数据,以及所述访存请求组在所述第二周期对应的命中统计数据,调整所述访存请求组对应的缓存替换策略。
5.根据权利要求1或2所述的方法,其特征在于,所述根据所述访存请求组对应的命中统计数据,调整所述访存请求组对应的缓存替换策略,包括:
根据所述访存请求组对应的命中统计数据,以及不同缓存替换策略对应的预设阈值,调整所述访存请求组对应的缓存替换策略。
6.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
响应于任一访存请求,确定所述访存请求所属的目标访存请求组;
根据所述目标访存请求组对应的目标缓存替换策略,处理所述访存请求。
7.一种缓存替换策略的管理装置,其特征在于,包括:
第一确定模块,用于对于任一访存请求组,根据属于所述访存请求组的访存请求的命中情况,确定所述访存请求组对应的命中统计数据;其中,所述命中统计数据包括命中率和/或命中次数;所述访存请求组对应的命中率根据属于所述访存请求组的访存请求的命中情况确定;所述访存请求组对应的命中次数包括:属于所述访存请求组的各个访存请求在当前周期的总命中次数,和/或,属于所述访存请求组的各个访存请求在已结束的各个周期的平均命中次数;
调整模块,用于根据所述访存请求组对应的命中统计数据,调整所述访存请求组对应的缓存替换策略;其中,属于同一访存请求组的各个访存请求对应于相同的缓存替换策略。
8.一种电子设备,其特征在于,包括:
一个或多个处理器;
用于存储可执行指令的存储器;
其中,所述一个或多个处理器被配置为调用所述存储器存储的可执行指令,以执行权利要求1至6中任意一项所述的方法。
9.一种计算机可读存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被处理器执行时实现权利要求1至6中任意一项所述的方法。
10.一种计算机程序产品,其特征在于,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备中运行时,所述电子设备中的处理器执行权利要求1至6中任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310121478.9A CN116107926B (zh) | 2023-02-03 | 2023-02-03 | 缓存替换策略的管理方法、装置、设备、介质和程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310121478.9A CN116107926B (zh) | 2023-02-03 | 2023-02-03 | 缓存替换策略的管理方法、装置、设备、介质和程序产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116107926A CN116107926A (zh) | 2023-05-12 |
CN116107926B true CN116107926B (zh) | 2024-01-23 |
Family
ID=86267093
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310121478.9A Active CN116107926B (zh) | 2023-02-03 | 2023-02-03 | 缓存替换策略的管理方法、装置、设备、介质和程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116107926B (zh) |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101866318A (zh) * | 2010-06-13 | 2010-10-20 | 北京北大众志微系统科技有限责任公司 | 一种高速缓存替换策略的管理系统及方法 |
CN103383666A (zh) * | 2013-07-16 | 2013-11-06 | 中国科学院计算技术研究所 | 改善缓存预取数据局部性的方法和系统及缓存访问方法 |
CN106708636A (zh) * | 2016-12-29 | 2017-05-24 | 北京奇虎科技有限公司 | 基于集群的数据缓存方法及装置 |
CN108073527A (zh) * | 2016-11-07 | 2018-05-25 | 华为技术有限公司 | 一种缓存替换的方法和设备 |
CN111177090A (zh) * | 2020-01-14 | 2020-05-19 | 江苏鸿程大数据技术与应用研究院有限公司 | 一种基于子模优化算法的客户端缓存方法及系统 |
CN112367402A (zh) * | 2020-11-13 | 2021-02-12 | 济南华芯算古信息科技有限公司 | 面向实时数据应用的智能缓存策略存储方法、装置及设备 |
CN112579482A (zh) * | 2020-12-05 | 2021-03-30 | 西安翔腾微电子科技有限公司 | 一种非阻塞Cache替换信息表超前精确更新装置及方法 |
CN113297098A (zh) * | 2021-05-24 | 2021-08-24 | 北京工业大学 | 一种面向高性能的适应预取的智能缓存替换策略 |
CN113407119A (zh) * | 2021-06-28 | 2021-09-17 | 海光信息技术股份有限公司 | 数据预取方法、数据预取装置、处理器 |
CN114138685A (zh) * | 2021-12-06 | 2022-03-04 | 海光信息技术股份有限公司 | 缓存的资源分配方法及装置、电子装置和存储介质 |
CN114297100A (zh) * | 2021-12-28 | 2022-04-08 | 摩尔线程智能科技(北京)有限责任公司 | 用于缓存的写策略调整方法、缓存装置及计算设备 |
WO2022178869A1 (zh) * | 2021-02-26 | 2022-09-01 | 华为技术有限公司 | 一种缓存替换方法和装置 |
CN115617712A (zh) * | 2022-10-14 | 2023-01-17 | 无锡先进技术研究院 | 一种基于组相联高速缓存Cache的LRU替换算法 |
-
2023
- 2023-02-03 CN CN202310121478.9A patent/CN116107926B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101866318A (zh) * | 2010-06-13 | 2010-10-20 | 北京北大众志微系统科技有限责任公司 | 一种高速缓存替换策略的管理系统及方法 |
CN103383666A (zh) * | 2013-07-16 | 2013-11-06 | 中国科学院计算技术研究所 | 改善缓存预取数据局部性的方法和系统及缓存访问方法 |
CN108073527A (zh) * | 2016-11-07 | 2018-05-25 | 华为技术有限公司 | 一种缓存替换的方法和设备 |
CN106708636A (zh) * | 2016-12-29 | 2017-05-24 | 北京奇虎科技有限公司 | 基于集群的数据缓存方法及装置 |
CN111177090A (zh) * | 2020-01-14 | 2020-05-19 | 江苏鸿程大数据技术与应用研究院有限公司 | 一种基于子模优化算法的客户端缓存方法及系统 |
CN112367402A (zh) * | 2020-11-13 | 2021-02-12 | 济南华芯算古信息科技有限公司 | 面向实时数据应用的智能缓存策略存储方法、装置及设备 |
CN112579482A (zh) * | 2020-12-05 | 2021-03-30 | 西安翔腾微电子科技有限公司 | 一种非阻塞Cache替换信息表超前精确更新装置及方法 |
WO2022178869A1 (zh) * | 2021-02-26 | 2022-09-01 | 华为技术有限公司 | 一种缓存替换方法和装置 |
CN113297098A (zh) * | 2021-05-24 | 2021-08-24 | 北京工业大学 | 一种面向高性能的适应预取的智能缓存替换策略 |
CN113407119A (zh) * | 2021-06-28 | 2021-09-17 | 海光信息技术股份有限公司 | 数据预取方法、数据预取装置、处理器 |
CN114138685A (zh) * | 2021-12-06 | 2022-03-04 | 海光信息技术股份有限公司 | 缓存的资源分配方法及装置、电子装置和存储介质 |
CN114297100A (zh) * | 2021-12-28 | 2022-04-08 | 摩尔线程智能科技(北京)有限责任公司 | 用于缓存的写策略调整方法、缓存装置及计算设备 |
CN115617712A (zh) * | 2022-10-14 | 2023-01-17 | 无锡先进技术研究院 | 一种基于组相联高速缓存Cache的LRU替换算法 |
Non-Patent Citations (3)
Title |
---|
SAGA:一种由流特性制导的微处理器高速缓存分配策略;陈彧;林隽民;乔林;汤志忠;;计算机学报(11);全文 * |
Secure Hierarchy-Aware Cache Replacement Policy (SHARP): Defending Against Cache-Based Side Channel Atacks;Mengjia Yan;《Proceedings of the 44th Annual International Symposium on Computer Architecture》;全文 * |
一种有效的Web代理缓存替换算法;杨春贵;吴产乐;彭鸿雁;;计算机工程(03);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN116107926A (zh) | 2023-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI684099B (zh) | 剖析快取替代 | |
US11086792B2 (en) | Cache replacing method and apparatus, heterogeneous multi-core system and cache managing method | |
CN105740164B (zh) | 支持缓存一致性的多核处理器、读写方法、装置及设备 | |
CN113424160B (zh) | 一种处理方法、装置及相关设备 | |
EP2478441B1 (en) | Read and write aware cache | |
KR102147356B1 (ko) | 캐시 메모리 시스템 및 그 동작방법 | |
US20160335177A1 (en) | Cache Management Method and Apparatus | |
WO2015142341A1 (en) | Dynamic memory expansion by data compression | |
US20200364080A1 (en) | Interrupt processing method and apparatus and server | |
US11593268B2 (en) | Method, electronic device and computer program product for managing cache | |
CN111506604A (zh) | 访问数据的方法、装置和计算机程序产品 | |
CN111124270A (zh) | 缓存管理的方法、设备和计算机程序产品 | |
US20170364442A1 (en) | Method for accessing data visitor directory in multi-core system and device | |
US20220206944A1 (en) | Cache allocation method and device, storage medium, and electronic device | |
US10353829B2 (en) | System and method to account for I/O read latency in processor caching algorithms | |
CN116010109B (zh) | 缓存资源分配方法、装置、电子设备和存储介质 | |
CN107748649B (zh) | 一种缓存数据的方法和装置 | |
CN113138851B (zh) | 一种数据管理方法、相关装置及系统 | |
CN116107926B (zh) | 缓存替换策略的管理方法、装置、设备、介质和程序产品 | |
US10997077B2 (en) | Increasing the lookahead amount for prefetching | |
CN116166575B (zh) | 访存段长度的配置方法、装置、设备、介质和程序产品 | |
KR20160018204A (ko) | 전자 장치, 온 칩 메모리 장치 및 온 칩 메모리의 운영 방법 | |
CN117093371B (zh) | 缓存资源分配方法、装置、电子设备和存储介质 | |
US20150032963A1 (en) | Dynamic selection of cache levels | |
US20220334973A1 (en) | Entities, system and methods performed therein for handling memory operations of an application in a computer environment |
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 |