缓存管理方法、缓存管理装置和缓存管理设备的制作方法

文档序号:6627697阅读:183来源:国知局
缓存管理方法、缓存管理装置和缓存管理设备的制作方法
【专利摘要】本发明实施例公开了一种缓存管理方法、缓存管理装置和缓存管理设备。本发明实施例方法包括:记录目标逻辑单元中被访问的数据块在时间窗内的访问信息,其中目标逻辑单元中的逻辑线性空间被划分为等大小的数据块;根据目标逻辑单元中被访问的数据块在时间窗内的访问信息获取被访问的数据块在时间窗内的访问特征;根据目标逻辑单元中的至少部分被访问的数据块在一个时间段内的访问特征获取目标逻辑单元在时间段内的全局访问特征,其中时间段包括至少一个时间窗;根据被访问的数据块的访问特征和目标逻辑单元的全局访问特征对目标逻辑单元中的数据块进行缓存和管理。本发明实施例能够提高缓存的淘汰效率,进而提高缓存的命中率。
【专利说明】缓存管理方法、缓存管理装置和缓存管理设备

【技术领域】
[0001] 本发明涉及通信【技术领域】,尤其涉及一种缓存管理方法、缓存管理装置和缓存管 理设备。

【背景技术】
[0002] 高速缓冲存储器(以下简称缓存)是介于处理器和主存储器之间的高速小容量存 储器,以解决高速和低速设备之间速度不匹配的问题,广泛应用于存储系统、数据库、web服 务器、处理器、文件系统、磁盘系统等等领域。
[0003] 在一个二级存储架构中,缓存具有比辅存更高的性能但同时价格更昂贵,性价比 的要求限定了缓存容量的大小,因此需要有效地管理有限的缓存空间,提升缓存资源利用 率,由此出现了各种缓存淘汰算法。
[0004] 但是,现有技术中固定使用一种缓存淘汰算法单一的缓存淘汰算法不能很好的适 应业务访问模式的变化和多样性,从而导致缓存命中率不高。


【发明内容】

