1.本公开涉及计算机数据处理技术领域,尤其涉及一种缓存数据处理方法、装置及电子设备。
背景技术:
2.当中央处理器(cpu)要读取一个数据时,首先从cpu缓存中查找,若找到就立即读取并送给cpu处理;若没有找到,就从读取速率相对较慢的内存中读取并送给cpu处理,同时把这个数据所在的数据块调入cpu缓存中,可以使得以后对整块数据的读取都从cpu缓存中进行,不必再读取调用内存。
3.上述读取机制使cpu读取缓存的命中率非常高(大多数命中率可达90%左右),也就是说cpu下一次要读取的数据90%都在cpu缓存中,只有大约10%需要从内存读取。通过设置缓存有效节省了cpu直接读取内存的时间,也使cpu读取数据时基本无需等待。总的来说,cpu读取数据的顺序是先缓存后内存。
4.其中,cache是高速缓冲存储器,它是位于cpu与内存间的一种容量较小但速度很高的存储器。cpu要访问的数据在cache中有缓存,称为“命中”(hit),反之则称为“缺失”(miss)。当cache产生了一次访问“缺失(miss)”之后,相应的数据(从内存中获取的数据,也即新的数据)应同时读入cpu和cache中,而且当cache已存满数据时,新的数据还需替换/淘汰cache中的某些旧数据。
5.也就是说,一个请求在缺失时会触发两个新增请求,新增的第一个请求是得到需要替换的信息(替换访问),新增的第二个请求是将新数据更新进cache(更新访问)。
6.当cpu执行并行度较高,同一时刻cache访问请求源较多,且存在请求miss时,会新增2个访问源,此时对cache访问的源包括请求源、替换源和更新源。但是,受限于cache访问端口的数量,所有需要访问cache的源不能同时并行,进而造成cache访问冲突,从而影响访存速度。
技术实现要素:
7.为解决现有技术中存在的cache访问冲突,影响访存速度的技术问题,本公开实施例提供了一种缓存数据处理方法、装置及电子设备。
8.本公开实施例的技术方案是这样实现的:第一方面,本公开实施例提供一种缓存数据处理方法,所述缓存数据的存储元件包括高速缓冲存储器和第一缓冲器,所述方法包括:获取从内存中读取的第一数据,并保存在所述第一缓冲器中;确定所述高速缓冲存储器的访问状态为设定状态时,将所述第一缓冲器中的所述第一数据更新至所述高速缓冲存储器中。
9.在一些实施例中,获取从内存中读取的第一数据,包括:中央处理器访问所述高速缓冲存储器读取所需的数据;当访问缺失时,所述中央处理器访问内存读取所需的数据,从所述内存读取的所需的数据为所述第一数据。
10.在一些实施例中,所述方法还包括:获取高速缓冲存储器中需要被替换的第二数据及所述第二数据的位置信息;根据所述第二数据的位置信息,确定所述第一数据的回填位置信息,并保存在所述第一缓冲器中;将所述第一数据更新至所述高速缓冲存储器中的回填位置。
11.在一些实施例中,所述缓存数据的存储元件还包括第二缓冲器,所述方法还包括:将所述第二数据及所述第二数据的位置信息保存在第二缓冲器中。
12.在一些实施例中,所述确定高速缓冲存储器的访问状态,包括:根据所述高速缓冲存储器的当前访问请求数量,确定所述高速缓冲存储器的访问状态。
13.在一些实施例中,根据所述高速缓冲存储器的当前访问请求数量,确定所述高速缓冲存储器的访问状态,包括:当前访问请求数量等于0时,确定高速缓冲存储器的访问状态为设定状态。
14.在一些实施例中,所述确定高速缓冲存储器的访问状态,包括:根据所述高速缓冲存储器的当前访问请求数量以及所述第一缓冲器的剩余存储容量,确定所述高速缓冲存储器的访问状态。
15.在一些实施例中,根据所述高速缓冲存储器的当前访问请求数量以及所述第一缓冲器的剩余存储容量,确定所述高速缓冲存储器的访问状态,包括:所述缓存的访问端口数量为第一数值x;当前访问请求数量小于第一数值x且大于0,以及所述第一缓冲器已达到最大容量时,确定所述高速缓冲存储器的访问状态为设定状态;或者当前访问请求数量等于0时,确定高速缓冲存储器的访问状态为设定状态。
16.第二方面,本公开实施例提供一种缓存数据处理装置,所述缓存数据的存储元件包括高速缓冲存储器和第一缓冲器,所述装置包括:获取模块和更新模块;所述获取模块被配置为获取从内存中读取的第一数据,并保存在所述第一缓冲器中;所述更新模块被配置为确定所述高速缓冲存储器的访问状态为设定状态时,将所述第一缓冲器中的所述第一数据更新至所述高速缓冲存储器中。
17.在一些实施例中,中央处理器访问所述高速缓冲存储器读取所需的数据;当访问缺失时,所述中央处理器访问内存读取所需的数据,从所述内存读取的所需的数据为所述第一数据。
18.在一些实施例中,所述获取模块还被配置为获取缓存中需要被替换的第二数据及所述第二数据的位置信息,以及根据所述第二数据的位置信息,确定所述第一数据的回填位置信息,并保存在所述第一缓冲器中;更新模块还被配置为将所述第一数据更新至所述高速缓冲存储器中的回填位置。
19.在一些实施例中,所述缓存数据的存储元件还包括第二缓冲器,所述获取模块还被配置为将所述第二数据及所述第二数据的位置信息保存在第二缓冲器中。
20.在一些实施例中,所述更新模块还被配置为根据所述缓存的当前访问请求数量,确定所述高速缓冲存储器的访问状态。
21.在一些实施例中,所述更新模块还被配置为根据所述缓存的当前访问请求数量,确定所述高速缓冲存储器的访问状态,包括:当前访问请求数量等于0时,确定所述高速缓冲存储器的访问状态为设定状态。
22.在一些实施例中,所述更新模块还被配置为根据所述缓存的当前访问请求数量以
及所述第一缓冲器的剩余存储容量,确定所述高速缓冲存储器的访问状态。
23.在一些实施例中,所述更新模块还被配置根据所述缓存的当前访问请求数量以及所述第一缓冲器的剩余存储容量,确定所述高速缓冲存储器的访问状态,包括:所述缓存的访问端口数量为第一数值x;当前访问请求数量小于第一数值x且大于0,以及所述第一缓冲器已达到最大容量时,确定所述高速缓冲存储器的访问状态为设定状态;或者当前访问请求数量等于0时,确定所述高速缓冲存储器的访问状态为设定状态。
24.第三方面,本公开实施例提供一种电子设备,所述电子设备包括:中央处理器、内存储器、高速缓冲存储器、多个第一缓冲器和多个第二缓冲器;多个所述第一缓冲器被配置为存储所述中央处理器从所述内存储器中读取的第一数据和回填位置信息;多个所述第二缓冲器被配置为存储所述高速缓冲存储器中需要被替换的第二数据及所述第二数据的位置信息。
25.第四方面,本公开实施例提供一种电子设备,所述电子设备包括:处理器、存储器和总线;所述存储器存储可执行指令;所述处理器与所述存储器之间通过所述总线通信,所述处理器执行所述存储器中存储的可执行指令时,实现上述缓存数据处理方法。
26.第五方面,本公开实施例提供一种计算机可读存储介质,存储有可执行指令,用于被处理器执行时,实现上述缓存数据处理方法。
27.第六方面,本公开实施例提供一种计算机程序产品,所述计算机程序产品包括计算机程序/指令,所述计算机程序/指令被处理器执行时实现缓存数据处理方法。
28.本公开实施例提供的缓存数据处理方法包括:获取从内存中读取的第一数据,并保存在第一缓冲器中;确定高速缓冲存储器的访问状态为设定状态时,将所述第一缓冲器中的所述第一数据更新至所述高速缓冲存储器中。如此,从内存中读取的第一数据并不即时的存入到高速缓冲器中,而是在高速缓冲存储器的访问状态时,例如,高速缓冲存储器为空闲状态时,再进行数据更新操作。在缓存的访问请求源较多时,只处理请求的访问,使得真正需要访问缓存的并行性最高,从而可减少冲突,提高访存速度;以及将新增的更新访问择机进行处理,可降低访问功耗。
附图说明
29.通过参考附图阅读下文的详细描述,本公开示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施方式,其中:在附图中,相同或对应的标号表示相同或对应的部分。
30.图1是本公开实施例提供的缓存数据处理方法的一种可选处理流程示意图;图2是本公开实施例提供的缓存数据处理方法的一种可选处理流程示意图图3是本公开实施例提供的缓存数据处理方法的一种可选处理流程示意图;图4是本公开实施例提供的缓存数据处理方法的一种可选处理流程示意图;图5是基于本公开实施例提供的缓存数据处理装置的cpu读取数据的流程示意图;图6是本公开实施例提供的缓存数据处理装置的组成结构示意图;图7是本公开实施例提供的电子设备的结构框图;图8是本公开实施例提供的电子设备的硬件结构示意图。
31.图中:600:缓存数据处理装置;700/800:电子设备;610:获取模块;620:更新模块;710:中央处理器;720:内存储器;730:高速缓冲存储器;740:第一缓冲器;750:第二缓冲器;810:处理器;820:网络接口;830:用户接口;840:总线;850:存储器;851:操作系统;852:网络通信模块。
具体实施方式
32.为了使本公开的目的、技术方案和优点更加清楚,下面将结合附图对本公开作进一步地详细描述,所描述的实施例不应视为对本公开的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本公开保护的范围。
33.在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,
ꢀ“
一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
34.在以下的描述中,所涉及的术语“第一\第二”仅仅是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本公开实施例能够以除了在这里图示或描述的以外的顺序实施。
35.除非另有定义,本文所使用的所有的技术和科学术语与属于本公开的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本公开实施例的目的,不是旨在限制本公开。
36.应理解,在本公开的各种实施例中,各实施过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本公开实施例的实施过程构成任何限定。
37.当前中央处理器(cpu)为提高指令和数据的执行速度,均会在cpu内实现高速缓存(cache),由于程序访问的局部性原理,程序产生的地址往往集中在存储器的很小范围。cpu在cache开启状态下运行程序,所有指令的执行均需要访问指令cache,所有加载或存储类指令均需要访问数据cache,cache的命中率一般在90%至95%。为实现更高的性能,当前cpu大多实现为多条流水线并行执行指令,指令在流水线并行工作增加了对cache访问端口数量的需求。然而,cache访问端口数量并不能不受限的增多,其中,多端口的cache会引起面积和访问功耗的增加。
38.针对相关技术中cache访问端口数量有限的情况下,访问冲突的问题,本公开实施例提供了一种缓存数据处理方法,以减少对cache访问端口的需求,同时不影响流水线执行的并行度,如图1所示,图1是本公开实施例提供的缓存数据处理方法的一种可选处理流程示意图,缓存数据处理方法包括:步骤s20:获取从内存中读取的第一数据,并保存在第一缓冲器中,第一数据是cache中没有,在内存中读取的数据,其中,第一缓冲器以下也称bufferb。当cache产生了访问miss时,cpu需要从内存中获取相应的数据,即第一数据,该第一数据并不即时读入到
cache中,而是保存在bufferb中,然后,再进一步判断cache的访问状态,“择机”将bufferb中的第一数据读入到cache中,其中,可包括多个bufferb用于存储第一数据,具体的读入操作如下:步骤s40:确定高速缓冲存储器的访问状态为设定状态时,将第一缓冲器中的第一数据更新至高速缓冲存储器中。在cache的访问请求源较多时,不进行数据更新,而是采用步骤s20中的,将第一数据存储在bufferb中,当高速缓冲存储器的访问请求的数量较少,满足设定状态时,再对数据进行更新,使得真正需要访问缓存的并行性最高,从而可减少冲突,提高访存速度;以及将新增的更新访问择机进行处理,可降低访问功耗。
39.访问状态以及设定状态的确定参考后文的描述。
40.如图2所示,图2是本公开实施例提供的缓存数据处理方法的一种可选处理流程示意图,缓存数据处理方法包括:步骤s10-1:中央处理器访问所述高速缓冲存储器读取所需的数据;当访问缺失时,所述中央处理器访问内存读取所需的数据,从所述内存读取的所需的数据为所述第一数据。
41.当cache产生了访问miss时,cpu访问内存读取所需的数据,内存返回cpu所需的数据,并将该数据(也即第一数据)保存在所述第一缓冲器中。
42.如图3所示,图3是本公开实施例提供的缓存数据处理方法的一种可选处理流程示意图,缓存数据处理方法包括:步骤s10-2:获取高速缓冲存储器中需要被替换的第二数据及第二数据的位置信息;当cache产生了访问miss时,同时获取第二数据及第二数据的位置信息。
43.例如,将第二数据及第二数据的位置信息保存在第二缓冲器中。第二缓冲器以下也称buffera。关于需要被替换的第二数据的选择方式,取决于cache的替换算法,替换算法有:lru算法、rrip算法、fifo算法或随机替算法等中的一种或多种。被替换的数据可能是高速缓冲存储器中的最新数据,为了避免该部分数据丢失,将被替换的数据存储在buffera中,其中,可包括多个buffera,用于存储第二数据及第二数据的位置信息。
44.步骤s20:获取从内存中读取的第一数据,并保存在第一缓冲器中;第一数据是cache中没有,在内存中读取的数据,当cache产生了访问miss时,cpu需要从内存中获取相应的数据,即第一数据,该第一数据并不即时读入到cache中,而是保存在bufferb中,然后,再进一步判断cache的访问状态,“择机”将bufferb中的第一数据读入到cache中。
45.步骤s30:根据第二数据的位置信息,确定第一数据的回填位置信息,并保存在第一缓冲器中;也即在bufferb中存储有第一数据,以及回填位置信息。
46.步骤s40:确定高速缓冲存储器的访问状态为设定状态时,将第一数据更新至高速缓冲存储器中的回填位置。在cache的访问请求源较多时,不进行数据更新,而是采用步骤s20中的,将第一数据存储在bufferb中,当高速缓冲存储器的访问请求的数量较少,满足设定状态时,对数据进行更新。
47.在缓存的访问请求源较多时,第一数据存储在bufferb中,可以缓解数据更新的访问请求,也即缓解更新请求的即时性,将第二数据存储在buffera中,可以减少数据替换的访问请求,从而在cache的访问请求源较多时,不进行数据更新,可以只处理请求的访问。
48.访问状态以及设定状态的确定参考后文的描述。
49.在一些实施例中,如图4所示,图4是本公开实施例提供的缓存数据处理方法的一种可选处理流程示意图。确定高速缓冲存储器的访问状态包括:步骤s41:根据缓存的当前访问请求数量,确定高速缓冲存储器的访问状态;或者,步骤s42:根据缓存的当前访问请求数量以及第一缓冲器的剩余存储容量,确定高速缓冲存储器的访问状态。
50.例如,确定操作的时机可以为实时确定,或者,按照设定周期进行确定。
51.例如,高速缓冲存储器的访问状态包括忙碌状态、较忙碌状态、较空闲状态和空闲状态。但本公开实施例中,访问状态并不局限于此。
52.其中,高速缓冲存储器的访问端口数量为第一数值x;当前访问请求数量大于或等于第一数值x时,则确定高速缓冲存储器的访问状态为忙碌状态;当前访问请求数量小于第一数值x,且大于第二数值y时,则确定高速缓冲存储器的访问状态为较忙碌状态;其中,第二数值y为大于0,且小于第一数值x的数值,例如,第二数值y为第一数值x的二分之一。
53.当前访问请求数量小于y,且大于0时,则确定高速缓冲存储器的访问状态为较空闲状态;当前访问请求数量等于0时,则确定高速缓冲存储器的访问状态为空闲状态。
54.例如,在根据高速缓冲存储器的当前访问请求数量,确定高速缓冲存储器的访问状态时,当前访问请求数量等于0时,确定高速缓冲存储器的访问状态为设定状态。也即高速缓冲存储器的访问状态为空闲状态时,则可启动对cache的更新操作。
55.例如,在根据缓存的当前访问请求数量以及第一缓冲器的剩余存储容量,确定高速缓冲存储器的访问状态时,当前访问请求数量小于第一数值x且大于0,以及第一缓冲器已达到最大容量时,确定高速缓冲存储器的访问状态为设定状态,也即当bufferb已经处于饱和状态时,则在高速缓冲存储器的访问状态为较忙碌或较空闲状态时,则可启动对cache的更新操作。或者,例如,在根据高速缓冲存储器的当前访问请求数量以及第一缓冲器的剩余存储容量,确定高速缓冲存储器的访问状态时,在bufferb饱和或不饱和的情况下,若当前访问请求数量等于0,也即高速缓冲存储器的访问状态为空闲状态时,则可启动对cache的更新操作。
56.以下通过具体实施方式对高速缓冲存储器的访问状态进行说明。
57.例如,cache包括2个读访问端口和1个写访问端口,且读写请求不能同时进行。当有2个读请求及以上时,则当前cache的访问状态处于忙碌状态;当有1个写请求或1个读请求和1个写请求时,则当前cache的访问状态处于较忙碌状态;当有1个读请求时,则当前cache的访问状态处于较空闲状态;当有没有任何请求时,则当前cache的访问状态处于空闲状态。
58.结合bufferb空满情况和cache的访问状态,择机将bufferb中的数据更新至cache中。例如,当bufferb较空时,则等到cache的访问状态为空闲状态时,将bufferb中的数据更新至cache中;例如,当bufferb较满时,则当cache的访问状态为较忙碌或较空闲时,即可将bufferb中的数据更新至cache中。
59.如图5所示,图5是基于本公开实施例提供的缓存数据处理装置的cpu读取数据的流程示意图。结合附图5对cpu进行读取数据进行说明。当cpu要读取一个数据时,首先在
cache中查找cpu所需的数据,若访问命中(hit),则读取所需数据并传送给cpu,一般情况下,访问命中的概率在90%至95%之间;若访问缺失(miss),则在内存中查找cpu所需的数据,读取并传送给cpu,同时,在bufferb中存储从内存中读取的数据及数据回填的位置信息,在buffera中存储cache中需要替换的数据及该数据的位置信息。
60.确定cache的访问状态,在状态为设定状态时,例如,cache的状态为空闲状态、较空闲状态或较忙碌状态时,根据缓存bufferb中保存的数据回填的位置将bufferb中数据更新到cache中。
61.本公开实施例中,从内存中读取的第一数据并不即时的存入到高速缓冲器中,而是在高速缓冲存储器的访问状态时,例如,高速缓冲存储器为空闲状态时,再进行数据更新操作。在缓存的访问请求源较多时,只处理请求的访问,使得真正需要访问缓存的并行性最高,从而可减少冲突,提高访存速度;以及将新增的更新访问择机进行处理,可降低访问功耗。
62.如图6所示,本公开实施例提供一种缓存数据处理装置600,缓存数据的存储元件包括高速缓冲存储器和第一缓冲器,缓存数据处理装置600包括获取模块610和更新模块620;获取模块610被配置为获取从内存中读取的第一数据,并保存在第一缓冲器中;更新模块620被配置为确定高速缓冲存储器的访问状态为设定状态时,将第一缓冲器中的第一数据更新至高速缓冲存储器中。
63.在一些实施例中,中央处理器访问高速缓冲存储器读取所需的数据;当访问缺失时,中央处理器访问内存读取所需的数据,从内存读取的所需的数据为第一数据。
64.在一些实施例中,获取模块610还被配置为获取缓存中需要被替换的第二数据及第二数据的位置信息,以及根据第二数据的位置信息,确定第一数据的回填位置信息,并保存在第一缓冲器中;更新模块620还被配置为将第一数据更新至高速缓冲存储器中的回填位置。
65.在一些实施例中,缓存数据的存储元件还包括第二缓冲器,获取模块610还被配置为将第二数据及第二数据的位置信息保存在第二缓冲器中。
66.在一些实施例中,更新模块620被配置为根据缓存的当前访问请求数量,确定高速缓冲存储器的访问状态。
67.在一些实施例中,更新模块620被配置为根据缓存的当前访问请求数量,确定高速缓冲存储器的访问状态,包括:当前访问请求数量等于0时,确定高速缓冲存储器的访问状态为设定状态。
68.在一些实施例中,更新模块620被配置为根据缓存的当前访问请求数量以及第一缓冲器的剩余存储容量,确定高速缓冲存储器的访问状态。
69.在一些实施例中,更新模块620被配置根据缓存的当前访问请求数量以及第一缓冲器的剩余存储容量,确定高速缓冲存储器的访问状态,包括:缓存的访问端口数量为第一数值x;当前访问请求数量小于第一数值x且大于0,以及第一缓冲器已达到最大容量时,确定高速缓冲存储器的访问状态为设定状态;或者当前访问请求数量等于0时,确定高速缓冲存储器的访问状态为设定状态。
70.需要说明的是,本公开实施例中缓存数据处理装置的描述,与上述缓存数据处理方法实施例的描述是类似的,具有同方法实施例相似的有益效果,因此不做赘述。对于本公
开实施例提供的缓存数据处理装置中未尽的技术细节,可以根据图1至图5任一附图的说明而理解。
71.如图7所示,图7是本公开实施例提供的电子设备的结构框图。电子设备700包括中央处理器710、内存储器720、高速缓冲存储器730、多个第一缓冲器740和多个第二缓冲器750;多个第一缓冲器740被配置为存储中央处理器710从内存储器720中读取的第一数据和回填位置信息;多个第二缓冲器750被配置为存储高速缓冲存储器730中需要被替换的第二数据及第二数据的位置信息。
72.电子设备700通过增加多个第一缓冲器(bufferb)740和多个第二缓冲器(buffera)750,分别存储更新数据(第一数据)和被替换数据(第二数据),在缓存的访问请求源较多时,可以缓解数据更新的访问请求及减少数据替换的访问请求,从而在cache的访问请求源较多时,可以只处理请求的访问。
73.下面说明本公开实施例提供的电子设备的示例性应用,本公开实施例提供的电子设备可以实施为电子设备,电子设备可以是服务器或终端设备。
74.如图8所示,图8是本公开实施例提供的电子设备的硬件结构示意图,图8所示的电子设备800包括:至少一个处理器810、存储器850和总线840;电子设备800中的各个组件通过总线840耦合在一起。可理解,总线840用于实现这些组件之间的连接通信。总线840除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图8中将各种总线都标为总线840。
75.处理器810可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(dsp,digital signal processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
76.存储器850中存储有用于实现本公开实施例提供的缓存数据处理方法的可执行指令,缓存数据处理方法可由图6所示的缓存数据处理装置中的获取模块610和更新模块620实现;存储器850可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器850可选地包括在物理位置上远离处理器810的一个或多个存储设备。
77.在一些实施例中,存储器850能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集。
78.在一些实施例中,电子设备800还可以包括:操作系统851,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;网络通信模块852,用于经由一个或多个(有线或无线)网络接口820到达其他计算设备,示例性的网络接口820包括:蓝牙、无线相容性认证(wifi)、和通用串行总线(usb,universal serial bus)等。
79.本公开实施例提供一种存储有可执行指令的计算机可读存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本公开实施例提供的缓存数据处理方法,例如,如图1至图5示出的缓存数据处理方法。
80.在一些实施例中,计算机可读存储介质可以是fram、rom、prom、eprom、eeprom、闪
存、磁表面存储器、光盘、或cd-rom等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
81.在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
82.例如,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
83.本公开实施例提供一种计算机程序产品,计算机程序产品包括计算机程序/指令,计算机程序/指令被处理器执行时实现本公开的缓存数据处理方法。
84.以上,仅为本公开的实施例而已,并非用于限定本公开的保护范围。凡在本公开的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本公开的保护范围之内。
技术特征:
1.一种缓存数据处理方法,其特征在于,所述缓存数据的存储元件包括高速缓冲存储器和第一缓冲器,所述方法包括:获取从内存中读取的第一数据,并保存在所述第一缓冲器中;确定所述高速缓冲存储器的访问状态为设定状态时,将所述第一缓冲器中的所述第一数据更新至所述高速缓冲存储器中。2.根据权利要求1所述的缓存数据处理方法,其特征在于,获取从内存中读取的第一数据,包括:中央处理器访问所述高速缓冲存储器读取所需的数据;当访问缺失时,所述中央处理器访问内存读取所需的数据,从所述内存读取的所需的数据为所述第一数据。3.根据权利要求1所述的缓存数据处理方法,其特征在于,所述方法还包括:获取高速缓冲存储器中需要被替换的第二数据及所述第二数据的位置信息;根据所述第二数据的位置信息,确定所述第一数据的回填位置信息,并保存在所述第一缓冲器中;将所述第一数据更新至所述高速缓冲存储器中的回填位置。4.根据权利要求3所述的缓存数据处理方法,其特征在于,所述缓存数据的存储元件还包括第二缓冲器,所述方法还包括:将所述第二数据及所述第二数据的位置信息保存在第二缓冲器中。5.根据权利要求1所述的缓存数据处理方法,其特征在于,所述确定所述高速缓冲存储器的访问状态,包括:根据所述高速缓冲存储器的当前访问请求数量,确定所述高速缓冲存储器的访问状态。6.根据权利要求5所述的缓存数据处理方法,其特征在于,根据所述高速缓冲存储器的当前访问请求数量,确定所述高速缓冲存储器的访问状态,包括:当前访问请求数量等于0时,确定高速缓冲存储器的访问状态为设定状态。7.根据权利要求1所述的缓存数据处理方法,其特征在于,所述确定所述高速缓冲存储器的访问状态,包括:根据所述高速缓冲存储器的当前访问请求数量以及所述第一缓冲器的剩余存储容量,确定所述高速缓冲存储器的访问状态。8.根据权利要求7所述的缓存数据处理方法,其特征在于,根据所述高速缓冲存储器的当前访问请求数量以及所述第一缓冲器的剩余存储容量,确定所述高速缓冲存储器的访问状态,包括:所述高速缓冲存储器的访问端口数量为第一数值x;当前访问请求数量小于第一数值x且大于0,以及所述第一缓冲器已达到最大容量时,确定所述高速缓冲存储器的访问状态为设定状态;或者当前访问请求数量等于0时,确定所述高速缓冲存储器的访问状态为设定状态。9.一种缓存数据处理装置,其特征在于,所述缓存数据的存储元件包括高速缓冲存储器和第一缓冲器,所述装置包括:获取模块和更新模块;所述获取模块被配置为获取从内存中读取的第一数据,并保存在所述第一缓冲器中;
所述更新模块被配置为确定所述高速缓冲存储器的访问状态为设定状态时,将所述第一缓冲器中的所述第一数据更新至所述高速缓冲存储器中。10.一种电子设备,其特征在于,所述电子设备包括:中央处理器、内存储器、高速缓冲存储器、多个第一缓冲器和多个第二缓冲器;多个所述第一缓冲器被配置为存储所述中央处理器从所述内存储器中读取的第一数据和回填位置信息;多个所述第二缓冲器被配置为存储所述高速缓冲存储器中需要被替换的第二数据及所述第二数据的位置信息。11.一种电子设备,其特征在于,所述电子设备包括:处理器、存储器和总线;所述存储器存储可执行指令;所述处理器与所述存储器之间通过所述总线通信,所述处理器执行所述存储器中存储的可执行指令时,实现权利要求1至8中任一项所述的缓存数据处理方法。12.一种计算机可读存储介质,其特征在于,存储有可执行指令,用于被处理器执行时,实现权利要求1至8中任一项所述的缓存数据处理方法。13.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序/指令,所述计算机程序/指令被处理器执行时实现权利要求1至8中任一项所述的缓存数据处理方法。
技术总结
本公开涉及计算机数据处理技术领域,尤其涉及一种缓存数据处理方法、装置及电子设备,该缓存数据处理方法包括:获取从内存中读取的第一数据,并保存在第一缓冲器中;确定高速缓冲存储器的访问状态为设定状态时,将所述第一缓冲器中的所述第一数据更新至所述高速缓冲存储器中。本公开实施例提供的缓存数据处理方法,从内存中读取的第一数据并不即时的存入到高速缓冲器中,而是在高速缓冲存储器的访问状态时,例如,高速缓冲存储器为空闲状态时,再进行数据更新操作。在缓存的访问请求源较多时,只处理请求的访问,使得真正需要访问缓存的并行性最高,从而可减少冲突,提高访存速度;以及将新增的更新访问择机进行处理,可降低访问功耗。耗。耗。
技术研发人员:郭丽丽 高军 薛洪波 丁哲 曹程成
受保护的技术使用者:飞腾信息技术有限公司
技术研发日:2022.04.21
技术公布日:2022/5/25
转载请注明原文地址:https://tc.8miu.com/read-9818.html