一种数据替换方法、装置、电子设备及存储介质制造方法及图纸

技术编号:33773562 阅读:16 留言:0更新日期:2022-06-12 14:26
本发明专利技术实施例提供了一种数据替换方法和装置。该方法包括:根据第一访问请求中携带的第一块流式数据标识,将所述第一访问请求对应的目标缓存行的替换优先级变更为优先不替换,当缓存行需要进行数据替换时,根据缓存行的替换优先级,优先对除优先不替换的所述目标缓存行之外的缓存行进行数据替换,使得在流式数据刚开始被使用时,将存储流式数据的目标缓存行变更为优先不替换,防止后续的流式数据未被使用就被替换,避免了不恰当的缓存行的数据替换,减少了性能损失。减少了性能损失。减少了性能损失。

【技术实现步骤摘要】
一种数据替换方法、装置、电子设备及存储介质


[0001]本专利技术涉及计算机
,特别是涉及一种数据替换方法、一种数据替换装置、一种电子设备以及一种可读存储介质。

技术介绍

[0002]高速缓存(cache)是介于中央处理器核(Central Processing Unit,CPU)和主存储器(内存)之间的具有较快速度的存储器,用于将主存储器的部分内容缓存。相对于直接访问主存储器,高速缓存可为处理器核提供更快的访问速度。在现代计算机系统中,不局限于中央处理器核,图形处理器(Graphics Processing Unit,GPU)和其他IO(Input and Output,输入输出)设备亦可使用高速缓存来提高访问内存的性能。例如,GPU可自带cache或与CPU共享cache,IO设备控制器可通过直接缓存访问(Direct cache access,DCA)等方式来访问cache。
[0003]cache存储的内容是内存的一部分,因此在将内存存储的数据调入cache时,需要有一定的规则来规定特定地址的数据放在cache中的位置,称为映射方式。常见的映射方式包括全相联、直接相联和组相联,全相联表示内存中的数据块可以放在cache中的任意位置,直接相联表示内存中的数据块在cache中都有唯一的位置,组相联介于全相联和直接相联之间,内存中的数据块在cache中的每一组中有一个可用的位置。当今的计算机系统中的cache多使用组相联方式,每一“组”也可称作“路”。例如,若cache包含4组,则称为四路组相联。r/>[0004]当内存中有新的数据要调入cache时,需要将cache中原有的一块数据(即cache行)进行替换,在四路组相联cache中,即需要从4路中选择一路进行替换。常见的替换策略包括随机替换、最近最少使用(Least Recently Used,LRU)替换、先进先出(First Input First Output,FIFO)替换等。
[0005]不同的替换策略会显著影响cache的性能,不佳的替换选择会导致整个系统性能的下降。例如,若某cache行被替换后需要再次被使用,则需要重新从内存中调入,带来可观的性能损失;若某cache行保留在cache中,但不会被再次使用,则相当于减小了cache容量,也会带来性能损失。
[0006]在计算机系统中,有许多流式数据会被使用,例如CPU的内存拷贝、IO控制器的数据传输等。这些流式数据具有鲜明的特点:其生产者和消费者常常只各使用该数据一次,即重用率低;当这类数据使用cache时,其生产者和消费者对数据的访问往往在很短的时间间隔内完成,即重用时间较短;流式数据的数据量较大,不恰当的cache替换策略可能导致性能下降。
[0007]经本申请人研究表明,现有技术中,存在着未被使用的流式数据却被替换的问题。

技术实现思路

