公开/公告号CN103226522A
专利类型发明专利
公开/公告日2013-07-31
原文格式PDF
申请/专利权人 河南中天亿科电子科技有限公司;
申请/专利号CN201310123251.4
申请日2013-04-10
分类号
代理机构北京东方汇众知识产权代理事务所(普通合伙);
代理人刘淑芬
地址 450008 河南省郑州市金水区经三路66号2号楼1单元1801号
入库时间 2024-02-19 19:06:55
法律状态公告日
法律状态信息
法律状态
2022-08-19
专利权的转移 IPC(主分类):G06F12/121 专利号:ZL2013101232514 登记生效日:20220809 变更事项:专利权人 变更前权利人:河南中天亿科电子科技有限公司 变更后权利人:河南中安智科信息技术有限公司 变更事项:地址 变更前权利人:450008 河南省郑州市金水区经三路66号2号楼1单元1801号 变更后权利人:450000 河南省郑州市金水区宝瑞路115号河南省信息安全示范基地5号楼8层
专利申请权、专利权的转移
2016-07-06
授权
授权
2013-08-28
实质审查的生效 IPC(主分类):G06F12/12 申请日:20130410
实质审查的生效
2013-07-31
公开
公开
技术领域
本发明涉及存储技术,尤其涉及一种固态硬盘缓冲区的数据块置换方法 及装置。
背景技术
关于固态硬盘,目前有多种缓冲区置换方法和装置。
目前,各种方法和装置均存在的问题是处理非常复杂,并且多以数据页 为单元进行处理,消耗大量的时间和空间资源。
迄今为止,还未出现很好解决大量消耗资源等技术问题的技术方案。
发明内容
本发明的目的是提供一种固态硬盘缓冲区的数据块置换方法,具有可以 大量节约时间和空间资源的特点。
本发明采用下述技术方案:
本发明提供一种固态硬盘缓冲区的数据块置换方法,用于在时间段T内置 换所述固态硬盘缓一种固态硬盘缓冲区的数据块置换方法,用于在时间段T 内置换所述固态硬盘缓冲区的数据块,所述固态硬盘缓冲区包括至少2个数 据块,其特征在于,所述方法包括以下步骤:
a.每隔时间段T,获取固态硬盘缓冲区中各个数据块的命中长度Bi;
b.将所有数据块中的命中长度Bi数值最大的数据块作为替换块,置换 所有数据块中命中长度Bi的数值最小的数据块。
步骤a包括如下步骤:
a1.获取固态硬盘缓冲区中在时间t内的各个数据块的命中长度Bi,所述 时间段T=nt,n为自然数,第i个数据块的命中长度为Bi,i为自然数;
a2.获取固态硬盘缓冲区中在时间t内的所有被命中数据块的平均命中长 度η;
a3.每隔时间段t,比较各个数据块的命中长度Bi与所有被命中数据块的 平均命中长度η,若Bi大于或等于η则Bi自动加1,若Bi小于或等于η则Bi不 变;
a4.每隔时间段T,即每隔时间段nt,获取各个数据块的命中长度Bi。
本发明还提供了一种固态硬盘缓冲区的数据块置换装置,用于在时间段 T内置换所述固态硬盘缓冲区的数据块,所述固态硬盘缓冲区包括至少2个数 据块,其特征在于,所述装置包括:
a.数据块长度处理器,所述数据块长度处理器用于每隔时间段T,获取 固态硬盘缓冲区中各个数据块的命中长度Bi;
b.数据块置换器,所述数据块置换器用于将所有数据块中的命中长度 Bi数值最大的数据块作为替换块,置换所有数据块中命中长度Bi的数值最小 的数据块。
数据块长度处理器包括:
a1.t时间段数据块命中长度处理单元,所述数据块命中长度处理单元用 于获取固态硬盘缓冲区中在时间t内的各个数据块的命中长度Bi,所述时间段 T=nt,n为自然数,第i个数据块的命中长度为Bi,i为自然数;
a2.数据块命中平均长度处理单元,所述数据块命中平均长度处理单元 用于获取固态硬盘缓冲区中在时间t内的所有被命中数据块的平均命中长度 η;
a3.数据块比较单元,所述数据块比较单元用于每隔时间段t,比较各个 数据块的命中长度Bi与所有被命中数据块的平均命中长度η,若Bi大于或等 于η则Bi自动加1,若Bi小于或等于η则Bi不变;
a4.T时间段数据块命中长度处理单元,所述T时间段数据块命中长度 处理单元用于每隔时间段T,即每隔时间段nt,获取各个数据块的命中长度Bi。
本发明具有克服了以下2个问题:
其一,以数据页作为基本操作单位导致维护缓存的表很大且不易遍历访 问和置换;
其二,无法满足大量随机写操作的要求;具有相当大的实用特点。
附图说明
图1是本发明的方法步骤示意图;
图2是本发明的装置结构示意图。
具体实施方式
本发明的实施例提供本发明的目的是提供一种固态硬盘缓冲区的数据块 置换方法和装置,具有可以大量节约时间和空间资源的特点。
本发明采用下述技术方案:
本发明提供一种固态硬盘缓冲区的数据块置换方法,用于在时间段T内置 换所述固态硬盘缓一种固态硬盘缓冲区的数据块置换方法,用于在时间段T 内置换所述固态硬盘缓冲区的数据块,所述固态硬盘缓冲区包括至少2个数 据块,其特征在于,所述方法包括以下步骤:
步骤S1.每隔时间段T,获取固态硬盘缓冲区中各个数据块的命中长度Bi;
步骤S2.将所有数据块中的命中长度Bi数值最大的数据块作为替换块,置 换所有数据块中命中长度Bi的数值最小的数据块。
步骤S1包括如下步骤:
S11.获取固态硬盘缓冲区中在时间t内的各个数据块的命中长度Bi,所 述时间段T=nt,n为自然数,第i个数据块的命中长度为Bi,i为自然数;
S12.获取固态硬盘缓冲区中在时间t内的所有被命中数据块的平均命中 长度η;
S13.每隔时间段t,比较各个数据块的命中长度Bi与所有被命中数据块的 平均命中长度η,若Bi大于或等于η则Bi自动加1,若Bi小于或等于η则Bi不 变;
S14.每隔时间段T,即每隔时间段nt,获取各个数据块的命中长度Bi。
本发明还提供了一种固态硬盘缓冲区的数据块置换装置,用于在时间段 T内置换所述固态硬盘缓冲区的数据块,所述固态硬盘缓冲区包括至少2个数 据块,其特征在于,所述装置包括:
a.数据块长度处理器1,所述数据块长度处理器1用于每隔时间段T, 获取固态硬盘缓冲区中各个数据块的命中长度Bi;
b.数据块置换器2,所述数据块置换器2用于将所有数据块中的命中 长度Bi数值最大的数据块作为替换块,置换所有数据块中命中长度Bi的数值 最小的数据块。
数据块长度处理器1包括:
a1.t时间段数据块命中长度处理单元,所述数据块命中长度处理单元用 于获取固态硬盘缓冲区中在时间t内的各个数据块的命中长度Bi,所述时间段 T=nt,n为自然数,第i个数据块的命中长度为Bi,i为自然数;
a2.数据块命中平均长度处理单元,所述数据块命中平均长度处理单元 用于获取固态硬盘缓冲区中在时间t内的所有被命中数据块的平均命中长度 η;
a3.数据块比较单元,所述数据块比较单元用于每隔时间段t,比较各个 数据块的命中长度Bi与所有被命中数据块的平均命中长度η,若Bi大于或等 于η则Bi自动加1,若Bi小于或等于η则Bi不变;
a4.T时间段数据块命中长度处理单元,所述T时间段数据块命中长度 处理单元用于每隔时间段T,即每隔时间段nt,获取各个数据块的命中长度Bi。
以下对本发明的实施例进行更详细说明。
固态硬盘数据块缓冲区置换方法主要分为数据页缓存操作和数据块缓存 操作两大部分。数据块中保护若干数据页。其中数据块空间的块大小定义为 与固态硬盘中闪存执行擦除操作的块大小相同。
本实施例设立一个全局变量C,每当发生一次数据块写操作请求C自动加 1,为缓冲区中数据块空间的每个数据块b关联了3个变量:L、M和N,其中 L表示b进入缓冲区的顺序(当时的计数值),否则为最近一次被命中的顺序, 被命中即指对数据块进行写操作;M是b的写操作计数器;N表示b最近两 次被命中之间对其它数据块进行写操作的次数,称为“命中长度”,记为B.
“数据块命中长度Bi”为,经过某个时间段,缓冲区数据块空间中的某 个数据块的命中长度。
数据页p命中长度的属于本领域技术人员所知的现有技术,本发明中不 再赘述,而数据块A的命中长度与该数据块所包含的数据页p的命中长度有 关。
数据块A命中长度的计算还需如下步骤。对数据块A的位置记法描述如 下:
现在假设数据块A中包含s个数据页(按照数据页地址的从小到达的顺 序依次记为p1,p2,…,ps)则:
数据块A在数据块序列中的第一个位置可以描述为向量
数据块A在数据块序列中的第二个位置可以描述为向量
对数据块A的两次位置所产生的“数据块命中长度Aij”的描述如下:
不难看出对Ai的处理是一个时间复杂度为O(nn)的处理,要占用非常大的 时间和空间,因此需要引入数据块矩阵精简对Ai的处理。
对数据块Ai的矩阵精简处理如下:
对数据块Ai的矩阵选择合适的阈值k,通过阈值k对于矩阵Ai中的元素进 行二维化;piqj≥k的全部置为1,对于piqj<k的全部置为0从而将Ai约简为这样中仅存在0或1两种值。
若设置k=1,则A12简化为
数据块命中长度A12的值为:
因此数据块Ai的命中长度为0。
而数据块平均命中长度η为,在某个时间段内,缓冲区中数据块空间内 的数据块序列“b1,b2,…,bn”中所有被命中的数据块的命中长度的平 均值。
例如,数据块的访问序列为:b1,b3,b4,b2,b3,则在访问第一个数 据块b3之后,C=2,L=1,M=1,N=0;访问第二个b3后,C=5,L=5,M=2,N=3。
假设访问缓冲区中数据块序列为“b1,b2,b2,b3,b2,b1”而言,并规定数 据块空间大小为6,初始状态为空.当访问最后一个b2时,可知在过去6次 访问中,b1在第6次访问时被命中,其命中长度B1=5,而b2在第2、第3 及第5次访问时被命中,其命中长度分别为0、0和1.可知该序列过去6次访 问的平均命中长度是η=(5+0+0+1)/5=1.
数据块缓存发生数据块置换的过程以及判别条件,当一定时间内,计算 出来的数据块序列中的各个数据块命中长度与数据Bi与数据块平均命中长度 η做比较,若Bi大于或等于η则Bi自动加1,反之则不变;当需要做置换时, 选择数据块序列中Bi数值最大的数据所对应的数据块作为替换块。
本发明具有克服了以下2个问题:
其一,以数据页作为基本操作单位导致维护缓存的表很大且不易遍历访 问和置换;
其二,无法满足大量随机写操作的要求;具有相当大的实用特点。
以上对本发明的具体实施例进行了描述,需要理解的是,本发明并不局 限于上述特定实施方式,本领域技术人员可以再所附权利要求的范围内做出 各种变形或修改。
机译: 用于使用工作缓冲区合并数据记录对数据块进行排序,同时从工作缓冲区顺序传输数据记录的排序处理方法和装置
机译: 一种使用DMA操作将数据块从CD-ROM磁盘选择性加载到缓冲区的设备
机译: 使用客户端访问顺序偏移量与缓冲区数据块偏移量之比的先行缓冲区替换方法