CN110647295B - 缩短ssd上电恢复时间的方法、系统、设备及存储介质 - Google Patents
缩短ssd上电恢复时间的方法、系统、设备及存储介质 Download PDFInfo
- Publication number
- CN110647295B CN110647295B CN201910866505.9A CN201910866505A CN110647295B CN 110647295 B CN110647295 B CN 110647295B CN 201910866505 A CN201910866505 A CN 201910866505A CN 110647295 B CN110647295 B CN 110647295B
- Authority
- CN
- China
- Prior art keywords
- segment
- ssd
- recovery
- record
- operation instruction
- 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 115
- 238000000034 method Methods 0.000 title claims abstract description 41
- 238000004904 shortening Methods 0.000 title claims abstract description 20
- 125000004122 cyclic group Chemical group 0.000 claims abstract description 12
- 238000004590 computer program Methods 0.000 claims description 10
- 230000000875 corresponding effect Effects 0.000 abstract 4
- 230000009286 beneficial effect Effects 0.000 description 4
- 238000012005 ligant binding assay Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- FZNCGRZWXLXZSZ-CIQUZCHMSA-N Voglibose Chemical compound OCC(CO)N[C@H]1C[C@](O)(CO)[C@@H](O)[C@H](O)[C@H]1O FZNCGRZWXLXZSZ-CIQUZCHMSA-N 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种缩短SSD上电恢复时间的方法,包括:在SSD运行时对L2P表的更新进行记录,且将更新记录及对应的段保存至闪存中;当SSD在保存第i段的数据时掉电,在下一次上电恢复的过程中,从第i+1段开始,按照连续且循环的方式,利用N段各自对应的更新记录,对各个段进行数据恢复;并且,在利用第k段所对应的更新记录进行恢复时,对于涉及到第k至第i段的更新记录,不利用此类记录进行段的数据恢复;对于涉及到第i+1至第k‑1段的更新记录,利用此类记录进行段的数据恢复。应用本申请的方案,有利于降低L2P的上电恢复时间。本申请还公开了一种缩短SSD上电恢复时间的系统、设备及存储介质,具有相应效果。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种缩短SSD上电恢复时间的方法、系统、设备及存储介质。
背景技术
SSD(Solid State Disk,固态硬盘)中存储有L2P(Logical To Physical Table,逻辑块到物理块的映射表),由于L2P较大,当SSD掉电时,特别是异常掉电时,可能无法及时地将L2P保存至NAND Flash中。因此,会设置多种方式来保证L2P数据的及时保存。
一种常用的方式是快照式存储,即在SSD运行的过程中,保存读/写操作引起的L2P的更新,通常称为Delta。从整份L2P表中按顺序,且循环截取的L2P 的一段称为L2P Base。将一定大小的Delta以及从L2P表中选取的一段,即将 Delta和L2P Base保存至NAND Flash中。
在上电恢复时,从NAND Flash中读出各L2P Base以及对应的Delta,进而恢复到DDR中。并且,需要按照先创建先恢复的原则逐步恢复。例如,在保存 L2P Base5时SSD下电,则从L2P Base6开始恢复,即基于L2P Base6所对应的 Delta进行各个Base的恢复,之后是L2P Base7…L2P Base8一直到L2P BaseN,然后再从L2P Base0最后到L2P Base5。
这样的方式所需的上电恢复时间较长。特别是SSD引入非对齐L2P表之后,例如2TB的SSD中的PBA(Physical Block Address,物理块地址)为30位,4TB 则为31位,相较于4字节的方式降低了L2P表的占用空间。但与此同时,这也就导致了一个L2P会跨越两个4字节,使得在更新L2P时,不能再以4字节大小直接更新,只能以异或的方式进行更改,使用异或的方式便需要提前从L2P Base中读一次待恢复的L2P Base,而由于上电恢复L2P时,L2P的占用空间较大,例如2TB的SSD中L2P表大约为2G,4TB的SSD中L2P表大约为4G。导致传统方案的上电恢复时间非常长,不符合企业级SSD对上电恢复时间的要求。
综上所述,如何有效地降低L2P的上电恢复时间,是目前本领域技术人员急需解决的技术问题。
发明内容
本发明的目的是提供一种缩短SSD上电恢复时间的方法、系统、设备及存储介质,以有效地降低L2P的上电恢复时间。
为解决上述技术问题,本发明提供如下技术方案:
一种缩短SSD上电恢复时间的方法,包括:
在SSD运行的过程中,在接收到任一操作指令时,对所述操作指令引起的 L2P表的更新进行记录;
当更新记录将预设的第一大小的空间填充满时,从所述L2P表中选取出1 段以将预设的第二大小的空间填充满;
其中,L2P表被划分为连续的N段,且按照连续且循环的方式从L2P表中进行段的选取;第i段和第k段均为N段中的任意一段,N为正整数;
将所述更新记录以及对应的段保存至闪存中;
当所述SSD在保存第i段的数据时掉电,在下一次上电恢复的过程中,从第i+1段开始,按照连续且循环的方式,利用N段各自对应的更新记录,对各个段进行数据恢复;并且,在利用第k段所对应的更新记录进行恢复时,对于涉及到第k至第i段的更新记录,确定为第一类记录,并不利用第一类记录进行段的数据的恢复;对于涉及到第i+1至第k-1段的更新记录,确定为第二类记录,并利用第二类记录进行段的数据的恢复。
优选的,所述对所述操作指令引起的L2P表的更新进行记录,包括:
记录所述操作指令所针对的逻辑块地址LBA,并记录由所述操作指令引起的改变后的新的物理块地址New_PBA。
优选的,所述对所述操作指令引起的L2P表的更新进行记录,包括:
记录所述操作指令所针对的逻辑块地址LBA;
将由所述操作指令引起的改变后的新的物理块地址New_PBA与更新前的所述L2P表中对应于所述LBA的旧的物理块地址Old_PBA进行异或,得到异或值Xored_PBA,以使得所述操作指令对应的更新记录中包括所述LBA以及对应的所述Xored_PBA。
优选的,预设的第一大小的空间为4K,预设的第二大小的空间为12K。
优选的,在得到更新记录时,按照操作指令所针对的LBA的奇偶性分别保存针对奇数LBA的更新记录以及针对偶数LBA的更新记录,以使得上电恢复的过程中,对应于奇数LBA的更新记录与对应于偶数LBA的更新记录由不同的硬件核进行处理。
优选的,在利用N段各自对应的更新记录,对各个段进行数据恢复之后,还包括:
输出数据恢复完毕的提示信息。
一种缩短SSD上电恢复时间的系统,包括:
更新模块,用于在SSD运行的过程中,在接收到任一操作指令时,对所述操作指令引起的L2P表的更新进行记录;
更新记录产生模块,用于当更新记录将预设的第一大小的空间填充满时,从所述L2P表中选取出1段以将预设的第二大小的空间填充满;其中,L2P表被划分为连续的N段,且按照连续且循环的方式从L2P表中进行段的选取;第 i段和第k段均为N段中的任意一段,N为正整数;
更新记录保存模块,用于将所述更新记录以及对应的段保存至闪存中;
上电恢复模块,用于当所述SSD在保存第i段的数据时掉电,在下一次上电恢复的过程中,从第i+1段开始,按照连续且循环的方式,利用N段各自对应的更新记录,对各个段进行数据恢复;并且,在利用第k段所对应的更新记录进行恢复时,对于涉及到第k至第i段的更新记录,确定为第一类记录,并不利用第一类记录进行段的数据的恢复;对于涉及到第i+1至第k-1段的更新记录,确定为第二类记录,并利用第二类记录进行段的数据的恢复。
优选的,所述更新模块,具体用于:
在SSD运行的过程中,在接收到任一操作指令时,记录所述操作指令所针对的逻辑块地址LBA;
将由所述操作指令引起的改变后的新的物理块地址New_PBA与更新前的所述L2P表中对应于所述LBA的旧的物理块地址Old_PBA进行异或,得到异或值Xored_PBA,以使得所述操作指令对应的更新记录中包括所述LBA以及对应的所述Xored_PBA。
一种缩短SSD上电恢复时间的设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序以实现上述任一项所述的缩短SSD上电恢复时间的方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的缩短SSD上电恢复时间的方法的步骤。
应用本发明实施例所提供的技术方案,在SSD运行的过程中,按照快照式进行L2P的存储,即在接收到任一操作指令时,对操作指令引起的L2P表的更新进行记录;当更新记录将预设的第一大小的空间填充满时,从L2P表中选取出1段以将预设的第二大小的空间填充满;其中,L2P表被划分为连续的N段,且按照连续且循环的方式从L2P表中进行段的选取;进而便可以将更新记录以及对应的段保存至闪存中。
当SSD在保存第i段的数据时掉电,在下一次上电恢复的过程中,本申请从第i+1段开始,按照连续且循环的方式,利用N段各自对应的更新记录,对各个段进行数据恢复。本申请考虑到,在利用第k段所对应的更新记录进行恢复时,对于涉及到第k+1至第i段的更新记录,由于这些更新记录所对应的段存储到闪存的时间晚于存储第k段的时间,也即这些更新记录已经在后续保存的段中得到了体现,因此不必利用这些更新记录进行段的恢复,因此将这些更新记录确定为第一类记录,并不利用第一类记录进行段的数据的恢复。而对于涉及到第k段的更新记录,也在保存的第k段中得到了体现。因此,只有涉及到第i+1至第k-1段的更新记录,确定为第二类记录,并利用第二类记录进行段的数据的恢复。由于本申请中排除了第一类记录,降低了只利用第二类记录进行段的数据的恢复,也就有利于降低L2P的上电恢复时间。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明中一种缩短SSD上电恢复时间的方法的实施流程图;
图2为本发明中一种缩短SSD上电恢复时间的系统的结构示意图;
图3为本发明中一种缩短SSD上电恢复时间的设备的结构示意图。
具体实施方式
本发明的核心是提供一种缩短SSD上电恢复时间的方法,有利于降低L2P 的上电恢复时间。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,图1为本发明中一种缩短SSD上电恢复时间的方法的实施流程图,该缩短SSD上电恢复时间的方法可以包括以下步骤:
步骤S101:在SSD运行的过程中,在接收到任一操作指令时,对操作指令引起的L2P表的更新进行记录。
在SSD运行时,通常可以由LKM(Look Up Manager,查表管理器)进行 DDR中的L2P表的维护,当然,在其他具体场合中,也可以根据SSD具体型号及设置的不同,由其他模块来执行L2P的维护操作。
L2P表是以LKM_LBA(Logical Block Address,逻辑块地址)为索引,PBA(Physical Block Address,物理块地址)为内容一个线性表,即L2P表表示的是逻辑块地址与物理块地址之间的对应关系。
当任何读操作或写操作发起时,LKM便会按照接收的操作指令进行L2P表的更新。具体的,在接收到任一操作指令时,LKM便会根据该操作指令所针对的LKM_LBA,将L2P锁定,例如PBA的lock位为0时表示未锁定,则锁定之后lock位变为1。将L2P锁定之后,便可以得到一个old_PBA,再根据操作指令对old_PBA进行修改,之后将L2P解锁,便可以得到一个新的PBA,即得到NEW_PBA。可以看出,当操作指令是进行读操作的操作指令时,NEW_PBA和 old_PBA只在于锁位的不同,当然,对于写操作而言,PBA中除了锁位之外的其他位也会发生变化。
将L2P解锁得到NEW_PBA之后,便完成了L2P的更新,通常可以将该更新记为Delta。
在一种具体实施方式中,步骤S101描述的对操作指令引起的L2P表的更新进行记录,可以具体包括:
记录操作指令所针对的逻辑块地址LBA,并记录由操作指令引起的改变后的新的物理块地址New_PBA。
即该种实施方式中,每次进行L2P的更新,更新记录Delta包括NEW_PBA 和LKM_LBA两个部分。由于记录了NEW_PBA和LKM_LBA,使得后续可以基于此进行L2P Base的恢复,该种实施方式也是较为常用的实施方式。
具体的,每次产生Delta时,即每次产生更新记录时,LKM可以将该Delta 发送至JM(Journal Manager,日志管理器)进行保存。
步骤S102:当更新记录将预设的第一大小的空间填充满时,从L2P表中选取出1段以将预设的第二大小的空间填充满;
其中,L2P表被划分为连续的N段,且按照连续且循环的方式从L2P表中进行段的选取;第i段和第k段均为N段中的任意一段,N为正整数。
预设的第一大小的空间和第二大小的空间可以根据实际需要进行设定和调整,但考虑到通常将JM的数据发送至闪存中,需要一次性发送16K,则通常第一大小的空间和第二大小的空间之和可以设置为16K。而第一大小的空间设置地过小时,产生的Delta会很容易将第一大小的空间充满,可能需要设置多个并列的线程用于记录产生的Delta,进而影响主路径的带宽,而第二大小的空间设置地较小时,L2P划分出的段就较多,由于后续需要保存各个段在闪存中的存储位置,因此段的数量过多会产生较多的延伸数据。
因此,在本发明的一种具体实施方式中,通过理论分析以及实验验证进行调整之后,预设的第一大小的空间为4K,预设的第二大小的空间为12K,将第一大小的空间和第二大小的空间进行了权衡,以使得对主路径的带宽影响较低,也不会产生较多的延伸数据。此外需要说明的是,便于描述以及理解,后文中便均以第一大小的空间为4K,第二大小的空间为12K进行描述。
步骤S103:将更新记录以及对应的段保存至闪存中。
可参阅表1,表示一种具体实施方式中保存至闪存中的更新记录以及对应的段。
表1:
4K的L2P Delta | 12K的L2P Base |
每当产生更新时,即每次得到Delta时,2TB的SSD通常产生60位的Delta,而4TB的SSD通常产生62位的Delta。
随着读/写操作的不断发起,最终会将4K的空间填充满,此时,则从L2P 表中选取出一段,从而将12K的空间填充满。
本申请中的段也即L2P Base。整份L2P表被划分为连续的N段,因此当一种具体实施方式中每一段的大小为12K时,N=L2P表的总大小/12K。由于通常从0开始进行各Base的编号,则划分出的各个段可以依次表示为L2P Base0, L2P Base1,L2P Base2…L2P BaseN-1。当然,在其他实施方式中,也可以从1 开始进行各Base的编号,并不影响本发明的实施。
当更新记录将预设的第一大小的空间填充满时,从L2P表中选取出1段以将预设的第二大小的空间填充满,并且,是按照连续且循环的方式从L2P表中进行段的选取,例如上一次选取的是L2P Base5,则此次选取L2P Base6,下一次则选取L2P Base7,相应的,当某一次选取的是L2P BaseN-1时,下次则选取 L2P Base0,以此类推。
还需要说明的是,将更新记录以及对应的段保存至闪存中时,是覆盖保存,例如在某一轮保存时,在闪存中保存了4K的L2P Delta并且选取的是例如L2P Base7,则下一轮出现保存4K的L2P Delta且选取的是L2P Base7的情况时,自然需要覆盖前一轮保存的相应的16K的数据。当然,在每次保存时,需要记录下保存的地址,即建立每一个16K的数据与闪存中的相应的PCA地址之间的对应关系,该对应关系也称为first table。
步骤S104:当SSD在保存第i段的数据时掉电,在下一次上电恢复的过程中,从第i+1段开始,按照连续且循环的方式,利用N段各自对应的更新记录,对各个段进行数据恢复;并且,在利用第k段所对应的更新记录进行恢复时,对于涉及到第k至第i段的更新记录,确定为第一类记录,并不利用第一类记录进行段的数据的恢复;对于涉及到第i+1至第k-1段的更新记录,确定为第二类记录,并利用第二类记录进行段的数据的恢复。
在执行步骤S101至步骤S103时,通过快照的方式进行L2P的保存。当SSD 在保存第i段的数据时掉电,例如在保存L2P Base5的数据时掉电,在下一次上电恢复的过程中,从L2P Base6开始,按照连续且循环的方式,利用N个L2P Base 各自对应的更新记录,对各个Base进行数据恢复。即先利用L2P Base6对应的更新记录,对各个Base进行数据恢复;再利用L2P Base7对应的更新记录,对各个Base进行数据恢复;之后是利用L2P Base8对应的更新记录,L2P Base9…L2P BaseN-1,再之后是利用第L2P Base0,L2P Base2…,最后是L2PBase5。
需要说明的是,由于是按照连续且循环的方式利用N段各自对应的更新记录,对各个段进行数据恢复。因此,i的取值=N时,第i+1段的含义应当是第1 段。即当SSD在保存L2PBaseN-1的数据时掉电,将会从L2P Base0开始进行数据恢复直至L2P BaseN-1。
此外还需要指出的是,在利用第k段所对应的更新记录进行恢复时,且当k 等于i时,第k段所对应的更新记录中,除了涉及到第k段的更新记录,其余的均会被确定为第二类记录。例如在保存L2P Base5的数据时掉电,则最后是利用 L2P Base5对应的更新记录,对各个Base进行数据恢复,此时,L2P Base5对应的4K的L2P Delta中,除了涉及L2P Base5的Delta,其余每一个Delta都会被使用到,即均为第二类记录。
此外可以看出,在利用第k段所对应的更新记录进行恢复时,且当k等于 i+1时,此时第k段所对应的更新记录均会被确定为第一类记录。例如在保存 L2P Base5的数据时掉电,首先利用L2P Base6对应的更新记录,对各个Base 进行数据恢复,而L2P Base6对应的更新记录均会被确定为第一类记录。
便于理解再以一具体例子进行说明,例如SSD在保存L2P Base5的数据时掉电,则首先利用L2P Base6对应的更新记录对各个Base进行数据恢复。之后利用L2P Base7对应的更新记录对各个Base进行数据恢复。L2P Base7对应的更新记录指的便是在保存12K的L2PBase7时,保存下的4K的L2P Delta。利用该4K的L2P Delta进行各个Base的数据恢复。并且,该4K的L2P Delta中,只有涉及到L2P Base6的Delta,才会被确定为第二类记录,并利用这些Delta 进行Base的数据的恢复,其他不涉及到L2P Base6的Delta,均不会被确定为第二类记录,即会被确定为第一类记录,并不利用第一类记录进行段的数据的恢复。例如在L2PBase7对应的该4K的L2P Delta中,有涉及到L2P Base8的一个 Delta,但L2P Base8晚于L2PBase7被保存至闪存中,因此这个Delta对L2P进行的更新,已经被反映在了L2P Base8中并保存,因此在利用L2P Base7对应的 4K的L2P Delta对各个Base进行数据恢复时,只需要选取出那些涉及到L2P Base6的Delta。
之后,便是利用L2P Base8对应的更新记录对各个Base进行数据恢复。此时,L2PBase8对应的4K的更新记录中,只有涉及到L2P Base6的或者涉及到 L2P Base7的Delta,才会被确定为第二类记录,并利用这些Delta进行Base的数据的恢复,其他均会被确定为第一类记录。例如在L2P Base8对应的4K的L2P Delta中,有某一个Delta针对的是Base6,则可以读取Base6中存储的old_PBA,将该old_PBA与该Delta中保存的NEW_PBA进行异或,再将异或结果与 old_PBA进行异或,得出的值即为将L2P Base6修复后的PBA,即实现了将该 Delta中保存的NEW_PBA取代闪存中的L2P Base6中原先存储的old_PBA,完成了该Base中的一项数据的恢复。而需要说明的是,由于无法直接覆盖,因此该种实施方式中需要利用到一次读取操作以及两次异或操作。该例子中,某一个Delta针对的是Base6,指的即该Delta中保存的LKM_LBA与L2P Base6中的某一项LBA相吻合。
在最后利用L2P Base5对应的更新记录对各个Base进行数据恢复时,L2P Base5对应的4K的L2P Delta中,除了涉及L2P Base5的Delta,其余每一个Delta 都会被使用到。
应用本发明实施例所提供的技术方案,在SSD运行的过程中,按照快照式进行L2P的存储,即在接收到任一操作指令时,对操作指令引起的L2P表的更新进行记录;当更新记录将预设的第一大小的空间填充满时,从L2P表中选取出1段以将预设的第二大小的空间填充满;其中,L2P表被划分为连续的N段,且按照连续且循环的方式从L2P表中进行段的选取;进而便可以将更新记录以及对应的段保存至闪存中。
当SSD在保存第i段的数据时掉电,在下一次上电恢复的过程中,本申请从第i+1段开始,按照连续且循环的方式,利用N段各自对应的更新记录,对各个段进行数据恢复。本申请考虑到,在利用第k段所对应的更新记录进行恢复时,对于涉及到第k+1至第i段的更新记录,由于这些更新记录所对应的段存储到闪存的时间晚于存储第k段的时间,也即这些更新记录已经在后续保存的段中得到了体现,因此不必利用这些更新记录进行段的恢复,因此将这些更新记录确定为第一类记录,并不利用第一类记录进行段的数据的恢复。而对于涉及到第k段的更新记录,也在保存的第k段中得到了体现。因此,只有涉及到第i+1至第k-1段的更新记录,确定为第二类记录,并利用第二类记录进行段的数据的恢复。由于本申请中排除了第一类记录,降低了只利用第二类记录进行段的数据的恢复,也就有利于降低L2P的上电恢复时间。
在本发明的一种具体实施方式中,步骤S101中描述的对操作指令引起的 L2P表的更新进行记录,可以包括:
第一个步骤:记录操作指令所针对的逻辑块地址LBA;
第二个步骤:将由操作指令引起的改变后的新的物理块地址New_PBA与更新前的L2P表中对应于LBA的旧的物理块地址Old_PBA进行异或,得到异或值Xored_PBA,以使得操作指令对应的更新记录中包括LBA以及对应的 Xored_PBA。
由前述的描述可知,利用每一个Delta进行相应的L2P Base的恢复时,如果Delta保存的是NEW_PBA和LKM_LBA,则需要利用一次读取操作以及两次异或操作。而该种实施方式中,考虑到加快SSD上电恢复时间,特别是企业级 SSD对上电时间的高要求,因此Delta中保存的不是通常方案中的NEW_PBA 和LKM_LBA,而是Xored_PBA和LKM_LBA。Xored_PBA指的是New_PBA 和Old_PBA的异或值,因此,在后续进行L2P Base的恢复时,可以直接将 Xored_PBA与相应的L2P Base中存储的Old_PBA进行异或,根据异或的原理,可以得知,该次异或后的结果便是NEW_PBA,即可以使得L2P Base中的存储从Old_PBA变为NEW_PBA。
可以看出,该种实施方式中,利用每一个Delta进行相应的L2P Base的恢复时,只需要利用异或操作,即节约了一次读取操作以及一次异或操作的耗时,也就以利于进一步地缩短SSD上电恢复时间。
在本发明的一种具体实施方式中,在得到更新记录时,按照操作指令所针对的LBA的奇偶性分别保存针对奇数LBA的更新记录以及针对偶数LBA的更新记录,以使得上电恢复的过程中,对应于奇数LBA的更新记录与对应于偶数 LBA的更新记录由不同的硬件核进行处理。
相较于单硬件核的处理方式,该种实施方式中,按照操作指令所针对的LBA 的奇偶性分别保存针对奇数LBA的更新记录以及针对偶数LBA的更新记录,即某一次产生的16K的数据中,4K的L2P Delta中的每一个Delta中的LBA均为奇数或者均为偶数。这样使得在上电恢复过程中,对应于奇数LBA的更新记录与对应于偶数LBA的更新记录由不同的硬件核进行处理,可以缩短一半的上电恢复时间。
进一步的,在一种具体实施方式中,在利用N段各自对应的更新记录,对各个段进行数据恢复之后,还可以包括:输出数据恢复完毕的提示信息,以提示工作人员数据恢复完毕。
相应于上面的方法实施例,本发明实施例还提供了一种缩短SSD上电恢复时间的系统,可与上文相互对应参照。
参见图2所示,为本发明中一种缩短SSD上电恢复时间的系统的结构示意图,包括:
更新模块201,用于在SSD运行的过程中,在接收到任一操作指令时,对操作指令引起的L2P表的更新进行记录;
更新记录产生模块202,用于当更新记录将预设的第一大小的空间填充满时,从L2P表中选取出1段以将预设的第二大小的空间填充满;其中,L2P表被划分为连续的N段,且按照连续且循环的方式从L2P表中进行段的选取;第 i段和第k段均为N段中的任意一段,N为正整数;
更新记录保存模块203,用于将更新记录以及对应的段保存至闪存中;
上电恢复模块204,用于当SSD在保存第i段的数据时掉电,在下一次上电恢复的过程中,从第i+1段开始,按照连续且循环的方式,利用N段各自对应的更新记录,对各个段进行数据恢复;并且,在利用第k段所对应的更新记录进行恢复时,对于涉及到第k至第i段的更新记录,确定为第一类记录,并不利用第一类记录进行段的数据的恢复;对于涉及到第i+1至第k-1段的更新记录,确定为第二类记录,并利用第二类记录进行段的数据的恢复。
在本发明的一种具体实施方式中,更新模块201,具体用于:
在SSD运行的过程中,在接收到任一操作指令时,记录操作指令所针对的逻辑块地址LBA,并记录由操作指令引起的改变后的新的物理块地址 New_PBA。
在本发明的一种具体实施方式中,更新模块201,具体用于:
在SSD运行的过程中,在接收到任一操作指令时,记录操作指令所针对的逻辑块地址LBA;
将由操作指令引起的改变后的新的物理块地址New_PBA与更新前的L2P 表中对应于LBA的旧的物理块地址Old_PBA进行异或,得到异或值 Xored_PBA,以使得操作指令对应的更新记录中包括LBA以及对应的 Xored_PBA。
在本发明的一种具体实施方式中,预设的第一大小的空间为4K,预设的第二大小的空间为12K。
在本发明的一种具体实施方式中,在得到更新记录时,按照操作指令所针对的LBA的奇偶性分别保存针对奇数LBA的更新记录以及针对偶数LBA的更新记录,以使得上电恢复的过程中,对应于奇数LBA的更新记录与对应于偶数 LBA的更新记录由不同的硬件核进行处理。
在本发明的一种具体实施方式中,还包括:提示信息输出模块,用于在上电恢复模块204利用N段各自对应的更新记录,对各个段进行数据恢复之后,输出数据恢复完毕的提示信息。
相应于上面的方法和系统实施例,本发明实施例还提供了一种缩短SSD上电恢复时间的设备以及一种计算机可读存储介质,可与上文相互对应参照。
参阅图3,该缩短SSD上电恢复时间的设备可以包括:
存储器301,用于存储计算机程序;
处理器302,用于执行计算机程序以实现上述任一实施例中的缩短SSD上电恢复时间的方法的步骤。
计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述任一实施例中的缩短SSD上电恢复时间的方法的步骤。这里所说的计算机可读存储介质包括随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的技术方案及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
Claims (10)
1.一种缩短SSD上电恢复时间的方法,其特征在于,包括:
在SSD运行的过程中,在接收到任一操作指令时,对所述操作指令引起的L2P表的更新进行记录;
当更新记录将预设的第一大小的空间填充满时,从所述L2P表中选取出1段以将预设的第二大小的空间填充满;
其中,L2P表被划分为连续的N段,且按照连续且循环的方式从L2P表中进行段的选取;第i段和第k段均为N段中的任意一段,N为正整数;
将所述更新记录以及对应的段保存至闪存中;
当所述SSD在保存第i段的数据时掉电,在下一次上电恢复的过程中,从第i+1段开始,按照连续且循环的方式,利用N段各自对应的更新记录,对各个段进行数据恢复;并且,在利用第k段所对应的更新记录进行恢复时,对于涉及到第k至第i段的更新记录,确定为第一类记录,并不利用第一类记录进行段的数据的恢复;对于涉及到第i+1至第k-1段的更新记录,确定为第二类记录,并利用第二类记录进行段的数据的恢复。
2.根据权利要求1所述的缩短SSD上电恢复时间的方法,其特征在于,所述对所述操作指令引起的L2P表的更新进行记录,包括:
记录所述操作指令所针对的逻辑块地址LBA,并记录由所述操作指令引起的改变后的新的物理块地址New_PBA。
3.根据权利要求1所述的缩短SSD上电恢复时间的方法,其特征在于,所述对所述操作指令引起的L2P表的更新进行记录,包括:
记录所述操作指令所针对的逻辑块地址LBA;
将由所述操作指令引起的改变后的新的物理块地址New_PBA与更新前的所述L2P表中对应于所述LBA的旧的物理块地址Old_PBA进行异或,得到异或值Xored_PBA,以使得所述操作指令对应的更新记录中包括所述LBA以及对应的所述Xored_PBA。
4.根据权利要求1所述的缩短SSD上电恢复时间的方法,其特征在于,预设的第一大小的空间为4K,预设的第二大小的空间为12K。
5.根据权利要求1至4任一项所述的缩短SSD上电恢复时间的方法,其特征在于,在得到更新记录时,按照操作指令所针对的LBA的奇偶性分别保存针对奇数LBA的更新记录以及针对偶数LBA的更新记录,以使得上电恢复的过程中,对应于奇数LBA的更新记录与对应于偶数LBA的更新记录由不同的硬件核进行处理。
6.根据权利要求1所述的缩短SSD上电恢复时间的方法,其特征在于,在利用N段各自对应的更新记录,对各个段进行数据恢复之后,还包括:
输出数据恢复完毕的提示信息。
7.一种缩短SSD上电恢复时间的系统,其特征在于,包括:
更新模块,用于在SSD运行的过程中,在接收到任一操作指令时,对所述操作指令引起的L2P表的更新进行记录;
更新记录产生模块,用于当更新记录将预设的第一大小的空间填充满时,从所述L2P表中选取出1段以将预设的第二大小的空间填充满;其中,L2P表被划分为连续的N段,且按照连续且循环的方式从L2P表中进行段的选取;第i段和第k段均为N段中的任意一段,N为正整数;
更新记录保存模块,用于将所述更新记录以及对应的段保存至闪存中;
上电恢复模块,用于当所述SSD在保存第i段的数据时掉电,在下一次上电恢复的过程中,从第i+1段开始,按照连续且循环的方式,利用N段各自对应的更新记录,对各个段进行数据恢复;并且,在利用第k段所对应的更新记录进行恢复时,对于涉及到第k至第i段的更新记录,确定为第一类记录,并不利用第一类记录进行段的数据的恢复;对于涉及到第i+1至第k-1段的更新记录,确定为第二类记录,并利用第二类记录进行段的数据的恢复。
8.根据权利要求7所述的缩短SSD上电恢复时间的系统,其特征在于,所述更新模块,具体用于:
在SSD运行的过程中,在接收到任一操作指令时,记录所述操作指令所针对的逻辑块地址LBA;
将由所述操作指令引起的改变后的新的物理块地址New_PBA与更新前的所述L2P表中对应于所述LBA的旧的物理块地址Old_PBA进行异或,得到异或值Xored_PBA,以使得所述操作指令对应的更新记录中包括所述LBA以及对应的所述Xored_PBA。
9.一种缩短SSD上电恢复时间的设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序以实现如权利要求1至6任一项所述的缩短SSD上电恢复时间的方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的缩短SSD上电恢复时间的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910866505.9A CN110647295B (zh) | 2019-09-12 | 2019-09-12 | 缩短ssd上电恢复时间的方法、系统、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910866505.9A CN110647295B (zh) | 2019-09-12 | 2019-09-12 | 缩短ssd上电恢复时间的方法、系统、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110647295A CN110647295A (zh) | 2020-01-03 |
CN110647295B true CN110647295B (zh) | 2022-07-22 |
Family
ID=69010512
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910866505.9A Active CN110647295B (zh) | 2019-09-12 | 2019-09-12 | 缩短ssd上电恢复时间的方法、系统、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110647295B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111338846B (zh) * | 2020-02-16 | 2023-01-10 | 苏州浪潮智能科技有限公司 | 一种基于多核恢复l2p表的方法和装置 |
CN112306417B (zh) * | 2020-11-09 | 2022-09-20 | 苏州浪潮智能科技有限公司 | 一种ssd缩短上电恢复时间的方法 |
CN112631950B (zh) * | 2020-12-11 | 2022-07-19 | 苏州浪潮智能科技有限公司 | 一种l2p表的保存方法、系统、设备以及介质 |
CN113625953B (zh) * | 2021-06-30 | 2023-08-22 | 苏州浪潮智能科技有限公司 | 一种数据处理方法、装置、设备及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107656875B (zh) * | 2017-09-15 | 2020-05-15 | 至誉科技(武汉)有限公司 | 作为系统盘的固态硬盘缩短上电时间的方法及系统 |
CN109918318A (zh) * | 2019-03-06 | 2019-06-21 | 苏州浪潮智能科技有限公司 | Ssd元数据管理方法、装置、设备及可读存储介质 |
-
2019
- 2019-09-12 CN CN201910866505.9A patent/CN110647295B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110647295A (zh) | 2020-01-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110647295B (zh) | 缩短ssd上电恢复时间的方法、系统、设备及存储介质 | |
US10990526B1 (en) | Handling asynchronous power loss in a memory sub-system that programs sequentially | |
US8578242B1 (en) | Data storage device employing seed array for data path protection | |
US7639537B2 (en) | Method for writing data in a non volatile memory unit | |
US8726126B2 (en) | Non-regular parity distribution detection via metadata tag | |
CN111078662B (zh) | 一种区块链数据存储方法与装置 | |
US9575844B2 (en) | Mass storage device and method of operating the same to back up data stored in volatile memory | |
CN111192620B (zh) | 一种SSD中优化NAND Flash读参考电压的方法 | |
US20190332480A1 (en) | Method, device and computer program product for detecting incomplete write of data | |
US20170357547A1 (en) | Redundant disk array system and data storage method thereof | |
CN113608701A (zh) | 一种存储系统中数据管理方法和固态硬盘 | |
US11650880B2 (en) | Write hole protection method and system for raid, and storage medium | |
CN112000513A (zh) | 一种计算机及其vpd数据操作方法、装置、存储介质 | |
CN105095101A (zh) | 向存储器写入数据的方法及装置、智能卡 | |
US9286936B1 (en) | Zone based band mapping | |
CN115220967A (zh) | 固态硬盘内存容错性提升方法、装置和计算机设备 | |
EP2820548B1 (en) | Versioned memories using a multi-level cell | |
CN115039343A (zh) | 用于存储器装置的连续单调计数器 | |
CN115509466B (zh) | 一种数据管理方法、装置及电子设备和存储介质 | |
US20180357158A1 (en) | Storage device and data management method of storage device | |
US20060117213A1 (en) | Efficient maintenance of memory list | |
CN112463460B (zh) | 一种基于纠删码的小块数据恢复方法及系统 | |
CN112540866B (zh) | 存储器装置及其数据存取方法 | |
CN117112310B (zh) | 后台任务进度保存和恢复方法、装置、设备及存储介质 | |
CN116364163B (zh) | 一种基于nand闪存控制器的纠错方法及系统 |
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 |