CN114138685B - 缓存的资源分配方法及装置、电子装置和存储介质 - Google Patents
缓存的资源分配方法及装置、电子装置和存储介质 Download PDFInfo
- Publication number
- CN114138685B CN114138685B CN202111481246.1A CN202111481246A CN114138685B CN 114138685 B CN114138685 B CN 114138685B CN 202111481246 A CN202111481246 A CN 202111481246A CN 114138685 B CN114138685 B CN 114138685B
- Authority
- CN
- China
- Prior art keywords
- cache
- thread
- resource allocation
- cache block
- switching threshold
- 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
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/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/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
-
- 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/0808—Multiuser, multiprocessor or multiprocessing cache systems with cache invalidating means
-
- 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
技术领域
本公开的实施例涉及一种缓存的资源分配方法、用于缓存的资源分配装置、电子装置和计算机可读存储介质。
背景技术
服务质量(Quality of Service,QoS)指在一个系统(例如,CPU)中,能够利用各种基础技术,为特定的应用提供更好的服务能力,目的是获取更高的性能。在实际的实施方式中,服务质量主要是通过给特定的应用所占用的线程分配更多的硬件资源以及数据带宽来保证的,这样可以获取更高的性能。
发明内容
本公开至少一实施例提供一种缓存的资源分配方法,包括:获取使用缓存的线程的资源分配减少幅度;根据资源分配减少幅度,设置缓存对于线程的替换速率。
例如,在本公开至少一实施例提供的资源分配方法中,根据资源分配减少幅度,设置缓存对于线程的替换速率,包括:将线程的资源分配减少幅度与缓存针对线程的替换策略的切换阈值进行比较,得到第一比较结果,根据第一比较结果,调整缓存用于线程的替换策略,以设置缓存对于线程的替换速率。
例如,在本公开至少一实施例提供的资源分配方法中,调整缓存用于线程的替换策略,包括:调整用于线程的替换策略的参数。
例如,在本公开至少一实施例提供的资源分配方法中,根据第一比较结果,调整缓存用于线程的替换策略,包括:在线程的资源分配减少幅度大于切换阈值的最小值的情形,调整替换策略,否则维持替换策略。
例如,在本公开至少一实施例提供的资源分配方法中,在线程的资源分配减少幅度大于切换阈值的最小值的情形,调整替换策略,包括:在线程的资源分配减少幅度大于切换阈值的最小值且小于切换阈值的最大值的情形,调整替换策略,以加速释放线程占用的资源;在线程的资源分配减少幅度大于切换阈值的最大值的情形,调整替换策略以立即释放线程占用的资源。
例如,在本公开至少一实施例提供的资源分配方法中,缓存是多核处理器体系中的共享缓存。
例如,在本公开至少一实施例提供的资源分配方法中,在线程的资源分配减少幅度大于切换阈值的最小值且小于切换阈值的最大值的情形,调整替换策略以加速释放线程占用的其它线程的资源,包括:对于缓存加载请求,在命中非分配的缓存块且该缓存块具有E/M/D状态的情形,返回该缓存块,且同时无效该缓存块在共享缓存中的副本。
例如,在本公开至少一实施例提供的资源分配方法中,在线程的资源分配减少幅度大于切换阈值的最小值且小于切换阈值的最大值的情形,调整替换策略以加速释放线程占用的其它线程的资源,包括:对于缓存加载请求,在命中非分配的缓存块且该缓存块具有S/O/F状态的情形,调整该缓存块的替换策略的参数以对应于被最优先替换的。
例如,在本公开至少一实施例提供的资源分配方法中,在线程的资源分配减少幅度大于切换阈值的最小值且小于切换阈值的最大值的情形,更改替换策略以加速释放线程占用的其它线程的资源,包括:对于缓存逐出请求,在命中非分配的缓存块且该缓存块具有E/M/D状态的情形,将该缓存块逐出到主存中,且同时无效该缓存块在共享缓存中的副本。
例如,在本公开至少一实施例提供的资源分配方法中,在线程的资源分配减少幅度大于切换阈值的最小值且小于切换阈值的最大值的情形,更改替换策略以加速释放线程占用的其它线程的资源,包括:对于缓存逐出请求,在命中非分配的缓存块且该缓存块具有S/O/F状态的情形,调整该缓存块的替换策略的参数以对应于被最优先替换的。
例如,在本公开至少一实施例提供的资源分配方法中,替换策略的参数对于最近最少使用算法为年龄信息,对于最不经常使用算法为使用频率信息。
例如,在本公开至少一实施例提供的资源分配方法中,在线程的资源分配减少幅度大于切换阈值的最大值的情形,更改替换策略以立即释放线程占用的其它线程的资源,包括:对于缓存加载请求,在命中非分配的缓存块且该缓存块具有E/M/D状态的情形,返回该缓存块,且同时无效该缓存块在共享缓存中的副本。
例如,在本公开至少一实施例提供的资源分配方法中,在线程的资源分配减少幅度大于切换阈值的最大值的情形,更改替换策略以立即释放线程占用的其它线程的资源,包括:在命中非分配的缓存块且该缓存块具有S/O/F状态的情形,将该缓存块的状态和数据返回给上一级缓存,同时无效该缓存块在共享缓存中的副本。
例如,在本公开至少一实施例提供的资源分配方法中,在线程的资源分配减少幅度大于切换阈值的最大值的情形,更改替换策略以立即释放线程占用的其它线程的资源,包括:对于缓存逐出请求,在命中非分配的缓存块且该缓存块具有E/M/D状态的情形,将该缓存块逐出到主存中,且同时无效该缓存块在共享缓存中的副本。
例如,在本公开至少一实施例提供的资源分配方法中,在线程的资源分配减少幅度大于切换阈值的最大值的情形,更改替换策略以立即释放线程占用的其它线程的资源,包括:在命中非分配的缓存块且该缓存块具有S/O/F状态的情形,查询缓存的上一级缓存中是否存在该缓存块,在上一级缓存中存在该缓存块的情形,更新最后一级缓存对应的目录的状态信息,且将该缓存块逐出到主存中。
本公开至少一实施例提供一种用于缓存的资源分配装置,包括:获取单元,配置为获取使用缓存的线程的资源分配减少幅度;替换速率设置单元,配置为根据资源分配减少幅度,设置缓存对于线程的替换速率。
本公开至少一实施例提供一种用于缓存的资源分配装置,包括:处理器;以及存储器,存储有计算机可执行指令,计算机可执行指令在被处理器执行时实现本公开至少一实施例提供的资源分配方法。
本公开至少一实施例提供一种电子装置,包括缓存和本公开至少一实施例提供的资源分配装置。
本公开至少一实施例提供一种计算机可读存储介质,用于非瞬时性地存储计算机可执行指令,该计算机可执行指令在被处理器执行时实现本公开至少一实施例提供的资源分配方法。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。
图1示出了一种多核处理器体系的结构示意图;
图2示出了直接相联、全相联和组相联中内存和缓存的映射关系的示意图;
图3示出了缓存的组相联的组织形式和寻址方式的示意图;
图4示出了使用缓存的线程的资源分配的示意图;
图5示出了本公开至少一实施例提供的一种缓存的资源分配方法的示意性流程图;
图6示出了本公开至少一实施例提供的三种场景下线程的资源切换的示意图;
图7A示出了本公开至少一实施例提供的替换策略的选择流程图;
图7B示出了本公开至少一实施例提供的针对缓存加载请求的替换策略的选择流程图;
图7C示出了本公开至少一实施例提供的针对缓存逐出请求的替换策略的选择流程图;
图8A示出了本公开至少一实施例提供的一种用于缓存的资源分配装置的示意框图;
图8B示出了一种替换策略判断硬件装置;
图9示出了本公开至少一实施例提供的资源分配装置的示意图;
图10示出了本公开至少一实施例提供的电子装置的示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”、“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
图1示出了一种多核处理器体系,该体系为集中式共享存储器体系,处理核core0、core1、core2和core3具有共享缓存(通常是最后一级缓存(LLC)),并且具有各自的专用缓存,共享同一主存以及输入/输出(I/O)。每个处理核的专用缓存可以包括一级缓存(L1cache)或二级缓存(L2 cache)等。
通常缓存的容量很小,缓存保存的内容只是主存内容的一个子集,且缓存与主存的数据交换是以块为单位的。为了把主存中的数据缓存到缓存中,必须应用某种函数把主存地址定位到缓存中,这称为地址映射。在将主存中的数据按这种映射关系缓存到缓存中后,中央处理器(central processing unit,CPU)执行程序时,会将程序中的主存地址变换成缓存地址。缓存的地址映射方式通常有直接映射、全相联和组相联映射。
虽然缓存的容量相较于主存来说较小,但是速度相较于主存来说却快的多,因此缓存的主要功能是用来存储近期处理器可能需要频繁访问到的数据。这样处理器便可以直接到缓存中进行数据读取,而无需频繁地访问速度较慢的主存,以此来提高处理器对内存的访问速度。缓存的基本单位是缓存块或缓存行(cache line)。与缓存分成多个缓存块类似,主存中存储的数据也进行了类似划分。内存中的划分出来的数据块称为内存块。通常,一个内存块的大小可以为4KB,一个缓存块的大小也可以为4KB。可以理解的是,实际应用中,还可以将内存块和缓存块的大小设置为其他值,仅需保证内存块的大小与缓存块的大小相同即可。
内存和缓存之间具有一定映射关系,该映射关系可以是直接相联、全相联和组相联。在直接相联、全相联和组相联中,内存和缓存的映射关系原理如图2所示。将内存和缓存都分为大小一样的块。假设内存有32项,缓存有8项。在直接相联方式中,每个内存块只能放到缓存的一个位置上。假设要把内存的第12号块放到缓存中,因为缓存只有8项,所以只能放在第(12 mod 8=4)项上,其他地方都不能放;由此可知第4、12、20、28号内存块都对应到缓存的第4项上,如果冲突了就只能替换。直接相联方式所需的硬件简单但效率低,如图2的(a)所示。在全相联方式中,每个内存块都可以放到缓存的任一位置上,这样第4、12、20、28号内存块可以同时放入缓存中。全相联方式所需的硬件复杂但效率高,如图2的(b)所示。组相联是直接相联和全相联的折中。以两路(way)组相联为例,缓存中第0、2、4、6号位置为一路(这里称为第0路),第1、3、5、7号位置为另一路(这里称为第1路),每路4个块。对于内存的第12号块,因为12除以4余数为0,所以既可以把第12号块放到缓存的第0路的第0号位置(即缓存的第0号位置),也可以放到第1路的第0号位置(即缓存的第1号位置),如图2的(c)所示。
图2的(c)中缓存的组相联的组织形式和寻址方式如图3所示。缓存被组织为缓存块数组的形式。一列缓存块组成路,多列缓存块中相同位置的多个缓存块组成一个组(set)。通过要读取的数据或指令的物理地址获取数据或指令在缓存中的位置,每个物理地址被分为三部分:
·索引(Index),用于选择缓存中的组,同一组中的所有缓存块通过索引来选择;
·标签(tag),用于选择一组中特定的缓存块,将物理地址的标签与每个缓存块的标签进行比较,如果匹配,则缓存命中(cache hit),从而选择此缓存块,否则缓存缺失(cache miss);
·偏移量(offset),用于在缓存块中选择相应的地址,其表示物理地址在缓存块中的第一个字节,对应的数据或指令从此字节的位置读取。
缓存的工作原理要求它尽量保存最新数据,当从主存向缓存传送一个缓存块,而缓存中可用位置已经被占满时,就会产生缓存数据的替换问题。解决这个问题就涉及到缓存系统的数据替换机制。简单来说,缓存系统的数据替换机制包括两步:
第一,根据替换策略,筛选出对应用访问来说“不重要”的数据;
第二,将这些数据从缓存中删除,为新来的数据腾出空间。
图4示出了使用缓存的线程的资源分配的示意图。
如图4所示,缓存是以图3所示的组相联的形式进行组织的,15列缓存块组成15路(way0~way15),15列缓存块中相同位置的多个缓存块组成一个组(Set0~SetN)。右边的五个图标表示线程0~线程4,每个线程具有不同的优先级(Pri),这里用不同的数字表示不同的优先级,数值越大表示优先级越高。例如,线程0具有为4的优先级,线程1具有为2的优先级,这表示线程0的优先级比线程1的优先级更高。例如,每个线程的优先级是通过软件配置到对应的寄存器中,在程序运行的过程中,读取寄存器就可以知道每个线程具有的优先级。此外,在程序运行的过程中,每个线程的优先级可以被动态配置。每个缓存块和右边五个图标中的一个相对应,例如,Set0、way0对应的缓存块和线程3相对应,这表示该缓存块被分配给了线程3,Set3、way15对应的缓存块和线程0相对应,这表示该缓存块被分配给了线程0。
对于使用缓存的线程的资源分配主要是基于软件的配置,而做动态的资源调整。但是在资源分配的动态调整中,线程需要一定的时间来达到真正的独占所分配的资源。当这种动态资源调整发生较少时,优先级较高的线程,可以稳定获取更多的硬件资源,且性能可显著地提升;但是当这种资源分配调整较为频繁时,由于真正获取硬件资源需要一段时间的反馈,故而对于优先级较高的线程,影响其性能的提升,从而没有真正达到服务质量(QoS,Quality of Service)的本质目的。
已有的共享缓存的替换算法可以包括LRU(Least Recently Used)、LFU(LeastFrequently Used)、MRU(Most Recently Used)、NRU(Not Recent Used)、SRRIP(StaticRRIP)等方式,这些替换算法一般都是对所有线程的访问都采用一样的替换策略。由于缓存的替换策略一般没有考虑到线程资源分配的频繁程度,而对所有线程都采用一样的替换策略,也会存在上述的问题。
本公开至少一实施例提供一种缓存的资源分配方法,包括:获取使用缓存的线程的资源分配减少幅度;根据资源分配减少幅度,设置缓存对于线程的替换速率。
本公开上述实施例提供的缓存的资源分配方法能够在线程优先级切换频繁的场景下,尽快使得低优先级的线程释放所占用的资源,从而使得高优先级的线程能够较快地获取资源,从而实现更好的服务质量。
本公开至少一实施例还提供对应于上述缓存的资源分配方法的资源分配装置、包括缓存和该资源分配装置的电子装置、非暂时性地存储用于实现上述方法的计算机可读存储介质。
下面结合附图对本公开的实施例进行详细说明,但是本公开并不限于这些具体的实施例。
图5示出了本公开至少一实施例提供的一种缓存的资源分配方法的示意性流程图。例如,该资源分配方法所涉及的缓存是图1所示的多核处理器体系中的共享缓存,例如LLC缓存;在该多核处理器体系中,在工作过程中运行有多个线程,在该共享缓存中为这些线程分配调度缓存资源。
如图5所示,该资源分配方法包括如下的步骤S501~S502。
步骤S501:获取使用缓存的线程的资源分配减少幅度。
使用缓存的线程的资源分配是根据缓存路(cache way)进行分配的。例如,一个线程分配9个缓存路的资源,另一个线程分配4个缓存路的资源。
使用缓存的线程的资源分配减少幅度是指该线程分配的缓存路的减少幅度。例如,一个线程的资源分配减少幅度为9个缓存路。
步骤S502:根据资源分配减少幅度,设置缓存对于线程的替换速率。
由于根据资源分配减少幅度设置缓存对于线程的替换速率,因此可以对不同的线程采用不同的替换策略,改善服务质量。
对于资源分配减少幅度设置缓存对于线程的替换速率,可以采用不同的方式。
例如,在本公开的一些实施例中,步骤S502的一个示例可以包括:将线程的资源分配减少幅度与缓存针对线程的替换策略的切换阈值进行比较,得到第一比较结果,根据第一比较结果,调整缓存用于线程的替换策略,以设置缓存对于线程的替换速率。
例如,缓存针对线程的替换策略是针对以age(年龄)为基础进行决策的替换策略,例如最近最少使用算法(LRU)、最不经常使用算法(LFU)、再参考区间预测算法(RRIP)等。
缓存针对线程的替换策略的切换阈值是指在不同的QoS级别下,线程所分配的缓存资源减少的范围阈值。例如,缓存针对线程的替换策略的切换阈值为4个缓存路到8个缓存路之间的范围阈值,在此情况下,切换阈值的最小值为4个缓存路,切换阈值的最大值为8个缓存路。
需要说明的是,这里的替换策略切换阈值可以通过软件配置,也可以通过硬件固定。
在本公开的一些实施例中,调整缓存针对线程的替换策略可以包括调整用于线程的替换策略的参数。
例如,替换策略的参数对于最近最少使用算法(LRU)为age信息,对于最不经常使用算法(LFU)为使用频率信息。
在本公开的一些实施例中,在步骤S502的示例中,根据第一比较结果,调整缓存用于线程的替换策略,可以包括:在线程的资源分配减少幅度大于切换阈值的最小值的情形,调整缓存用于线程的替换策略,否则维持替换策略。
在本公开的一些实施例中,在线程的资源分配减少幅度大于切换阈值的最小值的情形,调整缓存用于线程的替换策略,可以包括:在线程的资源分配减少幅度大于切换阈值的最小值且小于切换阈值的最大值的情形,调整替换策略,以加速释放线程占用的资源;在线程的资源分配减少幅度大于切换阈值的最大值的情形,调整替换策略以立即释放线程占用的资源。
例如,上述缓存的资源分配方法基于三种场景,选择不同的替换策略。这三种不同的场景是基于替换策略切换阈值作为判断标准的。
·场景一,表示线程的缓存资源分配减少幅度低于替换策略切换阈值的最小值;
·场景二,表示线程的缓存资源分配减少幅度大于替换策略切换阈值的最小值且小于替换策略切换阈值的最大值;
·场景三,表示线程的缓存资源分配减少幅度大于替换策略切换阈值的最大值。
针对场景一的替换策略,是为了防止误伤资源分配减少幅度小的线程。
针对场景二的替换策略,是为了加速释放资源分配减少幅度中等的线程所占用的资源,但不是立即释放,这样可以适当地保留该线程原先的数据。
针对场景三的替换策略,是为了立即释放资源分配减少幅度较大的线程所占用的资源,从而降低该线程的性能而保证高优先级的线程立即获取资源以提高性能。
需要说明的是,优先级高的线程会被分配较多的硬件资源,线程的资源分配减少表示线程的优先级下降,线程的资源分配减少幅度大表示线程的优先级下降快。根据线程的资源分配减少幅度来调整替换策略,可以使得低优先级的线程释放所占用的资源,以使得高优先级的线程能够较快地获取资源,实现更好的服务质量。关于线程的优先级的说明可以参考图4中的描述,在此不再赘述。
另外,需要说明的是,尽管本公开的实施例以基于三种场景选择不同的替换策略为例说明本公开至少一实施例提供的线程的资源分配方法,但这并不构成对本公开实施例的限制,本公开实施例对设置缓存对于线程的替换速率的判断条件不作限制。
不同的资源分配减少幅度对应于不同的场景,图6示出了在上述三种场景下线程的资源切换的示意图。
如图6所示,每个线程包含不同数量的方块,方块的数量表示分配给该线程的缓存路的数量。虚线框区域是资源切换区域,表示原来分配给某一个线程使用的缓存路分配给另一个线程使用。
例如,在线程1处于场景一且线程0处于场景三的情形,线程1所分配的资源数量基本不变且资源减少幅度小于替换策略切换阈值的最小值,线程0所分配的资源数量减少且资源减少幅度大于替换策略切换阈值的最大值。
又例如,在线程0和线程1均处于场景一的情形,线程0和线程1所分配的资源数量基本不变,并且线程0和线程1的资源减少幅度均小于替换策略切换阈值的最小值。
又例如,在线程0处于场景二且线程1处于场景一的情形,线程0所分配的资源数量减少,并且资源减少幅度大于替换策略切换阈值的最小值且小于替换策略切换阈值的最大值,线程1所分配的资源数量基本不变且资源减少幅度小于替换策略切换阈值的最小值。
再例如,在线程0处于场景三且线程2处于场景一的情形,线程0所分配的资源数量减少,并且资源减少幅度大于替换策略切换阈值的最大值,线程2所分配的资源数量基本不变且小于替换策略切换阈值的最小值。
下面通过图7A来具体说明如何通过资源分配减少幅度和切换阈值来选择替换策略。
图7A示出了本公开至少一实施例提供的替换策略的选择流程图。该示意图以线程T0作为描述对象,该线程T0可以是当前系统运行的程序包括的任一符合条件的线程而非限于某个特定的线程。在该图7A中,flag_repl_priHi、flag_repl_normal和flag_repl_priLo是所选择的替换策略的标志信息,例如,这些标志信息被存储在对应的存储器中。
如图7A所示,首先,线程T0的QoS优先级发生改变。
需要说明的是,在本公开中,QoS优先级和线程优先级是一个意思。线程T0的QoS的优先级发生了变化,即线程T0的优先级发生了变化,也即要分配给线程T0的硬件资源发生了变化。
接着,如图7A所示,判断线程T0的QoS优先级是否降低。
例如,每个线程的优先级是通过软件配置到对应的寄存器中,当程序运行时,读取寄存器就可以知道该程序的每个线程的优先级是否降低。
接着,如图7A所示,在线程T0的QoS优先级降低的情形,将线程T0的资源分配减少幅度与替换策略的切换阈值进行比较,由此分别判断资源分配减少幅度是否大于切换阈值的最大值,是否小于切换阈值的最小值,以及是否大于切换阈值的最小值且小于切换阈值的最大值。
接着,如图7A所示,在线程的资源分配减少幅度大于切换阈值的最大值的情形(场景三),调整替换策略,并设置flag_repl_priHi=1;在线程的资源分配减少幅度小于切换阈值的最小值的情形(场景一),维持原有的替换策略,并设置flag_repl_normal=1;在线程的资源分配减少幅度大于切换阈值的最小值且小于切换阈值的最大值的情形(场景二),调整替换策略,并设置flag_repl_priLo=1。
例如,线程T0的资源分配减少幅度为9个缓存路,替换策略的切换阈值的最小值为6个缓存路,切换阈值的最大值为11个缓存路,由于线程T0的资源分配减少幅度大于切换阈值的最小值且小于切换阈值的最大值,因此调整替换策略并设置flag_repl_priLo=1。
对于场景二和场景三,可以针对不同的对于缓存的请求类型以及缓存的一致性状态,进一步选择不同的替换策略。
例如,对于缓存的请求类型可以包括缓存加载请求和缓存逐出请求。缓存加载请求是请求所需的缓存块,缓存逐出请求是请求将不需要的缓存块逐出到主存中。
在图1所示的多核处理器体系中,每个处理核都具有多个缓存,当多个处理核同时访问同一个变量时就引入了一个问题,不同处理核的缓存如何进行同步,以及如何避免冲突。
MESI协议是一种使用广泛的协议,用来维护缓存的一致性。MESI可以被看作是状态机,每个缓存块被标记状态,并且每个缓存块的状态切换被维护。在MESI协议中,每个缓存块都有四个状态,分别是独享(E,exclusive)、修改(M,modified)、共享(S,shared)、无效(I,invalid)。
表1
在表1中,描述了在MESI协议中缓存块的四种状态。具体地,修改(M)表示缓存块有效,该缓存块只被缓存在本处理核中,并且是被修改过的(dirty),即与主存中的数据不一致,该缓存块需要在未来某个时间点写回主存,当被写回主存后,该缓存块的状态会变成独享(E)状态;独享(E)表示缓存块只被缓存在本处理核中,并且该缓存块是未被修改过的(clean),即该缓存块中的数据与主存中的数据一致,该状态可以在任何时刻在有其它处理核读取该缓存块时变成共享状态,当处理核修改该缓存块时,该状态可以变成修改(M)状态;共享(S)表示缓存块可能被多个处理核共享,并且该缓存块中的数据与主存数据一致(clean),当一个处理核修改该缓存块中的数据,该缓存块变成无效状态。无效(I)表示缓存块是无效的。
除了上述的四种状态,在扩展的MESI协议中,缓存的一致性状态还可以包括:拥有(O)状态、转发(F)状态、D状态等。O状态表示在当前缓存块中包含的数据是当前多核处理器体系最新的数据拷贝,而且在其它处理核中一定具有该缓存块的副本,其它处理核的缓存块状态为S。F状态表示当多个处理核同时拥有某个S状态的缓存块的时候,只有被指定的那个处理核(例如,对应的缓存块为F状态)才能对读操作做出回应。D状态表示缓存块是脏的(dirty)且具有独占属性,也就是说当前缓存块虽然是被修改过的(具有dirty属性),但是不是被本处理核修改的。当存在O状态与S状态时,表示当前缓存块中包含的数据与主存中的数据不一致,具有dirty属性。当存在F状态与S状态时,表示当前缓存块中包含的数据与主存中的数据一致,具有clean属性。
下面通过图7B和图7C来具体说明如何结合请求类型和缓存的一致性状态来选择不同的替换策略。
图7B示出了本公开至少一实施例提供的针对缓存加载请求的替换策略的选择流程图。
如图7B所示,首先,线程T0发起缓存加载请求。
接着,如图7B所示,分别判断标志flag_repl_priHi、flag_repl_priLo、flag_repl_normal是否为1。
如上所述,flag_repl_priHi=1对应场景三,flag_repl_priLo=1对应场景二,flag_repl_normal=1对应场景一。
下面分为三种情形进行说明,即flag_repl_priHi=1的情形、flag_repl_priLo=1的情形,flag_repl_normal=1的情形。
在flag_repl_normal=1的情形,维持替换策略。
在flag_repl_priHi=1和flag_repl_priLo=1的情形,需要进一步判断缓存加载操作是否命中到非分配的缓存块以及判断命中的缓存块的一致性状态,下面对这两种情形进行进一步描述。
在flag_repl_priHi=1的情形,如图7B所示,首先判断缓存加载操作是否命中到非分配的缓存块,接着在命中到非分配的缓存块的情形,判断所命中的缓存块的一致性状态。
例如,如果判断在命中非分配的缓存块且该缓存块具有E/M/D状态的情形,则返回该缓存块,且同时无效该缓存块在共享缓存中的副本。
例如,如果判断在命中非分配的缓存块且该缓存块具有S/O/F状态的情形,则将该缓存块的状态和数据返回给上一级缓存,同时无效该缓存块在共享缓存中的副本。
此外,在flag_repl_priLo=1的情形,如图7B所示,首先判断缓存加载操作是否命中到非分配的缓存块,接着在命中到非分配的缓存块的情形,判断所命中的缓存块的一致性状态。
例如,如果判断在命中非分配的缓存块且该缓存块具有E/M/D状态的情形,返回该缓存块,且同时无效该缓存块在共享缓存中的副本。
例如,如果判断在命中非分配的缓存块且该缓存块具有S/O/F状态的情形,调整该缓存块的替换策略的参数以对应于被最优先替换的。
例如,该缓存块的替换策略为LRU,调整LRU的参数age为最老的,从而该缓存块会被最优先替换。
图7C示出了本公开至少一实施例提供的针对缓存逐出请求的替换策略的选择流程图。
如图7C所示,首先,线程T0发起缓存逐出请求。
接着,如图7C所示,分别判断标志flag_repl_priHi、flag_repl_priLo、flag_repl_normal是否为1。
如上所述,flag_repl_priHi=1对应场景三,flag_repl_priLo=1对应场景二,flag_repl_normal=1对应场景一。
下面分为三种情形进行说明,即flag_repl_priHi=1的情形、flag_repl_priLo=1的情形,flag_repl_normal=1的情形。
在flag_repl_normal=1的情形,维持替换策略。
在flag_repl_priHi=1和flag_repl_priLo=1的情形,需要进一步判断缓存逐出操作是否命中到非分配的缓存块以及判断命中的缓存块的一致性状态,下面对这两种状态进行进一步描述。
在flag_repl_priHi=1的情形,如图7C所示,首先判断缓存逐出操作是否命中到非分配的缓存块,接着在命中到非分配的缓存块的情形,判断所命中的缓存块的一致性状态。
例如,如果判断在命中非分配的缓存块且该缓存块具有E/M/D状态的情形,将该缓存块逐出到主存中,且同时无效该缓存块在共享缓存中的副本。
例如,如果判断在命中非分配的缓存块且该缓存块具有S/O/F状态的情形,查询缓存的上一级缓存中是否存在该缓存块,在上一级缓存中存在该缓存块的情形,更新最后一级缓存对应的目录的状态信息,且将该缓存块逐出到主存中。
另外,在flag_repl_priLo=1的情形,如图7C所示,首先判断缓存逐出操作是否命中到非分配的缓存块,接着在命中到非分配的缓存块的情形,判断所命中的缓存块的一致性状态。
例如,如果判断在命中非分配的缓存块且该缓存块具有E/M/D状态的情形,将该缓存块逐出到主存中,且同时无效该缓存块在共享缓存中的副本。
例如,如果判断在命中非分配的缓存块且该缓存块具有S/O/F状态的情形,调整该缓存块的替换策略的参数以对应于被最优先替换的。
例如,该缓存块的替换策略为LRU,调整LRU的参数age为最老的,从而该缓存块会被最优先替换。
需要说明的是,在本公开的实施例中,判断缓存加载操作是否命中到非分配的缓存块以及判断命中的缓存块的一致性状态的顺序不作限制。
图8A示出了本公开至少一实施例提供的一种用于缓存的资源分配装置800的示意框图,该资源分配装置可以用于执行图5所示的资源分配方法。
如图8A所示,资源分配装置800包括获取单元801以及替换速率设置单元802。
获取单元801被配置为获取使用缓存的线程的资源分配减少幅度。
替换速率设置单元802被配置为根据资源分配减少幅度,设置缓存对于线程的替换速率。
例如,在至少一个实施例中,替换速率设置单元802还配置为,将线程的资源分配减少幅度与缓存针对线程的替换策略的切换阈值进行比较,得到第一比较结果,根据第一比较结果,调整缓存用于线程的替换策略,以设置缓存对于线程的替换速率。
例如,在至少一个实施例中,替换速率设置单元802还配置为调整用于线程的替换策略的参数。
例如,在至少一个实施例中,替换速率设置单元802还配置为,在线程的资源分配减少幅度大于切换阈值的最小值的情形,调整替换策略,否则维持替换策略。
例如,在至少一个实施例中,替换速率设置单元802还配置为,在线程的资源分配减少幅度大于切换阈值的最小值且小于切换阈值的最大值的情形,调整替换策略,以加速释放线程占用的资源;在线程的资源分配减少幅度大于切换阈值的最大值的情形,调整替换策略以立即释放线程占用的资源。
例如,在至少一个实施例中,替换速率设置单元802还配置为,对于缓存加载请求,在命中非分配的缓存块且缓存块具有E/M/D状态的情形,返回缓存块,且同时无效缓存块在共享缓存中的副本。
例如,在至少一个实施例中,替换速率设置单元802还配置为,对于缓存加载请求,在命中非分配的缓存块且缓存块具有S/O/F状态的情形,调整缓存块的替换策略的参数以对应于被最优先替换的。
例如,在至少一个实施例中,替换速率设置单元802还配置为,对于缓存逐出请求,在命中非分配的缓存块且缓存块具有E/M/D状态的情形,将缓存块逐出到主存中,且同时无效缓存块在共享缓存中的副本。
例如,在至少一个实施例中,替换速率设置单元802还配置为,对于缓存逐出请求,在命中非分配的缓存块且缓存块具有S/O/F状态的情形,调整缓存块的替换策略的参数以对应于被最优先替换的。
例如,在至少一个实施例中,替换速率设置单元802还配置为,对于缓存加载请求,在命中非分配的缓存块且缓存块具有E/M/D状态的情形,返回缓存块,且同时无效缓存块在共享缓存中的副本。
例如,在至少一个实施例中,替换速率设置单元802还配置为,在命中非分配的缓存块且缓存块具有S/O/F状态的情形,将缓存块的状态和数据返回给上一级缓存,同时无效缓存块在共享缓存中的副本。
例如,在至少一个实施例中,替换速率设置单元802还配置为,对于缓存逐出请求,在命中非分配的缓存块且缓存块具有E/M/D状态的情形,将缓存块逐出到主存中,且同时无效缓存块在共享缓存中的副本。
例如,在至少一个实施例中,替换速率设置单元802还配置为,在命中非分配的缓存块且缓存块具有S/O/F状态的情形,查询缓存的上一级缓存中是否存在缓存块,在上一级缓存中存在缓存块的情形,更新最后一级缓存对应的目录的状态信息,且将缓存块逐出到主存中。
例如,替换速率设置单元802可以包含如图8B所示的替换策略判断硬件装置。
如图8B所示,该替换策略判断硬件装置由两个比较器、两个非门和三个与门构成。在比较器81的输入端输入切换阈值的最大值和资源分配减少幅度并对这两个输入值进行比较,若资源分配减少幅度大于切换阈值的最大值,则输出逻辑1。在比较器82的输入端输入切换阈值的最小值和资源分配减少幅度并对这两个输入值进行比较,若资源分配减少幅度大于切换阈值的最小值,则输出逻辑1。与门85的两个输入分别是两个比较器的输出,该与门85的输出表示flag_repl_priHi=1。与门86的两个输入分别是比较器81的输出经过非门83后的值和比较器82的输出,该与门86的输出表示flag_repl_priLo=1。与门87的两个输入分别是比较器81的输出经过非门83后的值和比较器82的输出经过非门84后的值,该与门87的输出表示flag_repl_normal=1。
例如,获取单元801和替换速率设置单元802可以采用硬件、软件、固件以及它们的任意可行的组合实现,本公开对此不作限制。
该资源分配装置800和图5所示的资源分配方法的技术效果相同,可以实现更好的服务质量,在此不再赘述。
本公开至少一实施例还提供了一种用于缓存的资源分配装置,包括:存储器,用于非暂时性存储计算机可执行指令;以及处理器,用于运行计算机可执行指令,其中,计算机可执行指令被处理器运行时执行本公开至少一实施例提供的资源分配方法。
图9示出了根据本公开实施例的资源分配装置900的示意图。如图9所示,根据本公开实施例的资源分配装置900可以包括处理装置901以及存储器902,其可以通过总线903进行互连。
处理装置901可以根据存储在存储器902中的程序或代码执行各种动作和处理。具体地,处理装置901可以是一种集成电路芯片,具有信号的处理能力。例如,上述处理装置可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本公开实施例中公开的各种方法、步骤、流程及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,可以是X86架构或者是ARM架构等。
存储器902存储有计算机可执行指令,其中,计算机可执行指令在被处理装置901执行时实现本公开至少一实施例提供的资源分配方法。存储器902可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)或闪存。易失性存储器可以是随机存取存储器(RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(SDRAM)、双倍数据速率同步动态随机存取存储器(DDRSDRAM)、增强型同步动态随机存取存储器(ESDRAM)、同步连接动态随机存取存储器(SLDRAM)和直接内存总线随机存取存储器(DRRAM)。应注意,本文描述的方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
本公开的至少一个实施例还提供一种电子装置,包括缓存和本公开至少一实施例提供的资源分配装置。在一个实施例中,该电子装置例如是中央处理器,该处理器例如是单核或多核处理器,例如,缓存可以是多核处理器体系中的共享缓存(通常为最后一级缓存)。在一个实施例中,该电子装置为计算机系统,该计算机系统包括一个或多个处理器,
图10示出了根据本公开实施例的电子装置1000的示意图。如图10所示,根据本公开实施例的电子装置1000可以包括缓存1001以及资源分配装置800。
本公开至少一实施例提供一种计算机可读存储介质,用于非瞬时性地存储计算机可执行指令,该计算机可执行指令在被处理器执行时实现本公开至少一实施例提供的资源分配方法。
类似地,本公开实施例中的计算机可读存储介质可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。应注意,本文描述的方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
本公开的实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行根据本公开实施例的资源分配方法。
上述资源分配装置、电子装置以及存储介质的技术效果与图5所示的资源分配方法的技术效果相同,均可以用于实现更好的服务质量,在此不再赘述。
对于本公开,还有以下几点需要说明:
(1)本公开实施例附图只涉及到与本公开实施例涉及到的结构,其他结构可参考通常设计。
(2)在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合以得到新的实施例。
以上所述仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,本公开的保护范围应以所述权利要求的保护范围为准。
Claims (18)
1.一种缓存的资源分配方法,包括:
获取使用所述缓存的线程的资源分配减少幅度;
根据所述资源分配减少幅度,设置所述缓存对于所述线程的替换速率,
其中,所述缓存是多核处理器体系中的共享缓存,所述线程为所述多核处理器体系中同时运行的多个线程中的一个,所述资源分配减少幅度表示所述线程分配的缓存路的减少幅度。
2.根据权利要求1所述的资源分配方法,其中,根据所述资源分配减少幅度,设置所述缓存对于所述线程的替换速率,包括:
将所述线程的所述资源分配减少幅度与所述缓存针对所述线程的替换策略的切换阈值进行比较,得到第一比较结果,
根据所述第一比较结果,调整所述缓存用于所述线程的替换策略,以设置所述缓存对于所述线程的替换速率。
3.根据权利要求2所述的资源分配方法,其中,调整所述缓存用于所述线程的替换策略,包括:
调整用于所述线程的替换策略的参数。
4.根据权利要求2所述的资源分配方法,其中,根据所述第一比较结果,调整所述缓存用于所述线程的替换策略,包括:
在所述线程的所述资源分配减少幅度大于所述切换阈值的最小值的情形,调整所述替换策略,否则维持所述替换策略。
5.根据权利要求4所述的资源分配方法,其中,在所述线程的所述资源分配减少幅度大于所述切换阈值的所述最小值的情形,调整所述替换策略,包括:
在所述线程的所述资源分配减少幅度大于所述切换阈值的所述最小值且小于所述切换阈值的最大值的情形,调整所述替换策略,以加速释放所述线程占用的资源;
在所述线程的所述资源分配减少幅度大于所述切换阈值的所述最大值的情形,调整所述替换策略以立即释放所述线程占用的资源。
6.根据权利要求5所述的资源分配方法,其中,在所述线程的所述资源分配减少幅度大于所述切换阈值的所述最小值且小于所述切换阈值的所述最大值的情形,调整所述替换策略以加速释放所述线程占用的其它线程的资源,包括:
对于缓存加载请求,在命中非分配的缓存块且所述缓存块具有E/M/D状态的情形,返回所述缓存块,且同时无效所述缓存块在所述共享缓存中的副本。
7.根据权利要求5所述的资源分配方法,其中,在所述线程的所述资源分配减少幅度大于所述切换阈值的所述最小值且小于所述切换阈值的所述最大值的情形,调整所述替换策略以加速释放所述线程占用的其它线程的资源,包括:
对于缓存加载请求,在命中非分配的缓存块且所述缓存块具有S/O/F状态的情形,调整所述缓存块的替换策略的参数以对应于被最优先替换的。
8.根据权利要求5所述的资源分配方法,其中,在所述线程的所述资源分配减少幅度大于所述切换阈值的所述最小值且小于所述切换阈值的所述最大值的情形,更改所述替换策略以加速释放所述线程占用的其它线程的资源,包括:
对于缓存逐出请求,在命中非分配的缓存块且所述缓存块具有E/M/D状态的情形,将所述缓存块逐出到主存中,且同时无效所述缓存块在所述共享缓存中的副本。
9.根据权利要求5所述的资源分配方法,其中,在所述线程的所述资源分配减少幅度大于所述切换阈值的所述最小值且小于所述切换阈值的所述最大值的情形,更改所述替换策略以加速释放所述线程占用的其它线程的资源,包括:
对于缓存逐出请求,在命中非分配的缓存块且所述缓存块具有S/O/F状态的情形,调整所述缓存块的替换策略的参数以对应于被最优先替换的。
10.根据权利要求7或9所述的资源分配方法,其中,所述替换策略的所述参数对于最近最少使用算法为年龄信息,对于最不经常使用算法为使用频率信息。
11.根据权利要求5所述的资源分配方法,其中,在所述线程的所述资源分配减少幅度大于所述切换阈值的所述最大值的情形,更改所述替换策略以立即释放所述线程占用的其它线程的资源,包括:
对于缓存加载请求,在命中非分配的缓存块且所述缓存块具有E/M/D状态的情形,返回所述缓存块,且同时无效所述缓存块在所述共享缓存中的副本。
12.根据权利要求5所述的资源分配方法,其中,在所述线程的所述资源分配减少幅度大于所述切换阈值的所述最大值的情形,更改所述替换策略以立即释放所述线程占用的其它线程的资源,包括:
在命中非分配的缓存块且所述缓存块具有S/O/F状态的情形,将所述缓存块的状态和数据返回给上一级缓存,同时无效所述缓存块在所述共享缓存中的副本。
13.根据权利要求5所述的资源分配方法,其中,在所述线程的所述资源分配减少幅度大于所述切换阈值的所述最大值的情形,更改所述替换策略以立即释放所述线程占用的其它线程的资源,包括:
对于缓存逐出请求,在命中非分配的缓存块且所述缓存块具有E/M/D状态的情形,将所述缓存块逐出到主存中,且同时无效所述缓存块在所述共享缓存中的副本。
14.根据权利要求5所述的资源分配方法,其中,在所述线程的所述资源分配减少幅度大于所述切换阈值的所述最大值的情形,更改所述替换策略以立即释放所述线程占用的其它线程的资源,包括:
在命中非分配的缓存块且所述缓存块具有S/O/F状态的情形,查询所述缓存的上一级缓存中是否存在所述缓存块,在所述上一级缓存中存在所述缓存块的情形,更新最后一级缓存对应的目录的状态信息,且将所述缓存块逐出到主存中。
15.一种用于缓存的资源分配装置,包括:
获取单元,配置为获取使用所述缓存的线程的资源分配减少幅度;
替换速率设置单元,配置为根据所述资源分配减少幅度,设置所述缓存对于所述线程的替换速率,
其中,所述缓存是多核处理器体系中的共享缓存,所述线程为所述多核处理器体系中同时运行的多个线程中的一个,所述资源分配减少幅度表示所述线程分配的缓存路的减少幅度。
16.一种用于缓存的资源分配装置,包括:
处理器;以及
存储器,存储有计算机可执行指令,
其中,所述计算机可执行指令在被所述处理器执行时实现根据权利要求1-14中任一项所述的资源分配方法。
17.一种电子装置,包括缓存和权利要求15所述的资源分配装置。
18.一种计算机可读存储介质,用于非瞬时性地存储计算机可执行指令,
其中,所述计算机可执行指令在被处理器执行时实现根据权利要求1-14中任一项所述的资源分配方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111481246.1A CN114138685B (zh) | 2021-12-06 | 2021-12-06 | 缓存的资源分配方法及装置、电子装置和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111481246.1A CN114138685B (zh) | 2021-12-06 | 2021-12-06 | 缓存的资源分配方法及装置、电子装置和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114138685A CN114138685A (zh) | 2022-03-04 |
CN114138685B true CN114138685B (zh) | 2023-03-10 |
Family
ID=80384180
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111481246.1A Active CN114138685B (zh) | 2021-12-06 | 2021-12-06 | 缓存的资源分配方法及装置、电子装置和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114138685B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116107926B (zh) * | 2023-02-03 | 2024-01-23 | 摩尔线程智能科技(北京)有限责任公司 | 缓存替换策略的管理方法、装置、设备、介质和程序产品 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1971538A (zh) * | 2005-08-05 | 2007-05-30 | 富士通株式会社 | 降低高速缓存的功耗 |
CN101571836A (zh) * | 2008-04-29 | 2009-11-04 | 国际商业机器公司 | 用于替换缓存块的方法和系统 |
CN103514111A (zh) * | 2012-06-21 | 2014-01-15 | 华为技术有限公司 | 一种Cache的替换方法及装置 |
CN104272279A (zh) * | 2012-05-10 | 2015-01-07 | Arm有限公司 | 具有缓存和转换后备缓冲器的数据处理装置 |
WO2016097807A1 (en) * | 2014-12-14 | 2016-06-23 | Via Alliance Semiconductor Co., Ltd. | Cache replacement policy that considers memory access type |
CN106909517A (zh) * | 2015-12-22 | 2017-06-30 | 超威半导体产品(中国)有限公司 | 用于基于目录的缓存一致性的目录替换方法和系统 |
CN109032964A (zh) * | 2018-07-02 | 2018-12-18 | 京东方科技集团股份有限公司 | 缓存替换方法及其装置、异构多核系统 |
WO2019020028A1 (zh) * | 2017-07-26 | 2019-01-31 | 华为技术有限公司 | 共享资源分配方法及装置 |
CN111597040A (zh) * | 2020-04-30 | 2020-08-28 | 中国科学院深圳先进技术研究院 | 一种资源分配方法、装置、存储介质和电子设备 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103345451B (zh) * | 2013-07-18 | 2015-05-13 | 四川九成信息技术有限公司 | 一种在多核处理器中缓冲数据的方法 |
CN105378652B (zh) * | 2013-12-24 | 2018-02-06 | 华为技术有限公司 | 线程共享资源分配方法及装置 |
US10642657B2 (en) * | 2018-06-27 | 2020-05-05 | The Hong Kong Polytechnic University | Client-server architecture for multicore computer system to realize single-core-equivalent view |
-
2021
- 2021-12-06 CN CN202111481246.1A patent/CN114138685B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1971538A (zh) * | 2005-08-05 | 2007-05-30 | 富士通株式会社 | 降低高速缓存的功耗 |
CN101571836A (zh) * | 2008-04-29 | 2009-11-04 | 国际商业机器公司 | 用于替换缓存块的方法和系统 |
CN104272279A (zh) * | 2012-05-10 | 2015-01-07 | Arm有限公司 | 具有缓存和转换后备缓冲器的数据处理装置 |
CN103514111A (zh) * | 2012-06-21 | 2014-01-15 | 华为技术有限公司 | 一种Cache的替换方法及装置 |
WO2016097807A1 (en) * | 2014-12-14 | 2016-06-23 | Via Alliance Semiconductor Co., Ltd. | Cache replacement policy that considers memory access type |
CN106909517A (zh) * | 2015-12-22 | 2017-06-30 | 超威半导体产品(中国)有限公司 | 用于基于目录的缓存一致性的目录替换方法和系统 |
WO2019020028A1 (zh) * | 2017-07-26 | 2019-01-31 | 华为技术有限公司 | 共享资源分配方法及装置 |
CN109308220A (zh) * | 2017-07-26 | 2019-02-05 | 华为技术有限公司 | 共享资源分配方法及装置 |
CN109032964A (zh) * | 2018-07-02 | 2018-12-18 | 京东方科技集团股份有限公司 | 缓存替换方法及其装置、异构多核系统 |
CN111597040A (zh) * | 2020-04-30 | 2020-08-28 | 中国科学院深圳先进技术研究院 | 一种资源分配方法、装置、存储介质和电子设备 |
Non-Patent Citations (3)
Title |
---|
基于改进LRU替换策略的共享Cache划分;王涛等;《微电子学与计算机》;20120105;第29卷(第1期);第80-83页 * |
异构多核环境下共享缓存管理技术的研究;郝晓婷;《中国优秀硕士学位论文全文数据库-信息科技辑》;20180715;第2018年卷(第7期);全文 * |
提高多核处理器片上Cache利用率的关键技术研究;孙荪;《中国博士学位论文全文数据库-信息科技辑》;20150915;第2015年卷(第9期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114138685A (zh) | 2022-03-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8990506B2 (en) | Replacing cache lines in a cache memory based at least in part on cache coherency state information | |
US7844778B2 (en) | Intelligent cache replacement mechanism with varying and adaptive temporal residency requirements | |
US10725923B1 (en) | Cache access detection and prediction | |
US8140764B2 (en) | System for reconfiguring cache memory having an access bit associated with a sector of a lower-level cache memory and a granularity bit associated with a sector of a higher-level cache memory | |
US8417915B2 (en) | Alias management within a virtually indexed and physically tagged cache memory | |
JP4044585B2 (ja) | キャッシュメモリおよびその制御方法 | |
US8732409B2 (en) | Cache management policy and corresponding device | |
JP7340326B2 (ja) | メンテナンス動作の実行 | |
US20110320720A1 (en) | Cache Line Replacement In A Symmetric Multiprocessing Computer | |
US10423534B2 (en) | Cache memory | |
US11803482B2 (en) | Process dedicated in-memory translation lookaside buffers (TLBs) (mTLBs) for augmenting memory management unit (MMU) TLB for translating virtual addresses (VAs) to physical addresses (PAs) in a processor-based system | |
CN110175136B (zh) | 缓存管理方法、缓存器以及存储介质 | |
US7093075B2 (en) | Location-based placement algorithms for set associative cache memory | |
US20110167223A1 (en) | Buffer memory device, memory system, and data reading method | |
CN114138685B (zh) | 缓存的资源分配方法及装置、电子装置和存储介质 | |
US10831673B2 (en) | Memory address translation | |
CN114217861A (zh) | 数据处理方法及装置、电子装置和存储介质 | |
CN115617709A (zh) | 缓存管理方法及装置、缓存装置、电子装置和介质 | |
US20180276125A1 (en) | Processor | |
US11334488B2 (en) | Cache management circuits for predictive adjustment of cache control policies based on persistent, history-based cache control information | |
US20190213142A1 (en) | Information processing apparatus | |
US20090157968A1 (en) | Cache Memory with Extended Set-associativity of Partner Sets | |
JPH11143774A (ja) | キャッシュ制御機構 | |
JP7311959B2 (ja) | 複数のデータ・タイプのためのデータ・ストレージ | |
US9983995B2 (en) | Delayed write through cache (DWTC) and method for operating the DWTC |
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 |