CN109558271A - 数据备份方法、数据恢复方法以及存储控制器 - Google Patents
数据备份方法、数据恢复方法以及存储控制器 Download PDFInfo
- Publication number
- CN109558271A CN109558271A CN201710879573.XA CN201710879573A CN109558271A CN 109558271 A CN109558271 A CN 109558271A CN 201710879573 A CN201710879573 A CN 201710879573A CN 109558271 A CN109558271 A CN 109558271A
- Authority
- CN
- China
- Prior art keywords
- logic
- entity table
- data
- turns
- address
- 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
- 238000000034 method Methods 0.000 title claims abstract description 42
- 230000015654 memory Effects 0.000 claims abstract description 107
- 238000009966 trimming Methods 0.000 claims abstract description 57
- 239000007787 solid Substances 0.000 claims description 84
- 239000010813 municipal solid waste Substances 0.000 claims description 33
- 230000009183 running Effects 0.000 claims description 4
- 230000008439 repair process Effects 0.000 claims description 3
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 claims 2
- 229910052799 carbon Inorganic materials 0.000 claims 2
- ZESKRVSPQJVIMH-UHFFFAOYSA-N 1,3-dimethoxypropan-2-ol Chemical compound COCC(O)COC ZESKRVSPQJVIMH-UHFFFAOYSA-N 0.000 description 62
- 238000010586 diagram Methods 0.000 description 18
- 230000005540 biological transmission Effects 0.000 description 14
- 230000005055 memory storage Effects 0.000 description 7
- 238000013523 data management Methods 0.000 description 6
- 230000005611 electricity Effects 0.000 description 5
- 238000007726 management method Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000011084 recovery Methods 0.000 description 4
- 238000013507 mapping Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 241001269238 Data Species 0.000 description 2
- 229910003460 diamond Inorganic materials 0.000 description 2
- 239000010432 diamond Substances 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000011010 flushing procedure Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000013138 pruning Methods 0.000 description 2
- 238000004064 recycling Methods 0.000 description 2
- 238000012163 sequencing technique Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013439 planning Methods 0.000 description 1
- 230000003362 replicative effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000032258 transport Effects 0.000 description 1
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/1405—Saving, restoring, recovering or retrying at machine instruction level
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明提供一种数据备份方法、数据恢复方法以及存储控制器。所述数据备份方法包括于存储器中维护逻辑转实体表,其记录分别对应多个第一逻辑地址的多个实体地址与多个修剪标记;接收修剪指令,其中所述修剪指令指示存储于一或多个第二逻辑地址的数据为无效的;根据所述修剪指令,不将所述逻辑转实体表的分别对应所述第二逻辑地址的实体地址清空,并且将分别对应所述第二逻辑地址的修剪标记从第一位元值修改为第二位元值;以及当符合预设条件时,根据所述多个修剪标记更新所述逻辑转实体表,且存储更新后的逻辑转实体表至可复写式非易失性存储器模块。
Description
技术领域
本发明涉及一种数据备份方法与数据恢复方法,尤其涉及一种适用于配置有可复写式非易失性存储器模块的存储装置的数据备份方法、数据恢复方法与存储控制器。
背景技术
一般来说,主机系统可利用修剪命令(Trim command)通知配置可复写式非易失性存储器模块的存储装置(如,固态硬盘,SSD)哪些实体单元(实体区块)的数据不再被视为在使用中(即,无效数据),并且所述多个实体单元可以被抹除。存储装置的控制器会根据修剪命令的修剪信息将对应修剪信息所指示的逻辑单元地址的实体单元地址标记为无效,以使控制器可在尔后的其他操作中,通过被标记为无效的实体单元地址辨识出存储在所述实体单元地址中的数据为无效数据,进而增加了存储装置的管理效率。例如,通过修剪指令所标记的无效数据,可增进垃圾回收操作的效率。
更详细来说,控制器一般会维持逻辑转实体表(Logical to physical table,L2Ptable),以监视整个逻辑单元与实体单元的映射状态。但,逻辑转实体表(以下称L2P表)的缺点是,控制器需要在特定时间来更新且存储所维护于存储器(如,RAM)中的L2P表至存储装置中。否则,在下次启动时L2P表将会消失。
也就是说,若发生突然断电事件,根据修剪指令所标记的无效数据来执行的垃圾回收操作会导致重建后的逻辑转实体表的正确性降低。以下利用图4A~4D来说明传统作法的缺陷。
图4A为根据现有技术所显示的逻辑转实体表的示意图。请参照图4A,假设存储装置的可复写式非易失性存储器模块已存储逻辑转实体表400,即,逻辑转实体表(NAND),在时间T0,存储装置的控制器会从可复写式非易失性存储器模块中读取逻辑转实体表400,并且存储在存储装置的存储器中(如,箭头A400所示),以使存储装置可经由存储器快速存取的特性来快速地更新维护于存储器中的逻辑转实体表401(即,逻辑转实体表(RAM))。此外,假设可复写式非易失性存储器模块的实体单元41中已分别存储了数据D411、D412、D413、D414。所述数据为有效数据(如灰底所示)。
图4B为根据现有技术所显示的根据修剪指令更新逻辑转实体表的示意图。请参照图4B,在时间T1,控制器接收了修剪指令TC1,控制器会根据修剪指令TC1来更新逻辑转实体表401为逻辑转实体表402(如箭头A401所示)。其中修剪指令TC1用以指示存储于逻辑地址区段LS1的数据为无效的。更详细来说,修剪指令TC1会包括所述逻辑地址区段LS1的起始逻辑地址(如,“LBA(0)”)与区段长度(如,“2”)。更新后的逻辑转实体表402对应逻辑地址区段LS1的逻辑地址LBA(0)、LBA(1)的实体地址会被修改为“0”(被清空)。即,根据逻辑转实体表402,可知道当前逻辑地址LBA(0)、LBA(1)并不存在有效数据。控制器可知道实体单元41的实体页面41(1)、41(2)所存储的数据是无效的(无效数据,如菱形格线所示)。
图4C为根据现有技术所显示的根据所执行的垃圾回收指令来更新逻辑转实体表的示意图。请参照图4C,若在时间T2,控制器接收垃圾回收指令,并且对应地执行了对于实体单元41的垃圾回收操作。根据逻辑转实体表402,控制器会将实体单元41的有效的数据D413、D414复制到新的实体单元42(不复制无效的数据D411、D412),并且将实体单元41抹除,以让实体单元41可在尔后继续被使用,进而完成回收实体单元41(如箭头A402所示)。应注意的是,根据用以存储数据D413、D414的新的实体地址,逻辑转实体表402会对应地被更新为逻辑转实体表403(如箭头A403所示)。
图4D为根据现有技术所显示的重建逻辑转实体表的示意图。假设在时间T3发生了突然断电事件,并且在时间T4存储装置开始执行重建逻辑转实体表的操作。一开始,控制器会从可复写式非易失性存储器模块中读取逻辑转实体表400,并且存储至存储装置的存储器中为逻辑转实体表401(如,箭头A404所示。接着,控制器会根据写入时间晚于逻辑转实体表400的实体单元42的有效数据的实体地址与逻辑地址来更新逻辑转实体表401(如箭头A405所示),以获得重建后(更新后)的逻辑转实体表404(如,箭头A406所示)。
应注意的是,上述重建后的逻辑转实体表404的LBA(0)、LBA(1)所分别对应的实体地址为“41_1”与“41_2”(即表示存储在逻辑地址LBA(0)、LBA(1)的数据已被写入至实体单元41的第1个与第2个实体页面)。然而,实体单元41已经因为垃圾回收操作而被抹除,即,实体单元41并未存储任何数据。因此,重建后的逻辑转实体表404存在有错误的信息(逻辑地址LBA(0)、LBA(1)并不应该存有数据)。换言的,在执行垃圾回收操作后,若在最新的逻辑转实体表尚未被备份至可复写式非易失性存储器模块的情况下,发生了突然断电事件,会导致后续重建后的逻辑转实体表的正确性降低。
基此,如何解决垃圾回收操作与突然断电事件所导致的逻辑转实体表的错误问题,是本领域人员研究的课题的一。
发明内容
本发明提供一种数据备份方法与数据恢复方法与存储控制器,可利用记录有修剪标记的逻辑转实体表,来进行对应的数据备份操作,进而解决一般传统作法中,经由数据恢复操作所重建的逻辑转实体表的正确性因为垃圾回收操作而降低的问题。
本发明的一实施例提供一种数据备份方法,适用于配置有可复写式非易失性存储器模块的存储装置,其中所述可复写式非易失性存储器模块具有多个实体单元,并且所述可复写式非易失性存储器模块被配置多个实体地址,其中耦接至所述存储装置的主机系统配置多个第一逻辑地址。所述方法包括维护第一逻辑转实体表于存储器中,其中所述第一逻辑转实体表记录分别对应所述多个第一逻辑地址的多个第一修剪标记及该些实体地址中分别对应该些第一逻辑地址的多个第一实体地址,其中所述多个第一修剪标记的预设值为第一位元值;从所述主机系统接收修剪指令,其中所述修剪指令指示存储于逻辑地址区段中的第一数据为无效的;根据所述修剪指令,不将所述第一逻辑转实体表的所述多个第一实体地址中分别对应所述一或多个第二逻辑地址的第二实体地址清空,并且将所述多个第一修剪标记中分别对应所述一或多个第二逻辑地址的第二修剪标记修改为第二位元值;以及当符合预设条件时,根据所述多个第一修剪标记更新所述第一逻辑转实体表,并且根据更新后的所述第一逻辑转实体表存储第二逻辑转实体表至所述可复写式非易失性存储器模块,其中所述第二逻辑转实体表仅包含更新后的所述第一逻辑转实体表的分别对应所述多个第一逻辑地址的所述多个第一实体地址,并且不具有所述多个第一修剪标记。
本发明的一实施例提供一种数据恢复方法,适用于配置有一可复写式非易失性存储器模块的存储装置,其中所述可复写式非易失性存储器模块具有多个实体单元,并且所述可复写式非易失性存储器模块被配置多个实体地址,其中耦接至所述存储装置的主机系统配置多个逻辑地址。所述方法包括将存储在所述可复写式非易失性存储器模块的最新的第一逻辑转实体表载入至存储器中,以形成第二逻辑转实体表,其中所述第一逻辑转实体表与所述第二逻辑转实体表皆记录所述多个实体地址中分别对应所述多个逻辑地址的多个第一实体地址;根据所述可复写式非易失性存储器模块中写入时间晚于所述第一逻辑转实体表的有效数据的实体地址与对应的逻辑地址来更新所述第二逻辑转实体表;以及记录多个修剪标记至所述第二逻辑转实体表,以使所述多个修剪标记分别对应所述第二逻辑转实体表的所述多个逻辑地址,其中所述多个修剪标记的预设值为第一位元值。
本发明的一实施例提供用于控制配置有可复写式非易失性存储器模块的存储装置的一种存储控制器。所述存储控制器包括连接接口电路、存储器接口控制电路与处理器。所述连接接口电路用以耦接至配置多个第一逻辑地址的主机系统。所述存储器接口控制电路用以耦接至所述可复写式非易失性存储器模块,其中所述可复写式非易失性存储器模块具有多个实体单元,并且所述可复写式非易失性存储器模块被配置多个实体地址。所述处理器耦接至所述连接接口电路及所述存储器接口控制电路。此外,所述处理器用以维护第一逻辑转实体表于存储器中,其中所述第一逻辑转实体表记录分别对应所述多个第一逻辑地址的多个第一修剪标记及该些实体地址中分别对应所述多个第一逻辑地址的多个第一实体地址,其中所述多个第一修剪标记的预设值为第一位元值。所述处理器更用以从所述主机系统接收修剪指令,其中所述修剪指令指示存储于逻辑地址区段中的第一数据为无效的,其中所述逻辑地址区段包括一或多个第二逻辑地址。所述处理器更用以根据所述修剪指令,不将所述第一逻辑转实体表的所述多个第一实体地址中分别对应所述一或多个第二逻辑地址的第二实体地址清空,并且将所述多个第一修剪标记中分别对应所述一或多个第二逻辑地址的第二修剪标记修改为第二位元值。此外,当符合预设条件,所述处理器更用以根据所述多个第一修剪标记更新所述第一逻辑转实体表,并且根据更新后的所述第一逻辑转实体表存储第二逻辑转实体表至所述可复写式非易失性存储器模块,其中所述第二逻辑转实体表仅包含更新后的所述第一逻辑转实体表的分别对应所述多个第一逻辑地址的所述多个第一实体地址,并且不具有所述多个第一修剪标记。
本发明的一实施例提供用于控制配置有可复写式非易失性存储器模块的存储装置的一种存储控制器。所述存储控制器包括连接接口电路、存储器接口控制电路与处理器。所述连接接口电路用以耦接至配置多个逻辑地址的主机系统。所述存储器接口控制电路用以耦接至所述可复写式非易失性存储器模块,其中所述可复写式非易失性存储器模块具有多个实体单元,并且所述可复写式非易失性存储器模块被配置多个实体地址。所述处理器耦接至所述连接接口电路及所述存储器接口控制电路。此外,所述处理器用以将存储在所述可复写式非易失性存储器模块的最新的第一逻辑转实体表载入至存储器中,以形成第二逻辑转实体表,其中所述第一逻辑转实体表与所述第二逻辑转实体表皆记录所述多个实体地址中分别对应所述多个逻辑地址的多个第一实体地址。此外,所述处理器更用以根据所述可复写式非易失性存储器模块中写入时间晚于所述第一逻辑转实体表的有效数据的实体地址与对应的逻辑地址来更新所述第二逻辑转实体表,其中所述处理器更用以记录多个修剪标记至所述第二逻辑转实体表,以使所述多个修剪标记分别对应所述第二逻辑转实体表的所述多个逻辑地址,其中所述多个修剪标记的预设值为第一位元值。
基于上述,本发明实施例所提供的数据备份方法、数据恢复方法以及存储控制器,可利用记录于逻辑转实体表的修剪标记,来对应地根据所接收的修剪指令、垃圾回收指令、写入指令及所执行的逻辑转实体表备份操作来更新修剪标记与逻辑转实体表,以避免在最新的逻辑转实体表尚未被备份至可复写式非易失性存储器模块的情况下,发生了突然断电事件,所导致的重建后的逻辑转实体表的正确性降低的问题,进而提高了提升配置有可复写式非易失性存储器模块的存储装置的性能与安全。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。
附图说明
图1是根据本发明的一实施例所显示的主机系统及存储装置的方块示意图;
图2是根据本发明的一实施例所显示的数据备份方法的流程图;
图3是根据本发明的一实施例所显示的数据恢复方法的流程图;
图4A为根据现有技术所显示的逻辑转实体表的示意图;
图4B为根据现有技术所显示的根据修剪指令更新逻辑转实体表的示意图;
图4C为根据现有技术所显示的根据所执行的垃圾回收指令来更新逻辑转实体表的示意图;
图4D为根据现有技术所显示的重建逻辑转实体表的示意图;
图5A为根据本发明的一实施例所显示的逻辑转实体表的示意图;
图5B为根据本发明的一实施例所显示的根据修剪指令更新逻辑转实体表的示意图;
图5C为根据本发明的一实施例所显示的根据所执行的垃圾回收指令来更新逻辑转实体表的示意图;
图5D为根据本发明的一实施例所显示的重建逻辑转实体表的示意图;
图6为根据本发明的一实施例所显示的备份逻辑转实体表至可复写式非易失性存储器模块的示意图;
图7为根据本发明的一实施例所显示的根据写入指令更新逻辑转实体表的示意图。
附图标号说明:
10:主机系统
20:存储装置
110、211:处理器
120:主机存储器
130:数据传输接口电路
210:存储控制器
212:数据传输管理电路
213:存储器接口控制电路
220:可复写式非易失性存储器模块
230:连接接口电路
S21、S23、S25、S27:数据备份方法的流程步骤
S31、S33、S35:数据恢复方法的流程步骤
400、401、402、403、404、500、501、502、503、504、601、602、701:逻辑转实体表
41(1)~41(4)、42(1)~42(4)、43(1)~43(4):实体页面
41、42、43:实体单元
D411、D412、D413、D414、D431、D432:数据
TC1:修剪指令
WC1:写入指令
WD:写入数据
GC1:垃圾回收指令
LBA(0)~LBA(127):逻辑地址
PBA(0)~PBA(127)、Py、Pz:实体地址
LS1:逻辑地址区段
A400、A401、A402、A403、A404、A405、A406、A500、A501、A502、A503、A504、A505、A506、A601、A602、A701、A702:箭头
具体实施方式
在本实施例中,存储装置包括可复写式非易失性存储器模块(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中。
存储器接口控制电路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个位元的快闪存储器模块)、三阶存储单元(Triple LevelCell,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可知道用以存储该数据的逻辑地址,并且根据该实体页面的实体地址,处理器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、图3、图5A、5B、5C、5D来说明本发明所提供的数据备份方法的细节。
图2是根据本发明的一实施例所显示的数据备份方法的流程图。请同时参照图1与图2,在步骤S21中,处理器211维护第一逻辑转实体表于存储器中,其中所述第一逻辑转实体表记录分别对应多个第一逻辑地址的多个第一修剪标记及多个实体地址中分别对应所述些第一逻辑地址的多个第一实体地址,其中所述多个第一修剪标记的预设值为第一位元值。所述多个第一逻辑地址为主机系统配置用以存储数据的逻辑地址。以下配合图5来说明步骤S21的细节。
图5A为根据本发明的一实施例所显示的逻辑转实体表的示意图。请参照图5A,举例来说,在本实施例中,为了方便说明,假设主机系统配置用以存储数据的128个逻辑地址(逻辑页面)LBA(0)~LBA(127),可复写式非易失性存储器模块220被配置多个实体单元。每一实体单元具有4个实体页面。例如,实体单元41具有4个实体页面41(1)~41(4)。
处理器211会维护逻辑转实体表401于存储器(缓冲存储器)中。在本实施例中,逻辑转实体表会仅利用一行数据栏来固定依序地记录所有逻辑地址所映射的实体地址。举例来说,处理器211于存储器中所记录的逻辑转实体表可仅记录修剪标记与实体地址两种数据(彼此对应),并且处理器211可根据于所述逻辑转实体表中所记录的一实体地址或一修剪标记的顺序来辨识出该实体地址或该修剪标记所对应的逻辑地址。相似地,处理器211于可复写式非易失性存储器模块220中所存储的逻辑转实体表可仅记录实体地址,并且处理器211可根据于所述逻辑转实体表中所记录的实体地址的顺序来辨识出该实体地址所对应的逻辑地址。在本实施例中,初始的逻辑转实体表501是读取的前备份(存储)于可复写式非易失性存储器模块220的逻辑转实体表备份数据,即,逻辑转实体表500。所述逻辑转实体表501记录了128个逻辑地址LBA(0)~LBA(127)(也称,第一逻辑地址)所分别对应的实体地址PBA(0)~PBA(127)的信息。
假设,在时间T0,从可复写式非易失性存储器模块220读取逻辑转实体单元500,并且存储至存储器成为逻辑转实体表501(如箭头A500所示)。逻辑转实体表501的逻辑地址LBA(0)、LBA(1)、LBA(2)、LBA(3)、LBA(126)、LBA(127)所对应的实体地址PBA(0)、PBA(1)、PBA(2)、PBA(3)、PBA(126)、PBA(127)分别记录了“41_1”、“41_2”、“41_3”、“41_4”、Py、Pz,并且实体单元41存储数据D411、D412、D413、D414于实体单元41的第1、2、3、4个实体页面41(1)、41(2)、41(3)、41(4)(实体地址分别为“41_1”、“41_2”、“41_3”、“41_4”),即,实体页面41(1)~41(4)被写入了数据D411、D412、D413、D414,并且上述数据D411、D412、D413、D414存储于逻辑地址LBA(0)、LBA(1)、LBA(2)、LBA(3)。此例子表示在实体单元41中的第1、2、3、4个实体页面(实体地址)存储了有效数据(如图5A所显示的实体单元41的灰底区块)。在此例子中,在写入有效数据D411、D412、D413、D414至实体单元41的后,逻辑转实体表500被备份至可复写式非易失性存储器模块220。
此外,在本实施例中,处理器211会分别对应逻辑地址LBA(0)~LBA(126)记录多个修剪标记(Trim Marks)(也称,第一修剪标记)。修剪标记也可称为修剪位元(Trim bits)。当初次载入逻辑转实体表至存储器中时,所述多个修剪标记会被预设为第一位元值,如,“0”(修剪标记的预设值为“0”)。换言的,与存储于可复写式非易失性存储器模块220的逻辑转实体表不同的是,维护于存储器中的逻辑转实体表会多具有一个栏位,其更记录分别对应多个逻辑地址的多个修剪标记(修剪标记也是按照逻辑地址的顺序来被记录,即,修剪标记也会对应逻辑转实体表所记录的多个实体地址)。
应注意的是,若逻辑转实体表的一逻辑地址所对应的实体地址记录的信息为“0”,其表示该逻辑地址并未存储有效数据。若逻辑转实体表的一逻辑地址并没有存储任何数据,此逻辑地址所对应的实体地址所记录的信息可为空(即,不存储任何信息)。
请再回到图2,在步骤S23中,处理器211从主机系统接收修剪指令,其中所述修剪指令指示存储于逻辑地址区段中的第一数据为无效的,其中所述逻辑地址区段包括一或多个第二逻辑地址。具体来说,如上所述,安装于主机系统10上的作业系统删除某笔数据时,作业系统可经由传送修剪指令(TRIMcommand)至存储装置20(处理器211),以让存储装置20获知(处理器211)所述被删除的某笔数据位于哪个逻辑地址区段(即,哪些逻辑地址上的数据已被作业系统所删除)。换句话说,存储装置20的处理器211可经由所接收的修剪指令来知道存储于一逻辑地址区段中的数据是无效的(Invalid)(无效数据,Invalid Data)。
图5B为根据本发明的一实施例所显示的根据修剪指令更新逻辑转实体表的示意图。举例来说,请参照图5B,假设在时间T1,处理器211从主机系统10接收修剪指令TC1,所述修剪指令TC1指示了存储在逻辑地址区段LS1中的数据已被删除(为无效的)。在本实施例中,修剪指令TC1是利用两种信息来记录逻辑地址区段LS1。例如,起始逻辑地址用以表示(记录)逻辑地址区段的第一个逻辑地址(逻辑页面),并且区段长度用以表示(记录)逻辑地址区段的总长度,即,对应的逻辑地址区段所包含的所有逻辑地址(逻辑页面)的总数目。举例来说,经由修剪指令TC1所指示逻辑地址区段LS1的起始逻辑地址“LBA(0)”与区段长度“2”,可知道目前存储在逻辑地址LBA(0)与逻辑地址LBA(1)共“2”个逻辑地址(也称,第二逻辑地址)的数据为无效的(无效数据)。应注意的是,时间T1表示晚于时间T0的一个时间点。应注意的是,在其他实施例中,处理器211也可利用/接收不同于上述修剪指令的其他型态数据结构的修剪指令,以辨识存储在一或多个第二逻辑地址的数据是无效的。
请参考图2,接着,在步骤S25中,处理器211根据所述修剪指令,不将所述第一逻辑转实体表的所述多个第一实体地址中分别对应所述一或多个第二逻辑地址的第二实体地址清空,并且将所述多个第一修剪标记中分别对应所述一或多个第二逻辑地址的第二修剪标记修改为第二位元值。
请参考图5B,举例来说,接续上方的例子,接收到修剪指令TC1后,处理器211会根据修剪指令TC1所指示的逻辑地址区段LS1来更新逻辑转实体表501为逻辑转实体表502(如箭头A501所示)。
更详细来说,虽然逻辑地址区段LS1指示了存储在第二逻辑地址址LBA(0)、LBA(1)的数据是无效的,处理器211并不会(如,图4B所示的传统作法)根据逻辑地址区段LS1清空了逻辑转实体表的第二逻辑地址LBA(0)、LBA(1)所分别对应的实体地址PBA(0)、PBA(1)(也称,第二实体地址)。例如,处理器211不将实体地址PBA(0)所记录的信息“41_1”修改为“0”,不将实体地址PBA(1)所记录的信息“41_2”修改为“0”。换言的,存储在实体单元41的实体页面41(1)、41(2)的数据可被处理器211视为有效数据。此外,处理器211会根据逻辑地址区段LS1将分别对应第二逻辑地址址LBA(0)、LBA(1)的修剪标记(也称,第二修剪标记)从原本的“0”修改为“1”(也称,第二位元值)。
换言的,在本实施例中,与传统作法不同的是,处理器211并不会根据修剪指令来清空逻辑转实体表的对应的第二逻辑地址所映射的实体地址,但处理器211会修改对应第二逻辑地址的修剪标记,将所述修剪标记的值修改为第二位元值(非预设值)。如此一来,在垃圾回收操作中,处理器211会视存储在第二逻辑地址的数据为有效的。以下利用图5C来进行说明。
图5C为根据本发明的一实施例所显示的根据所执行的垃圾回收指令来更新逻辑转实体表的示意图。请参照图5C,在时间T1后的时间T2,处理器211接收垃圾回收指令GC1。所述垃圾回收指令GC1记录了要执行垃圾回收操作的实体单元的信息(如,“41”)。即,所述垃圾回收指令GC1用以指示对实体单元41执行垃圾回收操作。在此例子中,存储在实体单元41的数据包括存储在对应修剪指令TC1的第二逻辑地址的数据D411、D412(也称,第一数据),以及其他数据D413、D414(也称,第二数据)。
在本实施例中,处理器211会根据数据D411~D414的实体页面的元数据辨识对应的逻辑地址为LBA(0)~LBA(3),并且根据逻辑转实体表502的逻辑地址LBA(0)~LBA(3)所对应的实体地址PBA(0)~PBA(3)所记录的信息“41_1”~“41_4”,处理器211可知道数据D411~D414为有效的数据。例如,处理器211辨识对应数据D411的实体页面41(1)的元数据记录逻辑地址LBA(0)(如,图5B所显示实体单元41的实体页面41(1)左侧的信息“LBA(0)”)。并且,根据逻辑地址LBA(0)与逻辑转实体表502,处理器211从逻辑转实体表502中辨识对应逻辑地址LBA(0)的实体地址为“41_1”,即表示,存储在逻辑地址LBA(0)的数据存储于实体页面41(1)。由于所辨识出的此实体页面41(1)符合前述用以存储数据D411的实体页面。因此,处理器211判定数据D411为有效的。依此类推,根据垃圾回收指令GC1与逻辑转实体表502,处理器211可判定实体单元41中的数据D411~D414为有效数据。
接着,处理器211选择可用的实体单元42,将实体单元41中有效数据(即,数据D411、D412、D413、D414)复制至实体单元42,并且对实体单元41执行抹除操作,以让实体单元41可在尔后继续被使用,进而完成回收实体单元41(如箭头A502所示)。应注意的是,不同于传统作法,在此实施例中,执行垃圾回收操作时,对应修剪指令的数据D411、D412会被视为有效的,并且被复制至新的实体单元42。
接着,处理器211根据分别用以存储数据D411、D412、D413、D414的逻辑地址与实体地址对应地更新逻辑转实体表502为逻辑转实体表503(如箭头A503所示)。也就是说,处理器211根据用以存储有效数据D411、D412、D413、D414的实体页面42(1)、42(2)、42(3)、42(4)的实体地址“42_1”、“42_2”、“42_3”、“42_4”,逻辑地址LBA(0)、LBA(1)、LBA(2)、LBA(3)来更新逻辑转实体表502为逻辑转实体表503。应注意的是,在因应垃圾回收操作所更新逻辑转实体表,其中的分别对应第一逻辑地址LBA(0)~LBA(127)的所有第一修剪标记并不会被修改。
请回到图2,接着,在步骤S27中,当符合预设条件时,处理器211根据所述多个第一修剪标记更新所述第一逻辑转实体表,并且根据更新后的所述第一逻辑转实体表存储第二逻辑转实体表至可复写式非易失性存储器模块。
具体来说,上述步骤S21~S25所更新的逻辑转实体表502会在符合预设条件的时候,被存储至可复写式非易失性存储器模块220中。所述预设条件例如为经过一固定闲置时间、当前时间与逻辑转实体表的时间戳记的间的时间间隔以超过一预设时间门槛值、所接收的修剪指令所指示的无效数据已超过另一预设大小、所接受的写入指令所写入的数据量已超过又另一预设大小等条件或其组合。上述根据更新后的所述第一逻辑转实体表存储第二逻辑转实体表至可复写式非易失性存储器模块的操作也可称为对存储器中的逻辑转实体表进行快照(snapshot)操作(也称,逻辑转实体表备份操作)。
图6为根据本发明的一实施例所显示的备份逻辑转实体表至可复写式非易失性存储器模块的示意图。请参照图6,举例来说,在本实施例中,接续图5C的例子,在时间T2后的时间T3,假设预定条件已符合,处理器211开始执行备份逻辑转实体表503至可复写式非易失性存储器模块220。
一开始,处理器211在备份逻辑转实体表的前,会先根据为第二位元值的修剪标记来更新逻辑转实体表中对应的实体地址。具体来说,处理器211会辨识逻辑转实体表503的所有修剪标记中为第二位元值(如,“1”)的一或多个修剪标记(也称,第四修剪标记),并且将逻辑转实体表503所记录的实体地址PBA(0)~PBA(127)中分别对应所述一或多个第四修剪标记的实体地址(也称,第四实体地址)清空。举例来说,处理器211辨识第四修剪标记为分别对应第二逻辑地址LBA(0)、LBA(1)的修剪标记(为第二位元值“1”),并且处理器211会将对应上述第四修剪标记的实体地址(也称,第四实体地址)PBA(0)、PBA(1)所记录的信息清空(即,修改为“0”)。
此外,处理器211还将所述一或多个第四修剪标记修改为第一位元值(“0”),以完成更新逻辑转实体表503,获得更新后的逻辑转实体表601(如箭头A601所示)。
在获得更新后的逻辑转实体表601后,处理器211会根据逻辑转实体表601所记录的第一逻辑地址LBA(0)~LBA(127)与分别对应的实体地址PBA(0)~PBA(127)的信息,于可复写式非易失性存储器模块220中存储逻辑转实体表602(如箭头A602所示),其中逻辑转实体表602仅记录分别对应上述第一逻辑地址LBA(0)~LBA(127)的实体地址PBA(0)~PBA(127)的信息。即,存储于可复写式非易失性存储器模块220中的逻辑转实体表602(也称,逻辑转实体表(NAND))并不具有逻辑转实体表(RAM)所具有的第一修剪标记(分别对应所有第一逻辑地址的修剪标记)。
应注意的是,此时,备份至存储于可复写式非易失性存储器模块220中的逻辑转实体表602,可正确地反映出的前修剪指令TC1所指示的存储于逻辑地址LBA(0)、LBA(1)的无效数据D411、D412(如,图6所显示的菱形格线)。也就是说,经由利用逻辑转实体表来记录修剪标记,可在备份逻辑转实体表时,正确地反映出对应所有修剪指令所指示的无效数据于备份后的逻辑转实体表中(经由清空逻辑转实体表中对应无效数据的实体地址)。所述逻辑转实体表602的写入时间也晚于实体单元42的写入时间。
值得一提的是,在本实施例中,逻辑转实体表所记录的修剪标记于第一位元值与第二位元值的间改变的条件包括(1)初始逻辑转实体表于存储器中时,将所有修剪标记设定为第一位元值;(2)根据所接收的修剪指令,将对应的修剪标记修改为第二位元值;(3)执行存储器中的逻辑转实体表的备份操作时,将为第二位元值的修剪标记修改为第一位元值;以及(4)根据所接收的写入指令,将对应的修剪标记修改为第一位元值。以下会配合图7来说明上述条件(4)。
图7为根据本发明的一实施例所显示的根据写入指令更新逻辑转实体表的示意图。请参照图7,举例来说,接续图5C的例子,假设在晚于时间T2的时间T3,处理器211接收写入指令WC1。所述写入指令WC1包括起始逻辑地址、区段长度以及写入数据。更详细来说,写入指令指示处理器211将写入数据WD写入至逻辑地址LBA(0)、LBA(1)(也称,第三逻辑地址),共两个逻辑地址(逻辑页面)中。即,用以存储写入数据WD的逻辑区段包含“2”个逻辑页面,并且第一个逻辑页面的逻辑地址为LBA(0)。处理器211根据写入指令WC1,依序将写入数据WD存储至当前的可用的实体单元43(也称,第三实体单元)的实体页面43(1)、43(2)中(如箭头A701所示)。即,存储在实体页面43(1)、43(2)中的数据D431、D432可组成上述的写入数据WD。
应注意的是,处理器211在完成写入数据WD的写入操作后(数据D431、D432已程序化至实体页面43(1)、43(2)),处理器211会根据第三实体页面43(1)、43(2)的地址(实体地址“43_1”、“43_2”)与对应的第三逻辑地址LBA(0)、LBA(1)来更新逻辑转实体表503(如箭头A702所示)。此外,处理器211根据对应写入指令WC1的第三逻辑地址LBA(0)、LBA(1),将分别对应第三逻辑地址LBA(0)、LBA(1)的修剪标记(也称,第三修剪标记)修改为第一位元值(“0”)。换言的,上述第三修剪标记,会因为所对应的逻辑地址经由写入指令存储了有效数据而从第二位元值修改为第一位元值。最后,根据写入指令完成对于逻辑转实体表503的更新后,处理器211会获得逻辑转实体表701。
以下会配合图1、图3以及图5D来说明本发明所提供的数据恢复方法。
图3是根据本发明的一实施例所显示的数据恢复方法的流程图。图5D为根据本发明的一实施例所显示的重建逻辑转实体表的示意图。举例来说,请参照图5D,接续的前图5C的例子,假设在晚于时间T2的时间T3发生了突然断电事件。由于原本(如,时间T2的)存储在存储器中的逻辑转实体表503会因为突然断电而丢失,因此,存储装置20开电后,处理器211会侦测到突然断电事件的发生,并且对应地执行数据恢复操作。在所述数据恢复操作中,在晚于时间T3的时间T4,处理器211会先重建逻辑转实体表。一开始,请参照图3,在步骤S31中,处理器211将存储在可复写式非易失性存储器模块220的最新的第一逻辑转实体表载入至存储器中,以形成第二逻辑转实体表。例如,处理器211会先从可复写式非易失性存储器模块220读取最新的逻辑转实体表500至存储器(如箭头A504所示)成为逻辑转实体表501。
在步骤S33中,处理器211根据所述可复写式非易失性存储器模块中写入时间晚于所述第一逻辑转实体表的有效数据的实体地址与对应的逻辑地址来更新所述第二逻辑转实体表。
举例来说,处理器211读取对应所有被写入任何数据的实体单元的元数据,以找出写入时间晚于逻辑转实体表500的有效数据。接着,处理器211会根据对应此些有效数据的逻辑地址与实体地址来更新逻辑转实体表501。
例如,处理器211可辨识目前实体单元42的实体页面42(1)~42(4)所分别存储的数据D411、D412、D413、D414所属的实体单元41的时间戳记大于逻辑转实体表500的时间戳记。即,写入数据D411、D412、D413、D414的时间皆晚于逻辑转实体表500备份至可复写式非易失性存储器模块220的时间。基此,处理器211会根据数据D411、D412、D413、D414来进行数据恢复操作。处理器211会进一步以数据D411、D412、D413、D414的对应的实体地址“42_1”、“42_2”、“42_3”、“42_4”与逻辑地址LBA(0)、LBA(1)、LBA(2)、LBA(3)来重建(更新)逻辑转实体表501(如箭头A505所示),进而获得重建后的逻辑转实体表504(如箭头A506所示)
在步骤S35中,处理器211记录多个修剪标记至所述第二逻辑转实体表,以使所述多个修剪标记分别对应所述第二逻辑转实体表的所述多个逻辑地址,其中所述多个修剪标记的预设值为第一位元值。
具体来说,如上所述,不同于存储于可复写式非易失性存储器模块220的逻辑转实体表,维护于存储器中的逻辑转实体表501、504会记录分别对应逻辑地址LBA(0)~LBA(127)修剪标记。在数据恢复操作中,经由读取最新的逻辑转实体表500所获得的逻辑转实体表501,其所有的修剪标记会被设定为预设值“0”(第一位元值)。
综上所述,本发明实施例所提供的数据读取方法以及存储控制器,可利用记录于逻辑转实体表的修剪标记,来对应地根据所接收的修剪指令、垃圾回收指令、写入指令及所执行的逻辑转实体表备份操作来更新修剪标记与逻辑转实体表,以避免在最新的逻辑转实体表尚未被备份至可复写式非易失性存储器模块的情况下,发生了突然断电事件,所导致的重建后的逻辑转实体表的正确性降低的问题,进而提高了提升配置有可复写式非易失性存储器模块的存储装置的性能与安全。
虽然本发明已以实施例揭示如上,然其并非用以限定本发明,任何所属技术领域中技术人员,在不脱离本发明的精神和范围内,当可作些许的更改与润饰,故本发明的保护范围当视权利要求书所界定的为准。
Claims (10)
1.一种数据备份方法,其特征在于,适用于配置有一可复写式非易失性存储器模块的一存储装置,其中所述可复写式非易失性存储器模块具有多个实体单元,并且所述可复写式非易失性存储器模块被配置多个实体地址,其中耦接至所述存储装置的一主机系统配置多个第一逻辑地址,所述方法包括:
维护一第一逻辑转实体表于一存储器中,其中所述第一逻辑转实体表记录分别对应所述多个第一逻辑地址的多个第一修剪标记及所述多个实体地址中分别对应所述多个第一逻辑地址的多个第一实体地址,其中所述多个第一修剪标记的预设值为一第一位元值;
从所述主机系统接收一修剪指令,其中所述修剪指令指示存储于一逻辑地址区段中的第一数据为无效的,其中所述逻辑地址区段包括一或多个第二逻辑地址;
根据所述修剪指令,不将所述第一逻辑转实体表的所述多个第一实体地址中分别对应所述一或多个第二逻辑地址的第二实体地址清空,并且将所述多个第一修剪标记中分别对应所述一或多个第二逻辑地址的第二修剪标记修改为一第二位元值;以及
当符合一预设条件时,根据所述多个第一修剪标记更新所述第一逻辑转实体表,并且根据更新后的所述第一逻辑转实体表存储一第二逻辑转实体表至所述可复写式非易失性存储器模块,其中所述第二逻辑转实体表仅包含更新后的所述第一逻辑转实体表的分别对应所述多个第一逻辑地址的所述多个第一实体地址,并且不具有所述多个第一修剪标记。
2.根据权利要求1所述的数据备份方法,其特征在于,所述方法还包括:
接收一垃圾回收指令,其中所述垃圾回收指令用以指示对一第一实体单元执行一垃圾回收操作,其中存储于所述第一实体单元的数据包括第二数据以及存储于所述逻辑地址区段的所述一或多个第二逻辑地址的所述第一数据;
执行所述垃圾回收操作,以将所述第一实体单元的所述第二数据与存储于所述一或多个第二逻辑地址的所述第一数据复制至一第二实体单元;以及
根据已存储至所述第二实体单元中的所述第一数据与所述第二数据的多个逻辑地址与多个实体地址来更新所述第一逻辑转实体表,其中所述第一逻辑转实体表的所述多个第一修剪标记未被修改。
3.根据权利要求1所述的数据备份方法,其特征在于,所述方法还包括:
接收一写入指令,其中所述写入指令用以指示存储一写入数据至所述一或多个第二逻辑地址中的一第三逻辑地址;
执行所述写入指令,以将所述写入数据程序化至一第三实体地址;以及
将所述第一逻辑转实体表所记录的所述多个第一修剪标记中对应所述第三逻辑地址的一第三修剪标记修改为所述第一位元值,并且根据所述第三实体地址与所述第三逻辑地址更新所述第一逻辑转实体表。
4.根据权利要求1所述的数据备份方法,其特征在于,上述当符合所述预设条件,根据所述多个第一修剪标记更新所述第一逻辑转实体表的步骤包括:
当符合所述预设条件,辨识所述第一逻辑转实体表的所述多个第一修剪标记中为所述第二位元值的一或多个第四修剪标记,并且将所述第一逻辑转实体表所记录的所述多个第一实体地址中分别对应所述一或多个第四修剪标记的第四实体地址清空;以及
将所述一或多个第四修剪标记修改为所述第一位元值,以完成更新所述第一逻辑转实体表。
5.一种数据恢复方法,其特征在于,适用于配置有一可复写式非易失性存储器模块的一存储装置,其中所述可复写式非易失性存储器模块具有多个实体单元,并且所述可复写式非易失性存储器模块被配置多个实体地址,其中耦接至所述存储装置的一主机系统配置多个逻辑地址,所述方法包括:
将存储在所述可复写式非易失性存储器模块的最新的一第一逻辑转实体表载入至一存储器中,以形成一第二逻辑转实体表,其中所述第一逻辑转实体表与所述第二逻辑转实体表皆记录所述多个实体地址中分别对应所述多个逻辑地址的多个第一实体地址;
根据所述可复写式非易失性存储器模块中写入时间晚于所述第一逻辑转实体表的有效数据的实体地址与对应的逻辑地址来更新所述第二逻辑转实体表;以及
记录多个修剪标记至所述第二逻辑转实体表,以使所述多个修剪标记分别对应所述第二逻辑转实体表的所述多个逻辑地址,其中所述多个修剪标记的预设值为一第一位元值。
6.一种存储控制器,用于控制配置有一可复写式非易失性存储器模块的一存储装置,其特征在于,所述存储控制器包括:
连接接口电路,用以耦接至配置多个第一逻辑地址的一主机系统;
存储器接口控制电路,用以耦接至所述可复写式非易失性存储器模块,其中所述可复写式非易失性存储器模块具有多个实体单元,并且所述可复写式非易失性存储器模块被配置多个实体地址;以及
处理器,耦接至所述连接接口电路及所述存储器接口控制电路,
其中所述处理器用以维护一第一逻辑转实体表于一存储器中,其中所述第一逻辑转实体表记录分别对应所述多个第一逻辑地址的多个第一修剪标记及所述多个实体地址中分别对应所述多个第一逻辑地址的多个第一实体地址,其中所述多个第一修剪标记的预设值为一第一位元值,
其中所述处理器更用以从所述主机系统接收一修剪指令,其中所述修剪指令指示存储于一逻辑地址区段中的第一数据为无效的,其中所述逻辑地址区段包括一或多个第二逻辑地址,
其中所述处理器更用以根据所述修剪指令,不将所述第一逻辑转实体表的所述多个第一实体地址中分别对应所述一或多个第二逻辑地址的第二实体地址清空,并且将所述多个第一修剪标记中分别对应所述一或多个第二逻辑地址的第二修剪标记修改为一第二位元值,
其中当符合一预设条件时,所述处理器更用以根据所述多个第一修剪标记更新所述第一逻辑转实体表,并且根据更新后的所述第一逻辑转实体表存储一第二逻辑转实体表至所述可复写式非易失性存储器模块,其中所述第二逻辑转实体表仅包含更新后的所述第一逻辑转实体表的分别对应所述多个第一逻辑地址的所述多个第一实体地址,并且不具有所述多个第一修剪标记。
7.根据权利要求6所述的存储控制器,
其特征在于,所述处理器接收一垃圾回收指令,其中所述垃圾回收指令用以指示对一第一实体单元执行一垃圾回收操作,其中存储于所述第一实体单元的数据包括第二数据以及存储于所述逻辑地址区段的所述一或多个第二逻辑地址的所述第一数据,
其中所述处理器执行所述垃圾回收操作,以将所述第一实体单元的所述第二数据与存储于所述一或多个第二逻辑地址的所述第一数据复制至一第二实体单元,
其中所述处理器根据已存储至所述第二实体单元中的所述第一数据与所述第二数据的多个逻辑地址与多个实体地址来更新所述第一逻辑转实体表,其中所述第一逻辑转实体表的所述多个第一修剪标记未被修改。
8.根据权利要求6所述的存储控制器,
其特征在于,所述处理器接收一写入指令,其中所述写入指令用以指示存储一写入数据至所述一或多个第二逻辑地址中的一第三逻辑地址,
其中所述处理器执行所述写入指令,以将所述写入数据程序化至一第三实体地址,
其中所述处理器将所述第一逻辑转实体表所记录的所述多个第一修剪标记中对应所述第三逻辑地址的一第三修剪标记修改为所述第一位元值,并且根据所述第三实体地址与所述第三逻辑地址更新所述第一逻辑转实体表。
9.根据权利要求6所述的存储控制器,其特征在于,在上述当符合所述预设条件,所述处理器更用以根据所述多个第一修剪标记更新所述第一逻辑转实体表的运作中,
当符合所述预设条件,所述处理器辨识所述第一逻辑转实体表的所述多个第一修剪标记中为所述第二位元值的一或多个第四修剪标记,并且将所述第一逻辑转实体表所记录的所述多个第一实体地址中分别对应所述一或多个第四修剪标记的第四实体地址清空,
其中所述处理器将所述一或多个第四修剪标记修改为所述第一位元值,以完成更新所述第一逻辑转实体表。
10.一种存储控制器,用于控制配置有一可复写式非易失性存储器模块的一存储装置,其特征在于,所述存储控制器包括:
连接接口电路,用以耦接至配置多个逻辑地址的一主机系统;
存储器接口控制电路,用以耦接至所述可复写式非易失性存储器模块,其中所述可复写式非易失性存储器模块具有多个实体单元,并且所述可复写式非易失性存储器模块被配置多个实体地址;以及
处理器,耦接至所述连接接口电路及所述存储器接口控制电路,
其中所述处理器用以将存储在所述可复写式非易失性存储器模块的最新的一第一逻辑转实体表载入至一存储器中,以形成一第二逻辑转实体表,其中所述第一逻辑转实体表与所述第二逻辑转实体表皆记录所述多个实体地址中分别对应所述多个逻辑地址的多个第一实体地址,
其中所述处理器更用以根据所述可复写式非易失性存储器模块中写入时间晚于所述第一逻辑转实体表的有效数据的实体地址与对应的逻辑地址来更新所述第二逻辑转实体表,
其中所述处理器更用以记录多个修剪标记至所述第二逻辑转实体表,以使所述多个修剪标记分别对应所述第二逻辑转实体表的所述多个逻辑地址,其中所述多个修剪标记的预设值为一第一位元值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710879573.XA CN109558271B (zh) | 2017-09-26 | 2017-09-26 | 数据备份方法、数据恢复方法以及存储控制器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710879573.XA CN109558271B (zh) | 2017-09-26 | 2017-09-26 | 数据备份方法、数据恢复方法以及存储控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109558271A true CN109558271A (zh) | 2019-04-02 |
CN109558271B CN109558271B (zh) | 2023-02-24 |
Family
ID=65862997
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710879573.XA Active CN109558271B (zh) | 2017-09-26 | 2017-09-26 | 数据备份方法、数据恢复方法以及存储控制器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109558271B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113448771A (zh) * | 2020-03-27 | 2021-09-28 | 瑞昱半导体股份有限公司 | 存储器控制器与数据处理方法 |
CN117539692A (zh) * | 2024-01-09 | 2024-02-09 | 武汉麓谷科技有限公司 | 一种zns固态硬盘数据集管理命令实现方法 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201117001A (en) * | 2009-11-06 | 2011-05-16 | Phison Electronics Corp | Data backup method for a flash memory and controller and storage system using the same |
CN102375781A (zh) * | 2010-08-04 | 2012-03-14 | 群联电子股份有限公司 | 数据保护方法、存储器控制器及可携式存储器储存装置 |
WO2013022915A1 (en) * | 2011-08-09 | 2013-02-14 | Lsi Corporation | I/o device and computing host interoperation |
US20130219106A1 (en) * | 2012-02-17 | 2013-08-22 | Apple Inc. | Trim token journaling |
CN103377143A (zh) * | 2012-04-27 | 2013-10-30 | 群联电子股份有限公司 | 存储器管理方法、存储器控制器与存储器存储装置 |
US20140195725A1 (en) * | 2013-01-08 | 2014-07-10 | Violin Memory Inc. | Method and system for data storage |
CN104102585A (zh) * | 2013-04-03 | 2014-10-15 | 群联电子股份有限公司 | 映射信息记录方法、存储器控制器与存储器储存装置 |
CN104412218A (zh) * | 2012-06-19 | 2015-03-11 | 株式会社东芝 | 存储控制程序的存储介质、控制信息处理设备的方法、信息处理系统,以及信息处理设备 |
CN104732153A (zh) * | 2013-12-18 | 2015-06-24 | 群联电子股份有限公司 | 数据抹除方法、存储器控制电路单元及存储器存储装置 |
US20170132069A1 (en) * | 2015-11-06 | 2017-05-11 | Phison Electronics Corp. | Method and system for data rebuilding and memory control circuit unit thereof |
-
2017
- 2017-09-26 CN CN201710879573.XA patent/CN109558271B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201117001A (en) * | 2009-11-06 | 2011-05-16 | Phison Electronics Corp | Data backup method for a flash memory and controller and storage system using the same |
CN102375781A (zh) * | 2010-08-04 | 2012-03-14 | 群联电子股份有限公司 | 数据保护方法、存储器控制器及可携式存储器储存装置 |
WO2013022915A1 (en) * | 2011-08-09 | 2013-02-14 | Lsi Corporation | I/o device and computing host interoperation |
US20130219106A1 (en) * | 2012-02-17 | 2013-08-22 | Apple Inc. | Trim token journaling |
CN103377143A (zh) * | 2012-04-27 | 2013-10-30 | 群联电子股份有限公司 | 存储器管理方法、存储器控制器与存储器存储装置 |
CN104412218A (zh) * | 2012-06-19 | 2015-03-11 | 株式会社东芝 | 存储控制程序的存储介质、控制信息处理设备的方法、信息处理系统,以及信息处理设备 |
US20140195725A1 (en) * | 2013-01-08 | 2014-07-10 | Violin Memory Inc. | Method and system for data storage |
CN104102585A (zh) * | 2013-04-03 | 2014-10-15 | 群联电子股份有限公司 | 映射信息记录方法、存储器控制器与存储器储存装置 |
CN104732153A (zh) * | 2013-12-18 | 2015-06-24 | 群联电子股份有限公司 | 数据抹除方法、存储器控制电路单元及存储器存储装置 |
US20170132069A1 (en) * | 2015-11-06 | 2017-05-11 | Phison Electronics Corp. | Method and system for data rebuilding and memory control circuit unit thereof |
Non-Patent Citations (2)
Title |
---|
朱鹏等: "PCM多向Start-Gap算法设计与实现", 《小型微型计算机系统》 * |
马惠珠等: "项目计算机辅助受理的研究方向与关键词――2012年度受理情况与2013年度注意事项", 《电子与信息学报》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113448771A (zh) * | 2020-03-27 | 2021-09-28 | 瑞昱半导体股份有限公司 | 存储器控制器与数据处理方法 |
CN117539692A (zh) * | 2024-01-09 | 2024-02-09 | 武汉麓谷科技有限公司 | 一种zns固态硬盘数据集管理命令实现方法 |
CN117539692B (zh) * | 2024-01-09 | 2024-03-15 | 武汉麓谷科技有限公司 | 一种zns固态硬盘数据集管理命令实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109558271B (zh) | 2023-02-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104732153B (zh) | 数据抹除方法、存储器控制电路单元及存储器存储装置 | |
CN104679437B (zh) | 数据写入方法、存储器控制电路单元与存储器储存装置 | |
CN107844431A (zh) | 映射表更新方法、存储器控制电路单元与存储器存储装置 | |
US10372619B2 (en) | Data backup method, data recovery method and storage controller | |
CN106776376B (zh) | 缓冲存储器管理方法、存储器控制电路单元及存储装置 | |
CN106469122B (zh) | 有效数据合并方法、存储器控制器与存储器储存装置 | |
CN104765569B (zh) | 数据写入方法、存储器控制电路单元与存储器储存装置 | |
CN104793891B (zh) | 数据写入方法、存储器控制电路单元与存储器存储装置 | |
CN106557432B (zh) | 缓冲存储器管理方法、存储器控制电路单元及存储装置 | |
CN107402716A (zh) | 数据写入方法、内存控制电路单元与内存储存装置 | |
CN103136111B (zh) | 数据写入方法、存储器控制器与存储器储存装置 | |
CN103377129A (zh) | 数据写入方法、存储器控制器与存储器储存装置 | |
CN106445401A (zh) | 表格更新方法、存储器储存装置及存储器控制电路单元 | |
CN106708416A (zh) | 数据重建方法与系统及其存储器控制电路单元 | |
CN107544922A (zh) | 数据写入方法、存储器控制电路单元及存储器存储装置 | |
CN107943710A (zh) | 存储器管理方法及使用所述方法的存储控制器 | |
CN102200946B (zh) | 资料存取方法、记忆体控制器与储存系统 | |
CN108733577A (zh) | 存储器管理方法、存储器控制电路单元及存储器存储装置 | |
CN105988950B (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
CN107357520A (zh) | 整理指令处理方法、存储器控制电路单元及其存储装置 | |
CN107346211A (zh) | 映射表加载方法、内存控制电路单元与内存储存装置 | |
CN109388520A (zh) | 数据备份方法、数据恢复方法以及存储控制器 | |
CN109558271A (zh) | 数据备份方法、数据恢复方法以及存储控制器 | |
CN106814968A (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 DAXIN ELECTRONIC TECHNOLOGY Co.,Ltd. Address before: 4th Floor, Alan Scotton Building, 3076 Sir Francis Drake Road, Luther Town, Tortola Island Applicant before: EPOSTAR ELECTRONICS (BVI) Corp. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |