CN111752487A - 一种数据恢复方法、装置及固态硬盘 - Google Patents

一种数据恢复方法、装置及固态硬盘 Download PDF

Info

Publication number
CN111752487A
CN111752487A CN202010561718.3A CN202010561718A CN111752487A CN 111752487 A CN111752487 A CN 111752487A CN 202010561718 A CN202010561718 A CN 202010561718A CN 111752487 A CN111752487 A CN 111752487A
Authority
CN
China
Prior art keywords
memory space
data
memory
solid state
flash memory
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.)
Granted
Application number
CN202010561718.3A
Other languages
English (en)
Other versions
CN111752487B (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.)
Shenzhen Dapu Microelectronics Co Ltd
Original Assignee
Shenzhen Dapu Microelectronics 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 Shenzhen Dapu Microelectronics Co Ltd filed Critical Shenzhen Dapu Microelectronics Co Ltd
Priority to CN202010561718.3A priority Critical patent/CN111752487B/zh
Publication of CN111752487A publication Critical patent/CN111752487A/zh
Priority to PCT/CN2021/089374 priority patent/WO2021253983A1/zh
Priority to US17/951,599 priority patent/US12093140B2/en
Application granted granted Critical
Publication of CN111752487B publication Critical patent/CN111752487B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明实施例涉及固态硬盘应用领域,公开了一种数据恢复方法、装置及固态硬盘,所述方法包括:在固态硬盘发生异常之后,将第一内存空间的内存数据拷贝到第二内存空间的固化区域,再将固化区域的地址信息写入到第三内存空间;在控制器第一次复位之后,根据固化区域的地址信息,恢复第一内存空间的内存数据;根据恢复的第一内存空间的内存数据,将第二内存空间的数据刷入到闪存空间;在控制器第二次复位之后,根据闪存空间的内存数据,对固态硬盘进行数据恢复。通过将第一内存空间的数据写入固化区域,根据固态区域的地址信息恢复第一内存空间的数据,再将其写入到闪存空间中,最后从闪存空间进行数据恢复,本发明能够提高固态硬盘的数据恢复速度。

Description

一种数据恢复方法、装置及固态硬盘
技术领域
本发明涉及固态硬盘应用领域,特别是涉及一种数据恢复方法、装置及固态硬盘。
背景技术
固态硬盘(Solid State Drives,SSD),是采用固态电子存储芯片阵列而制成的硬盘,固态硬盘包括控制单元和存储单元(FLASH存储芯片或DRAM存储芯片)。目前固态硬盘系统中有相当部分是存在动态随机存取存储器(Dynamic Random Access Memory,DRAM)的,所以SSD有较大的数据缓存空间用来缓存数据。
企业SSD系统中通常有较大容量的动态随机存取存储器(Dynamic Random AccessMemory,DRAM),一般按SSD容量的1/1000配置DRAM,如1TB容量的SSD配有1GB的双倍速率同步动态随机存储器(Double Data Rate Synchronous Dynamic Random Access Memory,DDR SRAM)。DRAM中的大部分空间用例存储映射表,还有部分用来作为用户数据的缓存,当前正在写入的日志,以及运行时的配置信息。除了用户数据外,其它存在于DRAM中的数据统称为元数据。在正常下电的情况下,主机会通知盘走正常下电流程,SSD收到命令后会将缓存的用户数据和存在DRAM中的元数据输入到NAND,上电后通过一定的流程恢复出最新的映射表信息和元数据信息。在突然掉电的情况下,用电容提供短时的供电来让DRAM中缓存的用户数据和部分存入DRAM中的元数据下刷到NAND里面,保证用户数据不丢失。
但是在固态硬盘遇到异常,比如固件或SSD硬件逻辑的缺陷时,SSD内的一个或多个部件/软件模块无法正常工作,这时不能保证能将SSD存在于DRAM中的数据刷入到NAND。SSD复位或者被热插拔后,DRAM中的数据就会丢失,由于丢失了重要的元数据,SSD重新上电后就无法正常工作,用户数据全部丢失。
目前,针对SSD固件遇到缺陷造成的异常,现有技术的数据恢复的方式包括通过备份恢复,但这种方式需要上层应用做过备份,而且恢复时间很长,对业务影响很大,或者,在数据出现异常后将数据写入其他非易失性介质,上电时恢复,但这种方式在恢复时,需要SSD固件扫描SSD内部所有的块来重建映射表,导致恢复时间非常长,通常以小时计数。
基于此,现有技术亟待改进。
发明内容
本发明实施例旨在提供一种数据恢复方法、装置及固态硬盘,其解决了目前异常场景下固态硬盘数据恢复时间长的技术问题,提高固态硬盘的数据恢复速度。
为解决上述技术问题,本发明实施例提供以下技术方案:
第一方面,本发明实施例提供一种数据恢复方法,应用于固态硬盘,所述固态硬盘包括第一内存空间、第二内存空间、第三内存空间以及闪存空间,所述方法包括:
在固态硬盘发生异常之后,将第一内存空间的内存数据拷贝到第二内存空间的固化区域,再将所述固化区域的地址信息写入到第三内存空间;
在控制器第一次复位之后,从所述第三内存空间获取所述固化区域的地址信息,根据所述地址信息,恢复所述第一内存空间的内存数据;
根据恢复的第一内存空间的内存数据,将所述第二内存空间的数据刷入到闪存空间;
在控制器第二次复位之后,根据所述闪存空间的内存数据,对所述固态硬盘进行数据恢复。
在一些实施例中,所述固态硬盘还包括:寄存空间,所述寄存空间的数据在控制器复位之后不会被清除,所述将所述固化区域的地址信息写入到第三内存空间之后,所述方法还包括:
生成异常复位标记信息,并将所述异常复位标记信息写入到寄存空间。
在一些实施例中,所述根据恢复的第一内存空间的内存数据,将所述第二内存空间的数据刷入到闪存空间,包括:
根据恢复的第一内存空间的内存数据,获取指向第二内存空间的数据的指针;
根据所述指向第二内存空间的数据的指针,将所述第二内存空间的数据刷入到闪存空间。
在一些实施例中,所述根据恢复的第一内存空间的内存数据,获取指向第二内存空间的数据的指针,包括:
获取指向第二内存空间的用户数据的指针以及指向第二内存空间的元数据的指针。
在一些实施例中,所述根据所述指向第二内存空间的数据的指针,将所述第二内存空间的数据刷入到闪存空间中,包括:
将所述用户数据刷入所述闪存空间的第一预设区域之后,将所述元数据刷入闪存空间的第二预设区域,其中,所述第二预设区域被设置为用于存储元数据。
在一些实施例中,所述方法还包括:
确定所述用户数据的逻辑地址与写入第一预设区域的物理地址的配对映射信息;
将所述用户数据的逻辑地址与写入第一预设区域的物理地址的配对映射信息写入所述第二预设区域。
在一些实施例中,所述在控制器第二次复位之后,根据所述闪存空间的内存数据,对所述固态硬盘进行数据恢复,包括:
根据所述配对映射信息,从所述闪存空间中获取用户数据;
将获取到的用户数据恢复到所述闪存空间中的用户区域,并基于所述配对映射信息,更新映射表。
在一些实施例中,在对所述固态硬盘进行数据恢复之后,所述方法还包括:
进行元数据校验,确定数据一致性。
第二方面,本发明实施例提供一种数据恢复装置,应用于固态硬盘,所述固态硬盘包括第一内存空间、第二内存空间、第三内存空间以及闪存空间,所述装置包括:
异常写入单元,用于在固态硬盘发生异常之后,将第一内存空间的内存数据拷贝到第二内存空间的固化区域,再将所述固化区域的地址信息写入到第三内存空间;
数据拷贝单元,用于在控制器第一次复位之后,从所述第三内存空间获取所述固化区域的地址信息,根据所述地址信息,恢复所述第一内存空间的内存数据;
数据刷入单元,用于根据恢复的第一内存空间的内存数据,将所述第二内存空间的数据刷入到闪存空间;
数据恢复单元,用于在控制器第二次复位之后,根据所述闪存空间的内存数据,对所述固态硬盘进行数据恢复。
在一些实施例中,所述固态硬盘还包括:寄存空间,所述寄存空间的数据在控制器复位之后不会被清除,所述将所述固化区域的地址信息写入到第三内存空间之后,所述装置还包括:
寄存复位标记单元,用于生成异常复位标记信息,并将所述异常复位标记信息写入到寄存空间。
在一些实施例中,所述数据刷入单元,包括:
指针模块,用于根据恢复的第一内存空间的内存数据,获取指向第二内存空间的数据的指针;
刷入模块,用于根据所述指向第二内存空间的数据的指针,将所述第二内存空间的数据刷入到闪存空间。
在一些实施例中,所述指针模块,具体用于:
获取指向第二内存空间的用户数据的指针以及指向第二内存空间的元数据的指针。
在一些实施例中,所述刷入模块,具体用于:
将所述用户数据刷入所述闪存空间的第一预设区域之后,将所述元数据刷入闪存空间的第二预设区域,其中,所述第二预设区域被设置为用于存储元数据。
在一些实施例中,所述刷入模块,还用于:
确定所述用户数据的逻辑地址与写入第一预设区域的物理地址的配对映射信息;
将所述用户数据的逻辑地址与写入第一预设区域的物理地址的配对映射信息写入所述第二预设区域。
在一些实施例中,所述数据恢复单元,具体用于:
根据所述配对映射信息,从所述闪存空间中获取用户数据;
将获取到的用户数据恢复到所述闪存空间中的用户区域,并基于所述配对映射信息,更新映射表。
在一些实施例中,所述装置还包括:
数据一致性单元,用于进行元数据校验,确定数据一致性。
第三方面,本发明实施例提供一种固态硬盘,所述固态硬盘包括:
闪存介质;
主控制器,与所述闪存介质连接,所述主控制器包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述的数据恢复方法。
第四方面,本发明实施例还提供了一种非易失性计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使固态硬盘能够执行如上所述的数据恢复方法。
本发明实施例的有益效果是:区别于现有技术的情况下,本发明实施例提供的一种数据恢复方法,应用于固态硬盘,所述固态硬盘包括第一内存空间、第二内存空间、第三内存空间以及闪存空间,所述方法包括:在固态硬盘发生异常之后,将第一内存空间的内存数据拷贝到第二内存空间的固化区域,再将所述固化区域的地址信息写入到第三内存空间;在控制器第一次复位之后,从所述第三内存空间获取所述固化区域的地址信息,根据所述地址信息,恢复所述第一内存空间的内存数据;根据恢复的第一内存空间的内存数据,将所述第二内存空间的数据刷入到闪存空间;在控制器第二次复位之后,根据所述闪存空间的内存数据,对所述固态硬盘进行数据恢复。通过将第一内存空间的数据写入固化区域,根据固态区域的地址信息恢复第一内存空间的数据,再将其写入到闪存空间中,最后从闪存空间进行数据恢复,本发明能够提高固态硬盘的数据恢复速度。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1是本发明实施例提供的一种固态硬盘的结构示意图;
图2是本发明实施例提供的一种数据恢复方法的流程图;
图3是本发明实施例提供的第一内存空间和第二内存空间的关系示意图;
图4是本发明实施例提供的第一内存空间、第二内存空间和第三内存空间的关系示意图;
图5是本发明实施例提供的一种复位流程的示意图;
图6是图2中的步骤S30的细化流程图;
图7是本发明实施例提供的一种异常恢复流程的示意图;
图8是本发明实施例提供的一种数据恢复装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
企业级SSD有较大的动态随机存取存储器(Dynamic Random Access Memory,DRAM)用来存储映射表,以及缓存用户数据和其它元数据。正常掉电和突然掉电时,有相关流程将DRAM中缓存的用户数据,映射表和其它元数据刷入NAND,在上电后再从NAND中恢复。
SSD内有复杂的硬件、软件逻辑,虽然经过了非常充分的测试,但是遇到低概率的硬件/软件缺陷仍然不可避免。SSD的硬件/固件遇到缺陷时,DRAM中的数据无法下刷,下电再上电后,数据无法恢复,导致用户数据丢失。
目前在遇到异常时重建盘内数据的方法一般都是通过扫描盘内的数据,以及跟数据一起存储的逻辑地址信息来重建映射表,随着SSD容量越来越大,这种方式重建映射表需要的时间越来越长,通常以小时计算。
固态硬盘有多种启动方式,一种是冷启动,这种启动方式是指从完全没有电的状态上电,这种状态下SSD内部的DRAM里面的数据是随机的,无用的数据。另一种叫热启动,指盘在带电的情况下,控制器重置,并重新走初始化流程。在热启动的时候,DRAM的数据能保证跟启动前是一样的。
利用SSD热启动时DRAM中的数据不丢失的特性,在SSD遇到异常时,做一次热启动,来将控制器重置,让控制器恢复到正常状态。在SSD数据恢复正常后,做一次下电流程,将SSD中的数据保存到NAND中。然后再走一次热启动,将控制器重置。SSD内部走一次正常上电流程,将NAND中保存的映射表恢复。
为了能够在控制器复位后能恢复出用户数据,SSD通常会将一些存储于静态随机存取存储器(Static Random Access Memory,SRAM)或耦合内存(Tightly CoupledMemory,TCM)和双倍速率同步动态随机存储器(Double Data Rate Synchronous DynamicRandom Access Memory,DDR SRAM)中的用户数据和元数据必须刷入到NAND中保存起来。复位起来后加载NAND中的数据到SRAM、TCM或DDR中,按一定的恢复流程恢复出元数据(主要是映射表)和用户数据。本发明的控制器的复位后的恢复流程也是基于这个思想,处理在SSD控制器内遇到异常的场景下如何恢复。
下面结合说明书附图阐述本发明的技术方案。
请参阅图1,为本发明实施例提供的一种固态硬盘的结构示意图。
如图1所示,所述固态硬盘100包括闪存介质10以及与所述闪存介质10连接的主控制器20。其中,所述固态硬盘100通过有线或无线的方式与所述主机200通信连接,用以实现数据交互。
闪存介质10,作为所述固态硬盘100的存储介质,也称作闪存、FLASH、FLASH存储器或FLASH颗粒,属于存储器件的一种,是一种非易失性存储器,在没有电流供应的条件下也能够长久地保存数据,其存储特性相当于硬盘,使得闪存介质10得以成为各类便携型数字设备的存储介质的基础。
其中,闪存介质10可以为NAND FLASH,NAND FLASH以单晶体管作为二进制信号的存储单元,其结构与普通的半导体晶体管非常相似,区别在于NAND FLASH的单晶体管加入了浮动栅和控制栅,浮动栅用于贮存电子,表面被一层硅氧化物绝缘体所包覆,并通过电容与控制栅相耦合,当负电子在控制栅的作用下被注入到浮动栅中,NAND FLASH的单晶体的存储状态就由“1”变成了“0”,而当负电子从浮动栅中移走后,存储状态就由“0”变成了“1”,包覆在浮动栅表面的绝缘体用于将浮动栅中的负电子困住,实现数据存储。即NAND FLASH的存储单元为浮动栅晶体管,使用浮动栅晶体管以电荷的形式存储数据。存储电荷的多少与浮动栅晶体管所被施加的电压的大小有关。
一个NAND FLASH包括至少一个Chip芯片,每一个Chip芯片由若干个Block物理块组成,每一个Block物理块包括若干个Page页。其中,Block物理块是NANDFLASH执行擦除操作的最小单位,Page页为NAND FLASH执行读写操作的最小单位,一个NAND FLASH的容量等于其Block物理块的数量*一个Block物理块包含的Page页的数量*一个Page页的容量。具体的,闪存介质10按照存储单元的电压的不同层次,可分为SLC、MLC、TLC以及QLC。
主控制器20,包括第一内存空间21、第二内存空间22、第三内存空间23、处理器24、缓存控制器25、闪存控制器26、数据转换器27以及接口28。
第一内存空间21,连接处理器24,其中,所述第一内存空间21是靠近处理器的一片地址空间,所述处理器访问所述第一内存空间21的速度较快,所述第一内存空间21用于保存需要快速访问的数据,例如指向DDR空间的指针。具体的,所述第一内存空间21为静态随机存取存储器(Static Random Access Memory,SRAM)或者耦合内存(Tightly CoupledMemory,TCM)。
在本发明实施例中,所述第一内存空间包括至少一个与处理器通信连接的存储器,所述存储器中存储有可被至少一个处理器执行的命令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明实施例中的数据恢复方法。
第二内存空间22,连接缓存控制器25,具体的,所述第二内存空间21为DDR空间,即双倍速率同步动态随机存储器(Double DataRate Synchronous Dynamic Random AccessMemory,DDR SRAM),所述第二内存空间22包括固化区域221,所述固化区域用于保存从第一内存空间21拷贝的数据。
第三内存空间23,主要用于缓存主机200发送的读/写指令以及根据主机200发送的读/写指令从闪存介质10获取的读数据或者写数据。第三内存空间23作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。第三内存空间23可以包括存储程序区,存储程序区可存储操作系统、至少一个功能所需要的应用程序。此外,第三内存空间23可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,第三内存空间23可选包括相对于处理器24远程设置的存储器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
处理器24,分别与第一内存空间21、缓存控制器25、闪存控制器26、数据转换器27以及接口28连接,其中,处理器24与第一内存空间21、缓存控制器25、闪存控制器26、数据转换器27以及接口28可以通过总线或者其他方式连接,所述处理器用于运行存储在第一内存空间21中的非易失性软件程序、指令以及模块,从而实现本发明中的数据恢复方法。
缓存控制器25,分别与第二内存空间22、第三内存空间23、处理器24以及闪存控制器26连接,用于控制所述第二内存空间22和第三内存空间23的数据传输。
闪存控制器26,与闪存介质10、数据转换器27以及缓存控制器25连接,用于访问后端的闪存介质10,管理闪存介质10的各种参数和数据I/O;或者,用于提供访问的接口和协议,实现对应的SAS/SATA target协议端或者NVMe协议端,获取Host发出的I/O指令并解码和生成内部私有数据结果等待执行;或者,用于负责闪存转换层(Flash TranslationLayer,FTL)的核心处理。
数据转换器27,分别与处理器24和闪存控制器26连接,所述数据转换器27用于将二进制数据转换为十六进制数据,以及将十六进制数据转换为二进制数据。具体地,当所述闪存控制器26向所述闪存介质10写入数据时,通过所述数据转换器27将待写入的二进制数据转换为十六进制数据,然后再写入闪存介质10。当所述闪存控制器26从所述闪存介质10读取数据时,通过所述数据转换器27将闪存介质10中存储的十六进制数据转换为二进制数据,然后从二进制数据页寄存器中读取转换后的数据。其中,所述数据转换器27可以包括二进制数据寄存器和十六进制数据寄存器。所述二进制数据寄存器可以用于保存由十六进制转换为二进制后的数据,所述十六进制数据寄存器可以用于保存由二进制转换为十六进制后的数据。
接口28,连接主机200以及处理器24,用于接收主机200发送的数据,或者,接收所述处理器24发送的数据,实现主机200与处理器24之间的数据传输,所述接口28可以为SATA-2接口、SATA-3接口、SAS接口、MSATA接口、PCI-E接口、NGFF接口、CFast接口、SFF-8639接口和M.2NVME/SATA协议。
可以理解的是,本发明实施例中的主控制器包括至少一个处理器,以及,与所述至少一个处理器通信连接的存储器,例如:所述第一内存空间中的至少一个存储器,和/或,所述第二内存空间中的至少一个存储器,和/或,所述第三内存空间中的至少一个存储器,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明实施例中的数据恢复方法。
请参阅图2,图2是本发明实施例提供的一种数据恢复方法的流程图;
如图2所示,该数据恢复方法,包括:
步骤S10:在固态硬盘发生异常之后,将第一内存空间的内存数据拷贝到第二内存空间的固化区域,再将所述固化区域的地址信息写入到第三内存空间;
具体的,所述第一内存空间为静态随机存取存储器(Static Random AccessMemory,SRAM)或耦合内存(Tightly Coupled Memory,TCM),所述第一内存空间中的数据经过控制器复位之后,其数据会发生丢失;
所述第二内存空间为双倍速率同步动态随机存储器(Double DataRateSynchronous Dynamic Random Access Memory,DDR SRAM),简称DDR,所述第二内存空间中的数据在控制器复位之后,不会发生丢失,因此,在固态硬盘发生故障异常之后,为了能够在控制器复位之后,仍然能够恢复原来存储在第一内存空间中的内存数据,需要将第一内存空间中的内存数据写入到第二内存空间中,具体的,写入到第二内存空间的固化区域,其中,所述固化区域属于所述第二内存空间中的一部分,即DDR区间,其被设置为用于存储所述第一内存空间中的内存数据。
请再参阅图3,图3是本发明实施例提供的第一内存空间和第二内存空间的关系示意图;
如图3所示,第一内存空间的内存数据包括用户数据、映射表、日志以及配置信息,其中,所述映射表用于描述所述第二内存空间中的数据,例如第二内存空间的内存数据的元数据,比如所述第二内存空间中的某一段空间存储的数据的数据类型,所述第二内存空间的指针,所述第一内存空间中的数据可以拷贝到所述第二内存空间的固化区域。
在本发明实施例中,所述第一内存空间的读写速度高于第二内存空间,所述第一内存空间为靠近处理器,例如靠近CPU的一段地址空间,其读写速度快,用于实现处理器对第一内存空间中的内存数据的快速访问,例如:所述第一内存空间为静态随机存取存储器(Static Random Access Memory,SRAM)或耦合内存(Tightly Coupled Memory,TCM)。
请再参阅图4,图4是本发明实施例提供的第一内存空间、第二内存空间和第三内存空间的关系示意图;
如图4所示,第二内存空间的固化区域的内存数据可以写入到第三内存空间,其中,所述第二内存空间的固化区域的地址信息被写入到第三内存空间,所述地址信息包括数据类型、起始地址、长度等信息对。
在本发明实施例中,所述第三内存空间的读写速度高于第二内存空间,具体的,所述第三内存空间为NOR FLASH,所述第三内存空间可以同步写,其按字节操作,即使在固态硬盘出现异常时,仍然能够写入数据。
具体的,请再参阅图5,图5是本发明实施例提供的一种复位流程的示意图;
如图5所示,该复位流程,包括:
步骤S51:固态硬盘发生异常;
具体的,所述固态硬盘的异常包括突然掉电、数据异常丢失等问题。其中,突然掉电是指在12V电源突然丢掉后,触发掉电中断,然后利用电容供电,在电容供电的时间内,做下电流程,这个过程中是可以将缓存中的用户数据和元数据下刷到闪存NAND中。
步骤S52:冻结第二内存空间的写操作;
具体的,所述第二内存空间包括预设内存空间,所述预设内存空间用于写入用户数据,所述冻结第二内存空间的写操作,包括:冻结所述预设内存空间,以使所述预设内存空间不再写入用户数据。
步骤S53:拷贝第一内存空间的内存数据到第二内存空间的固化区域;
具体的,所述第一内存空间为SRAM内存或TCM内存,所述固化区域被设置为专门用于保存第一内存空间中的内存数据,可以理解的是,所述固化区域的内存大小大于所述第一内存空间的大小,以保证所述第一内存空间的内存数据能够完整保存到所述第二内存空间中,其中,所述第二内存空间用于保存用户数据以及元数据。
步骤S54:将固化区域的地址信息写入到第三内存空间;
具体的,所述第三内存空间为NOR FLASH,所述将所述固化区域的地址信息写入到第三内存空间,包括将所述固化区域的类型、起始地址、长度等信息对写入到所述第三内存空间中。
在本发明实施例中,所述固态硬盘还包括寄存空间,在将所述固化区域的地址信息写入到第三内存空间中之后,所述方法还包括:
生成异常复位标记信息,并将所述异常复位标记信息写入到寄存空间。
具体的,所述寄存空间在热重启之后,其内部的数据不丢失,其中,所述寄存空间包括AON寄存器(Always On),所述固态硬盘的处理器在确定所述固化区域的地址信息被写入到第三内存空间中之后,将生成异常复位标记信息,并将所述异常复位标记信息写入到所述AON寄存器中,所述AON寄存器的特性在于热重启之后,其数据不丢失,其中,所述异常复位标记信息用于标记控制器复位为异常复位,例如:所述AON寄存器是一个8bit的寄存器,可以写入0-0xFF的数字,比如约定写入0xCE这个值作为判断是否是异常复位的标志。上电的时候读取AON寄存器的值,若AON寄存器的值是0xCE,则确定为异常复位,若不是0xCE,则确定是正常复位。
步骤S55:控制器第一次复位;
步骤S56:判断是否是异常复位;
其中,处理器根据所述寄存空间的状态,判断控制器复位是否是异常复位,具体的,处理器根据所述AON寄存器是否存在异常复位标记信息,若存在,则确定所述控制器复位为异常复位,若不存在,则确定所述控制器复位为正常复位。
若是异常复位,则进入步骤S57:异常恢复流程;若不是异常复位,则进入步骤S58:正常恢复流程;
步骤S57:异常恢复流程;
具体的,所述异常恢复流程指的是处理器在识别到所述寄存空间中存在异常复位标记信息之后所执行的恢复流程,具体参见下方的阐述。
步骤S58:正常恢复流程;
具体的,所述正常恢复流程与异常恢复流程不同,所述正常恢复流程,即正常上电流程,其不需要重新搬移、写入用户数据,也不需要进行一致性校验,所述正常恢复流程包括:将映射表和相关配置信息从NAND FLASH中读取。通过AON寄存器的状态确定恢复流程是异常流程或者正常流程,本发明能够提高数据恢复的速度。
步骤S20:在控制器第一次复位之后,从所述第三内存空间获取所述固化区域的地址信息,根据所述地址信息,恢复所述第一内存空间的内存数据;
具体的,所述控制器第一次复位,目的是为了让控制器恢复到正常状态,在控制器第一次复位之后,所述方法还包括:根据所述寄存空间中的异常复位标记信息,确定控制器是否是异常复位,若是,则进入异常恢复流程,其中,所述第三内存空间保存有固化区域的地址信息,例如:数据类型、起始地址、长度等信息对,通过获取所述固化区域的地址信息,获取所述地址信息对应的内存数据,其中,所述地址信息对应的内存数据即为第一内存空间中的内存数据,根据所述地址信息,可以找到所述第一内存空间中的内存数据,从而恢复所述第一内存空间的内存数据。
步骤S30:根据恢复的第一内存空间的内存数据,将所述第二内存空间的数据刷入到闪存空间;
具体的,所述第一内存空间为SRAM内存或TCM内存,所述第一内存空间中的内存数据为SRAM数据或TCM数据,所述SRAM数据或TCM数据保存有第二内存空间中的用户数据的指针,
请再参阅图6,图6是图2中的步骤S30的细化流程图;
如图6所示,所述步骤S30:根据恢复的第一内存空间的内存数据,将所述第二内存空间的数据刷入到内存空间,包括:
步骤S31:根据恢复的第一内存空间的内存数据,获取指向第二内存空间的数据的指针;
具体的,在根据固化区域的地址信息读取第一内存空间的内存数据之后,根据所述第一内存空间的内存数据,获取指向第二内存空间的数据的指针,例如:从NOR FLASH读出固化区域的DDR地址,然后根据从这个DDR地址恢复出复位前的SRAM数据。根据恢复的SRAM数据,得到指向DDR的各个部分的用户数据的指针。
具体的,所述根据恢复的第一内存空间的内存数据,获取指向第二内存空间的数据的指针,包括:获取指向第二内存空间的用户数据的指针以及指向第二内存空间的元数据的指针。其中,所述用户数据的指针为用户数据的DDR信息,所述元数据的指针为元数据的DDR信息,用户数据的DDR信息和元数据的DDR信息,两者都是指向第二内存空间,即DDR空间的指针,但是,两者在第二内存空间中的数据类型不同,作用也不同,用户数据的DDR信息,主要是为了保护好出现异常时,还在第二内存空间的缓存,即DDR cache中的用户数据,而元数据的DDR信息指的是固件运行时所需要的数据,不是用户写下来的数据。
步骤S32:根据所述指向第二内存空间的数据的指针,将所述第二内存空间的数据刷入到闪存空间。
具体的,所述指向第二内存空间的数据的指针为指向用户数据的DDR指针,根据指向用户数据的DDR指针,将用户数据刷入到所述闪存空间中,所述闪存空间为NAND FLASH。
具体的,所述根据所述指向第二内存空间的数据的指针,将所述第二内存空间的数据刷入到闪存空间中,包括:
将所述用户数据刷入所述闪存空间的第一预设区域之后,将所述元数据刷入闪存空间的第二预设区域,其中,所述第二预设区域被设置为用于存储元数据。其中,所述第二预设区域被设置为专门用于存储元数据,其是用户写入元数据的NAND区域。
在本发明实施例中,所述方法还包括:
确定所述用户数据的逻辑地址与写入第一预设区域的物理地址的配对映射信息;
将所述用户数据的逻辑地址与写入第一预设区域的物理地址的配对映射信息写入所述第二预设区域。
步骤S40:在控制器第二次复位之后,根据所述闪存空间的内存数据,对所述固态硬盘进行数据恢复。
具体的,请再参阅图7,图7是本发明实施例提供的一种异常恢复流程的示意图;
如图7所示,该异常恢复流程,包括:
步骤S701:开始;
具体的,开始进行数据恢复;
步骤S702:初始化基本硬件;
具体的,初始化必要的硬件,包括闪存控制器、处理器、缓存控制器等硬件。
步骤S703:从第三内存空间中获取固化区域的地址信息;
具体的,所述第三内存空间为NOR FLASH,从NOR FLASH中获取固化区域的地址信息,所述地址信息为DDR地址,即从NOR FLASH中获取固化区域的DDR地址;
步骤S704:恢复第一内存空间的数据;
具体的,从NOR FLASH中读出固化区域的DDR地址,根据所述DDR地址,恢复复位前的第一内存空间的数据,第一内存空间的数据包括:TCM数据和/或SRAM数据,并根据所述TCM数据和/或SRAM数据,得到指向第二内存空间的用户数据的指针,即DDR指针;
步骤S705:将第一内存空间的用户数据刷入闪存空间;
具体的,所述闪存空间被划分为普通的闪存空间区域和系统区域,所述普通的闪存空间区域用于存储用户数据,所述系统区域用于存储固件运行需要的系统数据。将第一内存空间的用户数据刷入内存空间,即将受保护的用户数据刷入所述闪存空间的第一预设区域,所述第一预设区域为系统区域,并将用户数据中的逻辑地址与写入闪存空间的第一预设区域中的物理地址的配对映射信息写入闪存空间中;
可以理解的是,所述普通的闪存空间区域的大小大于系统区域的大小,例如:所述普通的闪存空间区域占闪存空间的90%,所述系统区域占闪存空间的10%。
可以理解的是,用户数据在写入闪存空间之后,需要更新映射表,即更新用户数据的逻辑地址与物理地址的对应关系,因此需要将用户数据的逻辑地址与物理地址进行配对,生成配对映射信息,并将配对映射信息写入到闪存空间中,以便后续的恢复流程。
步骤S706:将第一内存空间的元数据刷入闪存空间;
具体的,所述元数据包括映射表、日志、配置信息等,根据指向映射表、日志、配置信息等元数据的DDR指针,将所述元数据刷入闪存空间的第二预设区域,其中,所述第二预设区域被设置为用于存储元数据,即所述第二预设区域原本也是被用于存储元数据,在将第一内存空间中的元数据刷入闪存空间之后,生成异常复位标记信息,并将所述异常复位标记信息写入到寄存空间。
在本发明实施例中,优先将用户数据刷入闪存空间,再将元数据刷入闪存空间,可以防止映射表出现错误,保证恢复的正常运行。
步骤S707:控制器第二次复位;
具体的,通过上电恢复流程,再进行一次控制器复位。
步骤S708:初始化硬件;
具体的,初始化硬件配置,例如:初始化闪存控制器、处理器、缓存控制器、数据转换器等硬件。
步骤S709:从闪存空间中恢复元数据;
具体的,从闪存空间NAND FLASH中恢复映射表和其他元数据,具体的,从闪存空间中依次加载配置信息、映射表和日志信息,并根据所述配置信息、映射表和日志信息,计算最新的用户映射表。
步骤S710:从闪存空间中恢复用户数据;
具体的,从NAND FLASH中读取保护的用户数据,写入普通的闪存空间区域,即普通的用户NAND区域,具体的,将受保护的用户数据写入到普通的用户NAND区域,包括:从闪存空间中加载用户数据的逻辑地址与物理地址的配对映射信息,根据所述配对映射信息中的物理地址,从闪存空间中读出用户数据,并写入普通的用户NAND区域,同时根据所述配对映射信息中的逻辑地址更新用户映射表。
其中,所述闪存空间被划分为普通的闪存空间区域和系统区域,所述普通的闪存空间区域用于存储用户数据,所述系统区域用于存储固件运行需要的系统数据。
在本发明实施例中,所述在控制器第二次复位之后,根据所述闪存空间的内存数据,对所述固态硬盘进行数据恢复,包括:
根据所述配对映射信息,从所述闪存空间中获取用户数据;
将获取到的用户数据恢复到所述闪存空间中的用户区域,并基于所述配对映射信息,更新映射表。
其中,所述闪存空间中的用户区域,指的是用于存储用户数据的闪存区域,即普通的闪存空间区域,在将获取到的用户数据恢复到所述闪存空间中的用户区域之后,需要基于所述配对映射信息,更新映射表。
步骤S711:校验映射表;
由于主控制器在遇到异常时,其数据一致性可能已经存在问题,因此在经过恢复流程之后,需要重新做一致性校验,即进行元数据校验,确定数据一致性,即检查映射表的信息的一致性。
其中,映射表是逻辑地址到物理地址的映射关系。写入闪存空间中的数据,除了数据本身外,还有这个数据输入的逻辑地址信息,和表示数据写入顺序的序列号。通过读闪存空间中的内存数据可以确定所述内存数据的逻辑地址、物理地址和新旧关系。通过逻辑地址在映射表中查找,确定映射表对应的物理地址和读的物理地址是否一致,若一致,则校验通过,若不一致,则校验不通过,此时需要确定出错的数据,并标记。
具体的,所述进行元数据校验,确定数据一致性,包括:
确定最后写入数据的超级块,所述超级块为用户写数据分配空间的粒度,在写入数据时,需要分配超级块,当写完一个超级块之后,再分配下一个超级块,以将数据写入到下一个超级块;
根据所述超级块中的数据的逻辑地址,在所述映射表中查找与所述逻辑地址对应的物理地址,比对所述数据的物理地址与所述映射表中对应的物理地址是否一致;
若是,则确定数据一致性可靠;
若否,则确定数据一致性不可靠,此时需要对该数据进行错误标记,以使主机在读取到该数据时,返回错误标记。
可以理解的是,当校验范围读到的数据,有多个数据对应一个逻辑地址时,通过序列号决定数据新旧,序列号越大,数据越新。由于只有最后一段时间写入的数据需要校验,即校验的范围在最后一个写过的超级块中,因此校验的数据量不大,需要时间不长,因此校验映射表不会影响数据恢复的时间,并且还可以保证数据恢复的正确性。
步骤S712:结束;
具体的,结束数据恢复流程。
可以理解的是,在经过数据恢复流程之后,固态硬盘可以与主机建立正常数据通信,但是,若在超级快中确定多个数据的数据一致性不可靠,此时可能存在数据大量丢失,需要向主机返回告警信息。
在本发明实施例中,通过提供的一种数据恢复方法,应用于固态硬盘,所述固态硬盘包括第一内存空间、第二内存空间、第三内存空间以及闪存空间,所述方法包括:在固态硬盘发生异常之后,将第一内存空间的内存数据拷贝到第二内存空间的固化区域,再将所述固化区域的地址信息写入到第三内存空间;在控制器第一次复位之后,从所述第三内存空间获取所述固化区域的地址信息,根据所述地址信息,恢复所述第一内存空间的内存数据;根据恢复的第一内存空间的内存数据,将所述第二内存空间的数据刷入到闪存空间;在控制器第二次复位之后,根据所述闪存空间的内存数据,对所述固态硬盘进行数据恢复。通过将第一内存空间的数据写入固化区域,根据固态区域的地址信息恢复第一内存空间的数据,再将其写入到闪存空间中,最后从闪存空间进行数据恢复,本发明能够提高固态硬盘的数据恢复速度。
请参阅图8,图8是本发明实施例提供的一种数据恢复装置的结构示意图。
其中,该数据恢复装置80,应用于固态硬盘,所述固态硬盘包括第一内存空间、第二内存空间、第三内存空间以及闪存空间,所述装置包括:
异常写入单元81,用于在固态硬盘发生异常之后,将第一内存空间的内存数据拷贝到第二内存空间的固化区域,再将所述固化区域的地址信息写入到第三内存空间;
数据拷贝单元82,用于在控制器第一次复位之后,从所述第三内存空间获取所述固化区域的地址信息,根据所述地址信息,恢复所述第一内存空间的内存数据;
数据刷入单元83,用于根据恢复的第一内存空间的内存数据,将所述第二内存空间的数据刷入到闪存空间;
数据恢复单元84,用于在控制器第二次复位之后,根据所述闪存空间的内存数据,对所述固态硬盘进行数据恢复。
在本发明实施例中,所述固态硬盘还包括:寄存空间,所述寄存空间的数据在控制器复位之后不会被清除,所述将所述固化区域的地址信息写入到第三内存空间之后,所述装置还包括:
寄存复位标记单元,用于生成异常复位标记信息,并将所述异常复位标记信息写入到寄存空间。
在本发明实施例中,所述数据刷入单元,包括:
指针模块,用于根据恢复的第一内存空间的内存数据,获取指向第二内存空间的数据的指针;
刷入模块,用于根据所述指向第二内存空间的数据的指针,将所述第二内存空间的数据刷入到闪存空间。
在本发明实施例中,所述指针模块,具体用于:
获取指向第二内存空间的用户数据的指针以及指向第二内存空间的元数据的指针。
在本发明实施例中,所述刷入模块,具体用于:
将所述用户数据刷入所述闪存空间的第一预设区域之后,将所述元数据刷入闪存空间的第二预设区域,其中,所述第二预设区域被设置为用于存储元数据。
在本发明实施例中,所述刷入模块,还用于:
确定所述用户数据的逻辑地址与写入第一预设区域的物理地址的配对映射信息;
将所述用户数据的逻辑地址与写入第一预设区域的物理地址的配对映射信息写入所述第二预设区域。
在本发明实施例中,所述数据恢复单元,具体用于:
根据所述配对映射信息,从所述闪存空间中获取用户数据;
将获取到的用户数据恢复到所述闪存空间中的用户区域,并基于所述配对映射信息,更新映射表。
在本发明实施例中,所述装置还包括:
数据一致性单元,用于进行元数据校验,确定数据一致性。
由于装置实施例和方法实施例是基于同一构思,在内容不互相冲突的前提下,装置实施例的内容可以引用方法实施例的,在此不赘述。
在本发明实施例中,通过提供一种数据恢复装置,应用于固态硬盘,所述固态硬盘包括第一内存空间、第二内存空间、第三内存空间以及闪存空间,所述装置包括:异常写入单元,用于在固态硬盘发生异常之后,将第一内存空间的内存数据拷贝到第二内存空间的固化区域,再将所述固化区域的地址信息写入到第三内存空间;数据拷贝单元,用于在控制器第一次复位之后,从所述第三内存空间获取所述固化区域的地址信息,根据所述地址信息,恢复所述第一内存空间的内存数据;数据刷入单元,用于根据恢复的第一内存空间的内存数据,将所述第二内存空间的数据刷入到闪存空间;数据恢复单元,用于在控制器第二次复位之后,根据所述闪存空间的内存数据,对所述固态硬盘进行数据恢复。通过将第一内存空间的数据写入固化区域,根据固态区域的地址信息恢复第一内存空间的数据,再将其写入到闪存空间中,最后从闪存空间进行数据恢复,本发明能够提高固态硬盘的数据恢复速度。
本发明实施例还提供了一种非易失性计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,例如图1中的一个处理器24,可使得上述一个或多个处理器可执行上述任意方法实施例中的数据恢复方法,例如,执行上述任意方法实施例中的数据恢复方法,例如,执行以上描述的图2所示的各个步骤;也可实现图8所述的各个单元的功能。
以上所描述的装置或设备实施例仅仅是示意性的,其中所述作为分离部件说明的单元模块可以是或者也可以不是物理上分开的,作为模块单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络模块单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用直至得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;在本发明的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本发明的不同方面的许多其它变化,为了简明,它们没有在细节中提供;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