[0008]本专利技术实施例所要解决的技术问题是提供一种数据替换方法、装置、电子设备及
可读存储介质,以便解决未被使用的流式数据却被替换的问题。
[0009]为了解决上述问题,本专利技术提供了一种数据替换方法,包括:
[0010]根据第一访问请求中携带的第一块流式数据标识,将所述第一访问请求对应的目标缓存行的替换优先级变更为优先不替换;其中,所述第一访问请求对应的目标缓存行为所述第一访问请求所请求的流式数据所在的缓存行;
[0011]当缓存行需要进行数据替换时,根据缓存行的替换优先级,优先对除优先不替换的所述目标缓存行之外的缓存行进行数据替换。
[0012]可选地,所述根据第一访问请求中携带的第一块流式数据标识,将所述第一访问请求对应的目标缓存行的替换优先级变更为优先不替换包括:
[0013]确定所述第一访问请求中携带第一块流式数据标识,以及所述第一访问请求对应的目标缓存行;
[0014]将所述目标缓存行对应的替换状态位修改为所述优先级不替换对应的状态值;其中,所述替换状态位用于表征替换优先级,所述替换状态位的存储位置在缓存中所述目标缓存行对应的标签存储中。
[0015]可选地,所述方法还包括:
[0016]根据第二访问请求中携带的最后一块流式数据标识,将所述第二访问请求对应的目标缓存行的替换优先级变更为优先替换;其中,所述第二访问请求对应的目标缓存行为所述第二访问请求所请求的流式数据所在的缓存行;
[0017]当缓存行需要进行数据替换时,根据缓存行的替换优先级,优先对优先替换的所述第二访问请求对应的目标缓存行进行数据替换。
[0018]可选地,在所述根据第一访问请求中携带的第一块流式数据标识,将所述第一访问请求对应的目标缓存行的替换优先级变更为优先不替换之前,所述方法还包括:
[0019]在针对流式数据的多个访问请求中,对第一个访问请求添加所述第一块流式数据标识,得到所述第一访问请求;
[0020]或者,在针对流式数据的多个访问请求中,每隔缓存行大小对应的流式数据,对访问请求添加所述第一块流式数据标识,得到所述第一访问请求。
[0021]可选地,在所述根据第二访问请求中携带的最后一块流式数据标识,将所述第二访问请求对应的目标缓存行的替换优先级变更为优先替换之前,所述方法还包括:
[0022]在针对流式数据的多个访问请求中,对最后一个访问请求添加所述最后一块流式数据标识,得到所述第二访问请求;
[0023]或者,在针对流式数据的多个访问请求中,每隔缓存行大小对应的流式数据,对访问请求添加所述最后一块流式数据标识,得到所述第二访问请求。
[0024]可选地,所述替换优先级包括优先替换、正常替换、优先不替换,所述当缓存行需要进行数据替换时,根据缓存行的替换优先级,优先对除优先不替换的所述目标缓存行之外的缓存行进行数据替换包括:
[0025]接收数据替换请求;
[0026]若存在所述替换优先级为优先替换的缓存行,则随机选择一个优先替换的缓存行进行数据替换;
[0027]若不存在所述替换优先级为优先替换的缓存行,且存在所述替换优先级为正常替
换的缓存行,则选择一个正常替换的缓存行进行数据替换;
[0028]若不存在所述替换优先级为优先替换的缓存行,且不存在所述替换优先级为正常替换的缓存行,则从除优先替换和正常替换的缓存行之外的缓存行中选择一个缓存行进行数据替换。
[0029]可选地,所述替换优先级包括优先替换、正常替换、优先不替换,所述方法还包括:
[0030]在对缓存进行复位时,或者对所述目标缓存行进行数据替换之后,将所述目标缓存行的替换优先级变更为正常替换。
[0031]本专利技术还提供了一种数据替换装置,包括:
[0032]第一优先级变更模块,用于根据第一访问请求中携带的第一块流式数据标识,将所述第一访问请求对应的目标缓存行的替换优先级变更为优先不替换;其中,所述目标缓存行为所述第一访问请求所请求的流式数据所在的缓存行;
[0033]第一数本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种数据替换方法,其特征在于,包括:根据第一访问请求中携带的第一块流式数据标识,将所述第一访问请求对应的目标缓存行的替换优先级变更为优先不替换;其中,所述第一访问请求对应的目标缓存行为所述第一访问请求所请求的流式数据所在的缓存行;当缓存行需要进行数据替换时,根据缓存行的替换优先级,优先对除优先不替换的所述目标缓存行之外的缓存行进行数据替换。2.根据权利要求1所述的方法,其特征在于,所述根据第一访问请求中携带的第一块流式数据标识,将所述第一访问请求对应的目标缓存行的替换优先级变更为优先不替换,包括:确定所述第一访问请求中携带第一块流式数据标识,以及所述第一访问请求对应的目标缓存行;将所述目标缓存行对应的替换状态位修改为所述优先级不替换对应的状态值;其中,所述替换状态位用于表征替换优先级,所述替换状态位的存储位置在缓存中所述目标缓存行对应的标签存储中。3.根据权利要求1所述的方法,其特征在于,所述方法还包括:根据第二访问请求中携带的最后一块流式数据标识,将所述第二访问请求对应的目标缓存行的替换优先级变更为优先替换;其中,所述第二访问请求对应的目标缓存行为所述第二访问请求所请求的流式数据所在的缓存行;当缓存行需要进行数据替换时,根据缓存行的替换优先级,优先对优先替换的所述第二访问请求对应的目标缓存行进行数据替换。4.根据权利要求1所述的方法,其特征在于,在所述根据第一访问请求中携带的第一块流式数据标识,将所述第一访问请求对应的目标缓存行的替换优先级变更为优先不替换之前,所述方法还包括:在针对流式数据的多个访问请求中,对第一个访问请求添加所述第一块流式数据标识,得到所述第一访问请求;或者,在针对流式数据的多个访问请求中,每隔缓存行大小对应的流式数据,对访问请求添加所述第一块流式数据标识,得到所述第一访问请求。5.根据权利要求3所述的方法,其特征在于,在所述根据第二访问请求中携带的最后一块流式数据标识,将所述第二访问请求对应的目标缓存行的替换优先级变更为优先替换之前,所述方法还包括:在针对流式数据的多个访问请求中,对最后一个访问请求添加所述最后一块流式数据标识,得到所述第二访问请求;或者,在针对流式数据的多个访问请求中,每隔缓存行大小对应的流式数据,对访问请求添加所述最后一块流式数据标识,得到所述第二访问请求。6.根据权利要求1至5任一项所述的方法,其特征在于,所述替换优先级包括优先替换、正常替换、优先不替换,所述当缓存行需要进行数据替换时,根据缓存行的替换优先级,优先对除优先不替换的所述目标缓存行之外的缓存行进行数据替换包括:接收数据替换请求;若存在所述替换优先级为优先替换的缓存行,则随机选择一个优先替换的缓存行进行
数据替换;若不存在所述替换优先级为优先替换的缓存行,且存在所述替换优先级为正常替换的缓存行,则选择一个正常替换的缓存行进行数据替换;若不存在所述替换优先级为优先替换的缓存行,且不存在所述替换优先级为正常替换的缓存行,则从除优先替换和正常替换的缓存行之外的缓存行中选择一个缓存行进行数据替换。7.根据权利要求1至5任一项所述的方法,其特征在于,所述替换优先级包括优先替换、正常替换、优先不替换,所述方法还包括:在对缓存进行复位时,或者对所述目标缓存行进行数据替换之后,将所述目标缓存行的替换优先级变更为正常替换。8.一种数据替换装置,其特征在于,包括:第一优先级变更模块,用于根据第一访问请求中携带的第一块流式数据标识,将所述第一访问请求对应的目标缓存行的替换优先级变更为优先不替换;其中,所述第一访问请求对应的目标缓存行为所述第一访问请求所请求的流式数据所在的缓存行;第一数据替换模块,用于当缓存行需要进行数据替换时,根据缓存行...

【专利技术属性】
技术研发人员:刘苏苏孟豪黄帅
申请(专利权)人:龙芯中科技术股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1