[0005] 本发明实施例提供了一种缓存管理方法和缓存管理装置,能够提高缓存的命中 率。
[0006] 本发明实施例第一方面提供一种缓存管理方法,包括:
[0007] 记录目标逻辑单元中被访问的数据块在时间窗内的访问信息,其中所述目标逻辑 单元中的逻辑线性空间被划分为等大小的数据块;
[0008] 根据所述目标逻辑单元中被访问的数据块在时间窗内的访问信息获取所述被访 问的数据块在所述时间窗内的访问特征;
[0009] 根据所述目标逻辑单元中的至少部分被访问的数据块在一个时间段内的访问特 征获取所述目标逻辑单元在所述时间段内的全局访问特征,其中所述时间段包括至少一个 所述时间窗;
[0010] 根据所述被访问的数据块的访问特征和所述目标逻辑单元的全局访问特征对所 述目标逻辑单元中的数据块进行缓存和管理。
[0011] 结合本发明实施例的第一方面,本发明实施例的第一方面的第一种实现方式中, 所述根据所述目标逻辑单元中被访问的数据块在时间窗内的访问信息获取所述被访问的 数据块在所述时间窗内的访问特征具体包括:
[0012] 根据所述目标逻辑单元中所述被访问的数据块在所述时间窗内的访问信息确定 所述目标逻辑单元中所述被访问的数据块在所述时间窗内的访问特征属于顺序访问、重复 访问和随机访问中的其中一种。
[0013] 结合本发明实施例的第一方面,本发明实施例的第一方面的第二种实现方式中, 所述记录所述目标逻辑单元中被访问的数据块在时间窗内的访问信息具体包括:
[0014] 标识所述目标逻辑单元中所述被访问的数据块在所述时间窗内被访问的页面位 图;
[0015] 记录所述目标逻辑单元中所述被访问的数据块在所述时间窗内的访问总数据量, 其中所述访问总数据量为数据块在所述时间窗内每一次被访问的地址范围叠加得到的 和;
[0016] 记录所述目标逻辑单元中所述被访问的数据块在所述时间窗内的访问次数。
[0017] 结合本发明实施例的第一方面的第二种实现方式,本发明实施例的第一方面的第 三种实现方式中,所述根据所述目标逻辑单元中被访问的数据块在时间窗内的访问信息获 取所述被访问的数据块在所述时间窗内的访问特征包括:
[0018] 根据所述页面位图计算所述被访问的每一个数据块在所述时间窗内被访问的地 址总范围R、非连续访问的个数N以及所述非连续访问之间的最大地址间距L ;
[0019] 在所述时间窗内,当N大于或者等于第一预置数值且L小于第二预置数值时,或 者,
[0020] 当R占所述被访问的数据块的地址范围的比例大于或者等于第三预置数值时,
[0021 ] 确定所述被访问的数据块在所述时间窗内的访问特征为顺序访问。
[0022] 结合本发明实施例的第一方面的第三种实现方式,本发明实施例的第一方面的第 四种实现方式中,所述根据所述目标逻辑单元中被访问的数据块在所述时间窗内的访问信 息获取所述被访问的数据块在所述时间窗内的访问特征还包括:
[0023] 在所述时间窗内,当R占所述数据块的地址范围的比例小于第三预置数值时,而 且,
[0024] 所述访问总数据量与R的差与R的比值大于1时,
[0025] 确定所述被访问的数据块在所述时间窗内的访问特征为重复访问。
[0026] 结合本发明实施例的第一方面的第一种实现方式,本发明实施例的第一方面的第 五种实现方式中,所述根据所述目标逻辑单元的至少部分被访问的数据块在一个时间段内 的访问特征获取所述目标逻辑单元在所述时间段内的全局访问特征具体包括:
[0027] 在所述时间段结束时,根据所述目标逻辑单元的所述至少部分被访问的数据块在 所述时间段中的所述时间窗内的访问特征确定所述目标逻辑单元在所述时间段内的全局 访问特征属于顺序访问、重复访问和随机访问中的其中一种。
[0028] 结合本发明实施例的第一方面的第五种实现方式,本发明实施例的第一方面的第 六种实现方式中,所述根据所述目标逻辑单元的至少部分被访问的数据块在一个时间段内 的访问特征获取所述目标逻辑单元在所述时间段内的全局访问特征具体包括:
[0029] 统计所述目标逻辑单元的所述至少部分被访问的数据块中,在所述时间段内访问 特征为顺序访问的数据块的数量,以及所述目标逻辑单元的所述至少部分被访问的数据块 的数量;
[0030] 计算所述目标逻辑单元的顺序度,其中所述顺序度等于所述至少部分被访问的数 据块中,所述访问特征为顺序访问的数据块的数量与所述目标逻辑单元的所述至少部分被 访问的数据块的数量的比值;
[0031] 当所述目标逻辑单元的顺序度大于或者等于第七预置数值时,确定所述目标逻辑 单元在所述时间段内的全局访问特征为顺序访问。
[0032] 结合本发明实施例的第一方面的第六种实现方式,本发明实施例的第一方面的第 七种实现方式中,所述根据所述目标逻辑单元的至少部分被访问的数据块在一个时间段内 的访问特征获取所述目标逻辑单元在所述时间段内的全局访问特征具体包括:
[0033] 统计所述目标逻辑单元的所述至少部分被访问的数据块中,在所述时间段内访问 特征为重复访问的数据块的数量;
[0034] 计算所述目标逻辑单元的重复度,其中所述重复度等于所述至少部分被访问的数 据块中,所述访问特征为重复访问的数据块的数量与所述目标逻辑单元的所述至少部分被 访问的数据块的数量的比值;
[0035] 统计所述目标逻辑单元的所述至少部分被访问的数据块在所述时间段内的访问 次数均方差;
[0036] 当所述目标逻辑单元的顺序度小于所述第七预置数值,所述目标逻辑单元的重复 度大于或者等于第八预置数值,且所述均方差大于或者等于第九预置数值时,确定所述目 标逻辑单元在所述时间段内的全局访问特征为重复访问。
[0037] 结合本发明实施例的第一方面,本发明实施例的第一方面的第八种实现方式中, 所述根据所述被访问的数据块的访问特征和所述目标逻辑单元的全局访问特征对所述目 标逻辑单元中的数据块进行缓存和管理具体包括:
[0038] 获取所述目标逻辑单元中待缓存的数据块在最近的一个所述时间窗内的访问特 征,其中,缓存中包括至少两个管理链表,每个管理链表采用不同的淘汰算法;
[0039] 根据所述待缓存的数据块的访问特征将所述待缓存的数据块分成待缓存的子数 据块;
[0040] 根据所述待缓存的子数据块的访问特征与淘汰算法的对应关系,将所述待缓存的 子数据块分别插入管理链表中。
[0041] 结合本发明实施例的第一方面的第八种实现方式,本发明实施例的第一方面的第 九种实现方式中,所述待缓存的子数据块的访问特征属于顺序访问、重复访问和随机访问 中的其中一种;
[0042] 所述缓存中包括三个管理链表,所述三个管理链表使用的淘汰算法分别为近期最 少使用算法、最不经常使用页置换算法、最近最常使用算法;
[0043] 所述根据所述待缓存的子数据块的访问特征与淘汰算法的对应关系,将所述待缓 存的子数据块分别插入管理链表中具体包括:
[0044] 当所述待缓存的子数据块的访问特征为顺序访问时,则将所述待缓存的子数据块 插入使用所述最近最常使用算法的链表中;
[0045] 当所述待缓存的子数据块的访问特征为重复访问时,则将所述待缓存的子数据块 插入使用所述最不经常使用页置换算法的链表中;
[0046] 当所述待缓存的子数据块的访问特征为随机访问时,则将所述待缓存的子数据块 插入使用近期最少使用算法的链表中。
[0047] 结合本发明实施例的第一方面,本发明实施例的第一方面的第十种实现方式中, 所述根据所述被访问的数据块的访问特征和所述目标逻辑单元的全局访问特征对所述目 标逻辑单元中的数据块进行缓存和管理具体包括:
[0048] 当检测到缓存中满足淘汰数据的条件时,获取所述目标逻辑单元在最近的所述一 个时间段内的全局访问特征,其中,所述缓存中包括至少两个管理链表,每个管理链表采用 不同的淘汰算法;
[0049] 根据所述目标逻辑单元在最近的所述一个时间段内的全局访问特征调整所述缓 存中内管理链表的淘汰顺序。
[0050] 结合本发明实施例的第一方面的第十种实现方式,本发明实施例的第一方面的第 十一种实现方式中,所述目标逻辑单元在最近的所述一个时间段内的全局访问特征属于顺 序访问、重复访问和随机访问中的其中一种;
[0051] 所述缓存中包括三个管理链表,所述三个管理链表使用的淘汰算法分别为近期最 少使用算法、最不经常使用页置换算法、最近最常使用算法;
[0052] 所述根据所述目标逻辑单元在最近的所述一个时间段内的全局访问特征调整所 述缓存内管理链表的淘汰顺序具体包括:
[0053] 当所述目标逻辑单元在最近的所述一个时间段内的全局访问特征为顺序访问时, 所述缓存调整所述管理链表的淘汰顺序依次为使用所述最不经常使用页置换算法的管理 链表、使用所述近期最少使用算法的管理链表和使用所述最近最常使用算法的管理链表;
[0054] 当所述目标逻辑单元在最近的所述一个时间段内的全局访问特征为重复访问时, 所述缓存调整所述管理链表的淘汰顺序依次为使用所述最近最常使用算法的管理链表、使 用所述近期最少使用算法的管理链表和使用所述最不经常使用页置换算法的管理链表;
[0055] 当所述目标逻辑单元在最近的所述一个时间段内的全局访问特征为随机访问时, 所述缓存调整所述管理链表的淘汰顺序依次为使用所述最近最常使用算法的管理链表、使 用所述最不经常使用页置换算法的管理链表和使用所述近期最少使用算法的管理链表。
[0056] 结合本发明实施例的第一方面,本发明实施例的第一方面的第十二种实现方式 中,所述方法还包括:
[0057] 将所述目标逻辑单元的所述部分被访问的数据块在所述时间窗内的访问信息缓 存到元数据缓存中,所述元数据缓存采用近期最少使用算法进行管理;
[0058] 所述根据所述目标逻辑单元中的至少部分被访问的数据块在一个时间段内的访 问特征获取所述目标逻辑单元在所述时间段内的全局访问特征具体包括:
[0059] 根据所述元数据缓存中所有被访问的数据块在所述一个时间段内的访问特征获 取所述目标逻辑单元在所述时间段内的全局访问特征。
[0060] 结合本发明实施例的第一方面,本发明实施例的第一方面的第十三种实现方式 中,所述根据所述被访问的数据块的访问特征和所述目标逻辑单元的全局访问特征对所述 目标逻辑单元中的数据块进行缓存和管理具体包括:
[0061] 获取所述目标逻辑单元中当前要访问的数据在最近一个所述时间窗内的访问特 征;
[0062] 在缓存内容中查找所述当前要访问的数据;
[0063] 当所述缓存未命中所述当前要访问的数据,且所述当前要访问的数据在最近一个 时间窗内的访问特征为顺序访问时,缓存从硬盘中获取并存储所述当前要访问的数据以及 预置数据,其中所述预置数据为所述目标逻辑单元中地址位于所述当前要访问的数据之后 且与所述当前要访问的数据的地址连续的预置范围内的数据。
[0064] 结合本发明实施例的第一方面,本发明实施例的第一方面的第十四种实现方式 中,所述根据所述被访问的数据块的访问特征和所述目标逻辑单元的全局访问特征对所述 目标逻辑单元中的数据块进行缓存和管理具体包括:
[0065] 获取所述目标逻辑单元中当前要访问的数据在最近一个所述时间窗内的访问特 征;
[0066] 在缓存内容中查找所述当前要访问的数据;
[0067] 当所述缓存命中所述当前要访问的数据但未存储有预置数据,且所述当前要访问 的数据在最近一个所述时间窗内的访问特征为顺序访问时,从硬盘中获取并存储所述预置 数据,其中所述预置数据为所述目标逻辑单元中地址位于所述当前要访问的数据之后且与 所述当前要访问的数据地址连续的预置范围内的数据。
[0068] 本发明实施例第二方面提供一种缓存管理装置,包括:
[0069] 记录模块,用于记录目标逻辑单元中被访问的数据块在时间窗内的访问信息,其 中所述目标逻辑单元中的逻辑线性空间被划分为等大小的数据块;
[0070] 第一获取模块,用于根据所述目标逻辑单元中被访问的数据块在时间窗内的访问 信息获取所述被访问的数据块在所述时间窗内的访问特征;
[0071] 第二获取模块,用于根据所述目标逻辑单元中的至少部分被访问的数据块在一个 时间段内的访问特征获取所述目标逻辑单元在所述时间段内的全局访问特征,其中所述时 间段包括至少一个所述时间窗;
[0072] 缓存,用于根据所述被访问的数据块的访问特征和所述目标逻辑单元的全局访问 特征对所述目标逻辑单元中的数据块进行缓存和管理。
[0073] 结合本发明实施例的第二方面,本发明实施例的第二方面的第一种实现方式中, 所述第一获取模块具体用于根据所述目标逻辑单元中所述被访问的数据块在所述时间窗 内的访问信息确定所述目标逻辑单元中所述被访问的数据块在所述时间窗内的访问特征 属于顺序访问、重复访问和随机访问中的其中一种。
[0074] 结合本发明实施例的第二方面,本发明实施例的第二方面的第二种实现方式中, 所述记录模块具体用于:
[0075] 标识所述目标逻辑单元中所述被访问的数据块在所述时间窗内被访问的页面位 图;
[0076] 记录所述目标逻辑单元中所述被访问的数据块在所述时间窗内的访问总数据量; 其中,所述访问总数据量为数据块在所述时间窗内每一次被访问的地址范围叠加得到的 和;
[0077] 记录所述目标逻辑单元中所述被访问的数据块在所述时间窗内的访问次数。
[0078] 结合本发明实施例的第二方面的第二种实现方式,本发明实施例的第二方面的第 三种实现方式中,所述第一获取模块具体用于:
[0079] 根据所述页面位图计算所述被访问的每一个数据块在所述时间窗内被访问的地 址总范围R、非连续访问的个数C以及所述非连续访问之间的最大地址间距L ;
[0080] 在所述时间窗内,当C大于第一预置数值且L小于第二预置数值时,
[0081] 或者,当R占所述数据块的地址范围的比例大于或者等于第三预置数值时,
[0082] 确定所述被访问的数据块在所述时间窗内的访问特征为顺序访问。
[0083] 结合本发明实施例的第二方面的第三种实现方式,本发明实施例的第二方面的第 四种实现方式中,所述第一获取模块还用于在所述时间窗内,当R占所述数据块的地址范 围的比例小于第三预置数值时,而且,所述访问总数据量与R的差与R的比值大于1时,确 定所述被访问的数据块在所述时间窗内的访问特征为重复访问。
[0084] 结合本发明实施例的第二方面的第一种实现方式,本发明实施例的第二方面的第 五种实现方式中,所述第二获取模块具体用于在所述时间段结束时,根据所述目标逻辑单 元的所述至少部分被访问的数据块在所述时间段中的所述时间窗内的访问特征确定所述 目标逻辑单元在所述时间段内的全局访问特征属于顺序访问、重复访问和随机访问中的其 中一种。
[0085] 结合本发明实施例的第二方面的第五种实现方式,本发明实施例的第二方面的第 六种实现方式中,所述第二获取模块具体用于:
[0086] 统计所述目标逻辑单元的所述至少部分被访问的数据块中,在所述时间段内访问 特征为顺序访问的数据块的数量,以及所述目标逻辑单元的所述至少部分被访问的数据块 的数量;
[0087] 计算所述目标逻辑单元的顺序度,其中所述顺序度等于所述至少部分被访问的数 据块中,所述访问特征为顺序访问的数据块的数量与所述目标逻辑单元的所述至少部分被 访问的数据块的数量的比值;
[0088] 当所述目标逻辑单元的顺序度大于或者等于第七预置数值时,确定所述目标逻辑 单元在所述时间段内的全局访问特征为顺序访问。
[0089] 结合本发明实施例的第二方面的第六种实现方式,本发明实施例的第二方面的第 七种实现方式中,所述第二获取模块具体用于:
[0090] 统计所述目标逻辑单元的所述至少部分被访问的数据块中,在所述时间段内访问 特征为重复访问的数据块的数量;
[0091] 计算所述目标逻辑单元的重复度,其中所述重复度等于所述至少部分被访问的数 据块中,所述访问特征为重复访问的数据块的数量与所述目标逻辑单元的所述至少部分被 访问的数据块的数量的比值;
[0092] 统计所述目标逻辑单元的所述至少部分被访问的数据块在所述时间段内的访问 次数均方差;
[0093] 当所述目标逻辑单元的顺序度小于所述第七预置数值,所述目标逻辑单元的重复 度大于或者等于第八预置数值,且所述均方差大于或者等于第九预置数值时,确定所述目 标逻辑单元在所述时间段内的全局访问特征为重复访问。
[0094] 结合本发明实施例的第二方面,本发明实施例的第二方面的第八种实现方式中, 所述缓存中包括至少两个管理链表,每个管理链表采用不同的淘汰算法;
[0095] 所述缓存具体用于:
[0096] 获取所述目标逻辑单元中待缓存的数据块在最近的一个所述时间窗内的访问特 征;
[0097] 根据所述待缓存的数据块的访问特征将所述待缓存的数据块分成待缓存的子数 据块;
[0098] 根据所述待缓存的子数据块的访问特征与淘汰算法的对应关系,将所述待缓存的 子数据块分别插入管理链表中。
[0099] 结合本发明实施例的第二方面的第八种实现方式,本发明实施例的第二方面的第 九种实现方式中,所述待缓存的子数据块的访问特征属于顺序访问、重复访问和随机访问 中的其中一种;
[0100] 所述缓存中包括三个管理链表,所述三个管理链表使用的淘汰算法分别为近期最 少使用算法、最不经常使用页置换算法、最近最常使用算法;
[0101] 所述缓存具体用于:
[0102] 当所述待缓存的子数据块的访问特征为顺序访问时,将所述待缓存的子数据块插 入使用所述最近最常使用算法的链表中;
[0103] 当所述待缓存的子数据块的访问特征为重复访问时,将所述待缓存的子数据块插 入使用所述最不经常使用页置换算法的链表中;
[0104] 当所述待缓存的子数据块的访问特征为随机访问时,将所述待缓存的子数据块插 入使用近期最少使用算法的链表中。
[0105] 结合本发明实施例的第二方面,本发明实施例的第二方面的第十种实现方式中, 所述缓存具体用于:
[0106] 当检测到所述缓存中满足淘汰数据的条件时,获取所述目标逻辑单元在最近的所 述一个时间段内的全局访问特征;
[0107] 其中,所述缓存中包括至少两个管理链表,每个管理链表采用不同的淘汰算法;
[0108] 根据所述目标逻辑单元在最近的所述一个时间段内的全局访问特征调整所述缓 存中内管理链表的淘汰顺序。
[0109] 结合本发明实施例的第二方面的第十种实现方式,本发明实施例的第二方面的第 十一种实现方式中,所述目标逻辑单元在最近的所述一个时间段内的全局访问特征属于顺 序访问、重复访问和随机访问中的其中一种;
[0110] 所述缓存中包括三个管理链表,所述三个管理链表使用的淘汰算法分别为近期最 少使用算法、最不经常使用页置换算法、最近最常使用算法;
[0111] 所述缓存具体用于:
[0112] 当所述目标逻辑单元在最近的所述一个时间段内的全局访问特征为顺序访问时, 调整所述管理链表的淘汰顺序依次为使用所述最不经常使用页置换算法的管理链表、使用 所述近期最少使用算法的管理链表和使用所述最近最常使用算法的管理链表;
[0113] 当所述目标逻辑单元在最近的所述一个时间段内的全局访问特征为重复访问时, 调整所述管理链表的淘汰顺序依次为使用所述最近最常使用算法的管理链表、使用所述近 期最少使用算法的管理链表和使用所述最不经常使用页置换算法的管理链表;
[0114] 当所述目标逻辑单元在最近的所述一个时间段内的全局访问特征为随机访问时, 调整所述管理链表的淘汰顺序依次为使用所述最近最常使用算法的管理链表、使用所述最 不经常使用页置换算法的管理链表和使用所述近期最少使用算法的管理链表。
[0115] 结合本发明实施例的第二方面,本发明实施例的第二方面的第十二种实现方式 中,所述缓存管理装置还包括:
[0116] 元数据缓存,用于将缓存所述目标逻辑单元的所述部分被访问的数据块在所述时 间窗内的访问信息,其中,所述元数据缓存采用近期最少使用算法进行管理;
[0117] 所述第二获取模块具体用于根据所述元数据缓存中所有被访问的数据块在所述 一个时间段内的访问特征获取所述目标逻辑单元在所述时间段内的全局访问特征。
[0118] 结合本发明实施例的第二方面,本发明实施例的第二方面的第十三种实现方式 中,所述缓存具体用于 :
[0119] 获取所述目标逻辑单元中当前要访问的数据在最近一个所述时间窗内的访问特 征;
[0120] 在缓存内容中查找所述当前要访问的数据;
[0121] 当所述缓存未命中所述当前要访问的数据,且所述当前要访问的数据在最近一个 时间窗内的访问特征为顺序访问时,缓存从硬盘中获取并存储所述当前要访问的数据以及 预置数据,其中所述预置数据为所述目标逻辑单元中地址位于所述当前要访问的数据之后 且与所述当前要访问的数据的地址连续的预置范围内的数据。
[0122] 结合本发明实施例的第二方面,本发明实施例的第二方面的第十四种实现方式 中,所述缓存具体用于 :
[0123] 获取所述目标逻辑单元中当前要访问的数据在最近一个所述时间窗内的访问特 征;
[0124] 在缓存内容中查找所述当前要访问的数据;
[0125] 当所述缓存命中所述当前要访问的数据但未存储有预置数据,且所述当前要访问 的数据在最近一个所述时间窗内的访问特征为顺序访问时,从硬盘中获取并存储所述预置 数据,其中所述预置数据为所述目标逻辑单元中地址位于所述当前要访问的数据之后且与 所述当前要访问的数据地址连续的预置范围内的数据。
[0126] 本发明实施例第三方面提供一种缓存管理设备,包括:
[0127] 处理器,用于记录目标逻辑单元中被访问的数据块在时间窗内的访问信息,其中 所述目标逻辑单元中的逻辑线性空间被划分为等大小的数据块;
[0128] 所述处理器还用于根据所述目标逻辑单元中被访问的数据块在时间窗内的访问 信息获取所述被访问的数据块在所述时间窗内的访问特征;
[0129] 所述处理器还用于根据所述目标逻辑单元中的至少部分被访问的数据块在一个 时间段内的访问特征获取所述目标逻辑单元在所述时间段内的全局访问特征,其中所述时 间段包括至少一个所述时间窗;
[0130] 缓存,用于根据所述被访问的数据块的访问特征和所述目标逻辑单元的全局访问 特征对所述目标逻辑单元中的数据块进行缓存和管理。
[0131] 从以上技术方案可以看出,本发明实施例具有以下优点:
[0132] 本实施例中,通过目标逻辑单元中被访问的数据块在时间窗内的访问信息来获取 该数据块在该时间窗内的访问特征,并根据所述目标逻辑单元的至少部分被访问的数据块 在一个时间段内的访问特征获取所述目标逻辑单元在所述时间段内的全局访问特征,这 样,能够较准确地获取每个被访问的数据块的局部访问模式以及目标逻辑单元的全局访问 模式,以便后续缓存能够根据目标逻辑单元中的各被访问的数据块的局部访问模式和目标 逻辑单元的全局访问模式进行对应管理,提高缓存的淘汰效率,进而提高缓存的命中率。

