CN110673984B - 一种trim表数据保存、恢复方法、装置及相关设备 - Google Patents
一种trim表数据保存、恢复方法、装置及相关设备 Download PDFInfo
- Publication number
- CN110673984B CN110673984B CN201910854808.9A CN201910854808A CN110673984B CN 110673984 B CN110673984 B CN 110673984B CN 201910854808 A CN201910854808 A CN 201910854808A CN 110673984 B CN110673984 B CN 110673984B
- Authority
- CN
- China
- Prior art keywords
- data
- interval
- change information
- address
- trim table
- 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.)
- Active
Links
- 238000011084 recovery Methods 0.000 title claims abstract description 68
- 238000000034 method Methods 0.000 title claims abstract description 55
- 238000013500 data storage Methods 0.000 title abstract description 8
- 230000008859 change Effects 0.000 claims abstract description 204
- 238000012545 processing Methods 0.000 claims abstract description 12
- 238000004590 computer program Methods 0.000 claims description 10
- 230000001360 synchronised effect Effects 0.000 claims description 8
- 239000007787 solid Substances 0.000 abstract description 34
- 230000008569 process Effects 0.000 abstract description 16
- 238000010586 diagram Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000004883 computer application Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 238000004064 recycling Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1441—Resetting or repowering
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
本发明公开了一种trim表数据保存方法,在固态硬盘在DDR中运行过程中,将trim表当前的改变信息添加到改变量数据中,如果当前的改变信息的改变长度大于预设长度阈值,则基于当前的改变量数据,生成单位保存数据,并将单位保存数据写入flash中,在固态硬盘运行过程中,进行trim表的保存,可以保证DDR掉电时能够顺利将trim表数据从DDR存储到flash中。本发明还公开了一种trim表数据恢复方法,对于不同类型区间进行相应恢复处理,减少了固态硬盘上电元数据恢复时间,提高了固态硬盘性能。本发明还公开了一种trim表数据保存、恢复装置及相关设备,具有相应技术效果。
Description
技术领域
本发明涉及计算机应用技术领域,特别是涉及一种trim表数据保存、恢复方法、装置及相关设备。
背景技术
随着计算机技术的快速发展,固态硬盘的使用逐渐增多。固态硬盘,即SolidState Drive,也可称为固态驱动器。固态硬盘中存在多种元数据,trim表就是其中的一种。在固态硬盘正常运行时,trim表存在于DDR(DDR SDRAM,Double Data Rate SDRAM,双倍速率同步动态随机存储器)中,DDR掉电时数据会丢失,所以,掉电后会将trim表从DDR存储到flash(闪存,掉电时数据不会丢失)中,上电时再将其恢复到DDR中。
但是,因为trim表数据量较大,在掉电20ms内无法全部保存完,容易导致数据丢失。而且,恢复速度慢。
发明内容
本发明的目的是提供一种trim表数据保存、恢复方法、装置及相关设备,以进行trim表数据的有效保存,提高恢复速度。
为解决上述技术问题,本发明提供如下技术方案:
一种trim表数据保存方法,包括:
在固态硬盘在双倍速率同步动态随机存储器DDR中运行过程中,将trim表当前的改变信息添加到改变量数据中,所述改变信息包括起始逻辑区块地址和改变长度;
如果当前的所述改变信息的改变长度大于预设长度阈值,则基于当前的所述改变量数据,生成单位保存数据,所述单位保存数据由生成的头数据、当前的所述改变量数据和提取到的trim表的基础数据构成;
将所述单位保存数据写入闪存flash中。
在本发明的一种具体实施方式中,还包括:
如果当前的所述改变信息的改变长度不大于所述长度阈值,则在有新的改变信息时,重复执行所述将trim表当前的改变信息添加到改变量数据中的步骤,直至所述改变量数据中添加的改变信息个数达到设定个数阈值时,重复执行所述基于当前的所述改变量数据,生成单位保存数据的步骤。
一种trim表数据恢复方法,包括:
按保存先后顺序读取闪存flash中的每个单位保存数据,针对每个单位保存数据,均执行以下操作:
将该单位保存数据中的基础数据搬移到双倍速率同步动态随机存储器DDR的trim表的相应位置;
按保存先后顺序读取该单位保存数据的改变量数据中添加的改变信息,并针对每个改变信息,均执行以下操作:
根据该改变信息,确定地址区间;
根据所述地址区间的类型,使用相应的恢复方式进行恢复。
在本发明的一种具体实施方式中,所述地址区间包括头区间、中间区间和尾区间,所述根据该改变信息,确定地址区间,包括:
根据该改变信息,确定内存对齐点;
将该改变信息的起始逻辑区块地址至第一个内存对齐点的区间确定为头区间;
将第一个内存对齐点至最后一个内存对齐点对应的区间确定为中间区间;
将最后一个内存对齐点至该改变信息的终止逻辑区块地址的区间确定为尾区间。
在本发明的一种具体实施方式中,所述根据所述地址区间的类型,使用相应的恢复方式进行恢复,包括:
如果所述地址区间为中间区间,则采用硬件单元XOR_ENGINE将所述中间区间的数据全部置1,并搬移到trim表的相应位置。
在本发明的一种具体实施方式中,所述根据所述地址区间的类型,使用相应的恢复方式进行恢复,包括:
如果所述地址区间为头区间或尾区间,则根据是否4字节对齐,将所述地址区间划分为多个小区间;
针对每个小区间,如果该小区间为4字节对齐的区间,则采用直接写入全1的方式恢复;
如果该小区间非4字节对齐的区间,则采用读改写的方式恢复。
一种trim表数据保存装置,包括:
信息添加模块,用于在固态硬盘在双倍速率同步动态随机存储器DDR中运行过程中,将trim表当前的改变信息添加到改变量数据中,所述改变信息包括起始逻辑区块地址和改变长度;
数据生成模块,用于如果当前的所述改变信息的改变长度大于预设长度阈值,则基于当前的所述改变量数据,生成单位保存数据,所述单位保存数据由生成的头数据、当前的所述改变量数据和提取到的trim表的基础数据构成;
数据写入模块,用于将所述单位保存数据写入闪存flash中。
一种trim表数据恢复装置,包括:
数据读取模块,用于按保存先后顺序读取闪存flash中的每个单位保存数据,针对每个单位保存数据,均触发数据搬移模块;
所述数据搬移模块,用于将该单位保存数据中的基础数据搬移到双倍速率同步动态随机存储器DDR的trim表的相应位置;
信息读取模块,用于按保存先后顺序读取该单位保存数据的改变量数据中添加的改变信息,并针对每个改变信息,均触发区间确定模块;
所述区间确定模块,用于根据该改变信息,确定地址区间;
数据恢复模块,用于根据所述地址区间的类型,使用相应的恢复方式进行恢复。
一种trim表数据处理设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现上述任一项所述trim表数据保存方法和/或上述任一项所述trim表数据恢复方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述trim表数据保存方法和/或上述任一项所述trim表数据恢复方法的步骤。
应用本发明实施例所提供的trim表数据保存技术方案,在固态硬盘在DDR中运行过程中,将trim表当前的改变信息添加到改变量数据中,如果当前的改变信息的改变长度大于预设长度阈值,则基于当前的改变量数据,生成单位保存数据,并将单位保存数据写入flash中,在固态硬盘运行过程中,进行trim表的保存,可以保证DDR掉电时能够顺利将trim表数据从DDR存储到flash中。
应用本发明实施例所提供的trim数据恢复技术方案,按照保存先后顺序读取flash中的每个单位保存数据,针对每个单位保存数据,均将该单位保存数据中的基础数据搬移到DDR的trim表的相应位置,按保存先后顺序读取该单位保存数据的改变量数据中添加的改变信息,并针对每个改变信息,确定地址区间,根据地址区间的类型,使用相应的恢复方式进行恢复。对于不同类型区间进行相应恢复处理,减少了固态硬盘上电元数据恢复时间,提高了固态硬盘性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中一种trim表数据保存方法的实施流程图;
图2为本发明实施例中一种trim表数据恢复方法的实施流程图;
图3为本发明实施例中一种trim表数据保存装置的结构示意图;
图4为本发明实施例中一种trim表数据恢复装置的结构示意图;
图5为本发明实施例中一种trim表数据处理设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1所示,为本发明实施例所提供的一种trim表数据保存方法的实施流程图,该方法可以包括以下步骤:
S110:在固态硬盘在双倍速率同步动态随机存储器DDR中运行过程中,将trim表当前的改变信息添加到改变量数据中。
改变信息包括起始逻辑区块地址和改变长度。
在实际应用中,在固态硬盘在DDR中运行过程中,可能会对固态硬盘进行数据删除等操作,从而使得trim表中有改变信息。在检测到trim表中有改变信息时,可以将当前的改变信息添加到改变量数据中。
改变信息可以包括起始逻辑区块地址和改变长度,共8字节。
S120:如果当前的改变信息的改变长度大于预设长度阈值,则基于当前的改变量数据,生成单位保存数据。
单位保存数据由生成的头数据、当前的改变量数据和提取到的trim表的基础数据构成。
在本发明实施例中,单位保存数据的构成结构为:头数据(header)+改变量数据(delta)+基础数据(base),大小为16KB。
在固态硬盘在DDR中运行过程中,只要检测到trim表中有改变信息,则将当前的改变信息添加到改变量数据中。同时,将当前的改变信息的改变长度与预设长度阈值进行比较,如果改变信息的改变长度大于预设长度阈值,则可以基于当前的改变量数据,生成单位保存数据。长度阈值可以根据实际情况进行设定和调整,如设定为512memline,一个memline为64字节。
在实际应用中,可以将trim表中的数据划分为多个部分,在每次生成单位保存数据时即提取其中一部分作为当前单位保存数据的基础数据。如将trim表中的数据划分为100个部分,生成单位保存数据达到100个时即可将trim表中的所有数据保存一遍。提取到基础数据后,可以在头数据中添加基础数据在trim表中的位置、当前单位保存数据的保存时间、索引等信息。基于当前的改变量数据、生成的头数据和提取到的基础数据,可以生成单位保存数据。
S130:将单位保存数据写入闪存flash中。
生成单位保存数据后,即可将单位保存数据写入闪存flash中。这样,当DDR掉电时,trim表中剩余需要保存的数据的数据量将会很少。
在本发明的一个实施例中,如果当前的改变信息的改变长度不大于长度阈值,则可以在有新的改变信息时,重复执行将trim表当前的改变信息添加到改变量数据中的步骤,直至改变量数据中添加的改变信息个数达到设定个数阈值时,重复执行基于当前的改变量数据,生成单位保存数据的步骤。
在固态硬盘在DDR中运行过程中,将trim表当前的改变信息添加到改变量数据中,如果当前的改变信息的改变长度不大于长度阈值,则继续对trim表的改变信息进行监测,如果有新的改变信息,则可以继续将该新的改变信息添加到改变量数据中。即只要将改变信息添加到改变量数据中,即确定该改变信息的改变长度是否大于长度阈值,如果大于,则基于当前的改变量数据生成单位保存数据,如果不大于,则继续向改变量数据中添加新的改变信息,并再次判断该改变信息的改变长度是否大于长度阈值,并按照大于或不大于对应的处理方式进行下一步操作,直至改变量数据中添加的改变信息个数达到设定个数阈值时,基于当前的改变量数据,生成单位保存数据。
个数阈值可以根据实际情况进行设定和调整,本发明实施例对此不做限制,如设定为50个memline。
也就是说,改变量数据中添加的改变信息最少有一个,该改变信息的改变长度大于预设长度阈值,最多与个数阈值相同,其中除最后一个之外的改变信息的改变长度均小于长度阈值,最后一个改变信息的改变长度可能小于、等于或大于长度阈值。
在改变信息的改变长度大于长度阈值时,适当减少改变量数据中添加的改变信息的个数,有助于加快trim表中基础数据的保存,提高保存效率。
应用本发明实施例所提供的trim表数据保存方法,在固态硬盘在DDR中运行过程中,将trim表当前的改变信息添加到改变量数据中,如果当前的改变信息的改变长度大于预设长度阈值,则基于当前的改变量数据,生成单位保存数据,并将单位保存数据写入flash中,在固态硬盘运行过程中,进行trim表的保存,可以保证DDR掉电时能够顺利将trim表数据从DDR存储到flash中。
参见图2所示,为本发明实施例所提供的一种trim表数据恢复方法的实施流程图,该方法可以包括以下步骤:
S210:按保存先后顺序读取闪存flash中的每个单位保存数据,针对每个单位保存数据,均执行以下操作:
S220:将该单位保存数据中的基础数据搬移到双倍速率同步动态随机存储器DDR的trim表的相应位置;
S230:按保存先后顺序读取该单位保存数据的改变量数据中添加的改变信息,并针对每个改变信息,均执行以下操作:
S240:根据该改变信息,确定地址区间;
S250:根据地址区间的类型,使用相应的恢复方式进行恢复。
为便于描述,将上述几个步骤结合起来进行说明。
在本发明实施例中,单位保存数据可以是通过上一实施例中的保存方法进行的保存,即在固态硬盘在DDR中运行过程中,将trim表当前的改变信息添加到改变量数据中,如果当前的改变信息的改变长度大于预设长度阈值,则基于当前的改变量数据,生成单位保存数据,如果当前的改变信息的改变长度不大于预设长度阈值,则在有新的改变信息时,重复执行添加步骤,直至改变量数据中添加的改变信息个数达到设定个数阈值,生成单位保存数据,再将单位保存数据写入到flash中。
还可以是通过其他保存方法进行的保存,如在固态硬盘在DDR中运行过程中,将trim表的改变信息添加到改变量数据中,当改变量数据中添加的改变信息达到一定数量时,基于改变量数据生成单位保存数据,并写入到Flash中。
无论是哪一种方式,写入到flash中的单位保存数据具有一定的保存顺序。可以按照保存先后顺序读取flash中的每个单位保存数据,并针对每个单位保存数据,均执行以下操作:
将该单位保存数据中的基础数据搬移到DDR的trim表的相应位置。可以先将单位保存数据读取到内存中,然后将单位保存数据中的基础数据搬移到DDR的trim表的相应位置。通过单位保存数据中的头数据可以确定基础数据在trim表中的位置。
单位保存数据的改变量数据中可能保存有多个改变信息,按照保存先后顺序读取该单位保存数据的改变量数据中添加的改变信息,并针对每个改变信息,均执行以下操作:
根据该改变信息,确定地址区间。具体的,可以根据改变信息的起始逻辑区块地址和变化长度,确定地址区间。
在本发明的一种具体实施方式中,地址区间包括头区间、中间区间和尾区间,可以根据改变信息,确定内存对齐点;将该改变信息的起始逻辑区块地址至第一个内存对齐点的区间确定为头区间;将第一个内存对齐点至最后一个内存对齐点对应的区间确定为中间区间;将最后一个内存对齐点至该改变信息的终止逻辑区块地址的区间确定为尾区间。
举例而言,改变信息的起始逻辑区块地址(start_lba)为62,改变长度(trim_len)为69,根据该改变信息,可以确定内存对齐点为64和128,终止逻辑区块地址为131,将该改变信息的起始逻辑区块地址62至第一个内存对齐点64的区间[62,64)确定为头区间,将第一个内存对齐点64至最后一个内存对齐点对应的区间128确定为中间区间[64,128),将最后一个内存对齐点128至该改变信息的终止逻辑区块地址131的区间确定为尾区间[128,131)。
中间区间即为memline对齐的区间。
可以根据地址区间的类型,使用相应的恢复方式进行恢复。
在本发明的一种具体实施方式中,如果地址区间为中间区间,则可以采用硬件单元XOR_ENGINE将中间区间的数据全部置1,并搬移到trim表的相应位置。并且可以采用并发进行方式。
使用硬件单元进行数据搬移,可以提高恢复效率。
在本发明的另一种具体实施方式中,如果地址区间为头区间或尾区间,则可以根据是否4字节对齐,将地址区间划分为多个小区间,针对每个小区间,如果该小区间为4字节对齐的区间,则采用直接写入全1的方式恢复,如果该小区间非4字节对齐的区间,则采用读改写的方式恢复。
即如果地址区间为头区间或尾区间,则可以根据是否4字节对齐,将地址区间划分为多个小区间,如划分为[62,64),[128,131),前者非4字节对齐的区间,后者为4字节对齐的区间。对于4字节对齐的区间,可以在该区间直接写入全1,然后搬移到DDR中进行恢复。对于非4字节对齐的区间,可以从DDR将4字节对齐的位置读到CPU内存内,将其对应的区间段进行设置(set),再将改变后的数据,写到DDR中。
可以理解的是,当固态硬盘上电时,需要对trim表数据进行恢复。本发明实施例的恢复方式相较于下面这种恢复方式具有恢复速度快等优点。
该恢复方式是:将单位保存数据(header+delta+base)从flash读出,先将base数据搬移到trim表的对应位置,再根据delta进行逐个恢复,恢复过程如下:
读取第一个delta数据为start_lba(起始逻辑区块地址)和trim_len(变化长度),代表需要从start_lba代表的DDR地址开始,将trim_len个比特(bit)置1,具体执行方法为:
根据start_lba计算得到memline对齐的DDR地址为trim_ddr_addr,从trim_ddr_addr对应的地址开始读取一个memline大小的数据到处理器内存(local),根据start_lba和trim_len,将对应的比特(bit)置1后,再将这个memline大小的数据写回DDR,完成一个memline内的trim表数据恢复。如果start_lba+trim_len超过了本memline的范围,需重新循环读取,并执行本步骤;
继续读取下一个delta数据,重复执行上述步骤,如果delta数据读取完成,此16K(header+delta+base)恢复结束。
当恢复结束后,继续读取下一个16K数据,用以上同样的方式恢复trim表数据。
以上方式虽然处理简单,但是上电恢复需要较长时间。特别是在全盘trim的情况下,即start_lba=0,trim_len=满盘容量,每恢复一次delta数据需要执行很多次的DDR读取和写入操作。拉长了固态硬盘上电的时间,影响了产品上电时的运行性能。而本发明实施例采用多区间划分方式,对于不同类型区间进行相应恢复化处理,提高了数据的处理能力,提高了恢复速度。
应用本发明实施例所提供的trim数据恢复方法,按照保存先后顺序读取flash中的每个单位保存数据,针对每个单位保存数据,均将该单位保存数据中的基础数据搬移到DDR的trim表的相应位置,按保存先后顺序读取该单位保存数据的改变量数据中添加的改变信息,并针对每个改变信息,确定地址区间,根据地址区间的类型,使用相应的恢复方式进行恢复。对于不同类型区间进行相应恢复处理,减少了固态硬盘上电元数据恢复时间,提高了固态硬盘性能。
相应于上面图1所示的方法实施例,本发明实施例还提供了一种trim表数据保存装置,下文描述的trim表数据保存装置与上文描述的trim表数据保存方法可相互对应参照。
参见图3所示,该装置包括:
信息添加模块310,用于在固态硬盘在双倍速率同步动态随机存储器DDR中运行过程中,将trim表当前的改变信息添加到改变量数据中,改变信息包括起始逻辑区块地址和改变长度;
数据生成模块320,用于如果当前的改变信息的改变长度大于预设长度阈值,则基于当前的改变量数据,生成单位保存数据,单位保存数据由生成的头数据、当前的改变量数据和提取到的trim表的基础数据构成;
数据写入模块330,用于将单位保存数据写入闪存flash中。
应用本发明实施例所提供的trim表数据保存装置,在固态硬盘在DDR中运行过程中,将trim表当前的改变信息添加到改变量数据中,如果当前的改变信息的改变长度大于预设长度阈值,则基于当前的改变量数据,生成单位保存数据,并将单位保存数据写入flash中,在固态硬盘运行过程中,进行trim表的保存,可以保证DDR掉电时能够顺利将trim表数据从DDR存储到flash中。
在本发明的一种具体实施方式中,数据生成模块320,还用于:
如果当前的改变信息的改变长度不大于长度阈值,则在有新的改变信息时,重复执行将trim表当前的改变信息添加到改变量数据中的步骤,直至改变量数据中添加的改变信息个数达到设定个数阈值时,重复执行基于当前的改变量数据,生成单位保存数据的步骤。
相应于上面图2所示的方法实施例,本发明实施例还提供了一种trim表数据恢复装置,下文描述的trim表数据恢复装置与上文描述的trim表数据恢复方法可相互对应参照。
如图4所示,该装置包括:
数据读取模块410,用于按保存先后顺序读取闪存flash中的每个单位保存数据,针对每个单位保存数据,均触发数据搬移模块420;
数据搬移模块420,用于将该单位保存数据中的基础数据搬移到双倍速率同步动态随机存储器DDR的trim表的相应位置;
信息读取模块430,用于按保存先后顺序读取该单位保存数据的改变量数据中添加的改变信息,并针对每个改变信息,均触发区间确定模块440;
区间确定模块440,用于根据该改变信息,确定地址区间;
数据恢复模块450,用于根据地址区间的类型,使用相应的恢复方式进行恢复。
应用本发明实施例所提供的trim数据恢复装置,按照保存先后顺序读取flash中的每个单位保存数据,针对每个单位保存数据,均将该单位保存数据中的基础数据搬移到DDR的trim表的相应位置,按保存先后顺序读取该单位保存数据的改变量数据中添加的改变信息,并针对每个改变信息,确定地址区间,根据地址区间的类型,使用相应的恢复方式进行恢复。对于不同类型区间进行相应恢复处理,减少了固态硬盘上电元数据恢复时间,提高了固态硬盘性能。
在本发明的一种具体实施方式中,地址区间包括头区间、中间区间和尾区间,区间确定模块440,具体用于:
根据该改变信息,确定内存对齐点;
将该改变信息的起始逻辑区块地址至第一个内存对齐点的区间确定为头区间;
将第一个内存对齐点至最后一个内存对齐点对应的区间确定为中间区间;
将最后一个内存对齐点至该改变信息的终止逻辑区块地址的区间确定为尾区间。
在本发明的一种具体实施方式中,数据恢复模块450,具体用于:
如果地址区间为中间区间,则采用硬件单元XOR_ENGINE将中间区间的数据全部置1,并搬移到trim表的相应位置。
在本发明的一种具体实施方式中,数据恢复模块450,具体用于:
如果地址区间为头区间或尾区间,则根据是否4字节对齐,将地址区间划分为多个小区间;
针对每个小区间,如果该小区间为4字节对齐的区间,则采用直接写入全1的方式恢复;
如果该小区间非4字节对齐的区间,则采用读改写的方式恢复。
相应于上面的方法实施例,本发明实施例还提供了一种trim表数据处理设备,如图5所示,该设备包括:
存储器510,用于存储计算机程序;
处理器520,用于执行计算机程序时实现上述trim表数据保存方法和/或上述trim表数据恢复方法的步骤。
相应于上面的方法实施例,本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述trim表数据保存方法和/或上述trim表数据恢复方法的步骤。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的技术方案及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
Claims (4)
1.一种trim表数据恢复方法,其特征在于,包括:
按保存先后顺序读取闪存flash中的每个单位保存数据,针对每个所述单位保存数据,均执行以下操作:
将各所述单位保存数据中的基础数据搬移到双倍速率同步动态随机存储器DDR的trim表的相应位置;
按保存先后顺序读取各所述单位保存数据的改变量数据中添加的改变信息,并针对每个所述改变信息,均执行以下操作:
根据各所述改变信息,确定对应的地址区间;
根据所述地址区间的类型,使用相应的恢复方式进行恢复;
其中,所述地址区间包括头区间、中间区间和尾区间,所述根据各所述改变信息,确定对应的地址区间,包括:
根据各所述改变信息,确定对应的内存对齐点;
将各所述改变信息的起始逻辑区块地址至第一个内存对齐点的区间确定为所述头区间;
将所述第一个内存对齐点至最后一个内存对齐点对应的区间确定为所述中间区间;
将所述最后一个内存对齐点至所述改变信息的终止逻辑区块地址的区间确定为所述尾区间;
所述根据所述地址区间的类型,使用相应的恢复方式进行恢复,包括:
如果所述地址区间为所述中间区间,则采用硬件单元XOR_ENGINE将所述中间区间的数据全部置1,并搬移到所述trim表的相应位置;
或者,所述根据所述地址区间的类型,使用相应的恢复方式进行恢复,包括:
如果所述地址区间为所述头区间或所述尾区间,则根据是否4字节对齐,将所述地址区间划分为多个小区间;
针对各所述小区间,如果所述小区间为4字节对齐的区间,则采用直接写入全1的方式恢复;
如果所述小区间非4字节对齐的区间,则采用读改写的方式恢复。
2.一种trim表数据恢复装置,其特征在于,包括:
数据读取模块,用于按保存先后顺序读取闪存flash中的每个单位保存数据,针对每个所述单位保存数据,均触发数据搬移模块;
所述数据搬移模块,用于将各所述单位保存数据中的基础数据搬移到双倍速率同步动态随机存储器DDR的trim表的相应位置;
信息读取模块,用于按保存先后顺序读取各所述单位保存数据的改变量数据中添加的改变信息,并针对每个所述改变信息,均触发区间确定模块;
所述区间确定模块,用于根据各所述改变信息,确定对应的地址区间;
数据恢复模块,用于根据所述地址区间的类型,使用相应的恢复方式进行恢复;
其中,所述地址区间包括头区间、中间区间和尾区间,所述根据各所述改变信息,确定对应的地址区间,包括:
根据各所述改变信息,确定对应的内存对齐点;
将各所述改变信息的起始逻辑区块地址至第一个内存对齐点的区间确定为所述头区间;
将所述第一个内存对齐点至最后一个内存对齐点对应的区间确定为所述中间区间;
将所述最后一个内存对齐点至所述改变信息的终止逻辑区块地址的区间确定为所述尾区间;
所述根据所述地址区间的类型,使用相应的恢复方式进行恢复,包括:
如果所述地址区间为所述中间区间,则采用硬件单元XOR_ENGINE将所述中间区间的数据全部置1,并搬移到所述trim表的相应位置;
或者,所述根据所述地址区间的类型,使用相应的恢复方式进行恢复,包括:
如果所述地址区间为所述头区间或所述尾区间,则根据是否4字节对齐,将所述地址区间划分为多个小区间;
针对各所述小区间,如果所述小区间为4字节对齐的区间,则采用直接写入全1的方式恢复;
如果所述小区间非4字节对齐的区间,则采用读改写的方式恢复。
3.一种trim表数据处理设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1所述trim表数据恢复方法的步骤。
4.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1所述trim表数据恢复方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910854808.9A CN110673984B (zh) | 2019-09-10 | 2019-09-10 | 一种trim表数据保存、恢复方法、装置及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910854808.9A CN110673984B (zh) | 2019-09-10 | 2019-09-10 | 一种trim表数据保存、恢复方法、装置及相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110673984A CN110673984A (zh) | 2020-01-10 |
CN110673984B true CN110673984B (zh) | 2022-12-27 |
Family
ID=69077619
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910854808.9A Active CN110673984B (zh) | 2019-09-10 | 2019-09-10 | 一种trim表数据保存、恢复方法、装置及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110673984B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107329909A (zh) * | 2017-06-27 | 2017-11-07 | 郑州云海信息技术有限公司 | 一种数据管理方法及装置 |
CN109086222A (zh) * | 2018-07-24 | 2018-12-25 | 浪潮电子信息产业股份有限公司 | 固态硬盘的数据恢复方法以及固态硬盘 |
-
2019
- 2019-09-10 CN CN201910854808.9A patent/CN110673984B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107329909A (zh) * | 2017-06-27 | 2017-11-07 | 郑州云海信息技术有限公司 | 一种数据管理方法及装置 |
CN109086222A (zh) * | 2018-07-24 | 2018-12-25 | 浪潮电子信息产业股份有限公司 | 固态硬盘的数据恢复方法以及固态硬盘 |
Also Published As
Publication number | Publication date |
---|---|
CN110673984A (zh) | 2020-01-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105242871B (zh) | 一种数据写入方法及装置 | |
CN108874688B (zh) | 一种报文数据缓存方法及装置 | |
CN110673789B (zh) | 固态硬盘的元数据存储管理方法、装置、设备及存储介质 | |
CN109491592B (zh) | 存储设备及其数据写入方法、存储装置 | |
CN112346659B (zh) | 一种分布式对象存储元数据的存储方法、设备及存储介质 | |
CN111581010B (zh) | 一种读操作处理方法、装置、设备及可读存储介质 | |
CN111045870A (zh) | 一种保存与恢复元数据的方法、装置和介质 | |
CN111737162A (zh) | 一种快速恢复数据的固态硬盘使用方法及计算机可读存储介质 | |
CN111752482A (zh) | 一种全闪存分布式存储系统中写数据的方法及系统 | |
CN111475114A (zh) | 一种数据下刷系统、方法及计算机可读存储介质 | |
CN111813455A (zh) | 固态硬盘的低功耗实现方法、装置、计算机设备和存储介质 | |
CN109284070B (zh) | 一种基于stt-mram固态存储器件断电恢复方法 | |
CN110673984B (zh) | 一种trim表数据保存、恢复方法、装置及相关设备 | |
CN108762670B (zh) | 一种ssd固件中数据块的管理方法、系统及装置 | |
CN105446848A (zh) | 电子设备的数据处理性能的测试方法及装置 | |
CN110658995B (zh) | 一种固态硬盘及其配置数据管理方法、装置及存储介质 | |
CN104750426A (zh) | 向存储介质写数据的方法和装置 | |
CN111880735B (zh) | 一种存储系统中数据迁移方法、装置、设备及存储介质 | |
CN114328548B (zh) | 双存储池数据淘汰速度控制方法、系统、终端及存储介质 | |
CN101526921B (zh) | 写入数据的方法及装置 | |
US20230297263A1 (en) | Method and system for testing conversion relationship between block reading and page reading in flash memory chip | |
CN111897495B (zh) | 提高ssd写性能的实现方法、装置、计算机设备及存储介质 | |
CN110968271B (zh) | 一种高性能数据存储方法、系统与装置 | |
CN109582244B (zh) | 一种元数据落盘方法、装置、终端及计算机可读存储介质 | |
CN106877877B (zh) | 一种在线数据压缩在存储中的集成方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |