CN109273033A - 存储器管理方法、存储器控制电路单元与存储器存储装置 - Google Patents
存储器管理方法、存储器控制电路单元与存储器存储装置 Download PDFInfo
- Publication number
- CN109273033A CN109273033A CN201710580072.1A CN201710580072A CN109273033A CN 109273033 A CN109273033 A CN 109273033A CN 201710580072 A CN201710580072 A CN 201710580072A CN 109273033 A CN109273033 A CN 109273033A
- Authority
- CN
- China
- Prior art keywords
- parameter
- erased cell
- threshold value
- valid data
- 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.)
- Granted
Links
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/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/26—Sensing or reading circuits; Data output circuits
Landscapes
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种存储器管理方法、存储器控制电路单元与存储器存储装置。本方法包括:根据存储在多个实体抹除单元中的有效数据的有效数据量获取有效数据参数,且根据所述有效数据参数获取第一门槛值。本方法也包括:根据多个第一实体抹除单元的数目获取第一判断参数,其中所述多个第一实体抹除单元为已被使用单页程序化模式来程序化数据的实体抹除单元。本方法还包括:倘若所述第一判断参数大于所述第一门槛值,执行垃圾收集操作。
Description
技术领域
本发明涉及一种用于可复写式非易失性存储器的存储器管理方法、存储器控制电路单元与存储器存储装置。
背景技术
数码相机、手机与MP3在这几年来的成长十分迅速,使得消费者对存储媒体的需求也急速增加。由于可复写式非易失性存储器(rewritable non-volatile memory)具有数据非易失性、省电、体积小、无机械结构、读写速度快等特性,因此,近年可复写式非易失性存储器产业成为电子产业中相当热门的一环。例如,以快闪存储器作为存储媒体的固态硬盘(Solid-state drive)已广泛应用作为电脑主机的硬盘,以提升电脑的存取效能。
一般来说,包含可复写式非易失性存储器模块的存储器存储装置会通过执行垃圾收集(garbage collection)操作(也称为有效数据合并操作)来释放出可用的实体抹除单元。例如,存储器存储装置在闲置(idle)时会进入背景执行模式。在背景执行模式下,当已存储数据的实体抹除单元的数目大于一个固定值时,存储器存储装置就会执行垃圾收集操作。
然而,当主机***持续地发送写入指令而使得属于某个特定的逻辑地址的数据不断地被更新时,存储器存储装置会不断地将存储旧数据的实体程序化单元标示为无效,并且将新数据存储至另一个实体程序化单元中。在此情况下,随着写入操作的执行次数的增加,虽然实际的有效数据量并未增加,但是可复写式非易失性存储器模块中已存储数据的实体程序化单元的数目却会随着增加,使得已存储数据的实体抹除单元的数目经常大于上述的固定值。在此情况下,即使可复写式非易失性存储器模块中仍具有足够的存储空间可存储数据,存储器存储装置仍会频繁地执行垃圾收集操作,以致于影响整体运作的效能。
发明内容
本发明提供一种存储器管理方法、存储器控制电路单元与存储器存储装置,其能够降低执行垃圾收集操作的频率,从而提升整体运作的效能。
本发明的一范例实施例提出一种存储器管理方法,用于一可复写式非易失性存储器模块,其中所述可复写式非易失性存储器模块具有多个实体抹除单元。本存储器管理方法包括根据存储在至少部分的所述多个实体抹除单元中的有效数据的有效数据量获取有效数据参数,且根据所述有效数据参数获取第一门槛值。本存储器管理方法还包括根据多个第一实体抹除单元的数目获取第一判断参数,其中所述多个第一实体抹除单元为所述多个实体抹除单元之中已被使用单页程序化模式来程序化数据的实体抹除单元,并且已被使用所述单页程序化模式来程序化数据的实体抹除单元的每一个存储单元存储一个数据比特。本存储器管理方法还包括倘若所述第一判断参数大于所述第一门槛值,执行垃圾收集操作。
在本发明的一范例实施例中,上述的根据存储在所述至少部分的所述多个实体抹除单元中的所述有效数据的所述有效数据量获取所述有效数据参数的步骤包括:将所述有效数据量除以预定容量以计算对应所述有效数据的有效数目来获取所述有效数据参数。
在本发明的一范例实施例中,所述预定容量为被使用多页程序化模式来程序化的一个实体抹除单元的数据容量,其中已被使用所述多页程序化模式来程序化的实体抹除单元的每一个存储单元存储多个数据比特。
在本发明的一范例实施例中,上述的根据所述有效数据参数获取所述第一门槛值的步骤包括:将计算参数减去所述有效数据参数与第一预定参数以获取所述第一门槛值,其中所述计算参数对应所述多个实体抹除单元的数目。
在本发明的一范例实施例中,其中执行所述垃圾收集操作的步骤是在一背景执行模式下执行。
在本发明的一范例实施例中,上述的存储器管理方法还包括:从主机***接收写入指令;根据所述有效数据参数获取第二门槛值;根据多个第二实体抹除单元的数目获取第二判断参数,其中所述多个第二实体抹除单元为所述多个实体抹除单元中的未存储数据的实体抹除单元;以及倘若所述第二判断参数小于所述第二门槛值,使用多页程序化模式将对应所述写入指令的数据程序化至所述多个第二实体抹除单元之中的第三实体抹除单元,其中已被使用所述多页程序化模式来程序化的实体抹除单元的每一个存储单元存储多个数据比特。
在本发明的一范例实施例中,上述的存储器管理方法还包括:倘若所述有效数据参数小于所述第二门槛值,使用所述多页程序化模式将对应所述写入指令的所述数据程序化至所述第三实体抹除单元。
在本发明的一范例实施例中,上述的存储器管理方法还包括:倘若所述第二判断参数非小于所述第二门槛值且所述有效数据参数非小于所述第二门槛值,使用所述单页程序化模式将对应所述写入指令的所述数据程序化至所述第三实体抹除单元。
在本发明的一范例实施例中,其中所述第二门槛值小于所述第一门槛值,并且所述第一门槛值与所述第二门槛值之间的差值等于预定差值。
在本发明的一范例实施例中,上述的根据所述有效数据参数获取所述第二门槛值的步骤包括:将计算参数减去所述有效数据参数与第二预定参数以获取所述第二门槛值,其中所述计算参数对应所述多个实体抹除单元的数目。
本发明的一范例实施例提出一种用于控制可复写式非易失性存储器模块的存储器控制电路单元,其中所述可复写式非易失性存储器模块具有多个实体抹除单元。所述存储器控制电路单元包括主机接口、存储器接口与存储器管理电路。所述主机接口用以连接至主机***,所述存储器接口用以连接至所述可复写式非易失性存储器模块,以及所述存储器管理电路连接至所述主机接口与所述存储器接口。所述存储器管理电路用以根据存储在至少部分的所述多个实体抹除单元中的有效数据的有效数据量获取有效数据参数。所述存储器管理电路还用以根据所述有效数据参数获取第一门槛值。所述存储器管理电路还用以根据多个第一实体抹除单元的数目获取第一判断参数,其中所述多个第一实体抹除单元为所述多个实体抹除单元之中已被使用单页程序化模式来程序化数据的实体抹除单元,并且已被使用所述单页程序化模式来程序化数据的实体抹除单元的每一个存储单元存储一个数据比特。倘若所述第一判断参数大于所述第一门槛值,所述存储器管理电路还用以执行垃圾收集操作。
在本发明的一范例实施例中,在所述根据存储在所述至少部分的所述多个实体抹除单元中的所述有效数据的所述有效数据量获取所述有效数据参数的运作中,所述存储器管理电路将所述有效数据量除以预定容量以计算对应所述有效数据的有效数目来获取所述有效数据参数。
在本发明的一范例实施例中,所述预定容量为被使用多页程序化模式来程序化的一个实体抹除单元的数据容量,其中已被使用所述多页程序化模式来程序化的实体抹除单元的每一个存储单元存储多个数据比特。
在本发明的一范例实施例中,在所述根据所述有效数据参数获取所述第一门槛值的运作中,所述存储器管理电路将计算参数减去所述有效数据参数与第一预定参数以获取所述第一门槛值,其中所述计算参数对应所述多个实体抹除单元的数目。
在本发明的一范例实施例中,所述存储器管理电路是在背景执行模式下执行倘若所述第一判断参数大于所述第一门槛值,执行所述垃圾收集操作的运作。
在本发明的一范例实施例中,所述存储器管理电路还用以从主机***接收写入指令。所述存储器管理电路还用以根据所述有效数据参数获取第二门槛值。所述存储器管理电路还用以根据多个第二实体抹除单元的数目获取第二判断参数,其中所述多个第二实体抹除单元为所述多个实体抹除单元中的未存储数据的实体抹除单元。倘若所述第二判断参数小于所述第二门槛值,所述存储器管理电路还用以使用多页程序化模式将对应所述写入指令的数据程序化至所述多个第二实体抹除单元之中的第三实体抹除单元,其中已被使用所述多页程序化模式来程序化的实体抹除单元的每一个存储单元存储多个数据比特。
在本发明的一范例实施例中,倘若所述有效数据参数小于所述第二门槛值,所述存储器管理电路还用以使用所述多页程序化模式将对应所述写入指令的所述数据程序化至所述第三实体抹除单元。
在本发明的一范例实施例中,倘若所述第二判断参数非小于所述第二门槛值且所述有效数据参数非小于所述第二门槛值,所述存储器管理电路还用以使用所述单页程序化模式将对应所述写入指令的所述数据程序化至所述第三实体抹除单元。
在本发明的一范例实施例中,所述第二门槛值小于所述第一门槛值,并且所述第一门槛值与所述第二门槛值之间的差值等于预定差值。
在本发明的一范例实施例中,在所述根据所述有效数据参数获取所述第二门槛值的运作中,所述存储器管理电路将计算参数减去所述有效数据参数与第二预定参数以获取所述第二门槛值,其中所述计算参数对应所述多个实体抹除单元的数目。
本发明的一范例实施例提出一种存储器存储装置,其包括连接接口单元、可复写式非易失性存储器模块与存储器控制电路单元。所述连接接口单元用以连接至主机***。所述可复写式非易失性存储器模块具有多个实体抹除单元。所述存储器控制电路单元连接至所述连接接口单元与所述可复写式非易失性存储器模块。所述存储器控制电路单元用以根据存储在至少部分的所述多个实体抹除单元中的有效数据的有效数据量获取有效数据参数。所述存储器控制电路单元还用以根据所述有效数据参数获取第一门槛值。所述存储器控制电路单元还用以根据多个第一实体抹除单元的数目获取第一判断参数,其中所述多个第一实体抹除单元为所述多个实体抹除单元之中已被使用单页程序化模式来程序化数据的实体抹除单元,并且已被使用所述单页程序化模式来程序化数据的实体抹除单元的每一个存储单元存储一个数据比特。倘若所述第一判断参数大于所述第一门槛值,所述存储器控制电路单元还用以执行垃圾收集操作。
在本发明的一范例实施例中,在所述根据存储在所述至少部分的所述多个实体抹除单元中的所述有效数据的所述有效数据量获取所述有效数据参数的运作中,所述存储器控制电路单元将所述有效数据量除以预定容量以计算对应所述有效数据的有效数目来获取所述有效数据参数。
在本发明的一范例实施例中,所述预定容量为被使用多页程序化模式来程序化的一个实体抹除单元的数据容量,其中已被使用所述多页程序化模式来程序化的实体抹除单元的每一个存储单元存储多个数据比特。
在本发明的一范例实施例中,在所述根据所述有效数据参数获取所述第一门槛值的运作中,所述存储器控制电路单元将计算参数减去所述有效数据参数与第一预定参数以获取所述第一门槛值,其中所述计算参数对应所述多个实体抹除单元的数目。
在本发明的一范例实施例中,所述存储器控制电路单元是在背景执行模式下执行倘若所述第一判断参数大于所述第一门槛值,执行所述垃圾收集操作的运作。
在本发明的一范例实施例中,所述存储器控制电路单元还用以从主机***接收写入指令。所述存储器控制电路单元还用以根据所述有效数据参数获取第二门槛值。所述存储器控制电路单元还用以根据多个第二实体抹除单元的数目获取第二判断参数,其中所述多个第二实体抹除单元为所述多个实体抹除单元中的未存储数据的实体抹除单元。倘若所述第二判断参数小于所述第二门槛值,所述存储器控制电路单元还用以使用多页程序化模式将对应所述写入指令的数据程序化至所述多个第二实体抹除单元之中的第三实体抹除单元,其中已被使用所述多页程序化模式来程序化的实体抹除单元的每一个存储单元存储多个数据比特。
在本发明的一范例实施例中,倘若所述有效数据参数小于所述第二门槛值,所述存储器控制电路单元还用以使用所述多页程序化模式将对应所述写入指令的所述数据程序化至所述第三实体抹除单元。
在本发明的一范例实施例中,倘若所述第二判断参数非小于所述第二门槛值且所述有效数据参数非小于所述第二门槛值,所述存储器控制电路单元还用以使用所述单页程序化模式将对应所述写入指令的所述数据程序化至所述第三实体抹除单元。
在本发明的一范例实施例中,所述第二门槛值小于所述第一门槛值,并且所述第一门槛值与所述第二门槛值之间的差值等于预定差值。
在本发明的一范例实施例中,在所述根据所述有效数据参数获取所述第二门槛值的运作中,所述存储器控制电路单元将计算参数减去所述有效数据参数与第二预定参数以获取所述第二门槛值,其中所述计算参数对应所述多个实体抹除单元的数目。
基于上述,本范例实施例的存储器管理方法、存储器控制电路单元与存储器存储装置,是根据存储在实体抹除单元中的有效数据的有效数据量来获取用以判断是否执行垃圾收集操作的门槛值,藉此使得此门槛值可随着有效数据量的变化而动态地调整,基此,可延后垃圾收集操作的启动时间,由此改善因门槛值为固定值而经常执行垃圾收集操作的状况,进而提升整体运作的效能。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。
附图说明
图1是根据一范例实施例所示出的主机***、存储器存储装置及输入/输出(I/O)装置的示意图。
图2是根据另一范例实施例所示出的主机***、存储器存储装置及输入/输出(I/O)装置的示意图。
图3是根据另一范例实施例所示出的主机***与存储器存储装置的示意图。
图4是根据一范例实施例所示出的主机***与存储器存储装置的概要方块图。
图5是根据一范例实施例所示出的存储器控制电路单元的概要方块图。
图6与图7是根据一范例实施例所示出的管理实体抹除单元的示意图。
图8是根据一范例实施例所示出的数据更新的示意图。
图9是根据一范例实施例所示出的存储器管理方法的流程图。
图10是根据另一范例实施例所示出的存储器管理方法的流程图。
附图标记说明
10:存储器存储装置
11:主机***
12:输入/输出(I/O)装置
110:***总线
111:处理器
112:随机存取存储器(RAM)
113:只读存储器(ROM)
114:数据传输接口
20:主机板
201:U盘
202:存储卡
203:固态硬盘
204:无线存储器存储装置
205:全球定位***模块
206:网络接口卡
207:无线传输装置
208:键盘
209:屏幕
210:喇叭
30:存储器存储装置
31:主机***
32:SD卡
33:CF卡
34:嵌入式存储装置
341:嵌入式多媒体卡
342:嵌入式多芯片封装存储装置
402:连接接口单元
404:存储器控制电路单元
406:可复写式非易失性存储器模块
410(0)、410(1)、410(F-1)、410(F)、410(F+1)、410(S-1)、410(S)、410(S+1)、410(R-1)、410(R)、410(R+1)、410(N):实体抹除单元
502:存储器管理电路
504:主机接口
506:存储器接口
508:缓冲存储器
510:电源管理电路
512:错误检查与校正电路
602:数据区
604:闲置区
606:***区
608:取代区
LBA(0)~LBA(H):逻辑单元
LZ(0)~LZ(M):逻辑区域
S901:根据存储在多个实体抹除单元中的有效数据的有效数据量获取有效数据参数的步骤
S903:根据有效数据参数获取第一门槛值的步骤
S905:根据多个第一实体抹除单元的数目获取第一判断参数,其中第一实体抹除单元为已被使用单页程序化模式来程序化数据的实体抹除单元的步骤
S907:判断第一判断参数是否大于第一门槛值的步骤
S909:执行垃圾收集操作的步骤
S1001:接收写入指令的步骤
S1003:根据存储在多个实体抹除单元中的有效数据的有效数据量获取有效数据参数的步骤
S1005:根据有效数据参数获取第二门槛值的步骤
S1007:根据多个第二实体抹除单元的数目获取第二判断参数,其中第二实体抹除单元为未存储数据的实体抹除单元的步骤
S1009:判断第二判断参数是否小于第二门槛值的步骤
S1011:使用单页程序化模式将对应写入指令的数据程序化至第三实体抹除单元的步骤
S1013:使用多页程序化模式将对应写入指令的数据程序化至第三实体抹除单元的步骤
具体实施方式
一般而言,存储器存储装置(也称,存储器存储***)包括可复写式非易失性存储器模块与控制器(也称,控制电路单元)。通常存储器存储装置是与主机***一起使用,以使主机***可将数据写入至存储器存储装置或从存储器存储装置中读取数据。
图1是根据一范例实施例所示出的主机***、存储器存储装置及输入/输出(I/O)装置的示意图,并且图2是根据另一范例实施例所示出的主机***、存储器存储装置及输入/输出(I/O)装置的示意图。
请参照图1与图2,主机***11一般包括处理器111、随机存取存储器(randomaccess memory,RAM)112、只读存储器(read only memory,ROM)113及数据传输接口114。处理器111、随机存取存储器112、只读存储器113及数据传输接口114皆连接至***总线(system bus)110。
在本范例实施例中,主机***11是通过数据传输接口114与存储器存储装置10连接。例如,主机***11可经由数据传输接口114将数据写入至存储器存储装置10或从存储器存储装置10中读取数据。此外,主机***11是通过***总线110与I/O装置12连接。例如,主机***11可经由***总线110将输出信号传送至I/O装置12或从I/O装置12接收输入信号。
在本范例实施例中,处理器111、随机存取存储器112、只读存储器113及数据传输接口114是可设置在主机***11的主机板20上。数据传输接口114的数目可以是一或多个。通过数据传输接口114,主机板20可以经由有线或无线方式连接至存储器存储装置10。存储器存储装置10可例如是U盘201、存储卡202、固态硬盘(Solid State Drive,SSD)203或无线存储器存储装置204。无线存储器存储装置204可例如是近距离无线通讯(Near FieldCommunication Storage,NFC)存储器存储装置、无线传真(WiFi)存储器存储装置、蓝牙(Bluetooth)存储器存储装置或低功耗蓝牙存储器存储装置(例如,iBeacon)等以各式无线通讯技术为基础的存储器存储装置。此外,主机板20也可以通过***总线110连接至全球定位***(Global Positioning System,GPS)模块205、网络接口卡206、无线传输装置207、键盘208、屏幕209、喇叭210等各式I/O装置。例如,在一范例实施例中,主机板20可通过无线传输装置207存取无线存储器存储装置204。
在一范例实施例中,所提及的主机***为可实质地与存储器存储装置配合以存储数据的任意***。虽然在上述范例实施例中,主机***是以电脑***来作说明,然而,图3是根据另一范例实施例所示出的主机***与存储器存储装置的示意图。请参照图3,在另一范例实施例中,主机***31也可以是数码相机、摄影机、通讯装置、音频播放器、视频播放器或平板电脑等***,而存储器存储装置30可为其所使用的SD卡32、CF卡33或嵌入式存储装置34等各式非易失性存储器存储装置。嵌入式存储装置34包括嵌入式多媒体卡(embeddedMMC,eMMC)341和/或嵌入式多芯片封装存储装置(embedded Multi Chip Package,eMCP)342等各类型将存储器模块直接连接于主机***的基板上的嵌入式存储装置。
图4是根据一范例实施例所示出的主机***与存储器存储装置的概要方块图。
请参照图4,存储器存储装置10包括连接接口单元402、存储器控制电路单元404与可复写式非易失性存储器模块406。
在本范例实施例中,连接接口单元402是相容于串行高级技术附件(SerialAdvanced Technology Attachment,SATA)标准。然而,必须了解的是,本发明不限于此,连接接口单元402也可以是符合安全数字(Secure Digital,SD)接口标准、并行高级技术附件(Parallel Advanced Technology Attachment,PATA)标准、电气和电子工程师协会(Institute of Electrical and Electronic Engineers,IEEE)1394标准、高速周边零件连接接口(Peripheral Component Interconnect Express,PCI Express)标准、通用序列总线(Universal Serial Bus,USB)标准、超高速一代(Ultra High Speed-I,UHS-I)接口标准、超高速二代(Ultra High Speed-II,UHS-II)接口标准、存储棒(Memory Stick,MS)接口标准、多芯片封装(Multi-Chip Package)接口标准、多媒体存储卡(Multi Media Card,MMC)接口标准、嵌入式多媒体存储卡(Embedded Multimedia Card,eMMC)接口标准、通用快闪存储器(Universal Flash Storage,UFS)接口标准、嵌入式多芯片封装(embedded MultiChip Package,eMCP)接口标准、小型快闪(Compact Flash,CF)接口标准、整合式驱动电子接口(Integrated Device Electronics,IDE)标准或其他适合的标准。在本范例实施例中,连接接口单元402可与存储器控制电路单元404封装在一个芯片中,或者连接接口单元402是布设于一包含存储器控制电路单元的芯片外。
存储器控制电路单元404用以执行以硬体型式或固体型式实作的多个逻辑闸或控制指令,并且根据主机***11的指令在可复写式非易失性存储器模块406中进行数据的写入、读取与抹除等操作。
可复写式非易失性存储器模块406是连接至存储器控制电路单元404,并且用以存储主机***11所写入的数据。可复写式非易失性存储器模块406具有实体抹除单元410(0)~410(N)。例如,实体抹除单元410(0)~410(N)可属于同一个存储器晶粒(die)或者属于不同的存储器晶粒。每一实体抹除单元分别具有复数个实体程序化单元,其中属于同一个实体抹除单元的实体程序化单元可被独立地写入且被同时地抹除。然而,必须了解的是,本发明不限于此,每一实体抹除单元是可由64个实体程序化单元、256个实体程序化单元或其他任意个实体程序化单元所组成。
更详细来说,实体抹除单元为抹除的最小单位。也即,每一实体抹除单元含有最小数目的一并被抹除的存储单元。实体程序化单元为程序化的最小单元。即,实体程序化单元为写入数据的最小单元。每一实体程序化单元通常包括数据比特区与冗余比特区。数据比特区包含多个实体存取地址用以存储使用者的数据,而冗余比特区用以存储***的数据(例如,控制信息与错误更正码)。在本范例实施例中,每一个实体程序化单元的数据比特区中会包含8个实体存取地址,且一个实体存取地址的大小为512比特组(byte)。然而,在其他范例实施例中,数据比特区中也可包含数目更多或更少的实体存取地址,本发明并不限制实体存取地址的大小以及个数。例如,在一范例实施例中,实体抹除单元为实体区块,并且实体程序化单元为实体页面或实体扇区,但本发明不以此为限。
在本范例实施例中,可复写式非易失性存储器模块406为三阶存储单元(TrinaryLevel Cell,TLC)NAND型快闪存储器模块(即,一个存储单元中可存储3个数据比特的快闪存储器模块)。然而,本发明不限于此,可复写式非易失性存储器模块406也可是单阶存储单元(Single Level Cell,SLC)NAND型快闪存储器模块(即,一个存储单元中可存储1个数据比特的快闪存储器模块)多阶存储单元(Multi Level Cell,MLC)NAND型快闪存储器模块(即,一个存储单元中可存储2个数据比特的快闪存储器模块)或其他具有相同特性的存储器模块。
图5是根据一范例实施例所示出的存储器控制电路单元的概要方块图。
请参照图5,存储器控制电路单元404包括存储器管理电路502、主机接口504与存储器接口506。
存储器管理电路502用以控制存储器控制电路单元404的整体运作。具体来说,存储器管理电路502具有多个控制指令,并且在存储器存储装置10运作时,此些控制指令会被执行以进行数据的写入、读取与抹除等运作。
在本范例实施例中,存储器管理电路502的控制指令是以固体型式来实作。例如,存储器管理电路502具有微处理器单元(未示出)与只读存储器(未示出),并且此些控制指令是被烧录至此只读存储器中。当存储器存储装置10运作时,此些控制指令会由微处理器单元来执行以进行数据的写入、读取与抹除等运作。
在本发明另一范例实施例中,存储器管理电路502的控制指令也可以程序码型式存储于可复写式非易失性存储器模块406的特定区域(例如,存储器模块中专用于存放***数据的***区)中。此外,存储器管理电路502具有微处理器单元(未示出)、只读存储器(未示出)及随机存取存储器(未示出)。特别是,此只读存储器具有驱动码,并且当存储器控制电路单元404被致能时,微处理器单元会先执行此驱动码段来将存储于可复写式非易失性存储器模块406中的控制指令载入至存储器管理电路502的随机存取存储器中。之后,微处理器单元会运转此些控制指令以进行数据的写入、读取与抹除等运作。
此外,在本发明另一范例实施例中,存储器管理电路502的控制指令也可以一硬体型式来实作。例如,存储器管理电路502包括微控制器、存储单元管理电路、存储器写入电路、存储器读取电路、存储器抹除电路与数据处理电路。存储单元管理电路、存储器写入电路、存储器读取电路、存储器抹除电路与数据处理电路是连接至微控制器。其中,存储单元管理电路用以管理可复写式非易失性存储器模块406的实体抹除单元;存储器写入电路用以对可复写式非易失性存储器模块406下达写入指令以将数据写入至可复写式非易失性存储器模块406中;存储器读取电路用以对可复写式非易失性存储器模块406下达读取指令以从可复写式非易失性存储器模块406中读取数据;存储器抹除电路用以对可复写式非易失性存储器模块406下达抹除指令以将数据从可复写式非易失性存储器模块406中抹除;而数据处理电路用以处理欲写入至可复写式非易失性存储器模块406的数据以及从可复写式非易失性存储器模块406中读取的数据。
主机接口504是连接至存储器管理电路502并且用以连接至连接接口单元402,以接收与识别主机***11所传送的指令与数据。也就是说,主机***11所传送的指令与数据会通过主机接口504来传送至存储器管理电路502。在本范例实施例中,主机接口504是相容于SATA标准。然而,必须了解的是本发明不限于此,主机接口504也可以是相容于PATA标准、IEEE 1394标准、PCI Express标准、USB标准、UHS-I接口标准、UHS-II接口标准、SD标准、MS标准、MMC标准、CF标准、IDE标准或其他适合的数据传输标准。
存储器接口506是连接至存储器管理电路502并且用以存取可复写式非易失性存储器模块406。也就是说,欲写入至可复写式非易失性存储器模块406的数据会经由存储器接口506转换为可复写式非易失性存储器模块406所能接受的格式。
缓冲存储器508是连接至存储器管理电路502并且用以暂存来自于主机***11的数据与指令或来自于可复写式非易失性存储器模块406的数据。
在一范例实施例中,存储器控制电路单元404还包括缓冲存储器508、电源管理电路510与错误检查与校正电路512。
电源管理电路510是连接至存储器管理电路502并且用以控制存储器存储装置10的电源。
错误检查与校正电路512是连接至存储器管理电路502并且用以执行错误检查与校正程序以确保数据的正确性。具体来说,当存储器管理电路502从主机***11中接收到写入指令时,错误检查与校正电路512会为对应此写入指令的数据产生对应的错误检查与校正码(Error Checking and Correcting Code,ECC Code),并且存储器管理电路502会将对应此写入指令的数据与对应的错误检查与校正码写入至可复写式非易失性存储器模块406中。之后,当存储器管理电路502从可复写式非易失性存储器模块406中读取数据时会同时读取此数据对应的错误检查与校正码,并且错误检查与校正电路512会根据此错误检查与校正码对所读取的数据执行错误检查与校正程序。
在本范例实施例中,错误检查与校正电路512是以低密度奇偶检查码(lowdensity parity code,LDPC)来实作。然而,在另一范例实施例中,错误检查与校正电路512也可以BCH码、回旋码(convolutional code)、涡轮码(turbo code)、比特翻转(bitflipping)等编码/解码算法来实作。
具体来说,存储器管理电路202会依据所接收的数据及对应的错误检查与校正码(以下也称为错误校正码)来产生错误校正码框(ECC Frame)并且将错误校正码框写入至可复写式非易失性存储器模块406中。之后,当存储器管理电路502从可复写式非易失性存储器模块406读取数据时,错误检查与校正电路512会根据错误校正码框中的错误校正码来验证所读取的数据的正确性。
以下描述存储器管理电路502、主机接口504与存储器接口506、缓冲存储器508、电源管理电路510与错误检查与校正电路512所执行的操作,也可参考为由存储器控制电路单元404所执行。
图6与图7是根据一范例实施例所示出的管理实体抹除单元的范例示意图。
必须了解的是,在此描述可复写式非易失性存储器模块406的实体抹除单元的运作时,以“提取”、“分组”、“划分”、“关联”等词来操作实体抹除单元是逻辑上的概念。也就是说,可复写式非易失性存储器模块的实体抹除单元的实际位置并未更动,而是逻辑上对可复写式非易失性存储器模块的实体抹除单元进行操作。
存储器管理电路502会将实体抹除单元410(0)~410(N)逻辑地分组为数据区602、闲置区604、***区606与取代区608。
逻辑上属于数据区602与闲置区604的实体抹除单元是用以存储来自于主机***11的数据。具体来说,数据区602的实体抹除单元是被视为已存储数据的实体抹除单元,而闲置区604的实体抹除单元是用以替换数据区602的实体抹除单元。也就是说,当从主机***11接收到写入指令与欲写入的数据时,存储器管理电路502会从闲置区604中提取实体抹除单元,并且将数据写入至所提取的实体抹除单元中,以轮替数据区602的实体抹除单元。
逻辑上属于***区606的实体抹除单元是用以记录***数据。例如,***数据包括关于可复写式非易失性存储器模块的制造商与型号、可复写式非易失性存储器模块的实体抹除单元数、每一实体抹除单元的实体程序化单元数等。
逻辑上属于取代区608中的实体抹除单元是用于坏实体抹除单元取代程序,以取代损坏的实体抹除单元。具体来说,倘若取代区608中仍存有正常的实体抹除单元并且数据区602的实体抹除单元损坏时,存储器管理电路502会从取代区608中提取正常的实体抹除单元来更换损坏的实体抹除单元。
特别是,数据区602、闲置区604、***区606与取代区608的实体抹除单元的数量会根据不同的存储器规格而有所不同。此外,必须了解的是,在存储器存储装置10的运作中,实体抹除单元关联至数据区602、闲置区604、***区606与取代区608的分组关系会动态地变动。例如,当闲置区604中的实体抹除单元损坏而被取代区608的实体抹除单元取代时,则原本取代区608的实体抹除单元会被关联至闲置区604。
请参照图7,存储器管理电路502会配置逻辑单元LBA(0)~LBA(H)以映射数据区602的实体抹除单元,其中每一逻辑单元具有多个逻辑子单元以映射对应的实体抹除单元的实体程序化单元。并且,当主机***11欲写入数据至逻辑单元或更新存储于逻辑单元中的数据时,存储器管理电路502会从闲置区604中提取一个实体抹除单元来写入数据,以轮替数据区602的实体抹除单元。在本范例实施例中,逻辑子单元可以是逻辑页面或逻辑扇区。
为了识别每个逻辑单元的数据被存储在哪个实体抹除单元,在本范例实施例中,存储器管理电路502会记录逻辑单元与实体抹除单元之间的映射。并且,当主机***11欲在逻辑子单元中存取数据时,存储器管理电路502会确认此逻辑子单元所属的逻辑单元,并且在此逻辑单元所映射的实体抹除单元中来存取数据。例如,在本范例实施例中,存储器管理电路502会在可复写式非易失性存储器模块406中存储逻辑-实体映射表来记录每一逻辑单元所映射的实体抹除单元,并且当欲存取数据时存储器管理电路502会将逻辑-实体映射表载入至缓冲存储器508来维护。
值得一提的是,由于缓冲存储器508的容量有限无法存储记录所有逻辑单元的映射关系的映射表,因此,在本范例实施例中,存储器管理电路502会将逻辑单元LBA(0)~LBA(H)分组为多个逻辑区域LZ(0)~LZ(M),并且为每一逻辑区域配置一个逻辑-实体映射表。特别是,当存储器管理电路502欲更新某个逻辑单元的映射时,对应此逻辑单元所属的逻辑区域的逻辑-实体映射表会被载入至缓冲存储器508来被更新。
在本范例实施例中,存储器管理电路502可使用单页程序化模式或多页程序化模式来将数据程序化至实体抹除单元。所谓单页程序化模式是指,一个存储单元只存储一个数据比特的写入模式。单页程序化模式例如是单阶存储单元(single layer memory cell,SLC)程序化模式、下实体程序化(lower physical programming)模式、混合程序化(mixture programming)模式及少阶存储单元(less layer memory cell)程序化模式的其中之一。更详细来说,在单阶存储单元模式中,一个存储单元只存储一个比特的数据。在下实体程序化模式中,只有下实体程序化单元会被程序化,而此下实体程序化单元所对应的上实体程序化单元可不被程序化。在混合程序化模式中,有效数据(或,真实数据)会被程序化于下实体程序化单元中,而同时虚拟数据(dummy data)会被程序化至存储有效数据的下实体程序化单元所对应的上实体程序化单元中。在少阶存储单元模式中,一个存储单元存储一第一数目的比特的数据,例如,此第一数目可设为“1”。所谓多页程序化模式是指,一个存储单元存储多个数据比特的写入模式。多页程序化模式例如是多阶存储单元(MLC)程序化模式、三阶(TLC)存储单元程序化模式或类似模式。在多页程序化模式中,一个存储单元存储有一第二数目的比特的数据,其中此第二数目等于或大于“2”。例如,此第二数目可设为2或3。
也就是说,在单页程序化模式中,一条字元线上的存储单元仅提供一个实体程序化单元的存储容量来存储数据,而在多页程序化模式中,一条字元线上的存储单元可提供多个实体程序化单元的存储容量来存储数据。因此,基于多页程序化模式来程序化的一个实体抹除单元的数据容量会大于基于单页程序化模式来程序化的一个实体抹除单元的数据容量。在一范例实施例中,基于多页程序化模式来程序化的一个实体抹除单元的数据容量也称为一个实体抹除单元的预定容量。此外,基于单页程序化模式来程序化存储单元的程序化速度会高于基于多页程序化模式来程序化存储单元的程序化速度(即,使用多页程序化模式来程序化数据的所需操作时间大于使用单页程序化模式来程序化数据的所需操作时间),而基于单页程序化模式而被存储的数据的可靠度也往往高于基于多页程序化模式而被存储的数据的可靠度。
图8是根据一范例实施例所示出的数据更新的示意图。
请参照图7与图8,如上所述,在可复写式非易失性存储器模块406中,数据区602与闲置区604的实体抹除单元会以轮替方式来存储来自于主机***11的数据。例如,当从主机***11接收到指示将数据写入至逻辑单元LBA(0)的写入指令时,存储器管理电路502从闲置区604提取实体抹除单元410(0),将属于逻辑单元LBA(0)的数据程序化至实体抹除单元410(0),并将实体抹除单元410(0)关联至数据区602。之后,在逻辑单元LBA(0)的数据被程序化至实体抹除单元410(0)的情况下,若来自于主机***11的另一写入指令指示将新数据写入至逻辑单元LBA(0),逻辑单元LBA(0)的新数据会被程序化至另一个实体抹除单元410(1)中,而存储在实体抹除单元410(0)中的数据会被视为旧数据而被标示为无效。若主机***11不断地发送指示将新数据写入至逻辑单元LBA(0)的写入指令,属于逻辑单元LBA(0)的新数据会不断地被程序化至实体抹除单元410(2)~410(F-1),而存储在实体抹除单元410(0)~410(F-2)中属于逻辑单元LBA(0)的旧数据皆会被标示为无效。当上述的操作执行一段时间之后,属于逻辑单元LBA(0)的新数据被程序化至实体抹除单元410(F),而存储在实体抹除单元410(0)~410(F-1)中属于逻辑单元LBA(0)的旧数据皆被标示为无效(见斜线部分)。此时,虽然实体抹除单元410(0)~410(F)皆为已存储数据的实体抹除单元(或称为已使用的实体抹除单元),然而,只有存储在实体抹除单元410(F)的新数据是有效数据。也就是说,虽然实体抹除单元410(0)~410(F)皆存储有数据,但实际上实体抹除单元410(0)~410(F)所存储的有效数据的数据量(或称为有效数据量)只相当于一个实体抹除单元的数据容量。换句话说,在上述情况下,根据来自于主机***的11指令而执行了多次写入操作之后,虽然已存储数据的实体抹除单元的数目不断地增加,但对应的有效数据量并未增加。
在本范例实施例中,当已存储数据的实体抹除单元(以下也称第一实体抹除单元)的数目大于一特定数值时,存储器管理电路502会执行垃圾收集操作来整理数据区602中的有效数据,以将数据区602中未存储有效数据的实体抹除单元重新关联至闲置区604。在一范例实施例中,有效数据量可为存储在数据区602的实体抹除单元中的有效数据的总数据量,且第一实体抹除单元可为属于数据区602的实体抹除单元。在一范例实施例中,有效数据量为存储于第一实体抹除单元中的有效数据的总数据量。存储器管理电路502会取得对应有效数据量的有效数据参数,并根据有效数据参数来获取对应上述特定数值的一个门槛值(以下也称第一门槛值)。
更详细来说,存储器管理电路502可将有效数据量除以一个实体抹除单元的预定容量来获取对应有效数据量的一个有效数目,并且根据有效数目来获取有效数据参数。例如,此有效数据参数可正相关于存储于第一实体抹除单元中的有效数据的总数据量。此外,存储器管理电路502还会获取对应所有实体抹除单元的数目的一个参数(以下也称计算参数)。接着,存储器管理电路502可根据计算参数与有效数据参数来获取第一门槛值。例如,存储器管理电路502可将计算参数减去有效数据参数而获得一差值(以下也称第一差值),并将第一差值减去一预定参数(以下也称第一预定参数)来获取第一门槛值。第一预定参数可根据在管理上所需消耗的实体抹除单元的数目来设定。而在另一范例实施例中,存储器管理电路502也可将第一差值视为第一门槛值。
再者,存储器管理电路502会取得第一实体抹除单元(也就是已存储数据的实体抹除单元)的数目,并且根据第一实体抹除单元的数目获取一参数(以下也称第一判断参数)。换句话说,第一判断参数是对应于已存储数据的实体抹除单元的数目。之后,存储器管理电路502会判断第一判断参数是否大于第一门槛值。当第一判断参数大于第一门槛值时,存储器管理电路502会执行垃圾收集操作。
存储器管理电路502可从第一实体抹除单元中选取至少一个实体抹除单元来执行垃圾收集操作。存储器管理电路502会将此至少一个实体抹除单元中的有效数据复制到另一个从闲置区604选择的实体抹除单元。例如,存储器管理电路502可使用单页程序化模式或多页程序化模式来将所复制的有效数据存储至所选择的实体抹除单元。之后,存储器管理电路502会对此至少一个实体抹除单元执行抹除操作而使此至少一个实体抹除单元成为未存储数据的实体抹除单元,并将已被抹除的实体抹除单元关联至闲置区604。经由垃圾收集操作,已存储数据的实体抹除单元(也就是第一实体抹除单元)的数目会减少(和/或属于闲置区6014的实体抹除单元的数目会增加),并且第一判断参数也会改变。例如,若第一判断参数的数值正相关于当前第一实体抹除单元的总数,则随着第一实体抹除单元的数目减少,第一判断参数的数值也会减少。存储器管理电路502可持续判断第一判断参数是否大于第一门槛值。当第一判断参数小于或等于第一门槛值时,存储器管理电路502可结束垃圾收集操作。
在可复写式非易失性存储器模块406为TLC NAND型快闪存储器模块的例子中,存储器管理电路502可使用单页程序化模式或多页程序化模式来将数据程序化至实体抹除单元中。在一范例实施例中,存储器管理电路502可将实体抹除单元初始地设定为基于单页程序化模式来程序化。也就是说,当接收到来自于主机***11的写入指令时,存储器管理电路502会从闲置区604中提取一个实体抹除单元,并且使用单页程序化模式将对应于此写入指令的数据(即写入数据)程序化至此实体抹除单元中的实体程序化单元。尔后,若此实体抹除单元被写满(也就是此实体抹除单元中的所有实体程序化单元皆已存储数据),存储器管理电路502会将此实体抹除单元关联至数据区602,并且从闲置区604中提取另一个实体抹除单元来程序化数据。在本范例实施例中,前述的第一实体抹除单元(也就是已存储数据的实体抹除单元)可为数据区602中已被使用单页程序化模式来程序化的实体抹除单元。
属于闲置区604的实体抹除单元可视为未存储数据的实体抹除单元或闲置实体抹除单元(以下也称第二实体抹除单元)。随着写入操作的执行次数增加,第二实体抹除单元的数目会对应减少。在本范例实施例中,当第二实体抹除单元的数目少于另一特定数值时,存储器管理电路502会将闲置区604中剩余的实体抹除单元设定为基于多页程序化模式来程序化。更详细来说,存储器管理电路502可根据上述有效数据量来获取对应此特定数值的另一个门槛值(以下也称第二门槛值)。例如,存储器管理电路502可将前述根据计算参数与有效数据参数所取得的第一差值减去另一预定参数(以下也称第二预定参数)以计算出第二门槛值。第二预定参数也可根据在管理上所需消耗的实体抹除单元的数目来设定,并且第二预定参数可不同于第一预定参数。举例来说,第二门槛值可小于第一门槛值。也就是说,第一门槛值与第二门槛值之间存在一预定差值。因此,在另一范例实施例中,存储器管理电路502也可将第一门槛值减去预定差值来获取第二门槛值。预定差值可为对应于15~20个实体抹除单元的数值。例如,预定差值可等于15。
之后,存储器管理电路502会获取对应未存储数据的实体抹除单元(也就是第二实体抹除单元)的数目的参数(以下也称第二判断参数),并且判断第二判断参数是否小于第二门槛值。例如,第二实体抹除单元的数目可为属于闲置区604的实体抹除单元的总数,且第二判断参数可正相关于第二实体抹除单元的数目。当第二判断参数小于第二门槛值时,存储器管理电路502会将闲置区604中剩余的实体抹除单元设定为基于多页程序化模式来程序化。在将实体抹除单元设定为基于多页程序化模式来程序化之后,当从主机***11接收到写入指令时,存储器管理电路502会从闲置区604中提取实体抹除单元,并且使用多页程序化模式将对应此写入指令的数据(即写入数据)程序化至所提取的实体抹除单元中。换句话说,所提取的实体抹除单元即为前述的第二实体抹除单元的其中之一。存储器管理电路502可持续判断第二判断参数是否小于第二门槛值。若第二判断参数非小于第二门槛值,则存储器管理电路502可使用单页程序化模式来执行实体抹除单元的程序化操作。
在另一范例实施例中,存储器管理电路502还可根据对应有效数据量的有效数据参数与第二门槛值来判断要使用单页程序化模式或多页程序化操作来执行实体抹除单元的程序化操作。若有效数据参数小于第二门槛值,存储器管理电路502会使用多页程序化模式来对闲置区604中剩余的实体抹除单元执行程序化操作。换言之,存储器管理电路502可在第二判断参数小于第二门槛值或有效数据参数小于第二门槛值时,使用多页程序化模式来执行后续对于实体抹除单元的程序化操作。此外,存储器管理电路502可在第二判断参数非小于第二门槛值并且有效数据参数非小于第二门槛值时,使用单页程序化模式来执行后续对于实体抹除单元的程序化操作。
在一范例实施例中,上述的各参数可分别以相关的实体抹除单元的数目来表示。例如,存储器管理电路502可将有效数据量除以一个实体抹除单元的预定容量而计算出有效数目,并将此有效数目视为有效数据参数。此有效数目即可用以表示有效数据量相当于几个实体抹除单元的预定容量。计算参数可为所有实体抹除单元的数目(例如,计算参数可为数据区602与闲置区604中所有实体抹除单元的总数)。第一预定参数与第二预定参数可分别为在管理上所需消耗的实体抹除单元的数目,且第一预定参数与第二预定参数可相同或不同,视实务需求而定。第一判断参数可为已存储数据的实体抹除单元的数目,而第二判断参数可为未存储数据的实体抹除单元的数目。举例来说,所有实体抹除单元的数目为100,计算参数可等于100。假设有效数目等于50,表示当前有效数据量相当于50个实体抹除单元的预定容量。倘若第一预定参数为10,则第一门槛值可等于40。倘若预定差值为15(也就是第二预定参数为25),则第二门槛值可等于25。
在另一范例实施例中,上述的各参数也可分别以相关的实体抹除单元的数目的对应比例来表示。上述的对应比例可分别为百分比或0到1的数值。例如,有效数据参数可为有效数目除以所有实体抹除单元的数目所取得的比例。计算参数可为对应所有实体抹除单元的数目的比例,也就是说,计算参数可为100%或1。第一预定参数或第二预定参数可为在管理上所需消耗的实体抹除单元的数目除以所有实体抹除单元的数目所取得的比例。第一判断参数可为已存储数据的实体抹除单元的数目除以所有实体抹除单元的数目所取得的比例。第二判断参数可为未存储数据的实体抹除单元的数目除以所有实体抹除单元的数目所取得的比例。举例来说,对应所有实体抹除单元的数目的计算参数等于100%。假设有效数目等于50%,表示有效数目为所有实体抹除单元的数目的50%。倘若第一预定参数为10%,则第一门槛值可等于40%。倘若第二预定参数为25%,则第二门槛值可等于25%。
图9是根据一范例实施例所示出的存储器管理方法的流程图。
请参照图9,在步骤S901中,存储器管理电路502根据存储在多个实体抹除单元中的有效数据的有效数据量获取有效数据参数。前述的多个实体抹除单元可为属于数据区602的实体抹除单元。具体而言,存储器管理电路502是根据有效数据量与一个实体抹除单元的数据容量来计算出有效数目,以根据有效数目获取对应的有效数据参数。
在步骤S903中,存储器管理电路502根据有效数据参数获取第一门槛值。在本步骤中,存储器管理电路502还可取得对应所有实体抹除单元的数目的计算参数,并且根据计算参数、有效数据参数与第一预定参数来计算出一差值以获取第一门槛值。在步骤S905中,存储器管理电路502根据多个第一实体抹除单元的数目获取第一判断参数,其中第一实体抹除单元为已被使用单页程序化模式来程序化数据的实体抹除单元。
之后,在步骤S907中,存储器管理电路502会判断第一判断参数是否大于第一门槛值。倘若第一判断参数非大于第一门槛值,存储器管理电路502可重复执行步骤S901~S907以持续地更新第一门槛值及第一判断参数,并且判断第一判断参数是否大于第一门槛值。另一方面,倘若第一判断参数大于第一门槛值,在步骤S909中,存储器管理电路502会执行垃圾收集操作。
图10是根据另一范例实施例所示出的存储器管理方法的流程图。在图10的范例实施例中,实体抹除单元可初始地被设定为基于单页程序化模式来程序化。
请参照图10,在步骤S1001中,存储器管理电路502从主机***11接收写入指令。在步骤S1003中,存储器管理电路502根据存储在多个实体抹除单元中的有效数据的有效数据量获取有效数据参数。
在步骤S1005中,存储器管理电路502根据有效数据参数获取第二门槛值。在本步骤中,存储器管理电路502还可取得对应所有实体抹除单元的数目的计算参数,并且根据计算参数、有效数据参数与第二预定参数来计算出一差值以获取第二门槛值。第二门槛值与图9中所述的第一门槛值之间可存在预定差值。
在步骤S1007中,存储器管理电路502会根据多个第二实体抹除单元的数目获取第二判断参数,其中第二实体抹除单元为未存储数据的实体抹除单元。或者,第二实体抹除单元为属于闲置区604的实体抹除单元。
之后,在步骤S1009中,存储器管理电路502会判断第二判断参数是否小于第二门槛值。倘若第二判断参数非小于第二门槛值,在步骤S1011中,存储器管理电路502使用单页程序化模式将对应写入指令的数据程序化至第三实体抹除单元。倘若第二判断参数小于第二门槛值,在步骤S1013中,存储器管理电路502使用多页程序化模式将对应写入指令的数据程序化至第三实体抹除单元。第三实体抹除单元可为第二实体抹除单元的其中之一。
图9及图10中的各步骤的详细内容已于前述的范例实施例中说明,于此不再赘述。此外,存储器管理电路502可在不同的执行模式下分别执行图9与图10的各步骤。举例来说,存储器管理电路502可在背景执行模式下执行图9中的各步骤,并且在运行模式下执行图10中的各步骤。
综上所述,本发明的存储器管理方法会根据有效数据量来取得用以判断是否执行垃圾收集操作的门槛值,藉此使得此门槛值可随着有效数据量的变化而动态地调整,基此,可延后垃圾收集操作的启动时间,由此避免因门槛值为固定值而经常执行垃圾收集操作的状况。此外,本发明的存储器管理方法还会根据有效数据量来取得用以判断是否改变实体抹除单元的程序化模式的门槛值。藉此可提升整体运作的效能。
虽然本发明已以实施例揭示如上,然其并非用以限定本发明,任何所属技术领域中技术人员,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,故本发明的保护范围当视权利要求所界定者为准。
Claims (25)
1.一种存储器管理方法,用于可复写式非易失性存储器模块,其中所述可复写式非易失性存储器模块具有多个实体抹除单元,其特征在于,所述存储器管理方法包括:
根据存储在至少部分的所述多个实体抹除单元中的有效数据的有效数据量获取有效数据参数;
根据所述有效数据参数获取第一门槛值;
根据多个第一实体抹除单元的数目获取第一判断参数,其中所述多个第一实体抹除单元为所述多个实体抹除单元之中已被使用单页程序化模式来程序化数据的实体抹除单元,并且已被使用所述单页程序化模式来程序化数据的实体抹除单元的每一个存储单元存储一个数据比特;以及
若所述第一判断参数大于所述第一门槛值,执行垃圾收集操作。
2.根据权利要求1所述的存储器管理方法,其中根据存储在所述至少部分的所述多个实体抹除单元中的所述有效数据的所述有效数据量获取所述有效数据参数的步骤包括:
将所述有效数据量除以预定容量以计算对应所述有效数据的有效数目来获取所述有效数据参数。
3.根据权利要求2所述的存储器管理方法,其中所述预定容量为被使用多页程序化模式来程序化的一个实体抹除单元的数据容量,其中已被使用所述多页程序化模式来程序化的实体抹除单元的每一个存储单元存储多个数据比特。
4.根据权利要求1所述的存储器管理方法,其中根据所述有效数据参数获取所述第一门槛值的步骤包括:
将一计算参数减去所述有效数据参数与第一预定参数以获取所述第一门槛值,其中所述计算参数对应所述多个实体抹除单元的数目。
5.根据权利要求1所述的存储器管理方法,其中执行所述垃圾收集操作的步骤是在背景执行模式下执行。
6.根据权利要求1所述的存储器管理方法,还包括:
从主机***接收写入指令;
根据所述有效数据参数获取第二门槛值;
根据多个第二实体抹除单元的数目获取第二判断参数,其中所述多个第二实体抹除单元为所述多个实体抹除单元中的未存储数据的实体抹除单元;以及
倘若所述第二判断参数小于所述第二门槛值,使用多页程序化模式将对应所述写入指令的数据程序化至所述多个第二实体抹除单元之中的第三实体抹除单元,其中已被使用所述多页程序化模式来程序化的实体抹除单元的每一个存储单元存储多个数据比特。
7.根据权利要求6所述的存储器管理方法,还包括:
若所述有效数据参数小于所述第二门槛值,使用所述多页程序化模式将对应所述写入指令的所述数据程序化至所述第三实体抹除单元。
8.根据权利要求7所述的存储器管理方法,还包括:
若所述第二判断参数非小于所述第二门槛值且所述有效数据参数非小于所述第二门槛值,使用所述单页程序化模式将对应所述写入指令的所述数据程序化至所述第三实体抹除单元。
9.根据权利要求6所述的存储器管理方法,其中所述第二门槛值小于所述第一门槛值,并且所述第一门槛值与所述第二门槛值之间的差值等于预定差值。
10.根据权利要求6所述的存储器管理方法,其中根据所述有效数据参数获取所述第二门槛值的步骤包括:
将计算参数减去所述有效数据参数与第二预定参数以获取所述第二门槛值,其中所述计算参数对应所述多个实体抹除单元的数目。
11.一种存储器控制电路单元,用于控制可复写式非易失性存储器模块,其特征在于,所述存储器控制电路单元包括:
主机接口,用以连接至主机***;
存储器接口,用以连接至所述可复写式非易失性存储器模块,其中所述可复写式非易失性存储器模块具有多个实体抹除单元;以及
存储器管理电路,连接至所述主机接口与所述存储器接口,
其中所述存储器管理电路用以根据存储在至少部分的所述多个实体抹除单元中的有效数据的有效数据量获取有效数据参数,
其中所述存储器管理电路还用以根据所述有效数据参数获取第一门槛值,
其中所述存储器管理电路还用以根据多个第一实体抹除单元的数目获取第一判断参数,其中所述多个第一实体抹除单元为所述多个实体抹除单元之中已被使用单页程序化模式来程序化数据的实体抹除单元,并且已被使用所述单页程序化模式来程序化数据的实体抹除单元的每一个存储单元存储一个数据比特,
其中若所述第一判断参数大于所述第一门槛值,所述存储器管理电路还用以执行垃圾收集操作。
12.根据权利要求11所述的存储器控制电路单元,其中在所述根据存储在所述至少部分的所述多个实体抹除单元中的所述有效数据的所述有效数据量获取所述有效数据参数的运作中,所述存储器管理电路将所述有效数据量除以预定容量以计算对应所述有效数据的有效数目来获取所述有效数据参数。
13.根据权利要求11所述的存储器控制电路单元,其中在所述根据所述有效数据参数获取所述第一门槛值的运作中,所述存储器管理电路将计算参数减去所述有效数据参数与第一预定参数以获取所述第一门槛值,其中所述计算参数对应所述多个实体抹除单元的数目。
14.根据权利要求11所述的存储器控制电路单元,其中所述存储器管理电路还用以从主机***接收写入指令,
其中所述存储器管理电路还用以根据所述有效数据参数获取第二门槛值,
其中所述存储器管理电路还用以根据多个第二实体抹除单元的数目获取第二判断参数,其中所述多个第二实体抹除单元为所述多个实体抹除单元中的未存储数据的实体抹除单元,
其中若所述第二判断参数小于所述第二门槛值,所述存储器管理电路还用以使用多页程序化模式将对应所述写入指令的数据程序化至所述多个第二实体抹除单元之中的第三实体抹除单元,其中已被使用所述多页程序化模式来程序化的实体抹除单元的每一个存储单元存储多个数据比特。
15.根据权利要求14所述的存储器控制电路单元,其中若所述有效数据参数小于所述第二门槛值,所述存储器管理电路还用以使用所述多页程序化模式将对应所述写入指令的所述数据程序化至所述第三实体抹除单元。
16.根据权利要求15所述的存储器控制电路单元,其中若所述第二判断参数非小于所述第二门槛值且所述有效数据参数非小于所述第二门槛值,所述存储器管理电路还用以使用所述单页程序化模式将对应所述写入指令的所述数据程序化至所述第三实体抹除单元。
17.根据权利要求14所述的存储器控制电路单元,其中所述第二门槛值小于所述第一门槛值,并且所述第一门槛值与所述第二门槛值之间的差值等于预定差值。
18.根据权利要求14所述的存储器控制电路单元,其中在所述根据所述有效数据参数获取所述第二门槛值的运作中,所述存储器管理电路将计算参数减去所述有效数据参数与第二预定参数以获取所述第二门槛值,其中所述计算参数对应所述多个实体抹除单元的数目。
19.一种存储器存储装置,其特征在于,包括
连接接口单元,用以连接至主机***;
可复写式非易失性存储器模块,具有多个实体抹除单元;以及
存储器控制电路单元,连接至所述连接接口单元与所述可复写式非易失性存储器模块,
其中所述存储器控制电路单元用以根据存储在至少部分的所述多个实体抹除单元中的有效数据的有效数据量获取有效数据参数,
其中所述存储器控制电路单元还用以根据所述有效数据参数获取第一门槛值,
其中所述存储器控制电路单元还用以根据多个第一实体抹除单元的数目获取第一判断参数,其中所述多个第一实体抹除单元为所述多个实体抹除单元之中已被使用单页程序化模式来程序化数据的实体抹除单元,并且已被使用所述单页程序化模式来程序化数据的实体抹除单元的每一个存储单元存储一个数据比特,
其中若所述第一判断参数大于所述第一门槛值,所述存储器控制电路单元还用以执行垃圾收集操作。
20.根据权利要求19所述的存储器存储装置,其中在所述根据存储在所述至少部分的所述多个实体抹除单元中的所述有效数据的所述有效数据量获取所述有效数据参数的运作中,所述存储器控制电路单元将所述有效数据量除以预定容量以计算对应所述有效数据的有效数目来获取所述有效数据参数。
21.根据权利要求19所述的存储器存储装置,其中在所述根据所述有效数据参数获取所述第一门槛值的运作中,所述存储器控制电路单元将计算参数减去所述有效数据参数与第一预定参数以获取所述第一门槛值,其中所述计算参数对应所述多个实体抹除单元的数目。
22.根据权利要求19所述的存储器存储装置,其中所述存储器控制电路单元还用以从主机***接收写入指令,
其中所述存储器控制电路单元还用以根据所述有效数据参数获取第二门槛值,
其中所述存储器控制电路单元还用以根据多个第二实体抹除单元的数目获取第二判断参数,其中所述多个第二实体抹除单元为所述多个实体抹除单元中的未存储数据的实体抹除单元,
其中倘若所述第二判断参数小于所述第二门槛值,所述存储器控制电路单元还用以使用多页程序化模式将对应所述写入指令的数据程序化至所述多个第二实体抹除单元之中的第三实体抹除单元,其中已被使用所述多页程序化模式来程序化的实体抹除单元的每一个存储单元存储多个数据比特。
23.根据权利要求22所述的存储器存储装置,其中若所述有效数据参数小于所述第二门槛值,所述存储器控制电路单元还用以使用所述多页程序化模式将对应所述写入指令的所述数据程序化至所述第三实体抹除单元。
24.根据权利要求23所述的存储器存储装置,其中若所述第二判断参数非小于所述第二门槛值且所述有效数据参数非小于所述第二门槛值,所述存储器控制电路单元还用以使用所述单页程序化模式将对应所述写入指令的所述数据程序化至所述第三实体抹除单元。
25.根据权利要求22所述的存储器存储装置,其中在所述根据所述有效数据参数获取所述第一门槛值的运作中,所述存储器控制电路单元将计算参数减去所述有效数据参数与第二预定参数以获取所述第二门槛值,其中所述计算参数对应所述多个实体抹除单元的数目。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710580072.1A CN109273033B (zh) | 2017-07-17 | 2017-07-17 | 存储器管理方法、存储器控制电路单元与存储器存储装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710580072.1A CN109273033B (zh) | 2017-07-17 | 2017-07-17 | 存储器管理方法、存储器控制电路单元与存储器存储装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109273033A true CN109273033A (zh) | 2019-01-25 |
CN109273033B CN109273033B (zh) | 2021-03-30 |
Family
ID=65152320
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710580072.1A Active CN109273033B (zh) | 2017-07-17 | 2017-07-17 | 存储器管理方法、存储器控制电路单元与存储器存储装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109273033B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI696073B (zh) * | 2019-04-02 | 2020-06-11 | 群聯電子股份有限公司 | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 |
CN111625197A (zh) * | 2020-05-28 | 2020-09-04 | 深圳宏芯宇电子股份有限公司 | 存储器控制方法、存储器存储装置及存储器控制器 |
CN111813325A (zh) * | 2019-04-12 | 2020-10-23 | 群联电子股份有限公司 | 存储器控制方法、存储器存储装置及存储器控制电路单元 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7072905B2 (en) * | 2002-12-06 | 2006-07-04 | Sun Microsystems, Inc. | Better placement of objects reachable from outside a generation managed by the train algorithm |
CN104246725A (zh) * | 2012-04-25 | 2014-12-24 | 索尼公司 | 用于顺序写入的非易失性存储器设备 |
TW201527973A (zh) * | 2014-01-09 | 2015-07-16 | Phison Electronics Corp | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 |
CN105320464A (zh) * | 2014-07-21 | 2016-02-10 | 群联电子股份有限公司 | 防止读取干扰的方法、存储器控制电路单元与存储装置 |
TW201635296A (zh) * | 2015-03-23 | 2016-10-01 | 群聯電子股份有限公司 | 資料程式化方法、記憶體儲存裝置及記憶體控制電路單元 |
TW201727647A (zh) * | 2016-01-20 | 2017-08-01 | 大心電子(英屬維京群島)股份有限公司 | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 |
-
2017
- 2017-07-17 CN CN201710580072.1A patent/CN109273033B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7072905B2 (en) * | 2002-12-06 | 2006-07-04 | Sun Microsystems, Inc. | Better placement of objects reachable from outside a generation managed by the train algorithm |
CN104246725A (zh) * | 2012-04-25 | 2014-12-24 | 索尼公司 | 用于顺序写入的非易失性存储器设备 |
TW201527973A (zh) * | 2014-01-09 | 2015-07-16 | Phison Electronics Corp | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 |
CN105320464A (zh) * | 2014-07-21 | 2016-02-10 | 群联电子股份有限公司 | 防止读取干扰的方法、存储器控制电路单元与存储装置 |
TW201635296A (zh) * | 2015-03-23 | 2016-10-01 | 群聯電子股份有限公司 | 資料程式化方法、記憶體儲存裝置及記憶體控制電路單元 |
TW201727647A (zh) * | 2016-01-20 | 2017-08-01 | 大心電子(英屬維京群島)股份有限公司 | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI696073B (zh) * | 2019-04-02 | 2020-06-11 | 群聯電子股份有限公司 | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 |
CN111813325A (zh) * | 2019-04-12 | 2020-10-23 | 群联电子股份有限公司 | 存储器控制方法、存储器存储装置及存储器控制电路单元 |
CN111813325B (zh) * | 2019-04-12 | 2023-06-27 | 群联电子股份有限公司 | 存储器控制方法、存储器存储装置及存储器控制电路单元 |
CN111625197A (zh) * | 2020-05-28 | 2020-09-04 | 深圳宏芯宇电子股份有限公司 | 存储器控制方法、存储器存储装置及存储器控制器 |
Also Published As
Publication number | Publication date |
---|---|
CN109273033B (zh) | 2021-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI681295B (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
CN106681654B (zh) | 映射表载入方法与存储器存储装置 | |
CN104765568B (zh) | 数据存储方法、存储器控制电路单元与存储器存储装置 | |
US8904086B2 (en) | Flash memory storage system and controller and data writing method thereof | |
CN107844431A (zh) | 映射表更新方法、存储器控制电路单元与存储器存储装置 | |
CN106681652B (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
CN109491588A (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
CN106557432B (zh) | 缓冲存储器管理方法、存储器控制电路单元及存储装置 | |
CN107402716A (zh) | 数据写入方法、内存控制电路单元与内存储存装置 | |
CN106990921B (zh) | 数据写入方法、存储器存储装置与存储器控制电路单元 | |
TW201945927A (zh) | 資料寫入方法、記憶體控制電路單元以及記憶體儲存裝置 | |
TW201348960A (zh) | 記憶體管理方法、記憶體控制器與記憶體儲存裝置 | |
CN107544922A (zh) | 数据写入方法、存储器控制电路单元及存储器存储装置 | |
CN106951186A (zh) | 数据程序化方法、存储器存储装置及存储器控制电路单元 | |
CN109273033A (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
CN107346211A (zh) | 映射表加载方法、内存控制电路单元与内存储存装置 | |
CN109491828A (zh) | 解码方法、存储器存储装置及存储器控制电路单元 | |
CN107045890A (zh) | 数据保护方法、存储器控制电路单元及存储器存储装置 | |
CN106959818A (zh) | 数据写入方法、内存控制电路单元与内存储存装置 | |
TWI533309B (zh) | 資料寫入方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN106648443B (zh) | 有效数据合并方法、存储器控制器与存储器存储装置 | |
CN107102951B (zh) | 存储器管理方法、存储器控制电路单元与存储器储存装置 | |
TWI635495B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
CN105335096B (zh) | 数据管理方法、存储器控制电路单元以及存储器存储装置 | |
CN107103930A (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 |