CN117909258A - 一种处理器缓存的优化方法、装置、电子设备及存储介质 - Google Patents
一种处理器缓存的优化方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN117909258A CN117909258A CN202410308803.7A CN202410308803A CN117909258A CN 117909258 A CN117909258 A CN 117909258A CN 202410308803 A CN202410308803 A CN 202410308803A CN 117909258 A CN117909258 A CN 117909258A
- Authority
- CN
- China
- Prior art keywords
- cache
- preset
- target
- partition
- application program
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 135
- 238000003860 storage Methods 0.000 title claims abstract description 107
- 238000005457 optimization Methods 0.000 title claims description 12
- 238000005192 partition Methods 0.000 claims description 215
- 239000012634 fragment Substances 0.000 claims description 46
- 238000000638 solvent extraction Methods 0.000 claims description 41
- 230000001133 acceleration Effects 0.000 claims description 8
- 238000009826 distribution Methods 0.000 claims description 6
- 230000006870 function Effects 0.000 claims description 5
- 238000005520 cutting process Methods 0.000 claims description 2
- 230000000875 corresponding effect Effects 0.000 description 51
- 238000010586 diagram Methods 0.000 description 11
- 238000004891 communication Methods 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000005236 sound signal Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000003068 static effect Effects 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/0893—Caches characterised by their organisation or structure
-
- 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/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0871—Allocation or management of cache space
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
技术领域
本申请涉及计算机技术领域,尤其涉及一种处理器缓存的优化方法、装置、电子设备及存储介质。
背景技术
处理器(CPU,Central Processing Unit)的缓存(cache)是位于CPU与内存之间的临时存储器,为了对应用程序分配处理器缓存的缓存空间,需要一种处理器缓存的优化方法。
在先技术中,通过基于效用的缓存划分(Utility-based Cache Partitioning,UCP) 方法对整个处理器缓存进行处理,以为应用程序分配处理器缓存的缓存空间。
在实现本申请过程中,发明人发现在先技术中至少存在如下问题:由于通过基于效用的缓存划分方法对整个处理器缓存进行处理,以为应用程序分配处理器缓存的缓存空间,导致缓存命中的出现次数少。
需要说明的是,缓存命中指的是当应用程序请求数据时,在处理器的缓存中获取到数据。
发明内容
本申请实施例提供一种处理器缓存的优化方法、装置、电子设备及存储介质,以解决在先技术中由于通过基于效用的缓存划分方法对整个处理器缓存进行处理,以为应用程序分配处理器缓存的缓存空间,导致缓存命中的出现次数少的问题。
第一方面,本申请实施例提供了一种处理器缓存的优化方法,其中,电子设备的物理处理器缓存为阵列形式,所述物理处理器缓存的一行存储块为一个缓存组,所述物理处理器缓存包括多个分区,每个所述分区包括多个所述缓存组,所述方法包括:
将每个所述分区作为虚拟处理器缓存,再使用预设分配方法,获取每个所述分区中计划为应用程序分配的第一目标片区,并统计每个所述第一目标片区中发生缓存命中历史事件的第一次数;所述第一目标片区包括多个所述存储块;
使用所述预设分配方法,获取所述物理处理器缓存中计划为所述应用程序分配的第二目标片区,并统计所述第二目标片区中发生缓存命中历史事件的第二次数;所述第二目标片区包括多个所述存储块;
在所述第一次数之和大于所述第二次数的情况下,为所述应用程序分配所述第一目标片区,以允许所述应用程序访问所述第一目标片区中的存储块。
第二方面,本申请实施例提供了一种处理器缓存的优化装置,其中,电子设备的物理处理器缓存为阵列形式,所述物理处理器缓存的一行存储块为一个缓存组,所述物理处理器缓存包括多个分区,每个所述分区包括多个所述缓存组,所述装置包括:
第一统计模块,用于将每个所述分区作为虚拟处理器缓存,再使用预设分配方法,获取每个所述分区中计划为应用程序分配的第一目标片区,并统计每个所述第一目标片区中发生缓存命中历史事件的第一次数;所述第一目标片区包括多个所述存储块;
第二统计模块,用于使用所述预设分配方法,获取所述物理处理器缓存中计划为所述应用程序分配的第二目标片区,并统计所述第二目标片区中发生缓存命中历史事件的第二次数;所述第二目标片区包括多个所述存储块;
第一分配模块,用于在所述第一次数之和大于所述第二次数的情况下,为所述应用程序分配所述第一目标片区,以允许所述应用程序访问所述第一目标片区中的存储块。
第三方面,本申请实施例还提供了一种电子设备,包括处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现所述第一方面的方法。
第四方面,本申请实施例还提供了一种计算机可读存储介质,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行所述第一方面的方法。
在本申请实施例中,第一次数之和是在为应用程序分配第一目标片区的情况下的缓存命中历史事件的出现次数,第二次数是为应用程序分配第二目标片区的情况下的缓存命中历史事件的出现次数,则第一次数之和大于第二次数,即为应用程序分配第一目标片区的情况下的缓存命中历史事件的出现次数,大于为应用程序分配第二目标片区的情况下的缓存命中历史事件的出现次数,而在预设分配方法为基于效用的缓存划分方法时,为应用程序分配第二目标片区即在先技术中通过基于效用的缓存划分方法对整个处理器缓存进行处理,以为应用程序分配处理器缓存的缓存空间,因此,在第一次数之和大于第二次数的情况下,为应用程序分配第一目标片区,相较于在先技术,缓存命中历史事件的出现次数更多,则可以判断为应用程序分配第一目标片区,使得缓存命中的出现次数更多,解决了在先技术中由于通过基于效用的缓存划分方法对整个处理器缓存进行处理,以为应用程序分配处理器缓存的缓存空间,导致缓存命中的出现次数少的问题。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见的,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种处理器缓存的优化方法步骤流程图;
图2是本发明实施例提供的另一种处理器缓存的优化方法步骤流程图;
图3是本发明实施例提供的处理器缓存的优化系统的结构示意图;
图4是本申请实施例提供的分区的结构示意图;
图5是本申请实施例提供的物理处理器缓存的结构示意图;
图6是本申请实施例提供的当前的预设周期的预设划分策略的获取流程示意图;
图7是本申请实施例提供的处理器缓存的优化流程示意图;
图8是本申请实施例提供的缓存组中预设存储块的结构示意图;
图9是本发明实施例提供的一种处理器缓存的优化装置框图;
图10是本发明实施例提供的一种电子设备的框图;
图11是本发明另一个实施例的另一种电子设备的框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中的术语“和/或”用于描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本申请实施例中术语“多个”是指两个或两个以上,其它量词与之类似。
下面结合附图,通过具体的实施例及其应用场景对本申请实施例提供的处理器缓存的优化方法进行详细地说明。
图1是本申请实施例提供的一种处理器缓存的优化方法的步骤流程图,如图1所示,该方法可以包括:
步骤101、将电子设备的物理处理器缓存的每个分区作为虚拟处理器缓存,再使用预设分配方法,获取每个所述分区中计划为应用程序分配的第一目标片区,并统计每个所述第一目标片区中发生缓存命中历史事件的第一次数;其中,电子设备的物理处理器缓存为阵列形式,所述物理处理器缓存的一行存储块为一个缓存组,所述物理处理器缓存包括多个分区,每个所述分区包括多个所述缓存组;所述第一目标片区包括多个所述存储块。
在本申请实施例中,通过将每个分区作为虚拟处理器缓存,再使用预设分配方法,获取每个分区中计划为应用程序分配的第一目标片区,并统计每个第一目标片区中发生缓存命中历史事件的第一次数,进而在使用预设分配方法,获取物理处理器缓存中计划为应用程序分配的第二目标片区,并统计第二目标片区中发生缓存命中历史事件的第二次数之后,可以比较第一次数之和和第二次数,在第一次数之和大于第二次数的情况下,为应用程序分配第一目标片区。
需要说明的是,物理处理器缓存为处理器的缓存(cache),包括一级缓存(FLC,first-level cache)、二级缓存(MLC,mid-level cache)、三级缓存(LLC,last-levelcache)。
在一些实施例中,物理处理器缓存为组相连(set-associative)缓存。其中,组相连(set-associative)缓存是处理器缓存的一种主流组织方式,将处理器缓存划分成一个n×m(n、m为正整数)的矩阵形式。处理器缓存共有n行,每个行称为组(set),由访存地址中的一部分进行索引;每个行有m列,每个列称为路(way),不同访存地址可以索引到同一个set,可以在这个set中使用不同的way;处理器缓存被切分出来的每一块都是一个存储块(block),存储块是组相连缓存中按照矩阵形式被划分成的缓存空间,每个存储块对应一个set和一个way。
物理处理器缓存被划分为以阵列形式排布的多个存储块,物理处理器缓存的一行存储块为一个缓存组,即一个set;每个缓存组有多个路,每个存储块对应有一个路,即每个缓存组有多路存储块。通常,一个缓存组中具有的路的数量范围为8个至16个。
在一些实施例中,每个分区中的缓存组的数量相等,每个分区中的缓存组是连续的,每个分区中的缓存组的索引地址(index)的高位是相同的,每个分区中的缓存组的地址是连续的,有利于通过缓存组的索引地址快速获取分区;第一目标片区为第一目标片区所属分区中的至少一路存储块。
在一些实施例中,预设分配方法可以为基于效用的缓存划分方法。虚拟处理器缓存即虚拟的物理处理器缓存,将分区虚拟为虚拟的物理处理器缓存,以使用预设分配方法将分区作为虚拟的物理处理器缓存进行处理,获取分区中计划为应用程序分配的第一目标片区。
缓存命中历史事件即在物理处理器缓存运行的历史过程中,发生的缓存命中的事件;此外,本实施例中的应用程序的数量不做限制。
步骤102、使用所述预设分配方法,获取所述物理处理器缓存中计划为所述应用程序分配的第二目标片区,并统计所述第二目标片区中发生缓存命中历史事件的第二次数;所述第二目标片区包括多个所述存储块。
在本申请实施例中,通过使用预设分配方法,获取物理处理器缓存中计划为应用程序分配的第二目标片区,并统计第二目标片区中发生缓存命中历史事件的第二次数,进而比较第一次数之和和第二次数,在第一次数之和大于第二次数的情况下,为应用程序分配第一目标片区。
需要说明的是,第二目标片区为物理处理器缓存中的至少一路存储块。
步骤103、在所述第一次数之和大于所述第二次数的情况下,为所述应用程序分配所述第一目标片区,以允许所述应用程序访问所述第一目标片区中的存储块。
在本申请实施例中,通过在第一次数之和大于第二次数的情况下,为应用程序分配第一目标片区,以实现对应用程序分配处理器缓存的缓存空间。
需要说明的是,第一次数之和为将每个第一目标片区对应的第一次数相加得到的值。
第一次数之和是在为应用程序分配第一目标片区的情况下的缓存命中历史事件的出现次数,第二次数是为应用程序分配第二目标片区的情况下的缓存命中历史事件的出现次数,第一次数之和大于第二次数,说明为应用程序分配第一目标片区,相较于为应用程序分配第二目标片区,缓存命中历史事件的出现次数更多,则可以判断在第一次数之和大于第二次数的情况下,为应用程序分配第一目标片区,相较于为应用程序分配第二目标片区,使得缓存命中的出现次数更多。
缓存命中的次数与处理器的工作效率正相关,即提高缓存命中的次数,可以提高处理器的工作效率。
在一些实施例中,在第一次数之和大于第二次数的情况下,为应用程序分配所有的第一目标片区。
针对步骤101至步骤103进行举例,例如,参照图5,物理处理器缓存包括32个缓存组,在物理处理器缓存的阵列中依次排列为缓存组A1,缓存组A2,缓存组A3,缓存组A4,缓存组A5,缓存组A6,缓存组A7,缓存组A8,以此类推,……,缓存组A29,缓存组A30,缓存组A31,缓存组A32。
物理处理器缓存包括8个分区,在物理处理器缓存的阵列中依次排列为分区B1、分区B2、分区B3、分区B4、分区B5、分区B6、分区B7、分区B8,每个分区包括4个连续的缓存组,即分区B1包括缓存组A1,缓存组A2,缓存组A3,缓存组A4,分区B2包括缓存组A5,缓存组A6,缓存组A7,缓存组A8,以此类推,……,分区B8包括缓存组A29,缓存组A30,缓存组A31,缓存组A32。
物理处理器缓存的阵列包括8路,分别为C1路、C2路、C3路、C4路、C5路、C6路、C7路、C8路。
将每个分区作为虚拟处理器缓存,再使用预设分配方法,获取每个分区中计划为应用程序分配的第一目标片区,并统计每个第一目标片区中发生缓存命中历史事件的第一次数,如将分区B1作为虚拟处理器缓存,再使用预设分配方法,获取分区B1中计划为应用程序分配的第一目标片区D1,第一目标片区D1包括分区B1中的C1路存储块、C2路存储块、C6路存储块,统计出第一目标片区D1中发生缓存命中历史事件的第一次数E1为8;将分区B2作为虚拟处理器缓存,再使用预设分配方法,获取分区B2中计划为应用程序分配的第一目标片区D2,第一目标片区D2包括分区B2中的C2路存储块、C5路存储块、C6路存储块、C8路存储块,统计出第一目标片区D2中发生缓存命中历史事件的第一次数E2为9。
同理,统计出分区B3中第一目标片区D3中发生缓存命中历史事件的第一次数E3为5,统计出分区B4中第一目标片区D4中发生缓存命中历史事件的第一次数E4为3,统计出分区B5中第一目标片区D5中发生缓存命中历史事件的第一次数E5为1,统计出分区B6中第一目标片区D6中发生缓存命中历史事件的第一次数E6为9,统计出分区B7中第一目标片区D7中发生缓存命中历史事件的第一次数E6为2,统计出分区B8中第一目标片区D8中发生缓存命中历史事件的第一次数E6为0。
使用预设分配方法,获取物理处理器缓存中计划为应用程序分配的第二目标片区,第二目标片区包括C5路存储块、C6路存储块、C8路存储块,统计出第二目标片区中发生缓存命中历史事件的第二次数为25。
第一次数之和为将第一次数E1、第一次数E2、第一次数E3、第一次数E4、第一次数E5、第一次数E6、第一次数E7、第一次数E8相加得到的值,即第一次数之和为37(由8+9+5+3+1+9+2+0可得),由于第一次数之和(37)大于第二次数(25),则为应用程序分配分区B1中的第一目标片区D1、分区B2中的第一目标片区D2、分区B3中的第一目标片区D3、分区B4中的第一目标片区D4、分区B5中的第一目标片区D5、分区B6中的第一目标片区D6、分区B7中的第一目标片区D7、分区B8中的第一目标片区D8。
综上所述,在本申请实施例中,第一次数之和是在为应用程序分配第一目标片区的情况下的缓存命中历史事件的出现次数,第二次数是为应用程序分配第二目标片区的情况下的缓存命中历史事件的出现次数,则第一次数之和大于第二次数,即为应用程序分配第一目标片区的情况下的缓存命中历史事件的出现次数,大于为应用程序分配第二目标片区的情况下的缓存命中历史事件的出现次数,而在预设分配方法为基于效用的缓存划分方法时,为应用程序分配第二目标片区即在先技术中通过基于效用的缓存划分方法对整个处理器缓存进行处理,以为应用程序分配处理器缓存的缓存空间,因此,在第一次数之和大于第二次数的情况下,为应用程序分配第一目标片区,相较于在先技术,缓存命中历史事件的出现次数更多,则可以判断为应用程序分配第一目标片区,使得缓存命中的出现次数更多,解决了在先技术中由于通过基于效用的缓存划分方法对整个处理器缓存进行处理,以为应用程序分配处理器缓存的缓存空间,导致缓存命中的出现次数少的问题。
图2是本申请实施例提供的一种处理器缓存的优化方法的具体步骤流程图,如图2所示,该方法可以包括:
步骤201、在每个预设周期的开始时刻,将电子设备的物理处理器缓存的每个分区作为虚拟处理器缓存,再使用预设分配方法,获取每个所述分区中计划为应用程序分配的第一目标片区,并统计每个所述第一目标片区中发生缓存命中历史事件的第一次数;其中,电子设备的物理处理器缓存为阵列形式,所述物理处理器缓存的一行存储块为一个缓存组,所述物理处理器缓存包括多个分区,每个所述分区包括多个所述缓存组;所述第一目标片区包括多个所述存储块。
需要说明的是,预设周期为预先设置的周期,在每个预设周期的开始时刻,将每个分区作为虚拟处理器缓存,再使用预设分配方法,获取每个分区中计划为应用程序分配的第一目标片区,并统计每个第一目标片区中发生缓存命中历史事件的第一次数的实现方式与上述步骤101实现过程类似,此处不再赘述。
步骤202、在每个预设周期的开始时刻,使用所述预设分配方法,获取所述物理处理器缓存中计划为所述应用程序分配的第二目标片区,并统计所述第二目标片区中发生缓存命中历史事件的第二次数;所述第二目标片区包括多个所述存储块。
需要说明的是,在每个预设周期的开始时刻,使用预设分配方法,获取物理处理器缓存中计划为应用程序分配的第二目标片区,并统计第二目标片区中发生缓存命中历史事件的第二次数的实现方式与上述步骤102实现过程类似,此处不再赘述。
步骤203、在当前的预设周期对应的第一次数之和大于第二次数的情况下,将预设参量当前的参量值加1,获得所述预设参量的新参量值。
在本申请实施例中,通过在当前的预设周期对应的第一次数之和大于第二次数的情况下,将预设参量当前的参量值加1,获得预设参量的新参量值,进而将新参量值与预设阈值进行比较,在新参量值大于预设阈值的情况下,为应用程序分配第一目标片区。
需要说明的是,预设参量的参量值设置有初始值,例如为预设参量的初始值为0。
例如,在第一个预设周期,第一次数之和大于第二次数,则将预设参量当前的参量值(初始值0)加1,获得预设参量的新参量值为1(由0+1可得);在第二个预设周期,第一次数之和大于第二次数,则将预设参量当前的参量值(1)加1,获得预设参量的新参量值为2(由1+1可得)。
步骤204、在所述新参量值大于预设阈值的情况下,为所述应用程序分配所述第一目标片区。
在本申请实施例中,新参量值大于预设阈值,说明在多个预设周期中,第一次数之和均大于第二次数,即在多个预设周期中,为应用程序分配第一目标片区,相较于为应用程序分配第二目标片区,缓存命中历史事件的出现次数更多,则可以判断在新参量值大于预设阈值的情况下,为应用程序分配第一目标片区,相较于为应用程序分配第二目标片区,使得缓存命中的出现次数更多。
需要说明的是,预设阈值为预先设置的阈值,例如3。
可选的,在一些实施例中,所述方法还包括如下步骤(步骤205):
步骤205、在当前的预设周期对应的第一次数之和小于或等于第二次数的情况下,将预设参量当前的参量值减1,获得所述预设参量的新参量值。
在本申请实施例中,通过在当前的预设周期对应的第一次数之和大于第二次数的情况下,将预设参量当前的参量值减1,获得预设参量的新参量值,进而将新参量值与预设阈值进行比较,在新参量值大于预设阈值的情况下,为应用程序分配第一目标片区,在新参量值小于或等于预设阈值的情况下,为应用程序分配第二目标片区。
例如,在第一个预设周期,第一次数之和大于第二次数,则将预设参量当前的参量值(初始值0)加1,获得预设参量的新参量值为1(由0+1可得);在第二个预设周期,第一次数之和小于第二次数,则将预设参量当前的参量值(1)减1,获得预设参量的新参量值为0(由1-1可得);在第三个预设周期,第一次数之和等于第二次数,则将预设参量当前的参量值(0)减1,获得预设参量的新参量值为-1(由0-1可得);在第四个预设周期,第一次数之和大于第二次数,则将预设参量当前的参量值(-1)加1,获得预设参量的新参量值为0(由-1+1可得)。
步骤206、在所述新参量值小于或等于所述预设阈值的情况下,为所述应用程序分配所述第二目标片区,以允许所述应用程序访问所述第二目标片区中的存储块。
在本申请实施例中,新参量值小于或等于预设阈值,说明第一次数之和大于第二次数的预设周期的数量还没有达到预期,即为应用程序分配第一目标片区,相较于为应用程序分配第二目标片区,缓存命中历史事件的出现次数更多的可能性还没有达到预期,此时为应用程序分配第二目标片区。需要说明的是,第一次数之和大于第二次数的预设周期的数量越多,为应用程序分配第一目标片区,相较于为应用程序分配第二目标片区,缓存命中历史事件的出现次数更多的可能性越大。
例如,预设阈值为1,在第一个预设周期,第一次数之和大于第二次数,则将预设参量当前的参量值(初始值0)加1,获得预设参量的新参量值为1(由0+1可得),由于新参量值(1)等于预设阈值(1),则为应用程序分配第二目标片区;在第二个预设周期,第一次数之和大于第二次数,则将预设参量当前的参量值(初始值1)加1,获得预设参量的新参量值为2(由1+1可得),由于新参量值(2)大于预设阈值(1),则为应用程序分配第一目标片区;在第三个预设周期,第一次数之和等于第二次数,则将预设参量当前的参量值(2)减1,获得预设参量的新参量值为1(由2-1可得),由于新参量值(1)等于预设阈值(1),则为应用程序分配第二目标片区。
通过执行步骤203、步骤204、步骤205、步骤206可以实现,通过设置预设阈值,使得第一次数之和大于第二次数的预设周期的数量达到预期,即使得为应用程序分配第一目标片区,相较于为应用程序分配第二目标片区,缓存命中历史事件的出现次数更多的可能性可以达到预期。其中,预设阈值越大,为应用程序分配第一目标片区,相较于为应用程序分配第二目标片区,缓存命中历史事件的出现次数更多的可能性越大。
可选的,在一些实施例中,所述预设参量的初始值为预设值,所述方法还包括如下步骤(步骤207、步骤208、步骤209、步骤210、步骤211):
步骤207、将所述为所述应用程序分配所述第一目标片区之后的第一个预设周期,确定为对所述应用程序分配所述第一目标片区的情况下的执行周期。
在本申请实施例中,通过将为应用程序分配第一目标片区之后的第一个预设周期,确定为对应用程序分配第一目标片区的情况下的执行周期,进而在执行周期的上一个预设周期是为应用程序分配第二目标片区的情况下,在执行周期的结束时刻,获取物理处理器缓存所属处理器的每个线程,在执行周期中执行的指令的第一数量。
例如,在第s(s为大于1的正整数)个预设周期中,为应用程序分配第一目标片区,则将第s+1个预设周期确定为对应用程序分配第一目标片区的情况下的执行周期。
步骤208、在所述执行周期的上一个预设周期是为所述应用程序分配所述第二目标片区的情况下,在所述执行周期的结束时刻,获取所述物理处理器缓存所属处理器的每个线程,在所述执行周期中执行的指令的第一数量。
在本申请实施例中,通过在执行周期的上一个预设周期是为应用程序分配第二目标片区的情况下,在执行周期的结束时刻,获取物理处理器缓存所属处理器的每个线程,在执行周期中执行的指令的第一数量,进而在获取每个线程在执行周期的上一个预设周期中,执行的指令的第二数量之后,获取每个线程对应的第一数量与第二数量的比值。
例如,在第s(s为大于1的正整数)个预设周期中,为应用程序分配第一目标片区,则将第s+1个预设周期确定为对应用程序分配第一目标片区的情况下的执行周期,执行周期的上一个预设周期是第s-1个预设周期。在第s-1个预设周期中,为应用程序分配第二目标片区,则在第s+1个预设周期的结束时刻,获取物理处理器缓存所属处理器的每个线程,在执行周期中执行的指令的第一数量。
步骤209、获取每个所述线程在所述执行周期的上一个预设周期中,执行的指令的第二数量。
在本申请实施例中,通过获取每个线程在执行周期的上一个预设周期中,执行的指令的第二数量,进而获取每个线程对应的第一数量与第二数量的比值。
例如,在第s(s为大于1的正整数)个预设周期中,为应用程序分配第一目标片区,则将第s+1个预设周期确定为对应用程序分配第一目标片区的情况下的执行周期,执行周期的上一个预设周期是第s-1个预设周期。在第s-1个预设周期中,为应用程序分配第二目标片区,则在第s+1个预设周期的结束时刻,获取在第s-1个预设周期中,处理器的每个线程执行的指令的第二数量。
步骤210、获取每个所述线程对应的第一数量与第二数量的比值,并将所述比值之和除以所述处理器中的线程的总数量,获得平均加速比。
在本申请实施例中,通过获取每个线程对应的第一数量与第二数量的比值,并将比值之和除以处理器中的线程的总数量,获得平均加速比,进而判断平均加速比是否小于1,在平均加速比小于1的情况下,将预设参量当前的参量值重置为预设值。
具体的,在一些实施例中,平均加速比的表达式为:
其中,T为平均加速比,N为处理器中的线程的总数量,为第i(i为正整数)个线程在执行周期中的每周期指令数(即第i个线程对应的第一数量),/>为第i个线程在执行周期的上一个预设周期中的每周期指令数(即第i个线程对应的第二数量)。
步骤211、在所述平均加速比小于1的情况下,将所述预设参量当前的参量值重置为所述预设值。
在本申请实施例中,平均加速比小于1,说明为应用程序分配第一目标片区,相较于为应用程序分配第二目标片区,处理器执行指令的效率降低,则通过在平均加速比小于1的情况下,将预设参量当前的参量值重置为预设值,使得预设参量当前的参量值小于预设阈值,此时为应用程序分配第二目标片区,以提高处理器执行指令的效率。
需要说明的是,预设值为预先设置的预设参量的初始值,例如3。
通过执行步骤207至步骤211可以实现,在为应用程序分配第一目标片区的执行周期的结束时刻,通过平均加速比是否小于1的判断,来检验为应用程序分配第一目标片区,相较于为应用程序分配第二目标片区,处理器执行指令的效率是否降低,在平均加速比小于1的情况下,说明处理器执行指令的效率降低,则将预设参量当前的参量值重置为预设值,使得预设参量当前的参量值小于预设阈值,此时为应用程序分配第二目标片区,以提高处理器执行指令的效率。
可选的,在一些实施例中,所述方法还包括如下步骤(步骤212):
步骤212、按照预设划分策略,将所述物理处理器缓存划分为多个所述分区。
在本申请实施例中,通过按照预设划分策略,将物理处理器缓存划分为多个分区,进而将每个分区作为虚拟处理器缓存,再使用预设分配方法,获取每个分区中计划为应用程序分配的第一目标片区。
具体的,在当前的预设周期的开始时刻,按照当前的预设周期对应的预设划分策略,将物理处理器缓存划分为多个分区。
可选的,在一些实施例中,所述方法还包括如下步骤(步骤213、步骤214、步骤215、步骤216、步骤217):
步骤213、获取所述物理处理器缓存的预设的多个待选划分策略;所述待选划分策略为将所述物理处理器缓存划分为多个待选分区,每个所述待选分区包括多个所述缓存组;
在本申请实施例中,通过获取物理处理器缓存的预设的多个待选划分策略,进而在每个预设周期的开始时刻,分别按照每个待选划分策略,将物理处理器缓存划分为多个待选分区。
需要说明的是,不同的待选划分策略对应的待选分区的数量不同;不同的待选划分策略对应的待选分区中,缓存组的数量不同。
例如,物理处理器缓存包括32个缓存组,物理处理器缓存的待选划分策略包括待选划分策略F1、待选划分策略F2、待选划分策略F3,待选划分策略F1为将物理处理器缓存划分为16个待选分区,每个待选分区包括2个缓存组;待选划分策略F2为将物理处理器缓存划分为8个待选分区,每个待选分区包括4个缓存组;待选划分策略F3为将物理处理器缓存划分为4个待选分区,每个待选分区包括8个缓存组。
可选的,在一些实施例中,每个所述待选分区中的缓存组的数量相等,每个所述待选分区中的缓存组在所述物理处理器缓存中连续。
在本申请实施例中,由于每个待选分区中的缓存组的数量相等且每个待选分区中的缓存组在物理处理器缓存中连续,则可以将物理处理器缓存均分为多个待选分区。
步骤214、在每个预设周期的开始时刻,分别按照每个所述待选划分策略,将所述物理处理器缓存划分为多个所述待选分区。
在本申请实施例中,通过在每个预设周期的开始时刻,分别按照每个待选划分策略,将物理处理器缓存划分为多个待选分区,进而将每个待选分区作为虚拟处理器缓存,再使用预设分配方法,获取每个待选分区中计划为应用程序分配的第三目标区域。
步骤215、将每个所述待选分区作为虚拟处理器缓存,再使用所述预设分配方法,获取每个所述待选分区中计划为所述应用程序分配的第三目标区域,并统计每个所述第三目标区域中发生缓存命中历史事件的第三次数。
在本申请实施例中,通过将每个待选分区作为虚拟处理器缓存,再使用预设分配方法,获取每个待选分区中计划为应用程序分配的第三目标区域,并统计每个第三目标区域中发生缓存命中历史事件的第三次数,进而获取每个待选划分策略对应的第三次数之和。
步骤216、获取每个所述待选划分策略对应的第三次数之和,并将所述待选划分策略中,所述第三次数之和最大的待选划分策略确定为目标待选划分策略。
在本申请实施例中,通过获取每个待选划分策略对应的第三次数之和,并将待选划分策略中,第三次数之和最大的待选划分策略确定为目标待选划分策略,以实现将上一个预设周期对应的目标待选划分策略作为当前的预设周期对应的预设划分策略。
需要说明的是,第三次数之和为将待选划分策略的每个待选分区对应的第三次数相加得到的值。
步骤217、将上一个预设周期对应的目标待选划分策略作为当前的预设周期对应的预设划分策略。
在本申请实施例中,通过将上一个预设周期对应的目标待选划分策略作为当前的预设周期对应的预设划分策略,进而在当前的预设周期的开始时刻,按照当前的预设周期对应的预设划分策略,将物理处理器缓存划分为多个分区。
需要说明的是,将上一个预设周期的目标待选划分策略对应的待选分区,作为当前的预设周期的预设划分策略对应的分区。
例如,物理处理器缓存的待选划分策略包括待选划分策略F1、待选划分策略F2、待选划分策略F3,在第s个预设周期中,预设划分策略为第s-1个预设周期对应的目标待选划分策略。
通过执行步骤213至步骤217可以实现,在每个预设周期的开始时刻,更新当前的预设周期对应的预设划分策略,进而选择缓存命中的预期次数最多的待选划分策略(目标待选划分策略)作为预设划分策略,以提高缓存命中的次数。
可选的,在一些实施例中,所述方法还包括如下步骤(步骤218):
步骤218、在所述第一次数之和小于或等于所述第二次数的情况下,为所述应用程序分配所述第二目标片区,以允许所述应用程序访问所述第二目标片区中的存储块。
在本申请实施例中,第一次数之和是在为应用程序分配第一目标片区的情况下的缓存命中历史事件的出现次数,第二次数是为应用程序分配第二目标片区的情况下的缓存命中历史事件的出现次数,第一次数之和小于或等于第二次数,说明为应用程序分配第二目标片区,相较于为应用程序分配第一目标片区,缓存命中历史事件的出现次数更多,则可以判断在第一次数之和小于或等于第二次数的情况下,为应用程序分配第二目标片区,相较于为应用程序分配第一目标片区,使得缓存命中的出现次数更多。
可选的,在一些实施例中,所述预设分配方法为基于效用的缓存划分方法,所述方法还包括如下步骤(步骤219、步骤220、步骤221):
步骤219、获取执行所述预设分配方法所需的辅助标记目录的原始数据。
在本申请实施例中,通过获取执行预设分配方法所需的辅助标记目录的原始数据,进而使用哈希(hash)函数对辅助标记目录的原始数据进行裁剪处理,获得辅助标记目录的处理后数据。
需要说明的是,预设分配方法为基于效用的缓存划分方法,基于效用的缓存划分方法是采用效用监控器(UMON,utility monitor)为每个执行应用程序的线程独立地进行效用数据(缓存命中的次数)统计,并通过前瞻方法为应用程序分配共享的物理处理器缓存(例如三级缓存)中的缓存空间,其中,物理处理器缓存的每路具有对应的效用计数器,效用监控器具体通过多个效用计数器实现为每个执行应用程序的线程独立地进行效用数据统计,此外,基于效用的缓存划分方法还需要辅助标记目录(ATD,auxiliary tag directory)的数据,ATD仅记录访存请求的标记(tag),具有和Cache相同的相联度,使用最近最少使用算法(LRU ,Least Recently Used),以此来精确统计每个线程独立使用Cache时的效用数据。
步骤220、使用哈希函数对所述辅助标记目录的原始数据进行裁剪处理,获得所述辅助标记目录的处理后数据。
在本申请实施例中,通过使用哈希(hash)函数对辅助标记目录的原始数据进行裁剪处理,获得辅助标记目录的处理后数据,进而将辅助标记目录的处理后数据存储于物理处理器缓存中的预设存储块中。
步骤221、将所述辅助标记目录的处理后数据存储于所述物理处理器缓存中的预设存储块中。
在本申请实施例中,通过将辅助标记目录的处理后数据存储于物理处理器缓存中的预设存储块中,与在先技术中将辅助标记目录的数据存储于物理处理器缓存之外的独立的存储区域相比,节省了存储资源。
通过执行步骤219至步骤221可以实现,将辅助标记目录的处理后数据存储于物理处理器缓存中的预设存储块中,以节省存储资源。
可选的,在一些实施例中,所述方法还包括如下步骤(步骤222、步骤223):
步骤222、分别获取每个所述存储块发生缓存命中历史事件的第四次数。
在本申请实施例中,通过分别获取每个存储块发生缓存命中历史事件的第四次数,进而将物理处理器缓存的存储块中,第四次数最小的存储块确定为预设存储块。
步骤223、将所述物理处理器缓存的存储块中,所述第四次数最小的存储块确定为所述预设存储块。
在本申请实施例中,通过将物理处理器缓存的存储块中,第四次数最小的存储块确定为预设存储块,进而将辅助标记目录的处理后数据存储于物理处理器缓存中的预设存储块中,使得辅助标记目录的处理后数据存储于物理处理器缓存中,缓存命中的次数最小的存储块中,从而使得辅助标记目录的处理后数据的存储,不影响物理处理器缓存中的其他存储块中的数据(例如指令信息、数据信息等)的存储。此外,缓存命中的次数最小的存储块被应用程序访问的次数最小,则使得辅助标记目录的处理后数据的存储对应用程序的缓存命中影响最小。
存储块包括用于存储普通数据(例如指令信息、数据信息等)的元数据的第一区,以及用于存储普通数据的第二区。参照图8,缓存组包括r(r为正整数)个存储块,则缓存组包括r个第一区,分别为第一区v1、第一区v1、……、第一区vr,缓存组还包括r个第二区,分别为第二区w1、第二区w1、……、第二区wr。
其中,第一区vr和第二区wr所属的存储块为预设存储块,第一区vr用于存储ATD的元数据。第二区wr包括p(p为正整数)个存储区域组,分别为存储区域组z1、存储区域组z2、……、存储区域组zp,其中,每个线程具有对应的存储区域组,存储区域组用于存储与存储区域组对应的线程的ATD的数据;每个存储区域组包括q(q为正整数,在一些实施例中,q与r相等)个标记存储区,分别为标记存储区d1、标记存储区d2、……、标记存储区dq,每个存储区域组还包括q个状态存储区,分别为与标记存储区d1对应的状态存储区e1、与标记存储区d2对应的状态存储区e2、……、与标记存储区dq对应的状态存储区eq,标记存储区与状态存储区一一对应,具体的,一对标记存储区与状态存储区的大小为2B(字节);标记存储区用于存储访存请求的标记,状态存储区用于存储于访存请求的标记对应的LRU状态。
通过执行步骤222至步骤223可以实现,将辅助标记目录的处理后数据存储于物理处理器缓存中,缓存命中的次数最小的存储块中。
需要说明的是,本申请实施例中的第一次数、第二次数、第三次数、第四次数均根据效用监控器的效用计数器统计的效用数据进行统计获得。
参照图3,电子设备的处理器包括第一内核、第二内核,处理器的物理处理器缓存包括第一内核的一级缓存、第一内核的二级缓存、第二内核的一级缓存、第二内核的二级缓存以及第一内核和第二内核共享的三级缓存。本申请实施例提供的处理器缓存的优化系统包括第一内核的效用监控器、第二内核的效用监控器以及控制模块,第一内核的效用监控器包括第一内核的全局效用监控器、第一内核的分区效用监控器,第二内核的效用监控器包括第二内核的全局效用监控器、第二内核的分区效用监控器。
其中,三级缓存包括多个分区,控制模块用于执行本申请实施例提供的处理器缓存的优化方法,第一内核的全局效用监控器用于为第一内核中每个执行应用程序的线程独立地进行三级缓存的效用数据统计,并通过前瞻方法为第一内核执行的应用程序分配共享的三级缓存中的缓存空间,第一内核的分区效用监控器用于为第一内核中每个执行应用程序的线程独立地进行三级缓存中的分区的效用数据统计,并通过前瞻方法为第一内核执行的应用程序分配三级缓存的分区中的缓存空间,第二内核的全局效用监控器用于为第二内核中每个执行应用程序的线程独立地进行三级缓存的效用数据统计,并通过前瞻方法为第二内核执行的应用程序分配共享的三级缓存中的缓存空间,第二内核的分区效用监控器用于为第二内核中每个执行应用程序的线程独立地进行三级缓存中的分区的效用数据统计,并通过前瞻方法为第二内核执行的应用程序分配三级缓存的分区中的缓存空间。
需要说明的是,三级缓存具有全局ATD和多个全局效用计数器,每个分区都具有与分区对应的分区ATD和多个分区效用计数器,其中,全局ATD记录三级缓存中访存请求的标记,三级缓存中的每路具有对应的全局效用计数器,每个全局效用计数器对三级缓存中与全局效用计数器对应的那一路的缓存块进行效用数据的统计,分区ATD记录三级缓存的分区中访存请求的标记,分区中的每路具有对应的分区效用计数器,每个分区效用计数器对分区中与分区效用计数器对应的那一路的缓存块进行效用数据的统计。
参照图4,分区U1包括两个缓存组,分别为缓存组c1、缓存组c2,分区包括4路,分别为a1路、a2路、a3路、a4路,分区的每路具有对应的分区效用计数器,分别为a1路的分区效用计数器b1、a2路的分区效用计数器b2、a3路的分区效用计数器b3、a4路的分区效用计数器b4。
参照图6,当前的预设周期的预设划分策略的获取流程包括:X1、预设周期的开始时刻,即在每个预设周期的开始时刻,获取物理处理器缓存的预设的多个待选划分策略;X2、分别按照每个待选划分策略,将物理处理器缓存划分为多个待选分区;X3、将每个待选分区作为虚拟处理器缓存,再使用预设分配方法,获取每个待选分区中计划为应用程序分配的第三目标区域,并统计每个第三目标区域中发生缓存命中历史事件的第三次数;X4、获取每个待选划分策略对应的第三次数之和,并将待选划分策略中,第三次数之和最大的待选划分策略确定为目标待选划分策略;X5、将上一个预设周期对应的目标待选划分策略作为当前的预设周期对应的预设划分策略;X6、预设周期的结束时刻,进入下一个预设周期。
参照图7,处理器缓存的优化流程包括:Y1、当前的预设周期的开始时刻,获取当前的预设周期的预设划分策略;Y2、按照预设划分策略,将物理处理器缓存划分为多个分区;Y3、新参量值是否大于预设阈值,即判断在当前的预设周期,预设参量的新参量值是否大于预设阈值;Y4、在新参量值小于或等于预设阈值的情况下,为应用程序分配第二目标片区;Y5、在新参量值大于预设阈值的情况下,为应用程序分配第一目标片区;Y6、上一个预设周期是否为分配第二目标片区,即判断执行周期的上一个预设周期是否为应用程序分配第二目标片区;Y7、平均加速比是否小于1,即在执行周期的上一个预设周期是为应用程序分配第二目标片区的情况下,判断平均加速比是否小于1;Y8、复位预设参量,即在平均加速比小于1的情况下,将预设参量当前的参量值重置为预设值;Y9、下一个预设周期的开始时刻,获取第一次数之和以及第二次数;Y10、第一次数之和是否大于第二次数,即判断第一次数之和是否大于第二次数;Y11、加1,即在第一次数之和大于第二次数的情况下,将预设参量当前的参量值加1,获得预设参量的新参量值;Y12、减1,即在第一次数之和小于或等于第二次数的情况下,将预设参量当前的参量值减1,获得预设参量的新参量值。
综上所述,在本申请实施例中,第一次数之和是在为应用程序分配第一目标片区的情况下的缓存命中历史事件的出现次数,第二次数是为应用程序分配第二目标片区的情况下的缓存命中历史事件的出现次数,则第一次数之和大于第二次数,即为应用程序分配第一目标片区的情况下的缓存命中历史事件的出现次数,大于为应用程序分配第二目标片区的情况下的缓存命中历史事件的出现次数,而在预设分配方法为基于效用的缓存划分方法时,为应用程序分配第二目标片区即在先技术中通过基于效用的缓存划分方法对整个处理器缓存进行处理,以为应用程序分配处理器缓存的缓存空间,因此,在第一次数之和大于第二次数的情况下,为应用程序分配第一目标片区,相较于在先技术,缓存命中历史事件的出现次数更多,则可以判断为应用程序分配第一目标片区,使得缓存命中的出现次数更多,解决了在先技术中由于通过基于效用的缓存划分方法对整个处理器缓存进行处理,以为应用程序分配处理器缓存的缓存空间,导致缓存命中的出现次数少的问题。
参考图9,其示出了本申请实施例提供的一种处理器缓存的优化装置,电子设备的物理处理器缓存为阵列形式,所述物理处理器缓存的一行存储块为一个缓存组,所述物理处理器缓存包括多个分区,每个所述分区包括多个所述缓存组,所述装置包括:
第一统计模块301,用于将每个所述分区作为虚拟处理器缓存,再使用预设分配方法,获取每个所述分区中计划为应用程序分配的第一目标片区,并统计每个所述第一目标片区中发生缓存命中历史事件的第一次数;所述第一目标片区包括多个所述存储块;
第二统计模块302,用于使用所述预设分配方法,获取所述物理处理器缓存中计划为所述应用程序分配的第二目标片区,并统计所述第二目标片区中发生缓存命中历史事件的第二次数;所述第二目标片区包括多个所述存储块;
第一分配模块303,用于在所述第一次数之和大于所述第二次数的情况下,为所述应用程序分配所述第一目标片区,以允许所述应用程序访问所述第一目标片区中的存储块。
可选的,第一统计模块301,具体用于在每个预设周期的开始时刻,将每个所述分区作为虚拟处理器缓存,再使用所述预设分配方法获取每个所述第一目标片区,并获取每个所述第一目标片区中发生缓存命中历史事件的第一次数;
第二统计模块302,具体用于在每个所述预设周期的开始时刻,使用所述预设分配方法获取所述第二目标片区,并统计所述第二目标片区中发生缓存命中历史事件的第二次数。
可选的,第一分配模块303,具体包括:
更新子模块,用于在当前的预设周期对应的第一次数之和大于第二次数的情况下,将预设参量当前的参量值加1,获得所述预设参量的新参量值;
分配子模块,用于在所述新参量值大于预设阈值的情况下,为所述应用程序分配所述第一目标片区。
可选的,所述装置还包括:
更新模块,用于在当前的预设周期对应的第一次数之和小于或等于第二次数的情况下,将预设参量当前的参量值减1,获得所述预设参量的新参量值;
第二分配模块,用于在所述新参量值小于或等于所述预设阈值的情况下,为所述应用程序分配所述第二目标片区,以允许所述应用程序访问所述第二目标片区中的存储块。
可选的,所述预设参量的初始值为预设值,所述装置还包括:
第一确定模块,用于将所述为所述应用程序分配所述第一目标片区之后的第一个预设周期,确定为对所述应用程序分配所述第一目标片区的情况下的执行周期;
第一获取模块,用于在所述执行周期的上一个预设周期是为所述应用程序分配所述第二目标片区的情况下,在所述执行周期的结束时刻,获取所述物理处理器缓存所属处理器的每个线程,在所述执行周期中执行的指令的第一数量;
第二获取模块,用于获取每个所述线程在所述执行周期的上一个预设周期中,执行的指令的第二数量;
第三获取模块,用于获取每个所述线程对应的第一数量与第二数量的比值,并将所述比值之和除以所述处理器中的线程的总数量,获得平均加速比;
重置模块,用于在所述平均加速比小于1的情况下,将所述预设参量当前的参量值重置为所述预设值。
可选的,所述装置还包括:
第一划分模块,用于按照预设划分策略,将所述物理处理器缓存划分为多个所述分区。
可选的,所述装置还包括:
第四获取模块,用于获取所述物理处理器缓存的预设的多个待选划分策略;所述待选划分策略为将所述物理处理器缓存划分为多个待选分区,每个所述待选分区包括多个所述缓存组;
第二划分模块,用于在每个预设周期的开始时刻,分别按照每个所述待选划分策略,将所述物理处理器缓存划分为多个所述待选分区;
第三统计模块,用于将每个所述待选分区作为虚拟处理器缓存,再使用所述预设分配方法,获取每个所述待选分区中计划为所述应用程序分配的第三目标区域,并统计每个所述第三目标区域中发生缓存命中历史事件的第三次数;
第二确定模块,用于获取每个所述待选划分策略对应的第三次数之和,并将所述待选划分策略中,所述第三次数之和最大的待选划分策略确定为目标待选划分策略;
第三确定模块,用于将上一个预设周期对应的目标待选划分策略作为当前的预设周期对应的预设划分策略。
可选的,每个所述待选分区中的缓存组的数量相等,每个所述待选分区中的缓存组在所述物理处理器缓存中连续。
可选的,所述装置还包括:
第三分配模块,用于在所述第一次数之和小于或等于所述第二次数的情况下,为所述应用程序分配所述第二目标片区,以允许所述应用程序访问所述第二目标片区中的存储块。
可选的,所述预设分配方法为基于效用的缓存划分方法,所述装置还包括:
第五获取模块,用于获取执行所述预设分配方法所需的辅助标记目录的原始数据;
第六获取模块,用于使用哈希函数对所述辅助标记目录的原始数据进行裁剪处理,获得所述辅助标记目录的处理后数据;
存储模块,用于将所述辅助标记目录的处理后数据存储于所述物理处理器缓存中的预设存储块中。
可选的,所述装置还包括:
第七获取模块,用于分别获取每个所述存储块发生缓存命中历史事件的第四次数;
第四确定模块,用于将所述物理处理器缓存的存储块中,所述第四次数最小的存储块确定为所述预设存储块。
综上,在本申请实施例中,第一次数之和是在为应用程序分配第一目标片区的情况下的缓存命中历史事件的出现次数,第二次数是为应用程序分配第二目标片区的情况下的缓存命中历史事件的出现次数,则第一次数之和大于第二次数,即为应用程序分配第一目标片区的情况下的缓存命中历史事件的出现次数,大于为应用程序分配第二目标片区的情况下的缓存命中历史事件的出现次数,而在预设分配方法为基于效用的缓存划分方法时,为应用程序分配第二目标片区即在先技术中通过基于效用的缓存划分方法对整个处理器缓存进行处理,以为应用程序分配处理器缓存的缓存空间,因此,在第一次数之和大于第二次数的情况下,为应用程序分配第一目标片区,相较于在先技术,缓存命中历史事件的出现次数更多,则可以判断为应用程序分配第一目标片区,使得缓存命中的出现次数更多,解决了在先技术中由于通过基于效用的缓存划分方法对整个处理器缓存进行处理,以为应用程序分配处理器缓存的缓存空间,导致缓存命中的出现次数少的问题。
图10是根据一示例性实施例示出的一种电子设备600的框图。例如,电子设备600可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
参照图10,电子设备600可以包括以下一个或多个组件:处理组件602,存储器604,电源组件606,多媒体组件608,音频组件610,输入/输出(I/ O)的接口612,传感器组件614,以及通信组件616。
处理组件602通常控制电子设备600的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件602可以包括一个或多个处理器620来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件602可以包括一个或多个模块,便于处理组件602和其他组件之间的交互。例如,处理组件602可以包括多媒体模块,以方便多媒体组件608和处理组件602之间的交互。
存储器604用于存储各种类型的数据以支持在电子设备600的操作。这些数据的示例包括用于在电子设备600上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,多媒体等。存储器604可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件606为电子设备600的各种组件提供电力。电源组件606可以包括电源管理系统,一个或多个电源,及其他与为电子设备600生成、管理和分配电力相关联的组件。
多媒体组件608包括在所述电子设备600和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的分界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件608包括一个前置摄像头和/或后置摄像头。当电子设备600处于操作模式,如拍摄模式或多媒体模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件610用于输出和/或输入音频信号。例如,音频组件610包括一个麦克风(MIC),当电子设备600处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器604或经由通信组件616发送。在一些实施例中,音频组件610还包括一个扬声器,用于输出音频信号。
I/ O接口612为处理组件602和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件614包括一个或多个传感器,用于为电子设备600提供各个方面的状态评估。例如,传感器组件614可以检测到电子设备600的打开/关闭状态,组件的相对定位,例如所述组件为电子设备600的显示器和小键盘,传感器组件614还可以检测电子设备600或电子设备600一个组件的位置改变,用户与电子设备600接触的存在或不存在,电子设备600方位或加速/减速和电子设备600的温度变化。传感器组件614可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件614还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件614还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件616用于便于电子设备600和其他设备之间有线或无线方式的通信。电子设备600可以接入基于通信标准的无线网络,如WiFi,运营商网络(如2G、3G、4G或5G),或它们的组合。在一个示例性实施例中,通信组件616经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件616还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,电子设备600可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于实现本申请实施例提供的一种处理器缓存的优化方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器604,上述指令可由电子设备600的处理器620执行以完成上述方法。例如,所述非临时性存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
图11是根据一示例性实施例示出的一种电子设备700的框图。例如,电子设备700可以被提供为一服务器。参照图11,电子设备700包括处理组件722,其进一步包括一个或多个处理器,以及由存储器732所代表的存储器资源,用于存储可由处理组件722的执行的指令,例如应用程序。存储器732中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件722被配置为执行指令,以执行本申请实施例提供的一种处理器缓存的优化方法。
电子设备700还可以包括一个电源组件726被配置为执行电子设备700的电源管理,一个有线或无线网络接口750被配置为将电子设备700连接到网络,和一个输入输出(I/O)接口758。电子设备700可以操作基于存储在存储器732的操作系统,例如WindowsServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
本申请实施例还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现所述的一种处理器缓存的优化方法。
本领域技术人员在考虑说明书及实践这里公开的申请后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
以上对本申请所提供的一种处理器缓存的优化方法、装置、电子设备及计算机可读存储介质,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (14)
1.一种处理器缓存的优化方法,其特征在于,电子设备的物理处理器缓存为阵列形式,所述物理处理器缓存的一行存储块为一个缓存组,所述物理处理器缓存包括多个分区,每个所述分区包括多个所述缓存组,所述方法包括:
将每个所述分区作为虚拟处理器缓存,再使用预设分配方法,获取每个所述分区中计划为应用程序分配的第一目标片区,并统计每个所述第一目标片区中发生缓存命中历史事件的第一次数;所述第一目标片区包括多个所述存储块;
使用所述预设分配方法,获取所述物理处理器缓存中计划为所述应用程序分配的第二目标片区,并统计所述第二目标片区中发生缓存命中历史事件的第二次数;所述第二目标片区包括多个所述存储块;
在所述第一次数之和大于所述第二次数的情况下,为所述应用程序分配所述第一目标片区,以允许所述应用程序访问所述第一目标片区中的存储块。
2.根据权利要求1所述的方法,其特征在于,所述将每个所述分区作为虚拟处理器缓存,再使用预设分配方法,获取每个所述分区中计划为应用程序分配的第一目标片区,并统计每个所述第一目标片区中发生缓存命中历史事件的第一次数,包括:
在每个预设周期的开始时刻,将每个所述分区作为虚拟处理器缓存,再使用所述预设分配方法获取每个所述第一目标片区,并获取每个所述第一目标片区中发生缓存命中历史事件的第一次数;
所述使用所述预设分配方法,获取所述物理处理器缓存中计划为所述应用程序分配的第二目标片区,并统计所述第二目标片区中发生缓存命中历史事件的第二次数,包括:
在每个所述预设周期的开始时刻,使用所述预设分配方法获取所述第二目标片区,并统计所述第二目标片区中发生缓存命中历史事件的第二次数。
3.根据权利要求2所述的方法,其特征在于,所述在所述第一次数之和大于所述第二次数的情况下,为所述应用程序分配所述第一目标片区,包括:
在当前的预设周期对应的第一次数之和大于第二次数的情况下,将预设参量当前的参量值加1,获得所述预设参量的新参量值;
在所述新参量值大于预设阈值的情况下,为所述应用程序分配所述第一目标片区。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
在当前的预设周期对应的第一次数之和小于或等于第二次数的情况下,将预设参量当前的参量值减1,获得所述预设参量的新参量值;
在所述新参量值小于或等于所述预设阈值的情况下,为所述应用程序分配所述第二目标片区,以允许所述应用程序访问所述第二目标片区中的存储块。
5.根据权利要求3所述的方法,其特征在于,所述预设参量的初始值为预设值,所述方法还包括:
将所述为所述应用程序分配所述第一目标片区之后的第一个预设周期,确定为对所述应用程序分配所述第一目标片区的情况下的执行周期;
在所述执行周期的上一个预设周期是为所述应用程序分配所述第二目标片区的情况下,在所述执行周期的结束时刻,获取所述物理处理器缓存所属处理器的每个线程,在所述执行周期中执行的指令的第一数量;
获取每个所述线程在所述执行周期的上一个预设周期中,执行的指令的第二数量;
获取每个所述线程对应的第一数量与第二数量的比值,并将所述比值之和除以所述处理器中的线程的总数量,获得平均加速比;
在所述平均加速比小于1的情况下,将所述预设参量当前的参量值重置为所述预设值。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
按照预设划分策略,将所述物理处理器缓存划分为多个所述分区。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
获取所述物理处理器缓存的预设的多个待选划分策略;所述待选划分策略为将所述物理处理器缓存划分为多个待选分区,每个所述待选分区包括多个所述缓存组;
在每个预设周期的开始时刻,分别按照每个所述待选划分策略,将所述物理处理器缓存划分为多个所述待选分区;
将每个所述待选分区作为虚拟处理器缓存,再使用所述预设分配方法,获取每个所述待选分区中计划为所述应用程序分配的第三目标区域,并统计每个所述第三目标区域中发生缓存命中历史事件的第三次数;
获取每个所述待选划分策略对应的第三次数之和,并将所述待选划分策略中,所述第三次数之和最大的待选划分策略确定为目标待选划分策略;
将上一个预设周期对应的目标待选划分策略作为当前的预设周期对应的预设划分策略。
8.根据权利要求7所述的方法,其特征在于,每个所述待选分区中的缓存组的数量相等,每个所述待选分区中的缓存组在所述物理处理器缓存中连续。
9.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述第一次数之和小于或等于所述第二次数的情况下,为所述应用程序分配所述第二目标片区,以允许所述应用程序访问所述第二目标片区中的存储块。
10.根据权利要求1所述的方法,其特征在于,所述预设分配方法为基于效用的缓存划分方法,所述方法还包括:
获取执行所述预设分配方法所需的辅助标记目录的原始数据;
使用哈希函数对所述辅助标记目录的原始数据进行裁剪处理,获得所述辅助标记目录的处理后数据;
将所述辅助标记目录的处理后数据存储于所述物理处理器缓存中的预设存储块中。
11.根据权利要求10所述的方法,其特征在于,所述方法还包括:
分别获取每个所述存储块发生缓存命中历史事件的第四次数;
将所述物理处理器缓存的存储块中,所述第四次数最小的存储块确定为所述预设存储块。
12.一种处理器缓存的优化装置,其特征在于,电子设备的物理处理器缓存为阵列形式,所述物理处理器缓存的一行存储块为一个缓存组,所述物理处理器缓存包括多个分区,每个所述分区包括多个所述缓存组,所述装置包括:
第一统计模块,用于将每个所述分区作为虚拟处理器缓存,再使用预设分配方法,获取每个所述分区中计划为应用程序分配的第一目标片区,并统计每个所述第一目标片区中发生缓存命中历史事件的第一次数;所述第一目标片区包括多个所述存储块;
第二统计模块,用于使用所述预设分配方法,获取所述物理处理器缓存中计划为所述应用程序分配的第二目标片区,并统计所述第二目标片区中发生缓存命中历史事件的第二次数;所述第二目标片区包括多个所述存储块;
第一分配模块,用于在所述第一次数之和大于所述第二次数的情况下,为所述应用程序分配所述第一目标片区,以允许所述应用程序访问所述第一目标片区中的存储块。
13.一种电子设备,其特征在于,包括:处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1至11中任一项所述的方法。
14.一种计算机可读存储介质,其特征在于,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行如权利要求1至11中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410308803.7A CN117909258B (zh) | 2024-03-18 | 2024-03-18 | 一种处理器缓存的优化方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410308803.7A CN117909258B (zh) | 2024-03-18 | 2024-03-18 | 一种处理器缓存的优化方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117909258A true CN117909258A (zh) | 2024-04-19 |
CN117909258B CN117909258B (zh) | 2024-05-14 |
Family
ID=90683969
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410308803.7A Active CN117909258B (zh) | 2024-03-18 | 2024-03-18 | 一种处理器缓存的优化方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117909258B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040193803A1 (en) * | 2003-03-28 | 2004-09-30 | Kazuhiko Mogi | Cache management method for storage device |
CN106294772A (zh) * | 2016-08-11 | 2017-01-04 | 电子科技大学 | 分布式内存列式数据库的缓存管理方法 |
CN111309650A (zh) * | 2020-02-11 | 2020-06-19 | 广州市百果园信息技术有限公司 | 缓存控制方法、装置、存储介质及设备 |
CN115757203A (zh) * | 2023-01-10 | 2023-03-07 | 摩尔线程智能科技(北京)有限责任公司 | 访存策略管理方法及装置、处理器和计算设备 |
WO2023130316A1 (zh) * | 2022-01-06 | 2023-07-13 | 中国科学院计算技术研究所 | 一种兼顾服务质量和利用率的缓存动态划分方法及系统 |
CN116610599A (zh) * | 2023-07-19 | 2023-08-18 | 北京开源芯片研究院 | 处理器缓存的优化方法、装置、电子设备及可读存储介质 |
CN117215973A (zh) * | 2023-09-13 | 2023-12-12 | 之江实验室 | 一种缓存数据的处理方法、深度学习训练方法和系统 |
CN117389630A (zh) * | 2023-12-11 | 2024-01-12 | 北京开源芯片研究院 | 一种数据缓存方法、装置、电子设备及可读存储介质 |
-
2024
- 2024-03-18 CN CN202410308803.7A patent/CN117909258B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040193803A1 (en) * | 2003-03-28 | 2004-09-30 | Kazuhiko Mogi | Cache management method for storage device |
CN106294772A (zh) * | 2016-08-11 | 2017-01-04 | 电子科技大学 | 分布式内存列式数据库的缓存管理方法 |
CN111309650A (zh) * | 2020-02-11 | 2020-06-19 | 广州市百果园信息技术有限公司 | 缓存控制方法、装置、存储介质及设备 |
WO2023130316A1 (zh) * | 2022-01-06 | 2023-07-13 | 中国科学院计算技术研究所 | 一种兼顾服务质量和利用率的缓存动态划分方法及系统 |
CN115757203A (zh) * | 2023-01-10 | 2023-03-07 | 摩尔线程智能科技(北京)有限责任公司 | 访存策略管理方法及装置、处理器和计算设备 |
CN116610599A (zh) * | 2023-07-19 | 2023-08-18 | 北京开源芯片研究院 | 处理器缓存的优化方法、装置、电子设备及可读存储介质 |
CN117215973A (zh) * | 2023-09-13 | 2023-12-12 | 之江实验室 | 一种缓存数据的处理方法、深度学习训练方法和系统 |
CN117389630A (zh) * | 2023-12-11 | 2024-01-12 | 北京开源芯片研究院 | 一种数据缓存方法、装置、电子设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN117909258B (zh) | 2024-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20190073100A1 (en) | Method and device for displaying page | |
US10698837B2 (en) | Memory processing method and device and storage medium | |
CN115145735B (zh) | 一种内存分配方法、装置和可读存储介质 | |
CN114428589B (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
CN114546897A (zh) | 内存访问方法、装置、电子设备及存储介质 | |
CN114416178A (zh) | 数据访问方法、装置及非临时性计算机可读存储介质 | |
CN110166696B (zh) | 拍摄方法、装置、终端设备以及计算机可读存储介质 | |
CN116339623A (zh) | 一种基于一致性哈希算法的数据存储方法及装置 | |
CN111582432B (zh) | 一种网络参数处理方法及装置 | |
CN109358927B (zh) | 应用程序显示的方法、装置及终端设备 | |
CN116610599B (zh) | 处理器缓存的优化方法、装置、电子设备及可读存储介质 | |
CN114564315A (zh) | 内存分配方法、装置、电子设备及介质 | |
CN114428797A (zh) | 嵌入参数缓存的方法、装置、设备及存储介质 | |
CN117909258B (zh) | 一种处理器缓存的优化方法、装置、电子设备及存储介质 | |
CN115422203A (zh) | 区块链分布式系统的数据管理方法、装置、设备及介质 | |
CN115016944A (zh) | 一种进程访问方法、装置及电子设备 | |
CN111400563B (zh) | 一种模式匹配方法、装置和用于模式匹配的装置 | |
CN110008135B (zh) | 一种信息处理方法、装置及电子设备 | |
CN114610656A (zh) | 一种数据替换方法、装置、电子设备及存储介质 | |
CN109871848B (zh) | 一种移动终端的文字识别方法及装置 | |
CN114281859A (zh) | 数据处理方法、设备及存储介质 | |
CN113722080A (zh) | 内存优化方法、装置及计算机存储介质 | |
CN110019657B (zh) | 处理方法、装置和机器可读介质 | |
CN113093933A (zh) | 报点输出控制方法、报点输出控制装置及存储介质 | |
CN113760477B (zh) | 一种调整进程管理参数的方法、装置及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |