CN111949220B - 存储设备异常断电恢复方法及存储设备 - Google Patents
存储设备异常断电恢复方法及存储设备 Download PDFInfo
- Publication number
- CN111949220B CN111949220B CN202010915047.6A CN202010915047A CN111949220B CN 111949220 B CN111949220 B CN 111949220B CN 202010915047 A CN202010915047 A CN 202010915047A CN 111949220 B CN111949220 B CN 111949220B
- Authority
- CN
- China
- Prior art keywords
- system information
- storage device
- flash memory
- memory
- tag
- 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
- 230000002159 abnormal effect Effects 0.000 title claims abstract description 62
- 238000000034 method Methods 0.000 title claims abstract description 44
- 238000011084 recovery Methods 0.000 title claims description 37
- 230000015654 memory Effects 0.000 claims abstract description 144
- 238000013507 mapping Methods 0.000 claims abstract description 37
- 230000000977 initiatory effect Effects 0.000 claims 2
- 238000010586 diagram Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
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
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/30—Means for acting in the event of power-supply failure or interruption, e.g. power-supply fluctuations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1441—Resetting or repowering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
- G06F16/128—Details of file system snapshots on the file-level, e.g. snapshot creation, administration, deletion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- 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]
-
- 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/0683—Plurality of storage devices
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C5/00—Details of stores covered by group G11C11/00
- G11C5/14—Power supply arrangements, e.g. power down, chip selection or deselection, layout of wirings or power grids, or multiple supply levels
- G11C5/148—Details of power up or power down circuits, standby circuits or recovery circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/84—Using snapshots, i.e. a logical point-in-time copy of the data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7202—Allocation control and policies
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Power Engineering (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本申请公开一种存储设备异常断电恢复方法及存储设备,所述方法包括:当判断存储设备处于空闲状态时,对存储设备进行快照,以获取当前存储设备的系统信息,并在系统信息中写入第一标签后,将系统信息写入闪存中;当异常断电后重新上电启动时,寻找最新写入在闪存中的系统信息;当判断寻找到的系统信息包括第一标签时,基于包括第一标签的系统信息中闪存中每一区块的数据信息和当前编程的区块的位置,获取且解析所述当前编程的区块的数据信息,并将包括第一标签的系统信息中的写缓存映射表加载至内存,以使内存恢复到异常断电前的状态。
Description
技术领域
本申请涉及断电保护领域,尤其涉及一种存储设备异常断电恢复方法及存储设备。
背景技术
在常见的存储设备(例如:固态硬盘(Solid-state drive,SSD、随身碟)运行过程中,可能会因为用户强制关闭主机或者突然停电等状况,导致存储设备异常断电。由于存储设备中的静态存储器(Static Random Access Memory,Sram)和动态存储器(DynamicRandom Access Memory,Dram)属于易失性存储器,具有断电后信息立即丢失的特性,存在再次上电时SSD就无法恢复到之前工作状态的问题。
有鉴于此,相关业者提出一种存储设备在正常运行中发生异常断电后的瞬间断电恢复(Sudden Power off Recovery,SPOR)操作,确保异常断电后再次上电时,存储设备的数据数据和维护数据数据的逻辑转实体映射表不能丢失或者错误,以恢复到断电之前的状态,但是因为需要解析闪存中的逻辑转实体映射表,并扫描闪存中所有的数据区域,故需要的时间比较久,会影响用户使用体验,甚至如果瞬间断电恢复操作所消耗的时间过久,可能还会出现不认盘的情况。
发明内容
本申请实施例提供一种存储设备异常断电恢复方法及存储设备,解决目前瞬间断电恢复操作所消耗的时间比较久,影响用户使用体验,甚至可能还会出现不认盘的问题。
为了解决上述技术问题,本申请是这样实现的:
第一方面,提供了一种存储设备异常断电恢复方法,存储设备包括内存、闪存和控制器,存储设备异常断电恢复方法由控制器执行,存储设备异常断电恢复方法包括:当判断存储设备处于空闲状态时,对存储设备进行快照,以获取当前存储设备的系统信息,并在系统信息中写入第一标签后,将系统信息写入闪存中;当判断发生以下至少一种情形:闪存中的逻辑转实体映射表被更改、启动垃圾回收操作、编程了一个新的区块或者除了当前编程的区块以外的任一区块的数据信息改变时,对存储设备进行快照,以获取当前存储设备的系统信息,并在系统信息中写入第二标签后,将系统信息写入闪存中;当异常断电后重新上电启动时,寻找最新写入在闪存中的系统信息,并判断寻找到的系统信息中是否包括第一标签;当判断寻找到的系统信息包括第一标签时,执行瞬间断电快速恢复操作,系基于包括第一标签的系统信息中闪存中每一区块的数据信息和当前编程的区块的位置,获取且解析所述当前编程的区块的数据信息,并将包括第一标签的系统信息中的写缓存映射表加载至内存,以使内存恢复到异常断电前的状态;当判断寻找到的所述系统信息包括所述第二标签时,执行瞬间断电恢复操作,以使所述内存恢复到异常断电前的状态。
第二方面,提供一种存储设备,包括内存、闪存和控制器,内存和闪存分别与控制器连接,控制器包括:非易失性存储器和处理器。其中,非易失性存储器用于存储实现存储设备异常断电恢复方法的程序代码。处理器耦接非易失性存储器,用于加载并执行存储设备异常断电恢复方法的程序代码,以当判断存储设备处于空闲状态时,对存储设备进行快照,以获取当前存储设备的系统信息,并在系统信息中写入第一标签后,将系统信息写入闪存中;当判断发生以下至少一种情形:闪存中的逻辑转实体映射表被更改、启动垃圾回收操作、编程了一个新的区块或者除了当前编程的区块以外的任一区块的数据信息改变时,对存储设备进行快照,以获取当前存储设备的系统信息,并在系统信息中写入第二标签后,将系统信息写入闪存中;当异常断电后重新上电启动时,寻找最新写入在闪存中的系统信息,并判断寻找到的系统信息中是否包括第一标签;及当判断寻找到的系统信息包括第一标签时,执行瞬间断电快速恢复操作,系基于包括第一标签的系统信息中闪存中每一区块的数据信息和当前编程的区块的位置,获取且解析所述当前编程的区块的数据信息,并将包括第一标签的系统信息中的写缓存映射表加载至内存,以使内存恢复到异常断电前的状态;当判断寻找到的所述系统信息包括所述第二标签时,执行瞬间断电恢复操作,以使所述内存恢复到异常断电前的状态。
在本申请实施例中,通过在存储设备处于空闲状态时对其进行快照获取当前的系统信息,并在系统信息中写入第一标签后存入闪存中,实现存储设备处于空闲状态发生异常断电后再次上电时,若寻找到的最新系统信息包括第一标签,则仅解析最新系统信息中当前编程的区块的数据信息,并将最新系统信息中的写缓存映射表加载至内存,即可使内存恢复到异常断电前的状态,由于不需解析闪存中的逻辑转实体映射表,也不需扫描闪存中所有区块的数据信息,因此,可以在存储设备处于空闲状态发生异常断电后再次上电时,大大缩短当存储设备处于空闲状态时的异常断电恢复所需的时间。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为依据本发明实施例的存储设备的框图。
图2为依据本发明实施例的控制器的框图。
图3为依据本发明实施例的存储设备异常断电恢复方法的方法流程图。
具体实施方式
以下将配合相关附图来说明本发明的实施例。在这些附图中,相同的标号表示相同或类似的组件或方法流程。
必须了解的是,使用在本说明书中的“包含”、“包括”等词,是用于表示存在特定的技术特征、数值、方法步骤、作业处理、组件和/或组件,但并不排除可加上更多的技术特征、数值、方法步骤、作业处理、组件、组件,或以上的任意组合。
本发明中使用如“第一”、“第二”、“第三”等词是用来修饰权利要求中的组件,并非用来表示之间具有优先权顺序,先行关系,或者是一个组件先于另一个组件,或者是执行方法步骤时的时间先后顺序,仅用来区别具有相同名字的组件。
必须了解的是,当组件描述为“连接”或“耦接”至另一组件时,可以是直接连结、或耦接至其他组件,可能出现中间组件。相反地,当组件描述为“直接连接”或“直接耦接”至另一组件时,其中不存在任何中间组件。
必须了解的是,在此所使用的「和/或」的描述方式,包含所列举的其中之一或多个项目的任意组合。另外,除非说明书中特别指明,否则任何单数格的用语都同时包含复数格的涵义。
请参阅图1,其为依据本发明实施例的存储设备的框图;如图所示,本实施例的存储设备100可包括内存110、闪存120和控制器130,内存110和闪存120分别与控制器130电性连接,以进行信息与数据的传递。
内存110为易失性存储器,使用时读写速度较快,断电后其内存储的数据等即刻消失;内存110用于暂存控制器120执行存取运作所需的数据。闪存120为非易失性存储器,使用时读写速度相对较慢,断电后其内存储的数据等能够持续保存较长时间;闪存120包括复数个区块(Block),每一区块包括复数个实体页面(Page),每一实体页面都具有个别的实体地址。
控制器130在对闪存120执行写入(编程)数据运作时,是以闪存120的实体页面为单位来执行写入数据的运作;控制器130在对闪存120执行抹除数据运作时,是以闪存120的区块为单位来执行抹除数据的运作。
当外部主机要将数据写入至存储设备100时,控制器130可从闪存120中选取一个区块作为实时区块(current block)来写入数据,并于内存110维护用于纪录所述实时区块的各个实体页面的实体地址-逻辑地址的对应关系的写缓存映射表;当控制器130写入数据至所述实时区块的最后一个实体页面时,控制器130可将内存110中的写缓存映射表存储至闪存120,并且依据写缓存映射表来更新闪存120中的逻辑转实体映射表。其中,逻辑转实体映射表用于纪录闪存120的各个逻辑地址-实体地址的对应关系。当外部主机欲读取存储设备100的数据时,控制器130通过逻辑转实体映射表和/或写缓存映射表获取外部主机所欲读取的数据的实体地址,并将数据读取至外部主机。
请参阅图2,其为依据本发明实施例的控制器的框图。在一些实施例,控制器130可包括主机接口132、处理器134、闪存接口136和非易失性存储器(Non-volatile memory)138。非易失性存储器138用于存储实现存储设备异常断电恢复方法的程序代码,例如:可以使用只读存储器(Read-Only Memory,ROM)、可擦除可编程只读存储器(ErasableProgrammable Read Only Memory,EPROM)、电子可擦除可编程只读存储器(ElectricallyErasable Programmable read only memory,EEPROM)等来实现。处理器134可使用通用硬件(例如,单处理器、具平行处理能力的多处理器、图形处理器或其他具运算能力的处理器)来实现,并且在加载与执行实现存储设备异常断电恢复方法的程序代码时,完成以下描述的存储设备异常断电恢复方法。主机接口132可通过序列先进技术附件(Serial advancedtechnology attachment,SATA)、快速周边组件互联(Peripheral componentinterconnect express,PCI-E)、通用序列总线(Universal serial bus,USB)的接口及关联的通信协议从外部主机(Host)接收读取、写入、抹除等命令,以及相关参数与数据,然后据以执行。闪存接口136耦接闪存120,处理器134耦接主机接口132、闪存接口136和非易失性存储器138。处理器134可以通过主机接口132与主机通信,并且通过闪存接口136与闪存120通信。闪存接口136包含多个寄存器,让处理器134可通过改变寄存器的内容来调整闪存接口136的物理设置(Physical configurations)。
为了克服如上所述目前瞬间断电恢复操作所消耗的时间比较久带来的缺点,本发明实施例提出一种存储设备异常断电恢复方法,在存储设备100处于空闲状态时,对存储设备100进行快照,用来获得当前存储设备100的系统信息,并在所述系统信息中写入第一标签(即通过第一标签对应纪录存储设备100处于空闲状态)后,将所述系统信息写入闪存120中;当判断闪存120中的逻辑转实体映射表被更改、启动垃圾回收操作、编程了一个新的区块或者除了当前编程的区块以外的任一区块的数据信息改变时,对存储设备100进行快照,以获取当前存储设备100的系统信息,并在系统信息中写入第二标签后,将系统信息写入闪存120中;当异常断电后重新上电启动时,寻找最新写入在闪存120中的系统信息(即异常断电发生前最后写入闪存120中的系统信息),并判断寻找到的系统信息是否包括第一标签;当判断寻找到的系统信息包括第一标签时(即判断出存储设备100处于空闲状态时发生异常断电),基于寻找到的系统信息中闪存120中每一区块的数据信息和当前编程的区块的位置,找到当前编程的区块及其数据信息,进而解析所述当前编程的区块的数据信息,并将寻找到的系统信息中的写缓存映射表加载至内存110,以使内存110恢复到异常断电前的状态。由于不需解析闪存中的逻辑转实体映射表,也无需扫描闪存中所有区块的数据信息,因此,可以在存储设备处于空闲状态发生异常断电后再次上电时,大大缩短异常断电恢复所需的时间。详细说明如后:
在一些实施例,控制器130的处理器134加载并执行存储设备异常断电恢复方法的程序代码时以实现存储设备异常断电恢复方法,可以参考如图3,图3为依据本发明实施例的存储设备异常断电恢复方法的方法流程图,详细说明如下。
步骤S212:当判断所述存储设备100处于空闲状态时,对所述存储设备100进行快照,以获取当前所述存储设备100的系统信息,并在所述系统信息中写入第一标签后,将所述系统信息写入所述闪存120中。其中,所述系统信息包括所述内存110中的写缓存映射表、所述闪存120中每一区块的数据信息和所述闪存120中当前编程的所述区块的位置。其中,通过第一标签对应纪录当前存储设备100处于空闲状态,第一标签可以是根据实际需求设定的标签。
在一种可选的实施方式中,处理器134在判断存储设备100是否处于空闲状态的过程包括:持续统计存储设备100当前待处理的输入输出任务的数量,并确认所述当前待处理的输入输出任务的数量是否小于阈值;当判断所述当前待处理的输入输出任务的数量小于所述阈值且维持超过一预设时间时,判断存储设备100处于空闲状态。其中,所述阈值和所述预设时间可以是根据实验测试得出或经验设定的某个阈值。
步骤S214:当判断所述闪存120中发生以下至少一种情况(逻辑转实体映射表被更改、启动垃圾回收操作(例如:对所述闪存120中的所述逻辑转实体映射表进行垃圾回收和/或对所述闪存中的存储数据的区块进行垃圾回收)、编程了一个新的区块或者除了当前编程的所述区块以外的任一所述区块的数据信息改变)时,对所述存储设备100进行快照,以获取当前所述存储设备100的所述系统信息,并在所述系统信息中写入第二标签后,将所述系统信息写入所述闪存120中。其中,通过第二标签对应纪录闪存120中的逻辑转实体映射表被更改、启动垃圾回收操作、编程了一个新的区块或者除了当前编程的区块以外的任一区块的数据信息改变,第二标签可以是根据实际需求设定的标签。
在一种可选的实施方式中,处理器134还用于判断是否接收断电指令;当判断接收所述断电指令时,对存储设备100进行快照,以获取当前存储设备100的系统信息,并在系统信息中写入第三标签后,将系统信息写入所述闪存120中。其中,通过第三标签对应纪录存储设备100接收断电指令,系统信息还包括基于管理所述逻辑转实体映射表的二级表。
步骤S216:当异常断电后重新上电启动时,寻找最新写入在所述闪存120中的所述系统信息,并判断寻找到的所述系统信息是否包括所述第一标签。也就是说,闪存120所存储的系统信息有可能是包括第二标签或第三标签,而不包括第一标签。因此,在一种可选的实施方式中,步骤S216还可包括判断寻找到的系统信息是否包括第二标签;在另一种可选的实施方式中,步骤S216还可包括判断寻找到的系统信息是否包括第三标签。
在一种可选的实施方式中,处理器134在系统信息所写入的第一标签或第二标签可标注于系统信息的同一栏位,且在系统信息所写入的第二标签或第三标签可标注于系统信息的另一栏位;也就是说,处理器134可通过系统信息中用于标注第一标签或第二标签的栏位判断系统信息是否包括第一标签或第二标签,及通过系统信息中用于标注第二标签或第三标签的栏位判断系统信息是否包括第二标签或第三标签。
在另一种可选的实施方式中,处理器134在系统信息所写入的第一标签、第二标签或第三标签可标注于系统信息的同一栏位,也就是说,处理器134可通过系统信息中用于标注第一标签、第二标签或第三标签的栏位判断系统信息是否包括第一标签、第二标签或第三标签。
步骤S218:当判断寻找到的所述系统信息包括所述第一标签时,执行瞬间断电快速恢复操作,系基于包括所述第一标签的所述系统信息中所述闪存120中每一所述区块的所述数据信息和所述当前编程的所述区块的位置,获取且解析所述当前编程的所述区块的所述数据信息,并将包括所述第一标签的所述系统信息中的写缓存映射表加载至所述内存110,以使所述内存110恢复到异常断电前的状态。
在一种可选的实施方式中,当判断寻找到的系统信息包括所述第二标签时,执行瞬间断电恢复(SPOR)操作,以使内存110恢复到异常断电前的状态。其中,所述瞬间断电恢复操作包括:解析所述闪存120中的逻辑转实体映射表,并扫描闪存120中所有区块的所述数据信息。在另一种可选的实施方式中,当判断寻找到的系统信息包括所述第三标签时,执行正常断电恢复操作,以使所述内存110恢复到断电前的状态。其中,所述正常断电恢复操作包括:基于管理所述逻辑转实体映射表的所述二级表将断电前的逻辑转实体映射表加载至内存110。
综上所述,本申请提供一种存储设备异常断电恢复方法及存储设备,通过在存储设备处于空闲状态时对其进行快照获取当前的系统信息,并在系统信息中写入第一标签后存入闪存中,实现存储设备处于空闲状态发生异常断电后再次上电时,若寻找到的最新系统信息包括第一标签,则仅解析最新系统信息中当前编程的区块的数据信息,并将最新系统信息中的写缓存映射表加载至内存,即可使内存恢复到异常断电前的状态,由于不需解析闪存中的逻辑转实体映射表,并扫描闪存中所有区块的数据信息,因此,可以在存储设备处于空闲状态发生异常断电后再次上电时,大大缩短异常断电恢复所需的时间。也就是,执行瞬间断电快速恢复操作所需的时间系大大地少于执行瞬间断电恢复(SPOR)操作所需的时间。
本发明所述的方法中的全部或部分步骤可以计算器程序实现,例如计算机的操作系统、计算机中特定硬件的驱动程序、或软件程序。此外,也可实现在如上所示的其他类型程序。所属技术领域具有通常知识者可将本发明实施例的方法撰写成计算器程序,为求简明不再加以描述。依据本发明实施例方法实施的计算器程序可存储在适当的计算机可读取介质,例如DVD、CD-ROM、USB、硬盘,亦可置于可通过网络(例如,互联网,或其他适当载体)存取的网络服务器。
虽然在本申请的图式中包含了以上描述的组件,但不排除在不违反发明的精神下,使用更多其他的附加组件,已达成更佳的技术效果。此外,虽然本申请的流程图采用指定的顺序来执行,但是在不违反发明精神的情况下,所属技术领域的技术人员可以在达到相同效果的前提下,修改这些步骤间的顺序,所以,本发明并不局限于仅使用如上所述的顺序。此外,所属技术领域的技术人员也可以将若干步骤整合为一个步骤,或者是除了这些步骤外,循序或平行地执行更多步骤,本发明也不因此而局限。
虽然本发明使用以上实施例进行说明,但需要注意的是,这些描述并非用于限缩本发明。相反地,此发明涵盖了所属技术领域中的技术人员显而易见的修改与相似设置。所以,权利要求范围须以最宽广的方式解释来包含所有显而易见的修改与相似设置。
Claims (10)
1.一种存储设备异常断电恢复方法,存储设备包括内存、闪存和控制器,所述存储设备异常断电恢复方法由所述控制器执行,其特征在于,所述存储设备异常断电恢复方法包括:
当判断所述存储设备处于空闲状态时,对所述存储设备进行快照,以获取当前所述存储设备的系统信息,并在所述系统信息中写入第一标签后,将所述系统信息写入所述闪存中;
当判断发生以下至少一种情形:所述闪存中的逻辑转实体映射表被更改、启动垃圾回收操作、编程了一个新的区块或者除了当前编程的所述区块以外的任一所述区块的数据信息改变时,对所述存储设备进行快照,以获取当前所述存储设备的所述系统信息,并在所述系统信息中写入第二标签后,将所述系统信息写入所述闪存中;
当异常断电后重新上电启动时,寻找最新写入在所述闪存中的所述系统信息,并判断寻找到的所述系统信息中是否包括所述第一标签;
当判断寻找到的所述系统信息包括所述第一标签时,执行瞬间断电快速恢复操作,系基于包括所述第一标签的所述系统信息中所述闪存中每一所述区块的所述数据信息和所述当前编程的所述区块的位置,获取且解析所述当前编程的所述区块的所述数据信息,并将包括所述第一标签的所述系统信息中的写缓存映射表加载至所述内存,以使所述内存恢复到异常断电前的状态;当判断寻找到的所述系统信息包括所述第二标签时,执行瞬间断电恢复操作,以使所述内存恢复到异常断电前的状态。
2.如权利要求1所述的存储设备异常断电恢复方法,其特征在于,还包括:判断寻找到的所述系统信息是否包括所述第二标签;其中,所述瞬间断电恢复操作包括:解析所述闪存中的所述逻辑转实体映射表,以及扫描所述闪存中所有区块的所述数据信息。
3.如权利要求1所述的存储设备异常断电恢复方法,其特征在于,所述系统信息包括有:所述内存中的所述写缓存映射表、所述闪存中每一所述区块的所述数据信息和所述闪存中所述当前编程的所述区块的所述位置。
4.如权利要求1所述的存储设备异常断电恢复方法,其特征在于,在当异常断电后重新上电启动时,寻找最新写入在所述闪存中的所述系统信息,并判断寻找到的所述系统信息中是否包括所述第一标签之前,所述存储设备异常断电恢复方法还包括:
当接收断电指令时,对所述存储设备进行快照,以获取当前所述存储设备的所述系统信息,并在所述系统信息中写入第三标签后,将所述系统信息写入所述闪存中。
5.如权利要求1所述的存储设备异常断电恢复方法,其特征在于,启动所述垃圾回收操作还包括:对所述闪存中的存储数据的所述区块进行垃圾回收和/或所述逻辑转实体映射表进行垃圾回收。
6.一种存储设备,包括内存、闪存和控制器,所述内存和所述闪存分别与所述控制器连接,其特征在于,所述控制器包括:
非易失性存储器,用于存储实现存储设备异常断电恢复方法的程序代码;
处理器,耦接所述非易失性存储器,用于加载并执行所述存储设备异常断电恢复方法的程序代码,以当判断所述存储设备处于空闲状态时,对所述存储设备进行快照,以获取当前所述存储设备的系统信息,并在所述系统信息中写入第一标签后,将所述系统信息写入所述闪存中;当判断发生以下至少一种情形:所述闪存中的逻辑转实体映射表被更改、启动垃圾回收操作、编程了一个新的区块或者除了当前编程的所述区块以外的任一所述区块的数据信息改变时,对所述存储设备进行快照,以获取当前所述存储设备的所述系统信息,并在所述系统信息中写入第二标签后,将所述系统信息写入所述闪存中;当异常断电后重新上电启动时,寻找最新写入在所述闪存中的所述系统信息,并判断寻找到的所述系统信息中是否包括所述第一标签;及当判断寻找到的所述系统信息包括所述第一标签时,执行瞬间断电快速恢复操作,系基于包括所述第一标签的所述系统信息中所述闪存中每一所述区块的所述数据信息和所述当前编程的所述区块的位置,获取且解析所述当前编程的所述区块的所述数据信息,并将包括所述第一标签的所述系统信息中的写缓存映射表加载至所述内存,以使所述内存恢复到异常断电前的状态;当判断寻找到的所述系统信息包括所述第二标签时,执行瞬间断电恢复操作,以使所述内存恢复到异常断电前的状态。
7.如权利要求6所述的存储设备,其特征在于,所述处理器还用于加载并执行所述存储设备异常断电恢复方法的程序代码,以判断寻找到的所述系统信息中是否包括所述第二标签;其中,所述瞬间断电恢复操作包括:所述处理器解析所述闪存中的所述逻辑转实体映射表,并扫描所述闪存中所有区块的所述数据信息。
8.如权利要求6所述的存储设备,其特征在于,所述系统信息包括有:所述内存中的所述写缓存映射表、所述闪存中每一所述区块的所述数据信息和所述闪存中所述当前编程的所述区块的所述位置。
9.如权利要求6所述的存储设备,其特征在于,所述处理器还用于加载并执行所述存储设备异常断电恢复方法的程序代码,以判断是否接收断电指令;当判断接收所述断电指令时,对所述存储设备进行快照,以获取当前所述存储设备的所述系统信息,并在所述系统信息中写入第三标签后,将所述系统信息写入所述闪存中。
10.如权利要求6所述的存储设备,其特征在于,启动所述垃圾回收操作还包括:对所述闪存中的存储数据的所述区块进行垃圾回收和/或所述逻辑转实体映射表进行垃圾回收。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010915047.6A CN111949220B (zh) | 2020-09-03 | 2020-09-03 | 存储设备异常断电恢复方法及存储设备 |
US17/156,711 US11467645B2 (en) | 2020-09-03 | 2021-01-25 | Storage device and method for sudden power off recovery thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010915047.6A CN111949220B (zh) | 2020-09-03 | 2020-09-03 | 存储设备异常断电恢复方法及存储设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111949220A CN111949220A (zh) | 2020-11-17 |
CN111949220B true CN111949220B (zh) | 2023-12-08 |
Family
ID=73367266
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010915047.6A Active CN111949220B (zh) | 2020-09-03 | 2020-09-03 | 存储设备异常断电恢复方法及存储设备 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11467645B2 (zh) |
CN (1) | CN111949220B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12045473B2 (en) * | 2022-06-14 | 2024-07-23 | Western Digital Technologies, Inc. | Data storage device and method for prediction-based improved power-loss handling |
CN115291815B (zh) * | 2022-10-09 | 2023-03-24 | 合肥康芯威存储技术有限公司 | 一种存储器及其控制方法与存储系统 |
CN115407946B (zh) * | 2022-11-02 | 2023-03-24 | 合肥康芯威存储技术有限公司 | 一种存储器及其控制方法与控制系统 |
CN115878033B (zh) * | 2022-11-30 | 2023-09-15 | 合肥腾芯微电子有限公司 | 一种固态硬盘及其映射表管理方法 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101876949A (zh) * | 2009-11-30 | 2010-11-03 | 威盛电子股份有限公司 | 数据储存系统与方法 |
CN102073600A (zh) * | 2009-11-20 | 2011-05-25 | 群联电子股份有限公司 | 数据备份方法、闪存控制器及闪存储存系统 |
CN102591748A (zh) * | 2011-12-29 | 2012-07-18 | 记忆科技(深圳)有限公司 | 固态硬盘及其掉电保护方法、系统 |
TW201426305A (zh) * | 2012-12-28 | 2014-07-01 | Infomicro Electronics Shenzhen Ltd | 虛擬記憶體設備驅動器、用於在主機上執行之虛擬記憶體設備驅動器、刷新快閃記憶體的方法、快閃記憶體刷新的方法、超級增強耐力設備硬碟固體狀態驅動機耐用轉換層之方法、超級增強耐力設備及耐力快閃記憶體檔案系統 |
CN106294026A (zh) * | 2016-08-19 | 2017-01-04 | 浪潮(北京)电子信息产业有限公司 | 一种固态盘异常掉电后的映射表恢复方法及其系统 |
CN107038131A (zh) * | 2016-02-04 | 2017-08-11 | 广明光电股份有限公司 | 固态硬盘断电保护装置及方法 |
CN108038026A (zh) * | 2017-11-17 | 2018-05-15 | 中国科学院信息工程研究所 | 一种基于闪存的数据快速恢复方法与系统 |
CN110286850A (zh) * | 2019-05-15 | 2019-09-27 | 青岛镕铭半导体有限公司 | 固态硬盘元数据的写入方法、恢复方法及固态硬盘 |
CN110688251A (zh) * | 2018-07-05 | 2020-01-14 | 华为技术有限公司 | 写数据方法及存储系统 |
CN110825310A (zh) * | 2018-08-09 | 2020-02-21 | 深圳大心电子科技有限公司 | 存储器管理方法以及存储控制器 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100843543B1 (ko) * | 2006-10-25 | 2008-07-04 | 삼성전자주식회사 | 플래시 메모리 장치를 포함하는 시스템 및 그것의 데이터복구 방법 |
EP2248027A4 (en) * | 2008-02-29 | 2011-05-18 | Toshiba Kk | STORAGE SYSTEM |
JP4675984B2 (ja) * | 2008-02-29 | 2011-04-27 | 株式会社東芝 | メモリシステム |
US9003118B2 (en) * | 2009-01-09 | 2015-04-07 | Dell Products L.P. | Systems and methods for non-volatile cache control |
JP2012128643A (ja) * | 2010-12-15 | 2012-07-05 | Toshiba Corp | メモリシステム |
US9292434B2 (en) * | 2013-08-22 | 2016-03-22 | CNEXLABS, Inc. | Method and apparatus for restoring flash translation layer (FTL) in non-volatile storage device |
US9904480B1 (en) * | 2014-12-18 | 2018-02-27 | EMC IP Holding Company LLC | Multiplexing streams without changing the number of streams of a deduplicating storage system |
JP6734536B2 (ja) * | 2016-07-29 | 2020-08-05 | 富士通株式会社 | 情報処理装置及びメモリコントローラ |
US10846216B2 (en) * | 2018-10-25 | 2020-11-24 | Pure Storage, Inc. | Scalable garbage collection |
US10921986B2 (en) * | 2019-05-14 | 2021-02-16 | Oracle International Corporation | Efficient space management for high performance writable snapshots |
-
2020
- 2020-09-03 CN CN202010915047.6A patent/CN111949220B/zh active Active
-
2021
- 2021-01-25 US US17/156,711 patent/US11467645B2/en active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102073600A (zh) * | 2009-11-20 | 2011-05-25 | 群联电子股份有限公司 | 数据备份方法、闪存控制器及闪存储存系统 |
CN101876949A (zh) * | 2009-11-30 | 2010-11-03 | 威盛电子股份有限公司 | 数据储存系统与方法 |
CN102591748A (zh) * | 2011-12-29 | 2012-07-18 | 记忆科技(深圳)有限公司 | 固态硬盘及其掉电保护方法、系统 |
TW201426305A (zh) * | 2012-12-28 | 2014-07-01 | Infomicro Electronics Shenzhen Ltd | 虛擬記憶體設備驅動器、用於在主機上執行之虛擬記憶體設備驅動器、刷新快閃記憶體的方法、快閃記憶體刷新的方法、超級增強耐力設備硬碟固體狀態驅動機耐用轉換層之方法、超級增強耐力設備及耐力快閃記憶體檔案系統 |
CN107038131A (zh) * | 2016-02-04 | 2017-08-11 | 广明光电股份有限公司 | 固态硬盘断电保护装置及方法 |
CN106294026A (zh) * | 2016-08-19 | 2017-01-04 | 浪潮(北京)电子信息产业有限公司 | 一种固态盘异常掉电后的映射表恢复方法及其系统 |
CN108038026A (zh) * | 2017-11-17 | 2018-05-15 | 中国科学院信息工程研究所 | 一种基于闪存的数据快速恢复方法与系统 |
CN110688251A (zh) * | 2018-07-05 | 2020-01-14 | 华为技术有限公司 | 写数据方法及存储系统 |
CN110825310A (zh) * | 2018-08-09 | 2020-02-21 | 深圳大心电子科技有限公司 | 存储器管理方法以及存储控制器 |
CN110286850A (zh) * | 2019-05-15 | 2019-09-27 | 青岛镕铭半导体有限公司 | 固态硬盘元数据的写入方法、恢复方法及固态硬盘 |
Also Published As
Publication number | Publication date |
---|---|
US20220066527A1 (en) | 2022-03-03 |
CN111949220A (zh) | 2020-11-17 |
US11467645B2 (en) | 2022-10-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111949220B (zh) | 存储设备异常断电恢复方法及存储设备 | |
CN107943414B (zh) | 嵌入式Linux的文件系统分区及数据读写方法 | |
JP4371771B2 (ja) | 不揮発性メモリシステムにおいて用いられる電力管理ブロック | |
EP2367110A1 (en) | Emerging bad block detection | |
KR20100080350A (ko) | 전력 손실 이후의 비-휘발성 메모리에 대한 복원 | |
CN109508148B (zh) | 一种元数据重建方法、装置和计算机可读存储介质 | |
CN111755039A (zh) | 在恢复进程期间减少存储器系统中单元干扰的设备及方法 | |
US8819387B2 (en) | Memory storage device, memory controller, and method for identifying valid data | |
US20180143886A1 (en) | Method for Rebuilding a Mapping Table of a Solid State Disk | |
WO2023116346A1 (zh) | 异常掉电下Trim数据的恢复方法、系统及固态硬盘 | |
US20210382660A1 (en) | Apparatus and method for performing recovery operation of memory system | |
US20190310921A1 (en) | Data storage device and operation method optimized for recovery performance, and storage system having the same | |
CN105955672B (zh) | 用于灵活控制损耗均衡的固态存储系统及方法 | |
JP2008123314A (ja) | 半導体記憶装置への情報記録方法及び情報記録システム | |
KR101258589B1 (ko) | 저널링 파일 시스템에 따라 데이터를 기록한 정보저장매체,저널링 파일 시스템을 이용해서 데이터를 기록/복구하는방법 및 장치 | |
TWI755059B (zh) | 儲存設備及其異常斷電恢復方法 | |
CN112214356B (zh) | 文件数据恢复方法、装置、计算机设备及存储介质 | |
CN110286850B (zh) | 固态硬盘元数据的写入方法、恢复方法及固态硬盘 | |
CN110704339B (zh) | 一种数据销毁方法、装置、设备、介质 | |
CN112099731B (zh) | 数据储存装置与数据处理方法 | |
CN108804033B (zh) | 基于断电重续的全盘扫描方法、装置、计算机设备及介质 | |
CN108509295B (zh) | 存储器系统的操作方法 | |
CN110489053B (zh) | 管理闪存模块的方法、相关的闪存控制器和电子装置 | |
JP4239754B2 (ja) | 不揮発メモリシステム | |
US20240152347A1 (en) | Firmware updating method and data storage device utilizing the same |
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 |