CN104679437B - 数据写入方法、存储器控制电路单元与存储器储存装置 - Google Patents
数据写入方法、存储器控制电路单元与存储器储存装置 Download PDFInfo
- Publication number
- CN104679437B CN104679437B CN201310615699.8A CN201310615699A CN104679437B CN 104679437 B CN104679437 B CN 104679437B CN 201310615699 A CN201310615699 A CN 201310615699A CN 104679437 B CN104679437 B CN 104679437B
- Authority
- CN
- China
- Prior art keywords
- data
- erased cell
- entity erased
- entity
- threshold value
- 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.)
- Active
Links
Landscapes
- Read Only Memory (AREA)
Abstract
本发明提供一种用于可复写式非易失性存储器模块的数据写入方法、存储器控制电路单元与存储器储存装置,其中此可复写式非易失性存储器模块包括多个实体抹除单元。本数据写入方法包括:将此些实体抹除单元至少分组为数据区与空闲区;配置多个逻辑单元以映射此数据区的实体抹除单元;以及动态地维持此些实体抹除单元之中的一预定数量的实体抹除单元来专用于写入顺序数据。基此,本方法可在以页面为基础的管理机制下,同时快速地写入顺序数据。
Description
技术领域
本发明是有关于一种用于可复写式非易失性存储器的数据写入方法、存储器控制电路单元与存储器储存装置。
背景技术
数字相机、手机与MP3在这几年来的成长十分迅速,使得消费者对储存媒体的需求也急速增加。由于可复写式非易失性存储器(rewritable non-volatile memory)具有数据非易失性、省电、体积小、无机械结构、读写速度快等特性,最适于可携式电子产品,例如笔记本电脑。固态硬盘就是一种以快速存储器作为储存媒体的存储器储存装置。因此,近年快速存储器产业成为电子产业中相当热门的一环。
快速存储器模块具有多个实体抹除单元且每一实体抹除单元具有多个实体程序化单元(physical page),其中在实体抹除单元中写入数据时必须依据实体程序化单元的顺序写入数据。此外,已被写入数据的实体程序化单元必须先被抹除后才能再次用于写入数据。特别是,实体抹除单元为抹除的最小单位,并且实体程序化单元为程序化(也称写入)的最小单元。因此,在快速存储器模块的管理中,实体抹除单元会被区分为数据区与空闲区。
数据区的实体抹除单元是用以储存主机系统所储存的数据。具体来说,存储器储存装置中的存储器控制电路单元会将主机系统所存取的逻辑存取地址转换为逻辑区块的逻辑页面并且将逻辑区块的逻辑页面映射至数据区的实体抹除单元的实体程序化单元。也就是说,快速存储器模块的管理数据区的实体抹除单元是被视为已被使用的实体抹除单元(例如,已储存主机系统所写入的数据)。例如,存储器控制电路单元会使用逻辑转实体地址映射表来记载逻辑区块与数据区的实体抹除单元的映射关系,其中逻辑区块中的逻辑页面是对应所映射的实体抹除单元的实体程序化单元。
空闲区的实体抹除单元是用以替换数据区中的实体抹除单元。具体来说,如上所述,已写入数据的实体抹除单元必须被抹除后才可再次用于写入数据,因此,空闲区的实体抹除单元是被设计用于写入随机数据以替换映射逻辑区块的实体抹除单元。因此,在空闲区中的实体抹除单元为空或可使用的实体抹除单元,即无记录数据或标记为已没用的无效数据。
也就是说,数据区与空闲区的实体抹除单元的实体程序化单元是以替换方式来映射逻辑区块的逻辑页面,以储存主机系统所写入的数据。例如,当主机系统欲写入随机数据的逻辑存取地址是对应存储器储存装置的某一逻辑区块的某一逻辑页面时,存储器储存装置的存储器控制电路单元会从空闲区中提取一个或多个实体抹除单元,将此随机数据写入至所提取的实体抹除单元的实体程序化单元中,并且将写入数据的实体抹除单元关联至数据区。
特别是,在存储器储存装置操作期间,当空闲区的实体抹除单元快被耗尽时,存储器储存装置的存储器控制电路单元会将数据区中至少一个实体抹除单元中的有效数据整理至数据区中其他实体抹除单元中未被使用的实体程序化单元中(以下称为「有效数据合并操作」),以对仅储存无效数据的实体抹除单元执行抹除操作并将抹除后的实体抹除单元关联至空闲区,以使替换操作的机制继续维持以执行后续的写入指令。
然而,执行上述数据合并程序是相对耗时的,因此,倘若主机系统要求在短时间内写入大量数据(例如,因即将断电而指示将缓冲存储器内的数据储存至可复写式非易失性存储器的请求)并且空闲区的实体抹除单元快被耗尽时,存储器储存装置的存储器控制电路单元将需要耗费大量时间进行数据合并程序,而无法于预定时间内完成数据的写入,而使系统所储存的数据遗失。
发明内容
本发明提供一种数据写入方法、存储器控制电路单元与存储器储存装置,其能够缩短写入顺序数据的时间。
据此,本发明一范例实施例提出一种用于一可复写式非易失性存储器模块数据的写入方法,其中此可复写式非易失性存储器模块包括多个实体抹除单元。本数据写入方法包括:将此些实体抹除单元至少分组为数据区与空闲区;配置多个逻辑单元以映射此数据区的实体抹除单元;以及动态地维持此些实体抹除单元之中的一预定数量的实体抹除单元来专用于写入顺序数据。
在本发明的一范例实施例中,上述动态地维持此些实体抹除单元之中的一预定数量的实体抹除单元来专用于写入顺序数据的步骤包括:将最低门槛值加上上述预定数量所获得的值来设定无用信息回收门槛值。此外,上述方法还包括:从主机系统中接收指示写入第一数据至此些逻辑单元之中的至少一第一逻辑单元的写入指令;判断第一数据是否为顺序数据或随机数据;以及倘若第一数据为顺序数据时,从空闲区的实体抹除单元中提取至少一第一实体抹除单元,将第一数据写入至此至少一第一实体抹除单元,将此至少一第一实体抹除单元关联至数据区,依据此至少一第一实体抹除单元的数目与最低门槛值来调整上述无用信息回收门槛值。其中,当调整前的无用信息回收门槛值减去至少一第一实体抹除单元的数目所获得的值大于最低门槛值时,调整后的无用信息回收门槛值会被设定为调整前的无用信息回收门槛值减去至少一第一实体抹除单元的数目所获得的值;并且当调整前的无用信息回收门槛值减去至少一第一实体抹除单元的数目所获得的值非大于最低门槛值时,调整后的无用信息回收门槛值会被设定为此最低门槛值。
在本发明的一范例实施例中,上述动态地维持此些实体抹除单元之中的一预定数量的实体抹除单元来专用于写入顺序数据的步骤还包括:倘若第一数据为随机数据时,从空闲区的实体抹除单元中提取至少一第二实体抹除单元,将此第一数据写入至此至少一第二实体抹除单元并且将此至少一第二实体抹除单元关联至数据区。
在本发明的一范例实施例中,上述动态地维持此些实体抹除单元之中的一预定数量的实体抹除单元来专用于写入顺序数据的步骤还包括:判断空闲区的实体抹除单元的数目是否不大于无用信息回收门槛值;以及倘若空闲区的实体抹除单元的数目不大于无用信息回收门槛值时,执行数据合并程序以将数据区的至少一实体抹除单元关联至空闲区。
在本发明的一范例实施例中,上述执行数据合并程序以将数据区的至少一实体抹除单元关联至空闲区的步骤包括:从数据区的实体抹除单元中选择一第三实体抹除单元;倘若第三实体抹除单元存有至少一有效数据时,将此至少一有效数据从第三实体抹除单元复制到该数据区中的一第四实体抹除单元;以及抹除第三实体抹除单元并且将抹除后的第三实体抹除单元关联至空闲区。
在本发明的一范例实施例中,上述逻辑单元的容量等于数据区的实体抹除单元的容量,并且上述预定数量的实体抹除单元的容量小于或等于该些逻辑单元的容量。
本发明一范例实施例提出一种用于控制可复写式非易失性存储器模块的存储器控制电路单元,其中可复写式非易失性存储器模块具有多个实体抹除单元。存储器控制电路单元包括主机接口、存储器接口与存储器管理电路。主机接口用以电性连接至主机系统。存储器接口用以电性连接至可复写式非易失性存储器模块。存储器管理电路电性连接至主机接口与存储器接口。存储器管理电路用以将此些实体抹除单元至少分组为数据区与空闲区,配置多个逻辑单元以映射此数据区的实体抹除单元。以及动态地维持此些实体抹除单元之中的一预定数量的实体抹除单元来专用于写入顺序数据。
在本发明的一范例实施例中,上述存储器管理电路将最低门槛值加上上述预定数量所获得的值来设定无用信息回收门槛值。此外,存储器管理电路从主机系统中接收指示写入第一数据至此些逻辑单元之中的至少一第一逻辑单元的写入指令并且判断第一数据是否为顺序数据或随机数据。其中倘若第一数据为顺序数据时,存储器管理电路从空闲区中提取至少一第一实体抹除单元,将第一数据写入至此至少一第一实体抹除单元,将此至少一第一实体抹除单元关联至数据区,并且依据此至少一第一实体抹除单元的数目与最低门槛值来调整无用信息回收门槛值。其中,当调整前的无用信息回收门槛值减去至少一第一实体抹除单元的数目所获得的值大于最低门槛值时,调整后的无用信息回收门槛值会被设定为调整前的无用信息回收门槛值减去至少一第一实体抹除单元的数目所获得的值;并且当调整前的无用信息回收门槛值减去至少一第一实体抹除单元的数目所获得的值非大于最低门槛值时,调整后的无用信息回收门槛值会被设定为此最低门槛值。
在本发明的一范例实施例中,倘若第一数据为随机数据时,存储器管理电路从该空闲区中提取至少一第二实体抹除单元,将第一数据写入至此至少一第二实体抹除单元并且将此至少一第二实体抹除单元关联至数据区。
在本发明的一范例实施例中,上述存储器管理电路判断空闲区的实体抹除单元的数目是否不大于无用信息回收门槛值。倘若空闲区的实体抹除单元的数目不大于无用信息回收门槛值时,存储器管理电路执行数据合并程序以将数据区的至少一实体抹除单元关联至空闲区。
在本发明的一范例实施例中,在执行数据合并程序以将数据区的至少一实体抹除单元关联至空闲区的操作中,存储器管理电路从数据区的实体抹除单元中选择第三实体抹除单元,并且抹除第三实体抹除单元并且将抹除后的第三实体抹除单元关联至空闲区。此外,倘若第三实体抹除单元存有至少一有效数据时,存储器管理电路在抹除第三实体抹除单元之前先将此至少一有效数据从第三实体抹除单元复制到数据区中的第四实体抹除单元。
本发明一范例实施例提出一种存储器储存装置,其包括连接接口单元、可复写式非易失性存储器模块与存储器控制电路单元。连接接口单元用以电性连接至主机系统。可复写式非易失性存储器模块具有多个实体抹除单元。存储器控制电路单元电性连接至连接接口单元与可复写式非易失性存储器模块。存储器控制电路单元用以将此些实体抹除单元至少分组为数据区与空闲区,配置多个逻辑单元以映射此数据区的实体抹除单元。以及动态地维持此些实体抹除单元之中的一预定数量的实体抹除单元来专用于写入顺序数据。
在本发明的一范例实施例中,上述存储器控制电路单元将最低门槛值加上上述预定数量所获得的值来设定无用信息回收门槛值。此外,存储器控制电路单元从主机系统中接收指示写入第一数据至此些逻辑单元之中的至少一第一逻辑单元的写入指令并且判断第一数据是否为顺序数据或随机数据。其中倘若第一数据为顺序数据时,存储器控制电路单元从空闲区中提取至少一第一实体抹除单元,将第一数据写入至此至少一第一实体抹除单元,将此至少一第一实体抹除单元关联至数据区,并且依据此至少一第一实体抹除单元的数目与最低门槛值来调整无用信息回收门槛值。其中,当调整前的无用信息回收门槛值减去至少一第一实体抹除单元的数目所获得的值大于最低门槛值时,调整后的无用信息回收门槛值会被设定为调整前的无用信息回收门槛值减去至少一第一实体抹除单元的数目所获得的值;并且当调整前的无用信息回收门槛值减去至少一第一实体抹除单元的数目所获得的值非大于最低门槛值时,调整后的无用信息回收门槛值会被设定为此最低门槛值。
在本发明的一范例实施例中,倘若第一数据为随机数据时,存储器控制电路单元从该空闲区中提取至少一第二实体抹除单元,将第一数据写入至此至少一第二实体抹除单元并且将此至少一第二实体抹除单元关联至数据区。
在本发明的一范例实施例中,上述存储器控制电路单元判断空闲区的实体抹除单元的数目是否不大于无用信息回收门槛值。倘若空闲区的实体抹除单元的数目不大于无用信息回收门槛值时,存储器控制电路单元执行数据合并程序以将数据区的至少一实体抹除单元关联至空闲区。
在本发明的一范例实施例中,在执行数据合并程序以将数据区的至少一实体抹除单元关联至空闲区的操作中,存储器控制电路单元从数据区的实体抹除单元中选择第三实体抹除单元,并且抹除第三实体抹除单元并且将抹除后的第三实体抹除单元关联至空闲区。此外,倘若第三实体抹除单元存有至少一有效数据时,存储器控制电路单元在抹除第三实体抹除单元之前先将此至少一有效数据从第三实体抹除单元复制到数据区中的第四实体抹除单元。
基于上述,数据写入方法、存储器控制电路单元与存储器储存装置,通过动态地维持专用于顺序数据的实体抹除单元,由此避免执行数据合并程序以缩短写入大量顺序数据的时间。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。
附图说明
图1是根据一范例实施例所示出的主机系统与存储器储存装置;
图2是根据本发明范例实施例所示出的电脑、输入/输出装置与存储器储存装置的示意图;
图3是根据本发明范例实施例所示出的主机系统与存储器储存装置的示意图;
图4示出图1所示的存储器储存装置的概要方块图;
图5是根据一范例实施例所示出的存储器控制电路单元的概要方块图;
图6与图7是根据第一范例实施例所示出的管理实体区块的范例示意图;
图8~20是根据本发明一范例实施例所示出的以随机写入机制写入随机数据的范例;
图21是示出执行有效数据合并程序以完成后续写入指令的简化范例;
图22~23是根据本发明一范例实施例所示出的以顺序写入机制写入顺序数据的范例;
图24~27是根据本发明一范例实施例所示出的以随机写入机制写入随机数据的另一范例;
图28是根据本发明一范例实施例所示出的数据写入方法的流程图。
附图标记说明:
1000:主机系统;
1100:电脑;
1102:微处理器;
1104:随机存取存储器;
1106:输入/输出装置;
1108:系统总线;
1110:数据传输接口;
1202:鼠标;
1204:键盘;
1206:显示器;
1208:打印机;
1212:移动硬盘;
1214:存储卡;
1216:固态硬盘;
1310:数字相机;
1312:SD卡;
1314:MMC卡;
1316:存储棒;
1318:CF卡;
1320:嵌入式储存装置;
100:存储器储存装置;
102:连接接口单元;
104:存储器控制电路单元;
106:可复写式非易失性存储器模块;
202:存储器管理电路;
204:主机接口;
206:存储器接口;
208:缓冲存储器;
210:电源管理电路;
212:错误检查与校正电路;
410(0)~410(N):实体抹除单元;
502:系统区;
504:数据区;
506:空闲区;
508:取代区;
LBA(0)~LBA(H):逻辑单元;
LZ(0)~LZ(M):逻辑区域;
SD1~SD6:顺序数据;
RD1~RD16:随机数据;
S2801、S2803、S2805、S2807、S2809、S2811、S2813:数据写入方法的步骤。
具体实施方式
本发明提出的数据写入方法会将可复写式非易失性存储器模块实体抹除单元至少分组为数据区与空闲区,配置多个逻辑单元以映射数据区的实体抹除单元,以及以动态地维持可复写式非易失性存储器模块中的一预定数量的实体抹除单元来专用于写入顺序数据。特别是,上述数据区中的实体抹除单元的数目会被降低使得使用者可使用的存储器储存装置容量(即,逻辑地址或单元)减少,并将所减少的容量保留作为专用于写入顺序数据,由此使得以随机写入结构(也称为以页面为基础的存储器管理结构)的可复写式非易失性储存装置能够有效地缩短将主机系统所欲储存的大量顺序数据写入至可复写式非易失性存储器模块的时间。为了清楚地了解本发明,以下将以范例实施例来进行说明。
一般而言,存储器储存装置(也称,存储器储存系统)包括可复写式非易失性存储器模块与控制器(也称,控制电路)。通常存储器储存装置是与主机系统一起使用,以使主机系统可将数据写入至存储器储存装置或从存储器储存装置中读取数据。
图1是根据一范例实施例所示出的主机系统与存储器储存装置。
请参照图1,主机系统1000一般包括电脑1100与输入/输出(input/output,简称I/O)装置1106。电脑1100包括微处理器1102、随机存取存储器(random access memory,简称RAM)1104、系统总线1108与数据传输接口1110。输入/输出装置1106包括如图2的鼠标1202、键盘1204、显示器1206与打印机1208。必须了解的是,图2所示的装置非限制输入/输出装置1106,输入/输出装置1106可还包括其他装置。
在本发明实施例中,存储器储存装置100是通过数据传输接口1110与主机系统1000的其他元件电性连接。通过微处理器1102、随机存取存储器1104与输入/输出装置1106的操作可将数据写入至存储器储存装置100或从存储器储存装置100中读取数据。例如,存储器储存装置100可以是如图2所示的移动硬盘1212、存储卡1214或固态硬盘(Solid StateDrive,简称SSD)1216等的可复写式非易失性存储器储存装置。
一般而言,主机系统1000为可实质地与存储器储存装置100配合以储存数据的任意系统。虽然在本范例实施例中,主机系统1000是以电脑系统来作说明,然而,在本发明另一范例实施例中主机系统1000可以是数字相机、摄影机、通信装置、音频播放器或视频播放器等系统。例如,在主机系统为数字相机(摄影机)1310时,可复写式非易失性存储器储存装置则为其所使用的SD卡1312、MMC卡1314、存储棒(memory stick)1316、CF卡1318或嵌入式储存装置1320(如图3所示)。嵌入式储存装置1320包括嵌入式多媒体卡(Embedded MMC,简称eMMC)。值得一提的是,嵌入式多媒体卡是直接电性连接于主机系统的基板上。
图4示出图1所示的存储器储存装置的概要方块图。
请参照图4,存储器储存装置100包括连接接口单元102、存储器控制电路单元104与可复写式非易失性存储器模块106。
在本范例实施例中,连接接口单元102是相容于序列先进附件(Serial AdvancedTechnology Attachment,简称SATA)标准。然而,必须了解的是,本发明不限于此,连接接口单元102也可以是符合并列先进附件(Parellel Advanced Technology Attachment,简称PATA)标准、电气和电子工程师协会(Institute of Electrical and ElectronicEngineers,简称IEEE)1394标准、高速周边零件连接接口(Peripheral ComponentInterconnect Express,简称PCIExpress)标准、通用序列总线(Universal Serial Bus,简称USB)标准、超高速一代(Ultra High Speed-I,简称UHS-I)接口标准、超高速二代(UltraHigh Speed-II,简称UHS-II)接口标准、安全数字(Secure Digital,简称SD)接口标准、存储棒(Memory Stick,简称MS)接口标准、多媒体储存卡(Multi Media Card,简称MMC)接口标准、小型快速(Compact Flash,简称CF)接口标准、整合式驱动电子接口(IntegratedDevice Electronics,简称IDE)标准或其他适合的标准。在本范例实施例中,连接接口单元可与存储器控制电路单元封装在一个芯片中,或布设于一包含存储器控制电路单元的芯片外。
存储器控制电路单元104用以执行以硬件形式或固件形式实现的多个逻辑门或控制指令,并且根据主机系统1000的指令在可复写式非易失性存储器模块106中进行数据的写入、读取与抹除等操作。
可复写式非易失性存储器模块106是电性连接至存储器控制电路单元104,并且用以储存主机系统1000所写入的数据。可复写式非易失性存储器模块106具有实体抹除单元410(0)~410(N)。例如,实体抹除单元410(0)~410(N)可属于同一个存储器晶粒(die)或者属于不同的存储器晶粒。每一实体抹除单元分别具有复数个实体程序化单元,其中属于同一个实体抹除单元的实体程序化单元可被独立地写入且被同时地抹除。然而,必须了解的是,本发明不限于此,每一实体抹除单元是可由64个实体程序化单元、256个实体程序化单元或其他任意个实体程序化单元所组成。
更详细来说,实体抹除单元为抹除的最小单位。也即,每一实体抹除单元含有最小数目之一并被抹除之记忆胞。实体程序化单元为程序化的最小单元。即,实体程序化单元为写入数据的最小单元。每一实体程序化单元通常包括数据比特区与冗余比特区。数据比特区包含多个实体存取地址用以储存使用者的数据,而冗余比特区用以储存系统的数据(例如,控制信息与错误更正码)。在本范例实施例中,每一个实体程序化单元的数据比特区中会包含4个实体存取地址,且一个实体存取地址的大小为512字节(byte)。然而,在其他范例实施例中,数据比特区中也可包含数目更多或更少的实体存取地址,本发明并不限制实体存取地址的大小以及个数。例如,在一范例实施例中,实体抹除单元为实体区块,并且实体程序化单元为实体页面或实体扇区,但本发明不以此为限。
在本范例实施例中,可复写式非易失性存储器模块106为多阶记忆胞(MultiLevel Cell,简称MLC)NAND型快速存储器模块(即,一个记忆胞中可储存2个比特数据的快速存储器模块)。然而,本发明不限于此,可复写式非易失性存储器模块106也可是单阶记忆胞(Single Level Cell,简称SLC)NAND型快速存储器模块(即,一个记忆胞中可储存1个比特数据的快速存储器模块)、复数阶记忆胞(Trinary Level Cell,简称TLC)NAND型快速存储器模块(即,一个记忆胞中可储存3个比特数据的快速存储器模块)、其他快速存储器模块或其他具有相同特性的存储器模块。
图5是根据一范例实施例所示出的存储器控制电路单元的概要方块图。
请参照图5,存储器控制电路单元104包括存储器管理电路202、主机接口204与存储器接口206。
存储器管理电路202用以控制存储器控制电路单元104的整体操作。具体来说,存储器管理电路202具有多个控制指令,并且在存储器储存装置100操作时,此些控制指令会被执行以进行数据的写入、读取与抹除等操作。
在本范例实施例中,存储器管理电路202的控制指令是以固件形式来实现。例如,存储器管理电路202具有微处理器单元(未示出)与只读存储器(未示出),并且此些控制指令是被烧录至此只读存储器中。当存储器储存装置100操作时,此些控制指令会由微处理器单元来执行以进行数据的写入、读取与抹除等操作。
在本发明另一范例实施例中,存储器管理电路202的控制指令也可以程序码型式储存于可复写式非易失性存储器模块106的特定区域(例如,存储器模块中专用于存放系统数据的系统区)中。此外,存储器管理电路202具有微处理器单元(未示出)、只读存储器(未示出)及随机存取存储器(未示出)。特别是,此只读存储器具有驱动码,并且当存储器控制电路单元104被驱动时,微处理器单元会先执行此驱动码段来将储存于可复写式非易失性存储器模块106中的控制指令载入至存储器管理电路202的随机存取存储器中。之后,微处理器单元会运行此些控制指令以进行数据的写入、读取与抹除等操作。
此外,在本发明另一范例实施例中,存储器管理电路202的控制指令也可以一硬件形式来实现。例如,存储器管理电路202包括微控制器、记忆胞管理电路、存储器写入电路、存储器读取电路、存储器抹除电路与数据处理电路。记忆胞管理电路、存储器写入电路、存储器读取电路、存储器抹除电路与数据处理电路是电性连接至微控制器。其中,记忆胞管理电路用以管理可复写式非易失性存储器模块106的实体抹除单元;存储器写入电路用以对可复写式非易失性存储器模块106下达写入指令以将数据写入至可复写式非易失性存储器模块106中;存储器读取电路用以对可复写式非易失性存储器模块106下达读取指令以从可复写式非易失性存储器模块106中读取数据;存储器抹除电路用以对可复写式非易失性存储器模块106下达抹除指令以将数据从可复写式非易失性存储器模块106中抹除;而数据处理电路用以处理欲写入至可复写式非易失性存储器模块106的数据以及从可复写式非易失性存储器模块106中读取的数据。
主机接口204是电性连接至存储器管理电路202并且用以接收与识别主机系统1000所传送的指令与数据。也就是说,主机系统1000所传送的指令与数据会通过主机接口204来传送至存储器管理电路202。在本范例实施例中,主机接口204是相容于SATA标准。然而,必须了解的是本发明不限于此,主机接口204也可以是相容于PATA标准、IEEE1394标准、PCI Express标准、USB标准、UHS-I接口标准、UHS-II接口标准、SD标准、MS标准、MMC标准、CF标准、IDE标准或其他适合的数据传输标准。
存储器接口206是电性连接至存储器管理电路202并且用以存取可复写式非易失性存储器模块106。也就是说,欲写入至可复写式非易失性存储器模块106的数据会经由存储器接口206转换为可复写式非易失性存储器模块106所能接受的格式。
在本发明一范例实施例中,存储器控制电路单元104还包括缓冲存储器208、电源管理电路210与错误检查与校正电路212。
缓冲存储器208是电性连接至存储器管理电路202并且用以暂存来自于主机系统1000的数据与指令或来自于可复写式非易失性存储器模块106的数据。
电源管理电路210是电性连接至存储器管理电路202并且用以控制存储器储存装置100的电源。
错误检查与校正电路212是电性连接至存储器管理电路202并且用以执行错误检查与校正程序以确保数据的正确性。具体来说,当存储器管理电路202从主机系统1000中接收到写入指令时,错误检查与校正电路212会为对应此写入指令的数据产生对应的错误检查与校正码(Error Checking and Correcting Code,简称ECC Code),并且存储器管理电路202会将对应此写入指令的数据与对应的错误检查与校正码写入至可复写式非易失性存储器模块106中。之后,当存储器管理电路202从可复写式非易失性存储器模块106中读取数据时会同时读取此数据对应的错误检查与校正码,并且错误检查与校正电路212会依据此错误检查与校正码对所读取的数据执行错误检查与校正程序。
图6与图7是根据第一范例实施例所示出的管理实体区块的范例示意图。
请参照图6,存储器控制电路单元104(或存储器管理电路202)会将实体抹除单元410(0)~410-(N)逻辑地分组为数据区504、空闲区506、系统区502与取代区508。
逻辑上属于数据区504与空闲区506的实体抹除单元是用以储存来自于主机系统1000的数据。具体来说,数据区504的实体抹除单元是被视为已储存数据的实体抹除单元,而空闲区506的实体抹除单元是用以替换数据区504的实体抹除单元。也就是说,当从主机系统1000接收到写入指令与欲写入的数据时,存储器管理电路202会从空闲区506中提取实体抹除单元,并且将数据写入至所提取的实体抹除单元中,以替换数据区504的实体抹除单元。
逻辑上属于系统区502的实体抹除单元是用以记录系统数据。例如,系统数据包括关于可复写式非易失性存储器模块的制造商与型号、可复写式非易失性存储器模块的实体抹除单元数、每一实体抹除单元的实体程序化单元数等。
逻辑上属于取代区508中的实体抹除单元是用于损坏实体抹除单元取代程序,以取代损坏的实体抹除单元。具体来说,倘若取代区508中仍存有正常的实体抹除单元并且数据区504实体抹除单元损坏时,存储器管理电路202会从取代区508中提取正常的实体抹除单元来更换损坏的实体抹除单元。
特别是,数据区504、空闲区506、系统区502与取代区508的实体抹除单元的数量会依据不同的存储器规格而有所不同。此外,必须了解的是,在存储器储存装置100的操作中,实体抹除单元关联至数据区504、空闲区506、系统区502与取代区508的分组关系会动态地变动。例如,当空闲区506中的实体抹除单元损坏而被取代区508的实体抹除单元取代时,则原本取代区508的实体抹除单元会被关联至空闲区506。
请参照图7,存储器控制电路单元104(或存储器管理电路202)会配置逻辑单元LBA(0)~LBA(H)以映射数据区504的实体抹除单元,其中每一逻辑单元具有多个逻辑页面以映射对应的实体抹除单元的实体程序化单元。并且,当主机系统1000欲写入数据至逻辑单元或更新储存于逻辑单元中的数据时,存储器控制电路单元104(或存储器管理电路202)会从空闲区506中提取一个实体抹除单元来写入数据,以替换数据区504的实体抹除单元。
为了识别数据每个逻辑单元的数据被储存在哪个实体抹除单元,在本范例实施例中,存储器控制电路单元104(或存储器管理电路202)会记录逻辑单元与实体抹除单元之间的映射。并且,当主机系统1000欲在逻辑页面中存取数据时,存储器控制电路单元104(或存储器管理电路202)会确认此逻辑页面所属的逻辑单元,并且在此逻辑单元所映射的实体抹除单元中来存取数据。例如,在本范例实施例中,存储器控制电路单元104(或存储器管理电路202)会在可复写式非易失性存储器模块106中储存逻辑转实体地址映射表来记录每一逻辑单元所映射的实体抹除单元,并且当欲存取数据时存储器控制电路单元104(或存储器管理电路202)会将逻辑转实体地址映射表载入至缓冲存储器208来维护。
值得一提的是,由于缓冲存储器208的容量有限无法储存记录所有逻辑单元之映射关系的映射表,因此,在本范例实施例中,存储器控制电路单元104(或存储器管理电路202)会将逻辑单元LBA(0)~LBA(H)分组为多个逻辑区域LZ(0)~LZ(M),并且为每一逻辑区域配置一个逻辑转实体地址映射表。特别是,当存储器控制电路单元104(或存储器管理电路202)欲更新某个逻辑单元的映射时,对应此逻辑单元所属的逻辑区域的逻辑转实体地址映射表会被载入至缓冲存储器208来被更新。
如上所述,在本范例实施例中,存储器储存装置100的可复写式非易失性存储器模块106是以页面为基础来进行管理,因此,在执行写入指令时,不管目前数据是要写入至那个逻辑单元的逻辑页面,存储器控制电路单元104(或存储器管理电路202)都会以一个实体程序化单元连接一个实体程序化单元的方式来写入数据(以下也称为随机写入机制)。具体来说,存储器控制电路单元104(或存储器管理电路202)会从空闲区506中提取一个空的实体抹除单元作为目前使用的实体抹除单元来写入数据。并且,当此目前使用的实体抹除单元已被写满时,存储器控制电路单元104(或存储器管理电路202)会再从空闲区506中提取另一个空的实体抹除单元作为目前使用的实体抹除单元,以继续写入对应来自于主机系统1000的写入指令的随机数据。特别是,为了避免空闲区506的实体抹除单元被耗尽,当空闲区506的实体抹除单元的数目下降到所设定的无用信息回收门槛值时,存储器控制电路单元104(或存储器管理电路202)会执行数据合并程序,以使数据区504的至少一个实体抹除单元中的数据成为无效数据,并且之后将数据区504中所储存的数据都为无效数据的实体抹除单元关联回空闲区506。例如,在执行数据合并程序时,存储器控制电路单元104(或存储器管理电路202)至少需使用一个空的实体抹除单元,因此,无用信息回收门槛值至少会被设定大于最低门槛值(即,1)。特别是,在本范例实施例中,存储器控制电路单元104(或存储器管理电路202)会识别写入的数据是顺序数据或随机数据,并且根据所写入的顺序数据的量来动态调整无用信息回收门槛值。具体来说,主机系统1000写入数据的行为可被区分为顺序写入模式(Sequential writing mode)与随机写入模式(random writing mode)。在顺序写入模式中,主机系统1000会依序地写入多笔数据至连续的多个逻辑页面中。而在随机写入模式中,主机系统1000是于非连续的逻辑页面中写入数据,例如,首先将第一笔随机数据被写入第5个逻辑页面,然后将第二笔随机数据写入至第3个逻辑页面。在此,将主机系统1000以顺序写入模式写入的数据称为顺序数据,并且将主机系统1000以随机写入模式写入的数据称为随机数据。特别是,如上所述,在本范例实施例中,可复写式非易失性存储器模块中的一预定数量的实体抹除单元会被维持来专用于写入顺序数据,因此,存储器控制电路单元104(或存储器管理电路202)会根据所写入的顺序数据的量来动态调整无用信息回收门槛值,以避免保留用于写入顺序数据的实体抹除单元被用来写入随机数据。
图8~20是根据本发明一范例实施例所示出的以随机写入机制写入随机数据的范例。
请参照图8,为方便说明,在此假设数据区504初始地未有映射逻辑单元的实体抹除单元(即,存储器储存装置100于开卡后尚未写入过使用者数据),空闲区506具有8个实体抹除单元,每一实体抹除单元具有3个实体程序化单元,欲写入至每一实体抹除单元的数据必须依照实体程序化单元的顺序来被写入。此外假设3个实体抹除单元会被保留专用于写入顺序数据,1个实体抹除单元会被用作为替换写入数据之用并且1个实体抹除单元会被保留来进行数据合并程序,因此,无用信息回收门槛值会初始地被设定为4并且逻辑单元所映射的容量会被设定为3个实体抹除单元的容量。也就是说,对于具有8个实体抹除单元的存储器储存装置100来说,提供给主机系统1000所存取的容量原本可被设定为6个实体抹除单元的容量,但在保留专用于写入顺序数据的实体抹除单元后,仅能提供3个实体抹除单元的容量给主机系统1000存取,即,主机系统1000会识别存储器储存装置100的容量为3个实体抹除单元的容量(即,逻辑单元LBA(0)~LBA(2))。值得一提的是,尽管在本范例中,被保留专用于写入顺序数据的实体抹除单元的数目是与所配置的逻辑单元的容量相同,但本发明不限于此,被保留专用于写入顺序数据的实体抹除单元的数目也可小于所配置的逻辑单元的容量。
请参照图9,假设欲程序化随机数据RD1并且随机数据RD1是属于逻辑单元LBA(0)的第1个逻辑页面时,存储器控制电路单元104(或存储器管理电路202)会从空闲区506中提取实体抹除单元410(0),下达程序化指令以将此随机数据RD1写入至实体抹除单元410(0)的第0个实体程序化单元并且将实体抹除单元410(0)关联至数据区504。
请参照图10,接续图9,假设欲再程序化随机数据RD2并且随机数据RD2是属于逻辑单元LBA(1)的第0个逻辑页面时,存储器控制电路单元104(或存储器管理电路202)会下达程序化指令以将此随机数据RD2写入至实体抹除单元410(0)的第1个实体程序化单元。
请参照图11,接续图10,假设欲再程序化随机数据RD3并且随机数据RD3是属于逻辑单元LBA(2)的第1个逻辑页面时,存储器控制电路单元104(或存储器管理电路202)会下达程序化指令以将此随机数据RD3写入至实体抹除单元410(0)的第2个实体程序化单元。
请参照图12,接续图11,假设欲再程序化随机数据RD4并且随机数据RD4是属于逻辑单元LBA(0)的第0个逻辑页面时,由于实体抹除单元410(0)已无储存空间,因此,存储器控制电路单元104(或存储器管理电路202)会从空闲区506中提取实体抹除单元410(1),下达程序化指令以将此随机数据RD4写入至实体抹除单元410(1)的第0个实体程序化单元并且将实体抹除单元410(1)关联至数据区504。
请参照图13,接续图12,假设欲再程序化随机数据RD5并且随机数据RD5是属于逻辑单元LBA(1)的第1个逻辑页面时,存储器控制电路单元104(或存储器管理电路202)会下达程序化指令以将此随机数据RD5写入至实体抹除单元410(1)的第1个实体程序化单元。
请参照图14,接续图13,假设欲再程序化随机数据RD6并且随机数据RD6是属于逻辑单元LBA(0)的第2个逻辑页面时,存储器控制电路单元104(或存储器管理电路202)会下达程序化指令以将此随机数据RD6写入至实体抹除单元410(1)的第2个实体程序化单元。
请参照图15,接续图14,假设欲再程序化随机数据RD7并且随机数据RD4是属于逻辑单元LBA(2)的第0个逻辑页面时,由于实体抹除单元410(1)已无储存空间,因此,存储器控制电路单元104(或存储器管理电路202)会从空闲区506中提取实体抹除单元410(2),下达程序化指令以将此随机数据RD7写入至实体抹除单元410(2)的第0个实体程序化单元并且将实体抹除单元410(2)关联至数据区504。
请参照图16,接续图15,假设欲再程序化随机数据RD8并且随机数据RD8是属于逻辑单元LBA(1)的第2个逻辑页面时,存储器控制电路单元104(或存储器管理电路202)会下达程序化指令以将此随机数据RD8写入至实体抹除单元410(2)的第1个实体程序化单元。
请参照图17,接续图16,假设欲再程序化随机数据RD9并且随机数据RD9是属于逻辑单元LBA(2)的第2个逻辑页面时,存储器控制电路单元104(或存储器管理电路202)会下达程序化指令以将此随机数据RD9写入至实体抹除单元410(2)的第2个实体程序化单元。
请参照图18,接续图17,假设欲再程序化随机数据RD10并且随机数据RD10是属于逻辑单元LBA(1)的第2个逻辑页面时,由于实体抹除单元410(2)已无储存空间,因此,存储器控制电路单元104(或存储器管理电路202)会从空闲区506中提取实体抹除单元410(3),下达程序化指令以将此随机数据RD10写入至实体抹除单元410(3)的第0个实体程序化单元并且将实体抹除单元410(3)关联至数据区504,其中实体抹除单元410(2)的第1个实体程序化单元会被标记为无效(如虚线所示)。
请参照图19,接续图18,假设欲再程序化随机数据RD11并且随机数据RD11是属于逻辑单元LBA(2)的第2个逻辑页面时,存储器控制电路单元104(或存储器管理电路202)会下达程序化指令以将此随机数据RD11写入至实体抹除单元410(3)的第1个实体程序化单元,其中实体抹除单元410(2)的第2个实体程序化单元会被标记为无效(如虚线所示)。
请参照图20,接续图19,假设欲再程序化随机数据RD12并且随机数据RD12是属于逻辑单元LBA(1)的第1个逻辑页面时,存储器控制电路单元104(或存储器管理电路202)会下达程序化指令以将此随机数据RD12写入至实体抹除单元410(3)的第2个实体程序化单元,其中实体抹除单元410(1)的第1个实体程序化单元会被标记为无效(如虚线所示)。
以此类推,不论主机系统1000欲将数据储存至哪个逻辑单元的逻辑页面中,存储器控制电路单元104(或存储器管理电路202)会依序地将主机系统1000欲储存的数据写入目前使用的实体抹除单元中。特别是,当空闲区506的实体抹除单元的数目不大于无用信息回收门槛值时,存储器控制电路单元104(或存储器管理电路202)会在执行写入指令时一并执行数据合并程序,以防止空闲区的实体抹除单元被用尽。
图21是示出执行有效数据合并程序以完成后续写入指令的简化范例。
请参照图21,接续图20,假设欲再程序化随机数据RD13并且随机数据RD13是属于逻辑单元LBA(2)的第0个逻辑页面时,由于实体抹除单元410(3)已无储存空间,因此,存储器控制电路单元104(或存储器管理电路202)需要从空闲区506中提取空的实体抹除单元。然而,此时,空闲区506的实体抹除单元的数目是不大于无用信息回收门槛值,因此,存储器控制电路单元104(或存储器管理电路202)必须先执行数据合并程序。例如,存储器控制电路单元104(或存储器管理电路202)从空闲区506中提取实体抹除单元410(4),将实体抹除单元410(1)中的有效数据(即,数据RD4与RD6)和实体抹除单元410(2)中的有效数据(即,数据RD7)复制到实体抹除单元410(4),将实体抹除单元410(4)关联至数据区504,将实体抹除单元410(1)的第0与2实体程序化单元和实体抹除单元410(2)的第0实体程序化单元标记为无效,对仅储存无效数据的实体抹除单元(即,实体抹除单元410(1)与实体抹除单元410(2))执行抹除操作,并且将抹除后的实体抹除单元关联回空闲区506。
此时,空闲区506的实体抹除单元的数目会回复为5(大于无用信息回收门槛值),基此,存储器控制电路单元104(或存储器管理电路202)会从空闲区506中提取实体抹除单元410(5),下达程序化指令以将此随机数据RD13写入至实体抹除单元410(5)的第0个实体程序化单元并且将实体抹除单元410(5)关联至数据区504,其中储存数据RD7的实体程序化单元(即,实体抹除单元410(4)的第2个实体程序化单元)会被标记为无效。
图22~23是根据本发明一范例实施例所示出的以顺序写入机制写入顺序数据的范例。
请参照图22,接续图21,假设欲再程序化顺序数据SD1~SD6并且顺序数据SD1~SD6是属于逻辑单元LBA(1)的第0~2个逻辑页面与逻辑单元LBA(2)的第0~2个逻辑页面时,由于空闲区506中保留有3个实体抹除单元专用于写入顺序数据,因此,存储器控制电路单元104(或存储器管理电路202)会从空闲区506中提取空的实体抹除单元(例如,实体抹除单元410(6)与410(7)),下达程序化指令以将此顺序数据SD1~SD6顺序地写入至实体抹除单元410(6)与410(7)中并且将实体抹除单元410(6)与410(7)关联至数据区504。此外,存储器控制电路单元104(或存储器管理电路202)会将实体抹除单元410(0)的第1与2实体程序化单元、实体抹除单元410(3)的第0~2实体程序化单元和实体抹除单元410(5)的第0实体程序化单元标记为无效。
请参照图23,由于实体抹除单元410(3)仅储存无效数据,因此,存储器控制电路单元104(或存储器管理电路202)会对实体抹除单元410(3)执行抹除操作并将其关联回空闲区。另外,保留专用于写入顺序数据的实体抹除单元已被使用,因此,存储器控制电路单元104(或存储器管理电路202)会据此调整无用信息回收门槛值。具体来说,存储器控制电路单元104(或存储器管理电路202)会将目前的无用信息回收门槛值减去执行此次写入指令从空闲区506中提取用于写入顺序数据的实体抹除单元的数目,并且判断目前的无用信息回收门槛值减去执行此次写入指令从空闲区506中提取用于写入顺序数据的实体抹除单元的数目是否不大于最低门槛值。若目前的无用信息回收门槛值减去执行此次写入指令从空闲区506中提取用于写入顺序数据的实体抹除单元的数目非小于最低门槛值时,存储器控制电路单元104(或存储器管理电路202)会以目前的无用信息回收门槛值减去执行此次写入指令从空闲区506中提取用于写入顺序数据的实体抹除单元的数目作为新的无用信息回收门槛值。而若目前的无用信息回收门槛值减去执行此次写入指令从空闲区506中提取用于写入顺序数据的实体抹除单元的数目小于最低门槛值时,则存储器控制电路单元104(或存储器管理电路202)会以最低门槛值作为新的无用信息回收门槛值。在图22与图23的范例中,新的无用信息回收门槛值会被设定为2。
在图22与图23的例子中,虽然主机系统1000指示一次写入大量的顺序数据,然而,由于存储器控制电路单元104(或存储器管理电路202)无需执行数据合并程序来腾出空间,因此,可有效地缩短执行写入指令的时间。
图24~27是根据本发明一范例实施例所示出的以随机写入机制写入随机数据的另一范例。
请参照图24,接续图23,假设欲再程序化随机数据RD14并且随机数据RD14是属于逻辑单元LBA(1)的第0个逻辑页面时,存储器控制电路单元104(或存储器管理电路202)会下达程序化指令以将此随机数据RD14写入至实体抹除单元410(5)的第1个实体程序化单元,其中逻辑单元LBA(1)的第0个逻辑页面原映射的实体抹除单元410(6)的第0个实体程序化单元会被标记为无效。
请参照图25,接续图24,假设欲再程序化随机数据RD15并且随机数据RD15是属于逻辑单元LBA(1)的第2个逻辑页面时,存储器控制电路单元104(或存储器管理电路202)会下达程序化指令以将此随机数据RD15写入至实体抹除单元410(5)的第2个实体程序化单元,其中逻辑单元LBA(1)的第2个逻辑页面原映射的实体抹除单元410(6)的第2个实体程序化单元会被标记为无效。
请参照图26,接续图25,假设欲再程序化随机数据RD16并且随机数据RD16是属于逻辑单元LBA(1)的第1个逻辑页面时,由于实体抹除单元410(5)已无储存空间并且空闲区506的实体抹除单元的数目是大于无用信息回收门槛值,因此,存储器控制电路单元104(或存储器管理电路202)会直接从空闲区506中提取实体抹除单元410(1)来将此随机数据RD16写入至实体抹除单元410(1)的第0个实体程序化单元,而无需执行数据合并程序。在此例子中,实体抹除单元410(1)会再被关联至数据区504。
由于实体抹除单元410(6)仅储存无效数据,因此,存储器控制电路单元104(或存储器管理电路202)会仅储存无效数据,因此,存储器控制电路单元104(或存储器管理电路202)会对实体抹除单元410(6)执行抹除操作并将其关联回空闲区(见图27)。特别是,由于实体抹除单元410(6)之前是被提取用顺序数据,因此,存储器控制电路单元104(或存储器管理电路202)会将目前的无用信息回收门槛值加1(即,3)作为新的无用信息回收门槛值。
从图8~27的范例中,可以清楚地了解,本范例实施例的存储器控制电路单元104(或存储器管理电路202)会通过调整无用信息回收门槛值以动态地维持可复写式非易失性存储器模块106中的一预定数量的实体抹除单元来专用于写入顺序数据,以使得以页面为基础来进行管理的存储器储存装置100,可有效地提升顺序数据的写入速度。
图28是根据本发明一范例实施例所示出的数据写入方法的流程图。
请参照图28,在步骤S2801中,存储器控制电路单元104(或存储器管理电路202)将可复写式非易失性存储器模块106的实体抹除单元至少分组为数据区与空闲区,配置多个逻辑单元以映射数据区504的实体抹除单元并且将预设的最低门槛值加上预定数量所获得的值来设定无用信息回收门槛值。如上所述,最低门槛值为执行数据合并操作所需的实体抹除单元的数目并取预定数量为欲保留专用于顺序数据的实体抹除单元的数目。在此,最低门槛值与预定数量可根据使用者的需求,适当的设定,不限于任何数目。
在步骤S2803中,存储器控制电路单元104(或存储器管理电路202)从主机系统1000中接收写入指令,其中此写入指令指示写入数据(以下称为第一数据)至至少一逻辑单元(以下称为第一逻辑单元)。
在步骤S2805中,存储器控制电路单元104(或存储器管理电路202)会判断空闲区506的实体抹除单元的数目是否不大于无用信息回收门槛值。
倘若空闲区506的实体抹除单元的数目不大于无用信息回收门槛值时,在步骤S2807中存储器控制电路单元104(或存储器管理电路202)执行一数据合并程序以将数据区504的至少一实体抹除单元关联至空闲区506。例如,存储器控制电路单元104(或存储器管理电路202)从该数据区的实体抹除单元中选择一实体抹除单元(以下称为第三实体抹除单元),并且倘若第三实体抹除单元存有至少一有效数据时,将此至少一有效数据从第三实体抹除单元复制到数据区504中的另一实体抹除单元(以下称为第四实体抹除单元),抹除第三实体抹除单元并且将抹除后的第三实体抹除单元关联至空闲区506。数据合并程序的详细执行方式已配合图式描述如上,在此不再重复说明。
之后,在步骤S2809中,存储器控制电路单元104(或存储器管理电路202)判断第一数据是属于顺序数据或随机数据。
倘若该第一数据为顺序数据时,在步骤S2811中,存储器控制电路单元104(或存储器管理电路202)会从空闲区506中提取至少一实体抹除单元(以下称为第一实体抹除单元),将第一数据写入至此至少一第一实体抹除单元,将此至少一第一实体抹除单元关联至数据区504,依据此至少一第一实体抹除单元的数目与最低门槛值来调整无用信息回收门槛值。在此,当调整前的无用信息回收门槛值减去此至少一第一实体抹除单元的数目所获得的值大于最低门槛值时,调整后的该无用信息回收门槛值会被设定为调整前的无用信息回收门槛值减去此至少一第一实体抹除单元的数目所获得的值;并且当调整前的无用信息回收门槛值减去此至少一第一实体抹除单元的数目所获得的值非大于最低门槛值时,调整后的无用信息回收门槛值会被设定为此最低门槛值。
倘若第一数据为随机数据时,在步骤S2813中,存储器控制电路单元104(或存储器管理电路202)会从空闲区506的实体抹除单元中提取至少一实体抹除单元(以下称为至少一第二实体抹除单元),将第一数据写入至此至少一第二实体抹除单元并且将此至少一第二实体抹除单元关联至数据区504。
基于上述,本范例实施例的数据写入方法、存储器控制电路单元与存储器储存装置能够在有效地以随机写入机制程序化随机数据的同时,也可对于大量顺序数据进行有效率地写入,由此缩短执行请求写入大量顺序数据的写入指令的时间并且避免数据遗失。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (15)
1.一种数据写入方法,用于一可复写式非易失性存储器模块,其特征在于,该可复写式非易失性存储器模块包括多个实体抹除单元,该数据写入方法包括:
将该些实体抹除单元至少分组为一数据区与一空闲区;
配置多个逻辑单元以映射该数据区的实体抹除单元;以及
动态地维持该些实体抹除单元之中的一预定数量的实体抹除单元来专用于写入一顺序数据,
其中动态地维持该些实体抹除单元之中的该预定数量的实体抹除单元来专用于写入该顺序数据的步骤包括:
将一最低门槛值加上该预定数量所获得的值来设定一无用信息回收门槛值;
从一主机系统中接收一写入指令,其中该写入指令指示写入一第一数据至该些逻辑单元之中的至少一第一逻辑单元;
判断该第一数据是否为一顺序数据或一随机数据;以及
倘若该第一数据为该顺序数据时,从该空闲区的该些实体抹除单元中提取至少一第一实体抹除单元,将该第一数据写入至该至少一第一实体抹除单元,将该至少一第一实体抹除单元关联至该数据区,依据该至少一第一实体抹除单元的数目与该最低门槛值来调整该无用信息回收门槛值,
其中当调整前的该无用信息回收门槛值减去该至少一第一实体抹除单元的数目所获得的值大于该最低门槛值时,调整后的该无用信息回收门槛值会被设定为调整前的该无用信息回收门槛值减去该至少一第一实体抹除单元的数目所获得的值,
其中当调整前的该无用信息回收门槛值减去该至少一第一实体抹除单元的数目所获得的值非大于该最低门槛值时,调整后的该无用信息回收门槛值会被设定为该最低门槛值。
2.根据权利要求1所述的数据写入方法,其特征在于,动态地保持该些实体抹除单元之中的该预定数量的实体抹除单元来专用于写入该顺序数据的步骤还包括:
倘若该第一数据为该随机数据时,从该空闲区的实体抹除单元中提取至少一第二实体抹除单元,将该第一数据写入至该至少一第二实体抹除单元并且将该至少一第二实体抹除单元关联至该数据区。
3.根据权利要求2所述的数据写入方法,其特征在于,动态地保持该些实体抹除单元之中的该预定数量的实体抹除单元来专用于写入该顺序数据的步骤还包括:
判断该空闲区的实体抹除单元的数目是否不大于该无用信息回收门槛值;以及
倘若该空闲区的实体抹除单元的数目不大于该无用信息回收门槛值时,执行一数据合并程序以将该数据区的至少一实体抹除单元关联至该空闲区。
4.根据权利要求3所述的数据写入方法,其特征在于,执行该数据合并程序以将该数据区的至少一实体抹除单元关联至该空闲区的步骤包括:
从该数据区的实体抹除单元中选择一第三实体抹除单元;
倘若该第三实体抹除单元存有至少一有效数据时,将该至少一有效数据从该第三实体抹除单元复制到该数据区中的一第四实体抹除单元;以及
抹除该第三实体抹除单元并且将抹除后的该第三实体抹除单元关联至该空闲区。
5.根据权利要求1所述的数据写入方法,其特征在于,该逻辑单元的容量等于该数据区的实体抹除单元的容量,并且该预定数量的实体抹除单元的容量小于或等于该些逻辑单元的容量。
6.一种存储器控制电路单元,用于控制一可复写式非易失性存储器模块,其特征在于,该存储器控制电路单元包括:
一主机接口,用以电性连接至一主机系统;
一存储器接口,用以电性连接至该可复写式非易失性存储器模块,其中该可复写式非易失性存储器模块具有多个实体抹除单元;以及
一存储器管理电路,电性连接至该主机接口与该存储器接口,并且用以将该些实体抹除单元至少分组为一数据区与一空闲区,
其中该存储器管理电路还用以配置多个逻辑单元以映射该数据区的实体抹除单元,
其中该存储器管理电路还用以动态地维持该些实体抹除单元之中的一预定数量的实体抹除单元来专用于写入一顺序数据,
其中该存储器管理电路将一最低门槛值加上该预定数量所获得的值来设定一无用信息回收门槛值,
其中该存储器管理电路从该主机系统中接收一写入指令,其中该写入指令指示写入一第一数据至该些逻辑单元之中的至少一第一逻辑单元,
其中该存储器管理电路判断该第一数据是否为一顺序数据或一随机数据,
其中倘若该第一数据为该顺序数据时,该存储器管理电路从该空闲区的该些实体抹除单元中提取至少一第一实体抹除单元,将该第一数据写入至该至少一第一实体抹除单元,将该至少一第一实体抹除单元关联至该数据区,依据该至少一第一实体抹除单元的数目与该最低门槛值来调整该无用信息回收门槛值,
其中当调整前的该无用信息回收门槛值减去该至少一第一实体抹除单元的数目所获得的值大于该最低门槛值时,调整后的该无用信息回收门槛值会被设定为调整前的该无用信息回收门槛值减去该至少一第一实体抹除单元的数目所获得的值,
其中当调整前的该无用信息回收门槛值减去该至少一第一实体抹除单元的数目所获得的值非大于该最低门槛值时,调整后的该无用信息回收门槛值会被设定为该最低门槛值。
7.根据权利要求6所述的存储器控制电路单元,其特征在于,倘若该第一数据为该随机数据时,该存储器管理电路从该空闲区的实体抹除单元中提取至少一第二实体抹除单元,将该第一数据写入至该至少一第二实体抹除单元并且将该至少一第二实体抹除单元关联至该数据区。
8.根据权利要求7所述的存储器控制电路单元,其特征在于,该存储器管理电路判断该空闲区的实体抹除单元的数目是否不大于该无用信息回收门槛值,
倘若该空闲区的实体抹除单元的数目不大于该无用信息回收门槛值时,该存储器管理电路执行一数据合并程序以将该数据区的至少一实体抹除单元关联至该空闲区。
9.根据权利要求8所述的存储器控制电路单元,其特征在于,在执行该数据合并程序以将该数据区的至少一实体抹除单元关联至该空闲区的操作中,该存储器管理电路从该数据区的实体抹除单元中选择一第三实体抹除单元,并且抹除该第三实体抹除单元并且将抹除后的该第三实体抹除单元关联至该空闲区,
其中倘若该第三实体抹除单元存有至少一有效数据时,该存储器管理电路在抹除该第三实体抹除单元之前先将该至少一有效数据从该第三实体抹除单元复制到该数据区中的一第四实体抹除单元。
10.根据权利要求6所述的存储器控制电路单元,其特征在于,该些逻辑单元的容量等于该数据区的实体抹除单元的容量,并且该预定数量的实体抹除单元的容量小于或等于该些逻辑单元的容量。
11.一种存储器储存装置,其特征在于,包括:
一连接接口单元,用以电性连接至一主机系统;
一可复写式非易失性存储器模块,具有多个实体抹除单元;以及
一存储器控制电路单元,电性连接至该连接接口单元与该可复写式非易失性存储器模块,并且用以将该些实体抹除单元至少分组为一数据区与一空闲区,
其中该存储器控制电路单元还用以配置多个逻辑单元以映射该数据区的实体抹除单元,
其中该存储器控制电路单元还用以动态地维持该些实体抹除单元之中的一预定数量的实体抹除单元来专用于写入一顺序数据,
其中该存储器控制电路单元将一最低门槛值加上该预定数量所获得的值来设定一无用信息回收门槛值,
其中该存储器控制电路单元从该主机系统中接收一写入指令,其中该写入指令指示写入一第一数据至该些逻辑单元之中的至少一第一逻辑单元,
其中该存储器控制电路单元判断该第一数据是否为一顺序数据或一随机数据,
其中倘若该第一数据为该顺序数据时,该存储器控制电路单元从该空闲区的该些实体抹除单元中提取至少一第一实体抹除单元,将该第一数据写入至该至少一第一实体抹除单元,将该至少一第一实体抹除单元关联至该数据区,依据该至少一第一实体抹除单元的数目与该最低门槛值来调整该无用信息回收门槛值,
其中当调整前的该无用信息回收门槛值减去该至少一第一实体抹除单元的数目所获得的值大于该最低门槛值时,调整后的该无用信息回收门槛值会被设定为调整前的该无用信息回收门槛值减去该至少一第一实体抹除单元的数目所获得的值,
其中当调整前的该无用信息回收门槛值减去该至少一第一实体抹除单元的数目所获得的值非大于该最低门槛值时,调整后的该无用信息回收门槛值会被设定为该最低门槛值。
12.根据权利要求11所述的存储器储存装置,其特征在于,倘若该第一数据为该随机数据时,该存储器控制电路单元从该空闲区的实体抹除单元中提取至少一第二实体抹除单元,将该第一数据写入至该至少一第二实体抹除单元并且将该至少一第二实体抹除单元关联至该数据区。
13.根据权利要求12所述的存储器储存装置,其特征在于,该存储器控制电路单元判断该空闲区的实体抹除单元的数目是否不大于该无用信息回收门槛值,
倘若该空闲区的实体抹除单元的数目不大于该无用信息回收门槛值时,该存储器控制电路单元执行一数据合并程序以将该数据区的至少一实体抹除单元关联至该空闲区。
14.根据权利要求13所述的存储器储存装置,其特征在于,在执行该数据合并程序以将该数据区的至少一实体抹除单元关联至该空闲区的操作中,该存储器控制电路单元从该数据区的实体抹除单元中选择一第三实体抹除单元,并且抹除该第三实体抹除单元并且将抹除后的该第三实体抹除单元关联至该空闲区,
其中倘若该第三实体抹除单元存有至少一有效数据时,该存储器控制电路单元在抹除该第三实体抹除单元之前先将该至少一有效数据从该第三实体抹除单元复制到该数据区中的一第四实体抹除单元。
15.根据权利要求11所述的存储器储存装置,其特征在于,该些逻辑单元的容量等于该数据区的实体抹除单元的容量,并且该预定数量的实体抹除单元的容量小于或等于该些逻辑单元的容量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310615699.8A CN104679437B (zh) | 2013-11-27 | 2013-11-27 | 数据写入方法、存储器控制电路单元与存储器储存装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310615699.8A CN104679437B (zh) | 2013-11-27 | 2013-11-27 | 数据写入方法、存储器控制电路单元与存储器储存装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104679437A CN104679437A (zh) | 2015-06-03 |
CN104679437B true CN104679437B (zh) | 2017-12-08 |
Family
ID=53314574
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310615699.8A Active CN104679437B (zh) | 2013-11-27 | 2013-11-27 | 数据写入方法、存储器控制电路单元与存储器储存装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104679437B (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106502577A (zh) * | 2015-09-07 | 2017-03-15 | 龙芯中科技术有限公司 | 存储空间的写入加速方法、装置和系统 |
CN106708416B (zh) * | 2015-11-13 | 2020-06-09 | 群联电子股份有限公司 | 数据重建方法与系统及其存储器控制电路单元 |
CN107103930B (zh) * | 2016-02-19 | 2020-05-26 | 群联电子股份有限公司 | 数据写入方法、存储器控制电路单元与存储器存储装置 |
CN107132989B (zh) * | 2016-02-26 | 2020-05-12 | 群联电子股份有限公司 | 数据程序化方法、存储器控制电路单元及存储器存储装置 |
CN107239225B (zh) * | 2016-03-29 | 2020-05-26 | 群联电子股份有限公司 | 存储器管理方法、存储器储存装置及存储器控制电路单元 |
KR20180035981A (ko) * | 2016-09-29 | 2018-04-09 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그의 동작 방법 |
CN106681663A (zh) * | 2016-12-29 | 2017-05-17 | 记忆科技(深圳)有限公司 | 一种固态硬盘多流写入的方法 |
CN106990921B (zh) * | 2017-03-24 | 2019-10-11 | 合肥兆芯电子有限公司 | 数据写入方法、存储器存储装置与存储器控制电路单元 |
TWI644210B (zh) * | 2017-09-08 | 2018-12-11 | 群聯電子股份有限公司 | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 |
CN109491588B (zh) * | 2017-09-13 | 2022-05-31 | 群联电子股份有限公司 | 存储器管理方法、存储器控制电路单元与存储器存储装置 |
CN109522236B (zh) * | 2017-09-18 | 2022-10-21 | 群联电子股份有限公司 | 存储器管理方法、存储器控制电路单元与存储器存储装置 |
CN107832013B (zh) * | 2017-11-03 | 2019-10-25 | 中国科学技术大学 | 一种管理固态硬盘映射表的方法 |
CN110389708B (zh) * | 2018-04-19 | 2022-11-22 | 群联电子股份有限公司 | 平均磨损方法、存储器控制电路单元与存储器存储装置 |
CN111367460B (zh) * | 2018-12-25 | 2023-05-09 | 兆易创新科技集团股份有限公司 | 一种系统数据处理的方法以及装置 |
CN111767005B (zh) * | 2019-04-01 | 2023-12-08 | 群联电子股份有限公司 | 存储器控制方法、存储器存储装置及存储器控制电路单元 |
CN113703664B (zh) * | 2021-06-24 | 2024-05-03 | 杭州电子科技大学 | 一种eMMC芯片随机写入速率优化实现方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201122811A (en) * | 2009-12-31 | 2011-07-01 | Phison Electronics Corp | Flash memory storage system and controller and data writing method thereof |
CN103365790A (zh) * | 2012-03-29 | 2013-10-23 | 群联电子股份有限公司 | 存储器控制器、存储装置与数据写入方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI386802B (zh) * | 2009-07-03 | 2013-02-21 | Phison Electronics Corp | 用於快閃記憶體的資料寫入方法及其控制電路與儲存系統 |
-
2013
- 2013-11-27 CN CN201310615699.8A patent/CN104679437B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201122811A (en) * | 2009-12-31 | 2011-07-01 | Phison Electronics Corp | Flash memory storage system and controller and data writing method thereof |
CN103365790A (zh) * | 2012-03-29 | 2013-10-23 | 群联电子股份有限公司 | 存储器控制器、存储装置与数据写入方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104679437A (zh) | 2015-06-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104679437B (zh) | 数据写入方法、存储器控制电路单元与存储器储存装置 | |
CN107844431A (zh) | 映射表更新方法、存储器控制电路单元与存储器存储装置 | |
CN104732153B (zh) | 数据抹除方法、存储器控制电路单元及存储器存储装置 | |
TWI526830B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
CN104423888B (zh) | 数据写入方法、存储器控制电路单元与存储器存储装置 | |
CN104699413B (zh) | 数据管理方法、存储器存储装置及存储器控制电路单元 | |
CN104793891B (zh) | 数据写入方法、存储器控制电路单元与存储器存储装置 | |
CN106469122B (zh) | 有效数据合并方法、存储器控制器与存储器储存装置 | |
CN106776376B (zh) | 缓冲存储器管理方法、存储器控制电路单元及存储装置 | |
TWI436212B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
CN104765569B (zh) | 数据写入方法、存储器控制电路单元与存储器储存装置 | |
CN106557432B (zh) | 缓冲存储器管理方法、存储器控制电路单元及存储装置 | |
CN104636267B (zh) | 存储器控制方法、存储器存储装置与存储器控制电路单元 | |
CN107402716A (zh) | 数据写入方法、内存控制电路单元与内存储存装置 | |
CN103593296B (zh) | 数据储存方法、存储器控制器与存储器储存装置 | |
CN103136111B (zh) | 数据写入方法、存储器控制器与存储器储存装置 | |
CN106708416A (zh) | 数据重建方法与系统及其存储器控制电路单元 | |
CN107544922A (zh) | 数据写入方法、存储器控制电路单元及存储器存储装置 | |
CN102200946B (zh) | 资料存取方法、记忆体控制器与储存系统 | |
CN105988950B (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
CN107357520A (zh) | 整理指令处理方法、存储器控制电路单元及其存储装置 | |
CN107346211A (zh) | 映射表加载方法、内存控制电路单元与内存储存装置 | |
CN104536906B (zh) | 数据写入方法、存储器控制器与存储器储存装置 | |
CN103577344B (zh) | 数据写入方法、存储器控制器与存储器储存装置 | |
CN103544118B (zh) | 存储器储存装置、其存储器控制器与数据写入方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |