CN109388520A - 数据备份方法、数据恢复方法以及存储控制器 - Google Patents
数据备份方法、数据恢复方法以及存储控制器 Download PDFInfo
- Publication number
- CN109388520A CN109388520A CN201710670012.9A CN201710670012A CN109388520A CN 109388520 A CN109388520 A CN 109388520A CN 201710670012 A CN201710670012 A CN 201710670012A CN 109388520 A CN109388520 A CN 109388520A
- Authority
- CN
- China
- Prior art keywords
- trimming information
- trimming
- logic
- inventory
- data
- 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
Links
Classifications
-
- 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/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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供适用于可复写式非易失性存储器模块的一种数据备份方法、数据恢复方法与存储控制器。所述数据备份方法包括接收修剪指令;根据所述修剪指令、用以存储修剪信息清单的实体地址产生修剪信息清单,其中所述修剪信息清单记录对应所述修剪指令与所述实体地址的信息;将所产生的修剪信息清单存储至所述实体地址。所述数据恢复方法包括重建逻辑转实体表;从可复写式非易失性存储器模块中载入最新的修剪信息清单至存储器中;根据存储器中的修剪信息清单与重建后逻辑转实体表来更新重建后逻辑转实体表或所述存储器中的修剪信息清单。
Description
技术领域
本发明涉及一种数据备份方法与数据恢复方法,尤其涉及一种适用于配置有可复写式非易失性存储器模块的存储装置的数据备份方法、数据恢复方法与存储控制器。
背景技术
一般来说,主机系统可利用修剪命令(Trim command)通知配置可复写式非易失性存储器模块的存储装置(如,固态硬盘,SSD)哪些实体单元(实体区块)的数据不再被视为在使用中(即,无效数据),并且所述多个实体单元可以被抹除。存储装置的控制器会根据修剪命令的修剪信息将对应修剪信息所指示的逻辑单元地址的实体单元地址标记为无效,以使控制器可在尔后的其他操作中,通过被标记为无效的实体单元地址辨识出存储在所述实体单元地址中的数据为无效数据,进而增加了存储装置的管理效率。例如,通过修剪指令所标记的无效数据,可增进垃圾回收操作的效率。
但是,如何即时地管理(保存)所接收到的修剪指令的修剪信息(Triminformation),以应付突然的断电和后续数据恢复成为一个值得研究的问题。更详细来说,控制器一般会维持逻辑转实体表(Logical to physical table,L2P table),以监视整个逻辑单元与实体单元的映射状态。但,逻辑转实体表(以下称L2P表)的缺点是,控制器需要在特定时间来更新且存储所维护于存储器(如,RAM)中的L2P表至存储装置中。否则,在下次启动时L2P表将会消失。此外,为了支持修剪指令,L2P表也会包含存储对应修剪指令的修剪信息的逻辑单元地址与实体单元地址的映射关系。为了在每次开机后或是断电后的恢复操作中来安全地恢复L2P表与最新的修剪信息,目前传统的作法是在接收到每个修剪指令时,将L2P表与最新的修剪指令存储(程序化)至存储装置中。但是,上述的传统作法会降低系统性能并降低实体单元的使用寿命。
基此,如何更有效率地管理修剪信息与L2P表,进而进行更佳的数据恢复操作,进而提升配置有可复写式非易失性存储器模块的存储装置的性能与安全,是本领域人员研究的课题的一。
发明内容
本发明提供一种数据备份与恢复方法与存储控制器,可利用已备份至可复写式非易失性存储器模块的特定数据架构的修剪信息与L2P表,来进行对应的数据恢复操作。
本发明的一实施例提供一种数据备份方法,适用于配置有可复写式非易失性存储器模块的存储装置,其中所述可复写式非易失性存储器模块具有多个实体单元,并且所述可复写式非易失性存储器模块被配置多个实体地址,其中电性连接至所述存储装置的主机系统配置多个逻辑地址。所述方法包括从所述主机系统接收修剪指令,其中所述修剪指令指示存储于逻辑地址区段中的无效数据;根据所述修剪指令、所述多个实体地址中的目标实体地址来产生修剪信息,以根据所述修剪信息更新第一修剪信息清单为第二修剪信息清单,其中所述修剪信息记录无效数据起始逻辑地址、无效数据长度值、修剪信息页面顺序与修剪信息时间戳记;将所述第二修剪信息清单存储至所述目标实体地址,其中所述第一或第二修剪信息清单根据接收对应一或多笔修剪信息的修剪指令的时间顺序来依序记录所述一或多笔修剪信息;将用以存储所述第二修剪信息清单的所述目标实体地址记录至第一逻辑转实体表的修剪信息清单实体地址,以更新所述第一逻辑转实体表为第二逻辑转实体表;以及当符合预设条件,存储所述第二逻辑转实体表至所述可复写式非易失性存储器模块。
本发明的一实施例提供一种数据恢复方法,适用于配置有可复写式非易失性存储器模块的存储装置,其中所述可复写式非易失性存储器模块具有多个实体单元,并且所述可复写式非易失性存储器模块被配置多个实体地址,其中电性连接至所述存储装置的主机系统配置多个逻辑地址。所述方法包括根据存储在所述可复写式非易失性存储器模块的第一逻辑转实体表与所述可复写式非易失性存储器模块中时间戳记大于所述第一逻辑转实体表的时间戳记的所有有效数据的实体地址与对应的逻辑地址来重建所述第一逻辑转实体表,并且将重建后的所述第一逻辑转实体表存储至一存储器为第二逻辑转实体表;若所述可复写式非易失性存储器模块存储有一或多个第一修剪信息清单,辨识所述一或多个第一修剪信息清单中最新的第二修剪信息清单,其中所述一或多个第一修剪信息清单的每一个第一修剪信息清单记录一或多笔修剪信息,其中每一笔修剪信息记录无效数据起始逻辑地址、无效数据长度值、修剪信息页面顺序与修剪信息时间戳记,其中所述一或多个第一修剪信息清单的时间戳记都大于所述第一逻辑转实体表的时间戳记;以及根据所述第二修剪信息清单的所有修剪信息与所述第二逻辑转实体表来更新所述第二逻辑转实体表或更新存储于所述存储器中的一第三修剪信息清单。
本发明的一实施例提供用于控制配置有可复写式非易失性存储器模块的存储装置的一种存储控制器。所述存储控制器包括连接接口电路、存储器接口控制电路与处理器。所述连接接口电路用以电性连接至配置多个逻辑地址的主机系统。所述存储器接口控制电路用以电性连接至所述可复写式非易失性存储器模块,其中所述可复写式非易失性存储器模块具有多个实体单元,并且所述可复写式非易失性存储器模块被配置多个实体地址。所述处理器电性连接至所述连接接口电路及所述存储器接口控制电路。此外,所述处理器用以从所述主机系统接收修剪指令,其中所述修剪指令指示存储于逻辑地址区段中的无效数据,其中所述处理器更用以根据所述修剪指令、所述多个实体地址中的目标实体地址来产生一修剪信息,以根据所述修剪信息更新第一修剪信息清单为第二修剪信息清单,其中所述修剪信息记录无效数据起始逻辑地址、无效数据长度值、修剪信息页面顺序与修剪信息时间戳记。所述处理器更用以将所述第二修剪信息清单存储至所述目标实体地址,其中所述第一或第二修剪信息清单根据接收对应一或多笔修剪信息的修剪指令的时间顺序来依序记录所述一或多笔修剪信息,其中所述处理器更用以将用以存储所述第二修剪信息清单的所述目标实体地址记录至第一逻辑转实体表的一修剪信息清单实体地址,以更新所述第一逻辑转实体表为第二逻辑转实体表。当符合预设条件,所述处理器更用以存储所述第二逻辑转实体表至所述可复写式非易失性存储器模块。
本发明的一实施例提供用于控制配置有可复写式非易失性存储器模块的存储装置的一种存储控制器。所述存储控制器包括连接接口电路、存储器接口控制与电路处理器。所述连接接口电路用以电性连接至配置多个逻辑地址的主机系统。所述存储器接口控制电路用以电性连接至所述可复写式非易失性存储器模块,其中所述可复写式非易失性存储器模块具有多个实体单元,并且所述可复写式非易失性存储器模块被配置多个实体地址。所述处理器电性连接至所述连接接口电路及所述存储器接口控制电路,其中所述处理器用以根据存储在所述可复写式非易失性存储器模块的第一逻辑转实体表与所述可复写式非易失性存储器模块中时间戳记大于所述第一逻辑转实体表的时间戳记的所有有效数据的实体地址与对应的逻辑地址来重建所述第一逻辑转实体表,并且将重建后的所述第一逻辑转实体表存储至存储器为第二逻辑转实体表。若所述可复写式非易失性存储器模块存储有一或多个第一修剪信息清单,所述处理器更用以辨识所述一或多个第一修剪信息清单中最新的第二修剪信息清单,其中所述一或多个第一修剪信息清单的每一个第一修剪信息清单记录一或多笔修剪信息,其中每一笔修剪信息记录无效数据起始逻辑地址、无效数据长度值、修剪信息页面顺序与修剪信息时间戳记,其中所述一或多个第一修剪信息清单的时间戳记都大于所述第一逻辑转实体表的时间戳记。此外,所述处理器更用以根据所述第二修剪信息清单的所有修剪信息与所述第二逻辑转实体表来更新所述第二逻辑转实体表或更新存储于所述存储器中的第三修剪信息清单。
基于上述,本发明实施例所提供的数据备份方法,数据恢复方法以及存储控制器,可根据所接收的修剪指令来产生特定数据架构的修剪信息,并且利用已备份至可复写式非易失性存储器模块的修剪信息清单与逻辑转实体表,来进行对应的数据恢复操作。由于不需要因为所接收的修剪指令而备份对应的修剪信息与逻辑转实体表至可复写式非易失性存储器模块,因此避免了大量的写入操作,并且增进存储装置整体的工作效率。此外,在断电后,可经由所备份的特定结构的修剪信息清单与逻辑转实体表来有效地进行数据恢复,以重建断电前的修剪信息清单与逻辑转实体表。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。
附图说明
图1是根据本发明的一实施例所显示的主机系统及存储装置的方块示意图;
图2是根据本发明的一实施例所显示的数据备份方法的流程图;
图3是根据本发明的一实施例所显示的数据恢复方法的流程图;
图4为根据本发明的一实施例所显示的图3的步骤S35的流程图;
图5A为根据本发明的第一实施例所显示的逻辑转实体表的示意图;
图5B~5C为根据本发明的第一实施例所显示的数据备份方法的示意图;
图5D~5F为根据本发明的第一实施例所显示的数据恢复方法的示意图;
图5G~5H为根据本发明的第二实施例所显示的数据备份方法的示意图;
图5I~5L为根据本发明的第二实施例所显示的数据恢复方法的示意图。
附图标号说明:
10:主机系统
20:存储装置
110、211:处理器
120:主机存储器
130:数据传输接口电路
210:存储控制器
212:数据传输管理电路
213:存储器接口控制电路
220:可复写式非易失性存储器模块
230:连接接口电路
S21、S23、S25、S27、S29:数据备份方法的流程步骤
S31、S33、S35:数据恢复方法的流程步骤
S351、S352、S353、S354、S355、S356、S357、S358:步骤S35的流程步骤
501、502、503、504、507、508、509、510、511、512:逻辑转实体表
51(1)~51(8)、52(1)~52(8):实体页面
51、52:实体单元
D511、D512、D513、D514、D516、D517:数据
TC1、TC2:修剪指令
WC1:写入指令
GC1:垃圾回收指令
TIL1、TIL2:修剪信息清单
TI1、TI2、TI3:修剪信息
LBA(0)~LBA(127):逻辑地址
PBA(0)~PBA(127)、exPBA(0):实体地址
exLBA(0):延伸逻辑地址
LS1、LS2:逻辑地址区段
A501、A502、A503、A504、A505、A506、A507、A508、A509、A510、A511、A512、A513、A514、A515、A516、A517、A518、A519:箭头
具体实施方式
在本实施例中,存储装置包括可复写式非易失性存储器模块(rewritable non-volatile memory module)与存储装置控制器(也称,存储控制器或存储控制电路)。此外,存储装置是与主机系统一起使用,以使主机系统可将数据写入至存储装置或从存储装置中读取数据。
图1是根据本发明的一实施例所显示的主机系统及存储装置的方块示意图。
请参照图1,主机系统(Host System)10包括处理器(Processor)110、主机存储器(Host Memory)120及数据传输接口电路(Data Transfer Interface Circuit)130。在本实施例中,数据传输接口电路130电性连接(也称,电性连接)至处理器110与主机存储器120。在另一实施例中,处理器110、主机存储器120与数据传输接口电路130的间利用系统总线(System Bus)彼此电性连接。
存储装置20包括存储控制器(Storage Controller)210、可复写式非易失性存储器模块(Rewritable Non-Volatile Memory Module)220及连接接口电路(ConnectionInterface Circuit)230。其中,存储控制器210包括处理器211、数据管理电路(DataTransfer Management Circuit)212与存储器接口控制电路(Memory Interface ControlCircuit)213。
在本实施例中,主机系统10是通过数据传输接口电路130与存储装置20的连接接口电路230电性连接至存储装置20来进行数据的存取操作。例如,主机系统10可经由数据传输接口电路130将数据存储至存储装置20或从存储装置20中读取数据。
在本实施例中,处理器110、主机存储器120及数据传输接口电路130可设置在主机系统10的主机板上。数据传输接口电路130的数目可以是一或多个。通过数据传输接口电路130,主机板可以经由有线或无线方式电性连接至存储装置20。存储装置20可例如是随身盘、存储卡、固态硬盘(Solid State Drive,SSD)或无线存储器存储装置。无线存储器存储装置可例如是近距离无线通讯(Near Field Communication,NFC)存储器存储装置、无线传真(WiFi)存储器存储装置、蓝牙(Bluetooth)存储器存储装置或低功耗蓝牙存储器存储装置(例如,iBeacon)等以各式无线通讯技术为基础的存储器存储装置。此外,主机板也可以通过系统总线电性连接至全球定位系统(Global Positioning System,GPS)模块、网络接口卡、无线传输装置、键盘、荧幕、鼠标、喇叭等各式I/O装置。
在本实施例中,数据传输接口电路130与连接接口电路230是相容于高速周边零件连接接口(Peripheral Component Interconnect Express,PCI Express)标准的接口电路。并且,数据传输接口电路130与连接接口电路230的间是利用快速非易失性存储器接口标准(Non-Volatile Memory express,NVMe)通讯协定来进行数据的传输。
然而,必须了解的是,本发明不限于此,数据传输接口电路130与连接接口电路230也可以是符合并列先进附件(Parallel Advanced Technology Attachment,PATA)标准、电气和电子工程师协会(Institute of Electrical and Electronic Engineers,IEEE)1394标准、序列先进附件(Serial Advanced Technology Attachment,SATA)标准、通用序列总线(Universal Serial Bus,USB)标准、SD接口标准、超高速一代(Ultra High Speed-I,UHS-I)接口标准、超高速二代(Ultra High Speed-II,UHS-II)接口标准、记忆棒(MemoryStick,MS)接口标准、多芯片封装(Multi-Chip Package)接口标准、多媒体存储卡(MultiMedia Card,MMC)接口标准、eMMC接口标准、通用快闪存储器(Universal Flash Storage,UFS)接口标准、eMCP接口标准、CF接口标准、整合式驱动电子接口(Integrated DeviceElectronics,IDE)标准或其他适合的标准。此外,在另一实施例中,连接接口电路230可与存储控制器210封装在一个芯片中,或者连接接口电路230是布设于一包含存储控制器210的芯片外。
在本实施例中,主机存储器120用以暂存处理器110所执行的指令或数据。例如,在本范例实施例中,主机存储器120可以是动态随机存取存储器(Dynamic Random AccessMemory,DRAM)、静态随机存取存储器(Static Random Access Memory,SRAM)等。然而,必须了解的是,本发明不限于此,主机存储器120也可以是其他适合的存储器。
存储控制器210用以执行以硬件型式或韧件型式实作的多个逻辑闸或控制指令并且根据主机系统10的指令在可复写式非易失性存储器模块220中进行数据的写入、读取与抹除等运作。
更详细来说,存储控制器210中的处理器211为具备运算能力的硬件,其用以控制存储控制器210的整体运作。具体来说,处理器211具有多个控制指令,并且在存储装置20运作时,此些控制指令会被执行以进行数据的写入、读取与抹除等运作。
值得一提的是,在本实施例中,处理器110与处理器211例如是中央处理单元(Central Processing Unit,CPU)、微处理器(micro-processor)、或是其他可程序化的处理单元(Microprocessor)、数码信号处理器(Digital Signal Processor,DSP)、可程序化控制器、特殊应用集成电路(Application Specific Integrated Circuits,ASIC)、可程序化逻辑装置(Programmable Logic Device,PLD)或其他类似电路元件,本发明并不限于此。
在一实施例中,存储控制器210还具有只读存储器(未显示)及随机存取存储器(未显示)。特别是,此只读存储器具有开机码(boot code),并且当存储控制器210被致能时,处理器211会先执行此开机码来将存储于可复写式非易失性存储器模块220中的控制指令载入至存储控制器210的随机存取存储器中。的后,处理器211会运转此些控制指令以进行数据的写入、读取与抹除等运作。在另一实施例中,处理器211的控制指令也可以程序码型式存储于可复写式非易失性存储器模块220的特定区域,例如,可复写式非易失性存储器模块220中专用于存放系统数据的实体存储单元中。
在本实施例中,如上所述,存储控制器210还包括数据管理电路212与存储器接口控制电路213。应注意的是,存储控制器220各部件所执行的操作也可视为存储控制器220所执行的操作。
其中,数据管理电路212电性连接至处理器211、存储器接口控制电路213与连接接口电路230。数据管理电路212用以接受处理器211的指示来进行数据的传输。例如,经由连接接口电路230从主机系统10(如,主机存储器120)读取数据,并且将所读取的数据经由存储器接口控制电路213写入至可复写式非易失性存储器模块220中(如,根据来自主机系统10的写入指令来进行写入操作)。又例如,经由存储器接口控制电路213从可复写式非易失性存储器模块220的一或多个实体单元中读取数据,并且将所读取的数据经由连接接口电路230写入至主机系统10(如,主机存储器120)中(如,根据来自主机系统10的读取指令来进行读取操作)。在另一实施例中,数据管理电路212也可整合至处理器211中。以下会再配合多个图式与实施例来详细说明本发明中数据管理电路212的功能。
存储器接口控制电路213用以接受处理器211的指示,配合数据管理电路212来进行对于可复写式非易失性存储器模块220的写入(也称,程序化,Programming)操作、读取操作或抹除操作。
举例来说,处理器211可执行写入指令序列,以指示存储器接口控制电路213将数据写入至可复写式非易失性存储器模块220的实体单元(也称,目标实体单元)中;处理器211可执行读取指令序列,以指示存储器接口控制电路213从可复写式非易失性存储器模块220的对应读取指令的一或多个实体单元中读取数据;处理器211可执行抹除指令序列,以指示存储器接口控制电路213对可复写式非易失性存储器模块220进行抹除操作。写入指令序列、读取指令序列及抹除指令序列可各别包括一或多个程序码或指令码并且用以指示对可复写式非易失性存储器模块220执行相对应的写入、读取及抹除等操作。在一实施例中,处理器211还可以下达其他类型的指令序列给存储器接口控制电路213,以对可复写式非易失性存储器模块220执行相对应的操作。
此外,欲写入至可复写式非易失性存储器模块220的数据会经由存储器接口控制电路213转换为可复写式非易失性存储器模块220所能接受的格式。具体来说,若处理器211要存取可复写式非易失性存储器模块220,处理器211会传送对应的指令序列给存储器接口控制电路213以指示存储器接口控制电路213执行对应的操作。例如,这些指令序列可包括指示写入数据的写入指令序列、指示读取数据的读取指令序列、指示抹除数据的抹除指令序列、以及用以指示各种存储器操作(例如,改变读取电压组准位或执行垃圾回收程序等等)的相对应的指令序列。这些指令序列可包括一或多个信号,或是在总线上的数据。这些信号或数据可包括指令码或程序码。例如,在读取指令序列中,会包括读取的辨识码、存储器地址等信息。
可复写式非易失性存储器模块220是电性连接至存储控制器210(存储器接口控制电路213)并且用以存储主机系统10所写入的数据。可复写式非易失性存储器模块220可以是单阶存储单元(Single Level Cell,SLC)NAND型快闪存储器模块(即,一个存储单元中可存储1个位元的快闪存储器模块)、多阶存储单元(Multi Level Cell,MLC)NAND型快闪存储器模块(即,一个存储单元中可存储2个位元的快闪存储器模块)、三阶存储单元(TripleLevel Cell,TLC)NAND型快闪存储器模块(即,一个存储单元中可存储3个位元的快闪存储器模块)、三维NAND型快闪存储器模块(3D NAND flash memory module)或垂直NAND型快闪存储器模块(Vertical NAND flash memory module)等其他快闪存储器模块或其他具有相同特性的存储器模块。可复写式非易失性存储器模块220中的存储单元是以阵列的方式设置。
在本实施例中,可复写式非易失性存储器模块220的存储单元会构成多个实体程序化单元(也称,实体子单元),并且此些实体程序化单元会构成多个实体区块(也称,实体抹除单元或实体单元)。具体来说,同一条字元线(或同一个字元线层)上的存储单元会组成一或多个实体程序化单元。
在本实施例中,是以实体子单元作为写入(程序化)数据的最小单位。实体单元为抹除的最小单位,即,每一实体单元含有最小数目的一并被抹除的存储单元。每一实体单元会具有多个实体子单元。实体子单元可为实体页面(page)或是实体扇(sector)。在本实施例中,实体子单元包括数据位元区与冗余(redundancy)位元区。数据位元区用以存储使用者数据,而冗余位元区用以存储系统数据。系统数据例如为错误更正码、错误检查码或元数据(Meta Data)。
应注意的是,在本实施例中,用以记录一实体单元的信息的系统数据可利用所述实体单元中的一或多个实体子单元来记录,或是利用一个系统区中用以记录所有系统数据的特定实体单元的一或多个实体子单元来记录。在本实施例中,所述对应一实体单元的系统数据包括所述实体单元的时间戳记(Timestamp)(也称,全域时间戳记)等信息。所述时间戳记的大小(数值差异)可用来表示对应的实体单元最早被使用的时间的先后。本发明并不限定所述时间戳记的详细格式。举例来说,每当处理器211对选择分配于闲置区的一实体单元以进行数据写入操作时,所述实体单元会被分配至数据区(如,所述实体单元会成为开放实体单元),并且所述实体单元的时间戳记会记录当前的存储装置时间或是系统时间。也就是说,若一实体单元的时间戳记大于(晚于)另一实体单元的时间戳记,此情况表示所述实体单元比所述另一实体单元还要早被分配至数据区(或更早被处理器211选择来使用)。
此外,在本实施例中,当完成写入逻辑转实体表或实体转逻辑表至可复写式非易失性存储器模块220后,处理器211也会附加时间戳记至所写入的逻辑转实体表或实体转逻辑表,以记录此逻辑转实体表或实体转逻辑表被写入至可复写式非易失性存储器模块220的时间。
所述数据写入操作例如是根据对应一逻辑地址的数据写入资作来程序化对应的数据至所述实体单元的一或多个实体页面(也称,实体子单元),或例如是程序化数据至所述实体单元的其他型态的实体地址(如,实体扇区)。在本实施例中,当完成对于一个逻辑页面(逻辑地址)的数据写入操作(如,对应的数据已被程序化至一实体页面)时,处理器211会对应地更新逻辑转实体表,以记录所述逻辑地址所对应的实体页面的地址(实体地址)。此外,处理器211会将对应的元数据记录至对应所述实体页面的冗余位元区中。在本实施例中,所述元数据可记录所述实体页面所映射的逻辑地址。在另一实施例中,所述元数据也可记录对应所述写入操作的时间戳记,即,当所述实体页面的数据写入操作完成时,处理器211可记录一个时间戳记来记录完成所述实体页面的数据写入操作的当前时间。
主机系统10是通过存储控制器210配置多个逻辑单元给可复写式非易失性存储器模块220。所配置的逻辑单元用以存取存储在可复写式非易失性存储器模块220的多个实体单元中的使用者数据。在此,每一个逻辑单元可以是由一或多个逻辑地址组成。例如,逻辑单元可以是逻辑区块(Logical Block)、逻辑页面(Logical Page)或是逻辑扇区(LogicalSector)。一个逻辑单元可以是映射至一或多个实体单元,其中实体单元可以是一或多个实体地址、一或多个实体扇、一或多个实体程序化单元或者一或多个实体抹除单元。
在以下实施例中,为了方便说明,逻辑单元为逻辑区块,逻辑子单元指逻辑页面,并且逻辑地址指对应的逻辑页面或其地址。每一逻辑单元具有多个逻辑页面(逻辑地址);实体单元指实体区块,实体子单元指实体页面,并且实体地址指对应的实体页面或其地址。然而,在另一实施例中,一个实体单元/实体子单元也可以分别是指任意数目的存储单元组成,视实务上的需求而定,并且实体地址可指实体区括或实体页面的地址。
此外,存储控制器210会建立逻辑转实体表(Logical To Physical table)与实体转逻辑表(Physical To Logical table),以记录配置给可复写式非易失性存储器模块220的逻辑单元(如,逻辑区块、逻辑页面、逻辑地址或逻辑扇区)与实体单元(如,实体抹除单元、实体程序化单元、实体地址或实体扇区)的间的映射关系。换言的,存储控制器210可通过逻辑转实体表来查找一逻辑单元所映射的实体单元,并且存储控制器210可通过实体转逻辑表来查找一实体单元所映射的逻辑单元。然而,上述有关逻辑单元与实体单元映射的技术概念为本领域技术人员的惯用技术手段,不再赘述于此。
在一实施例中,存储控制器210还包括缓冲存储器与电源管理电路。缓冲存储器是电性连接至处理器211并且用以暂存来自于主机系统10的数据与指令、来自于可复写式非易失性存储器模块220的数据或其他用以管理存储装置20的系统数据(如,逻辑转实体表与实体转逻辑表、修剪信息清单等),以让处理器211可快速地从缓冲存储器中存取所述数据、指令或系统数据。电源管理电路是电性连接至处理器211并且用以控制存储装置20的电源。
以下配合图1、图2、图5A~5C与第一实施例来说明本发明所提供的数据备份方法的细节。
[第一实施例]
图5A为根据本发明的第一实施例所显示的逻辑转实体表的示意图。图5B~5C为根据本发明的第一实施例所显示的数据备份方法的示意图。请参照图5A,举例来说,在本实施例中,为了方便说明,假设主机系统配置用以存储数据的128个逻辑地址(逻辑页面)LBA(0)~LBA(127),可复写式非易失性存储器模块220被配置多个实体单元。每一实体单元具有8个实体页面。例如,实体单元51具有8个实体页面51(1)~51(8)。所述实体单元51的时间戳记为“X1”。
处理器211会维护逻辑转实体表501于存储器(缓冲存储器)中。在本实施例中,初始的逻辑转实体表501是读取的前备份(存储)于可复写式非易失性存储器模块220的逻辑转实体表备份数据,其时间戳记为“X0”。所述逻辑转实体表501记录了128个逻辑地址LBA(0)~LBA(127)以及所对应的实体地址PBA(0)~PBA(127)。此外,逻辑转实体表也可记录延伸逻辑地址(Extended Logical Address,例如,逻辑转实体表501记录延伸逻辑地址exLBA(0)以及对应的实体地址exPBA(0)。所述延伸逻辑地址并不被主机系统10(的作业系统)所管理或是知悉,并且本发明并不限定延伸逻辑地址的大小,即,延伸逻辑地址的总空间可大于或是小于主机系统的作业系统所配置的全部逻辑地址的大小。
假设,读取自可复写式非易失性存储器模块220的逻辑转实体表501的多个逻辑地址都未记录任何值。在时间T0,假设实体单元51的第1、2、3、4个实体页面(实体地址)(即,实体页面51(1)~51(4))被写入了数据D511、D512、D513、D514,其中上述数据D511、D512、D513、D514存储于逻辑地址LBA(0)、LBA(1)、LBA(2)、LBA(3)。对应地,当前的维护于存储器中的逻辑转实体表501所记录的逻辑地址LBA(0)、LBA(1)、LBA(2)、LBA(3)所分别对应的实体地址PBA(0)、PBA(1)、PBA(2)、PBA(3)会记录了“51_1”、“51_2”、“51_3”、“51_4”。此例子表示在实体单元51中的第1、2、3、4个实体页面(实体地址)存储了有效数据(如图5A所显示的实体单元51的灰底区块),如,有效数据D511、D512、D513、D514。此外,如图5A所显示,实体页面51(5)~51(8)没有存储任何数据(即,无数据,如图5A所显示的实体单元51的空白区块)。值得一提的是,经由时间戳记的比对,可知道实体单元51最早被使用的时间会晚于初始的逻辑转实体表501被存储至可复写式非易失性存储器模块220的时间。即,在写入有效数据D511、D512、D513、D514至实体单元51的前,初始的逻辑转实体表501已被备份至可复写式非易失性存储器模块220。应注意的是,若逻辑转实体表的一逻辑地址并没有存储任何数据,此逻辑地址所对应的实体地址所记录的信息可为空(即,不存储任何信息)。例如,假设逻辑地址LBA(127)没有存储数据,逻辑转实体表501中对应的(所映射的)实体地址PBA(127)不记录任何信息(如图5A所显示,对应LBA(127)的实体地址PBA(127)不记录任何信息)。在另一实施例中,若一逻辑地址所对应的实体地址并未存在有效数据,所述逻辑地址会从逻辑转实体表中被删除。
图2是根据本发明的一实施例所显示的数据备份方法的流程图。请同时参照图1与图2,在步骤S21中,处理器211从主机系统10接收修剪指令。所述修剪指令指示存储于逻辑地址区段中的无效数据。具体来说,如上所述,安装于主机系统10上的作业系统删除某笔数据时,作业系统可经由传送修剪指令(TRIM command)至存储装置20(处理器211),以让存储装置20获知(处理器211)所述被删除的某笔数据位于哪个逻辑地址区段(即,哪些逻辑地址上的数据已被作业系统所删除)。换句话说,存储装置20的处理器211可经由所接收的修剪指令来知道存储于一逻辑地址区段中的数据是无效的(Invalid)(无效数据,InvalidData)。
举例来说,请参照图5B,假设在时间T1,处理器211从主机系统10接收修剪指令TC1,所述修剪指令TC1指示了两个逻辑地址区段LS1、LS2中的数据已被删除(已成为无效的)。其中修剪指令TC1是利用两种信息来记录逻辑地址区段LS1、LS2,如,起始逻辑地址用以表示(记录)逻辑地址区段的第一个逻辑地址(逻辑页面),并且区段长度用以表示(记录)逻辑地址区段的总长度,即,对应的逻辑地址区段所包含的所有逻辑地址(逻辑页面)的总数目。举例来说,经由修剪指令TC1所指示逻辑地址区段LS1的起始逻辑地址“LBA(0)”与区段长度“2”,可知道目前存储在逻辑地址LBA(0)与逻辑地址LBA(1)共“2”个逻辑地址的数据成为无效数据。应注意的是,时间T1表示晚于时间T0的一个时间点。此外,本发明并不限定上述逻辑转实体表的结构。例如,在另一实施例中,逻辑转实体表会仅利用一行数据栏来固定依序地记录所有逻辑地址所映射的实体地址。
请参考图2,接着,在步骤S23中,处理器211根据所述修剪指令、多个实体地址中的目标实体地址来产生修剪信息,以根据所述修剪信息更新第一修剪信息清单为第二修剪信息清单,其中所述修剪信息记录无效数据起始逻辑地址、无效数据长度值、修剪信息页面顺序与修剪信息时间戳记。所述第一修剪信息清单指旧的修剪信息清单,所述第二修剪信息清单指根据当前所接收的修剪指令而产生的新的修剪信息清单。
请参考图5B,举例来说,接续上方的例子,接收到修剪指令TC1后,处理器211会根据修剪指令TC1的信息产生(更新)修剪信息清单TIL1(如箭头A502所示)。所述修剪信息清单TIL1会被维护于缓冲存储器(以下也称,存储器)中。对应修剪指令TC1的所两笔逻辑地址区段LS1、LS2,所产生的修剪信息清单TIL1也会记录两笔修剪信息。为了产生修剪信息清单的两笔修剪信息,处理器211根据所接收的修剪指令,记录逻辑地址区段的起始逻辑地址为修剪信息的无效数据起始逻辑地址,并且记录逻辑地址区段的区段长度为修剪信息的无效数据长度值。例如,针对逻辑地址区段LS1,对应逻辑地址区段LS1所产生的修剪信息TI1的无效数据起始逻辑地址为“LBA(0)”,其相同于逻辑地址区段LS1的起始逻辑地址“LBA(0)”;修剪信息TI1的无效数据长度值为“2”,其相同于逻辑地址区段LS1的区段长度“2”。
接着,处理器211会从可复写式非易失性存储器模块220的多个实体单元中辨识可用的实体单元为目标实体单元,并且从所述目标实体单元的多个实体页面中辨识可用的目标实体页面。举例来说,当前已使用且未写满的实体单元51可被辨识为可用的实体单元(被辨识为目标实体单元),并且空的实体页面51(5)~51(8)为可用的实体页面。在此例子中,如箭头A503所示,处理器211选择了排序在实体页面51(5)~51(8)中的第一个实体页面51(5)为目标实体页面,以存储修剪信息清单TIL1。此外,处理器211会辨识目标实体单元51的时间戳记(即,“X1”),并且辨识目标实体页面51(5)于目标实体单元51的所有实体页面51(4)~51(8)中的顺序(也称,页面顺序)。接着,处理器211根据目标实体地址,记录对应目标实体页面的页面顺序为修剪信息的修剪信息页面顺序以及记录目标实体单元的时间戳记为修剪信息的修剪信息时间戳记。即,根据欲存储修剪信息清单TIL1的目标实体页面位于目标实体单元51的顺序(第5个实体页面),修剪信息TI1的修剪信息页面顺序被记录为“5”;根据目标实体单元51的时间戳记,修剪信息TI1的修剪信息时间戳记被记录为“X1”。当一修剪信息的所有种类的信息都已被记录,便完成了所述修剪信息的产生。所产生的修剪信息会被记录(附加至)维护于存储器的修剪信息清单中。
相似于上述方式,处理器211会根据逻辑地址区段LS2来产生修剪信息TI2,并且附加修剪信息TI2至修剪信息清单TIL1中。如上所述,在本实施例中,所述修剪信息TI2会被附加至的前所产生的修剪信息清单TIL1的修剪信息TI1的后。此外,对应所接受的每个修剪指令,当前维护于存储器中的修剪信息清单都会被产生(或被更新)。即,若存储器中没有任何修剪信息清单,处理器211会根据当前接收的修剪指令来新增一个修剪信息清单(如,第二修剪信息清单)至存储器中,并且根据当前接收的修剪指令来产生对应的修剪信息至修剪信息清单中;若存储器中已存在一个修剪信息清单(如,第一修剪信息清单),处理器211会根据当前接收的修剪指令来产生且附加对应的修剪信息至已存在的修剪信息清单的其他修剪信息的后,以产生一个不同于旧的第一修剪信息清单的新的第二修剪信息清单。
在完成修剪信息清单的产生(或更新)后,在步骤S25中,处理器211将所述第二修剪信息清单存储至所述目标实体地址。即,对应每次接收的修剪指令所产生的新的修剪信息清单,处理器211会将所产生的新的修剪信息清单(包含旧的修剪信息清单的所有修剪信息与对应本次修剪指令所产生的修剪信息)写入至可复写式非易失性存储器模块220的目标实体页面51(5)。应注意的是,本发明并不限定目标实体页面的个数。
另一方面,处理器211会根据修剪指令TC1所指示的逻辑地址区段LS1、LS2来更新逻辑转实体表501为逻辑转实体表502(如箭头A501所示)。更详细来说,处理器211根据逻辑地址区段LS1清空了逻辑转实体表的逻辑地址LBA(0)、LBA(1)所分别对应的实体地址PBA(0)、PBA(1)(如,将实体地址PBA(0)所记录的信息“51_1”修改为“0”,将实体地址PBA(1)所记录的信息“51_2”修改为“0”)。相似地,根据逻辑地址区段LS2,逻辑地址LBA(3)所对应的实体地址PBA(3)所记录的信息也被清空。换言的,实体单元51的实体页面51(1)、51(2)、51(4)已被处理器211视为无效数据(如菱形格线所示)。
接着,在步骤S27中,处理器211将用以存储所述第二修剪信息清单的所述目标实体地址记录至第一逻辑转实体表的修剪信息清单实体地址,以更新所述第一逻辑转实体表为第二逻辑转实体表。例如,用以存储所述第二修剪信息清单的目标实体页面51(5),其目标实体地址为“51_5”,并且此信息(即,“51_5”)会被记录至逻辑转实体表501的对应延伸逻辑地址exLBA(0)的修剪信息清单实体地址exPBA(0),以更新逻辑转实体表501(也称,第一逻辑转实体表)为逻辑转实体表502(也称,第二逻辑转实体表)。
此外,在步骤S29中,当符合预设条件,处理器211可存储所述第二逻辑转实体表至所述可复写式非易失性存储器模块。具体来说,上述步骤S21~S27所更新的逻辑转实体表502会在符合预设条件的时候,被存储至可复写式非易失性存储器模块220中。所述预设条件例如为经过一固定闲置时间、所述修剪信息清单的大小已超过预设大小、当前时间与逻辑转实体表的时间戳记的间的时间间隔以超过一预设时间门槛值、所接收的修剪指令所指示的无效数据已超过另一预设大小等条件或其组合。
应注意的是,如上所述,处理器211会对应数据写入操作来更新逻辑转实体表。请参照图5C,举例来说,假设在晚于时间T1的时间T2,处理器211接收写入指令WC1。所述写入指令WC1包括起始逻辑地址、区段长度以及写入数据。更详细来说,写入指令指示处理器211将写入数据WD写入至逻辑地址LBA(0)、LBA(1),共两个逻辑地址(逻辑页面)中。即,用以存储写入数据WD的逻辑区段包含“2”个逻辑页面,并且第一个逻辑页面的逻辑地址为LBA(0)。处理器211根据写入指令WC1,依序将写入数据WD存储至当前的可用的实体单元51的实体页面51(6)、51(7)中(如箭头A504所示)。即,存储在实体页面51(6)、51(7)中的数据D516、D517可组成上述的写入数据WD。值得一提的是,存储在实体页面51(5)的数据TIL1即为前述所写入的修剪信息清单TIL1。
以下会配合图3、图4以及图5D~5F来说明第一实施利索提供的数据恢复方法,其利用了前述的数据备份方法所产生且存储的修剪信息清单。
图3是根据本发明的一实施例所显示的数据恢复方法的流程图。图5D~5F为根据本发明的第一实施例所显示的数据恢复方法的示意图。请先参照图3,在步骤S31中,处理器211根据存储在所述可复写式非易失性存储器模块的第一逻辑转实体表与所述可复写式非易失性存储器模块中时间戳记大于所述第一逻辑转实体表的时间戳记的所有有效数据的实体地址与对应的逻辑地址来重建所述第一逻辑转实体表,并且将重建后的所述第一逻辑转实体表存储至一存储器为第二逻辑转实体表。
举例来说,请参照图5D,接续的前图5A~5C的例子,假设在晚于时间T2的时间T3发生了突然断电事件。由于原本(如,时间T2的)存储在存储器中的修剪信息清单TIL1与逻辑转实体表503会因为突然断电而丢失,因此,存储装置20开电后,处理器211会检测到突然断电事件的发生,并且对应地执行数据恢复操作。在所述数据恢复操作中,在晚于时间T3的时间T4,处理器211会先重建逻辑转实体表。详细来说,处理器211会先从可复写式非易失性存储器模块220读取最新存储的逻辑转实体表501至存储器,并且读取对应所有被写入任何数据的实体页面的元数据,以找出时间戳记大于逻辑转实体表501的时间戳记的实体页面的地址与对应的有效数据(即,处理器211会找寻写入时间晚于逻辑转实体表501的备份时间的所有实体页面)。接着,处理器211会根据此些实体页面的元数据所记录的对应的逻辑地址来更新逻辑转实体表501。
例如,处理器211已辨识目前实体单元51的实体页面51(1)~51(7)所分别存储的数据D511、D512、D513、D514、TIL1、D516、D517所属的实体单元51的时间戳记“X1”大于逻辑转实体表501的时间戳记“X0”。即,写入数据D511、D512、D513、D514、TIL1、D516、D517都晚于(初始的)逻辑转实体表501备份至可复写式非易失性存储器模块220的时间。基此,处理器211会根据数据D511、D512、D513、D514、TIL1、D516、D517来进行数据恢复操作。处理器211会以数据D511、D512、D513、D514、TIL1、D516、D517的时间戳记与对应的实体页面(实体地址)的顺序(即,写入数据D511、D512、D513、D514、TIL1、D516、D517至可复写式非易失性存储器模块220的时间)的先后来判断其所对应的逻辑地址的映射关系的准确程度。换言的,若两个不同的实体地址所对应的逻辑地址相同,处理器211会以时间戳记较大的实体地址为准,即,将所述逻辑地址应设置时间戳记较大的实体地址。在本实施例中,处理器211会针对使用者数据(如,经由数据写入操作的数据D511、D512、D513、D514、D516、D517)来重建(更新)逻辑转实体表(如箭头A505所示)。
举例来说,处理器211根据对应不同实体页面的元数据辨识对应实体页面51(1)的逻辑地址为LBA(0);对应实体页面51(2)的逻辑地址为LBA(1);对应实体页面51(3)的逻辑地址为LBA(2);对应实体页面51(4)的逻辑地址为LBA(3);对应实体页面51(5)的逻辑地址为LBA(0);以及对应实体页面51(6)的逻辑地址为LBA(1)。对于逻辑地址重迭的数据D511、D512、D516、D517,处理器211会根据对应的实体页面51(1)、51(2)、51(6)、51(7)的顺序判定数据D516、D517为分别对应逻辑单元LBA(0)、LBA(1)的有效数据,并且数据D511、D512为分别对应逻辑单元LBA(0)、LBA(1)的无效数据。处理器211将此辨识的结果反映至逻辑转实体表501中(如箭头A506所示),以完成重建逻辑转实体表501为逻辑转实体表504。换言的,根据重建后的逻辑转实体表504,处理器211可知道当前存储在实体页面51(1)~51(2)的数据D511、D512为无效数据(如,图5E的菱形格线所示)。
此外,处理器211也会将时间戳记大于逻辑转实体表501的时间戳记的修剪信息清单TIL1的实体地址(即,“51_5”)记录至逻辑转实体表501的逻辑地址exLBA(0)所对应的实体地址exPBA(0)。
完成逻辑转实体表的重建后,在步骤S33中,若所述可复写式非易失性存储器模块存储有一或多个第一修剪信息清单,处理器211辨识所述一或多个第一修剪信息清单中最新的第二修剪信息清单,其中所述一或多个第一修剪信息清单的每一个第一修剪信息清单记录一或多笔修剪信息,其中每一笔修剪信息记录无效数据起始逻辑地址、无效数据长度值、修剪信息页面顺序与修剪信息时间戳记,其中所述一或多个第一修剪信息清单的时间戳记都大于所述第一逻辑转实体表的时间戳记。具体来说,如上述,处理器211会利用比较时间戳记的方式,从可复写式非易失性存储器模块所存储的所有修剪信息清单中较逻辑转实体表501新的(即,比逻辑转实体表501更晚被存储至可复写式非易失性存储器模块220)一或多个修剪信息清单(也称,第一修剪信息清单)中辨识其中的最新者。例如,所述第一修剪信息清单中具有最多修剪信息(因为修剪信息清单会随着时间持续被附加/更新修剪信息)的修剪信息清单(也称,第二修剪信息清单)被判定为最新的修剪信息清单。所述修剪信息清单/修剪信息的数据结构已说明如上,不赘述于此。如图5D的例子,处理器211会辨识第二修剪信息清单TIL1,并且将第二修剪信息清单TIL1读取至存储器中(如箭头A507所示)。
接着,在步骤S35中,处理器211根据所述第二修剪信息清单的所有修剪信息与所述第二逻辑转实体表来更新所述第二逻辑转实体表或更新存储于所述存储器中的第三修剪信息清单。以下配合图4来详细说明步骤S35的详细流程。
图4为根据本发明的一实施例所显示的图3的步骤S35的流程图。请参照图4,在步骤S351中,处理器211依据第二修剪信息清单所记录的多个第一修剪信息的记录顺序来选择所述多个第一修剪信息中的第二修剪信息,以对所选择的所述第二修剪信息执行解析操作,其中所述第二修剪信息为所述多个第一修剪信息内尚未被解析的多个修剪信息中记录顺序最前者。举例来说,接续图5D的例子,请参照图5E,处理器211根据存储器中的修剪信息清单TIL1来对其中的修剪信息TI1、TI2(也称,第一修剪信息)进行解析操作。首先,在时间T5,处理器211会从尚未被选择以进行解析操作的修剪信息TI1、TI2中的排列在最前面的修剪信息TI1(也称,第二修剪信息)来进行解析操作(如箭头A508所示)。
接着,处理器211开始对所选择的修剪信息TI1进行解析操作,在步骤S352中,根据所选择的所述第二修剪信息所记录的第一无效数据起始逻辑地址与第一无效数据长度来辨识第一逻辑地址区段,根据第二逻辑转实体表辨识存储于所述第一逻辑地址区段内多个第一逻辑地址的多个第一有效数据,并且选择所述多个第一有效数据中尚未被选择的第二有效数据。
举例来说,根据修剪信息TI1的无效数据起始逻辑地址(也称,第一无效数据起始逻辑地址)与无效数据长度(也称,第一无效数据长度)来辨识出存储无效数据的第一逻辑地址区段。由于第一无效数据起始逻辑地址为“LBA(0)”,并且第一无效数据长度为“2”,因此,第一逻辑地址区段包含逻辑地址LBA(0)、LBA(1)。接着,处理器211根据当前位于存储器中的逻辑转实体表504(参照图5D)辨识对应第一逻辑地址区段的逻辑地址LBA(0)、LBA(1)所对应的实体地址分别为“51_6”与“51_7”以及对应的有效数据D516、D517。由于有效数据D516、D517都未被选择过,处理器211会先选择有效数据D516。
接着,在步骤S353中,处理器211会比较所述第二修剪信息所记录的第一修剪信息时间戳记与所述第二有效数据的有效数据时间戳记。所述有效数据时间戳记为存储第二有效数据的实体单元的时间戳记。接续上述的例子,处理器211会比较修剪信息TI1的修剪信息时间戳记“X1”与有效数据D516的有效数据时间戳记(即,存储有效数据D516的实体单元51的时间戳记“X1”)。
在本实施例中,若第一修剪信息时间戳记大于第二有效数据的有效数据时间戳记,执行步骤S354;若第一修剪信息时间戳记小于第二有效数据的有效数据时间戳记,执行步骤S355;若第一修剪信息时间戳记等于第二有效数据的有效数据时间戳记,执行步骤S356。
在上述的例子中,由于修剪信息TI1的修剪信息时间戳记“X1”等于有效数据D516的有效数据时间戳记“X1”,接续至步骤S356,处理器211判断第二修剪信息所记录的第一修剪信息页面顺序大于或小于所述第二有效数据的有效数据页面顺序。所述有效数据页面顺序为存储第二有效数据的实体页面于其所属的实体单元的所有实体页面中的顺序。在本实施例中,若判定第一修剪信息页面顺序大于第二有效数据的有效数据页面顺序,处理器211执行步骤S354;若第一修剪信息页面顺序小于有效数据页面顺序,执行步骤S355。
举例来说,接续上述的例子,处理器211会接着判断修剪信息TI1的修剪信息页面顺序“5”大于或小于有效数据D516的有效数据页面顺序。由于有效数据D516存储于实体页面51(6),其排序为实体单元51中所有实体页面的第6个。因此,有效数据D516的有效数据页面顺序为“6”。基此,处理器211会判定修剪信息TI1的修剪信息页面顺序小于有效数据D516的有效数据页面顺序(即,5小于6),并且接续至步骤S355。
在步骤S355中,处理器211根据所述第一逻辑地址修改所述第二修剪信息,以使所述第一逻辑地址区段中不包含所述第一逻辑地址。具体来说,因为修剪信息TI1的修剪信息页面顺序小于有效数据D516的有效数据页面顺序,处理器211会判定写入有效数据D516的时间晚于写入修剪信息TI1的时间,并且处理器211会以有效数据D516以及对应的逻辑地址LBA(0)为准,不会因为有效数据D516所对应的逻辑地址LBA(0)被包含于修剪信息TI1所指示的存储无效数据的逻辑地址区段而认为逻辑地址LBA(0)存储的数据为无效数据。换言的,处理器211不会更改(清空)逻辑转实体表504的逻辑地址LBA(0)所对应的实体地址PBA(0)所记录的信息“51_6”。此外,处理器211可更新修剪信息清单TIL1的修剪信息TI1的逻辑地址区段,以让此逻辑地址区段不包含逻辑地址LBA(0)。例如,处理器211可修改修剪信息TI1的无效数据起始逻辑地址为逻辑地址LBA(1),并且修改修剪信息TI1的无效数据长度值为逻辑地址LBA(1),以更新修剪信息TI1。至此,对于有效数据D516的解析已完成。
接着,在步骤S357中,处理器211判断所述第一逻辑地址区段中所有的所述多个第一有效数据是否都已被选择。若是,则执行步骤S358;若否,则执行步骤S352,以选择位于所述逻辑地址区段的其他尚未被选择的有效数据来进行解析。
接续上述的例子,解析完有效数据D516后,在步骤S357中,处理器211会判定有效数据D516、D517并非都已被选择(即,有效数据D517尚未被选择),处理器211再度执行步骤S352,对有效数据D517进行解析。相似于上述对于有效数据D516的解析,处理器211会以有效数据D517所对应的逻辑地址LBA(1)为准,不会更改(清空)逻辑转实体表504的逻辑地址LBA(1)所对应的实体地址PBA(0)所记录的信息“51_7”。此外,处理器211可更新修剪信息清单TIL1的修剪信息TI1的逻辑地址区段,以让此逻辑地址区段不包含逻辑地址LBA(0)。例如,处理器211可删除/清空修剪信息TI1的所有信息(因为处理器211判定修剪信息TI1所指示的逻辑地址区段内的数据都为有效数据)。
接着,在步骤S357中,处理器211判定所有有效数据D516、D517都已被选择(已被解析),并且判定对于修剪信息TI1的解析操作已完成。接续至步骤S358,处理器211判断所述多个第一修剪信息是否都被解析。即,当完成一个修剪信息的解析操作,处理器211会接着判断目前在存储器中的修剪信息清单是否还有未执行解析操作的修剪信息。
举例来说,接续上述的例子,由于修剪信息TI2尚未被解析且排列在最前,因此,请参照图5F,在时间T6,处理器211开始对修剪信息TI2执行解析操作(如箭头A509所示)。如上述的方法,处理器211会辨识修剪信息TI2所指示的逻辑地址区段内的有效数据D514以及对应的逻辑地址LBA(3),并且判定修剪信息TI2的修剪信息页面顺序大于有效数据D514的有效数据页面顺序。基此,处理器211会知道,对于逻辑地址LBA(3)所存储的数据是否为无效数据,修剪信息TI2所给出的对应信息(修剪信息TI2认为所述数据为无效数据)会较逻辑转实体表给的对应信息(逻辑转实体表认为所述数据为有效数据)还准确。接着,处理器211执行步骤S354。在步骤S354中,处理器211会将所述第二有效数据判定为无效,将所述第二逻辑转实体表所记录的对应所述第一逻辑地址的第一实体地址清空。即,处理器211将有效数据D514判定为无效(即,存储于实体页面51(4)中的数据D514为无效数据),并且将逻辑转实体表的逻辑地址LBA(3)所对应的实体地址PBA(3)所记录的信息清空(即,将“51_4”修改为“0”),以更新逻辑转实体表504为逻辑转实体表507。
相似地,处理器211接续执行步骤S357。处理器211会判定对应修剪信息TI2的逻辑地址区段的所有有效数据都被解析,接续执行步骤S358,并且判定修剪信息清单TIL1中的所有修剪信息都完成解析操作。至此,处理器211才完成更新逻辑转实体表504与更新修剪信息清单TI1的操作。此时,更新后的逻辑转实体表507所记录的信息会相同于在断电的前(如,时间T2)的逻辑转实体表503所记录的信息。处理器211也完成了对应突然断电事件的所述数据恢复操作。
[第二实施例]
第二实施例接续第一实施例的例子。其中,硬件元件与数据备份方法、数据恢复方法的流程相同于第一实施例,不再赘述于此。以下会通过第二实施例、图5G~5L来阐述包含了垃圾回收操作的数据备份方法与数据恢复方法的实施方式,以进一步说明本发明的效用。
图5G~5H为根据本发明的第二实施例所显示的数据备份方法的示意图。图5I~5L为根据本发明的第二实施例所显示的数据恢复方法的示意图。请参照图5G,接续图5C的例子,在时间T2后的时间T7,处理器211接收修剪指令TC2。根据修剪指令TC2,处理器211更新逻辑转实体表503为逻辑转实体表508(如箭头A510所示),即,根据修剪指令TC2所指示的逻辑地址LBA(2)将逻辑转实体表503的逻辑地址LBA(2)所对应的实体地址PBA(2)所记录的信息“51_3”修改为“0”。此外,处理器211更新存储器中的修剪信息清单TIL1为修剪信息清单TIL2(如箭头A511所示),即,附加对应修剪指令TC2的修剪信息TI3至修剪信息清单TIL1已使的成为修剪信息清单TIL2。在此实施例中,更新后的修剪信息清单TIL2被写入至实体页面51(8)(如箭头A512所示),并且延伸逻辑地址所对应的实体地址exPBA(0)所记录的信息为实体页面51(8)的地址“51_8”。修剪信息TI3的产生方式已详述于上,不再赘述于此。
请参照图5H,在时间T7后的时间T8,处理器211接收垃圾回收指令GC1。所述垃圾回收指令GC1记录了要执行垃圾回收的实体单元的信息(如,“51”)。根据垃圾回收指令GC1与逻辑转实体表508,处理器211选择可用的实体单元52,将实体单元51中所有有效数据(即,逻辑转实体表508所记录的存储于实体单元51的数据D516、D517、TIL2)复制至实体单元52(如箭头A513所示),并且对应地更新逻辑转实体表508为逻辑转实体表509。所述实体单元52的时间戳记为“X2”(X2大于X1,X1大于X0)。应注意的是,原本在实体单元51中具有两笔修剪信息清单TIL1、TIL2,处理器211可根据逻辑转实体表508中记录已被写入的最新修剪信息清单的实体地址exPBA(0)所记录的值“51_8”,判定修剪信息清单TIL2为最新的(有效的)修剪信息清单,并且会在针对实体单元51的垃圾回收操作中,复制修剪信息清单TIL2,并且对应地于逻辑转实体表509中更新修剪信息清单TIL2于实体单元52的实体地址(即,“52_3”)。也就是说,处理器211根据用以存储有效数据D516、D517、TIL2的实体页面52(1)、52(2)、52(3)的实体地址“52_1”、“52_2”、“52_3”,逻辑地址LBA(0)、LBA(1)及对应最新的已存储的修剪信息清单的逻辑地址exLBA(0)来更新逻辑转实体表508为逻辑转实体表509。
请参照图5I,假设在晚于时间T8的时间T9发生了突然断电事件。应注意的是,实体单元51尚未被抹除。存储装置20开电后,处理器211会检测到突然断电事件的发生,并且对应地执行数据恢复操作。在所述数据恢复操作中,相似于第一实施例所述的数据恢复方法,在晚于时间T9的时间T10,处理器211会先重建逻辑转实体表(如箭头A514、A515所示),以获得且存储逻辑转实体表510于存储器中。应注意的是,根据重建后的逻辑转实体表510,处理器211目前认为逻辑地址LBA(2)存储了有效数据D513于实体地址“51_3”;以及逻辑地址LBA(3)存储了有效数据D514于实体地址“51_4”。此外,处理器211于实体单元52中辨识到最新的修剪信息清单TIL2,并且存储修剪信息清单TIL2至存储器中(如箭头A516所示)。值得一提的是,若多个修剪信息清单所属的实体单元的时间戳记相等,处理器211可根据页面顺序(页面顺序越后者越新)或是所包含的修剪信息的数量(数量越多者越新)来判断所述多个修剪信息清单的新旧。
请参照图5J,处理器211开始解析修剪信息清单TIL2的修剪信息TI1。依据前述的数据恢复方法,(因为修剪信息TI1的修剪信息时间戳记“X1”小于有效数据D516、D517的有效数据时间戳记“X2”)处理器211判定修剪信息TI1所指示的逻辑地址区段(逻辑地址LBA(0)~LBA(1))存储了有效数据,并且不修改逻辑转实体表510的逻辑地址LBA(0)、LBA(1)所对应的实体地址所记录的信息(如箭头A517所示)。
请参照图5K,解析完修剪信息TI1后,处理器211开始解析修剪信息清单TIL2的修剪信息TI2。修剪信息TI3指示逻辑地址LBA(3)(对应实体地址“51_4”)存储无效数据。依据前述的数据恢复方法,因为修剪信息TI2的修剪信息时间戳记“X1”等于(对应实体地址“51_4”的)数据D514的有效数据时间戳记“X1”且修剪信息TI2的修剪信息页面顺序“5”大于有效数据D514的有效数据页面顺序“4”(修剪信息TI2的修剪信息页面顺序“5”大于逻辑转实体表的所记录的实体地址“51_4”所对应的实体页面的页面顺序“4”),处理器211会判定修剪信息TI2所指示的逻辑地址区段(逻辑地址LBA(3))存储了无效数据,并且修改逻辑转实体表510的逻辑地址LBA(3)所对应的实体地址所记录的信息(如箭头A518所示,逻辑转实体表511的逻辑地址LBA(3)所对应的实体地址所记录的信息从“51_4”被修改为“0”),以获得更新后逻辑转实体表511。
请参照图5L,解析完修剪信息TI2后,处理器211开始解析修剪信息清单TIL2的修剪信息TI3。修剪信息TI3指示逻辑地址LBA(2)(对应实体地址“51_3”)存储无效数据。因为修剪信息TI3的修剪信息时间戳记“X1”等于(对应实体地址“51_3”的)数据D513的有效数据时间戳记“X1”且修剪信息TI3的修剪信息页面顺序“8”大于数据D513的有效数据页面顺序“3”(修剪信息TI2的修剪信息页面顺序“8”大于逻辑转实体表的所记录的实体地址“51_3”所对应的实体页面的页面顺序“3”),处理器211判定修剪信息TI3所指示的逻辑地址区段(逻辑地址LBA(2))存储了无效数据,并且修改逻辑转实体表511的逻辑地址LBA(2)所对应的实体地址所记录的信息(如箭头A519所示,逻辑转实体表512的逻辑地址LBA(2)所对应的实体地址所记录的信息从“51_3”被修改为“0”),以获得更新后逻辑转实体表512。此时,修剪信息清单TIL2的所有的修剪信息已被解析,完成了数据恢复操作。应注意的是,完成数据恢复操作后的逻辑转实体表512所记录的逻辑地址与实体地址的映射关系即可被恢复至相同于突然断电事件发生的前(时间T8)的逻辑转实体表509所记录的映射关系。
综上所述,本发明实施例所提供的数据备份方法,数据恢复方法以及存储控制器,可根据所接收的修剪指令来产生特定数据架构的修剪信息,并且利用已备份至可复写式非易失性存储器模块的修剪信息清单与逻辑转实体表,来进行对应的数据恢复操作。由于不需要因为所接收的修剪指令而备份对应的修剪信息与逻辑转实体表至可复写式非易失性存储器模块,因此避免了大量的写入操作,并且增进存储装置整体的工作效率。此外,在断电后,可经由所备份的特定结构(记录时间戳记及页面顺序)的修剪信息清单与逻辑转实体表及对应的时间戳记和/或页面顺序来识别上述数据的准确性,以有效地进行数据恢复,进而重建断电前的修剪信息清单与逻辑转实体表。
虽然本发明已以实施例揭示如上,然其并非用以限定本发明,任何所属技术领域中技术人员,在不脱离本发明的精神和范围内,当可作些许的更改与润饰,故本发明的保护范围当视后附的权利要求书所界定的为准。
Claims (18)
1.一种数据备份方法,适用于配置有一可复写式非易失性存储器模块的一存储装置,其中所述可复写式非易失性存储器模块具有多个实体单元,并且所述可复写式非易失性存储器模块被配置多个实体地址,其中电性连接至所述存储装置的一主机系统配置多个逻辑地址,其特征在于,所述方法包括:
从所述主机系统接收一修剪指令,其中所述修剪指令指示存储于一逻辑地址区段中的无效数据;
根据所述修剪指令、所述多个实体地址中的一目标实体地址来产生一修剪信息,以根据所述修剪信息更新一第一修剪信息清单为一第二修剪信息清单,其中所述修剪信息记录一无效数据起始逻辑地址、一无效数据长度值、一修剪信息页面顺序与一修剪信息时间戳记;
将所述第二修剪信息清单存储至所述目标实体地址,其中所述第一修剪信息清单或第二修剪信息清单根据接收对应一或多笔修剪信息的修剪指令的时间顺序来依序记录所述一或多笔修剪信息;
将用以存储所述第二修剪信息清单的所述目标实体地址记录至一第一逻辑转实体表的一修剪信息清单实体地址,以更新所述第一逻辑转实体表为一第二逻辑转实体表;以及
当符合一预设条件,存储所述第二逻辑转实体表至所述可复写式非易失性存储器模块。
2.根据权利要求1所述的数据备份方法,其特征在于,所述方法还包括:
从所述多个实体单元中辨识可用的一实体单元为一目标实体单元,并且从所述目标实体单元的多个实体页面中辨识可用的一目标实体页面,其中所述目标实体页面用以存储所述第二修剪信息清单,并且所述目标实体地址为所述目标实体单元的所述目标实体页面的地址;以及
辨识所述目标实体单元的一时间戳记,并且辨识所述目标实体页面于所述目标实体单元的所有实体页面中的顺序为一页面顺序,
其中所述目标实体单元的所述时间戳记用以表示所述目标实体单元最早被使用的时间。
3.根据权利要求2所述的数据备份方法,其特征在于,所述修剪指令包括所述逻辑地址区段的起始逻辑地址与所述逻辑地址区段的区段长度,其中所述起始逻辑地址表示所述逻辑地址区段的第一个逻辑地址,并且所述区段长度表示所述逻辑地址区段所包含的所有逻辑地址的总数目,其中上述根据所述修剪指令、所述多个实体地址中的所述目标实体地址来产生所述修剪信息,以根据所述修剪信息更新所述第一修剪信息清单为所述第二修剪信息清单的步骤包括:
根据所接收的所述修剪指令,记录所述逻辑地址区段的所述起始逻辑地址为所述修剪信息的无效数据起始逻辑地址,并且记录所述逻辑地址区段的所述区段长度为所述修剪信息的无效数据长度值;以及
根据所述目标实体地址,记录对应所述目标实体页面的所述页面顺序为所述修剪信息的修剪信息页面顺序以及记录所述目标实体单元的所述时间戳记为所述修剪信息的修剪信息时间戳记,以产生所述修剪信息,
其中上述根据所述修剪信息更新所述第一修剪信息清单为所述第二修剪信息清单的步骤包括将所产生的所述修剪信息附加至被维护于一存储器中的所述第一修剪信息清单的其他修剪信息的后,以更新所述第一修剪信息清单为所述第二修剪信息清单。
4.根据权利要求3所述的数据备份方法,其特征在于,上述当符合所述预设条件,存储所述第二逻辑转实体表至所述可复写式非易失性存储器模块的步骤包括:
当符合所述预设条件,根据所述第二修剪信息清单的所有修剪信息来更新所述第二逻辑转实体表,将所述第二逻辑转实体表的所述修剪信息清单实体地址清空,并且将所述第二逻辑转实体表存储至所述可复写式非易失性存储器模块;以及
反应于完成将更新后的所述第二逻辑转实体表存储至所述可复写式非易失性存储器模块,清空维护于所述存储器中的所述第二修剪信息清单所记录的所有修剪信息。
5.一种数据恢复方法,适用于配置有一可复写式非易失性存储器模块的一存储装置,其中所述可复写式非易失性存储器模块具有多个实体单元,并且所述可复写式非易失性存储器模块被配置多个实体地址,其中电性连接至所述存储装置的一主机系统配置多个逻辑地址,其特征在于,所述方法包括:
根据存储在所述可复写式非易失性存储器模块的一第一逻辑转实体表与所述可复写式非易失性存储器模块中时间戳记大于所述第一逻辑转实体表的时间戳记的所有有效数据的实体地址与对应的逻辑地址来重建所述第一逻辑转实体表,并且将重建后的所述第一逻辑转实体表存储至一存储器为一第二逻辑转实体表;
若所述可复写式非易失性存储器模块存储有一或多个第一修剪信息清单,辨识所述一或多个第一修剪信息清单中最新的一第二修剪信息清单,其中所述一或多个第一修剪信息清单的每一个第一修剪信息清单记录一或多笔修剪信息,其中每一笔修剪信息记录一无效数据起始逻辑地址、一无效数据长度值、一修剪信息页面顺序与一修剪信息时间戳记,其中所述一或多个第一修剪信息清单的时间戳记都大于所述第一逻辑转实体表的时间戳记;以及
根据所述第二修剪信息清单的所有修剪信息与所述第二逻辑转实体表来更新所述第二逻辑转实体表或更新存储于所述存储器中的一第三修剪信息清单。
6.根据权利要求5所述的数据恢复方法,其特征在于,还包括:
反应完成更新所述第三修剪信息清单,将更新后的所述第三修剪信息清单存储至所述可复写式非易失性存储器模块的一目标实体地址;以及
将所述目标实体地址记录至所述第二逻辑转实体表的一修剪信息清单实体地址。
7.根据权利要求5所述的数据恢复方法,其特征在于,上述根据所述第二修剪信息清单的所有修剪信息与所述第二逻辑转实体表来更新所述第二逻辑转实体表或更新存储于所述存储器中的所述第三修剪信息清单的步骤包括:
依据所述第二修剪信息清单所记录的多个第一修剪信息的记录顺序来选择所述多个第一修剪信息中的一第二修剪信息,以对所选择的所述第二修剪信息执行一解析操作,并且根据所执行的所述解析操作的结果来更新所述第二逻辑转实体表或更新所述第三修剪信息清单,
其中所述第二修剪信息为所述多个第一修剪信息内尚未被解析的多个修剪信息中记录顺序最前者。
8.根据权利要求7所述的数据恢复方法,其特征在于,上述对所选择的所述第二修剪信息执行所述解析操作,并且根据所执行的所述解析操作的所述结果来更新所述第二逻辑转实体表或更新所述第三修剪信息清单的步骤包括:
(1)根据所选择的所述第二修剪信息所记录的一第一无效数据起始逻辑地址与一第一无效数据长度来辨识一第一逻辑地址区段,根据所述第二逻辑转实体表辨识存储于所述第一逻辑地址区段内多个第一逻辑地址的多个第一有效数据,并且选择所述多个第一有效数据中尚未被选择的一第二有效数据以执行步骤(2),其中所述第二修剪信息指示存储于所述第一逻辑地址区段中的数据为无效的;
(2)比较所述第二修剪信息所记录的一第一修剪信息时间戳记与所述第二有效数据的一有效数据时间戳记,其中若所述第一修剪信息时间戳记大于所述第二有效数据的一有效数据时间戳记,执行步骤(4),其中所述有效数据时间戳记为存储所述第二有效数据的一第一实体单元的时间戳记,
其中若所述第二修剪信息所记录的所述第一修剪信息时间戳记小于所述第二有效数据的所述有效数据时间戳记,执行步骤(5),
其中若所述第一修剪信息时间戳记等于所述有效数据时间戳记,执行步骤(3);
(3)判断所述第二修剪信息所记录的一第一修剪信息页面顺序大于或小于所述第二有效数据的一有效数据页面顺序,其中若所述第一修剪信息页面顺序大于所述第二有效数据的所述有效数据页面顺序,执行步骤(4),其中所述有效数据页面顺序为存储所述第二有效数据的一第一实体页面于所述第一实体单元的所有实体页面中的顺序,
其中若所述第一修剪信息页面顺序小于所述有效数据页面顺序,执行步骤(5);
(4)将所述第二有效数据判定为无效,将所述第二逻辑转实体表所记录的对应所述第一逻辑地址的一第一实体地址清空,并且执行步骤(6);
(5)根据所述第一逻辑地址修改所述第二修剪信息,以使所述第一逻辑地址区段中不包含所述第一逻辑地址,并且执行步骤(6);以及
(6)判断所述第一逻辑地址区段中所有的所述多个第一有效数据是否都已被选择以执行步骤(2),
其中若所述多个第一有效数据都已被选择,完成对所选择的所述第二修剪信息的所述解析操作,
其中若所述多个第一有效数据并非都已被选择,执行步骤(1)。
9.根据权利要求7所述的数据恢复方法,其特征在于,上述根据所述第二修剪信息清单的所有修剪信息与所述第二逻辑转实体表来更新所述第二逻辑转实体表或更新存储于所述存储器中的所述第三修剪信息清单的步骤还包括:
若所述第二修剪信息清单所记录的所述多个第一修剪信息都完成所述解析操作,判定所述第二逻辑转实体表与所述第三修剪信息清单已更新完成。
10.一种存储控制器,用于控制配置有一可复写式非易失性存储器模块的一存储装置,其特征在于,所述存储控制器包括:
连接接口电路,用以电性连接至配置多个逻辑地址的一主机系统;
存储器接口控制电路,用以电性连接至所述可复写式非易失性存储器模块,其中所述可复写式非易失性存储器模块具有多个实体单元,并且所述可复写式非易失性存储器模块被配置多个实体地址;以及
处理器,电性连接至所述连接接口电路及所述存储器接口控制电路,
其中所述处理器用以从所述主机系统接收一修剪指令,其中所述修剪指令指示存储于一逻辑地址区段中的无效数据,
其中所述处理器更用以根据所述修剪指令、所述多个实体地址中的一目标实体地址来产生一修剪信息,以根据所述修剪信息更新一第一修剪信息清单为一第二修剪信息清单,其中所述修剪信息记录一无效数据起始逻辑地址、一无效数据长度值、一修剪信息页面顺序与一修剪信息时间戳记,
其中所述处理器更用以将所述第二修剪信息清单存储至所述目标实体地址,其中所述第一修剪信息清单或第二修剪信息清单根据接收对应一或多笔修剪信息的修剪指令的时间顺序来依序记录所述一或多笔修剪信息,
其中所述处理器更用以将用以存储所述第二修剪信息清单的所述目标实体地址记录至一第一逻辑转实体表的一修剪信息清单实体地址,以更新所述第一逻辑转实体表为一第二逻辑转实体表,
其中当符合一预设条件,所述处理器更用以存储所述第二逻辑转实体表至所述可复写式非易失性存储器模块。
11.根据权利要求10所述的存储控制器,其特征在于,所述处理器从所述多个实体单元中辨识可用的一实体单元为一目标实体单元,并且从所述目标实体单元的多个实体页面中辨识可用的一目标实体页面,其中所述目标实体页面用以存储所述第二修剪信息清单,并且所述目标实体地址为所述目标实体单元的所述目标实体页面的地址,
其中所述处理器辨识所述目标实体单元的一时间戳记,并且辨识所述目标实体页面于所述目标实体单元的所有实体页面中的顺序为一页面顺序,
其中所述目标实体单元的所述时间戳记用以表示所述目标实体单元最早被使用的时间。
12.根据权利要求11所述的存储控制器,其特征在于,所述修剪指令包括所述逻辑地址区段的起始逻辑地址与所述逻辑地址区段的区段长度,其中所述起始逻辑地址表示所述逻辑地址区段的第一个逻辑地址,并且所述区段长度表示所述逻辑地址区段所包含的所有逻辑地址的总数目,其中在上述所述处理器更用以根据所述修剪指令、所述多个实体地址中的所述目标实体地址来产生所述修剪信息,以根据所述修剪信息更新所述第一修剪信息清单为所述第二修剪信息清单的运作中,
所述处理器根据所接收的所述修剪指令,记录所述逻辑地址区段的所述起始逻辑地址为所述修剪信息的无效数据起始逻辑地址,并且记录所述逻辑地址区段的所述区段长度为所述修剪信息的无效数据长度值,
其中所述处理器根据所述目标实体地址,记录对应所述目标实体页面的所述页面顺序为所述修剪信息的修剪信息页面顺序以及记录所述目标实体单元的所述时间戳记为所述修剪信息的修剪信息时间戳记,以产生所述修剪信息,
其中上述根据所述修剪信息更新所述第一修剪信息清单为所述第二修剪信息清单的步骤包括将所产生的所述修剪信息附加至被维护于一存储器中的所述第一修剪信息清单的其他修剪信息的后,以更新所述第一修剪信息清单为所述第二修剪信息清单。
13.根据权利要求12所述的存储控制器,其特征在于,在上述当符合所述预设条件,所述处理器更用以存储所述第二逻辑转实体表至所述可复写式非易失性存储器模块的运作中,
当符合所述预设条件,所述处理器根据所述第二修剪信息清单的所有修剪信息来更新所述第二逻辑转实体表,将所述第二逻辑转实体表的所述修剪信息清单实体地址清空,并且将所述第二逻辑转实体表存储至所述可复写式非易失性存储器模块,
反应于完成将更新后的所述第二逻辑转实体表存储至所述可复写式非易失性存储器模块,所述处理器清空维护于所述存储器中的所述第二修剪信息清单所记录的所有修剪信息。
14.一种存储控制器,用于控制配置有一可复写式非易失性存储器模块的一存储装置,其特征在于,所述存储控制器包括:
连接接口电路,用以电性连接至配置多个逻辑地址的一主机系统;
存储器接口控制电路,用以电性连接至所述可复写式非易失性存储器模块,其中所述可复写式非易失性存储器模块具有多个实体单元,并且所述可复写式非易失性存储器模块被配置多个实体地址;以及
处理器,电性连接至所述连接接口电路及所述存储器接口控制电路,
其中所述处理器用以根据存储在所述可复写式非易失性存储器模块的一第一逻辑转实体表与所述可复写式非易失性存储器模块中时间戳记大于所述第一逻辑转实体表的时间戳记的所有有效数据的实体地址与对应的逻辑地址来重建所述第一逻辑转实体表,并且将重建后的所述第一逻辑转实体表存储至一存储器为一第二逻辑转实体表,
其中若所述可复写式非易失性存储器模块存储有一或多个第一修剪信息清单,所述处理器更用以辨识所述一或多个第一修剪信息清单中最新的一第二修剪信息清单,其中所述一或多个第一修剪信息清单的每一个第一修剪信息清单记录一或多笔修剪信息,其中每一笔修剪信息记录一无效数据起始逻辑地址、一无效数据长度值、一修剪信息页面顺序与一修剪信息时间戳记,其中所述一或多个第一修剪信息清单的时间戳记都大于所述第一逻辑转实体表的时间戳记,
其中所述处理器更用以根据所述第二修剪信息清单的所有修剪信息与所述第二逻辑转实体表来更新所述第二逻辑转实体表或更新存储于所述存储器中的一第三修剪信息清单。
15.根据权利要求14所述的存储控制器,其特征在于,反应完成更新所述第三修剪信息清单,所述处理器将更新后的所述第三修剪信息清单存储至所述可复写式非易失性存储器模块的一目标实体地址,
其中所述处理器将所述目标实体地址记录至所述第二逻辑转实体表的一修剪信息清单实体地址。
16.根据权利要求14所述的存储控制器,其特征在于,在上述所述处理器更用以根据所述第二修剪信息清单的所有修剪信息与所述第二逻辑转实体表来更新所述第二逻辑转实体表或更新存储于所述存储器中的所述第三修剪信息清单的运作中,
所述处理器依据所述第二修剪信息清单所记录的多个第一修剪信息的记录顺序来选择所述多个第一修剪信息中的一第二修剪信息,以对所选择的所述第二修剪信息执行一解析操作,并且根据所执行的所述解析操作的结果来更新所述第二逻辑转实体表或更新所述第三修剪信息清单,
其中所述第二修剪信息为所述多个第一修剪信息内尚未被解析的多个修剪信息中记录顺序最前者。
17.根据权利要求16所述的存储控制器,其特征在于,上述对所选择的所述第二修剪信息执行所述解析操作,并且根据所执行的所述解析操作的所述结果来更新所述第二逻辑转实体表或更新所述第三修剪信息清单的运作包括:
(1)所述处理器根据所选择的所述第二修剪信息所记录的一第一无效数据起始逻辑地址与一第一无效数据长度来辨识一第一逻辑地址区段,根据所述第二逻辑转实体表辨识存储于所述第一逻辑地址区段内多个第一逻辑地址的多个第一有效数据,并且选择所述多个第一有效数据中尚未被选择的一第二有效数据以执行步骤(2),其中所述第二修剪信息指示存储于所述第一逻辑地址区段中的数据为无效的;
(2)所述处理器比较所述第二修剪信息所记录的一第一修剪信息时间戳记与所述第二有效数据的一有效数据时间戳记,其中若所述第一修剪信息时间戳记大于所述第二有效数据的一有效数据时间戳记,执行步骤(4),其中所述有效数据时间戳记为存储所述第二有效数据的一第一实体单元的时间戳记,
其中若所述第二修剪信息所记录的所述第一修剪信息时间戳记小于所述第二有效数据的所述有效数据时间戳记,执行步骤(5),
其中若所述第一修剪信息时间戳记等于所述有效数据时间戳记,执行步骤(3);
(3)所述处理器判断所述第二修剪信息所记录的一第一修剪信息页面顺序大于或小于所述第二有效数据的一有效数据页面顺序,其中若所述第一修剪信息页面顺序大于所述第二有效数据的所述有效数据页面顺序,执行步骤(4),其中所述有效数据页面顺序为存储所述第二有效数据的一第一实体页面于所述第一实体单元的所有实体页面中的顺序,
其中若所述第一修剪信息页面顺序小于所述有效数据页面顺序,执行步骤(5);
(4)所述处理器将所述第二有效数据判定为无效,将所述第二逻辑转实体表所记录的对应所述第一逻辑地址的一第一实体地址清空,并且执行步骤(6);
(5)所述处理器根据所述第一逻辑地址修改所述第二修剪信息,以使所述第一逻辑地址区段中不包含所述第一逻辑地址,并且执行步骤(6);以及
(6)所述处理器判断所述第一逻辑地址区段中所有的所述多个第一有效数据是否都已被选择以执行步骤(2),
其中若所述多个第一有效数据都已被选择,完成对所选择的所述第二修剪信息的所述解析操作,
其中若所述多个第一有效数据并非都已被选择,执行步骤(1)。
18.根据权利要求16所述的存储控制器,其特征在于,在上述所述处理器更用以根据所述第二修剪信息清单的所有修剪信息与所述第二逻辑转实体表来更新所述第二逻辑转实体表或更新存储于所述存储器中的所述第三修剪信息清单的运作中,
若所述第二修剪信息清单所记录的所述多个第一修剪信息都完成所述解析操作,所述处理器判定所述第二逻辑转实体表与所述第三修剪信息清单已更新完成。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710670012.9A CN109388520B (zh) | 2017-08-08 | 2017-08-08 | 数据备份方法、数据恢复方法以及存储控制器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710670012.9A CN109388520B (zh) | 2017-08-08 | 2017-08-08 | 数据备份方法、数据恢复方法以及存储控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109388520A true CN109388520A (zh) | 2019-02-26 |
CN109388520B CN109388520B (zh) | 2022-02-15 |
Family
ID=65412693
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710670012.9A Active CN109388520B (zh) | 2017-08-08 | 2017-08-08 | 数据备份方法、数据恢复方法以及存储控制器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109388520B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111897748A (zh) * | 2019-05-05 | 2020-11-06 | 北京兆易创新科技股份有限公司 | 一种映射关系存储方法、读取方法、装置、设备及介质 |
CN112130749A (zh) * | 2019-06-25 | 2020-12-25 | 慧荣科技股份有限公司 | 数据储存装置以及非挥发式存储器控制方法 |
CN112988069A (zh) * | 2021-03-11 | 2021-06-18 | 深圳宏芯宇电子股份有限公司 | 存储器管理方法、存储器存储装置及存储器控制器 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008016112A (ja) * | 2006-07-05 | 2008-01-24 | Toshiba Corp | 半導体記憶装置 |
CN101300554A (zh) * | 2005-11-03 | 2008-11-05 | 英特尔公司 | 非易失性存储器故障的恢复 |
CN101681316A (zh) * | 2008-03-01 | 2010-03-24 | 株式会社东芝 | 存储器系统 |
CN103064641A (zh) * | 2013-02-05 | 2013-04-24 | 威盛电子股份有限公司 | 非易失性存储装置及其操作方法 |
US20130219106A1 (en) * | 2012-02-17 | 2013-08-22 | Apple Inc. | Trim token journaling |
CN104008061A (zh) * | 2013-02-22 | 2014-08-27 | 华为技术有限公司 | 内存回收方法及装置 |
US8966160B2 (en) * | 2012-09-28 | 2015-02-24 | Intel Corporation | Storage device trimming |
US20150331790A1 (en) * | 2014-05-14 | 2015-11-19 | Canon Kabushiki Kaisha | Information processing apparatus, information processing method, and storage medium |
US9378135B2 (en) * | 2013-01-08 | 2016-06-28 | Violin Memory Inc. | Method and system for data storage |
CN106708416A (zh) * | 2015-11-13 | 2017-05-24 | 群联电子股份有限公司 | 数据重建方法与系统及其存储器控制电路单元 |
CN106843742A (zh) * | 2015-12-03 | 2017-06-13 | 广明光电股份有限公司 | 固态硬盘及其执行删除命令的方法 |
CN106874217A (zh) * | 2015-12-14 | 2017-06-20 | 株式会社东芝 | 存储器系统及控制方法 |
-
2017
- 2017-08-08 CN CN201710670012.9A patent/CN109388520B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101300554A (zh) * | 2005-11-03 | 2008-11-05 | 英特尔公司 | 非易失性存储器故障的恢复 |
JP2008016112A (ja) * | 2006-07-05 | 2008-01-24 | Toshiba Corp | 半導体記憶装置 |
CN101681316A (zh) * | 2008-03-01 | 2010-03-24 | 株式会社东芝 | 存储器系统 |
US20130219106A1 (en) * | 2012-02-17 | 2013-08-22 | Apple Inc. | Trim token journaling |
US8966160B2 (en) * | 2012-09-28 | 2015-02-24 | Intel Corporation | Storage device trimming |
US9378135B2 (en) * | 2013-01-08 | 2016-06-28 | Violin Memory Inc. | Method and system for data storage |
CN103064641A (zh) * | 2013-02-05 | 2013-04-24 | 威盛电子股份有限公司 | 非易失性存储装置及其操作方法 |
CN104008061A (zh) * | 2013-02-22 | 2014-08-27 | 华为技术有限公司 | 内存回收方法及装置 |
US20150331790A1 (en) * | 2014-05-14 | 2015-11-19 | Canon Kabushiki Kaisha | Information processing apparatus, information processing method, and storage medium |
CN106708416A (zh) * | 2015-11-13 | 2017-05-24 | 群联电子股份有限公司 | 数据重建方法与系统及其存储器控制电路单元 |
CN106843742A (zh) * | 2015-12-03 | 2017-06-13 | 广明光电股份有限公司 | 固态硬盘及其执行删除命令的方法 |
CN106874217A (zh) * | 2015-12-14 | 2017-06-20 | 株式会社东芝 | 存储器系统及控制方法 |
Non-Patent Citations (4)
Title |
---|
J. HA, Y. LEE AND J. KIM: "《Deduplication with Block-Level Content-Aware Chunking for Solid State Drives (SSDs)》", 《 2013 IEEE 10TH INTERNATIONAL CONFERENCE ON HIGH PERFORMANCE COMPUTING AND COMMUNICATIONS & 2013 IEEE INTERNATIONAL CONFERENCE ON EMBEDDED AND UBIQUITOUS COMPUTING》 * |
J. KIM, J. LEE, J. CHOI, D. LEE AND S. H. NOH: "《Improving SSD reliability with RAID via Elastic Striping and Anywhere Parity》", 《2013 43RD ANNUAL IEEE/IFIP INTERNATIONAL CONFERENCE ON DEPENDABLE SYSTEMS AND NETWORKS (DSN)》 * |
张珮,王晓曼: "《固态硬盘SSD性能分析及RAID 0方案设计》", 《微型机与应用》 * |
舒继武,陆游游,张佳程,郑纬民: "《基于非易失性存储器的存储系统技术研究进展》", 《科技导报》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111897748A (zh) * | 2019-05-05 | 2020-11-06 | 北京兆易创新科技股份有限公司 | 一种映射关系存储方法、读取方法、装置、设备及介质 |
CN112130749A (zh) * | 2019-06-25 | 2020-12-25 | 慧荣科技股份有限公司 | 数据储存装置以及非挥发式存储器控制方法 |
CN112130749B (zh) * | 2019-06-25 | 2023-12-22 | 慧荣科技股份有限公司 | 数据储存装置以及非挥发式存储器控制方法 |
CN112988069A (zh) * | 2021-03-11 | 2021-06-18 | 深圳宏芯宇电子股份有限公司 | 存储器管理方法、存储器存储装置及存储器控制器 |
CN112988069B (zh) * | 2021-03-11 | 2024-03-26 | 深圳宏芯宇电子股份有限公司 | 存储器管理方法、存储器存储装置及存储器控制器 |
Also Published As
Publication number | Publication date |
---|---|
CN109388520B (zh) | 2022-02-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103425597B (zh) | 数据储存装置和快闪存储器的区块管理方法 | |
CN104732153B (zh) | 数据抹除方法、存储器控制电路单元及存储器存储装置 | |
CN104679437B (zh) | 数据写入方法、存储器控制电路单元与存储器储存装置 | |
CN106598878B (zh) | 一种固态硬盘冷热数据分离方法 | |
CN107844431A (zh) | 映射表更新方法、存储器控制电路单元与存储器存储装置 | |
CN106469122B (zh) | 有效数据合并方法、存储器控制器与存储器储存装置 | |
CN106776376B (zh) | 缓冲存储器管理方法、存储器控制电路单元及存储装置 | |
CN108280032B (zh) | 数据储存装置以及快闪存储器控制方法 | |
CN110058796A (zh) | 数据储存装置 | |
CN109960464A (zh) | 数据储存装置与存储器装置的数据处理方法 | |
CN103136111B (zh) | 数据写入方法、存储器控制器与存储器储存装置 | |
CN109388520A (zh) | 数据备份方法、数据恢复方法以及存储控制器 | |
CN107544922A (zh) | 数据写入方法、存储器控制电路单元及存储器存储装置 | |
CN105988950B (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
CN106708416A (zh) | 数据重建方法与系统及其存储器控制电路单元 | |
CN106445401A (zh) | 表格更新方法、存储器储存装置及存储器控制电路单元 | |
CN108733577A (zh) | 存储器管理方法、存储器控制电路单元及存储器存储装置 | |
CN109840218A (zh) | 有效数据管理方法以及存储控制器 | |
CN106951186A (zh) | 数据程序化方法、存储器存储装置及存储器控制电路单元 | |
CN113253926A (zh) | 提升新型存储器的查询和存储性能的存储内索引构建方法 | |
CN102200946A (zh) | 资料存取方法、记忆体控制器与储存系统 | |
CN110471612A (zh) | 存储器管理方法以及存储控制器 | |
CN106648443B (zh) | 有效数据合并方法、存储器控制器与存储器存储装置 | |
CN109558271A (zh) | 数据备份方法、数据恢复方法以及存储控制器 | |
CN107102951B (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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20190408 Address after: Room 609, 6th Floor, Taibang Science and Technology Building, Nanshan District, Shenzhen City, Guangdong Province Applicant after: Shenzhen Da Xin Electronic Technology Co., Ltd. Address before: 4th Floor, Alan Scotton Building, 3076 Sir Francis Drake Road, Luther Town, Tortola Island Applicant before: Daxin Electronics (British Virgin Islands) Co., Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |