CN103279402B - 基于多层单元固态硬盘的数据恢复方法及固态硬盘 - Google Patents

基于多层单元固态硬盘的数据恢复方法及固态硬盘 Download PDF

Info

Publication number
CN103279402B
CN103279402B CN201310174879.7A CN201310174879A CN103279402B CN 103279402 B CN103279402 B CN 103279402B CN 201310174879 A CN201310174879 A CN 201310174879A CN 103279402 B CN103279402 B CN 103279402B
Authority
CN
China
Prior art keywords
page
data
solid state
hard disc
state hard
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
Application number
CN201310174879.7A
Other languages
English (en)
Other versions
CN103279402A (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.)
Ramaxel Technology Shenzhen Co Ltd
Original Assignee
Ramaxel Technology Shenzhen 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 Ramaxel Technology Shenzhen Co Ltd filed Critical Ramaxel Technology Shenzhen Co Ltd
Priority to CN201310174879.7A priority Critical patent/CN103279402B/zh
Publication of CN103279402A publication Critical patent/CN103279402A/zh
Priority to PCT/CN2014/076999 priority patent/WO2014183586A1/zh
Application granted granted Critical
Publication of CN103279402B publication Critical patent/CN103279402B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • G06F2212/1036Life time enhancement
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0409Online test

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明适用于存储技术领域,提供了一种基于多层单元固态硬盘的数据恢复方法,所述方法包括:建立couple page关系表;建立历史数据窗口,并在运行时刻动态维护所述历史数据窗口;所述固态硬盘的逻辑块在写入数据时,若编程出错,则检查所述逻辑块的数据是否有损坏,若是则根据所述couple page关系表及运行时刻动态历史数据窗口恢复所述被损坏的数据。本发明还相应的提供一种实现上述方法的固态硬盘。借此,本发明的多层单元固态硬盘出现编程错误而导致对应Couple Low Page数据丢失时,能够恢复其对应的数据,降低了用户数据丢失的风险,提高了固态硬盘的可靠性。

Description

