CN103019963B - 一种高速缓存的映射方法及存储设备 - Google Patents

一种高速缓存的映射方法及存储设备 Download PDF

Info

Publication number
CN103019963B
CN103019963B CN201210590593.2A CN201210590593A CN103019963B CN 103019963 B CN103019963 B CN 103019963B CN 201210590593 A CN201210590593 A CN 201210590593A CN 103019963 B CN103019963 B CN 103019963B
Authority
CN
China
Prior art keywords
data
cache blocks
mapping
characteristic
data block
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.)
Expired - Fee Related
Application number
CN201210590593.2A
Other languages
English (en)
Other versions
CN103019963A (zh
Inventor
许保亮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangdong Gaohang Intellectual Property Operation Co ltd
Hebei Silicon Valley Chemical Co ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201210590593.2A priority Critical patent/CN103019963B/zh
Publication of CN103019963A publication Critical patent/CN103019963A/zh
Application granted granted Critical
Publication of CN103019963B publication Critical patent/CN103019963B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明公开了一种高速缓存的映射方法及存储设备,方法包括获取数据所在的数据块的特征数据,特征数据包括数据块所在的数据空间的标识和数据块在数据空间的数据块地址;利用至少两个哈希函数分别对特征数据进行计算,获得缓存空间中至少两个缓存块的缓存块地址;根据缓存块地址,获取至少两个缓存块的映射数据,映射数据中的映射特征数据用于记录缓存块所映射的数据块的特征数据;在至少两个映射数据中,查找映射特征数据与数据块的特征数据相同的映射数据;若找到映射特征数据与数据块的特征数据相同的映射数据,则对找到的映射数据所对应的缓存块进行操作。通过上述方式,本发明能够更均衡地使用缓存空间,提高缓存空间的使用寿命。

Description

一种高速缓存的映射方法及存储设备
技术领域
本发明涉及缓存调度技术领域,特别是涉及一种高速缓存的映射方法及存储设备。
背景技术
传统机械硬盘由机械部件构成,当收到系统的读写数据指令后,需要移动磁头到数据所在位置,这些操作均需要耗费时间。固态硬盘(SolidStateDisk、IDEFLASHDISK),是用固态电子芯片阵列制成的硬盘,没有任何机械部件,不需要寻找磁道操作,由地址转换层直接转换得到数据所在的地址,具有更好的读写性能。因此,固态硬盘相比于传统机械硬盘,固态硬盘的读写性能更好。但固态硬盘的价格比较昂贵,以及固态硬盘具有有限的擦除次数,使得固态硬盘一般只用作缓存。
现有技术中,基于固态硬盘的数据缓存策略为基于哈希表的组相联的缓存方案,即为:将整个固态硬盘硬盘空间逻辑上划分为多个地址连续、容量相等但较小的SET(块),数据空间也按相同的方法进行划分。采用一个哈希函数,用以计算数据在缓存空间的SET位置,然后,在一个SET内寻找可用的缓存空间,缓存数据。如果缓存空间有限,则需要对缓存空间的数据进行调度。具体来说,将某个块通过哈希函数映射到某个SET,最后,对数据的查找或读/写等操作就会在这个分割过后的较小的SET中进行。而在采用将固态硬盘分割成多SET的结构下,每个SET就是一个逻辑的使用空间。一旦某SET被频繁使用,就会带来很多的替换和擦除,这不仅会将频繁使用的数据逐出固态硬盘,影响读性能,而且,增加对某SET内的数据的替换和擦除次数,极大的影响了固态硬盘的使用寿命。
发明内容
本发明实施方式提供一种高速缓存的映射方法及存储设备,能够更均衡地使用缓存空间,提高缓存空间的使用寿命。
第一方面,提供一种高速缓存的映射方法,包括:获取数据所在的数据块的特征数据,特征数据包括数据块所在的数据空间的标识和数据块在所述数据空间的数据块地址,数据空间划分为多个数据块;利用至少两个哈希函数分别对特征数据进行计算,获得缓存空间中至少两个缓存块的缓存块地址,缓存空间划分为多个缓存块,缓存块的容量与数据块的容量相同;根据缓存块地址,获取至少两个缓存块的映射数据,映射数据包括映射特征数据,映射特征数据用于记录缓存块所映射的数据块的特征数据;在至少两个映射数据中,查找映射特征数据与数据块的特征数据相同的映射数据;若找到映射特征数据与数据块的特征数据相同的映射数据,则对找到的映射数据所对应的缓存块进行操作。
结合第一方面实现方式,在第一方面的第一种可能实现方式中,映射数据还包括状态值,状态值用于记录缓存块的状态;在至少两个映射数据中查找与数据块的特征数据相同的映射特征数据的步骤包括:在至少两个映射数据中,查找映射特征数据与数据块的特征数据相同,以及状态值为有效的映射数据,状态值为映射数据中用于记录缓存块状态的数据;若找到映射特征数据与数据块的特征数据相同的映射数据,则对找到的映射数据所对应的缓存块进行操作的步骤包括:若找到映射特征数据与数据块的特征数据相同,以及状态值为有效的映射数据,则对找到的映射数据所对应的缓存块进行操作。
结合第一方面的第一种可能实现方式,在第一方面的第二种可能实现方式中,方法还包括:若没有找到映射数据,则根据预设的调度策略从至少两个缓存块地址所对应的缓存块中选取一个缓存块;对选取的缓存块进行操作。
结合第一方面的第二种可能实现方式,在第一方面的第三种可能实现方式中,根据预设的调度策略从至少两个缓存块地址所对应的缓存块中选取一个缓存块的步骤之后,在对选取的缓存块进行操作的步骤之前,还包括:获取选取的缓存块所对应的映射数据;判断映射数据中的状态值是否有效;若映射数据中的状态值为有效,则将选取的缓存块中的内容写回映射数据中的映射特征数据所指示的数据空间的数据块中,并删除选取的缓存块中的内容;若映射数据中的状态值为无效,则删除选取的缓存块中的内容;对选取的缓存块进行操作的步骤包括:将数据块中的内容写入选取的缓存块,并将映射数据中的映射特征值置为数据块的特征数据,以及将状态值置为有效。
结合第一方面的第二种可能实现方式,在第一方面的第四种可能实现方式中,预设的调度策略包括先入先出队列策略、最近最少使用策略或者最不经常使用页置换策略。
结合第一方面的第一种可能实现方式,在第一方面的第五种可能实现方式中,对找到的映射数据对应的缓存块进行操作的步骤包括:将找到的映射数据中的状态值置为无效。
结合第一方面的第一种可能实现方式,在第一方面的第六种可能实现方式中,对找到的映射数据对应的缓存块进行操作的步骤包括:删除找到的映射数据对应的缓存块中的内容,并将数据块中的内容写入找到的映射数据对应的缓存块。
第二方面,提供一种存储设备,包括:第一获取模块,用于获取数据所在的数据块的特征数据,特征数据包括数据块所在的数据空间的标识和数据块在数据空间的数据块地址,数据空间划分为多个数据块;计算模块,用于利用至少两个哈希函数分别对特征数据进行计算,获得缓存空间中至少两个缓存块的缓存块地址,缓存空间划分为多个缓存块,缓存块的容量与数据块的容量相同;第二获模块,用于根据缓存块地址,获取至少两个缓存块的映射数据,映射数据包括映射特征数据,映射特征数据用于记录缓存块所映射的数据块的特征数据;查找模块,用于在至少两个映射数据中,查找映射特征数据与数据块的特征数据相同的映射数据;第一操作模块,用于在查找模块找到映射特征数据与数据块的特征数据相同的映射数据时,对找到的映射数据所对应的缓存块进行操作。
结合第二方面实现方式,在第二方面的第一种可能实现方式中,映射数据还包括状态值,状态值用于记录缓存块的状态;查找模块具体用于在至少两个映射数据中,查找映射特征数据与数据块的特征数据相同,以及状态值为有效的映射数据,状态值为映射数据中所记录缓存块的状态值;第一操作模块具体用于在查找模块找到映射特征数据与数据块的特征数据相同,以及状态值为有效的映射数据,则对找到的映射数据所对应的缓存块进行操作。
结合第二方面的第一种可能实现方式,在第二方面的第二种可能实现方式中,存储设备还包括:选取模块,用于在查找模块没有找到映射数据时,根据预设的调度策略从至少两个缓存块地址所对应的缓存块中选取一个缓存块;第二操作模块,用于对选取的缓存块进行操作。
结合第二方面的第二种可能实现方式,在第二方面的第三种可能实现方式中,存储设备还包括:第三获取模块,用于获取选取的缓存块所对应的映射数据;判断模块,用于判断映射数据中的状态值是否有效;回写删除模块,用于在判断模块判断到映射数据状态值为有效时,将选取的缓存块中的内容写回映射数据中的映射特征数据所指示的数据空间的数据块中,并删除选取的缓存块中的内容;删除模块,用在判断模块判断到映射数据中的状态值为无效时,删除选取的缓存块中的内容;第二操作模块具体用于数据块中的内容写入选取的缓存块,并将映射数据中的映射特征值置为数据块的特征数据,以及将状态值置为有效。
结合第二方面的第二种可能实现方式,在第二方面的第四种可能实现方式中,预设的调度策略包括先入先出队列策略、最近最少使用策略或者最不经常使用页置换策略。
结合第二方面的第一种可能实现方式,在第二方面的第五种可能实现方式中,第一操作模块具体用于在查找模块找到映射特征数据与数据块的特征数据相同,以及状态值为有效的映射数据时,将找到的映射数据中的状态值置为无效。
结合第二方面的第一种可能实现方式,在第二方面的第六种可能实现方式中,第一操作模块具体用于在查找模块找到映射特征数据与数据块的特征数据相同,以及状态值为有效的映射数据时,删除找到的映射数据对应的缓存块中的内容,并将数据块中的内容写入找到的映射数据对应的缓存块。
本发明实施方式:通过利用多个哈希函数分别对数据所在的数据块的特征数据进行计算,得到多个缓存块地址。由于多个哈希函数之间不存在关联,则多个缓存块地址之间也不存在关联,多个缓存块地址所对应的缓存块随机分布在缓存空间中。由于数据块对应有多个缓存块,每次将数据块中的内容调入缓存空间时,则可能使用不同缓存块来缓存块来缓存所述内容,使得缓存空间的使用更加均衡,提高缓存空间的使用寿命。
附图说明
图1是本发明高速缓存的映射方法第一实施方式的流程图;
图2是本发明高速缓存的映射方法第一实施方式中一个数据块对应多个缓存块、并且多个缓存块均为空闲的示意图;
图3是本发明高速缓存的映射方法第一实施方式中从数据块对应的多个空闲的缓存块中选取一个缓存块缓存数据块的内容的示意图;
图4是本发明高速缓存的映射方法第二实施方式的流程图;
图5是本发明高速缓存的映射方法第二实施方式中一个数据块对应多个缓存块,并且多个缓存块均被占用的示意图;
图6是本发明高速缓存的映射方法第二实施方式中从数据块对应的多个被占用的缓存块中选取一个缓存块缓存数据块的内容的示意图;
图7是本发明存储设备第一实施方式的结构图;
图8是本发明存储设备第二实施方式的结构图。
具体实施方式
请参阅图1、图2和图3,图1是本发明高速缓存的映射方法第一实施方式的流程图,图2是本发明高速缓存的映射方法第一实施方式中一个数据块对应多个缓存块、并且多个缓存块均为空闲的示意图,图3是本发明高速缓存的映射方法第一实施方式中从数据块对应的多个空闲的缓存块选取一个缓存块缓存数据块的内容的示意图。如图所示,所述方法包括:
步骤101:获取数据所在的数据块的特征数据,特征数据包括数据块所在的数据空间的标识和数据块在数据空间的数据块地址,数据空间划分为多个数据块;
数据空间用于存储数据。数据空间按照数据块的大小进行划分,例如:数据空间的容量为M,数据块的大小为N,则数据空间的数据块的数量为数据空间的标识为数据空间的唯一标记,用于区别不同的数据空间。
需要说明的是:特征数据为数据块的唯一标记,通过特征数据中的数据空间的标识和数据块的数据块地址就能够确定唯一的数据块。
步骤S102:利用至少两个哈希函数分别对特征数据进行计算,获得缓存空间中至少两个缓存块的缓存块地址,缓存空间划分为多个缓存块,缓存块的容量与数据块的容量相同;
缓存空间用于缓存数据,并且缓存空间的读写速度优于数据空间。通过缓存空间来缓存数据,当需要读数据时,直接从缓存空间中读数据,能够有效地提高读数据的速度,提升系统性能。其中,缓存空间按缓存块的大小进行划分,并且缓存块的容量与数据空间的数据块的容量相同,从而保证缓存块与数据块的容量对应关系。
哈希函数为把任意长度的输入,通过散列算法,变换成固定长度的输出的一种函数。通过哈希函数能够把容量较大的数据空间与容量较小的数据空间建立映射关系。在本发明实施方式中,采用了多个哈希函数建立数据空间与缓存空间的多种映射关系,就细化到缓存块与数据块而言,相当于,一个数据块对应有多个侯选的缓存块,一个数据块可与多个侯选的缓存块中的一个建立映射关系。进一步的,由于多个哈希函数之间不存在关联,则多个缓存块地址之间也不存在关联,多个缓存块地址所对应的缓存块随机分布在缓存空间中。
步骤S103:根据缓存块地址,获取至少两个缓存块的映射数据,映射数据包括映射特征数据,映射特征数据用于记录缓存块所映射的数据块的特征数据;
通过缓存块的映射数据中的映射特征数据来记录缓存块当前与哪个数据块建立了映射关系。若缓存块的映射数据中的映射特征数据记录有数据块的特征数据,说明当前缓存块被占用了;若缓存块的映射数据中的映射特征数据为空,或者为自定义的标记缓存块的状态为空闲状态的自定义值时,则说明当前缓存块的状态为空闲状态的。当然还可以用其他方式来标记缓存块的状态是空闲状态还占用状态,例如:映射数据包括状态值,通过状态值记录映射数据对应缓存块的状态,映射特征数据仅用来记录数据块的特征数据。
步骤S104:在至少两个映射数据中,查找映射特征数据与数据块的特征数据相同的映射数据,若找到映射特征数据与数据块的特征数据相同的映射数据,则进入步骤S105;
若找到映射特征数据与数据块的特征数据相同的映射数据,说明当前的数据块已经与缓存空间中一个缓存块建立映射关系,可以直接对该缓存块进行操作即可。
步骤S105:对找到的映射数据所对应的缓存块进行操作;
所述操作包括读操作、写操作或者删除操作,可根据实际情况,执行相应的操作。
在本发明实施方式中,通过利用多个哈希函数分别对数据所在的数据块的特征数据进行计算,得到多个缓存块地址。由于多个哈希函数之间不存在关联,则多个缓存块地址之间也不存在关联,多个缓存块地址所对应的缓存块随机分布在缓存空间中。由于数据块对应有多个缓存块,每次将数据块中的内容调入缓存空间时,则可能使用不同缓存块来缓存块来缓存所述内容,使得缓存空间的缓存块的使用更加均衡,提高缓存空间的使用寿命。
请参阅图2,图2是本发明高速缓存的映射方法第二实施方式的流程图。如图所示,所述方法包括:
步骤201:获取数据所在的数据块的特征数据,特征数据包括数据块所在的数据空间的标识和数据块在数据空间的数据块地址,数据空间划分为多个数据块;
数据空间用于存储数据,并且数据空间按照数据块的大小进行划分。需要注意的是:一个缓存空间可与多个数据空间建立映射关系。数据所在的数据块的具体位置,可通过数据块的特征数据中的数据空间的标识和数据块的数据块地址确定唯一的数据块。
步骤S202:利用至少两个哈希函数分别对特征数据进行计算,获得缓存空间中至少两个缓存块的缓存块地址,缓存空间划分为多个缓存块,缓存块的容量与数据块的容量相同;
缓存空间用于缓存数据,并且缓存空间的读写速度优于数据空间。通过缓存空间来缓存数据,能够提高数据的读写速度。缓存空间按缓存块的大小进行划分,并且缓存块的容量与数据空间的数据块的容量相同,从而保证缓存块与数据块的容量对应关系。
采用多个哈希函数建立数据空间与缓存空间的多种映射关系,使得一个数据块可对应有多个的缓存块。当需要缓存时,将从多个缓存块中选取一个缓存块来缓存数据。
步骤S203:根据缓存块地址,获取至少两个缓存块的映射数据,映射数据包括映射特征数据和状态值,映射特征数据用于记录缓存块所映射的数据块的特征数据,状态值用于记录缓存块的状态;
映射特征数据来记录缓存块当前映射的数据块的特征数,因此,通过映射特征数据,可获知缓存块所映射的数据块。
步骤S204:在至少两个映射数据中,查找映射特征数据与数据块的特征数据相同,以及状态值为有效的映射数据,若找到映射特征数据与数据块的特征数据相同,以及状态值为有效的映射数据,则进入步骤S205,否则进入步骤S206;
若找到映射特征数据与数据块的特征数据相同,以及状态值为有效的映射数据,则说明当前的数据块已经与映射数据对应的缓存块建立映射关系,可以直接对该缓存块进行操作即可;
若没有找到映射特征数据与数据块的特征数据相同,以及状态值为有效的映射数据,则说明当前的数据块尚没有与缓存空间中缓存块建立映射关系。
当然,实际应用中,映射数据也可仅包括映射特征数据。若映射数据中的映射特征数据记录有数据块的特征数据,则说明映射数据对应的缓存块被占用;若映射数据中的映射特征数据为空,或者为自定义标记缓存块的状态为空闲状态的自定义值时,则说明映射数据对应的缓存块的状态为空闲状态。
步骤S205:对找到的映射数据所对应的缓存块进行操作;
若所述操作为读操作,则步骤S205又可具体为:读找到的映射数据所对应的缓存块中的内容。
若所述操作为删除操作,则步骤S205又可具体为:将找到的映射数据中的状态值置为无效。
当需要删除缓存块的内容时,将缓存块的映射数据中的状态值置为无效即可。缓存块的映射数据中的状态值为无效,说明当前的缓存块的状态是空闲状态,没有与数据块建立映射关系。当需要使用到该缓存块时,才将缓存块中的内容删除,写入新的内容。通过这样的方式,能够进一步的减少对缓存块的擦除次数,提高缓存空间的使用寿命。当然,缓存块的映射数据也可以不包括状态值,当需要删除缓存块的内容时,直接将缓存块中的内容擦除,再将缓存块对应的映射数据中的映射特征数据置为空或者自定义值即可。
若所述操作为写操作,则步骤S205又可具体为:删除映射数据对应的缓存块中的内容,并将数据块中的内容写入映射数据对应的缓存块。
步骤S206:根据预设的调度策略从至少两个缓存块地址所对应的缓存块中选取一个缓存块;
其示意图可参阅图5和图6。
进一步的,预设的调度策略包括先入先出队列策略、最近最少使用策略或者最不经常使用页置换策略。其中,又可在缓存块对应的映射数据中设置统计数据,以统计缓存块的使用情况。预设的调度策略基于统计情况选取缓存块。
步骤S207:获取选取的缓存块所对应的映射数据;
步骤S208:判断映射数据中的状态值是否有效,若映射数据中的状态值为有效,则进入步骤S209,否则,进入步骤S210;
若映射数据中的状态值为有效,则说明所选取的缓存块被占用,当前所选取的缓存块与数据空间中的一个数据块存在映射关系。
若映射数据中的状态值为无效,则说明当前所选取的缓存块的状态为空闲状态。
步骤S209:将选取的缓存块中的内容写回映射数据中的映射特征数据所指示的数据空间的数据块中,并删除选取的缓存块中的内容;
由于选取的缓存块中缓存有其他数据块的内容,因此在向选取的缓存块写入新的数据块的内容时,需要预先将选取的缓存块所缓存的内容写回对应的数据块中。
步骤S210:删除选取的缓存块中的内容;
选取的缓存块对应的映射数据中的状态值为无效,说明选取的缓存块中的内容,已经为无效内容,直接擦除即可。
步骤S211:将数据块中的内容写入选取的缓存块,并将映射数据中的映射特征值置为数据块的特征数据,以及将状态值置为有效。
在本发明实施方式中,通过利用多个哈希函数分别对数据所在的数据块的特征数据进行计算,得到多个缓存块的缓存块地址。由于多个哈希函数之间不存在关联,则多个缓存块地址之间也不存在关联,多个缓存块地址所对应的缓存块随机分布在缓存空间中。当需要缓存数据块的数据时,从多个缓存块对应的映射数据查找映射特征数据与数据块的特征数据相同的映射数据,若找到映射特征数据与数据块的特征数据相同的映射数据,则使用找到的映射数据对应的缓存块来缓存数据块的内容,否则,根据预设的调度策略从多个缓存块选取一个来缓存数据块的内容,从而使得每次缓存数据块的数据时,数据块所映射的缓存块可能不同,使得缓存空间的使用更加均衡,提高缓存空间的使用寿命。
本发明又提供一种存储设备实施方式。请参阅图7,图7是本发明存储设备第一实施方式的结构图。如图所示,所述存储设备30包括:第一获取模块301、计算模块302、第二获取模块303、查找模块304和第一操作模块305。
第一获取模块301获取数据所在的数据块的特征数据,特征数据包括数据块所在的数据空间的标识和数据块在数据空间的数据块地址,数据空间划分为多个数据块。数据空间用于存储数据。计算模块302利用至少两个哈希函数分别对特征数据进行计算,获得缓存空间中至少两个缓存块的缓存块地址,缓存空间划分为多个缓存块,缓存块的容量与数据块的容量相同。缓存空间用于缓存数据,并且缓存空间的读写速度优于数据空间。缓存空间来缓存数据,能够提高数据的读写速度,提升系统性能。
第二获模块303根据缓存块地址,获取至少两个缓存块的映射数据,映射数据包括映射特征数据和状态值,映射特征数据用于记录缓存块所映射的数据块的特征数据,状态值用于记录缓存块的状态。查找模块304在至少两个映射数据中,查找映射特征数据与数据块的特征数据相同,以及状态值为有效的映射数据,状态值为映射数据中所记录缓存块的状态值。第一操作模块305在查找模块304找到映射特征数据与数据块的特征数据相同,以及状态值为有效的映射数据,则对找到的映射数据所对应的缓存块进行操作。
其中,映射数据包括映射特征数据和状态值,状态值记录映射数据对应的缓存块的状态,映射特征数据记录缓存块所述映射的数据块的特征数据。若状态值为有效,则映射数据对应的缓存块为占用状态,若状态值为无效,则映射数据对应的缓存块的状态为空闲状态。当然,实际应用中,映射数据也可仅包括映射特征数据。若映射数据中的映射特征数据记录有数据块的特征数据,则说明映射数据对应的缓存块被占用;若映射数据中的映射特征数据为空,或者为自定义标记缓存块的状态为空闲状态的自定义值时,则说明映射数据对应的缓存块的状态为空闲状态。则查找模块304又可具体为:在至少两个映射数据中,查找映射特征数据与数据块的特征数据相同的映射数据。第一操作模块305又可具体为:用于在查找模块找到映射特征数据与数据块的特征数据相同的映射数据,对找到的映射数据所对应的缓存块进行操作。
进一步的,若所述操作为删除操作,则第一操作模块305具体为在查找模块304找到映射特征数据与数据块的特征数据相同,以及状态值为有效的映射数据时,将找到的映射数据中的状态值置为无效。
若所述操作为写入操作,则第一操作模块305具体为在查找模块304找到映射特征数据与数据块的特征数据相同,以及状态值为有效的映射数据时,删除找到的映射数据对应的缓存块中的内容,并将数据块中的内容写入所述找到的映射数据对应的缓存块。
存储设备30还包括选取模块306、第三获取模块307、判断模块308、回写删除模块309、删除模块310以及第二操作模块。
选取模块306在查找模块304没有找到映射特征数据与数据块的特征数据相同,以及状态值为有效的映射数据时,根据预设的调度策略从至少两个缓存块地址所对应的缓存块中选取一个缓存块。预设的调度策略包括先入先出队列策略、最近最少使用策略或者最不经常使用页置换策略。第三获取模块307获取选取的缓存块所对应的映射数据。
判断模块308判断映射数据中的状态值是否有效。回写删除模块309在判断模块判断到映射数据状态值为有效时,将选取的缓存块中的内容写回映射数据中的映射特征数据所指示的数据空间的数据块中,并删除选取的缓存块中的内容。删除模块310用在判断模块308判断到映射数据中的状态值为无效时,删除选取的缓存块中的内容。第二操作模块311将数据块中的内容写入选取的缓存块,并将映射数据中的映射特征值置为数据块的特征数据,以及将状态值置为有效。
在本发明实施方式中,计算模块302利用多个哈希函数分别对数据所在的数据块的特征数据进行计算,得到多个缓存块地址。由于多个哈希函数之间不存在关联,则多个缓存块地址之间也不存在关联,多个缓存块地址所对应的缓存块随机分布在缓存空间中。查找模块304和选取模块306均从多个缓存块地址对应的缓存块选择一个合适缓存块来缓存数据块的内容。由于与数据块对应的缓存块的数量有多个,则每次缓存数据块的数据时,数据块所映射的缓存块可能不同,从而使得缓存空间的使用更加均衡,提高缓存空间的使用寿命。
请参阅图8,图8是本发明存储设备第一实施方式的结构图。如图所示,存储设备40包括处理器401、数据空间402、缓存空间403和总线404。处理器401、数据空间402和缓存空间403均与总线404连接。
处理器401获取数据所在的数据块的特征数据,特征数据包括数据块所在的数据空间402的标识和数据块在数据空间的数据块地址,数据空间402划分为多个数据块;利用至少两个哈希函数分别对特征数据进行计算,获得缓存空间403中至少两个缓存块的缓存块地址,缓存空间403划分为多个缓存块,缓存块的容量与数据块的容量相同;根据缓存块地址,获取至少两个缓存块的映射数据,映射数据包括映射特征数据,映射特征数据用于记录缓存块所映射的数据块的特征数据;在至少两个映射数据中,查找映射特征数据与数据块的特征数据相同的映射数据;若找到映射特征数据与数据块的特征数据相同的映射数据,则对找到映射数据所对应的缓存块进行操作。
以上所述仅为本发明的实施方式,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (14)

1.一种高速缓存的映射方法,其特征在于,包括:
获取数据所在的数据块的特征数据,所述特征数据包括所述数据块所在的数据空间的标识和数据块在所述数据空间的数据块地址,所述数据空间划分为多个所述数据块;
利用至少两个哈希函数分别对所述特征数据进行计算,获得缓存空间中至少两个缓存块对应的缓存块地址,所述缓存空间划分为多个所述缓存块,所述缓存块的容量与所述数据块的容量相同;
根据所述缓存块地址,获取至少两个所述缓存块的映射数据,所述映射数据包括映射特征数据,所述映射特征数据用于记录缓存块所映射的数据块的特征数据;
在所述至少两个映射数据中,查找映射特征数据与所述数据块的特征数据相同的映射数据;
若找到映射特征数据与所述数据块的特征数据相同的映射数据,则对所述找到的映射数据所对应的缓存块进行操作。
2.根据权利要求1所述的方法,其特征在于,所述映射数据还包括状态值,所述状态值用于记录缓存块的状态;
在所述至少两个映射数据中查找与所述数据块的特征数据相同的映射特征数据的步骤包括:
在所述至少两个映射数据中,查找映射特征数据与所述数据块的特征数据相同,以及状态值为有效的映射数据;
若找到映射特征数据与所述数据块的特征数据相同的映射数据,则对所述找到的映射数据所对应的缓存块进行操作的步骤包括:
若找到所述映射特征数据与所述数据块的特征数据相同,以及所述状态值为有效的映射数据,则对所述找到的映射数据所对应的缓存块进行操作。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
若没有找到所述映射数据,则根据预设的调度策略从所述至少两个缓存块地址所对应的缓存块中选取一个缓存块;
对所述选取的缓存块进行操作。
4.根据权利要求3所述的方法,其特征在于,对所述选取的缓存块进行操作的步骤之前,还包括:
获取所述选取的缓存块所对应的映射数据;
判断所述映射数据中的状态值是否有效;
若所述映射数据中的状态值为有效,则将所述选取的缓存块中的内容写回所述映射数据中的映射特征数据所指示的数据空间的数据块中,并删除所述选取的缓存块中的内容;
若所述映射数据中的状态值为无效,则删除所述选取的缓存块中的内容;
所述对所述选取的缓存块进行操作的步骤包括:
将所述数据块中的内容写入所述选取的缓存块,并将所述映射数据中的映射特征值置为所述数据块对应的特征数据,以及将所述状态值置为有效。
5.根据权利要求3所述的方法,其特征在于,所述预设的调度策略包括先入先出队列策略、最近最少使用策略或者最不经常使用页置换策略。
6.根据权利要求2所述的方法,其特征在于,若找到所述映射特征数据与所述数据块的特征数据相同,以及所述状态值为有效的映射数据,则对所述找到的映射数据所对应的缓存块进行操作的步骤包括:
若找到所述映射特征数据与所述数据块的特征数据相同,以及所述状态值为有效的映射数据,则将所述找到的映射数据中的状态值置为无效。
7.根据权利要求2所述的方法,其特征在于,若找到所述映射特征数据与所述数据块的特征数据相同,以及所述状态值为有效的映射数据,则对所述找到的映射数据所对应的缓存块进行操作的步骤包括:
若找到所述映射特征数据与所述数据块的特征数据相同,以及所述状态值为有效的映射数据,则删除所述找到的映射数据对应的缓存块中的内容,并将所述数据块中的内容写入所述找到的映射数据对应的缓存块。
8.一种存储设备,其特征在于,包括:
第一获取模块,用于获取数据所在的数据块的特征数据,所述特征数据包括所述数据块所在的数据空间的标识和数据块在所述数据空间的数据块地址,所述数据空间划分为多个所述数据块;
计算模块,用于利用至少两个哈希函数分别对所述特征数据进行计算,获得缓存空间中至少两个缓存块的缓存块地址,所述缓存空间划分为多个所述缓存块,所述缓存块的容量与所述数据块的容量相同;
第二获模块,用于根据所述缓存块地址,获取至少两个所述缓存块的映射数据,所述映射数据中的映射特征数据用于记录缓存块所映射的数据块的特征数据;
查找模块,用于在所述至少两个映射数据中,查找映射特征数据与所述数据块的特征数据相同的映射数据;
第一操作模块,用于在所述查找模块找到映射特征数据与所述数据块的特征数据相同的映射数据时,对所述找到的映射数据所对应的缓存块进行操作。
9.根据权利要求8所述的存储设备,其特征在于,所述映射数据还包括状态值,所述状态值用于记录缓存块的状态;
所述查找模块具体用于在所述至少两个映射数据中,查找映射特征数据与所述数据块的特征数据相同,以及状态值为有效的映射数据,所述状态值为映射数据中所记录缓存块的状态值;
所述第一操作模块具体用于在所述查找模块找到所述映射特征数据与所述数据块的特征数据相同,以及所述状态值为有效的映射数据,则对所述找到的映射数据所对应的缓存块进行操作。
10.根据权利要求9所述的存储设备,其特征在于,所述存储设备还包括:
选取模块,用于在所述查找模块没有找到所述映射数据时,根据预设的调度策略从所述至少两个缓存块地址所对应的缓存块中选取一个缓存块;
第二操作模块,用于对所述选取的缓存块进行操作。
11.根据权利要求10所述的存储设备,其特征在于,所述存储设备还包括:
第三获取模块,用于获取所述选取的缓存块所对应的映射数据;
判断模块,用于判断所述映射数据中的状态值是否有效;
回写删除模块,用于在所述判断模块判断到映射数据状态值为有效时,将所述选取的缓存块中的内容写回所述映射数据中的映射特征数据所指示的数据空间的数据块中,并删除所述选取的缓存块中的内容;
删除模块,用在所述判断模块判断到所述映射数据中的状态值为无效时,删除所述选取的缓存块中的内容;
第二操作模块具体用于将所述数据块中的内容写入所述选取的缓存块,并将所述映射数据中的映射特征值置为所述数据块对应的特征数据,以及将所述状态值置为有效。
12.根据权利要求10所述的存储设备,其特征在于,所述预设的调度策略包括先入先出队列策略、最近最少使用策略或者最不经常使用页置换策略。
13.根据权利要求9所述的存储设备,其特征在于,所述第一操作模块具体用于在所述查找模块找到所述映射特征数据与所述数据块的特征数据相同,以及所述状态值为有效的映射数据时,将所述找到的映射数据中的状态值置为无效。
14.根据权利要求9所述的存储设备,其特征在于,所述第一操作模块具体用于在所述查找模块找到所述映射特征数据与所述数据块的特征数据相同,以及所述状态值为有效的映射数据时,删除所述找到的映射数据对应的缓存块中的内容,并将所述数据块中的内容写入所述找到的映射数据对应的缓存块。
CN201210590593.2A 2012-12-31 2012-12-31 一种高速缓存的映射方法及存储设备 Expired - Fee Related CN103019963B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210590593.2A CN103019963B (zh) 2012-12-31 2012-12-31 一种高速缓存的映射方法及存储设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210590593.2A CN103019963B (zh) 2012-12-31 2012-12-31 一种高速缓存的映射方法及存储设备

Publications (2)

Publication Number Publication Date
CN103019963A CN103019963A (zh) 2013-04-03
CN103019963B true CN103019963B (zh) 2016-07-06

Family

ID=47968588

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210590593.2A Expired - Fee Related CN103019963B (zh) 2012-12-31 2012-12-31 一种高速缓存的映射方法及存储设备

Country Status (1)

Country Link
CN (1) CN103019963B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10031802B2 (en) 2013-06-28 2018-07-24 Intel Corporation Embedded ECC address mapping
CN105528181B (zh) * 2015-12-04 2019-05-10 浪潮(北京)电子信息产业有限公司 一种数据io散列的方法
CN108090087B (zh) * 2016-11-23 2020-08-21 上海泓智信息科技有限公司 文件处理方法及装置
CN106776361B (zh) * 2017-03-10 2020-07-10 安徽大学 一种面向大规模非易失性存储介质的缓存方法和系统
CN111443874B (zh) * 2020-03-28 2021-07-27 华中科技大学 基于内容感知的固态盘内存缓存管理方法、设备及固态盘

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1845059A (zh) * 2005-04-08 2006-10-11 国际商业机器公司 具有共享的高速缓存地址空间的数据存储系统及其操作方法
US7685312B1 (en) * 2005-02-10 2010-03-23 Sun Microsystems, Inc. Resource location by address space allocation
JP4688946B2 (ja) * 2009-06-15 2011-05-25 富士通株式会社 スイッチ及びアドレス学習方法
CN102650972A (zh) * 2012-04-06 2012-08-29 国民技术股份有限公司 数据存储方法、装置及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7685312B1 (en) * 2005-02-10 2010-03-23 Sun Microsystems, Inc. Resource location by address space allocation
CN1845059A (zh) * 2005-04-08 2006-10-11 国际商业机器公司 具有共享的高速缓存地址空间的数据存储系统及其操作方法
JP4688946B2 (ja) * 2009-06-15 2011-05-25 富士通株式会社 スイッチ及びアドレス学習方法
CN102650972A (zh) * 2012-04-06 2012-08-29 国民技术股份有限公司 数据存储方法、装置及系统

Also Published As

Publication number Publication date
CN103019963A (zh) 2013-04-03

Similar Documents

Publication Publication Date Title
CN110825748B (zh) 利用差异化索引机制的高性能和易扩展的键值存储方法
US11188262B2 (en) Memory system including a nonvolatile memory and a volatile memory, and processing method using the memory system
CN102662856B (zh) 一种固态硬盘及其存取方法
CN103176916B (zh) 闪存及闪存的地址转换方法
CN107368436B (zh) 一种联合地址映射表的闪存冷热数据分离存储方法
US20140025864A1 (en) Data storage device and operating method thereof
CN102981963B (zh) 一种固态盘的闪存转换层的实现方法
US10740251B2 (en) Hybrid drive translation layer
CN103019963B (zh) 一种高速缓存的映射方法及存储设备
CN101645043B (zh) 写数据的方法、读数据的方法及存储设备
CN104794070A (zh) 基于动态非覆盖raid技术的固态闪存写缓存系统及方法
CN109582593B (zh) 一种基于计算的ftl地址映射读、写方法
CN109446117B (zh) 一种固态硬盘页级闪存转换层设计方法
TW201301030A (zh) 在一記憶體裝置中減少次要位址表檢查之快速轉譯指示器
US20110004720A1 (en) Method and apparatus for performing full range random writing on a non-volatile memory
CN109918316B (zh) 一种减少ftl地址映射空间的方法及其系统
CN102981979B (zh) 一种提高存储系统数据访问速度的方法
CN109388341A (zh) 一种基于Device Mapper的系统存储优化方法
KR101226600B1 (ko) 메모리 시스템 및 그의 메모리 맵핑 방법
CN102354301B (zh) 缓存分区方法
TWI417720B (zh) 快閃記憶體管理方法與計算機系統
CN105205008A (zh) 降低混合映射算法中日志块映射表内存资源占用的方法
CN103744864A (zh) 缓存数据读写的方法、系统及其固态硬盘
CN103885890A (zh) 高速缓冲存储器cache中cache块的替换处理方法和装置
KR101191650B1 (ko) 낸드 플래시 메모리에서 데이터의 주소를 사상시키는 장치 및 방법

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20200117

Address after: 510000 unit 2414-2416, building, No. five, No. 371, Tianhe District, Guangdong, China

Patentee after: GUANGDONG GAOHANG INTELLECTUAL PROPERTY OPERATION Co.,Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.

Effective date of registration: 20200117

Address after: 056000 Dongguan, Guangfu Town, Yongnian District, Handan City, Hebei Province

Patentee after: HEBEI SILICON VALLEY CHEMICAL Co.,Ltd.

Address before: 510000 unit 2414-2416, building, No. five, No. 371, Tianhe District, Guangdong, China

Patentee before: GUANGDONG GAOHANG INTELLECTUAL PROPERTY OPERATION Co.,Ltd.

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160706

Termination date: 20211231