用于闪存的写入管理机制

文档序号:1056784 发布日期:2020-10-13 浏览:22次 >En<

阅读说明:本技术 用于闪存的写入管理机制 (Write management mechanism for flash memory ) 是由 杜建东 萧佳容 杨宗杰 于 2019-05-20 设计创作,主要内容包括:本发明公开了一种管理闪存模块的方法,该闪存模块包括多个区块,该多个区块中的一部分属于一备用池。该方法包括:在该备用池中预留至少一已抹除区块以利一写入操作的进行;监测该至少一已抹除区块的一已抹除时间;以及当该已抹除时间超过一临界值时,执行一替换操作以替换该至少一已抹除区块。本发明通过对于备用池的妥善管理,在有效地减少写入延迟的(通过在备用池中预留至少一个已抹除区块)同时,又避免潜在的存储器单元的物理性伤害(通过限制区块停留在已抹除状态的时间)。同时,本发明管理机制也进一步与垃圾数据回收操作结合,从而更合理地进行对已抹除区块的写入与替换。(The invention discloses a method for managing a flash memory module, wherein the flash memory module comprises a plurality of blocks, and one part of the blocks belongs to a spare pool. The method comprises the following steps: reserving at least one erased block in the spare pool to facilitate the proceeding of a write operation; monitoring an erased time of the at least one erased block; and when the erased time exceeds a threshold value, executing a replacement operation to replace the at least one erased block. The present invention effectively reduces write latency (by reserving at least one erased block in the spare pool) while avoiding potential physical damage to the memory cells (by limiting the time that the block stays in an erased state) through proper management of the spare pool. Meanwhile, the management mechanism of the invention is further combined with garbage data recovery operation, thereby more reasonably writing and replacing the erased blocks.)

用于闪存的写入管理机制

技术领域

本发明关于闪存,尤指一种针对闪存中的待写入区块进行管理的方法、控制器以及相关的存储装置。

背景技术

一般来说,针对主机下达的写入命令,闪存控制器会从闪存中找寻一个闲置的已抹除区块来将数据写入其中。然而,若闪存单元长时间处在已抹除状态中,可能会对单元造成不可回复的物理性伤害。因此,有必须提供一种写入管理机制来预防这种问题。

发明内容

有鉴于此,本发明的一目的在于公开一种闪存的写入管理机制。在本发明中,将从闪存的区块中划分一部分出来作为备用池(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发出:读取、写入、抹除的连续指令序列。

综上所述,本发明通过对于备用池的妥善管理,在有效地减少写入延迟的(通过在备用池中预留至少一个已抹除区块)同时,又避免潜在的存储器单元的物理性伤害(通过限制区块停留在已抹除状态的时间)。同时,本发明管理机制也进一步与垃圾数据回收操作结合,从而更合理地进行对已抹除区块的写入与替换。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

12页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:处理I/O请求的方法及设备

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类