基于多层单元固态硬盘的数据恢复方法及固态硬盘
技术领域
本发明涉及存储技术领域,尤其涉及一种基于多层单元固态硬盘的数据恢复方法及固态硬盘。
背景技术
目前固态硬盘内部,NAND端完成数据写入后即释放对应的Buffer,使得可以重新装载Host端数据。这在通常情形下或者SLC(Single-Level Cell,单层单元)NAND的情形下没有问题,但是对于目前大量应用的MLC(Multi-Level Cell,多层单元)NAND,MLC Nand Flash相对SLC Nand flash有更高的存储密度,在固态硬盘领域有着越来越广泛的应用。MLC Nand Flash一个存储单元(memorycell)可以存储2bits的信息,这2bits分属于两个不同的page,这样的一组page叫couple pages,如图1所示,存低位比特的叫low page,存高位比特的叫up page,它执行写有以下两个约束:1)Low page必须在up page之前被写入;2)Up page在写入过程中被打断,比如异常掉电,up page的信息会丢失,而且它对应的lowpage的信息也可能会丢失,而low page不会影响其up page。由于Couple Page的存在,使得当前的写入点可能影响到先前写入的数据正确性。
综上可知,现有的多层固态硬盘及其数据的恢复方法,在实际使用上显然存在不便与缺陷,所以有必要加以改进。
发明内容
针对上述的缺陷,本发明的目的在于提供一种基于多层单元固态硬盘的数据恢复方法及固态硬盘,其可以降低用户数据丢失的风险,提高固态硬盘的可靠性。
为了实现上述目的,本发明提供一种基于多层单元固态硬盘的数据恢复方法,所述方法包括:
建立couple page关系表;
建立历史数据窗口,并在运行时刻动态维护所述历史数据窗口;
所述固态硬盘的逻辑块在写入数据时,若编程出错,则检查所述逻辑块的数据是否有损坏,若是则根据所述couple page关系表及运行时刻动态历史数据窗口恢复所述被损坏的数据。
根据本发明的基于多层单元固态硬盘的数据恢复方法,所述历史数据窗口是根据所述Couple Page关系表,以及最大的Couple Page间隔建立的;
所述历史数据窗口随着所述固态硬盘的NAND数据写入读出点的移动而平滑移动。
根据本发明的基于多层单元固态硬盘的数据恢复方法,所述根据所述couplepage关系表及运行时刻动态历史数据窗口恢复所述数据步骤包括:
根据所述逻辑块中编程出错的逻辑页号查询所述couple page关系表,所述逻辑页包括高位页和低位页;
若所述couple page关系表没有所述逻辑页的记录,则获取另一新的逻辑块;
依次将所述编程出错的逻辑页所在的所述逻辑块中的数据读出,并写入到所述新的逻辑块中对应的逻辑页。
根据本发明的基于多层单元固态硬盘的数据恢复方法,所述方法还包括:
若所述couple page关系表具有所述逻辑页的记录,则获取所述逻辑页的低位页号;
读取所述低位页数据,并判断所述低位页数据是否出错;
若所述低位页数据出错,则将出错标志标识为所述低位页号;
获取另一新的逻辑块;
依次将所述编程出错的逻辑页所在的所述逻辑块中的数据读出,所述出错标志对应的低位页号,从所述历史数据窗口恢复数据来代替从所述逻辑块的逻辑页读取,并写入到所述新的逻辑块中对应的逻辑页。
根据本发明的基于多层单元固态硬盘的数据恢复方法,所述编程出错的逻辑页所在的所述逻辑块的数据完全写入到所述新的逻辑块中后,将所述编程出错的逻辑页所在的所述逻辑块标志为坏块。
本发明还提供一种固态硬盘,包括:
第一建立模块,用于建立couple page关系表;
第二建立模块,用于建立历史数据窗口,并在运行时刻动态维护所述历史数据窗口;;
数据检测模块,用于所述固态硬盘的逻辑块在写入数据时,若编程出错,则检查所述逻辑块的数据是否有损坏;
数据恢复模块,用于根据所述couple page关系表及运行时刻动态历史数据窗口恢复所述被损坏的数据。
根据本发明的固态硬盘,所述第二建立模块根据所述Couple Page关系表,以及最大的Couple Page间隔建立所述历史数据窗口,并在运行时刻动态维护所述历史数据窗口;
所述历史数据窗口随着所述固态硬盘的NAND数据写入读出点的移动而平滑移动。
根据本发明的固态硬盘,所述数据恢复模块包括:
查询子模块,用于根据所述逻辑块中编程出错的逻辑页号查询所述couplepage关系表,所述逻辑页包括高位页和低位页;
第一获取子模块,用于所述couple page关系表没有所述逻辑页的记录时获取另一新的逻辑块;
写入子模块,用于依次将所述编程出错的逻辑页所在的所述逻辑块中的数据读出,并写入到所述新的逻辑块中对应的逻辑页。
根据本发明的固态硬盘,所述数据检测模块包括:
第二获取子模块,用于所述couple page关系表具有所述逻辑页的记录时获取所述逻辑页的低位页号;
判断子模块,用于读取所述低位页数据,并判断所述低位页数据是否出错;
标识子模块,用于所述低位页数据出错时将出错标志标识为所述低位页号;
所述写入子模块进一步用于将所述出错标志对应的低位页号,从所述历史数据窗口恢复数据来代替从所述逻辑块的逻辑页读取,并写入到所述新的逻辑块中对应的逻辑页。
根据本发明的固态硬盘,所述固态硬盘还包括标志模块,用于所述编程出错的逻辑页所在的所述逻辑块的数据完全写入到所述新的逻辑块中后,将所述编程出错的逻辑页所在的所述逻辑块标志为坏块。
本发明通过建立couple page关系表及运行时刻动态历史数据窗口,在固态硬盘的逻辑块在写入数据时,若编程出错,则检查所述逻辑块的数据是否有损坏,若有损坏,则固态硬盘可以根据所述couple page关系表及运行时刻动态历史数据窗口恢复所述被损坏的数据。更好的是,固态硬盘还可以在所述编程出错的逻辑页所在的所述逻辑块的数据完全写入到所述新的逻辑块中后,将所述编程出错的逻辑页所在的所述逻辑块标志为坏块,在以后的使用周期中不再使用。借此,本发明的多层单元固态硬盘出现编程错误而导致对应Couple Low Page数据丢失时,能够恢复其对应的数据,降低了用户数据丢失的风险,提高了固态硬盘的可靠性。
附图说明
图1是现有技术的固态硬盘内couple page分布结构示意图;
图2是本发明一实施例的固态硬盘的结构示意图;
图3是本发明另一实施例的固态硬盘的结构示意图;
图4A是本发明一实施例的第一数据写入状态示意图;
图4B是本发明一实施例的第二数据写入状态示意图;
图4C是本发明一实施例的第三数据写入状态示意图;
图4D是本发明一实施例的第四数据写入状态示意图;
图5是本发明一实施例的数据恢复方法流程图;
图6是本发明另一实施例的数据恢复方法流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参见图2,本发明提供了一种基于多层闪存单元的固态硬盘,该固态硬盘100包括第一建立模块10、第二建立模块20、数据检测模块30及数据恢复模块40,其中:
第一建立模块10,用于建立couple page关系表。本发明中的couple page的分布同现有技术的图1相同,每个Block(逻辑块)内Page_00和Page_06为一对Couple Page,其中Page00为Low Page,Page_06为Up Page。如背景技术描述,此对Page(逻辑页)的编程必须遵循MLC的规则。建立关系表如下:
Up Page NO. Low Page NO.
6 0
7 1
10 4
11 5
250 244
251 245
上表中第一列为Up Page编号,第二列为关联的Low Page编号。
第二建立模块20,用于建立历史数据窗口,并在运行时刻动态维护历史数据窗口。数据缓冲区每个单位为NAND Page大小,左侧为主机数据写入,右侧为读出写入到NAND设备。结合图4A和图4D,本发明根据前面所建立的CouplePage关系表,以及最大的Couple Page间隔(在本实施例中为6),引入历史数据窗口,可以在前述Up Page编程出错的情形下,恢复Low Page的数据。
进一步地,运行时刻动态历史数据窗口会随着NAND端NAND数据写入读出点的移动而平滑移动,从而释放出空余给主机端写入。如图4B所示,当完成某个Page的数据正确写入后,读指针和窗口均移动一格。
数据检测模块30,用于所述固态硬盘100的逻辑块在写入数据时,若编程出错,则检查所述逻辑块的数据是否有损坏。现有技术已经说明对于Couple page数据,若其Up Page数据出错,则会影响到对应的Low page的数据,因此当编程出错时,数据检测模块30可以检测数据的出错状态。
数据恢复模块40,用于根据所述couple page关系表及运行时刻动态历史数据窗口恢复所述被损坏的数据。当Couple page数据中的Low数据受损后,数据恢复模块40通过其关系表查询,并从缓存中读取受损的数据。
需要说明的,由于上述的历史数据窗口仅仅存在于内存中,掉电后会丢失。上电后写入新的数据前,为保证动态历史数据窗口的保护机制,需要重建该历史数据窗口。结合图4C,从NAND最后写入Block的最后写入点起往前加载6个Page,如期间到达该Block起始Page,则停止加载。完成后,历史数据窗口包含最后写入点前可能受影响的所有Low Page数据。复位主机写指针以及NAND数据写入读出点,指向历史数据窗口的下一个数据缓冲区,从而避免覆盖先前重建出来的Low Page数据。
再结合图3所示实施例,该实施例中,所述数据恢复模块40包括:
查询子模块41,用于根据所述逻辑块中编程出错的逻辑页号查询所述couplepage关系表,所述逻辑页包括高位页(Up Page)和低位页(Low Page)。
第一获取子模块42,用于所述couple page关系表没有所述逻辑页的记录时获取另一新的逻辑块,具体可以直接从***备用Block申请新的Block。
写入子模块43,用于依次将所述编程出错的逻辑页所在的所述逻辑块中的数据读出,并写入到所述新的逻辑块中对应的逻辑页。编程出错的Page数据因为没有写入成功,所以其缓冲区中数据仍然存在,使用该数据写入新的Block对应Page;如果出错标识为有效值,则跳过读该Page,而从历史数据窗口中恢复。
进一步的,所述数据检测模块30包括:
第二获取子模块31,用于所述couple page关系表具有所述逻辑页的记录时获取所述逻辑页的低位页号。
判断子模块32,用于读取所述低位页数据,并判断所述低位页数据是否出错。具体的,判断子模块32读取Low Page,根据返回状态是否出错做标志,如果出错,则交由标识子模块33处理。
标识子模块33,用于所述低位页数据出错时将出错标志标识为低位页号(Low Page)。
标识结束后,再通过第一获取子模块42,获取另一新的逻辑块,具体可以直接从***备用Block申请新的Block。以及通过写入子模块43恢复数据,所述写入子模块43将所述出错标志对应的低位页号,从所述历史数据窗口恢复数据来代替从所述逻辑块的逻辑页读取,并写入到所述新的逻辑块中对应的逻辑页。
优选的,固态硬盘100还包括标志模块50,用于所述编程出错的逻辑页所在的所述逻辑块的数据完全写入到所述新的逻辑块中后,将所述编程出错的逻辑页所在的所述逻辑块标志为坏块,在以后的使用周期中不再使用。
本发明的固态硬盘引入内部数据缓冲区管理策略,当MLC NAND出现编程错误而导致对应Couple Low Page数据丢失时,能够恢复其对应的数据,降低了用户数据丢失的风险。进一步地,通过本发明的错误检测/处理机制,可以进一步避免后续潜在的风险,提高了固态硬盘的可靠性。
参见图5,本发明提供了一种基于多层单元固态硬盘的数据恢复方法,其可通过如图2所示的固态硬盘实现,该方法包括:
步骤S501,建立couple page关系表。本发明中的couple page的分布同现有技术的图1相同,每个Block(逻辑块)内Page_00和Page_06为一对Couple Page,其中Page00为Low Page,Page_06为Up Page。如背景技术描述,此对Page(逻辑页)的编程必须遵循MLC的规则。
步骤S502,建立并运行时刻动态维护历史数据窗口。数据缓冲区每个单位为NAND Page大小,左侧为主机数据写入,右侧为读出写入到NAND设备。结合图4A,本发明根据前面所建立的Couple Page关系表,以及最大的CouplePage间隔(在本实施例中为6),引入历史数据窗口,可以在前述Up Page编程出错的情形下,恢复Low Page的数据。进一步地,运行时刻动态历史数据窗口会随着NAND端读出写入点的移动而平滑移动,从而释放出空余给主机端写入。如图4C所示,当完成某个Page的数据正确写入后,读指针和窗口均移动一格。
步骤S503,所述固态硬盘100的逻辑块在写入数据时,若编程出错,则检查所述逻辑块的数据是否有损坏。现有技术已经说明对于Couple page数据,若其Up Page数据出错,则会影响到对应的Low page的数据,因此当编程出错时,固态硬盘100可以检测数据的出错状态。
步骤S504,根据所述couple page关系表及运行时刻动态历史数据窗口恢复所述被损坏的数据。当Couple page数据中的Low数据受损后,数据恢复模块40通过其关系表查询,并从缓存中读取受损的数据。
再参见图6,本发明提供了另一种基于多层单元固态硬盘的数据恢复方法,其可通过如图3所示的固态硬盘100实现,该方法包括:
步骤S601,初始化错误标志位Page_From_History_Window为无效果值0xFFFF。
步骤S602,根据所述Block中编程出错的Page号查询所述couple page关系表,所述Page包括Up page和Low page,若所述关系表中具有记录则执行步骤S603,否则执行步骤S605。
步骤S603,读取Low page数据,并判断所述Low page数据是否出错,若出错,则执行步骤S604。
步骤S604,将错误标志位Page_From_History_Window标识为所述Low page号。
步骤S605,获取另一新的逻辑块,具体可以直接从***备用Block申请新的Block。
步骤S606,依次将所述编程出错的逻辑页所在的所述逻辑块中的数据读出,并写入到所述新的逻辑块中对应的逻辑页。编程出错的Page数据因为没有写入成功,所以其缓冲区中数据仍然存在,使用该数据写入新的Block对应Page;如果出错标识为有效值,则跳过读该Page,所述出错标志对应的低位页号,从所述历史数据窗口恢复数据来代替从所述逻辑块的逻辑页读取,并写入到所述新的逻辑块中对应的逻辑页,实现从历史数据窗口读取恢复。
优选的,固态硬盘100还可以在所述编程出错的逻辑页所在的所述逻辑块的数据完全写入到所述新的逻辑块中后,将所述编程出错的逻辑页所在的所述逻辑块标志为坏块,在以后的使用周期中不再使用。
综上所述,本发明通过建立couple page关系表及运行时刻动态历史数据窗口,在固态硬盘的逻辑块在写入数据时,若编程出错,则检查所述逻辑块的数据是否有损坏,若有损坏,则固态硬盘可以根据所述couple page关系表及运行时刻动态历史数据窗口恢复所述被损坏的数据。更好的是,固态硬盘还可以在所述编程出错的逻辑页所在的所述逻辑块的数据完全写入到所述新的逻辑块中后,将所述编程出错的逻辑页所在的所述逻辑块标志为坏块,在以后的使用周期中不再使用。借此,本发明的多层单元固态硬盘出现编程错误而导致对应Couple Low Page数据丢失时,能够恢复其对应的数据,降低了用户数据丢失的风险,提高了固态硬盘的可靠性。
当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。