【专利附图】

【附图说明】
[0133] 图1为本发明的缓存管理方法的一个实施例的流程图;
[0134] 图2为本发明的缓存管理方法的另一个实施例的流程图;
[0135] 图3为本发明的缓存管理方法的另一个实施例的流程图;
[0136] 图4为本发明的缓存管理方法的另一个实施例的流程图;
[0137] 图5为本发明的缓存管理方法的另一个实施例的流程图;
[0138] 图6为本发明的缓存管理装置的一个实施例的结构示意图;
[0139] 图7为本发明的缓存管理装置的另一个实施例的结构示意图;
[0140] 图8为本发明的缓存管理设备的一个实施例的结构示意图。

【具体实施方式】
[0141] 本发明实施例提供了一种缓存管理方法、缓存管理装置和缓存管理设备,能够提 高缓存的淘汰效率。
[0142] 为了使本【技术领域】的人员更好地理解本发明方案,下面将结合本发明实施例中的 附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是 本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术 人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范 围。
[0143] 本发明的说明书和权利要求书及上述附图中的术语"包括"和"具有"以及它们 的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系 统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或 对于这些过程、方法、系统、产品或设备固有的其它步骤或单元。
[0144] 本文中术语"和/或",仅仅是一种描述关联对象的关联关系,表示可以存在三种 关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另 夕卜,本文中字符"/",一般表示前后关联对象是一种"或"的关系。
[0145] 请参阅图1,本发明的一个实施例中缓存管理方法包括:
[0146] 101、记录目标逻辑单元中被访问的数据块在时间窗内的访问信息,其中所述目标 逻辑单元中的逻辑线性空间被划分为等大小的数据块;
[0147] 为方便操作和管理,目标逻辑单元(Logical Unit,LU)的逻辑线性空间被划分为 等大小的块,称每一块为数据块(Chunk)。优选的,该数据块的大小等于或者大于缓存中的 数据块的大小。当然,实际运用中,目标逻辑单元中划分的数据块的大小也可以小于缓存中 的数据块的大小,在此不作限制。
[0148] 目标逻辑单元中每一个数据块均有一个能够唯一标识该数据块的ID。例如,在 划分数据块时,将目标逻辑单元中地址范围为[0,4MB)数据作为Chunk 0,将地址范围为 [4MB,8MB)数据作为Chunk 1,以此类推。上述描述仅为举例,并不作限制。
[0149] 对目标逻辑单元中的任意一个数据块进行访问时,在访问的时间内被划分为依次 连续的一个个长度一致的时间窗,其中该时间窗的具体时长预先确定。举例来说,一个时间 窗的时长可以为1秒。需注意的是,在对一个数据块进行访问时,并不一定访问该数据块的 全部数据,有可能只访问该数据块中的部分数据。本实施例中,对数据块的访问包括读操作 和写操作。对一个数据块在一个时间窗内的访问信息也可以包括多个维度,例如在该时间 窗内对该数据块访问的次数、对该数据块内具体访问位置或者地址范围、访问总数据量等 等,在此不作限制,其中,该访问总数据量指的是该数据块在所述时间窗内每一次被访问的 地址范围叠加得到的和。
[0150] 实际运用中,为使得被访问的数据块在一个时间窗内的访问信息更加体现该被访 问的数据块的访问模式,在记录目标逻辑单元中被访问的数据块在一个时间窗内的访问信 息时,还可以将该时间窗之前的N个时间窗(包括该时间窗)的访问信息的加权值记为该 时间窗的访问信息,其中该N的具体数值以及每个时间窗的加权值的具体数值可以预先确 定。
[0151] 例如,以记录目标逻辑单元的其中一个数据块在当前时间窗内的对该数据块访问 的次数为例。首先,记录该数据块分别在该当前时间窗内以及该当前时间窗的前2个时间 窗内对该数据块分别访问的次数。其次,获取各时间窗的加权值,具体的,该当前时间窗的 加权值为50%,其余2个时间窗的加权值之和为50%,而该其余所有子时间窗的加权值可 以一致,也可以是随着时间的推进而增大。这样,所记录的该数据块在该当前时间窗内被访 问的次数最终等于在在每个时间窗内被访问的次数乘于与其对应的加权值的积的和。
[0152] 当然,以上描述仅为举例,并不作限制。
[0153] 实际运用中,在获取到目标逻辑单元中被访问的数据块在每一个时间窗内的访问 信息后,会将该访问信息存储到内存中,以便后续提取该访问信息进行计算。
[0154] 102、根据所述目标逻辑单元中被访问的数据块在时间窗内的访问信息获取所述 被访问的数据块在所述时间窗内的访问特征;
[0155] 获取到目标逻辑单元中被访问的数据块在一个时间窗内的访问信息之后,可以从 这些信息中分析出该时间窗内对该数据块的访问特征。具体举例来说,若在一个时间窗内, 一个数据块中的同一部分数据被访问的次数远远超过其他部分的数据,那么可确定该数据 块在该时间窗内的一个访问特征是重复度很高。当然,上述描述仅为举例,并不作限制。
[0156] 103、根据所述目标逻辑单元的至少被访问的部分数据块在一个时间段内的访问 特征获取所述目标逻辑单元在所述时间段内的全局访问特征,其中所述时间段包括至少一 个所述时间窗;
[0157] 对目标逻辑单元中的任意一个数据块进行访问时,时间被划分为依次连续的一个 个长度一致的时间窗。而在目标逻辑单元被访问时,时间被划分为依次连续的一个个长度 一致的时间段,其中一个时间段包括至少一个时间窗,且时间段内的各时间窗在时间上是 相互连续的。例如,一个时间段包括连续的三个时间窗。
[0158] 在每一个时间段结束时,开始获取目标逻辑单元在该刚结束的时间段内的全局访 问特征。目标逻辑单元中被访问的数据块在每一个时间窗内的访问信息都会被存储到内存 中。因此,在计算目标逻辑单元在一个时间段内的全局访问特征时,需先到内存中提取出该 时间段内的访问信息,来计算每一个数据块在该时间段内每个时间窗的访问特征,再根据 目标逻辑单元中每一个数据块在该时间段内的访问特征来分析目标逻辑单元在该时间段 内的全局访问特征。
[0159] 实际运用中,还将最近活跃的数据块的访问信息存储到缓存中,以减少访问信息 对内存资源的占用以及兼顾读写访问信息的效率,本文中,为将该缓存与用于存储目标逻 辑单元中的数据块的缓存区分开来,称该用于存储数据块访问信息的缓存为元数据缓存。 本实施例中,只将目标逻辑单元中部分最近被访问的数据块(例如占目标逻辑单元中的十 分之一的数据块)的访问信息放到元数据缓存中。该元数据缓存可以采用近期最少使用 (Least recently used,LRU)算法进行管理,来将最久不使用的访问信息淘汰,在下盘持久 保存。当然,该元数据缓存也可以采用其他算法进行管理,在此不作限制。
[0160] 在设有元数据缓存的情况中,在获取目标逻辑单元在一个时间段内的全局访问特 征时,仅从该元数据缓存中提取出该时间段内的元数据缓存所存储的部分数据块的访问信 息,来计算该部分数据块在该时间段内每个时间窗的访问特征,再根据该部分数据块在该 时间段内的访问特征来分析目标逻辑单元在该时间段内的全局访问特征。因此,本文中所 描述的目标逻辑单元的部分数据块指的就是该元数据缓存中所存储的所有数据块。
[0161] 这样,一方面提升了访问信息的获取效率,只读取元数据缓存而不需要下盘读取, 另一方面由于元数据缓存存储的是最近的访问信息,因此能够获取到更准确、更实时的目 标逻辑单元的全局访问特征。
[0162] 104、据所述被访问的数据块的访问特征和所述目标逻辑单元的全局访问特征对 所述目标逻辑单元中的数据块进行缓存和管理;
[0163] 本实施例中,缓存用于对目标逻辑单元中的数据进行缓存和管理。在缓存中数据 一般以相同大小的数据块进行管理,其中数据大小可以是4KB、1MB或者4MB等等。
[0164] 需注意的是,缓存中的数据块的大小不一定和目标逻辑单元中的数据块的大小一 致。在缓存对目标逻辑单元中的数据块进行缓存时,有可能目标逻辑单元中的一个数据块 被拆分成至少两个数据块,或者目标逻辑单元中的至少两个数据块被合并成一个数据块, 后者目标逻辑单元中的一个数据块的部分与相邻的数据块的部分被合并成一个数据块之 后再存储到缓存中。
[0165] 缓存对目标逻辑单元中的数据块进行缓存后,还对缓存内的数据块进行管理,例 如控制缓存内的数据块如何进行淘汰或者如何进行预取等等,在此不作限制。缓存对缓存 内的数据块进行管理时,是根据目标逻辑单元内被访问的数据块的访问特征以及目标逻辑 单元的全局访问特征来决定淘汰缓存内的哪些数据块或者对目标逻辑单元内的哪些数据 块进行预取的。
[0166] 本实施例中,通过目标逻辑单元中被访问的数据块在时间窗内的访问信息来获取 该数据块在该时间窗内的访问特征,并根据所述目标逻辑单元的至少部分被访问的数据块 在一个时间段内的访问特征获取所述目标逻辑单元在所述时间段内的全局访问特征,这 样,能够较准确地获取每个被访问的数据块的局部访问模式以及目标逻辑单元的全局访问 模式,以便后续缓存能够根据目标逻辑单元中的各被访问的数据块的局部访问模式和目标 逻辑单元的全局访问模式进行对应管理,提高缓存的淘汰效率,进而提高缓存的命中率。
[0167] 优选的,本实施例的步骤102中,在根据目标逻辑单元中被访问的数据块在时间 窗内的访问信息获取所述数据块在所述时间窗内的访问特征时,该访问特征属于顺序访 问、重复访问和随机访问中的一种。
[0168] 由于该三种特征已经能涵盖实际中绝大部分的访问特征,而且现在已有分别适合 该三种访问特征的缓存淘汰算法,数据块的访问特征分为该三种,能够方便缓存对该三种 数据块进行管理。
[0169] 进一步地,下面对本发明实施例缓存管理方法中各个步骤进行更加详细的描述。 请参阅图2,本发明的另一个实施例中缓存管理方法包括:
[0170] 201、记录目标逻辑单元中被访问的数据块在时间窗内的访问信息,其中所述目标 逻辑单元中的逻辑线性空间被划分为等大小的数据块;
[0171] 详细说明请参见图1所示实施例中步骤101的说明。
[0172] 202、标识所述目标逻辑单元中所述被访问的数据块在所述时间窗内被访问的页 面位图;
[0173] 每一个数据块是由至少一个页面组成,而且,在目标逻辑单元中,每一个数据块中 的每一个页面大小一致,例如都是4KB。在一个时间窗内,当一个数据块被访问时,并不一定 是该数据块内的所有数据被访问,可能只是其中的部分页面被访问。需注意的是,若一个页 面被重复访问,那么也需记录重复访问的次数。因此,记录一个数据块在一个时间窗内的访 问信息包括标识该数据块在该时间窗内被访问的页面位图,其中页面位图包括被访问的页 面以及其中每个被访问的页面被访问的总次数。
[0174] 203、记录所述目标逻辑单元中所述被访问的数据块在所述时间窗内的访问总数 据量,其中所述访问总数据量为数据块在所述时间窗内每一次被访问的地址范围叠加得到 的和;
[0175] 一个数据块在一个时间窗内的访问总数据量指的是该数据块在该时间窗内被访 问的地址范围的大小的总和,若有地址范围在该时间窗内被重复访问,那么每一次访问该 地址范围时该地址范围的大小都会被累计到该访问总数据量里。
[0176] 204、记录所述目标逻辑单元中所述被访问的数据块在所述时间窗内的访问次 数;
[0177] 205、根据所述目标逻辑单元中被访问的数据块在时间窗内的访问信息获取所述 被访问的数据块在所述时间窗内的访问特征;
[0178] 由上述可知,目标逻辑单元中被访问的数据块在一个时间窗内的访问信息包括该 被访问的数据块在一个时间窗内被访问的页面位图、访问总数据量以及访问次数。采用不 同的分析方法来对这些访问信息进行分析时所获取到的数据块在该时间窗内的访问特征 也会不同。下面对其中的一种具体方法进行描述:
[0179] 首先,根据所述页面位图计算所述每一个数据块在时间窗内被访问的地址总范围 R、非连续访问的个数N以及所述非连续访问之间的最大地址间距L ;
[0180] 现在以目标逻辑单元中其中一个数据块在其中一个时间窗的访问信息为例进行 说明。由于已经对该数据块在该时间窗内被访问的页面位图进行标识,那么对所有被访问 的页面的地址范围大小进行相加,即可得出该数据块在该时间窗内被访问的地址总范围R。 需注意的是,在进行相加时,对重复访问的页面的地址范围并不进行重复相加。具体举例 来说,一个数据块在一个时间窗内访问了两次,该两次访问的地址范围均为该数据块中的 [0MB,1MB),那么该数据块在该时间窗内被访问的地址总范围R为1MB。
[0181] 在该时间窗内,可以确定每一次访问该数据块时所访问的至少部分数据的地址, 其中该地址包括起始地址和长度,将该起始地址与该长度的和称为终止地址。若其中一次 访问的终止地址在另一次访问的起始地址之前且隔有一定间距,那么这两次访问之间是不 连续的。这样,可以从中确定出所有的地址不连续的访问,并记录非连续访问的个数N。需 注意的是,该非连续访问与访问时间无关,只与所访问的数据的地址相关。
[0182] 在确定非连续访问的个数N之后,也可以确定非连续访问之间的所有间距L,其中 每个间距为地址上最靠近的两次访问之间的间距,且该间距等于地址靠后的一次访问的起 始地址与地址靠前的一次访问的终止地址的差。例如,若该数据块在该时间窗内非连续访 问的个数为200,那么其中有199个间距。计算每一个间距的具体数值,并确定其中数值最 大的间距L。
[0183] 在计算出以上各参数后,当N大于或者等于第一预置数值且L小于第二预置数值 时,或者,当R占所述被访问的数据块的地址范围的比例大于或者等于第三预置数值时,确 定所述被访问的数据块在所述时间窗内的访问特征为顺序访问。
[0184] 具体举例来说,在一个时间窗内,当一个被访问的数据块的非连续访问达到200 个,并且非连续访问之间的最大间距小于8个页面大小时,确定该数据块在该时间窗内的 访问特征为顺序访问;或者,当该数据块在该时间窗内的访问覆盖率大于或者等于75%, 也即该数据块在该时间窗内被访问的范围占数据块的范围的比例大于或者等于75%时,确 定该数据块在该时间窗内的访问特征为顺序访问。
[0185] 当然,实际运用中,也可以通过其他方法来确定一个数据块在一个时间窗内的访 问特征为顺序访问,在此不作限制。
[0186] 进一步的,在一个时间窗内,当所述被访问的地址总范围R占所述数据块的地址 范围的比例小于第三预置数值,而且,所述访问总数据量与R的差与R的比值大于1时,确 定所述数据块在所述时间窗内的访问特征为重复访问。
[0187] 具体举例来说,当一个数据块在一个时间窗内满足以下所有条件时,确定该数 据块在该时间窗内的访问特征为重复访问:1、该数据块在该时间窗内的访问覆盖率小于 75%,也即该数据块在该时间窗内被访问的总地址范围R占数据块的地址范围的比例小于 75%,因此不满足顺序访问的条件;2、该数据块在该时间窗内的访问总数据量与R的差记 为访问重复数据量,该重复数据量与R的比值大于1。
[0188] 当然,实际运用中,也可以通过其他方法来确定一个数据块在一个时间窗内的访 问特征为重复访问,在此不作限制。
[0189] 通过上述方法可确定一个数据块在一个时间窗内的访问特征为顺序访问还是重 复访问,若都不满足该顺序访问和重复访问的所需的条件,那么可确定该数据块的访问特 征为随机访问。当然,实际运用中,也可以通过其他方法来确定一个数据块在一个时间窗内 的访问特征为随机访问,在此不作限制。
[0190] 其余详细说明请参见图1所示实施例中步骤102的说明。
[0191] 206、根据所述目标逻辑单元的至少被访问的部分数据块在一个时间段内的访问 特征获取所述目标逻辑单元在所述时间段内的全局访问特征,其中所述时间段包括至少一 个所述时间窗;
[0192] 由上述可知,在根据目标逻辑单元中被访问的数据块在每一个时间窗内的访问信 息获取所述被访问的数据块在所述时间窗内的访问特征时,该访问特征属于顺序访问、重 复访问和随机访问中的一种。采用不同的分析方法来对目标逻辑单元的至少部分被访问的 数据块在一个时间段内的访问特征进行分析时所获取到的目标逻辑单元在该时间段内的 全局访问特征也会不同。
[0193] 本实施例中,在一个时间段结束时,根据目标逻辑单元的至少部分被访问的数据 块在该时间段中的每一个时间窗内的访问特征确定该目标逻辑单元在该时间段内的全局 访问特征属于顺序访问、重复访问和随机访问中的其中一种。下面对其中的一种确定目标 逻辑单元在该时间段内的全局访问特征的具体方法进行描述:
[0194] 首先,统计目标逻辑单元的至少部分数据块中,在该时间段内访问特征为顺序访 问的数据块的数量,以及所述目标逻辑单元的至少部分数据块的数量。
[0195] 需注意的是,目标逻辑单元的至少部分被访问的数据块指的是用来分析目标逻辑 单元的全局访问特征的这部分被访问的数据块,例如元数据缓存中所存储的那部分数据 块,或者全部的被访问的数据块。统计该部分被访问的数据块中访问特征确定为顺序访问 的数据块的数量,以及这部分被访问的数据块的总数量。
[0196] 在计算出以上数据后,计算所述目标逻辑单元的顺序度,其中所述顺序度等于所 述至少部分被访问的数据块中,所述访问特征为顺序访问的数据块的数量与所述目标逻辑 单元的至少部分被访问的数据块的数量的比值。当所述目标逻辑单元的顺序度大于或者等 于第七预置数值(例如65%)时,确定所述目标逻辑单元在所述时间段内的全局访问特征 为顺序访问。
[0197] 当然,实际运用中,也可以通过其他方法来确定目标逻辑单元在一个时间段内的 全局访问特征为顺序访问,在此不作限制。
[0198] 进一步的,统计所述目标逻辑单元的至少部分被访问的数据块中,在所述时间段 内访问特征为重复访问的数据块的数量。计算目标逻辑单元的重复度,其中所述重复度等 于所述至少部分被访问的数据块中,所述访问特征为重复访问的数据块的数量与所述目标 逻辑单元的至少部分被访问的数据块的数量的比值。
[0199] 另外,还计算目标逻辑单元的聚簇度,其中该聚簇度为所述目标逻辑单元的至少 部分被访问的数据块在所述时间段内的访问次数均方差。具体来说,统计目标逻辑单元的 至少部分被访问的数据块的数量为n,以及该至少部分被访问的数据块(也即该η个数据 块)中每个数据块在该时间段内的访问次数为X iQ = 1,…,η),其中每个数据块在该时间 段内的访问次数Xi等于该数据块在该时间段内的所有时间窗内的访问次数之和。那么该 至少部分被访问的数据块的平均访问计数_

