CN109840218A - 有效数据管理方法以及存储控制器 - Google Patents
有效数据管理方法以及存储控制器 Download PDFInfo
- Publication number
- CN109840218A CN109840218A CN201711189397.3A CN201711189397A CN109840218A CN 109840218 A CN109840218 A CN 109840218A CN 201711189397 A CN201711189397 A CN 201711189397A CN 109840218 A CN109840218 A CN 109840218A
- Authority
- CN
- China
- Prior art keywords
- valid data
- logical address
- entity
- target entity
- valid
- 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
-
- 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
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System (AREA)
Abstract
本发明提供一种有效数据管理方法与存储控制器。所述方法包括根据逻辑转实体表与对应所述目标实体单元的目标实体转逻辑表建立对应所述目标实体单元的有效数据标记表与有效逻辑地址表,其中所述有效数据标记表记录分别对应多个目标逻辑地址的多个标记值,其分别指示所对应的目标逻辑地址是有效或无效,并且所述有效逻辑地址表仅根据所述有效数据标记表的一或多个第一位元值的顺序记录一或多个有效目标逻辑地址;以及根据所述逻辑转实体表、对应所述目标实体单元的所述有效数据标记表与所述有效逻辑地址表来识别所述目标实体单元的一或多个有效数据。
Description
技术领域
本发明涉及一种有效数据管理方法,尤其涉及一种适用于配置有可复写式非易失性存储器模块的存储装置的有效数据管理方法与存储控制器。
背景技术
数码相机、移动电话与MP3播放器在这几年来的成长十分迅速,使得消费者对存储媒体的需求也急速增加。由于可复写式非易失性存储器模块(例如,快闪存储器)具有数据非易失性、省电、体积小,以及无机械结构等特性,所以非常适合内建于上述所举例的各种可携式多媒体装置中。
一般来说,配置有可复写式非易失性存储器模块的存储装置的存储控制器会维持逻辑转实体表(Logical to physical table,L2P table),以监视整个逻辑单元与实体单元的映射状态。此外,存储控制器可交叉查找实体转逻辑表与逻辑转实体表来识别出存储在实体单元中的有效数据。
假设一实体单元的实体转逻辑表所记录的一逻辑地址对应至一实体地址。在存储装置运行的过程中,存储在所述逻辑地址的数据可能会存储至另一实体地址,进而导致所述实体地址所存储的数据成为无效数据且所述逻辑地址成为无效的逻辑地址。为了识别一实体单元中的有效数据。传统上会根据所述实体单元的所述实体转逻辑表与所述逻辑转实体表交叉查找是否存在有不相符的实体地址,并且判定所述实体转逻辑表的所述不相符的实体地址存储无效数据且对应的逻辑地址是无效的,进而也识别出所述实体单元所以存储的有效数据及其位置(所述有效数据的地址即为经由交叉值找后,所获得的相符的实体地址)。
然而,由于上述过程会读取所述实体转逻辑表的所有条目。在所有条目可能包含无效数据的情况下,若存储控制器欲识别存储在实体单元的有效数据,存储控制器会耗费额外的时间读取无效的条目(即,读取对应存储无效数据的实体地址的条目),造成了资源(如,系统的运算资源)的浪费。
因此,如何用更先进的方式来管理且识别出实体单元中所存储的有效数据,以避免浪费空间资源或避免浪费运算资源,进而提升存储装置运作效率,为此领域技术人员所关心的议题。
发明内容
本发明提供一种有效数据管理方法与存储控制器,可根据所述逻辑转实体表、对应所述目标实体单元的有效数据标记表与有效逻辑地址表来快速地识别存储在所述目标实体单元的一或多个有效数据,以增进对于有效数据的管理效率,进而加强存储装置整体的工作效率。
本发明的一实施例提供一种有效数据管理方法,适用于配置有可复写式非易失性存储器模块的存储装置,其中所述可复写式非易失性存储器模块具有多个实体单元,并且所述多个实体单元的每一个实体单元包括多个实体子单元。所述方法包括根据所述多个实体单元中的目标实体单元、对应所述可复写式非易失性存储器模块的逻辑转实体表与对应所述目标实体单元的目标实体转逻辑表建立对应所述目标实体单元的有效数据标记表与有效逻辑地址表,其中所述目标实体转逻辑表根据所述目标实体单元的多个目标实体子单元的排列顺序记录所述多个目标实体子单元所映射的多个目标逻辑子单元的目标逻辑地址,并且所述多个目标逻辑地址分别对应所述多个目标实体子单元的多个目标实体地址,其中所述有效数据标记表记录分别对应所述多个目标逻辑地址的多个标记值,其中所述多个标记值的每一个标记值为第一位元值或第二位元值,其中所述第一位元值用以指示所对应的目标逻辑地址是有效,并且所述第二位元值用以指示所对应的目标逻辑地址是无效。此外,所建立的仅根据所述有效数据标记表的一或多个第一位元值的顺序记录分别对应所述一或多个第一位元值的一或多个有效目标逻辑地址,其中所述一或多个有效目标逻辑地址为所述多个目标逻辑地址中被判定为有效的目标逻辑地址,其中所述有效数据标记表小于所述有效逻辑地址表,并且所述有效逻辑地址表小于所述目标实体转逻辑表;以及根据所述逻辑转实体表、对应所述目标实体单元的所述有效数据标记表与所述有效逻辑地址表来识别存储在所述目标实体单元的一或多个有效数据。
本发明的一实施例提供用于控制配置有可复写式非易失性存储器模块的存储装置的一种存储控制器,其中所述可复写式非易失性存储器模块具有多个实体单元,其中所述可复写式非易失性存储器模块具有多个实体单元,并且所述多个实体单元的每一个实体单元包括多个实体子单元。所述存储控制器包括存储器接口控制电路与处理器。存储器接口控制电路用以耦接至所述可复写式非易失性存储器模块。处理器耦接至所述存储器接口控制电路。所述处理器用以根据所述多个实体单元中的目标实体单元、对应所述可复写式非易失性存储器模块的逻辑转实体表与对应所述目标实体单元的目标实体转逻辑表建立对应所述目标实体单元的有效数据标记表与有效逻辑地址表,其中所述目标实体转逻辑表根据所述目标实体单元的多个目标实体子单元的排列顺序记录所述多个目标实体子单元所映射的多个目标逻辑子单元的目标逻辑地址,并且所述多个目标逻辑地址分别对应所述多个目标实体子单元的多个目标实体地址,其中所述有效数据标记表记录分别对应所述多个目标逻辑地址的多个标记值,其中所述多个标记值的每一个标记值为第一位元值或第二位元值,其中所述第一位元值用以指示所对应的目标逻辑地址是有效,并且所述第二位元值用以指示所对应的目标逻辑地址是无效,其中所述有效逻辑地址表仅根据所述有效数据标记表的一或多个第一位元值的顺序记录分别对应所述一或多个第一位元值的一或多个有效目标逻辑地址,其中所述一或多个有效目标逻辑地址为所述多个目标逻辑地址中被判定为有效的目标逻辑地址,其中所述有效数据标记表小于所述有效逻辑地址表,并且所述有效逻辑地址表小于所述目标实体转逻辑表。所述处理器更用以根据所述逻辑转实体表、对应所述目标实体单元的所述有效数据标记表与所述有效逻辑地址表来识别存储在所述目标实体单元的一或多个有效数据。
基于上述,本发明实施例所提供的有效数据管理方法以及存储控制器,可经由逻辑转实体表与对应目标实体单元的实体转逻辑表建立较所述实体转逻辑表小的有效数据标记表与有效逻辑地址表,并且将所述有效数据标记表与有效逻辑地址表分别维护于较高速且容量较小的静态随机存取存储器及较低速且容量较大的动态随机存取存储器中。如此一来,可快速地查找对应目标实体单元的有效数据标记表,且经由有效逻辑地址表与逻辑转实体表来识别存储在所述目标实体单元的一或多个有效数据,以增进对于有效数据的识别效率,进而加强存储装置整体的工作效率。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。
附图说明
图1是根据本发明的一实施例所显示的主机系统及存储装置的方块示意图;
图2是根据本发明的一实施例所显示的有效数据管理方法的流程图;
图3为根据本发明的一实施例所显示的图2中的步骤S21(根据所述多个实体单元中的目标实体单元、对应所述可复写式非易失性存储器模块的逻辑转实体表与对应所述目标实体单元的目标实体转逻辑表建立对应所述目标实体单元的有效数据标记表与有效逻辑地址表)的流程图;
图4为根据本发明的一实施例所显示的图3中的步骤S215(根据所述逻辑转实体表与对应所述目标实体单元的所述目标实体转逻辑表建立所述有效数据标记表与所述有效逻辑地址表)的流程图;
图5为根据本发明的一实施例所显示的图2中的步骤S23(根据所述逻辑转实体表、对应所述目标实体单元的所述有效数据标记表与所述有效逻辑地址表来识别存储在所述目标实体单元的一或多个有效数据)的流程图;
图6为根据本发明的一实施例所显示的逻辑转实体表与实体转逻辑表的示意图;
图7A为根据本发明的一实施例所显示的有效数据标记表的示意图;
图7B为根据本发明的一实施例所显示的有效逻辑地址表的示意图。
附图标号说明:
10:主机系统
20:存储装置
110、211:处理器
120:主机存储器
130:数据传输接口电路
210:存储控制器
212:数据传输管理电路
213:存储器接口控制电路
214:静态随机存取存储器
215:动态随机存取存储器
220:可复写式非易失性存储器模块
230:连接接口电路
S21、S23:有效数据管理方法的流程步骤
S211、S213、S215、S217:步骤S21的流程步骤
S2150、S2151、S2152、S2153、S2154、S2155、S2156、S2157:步骤S215的流程步骤
S231、S232、S233、S234、S235、S236、S237、S238:步骤S23的流程步骤
LBA(1)~LBA(4)、LBA(127)~LBA(128):逻辑地址
PBA(A_1)~PBA(A_4)、PBA(B_1)~PBA(B_4):实体地址
L2P_0:逻辑转实体表
P2L_A、P2L_B:实体转逻辑表
VD_A:有效数据标记表
VLBA_A:有效逻辑地址表
具体实施方式
在本实施例中,存储装置包括可复写式非易失性存储器模块(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、静态随机存取存储器(Static Random Access Memory,SRAM)214、动态随机存取存储器(Dynamic Random Access Memory,DRAM)215。
在本实施例中,主机系统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所执行的指令或数据。
存储控制器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中专用于存放系统数据的实体存储单元中。
在本实施例中,存储控制器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可执行写入指令序列(或处理器211指示数据管理电路212发送写入指令序列至存储器接口控制电路213),以指示存储器接口控制电路213将数据写入至可复写式非易失性存储器模块220中的一或多个实体地址(也称,目标实体地址);处理器211可执行读取指令序列(或处理器211指示数据管理电路212发送读取指令序列至存储器接口控制电路213),以指示存储器接口控制电路213从可复写式非易失性存储器模块220的对应读取指令的一或多个实体地址(也称,目标实体地址)中读取数据;处理器211可执行抹除指令序列(或处理器211指示数据管理电路212发送抹除指令序列至存储器接口控制电路213),以指示存储器接口控制电路213对可复写式非易失性存储器模块220进行抹除操作。写入指令序列、读取指令序列及抹除指令序列可各别包括一或多个程序码或指令码并且用以指示对可复写式非易失性存储器模块220执行相对应的写入、读取及抹除等操作。在一实施例中,处理器211还可以下达其他类型的指令序列给存储器接口控制电路213,以对可复写式非易失性存储器模块220执行相对应的操作。
此外,欲写入至可复写式非易失性存储器模块220的数据会经由存储器接口控制电路213转换为可复写式非易失性存储器模块220所能接受的格式。具体来说,若处理器211要存取可复写式非易失性存储器模块220,处理器211会传送对应的指令序列给存储器接口控制电路213以指示存储器接口控制电路213执行对应的操作。例如,这些指令序列可包括指示写入数据的写入指令序列、指示读取数据的读取指令序列、指示抹除数据的抹除指令序列、以及用以指示各种存储器操作(如,垃圾回收操作、损耗平衡操作等等)的相对应的指令序列。这些指令序列可包括一或多个信号,或是在总线上的数据。这些信号或数据可包括指令码或程序码。例如,在读取指令序列中,会包括读取的识别码、存储器地址等信息。
在本实施例中,静态随机存取存储器214(也称,第一存储器)与动态随机存取存储器215(也称,第二存储器)耦接至处理器211并且用以暂存来自于主机系统10的数据与指令、来自于可复写式非易失性存储器模块220的数据或其他用以管理存储装置20的系统数据,以让处理器211可快速地从静态随机存取存储器214或动态随机存取存储器215中存取所述数据、指令或系统数据。其中,静态随机存取存储器214的速度快于动态随机存取存储器215,静态随机存取存储器214的硬件成本高于动态随机存取存储器215,并且静态随机存取存储器214的容量小于动态随机存取存储器215。也就是说,虽然第一存储器214可存储的数据较少,但是处理器211存取存储在第一存储器214中的数据的速度(存取速度)会高于存取存储在第二存储器215中的数据的速度。处理器211可将一些小的系统数据维护于第一存储器214中,以加速整体存储控制器的管理效率。本发明并不限定第一存储器214、第二存储器的种类,但会限定于上述本发明所揭示的第一存储器214与第二存储器215的至少一特征-存取速度的相对关系。例如,在另一实施例中,第一存储器214可为存取速度高于第二存储器215的其他种类的存储器。
可复写式非易失性存储器模块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的多个存储单元会构成多个实体程序化单元(也称,实体子单元),并且此些实体程序化单元会构成多个实体区块(也称,实体抹除单元或实体单元)。具体来说,同一条字符线(或同一个字符线层)上的存储单元会组成一或多个实体程序化单元。处理器211会分别配置多个实体地址给所述多个实体子单元。
在以下实施例中,是以存储单元作为写入(程序化)数据的最小单位。实体单元为抹除的最小单位,即,每一实体单元含有最小数目的一并被抹除的存储单元。此外,实体单元为实体区块,实体子单元为实体页面,并且每个实体地址用以指代对应的实体页面的地址。
应注意的是,在本实施例中,用以记录一实体单元的信息的系统数据可称为实体单元信息,并且其可利用所述实体单元中的一或多个实体子单元来记录,或是利用一个系统区中用以记录所有系统数据的特定实体单元的一或多个实体子单元来记录。在本实施例中,所述实体单元信息包括所述实体单元的抹除次数值(Program erase cycle,PEC)、时间戳记(Timestamp)、读取次数值(Read counter value)、实体单元索引码(Physical UnitIndex)等信息。更详细来说,每当处理器211对一实体单元进行抹除操作时,在完成所述抹除操作后,处理器211会对当前对应所述实体单元的抹除次数值加1(如,抹除次数值会随着每次的抹除操作而从0开始累加)。即,抹除次数值可反映出其所对应的实体单元的被抹除的次数的总和。所述时间戳记用以指示对应的实体单元存储其中的第一笔数据的时间。时间戳记的大小(数值差异)可用来表示时间的先后顺序。本发明并不限定所述时间戳记的详细格式。所述读取次数值用以统计对应的实体单元被读取的总次数。所述实体单元索引码用以代表对应的实体单元的独特的识别码,处理器211可根据实体单元索引码来识别其所对应的实体单元以及相关的数据。在本实施例中,对应一实体单元的系统数据更包括对应所述实体单元的实体转逻辑表。以下会通过图6来说明对应实体单元的实体转逻辑表。
存储控制器210会配置多个逻辑单元给可复写式非易失性存储器模块220。主机系统10是通过所配置的逻辑单元来存取存储在多个实体单元中的使用者数据。在此,每一个逻辑单元可以是由一或多个逻辑地址组成。例如,逻辑单元可以是逻辑区块(LogicalBlock)、逻辑页面(Logical Page)或是逻辑扇区(Logical Sector)。一个逻辑单元可以是映射至一或多个实体单元,其中实体单元可以是一或多个实体地址、一或多个实体扇、一或多个实体程序化单元或者一或多个实体抹除单元。在本实施例中,逻辑单元为逻辑区块,并且逻辑子单元为逻辑页面。每一逻辑单元具有多个逻辑子单元。
此外,存储控制器210会建立逻辑转实体地址射表(Logical To Physicaladdress mapping table,L2P mapping table)(也称,逻辑转实体表,L2P table)与分别对应多个实体单元的实体转逻辑地址映射表(Physical To Logical address mappingtable)(也称,实体转逻辑表,P2L table),以记录配置给可复写式非易失性存储器模块220的逻辑单元(如,逻辑区块、逻辑页面或逻辑扇区)与实体单元(如,实体抹除单元、实体程序化单元、实体扇区)的间的映射关系。换句话说,存储控制器210可通过逻辑转实体表来查找逻辑地址所映射的实体地址,并且存储控制器210可通过实体转逻辑表来查找实体地址所映射的逻辑地址。然而,上述有关逻辑地址与实体地址映射的技术概念为本领域技术人员的惯用技术手段,不再赘述于此。
在一实施例中,存储控制器210还包括电源管理电路。电源管理电路是耦接至处理器211并且用以控制存储装置20的电源。
图2是根据本发明的一实施例所显示的有效数据管理方法的流程图。请参照图2,在步骤S21中,处理器211根据所述多个实体单元中的目标实体单元、对应所述可复写式非易失性存储器模块的逻辑转实体表与对应所述目标实体单元的目标实体转逻辑表建立对应所述目标实体单元的有效数据标记表与有效逻辑地址表,其中所述目标实体转逻辑表根据所述目标实体单元的多个目标实体子单元的排列顺序记录所述多个目标实体子单元所映射的多个目标逻辑子单元的目标逻辑地址,其中所建立的所述有效数据标记表记录分别对应所述多个目标逻辑地址的多个标记值,其中所建立的所述有效逻辑地址表仅根据所述有效数据标记表的一或多个第一位元值的顺序记录分别对应所述一或多个第一位元值的一或多个有效目标逻辑地址。
更具体来说,所述目标实体转逻辑表根据所述目标实体单元的多个目标实体子单元的排列顺序记录所述多个目标实体子单元所映射的多个目标逻辑子单元的目标逻辑地址,并且所述多个目标逻辑地址分别对应所述多个目标实体子单元的多个目标实体地址。所述多个标记值(Mark value)的每一个标记值为第一位元值(如,“1”)或第二位元值(如,“0”),其中所述第一位元值用以指示所对应的目标逻辑地址是有效(Valid),并且所述第二位元值用以指示所对应的目标逻辑地址是无效(Invalid)。所述一或多个有效目标逻辑地址为所述多个目标逻辑地址中被判定为有效的目标逻辑地址,其中所述有效数据标记表(的大小)小于所述有效逻辑地址表,并且所述有效逻辑地址表(的大小)小于所述目标实体转逻辑表。
在本实施例中,处理器211可根据预定规则来从可复写式非易失性存储器模块220的所有实体单元中选择一个实体单作为目标实体单元,以进行建立对应所述目标实体单元的有效数据标记表与有效逻辑地址表的操作。例如,所述预定规则可为(1)当存储装置闲置时,选择有效数据数较少的实体单元作为目标实体单元;(2)在存储装置开机时,依序从可复写式非易失性存储器模块220的所有实体单元中选择实体单元做为目标实体单元。本发明并不限定预设规则的设定。
值得一提的是,在本实施例中,处理器211会即时地记录所述多个实体单元的每一个实体单元中用以存储有效数据的一或多个有效实体子单元的数目为对应所述每一个实体单元的有效数据数于静态随机存取存储器214或动态随机存取存储器215中。也就是说,处理器211会即时地监控每个实体单元所存储的有效数据的大小,并且将的作为其所对应的实体单元的有效数据数(也为一种对应实体单元的系统数据)。
在本实施例中,对于所选择的目标实体单元,处理器211还会先根据是否已存在对应目标实体单元的有效数据标记表,再根据有效数据数来判断是否要建立(或再次建立/重新建立)对应所述目标实体单元的有效数据标记表与有效逻辑地址表。
图3为根据本发明的一实施例所显示的图2中的步骤S21的流程图。请参照图3,在步骤S211中,处理器211判断对应所述目标实体单元的所述有效数据标记表与所述有效逻辑地址表是否存在。具体来说,处理器211会先查找可复写式非易失性存储器模块220或静态随机存取存储器214中是否已存储对应所述目标实体单元的有效数据标记表。
若可复写式非易失性存储器模块220或静态随机存取存储器214中都未存储对应所述目标实体单元的有效数据标记表,接续至步骤S213,处理器211判断所述目标实体单元的有效数据数是否小于第一门槛值。若所述目标实体单元的有效数据数没有小于第一门槛值。处理器211不建立对应所述目标实体单元的所述有效数据标记表与所述有效逻辑地址表,结束对于所述目标实体单元的步骤S21,并且处理器211可选择另一实体单元作为目标实体单元,并且重新执行步骤S21。
在步骤S211中,若判定可复写式非易失性存储器模块220或静态随机存取存储器214中存储对应所述目标实体单元的有效数据标记表,接续至步骤S217,处理器211判断所述目标实体单元的有效数据数是否小于第二门槛值,其中所述第二门槛值小于所述第一门槛值。值得一提的是,由于在使用的过程中,存储多个有效数据的实体单元会因为主机系统对于存储装置的存取,而使得部份的有效数据会成为无效数据,但无效数据并不会成为有效数据。也就是说,每个存储多笔有效数据的实体单元,其对应的有效数据数会随着存储装置的使用而逐渐减少。基此,在本实施例中,由于已存在有有效数据标记表且,如步骤S213所述,有效数据表起先是因为有效数据数小于第一门槛值而被建立。因此,在有效数据数会逐渐减少的情况下,所述第二门槛值会被设定小于所述第一门槛值,以进一步地当实体单元的有效数据数变得更小时来更新(重新建立)对应所述实体单元的有效数据标记表与有效逻辑地址表。若在步骤S217中处理器211判定所述目标实体单元的有效数据数没有小于第二门槛值。处理器211不建立对应所述目标实体单元的所述有效数据标记表与所述有效逻辑地址表,结束对于所述目标实体单元的步骤S21,并且处理器211可选择另一实体单元作为目标实体单元,并且重新执行步骤S21。值得一提的是,完成建立的有效数据标记表与有效逻辑地址表会被写入至可复写式非易失性存储器模块220中的系统实体单元(Systemphysical unit),并且存储在静态随机存取存储器214与动态随机存取存储器215的有效数据标记表与有效逻辑地址表会被删除。所述系统实体单元为可复写式非易失性存储器模块220的一或多个特定的实体单元,其用以存储每个实体单元的有效数据标记表与有效逻辑地址表或用以存储每个实体单元的实体转逻辑表。在本实施例中,当对目标实体单元建立有效数据标记表与有效逻辑地址表时、或是目标实体单元为开放实体单元(Open PhysicalUnit)时,目标实体单元的目标实体转逻辑表才会被维护于动态随机存取存储器215中。当目标实体单元的有效数据标记表与有效逻辑地址表已完成建立时、或是目标实体单元成为关闭实体单元(Close Physical Unit)时,目标实体单元的目标实体转逻辑表会被写入至可复写式非易失性存储器模块220且从动态随机存取存储器215中被删除。
应注意的是,处理器211可根据系统负载来动态地设定所述第一门槛值与第二门槛值。所述系统负载包括实体单元使用状态与主机存取状态。举例来说,实体单元使用状态例如是用以指示实体单元被存取的次数(或频率)。当对应一实体单元的实体单元使用状态越高,则对应所述实体单元的第一门槛值与第二门槛值可被设定为相较于预设的值低的值。又例如,主机存取状态例如是用以指示主机系统10存取存储装置20的次数(或频率)。当对应一实体单元的主机存取状态越高,则对应所述实体单元的第一门槛值与第二门槛值可被设定为相较于预设的值低的值。应注意的是,在一实施例中,若一实体区块的有效数据数小于一第三门槛值,则处理器211会指示对此实体区块进行垃圾回收操作或数据合并操作。所述第三门槛值小于第二门槛值。
若在步骤S213中处理器211判定所述目标实体单元的有效数据数小于第一门槛值或是在步骤S217中处理器211判定所述目标实体单元的有效数据数小于第二门槛值,处理器211会接续执行步骤S215。在步骤S215中,处理器211根据所述逻辑转实体表与对应所述目标实体单元的所述目标实体转逻辑表建立所述有效数据标记表与所述有效逻辑地址表。以下会通过图4、图6、图7A、图7B来详细说明建立所述有效数据标记表与所述有效逻辑地址表的方法。
图4为根据本发明的一实施例所显示的图3中的步骤S215的流程图。图6为根据本发明的一实施例所显示的逻辑转实体表与实体转逻辑表的示意图。
请参照图6,举例来说,假设可复写式非易失性存储器模块220具有32个实体单元,并且每个实体单元具有4个实体子单元。也就是说,可复写式非易失性存储器模块220具有128个可映射至所有逻辑子单元的实体子单元。对应可复写式非易失性存储器模块220的逻辑转实体表L2P_0根据所述多个逻辑子单元的多个逻辑地址LBA(1)~LBA(128)的排列顺序,依序记录了映射至所述多个逻辑子单元的多个实体子单元的多个实体地址的信息(值)(如,“A_1”、“A_2”、“B_1”、“A_4”、Py、Pz)。此外,假设对应实体单元A(也称,目标实体单元A)的实体转逻辑表P2L_A根据目标实体单元A的多个实体子单元(也称,目标实体子单元)的排列顺序,即,实体地址(也称,目标实体地址)PBA(A_1)、PBA(A_2)、PBA(A_3)、PBA(A_4)的顺序记录所述多个目标实体子单元所映射的多个逻辑子单元(也称,目标逻辑子单元)的多个逻辑地址(也称,目标逻辑地址)LBA(1)~LBA(4)的信息(值)(即,“001”、“002”、“003”、“004”)。换句话说,经由实体转逻辑表P2L_A,处理器211可知道目标实体地址PBA(A_1)、PBA(A_2)、PBA(A_3)、PBA(A_4)对应至目标逻辑地址LBA(1)、LBA(2)、LBA(3)、LBA(4)。换句话说,实体转逻辑表P2L_A所记载的信息用以指示当前存储在目标实体地址PBA(A_1)、PBA(A_2)、PBA(A_3)、PBA(A_4)的数据应存储于主机系统10可见的目标逻辑地址LBA(1)、LBA(2)、LBA(3)、LBA(4)。
请同时参照图4与图6,在步骤S2150中,处理器211识别所述目标实体转逻辑表所记录的多个目标逻辑地址。举例来说,根据上述的例子,处理器211可识别目标实体转逻辑表P2L_A所记录的目标逻辑地址LBA(1)、LBA(2)、LBA(3)、LBA(4)且分别读取其中的信息(如,“001”、“002”、“003”、“004”)。接着,在步骤S2151中,处理器211判断所述多个目标逻辑地址LBA(1)、LBA(2)、LBA(3)、LBA(4)中是否具有尚未被选择的一或多个目标逻辑地址。具体来说,在本实施例中,处理器211会从所有还没有被选择的目标逻辑地址中选择一个目标逻辑地址,以进行有效数据标记表与有效逻辑地址表的建立。假设一开始目标逻辑地址LBA(1)、LBA(2)、LBA(3)、LBA(4)都尚未被选择,在步骤S2151中,处理器211会判定具有尚未被选择的一或多个目标逻辑地址,并且接续至步骤S2152。
在步骤S2152中,处理器211从所述尚未被选择的一或多个目标逻辑地址中根据预定顺序来选择对应第一目标实体子单元的第一目标逻辑地址,并且识别所述第一目标实体子单元的第一目标实体地址。具体来说,在本实施例中,所述预定顺序为:处理器211会依照目标逻辑地址LBA(1)、LBA(2)、LBA(3)、LBA(4)的排列顺序从第一个尚未被选择的目标逻辑地址(即,目标逻辑地址LBA(1))开始选择。所述第一目标逻辑地址LBA(1)对应至目标实体单元A的第一目标实体子单元,并且处理器可识别对应第一目标实体子单元的实体地址为目标实体地址(也称,第一目标实体地址)PBA(A_1),其值为“A_1”。即,处理器211可根据实体转逻辑表P2L_A识别出对应第一目标逻辑地址LBA(1)的第一目标实体地址PBA(A_1)。
接着,接续至步骤2153,处理器211根据所述第一目标逻辑地址从所述逻辑转实体表所记录的多个实体地址中查找第一实体地址。具体来说,处理器211可从逻辑转实体表L2P_0中查找到对应第一目标逻辑地址LBA(1)的实体地址(也称,第一实体地址)的值为“A_1”。
从逻辑转实体表L2P_0中查找到对应第一目标逻辑地址LBA(1)的第一实体地址后,接续至步骤S2154。在步骤S2154中,处理器211判断所述第一实体地址是否等于所述第一目标实体地址。在此例子中,处理器211判定第一实体地址等于所述第一目标实体地址(即,“A_1”=“A_1”)。
若判定第一实体地址等于所述第一目标实体地址,接续至步骤S2155。在步骤S2155中,处理器211判定所述第一目标逻辑地址是有效,将所述有效数据标记表中对应所述第一目标逻辑地址的第一标记值记录为所述第一位元值,附加所述第一目标逻辑地址至所述有效逻辑地址表。
图7A为根据本发明的一实施例所显示的有效数据标记表的示意图。图7B为根据本发明的一实施例所显示的有效逻辑地址表的示意图。请参照图7A、图7B,在上述的例子中,处理器211判定存储在第一目标逻辑地址LBA(1)的数据是有效数据,并且判定实体转逻辑表P2L_A所记录的第一目标逻辑地址LBA(1)是有效的。接着,处理器211会在维护于静态随机存取存储器214的对应目标实体单元A的有效数据标记表VD_A中的对应第一目标逻辑地址LBA(1)(也映射至第一实体地址PBA(A_1))的标记值记录为“1”。接着,处理器211会附加第一目标逻辑地址LBA(1)至维护于动态随机存取存储器215的对应目标实体单元A的有效逻辑地址表VLBA_A中,即,有效逻辑地址表VLBA_A所记录的“001”。
接着,整体流程再回到步骤S2151。依此类推,处理器211会选择逻辑地址LBA(2)作为新的第一目标逻辑地址LBA(2)。接着,处理器211会判定实体转逻辑表P2L_A所记录的目标逻辑地址LBA(2)是有效的,将有效数据标记表对应目标逻辑地址LBA(2)(或对应目标实体地址PBA(A_2))的标记值记录为“1”,并且附加目标逻辑地址LBA(2)至有效逻辑地址表VLBA_A。应注意的是,所述目标逻辑地址LBA(2)的值“002”会排序在目标逻辑地址LBA(1)的值“001”的后方。
接着,整体流程再回到步骤S2151。依此类推,处理器211会选择逻辑地址LBA(3)作为新的第一目标逻辑地址LBA(3)。然而,根据逻辑转实体表L2P_0,逻辑转实体表L2P_0所记录的对应逻辑地址LBA(3)的实体地址为“B_1”,即,实体单元B的第一个实体子单元的实体地址PBA(B_1)(可知道,实体单元B的实体转逻辑表P2L_B所记录的逻辑地址LBA(3)是有效的)。故,在步骤S2154中,处理器211会判定逻辑转实体表L2P_0中的所记录的对应第一目标逻辑地址LBA(3)的第一实体地址不同于实体转逻辑表P2L_A中的所记录的第一目标逻辑地址LBA(3)所对应的第一目标实体地址PBA(A_3)(即,“B_1”≠“A_3”)。接续至步骤S2156,处理器211判定所述第一目标逻辑地址是无效,将所述有效数据标记表中对应所述第一目标逻辑地址的所述第一标记值记录为所述第二位元值,不附加所述第一目标逻辑地址至所述有效逻辑地址表。具体来说,处理器211判定存储在第一目标逻辑地址LBA(3)的数据是无效数据,并且判定实体转逻辑表P2L_A中所记录的第一目标逻辑地址LBA(3)是无效的。接着,处理器211会在有效数据标记表VD_A中的对应第一目标逻辑地址LBA(3)(也映射至第一实体地址PBA(A_3))的标记值记录为“0”。应注意的是,处理器211不会附加第一目标逻辑地址LBA(3)至有效逻辑地址表VLBA_A中,即,有效逻辑地址表VLBA_A不会记录无效的目标逻辑地址。
接着,整体流程再回到步骤S2151。依此类推,处理器211会将有效数据标记表对应目标逻辑地址LBA(4)(或对应目标实体地址PBA(A_4))的标记值记录为“1”,并且附加目标逻辑地址LBA(4)至有效逻辑地址表VLBA_A。应注意的是,所述目标逻辑地址LBA(4)的值“004”会排序在目标逻辑地址LBA(2)的值“002”的后方。此外,目标逻辑地址LBA(4)的值“004”与目标逻辑地址LBA(2)的值“002”的间并不存在无效的目标逻辑地址LBA(3)的值“003”。
接着,整体流程再回到步骤S2151。由于处理器211判定所有目标逻辑地址都已被选择(所述多个目标逻辑地址中不具有尚未被选择的一或多个目标逻辑地址),接续至步骤S2157,处理器211从所述动态随机存取存储器215中删除所述目标实体转逻辑表P2L_A。最后,结束整个步骤S215的流程。
请再回到图2,在完成对应目标实体单元的有效数据标记表与有效逻辑地址表的建立后,在步骤S23中,处理器211根据所述逻辑转实体表、对应所述目标实体单元的所述有效数据标记表与所述有效逻辑地址表来识别存储在所述目标实体单元的一或多个有效数据。具体来说,在许多处理器211所执行的存储器观礼操作中(如,执行垃圾回收操作、抹除平衡操作、数据合并操作),处理器211会需要去识别存储在目标实体单元的有效数据。以下会配合图5来详细说明步骤S23的流程。
图5为根据本发明的一实施例所显示的图2中的步骤S23的流程图。请参照图5,在步骤S231中,处理器211识别所述有效数据标记表的所述多个标记值中为所述第一位元值的一或多个有效数据标记值。举例来说,接续上述的例子,假设处理器211欲识别存储在目标实体单元A的有效数据。处理器211会先查找维护于静态随机存取存储器214中的对应目标实体单元A的有效数据标记表VD_A的所有标记值,以识别所述多个标记值中为所述第一位元值(即,“1”)的一或多个标记值(也称,有效数据标记值)。值得一提的是,当目标实体单元A的有效数据数减至0时,即,有效数据标记表VD_A的所有标记值中都不为所述第一位元值(即,有效数据标记表VD_A的所有标记值都为第二位元值),处理器会判定所述目标实体单元没有存储任何有效数据,并且处理器211不会对有效数据数为0的实体单元建立有效数据标记表与有效逻辑地址表。
若处理器211查找到至少一个为所述第一位元值的有效数据标记值(即,判定所述有效数据标记表的所述多个标记值中具有为所述第一位元值的一或多个有效数据标记值),接续至步骤S232,处理器211仅判断所述一或多个有效数据标记值中是否具有尚未被选择的所述一或多个第一有效数据标记值。
具体来说,处理器211仅会在所判定的一或多个有效数据标记值中来选择其中一个尚未被选择过的有效数据标记值,以进行后续判断对应被选择的有效数据标记值的有效数据的操作。换句话说,此时,处理器211不再会存取为第二位元值的标记值。
举例来说,接续上述的例子,有效数据标记表VD_A具有分别对应目标逻辑地址LBA(1)、LBA(2)、LBA(4)的三个有效数据标记值。一开始,分别对应目标逻辑地址LBA(1)、LBA(2)、LBA(4)的所述三个有效数据标记值都尚未被选择(即,处理器211判定所述一或多个有效数据标记值中具有尚未被选择的所述一或多个第一有效数据标记值)。基此,处理器211会接续执行步骤S233。反之,若判定所述一或多个有效数据标记值中不具有尚未被选择的所述一或多个第一有效数据标记值(所有第一有效数据标记值都已被选择过),处理器211结束步骤S23的整个流程。
在步骤S233中,处理器211从所述一或多个第一有效数据标记值中根据预定顺序来选择对应第二目标实体子单元的第二有效数据标记值,并且识别所述第二目标实体子单元的第二目标实体地址。在本实施例中,所述预定顺序为:处理器211会依照分别对应目标逻辑地址LBA(1)、LBA(2)、LBA(4)的排列顺序从第一个尚未被选择的有效数据标记值(即,对应目标逻辑地址LBA(1)的有效数据标记值)开始选择。所述对应目标逻辑地址LBA(1)的有效标记值(也称,的二有效数据标记值)对应至第二目标实体子单元(即,实体地址为“A_1”的目标实体子单元),并且处理器211可识别对应第二目标实体子单元的实体地址为目标实体地址(也称,第二目标实体地址)PBA(A_1),其值为“A_1”。
接着,在步骤S234中,处理器211根据所述第二有效数据标记值于所述一或多个有效数据标记值中的排序来从所述有效逻辑地址表查找对应所述第二有效数据标记值的有效逻辑地址。具体来说,当从有效数据标记表中选择了有效数据标记值后,处理器211会从对应的有效逻辑地址表中查找对应所选择的有效数据标记值的有效逻辑地址。如上述建立有效逻辑地址表的方式,可知道,有效逻辑地址表中的多个有效逻辑地址的排列顺序会符合有效数据标记表中的多个有效数据标记值(如,多个第一位元值)的排列顺序。
举例来说,由于有效数据标记表VD_A的所选择的有效标记值“001”排列在所有有效标记值中的第一个。因此,有效逻辑地址表中对应有效标记值“001”的有效逻辑地址会排列在所有有效逻辑地址中的第一个,即,有效逻辑地址LBA(1)“001”。
在查找到对应第二有效数据标记值的有效逻辑地址后,在步骤S235中,处理器211根据对应所述第二有效数据标记值的所述有效逻辑地址从所述逻辑转实体表所记录的多个实体地址查找第二实体地址。举例来说,处理器211会根据有效逻辑地址LBA(1)“001”从逻辑转实体表L2P_0所记录的多个实体地址中查找到对应的实体地址(也称,第二实体地址)为“A_1”。
接着,在步骤S236中,处理器211判断所述第二实体地址是否等于所述第二目标实体地址。若所述第二实体地址等于所述第二目标实体地址,在步骤S237中,处理器211判定存储在所述第二目标实体子单元的数据为有效数据。若所述第二实体地址不等于所述第二目标实体地址,在步骤S238中,处理器211判定存储在所述第二目标实体子单元的数据为无效数据。
举例来说,接续上述的例子,处理器211会判定上述所查找到的第二实体地址等于第二目标实体地址(即,“A_1”=“A_1”)。接着,处理器211会判定存储在第二目标实体子单元中的数据为有效数据。依此类推,处理器211可根据所有有效标记值来识别所有可能存储在目标实体单元A中的有效数据。此外,处理器211可根据逻辑转实体表L2P_0、对应目标实体单元A的有效数据标记表VD_A与有效逻辑地址表来识别出存储在目标实体单元A中的所有有效数据的实体地址为实体地址PBA(A_1)、PBA(A_2)、PBA(A_4)。
除了可以利用有效数据标记表与有效逻辑地址表来识别出存储在目标实体单元中的所有有效数据的外,有效数据标记表与有效逻辑地址表也可用来恢复逻辑转实体表。
在本实施例中,维护于动态随机存取存储器215的逻辑转实体表、一或多个实体转逻辑表、一或多个有效逻辑地址表可在特定条件下被存储(备份)至可复写式非易失性存储器模块220。此外,维护于静态随机存取存储器214的有效数据标记表也可在特定条件下被存储(备份)至可复写式非易失性存储器模块220。在备份上述表单时,处理器211会一起各自记录备份上述表单的时间成为对应所备份的表单的时间戳记,并且将对应所述表单的时间戳记附加于所述表单。如此一来,处理器211可通过可复写式非易失性存储器模块220中的多个表单各自所具有的时间戳记来识别所述多个表单的间的新旧(备份的时间先后)。此外,每个实体单元的信息也包括对应每个实体单元的时间戳记,以让处理器211可藉此识别多个实体单元与上述多个表单的间的时间先后关系。
在一些特殊的条件下,例如,在突然断电后,存储在静态随机存取存储器214或动态随机存取存储器215的系统数据会丢失。为了恢复此些系统数据,如,逻辑转实体表,处理器211会在存储装置开电后,执行恢复操作以恢复所述逻辑转实体表,其中所述恢复操作的步骤包括下列步骤(1)至步骤(8)。
步骤(1):从所述可复写式非易失性存储器模块220读取有效的第一逻辑转实体表,并且存储所述第一逻辑转实体表于所述动态随机存取存储器中。所述有效的第一逻辑转实体表为存储在可复写式非易失性存储器模块220的多个逻辑转实体表中的最新者(时间最晚者/时间戳记最大者)。具体来说,处理器211会从可复写式非易失性存储器模块220读取最新的第一逻辑转实体表,并将的存储于动态随机存取存储器215中,以利后续的恢复操作/管理操作。
步骤(2):识别较所述第一逻辑转实体表新的第一实体单元。接着,处理器211会从可复写式非易失性存储器模块220的多个实体单元中识别时间戳记大于第一逻辑转实体表的时间戳记的一或多个实体单元(即,比第一逻辑转实体表新的实体单元),并且从中选择一个实体单元作为第一实体单元,以开始进行后续的恢复操作。
步骤(3):从所述可复写式非易失性存储器模块的所述多个有效数据标记表中读取对应所述第一实体单元的一第一有效数据标记表,并且存储所述第一有效数据标记表于所述静态随机存取存储器中。具体来说,在识别出较第一逻辑转实体表新的第一实体单元后,处理器211会从可复写式非易失性存储器模块220中读取对应第一实体单元的有效数据标记表(也称,第一有效数据标记表),并且将的存储于静态随机存取存储器214中。
步骤(4)从存储于从所述多个有效逻辑地址表中读取对应所述第一实体单元的一第一有效逻辑地址表,并且存储所述第一有效逻辑地址表于所述动态随机存取存储器中。具体来说,在识别出较第一逻辑转实体表新的第一实体单元后,处理器211会从可复写式非易失性存储器模块220中读取对应第一实体单元的有效逻辑地址表(也称,第一有效逻辑地址表),并且将的存储于动态随机存取存储器215中。
步骤(5):从所述第一有效数据标记表中识别为所述第一位元值的一或多个第一标记值,并且从所述第一实体单元中识别对应所述一或多个第一标记值的一或多个第一实体子单元及对应的一或多个第一实体地址。具体来说,处理器211仅根据在第一有效标记表中为第一位元值的一或多个标记值(有效数据标记值)来识别对应的一或多个第一实体地址。
步骤(6):根据所述一或多个第一标记值从所述第一有效逻辑地址表中识别对应所述一或多个第一标记值的一或多个有效逻辑地址。具体来说,如上述,处理器211可根据所述一或多个第一标记值的排列顺序识别对应的一或多个有效逻辑地址。所述一或多个有效逻辑地址会对应上述一或多个第一实体地址。
步骤(7):根据所述一或多个有效逻辑地址从所述第一逻辑转实体表中查找所记录的分别对应所述一或多个有效逻辑地址的一或多个第二实体地址。具体来说,在获得所述一或多个有效逻辑地址后,处理器211可根据所述一或多个有效逻辑地址来查找逻辑转实体表中的对应条目(用以存储实体地址的信息的条目),并且将条目所记录的信息作为分别对应所述一或多个有效逻辑地址的一或多个第二实体地址。
步骤(8):将所述一或多个第一实体地址分别取代所述第一逻辑转实体表中的所述一或多个第二实体地址。具体来说,处理器211将第一实体地址的值取代所查找到的第二实体地址的值且记录于逻辑转实体表中的对应所述一或多个有效逻辑地址的一或督个条目中。如此一来,处理器211便完成了根据对应第一实体单元的第一有效数据标记表与第一有效逻辑地址表所执行的用以恢复逻辑转实体表的恢复操作。
在完成步骤(8)后,处理器211可再回到步骤(2),从可复写式非易失性存储器模块220的多个实体单元中识别时间戳记大于第一逻辑转实体表的时间戳记的一或多个实体单元(即,比第一逻辑转实体表新的实体单元),并且从中选择一个时间戳记较第一实体单元大的实体单元作为新的第一实体单元,以开始进行后续的恢复操作(根据此新的第一实体单元执行步骤(3)~(8))。依此类推,处理器211可根据时间戳记大于第一逻辑转实体表的时间戳记的一或多个实体单元,依照时间先后,来一个一个地利用所述一或多个实体单元来执行恢复操作,以恢复逻辑转实体表。直到所有的所述一或多个实体单元(及对应的有效数据标记表与有效逻辑地址表)被选择且用于执行所述恢复操作后,便完成了逻辑转实体表的恢复。应注意的是,若时间戳记大于第一逻辑转实体表的时间戳记的一或多个实体单元的其中的一没有具有备份在可复写式非易失性存储器模块220的有效数据标记表与有效逻辑地址表,但所述实体单元具有备份在可复写式非易失性存储器模块220的实体转逻辑表。处理器211可根据对应所述实体单元的所述实体转逻辑表来恢复逻辑转实体表。
在另一实施例中,处理器211也可不需要识别时间戳记大于第一逻辑转实体表的时间戳记的一或多个实体单元,并且直接识别时间戳记大于第一逻辑转实体表的存储在可复写式非易失性存储器模块220的有效数据标记表与有效逻辑表,以进行恢复操作。
以下将详述本发明与传统技术相比的下的优点。
请参照图6,举例来说,假设处理器211要对目标实体单元A进行垃圾回收操作。处理器211需要先识别存储在目标实体单元A中的有效数据,以搬移所识别出的有效数据至新的实体单元,进而在搬移后抹除目标实体单元A。
传统上,处理器211会先读取对应目标实体单元A的实体转逻辑表P2L_A所记录的4个逻辑地址LBA(1)~LBA(4)。为了记录128个逻辑地址的值,处理器211会需要1个位元组(1Byte,8Bits)的大小来记录逻辑地址的值。换句话说,为了读取实体转逻辑表P2L_A所记录的4个逻辑地址LBA(1)~LBA(4),处理器211会读取4*8位元(即,32位元)大小的数据量(也称,第一读取数据量)。
接着,处理器211会再到逻辑转实体表L2P_0中查找分别对应4个逻辑地址LBA(1)~LBA(4)的4个实体地址,再将所查找到的4个实体地址去与实体转逻辑表P2L_A的4个逻辑地址LBA(1)~LBA(4)所对应的4个实体地址(目标实体单元A的4个实体地址PBA(A_1)~PBA(A_4))比较,以识别出存储在所述4个实体地址PBA(A_1)~PBA(A_4)的数据是否为有效数据。
然而,请参照图7A及图7B,根据本发明所提供的有效数据管理方法,为了识别存储在目标实体单元A的有效数据,处理器211会先读取对应目标实体单元A的有效数据标记表VD_A的所有标记值,以查找出一或多个有效数据标记值(即,“1”)。在图7A及图7B的例子中,标记值的总数为4个,有效数据标记值的总数为3个。由于每个标记值的大小为1个位元。因此,为了查找有效标记值,处理器211所读取的数据量为4*1位元(即,4位元)。
接着,在查找到3个有效数据标记值后,处理器211仅会针对有效标记值于有效逻辑地址表中查找分别对应所述3个有效标记值的3个有效逻辑地址。为了查找有效标记值,处理器211于有效逻辑地址所读取的数据量为3*8位元(即,24位元)(每个逻辑地址的读取数据量为8位元)。也就是说,结合对有效数据标记表的读取操作与对有效逻辑表的读取操作,处理器211总共读取的数据量为28(4+24=28)位元(也称,第一读取数据量)。
接着,处理器211会再到逻辑转实体表L2P_0中查找分别对应3个逻辑地址LBA(1)、LBA(2)、LBA(4)的3个实体地址,再将所查找到的3个实体地址去与有效数据标记表VD_A的3个有效数据标记值所对应的3个实体地址(目标实体单元A的3个实体地址PBA(A_1)、PBA(A_2)、PBA(A_4))比较,以识别出存储在所述3个实体地址PBA(A_1)、PBA(A_2)、PBA(A_4)的数据是否为有效数据。
从上述的举例可知道,为了获得用于查找逻辑转实体表L2P_0的多个逻辑地址,本发明所提供的有效数据管理方法所需要的第一读取数据量会小于传统上所需要的第一读取数据量(第一读取数据量的差异为4位元,其相当于原本所需要的第一读取数据量的12.5%,即,节省了12.5%的第一读取数据量)。当每个实体单元所具有的实体子单元的个数越多及有效数据标记表所记录的无效数据标记的个数越多(有效数据标记的个数越少)时,此差异会更大。
例如,假设目前要进行有效数据识别的目标实体单元A仅存储了1个有效数据(1个实体子单元存储了有效数据)。即,对应此目标实体单元A的有效数据标记表会记录1个有效数据标记值。基于上述举例,在传统上,处理器211所需要的第一读取量为4*位元(即,32位元)。然而,利用本发明所提供的有效数据管理方法,处理器211所需要的第一读取量为(4*1+1*8)位元(即,12位元)。所节省的读取数据量的比例高达62.5%(即,(32-12)/32*100%)。可见,在每个实体单元的有效数据越少(如,有效数据数越少)的情况下,利用本发明所提供的有效数据管理方法,处理器211可节省更多用来进行读取的资源。
又例如,假设在另一实施例中,可复写式非易失性存储器模块220具有32个实体单元,其中每个实体单元可具有8个实体子单元,即,可复写式非易失性存储器模块220共有256个实体子单元。为了记录256个实体子单元的实体地址及对应的逻辑地址,处理器211会利用9个位元的大小来存储每个实体地址/逻辑地址的值。此外,更假设目前要进行有效数据识别的目标实体单元仅存储了3个有效数据(3个实体子单元存储了有效数据)。即,对应此目标实体单元的有效数据标记表会记录3个有效数据标记值。基于上述举例,在传统上,处理器211所需要的第一读取量为8*9位元(即,72位元)。然而,利用本发明所提供的有效数据管理方法,处理器211所需要的第一读取量为(8*1+3*9)位元(即,35位元)。所节省的读取数据量的比例高达51.3%(即,(72-35)/72*100%)。
除了读取数据量的节省的外,由于有效数据标记表是维护于静态随机存取存储器214中的,在静态随机存取存储器214远高于动态随机存取存储器215的情况下,读取有效数据标记表所耗费的资源(如,读取时间)甚至可被忽略不计。也就是说,因为本发明的有效数据管理方法所提供有效数据标记表的大小相对于实体转逻辑表还小很多,以使有效数据标记表可被维护于静态随机存取存储器214中,进而可节省用于读取有效数据标记表的时间。
综上所述,本发明实施例所提供的有效数据管理方法以及存储控制器,可经由逻辑转实体表与对应目标实体单元的实体转逻辑表建立较所述实体转逻辑表小的有效数据标记表与有效逻辑地址表,并且将所述有效数据标记表与有效逻辑地址表分别维护于较高速且容量较小的静态随机存取存储器及较低速且容量较大的动态随机存取存储器中。如此一来,可快速地查找对应目标实体单元的有效数据标记表,且经由有效逻辑地址表与逻辑转实体表来识别存储在所述目标实体单元的一或多个有效数据,以增进对于有效数据的识别效率,进而加强存储装置整体的工作效率。
虽然本发明已以实施例揭示如上,然其并非用以限定本发明,任何所属技术领域中技术人员,在不脱离本发明的精神和范围内,当可作些许的更改与润饰,故本发明的保护范围当视权利要求所界定的为准。
Claims (10)
1.一种有效数据管理方法,适用于配置有一可复写式非易失性存储器模块的一存储装置,其特征在于,所述可复写式非易失性存储器模块具有多个实体单元,并且所述多个实体单元的每一个实体单元包括多个实体子单元,所述方法包括:
根据所述多个实体单元中的一目标实体单元、对应所述可复写式非易失性存储器模块的一逻辑转实体表与对应所述目标实体单元的一目标实体转逻辑表建立对应所述目标实体单元的一有效数据标记表与一有效逻辑地址表,其中所述目标实体转逻辑表根据所述目标实体单元的多个目标实体子单元的排列顺序记录所述多个目标实体子单元所映射的多个目标逻辑子单元的目标逻辑地址,并且多个目标逻辑地址分别对应所述多个目标实体子单元的多个目标实体地址,
其中所建立的所述有效数据标记表记录分别对应所述多个目标逻辑地址的多个标记值,其中所述多个标记值的每一个标记值为一第一位元值或一第二位元值,其中所述第一位元值用以指示所对应的目标逻辑地址是有效,并且所述第二位元值用以指示所对应的目标逻辑地址是无效,
其中所建立的所述有效逻辑地址表仅根据所述有效数据标记表的一或多个第一位元值的顺序记录分别对应所述一或多个第一位元值的一或多个有效目标逻辑地址,其中所述一或多个有效目标逻辑地址为所述多个目标逻辑地址中被判定为有效的目标逻辑地址,其中所述有效数据标记表小于所述有效逻辑地址表,并且所述有效逻辑地址表小于所述目标实体转逻辑表;以及
根据所述逻辑转实体表、对应所述目标实体单元的所述有效数据标记表与所述有效逻辑地址表来识别存储在所述目标实体单元的一或多个有效数据。
2.根据权利要求1所述的有效数据管理方法,其特征在于,还包括:
即时地记录所述多个实体单元的每一个实体单元中用以存储有效数据的一或多个有效实体子单元的数目为对应所述每一个实体单元的有效数据数于一静态随机存取存储器或一动态随机存取存储器中,其中对应所述可复写式非易失性存储器模块的所述逻辑转实体表被维护于所述动态随机存取存储器中,并且所述有效数据标记表被维护于所述静态随机存取存储器,
其中上述根据所述多个实体单元中的所述目标实体单元、对应所述可复写式非易失性存储器模块的所述逻辑转实体表与对应所述目标实体单元的所述目标实体转逻辑表建立对应所述目标实体单元的所述有效数据标记表与所述有效逻辑地址表的步骤包括:
当对应所述目标实体单元的所述有效数据标记表与所述有效逻辑地址表不存在且所述目标实体单元的有效数据数小于一第一门槛值时,根据所述逻辑转实体表与对应所述目标实体单元的所述目标实体转逻辑表建立所述有效数据标记表与所述有效逻辑地址表;以及
当对应所述目标实体单元的所述有效数据标记表与所述有效逻辑地址表已存在且所述目标实体单元的所述有效数据数小于一第二门槛值时,根据所述逻辑转实体表与对应所述目标实体单元的所述目标实体转逻辑表建立所述有效数据标记表与所述有效逻辑地址表,其中所述第二门槛值小于所述第一门槛值。
3.根据权利要求2所述的有效数据管理方法,其特征在于,根据所述逻辑转实体表与对应所述目标实体单元的所述目标实体转逻辑表建立所述有效数据标记表与所述有效逻辑地址表的步骤包括:
(1)若所述多个目标逻辑地址中具有尚未被选择的一或多个目标逻辑地址,从所述尚未被选择的一或多个目标逻辑地址中根据一预定顺序来选择对应一第一目标实体子单元的一第一目标逻辑地址,并且识别所述第一目标实体子单元的一第一目标实体地址,其中若所述多个目标逻辑地址中不具有尚未被选择的一或多个目标逻辑地址,从所述动态随机存取存储器中删除所述目标实体转逻辑表,并且完成所述有效数据标记表与所述有效逻辑地址表的建立;
(2)根据所述第一目标逻辑地址从所述逻辑转实体表所记录的多个实体地址中查找一第一实体地址;
(3)判断所述第一实体地址是否等于所述第一目标实体地址,其中当判定所述第一实体地址等于所述第一目标实体地址时,执行步骤(4),其中当判定所述第一实体地址不等于所述第一目标实体地址时,执行步骤(5);
(4)判定所述第一目标逻辑地址是有效,将所述有效数据标记表中对应所述第一目标逻辑地址的一第一标记值记录为所述第一位元值,附加所述第一目标逻辑地址至所述有效逻辑地址表,并且重新执行步骤(1);以及
(5)判定所述第一目标逻辑地址是无效,将所述有效数据标记表中对应所述第一目标逻辑地址的所述第一标记值记录为所述第二位元值,不附加所述第一目标逻辑地址至所述有效逻辑地址表,并且重新执行步骤(1)。
4.根据权利要求1所述的有效数据管理方法,其特征在于,所述有效数据标记表的所述多个标记值分别对应所述多个目标实体子单元,其中上述根据对应所述可复写式非易失性存储器模块的所述逻辑转实体表、对应所述目标实体单元的所述有效数据标记表与所述有效逻辑地址表来识别存储在所述目标实体单元的所述一或多个有效数据的步骤包括:
(1)识别所述有效数据标记表的所述多个标记值中为所述第一位元值的一或多个有效数据标记值,其中若所述有效数据标记表的所述多个标记值都为所述第二位元值,判定所述目标实体单元没有存储任何有效数据;
(2)仅识别所述一或多个有效数据标记值中尚未被选择的一或多个第一有效数据标记值,从所述一或多个第一有效数据标记值中根据一预定顺序来选择对应一第二目标实体子单元的一第二有效数据标记值,并且识别所述第二目标实体子单元的一第二目标实体地址,其中若所述一或多个有效数据标记值中不具有尚未被选择的所述一或多个第一有效数据标记值,完成存储在所述目标实体单元的所述一或多个有效数据的识别;
(3)根据所述第二有效数据标记值于所述一或多个有效数据标记值中的排序来从所述有效逻辑地址表查找对应所述第二有效数据标记值的一有效逻辑地址;
(4)根据对应所述第二有效数据标记值的所述有效逻辑地址从所述逻辑转实体表所记录的多个实体地址查找一第二实体地址;
(5)判断所述第二实体地址是否等于所述第二目标实体地址,其中当判定所述第二实体地址等于所述第二目标实体地址时,执行步骤(6),其中当判定所述第二实体地址不等于所述第二目标实体地址时,执行步骤(7);
(6)判定存储在所述第二目标实体子单元的数据为有效数据,并且重新执行步骤(2);以及
(7)判定存储在所述第二目标实体子单元的数据为无效数据,并且重新执行步骤(2)。
5.根据权利要求1所述的有效数据管理方法,其特征在于,还包括:
执行一恢复操作以恢复所述逻辑转实体表,其中所述恢复操作的步骤包括:
从所述可复写式非易失性存储器模块读取有效的一第一逻辑转实体表,并且存储所述第一逻辑转实体表于一动态随机存取存储器中;
识别较所述第一逻辑转实体表新的一第一实体单元;
从所述可复写式非易失性存储器模块的所述多个有效数据标记表中读取对应所述第一实体单元的一第一有效数据标记表,并且存储所述第一有效数据标记表于一静态随机存取存储器中;
从存储于从所述多个有效逻辑地址表中读取对应所述第一实体单元的一第一有效逻辑地址表,并且存储所述第一有效逻辑地址表于所述动态随机存取存储器中;
从所述第一有效数据标记表中识别为所述第一位元值的一或多个第一标记值,并且从所述第一实体单元中识别对应所述一或多个第一标记值的一或多个第一实体子单元及对应的一或多个第一实体地址;
根据所述一或多个第一标记值从所述第一有效逻辑地址表中识别对应所述一或多个第一标记值的一或多个有效逻辑地址;
根据所述一或多个有效逻辑地址从所述第一逻辑转实体表中查找所记录的分别对应所述一或多个有效逻辑地址的一或多个第二实体地址;以及
将所述一或多个第一实体地址分别取代所述第一逻辑转实体表中的所述一或多个第二实体地址。
6.一种存储控制器,用于控制配置有一可复写式非易失性存储器模块的一存储装置,其特征在于,所述可复写式非易失性存储器模块具有多个实体单元,其中所述可复写式非易失性存储器模块具有多个实体单元,并且所述多个实体单元的每一个实体单元包括多个实体子单元,所述存储控制器包括:
存储器接口控制电路,用以耦接至所述可复写式非易失性存储器模块;以及
处理器,耦接至所述存储器接口控制电路,
其中所述处理器用以根据所述多个实体单元中的一目标实体单元、对应所述可复写式非易失性存储器模块的一逻辑转实体表与对应所述目标实体单元的一目标实体转逻辑表建立对应所述目标实体单元的一有效数据标记表与一有效逻辑地址表,其中所述目标实体转逻辑表根据所述目标实体单元的多个目标实体子单元的排列顺序记录所述多个目标实体子单元所映射的多个目标逻辑子单元的目标逻辑地址,并且所述多个目标逻辑地址分别对应所述多个目标实体子单元的多个目标实体地址,
其中所建立的所述有效数据标记表记录分别对应所述多个目标逻辑地址的多个标记值,其中所述多个标记值的每一个标记值为一第一位元值或一第二位元值,其中所述第一位元值用以指示所对应的目标逻辑地址是有效,并且所述第二位元值用以指示所对应的目标逻辑地址是无效,
其中所建立的所述有效逻辑地址表仅根据所述有效数据标记表的一或多个第一位元值的顺序记录分别对应所述一或多个第一位元值的一或多个有效目标逻辑地址,其中所述一或多个有效目标逻辑地址为所述多个目标逻辑地址中被判定为有效的目标逻辑地址,其中所述有效数据标记表小于所述有效逻辑地址表,并且所述有效逻辑地址表小于所述目标实体转逻辑表,
其中所述处理器还用以根据所述逻辑转实体表、对应所述目标实体单元的所述有效数据标记表与所述有效逻辑地址表来识别存储在所述目标实体单元的一或多个有效数据。
7.根据权利要求6所述的存储控制器,其特征在于,
所述处理器即时地记录所述多个实体单元的每一个实体单元中用以存储有效数据的一或多个有效实体子单元的数目为对应所述每一个实体单元的有效数据数于一静态随机存取存储器或一动态随机存取存储器中,其中对应所述可复写式非易失性存储器模块的所述逻辑转实体表被维护于所述动态随机存取存储器中,并且所述有效数据标记表被维护于所述静态随机存取存储器,
其中在上述处理器用以根据所述多个实体单元中的所述目标实体单元、对应所述可复写式非易失性存储器模块的所述逻辑转实体表与对应所述目标实体单元的所述目标实体转逻辑表建立对应所述目标实体单元的所述有效数据标记表与所述有效逻辑地址表的运作中,
当对应所述目标实体单元的所述有效数据标记表与所述有效逻辑地址表不存在且所述目标实体单元的有效数据数小于一第一门槛值时,所述处理器根据所述逻辑转实体表与对应所述目标实体单元的所述目标实体转逻辑表建立所述有效数据标记表与所述有效逻辑地址表;
当对应所述目标实体单元的所述有效数据标记表与所述有效逻辑地址表已存在且所述目标实体单元的所述有效数据数小于一第二门槛值时,所述处理器根据所述逻辑转实体表与对应所述目标实体单元的所述目标实体转逻辑表建立所述有效数据标记表与所述有效逻辑地址表,其中所述第二门槛值小于所述第一门槛值。
8.根据权利要求7所述的存储控制器,其特征在于,所述处理器根据所述逻辑转实体表与对应所述目标实体单元的所述目标实体转逻辑表建立所述有效数据标记表与所述有效逻辑地址表的运作中,所述处理器执行下列步骤:
(1)若所述多个目标逻辑地址中具有尚未被选择的一或多个目标逻辑地址,从所述尚未被选择的一或多个目标逻辑地址中根据一预定顺序来选择对应一第一目标实体子单元的一第一目标逻辑地址,并且识别所述第一目标实体子单元的一第一目标实体地址,其中若所述多个目标逻辑地址中不具有尚未被选择的一或多个目标逻辑地址,从所述动态随机存取存储器中删除所述目标实体转逻辑表,并且完成所述有效数据标记表与所述有效逻辑地址表的建立;
(2)根据所述第一目标逻辑地址从所述逻辑转实体表所记录的多个实体地址中查找一第一实体地址;
(3)判断所述第一实体地址是否等于所述第一目标实体地址,其中当判定所述第一实体地址等于所述第一目标实体地址时,执行步骤(4),其中当判定所述第一实体地址不等于所述第一目标实体地址时,执行步骤(5);
(4)判定所述第一目标逻辑地址是有效,将所述有效数据标记表中对应所述第一目标逻辑地址的一第一标记值记录为所述第一位元值,附加所述第一目标逻辑地址至所述有效逻辑地址表,并且重新执行步骤(1);以及
(5)判定所述第一目标逻辑地址是无效,将所述有效数据标记表中对应所述第一目标逻辑地址的所述第一标记值记录为所述第二位元值,不附加所述第一目标逻辑地址至所述有效逻辑地址表,并且重新执行步骤(1)。
9.根据权利要求6所述的存储控制器,其特征在于,所述有效数据标记表的所述多个标记值分别对应所述多个目标实体子单元,其中在上述根据对应所述可复写式非易失性存储器模块的所述逻辑转实体表、对应所述目标实体单元的所述有效数据标记表与所述有效逻辑地址表来识别存储在所述目标实体单元的所述一或多个有效数据的运作中,所述处理器执行下列步骤:
(1)识别所述有效数据标记表的所述多个标记值中为所述第一位元值的一或多个有效数据标记值,其中若所述有效数据标记表的所述多个标记值都为所述第二位元值,判定所述目标实体单元没有存储任何有效数据;
(2)仅识别所述一或多个有效数据标记值中尚未被选择的一或多个第一有效数据标记值,从所述一或多个第一有效数据标记值中根据一预定顺序来选择对应一第二目标实体子单元的一第二有效数据标记值,并且识别所述第二目标实体子单元的一第二目标实体地址,其中若所述一或多个有效数据标记值中不具有尚未被选择的所述一或多个第一有效数据标记值,完成存储在所述目标实体单元的所述一或多个有效数据的识别;
(3)根据所述第二有效数据标记值于所述一或多个有效数据标记值中的排序来从所述有效逻辑地址表查找对应所述第二有效数据标记值的一有效逻辑地址;
(4)根据对应所述第二有效数据标记值的所述有效逻辑地址从所述逻辑转实体表所记录的多个实体地址查找一第二实体地址;
(5)判断所述第二实体地址是否等于所述第二目标实体地址,其中当判定所述第二实体地址等于所述第二目标实体地址时,执行步骤(6),其中当判定所述第二实体地址不等于所述第二目标实体地址时,执行步骤(7);
(6)判定存储在所述第二目标实体子单元的数据为有效数据,并且重新执行步骤(2);以及
(7)判定存储在所述第二目标实体子单元的数据为无效数据,并且重新执行步骤(2)。
10.根据权利要求6所述的存储控制器,其特征在于,
所述处理器还用以执行一恢复操作以恢复所述逻辑转实体表,其中所述恢复操作的步骤包括:
从所述可复写式非易失性存储器模块读取有效的一第一逻辑转实体表,并且存储所述第一逻辑转实体表于一动态随机存取存储器中;
所述处理器识别较所述第一逻辑转实体表新的一第一实体单元;
所述处理器从所述可复写式非易失性存储器模块的所述多个有效数据标记表中读取对应所述第一实体单元的一第一有效数据标记表,并且存储所述第一有效数据标记表于一静态随机存取存储器中;
所述处理器从存储于从所述多个有效逻辑地址表中读取对应所述第一实体单元的一第一有效逻辑地址表,并且存储所述第一有效逻辑地址表于所述动态随机存取存储器中;
所述处理器从所述第一有效数据标记表中识别为所述第一位元值的一或多个第一标记值,并且从所述第一实体单元中识别对应所述一或多个第一标记值的一或多个第一实体子单元及对应的一或多个第一实体地址;
所述处理器根据所述一或多个第一标记值从所述第一有效逻辑地址表中识别对应所述一或多个第一标记值的一或多个有效逻辑地址;
所述处理器根据所述一或多个有效逻辑地址从所述第一逻辑转实体表中查找所记录的分别对应所述一或多个有效逻辑地址的一或多个第二实体地址;以及
所述处理器将所述一或多个第一实体地址分别取代所述第一逻辑转实体表中的所述一或多个第二实体地址。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711189397.3A CN109840218B (zh) | 2017-11-24 | 2017-11-24 | 有效数据管理方法以及存储控制器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711189397.3A CN109840218B (zh) | 2017-11-24 | 2017-11-24 | 有效数据管理方法以及存储控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109840218A true CN109840218A (zh) | 2019-06-04 |
CN109840218B CN109840218B (zh) | 2023-08-01 |
Family
ID=66876099
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711189397.3A Active CN109840218B (zh) | 2017-11-24 | 2017-11-24 | 有效数据管理方法以及存储控制器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109840218B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111639041A (zh) * | 2020-05-29 | 2020-09-08 | 深圳宏芯宇电子股份有限公司 | 存储器控制方法、存储器存储装置及存储器控制器 |
CN112597073A (zh) * | 2020-12-28 | 2021-04-02 | 深圳忆联信息系统有限公司 | SLC block的搬移实现方法、装置、计算机设备及存储介质 |
CN113312065A (zh) * | 2021-06-06 | 2021-08-27 | 深圳市昂科技术有限公司 | 数据烧录方法、装置、终端及存储介质 |
CN113885779A (zh) * | 2020-07-02 | 2022-01-04 | 慧荣科技股份有限公司 | 数据处理方法及对应的数据储存装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050204187A1 (en) * | 2004-03-11 | 2005-09-15 | Lee Charles C. | System and method for managing blocks in flash memory |
US20070255924A1 (en) * | 2006-04-28 | 2007-11-01 | Moyer William C | Processor and method for altering address translation |
CN101661437A (zh) * | 2008-08-28 | 2010-03-03 | 国际商业机器公司 | 旁路转换缓冲器以及在其中进行地址匹配的方法和装置 |
TW201217968A (en) * | 2010-10-29 | 2012-05-01 | Phison Electronics Corp | Data writing method, memory controller and memory storage apparatus |
CN105824759A (zh) * | 2014-10-31 | 2016-08-03 | 慧荣科技股份有限公司 | 数据储存装置以及快闪存储器控制方法 |
CN106469122A (zh) * | 2015-08-14 | 2017-03-01 | 群联电子股份有限公司 | 有效数据合并方法、存储器控制器与存储器储存装置 |
-
2017
- 2017-11-24 CN CN201711189397.3A patent/CN109840218B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050204187A1 (en) * | 2004-03-11 | 2005-09-15 | Lee Charles C. | System and method for managing blocks in flash memory |
US20070255924A1 (en) * | 2006-04-28 | 2007-11-01 | Moyer William C | Processor and method for altering address translation |
CN101661437A (zh) * | 2008-08-28 | 2010-03-03 | 国际商业机器公司 | 旁路转换缓冲器以及在其中进行地址匹配的方法和装置 |
TW201217968A (en) * | 2010-10-29 | 2012-05-01 | Phison Electronics Corp | Data writing method, memory controller and memory storage apparatus |
CN105824759A (zh) * | 2014-10-31 | 2016-08-03 | 慧荣科技股份有限公司 | 数据储存装置以及快闪存储器控制方法 |
CN106469122A (zh) * | 2015-08-14 | 2017-03-01 | 群联电子股份有限公司 | 有效数据合并方法、存储器控制器与存储器储存装置 |
Non-Patent Citations (3)
Title |
---|
SEHWAN LEE: "A Demand-Based FTL Scheme Using Dualistic Approach on Data Blocks and Translation Blocks", 《2011 IEEE 17TH INTERNATIONAL CONFERENCE ON EMBEDDED AND REAL-TIME COMPUTING SYSTEMS AND APPLICATIONS》 * |
杜晨杰: "基于NAND闪存的固态盘关键技术研究", 《中国优秀硕士学位论文全文数据库》 * |
白石等: "GFTL:一种基于页组映射的低能耗闪存转换层", 《中国科技论文在线》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111639041A (zh) * | 2020-05-29 | 2020-09-08 | 深圳宏芯宇电子股份有限公司 | 存储器控制方法、存储器存储装置及存储器控制器 |
CN113885779A (zh) * | 2020-07-02 | 2022-01-04 | 慧荣科技股份有限公司 | 数据处理方法及对应的数据储存装置 |
CN113885779B (zh) * | 2020-07-02 | 2024-03-12 | 慧荣科技股份有限公司 | 数据处理方法及对应的数据储存装置 |
CN112597073A (zh) * | 2020-12-28 | 2021-04-02 | 深圳忆联信息系统有限公司 | SLC block的搬移实现方法、装置、计算机设备及存储介质 |
CN113312065A (zh) * | 2021-06-06 | 2021-08-27 | 深圳市昂科技术有限公司 | 数据烧录方法、装置、终端及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109840218B (zh) | 2023-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100823171B1 (ko) | 파티션된 플래시 변환 계층을 갖는 컴퓨터 시스템 및플래시 변환 계층의 파티션 방법 | |
KR102289919B1 (ko) | 스토리지 컨트롤러, 스토리지 장치, 스토리지 시스템 및 상기 스토리지 컨트롤러의 동작 방법 | |
CN106681654B (zh) | 映射表载入方法与存储器存储装置 | |
US8250286B2 (en) | Block management method, and storage system and controller using the same | |
US10101914B2 (en) | Memory management method, memory control circuit unit and memory storage device | |
CN107844431A (zh) | 映射表更新方法、存储器控制电路单元与存储器存储装置 | |
CN108021510A (zh) | 操作对多重名称空间进行管理的存储装置的方法 | |
CN109840218A (zh) | 有效数据管理方法以及存储控制器 | |
US20190087348A1 (en) | Data backup method, data recovery method and storage controller | |
CN107665091B (zh) | 数据读取方法、数据写入方法及其存储控制器 | |
CN104765569B (zh) | 数据写入方法、存储器控制电路单元与存储器储存装置 | |
WO2011095516A1 (en) | Method and system for mass storage on flash memory | |
CN109582593A (zh) | 一种基于计算的ftl地址映射方法及数据读、写方法 | |
CN107402716A (zh) | 数据写入方法、内存控制电路单元与内存储存装置 | |
CN108733577A (zh) | 存储器管理方法、存储器控制电路单元及存储器存储装置 | |
CN110377233A (zh) | Ssd读性能优化方法、装置、计算机设备及存储介质 | |
WO2021035555A1 (zh) | 一种固态硬盘的数据存储方法、装置及固态硬盘ssd | |
CN106708416A (zh) | 数据重建方法与系统及其存储器控制电路单元 | |
CN107590080A (zh) | 映射表更新方法、存储器控制电路单元及存储器存储装置 | |
TWI677790B (zh) | 有效資料管理方法以及儲存控制器 | |
CN107544922A (zh) | 数据写入方法、存储器控制电路单元及存储器存储装置 | |
CN106951186A (zh) | 数据程序化方法、存储器存储装置及存储器控制电路单元 | |
CN105988950B (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
CN107346211A (zh) | 映射表加载方法、内存控制电路单元与内存储存装置 | |
US11334273B1 (en) | Valid data merging method, memory storage device and memory control circuit unit |
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 |