CN113903383A - 存储装置、快闪存储器控制器及其存取方法 - Google Patents
存储装置、快闪存储器控制器及其存取方法 Download PDFInfo
- Publication number
- CN113903383A CN113903383A CN202110178539.6A CN202110178539A CN113903383A CN 113903383 A CN113903383 A CN 113903383A CN 202110178539 A CN202110178539 A CN 202110178539A CN 113903383 A CN113903383 A CN 113903383A
- Authority
- CN
- China
- Prior art keywords
- block
- flash memory
- time
- memory module
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 40
- 238000004064 recycling Methods 0.000 claims abstract description 15
- 238000007667 floating Methods 0.000 claims description 11
- 230000002159 abnormal effect Effects 0.000 claims description 4
- 238000011084 recovery Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 9
- 230000007246 mechanism Effects 0.000 description 5
- 238000007906 compression Methods 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000013507 mapping 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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/32—Timing circuits
-
- 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/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0408—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells containing floating gate transistors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- 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
-
- 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/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- 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/0656—Data buffering arrangements
-
- 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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/08—Address circuits; Decoders; Word-line control circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3418—Disturbance prevention or evaluation; Refreshing of disturbed memory data
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/349—Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7208—Multiple device management, e.g. distributing data over multiple flash devices
Abstract
本发明涉及存储装置、快闪存储器控制器及其存取方法。其中本发明揭示的一种应用于快闪存储器控制器的控制方法,其包含有以下步骤:建立写入时间记录表,其中该写入时间记录表记录了快闪存储器模块中有数据写入的区块的区块编号及对应的第一时间与第二时间;参考写入时间记录表以判断快闪存储器模块中是否有至少一第一区块的第一时间早于第一门槛值,若有的话在过期区块表中记录至少一第一区块;参考写入时间记录表以判断快闪存储器模块中是否有至少一第二区块的第二时间早于第二门槛值,若有的话在过期区块表中记录至少一第二区块;以及根据过期区块表来进行过期区块回收操作。
Description
技术领域
本发明有关于快闪存储器控制器及相关的控制方法。
背景技术
随着立体快闪存储器技术的发展,快闪存储器芯片内堆迭的层数越来越多,再加上目前的快闪存储器模块内会包含许多采用三层式储存(Triple-Level Cell,TLC)或是四层式储存(Quad-Level Cell,QLC)的区块,因此,快闪存储器内所储存的数据的品质越来越差,甚至在数据写入后数周后便品质快速下滑而造成后续解码上的困难或甚至无法读取。为了解决此一问题,快闪存储器控制器可以利用空闲的时间读取快闪存储器模块内每一个区块的部分内容,以判断出每一个区块的品质,然而,上述方法会耗费大量的时间,且若是快闪存储器控制器常常处于忙碌状态时会无法兼顾存取效率与区块品质。
发明内容
因此,本发明的目的之一在于提出一种快闪存储器控制器与相关的控制方法,其可以有效率地对快闪存储器模块内品质可能有问题的区块预先做处理,以解决先前技术中所述的问题。
在本发明的一个实施例中,揭示了一种应用于一快闪存储器控制器的控制方法,其中该快闪存储器控制器用以存取一快闪存储器模块,该快闪存储器模块包含了多个区块,且每一个区块包含了多个数据页,以及该控制方法包含有:当数据写入至该快闪存储器模块的任一区块的一第一个数据页时,在该第一个数据页记录一第一时间;当数据写入至该快闪存储器模块的任一区块的至少一中间数据页时,在该至少一中间数据页记录一第二时间;当数据写入至该快闪存储器模块的任一区块的一最后数据页时,在该最后数据页记录该第一时间与该第二时间;建立一写入时间记录表,其中该写入时间记录表记录了该快闪存储器模块中有数据写入的区块的区块编号及对应的该第一时间、或是记录了该快闪存储器模块中有数据写入的区块的区块编号及对应的该第一时间与该第二时间;参考该写入时间记录表以判断该快闪存储器模块中是否有区块的该第一时间早于一第一门槛值,若是该快闪存储器模块中有至少一第一区块的该第一时间早于该第一门槛值,则在一过期区块表中记录该至少一第一区块;参考该写入时间记录表以判断该快闪存储器模块中是否有区块的该第二时间早于一第二门槛值,若是该快闪存储器模块中有至少一第二区块的该第二时间早于该第二门槛值,则在该过期区块表中记录该至少一第二区块;以及根据该过期区块表所记录的该至少一第一区块与该至少一第二区块进行过期区块回收操作,以依序将该至少一第一区块与该至少一第二区块内的有效数据搬移至至少一空白区块中。
在本发明的另一个实施例中,揭示了一种快闪存储器控制器,其中该快闪存储器控制器是用来存取一快闪存储器模块,且该快闪存储器控制器包含有一只读存储器、一微处理器以及一缓冲存储器。当该微处理器将数据写入至该快闪存储器模块的任一区块的一第一个数据页时,在该第一个数据页记录一第一时间;当该微处理器将数据写入至该快闪存储器模块的任一区块的至少一中间数据页时,在该至少一中间数据页记录一第二时间;当该微处理器将数据写入至该快闪存储器模块的任一区块的一最后数据页时,在该最后数据页记录该第一时间与该第二时间;该微处理器另建立一写入时间记录表,其中该写入时间记录表记录了该快闪存储器模块中有数据写入的区块的区块编号及对应的该第一时间、或是记录了该快闪存储器模块中有数据写入的区块的区块编号及对应的该第一时间与该第二时间。此外,该微处理器参考该写入时间记录表以判断该快闪存储器模块中是否有区块的该第一时间早于一第一门槛值,若是该快闪存储器模块中有至少一第一区块的该第一时间早于该第一门槛值,则在一过期区块表中记录该至少一第一区块;该微处理器参考该写入时间记录表以判断该快闪存储器模块中是否有区块的该第二时间早于一第二门槛值,若是该快闪存储器模块中有至少一第二区块的该第二时间早于该第二门槛值,则在该过期区块表中记录该至少一第二区块;以及根据该过期区块表所记录的该至少一第一区块与该至少一第二区块进行过期区块回收操作,以依序将该至少一第一区块与该至少一第二区块内的有效数据搬移至至少一空白区块中。
在本发明的另一个实施例中,揭示了一种存储装置,其包含有一快闪存储器模块及一快闪存储器控制器。当该快闪存储器控制器将数据写入至该快闪存储器模块的任一区块的一第一个数据页时,在该第一个数据页记录一第一时间;当该快闪存储器控制器将数据写入至该快闪存储器模块的任一区块的至少一中间数据页时,在该至少一中间数据页记录一第二时间;当该快闪存储器控制器将数据写入至该快闪存储器模块的任一区块的一最后数据页时,在该最后数据页记录该第一时间与该第二时间;该快闪存储器控制器另建立一写入时间记录表,其中该写入时间记录表记录了该快闪存储器模块中有数据写入的区块的区块编号及对应的该第一时间、或是记录了该快闪存储器模块中有数据写入的区块的区块编号及对应的该第一时间与该第二时间;此外,该快闪存储器控制器参考该写入时间记录表以判断该快闪存储器模块中是否有区块的该第一时间早于一第一门槛值,若是该快闪存储器模块中有至少一第一区块的该第一时间早于该第一门槛值,则在一过期区块表中记录该至少一第一区块;该快闪存储器控制器参考该写入时间记录表以判断该快闪存储器模块中是否有区块的该第二时间早于一第二门槛值,若是该快闪存储器模块中有至少一第二区块的该第二时间早于该第二门槛值,则在该过期区块表中记录该至少一第二区块;以及根据该过期区块表所记录的该至少一第一区块与该至少一第二区块进行过期区块回收操作,以依序将该至少一第一区块与该至少一第二区块内的有效数据搬移至至少一空白区块中。
附图说明
图1为依据本发明一实施例的一种存储装置的示意图。
图2为依据本发明一实施例的快闪存储器模块中一区块的示意图。
图3所示为根据本发明一实施例的建立一写入时间记录表的流程图。
图4所示的在区块中写入时间资讯的示意图。
图5为根据本发明一实施例的写入时间记录表的示意图。
图6所示的根据本发明一实施例的存储装置上电后在DRAM中建立出写入时间记录表的流程图。
图7为根据本发明一实施例的进行过期区块回收操作的流程图。
图8所示的压缩后写入时间记录表的示意图。
符号说明
100:存储装置
110:快闪存储器控制器
112:微处理器
112C:程序码
112M:只读存储器
114:控制逻辑
116:缓冲存储器
118:接口接口逻辑
120:快闪存储器模块
130:主装置
132:编码器
134:解码器
140:动态随机存取存储器
300~308:步骤
500:写入时间记录表
600~608:步骤
700~714:步骤
800:压缩后写入时间记录表
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)。
在一实施例中,存储装置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依序将数据写入到数据页P2、P3、…、直到当快闪存储器控制器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以及数据页P128的时间资讯T1_M连同来自主装置130的数据一并写入到数据页P256中,其中时间资讯T1_M可以写入至位于数据页P256后端的备用区域中。
在步骤306中,在区块B1进行数据写入的过程中,快闪存储器控制器110会同步在DRAM 140中建立如图5所示的写入时间记录表500,亦即,写入时间记录表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的时间资讯以及中间数据页(例如数据页P128)的时间资讯。
此外,写入时间记录表500会常驻在DRAM 140,以方便后续进行过期区块判断与垃圾收集(garbage collection)操作时使用,而当存储装置100需要关闭电源时,微处理器112会先将写入时间记录表500写入至快闪存储器模块120中,并等待存储装置100上电后重新读取快闪存储器模块120中的写入时间记录表500,并载入DRAM 140以供后续使用。
然而,存储装置100可能会因为各种不同的原因而造成突发性断电(suddenlypower off),而造成储存在DRAM 140中的写入时间记录表500遗失。因此,在存储装置100重新上电之后,则需要重新在DRAM 140中建立出写入时间记录表500。具体来说,参考图6所示的根据本发明一实施例的存储装置上电后在DRAM 140中建立出写入时间记录表500的流程图。在步骤600,流程开始,且存储装置100上电并开始初始化操作。在步骤602,微处理器112判断存储装置100在上电之前的断电是否是不正常断电(突发性断电),若否,流程进入步骤604以自快闪存储器模块120读取写入时间记录表500并暂存在DRAM 140中;若是,流程进入步骤606。举例来说,当存储装置100在正常关机/断电的情形下,快闪存储器控制器110会将储存在缓冲存储器116中的多个暂存表格及数据储存到快闪存储器模块120中,且其中包含了一个用来标示存储装置100是否正常关机的标签(flag),因此,快闪存储器控制器110在上电后可以透过读取储存在快闪存储器模块120中的上述标签来判断存储装置100之前是否有遭遇到不正常断电的情形,例如,当上述标签并未被正确设定时便判断先前有遭遇到不正常断电。在步骤606,微处理器112依序读取快闪存储器模块120中每一个有数据写入的区块的最后一个数据页(例如,图4所示的数据页P256),以取得每一个区块的第一个数据页的时间资讯以及中间数据页的时间资讯。举例来说,同时参考图4,微处理器112可以直接读取区块B1的最后一个数据页P256来取得第一个数据页P1的时间资讯T1_1以及中间数据页P128的时间资讯T1_M,且也可以直接读取区块B2的最后一个数据页P256来取得第一个数据页P1的时间资讯T2_1以及中间数据页P128的时间资讯T2_M。此外,在某些特别状况下,例如区块的最后一个数据页P256的数据毁损,或是区块的最后一个数据页P256尚未有数据写入,则此时微处理器112可以直接读取上述区块的第一个数据页及中间数据页的时间资讯。
由于存储装置100的初始化时间有一定的限制,例如1~2秒,再加上在初始化操作的期间内快闪存储器控制器110会需要重建许多其他的对照表/映射表,因此,由于本实施例可以在仅读取区块的最后一个数据页便可以得到第一个数据页的时间资讯与中间数据页的时间资讯,因此让重建的写入时间记录表500变得很快速,以避免初始化操作的时间逾时。
在取得每一个有数据写入的区块的第一个数据页的时间资讯以及中间数据页的时间资讯后,便可以在DRAM 140中重新建立写入时间记录表500,此时流程便进入608以结束操作。
图7为根据本发明一实施例的进行过期区块回收操作的流程图。在步骤700,流程开始,且存储装置100已完成初始化操作。在步骤702,微处理器112根据写入时间记录表500,以判断快闪存储器模块120中是否有任何区块的第一个数据页P1的时间资讯早于一第一门槛值,若有,则流程进入步骤704;若否,流程进入步骤708。第一门槛值可以是根据目前时间所决定的时间,举例来说,假设目前时间是2020年5月21日下午8点,则第一门槛值可以是12天前,亦即第一门槛值可以是2020年5月9日下午8点。
在步骤704中,微处理器112将第一个数据页P1的时间资讯早于一第一门槛值的区块加入至一过期区块表中(例如,在过期区块表中记录这些区块的区块编号),并将这些区块标注为待处理区块。在本实施例中,过期区块表是用来记录过期区块回收操作的优先顺序,其具有固定的大小(即,可以记录的区块数量具有一上限值),因此,若是步骤702中所决定出的区块数量太多,则优先选择第一个数据页P1的时间资讯较早的区块加入至过期区块表。
在步骤706,微处理器112判断过期区块表所记录的区块是否已到达上限值,若是,流程进入步骤712;若否,流程进入步骤708。
在步骤708,微处理器112根据写入时间记录表500,以判断快闪存储器模块120中是否有任何区块的中间数据页(例如,图4的数据页P128)的时间资讯早于一第二门槛值,若有,则流程进入步骤710;若否,流程进入步骤712。第二门槛值可以是根据目前时间所决定的时间,且第二门槛值晚于第一门槛值。举例来说,假设目前时间是2020年5月21日下午8点,则第二门槛值可以是11天前,亦即第一门槛值可以是2020年5月10日下午8点。
在步骤710中,微处理器112将中间数据页的时间资讯早于一第二门槛值的区块加入至一过期区块表中,并将这些区块标注为待处理区块。此外,若是步骤708中所决定出的区块数量太多,则优先选择中间数据页的时间资讯较早的区块加入至过期区块表。
关于上述步骤708、710中,由于在步骤704中已经将第一个数据页P1的时间资讯早于第一门槛值的区块加入至过期区块表中,因此,步骤708、710中实质上可视为将中间数据页的时间资讯介于第二门槛值与第一门槛值之间的区块加入至过期区块表。
需注意的是,上述过期区块表所记录的区块并不全部都是根据步骤702、708中的方法所决定出的,亦即,过期区块表中所记录的区块有部分可能是根据区块品质或其他机制所决定的。
在步骤712,微处理器112根据上述过期区块表中所记录的区块,来依序进行过期区块回收操作。具体来说,微处理器112可以将过期区块表中所记录的区块内的有效数据搬移到一个空白数据页中,并在区块的有效数据完全搬移之后,将区块标记为无效或是进行抹除。需注意的是,步骤712所述的过期区块回收操作可以在背景执行,亦即当快闪存储器控制器110处于闲置状态时(例如,不需要处理来自主装置130的存取指令),则微处理器112可以开始执行过期区块回收操作,直到快闪存储器控制器110接收到来自主装置130的存取指令而需要开始忙碌为止。
由于立体NAND型快闪存储器不断增加的存储器容量的单位密度而致使存储器性能不断劣化,新型的立体NAND型快闪存储器在数据写入后,其存储器细胞的闸极所储存的电荷将不断流失,在一段时间之后,某些存储器细胞的闸极所储存的电荷已经不能反应其原本所欲储存的数据的电荷量,而导致读取时经常发生错误。而这些错误通常会让快闪存储器控制器启动改变读取电压以及硬解码、软解码的纠正机制,才能从这些过期的区块上读取到正确的数据,这些纠正机制通常非常耗时、耗电,也可能根本无法把错误纠正,导致存储器控制器读不到正确数据。因此,需要对区块的写入时间进行记录,避免上述问题。需注意的是,以上实施例所述的过期区块回收操作并不同于垃圾收集操作,且本实施例的过期区块表也不同于垃圾收集操作所需的垃圾收集序列。详细来说,在存储装置100的操作中,快闪存储器控制器110会持续判断目前快闪存储器模块120中每一个区块的有效数据页的数量,以决定出哪一些区块需要进行垃圾收集操作,举例来说,当一区块的有效数据页的数量低于一临界值时,该区块会被排入至垃圾收集序列中,以在后续进行垃圾收集操作。然而,本实施例所述的过期区块表所记录的则是写入时间过长的区块,亦即这些区块有或许有部分的区块并未达到垃圾收集操作的标准,例如这些区块的有效数据页的数量远高于该临界值。此外,由于过期区块表所记录的区块的数据即将快速劣化,因此过期区块表的优先顺序高于垃圾收集序列,亦即若是过期区块表中有纪录任何的区块编号,则在垃圾收集操作允许中断的情形下,快闪存储器控制器110会优先停止垃圾收集操作而开始进行过期区块回收操作。换句话说,快闪存储器控制器110会立刻对过期区块表所记录的区块进行过期区块回收操作。
在步骤714,由于步骤712在进行过期区块回收操作时有进行区块的写入以及抹除,因此,微处理器112根据上述区块的写入以及抹除来更新写入时间记录表500。举例来说,若是区块B1被标记为无效或是抹除,则微处理器112可以删除写入时间记录表500中有关于区块B1的时间资讯。
以上步骤708、710中根据第二门槛值来决定出加入至过期区块表的区块的原因在于中间数据页的时间资讯较能反映出区块整体的写入时间,且透过将第二门槛值设定为晚于第一门槛值,并将中间数据页的时间资讯介于第二门槛值与第一门槛值间的区块加入到过期区块表,可以让过期区块表可以一次性地加入足够数量的区块以供进行后续的过期区块回收操作,而不需要很频繁地重复进行图7的流程或是其他机制来挑选出需要进行过期区块回收操作的区块。此外,由于在立体快闪存储器中,储存在区块中的数据会随着时间变长而快速劣化,但若是区块有被进行读取或写入操作(写数据至剩余数据页)的情形下可以让区块的整体数据品质会稍有改善,因此上述使用第二门槛值与第一门槛值来做为判断机制可以让品质较差的区块优先加入到过期区块表。此外,由于区块的数据写入的时间可能会相差很大,亦即区块的第一个数据页的时间资讯与中间数据页的时间资讯可能会有很大的差距,因此,透过另外使用较为可以反映出区块的整体写入时间的中间数据页的时间资讯,可以让区块过期的判断更为准确。
参考以上图3~7的实施例所述,透过建立出写入时间记录表500来记录每一个区块的第一个数据页与中间数据页的时间资讯,再加上使用第一门槛值与第二门槛值来挑选出需要进行过期区块回收操作的区块,整体来说可以在挑选出需要进行过期区块回收操作的区块更为迅速有效率。
过期区块回收操作需要配合逻辑数据页与实体数据页链结表,以找出区块所有的有效数据页,并将有效数据页从过期区块中搬移到新的区块中,由于搬移的行为导致有效数据页里的数据重新写入至新的区块,也因此重置了这些数据的有效期限,并且将该过期区块抹除备用。在搬移有效数据后,微处理器112需更新逻辑数据页与实体数据页链结表以及建立新的区块的有效数据页的数据数目表。为求谨慎,亦可将过期区块中的无效数据搬移到另一个新区块中,并相对应的建立无效数据的逻辑数据页与实体数据页链结表,以避免主机误删除数据时仍可拯救数据。请注意到,有些过期区块当中,可能所有的数据页都是有效的数据页,那就得将所有的数据都搬移到新的数据当中,重置所有的数据的有效期限。
此外,在某些应用中,快闪存储器模块120会具有数千个区块、再加上频繁的写入,因此,写入时间记录表500会需要记录许多区块编号与相关的时间资讯,因而严重消耗DRAM140的储存空间。此外,若是存储装置100不具有DRAM 140而使得写入时间记录表500需要储存在缓冲存储器116中,则此时由于缓冲存储器116通常使用较贵的SRAM来实作且容量不会太大,因此更会造成缓冲存储器116在存储器配置上的麻烦。如上所述,在以下的实施例中另外出了一种写入时间记录表500的压缩方法,其可以将写入时间记录表500的大部分内容写入至快闪存储器模块120的区块中,以降低储存在DRAM 140或缓冲存储器116的写入时间记录表500的大小。
举例来说,参考图8所示的压缩后写入时间记录表800的示意图,其中压缩后写入时间记录表800可以透过将写入时间记录表500进行简化压缩而来。在图8中,压缩后写入时间记录表800包含了多个时间范围及对应的至少一数据页地址,其中多个时间范围可以是任意适合的时间范围,而在本实施例中时间范围是以一天为单位。在图8的实施例中,微处理器112会依序或周期性地将写入时间记录表500中的区块编号及对应的时间资讯写入到快闪存储器模块120的区块中,以图8的时间范围是今日的状况来说明,当快闪存储器控制器110将数据写入至快闪存储器模块120的多个区块,并同步建立写入时间记录表500后,微处理器112会将写入时间记录表500中所记录的区块编号及对应的时间资讯写入到区块B200的数据页P25中,而压缩后写入时间记录表800便记录区块B200的数据页P25的数据页地址"PPA98765";此外,由于区块B200的数据页P25以记录了写入时间记录表500的内容,故微处理器112便可以将写入时间记录表500中的相关数据删除,以释放出存储器空间。同理,图8所示的时间范围为"昨日"所记录的数据页地址"PPA33333"对应到区块B201的数据页P46,且区块B201的数据页P46记录了昨日写入的区块及对应的时间资讯;同理,图8所示的时间范围为"前天"所记录的数据页地址"PPA33445"对应到区块B202的数据页P37,且区块B202的数据页P37记录了前天写入的区块及对应的时间资讯。因此,由于图5所示的写入时间记录表500中的内容可以储存在快闪存储器模块120中,且压缩后写入时间记录表800仅需要记录快闪存储器模块120中的一些数据页地址,因此可以有效地降低写入时间记录表500对于存储器空间的负担。
此外,由于快闪存储器模块120中的区块有可能被抹除而变为空白区块,因此,当微处理器112得知有区块被抹除时,便会更新快闪存储器模块120与压缩后写入时间记录表800的内容。举例来说,假设昨日所写入的区块B1在今日被抹除了,则微处理器112读取区块B201的数据页P46的内容,并将区块B1及相关的时间资讯删除后,重新写入到另一个数据页,例如区块B201的数据页P47;此外,将压缩后写入时间记录表800中关于区块B201的数据页P46的数据页地址替换为区块B201的数据页P47的数据页地址。
此外,为了方便区块及数据页的管理,压缩后写入时间记录表800中的每一个时间范围对应到一个专属的区块,例如前天进行数据写入的所有区块的区块编号与时间资讯都被写入到区块B202、昨日进行数据写入的所有区块的区块编号与时间资讯都被写入到区块B201、今日进行数据写入的所有区块的区块编号与时间资讯都被写入到区块B200、…以此类推。此外,上述专属区块不会被拿来储存其他数据。
简要归纳本发明,在本发明的应用于一快闪存储器控制器的控制方法中,是透过建立出写入时间记录表来记录每一个区块的第一个数据页与中间数据页的时间资讯,再加上使用第一门槛值与第二门槛值来挑选出需要进行过期区块回收操作的区块,以效率地完成过期区块回收操作。此外,透过将写入时间记录表进行压缩可以降低写入时间记录表对于存储器空间的负担。
以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。
Claims (20)
1.一种应用于一快闪存储器控制器的控制方法,其中该快闪存储器控制器用以存取一快闪存储器模块,该快闪存储器模块为一立体快闪存储器(3D NAND-type flash)模块,该快闪存储器模块包含了多个快闪存储器芯片,每一个快闪存储器芯片包含了多个区块,每一个区块包含了多个数据页;每一个区块包含了分别位于多个不同平面的多条字元线以及位元线来控制的多个浮闸晶体管,且每一条字元线上的浮闸晶体管构成了该多个数据页中的至少一数据页;以及该控制方法包含有:
当数据写入至该快闪存储器模块的任一区块的一第一个数据页时,在该第一个数据页记录一第一时间;
当数据写入至该快闪存储器模块的任一区块的至少一中间数据页时,在该至少一中间数据页记录一第二时间;
当数据写入至该快闪存储器模块的任一区块的一最后数据页时,在该最后数据页记录该第一时间与该第二时间;
建立一写入时间记录表,其中该写入时间记录表记录了该快闪存储器模块中有数据写入的区块的区块编号及对应的该第一时间、或是记录了该快闪存储器模块中有数据写入的区块的区块编号及对应的该第一时间与该第二时间;
参考该写入时间记录表以判断该快闪存储器模块中是否有区块的该第一时间早于一第一门槛值,若是该快闪存储器模块中有至少一第一区块的该第一时间早于该第一门槛值,则在一过期区块表中记录该至少一第一区块;
参考该写入时间记录表以判断该快闪存储器模块中是否有区块的该第二时间早于一第二门槛值,若是该快闪存储器模块中有至少一第二区块的该第二时间早于该第二门槛值,则在该过期区块表中记录该至少一第二区块;以及
根据该过期区块表所记录的该至少一第一区块与该至少一第二区块进行过期区块回收操作,以依序将该至少一第一区块与该至少一第二区块内的有效数据搬移至至少一空白区块中。
2.如权利要求1所述的控制方法,其特征在于,该第二门槛值所表示的时间晚于该第一门槛值所表示的时间。
3.如权利要求1或2所述的控制方法,其特征在于,该第一门槛值是根据该控制方法在执行当下的时间所决定。
4.如权利要求1所述的控制方法,其特征在于,该至少一中间数据页包含了多个中间数据页,且该写入时间记录表所记录的该第二时间是根据该多个中间数据页的多个写入时间所决定。
5.如权利要求1所述的控制方法,其特征在于,参考该写入时间记录表以判断该快闪存储器模块中是否有区块的该第二时间早于该第二门槛值,若是该快闪存储器模块中有该至少一第二区块的该第二时间早于该第二门槛值,则在该过期区块表中记录该至少一第二区块的步骤包含有:
判断该过期区块表所记录的区块数量是否已达一上限值;
若是该过期区块表所记录的区块数量已达该上限值,不在该过期区块表中记录该至少一第二区块;以及
若是该过期区块表所记录的区块数量未达该上限值,在该过期区块表中依序记录该至少一第二区块,直到该过期区块表所记录的区块数量达到该上限值为止;以及
根据该过期区块表所记录的该至少一第一区块与该至少一第二区块进行过期区块回收操作的步骤包含有:
在该快闪存储器控制器一背景操作中立即根据该过期区块表所记录的该至少一第一区块与该至少一第二区块进行过期区块回收操作。
6.如权利要求1所述的控制方法,其特征在于,另包含有:
当该快闪存储器控制器准备关机时,将该写入时间记录表写入至该快闪存储器模块的一特定区块中;
当该快闪存储器控制器上电时,判断该快闪存储器控制器在上电之前是否遭遇到不正常断电;
若是判断该快闪存储器控制器在上电之前未遭遇到不正常断电,则自该特定区块中读取该写入时间记录表,并将该写入时间记录表暂存至一缓冲存储器或是一动态随机存取存储器中;以及
若是判断该快闪存储器控制器在上电之前遭遇到不正常断电,则依序读取该快闪存储器模块中有数据写入的每一个区块的最后一个数据页,以重新建立出该写入时间记录表,并将该写入时间记录表暂存至该缓冲存储器或是该动态随机存取存储器中。
7.如权利要求6所述的控制方法,其特征在于,若是判断该快闪存储器控制器在上电之前遭遇到不正常断电,则依序读取该快闪存储器模块中有数据写入的每一个区块的该最后数据页,以重新建立出该写入时间记录表的步骤包含有:
若是该快闪存储器模块中有数据写入的每一个区块中,有任一区块的该最后数据页未包含了该第一时间与该第二时间,则读取该区块的该第一个数据页与该中间数据页,来得到对应的该第一时间与该第二时间。
8.如权利要求6所述的控制方法,其特征在于,重新建立出该写入时间记录表的操作是在该快闪存储器控制器在上电后的一初始化操作的时间内完成。
9.一种快闪存储器控制器,其中该快闪存储器控制器是用来存取一快闪存储器模块,该快闪存储器模块为一立体快闪存储器(3D NAND-type flash)模块,该快闪存储器模块包含了多个快闪存储器芯片,每一个快闪存储器芯片包含了多个区块,每一个区块包含了多个数据页;每一个区块包含了分别位于多个不同平面的多条字元线以及位元线来控制的多个浮闸晶体管,且每一条字元线上的浮闸晶体管构成了该多个数据页中的至少一数据页;且该快闪存储器控制器包含有:
一只读存储器,用来储存一程序码;
一微处理器,用来执行该程序码以控制对该快闪存储器模块的存取;以及
一缓冲存储器;
其中当该微处理器将数据写入至该快闪存储器模块的任一区块的一第一个数据页时,在该第一个数据页记录一第一时间;当该微处理器将数据写入至该快闪存储器模块的任一区块的至少一中间数据页时,在该至少一中间数据页记录一第二时间;当该微处理器将数据写入至该快闪存储器模块的任一区块的一最后数据页时,在该最后数据页记录该第一时间与该第二时间;该微处理器另建立一写入时间记录表,其中该写入时间记录表记录了该快闪存储器模块中有数据写入的区块的区块编号及对应的该第一时间、或是记录了该快闪存储器模块中有数据写入的区块的区块编号及对应的该第一时间与该第二时间;
其中该微处理器参考该写入时间记录表以判断该快闪存储器模块中是否有区块的该第一时间早于一第一门槛值,若是该快闪存储器模块中有至少一第一区块的该第一时间早于该第一门槛值,则在一过期区块表中记录该至少一第一区块;该微处理器参考该写入时间记录表以判断该快闪存储器模块中是否有区块的该第二时间早于一第二门槛值,若是该快闪存储器模块中有至少一第二区块的该第二时间早于该第二门槛值,则在该过期区块表中记录该至少一第二区块;以及根据该过期区块表所记录的该至少一第一区块与该至少一第二区块进行过期区块回收操作,以依序将该至少一第一区块与该至少一第二区块内的有效数据搬移至至少一空白区块中。
10.如权利要求9所述的快闪存储器控制器,其特征在于,该第二门槛值所表示的时间晚于该第一门槛值所表示的时间。
11.如权利要求9或10所述的快闪存储器控制器,其特征在于,该第一门槛值是根据该控制方法在执行当下的时间所决定。
12.如权利要求9所述的快闪存储器控制器,其特征在于,该至少一中间数据页包含了多个中间数据页,且该写入时间记录表所记录的该第二时间是根据该多个中间数据页的多个写入时间所决定。
13.如权利要求9所述的快闪存储器控制器,其特征在于,该微处理器判断该过期区块表所记录的区块数量是否已达一上限值;若是该过期区块表所记录的区块数量已达该上限值,不在该过期区块表中记录该至少一第二区块;以及若是该过期区块表所记录的区块数量未达该上限值,该微处理器在该过期区块表中依序记录该至少一第二区块,直到该过期区块表所记录的区块数量达到该上限值为止;以及在该快闪存储器控制器一背景操作中,该微处理器立即根据该过期区块表所记录的该至少一第一区块与该至少一第二区块进行过期区块回收操作。
14.如权利要求9所述的快闪存储器控制器,其特征在于,当该快闪存储器控制器准备关机时,该微处理器将该写入时间记录表写入至该快闪存储器模块的一特定区块中;当该快闪存储器控制器上电时,该微处理器判断该快闪存储器控制器在上电之前是否遭遇到不正常断电;若是判断该快闪存储器控制器在上电之前未遭遇到不正常断电,则该微处理器自该特定区块中读取该写入时间记录表,并将该写入时间记录表暂存至一缓冲存储器或是一动态随机存取存储器中;以及若是判断该快闪存储器控制器在上电之前遭遇到不正常断电,则该微处理器依序读取该快闪存储器模块中有数据写入的每一个区块的最后一个数据页,以重新建立出该写入时间记录表,并将该写入时间记录表暂存至该缓冲存储器或是该动态随机存取存储器中。
15.如权利要求14所述的快闪存储器控制器,其特征在于,若是该快闪存储器模块中有数据写入的每一个区块中,有任一区块的该最后数据页未包含了该第一时间与该第二时间,则该微处理器读取该区块的该第一个数据页与该中间数据页,来得到对应的该第一时间与该第二时间。
16.如权利要求14所述的快闪存储器控制器,其特征在于,重新建立出该写入时间记录表的操作是在该快闪存储器控制器在上电后的一初始化操作的时间内完成。
17.一种存储装置,包含有:
一快闪存储器模块,其中该快闪存储器模块是为一立体快闪存储器(3D NAND-typeflash)模块,该快闪存储器模块包含了多个快闪存储器芯片,每一个快闪存储器芯片包含了多个区块,每一个区块包含了多个数据页;每一个区块包含了分别位于多个不同平面的多条字元线以及位元线来控制的多个浮闸晶体管,且每一条字元线上的浮闸晶体管构成了该多个数据页中的至少一数据页;以及
一快闪存储器控制器,用以存取该快闪存储器模块;
其中当该快闪存储器控制器将数据写入至该快闪存储器模块的任一区块的一第一个数据页时,在该第一个数据页记录一第一时间;当该快闪存储器控制器将数据写入至该快闪存储器模块的任一区块的至少一中间数据页时,在该至少一中间数据页记录一第二时间;当该快闪存储器控制器将数据写入至该快闪存储器模块的任一区块的一最后数据页时,在该最后数据页记录该第一时间与该第二时间;该快闪存储器控制器另建立一写入时间记录表,其中该写入时间记录表记录了该快闪存储器模块中有数据写入的区块的区块编号及对应的该第一时间、或是记录了该快闪存储器模块中有数据写入的区块的区块编号及对应的该第一时间与该第二时间;
其中该快闪存储器控制器参考该写入时间记录表以判断该快闪存储器模块中是否有区块的该第一时间早于一第一门槛值,若是该快闪存储器模块中有至少一第一区块的该第一时间早于该第一门槛值,则在一过期区块表中记录该至少一第一区块;该快闪存储器控制器参考该写入时间记录表以判断该快闪存储器模块中是否有区块的该第二时间早于一第二门槛值,若是该快闪存储器模块中有至少一第二区块的该第二时间早于该第二门槛值,则在该过期区块表中记录该至少一第二区块;以及根据该过期区块表所记录的该至少一第一区块与该至少一第二区块进行过期区块回收操作,以依序将该至少一第一区块与该至少一第二区块内的有效数据搬移至至少一空白区块中。
18.如权利要求17所述的存储装置,其特征在于,该第二门槛值所表示的时间晚于该第一门槛值所表示的时间。
19.如权利要求17或18所述的存储装置,其特征在于,该第一门槛值是根据该控制方法在执行当下的时间所决定。
20.如权利要求17所述的存储装置,其特征在于,该至少一中间数据页包含了多个中间数据页,且该写入时间记录表所记录的该第二时间是根据该多个中间数据页的多个写入时间所决定。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW109122716 | 2020-07-06 | ||
TW109122716A TWI722938B (zh) | 2020-07-06 | 2020-07-06 | 記憶裝置、快閃記憶體控制器及其存取方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113903383A true CN113903383A (zh) | 2022-01-07 |
Family
ID=76035774
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110178539.6A Pending CN113903383A (zh) | 2020-07-06 | 2021-02-09 | 存储装置、快闪存储器控制器及其存取方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11487475B2 (zh) |
CN (1) | CN113903383A (zh) |
TW (1) | TWI722938B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI696074B (zh) * | 2019-01-24 | 2020-06-11 | 慧榮科技股份有限公司 | 管理快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 |
US11947452B2 (en) * | 2022-06-01 | 2024-04-02 | Micron Technology, Inc. | Controlling variation of valid data counts in garbage collection source blocks |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103270487B (zh) * | 2011-02-02 | 2016-06-22 | 株式会社日立制作所 | 存储系统及其数据控制方法 |
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 |
US20170123700A1 (en) * | 2015-11-03 | 2017-05-04 | Samsung Electronics Co., Ltd. | Io redirection methods with cost estimation |
US10289487B2 (en) * | 2016-04-27 | 2019-05-14 | Silicon Motion Inc. | Method for accessing flash memory module and associated flash memory controller and memory device |
US9977597B2 (en) * | 2016-05-10 | 2018-05-22 | Seagate Technology Llc | Enhanced read recovery based on write time information |
US10540095B1 (en) * | 2016-08-12 | 2020-01-21 | Pure Storage, Inc. | Efficient garbage collection for stable data |
CN107783725A (zh) * | 2016-08-30 | 2018-03-09 | 南京中兴新软件有限责任公司 | 数据存储的方法、装置以及非易失性存储器 |
TW201947402A (zh) * | 2018-05-14 | 2019-12-16 | 深圳大心電子科技有限公司 | 記憶體管理方法以及儲存控制器 |
-
2020
- 2020-07-06 TW TW109122716A patent/TWI722938B/zh active
-
2021
- 2021-02-09 CN CN202110178539.6A patent/CN113903383A/zh active Pending
- 2021-02-24 US US17/183,355 patent/US11487475B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US11487475B2 (en) | 2022-11-01 |
US20220004339A1 (en) | 2022-01-06 |
TWI722938B (zh) | 2021-03-21 |
TW202203227A (zh) | 2022-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111475425B (zh) | 管理闪存模块的方法及相关的闪存控制器与电子装置 | |
US11372578B2 (en) | Control method for flash memory controller and associated flash memory controller and memory device | |
US11487475B2 (en) | Control method for referring to expired block table to perform expired block recycling operation and associated flash memory controller and memory device | |
CN111399751B (zh) | 闪存控制器、管理闪存模块的方法及相关的电子装置 | |
US11194502B1 (en) | Electronic device, flash memory controller and method for performing garbage collection operation on flash memory module | |
TW202137215A (zh) | 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 | |
US11487655B2 (en) | Method for managing flash memory module and associated flash memory controller and electronic device based on timing of dummy read operations | |
US11210209B2 (en) | Method for managing flash memory module and associated flash memory controller and electronic device | |
TWI760094B (zh) | 記憶裝置、快閃記憶體控制器及其存取方法 | |
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 | |
US11687290B1 (en) | Method for improve read disturbance phenomenon of flash memory module and associated flash memory controller and electronic device | |
TWI781886B (zh) | 管理快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 | |
US11249676B2 (en) | Electronic device, flash memory controller and associated control method | |
TWI768336B (zh) | 管理快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 | |
TW202234253A (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 |