Claims (8)

1.一种基于多层单元固态硬盘的数据恢复方法,其特征在于,所述方法包括:
建立couple page关系表;
建立历史数据窗口,并在运行时刻动态维护所述历史数据窗口;
所述固态硬盘的逻辑块在写入数据时,若编程出错,则检查所述逻辑块的数据是否有损坏,若是则根据所述couple page关系表及运行时刻动态历史数据窗口恢复所述被损坏的数据,所述被损坏的数据为在所述couple page关系表中的下页的数据;
所述历史数据窗口是根据所述Couple Page关系表,以及最大的Couple Page间隔建立的;
所述历史数据窗口随着所述固态硬盘的NAND数据写入读出点的移动而平滑移动;
所述历史数据窗口存储于所述固态硬盘的数据缓冲区中。
2.根据权利要求1所述的基于多层单元固态硬盘的数据恢复方法,其特征在于,所述根据所述couple page关系表及运行时刻动态历史数据窗口恢复所述数据步骤包括:
根据所述逻辑块中编程出错的逻辑页号查询所述couple page关系表,所述逻辑页包括高位页和低位页;
若所述couple page关系表没有所述逻辑页的记录,则获取另一新的逻辑块;
依次将所述编程出错的逻辑页所在的所述逻辑块中的数据读出,并写入到所述新的逻辑块中对应的逻辑页。
3.根据权利要求2所述的基于多层单元固态硬盘的数据恢复方法,其特征在于,所述方法还包括:
若所述couple page关系表具有所述逻辑页的记录,则获取所述逻辑页的低位页号;
读取所述低位页数据,并判断所述低位页数据是否出错;
若所述低位页数据出错,则将出错标志标识为所述低位页号;
获取另一新的逻辑块;
依次将所述编程出错的逻辑页所在的所述逻辑块中的数据读出,所述出错标志对应的低位页号,从所述历史数据窗口恢复数据来代替从所述逻辑块的逻
辑页读取,并写入到所述新的逻辑块中对应的逻辑页。
4.根据权利要求2或3所述的基于多层单元固态硬盘的数据恢复方法,其特征在于,所述编程出错的逻辑页所在的所述逻辑块的数据完全写入到所述新的逻辑块中后,将所述编程出错的逻辑页所在的所述逻辑块标志为坏块。
5.一种固态硬盘,其特征在于,包括:
第一建立模块,用于建立couple page关系表;
第二建立模块,用于建立历史数据窗口,并在运行时刻动态维护所述历史数据窗口;
数据检测模块,用于所述固态硬盘的逻辑块在写入数据时,若编程出错,则检查所述逻辑块的数据是否有损坏;
数据恢复模块,用于根据所述couple page关系表及运行时刻动态历史数据窗口恢复所述被损坏的数据,所述被损坏的数据为在所述couple page关系表中的下页的数据;
所述第二建立模块根据所述Couple Page关系表,以及最大的Couple Page间隔建立所述历史数据窗口,并在运行时刻动态维护所述历史数据窗口;
所述历史数据窗口随着所述固态硬盘的NAND数据写入读出点的移动而平滑移动;
所述历史数据窗口存储于所述固态硬盘的数据缓冲区中。
6.根据权利要求5所述的固态硬盘,其特征在于,所述数据恢复模块包括:
查询子模块,用于根据所述逻辑块中编程出错的逻辑页号查询所述couplepage关系表,所述逻辑页包括高位页和低位页;
第一获取子模块,用于所述couple page关系表没有所述逻辑页的记录时获取另一新的逻辑块;
写入子模块,用于依次将所述编程出错的逻辑页所在的所述逻辑块中的数据读出,并写入到所述新的逻辑块中对应的逻辑页。
7.根据权利要求6所述的固态硬盘,其特征在于,所述数据检测模块包括:
第二获取子模块,用于所述couple page关系表具有所述逻辑页的记录时获取所述逻辑页的低位页号;
判断子模块,用于读取所述低位页数据,并判断所述低位页数据是否出错;
标识子模块,用于所述低位页数据出错时将出错标志标识为所述低位页号;
所述写入子模块进一步用于将所述出错标志对应的低位页号,从所述历史数据窗口恢复数据来代替从所述逻辑块的逻辑页读取,并写入到所述新的逻辑块中对应的逻辑页。
8.根据权利要求6或7所述的固态硬盘,其特征在于,所述固态硬盘还包括标志模块,用于所述编程出错的逻辑页所在的所述逻辑块的数据完全写入到所述新的逻辑块中后,将所述编程出错的逻辑页所在的所述逻辑块标志为坏块。
CN201310174879.7A 2013-05-13 2013-05-13 基于多层单元固态硬盘的数据恢复方法及固态硬盘 Active CN103279402B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201310174879.7A CN103279402B (zh) 2013-05-13 2013-05-13 基于多层单元固态硬盘的数据恢复方法及固态硬盘
PCT/CN2014/076999 WO2014183586A1 (zh) 2013-05-13 2014-05-08 基于多层单元固态硬盘的数据恢复方法及固态硬盘

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310174879.7A CN103279402B (zh) 2013-05-13 2013-05-13 基于多层单元固态硬盘的数据恢复方法及固态硬盘