Claims (10)

1.一种数据恢复方法,应用于固态硬盘,其特征在于,所述固态硬盘包括第一内存空间、第二内存空间、第三内存空间以及闪存空间,所述方法包括:
在固态硬盘发生异常之后,将第一内存空间的内存数据拷贝到第二内存空间的固化区域,再将所述固化区域的地址信息写入到第三内存空间;
在控制器第一次复位之后,从所述第三内存空间获取所述固化区域的地址信息,根据所述地址信息,恢复所述第一内存空间的内存数据;
根据恢复的第一内存空间的内存数据,将所述第二内存空间的数据刷入到闪存空间;
在控制器第二次复位之后,根据所述闪存空间的内存数据,对所述固态硬盘进行数据恢复。
2.根据权利要求1所述的方法,其特征在于,所述固态硬盘还包括:寄存空间,所述寄存空间的数据在控制器复位之后不会被清除,所述将所述固化区域的地址信息写入到第三内存空间之后,所述方法还包括:
生成异常复位标记信息,并将所述异常复位标记信息写入到寄存空间。
3.根据权利要求1所述的方法,其特征在于,所述根据恢复的第一内存空间的内存数据,将所述第二内存空间的数据刷入到闪存空间,包括:
根据恢复的第一内存空间的内存数据,获取指向第二内存空间的数据的指针;
根据所述指向第二内存空间的数据的指针,将所述第二内存空间的数据刷入到闪存空间。
4.根据权利要求3所述的方法,其特征在于,所述根据恢复的第一内存空间的内存数据,获取指向第二内存空间的数据的指针,包括:
获取指向第二内存空间的用户数据的指针以及指向第二内存空间的元数据的指针。
5.根据权利要求4所述的方法,其特征在于,所述根据所述指向第二内存空间的数据的指针,将所述第二内存空间的数据刷入到闪存空间中,包括:
将所述用户数据刷入所述闪存空间的第一预设区域之后,将所述元数据刷入闪存空间的第二预设区域,其中,所述第二预设区域被设置为用于存储元数据。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
确定所述用户数据的逻辑地址与写入第一预设区域的物理地址的配对映射信息;
将所述用户数据的逻辑地址与写入第一预设区域的物理地址的配对映射信息写入所述第二预设区域。
7.根据权利要求6所述的方法,其特征在于,所述在控制器第二次复位之后,根据所述闪存空间的内存数据,对所述固态硬盘进行数据恢复,包括:
根据所述配对映射信息,从所述闪存空间中获取用户数据;
将获取到的用户数据恢复到所述闪存空间中的用户区域,并基于所述配对映射信息,更新映射表。
8.根据权利要求1-7任一项所述的方法,其特征在于,在对所述固态硬盘进行数据恢复之后,所述方法还包括:
进行元数据校验,确定数据一致性。
9.一种数据恢复装置,应用于固态硬盘,其特征在于,所述固态硬盘包括第一内存空间、第二内存空间、第三内存空间以及闪存空间,所述装置包括:
异常写入单元,用于在固态硬盘发生异常之后,将第一内存空间的内存数据拷贝到第二内存空间的固化区域,再将所述固化区域的地址信息写入到第三内存空间;
数据拷贝单元,用于在控制器第一次复位之后,从所述第三内存空间获取所述固化区域的地址信息,根据所述地址信息,恢复所述第一内存空间的内存数据;
数据刷入单元,用于根据恢复的第一内存空间的内存数据,将所述第二内存空间的数据刷入到闪存空间;
数据恢复单元,用于在控制器第二次复位之后,根据所述闪存空间的内存数据,对所述固态硬盘进行数据恢复。
10.一种固态硬盘,其特征在于,所述固态硬盘包括:
闪存介质;
主控制器,与所述闪存介质连接,所述主控制器包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-8任一项所述的数据恢复方法。
CN202010561718.3A 2020-06-18 2020-06-18 一种数据恢复方法、装置及固态硬盘 Active CN111752487B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202010561718.3A CN111752487B (zh) 2020-06-18 2020-06-18 一种数据恢复方法、装置及固态硬盘
PCT/CN2021/089374 WO2021253983A1 (zh) 2020-06-18 2021-04-23 一种数据恢复方法、装置及固态硬盘
US17/951,599 US12093140B2 (en) 2020-06-18 2022-09-23 Data recovery method, apparatus, and solid state drive

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010561718.3A CN111752487B (zh) 2020-06-18 2020-06-18 一种数据恢复方法、装置及固态硬盘

Publications (2)

Publication Number Publication Date
CN111752487A true CN111752487A (zh) 2020-10-09
CN111752487B CN111752487B (zh) 2024-01-12

Family

ID=72676313

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010561718.3A Active CN111752487B (zh) 2020-06-18 2020-06-18 一种数据恢复方法、装置及固态硬盘

Country Status (3)

Country Link
US (1) US12093140B2 (zh)
CN (1) CN111752487B (zh)
WO (1) WO2021253983A1 (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111367717A (zh) * 2020-02-20 2020-07-03 安凯(广州)微电子技术有限公司 一种电子设备的恢复方法、装置及系统
CN112634978A (zh) * 2020-12-23 2021-04-09 江苏国科微电子有限公司 一种NVMe固态硬盘异常处理方法、装置及集成芯片
WO2021253983A1 (zh) * 2020-06-18 2021-12-23 深圳大普微电子科技有限公司 一种数据恢复方法、装置及固态硬盘
CN115878033A (zh) * 2022-11-30 2023-03-31 合肥腾芯微电子有限公司 一种固态硬盘及其映射表管理方法
CN116055310A (zh) * 2022-06-28 2023-05-02 荣耀终端有限公司 一种恢复用户配置信息的方法、装置及网络设备
CN116204450A (zh) * 2023-04-28 2023-06-02 新华三技术有限公司 数据写入方法、处理器、器件、业务板及存储介质
CN117785565A (zh) * 2024-02-23 2024-03-29 深圳市创世飞达科技有限公司 一种固态存储硬盘数据恢复方法及固态硬盘

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114281265B (zh) * 2021-12-28 2023-08-15 深圳大普微电子科技有限公司 一种存储介质失效的处理方法、装置和固态硬盘
CN115309591B (zh) * 2022-10-10 2023-03-24 浪潮电子信息产业股份有限公司 一种全闪存储系统的恢复方法及相关装置
CN115757196B (zh) * 2022-11-09 2023-09-01 超聚变数字技术有限公司 内存、访问内存方法及计算设备

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100035327A (ko) * 2008-09-26 2010-04-05 주식회사 엠트론스토리지테크놀로지 동기화장치가 구비된 에스에스디와 이를 이용한 비휘발성 메모리의 데이터 안정화 방법
CN103377152A (zh) * 2012-04-26 2013-10-30 深圳市朗科科技股份有限公司 固态硬盘的写操作控制方法及写操作装置
CN103744795A (zh) * 2013-12-19 2014-04-23 记忆科技(深圳)有限公司 固态硬盘快速启动的方法及其固态硬盘
CN104077197A (zh) * 2013-03-29 2014-10-01 联想(北京)有限公司 系统恢复方法、装置、固态硬盘和电子设备
US20150033065A1 (en) * 2013-07-24 2015-01-29 Lsi Corporation Solid state drive emergency pre-boot application providing expanded data recovery function
CN107492394A (zh) * 2016-06-09 2017-12-19 爱思开海力士有限公司 数据存储装置及其操作方法
CN108139917A (zh) * 2015-08-20 2018-06-08 美光科技公司 从nand媒体快速引导的固态存储装置
CN109313593A (zh) * 2016-09-16 2019-02-05 株式会社日立制作所 存储系统
CN109935251A (zh) * 2017-12-19 2019-06-25 爱思开海力士有限公司 存储器系统、其操作方法以及包括其的数据处理系统

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR970008188B1 (ko) * 1993-04-08 1997-05-21 가부시끼가이샤 히다찌세이사꾸쇼 플래시메모리의 제어방법 및 그것을 사용한 정보처리장치
US9286198B2 (en) * 2005-04-21 2016-03-15 Violin Memory Method and system for storage of data in non-volatile media
KR20110046243A (ko) * 2009-10-27 2011-05-04 삼성전자주식회사 사용자 장치 및 그것의 맵핑 데이터 관리 방법
US20220334990A1 (en) * 2014-07-03 2022-10-20 Pure Storage, Inc. Zone drive data format
CN104461391B (zh) * 2014-12-05 2019-08-02 上海宝存信息科技有限公司 一种存储设备元数据管理处理方法及系统
US9710343B2 (en) * 2015-03-27 2017-07-18 Facebook, Inc. Power fail circuit for multi-storage-device arrays
US10019362B1 (en) * 2015-05-06 2018-07-10 American Megatrends, Inc. Systems, devices and methods using solid state devices as a caching medium with adaptive striping and mirroring regions
KR20200057866A (ko) * 2018-11-16 2020-05-27 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 스토리지 장치 및 이의 동작 방법
CN111752487B (zh) * 2020-06-18 2024-01-12 深圳大普微电子科技有限公司 一种数据恢复方法、装置及固态硬盘

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100035327A (ko) * 2008-09-26 2010-04-05 주식회사 엠트론스토리지테크놀로지 동기화장치가 구비된 에스에스디와 이를 이용한 비휘발성 메모리의 데이터 안정화 방법
CN103377152A (zh) * 2012-04-26 2013-10-30 深圳市朗科科技股份有限公司 固态硬盘的写操作控制方法及写操作装置
CN104077197A (zh) * 2013-03-29 2014-10-01 联想(北京)有限公司 系统恢复方法、装置、固态硬盘和电子设备
US20150033065A1 (en) * 2013-07-24 2015-01-29 Lsi Corporation Solid state drive emergency pre-boot application providing expanded data recovery function
CN103744795A (zh) * 2013-12-19 2014-04-23 记忆科技(深圳)有限公司 固态硬盘快速启动的方法及其固态硬盘
CN108139917A (zh) * 2015-08-20 2018-06-08 美光科技公司 从nand媒体快速引导的固态存储装置
CN107492394A (zh) * 2016-06-09 2017-12-19 爱思开海力士有限公司 数据存储装置及其操作方法
CN109313593A (zh) * 2016-09-16 2019-02-05 株式会社日立制作所 存储系统
CN109935251A (zh) * 2017-12-19 2019-06-25 爱思开海力士有限公司 存储器系统、其操作方法以及包括其的数据处理系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
王刚: "固态硬盘数据恢复技术及应用研究", 《电脑知识与技术》 *

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111367717A (zh) * 2020-02-20 2020-07-03 安凯(广州)微电子技术有限公司 一种电子设备的恢复方法、装置及系统
CN111367717B (zh) * 2020-02-20 2022-08-16 广州安凯微电子股份有限公司 一种电子设备的恢复方法、装置及系统
WO2021253983A1 (zh) * 2020-06-18 2021-12-23 深圳大普微电子科技有限公司 一种数据恢复方法、装置及固态硬盘
US12093140B2 (en) 2020-06-18 2024-09-17 Shenzhen Dapu Microelectronics Co., Ltd. Data recovery method, apparatus, and solid state drive
CN112634978A (zh) * 2020-12-23 2021-04-09 江苏国科微电子有限公司 一种NVMe固态硬盘异常处理方法、装置及集成芯片
CN116055310B (zh) * 2022-06-28 2023-10-20 荣耀终端有限公司 一种恢复用户配置信息的方法、装置及网络设备
CN116055310A (zh) * 2022-06-28 2023-05-02 荣耀终端有限公司 一种恢复用户配置信息的方法、装置及网络设备
CN115878033B (zh) * 2022-11-30 2023-09-15 合肥腾芯微电子有限公司 一种固态硬盘及其映射表管理方法
CN115878033A (zh) * 2022-11-30 2023-03-31 合肥腾芯微电子有限公司 一种固态硬盘及其映射表管理方法
CN116204450A (zh) * 2023-04-28 2023-06-02 新华三技术有限公司 数据写入方法、处理器、器件、业务板及存储介质
CN116204450B (zh) * 2023-04-28 2023-08-18 新华三技术有限公司 数据写入方法、处理器、器件、业务板及存储介质
CN117785565A (zh) * 2024-02-23 2024-03-29 深圳市创世飞达科技有限公司 一种固态存储硬盘数据恢复方法及固态硬盘
CN117785565B (zh) * 2024-02-23 2024-05-03 深圳市创世飞达科技有限公司 一种固态存储硬盘数据恢复方法及固态硬盘

Also Published As

Publication number Publication date
US20230016555A1 (en) 2023-01-19
WO2021253983A1 (zh) 2021-12-23
CN111752487B (zh) 2024-01-12
US12093140B2 (en) 2024-09-17

Similar Documents

Publication Publication Date Title
CN111752487B (zh) 一种数据恢复方法、装置及固态硬盘
US10796774B2 (en) Method and apparatus for refreshing flash memory device
US10048863B1 (en) Open block refresh management
JP4524309B2 (ja) フラッシュメモリ用のメモリコントローラ
JP5585919B2 (ja) 電源遮断管理
US10372619B2 (en) Data backup method, data recovery method and storage controller
US20150331624A1 (en) Host-controlled flash translation layer snapshot
US11593258B2 (en) Enhanced filesystem support for zone namespace memory
WO2017139973A1 (zh) 一种闪存设备的访问方法和装置
US10089170B1 (en) Open block management
US11714748B1 (en) Managing power loss recovery using an oldest section write policy for an address mapping table in a memory sub-system
CN112035060A (zh) 一种存储介质的错误检测方法、系统及存储系统
US11940912B2 (en) Managing power loss recovery using a dirty section write policy for an address mapping table in a memory sub-system
US12086062B2 (en) Managing power loss in a memory device
JP2018160156A (ja) メモリシステム
CN109002265B (zh) 一种数据处理的方法以及相关装置
JP4801111B2 (ja) フラッシュメモリのデータ即時リフレッシュ方法
US20240264750A1 (en) Atomic Operations Implemented using Memory Services of Data Storage Devices
US11768631B2 (en) Rapid reliable file system access
US20220171706A1 (en) Memory system and operating method thereof
JP2013174976A (ja) メモリシステムおよび制御プログラムの更新方法
CN114911408A (zh) 一种存储设备的数据处理方法、装置及存储设备
CN118708263A (zh) 一种存储器及其开机时间的加速方法
KR20240077761A (ko) 전력 상태에 따라 백그라운드 동작을 실행하는 스토리지 장치 및 그 동작 방법
CN112650519A (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