【权利要求】
1. 一种缓存管理方法,其特征在于,包括: 记录目标逻辑单元中被访问的数据块在时间窗内的访问信息,其中所述目标逻辑单元 中的逻辑线性空间被划分为等大小的数据块; 根据所述目标逻辑单元中被访问的数据块在时间窗内的访问信息获取所述被访问的 数据块在所述时间窗内的访问特征; 根据所述目标逻辑单元中的至少部分被访问的数据块在一个时间段内的访问特征获 取所述目标逻辑单元在所述时间段内的全局访问特征,其中所述时间段包括至少一个所述 时间窗; 根据所述被访问的数据块的访问特征和所述目标逻辑单元的全局访问特征对所述目 标逻辑单元中的数据块进行缓存和管理。
2. 根据权利要求1所述的缓存管理方法,其特征在于,所述根据所述目标逻辑单元中 被访问的数据块在时间窗内的访问信息获取所述被访问的数据块在所述时间窗内的访问 特征具体包括: 根据所述目标逻辑单元中所述被访问的数据块在所述时间窗内的访问信息确定所述 目标逻辑单元中所述被访问的数据块在所述时间窗内的访问特征属于顺序访问、重复访问 和随机访问中的其中一种。
3. 根据权利要求1所述的缓存管理方法,其特征在于,所述记录所述目标逻辑单元中 被访问的数据块在时间窗内的访问信息具体包括: 标识所述目标逻辑单元中所述被访问的数据块在所述时间窗内被访问的页面位图; 记录所述目标逻辑单元中所述被访问的数据块在所述时间窗内的访问总数据量,其中 所述访问总数据量为数据块在所述时间窗内每一次被访问的地址范围叠加得到的和; 记录所述目标逻辑单元中所述被访问的数据块在所述时间窗内的访问次数。
4. 根据权利要求3所述的缓存管理方法,其特征在于,所述根据所述目标逻辑单元中 被访问的数据块在时间窗内的访问信息获取所述被访问的数据块在所述时间窗内的访问 特征包括: 根据所述页面位图计算所述被访问的每一个数据块在所述时间窗内被访问的地址总 范围R、非连续访问的个数N以及所述非连续访问之间的最大地址间距L ; 在所述时间窗内,当N大于或者等于第一预置数值且L小于第二预置数值时,或者, 当R占所述被访问的数据块的地址范围的比例大于或者等于第三预置数值时, 确定所述被访问的数据块在所述时间窗内的访问特征为顺序访问。
5. 根据权利要求4所述的缓存管理方法,其特征在于,所述根据所述目标逻辑单元中 被访问的数据块在所述时间窗内的访问信息获取所述被访问的数据块在所述时间窗内的 访问特征还包括: 在所述时间窗内,当R占所述数据块的地址范围的比例小于第三预置数值时,而且, 所述访问总数据量与R的差与R的比值大于1时, 确定所述被访问的数据块在所述时间窗内的访问特征为重复访问。
6. 根据权利要求2所述的缓存管理方法,其特征在于,所述根据所述目标逻辑单元的 至少部分被访问的数据块在一个时间段内的访问特征获取所述目标逻辑单元在所述时间 段内的全局访问特征具体包括: 在所述时间段结束时,根据所述目标逻辑单元的所述至少部分被访问的数据块在所述 时间段中的所述时间窗内的访问特征确定所述目标逻辑单元在所述时间段内的全局访问 特征属于顺序访问、重复访问和随机访问中的其中一种。
7. 根据权利要求6所述的缓存管理方法,其特征在于,所述根据所述目标逻辑单元的 至少部分被访问的数据块在一个时间段内的访问特征获取所述目标逻辑单元在所述时间 段内的全局访问特征具体包括: 统计所述目标逻辑单元的所述至少部分被访问的数据块中,在所述时间段内访问特征 为顺序访问的数据块的数量,以及所述目标逻辑单元的所述至少部分被访问的数据块的数 量; 计算所述目标逻辑单元的顺序度,其中所述顺序度等于所述至少部分被访问的数据块 中,所述访问特征为顺序访问的数据块的数量与所述目标逻辑单元的所述至少部分被访问 的数据块的数量的比值; 当所述目标逻辑单元的顺序度大于或者等于第七预置数值时,确定所述目标逻辑单元 在所述时间段内的全局访问特征为顺序访问。
8. 根据权利要求7所述的缓存管理方法,其特征在于,所述根据所述目标逻辑单元的 至少部分被访问的数据块在一个时间段内的访问特征获取所述目标逻辑单元在所述时间 段内的全局访问特征具体包括: 统计所述目标逻辑单元的所述至少部分被访问的数据块中,在所述时间段内访问特征 为重复访问的数据块的数量; 计算所述目标逻辑单元的重复度,其中所述重复度等于所述至少部分被访问的数据块 中,所述访问特征为重复访问的数据块的数量与所述目标逻辑单元的所述至少部分被访问 的数据块的数量的比值; 统计所述目标逻辑单元的所述至少部分被访问的数据块在所述时间段内的访问次数 均方差; 当所述目标逻辑单元的顺序度小于所述第七预置数值,所述目标逻辑单元的重复度大 于或者等于第八预置数值,且所述均方差大于或者等于第九预置数值时,确定所述目标逻 辑单元在所述时间段内的全局访问特征为重复访问。
9. 根据权利要求1所述的缓存管理方法,其特征在于,所述根据所述被访问的数据块 的访问特征和所述目标逻辑单元的全局访问特征对所述目标逻辑单元中的数据块进行缓 存和管理具体包括: 获取所述目标逻辑单元中待缓存的数据块在最近的一个所述时间窗内的访问特征,其 中,缓存中包括至少两个管理链表,每个管理链表采用不同的淘汰算法; 根据所述待缓存的数据块的访问特征将所述待缓存的数据块分成待缓存的子数据 块; 根据所述待缓存的子数据块的访问特征与淘汰算法的对应关系,将所述待缓存的子数 据块分别插入管理链表中。
10. 根据权利要求9所述的缓存管理方法,其特征在于,所述待缓存的子数据块的访问 特征属于顺序访问、重复访问和随机访问中的其中一种; 所述缓存中包括三个管理链表,所述三个管理链表使用的淘汰算法分别为近期最少使 用算法、最不经常使用页置换算法、最近最常使用算法; 所述根据所述待缓存的子数据块的访问特征与淘汰算法的对应关系,将所述待缓存的 子数据块分别插入管理链表中具体包括: 当所述待缓存的子数据块的访问特征为顺序访问时,则将所述待缓存的子数据块插入 使用所述最近最常使用算法的链表中; 当所述待缓存的子数据块的访问特征为重复访问时,则将所述待缓存的子数据块插入 使用所述最不经常使用页置换算法的链表中; 当所述待缓存的子数据块的访问特征为随机访问时,则将所述待缓存的子数据块插入 使用近期最少使用算法的链表中。
11. 根据权利要求1所述的缓存管理方法,其特征在于,所述根据所述被访问的数据块 的访问特征和所述目标逻辑单元的全局访问特征对所述目标逻辑单元中的数据块进行缓 存和管理具体包括: 当检测到缓存中满足淘汰数据的条件时,获取所述目标逻辑单元在最近的所述一个时 间段内的全局访问特征,其中,所述缓存中包括至少两个管理链表,每个管理链表采用不同 的淘汰算法; 根据所述目标逻辑单元在最近的所述一个时间段内的全局访问特征调整所述缓存中 内管理链表的淘汰顺序。
12. 根据权利要求11所述的缓存管理方法,其特征在于,所述目标逻辑单元在最近的 所述一个时间段内的全局访问特征属于顺序访问、重复访问和随机访问中的其中一种; 所述缓存中包括三个管理链表,所述三个管理链表使用的淘汰算法分别为近期最少使 用算法、最不经常使用页置换算法、最近最常使用算法; 所述根据所述目标逻辑单元在最近的所述一个时间段内的全局访问特征调整所述缓 存内管理链表的淘汰顺序具体包括: 当所述目标逻辑单元在最近的所述一个时间段内的全局访问特征为顺序访问时,所述 缓存调整所述管理链表的淘汰顺序依次为使用所述最不经常使用页置换算法的管理链表、 使用所述近期最少使用算法的管理链表和使用所述最近最常使用算法的管理链表; 当所述目标逻辑单元在最近的所述一个时间段内的全局访问特征为重复访问时,所述 缓存调整所述管理链表的淘汰顺序依次为使用所述最近最常使用算法的管理链表、使用所 述近期最少使用算法的管理链表和使用所述最不经常使用页置换算法的管理链表; 当所述目标逻辑单元在最近的所述一个时间段内的全局访问特征为随机访问时,所述 缓存调整所述管理链表的淘汰顺序依次为使用所述最近最常使用算法的管理链表、使用所 述最不经常使用页置换算法的管理链表和使用所述近期最少使用算法的管理链表。
13. 根据权利要求1所述的缓存管理方法,其特征在于,所述方法还包括: 将所述目标逻辑单元的所述部分被访问的数据块在所述时间窗内的访问信息缓存到 元数据缓存中,所述元数据缓存采用近期最少使用算法进行管理; 所述根据所述目标逻辑单元中的至少部分被访问的数据块在一个时间段内的访问特 征获取所述目标逻辑单元在所述时间段内的全局访问特征具体包括: 根据所述元数据缓存中所有被访问的数据块在所述一个时间段内的访问特征获取所 述目标逻辑单元在所述时间段内的全局访问特征。
14. 一种缓存管理装置,其特征在于,包括: 记录模块,用于记录目标逻辑单元中被访问的数据块在时间窗内的访问信息,其中所 述目标逻辑单元中的逻辑线性空间被划分为等大小的数据块; 第一获取模块,用于根据所述目标逻辑单元中被访问的数据块在时间窗内的访问信息 获取所述被访问的数据块在所述时间窗内的访问特征; 第二获取模块,用于根据所述目标逻辑单元中的至少部分被访问的数据块在一个时间 段内的访问特征获取所述目标逻辑单元在所述时间段内的全局访问特征,其中所述时间段 包括至少一个所述时间窗; 缓存,用于根据所述被访问的数据块的访问特征和所述目标逻辑单元的全局访问特征 对所述目标逻辑单元中的数据块进行缓存和管理。
15. 根据权利要求14所述的缓存管理装置,其特征在于,所述第一获取模块具体用于 根据所述目标逻辑单元中所述被访问的数据块在所述时间窗内的访问信息确定所述目标 逻辑单元中所述被访问的数据块在所述时间窗内的访问特征属于顺序访问、重复访问和随 机访问中的其中一种。
16. 根据权利要求14所述的缓存管理装置,其特征在于,所述记录模块具体用于标识 所述目标逻辑单元中所述被访问的数据块在所述时间窗内被访问的页面位图;记录所述目 标逻辑单元中所述被访问的数据块在所述时间窗内的访问总数据量;记录所述目标逻辑单 元中所述被访问的数据块在所述时间窗内的访问次数;其中,所述访问总数据量为数据块 在所述时间窗内每一次被访问的地址范围叠加得到的和。
17. 根据权利要求16所述的缓存管理装置,其特征在于,所述第一获取模块具体用于 根据所述页面位图计算所述被访问的每一个数据块在所述时间窗内被访问的地址总范围 R、非连续访问的个数C以及所述非连续访问之间的最大地址间距L ;在所述时间窗内,当C 大于第一预置数值且L小于第二预置数值时,或者,当R占所述数据块的地址范围的比例大 于或者等于第三预置数值时,确定所述被访问的数据块在所述时间窗内的访问特征为顺序 访问。
18. 根据权利要求17所述的缓存管理装置,其特征在于,所述第一获取模块还用于在 所述时间窗内,当R占所述数据块的地址范围的比例小于第三预置数值时,而且,所述访问 总数据量与R的差与R的比值大于1时,确定所述被访问的数据块在所述时间窗内的访问 特征为重复访问。
19. 根据权利要求15所述的缓存管理装置,其特征在于,所述第二获取模块具体用于 在所述时间段结束时,根据所述目标逻辑单元的所述至少部分被访问的数据块在所述时间 段中的所述时间窗内的访问特征确定所述目标逻辑单元在所述时间段内的全局访问特征 属于顺序访问、重复访问和随机访问中的其中一种。
20. 根据权利要求19所述的缓存管理装置,其特征在于,所述第二获取模块具体用于 统计所述目标逻辑单元的所述至少部分被访问的数据块中,在所述时间段内访问特征为顺 序访问的数据块的数量,以及所述目标逻辑单元的所述至少部分被访问的数据块的数量; 计算所述目标逻辑单元的顺序度,其中所述顺序度等于所述至少部分被访问的数据块中, 所述访问特征为顺序访问的数据块的数量与所述目标逻辑单元的所述至少部分被访问的 数据块的数量的比值;当所述目标逻辑单元的顺序度大于或者等于第七预置数值时,确定 所述目标逻辑单元在所述时间段内的全局访问特征为顺序访问。
21. 根据权利要求20所述的缓存管理装置,其特征在于,所述第二获取模块具体用于 统计所述目标逻辑单元的所述至少部分被访问的数据块中,在所述时间段内访问特征为重 复访问的数据块的数量;计算所述目标逻辑单元的重复度,其中所述重复度等于所述至少 部分被访问的数据块中,所述访问特征为重复访问的数据块的数量与所述目标逻辑单元的 所述至少部分被访问的数据块的数量的比值;统计所述目标逻辑单元的所述至少部分被访 问的数据块在所述时间段内的访问次数均方差;当所述目标逻辑单元的顺序度小于所述第 七预置数值,所述目标逻辑单元的重复度大于或者等于第八预置数值,且所述均方差大于 或者等于第九预置数值时,确定所述目标逻辑单元在所述时间段内的全局访问特征为重复 访问。
22. 根据权利要求14所述的缓存管理装置,其特征在于,所述缓存中包括至少两个管 理链表,每个管理链表采用不同的淘汰算法; 所述缓存具体用于获取所述目标逻辑单元中待缓存的数据块在最近的一个所述时间 窗内的访问特征;根据所述待缓存的数据块的访问特征将所述待缓存的数据块分成待缓存 的子数据块;根据所述待缓存的子数据块的访问特征与淘汰算法的对应关系,将所述待缓 存的子数据块分别插入管理链表中。
23. 根据权利要求22所述的缓存管理装置,其特征在于,所述待缓存的子数据块的访 问特征属于顺序访问、重复访问和随机访问中的其中一种; 所述缓存中包括三个管理链表,所述三个管理链表使用的淘汰算法分别为近期最少使 用算法、最不经常使用页置换算法、最近最常使用算法; 所述缓存具体用于当所述待缓存的子数据块的访问特征为顺序访问时,将所述待缓存 的子数据块插入使用所述最近最常使用算法的链表中;当所述待缓存的子数据块的访问特 征为重复访问时,将所述待缓存的子数据块插入使用所述最不经常使用页置换算法的链表 中;当所述待缓存的子数据块的访问特征为随机访问时,将所述待缓存的子数据块插入使 用近期最少使用算法的链表中。
24. 根据权利要求14所述的缓存管理装置,其特征在于,所述缓存具体用于当检测到 所述缓存中满足淘汰数据的条件时,获取所述目标逻辑单元在最近的所述一个时间段内的 全局访问特征;根据所述目标逻辑单元在最近的所述一个时间段内的全局访问特征调整所 述缓存中内管理链表的淘汰顺序;其中,所述缓存中包括至少两个管理链表,每个管理链表 采用不同的淘汰算法。
25. 根据权利要求24所述的缓存管理装置,其特征在于,所述目标逻辑单元在最近的 所述一个时间段内的全局访问特征属于顺序访问、重复访问和随机访问中的其中一种; 所述缓存中包括三个管理链表,所述三个管理链表使用的淘汰算法分别为近期最少使 用算法、最不经常使用页置换算法、最近最常使用算法; 所述缓存具体用于当所述目标逻辑单元在最近的所述一个时间段内的全局访问特征 为顺序访问时,调整所述管理链表的淘汰顺序依次为使用所述最不经常使用页置换算法的 管理链表、使用所述近期最少使用算法的管理链表和使用所述最近最常使用算法的管理链 表; 当所述目标逻辑单元在最近的所述一个时间段内的全局访问特征为重复访问时,调整 所述管理链表的淘汰顺序依次为使用所述最近最常使用算法的管理链表、使用所述近期最 少使用算法的管理链表和使用所述最不经常使用页置换算法的管理链表; 当所述目标逻辑单元在最近的所述一个时间段内的全局访问特征为随机访问时,调整 所述管理链表的淘汰顺序依次为使用所述最近最常使用算法的管理链表、使用所述最不经 常使用页置换算法的管理链表和使用所述近期最少使用算法的管理链表。
26. 根据权利要求14所述的缓存管理装置,其特征在于,所述缓存管理装置还包括: 元数据缓存,用于缓存所述目标逻辑单元的所述部分被访问的数据块在所述时间窗内 的访问信息,其中,所述元数据缓存采用近期最少使用算法进行管理; 所述第二获取模块具体用于根据所述元数据缓存中所有被访问的数据块在所述一个 时间段内的访问特征获取所述目标逻辑单元在所述时间段内的全局访问特征。
27. -种缓存管理设备,其特征在于,包括: 处理器,用于记录目标逻辑单元中被访问的数据块在时间窗内的访问信息,其中所述 目标逻辑单元中的逻辑线性空间被划分为等大小的数据块; 所述处理器还用于根据所述目标逻辑单元中被访问的数据块在时间窗内的访问信息 获取所述被访问的数据块在所述时间窗内的访问特征; 所述处理器还用于根据所述目标逻辑单元中的至少部分被访问的数据块在一个时间 段内的访问特征获取所述目标逻辑单元在所述时间段内的全局访问特征,其中所述时间段 包括至少一个所述时间窗; 缓存,用于根据所述被访问的数据块的访问特征和所述目标逻辑单元的全局访问特征 对所述目标逻辑单元中的数据块进行缓存和管理。
【文档编号】G06F12/08GK104239233SQ201410484496
【公开日】2014年12月24日 申请日期:2014年9月19日 优先权日:2014年9月19日
【发明者】易新发, 覃伟峰, 王明迪 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1