Publications (2)

Publication Number Publication Date
CN103279402A CN103279402A (zh) 2013-09-04
CN103279402B true CN103279402B (zh) 2016-08-10

Family

ID=49061931

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310174879.7A Active CN103279402B (zh) 2013-05-13 2013-05-13 基于多层单元固态硬盘的数据恢复方法及固态硬盘

Country Status (2)

Country Link
CN (1) CN103279402B (zh)
WO (1) WO2014183586A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103279402B (zh) * 2013-05-13 2016-08-10 记忆科技(深圳)有限公司 基于多层单元固态硬盘的数据恢复方法及固态硬盘
CN109815157B (zh) * 2017-11-22 2022-06-17 北京忆芯科技有限公司 编程命令处理方法与装置
CN112596949B (zh) * 2020-12-23 2022-12-16 厦门市美亚柏科信息股份有限公司 一种高效率的ssd删除数据恢复方法及***
CN112632643A (zh) * 2020-12-29 2021-04-09 深圳大普微电子科技有限公司 防止闪存数据丢失的方法、固态硬盘控制器、固态硬盘
CN114115745B (zh) * 2021-11-30 2023-07-04 深圳忆联信息***有限公司 多Pass编程NAND的RAID优化方法、装置及计算机设备

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101231885A (zh) * 2007-01-23 2008-07-30 海力士半导体有限公司 快闪存储器件和操作该器件的方法
CN101483067A (zh) * 2008-01-11 2009-07-15 群联电子股份有限公司 快闪存储器数据写入方法及其快闪存储器控制器
CN102566939A (zh) * 2011-12-19 2012-07-11 记忆科技(深圳)有限公司 一种固态硬盘及其读-修改-写操作的数据管理方法
CN102637197A (zh) * 2012-02-28 2012-08-15 中北大学 实时数据采集存储***的文件管理方法
CN102789422A (zh) * 2012-06-25 2012-11-21 记忆科技(深圳)有限公司 固态硬盘的数据写入方法及***
CN102789368A (zh) * 2012-06-21 2012-11-21 记忆科技(深圳)有限公司 一种固态硬盘及其数据管理方法、***
CN103064755A (zh) * 2013-01-25 2013-04-24 珠海全志科技股份有限公司 Nand闪存写数据处理方法和装置
CN103092765A (zh) * 2012-12-31 2013-05-08 记忆科技(深圳)有限公司 固态存储***、装置及数据写入方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8910020B2 (en) * 2011-06-19 2014-12-09 Sandisk Enterprise Ip Llc Intelligent bit recovery for flash memory
CN102591748A (zh) * 2011-12-29 2012-07-18 记忆科技(深圳)有限公司 固态硬盘及其掉电保护方法、***
CN103279402B (zh) * 2013-05-13 2016-08-10 记忆科技(深圳)有限公司 基于多层单元固态硬盘的数据恢复方法及固态硬盘

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101231885A (zh) * 2007-01-23 2008-07-30 海力士半导体有限公司 快闪存储器件和操作该器件的方法
CN101483067A (zh) * 2008-01-11 2009-07-15 群联电子股份有限公司 快闪存储器数据写入方法及其快闪存储器控制器
CN102566939A (zh) * 2011-12-19 2012-07-11 记忆科技(深圳)有限公司 一种固态硬盘及其读-修改-写操作的数据管理方法
CN102637197A (zh) * 2012-02-28 2012-08-15 中北大学 实时数据采集存储***的文件管理方法
CN102789368A (zh) * 2012-06-21 2012-11-21 记忆科技(深圳)有限公司 一种固态硬盘及其数据管理方法、***
CN102789422A (zh) * 2012-06-25 2012-11-21 记忆科技(深圳)有限公司 固态硬盘的数据写入方法及***
CN103092765A (zh) * 2012-12-31 2013-05-08 记忆科技(深圳)有限公司 固态存储***、装置及数据写入方法
CN103064755A (zh) * 2013-01-25 2013-04-24 珠海全志科技股份有限公司 Nand闪存写数据处理方法和装置

