CN114115706A - 记忆装置、快闪存储器控制器及其存取方法 - Google Patents
记忆装置、快闪存储器控制器及其存取方法 Download PDFInfo
- Publication number
- CN114115706A CN114115706A CN202110203433.7A CN202110203433A CN114115706A CN 114115706 A CN114115706 A CN 114115706A CN 202110203433 A CN202110203433 A CN 202110203433A CN 114115706 A CN114115706 A CN 114115706A
- Authority
- CN
- China
- Prior art keywords
- flash memory
- block
- time
- write
- memory controller
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 41
- 230000002159 abnormal effect Effects 0.000 claims description 9
- 230000008569 process Effects 0.000 description 17
- 238000004064 recycling Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 12
- 238000007667 floating Methods 0.000 description 5
- 238000011084 recovery Methods 0.000 description 5
- 238000012937 correction Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明涉及记忆装置、快闪存储器控制器及其存取方法,尤其涉及一种应用于一快闪存储器控制器的控制方法,包含有:当数据写入至一快闪存储器模组的任一区块的一数据页时,在该数据页记录一写入时间;建立一写入时间记录表,其中该写入时间记录表记录了该快闪存储器模组中有数据写入的区块的区块编号及对应的该写入时间;对该写入时间记录表进行压缩以产生一压缩后写入间记录表,其中该压缩后写入时间记录表包含了多个时间范围及对应的索引值,其中每一个索引值对应到该快闪存储器模组的一数据页,且该数据页记录了该写入时间位于对应的时间范围的所有区块的区块编号。
Description
技术领域
本发明有关于快闪存储器控制器及相关的控制方法。
背景技术
随着立体快闪存储器技术的发展,快闪存储器芯片内堆迭的层数越来越多,再加上目前的快闪存储器模组内会包含许多采用三层式储存(Triple-Level Cell,TLC)或是四层式储存(Quad-Level Cell,QLC)的区块,因此,快闪存储器内所储存的数据的品质越来越差,甚至在数据写入后数周后便品质快速下滑而造成后续解码上的困难或甚至无法读取。为了解决此一问题,快闪存储器控制器可以利用空闲的时间读取快闪存储器模组内每一个区块的部分内容,以判断出每一个区块的品质,然而,上述方法会耗费大量的时间,且若是快闪存储器控制器常常处于忙碌状态时会无法兼顾存取效率与区块品质。
发明内容
因此,本发明的目的之一在于提出一种快闪存储器控制器与相关的控制方法,其可以有效率地对快闪存储器模组内品质可能有问题的区块预先做处理,以解决先前技术中所述的问题。
在本发明的一个实施例中,揭露了一种应用于一快闪存储器控制器的控制方法,其中该快闪存储器控制器用以存取一快闪存储器模组,该快闪存储器模组包含了多个区块,且每一个区块包含了多个数据页,以及该控制方法包含有:当数据写入至该快闪存储器模组的任一区块的一数据页时,在该数据页记录一写入时间;建立一写入时间记录表,其中该写入时间记录表记录了该快闪存储器模组中有数据写入的区块的区块编号及对应的该写入时间;对该写入时间记录表进行压缩以产生一压缩后写入间记录表,其中该压缩后写入时间记录表包含了多个时间范围及对应的索引值,其中每一个索引值对应到该快闪存储器模组的一数据页,且该数据页记录了该写入时间位于对应的时间范围的所有区块的区块编号及该写入时间;根据该控制方法在执行当下的时间来决定出该压缩后写入间记录表内该多个时间范围的一特定时间范围,并根据该特定时间范围所对应的索引值以自该快闪存储器模组中读取多个区块编号及对应的写入时间;在一过期区块表中记录该多个区块编号中的至少一部分区块编号;以及根据该过期区块表所记录的该至少一部分区块编号,以依序将具有该至少一部分区块编号的区块内的有效数据搬移至至少一空白区块中。
在本发明的另一个实施例中,揭露了一种快闪存储器控制器,其中该快闪存储器控制器是用来存取一快闪存储器模组,且该快闪存储器控制器包含有一只读存储器、一微处理器以及一缓冲存储器。该当该微处理器将数据写入至该快闪存储器模组的任一区块的一数据页时,在该数据页记录一写入时间,并建立一写入时间记录表,其中该写入时间记录表记录了该快闪存储器模组中有数据写入的区块的区块编号及对应的该写入时间;以及该微处理器对该写入时间记录表进行压缩以产生一压缩后写入间记录表,其中该压缩后写入时间记录表包含了多个时间范围及对应的索引值,其中每一个索引值对应到该快闪存储器模组的一数据页,且该数据页记录了该写入时间位于对应的时间范围的所有区块的区块编号及该写入时间;该微处理器根据该控制方法在执行当下的时间来决定出该压缩后写入间记录表内该多个时间范围的一特定时间范围,并根据该特定时间范围所对应的索引值以自该快闪存储器模组中读取多个区块编号及对应的写入时间;该微处理器在一过期区块表中记录该多个区块编号中的至少一部分区块编号,并根据该过期区块表所记录的该至少一部分区块编号,以依序将具有该至少一部分区块编号的区块内的有效数据搬移至至少一空白区块中。
在本发明的另一个实施例中,揭示了一种记忆装置,其包含有一快闪存储器模组以及一快闪存储器控制器。当该快闪存储器控制器将数据写入至该快闪存储器模组的任一区块的一数据页时,在该数据页记录一写入时间,并建立一写入时间记录表,其中该写入时间记录表记录了该快闪存储器模组中有数据写入的区块的区块编号及对应的该写入时间;以及该快闪存储器控制器对该写入时间记录表进行压缩以产生一压缩后写入间记录表,其中该压缩后写入时间记录表包含了多个时间范围及对应的索引值,其中每一个索引值对应到该快闪存储器模组的一数据页,且该数据页记录了该写入时间位于对应的时间范围的所有区块的区块编号及该写入时间;以及该快闪存储器控制器根据该控制方法在执行当下的时间来决定出该压缩后写入间记录表内该多个时间范围的一特定时间范围,并根据该特定时间范围所对应的索引值以自该快闪存储器模组中读取多个区块编号及对应的写入时间;该快闪存储器控制器在一过期区块表中记录该多个区块编号中的至少一部分区块编号,并根据该过期区块表所记录的该至少一部分区块编号,以依序将具有该至少一部分区块编号的区块内的有效数据搬移至至少一空白区块中。
附图说明
图1为依据本发明一实施例的一种记忆装置的示意图。
图2为依据本发明一实施例的快闪存储器模组中一区块的示意图。
图3所示为根据本发明一实施例的建立一写入时间记录表的流程图。
图4所示的在区块中写入时间资讯的示意图。
图5为根据本发明一实施例的写入时间记录表的示意图。
图6A为根据本发明一实施例的压缩后写入时间记录表的示意图。
图6B中为本发明一实施例的目前写入区块表与过期回收区块索引表的示意图。
图6C中为本发明另一实施例的过期回收区块索引表的示意图。
图7为根据本发明一实施例的更新压缩后写入时间记录表的流程图。
图8为更新专属区块中区块的时间资讯的示意图。
图9所示的根据本发明一实施例的记忆装置上电后在DRAM中建立出写入时间记录表的流程图。
图10为根据本发明一实施例的进行过期区块回收操作的流程图。
符号说明
100:记忆装置
110:快闪存储器控制器
112:微处理器
112C:程序码
112M:只读存储器
114:控制逻辑
116:缓冲存储器
118:接口逻辑
120:快闪存储器模组
130:主装置
132:编码器
134:解码器
140:动态随机存取存储器
200:区块
300~308:步骤
500:写入时间记录表
600:压缩后写入时间记录表
630:目前写入区块表
632:过期回收区块索引表
652:过期回收区块索引表
700~712:步骤
900~912:步骤
1000~1010:步骤
B1,B2,B200,B201,B202:区块
BL1,BL2,BL3:位元线
P1~P256:数据页
T1_1,T1_M,T2_1,T2_M:时间资讯
WL0~WL2,WL4~WL6:字元线
具体实施方式
图1为依据本发明一实施例的一种记忆装置100的示意图。电子装置100包含有一快闪存储器(Flash Memory)模组120以及一快闪存储器控制器110,且快闪存储器控制器110用来存取快闪存储器模组120。依据本实施例,快闪存储器控制器110包含一微处理器112、一只读存储器(Read Only Memory,ROM)112M、一控制逻辑114、一缓冲存储器116、与一接口逻辑118。只读存储器112M是用来储存一程序码112C,而微处理器112则用来执行程序码112C以控制对快闪存储器模组120的存取(Access)。控制逻辑114包含了一编码器132以及一解码器134,其中编码器132用来对写入到快闪存储器模组120中的数据进行编码以产生对应的校验码(或称,错误更正码(Error Correction Code),ECC),而解码器134用来将从快闪存储器模组120所读出的数据进行解码。
于典型状况下,快闪存储器模组120包含了多个快闪存储器芯片,而每一个快闪存储器芯片包含复数个区块(block),而快闪存储器控制器110对快闪存储器模组120进行抹除数据运作是以区块为单位来进行。另外,一区块可记录特定数量的数据页(page),其中快闪存储器控制器110对快闪存储器模组120进行写入数据的运作是以数据页为单位来进行写入。在本实施例中,快闪存储器模组120为一立体NAND型快闪存储器(3D NAND-typeflash)模组。
实作上,透过微处理器112执行程序码112C的快闪存储器控制器110可利用其本身内部的元件来进行诸多控制运作,例如:利用控制逻辑114来控制快闪存储器模组120的存取运作(尤其是对至少一区块或至少一数据页的存取运作)、利用缓冲存储器116进行所需的缓冲处理、以及利用接口逻辑118来与一主装置(Host Device)130沟通。缓冲存储器116是以随机存取存储器(Random Access Memory,RAM)来实施。例如,缓冲存储器116可以是静态随机存取存储器(Static RAM,SRAM),但本发明不限于此。此外,快闪存储器控制器110耦接于一动态随机存取存储器(Dynamic Random Access Memory,DRAM)140。请注意到,DRAM140亦可包含于快闪存储器控制器110之内,例如与快闪存储器控制器110存在于相同的封装之中。
在一实施例中,记忆装置100可以是可携式记忆装置(例如:符合SD/MMC、CF、MS、XD标准的记忆卡),且主装置130为一可与记忆装置100连接的电子装置,例如手机、笔记型电脑、桌上型电脑…等等。而在另一实施例中,记忆装置100可以是固态硬碟或符合通用快闪存储器储存(Universal Flash Storage,UFS)或嵌入式多媒体记忆卡(Embedded MultiMedia Card,EMMC)规格的嵌入式储存装置,且可以设置在手机、笔记型电脑、桌上型电脑之中,而此时主装置130可以是手机、笔记型电脑、桌上型电脑的一处理器。
图2为依据本发明一实施例的快闪存储器模组120中一区块200的示意图,其中快闪存储器模组120为立体NAND型快闪存储器。如图2所示,区块200包含了多个记忆单元(例如图示的浮闸晶体管202或是其他的电荷捕捉(charge trap)元件),其透过多条位元线(图示仅绘示了BL1~BL3)及多条字元线(例如图示WL0~WL2、WL4~WL6)来构成立体NAND型快闪存储器架构。在图2中,以最上面的一个平面为例,字元线WL0上的所有浮闸晶体管构成了至少一数据页,字元线WL1上的所有浮闸晶体管构成了另至少一数据页,而字元线WL2的所有浮闸晶体管构成了再另至少一数据页…以此类堆。此外,根据快闪存储器写入方式的不同,字元线WL0与数据页(逻辑数据页)之间的定义也会有所不同,详细来说,当使用单层式储存(Single-Level Cell,SLC)的方式写入时,字元线WL0上的所有浮闸晶体管仅对应到单一逻辑数据页;当使用双层式储存(Multi-Level Cell,MLC)的方式写入时,字元线WL0上的所有浮闸晶体管对应到两个逻辑数据页;当使用三层式储存(TLC)的方式写入时,字元线WL0上的所有浮闸晶体管对应到三个逻辑数据页;以及当使用四层式储存(QLC)的方式写入时,字元线WL0上的所有浮闸晶体管对应到四个逻辑数据页。由于本技术领域中具有通常知识者应能了解立体NAND型快闪存储器的结构以及字元线及数据页之间的关系,故相关的细节在此不予赘述。
图3所示为根据本发明一实施例的建立一写入时间记录表的流程图。在步骤300,流程开始,快闪存储器控制器110上电并完成了初始化操作。在步骤302,快闪存储器控制器110自快闪存储器模组120的多个空白区块中选择一区块,准备将来自主装置130的数据写入至该区块之中。在步骤304,快闪存储器控制器110将数据由该区块的第一数据页开始写入,并至少在数据写入第一数据页时将对应的时间资讯(亦即,写入时间)写入至备用区域中。具体来说,参考图4所示的快闪存储器模组120的示意图,假设区块B1包含了多个数据页P1~P256,快闪存储器控制器110将数据自区块B1的第一个数据页P1开始依序写入来自主装置130的数据,其中当快闪存储器控制器110准备将数据写入到数据页P1时,快闪存储器控制器110会同时撷取目前的时间资讯T1_1,例如可以由内建的计时器或是来自主装置130的绝对时间(例如,2020年5月11日下午2点)来产生对应的时间资讯,并将来自主装置的数据与相关的时间资讯T1_1一并写入到数据页P1中,其中时间资讯T1_1可以写入至位于数据页P1后端的备用区域中。
在一实施例中,快闪存储器控制器110也可以数据写入至中间数据页时将对应的时间资讯写入至备用区域中。具体来说,当快闪存储器控制器110准备将数据写入到中间数据页P128时,快闪存储器控制器110会同时撷取目前的时间资讯T1_M并将来自主装置的数据与相关的时间资讯T1_M一并写入到数据页P128中,其中时间资讯T1_M可以写入至位于数据页P128后端的备用区域中。需注意的是,第一个数据页P1与中间数据页P128之间的数据页P2~P127可以不需要写入任何的时间资讯,以降低快闪存储器控制器110的负担。需注意的是,上述的数据页的备用区域也可称为管理区域,亦即用来储存一些管理数据,例如逻辑地址…等等。
需注意的是,在图4的实施例中,是以数据页P128来作为中间数据页,但此仅是范例说明而非是本发明的限制。在其他的实施例中,也可以使用数据页P127来作为中间数据页、或是同时使用数据页P127、P128来做为中间数据页。此外,在另一实施例中,中间数据页的数量可以是多个数据页,例如,数据页P126、P127、P128、P129这四个数据页都作为本实施例中所述的多个中间数据页,亦即数据页P126、P127、P128、P129的备用区域都储存了对应的时间资讯。
接着,快闪存储器控制器110依序将数据写入到数据页P129、P130、…、直到当快闪存储器控制器110准备将数据写入到最后数据页(即,数据页P256)时,快闪存储器控制器110至少会将先前数据页P1的时间资讯T1_1连同来自主装置130的数据一并写入到数据页P256中,其中时间资讯T1_M可以写入至位于数据页P256后端的备用区域中。在一实施例中,如图4所示,快闪存储器控制器110会将第一个数据页P1的时间资讯T1_1以及中间数据页P128的时间资讯T1_M连同来自主装置130的数据一并写入到数据页P256中。
在步骤306中,在区块B1进行数据写入的过程中,快闪存储器控制器110会同步在DRAM 140中建立如图5所示的写入时间记录表500,亦即,写入时间记录表500至少会记录区块编号B1及对应的时间资讯T1_1,而在一实施例中,写入时间记录表500会记录区块编号B1及对应的时间资讯T1_1、T1_M。需注意的是,写入时间记录表500所记录的是第一个数据页P1的时间资讯T1_1以及中间数据页(例如,数据页P128)的时间资讯T1_M,而若是如先前段落中所述每一个区块有设定多个中间数据页时,例如数据页P126、P127、P128、P129这四个数据页同时作为中间数据页时,则写入时间记录表500可以根据数据页P126、P127、P128、P129所记录的多个时间资讯来产生中间数据页的单一个时间资讯,例如将数据页P126、P127、P128、P129所记录的多个时间资讯做平均或是取中间值,来得到中间数据页所对应的单一个时间资讯。
需注意的是,针对某些不具有DRAM 140的记忆装置,上述的写入时间记录表500也可以被储存在缓冲存储器116中。
在步骤308,微处理器112判断目前区块B1的所有数据页是否已都写满数据,若否,流程回到步骤304以继续将数据写入到区块B1的剩余数据页;若是,流程回到步骤302以选择下一个空白区块,例如图4所示的区块B2,接着,类似快闪存储器控制器110对区块B1的数据写入流程,当快闪存储器控制器110准备将数据写入到区块B2的数据页P1时,快闪存储器控制器110会同时撷取目前的时间资讯T2_1,并将来自主装置的数据与相关的时间资讯T2_1一并写入到区块B2的数据页P1中;当快闪存储器控制器110准备将数据写入到区块B2的数据页P128时,快闪存储器控制器110会同时撷取目前的时间资讯T2_M,并将来自主装置的数据与相关的时间资讯T2_M一并写入到区块B2的数据页P128中;以及当快闪存储器控制器110准备将数据写入到数据页P256时,快闪存储器控制器110会将先前数据页P1的时间资讯T2_1以及数据页P128的时间资讯T2_M连同来自主装置130的数据一并写入到数据页P256中。此外,微处理器112会更新写入时间记录表500以记录区块编号B2及对应的时间资讯T2_1、T2_M。
每当快闪存储器模组120内有空白区块开始进行数据写入时,微处理器112都会更新写入时间记录表500,亦即写入时间记录表500至少记录了快闪存储器模组120中每一个区块的第一个数据页P1的时间资讯,而在一实施例中写入时间记录表500也会记录中间数据页(例如数据页P128)的时间资讯。
此外,写入时间记录表500会常驻在DRAM 140,以方便后续进行过期区块判断或垃圾收集(garbage collection)操作时使用,而当记忆装置100需要关闭电源时,微处理器112会先将写入时间记录表500写入至快闪存储器模组120中,并等待记忆装置100上电后重新读取快闪存储器模组120中的写入时间记录表500,并载入DRAM 140以供后续使用。
由于在快闪存储器模组120采用具有多层堆迭架构的快闪存储器芯片时会具有很差的数据保存时间,亦即数据写入后数周后(例如2~3周后)便品质快速下滑而造成后续解码上的困难或甚至无法读取,因此,以上实施例的写入时间记录表500可以用来快速地供微处理器112得知区块的品质,以对这些写入时间过长的区块进行过期区块回收操作,以避免区块内的数据因为长时间储存而导致数据流失。
此外,在某些应用中,快闪存储器模组120会具有数千个区块、再加上频繁的写入,因此,写入时间记录表500会需要记录许多区块编号与相关的时间资讯,因而严重消耗DRAM140的储存空间。此外,若是记忆装置100不具有DRAM 140而使得写入时间记录表500需要储存在缓冲存储器116中,则此时由于缓冲存储器116通常使用较贵的SRAM来实作且容量通常不会太大,因此更会造成缓冲存储器116在存储器配置上的麻烦。如上所述,在以下的实施例中另外提出了一种写入时间记录表500的压缩方法,其可以将写入时间记录表500的大部分内容写入至快闪存储器模组120的区块中,以降低储存在DRAM 140或缓冲存储器116的写入时间记录表500的大小。
举例来说,参考图6A所示的压缩后写入时间记录表600的示意图,其中压缩后写入时间记录表600可以透过将写入时间记录表600进行简化压缩而来。在图6A中,压缩后写入时间记录表600包含了多个时间范围及对应的至少一数据页地址,其中多个时间范围可以是任意适合的时间范围,较佳的范围可以是半日至两日之间,而在本实施例中时间范围是以一天为单位。在图6A的实施例中,微处理器112会依序或周期性地将写入时间记录表500中的区块编号及对应的时间资讯写入到快闪存储器模组120的区块中,以图6A的时间范围是今日的状况来说明,当快闪存储器控制器110将数据写入至快闪存储器模组120的多个区块,并同步建立写入时间记录表500。若时间记录表500的数据量达到快闪存储器一个数据页的数据量,微处理器112可将写入时间记录表500中所记录的区块编号及对应的时间资讯写入到区块B200的数据页P25中,也可以仅记录区块编号而不记录对应的时间资讯,而压缩后写入时间记录表600便记录区块B200的数据页P25的实体数据页地址"PPA200025",请注意到,储存在DRAM 140的压缩后写入时间记录表600可以视为一个索引,这个索引可以让微处理器112很便利的查到实际储存时间记录表500的实体区块页地址,之后微处理器112就可以再根据所查询到的实体数据页地址"PPA200025"读取到写入时间记录表500的完整内容;此外,由于区块B200的数据页P25以记录了写入时间记录表500的内容,故微处理器112便可以将写入时间记录表500中的相关数据删除,以释放出存储器空间。同理,图6A所示的时间范围为"昨日"所记录的数据页地址"PPA201046"对应到区块B201的数据页P46,且区块B201的数据页P46记录了昨日写入的区块及对应的时间资讯;同理,图6A所示的时间范围为"前天"所记录的数据页地址"PPA202037"对应到区块B202的数据页P37,且区块B202的数据页P37记录了前天写入的区块及对应的时间资讯。因此,由于图5所示的写入时间记录表500中的内容可以储存在快闪存储器模组120中,且压缩后写入时间记录表600仅需要记录快闪存储器模组120中的一些数据页地址,因此可以有效地降低写入时间记录表500对于存储器空间的负担。
在实作上,压缩后写入时间记录表600中的"今日"、"昨日"、"前天"是一个绝对的时间范围,例如"今日"为2020年5月21日00:00~24:00、"昨日"为2020年5月20日00:00~24:00、而"前天"为2020年5月19日00:00~24:00。
此外,为了方便区块及数据页的管理,压缩后写入时间记录表600中的每一个时间范围对应到一个专属的区块,例如前天(2天前)进行数据写入的所有区块的区块编号与时间资讯都被写入到区块B202、昨日(1天前)进行数据写入的所有区块的区块编号与时间资讯都被写入到区块B201、今日进行数据写入的所有区块的区块编号与时间资讯都被写入到区块B200、…以此类推。此外,上述专属区块不会被拿来储存其他数据。若利用专属区块进行记录,则可以进一步精简所需要记录的内容,请参考图6B,图6B中包含了可以做为压缩后写入时间记录表之一范例的目前写入区块表630与过期回收区块索引表632。过期回收区块索引表632与目前写入区块表630可存在于DRAM 140中,目前写入区块表630包含了时间范围与目前写入区块的栏位,过期回收区块索引表632包含了时间范围栏位、专属实体区块编号栏位与实体数据页编号栏位。目前写入区块表630的时间范围栏位可以固定为今天,该栏位亦可省略,仅依据排序判定时间费为,例如第一个是今天,第二个是1天前,第三个是2天前…等,进一步节省所需存储器空间。目前写入区块表630是用来储存快闪存储器控制器110在一特定时间范围(例如今天)所写入的实体区块编号,例如图6B所示,今天写入区块B123、区块B234、区块B345、区块B666等。当目前写入区块表630所记录的数据量已经凑满一个快闪存储器的写入单位(例如一数据页)时,则快闪存储器控制器110会将该些数据写入快闪存储器模组120中,并在写入成功之后,清除目前写入区块栏位中的内容。快闪存储器控制器110可将区块B123、区块B234、区块B345、区块B666等区块编号写入今天所专属的实体区块B200的第四页P004中,并更新过期回收区块索引表632中今天所对应的实体数据页编号栏位,将其更新为P001、P002、P003、P004。专属实体区块编号栏位代表某一特定时间所写入的区块,其区块编号应该储存的专属区块。例如今天所写入的区块,其区块编号应该储存在区块B200,1天前所写入的区块,其区块编号应该储存在区块B201。2天前所写入的区块,其区块编号应该储存在区块B202。而实体数据页编号栏位代表某一特定时间所写入的区块,其区块编号是储存于专属区块的特定数据页。例如今天所写入的区块的区块编号,是储存于区块B200的实体数据页P001、P002、P003、P004中。若今天写入更多区块,而目前写入区块表630所记录的数据量又凑满一个快闪存储器的一个数据页时,则该些区块编号应接续写入区块B200的实体数据页P005中,而快闪存储器控制器110更新过期回收区块索引表632中今天所对应的实体数据页编号栏位,将其更新为P001、P002、P003、P004、P005。
在一实施例中,快闪存储器控制器110可能会将曾经写入的区块抹除,例如抹除已经写入的区块B123、区块B234、区块B345。这些已经抹除的区块,就不需要再进行过期区块回收,因此,需要更新过期回收区块索引表632以及专属区块B200的内容。快闪存储器控制器110在抹除区块B123、区块B234、区块B345之前,可以根据区块B123、区块B234、区块B345的数据页P1或是中间页中所记录的写入时间,发现该些区块是于今天所写入,而再查找过期回收区块索引表632,发现今天所写入的区块是记录于专属实体区块B200的实体数据页P001、P002、P003、P004、P005之中。快闪存储器控制器110读取专属实体区块B200的实体数据页P001、P002、P003、P004、P005,取得今天写入的实体区块编号,将所读取的实体区块编号删去即将要被抹除的区块B123、区块B234、区块B345,再将剩余的实体区块编号写入专属实体区块B200的实体数据页P006、P007、P008、P009、P010中。快闪存储器控制器110更新过期回收区块索引表632的内容,更新今天所写入的区块编号,将今天所对应的实体数据页编号栏位的内容更新为P006、P007、P008、P009、P010。请注意到,倘若主机频繁的更新数据而导致专属区块B200写满不敷使用,则快闪存储器控制器110可以提取其他区块(例如区块B300)作为今天的专属区块,将原本区块B200中有用的数据写入新的专属区块B300中,并更新过期回收区块索引表632的内容,将今天所对应的专属区块更新为区块B300。相似地,其他时间范围的更新亦与今天的专属区块更新方式类似,在此不再赘述。
由于过期回收区块索引表632是记录单一个专属实体区块编号以及该专属实体区块的数据页编号,所以其所需的存储器空间会比压缩后写入时间记录表600中需要记录完整数据页地址更小。且因为其是利用专属区块记录某一特定时间范围写入的区块,在管理上更为方便,不论在写入上、更新上、查询上,都会更为简便。
在一实施例中,可进一步的精简过期回收区块索引表652所需的存储器空间,请参照图6C。图6C中包含了与过期回收区块索引表652。过期回收区块索引表652可存在于DRAM140中,过期回收区块索引表652包含了时间范围栏位、专属实体区块编号栏位与实体数据页编号栏位。过期回收区块索引表652的纪录与操作是与过期回收区块索引表632相似,主要的不同的处是在于过期回收区块索引表652的实体数据页编号栏位仅记录该专属实体区块中具有有效的资讯的数据页范围。例如今天所写入的区块是储存在专属实体区块B200的数据页P001至P004中。当快闪存储器控制器110要查询今天所写入的所有区块时,快闪存储器控制器110就可利用过期回收区块索引表652找到该些区块是储存在区块B200的数据页P001至P004中,快闪存储器控制器110就可以从区块B200的数据页P001至P004中读出今天所写入的所有区块编号。由于仅记录区块中具有有效的资讯的数据页范围,过期回收区块索引表652就可以更进一步地节省储存空间。请注意到,倘若仅需一页的空间即可记录所有该时间范围内所写入的区块,则可参考过期回收区块索引表652中13天前的纪录方式,记录数据页P100、P100,代表该区块中具有有效的资讯的数据页范围是数据页P100至数据页P100。
采用专属区块进行时间记录的一个好处是让过期区块回收变得更为简便,例如过期区块回收的演算法可以设计成将所有前天写入的区块全部进行回收,此时只需要根据过期回收区块索引表652找出将该专属区块中(例如前天所对应的专属区块)的实体数据页编号,读取该些数据页,该些数据页所记录的区块即为尚未回收的区块编号,然后对该些区块进行过期区块回收。
此外,由于快闪存储器模组120中的区块有可能被抹除而变为空白区块,因此,当微处理器112得知有区块被抹除时,便会更新快闪存储器模组120与压缩后写入时间记录表600的内容。具体来说,参考图7所示的更新压缩后写入时间记录表600与相关内容的流程图。在步骤700,流程开始。在步骤702,微处理器112判断快闪存储器模组120中是否有区块准备被抹除,若有,流程进入步骤704;若否,流程停在步骤702。在步骤704,微处理器112判断准备被抹除的区块是对应到图6A所示的哪一个时间范围,举例来说,微处理器112可以先读取准备被抹除的区块的第一个数据页所记录的时间资讯,以判断该区块是对应到哪一个时间范围。在以下的实施例中,为了方便说明,同时参考图8,假设微处理器112在时间范围为"昨日"时将数据写入至多个区块B60~B90,而区块(专属于"昨日"的区块)B201的数据页P46记录了区块B60~B90中每一个区块的时间资讯,例如区块B60~B90的每一个区块的第一个数据页的时间资讯。在本实施例中,是假设准备被抹除的区块为区块B71~B74。
在步骤706,根据步骤704所判断出的时间范围,微处理器112根据压缩后写入时间记录表600所记录的数据页地址来读取该时间范围所对应的专属区块的最后写入之一或多个数据页。在本实例中,微处理器112读取区块B201的最后写入的数据页P46,其中数据页P46记录了区块B60~B90中每一个区块的时间资讯,且微处理器112将区块B60~B90的时间资讯暂存至缓冲存储器116或是DRAM 140中。
在步骤708,微处理器112抹除区块B71~B74的内容或是将区块B71~B74标记为无效区块,接着微处理器112将区块B71~B74的时间资讯自缓冲存储器116或是DRAM 140中删除。
在步骤710,微处理器112将更新后的内容,亦即区块B60~B70、B75~90的时间资讯写入至区块B201的数据页P47,并记录区块B201的数据页P46的内容为无效数据。
在区块B201的数据页P47完成写入之后,在步骤712,微处理器112便更新压缩后写入时间记录表600的内容,亦即将图6A所示的对应到"昨日"的数据页地址"PPA201046"修改为区块B201的数据页P47的地址。之后,流程回到步骤702。
如上所述,透过图7所示的流程,可以让每一个时间范围所对应的专属区块最后写入之一或多个数据页的内容是最新的数据,而先前数据页所记录的内容则变为无效数据,以方便后续的管理。
此外,记忆装置100可能会因为各种不同的原因而造成突发性断电(suddenlypower off),而造成储存在DRAM 140中的压缩后写入时间记录表600遗失。因此,在记忆装置100重新上电之后,则需要重新在DRAM 140中建立出压缩后写入时间记录表600。具体来说,参考图9所示的根据本发明一实施例的记忆装置上电后在DRAM 140中建立出压缩后写入时间记录表600的流程图。在步骤900,流程开始,且记忆装置100上电并开始初始化操作。在步骤902,微处理器112判断记忆装置100在上电之前的断电是否是不正常断电(突发性断电),若否,流程进入步骤904以自快闪存储器模组120读取压缩后写入时间记录表600并暂存在DRAM 140中;若是,流程进入步骤906。举例来说,当记忆装置100在正常关机/断电的情形下,快闪存储器控制器110会将储存在缓冲存储器116及DRAM 140中的多个暂存表格(包含压缩后写入时间记录表600)及数据储存到快闪存储器模组120中,且其中包含了一个用来标示记忆装置100是否正常关机的标签(flag),因此,快闪存储器控制器110在上电后可以透过读取储存在快闪存储器模组120中的上述标签来判断记忆装置100之前是否有遭遇到不正常断电的情形,例如,当上述标签并未被正确设定时便判断先前有遭遇到不正常断电。在步骤906,微处理器112判断记忆装置100在上电之前的断电前最后一个写入的区块是否是用来储存区块的时间资讯的专属区块,例如图6A所示的区块B200、B201、B202,若否,流程进入步骤908;若是,流程进入步骤910。需注意的是,记忆装置100在上电之前的断电前最后一个写入的区块可以透过快闪存储器控制器110在初始化过程中对区块进行扫描而得到。
在步骤908,假设用来储存区块的时间资讯的专属区块,例如图6A所示的区块B200、B201、B202,是位于快闪存储器模组120中的一特定区域,因此,微处理器112可以直接对该特定区域内的所有区块进行读取,例如读取该特定区域内所有区块的最后一或多个数据页中所记录的多个区块时间资讯,以得到类似图5所示的写入时间记录表500,而不需要去读取整个快闪存储器模组120内的所有区块。之后,微处理器112再将写入时间记录表500进行压缩以得到类似图6A、图6B、图6C所示的压缩后写入时间记录表600或过期回收区块索引表632、652。
在步骤910,由于在不正常断电下有可能会对快闪存储器模组120正常进行数据写入的区块造成数据损坏,因此,若是在上电之前的断电前最后一个写入的区块是用来储存区块的时间资讯的专属区块,则微处理器112依序读取快闪存储器模组120中每一个有数据写入的区块的第一个数据页或是最后一个数据页(例如,图4所示的数据页P256),以取得每一个区块的第一个数据页的时间资讯及/或中间数据页的时间资讯,以得到类似图5所示的写入时间记录表500。之后,微处理器112再将写入时间记录表500进行压缩以得到类似图6A、图6B、图6C所示的压缩后写入时间记录表600或过期回收区块索引表632、652。
在取得每一个有数据写入的区块的时间资讯以在DRAM 140中重新建立压缩后写入时间记录表600后,流程便进入912以结束操作。
图10为根据本发明一实施例的进行过期区块回收操作的流程图。在步骤1000,流程开始,且记忆装置100已完成初始化操作。在步骤1002,微处理器112根据目前的时间来决定出至少一个时间范围。举例来说,假设经过实验量测结果,写入至快闪存储器模组120内的数据在经过14天后品质会大幅劣化,则微处理器112可以选择的时间范围为"13天前"。在步骤1004,微处理器112根据压缩后写入时间记录表600所记录的数据页地址来选择对应至时间范围为"13天前"的专属区块。
在步骤1006,微处理器112读取步骤1004中所决定的专属区块以决定出在13天前进行数据写入的多个区块,并将上述多个区块加入到一过期区块表中(例如,在过期区块表中记录这些区块的区块编号),并将这些区块标注为待处理区块。在本实施例中,过期区块表系用来记录过期区块回收的优先顺序,其具有固定的大小(即,可以记录的区块数量具有一上限值),因此,若是上述多个区块的数量太多,则可以优先选择第一个数据页P1的时间资讯较早的区块加入至过期区块表,且也可以同时参考中间数据页的时间资讯来作为备用参考。举例来说,微处理器112可以根据专属区块所记录的13天前进行数据写入的多个区块中第一个数据页P1的时间资讯早于一第一门槛值的区块优先加入至过期区块表,并接着将该多个区块中中间数据页P128的时间资讯早于一第二门槛值的区块依序加入至过期区块表,其中该第二门槛值晚于该第一门槛值。
在步骤1008,微处理器112根据上述过期区块表中所记录的区块,来依序进行过期区块回收操作。具体来说,微处理器112可以将过期区块表中所记录的区块内的有效数据搬移到一个空白数据页中,并在区块的有效数据完全搬移之后,将区块标记为无效或是进行抹除。需注意的是,步骤1008所述的过期区块回收操作可以在背景执行,亦即当快闪存储器控制器110处于闲置状态时(例如,不需要处理来自主装置130的存取指令),则微处理器112可以开始执行过期区块回收操作,直到快闪存储器控制器110接收到来自主装置130的存取指令而需要开始忙碌为止。
在步骤1010,由于步骤1008在进行过期区块回收操作时有进行区块的写入以及抹除,因此,微处理器112根据上述区块的写入以及抹除来更新压缩后写入时间记录表600,例如图7的流程所示。
由于立体NAND型快闪存储器不断增加的存储器容量的单位密度而致使存储器性能不断劣化,新型的立体NAND型快闪存储器在数据写入后,其存储器细胞的闸极所储存的电荷将不断流失,在一段时间之后,某些存储器细胞的闸极所储存的电荷已经不能反应其原本所欲储存的数据的电荷量,而导致读取时经常发生错误。而这些错误通常会让快闪存储器控制器启动改变读取电压以及硬解码、软解码的纠正机制,才能从这些过期的区块上读取到正确的数据,这些纠正机制通常非常耗时、耗电,也可能根本无法把错误纠正,导致存储器控制器读不到正确数据。因此,需要对区块的写入时间进行记录,避免上述问题。需注意的是,以上实施例所述的过期区块回收操作并不同于垃圾收集操作,且本实施例的过期区块表也不同于垃圾收集操作所需的垃圾收集序列。详细来说,在记忆装置100的操作中,快闪存储器控制器110会持续判断目前快闪存储器模组120中每一个区块的有效数据页的数量,以决定出哪一些区块需要进行垃圾收集操作,举例来说,当一区块的有效数据页的数量低于一临界值时,该区块会被排入至垃圾收集序列中,以在后续进行垃圾收集操作。然而,本实施例所述的过期区块表所记录的则是写入时间过长的区块,亦即这些区块有或许有部分的区块并未达到垃圾收集操作的标准,例如这些区块的有效数据页的数量远高于该临界值。此外,由于过期区块表所记录的区块的数据即将快速劣化,因此过期区块表的优先顺序高于垃圾收集序列,亦即若是过期区块表中有纪录任何的区块编号,则在垃圾收集操作允许中断的情形下,快闪存储器控制器110会优先停止垃圾收集操作而开始进行过期区块回收操作。换句话说,快闪存储器控制器110会立刻对过期区块表所记录的区块进行过期区块回收操作。
参考以上实施例所述,透过建立出写入时间记录表500来记录每一个区块的第一个数据页与中间数据页的时间资讯,并再对写入时间记录表500进行压缩来产生压缩后写入时间记录表600,整体来说可以在挑选出需要进行过期区块回收操作的区块更为迅速有效率,且也不会占用缓冲存储器116或是DRAM 140内的过多储存空间。
此外,过期区块回收操作需要配合逻辑数据页与实体数据页链结表,以找出区块所有的有效数据页,并将有效数据页从过期区块中搬移到新的区块中,由于搬移的行为导致有效数据页里的数据重新写入至新的区块,也因此重置了这些数据的有效期限,并且将该过期区块抹除备用。在搬移有效数据后,微处理器112需更新逻辑数据页与实体数据页链结表以及建立新的区块的有效数据页的数据数目表。为求谨慎,亦可将过期区块中的无效数据搬移到另一个新区块中,并相对应的建立无效数据的逻辑数据页与实体数据页链结表,以避免主机误删除数据时仍可拯救数据。请注意到,有些过期区块当中,可能所有的数据页都是有效的数据页,那就得将所有的数据都搬移到新的数据当中,重置所有的数据的有效期限。
简要归纳本发明,在本发明的应用于一快闪存储器控制器的控制方法中,透过建立出写入时间记录表500来记录每一个区块的第一个数据页与中间数据页的时间资讯,并再对写入时间记录表500进行压缩来产生压缩后写入时间记录表600,整体来说可以在挑选出需要进行过期区块回收操作的区块更为迅速有效率,且也不会占用缓冲存储器116或是DRAM 140内的过多储存空间。
以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。
Claims (18)
1.一种应用于一快闪存储器控制器的控制方法,其中该快闪存储器控制器用以存取一快闪存储器模组,该快闪存储器模组包含了多个区块,且每一个区块包含了多个数据页,以及该控制方法包含有:
当数据写入至该快闪存储器模组的任一区块时,在该区块记录一写入时间;
建立一写入时间记录表,其中该写入时间记录表记录了该快闪存储器模组中有数据写入的区块的区块编号及对应的该写入时间;
对该写入时间记录表进行压缩以产生一压缩后写入间记录表,其中该压缩后写入时间记录表包含了多个时间范围及对应的索引值,其中每一个索引值对应到该快闪存储器模组的一数据页,且该数据页记录了该写入时间位于对应的时间范围的所有区块的区块编号及该写入时间;
根据该控制方法在执行当下的时间来决定出该压缩后写入间记录表内该多个时间范围的一特定时间范围,并根据该特定时间范围所对应的数据页地址以自该快闪存储器模组中读取多个区块编号及对应的写入时间;
在一过期区块表中记录该多个区块编号中的至少一部分区块编号;以及
根据该过期区块表所记录的该至少一部分区块编号,以依序将具有该至少一部分区块编号的区块内的有效数据搬移至至少一空白区块中。
2.如权利要求1所述的控制方法,其特征在于,该多个时间范围分别对应到多个专属区块,且每一个时间范围所对应到的索引值系为对应的专属区块内最后一或多个数据页。
3.如权利要求2所述的控制方法,其特征在于,每一个时间范围所对应到的专属区块只会储存该写入时间位于该时间范围的所有区块的区块编号,而不会储存该写入时间位于其他任何时间范围的区块的区块编号。
4.如权利要求1所述的控制方法,其特征在于,还包含有:
当该快闪存储器控制器准备关机时,将该压缩后写入时间记录表写入至该快闪存储器模组的一特定区块中;
当该快闪存储器控制器上电时,判断该快闪存储器控制器在上电之前是否遭遇到不正常断电;
若是判断该快闪存储器控制器在上电之前未遭遇到不正常断电,则自该特定区块中读取该写入时间记录表,并将该写入时间记录表暂存至一缓冲存储器或是一动态随机存取存储器中;以及
若是判断该快闪存储器控制器在上电之前遭遇到不正常断电,则读取该快闪存储器模组中该多个区块的至少一部份区块,以重新建立出该压缩后写入时间记录表,并将该压缩后写入时间记录表暂存至一缓冲存储器或是一动态随机存取存储器中。
5.如权利要求4所述的控制方法,其特征在于,该多个时间范围分别对应到多个专属区块,且每一个时间范围所对应到的索引值系为对应的专属区块内最后一或多个数据页;以及若是判断该快闪存储器控制器在上电之前遭遇到不正常断电,则读取该快闪存储器模组中该多个区块的该至少一部份区块,以重新建立出该压缩后写入时间记录表的步骤包含有:
判断该快闪存储器控制器在上电之前的断电前最后一个写入的区块是否为该多个专属区块中的其一;
若是该快闪存储器控制器在上电之前的断电前最后一个写入的区块并非是该多个专属区块中的其一,读取该多个专属区块以得到该快闪存储器模组中有数据写入的区块所对应的该写入时间,并据以重新建立出该写入时间记录表;
若是该快闪存储器控制器在上电之前的断电前最后一个写入的区块为该多个专属区块中的其一,依序读取该快闪存储器模组中有数据写入的每一个区块的该数据页,以得到该快闪存储器模组中有数据写入的区块所对应的该写入时间,并据以重新建立出该写入时间记录表;以及
对重新建立的该写入时间记录表进行压缩以重新建立出该压缩后写入间记录表。
6.如权利要求4所述的控制方法,其特征在于,重新建立出该压缩后写入时间记录表的操作是在该快闪存储器控制器在上电后的一初始化操作的时间内完成。
7.一种快闪存储器控制器,其中该快闪存储器控制器是用来存取一快闪存储器模组,且该快闪存储器控制器包含有:
一只读存储器,用来储存一程序码;
一微处理器,用来执行该程序码以控制对该快闪存储器模组的存取;以及
一缓冲存储器;
其中当该微处理器将数据写入至该快闪存储器模组的任一区块时,在该区块记录一写入时间,并建立一写入时间记录表,其中该写入时间记录表记录了该快闪存储器模组中有数据写入的区块的区块编号及对应的该写入时间;以及该微处理器对该写入时间记录表进行压缩以产生一压缩后写入间记录表,其中该压缩后写入时间记录表包含了多个时间范围及对应的索引值,其中每一个索引值对应到该快闪存储器模组的一数据页,且该数据页记录了该写入时间位于对应的时间范围的所有区块的区块编号及该写入时间;
其中该微处理器根据当下的时间来决定出该压缩后写入间记录表内该多个时间范围的一特定时间范围,并根据该特定时间范围所对应的索引值以自该快闪存储器模组中读取多个区块编号及对应的写入时间;该微处理器在一过期区块表中记录该多个区块编号中的至少一部分区块编号,并根据该过期区块表所记录的该至少一部分区块编号,以依序将具有该至少一部分区块编号的区块内的有效数据搬移至至少一空白区块中。
8.如权利要求7所述的快闪存储器控制器,其特征在于,该多个时间范围分别对应到多个专属区块,且每一个时间范围所对应到的索引值是为对应的专属区块内最后一或多个数据页。
9.如权利要求8所述的快闪存储器控制器,特征在于,每一个时间范围所对应到的专属区块只会储存该写入时间位于该时间范围的所有区块的区块编号,而不会储存该写入时间位于其他任何时间范围的区块的区块编号。
10.如权利要求7所述的快闪存储器控制器,其特征在于,当该快闪存储器控制器准备关机时,该微处理器将该压缩后写入时间记录表写入至该快闪存储器模组的一特定区块中;当该快闪存储器控制器上电时,该微处理器判断该快闪存储器控制器在上电之前是否遭遇到不正常断电,若是判断该快闪存储器控制器在上电之前未遭遇到不正常断电,则该微处理器自该特定区块中读取该写入时间记录表,并将该写入时间记录表暂存至一缓冲存储器或是一动态随机存取存储器中;以及若是判断该快闪存储器控制器在上电之前遭遇到不正常断电,则该微处理器读取该快闪存储器模组中该多个区块的至少一部份区块,以重新建立出该压缩后写入时间记录表,并将该压缩后写入时间记录表暂存至该缓冲存储器或是一动态随机存取存储器中。
11.如权利要求10所述的快闪存储器控制器,其特征在于,若是判断该快闪存储器控制器在上电之前遭遇到不正常断电:该微处理器判断该快闪存储器控制器在上电之前的断电前最后一个写入的区块是否为该多个专属区块中的其一;若是该快闪存储器控制器在上电之前的断电前最后一个写入的区块并非是该多个专属区块中的其一,该微处理器读取该多个专属区块以得到该快闪存储器模组中有数据写入的区块所对应的该写入时间,并据以重新建立出该写入时间记录表;若是该快闪存储器控制器在上电之前的断电前最后一个写入的区块为该多个专属区块中的其一,该微处理器依序读取该快闪存储器模组中有数据写入的每一个区块的该数据页,以得到该快闪存储器模组中有数据写入的区块所对应的该写入时间,并据以重新建立出该写入时间记录表;以及该微处理器对重新建立的该写入时间记录表进行压缩以重新建立出该压缩后写入间记录表。
12.如权利要求10所述的快闪存储器控制器,其特征在于,重新建立出该压缩后写入时间记录表的操作是在该快闪存储器控制器在上电后的一初始化操作的时间内完成。
13.一种记忆装置,包含有:
一快闪存储器模组;以及
一快闪存储器控制器,用以存取该快闪存储器模组;
其中当该快闪存储器控制器将数据写入至该快闪存储器模组的任一区块时,在该区块记录一写入时间,并建立一写入时间记录表,其中该写入时间记录表记录了该快闪存储器模组中有数据写入的区块的区块编号及对应的该写入时间;以及该快闪存储器控制器对该写入时间记录表进行压缩以产生一压缩后写入间记录表,其中该压缩后写入时间记录表包含了多个时间范围及对应的索引值,其中每一个索引值对应到该快闪存储器模组的一数据页,且该数据页记录了该写入时间位于对应的时间范围的所有区块的区块编号及该写入时间;
其中该快闪存储器控制器根据当下的时间来决定出该压缩后写入间记录表内该多个时间范围的一特定时间范围,并根据该特定时间范围所对应的索引值以自该快闪存储器模组中读取多个区块编号及对应的写入时间;该快闪存储器控制器在一过期区块表中记录该多个区块编号中的至少一部分区块编号,并根据该过期区块表所记录的该至少一部分区块编号,以依序将具有该至少一部分区块编号的区块内的有效数据搬移至至少一空白区块中。
14.如权利要求13所述的记忆装置,其特征在于,该多个时间范围分别对应到多个专属区块,且每一个时间范围所对应到的索引值是为对应的专属区块内最后一或多个数据页。
15.如权利要求14所述的记忆装置,其特征在于,每一个时间范围所对应到的专属区块只会储存该写入时间位于该时间范围的所有区块的区块编号,而不会储存该写入时间位于其他任何时间范围的区块的区块编号。
16.如权利要求13所述的记忆装置,其特征在于,当该快闪存储器控制器准备关机时,该快闪存储器控制器将该压缩后写入时间记录表写入至该快闪存储器模组的一特定区块中;当该快闪存储器控制器上电时,该快闪存储器控制器判断该快闪存储器控制器在上电之前是否遭遇到不正常断电,若是判断该快闪存储器控制器在上电之前未遭遇到不正常断电,则该快闪存储器控制器自该特定区块中读取该写入时间记录表,并将该写入时间记录表暂存至一缓冲存储器或是一动态随机存取存储器中;以及若是判断该快闪存储器控制器在上电之前遭遇到不正常断电,则该快闪存储器控制器读取该快闪存储器模组中该多个区块的至少一部份区块,以重新建立出该压缩后写入时间记录表,并将该压缩后写入时间记录表暂存至该缓冲存储器或是一动态随机存取存储器中。
17.如权利要求16所述的记忆装置,其特征在于,若是判断该快闪存储器控制器在上电之前遭遇到不正常断电:该快闪存储器控制器判断该快闪存储器控制器在上电之前的断电前最后一个写入的区块是否为该多个专属区块中的其一;若是该快闪存储器控制器在上电之前的断电前最后一个写入的区块并非是该多个专属区块中的其一,该快闪存储器控制器读取该多个专属区块以得到该快闪存储器模组中有数据写入的区块所对应的该写入时间,并据以重新建立出该写入时间记录表;若是该快闪存储器控制器在上电之前的断电前最后一个写入的区块为该多个专属区块中的其一,该快闪存储器控制器依序读取该快闪存储器模组中有数据写入的每一个区块的该数据页,以得到该快闪存储器模组中有数据写入的区块所对应的该写入时间,并据以重新建立出该写入时间记录表;以及该快闪存储器控制器对重新建立的该写入时间记录表进行压缩以重新建立出该压缩后写入间记录表。
18.如权利要求16所述的记忆装置,其特征在于,重新建立出该压缩后写入时间记录表的操作是在该快闪存储器控制器在上电后的一初始化操作的时间内完成。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW109129292A TWI733568B (zh) | 2020-08-27 | 2020-08-27 | 記憶裝置、快閃記憶體控制器及其存取方法 |
TW109129292 | 2020-08-27 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114115706A true CN114115706A (zh) | 2022-03-01 |
Family
ID=77911132
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110203433.7A Pending CN114115706A (zh) | 2020-08-27 | 2021-02-23 | 记忆装置、快闪存储器控制器及其存取方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11372578B2 (zh) |
CN (1) | CN114115706A (zh) |
TW (1) | TWI733568B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11544186B2 (en) * | 2020-07-16 | 2023-01-03 | Silicon Motion, Inc. | Method and apparatus for data reads in host performance acceleration mode |
US11544185B2 (en) * | 2020-07-16 | 2023-01-03 | Silicon Motion, Inc. | Method and apparatus for data reads in host performance acceleration mode |
US11947452B2 (en) * | 2022-06-01 | 2024-04-02 | Micron Technology, Inc. | Controlling variation of valid data counts in garbage collection source blocks |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07281842A (ja) * | 1994-04-11 | 1995-10-27 | Hitachi Ltd | 半導体記憶装置 |
JP2006294246A (ja) * | 2006-07-31 | 2006-10-26 | Sony Corp | 記録装置、記録方法、記録媒体および記録データ生成装置 |
US20090180209A1 (en) * | 2005-09-22 | 2009-07-16 | Matsushita Electric Industrial Co., Ltd. | Information recording medium access device, and data recording method |
CN106598484A (zh) * | 2016-11-17 | 2017-04-26 | 华为技术有限公司 | 数据的存储方法、闪存芯片以及存储装置 |
CN107291374A (zh) * | 2016-03-31 | 2017-10-24 | 慧荣科技股份有限公司 | 纪录数据区块的使用时间的方法及其装置 |
CN111159069A (zh) * | 2018-11-07 | 2020-05-15 | 慧荣科技股份有限公司 | 闪存控制器、管理闪存模块的方法及相关的电子装置 |
CN111475425A (zh) * | 2019-01-24 | 2020-07-31 | 慧荣科技股份有限公司 | 管理闪存模块的方法及相关的闪存控制器与电子装置 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101522848B1 (ko) * | 2011-10-05 | 2015-05-26 | 엘에스아이 코포레이션 | 비휘발성 스토리지에 대한 셀프-저널링 및 계층적 일치성 |
TWI508068B (zh) * | 2012-07-25 | 2015-11-11 | Silicon Motion Inc | 管理快閃記憶體中所儲存之資料的方法,及相關的記憶裝置與控制器 |
US9069474B2 (en) * | 2013-08-20 | 2015-06-30 | Seagate Technology Llc | Retention based defecting in a hybrid memory system |
US10102118B2 (en) * | 2014-10-30 | 2018-10-16 | Toshiba Memory Corporation | Memory system and non-transitory computer readable recording medium |
JP2016126656A (ja) * | 2015-01-07 | 2016-07-11 | 富士通株式会社 | ストレージ制御装置,制御プログラム及び制御方法 |
US20170123700A1 (en) * | 2015-11-03 | 2017-05-04 | Samsung Electronics Co., Ltd. | Io redirection methods with cost estimation |
JP6867578B2 (ja) * | 2016-05-27 | 2021-04-28 | 富士通株式会社 | ストレージ制御装置、ストレージシステム、ストレージ制御方法およびストレージ制御プログラム |
US9830098B1 (en) * | 2016-07-11 | 2017-11-28 | Silicon Motion, Inc. | Method of wear leveling for data storage device |
US10540095B1 (en) * | 2016-08-12 | 2020-01-21 | Pure Storage, Inc. | Efficient garbage collection for stable data |
JP2020149588A (ja) * | 2019-03-15 | 2020-09-17 | キオクシア株式会社 | メモリシステム及びメモリコントローラ |
-
2020
- 2020-08-27 TW TW109129292A patent/TWI733568B/zh active
-
2021
- 2021-02-23 CN CN202110203433.7A patent/CN114115706A/zh active Pending
- 2021-03-11 US US17/199,388 patent/US11372578B2/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07281842A (ja) * | 1994-04-11 | 1995-10-27 | Hitachi Ltd | 半導体記憶装置 |
US20090180209A1 (en) * | 2005-09-22 | 2009-07-16 | Matsushita Electric Industrial Co., Ltd. | Information recording medium access device, and data recording method |
JP2006294246A (ja) * | 2006-07-31 | 2006-10-26 | Sony Corp | 記録装置、記録方法、記録媒体および記録データ生成装置 |
CN107291374A (zh) * | 2016-03-31 | 2017-10-24 | 慧荣科技股份有限公司 | 纪录数据区块的使用时间的方法及其装置 |
CN106598484A (zh) * | 2016-11-17 | 2017-04-26 | 华为技术有限公司 | 数据的存储方法、闪存芯片以及存储装置 |
CN111159069A (zh) * | 2018-11-07 | 2020-05-15 | 慧荣科技股份有限公司 | 闪存控制器、管理闪存模块的方法及相关的电子装置 |
CN111475425A (zh) * | 2019-01-24 | 2020-07-31 | 慧荣科技股份有限公司 | 管理闪存模块的方法及相关的闪存控制器与电子装置 |
Non-Patent Citations (2)
Title |
---|
彭华林 和 凌敏: "《数字电子技术》", vol. 1, 31 August 2004, 湖南大学出版社, pages: 243 - 244 * |
范玉雷;孟小峰;: "基于相变存储器和闪存的数据库事务恢复模型", 计算机学报, no. 08, 15 August 2013 (2013-08-15), pages 1582 - 1590 * |
Also Published As
Publication number | Publication date |
---|---|
TWI733568B (zh) | 2021-07-11 |
US20220066687A1 (en) | 2022-03-03 |
TW202209333A (zh) | 2022-03-01 |
US11372578B2 (en) | 2022-06-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8745310B2 (en) | Storage apparatus, computer system, and method for managing storage apparatus | |
US20130042057A1 (en) | Hybrid Non-Volatile Memory System | |
CN114115706A (zh) | 记忆装置、快闪存储器控制器及其存取方法 | |
CN111475425B (zh) | 管理闪存模块的方法及相关的闪存控制器与电子装置 | |
TW201915751A (zh) | 資料備份方法、資料恢復方法以及儲存控制器 | |
US10884652B2 (en) | Trim command recording method, memory control circuit unit and memory storage device | |
TWI459198B (zh) | 記憶體儲存裝置、其記憶體控制器與有效資料識別方法 | |
CN110837340A (zh) | 闪存控制器、管理闪存模块的方法及相关的电子装置 | |
CN110568918A (zh) | 停电时减少功耗的数据存储方法及数据存储设备 | |
US11487475B2 (en) | Control method for referring to expired block table to perform expired block recycling operation and associated flash memory controller and memory device | |
TWI516934B (zh) | 資料儲存方法、記憶體控制電路單元與記憶體儲存裝置 | |
US11194502B1 (en) | Electronic device, flash memory controller and method for performing garbage collection operation on flash memory module | |
CN110069362B (zh) | 数据储存装置与数据处理方法 | |
TW202137215A (zh) | 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 | |
TWI760094B (zh) | 記憶裝置、快閃記憶體控制器及其存取方法 | |
JP4801111B2 (ja) | フラッシュメモリのデータ即時リフレッシュ方法 | |
US11947818B2 (en) | Method for accessing flash memory module and associated flash memory controller and electronic device | |
US11809748B2 (en) | Control method of flash memory controller and associated flash memory controller and electronic device | |
CN110489053B (zh) | 管理闪存模块的方法、相关的闪存控制器和电子装置 | |
JP2009211218A (ja) | メモリシステムおよび瞬断判定方法 |
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 |