System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及闪存纠错,尤其涉及一种数据存储处理方法、装置、设备及存储介质。
技术介绍
1、分区命名空间固态硬盘(zone namespaces solid state disk,zns ssd)将命名空间划分为分区(zone),各分区在命名空间里线性分布。每个分区可以按任意顺序读取,但必须按顺序写入,以供保证在下刷后的数据范围之内,每个逻辑区块地址(logical blockaddress,lba)都有数据,不允许出现没有数据的逻辑区块地址。因此,现有基于zns技术的写数据是不存在数据空洞情况的。
2、采用zns技术写数据的方式虽然在一定程度上可以降低固态硬盘内部的写放大以及读写延迟,但却不够灵活。为提升数据写入灵活性,因此产生了支持数据随机写入的技术,例如分区随机写入区(zone random write area,zrwa)技术。zrwa协议允许用户在zns分区使能zrwa功能后形成的zrwa区域进行随机覆盖写,该方式虽然提升了数据写入的灵活性,但这种写特性由于没有严格按照顺序写数据,因而可能会造成在zrwa区域写数据时出现数据空洞的情况,进而导致zrwa区域写入的数据无法符合zns分区严格顺序写的要求。
技术实现思路
1、本专利技术的主要目的在于解决内存空间某些区域写入的数据可能存在数据空洞而造成数据无法下刷到闪存中的技术问题。
2、为解决上述技术问题,本专利技术第一方面提供了一种数据存储处理方法,包括:
3、在下刷内存空间的第一数据区域
4、判断所述第一地址范围是否大于最大数据块对应的基准地址范围;
5、若所述第一地址范围大于所述基准地址范围,则根据所述基准地址范围,将所述第一地址范围拆分为多个第二地址范围;
6、依次扫描各所述第二地址范围并判断是否存在数据块;
7、若当前扫描的第二地址范围内存在数据块,则根据各所述数据块对应的第三地址范围,更新所述第二地址范围内所有数据块对应的有效数据位标识的值;
8、根据所述有效数据位标识的值,确定当前扫描的第二地址范围内数据空洞的位置。
9、在本专利技术第一方面的第一种实现方式中,在所述依次扫描各所述第二地址范围并判断是否存在数据块之后,还包括:
10、若当前扫描的第二地址范围内不存在数据块,则确定当前扫描的第二地址范围全部为数据空洞,并更新当前扫描的第二地址范围对应的有效数据位标识的值。
11、在本专利技术第一方面的第二种实现方式中,所述依次扫描并判断各所述第二地址范围内是否存在数据块包括:
12、依次扫描所述第二地址范围内的数据块;
13、若所述第二地址范围内存在数据块的标签值,则确定所述第二地址范围内不存在数据块;
14、若所述第二地址范围内不存在数据块的标签值,则确定所述第二地址范围内存在数据块。
15、在本专利技术第一方面的第三种实现方式中,所述有效数据位标识由多个比特位组成,每个比特位分别对应数据块地址范围内的一个逻辑分区,每个比特位的值代表对应数据块地址范围内的逻辑分区存在有效数据或不存在有效数据。
16、在本专利技术第一方面的第四种实现方式中,所述数据存储处理方法还包括:
17、在下刷所述第一数据区域写入的数据时,获取待下刷数据块对应的有效数据位标识的值;
18、根据待下刷数据块对应的有效数据位标识的值,将所述待下刷数据块的所有数据空洞的位置对应的地址空间补0,得到所述第一数据区域的新数据块;
19、更新所述新数据块对应的有效数据位标识的值,并将所述新数据块挂入所述链表中。
20、在本专利技术第一方面的第五种实现方式中,所述数据区域处理方法还包括:
21、当检测到掉电事件时,将所述第一数据区域所有非对齐数据块的有效数据位标识的值保存到非易失性可读存储介质中;
22、根据所述有效数据位标识的值,确定对应非对齐数据块中未写入数据的逻辑分区,并对未写入数据的逻辑分区对应的内存地址补0以及更新所述非对齐数据块对应的有效数据位标识的值;
23、当检测到上电事件时,判断当前恢复的数据块在掉电之前是否为非对齐数据块;
24、若当前恢复的数据块在掉电之前为非对齐数据块,则将所述数据块对应的有效数据位标识的值更新为掉电之前对应的值。
25、在本专利技术第一方面的第六种实现方式中,采用一维数组记录各所述第一数据区域所在分区的分区id,采用二维数组记录各所述第一数据区域所有非对齐数据块掉电之前的有效数据位标识的值。
26、本专利技术第二方面提供一种数据存储处理装置,所述数据存储处理装置包括:
27、第一扫描模块,用于在下刷内存空间的第一数据区域写入的数据时,扫描链表上写入数据的数据块对应的第一地址范围;
28、判断模块,用于判断所述第一地址范围是否大于最大数据块对应的基准地址范围;
29、拆分模块,用于若所述第一地址范围大于所述基准地址范围,则根据所述基准地址范围,将所述第一地址范围拆分为多个第二地址范围;
30、第二扫描模块,用于依次扫描各所述第二地址范围并判断是否存在数据块;
31、标识模块,用于若当前扫描的第二地址范围内存在数据块,则根据各所述数据块对应的第三地址范围,更新所述第二地址范围内所有数据块对应的有效数据位标识的值;根据所述有效数据位标识的值,确定当前扫描的第二地址范围内数据空洞的位置。
32、在本专利技术第二方面的第一种实现方式中,所述标识模块还用于:
33、若当前扫描的第二地址范围内不存在数据块,则确定当前扫描的第二地址范围全部为数据空洞,并更新当前扫描的第二地址范围对应的有效数据位标识的值。
34、在本专利技术第二方面的第二种实现方式中,所述扫描模块具体用于:
35、依次扫描所述第二地址范围内的数据块;
36、若所述第二地址范围内存在数据块的标签值,则确定所述第二地址范围内不存在数据块;
37、若所述第二地址范围内不存在数据块的标签值,则确定所述第二地址范围内存在数据块。
38、在本专利技术第二方面的第三种实现方式中,所述有效数据位标识由多个比特位组成,每个比特位分别对应数据块地址范围内的一个逻辑分区,每个比特位的值代表对应数据块地址范围内的逻辑分区存在有效数据或不存在有效数据。
39、在本专利技术第二方面的第四种实现方式中,所述数据存储处理装置还包括:
40、第一补零模块,用于在下刷所述第一数据区域写入的数据时,获取待下刷数据块对应的有效数据位标识的值;根据待下刷数据块对应的有效数据位标识的值,将所述待下刷数据块的所有数据空洞的位置对应的地址空间补0,得到所述第一数据区域的新数据块;更新所述新数据块对应的有效数据位标识的值,并将所述新数据块挂入所述链表中。
...
【技术保护点】
1.一种数据存储处理方法,其特征在于,所述方法包括:
2.根据权利要求1所述的数据存储处理方法,其特征在于,在所述依次扫描各所述第二地址范围并判断是否存在数据块之后,还包括:
3.根据权利要求1所述的数据存储处理方法,其特征在于,所述依次扫描并判断各所述第二地址范围内是否存在数据块包括:
4.根据权利要求1-3任一项所述的数据存储处理方法,其特征在于,所述有效数据位标识由多个比特位组成,每个比特位分别对应数据块地址范围内的一个逻辑分区,每个比特位的值代表对应数据块地址范围内的逻辑分区存在有效数据或不存在有效数据。
5.根据权利要求1所述的数据存储处理方法,其特征在于,所述数据存储处理方法还包括:
6.根据权利要求1所述的数据存储处理方法,其特征在于,所述数据存储处理方法还包括:
7.根据权利要求6所述的数据存储处理方法,其特征在于,采用一维数组记录各所述第一数据区域所在分区的分区ID,采用二维数组记录各所述第一数据区域所有非对齐数据块掉电之前的有效数据位标识的值。
8.一种数据存储处理装置,其特征
9.一种计算机设备,其特征在于,所述计算机设备包括:存储器和至少一个处理器,所述存储器中存储有指令;
10.一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,其特征在于,所述指令被处理器执行时实现如权利要求1-7中任一项所述的数据存储处理方法。
...【技术特征摘要】
1.一种数据存储处理方法,其特征在于,所述方法包括:
2.根据权利要求1所述的数据存储处理方法,其特征在于,在所述依次扫描各所述第二地址范围并判断是否存在数据块之后,还包括:
3.根据权利要求1所述的数据存储处理方法,其特征在于,所述依次扫描并判断各所述第二地址范围内是否存在数据块包括:
4.根据权利要求1-3任一项所述的数据存储处理方法,其特征在于,所述有效数据位标识由多个比特位组成,每个比特位分别对应数据块地址范围内的一个逻辑分区,每个比特位的值代表对应数据块地址范围内的逻辑分区存在有效数据或不存在有效数据。
5.根据权利要求1所述的数据存储处理方法,其特征在于,所述数据存储处理方法还包括:
【专利技术属性】
技术研发人员:翁大平,周辉,孙兴,余威,
申请(专利权)人:深圳大普微电子股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。