Also Published As

Publication number Publication date
WO2014183586A1 (zh) 2014-11-20
CN103279402A (zh) 2013-09-04

Similar Documents

Publication Publication Date Title
US11347403B2 (en) Extending the life of a solid state drive by using MLC flash blocks in SLC mode
US9558839B2 (en) Power fail saving modes in solid state drive with MLC memory
US8046645B2 (en) Bad block identifying method for flash memory, storage system, and controller thereof
US8909986B2 (en) Data storing method for solid state drive to preserve data integrity after power failure
CN103279402B (zh) 基于多层单元固态硬盘的数据恢复方法及固态硬盘
CN103502958B (zh) 逻辑地址转译
CN103270500B (zh) 事务日志恢复
US8386905B2 (en) Error correcting method, and memory controller and memory storage system using the same
TWI645404B (zh) 資料儲存裝置以及非揮發式記憶體操作方法
CN104461391A (zh) 一种存储设备元数据管理处理方法及***
US20130212344A1 (en) Selective retirement of blocks
CN108733510A (zh) 数据储存装置及映射表重建方法
CN103218274B (zh) 一种预防故障累加的方法和固态硬盘
US8516184B2 (en) Data updating using mark count threshold in non-volatile memory
US9213629B2 (en) Block management method, memory controller and memory stoarge apparatus
US9563498B2 (en) Method for preventing read-disturb errors, memory control circuit unit and memory storage apparatus
CN103955430A (zh) 一种闪存存储设备中数据管理的方法及装置
CN106462500A (zh) 用于执行损耗均衡操作的设备及方法
CN107799150A (zh) 3d nand闪存的错误缓解
DE102016009807A1 (de) Korrelieren von physikalischen seitenadressen für soft-decision-dekodierung
CN104715796A (zh) 多位存储单元非易失性存储器的写入方法及***
CN104765695A (zh) 一种nand flash坏块管理***及方法
CN104794063A (zh) 一种具备电阻式存储器的固态储存装置的控制方法
CN109426441A (zh) 数据储存装置以及其操作方法
CN106164873A (zh) 当到达寿命终止条件时约束写入固态存储器的方法和装置

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