CN112632643A - 防止闪存数据丢失的方法、固态硬盘控制器、固态硬盘 - Google Patents
防止闪存数据丢失的方法、固态硬盘控制器、固态硬盘 Download PDFInfo
- Publication number
- CN112632643A CN112632643A CN202011595224.3A CN202011595224A CN112632643A CN 112632643 A CN112632643 A CN 112632643A CN 202011595224 A CN202011595224 A CN 202011595224A CN 112632643 A CN112632643 A CN 112632643A
- Authority
- CN
- China
- Prior art keywords
- page
- data
- slow
- physical
- backup
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
- G06F21/79—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
-
- 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/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- 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/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1456—Hardware arrangements for backup
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/16—Protection against loss of memory contents
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明涉及固态硬盘控制技术,特别涉及一种防止闪存数据丢失的方法、固态硬盘控制器、固态硬盘。该方法包括:当检测到固态硬盘产生掉电行为,并且发生所述掉电行为时所写入的页为快页超页,则获取所述快页超页对应的慢页所在目标段的编号;根据所述编号获取所述目标段的备份数据和第一慢页数据;根据所述备份数据和所述第一慢页数据计算恢复第二慢页数据,本发明能够解决共享物理页问题,提高闪存数据的稳定性,并且不需要额外增加成本。
Description
技术领域
本发明涉及固态硬盘控制技术,特别涉及一种防止闪存数据丢失的方法、固态硬盘控制器、固态硬盘。
背景技术
固态硬盘(Solid State Drives,SSD)是采用固态电子存储芯片阵列而制成的硬盘,已被广泛应用于各种场合,由于其在性能、功耗、环境适应性等方面的优秀指标,正逐步替换传统的硬盘。目前无论是SSD消费级市场还是企业级市场,TLC闪存成为当前主流的存储介质。
TLC闪存的一个单元(cell)可表示3个比特,128K个cell构成一个字线,字线中所有cell的第1个比特构成慢页(Lower Page),第2个和第3个比特分别构成快页(UpperPage)和超页(Extra Page)。我们称一个字线中的3个物理页为共享物理页。TLC闪存物理字线的写入方式又分为两种,分别为one pass和two pass。所谓two pass写入方式指的是第一步主控将慢页写入闪存字线,第二步主控将快页和超页一起写入闪存字线,之后整个字线中所有的cell才会保持在稳定的状态。然而,在上述第二步写入时如果发生异常掉电,不仅导致字线中当前写入的数据丢失,连之前成功写入慢页中的数据也会丢失。对主机而言,慢页的数据丢失是不可接受的,因为在执行上述第二步之前SSD主控就会告知主机,慢页的数据已成功写入闪存。
为解决上述问题,相关技术给主电源配置备用电源,当主电源异常掉电后,备用电源介入工作。但是,电容的备电能力会随着使用时间变长而减弱,在SSD的生命后期,电容的实际备电能力不能满足初始设计的要求,此时大概率仍会出现第二步在写入数据时异常掉电的情况。为此,相关技术还选择了采用备电能力超级强的电容,但是该电容价格也比较昂贵。因此,如何在不额外增加成本的情况下成功解决由于SSD异常掉电而导致的共享物理页的问题,具有重要意义。
发明内容
本发明实施方式主要解决的技术问题是如何在不额外增加成本的情况下成功解决由于SSD异常掉电而导致的共享物理页的问题。
为解决上述技术问题,本发明实施方式采用的一个技术方案是:提供一种防止闪存数据丢失的方法,包括:
当检测到固态硬盘产生掉电行为,并且发生所述掉电行为时所写入的页为快页超页,则获取所述快页超页对应的慢页所在目标段的编号;
根据所述编号获取所述目标段的备份数据和第一慢页数据;
根据所述备份数据和所述第一慢页数据计算恢复第二慢页数据。
可选地,所述获取所述快页超页对应的慢页所在目标段的编号,包括:
获取所述快页超页对应的慢页的物理页编号,以及固定步长,所述固定步长用于表示一个共享物理页的慢页与快页超页的序号间隔长度;
根据所述物理页编号和所述固定步长计算所述快页超页对应的慢页所在目标段的编号。
可选地,所述获取所述快页超页对应的慢页的物理页编号,以及固定步长具体包括:
获取所述快页超页对应的慢页在TLC物理块中的物理页编号,以及所述TLC物理块对应的固定步长。
可选地,所述根据所述编号获取所述目标段的备份数据和第一慢页数据,包括:
从SLC备份物理块中查找所述目标段的编号,并读取所述目标段的编号对应的备份数据;其中,所述备份数据是在所述固态硬盘未掉电时根据所述第一慢页数据和所述第二慢页数据计算得到的,并且保存在所述SLC备份物理块中;
从所述TLC物理块中读取所述目标段的编号对应的物理页中未丢失的慢页数据,所述未丢失的慢页数据构成所述第一慢页数据。
可选地,所述备份数据为异或数据,所述异或数据是将所述未丢失的慢页数据与所述第二慢页数据进行异或运算后得到的。
可选地,所述方法还包括:在物理块中对所述备份数据进行备份;
其中,所述在物理块中对所述备份数据进行备份,包括:
擦除SLC备份物理块;
根据闪存特性对TLC物理块划分目标段;
按顺序将物理页写入划分好的所述目标段中;
在一个所述目标段的物理页写完时,读取所述一个目标段中的全部慢页数据,并计算所述全部慢页数据,以获得所述一个目标段中的全部慢页数据对应的计算结果;
将所述计算结果保存至所述SLC备份物理块的物理页中,并且所述SLC备份物理块的物理页的页号为所述计算结果对应的目标段的编号。
可选地,在对当前目标段开始写入数据前,对所述当前目标段的上一个目标段执行所述在物理块中对所述备份数据进行备份的步骤。
可选地,所述根据所述备份数据和所述第一慢页数据计算恢复第二慢页数据包括:
将所述备份数据与所述第一慢页数据进行异或运算,所述异或运算的结果为所述第二慢页数据。
为解决上述技术问题,本发明实施方式采用的另一个技术方案是:提供一种固态硬盘控制器,包括:至少一个处理器;以及存储器,所述存储器中存储有程序;当所述程序被所述至少一个处理器执行时,所述程序使所述固态硬盘控制器执行如上所述的方法。
为解决上述技术问题,本发明实施方式采用的又一个技术方案是:提供一种固态硬盘,包括:如上所述的固态硬盘控制器,以及与所述固态硬盘控制器通信连接的至少一个闪存介质。
区别于相关技术的情况,本发明实施例通过在检测到固态硬盘产生掉电行为,并且发生所述掉电行为时所写入的页为快页超页,则获取所述快页超页对应的慢页所在目标段的编号;根据所述编号获取所述目标段的备份数据和第一慢页数据;根据所述备份数据和所述第一慢页数据计算恢复第二慢页数据,。通过将物理块划分出目标段,从而可根据目标段的备份数据和第一慢页数据计算得到用于恢复丢失数据的第二慢页数据,相比较于现有技术,本发明实施例提供的防止闪存数据丢失的方法、固态硬盘控制器以及固态硬盘能够解决共享物理页问题,提高闪存数据的稳定性,并且不需要额外增加成本。
附图说明
一个或多个实施例通过与之对应的附图进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1是本发明实施例提供的一种防止闪存数据丢失的方法的流程图;
图2是本发明实施例提供的TLC闪存中一个平面(Plane)的构成的示意图;
图3是本发明实施例提供的所述目标段中物理页的写入流程示意图;
图4是本发明实施例提供的备份物理块中数据的写入流程示意图;
图5是本发明实施例提供的针对TLC闪存对所述目标段的备份数据进行备份和恢复的示意图;
图6是本发明实施例提供的一种固态硬盘控制器20的硬件结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
本发明实施例提供的防止闪存数据丢失的方法、固态硬盘控制器以及固态硬盘,根据共享物理页问题的特性,将物理页分割成多个目标段,一个目标段中包括慢页、快页和超页,每一个目标段中的慢页对应的快页和超页都在下一个目标段中。鉴于在对快页和超页写操作时发生掉电情况会导致快页和超页对应的慢页的数据丢失,而所述慢页是位于上一个目标段中的,在其写入后,固态硬盘会通知主机该慢页数据写入闪存成功,因此,如果当前慢页的数据丢失了,对于主机来说是不可接受的。基于此,本发明实施例通过获取所述目标段中所有的慢页数据对应的备份数据,将所述备份数据进行备份,当所述目标段中的某一慢页的数据丢失时,根据所述备份数据和所述目标段中其他未丢失的慢页的数据计算获得丢失的慢页的数据,从而恢复所述慢页的数据。由此,保障闪存的数据的稳定性,并且不需要增加其他成本。
具体地,请参阅图1,图1是本发明实施例提供的一种防止闪存数据丢失的方法的流程图。所述方法包括:
S101、当检测到固态硬盘产生掉电行为,并且发生所述掉电行为时所写入的页为快页超页,则获取所述快页超页对应的慢页所在目标段的编号;
其中,所述获取所述快页超页对应的慢页所在目标段的编号,包括:
获取所述快页超页对应的慢页的物理页编号,以及固定步长,所述固定步长用于表示一个共享物理页的慢页与快页超页的序号间隔长度;
根据所述物理页编号和所述固定步长计算所述快页超页对应的慢页所在目标段的编号。
其中,所述获取所述快页超页对应的慢页的物理页编号,以及固定步长具体包括:
获取所述快页超页对应的慢页在TLC物理块中的物理页编号,以及所述TLC物理块对应的固定步长。
S102、根据所述编号获取所述目标段的备份数据和第一慢页数据;
所述根据所述编号获取所述目标段的备份数据和第一慢页数据,包括:从SLC备份物理块中查找所述目标段的编号,并读取所述目标段的编号对应的备份数据;其中,所述备份数据是在所述固态硬盘未掉电时根据所述第一慢页数据和所述第二慢页数据计算得到的,并且保存在所述SLC备份物理块中;从所述TLC物理块中读取所述目标段的编号对应的物理页中未丢失的慢页数据,所述未丢失的慢页数据构成所述第一慢页数据。
其中,所述备份数据为异或数据,所述异或数据是将所述未丢失的慢页数据与所述第二慢页数据进行异或运算后得到的。
S103、根据所述备份数据和所述第一慢页数据计算恢复第二慢页数据。
其中,所述第一慢页数据是一个目标段中未丢失的数据,所述第二慢页数据是所述目标段中丢失的数据。所述备份数据是根据所述第一慢页数据和所述第二慢页数据计算得到的,当需要恢复所述第二慢页数据时,可以根据所述第一慢页数据和所述备份数据计算恢复所述第二慢页数据,比如,将所述第一慢页数据和所述备份数据执行异或运算。另外,需要说明的是,计算所述备份数据是在所述第二慢页数据未丢失前执行的。
下面基于TLC闪存来具体说明上述防止闪存数据丢失的方法,该过程主要包括划分目标段、备份数据的计算、备份数据的备份以及丢失数据的恢复。
本发明实施例主要解决的就是共享物理页问题,所谓共享物理页问题即是:一个物理单元(cell)是被两个页(page)所共享,一个单元中的两个比特被映射到两个不同的逻辑页中,那么当对其中一个比特进行写入操作时(无论是MSB还是LSB),如果突然掉电,那么,这个单元中的数据势必会丢失,也就是说,两个页中的数据都会出现错误。
可以知道的,当前主流的存储介质TLC闪存的一个cell可表示3比特,字线中所有cell的第1个比特构成慢页,第2个和第3个比特分别构成快页和超页,称一个字线中的三个物理页为共享物理页。其中,慢页、快页和超页互相关联。
在本实施例中,当固态硬盘产生掉电行为时,如果当前正在写操作的对象是所述快页超页,则确定所述快页超页关联的慢页的数据存在丢失的风险,因此,本实施例的防止闪存数据丢失的方法主要针对的是防止所述慢页的数据丢失。
请参阅图2,图2是TLC闪存中一个平面(Plane)的构成的示意图,该Plane包括一页寄存器和若干物理页。写入数据时,SSD主控首先将16KB数据传输至页寄存器,然后闪存将页寄存器中的数据写入到闪存的物理页中。通过图2可知Plane中某个物理块中所有的共享物理页的位置关系,其中,图2中物理页的序号(比如36、37、38、39等)就是写入顺序,每一虚线链接一组共享物理页,比如,图2中物理页62(慢页)和物理页132(快页)、物理页133(超页)共同构成所述共享物理页,即这三个物理页在物理上为同一字线。通过图2可知,物理页的慢页和快页超页的序号之间会间隔固定步长,比如图2中该固定步长是70。其中,所述固定步长是由TLC闪存的3D堆叠特性决定的。
基于上述TLC闪存的特性,在本实施例中,将一个平面中的全部物理页划分为多个目标段。其中,划分所述目标段的方法包括:获取所述物理页的序号,以及所述固定步长;根据所述物理页的序号和所述固定步长将全部的物理页等分为多干目标段,每一所述目标段中所包含的物理页的数量相同,并且都包括慢页、快页和超页,而且每一个目标段中的任何一个慢页对应的快页和超页都在下一个目标段中。比如,图2中,物理页65(慢页)对应的快页和超页在目标段x+1中,即物理页135(快页)和物理页136(超页)。划分好的所述目标段具体可参见图2,目标段x对应的物理页包括物理页60至物理页131;目标段x+1对应的物理页包括物理页132至物理页203;等。
请参阅图3,图3是所述目标段中物理页的写入流程示意图。如图3所示,首先主控写入下一个物理页k;判断所述物理页k是否是慢页,若不是慢页,则继续写入下一个物理页,若是慢页,则判断所述物理页k是否是最后一个慢页;若所述物理页k是最后一个慢页,则将目标段中所有慢页数据进行计算获得备份数据,并将备份数据写入到备份物理块中,接下来再对下一个物理页进行写入,以备份下一个目标段对应的数据;其中,若所述物理页k不是最后一个慢页,则主控继续写入下一个物理页。
可以知道的,平面Plane中TLC物理页的写入顺序是按照慢页、快页超页、慢页、快页超页……这种方式进行的。如果当前发生异常掉电,并且正在针对慢页写操作,此时会造成慢页的数据丢失,固态硬盘不会向主机反馈数据写入完成的通知,也即是说,该慢页丢失的数据是允许的,并且与该慢页关联的快页和超页是在后面写入,其本来就还没来得及写入数据,所以也不会对快页和超页造成影响。如果当前发生异常掉电,并且正在针对快页超页写操作,此时会造成快页超页的数据丢失,以及该快页超页关联的慢页的数据丢失,而在对快页超页写操作之前就已经完成了对其关联的慢页的写操作,并且固态硬盘已经上报主机该部分数据写入完成,但实际上当前所述慢页的数据已经丢失了。
基于上述特性可知,在对快页超页写操作且发生异常掉电时,是会造成其关联的慢页的数据丢失的,并且最多只会造成一个慢页的数据丢失,也即是该快页超页关联的慢页的数据会丢失,所述目标段中的其他慢页数据是完好的。因此,在一个目标段的慢页数据都写入完成时,计算所述目标段中全部的慢页数据以获得备份数据,并将所述备份数据进行备份;或者,在对当前目标段开始写入数据前,对所述当前目标段的上一个目标段中的慢页数据进行计算,获得备份数据,并将所述备份数据进行备份。
其中,所述备份数据用于在其对应的目标段的下一个目标段中的快页超页写操作时发生异常掉电的情况下,通过将所述备份数据,以及所述备份数据对应的目标段中的未丢失的慢页数据进行计算,从而获得丢失的慢页的数据。
例如,假设一个慢页的数据由4(实际上有几十万个)比特组成,而且一个目标段中有4个慢页,即,
慢页a=[0,1,1,1];
慢页b=[1,0,0,1];
慢页c=[0,0,0,1];
慢页d=[1,0,0,0];
将慢页a、慢页b、慢页c和慢页d进行异或计算,获得备份数据,即是:
XOR=a⊕b⊕c⊕d=[0,1,1,1];
固态硬盘上电后发现慢页d数据丢失了,则主控读出数据慢页a,慢页b,慢页c,XOR,并将它们进行异或计算,异或结果就等于慢页d的数据,即慢页d=a⊕b⊕c⊕XOR=[1,0,0,0]。
需要说明的是,上述仅作为如何恢复丢失的数据的一个示例,其中采用异或计算的方式来恢复丢失的数据,除了异或计算的方式之外,还可以采用其他方式,而不仅限于异或。
下面再介绍如何对所述备份数据进行备份。备份数据的备份是在对数据进行恢复之前执行的。
请参阅图4,图4是备份物理块中数据的写入流程示意图。如图4所示,首先擦除SLC备份物理块;根据闪存特性对TLC物理块划分目标段;按顺序将物理页写入所述目标段中;判断所述目标段中的数据是否写完,若没有写完,则继续按顺序将物理页写入所述目标段中,若已经写完,则将所述目标段中的所有慢页数据读出并进行计算(比如是异或计算),得到计算结果,将所述计算结果保存至SLC备份物理块中;接下来继续对下一个SLC备份物理块执行上述写入流程。
请参阅图5,图5是针对TLC闪存对所述目标段的备份数据进行备份和恢复的示意图。其中,主控为闪存的每个平面Plane都配置一个SLC模式的物理块,作为备份模块。SLC模式的物理块具有性能高,寿命高,容量低的特点,并且SLC模式的物理块的写入方式为onepass,即天然的不存在共享物理页的问题。因此,本实施例采用SLC备份物理块作为备份块。
其中,将一个目标段中全部慢页数据的计算结果保存至所述SLC备份物理块的物理页中,并且所述SLC备份物理块的物理页的页号为所述计算结果对应的目标段的编号。
当需要恢复数据时,根据数据丢失的慢页所在目标段的编号,从所述SLC备份物理块中获得所述备份数据,再与所述慢页所在目标段中的其他未丢失数据的慢页的数据一起进行计算,获得所述慢页丢失的数据。
上述是将一个目标段的全部慢页数据的计算结果进行备份,而不是备份一个目标段中的所有的慢页数据,因此,在解决共享物理页问题的同时还提高了数据备份的效率。
例如,每个目标段中有72/3=24个慢页,所以备份一个目标段中所有慢页数据花费的时间=读24个SLC物理页耗时+写1个SLC物理页耗时=24*30us+300us=1020us,所以备份整个TLC物理块中慢页数据我们只需要1020us*segment个数=1020us*(720/72)=10200us时间。
而如果是对一个目标段中的全部慢页数据都进行备份,即每写完一个慢页数据后,主控立马发一个Copy Back命令(闪存芯片的功能,能将同一个Plane中某个物理页数据拷贝到另一个物理页中)将慢页中的数据写入备份物理块的SLC物理页中。但是这么做,等价于所有慢页的写入时间增加了T_copyback(Copy Back耗时=读SLC物理页耗时+写SLC物理页耗时~=30us+300us=330us)的时间,假设一个物理块中有720个物理页(即有240个SLC物理页),那么备份一个TLC物理块中所有慢页数据花费的总时间=330*240=79200us。
相比较来说,本申请的数据备份方式明显提升了数据备份效率,降低了时间耗费,能够以极小的性能代价解决共享物理页的问题。
本实施例是针对TLC物理页划分若干个目标段,并将每个目标段中全部的慢页数据的计算结果分别备份至SLC备份物理块中,当TLC物理页中的某一快页超页写操作时发生了异常掉电的情况时,获取所述快页超页所在的目标段的上一个目标段的编号,根据所述上一个目标段的编号从所述SLC备份物理块中获得备份数据,并将所述备份数据与未丢失数据的慢页数据进行计算,从而获得丢失的慢页数据。本实施例提供的方法能够解决共享物理页问题,提高闪存数据的稳定性,并且不需要额外增加成本。
需要说明的是,上述是针对TLC类型的物理块,而对于其他类型的物理块,比如MLC类型的物理块,也可以基于上述相同的发明构思来解决共享物理页的问题,MLC类型的物理块也存在共享物理页问题,其备份的数据也可存储于SLC类型的物理块。
请参阅图6,图6是本发明实施例提供的一种固态硬盘控制器20的硬件结构示意图,该固态硬盘控制器20可用于执行如上所述的防止闪存数据丢失的方法,该固态硬盘控制器20包括:一个或多个处理器21以及存储器22,图6中以一个处理器21为例。
处理器21和存储器22可以通过总线或其他方式连接,图6中以通过总线连接为例。
存储器22作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本发明实施例中的防止闪存数据丢失的方法对应的程序指令/模块。处理器21通过运行存储在存储器22中的非易失性软件程序、指令以及模块,从而执行固态硬盘控制器的各种功能应用以及数据处理,即实现上述方法实施例防止闪存数据丢失的方法。
存储器22可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序。此外,存储器22可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器22可选包括相对于处理器21远程设置的存储器。
所述一个或者多个模块存储在所述存储器22中,当被所述一个或者多个处理器21执行时,执行上述任意方法实施例中的防止闪存数据丢失的方法,例如,执行以上描述的图1、图2、图3中的方法步骤。
上述产品可执行本发明实施例所提供的方法,具备执行方法相应的功能模块。未在本实施例中详尽描述的技术细节,可参见本发明实施例所提供的方法。
本实施例提供的固态硬盘控制器,通过在检测到固态硬盘产生掉电行为,并且发生所述掉电行为时所写入的页为快页超页,则获取所述快页超页对应的慢页所在目标段的编号;根据所述编号获取所述目标段的备份数据和第一慢页数据;根据所述备份数据和所述第一慢页数据计算第二慢页数据,所述第二慢页数据用于恢复所述慢页丢失的数据。通过将物理块划分出目标段,从而可根据目标段的备份数据和第一慢页数据计算得到用于恢复丢失数据的第二慢页数据,相比较于现有技术,本发明实施例提供的固态硬盘控制器能够解决共享物理页问题,提高闪存数据的稳定性,并且不需要额外增加成本。
本发明实施例还提供一种固态硬盘,所述固态硬盘包括上述实施例所述的固态硬盘控制器20,以及至少一个闪存介质。所述固态硬盘控制器20与所述至少一个闪存介质通信连接。
本实施例提供的固态硬盘,通过在检测到固态硬盘产生掉电行为,并且发生所述掉电行为时所写入的页为快页超页,则获取所述快页超页对应的慢页所在目标段的编号;根据所述编号获取所述目标段的备份数据和第一慢页数据;根据所述备份数据和所述第一慢页数据计算第二慢页数据,所述第二慢页数据用于恢复所述慢页丢失的数据。通过将物理块划分出目标段,从而可根据目标段的备份数据和第一慢页数据计算得到用于恢复丢失数据的第二慢页数据,相比较于现有技术,本发明实施例提供的固态硬盘能够解决共享物理页问题,提高闪存数据的稳定性,并且不需要额外增加成本。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
通过以上的实施方式的描述,本领域普通技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;在本发明的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本发明的不同方面的许多其它变化,为了简明,它们没有在细节中提供;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (10)
1.一种防止闪存数据丢失的方法,其特征在于,包括:
当检测到固态硬盘产生掉电行为,并且发生所述掉电行为时所写入的页为快页超页,则获取所述快页超页对应的慢页所在目标段的编号;
根据所述编号获取所述目标段的备份数据和第一慢页数据;
根据所述备份数据和所述第一慢页数据计算恢复第二慢页数据。
2.根据权利要求1所述的方法,其特征在于,所述获取所述快页超页对应的慢页所在目标段的编号,包括:
获取所述快页超页对应的慢页的物理页编号,以及固定步长,所述固定步长用于表示一个共享物理页的慢页与快页超页的序号间隔长度;
根据所述物理页编号和所述固定步长计算所述快页超页对应的慢页所在目标段的编号。
3.根据权利要求2所述的方法,其特征在于,所述获取所述快页超页对应的慢页的物理页编号,以及固定步长具体包括:
获取所述快页超页对应的慢页在TLC物理块中的物理页编号,以及所述TLC物理块对应的固定步长。
4.根据权利要求3所述的方法,其特征在于,所述根据所述编号获取所述目标段的备份数据和第一慢页数据,包括:
从SLC备份物理块中查找所述目标段的编号,并读取所述目标段的编号对应的备份数据;其中,所述备份数据是在所述固态硬盘未掉电时根据所述第一慢页数据和所述第二慢页数据计算得到的,并且保存在所述SLC备份物理块中;
从所述TLC物理块中读取所述目标段的编号对应的物理页中未丢失的慢页数据,所述未丢失的慢页数据构成所述第一慢页数据。
5.根据权利要求4所述的方法,其特征在于,所述备份数据为异或数据,所述异或数据是将所述未丢失的慢页数据与所述第二慢页数据进行异或运算后得到的。
6.根据权利要求1至5任一项所述的方法,其特征在于,所述方法还包括:在物理块中对所述备份数据进行备份;
其中,所述在物理块中对所述备份数据进行备份包括:
擦除SLC备份物理块;
根据闪存特性对TLC物理块划分目标段;
按顺序将物理页写入划分好的所述目标段中;
在一个所述目标段的物理页写完时,读取所述一个目标段中的全部慢页数据,并计算所述全部慢页数据,以获得所述一个目标段中的全部慢页数据对应的计算结果;
将所述计算结果保存至所述SLC备份物理块的物理页中,并且所述SLC备份物理块的物理页的页号为所述计算结果对应的目标段的编号。
7.根据权利要求6所述的方法,其特征在于,
在对当前目标段开始写入数据前,对所述当前目标段的上一个目标段执行所述在物理块中对所述备份数据进行备份的步骤。
8.根据权利要求5所述的方法,其特征在于,所述根据所述备份数据和所述第一慢页数据计算恢复第二慢页数据包括:
将所述备份数据与所述第一慢页数据进行异或运算,所述异或运算的结果为所述第二慢页数据。
9.一种固态硬盘控制器,其特征在于,包括:
至少一个处理器;
以及存储器,所述存储器中存储有程序;
当所述程序被所述至少一个处理器执行时,所述程序使所述固态硬盘控制器执行权利要求1至8任一项所述的方法。
10.一种固态硬盘,其特征在于,包括:权利要求9所述的固态硬盘控制器,以及与所述固态硬盘控制器通信连接的至少一个闪存介质。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011595224.3A CN112632643A (zh) | 2020-12-29 | 2020-12-29 | 防止闪存数据丢失的方法、固态硬盘控制器、固态硬盘 |
PCT/CN2021/121393 WO2022142544A1 (zh) | 2020-12-29 | 2021-09-28 | 防止闪存数据丢失的方法、固态硬盘控制器、固态硬盘 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011595224.3A CN112632643A (zh) | 2020-12-29 | 2020-12-29 | 防止闪存数据丢失的方法、固态硬盘控制器、固态硬盘 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112632643A true CN112632643A (zh) | 2021-04-09 |
Family
ID=75287151
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011595224.3A Pending CN112632643A (zh) | 2020-12-29 | 2020-12-29 | 防止闪存数据丢失的方法、固态硬盘控制器、固态硬盘 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112632643A (zh) |
WO (1) | WO2022142544A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113342577A (zh) * | 2021-06-24 | 2021-09-03 | 长江存储科技有限责任公司 | 存储设备及其数据恢复方法 |
CN113448778A (zh) * | 2021-07-15 | 2021-09-28 | 华东师范大学 | 一种混合式ssd中关键数据的备份方法 |
WO2022142544A1 (zh) * | 2020-12-29 | 2022-07-07 | 深圳大普微电子科技有限公司 | 防止闪存数据丢失的方法、固态硬盘控制器、固态硬盘 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116543822B (zh) * | 2023-05-15 | 2024-04-05 | 深圳市领德创科技有限公司 | 一种应用于固态硬盘的闪存测试及处理方法和系统 |
CN117995261A (zh) * | 2024-03-21 | 2024-05-07 | 星汉智能科技股份有限公司 | 一种智能卡断电测试方法、装置以及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101483067A (zh) * | 2008-01-11 | 2009-07-15 | 群联电子股份有限公司 | 快闪存储器数据写入方法及其快闪存储器控制器 |
CN102591748A (zh) * | 2011-12-29 | 2012-07-18 | 记忆科技(深圳)有限公司 | 固态硬盘及其掉电保护方法、系统 |
CN103279402A (zh) * | 2013-05-13 | 2013-09-04 | 记忆科技(深圳)有限公司 | 基于多层单元固态硬盘的数据恢复方法及固态硬盘 |
US8902652B1 (en) * | 2014-05-13 | 2014-12-02 | Sandisk Technologies Inc. | Systems and methods for lower page writes |
US20150089325A1 (en) * | 2013-09-24 | 2015-03-26 | Sandisk Technologies Inc. | Method and device for write abort protection |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112632643A (zh) * | 2020-12-29 | 2021-04-09 | 深圳大普微电子科技有限公司 | 防止闪存数据丢失的方法、固态硬盘控制器、固态硬盘 |
-
2020
- 2020-12-29 CN CN202011595224.3A patent/CN112632643A/zh active Pending
-
2021
- 2021-09-28 WO PCT/CN2021/121393 patent/WO2022142544A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101483067A (zh) * | 2008-01-11 | 2009-07-15 | 群联电子股份有限公司 | 快闪存储器数据写入方法及其快闪存储器控制器 |
CN102591748A (zh) * | 2011-12-29 | 2012-07-18 | 记忆科技(深圳)有限公司 | 固态硬盘及其掉电保护方法、系统 |
CN103279402A (zh) * | 2013-05-13 | 2013-09-04 | 记忆科技(深圳)有限公司 | 基于多层单元固态硬盘的数据恢复方法及固态硬盘 |
US20150089325A1 (en) * | 2013-09-24 | 2015-03-26 | Sandisk Technologies Inc. | Method and device for write abort protection |
US8902652B1 (en) * | 2014-05-13 | 2014-12-02 | Sandisk Technologies Inc. | Systems and methods for lower page writes |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022142544A1 (zh) * | 2020-12-29 | 2022-07-07 | 深圳大普微电子科技有限公司 | 防止闪存数据丢失的方法、固态硬盘控制器、固态硬盘 |
CN113342577A (zh) * | 2021-06-24 | 2021-09-03 | 长江存储科技有限责任公司 | 存储设备及其数据恢复方法 |
CN113342577B (zh) * | 2021-06-24 | 2023-11-03 | 长江存储科技有限责任公司 | 存储设备及其数据恢复方法 |
CN113448778A (zh) * | 2021-07-15 | 2021-09-28 | 华东师范大学 | 一种混合式ssd中关键数据的备份方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2022142544A1 (zh) | 2022-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112632643A (zh) | 防止闪存数据丢失的方法、固态硬盘控制器、固态硬盘 | |
US11243709B2 (en) | Data storage apparatus and operating method thereof | |
CN103488583B (zh) | 一种高性能高可靠的固态盘实现方法 | |
CN101256842B (zh) | 纠错码控制器和包括该纠错码控制器的存储器系统 | |
KR101623119B1 (ko) | 솔리드 스테이트 드라이브의 에러 제어 방법 | |
US10120769B2 (en) | Raid rebuild algorithm with low I/O impact | |
US11010065B2 (en) | Read retry method for solid state storage device | |
CN113168875A (zh) | 读取干扰扫描合并 | |
CN107885620B (zh) | 一种提高固态盘阵列性能和可靠性的方法及系统 | |
CN113227959A (zh) | 具有读取错误处理的存储器控制器 | |
US20230025642A1 (en) | Memory device equipped with data protection scheme | |
US11914876B2 (en) | Asynchronous power loss handling approach for a memory sub-system | |
CN103530206A (zh) | 一种数据恢复的方法和设备 | |
US11487609B2 (en) | Separating parity data from host data in a memory sub-system | |
CN107329850B (zh) | 一种满足海量读写次数操作的存储器及数据存储方法 | |
CN109542671B (zh) | 校验数据生成方法及固态硬盘 | |
CN111221681A (zh) | 一种存储器的修复方法及装置 | |
CN115237351B (zh) | Nand块动态重映射、读写命令处理方法及存储设备 | |
CN109375869A (zh) | 实现数据可靠读写的方法以及系统、存储介质 | |
CN113094307B (zh) | 映射信息管理方法、存储器存储装置及存储器控制器 | |
CN114528145A (zh) | 一种存储系统、操作方法及控制器 | |
CN111338846B (zh) | 一种基于多核恢复l2p表的方法和装置 | |
US10817435B1 (en) | Queue-based wear leveling of memory components | |
CN112486419A (zh) | 基于raid5的数据存储方法、装置、恢复方法及固态硬盘 | |
CN111124290A (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 |