CN111767007A - 用于闪存的写入管理机制 - Google Patents
用于闪存的写入管理机制 Download PDFInfo
- Publication number
- CN111767007A CN111767007A CN201910417730.4A CN201910417730A CN111767007A CN 111767007 A CN111767007 A CN 111767007A CN 201910417730 A CN201910417730 A CN 201910417730A CN 111767007 A CN111767007 A CN 111767007A
- Authority
- CN
- China
- Prior art keywords
- erased
- block
- controller
- flash memory
- blocks
- 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
- 230000007246 mechanism Effects 0.000 title abstract description 7
- 238000000034 method Methods 0.000 claims abstract description 21
- 238000012544 monitoring process Methods 0.000 claims abstract description 9
- 238000011084 recovery Methods 0.000 claims abstract description 9
- 238000012545 processing Methods 0.000 claims description 15
- 238000010586 diagram Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000002427 irreversible effect Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000004064 recycling Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000001960 triggered effect Effects 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- 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
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to 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/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/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- 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/7204—Capacity control, e.g. partitioning, end-of-life degradation
-
- 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/7205—Cleaning, compaction, garbage collection, erase control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
- Memory System (AREA)
Abstract
本发明公开了一种管理闪存模块的方法,该闪存模块包括多个区块,该多个区块中的一部分属于一备用池。该方法包括:在该备用池中预留至少一已抹除区块以利一写入操作的进行;监测该至少一已抹除区块的一已抹除时间;以及当该已抹除时间超过一临界值时,执行一替换操作以替换该至少一已抹除区块。本发明通过对于备用池的妥善管理,在有效地减少写入延迟的(通过在备用池中预留至少一个已抹除区块)同时,又避免潜在的存储器单元的物理性伤害(通过限制区块停留在已抹除状态的时间)。同时,本发明管理机制也进一步与垃圾数据回收操作结合,从而更合理地进行对已抹除区块的写入与替换。
Description
技术领域
本发明关于闪存,尤指一种针对闪存中的待写入区块进行管理的方法、控制器以及相关的存储装置。
背景技术
一般来说,针对主机下达的写入命令,闪存控制器会从闪存中找寻一个闲置的已抹除区块来将数据写入其中。然而,若闪存单元长时间处在已抹除状态中,可能会对单元造成不可回复的物理性伤害。因此,有必须提供一种写入管理机制来预防这种问题。
发明内容
有鉴于此,本发明的一目的在于公开一种闪存的写入管理机制。在本发明中,将从闪存的区块中划分一部分出来作为备用池(spare pool)。控制器将从备用池中找出区块来写入数据,以完成主机下达的写入命令。其中,上述备用池中只会预留少量的已抹除区块(erased block),其余为已写入区块(programmed block)。当控制器接收到主机端的写入命令时,控制器会从备用池中找到预留的已抹除区块来写入数据。并且,在写入完成后,控制器会从备用池中找寻一个或多个的已写入区块,进行抹除操作,以作为新的预留区块。如此一来,可以减少闪存的区块中已抹除区块的数量。
发明内容
有鉴于此,本发明的一目的在于公开一种闪存的写入管理机制。在本发明中,将从闪存的区块中划分一部分出来作为备用池(spare pool)。控制器将从备用池中找出区块来写入数据,以完成主机下达的写入命令。其中,上述备用池中只会预留少量的已抹除区块(erased block),其余为已写入区块(programmed block)。当控制器接收到主机端的写入命令时,控制器会从备用池中找到预留的已抹除区块来写入数据。并且,在写入完成后,控制器会从备用池中找寻一个或多个的已写入区块,进行抹除操作,以作为新的预留区块。如此一来,可以减少闪存的区块中已抹除区块的数量。
另一方面,针对每一个在备用池中预留的已抹除区块,控制器都会建立其时间文件(如,时戳),用以监控其维持在已抹除状态的时间,一旦这个时间超过一个临界值,控制器会将这个已抹除区块进行写入,并且从备用池中的已写入区块中找一个或多个区块来替代,从而降低物理性伤害的风险。
本发明的一实施例公开一种管理一闪存模块的方法。其中,该闪存模块包括多个区块,且该多个区块中的一部分属于一备用池。该方法包括:在该备用池中预留至少一已抹除区块以利一写入操作的进行;监测该至少一已抹除区块的一已抹除时间;以及当该已抹除时间超过一临界值时,执行一替换操作以替换该至少一已抹除区块。
本发明的一实施例公开一种用于管理一闪存模块的控制器。其中,该闪存模块包括多个区块,且该多个区块中的一部分属于一备用池,该控制器包括:一存储单元与一处理单元。该存储单元用以存储一程序代码。该处理单元耦接于该存储单元,并用以从该存储单元中读取该程序代码,以执行该程序代码,从而进行以下操作:在该备用池中预留至少一已抹除区块以利一写入操作的进行;监测该至少一已抹除区块的一已抹除时间;以及当该已抹除时间超过一临界值时,执行一替换操作以替换该至少一已抹除区块。
本发明的一实施例公开一种存储装置,该存储装置包括:一闪存模块与一控制器。该闪存模块包括多个区块,且该多个区块中的一部分属于一备用池。该控制器用以对闪存模块进行存取,并且包括:一存储单元与一处理单元。该存储单元用以存储一程序代码。该处理单元耦接于该存储单元,并用以从该存储单元中读取该程序代码,以执行该程序代码,从而进行以下操作:在该备用池中预留至少一已抹除区块以利一写入操作的进行;监测该至少一已抹除区块的一已抹除时间;以及当该已抹除时间超过一临界值时,执行一替换操作以替换该至少一已抹除区块。
附图说明
图1绘示本发明实施例的相关存储装置、控制器与闪存模块的架构。
图2绘示一闪存模块与备用池之间的关联。
图3绘示本发明实施例的用于闪存的区块写入管理的方法的流程图。
图4绘示本发明实施例中主控命令与存储器操作命令之间的关联。
其中,附图标记说明如下:
100 存储装置
120 控制器
122 处理单元
124 存储单元
130 闪存模块
130_1~130_N 闪存芯片
138 预备池
DB_0~DBK、SB_0~SBQ 区块
210~250 步骤
具体实施方式
在以下内文中,描述了许多具体细节以提供阅读者对本发明实施例的透彻理解。然而,本领域的技术人士将能理解,如何在缺少一个或多个具体细节的情况下,或者利用其他方法或组件等来实现本发明。在其他情况下,众所皆知的结构、材料或操作不会被示出或详细描述,从而避免模糊本发明的核心概念。
此外,说明书内文给出的任何范例或者阐释,不应被其中使用的任何词汇所限制或者定义。相反地,这些范例或阐释应当被认为是针对一个特定实施例进行描述的,并且仅作为说明。本领域的技术人员将可理解,这些范例或阐释使用的任何词汇将可涵盖在本说明书中其他地方给出的其他实施例。其中,用以指出这些非限制性范例的用词包括但不限于:“例如”、“如”、“举例来说”、“在一个实施例中”以及在“在一范例中”。
说明书内的流程图中的流程和方块示出了基于本发明的各种实施例的系统、方法和计算机软件产品所能实现的架构,功能和操作。在这方面,流程图或功能方块图中的每个方块可能代表程序代码的模块,区段或者是部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。另外,功能方块图以及/或流程图中的每个方块,以及方块的组合,基本上可以由执行指定功能或动作的专用硬件系统来实现,或专用硬件和计算机程序指令的组合来实现。这些计算机程序指令还可以存储在计算机可读媒体中,该媒体可以使计算机或其他可编程数据处理装置以特定方式工作,使得存储在计算机可读媒体中的指令,实现流程图以及/或功能方块图中的方块所指定的功能/动作。
图1为本发明实施例的示意图。如图1所示,存储装置100包括一控制器120与一闪存模块130,并且受控于一主机(host device)200(存储装置100甚至可能为主机200的一部份)。主机200可包括至少一个中央处理器(未显示),并通过运作一个操作系统与应用程序来控制主机200的运作,并与周边装置(未显示)连动。而存储装置100可用来提供存储空间给主机200,存储运作操作系统与各种应用程序所必需的程序代码与数据。主控装置50的范例可包括:多功能移动电话(multifunctional mobile phone)、平板计算机(tablet)、可穿戴装置(wearable device)以及个人计算机(personal computer)例如桌面计算机或笔记本电脑。存储装置100的例子可包括(但不限于):固态硬盘(solid state drive,SSD)以及各种嵌入式(embedded)存储装置(例如符合UFS或EMMC规格的嵌入式存储装置)。
控制器120可用来存取(access)闪存模块130。在一个实施例中,闪存模块130可能是一立体NAND型闪存(3D NAND-type flash),并可包括至少一个闪存芯片(Flash memorychip),但此非本发明的限制。每一个闪存芯片包括多个区块(Block),控制器120对闪存模块130进行数据抹除的操作是以区块为单位来进行。另外,一个区块可记录特定数量的数据页(Page),而控制器120对闪存模块130进行数据写入的操作是以数据页为单位来进行写入。
控制器120可能包括处理电路例如微处理器122、与存储单元124,例如只读存储器(Read Only Memory,ROM),只读存储器124主要用来存储程序代码与特定数据,而微处理器122则用来执行程序代码以控制对闪存模块130的存取。另外,控制器120可能还包括有其他的接口逻辑、控制逻辑或缓冲存储器等等,用以辅助实现下文所述的各种操作。然而,为求说明书的简洁,在此省略不提。本领域的技术人士在阅读下文后,应能知晓如何实现运用已知的电路与文中揭露的电路组件与架构结合,从而实现本发明实施例中所提及的各式操作与相关应用。
在本实施例中,主机200可通过传送主控命令(host command)与相应的逻辑地址给控制器120,从而间接地存取存储装置100。控制器120接收主控命令(读取或写入命令)与逻辑地址,并且将主控命令转译成存储器操作命令,再以操作命令控制闪存模块130读取、写入(program)、或抹除(erase)闪存模块130当中特定物理地址的存储器单元(memoryunit)或数据页(page)、或区块(block)。再者,控制器120也会执行程序代码,以及/或参考存储单元124内的数据,从而执行一连串的操作来实现下文中将提到的特定操作。
如图2所示,闪存模块130包括多个区块,这些区块可能分布在闪存芯片130_1~130_N上。再者,闪存模块130中的区块又可被划分出一个备用池(spare pool)138。备用池138中可能包括区块SB0~SBQ,这些区块中可能没有存储数据,又或者存储无效数据(已经存储在其他区块中,并不再被更新的数据)。在本发明中,所有由主机200发出的写入命令,都会由控制器120从备用池138中选择出一个或多个区块,并根据主机200发出的写入命令中包括的数据,进行写入(将数据写
入区块的一个或多个数据页中)。当一个或多个区块因主机200发出的写入命令而被写入数据后,则会被移出备用池138,并且,控制器120会从备用池138以外的区块DB0~DBK中,选择一个或多个只有存储无效数据的区块来补充备用池138。
在本发明中,控制器120会在备用池138中预留至少一个已经处在已抹除状态的已抹除区块(如:区块SB_0),这是因为区块的抹除操作需要耗费的时间可观,预先进行抹除可以减少写入操作的延迟。当主机200对控制器120发出写入命令时,控制器120会将主机端所传送来的数据写入至预备池138中预留的已抹除区块SB_0中,并且,在主机端200对控制器120发出下一道写入命令之前,控制器120将从预备池138中的已写入(programmed)区块SB_1~SB_Q中,找寻找至少一个区块(如:区块SB_3),并将其抹除后,预留为下一次写入操作的用。
然而,如先前所提及,若区块处在已抹除状态的时间太长,可能会对其中的单元造成不可逆的物理性伤害。因此,本发明会对预备池中的已抹除区块进行管理,在一定时间后,将已抹除区块写入数据,避免可能造成的伤害。请参考图3所示的流程图,图3绘示本发明方法的一流程,该流程至少包括以下步骤:
步骤210:预留至少一个已抹除区块
步骤220:建立该至少一个已抹除区块的时戳
步骤230:判断该至少一已抹除区块的已抹除时间是否超过临界值
步骤240:写入该至少一已抹除区块
步骤250:选取至少一已写入区块替换该已抹除区块。
在步骤210中,控制器120会对预备池138中至少一个已写入区块执行抹除操作,使该至少一已写入区块(如SB_7)由已写入状态(programmed state)转换为已抹除状态,为之后可能的写入操作做准备。其中,步骤210可能发生在主机200下达写入命令之前,或者是在控制器120对另一个已抹除区块进行写入之后。在步骤220中,控制器120建立该至少一已抹除区块的一时戳。在步骤230中,控制器120根据该时戳中的时间信息与系统时间判断是否该至少一已抹除区块处在已抹除状态的一已抹除时间是否超过一临界值,此步骤的用意即为保护已抹除区块,使其避免于受到不可恢复的物理性伤害。若步骤230的判断结果为是,则进入步骤230;若否,则继续停留在此步骤。在步骤240中,由于控制器120已经发现该至少一已抹除区块的已抹除时间已经超过临界值,代表该已抹除区块面临伤害的风险。因此,控制器120会对该至少一已抹除区块进行写入,将其由已抹除状态转换成已写入状态,避免损伤。
再者,在一实施例中,控制器120可能会利用写入已抹除区块的机会,同时进行一垃圾数据回收(garbage collection)操作。其中,控制器120将由区块DB0~DBK的有效页所搜集来的数据,写入该至少一已抹除区块,从而将该至少一已抹除区块转换为已写入区块。之后,流程进入步骤250,控制器120会从预备池138中寻找至少一个已写入区块(如:SB_4)来替代前述的该至少一已抹除区块,并回到步骤210,对其进行抹除操作,为之后的写入命令做准备。
由上可知,本发明有效地保护了闪存模块130中的存储器单元,避免其因停留在已抹除状态中的时间过长而发生损伤。另一方面来说,由于本发明在预备池中随时预留了已抹除区块,使得数据写入的延迟可以被缩短(也就是说,不需要等待将已写入区块进行抹除的时间)。
另外,本发明的一特征在于,控制器120对于闪存模块130的控制行为。请参考图4,当主机端200对控制器120下达主控命令(读取或写入)时,控制器120会根据主控命令中包括的存取类型、地址以及相关数据,转换为相应的存储器操作命令,对闪存模块130中的闪存芯片130_1~130_N进行存取。
由于本发明对于已抹除区块的管理,是独立于主机端200的主控命令,且根据已抹除区块的时戳来进行。因此,即便主机端200未对控制器120下达主控命令时,也会发生因备用池138中的已抹除区块的时戳超过临界值,而引发已抹除区块的替换操作并触发垃圾数据回收操作的事件。因此,在一实施例中,控制器120可能在未收到任何主机端200的存取命令时,对闪存芯片130_1~130_N下达以下的连续指令序列:
读取:00h ALE 30h
写入:80h ALE 10h
抹除:60h ALE D0h
首先,假设一个已抹除区块的时戳超过时间上限,那么将会触发上述流程的步骤240,对已抹除区块进行写入。而如上所述,对已抹除区块进行写入可能会同时触发垃圾数据回收操作。因此,上述指令序列中的第一道读取指令,便是进行垃圾数据回收操作,从备用池138以外的区块DB0~DBK中的有效页中读取出数据。而读出后的数据会被送到控制器120进行错误纠正(error correction)处理。接着,这些处理后的数据会被写入至已抹除区块,也就是上述指令序列中的第二道写入指令。最后,会进入上述流程的步骤250,从备用池中选择另一个区块进行抹除,以替代已抹除区块,也就是上述指令序列中的第三道抹除指令。从图4下方的时序示意图可进一步看出,主控命令会引发控制器120产生相关的存储器操作命令,但控制器120仍会周期性地产生自发性的存储器操作命令。因此,本发明的一特征便是,即便主机200未对控制器120下达存取命令时,控制器120也可能会自发性地对闪存模块130发出:读取、写入、抹除的连续指令序列。
综上所述,本发明通过对于备用池的妥善管理,在有效地减少写入延迟的(通过在备用池中预留至少一个已抹除区块)同时,又避免潜在的存储器单元的物理性伤害(通过限制区块停留在已抹除状态的时间)。同时,本发明管理机制也进一步与垃圾数据回收操作结合,从而更合理地进行对已抹除区块的写入与替换。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (20)
1.一种管理一闪存模块的方法,该闪存模块包括多个区块,该多个区块中的一部分属于一备用池,该方法的特征在于,包括:
在该备用池中预留至少一已抹除区块以利一写入操作的进行;
监测该至少一已抹除区块的一已抹除时间;以及
当该已抹除时间超过一临界值时,执行一替换操作以替换该至少一已抹除区块。
2.如权利要求1所述的方法,其特征在于,该备用池中包括该至少一已抹除区块以及至少一已写入区块。
3.如权利要求1所述的方法,其特征在于,监测该至少一已抹除区块的该已抹除时间的步骤包括:
建立关联于该至少一已抹除区块的时戳;以及
定期根据该时戳中的时间信息与该临界值进行比对。
4.如权利要求1所述的方法,其特征在于,执行该替换操作的步骤包括:
对该至少一已抹除区块进行写入。
5.如权利要求4所述的方法,其特征在于,对该至少一已抹除区块进行写入的步骤包括:
对该闪存模块中的多个区块进行一垃圾数据回收操作;以及
利用将该垃圾数据回收操作所输出的回收数据对该至少一已抹除区块进行写入。
6.如权利要求1所述的方法,其特征在于,执行该替换操作的步骤包括:
从该备用池中的至少一已写入区块中选择一第一区块,并对该第一区块进行一抹除操作;以及
以该第一区块,替换该已抹除时间超过该临界值的该至少一已抹除区块。
7.如权利要求1所述的方法,特征在于,还包括:
在未接收到一主机下达的存取命令时,自动从该闪存模块中读取特定数据,并写回该闪存模块中。
8.一种用于管理一闪存模块的控制器,其中该闪存模块包括多个区块,且该多个区块中的一部分属于一备用池,该控制器特征在于,包括:
一存储单元,用以存储一程序代码;以及
一处理单元,耦接于该存储单元,用以从该存储单元中读取该程序代码,以执行该程序代码,从而进行以下操作:
在该备用池中预留至少一已抹除区块以利一写入操作的进行;
监测该至少一已抹除区块的一已抹除时间;以及
当该已抹除时间超过一临界值时,执行一替换操作以替换该至少一已抹除区块。
9.如权利要求8所述的控制器,其特征在于,该处理单元执行该程序代码,以建立关联于该至少一已抹除区块的时戳;以及定期根据该时戳中的时间信息与该临界值进行比对。
10.如权利要求8所述的控制器,其特征在于,该处理单元执行该程序代码,以对该至少一已抹除区块进行写入来执行该替换操作。
11.如权利要求10所述的控制器,其特征在于,该处理单元执行该程序代码,以对该闪存模块中的多个区块进行一垃圾数据回收操作;以及利用将该垃圾数据回收操作所输出的回收数据对该至少一已抹除区块进行写入来执行该替换操作。
12.如权利要求8所述的控制器,其特征在于,该处理单元执行该程序代码,以从该备用池中选择至少一第一区块,并对该至少一第一区块进行一抹除操作;以及以该至少一第一区块,替换该已抹除时间超过该临界值的该至少一已抹除区块。
13.如权利要求8所述的控制器,其特征在于,该控制器受控于一主机,并且该处理单元执行该程序代码,以在未接收到该主机下达的存取命令时,自动从该闪存模块中读取特定数据,并写回该闪存模块中。
14.一种存储装置,特征在于,包括:
一闪存模块,包括多个区块,且该多个区块中的一部分属于一备用池;以及
一控制器,用以对闪存模块进行存取,包括:
一存储单元,用以存储一程序代码;以及
一处理单元,耦接于该存储单元,用以从该存储单元中读取该程序代码,以执行该程序代码,从而进行以下操作:
在该备用池中预留至少一已抹除区块以利一写入操作的进行;
监测该至少一已抹除区块的一已抹除时间;以及
当该已抹除时间超过一临界值时,执行一替换操作以替换该至少一已抹除区块。
15.如权利要求14所述的存储装置,其特征在于,该备用池中包括该至少一已抹除区块以及至少一已写入区块。
16.如权利要求14所述的存储装置,其特征在于,该控制器用以建立关联于该至少一已抹除区块的时戳;以及定期根据该时戳中的时间信息与该临界值进行比对。
17.如权利要求14所述的存储装置,其特征在于,当该已抹除时间超过该临界值时,该控制器用以对该至少一已抹除区块进行写入。
18.如权利要求17所述的存储装置,其特征在于,当该已抹除时间超过该临界值时,该控制器对该闪存模块中的多个区块进行一垃圾数据回收操作;以及利用将该垃圾数据回收操作所输出的回收数据对该至少一已抹除区块进行写入。
19.如权利要求14所述的存储装置,其特征在于,当该已抹除时间超过该临界值时,该控制器从该备用池中选择至少一第一区块,并对该至少一第一区块进行一抹除操作;以及以该至少一第一区块,替换该已抹除时间超过该临界值的该至少一已抹除区块。
20.如权利要求14所述的存储装置,其特征在于,该控制器受控于一主机,并且该控制器在未接收到该主机下达的存取命令时,自动从该闪存模块中读取特定数据,并写回该闪存模块中。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW108111476 | 2019-04-01 | ||
TW108111476A TWI718516B (zh) | 2019-04-01 | 2019-04-01 | 用於快閃記憶體中保護已抹除區塊的寫入管理機制 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111767007A true CN111767007A (zh) | 2020-10-13 |
CN111767007B CN111767007B (zh) | 2023-12-22 |
Family
ID=72604604
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910417730.4A Active CN111767007B (zh) | 2019-04-01 | 2019-05-20 | 用于闪存的写入管理机制 |
Country Status (3)
Country | Link |
---|---|
US (2) | US11175841B2 (zh) |
CN (1) | CN111767007B (zh) |
TW (1) | TWI718516B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230075055A1 (en) * | 2021-09-08 | 2023-03-09 | Quanta Computer Inc. | Method and system for providing life cycle alert for flash memory device |
US11914882B2 (en) * | 2022-04-06 | 2024-02-27 | Dell Products L.P. | Data protection against mass deletion based on data storage period |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130067138A1 (en) * | 2011-09-09 | 2013-03-14 | Ocz Technology Group Inc. | Non-volatile memory-based mass storage devices and methods for writing data thereto |
CN102981966A (zh) * | 2012-11-09 | 2013-03-20 | 青岛海信宽带多媒体技术有限公司 | 一种均衡分配Flash存储块的数据存储方法 |
CN104657280A (zh) * | 2007-12-28 | 2015-05-27 | 株式会社东芝 | 存储器系统 |
US20150186072A1 (en) * | 2013-12-30 | 2015-07-02 | Sandisk Technologies Inc. | Method and system for adjusting block erase or program parameters based on a predicted erase life |
TW201546809A (zh) * | 2014-06-11 | 2015-12-16 | Elite Semiconductor Esmt | 對長期循環的非揮發性位元的防止寫入時間退化的方法 |
CN108874309A (zh) * | 2018-05-25 | 2018-11-23 | 新华三技术有限公司 | 一种管理固态硬盘中物理块的方法和装置 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7089349B2 (en) * | 2003-10-28 | 2006-08-08 | Sandisk Corporation | Internal maintenance schedule request for non-volatile memory system |
US8706990B2 (en) * | 2003-10-28 | 2014-04-22 | Sandisk Technologies Inc. | Adaptive internal table backup for non-volatile memory system |
US7441071B2 (en) * | 2006-09-28 | 2008-10-21 | Sandisk Corporation | Memory systems for phased garbage collection using phased garbage collection block or scratch pad block as a buffer |
US8040744B2 (en) * | 2009-01-05 | 2011-10-18 | Sandisk Technologies Inc. | Spare block management of non-volatile memories |
CN103488578B (zh) * | 2012-12-28 | 2016-05-25 | 晶天电子(深圳)有限公司 | 虚拟存储设备(vmd)应用/驱动器 |
US9965199B2 (en) * | 2013-08-22 | 2018-05-08 | Sandisk Technologies Llc | Smart dynamic wear balancing between memory pools |
US20150379678A1 (en) * | 2014-06-25 | 2015-12-31 | Doa'a M. Al-otoom | Techniques to Compose Memory Resources Across Devices and Reduce Transitional Latency |
US9990279B2 (en) * | 2014-12-23 | 2018-06-05 | International Business Machines Corporation | Page-level health equalization |
US10339044B2 (en) * | 2016-03-30 | 2019-07-02 | Sandisk Technologies Llc | Method and system for blending data reclamation and data integrity garbage collection |
-
2019
- 2019-04-01 TW TW108111476A patent/TWI718516B/zh active
- 2019-05-20 CN CN201910417730.4A patent/CN111767007B/zh active Active
-
2020
- 2020-01-07 US US16/735,709 patent/US11175841B2/en active Active
-
2021
- 2021-10-14 US US17/500,966 patent/US20220066641A1/en not_active Abandoned
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104657280A (zh) * | 2007-12-28 | 2015-05-27 | 株式会社东芝 | 存储器系统 |
US20130067138A1 (en) * | 2011-09-09 | 2013-03-14 | Ocz Technology Group Inc. | Non-volatile memory-based mass storage devices and methods for writing data thereto |
CN102981966A (zh) * | 2012-11-09 | 2013-03-20 | 青岛海信宽带多媒体技术有限公司 | 一种均衡分配Flash存储块的数据存储方法 |
US20150186072A1 (en) * | 2013-12-30 | 2015-07-02 | Sandisk Technologies Inc. | Method and system for adjusting block erase or program parameters based on a predicted erase life |
TW201546809A (zh) * | 2014-06-11 | 2015-12-16 | Elite Semiconductor Esmt | 對長期循環的非揮發性位元的防止寫入時間退化的方法 |
CN108874309A (zh) * | 2018-05-25 | 2018-11-23 | 新华三技术有限公司 | 一种管理固态硬盘中物理块的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
TWI718516B (zh) | 2021-02-11 |
TW202038100A (zh) | 2020-10-16 |
US11175841B2 (en) | 2021-11-16 |
US20220066641A1 (en) | 2022-03-03 |
US20200310648A1 (en) | 2020-10-01 |
CN111767007B (zh) | 2023-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107608908B (zh) | 用于数据储存装置的磨损平均方法 | |
US8392649B2 (en) | Memory storage device, controller, and method for responding to host write commands triggering data movement | |
CN110908925B (zh) | 高效能垃圾收集方法以及数据存储装置及其控制器 | |
US9280460B2 (en) | Data writing method, memory control circuit unit and memory storage apparatus | |
US9772797B2 (en) | Buffer memory management method, memory control circuit unit and memory storage device | |
US20150268879A1 (en) | Memory management method, memory storage device and memory control circuit unit | |
US9176865B2 (en) | Data writing method, memory controller, and memory storage device | |
US20150161039A1 (en) | Data erasing method, memory control circuit unit and memory storage apparatus | |
US11294586B2 (en) | Method for performing read acceleration, associated data storage device and controller thereof | |
US10642731B2 (en) | Memory management method and storage controller | |
CN110879793B (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
US20140372668A1 (en) | Data writing method, memory controller and memory storage apparatus | |
CN113885692B (zh) | 存储器效能优化方法、存储器控制电路单元以及存储装置 | |
US20220066641A1 (en) | Write management on flash memory | |
CN111737165B (zh) | 存储器控制方法、存储器存储装置及存储器控制电路单元 | |
US11347433B2 (en) | Method for performing sudden power off recovery management, associated memory device and controller thereof, and associated electronic device | |
CN112051971A (zh) | 数据整并方法、存储器存储装置及存储器控制电路单元 | |
US10635583B2 (en) | Memory management method and storage controller | |
TWI771854B (zh) | 用於快閃記憶體中保護已抹除區塊的寫入管理機制 | |
CN110489053A (zh) | 管理闪存模块的方法、相关的闪存控制器和电子装置 | |
US11809314B2 (en) | Method and apparatus for performing access control of memory device with aid of multi-stage garbage collection management | |
CN109471806B (zh) | 数据存储方法、存储器存储装置及存储器控制电路单元 | |
CN108121663B (zh) | 数据存储方法、存储器存储装置及存储器控制电路单元 | |
CN114664337A (zh) | 调整闪速存储器设备的写窗口大小的方法和装置 | |
CN116741239A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |