CN106201932B - 数据写入方法、存储器控制电路单元与存储器存储装置 - Google Patents
数据写入方法、存储器控制电路单元与存储器存储装置 Download PDFInfo
- Publication number
- CN106201932B CN106201932B CN201510228914.8A CN201510228914A CN106201932B CN 106201932 B CN106201932 B CN 106201932B CN 201510228914 A CN201510228914 A CN 201510228914A CN 106201932 B CN106201932 B CN 106201932B
- Authority
- CN
- China
- Prior art keywords
- entity
- erased cell
- entity erased
- data
- working area
- 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)具有数据非易失性、省电、体积小、无机械结构、读写速度快等特性,最适于便携式电子产品,例如笔记本计算机。固态硬盘就是一种以快闪存储器作为存储媒体的存储器存储装置。因此,近年快闪存储器产业成为电子产业中相当热门的一环。
依据每个存储单元可存储的位数,与非(NAND)型快快闪存储器储器可区分为单阶存储单元(Single Level Cell,简称SLC)NAND型快闪存储器、多阶存储单元(Multi LevelCell,简称MLC)NAND型快闪存储器与三阶存储单元(Trinary Level Cell,简称TLC)NAND型快闪存储器,其中SLC NAND型快闪存储器的每个存储单元可存储1个位的数据(即,“1”与“0”),MLC NAND型快闪存储器的每个存储单元可存储2个位的数据并且TLC NAND型快闪存储器的每个存储单元可存储3个位的数据。
在NAND型快闪存储器中,实体编程单元是由排列在同一条字元线的数个存储单元所组成。由于SLC NAND型快闪存储器的每个存储单元可存储1个位的数据,因此,在SLCNAND型快闪存储器中,排列在同一条字元线的数个存储单元是对应一个实体编程单元。
相对于SLC NAND型快闪存储器来说,MLC NAND型快闪存储器的每个存储单元的浮动栅存储层可存储2个位的数据,其中每一个存储状态(即,“11”、“10”、“01”与“00”)包括最低有效位(Least Significant Bit,简称LSB)以及最高有效位(Most Significant Bit,简称MSB)。例如,存储状态中从左侧算起的第1个位的值为LSB,而从左侧算起的第2个位的值为MSB。因此,排列在同一条字元线的多个存储单元可组成2个实体编程单元,其中由此些存储单元的LSB所组成的实体编程单元称为下实体编程单元(low physical programmingunit),并且由此些存储单元的MSB所组成的实体编程单元称为上实体编程单元(upperphysical programming unit)。特别是,下实体编程单元的写入速度会快于上实体编程单元的写入速度,并且当编程上实体编程单元发生错误时,下实体编程单元所存储的数据也可能因此遗失。
类似地,在TLC NAND型快闪存储器中,的每个存储单元可存储3个位的数据,其中每一个存储状态(即,“111”、“110”、“101”、“100”、“011”、“010”、“001”与“000”)包括左侧算起的第1个位的LSB、从左侧算起的第2个位的中间有效位(Center Significant Bit,简称CSB)以及从左侧算起的第3个位的MSB。因此,排列在同一条字元线的多个存储单元可组成3个实体编程单元,其中由此些存储单元的LSB所组成的实体编程单元称为下实体编程单元,由此些存储单元的CSB所组成的实体编程单元称为中实体编程单元,并且由此些存储单元的MSB所组成的实体编程单元称为上实体编程单元。特别是,对排列在同一条字元线的数个存储单元进行编程时,仅能选择仅编程下实体编程单元或者同时编程下实体编程单元、中实体编程单元与上实体编程单元,否则所存储的数据可能会遗失。
一般而言,使用TLC NAND型快闪存储器的存储器模块,会将其中的部份实体抹除单元分组为使用只操作于下实体编程单元的一单页模式来仿真SLC NAND型快闪存储器的操作,藉此提高了寿命(抹除次数上限),也因为只操作于下实体编程单元,写入、读取速度也增进许多。而此仿真SLC NAND型快闪存储器操作模式的部份实体抹除单元,会被使用于作为存储器模块的暂存区,用来暂存数据,或是用来存储系统数据。然而,相较于以单页模式来操作的实体抹除单元,以多页模式来操作的实体抹除单元的使用寿命相对较短,且对应以多页模式来操作的实体抹除单元的写入或抹除次数的临界值会低于对应以单页模式来操作的实体抹除单元的写入或抹除次数的临界值,且以多页模式来操作的实体抹除单元的写入或抹除的速度也相较于以单页模式来操作的实体抹除单元的写入或抹除的速度来的慢。
基于上述,如何避免因为使用多页模式来操作的实体抹除单元而使其寿命快速下降,以及提升每一存储单元可存储多个位的快闪存储器的可靠度与存取速度是此领域技术人员所致力的目标。
发明内容
本发明提供一种数据写入方法、存储器控制电路单元与存储器存储装置,其可有效延长快闪存储器的寿命以及存取数据的速度。
本发明的一实施例提出一种数据写入方法,用于可复写式非易失性存储器模块,其中可复写式非易失性存储器模块具有多个实体抹除单元,每一实体抹除单元具有多个实体编程单元。本数据写入方法包括将此些实体抹除单元至少分组为存储区与暂存区,其中暂存区的实体抹除单元是以单页模式来写入数据并且存储区的实体抹除单元是以多页模式来写入数据。本数据写入方法还包括从暂存区的实体抹除单元之中选择第一实体抹除单元,将此第一实体抹除单元中的多个有效数据复制至暂存区的实体抹除单元之中的第二实体抹除单元,并对第一实体抹除单元进行抹除操作。本数据写入方法还包括从暂存区的实体抹除单元之中选择第三实体抹除单元,将此第三实体抹除单元中的多个有效数据复制至存储区的实体抹除单元之中的第四实体抹除单元,并对第三实体抹除单元进行抹除操作。
在本发明的一实施例中,上述数据写入方法还包括从存储区的实体抹除单元之中选择第五实体抹除单元,将此第五实体抹除单元中的多个有效数据复制至存储区的实体抹除单元之中的第六实体抹除单元,并对此第五实体抹除单元进行抹除操作。
在本发明的一实施例中,上述数据写入方法还包括:从存储区的实体抹除单元之中选择第七实体抹除单元,将此第七实体抹除单元中的多个有效数据复制至暂存区的实体抹除单元之中的第八实体抹除单元,并对此第七实体抹除单元进行抹除操作;以及将存储于第八实体抹除单元中属于第七实体抹除单元的有效数据复制至存储区的实体抹除单元之中的第九实体抹除单元。
在本发明的一实施例中,上述从暂存区的实体抹除单元之中选择第一实体抹除单元的步骤包括:从暂存在暂存区中的数据之中识别至少一热数据,并且依据此至少一热数据选择第一实体抹除单元,其中此至少一热数据是被存储在第一实体抹除单元中。此外,上述从暂存区的实体抹除单元之中选择第三实体抹除单元的步骤包括:从暂存在暂存区中的数据之中识别至少一冷数据,并且依据此至少一冷数据选择第三实体抹除单元,其中此至少一冷数据被存储在第三实体抹除单元中。
在本发明的一实施例中,上述数据写入方法还包括:依据暂存区的实体抹除单元中的有效数据的数量为暂存区中的每一实体抹除单元记录有效数据计数。并且,上述从暂存区的实体抹除单元之中选择第一实体抹除单元的步骤包括:依据对应暂存区的每一实体抹除单元的有效数据计数选择第一实体抹除单元,其中对应此第一实体抹除单元的有效数据计数小于对应暂存区中其它实体抹除单元的有效数据计数。
在本发明的一实施例中,上述数据写入方法还包括:依据暂存区的实体抹除单元中的有效数据的数量为暂存区的每一实体抹除单元记录有效数据计数。并且,上述从暂存区的实体抹除单元之中选择第三实体抹除单元的步骤包括:依据对应暂存区的每一实体抹除单元的有效数据计数选择第三实体抹除单元,其中对应第三实体抹除单元的有效数据计数大于或等于对应暂存区中其它实体抹除单元的有效数据计数。
本发明的一实施例提供一种用于控制可复写式非易失性存储器模块的存储器控制电路单元,其中此可复写式非易失性存储器模块具有多个实体抹除单元且每一实体抹除单元具有多个实体编程单元。此存储器控制电路单元包括:用以电性连接至主机系统的主机接口;用以电性连接至可复写式非易失性存储器模块的存储器接口;以及电性连接至主机接口与存储器接口的存储器管理电路。存储器管理电路用以将此些实体抹除单元至少分组为存储区与暂存区,其中暂存区的实体抹除单元是以单页模式来写入数据并且存储区的实体抹除单元是以多页模式来写入数据。此外,存储器管理电路还用以从暂存区的实体抹除单元之中选择第一实体抹除单元,将此第一实体抹除单元中的多个有效数据复制至暂存区的实体抹除单元之中的第二实体抹除单元,并对第一实体抹除单元进行抹除操作。另外,存储器管理电路更用以从暂存区的实体抹除单元之中选择第三实体抹除单元,将此第三实体抹除单元中的多个有效数据复制至存储区的实体抹除单元之中的第四实体抹除单元,并对第三实体抹除单元进行抹除操作。
在本发明的一实施例中,上述存储器管理电路还用以从存储区的实体抹除单元之中选择第五实体抹除单元,将此第五实体抹除单元中的多个有效数据复制至存储区的实体抹除单元之中的第六实体抹除单元,并对此第五实体抹除单元进行抹除操作。
在本发明的一实施例中,上述存储器管理电路还用以从存储区的实体抹除单元之中选择第七实体抹除单元,将此第七实体抹除单元中的多个有效数据复制至暂存区的实体抹除单元之中的第八实体抹除单元,并对此第七实体抹除单元进行抹除操作;以及将存储于第八实体抹除单元中属于第七实体抹除单元的有效数据复制至存储区的实体抹除单元之中的第九实体抹除单元。
在本发明的一实施例中,在从暂存区的实体抹除单元之中选择第一实体抹除单元的操作中,上述存储器管理电路从暂存在暂存区中的数据之中识别至少一热数据,并且依据此至少一热数据选择第一实体抹除单元,其中此至少一热数据被存储在第一实体抹除单元中。另外,在从暂存区的实体抹除单元之中选择该第三实体抹除单元的操作中,上述存储器管理电路从暂存在暂存区中的数据之中识别至少一冷数据,并且依据此至少一冷数据选择第三实体抹除单元,其中此至少一冷数据被存储在第三实体抹除单元中。
在本发明的一实施例中,上述存储器管理电路还用以依据暂存区的实体抹除单元中的有效数据的数量为暂存区的每一实体抹除单元记录有效数据计数。并且,在从暂存区的实体抹除单元之中选择第一实体抹除单元的操作中,存储器管理电路依据对应暂存区的每一实体抹除单元的有效数据计数选择第一实体抹除单元,其中对应此第一实体抹除单元的有效数据计数小于对应暂存区中其它实体抹除单元的有效数据计数。
在本发明的一实施例中,上述存储器管理电路还用以依据暂存区的实体抹除单元中的有效数据的数量为暂存区的每一实体抹除单元记录有效数据计数。并且,在从暂存区的实体抹除单元之中选择第三实体抹除单元的操作中,存储器管理电路依据对应暂存区的每一该些实体抹除单元的有效数据计数选择第三实体抹除单元,其中对应第三实体抹除单元的有效数据计数大于或等于对应暂存区中其它实体抹除单元的有效数据计数。
本发明的一实施例提供一种存储器存储装置,其包括:用以电性连接至主机系统的连接接口单元、可复写式非易失性存储器模块与存储器控制电路单元。可复写式非易失性存储器模块具有多个实体抹除单元且每一实体抹除单元具有多个实体编程单元。存储器控制电路单元电性连接至连接接口单元与可复写式非易失性存储器模块,并且用以将这些实体抹除单元至少分组为存储区与暂存区,其中暂存区的实体抹除单元是以单页模式来写入数据并且存储区的实体抹除单元是以多页模式来写入数据。此外,存储器控制电路单元还用以从暂存区的实体抹除单元之中选择第一实体抹除单元,将此第一实体抹除单元中的多个有效数据复制至暂存区的实体抹除单元之中的一第二实体抹除单元,并对第一实体抹除单元进行抹除操作。另外,存储器控制电路单元还用以从暂存区的实体抹除单元之中选择第三实体抹除单元,将此第三实体抹除单元中的多个有效数据复制至存储区的实体抹除单元之中的一第四实体抹除单元,并对第三实体抹除单元进行抹除操作。
在本发明的一实施例中,上述存储器控制电路单元还用以从存储区的实体抹除单元之中选择第五实体抹除单元,将此第五实体抹除单元中的多个有效数据复制至存储区的实体抹除单元之中的第六实体抹除单元,并对此第五实体抹除单元进行抹除操作。
在本发明的一实施例中,上述存储器控制电路单元还用以从存储区的实体抹除单元之中选择第七实体抹除单元,将此第七实体抹除单元中的多个有效数据复制至暂存区的实体抹除单元之中的第八实体抹除单元,并对此第七实体抹除单元进行抹除操作;以及将存储于第八实体抹除单元中属于第七实体抹除单元的有效数据复制至存储区的实体抹除单元之中的第九实体抹除单元。
在本发明的一实施例中,在从暂存区的实体抹除单元之中选择第一实体抹除单元的操作中,上述存储器控制电路单元从暂存在暂存区中的数据之中识别至少一热数据,并且依据此至少一热数据选择第一实体抹除单元,其中此至少一热数据被存储在第一实体抹除单元中。另外,在从暂存区的实体抹除单元之中选择该第三实体抹除单元的操作中,上述存储器控制电路单元从暂存在暂存区中的数据之中识别至少一冷数据,并且依据此至少一冷数据选择第三实体抹除单元,其中此至少一冷数据被存储在第三实体抹除单元中。
在本发明的一实施例中,上述存储器控制电路单元还用以依据暂存区的实体抹除单元中的有效数据的数量为暂存区的每一实体抹除单元记录一有效数据计数。并且,在从暂存区的实体抹除单元之中选择第一实体抹除单元的操作中,存储器控制电路单元依据对应暂存区的每一该些实体抹除单元的有效数据计数选择第一实体抹除单元,其中对应此第一实体抹除单元的有效数据计数小于对应暂存区中其它实体抹除单元的有效数据计数。
在本发明的一实施例中,上述存储器控制电路单元还用以依据暂存区的实体抹除单元中的有效数据的数量为暂存区的每一实体抹除单元记录有效数据计数。并且,在从暂存区的实体抹除单元之中选择第三实体抹除单元的操作中,存储器控制电路单元依据对应暂存区的每一该些实体抹除单元的有效数据计数选择第三实体抹除单元,其中对应第三实体抹除单元的有效数据计数大于或等于对应暂存区中其它实体抹除单元的有效数据计数。
基于上述,本发明所提出的数据写入方法、存储器控制电路单元与存储器存储装置会通过暂存区内部的实体抹除单元所进行的数据合并操作,以及将暂存区中的实体抹除单元进行数据合并操作至存储区中,藉此避免因为过多地使用多页模式来操作存储区的实体抹除单元而使其寿命快速下降与降低存取速度。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。
附图说明
图1A是本发明一实施例所示出的主机系统与存储器存储装置的示意图;
图1B是本发明一实施例所示出的计算机、输入/输出装置与存储器存储装置的示意图;
图1C是本发明一实施例所示出的主机系统与存储器存储装置的示意图;
图2是本发明一实施例所示出的存储器存储装置的概要方块图;
图3A与图3B是本发明一实施例所示出的存储单元存储架构与实体抹除单元的示意图;
图4是本发明一实施例所示出的存储器控制电路单元的概要方块图;
图5与图6是本发明一实施例所示出的管理实体抹除单元的示意图;
图7是本发明一实施例所示出的使用单页模式将数据暂存在暂存区的示意图;
图8是本发明一实施例所示出的使用多页模式将暂存在暂存区的数据写入至存储区的示意图;
图9为本发明一实施例所示出的在暂存区内执行数据合并操作的示意图;
图10为本发明一实施例所示出的从暂存区的实体抹除单元中搬移有效数据至存储区的数据合并操作的示意图;
图11为本发明一实施例所示出的对存储区中的实体抹除单元进行数据合并操作的示意图;
图12为本发明另一实施例例所示出的对存储区中的实体抹除单元进行数据合并操作的示意图;
图13为本发明一实施例所示出的数据合并操作的流程图。
附图标记说明:
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:可复写式非易失性存储器模块;
302:存储器管理电路;
304:主机接口;
306:存储器接口;
308:缓冲存储器;
310:电源管理电路;
312:错误检查与校正电路;
502:存储区;
502a:数据区;
502b:闲置区;
504:暂存区;
506:系统区;
508:取代区;
510(0)~510(N):实体抹除单元;
510(S+1)、510(S+2)、510(S+3)、510(S+4)、510(S+6)、510(F+2)、510(F+3)、510(F+4)、510(F+5)、510(F+6):实体抹除单元;
LBA(0)~LBA(H):逻辑单元;
S1301、S1303、S1305、S107:数据合并操作的步骤。
具体实施方式
图1A是本发明一实施例所示出的主机系统与存储器存储装置的示意图。图1B是本发明一实施例所示出的计算机、输入/输出装置与存储器存储装置的示意图。图1C是本发明一实施例所示出的主机系统与存储器存储装置的示意图。
请参照图1A,主机系统1000一般包括计算机1100与输入/输出(input/output,简称I/O)装置1106。计算机1100包括微处理器1102、随机存取存储器(random accessmemory,简称RAM)1104、系统总线1108与数据传输接口1110。输入/输出装置1106包括如图1B的鼠标1202、键盘1204、显示器1206与打印机1208。必须了解的是,图1B所示的装置非限制输入/输出装置1106,输入/输出装置1106还可包括其它装置。
在本实施例中,存储器存储装置100是通过数据传输接口1110与主机系统1000的其它组件电性连接。通过微处理器1102、随机存取存储器1104与输入/输出装置1106的操作可将数据写入至存储器存储装置100或从存储器存储装置100中读取数据。例如,存储器存储装置100可以是如图1B所示的随身盘1212、存储卡1214或固态硬盘(Solid State Drive,简称SSD)1216等的可复写式非易失性存储器存储装置。
一般而言,主机系统1000为可实质地与存储器存储装置100配合以存储数据的任意系统。虽然在本实施例中,主机系统1000是以计算机系统来做说明,然而,在本发明另一实施例中主机系统1000可以是数码相机、摄像机、通信装置、音频播放器或视频播放器等系统。例如,在主机系统为图1C中的数码相机(摄像机)1310时,可复写式非易失性存储器存储装置则为其所使用的SD卡1312、MMC卡1314、存储棒(memory stick)1316、CF卡1318或嵌入式存储装置1320(如图1C所示)。嵌入式存储装置1320包括嵌入式多媒体卡(Embedded MMC,简称eMMC)。值得一提的是,嵌入式多媒体卡是直接电性连接于主机系统的基板上。
图2是本发明一实施例所示出的存储器存储装置的概要方块图。
请参照图2,存储器存储装置100包括连接接口单元102、存储器控制电路单元104与可复写式非易失性存储器模块106。
在本实施例中,连接接口单元102是兼容于安全数字(Secure Digital,简称SD)接口标准。然而,必须了解的是,本发明不限于此,连接接口单元102也可以是符合并行先进技术附件(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)接口标准、串行高级技术附件(Serial Advanced Technology Attachment,简称SATA)标准、存储棒(MemoryStick,简称MS)接口标准、多媒体存储卡(Multi Media Card,简称MMC)接口标准、小型快闪(Compact Flash,简称CF)接口标准、集成设备电路(Integrated Device Electronics,简称IDE)标准或其它适合的标准。在本实施例中,连接接口单元可与存储器控制电路单元封装在一个芯片中,或布设于一包含存储器控制电路单元的芯片外。
存储器控制电路单元104用以执行以硬件形式或软体形式实作的多个逻辑门或控制指令,并且根据主机系统1000的指令在可复写式非易失性存储器模块106中进行数据的写入、读取、抹除与合并等操作。
可复写式非易失性存储器模块106是电性连接至存储器控制电路单元104,并且用以存储主机系统1000所写入的数据。可复写式非易失性存储器模块106具有多个实体抹除单元。例如,此些实体抹除单元可属于同一个存储器晶粒(die)或者属于不同的存储器晶粒。每一实体抹除单元分别具有复数个实体编程单元,例如本发明的实施例中,每一个实体抹除单元包含258个实体编程单元,而其中属于同一个实体抹除单元的实体编程单元可被独立地写入且被同时地抹除。然而,必须了解的是,本发明不限于此,每一实体抹除单元是可由64个实体编程单元、256个实体编程单元或其它任意个实体编程单元所组成。
更详细来说,实体抹除单元为抹除的最小单位。也即,每一实体抹除单元含有最小数目之一并被抹除的存储单元。实体编程单元为编程的最小单元。即,实体编程单元为写入数据的最小单元。每一实体编程单元通常包括数据位区与冗余位区。数据位区包含多个实体存取地址用以存储使用者的数据,而冗余位区用以存储系统的数据(例如,控制信息与错误更正码)。在本实施例中,每一个实体编程单元的数据位区中会包含4个实体存取地址,且一个实体存取地址的大小为512字节(byte)。然而,在其它实施例中,数据位区中也可包含数目更多或更少的实体存取地址,本发明并不限制实体存取地址的大小以及个数。
在本发明的实施例中,可复写式非易失性存储器模块106为复数阶存储单元(Trinary Level Cell,简称TLC)NAND型快闪存储器模块(即,一个存储单元中可存储3个位数据的快闪存储器模块)。然而,本发明不限于此,可复写式非易失性存储器模块106也可是多阶存储单元(Multi Level Cell,简称MLC)NAND型快闪存储器模块(即,一个存储单元中可存储2个位数据的快闪存储器模块)、其它快闪存储器模块或其它具有相同特性的存储器模块。
图3A与图3B是本发明一实施例所示出的存储单元存储架构与实体抹除单元的示意图。
请参照图3A,可复写式非易失性存储器模块106的每个存储单元的存储状态可被识别为“111”、“110”、“101”、“100”、“011”、“010”、“001”或“000”(如图3A所示),其中左侧算起的第1个位为LSB、从左侧算起的第2个位为CSB以及从左侧算起的第3个位为MSB。此外,排列在同一条字元线的多个存储单元可组成3个实体编程单元,其中由此些存储单元的LSB所组成的实体编程单元称为下实体编程单元,由此些存储单元的CSB所组成的实体编程单元称为中实体编程单元,并且由此些存储单元的MSB所组成的实体编程单元称为上实体编程单元。
请参照图3B,一个实体抹除单元是由多个实体编程单元组所组成,其中每个实体编程单元组包括由排列在同一条字元线的多个存储单元所组成的下实体编程单元、中实体编程单元与上实体编程单元。例如,在实体抹除单元中,属于下实体编程单元的第0个实体编程单元、属于中实体编程单元的第1个实体编程单元和属于上实体编程单元的第2个实体编程单元会被视为一个实体编程单元组。类似地,第3、4、5个实体编程单元会被视为一个实体编程单元组,并且以此类推其它实体编程单元也是依据此方式被区分为多个实体编程单元组。
图4是本发明一实施例所示出的存储器控制电路单元的概要方块图。必须了解的是,图4所示出的存储器控制电路单元仅为一个范例,本发明不限于此。
请参照图4,存储器控制电路单元104包括存储器管理电路302、主机接口304与存储器接口306。
存储器管理电路302用以控制存储器控制电路单元104的整体操作。具体来说,存储器管理电路302具有多个控制指令,并且在存储器存储装置100操作时,此些控制指令会被执行以进行数据的写入、读取、抹除与合并等操作。
在本发明的实施例中,存储器管理电路302的控制指令是以软件形式来实现。例如,存储器管理电路302具有微处理器单元(未示出)与只读存储器(未示出),并且此些控制指令是被烧录至此只读存储器中。当存储器存储装置100操作时,此些控制指令会由微处理器单元来执行以进行数据的写入、读取、抹除与合并等操作。
在本发明另一实施例中,存储器管理电路302的控制指令也可以程序代码形式存储于可复写式非易失性存储器模块106的特定区域(例如,存储器模块中专用于存放系统数据的系统区)中。此外,存储器管理电路302具有微处理器单元(未示出)、只读存储器(未示出)及随机存取存储器(未示出)。特别是,此只读存储器具有驱动码,并且当存储器控制电路单元104被使能时,微处理器单元会先执行此驱动码段来将存储于可复写式非易失性存储器模块106中的控制指令加载至存储器管理电路302的随机存取存储器中。之后,微处理器单元会运转此些控制指令以进行数据的写入、读取、抹除与合并等操作。
此外,在本发明另一实施例中,存储器管理电路302的控制指令也可以一硬件形式来实作。例如,存储器管理电路302包括微控制器、存储单元管理电路、存储器写入电路、存储器读取电路、存储器抹除电路与数据处理电路。存储单元管理电路、存储器写入电路、存储器读取电路、存储器抹除电路与数据处理电路是电性连接至微控制器。其中,存储单元管理电路用以管理可复写式非易失性存储器模块106的实体抹除单元;存储器写入电路用以对可复写式非易失性存储器模块106下达写入指令以将数据写入至可复写式非易失性存储器模块106中;存储器读取电路用以对可复写式非易失性存储器模块106下达读取指令以从可复写式非易失性存储器模块106中读取数据;存储器抹除电路用以对可复写式非易失性存储器模块106下达抹除指令以将数据从可复写式非易失性存储器模块106中抹除;而数据处理电路用以处理欲写入至可复写式非易失性存储器模块106的数据以及从可复写式非易失性存储器模块106中读取的数据。
主机接口304是电性连接至存储器管理电路302并且用以接收与识别主机系统1000所传送的指令与数据。也就是说,主机系统1000所传送的指令与数据会通过主机接口304来传送至存储器管理电路302。在本实施例中,主机接口304是兼容于SD标准。然而,必须了解的是本发明不限于此,主机接口304也可以是兼容于PATA标准、IEEE 1394标准、PCIExpress标准、USB标准、UHS-I接口标准、UHS-II接口标准、SATA标准、MS标准、MMC标准、CF标准、IDE标准或其它适合的数据传输标准。
存储器接口306是电性连接至存储器管理电路302并且用以存取可复写式非易失性存储器模块106。也就是说,欲写入至可复写式非易失性存储器模块106的数据会通过存储器接口306转换为可复写式非易失性存储器模块106所能接受的格式。
在本发明一实施例中,存储器控制电路单元104还包括缓冲存储器308、电源管理电路310与错误检查与校正电路312。
缓冲存储器308是电性连接至存储器管理电路302并且用以暂存来自于主机系统1000的数据与指令或来自于可复写式非易失性存储器模块106的数据。
电源管理电路310是电性连接至存储器管理电路302并且用以控制存储器存储装置100的电源。
错误检查与校正电路312是电性连接至存储器管理电路302并且用以执行错误检查与校正程序以确保数据的正确性。具体来说,当存储器管理电路302从主机系统1000中接收到写入指令时,错误检查与校正电路312会为对应此写入指令的数据产生对应的错误检查与校正码(Error Checking and Correcting Code,简称ECC Code),并且存储器管理电路302会将对应此写入指令的数据与对应的错误检查与校正码写入至可复写式非易失性存储器模块106中。之后,当存储器管理电路302从可复写式非易失性存储器模块106中读取数据时会同时读取此数据对应的错误检查与校正码,并且错误检查与校正电路312会依据此错误检查与校正码对所读取的数据执行错误检查与校正程序。
图5与图6是本发明一实施例所示出的管理实体抹除单元的示意图。
请参照图5,可复写式非挥发性存储器模块106具有实体抹除单元510(0)~510(N),并且存储器控制电路单元104(或存储器管理电路302)会将实体抹除单元510(0)~510(N)逻辑地分组为存储区502、暂存区504、系统区506与取代区508。必须了解的是,存储区502、暂存区504、系统区506与取代区508的实体抹除单元的数量会依据不同的存储器规格而有所不同,本发明不对此进行限制。
逻辑上属于存储区502的实体抹除单元是用以存储来自于主机系统1000的数据。具体来说,存储区502包括数据区502a与闲置区502b,数据区502a的实体抹除单元是被视为已存储数据的实体抹除单元,而闲置区502b的实体抹除单元是用以替换数据区502a的实体抹除单元。也就是说,当从主机系统1000接收到写入指令与欲写入的数据时,存储器控制电路单元104(或存储器管理电路302)会从闲置区502b中提取实体抹除单元,并且将数据写入至所提取的实体抹除单元中,以替换数据区502a的实体抹除单元。
逻辑上属于暂存区504的实体抹除单元是用以暂存区504作为对应逻辑单元的暂存实体抹除单元组中的暂存实体抹除单元,以暂存主机系统1000所写入的数据。详细的暂存数据的方法以及步骤,将配合图示说明如后。
逻辑上属于系统区506的实体抹除单元是用以记录系统数据。例如,系统数据包括逻辑转实体地址映射表、关于可复写式非易失性存储器模块的制造商与型号、可复写式非易失性存储器模块的实体抹除单元数、每一实体抹除单元的实体编程单元数等。
逻辑上属于取代区508中的实体抹除单元是用于坏实体抹除单元取代程序,以取代损坏的实体抹除单元。具体来说,倘若取代区508中仍存有正常的实体抹除单元并且数据区502a的实体抹除单元损坏时,存储器管理电路302会从取代区508中提取正常的实体抹除单元来更换损坏的实体抹除单元。
请参照图6,存储器控制电路单元104(或存储器管理电路302)会配置逻辑单元LBA(0)~LBA(H)以映射数据区502a的实体抹除单元,其中每一逻辑单元具有多个逻辑子单元以映射对应的实体抹除单元的实体编程单元。并且,当主机系统1000欲写入数据至逻辑单元或更新存储于逻辑单元中的数据时,存储器控制电路单元104(或存储器管理电路302)会从闲置区502b中提取一个实体抹除单元来写入数据,以轮替数据区502a的实体抹除单元。在本实施例中,逻辑子单元可以是逻辑页面或逻辑扇区。
为了识别每个逻辑单元的数据被存储在哪个实体抹除单元中,在本实施例中,存储器控制电路单元104(或存储器管理电路302)会记录逻辑单元与实体抹除单元之间的映射关系。并且,当主机系统1000欲在逻辑子单元中存取数据时,存储器控制电路单元104(或存储器管理电路302)会确认此逻辑子单元所属的逻辑单元,并且在此逻辑单元所映射的实体抹除单元中来存取数据。例如,在本实施例中,存储器控制电路单元104(或存储器管理电路302)会在可复写式非易失性存储器模块106中存储逻辑转实体地址映射表来记录每一逻辑单元所映射的实体抹除单元,并且当欲存取数据时存储器控制电路单元104(或存储器管理电路302)会将逻辑转实体地址映射表加载至缓冲存储器308来维护。
值得一提的是,由于缓冲存储器308的容量有限无法存储记录所有逻辑单元的映射关系的映射表,因此,在本实施例中,存储器控制电路单元104(或存储器管理电路302)会将逻辑单元LBA(0)~LBA(H)分组为多个逻辑区域LZ(0)~LZ(M),并且为每一逻辑区域配置一个逻辑转实体地址映射表。特别是,当存储器控制电路单元104(或存储器管理电路202)欲更新某个逻辑单元的映射时,对应此逻辑单元所属的逻辑区域的逻辑转实体地址映射表会被加载至缓冲存储器308来被更新。
在本实施例中,当从主机系统1000接收到指示将数据存储至逻辑单元的写入指令时,存储器控制电路单元104(或存储器管理电路302)会从暂存区504中提取数个实体抹除单元作为对应与存储的逻辑单元的暂存实体抹除单元组的暂存实体抹除单元,并且使用单页模式先将第一数据暂存至暂存实体抹除单元的下实体编程单元。之后,存储器控制电路单元104(或存储器管理电路302)才使用多页模式将暂存实体抹除单元组中的数据写入至存储区502中对应的实体抹除单元并且将此逻辑单元映射至此对应的实体抹除单元。
在此,所谓单页模式是指,仅使用下实体编程单元来存储数据。也就是说,在单页模式中,存储器控制电路单元104(或存储器管理电路302)仅会对下实体编程单元进行数据的写入操作。由于暂存实体抹除单元是用单页模式来被操作,因此,在本实施例中,一个暂存实体抹除单元仅有三分之一的容量会被使用且对应一个逻辑单元的暂存实体抹除单元组会包含3个暂存实体抹除单元以提供足够的空间来存储一个逻辑单元的数据。在本实施例中,存储器控制电路单元104(或存储器管理电路302)是使用单页模式来操作暂存区504的实体抹除单元,或是使用单页模式来操作暂存实体抹除单元组中的暂存实体抹除单元。
所谓多页模式是指使用下实体编程单元、中实体编程单元与上实体编程单元来存储数据。也就是说,当使用多页模式来写入数据时,存储器控制电路单元104(或存储器管理电路302)会对一个实体编程单元组的下实体编程单元、中实体编程单元与上实体编程单元执行编程。值得一提的,在一实施例中,使用多页模式来操作实体抹除单元时,同一个实体编程单元组的实体编程单元会同时地或阶段性地被编程。再者,相较于以单页模式来操作的实体抹除单元,以多页模式来操作的实体抹除单元的使用寿命较短。具体来说,每个实体抹除单元能够被写入或抹除的次数是有限的,当一个实体抹除单元被写入的次数超过一个临界值时,此实体抹除单元可能就会损坏而无法再被写入数据,其中对应以多页模式来操作的实体抹除单元的临界值会低于对应以单页模式来操作的实体抹除单元的临界值。在本实施例中,存储器控制电路单元104(或存储器管理电路302)是使用多页模式来操作关联至存储区502的实体抹除单元。
在本实施例中,当一个实体抹除单元被划分至暂存区504后,此实体抹除单元将仅能用于暂存区504,而不会与存储区502的实体抹除单元混用。也就是说,存储器控制电路单元104(或存储器管理电路302)会独立地操作存储区502与暂存区504的实体抹除单元。例如,当一个实体抹除单元被划分至暂存区504后,存储器控制电路单元104(或存储器管理电路302)会以单页模式于暂存区504中操作此实体抹除单元,直到此实体抹除单元损坏为止。
图7是本发明一实施例所示出的使用单页模式将数据暂存在暂存区的示意图。
请参照图7,当存储器存储装置100从主机系统1000中接收到指示将更新数据存储至逻辑单元LBA(0)的第0~257个逻辑子单元的写入指令时,假设于本实施例中,存储器控制电路单元104(或存储器管理电路302)仅从暂存区504中提取3个实体抹除单元510(S+1)、510(S+2)、510(S+3)分别作为对应逻辑单元LBA(0)的暂存实体抹除单元组的多个暂存实体抹除单元,存储器控制电路单元104(或存储器管理电路302)会使用此对应逻辑单元LBA(0)的暂存实体抹除单元组的暂存实体抹除单元510(S+1)、暂存实体抹除单元510(S+2)、暂存实体抹除单元510(S+3)来写入属于逻辑单元LBA(0)的更新数据。
例如,存储器控制电路单元104(或存储器管理电路302)会将欲存储至逻辑单元LBA(0)的第0~85个逻辑子单元的更新数据依序地写入至暂存实体抹除单元510(S+1)的下实体编程单元、将欲存储至逻辑单元LBA(0)的第86~171个逻辑子单元的更新数据依序地写入至暂存实体抹除单元510(S+2)的下实体编程单元以及将欲存储至逻辑单元LBA(0)的第172~257个逻辑子单元的更新数据依序地写入至暂存实体抹除单元510(S+3)的下实体编程单元中。值得一提的是,当连续地写入大量数据时,上述依据暂存实体抹除单元510(S+1)、暂存实体抹除单元510(S+2)与暂存实体抹除单元510(S+3)的页面顺序来写入数据可利用快取编程(cache programming)指令以有效地提升写入数据的速度。在另一实施例中,存储器控制电路单元104(或存储器管理电路302)会将欲存储至逻辑单元LBA(0)的各个逻辑子单元的更新数据经过再整理或排列后,再同时写入至暂存实体抹除单元510(S+1)的下实体编程单元、暂存实体抹除单元510(S+2)的下实体编程单元以及暂存实体抹除单元510(S+3)的下实体编程单元中。
图8是本发明一实施例所示出的使用多页模式将暂存在暂存区的数据写入至存储区的示意图。
假设对应逻辑单元LBA(0)的暂存实体抹除单元组的暂存实体抹除单元510(S+1)、暂存实体抹除单元510(S+2)、暂存实体抹除单元510(S+3)已存储逻辑单元LBA(0)的所有逻辑子单元的有效数据(如图7所示)时,首先,如同图8所绘示,存储器控制电路单元104(或存储器管理电路302)会从闲置区502b中提取一个实体抹除单元作为当作用于轮替的实体抹除单元510(F+1)。具体来说,存储器控制电路单元104(或存储器管理电路302)会从闲置区502b中选择一个空的实体抹除单元或者所存储的数据为无效数据的实体抹除单元。特别是,倘若所提取的实体抹除单元是存储无效数据的实体抹除单元时,存储器控制电路单元104(或存储器管理电路302)会先对此实体抹除单元执行抹除操作。也就是说,实体抹除单元上的无效数据必须先被抹除。
之后,存储器控制电路单元104(或存储器管理电路302)会从暂存实体抹除单元510(S+1)的下实体编程单元中将属于逻辑单元LBA(0)的第0~85逻辑子单元的有效数据复制至实体抹除单元510(F+1)的对应页面(例如,第0~85实体编程单元)。接着,存储器控制电路单元104(或存储器管理电路302)会从暂存实体抹除单元510(S+2)的下实体编程单元中将属于逻辑单元LBA(0)的第86~171逻辑子单元的有效数据复制至实体抹除单元510(F+1)的对应页面(例如,第86~171实体编程单元)。然后,存储器控制电路单元104(或存储器管理电路302)会从暂存实体抹除单元510(S+3)的下实体编程单元中将属于逻辑单元LBA(0)的第172~257逻辑子单元的有效数据复制至实体抹除单元510(F+1)的对应页面(例如,第172~257实体编程单元)。
值得一提的是,如上所述,欲被关联至数据区502a的实体抹除单元是以多页模式来操作,因此,写入至实体抹除单元510(F+1)是以实体编程单元组为单位来同时或阶段性地编程。具体来说,在一实施例中,实体抹除单元510(F+1)的第0、1、2个实体编程单元会同时地被编程以写入属于逻辑单元LBA(0)的第0、1、2个逻辑子单元的数据;实体抹除单元510(F+1)的第3、4、5个实体编程单元会同时地被编程以写入属于逻辑单元LBA(0)的第3、4、5个逻辑子单元的数据;并且以此类推其它逻辑子单元的数据皆是以实体编程单元组为单位被写入至实体抹除单元510(F+1)中。
最后,存储器控制电路单元104(或存储器管理电路302)会在逻辑转实体地址映射表中将逻辑单元LBA(0)映射至实体抹除单元510(F+1)并且将对应逻辑单元的暂存实体抹除单元组的暂存实体抹除单元510(S+1)~510(S+3)执行抹除操作。也就是说,在执行下一个写入指令时,已被抹除的暂存实体抹除单元510(S+1)~510(S+3)就可再被选择作为欲写入的逻辑单元的暂存实体抹除单元。
值得一提的是,在本实施例中,当将主机系统1000欲存储的更新数据写入至暂存区504后,存储器控制电路单元104(或存储器管理电路302)就会传送通知已完成指令的回复(Response)给主机系统1000。值得一提的是,暂存区504的实体编程单元中的有效数据,会因为对应的更新数据被写入至暂存区504的另一个实体编程单元,而变成无效数据,并且类似地,数据区502a的实体编程单元中的有效数据也会因为对应的更新数据被写入至暂存区504的另一个实体编程单元变成无效数据,因此,暂存区504与数据区502a中会出现许多存储无效数据的实体编程单元,并且存储器控制电路单元104(或存储器管理电路302)会进行有效数据合并操作以回收此些存储无效数据的实体编程单元。例如,当存储器存储装置100属于闲置状态一段时间(例如,30秒未从主机系统1000中接收到任何指令)或者是当暂存区504或闲置区502b中空的实体抹除单元的数目小于预设门槛值时,存储器控制电路单元104(或存储器管理电路302)会对存储区502或暂存区504中的有效数据进行数据合并操作,以释放出空的实体抹除单元。例如,预设门槛值会被设定为3。然而,必须了解的是,本发明不限于此,预设门槛值也可以是其它适当的数值。
在本实施例中,存储器控制电路单元104(或存储器管理电路302)可在存储区502与暂存区504之间进行数据合并操作中、在暂存区504中进行数据合并操作或者在存储区502中进行数据操作程序。
图9为本发明一实施例所示出的在暂存区内执行数据合并操作的示意图。
请参照图9,假设存储器控制电路单元104(或存储器管理电路302)欲对暂存区504中的实体抹除单元进行数据合并操作时(例如,周期性地对暂存区504中的实体抹除单元进行数据合并操作或者主机系统1000处于闲置状态时)时,例如,存储器控制电路单元104(或存储器管理电路302)从暂存区504中选择实体抹除单元510(S+1)(也称为,第一实体抹除单元);并且将实体抹除单元510(S+1)中的有效数据复制至暂存区504中的实体抹除单元510(S+4)(也称为,第二实体抹除单元)中。
具体来说,存储器控制电路单元104(或存储器管理电路302)会从实体抹除单元510(S+1)的下实体编程单元中读取有效数据,并将所读出的有效数据写入到实体抹除单元510(S+4)的下实体编程单元中(即,此为图9所示的“数据合并”操作)。之后,存储器控制电路单元104(或存储器管理电路302)会将原本实体抹除单元510(S+1)中有效数据所属的逻辑子单元映射至实体抹除单元510(S+4)的实体编程单元,并对实体抹除单元510(S+1)进行抹除操作,以释放实体抹除单元510(S+1)的空间。在此范例中,执行在暂存区504内部的数据合并操作能够减少将有效数据从暂存区504复制到存储区502的数据合并操作,降低存储区502的实体抹除单元的写入(抹除)次数,有效地提升可复写式非易失性存储器的效能与寿命。
例如,在一实施例中,在执行暂存区504内部的数据合并操作时,存储器控制电路单元104(或存储器管理电路302)会从暂存区504中的实体抹除单元中识别至少一热数据,并且依据此至少一热数据选择上述欲进行数据合并操作的实体抹除单元。具体来说,存储器控制电路单元104(或存储器管理电路302)会记录暂存区504中实体抹除单元的数据的更新情况,来识别暂存区504中实体抹除单元中的数据是否为热数据。以图9为例,假如暂存区504中位于实体抹除单元510(S+1)中的数据的更新情况为最近(或较常)被主机系统1000所更新时,则存储器控制电路单元104(或存储器管理电路302)会识别此数据为热数据,并且将存储此热数据的实体抹除单元510(S+1)选作为进行数据合并操作的实体抹除单元。
除了选择存储热数据的实体抹除单元来进行暂存区504内的数据合并操作(如图9所示)外,在另一实施例中,存储器控制电路单元104(或存储器管理电路302)也可依据暂存区504中的实体抹除单元中的有效数据的数量,为暂存区504的每一个实体抹除单元纪录一个有效数据计数,并且依据每一个实体抹除单元的有效数据计数,来选择进行数据合并操作的实体抹除单元。例如,存储器控制电路单元104(或存储器管理电路302)会选择暂存区504的实体抹除单元之中有效数据计数最小的实体抹除单元(即,所选择的实体抹除单元的有效数据计数小于暂存区504中的其它实体抹除单元的有效计数)来进行数据合并操作。
图10为本发明一实施例所示出的从暂存区的实体抹除单元中搬移有效数据至存储区的数据合并操作的示意图。
请参照图10,假设存储器控制电路单元104(或存储器管理电路302)欲对暂存区504中的实体抹除单元进行数据合并时(例如,周期性地对暂存区504中的实体抹除单元进行数据合并或者主机系统1000处于闲置状态时或者暂存区504中所有的实体抹除单元没有足够空间时)时,例如,存储器控制电路单元104(或存储器管理电路302)会从暂存区504中选择实体抹除单元510(S+6)(也称为,第三实体抹除单元)并且将实体抹除单元510(S+6)中的有效数据存储至闲置区502b的实体抹除单元510(F+3)(也称为,第四实体抹除单元)中。
具体来说,存储器控制电路单元104(或存储器管理电路302)会从实体抹除单元510(S+6)的下实体编程单元中读取有效数据,并将所读出的有效数据写入到实体抹除单元510(F+3)的下、中、上实体编程单元中。之后,存储器控制电路单元104(或存储器管理电路302)会将原本实体抹除单元510(S+6)中有效数据所属的逻辑子单元映射至实体抹除单元510(F+3)的实体编程单元,并对实体抹除单元510(S+6)进行抹除操作,以释放实体抹除单元510(S+6)的空间。
例如,在一实施例中,当执行图10的数据合并操作时,存储器控制电路单元104(或存储器管理电路302)会从暂存区504中的实体抹除单元中识别至少一冷数据,并且依据此至少一冷数据选择欲进行数据合并操作的实体抹除单元。具体来说,存储器控制电路单元104(或存储器管理电路302)会记录暂存区504中实体抹除单元的数据的更新情况,来识别暂存区504中实体抹除单元中的数据是否为冷数据。以图10为例,假如暂存区504中位于实体抹除单元510(S+6)的一数据的更新情况为最近没有(或较少)被主机系统1000所更新,则存储器控制电路单元104(或存储器管理电路302)会识别此数据为冷数据,并且由此存储此冷数据的实体抹除单元510(S+6)作为进行数据合并操作的实体抹除单元。
除了选择存储冷数据的实体抹除单元来进行图10所示的数据合并操作外,在另一实施例中,存储器控制电路单元104(或存储器管理电路302)也可依据暂存区504中的实体抹除单元中的有效数据的数量,为暂存区504的每一个实体抹除单元记录一个有效数据计数,并且依据每一实体抹除单元的有效数据计数,选择进行数据合并操作的实体抹除单元。例如,存储器控制电路单元104(或存储器管理电路302)会选择暂存区504的实体抹除单元之中有效数据计数最大的实体抹除单元(即,所选择的实体抹除单元的有效数据计数大于暂存区504中的其它实体抹除单元的有效计数)来进行数据合并操作。
图11为本发明一实施例例所示出的对存储区中的实体抹除单元进行数据合并操作的示意图。
请参照图11,假设存储器控制电路单元104(或存储器管理电路302)欲对存储区502中的实体抹除单元进行数据合并操作时(例如,周期性地对存储区502中的实体抹除单元进行数据合并操作或者主机系统1000处于闲置状态时),存储器控制电路单元104(或存储器管理电路302)从存储区502的数据区502a中选择实体抹除单元510(F+4)(也称为,第五实体抹除单元)并且将实体抹除单元510(F+4)中的有效数据存储至存储区502的闲置区502b中的实体抹除单元510(F+5)(也称为,第六实体抹除单元)中。
具体来说,在进行数据合并操作的过程中,存储器控制电路单元104(或存储器管理电路302)会从实体抹除单元510(F+4)的下、中、上实体编程单元中读取有效数据,并将所读出的有效数据写入到实体抹除单元510(F+5)的下、中、上实体编程单元中(即,此为图11所示的“数据合并”操作)。之后,存储器控制电路单元104(或存储器管理电路302)会将原本实体抹除单元510(F+4)中有效数据所属的逻辑子单元映射至实体抹除单元510(F+5)的实体编程单元,并对实体抹除单元510(F+4)进行抹除操作,以释放实体抹除单元510(F+4)的空间。
图12为本发明另一实施例所示出的对存储区中的实体抹除单元进行数据合并操作的示意图。
请参照图12,假设存储器控制电路单元104(或存储器管理电路302)欲对存储区502的数据区502a中的实体抹除单元进行数据合并操作时(例如,周期性地对数据区502a中的实体抹除单元进行数据合并操作或者主机系统1000处于闲置状态时或者数据区502a中所有的实体抹除单元没有足够空间时),存储器控制电路单元104(或存储器管理电路302)从存储区502的数据区502a中选择实体抹除单元510(F+6)(也称为,第七实体抹除单元),从暂存区504中选择实体抹除单元510(S+6)(也称为,第八实体抹除单元)作为数据合并操作的缓冲区,并且先将实体抹除单元510(F+6)中的有效数据复制至实体抹除单元510(S+6)中。具体来说,存储器控制电路单元104(或存储器管理电路302)会从实体抹除单元510(F+6)的下、中、上实体编程单元中读取有效数据,并将所读出的有效数据写入到实体抹除单元510(S+6)的下实体编程单元中(即,此为图12所示的“数据合并A”操作),并对实体抹除单元510(F+6)进行抹除操作,以释放实体抹除单元510(F+6)的空间。
之后,存储器控制电路单元104(或存储器管理电路302)会从实体抹除单元510(S+6)的下实体编程单元中读取该些有效数据,将所读出的有效数据写入到存储区502的闲置区502b的实体抹除单元510(F+2)(也称为,第九实体抹除单元)的下、中、上实体编程单元中(即,此为图12所示的“数据合并B”操作),并将存储于实体抹除单元510(S+6)中属于实体抹除单元510(F+3)的数据标记为无效。之后,存储器控制电路单元104(或存储器管理电路302)会将此些有效数据所属的逻辑子单元映射至实体抹除单元510(F+2)的实体编程单元。在图12的例子中,数据区502a的实体抹除单元510(F+6)中的有效数据会先被复制到暂存区504中的实体抹除单元510(S+6),之后所复制的数据会再从实体抹除单元510(S+6)中复制到闲置区502b的实体抹除单元510(F+2)中。基此,数据区502a的实体抹除单元510(F+6)中的所有数据就变成为无效数据,并且实体抹除单元510(F+6)就可被执行抹除操作并被释放出来(即,实体抹除单元510(F+6)会被关联至闲置区502b)。
图13为本发明一实施例所示出的数据合并操作的流程图。
在步骤S1301中,存储器控制电路单元104(或存储器管理电路302)会判断暂存区504中空的实体抹除单元的数目是否小于预定门槛值。
当暂存区504中空的实体抹除单元的数目大于或等于预定门槛值时,图13的流程会结束。
当暂存区504中空的实体抹除单元的数目小于预定门槛值时,在步骤S1303中,存储器控制电路单元104(或存储器管理电路302)会判断是否执行暂存区504内数据合并操作。例如,存储器控制电路单元104(或存储器管理电路302)会依据暂存区504内有效数据的量来决定是否执行暂存区504内数据合并操作。例如,若暂存区504内的有效数据小于预定数目时,存储器控制电路单元104(或存储器管理电路302)会决定执行暂存区504内数据合并操作。
倘若判断执行暂存区504内数据合并操作时,在步骤S1305中,存储器控制电路单元104(或存储器管理电路302)会从暂存区504的实体抹除单元中选择一个存有数据的实体抹除单元(以下称为第一实体抹除单元),将第一实体抹除单元中的有效数据复制至暂存区504中的另一实体抹除单元(以下称为第二实体抹除单元)中,并对第一实体抹除单元进行抹除操作。
倘若判断无需执行暂存区504内数据合并操作时,在步骤S1307中,存储器控制电路单元104(或存储器管理电路302)从暂存区504的实体抹除单元中选择一个存有数据的实体抹除单元(以下称为第三实体抹除单元),将第三实体抹除单元中的有效数据复制至存储区502中的实体抹除单元(以下称为第四实体抹除单元)中,并对第三实体抹除单元进行抹除操作。
必须了解的是,图13中的步骤及其顺序仅一范例,本发明不限于此。例如,步骤S1305与S1307的步骤也可分别地依据不同的驱动信号来启动操作,而不依据步骤S1301与步骤S1303的判断来操作。
综上所述,本发明通过暂存区内部的实体抹除单元所进行的数据合并操作,以及将暂存区中的实体抹除单元进行数据合并操作至闲置区中,藉此避免因为过多地使用多页模式来操作存储区的实体抹除单元而使其寿命快速下降,以提升每一存储单元可存储多个位的快闪存储器的可靠度与存取速度。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (18)
1.一种数据写入方法,用于一可复写式非易失性存储器模块,其特征在于,所述可复写式非易失性存储器模块具有多个实体抹除单元,所述多个实体抹除单元中的每一个实体抹除单元具有多个实体编程单元,所述数据写入方法包括:
将该些实体抹除单元至少分组为一存储区与一暂存区,其中所述暂存区的该些实体抹除单元是以一单页模式来写入数据并且所述存储区的该些实体抹除单元是以一多页模式来写入数据;
从所述暂存区的该些实体抹除单元之中选择一第一实体抹除单元,将所述第一实体抹除单元中的多个有效数据复制至所述暂存区的该些实体抹除单元之中的一第二实体抹除单元,并对所述第一实体抹除单元进行一抹除操作;以及
从所述暂存区的该些实体抹除单元之中选择一第三实体抹除单元,将所述第三实体抹除单元中的多个有效数据复制至所述存储区的该些实体抹除单元之中的一第四实体抹除单元,并对所述第三实体抹除单元进行所述抹除操作。
2.根据权利要求1所述的数据写入方法,其特征在于,还包括:
从所述存储区的该些实体抹除单元之中选择一第五实体抹除单元,将所述第五实体抹除单元中的多个有效数据复制至所述存储区的该些实体抹除单元之中的一第六实体抹除单元,并对所述第五实体抹除单元进行所述抹除操作。
3.根据权利要求1所述的数据写入方法,其特征在于,还包括:
从所述存储区的该些实体抹除单元之中选择一第七实体抹除单元,将所述第七实体抹除单元中的多个有效数据复制至所述暂存区的该些实体抹除单元之中的一第八实体抹除单元,并对所述第七实体抹除单元进行所述抹除操作;以及
将存储于所述第八实体抹除单元中属于所述第七实体抹除单元的该些有效数据复制至所述存储区的该些实体抹除单元之中的一第九实体抹除单元。
4.根据权利要求1所述的数据写入方法,其特征在于,从所述暂存区的该些实体抹除单元之中选择所述第一实体抹除单元的步骤包括:
从暂存在所述暂存区中的数据之中识别至少一热数据,并且依据所述至少一热数据选择所述第一实体抹除单元,其中所述至少一热数据被存储在所述第一实体抹除单元中,
其中从所述暂存区的该些实体抹除单元之中选择所述第三实体抹除单元的步骤包括:从暂存在所述暂存区中的数据之中识别至少一冷数据,并且依据所述至少一冷数据选择所述第三实体抹除单元,其中所述至少一冷数据被存储在所述第三实体抹除单元中。
5.根据权利要求1所述的数据写入方法,其特征在于,还包括:
依据所述暂存区的该些实体抹除单元中的有效数据的数量为所述暂存区的所述多个实体抹除单元中的每一个实体抹除单元记录一有效数据计数,
其中从所述暂存区的该些实体抹除单元之中选择所述第一实体抹除单元的步骤包括:
依据对应所述暂存区的所述多个实体抹除单元中的每一个实体抹除单元的所述有效数据计数选择所述第一实体抹除单元,其中对应所述第一实体抹除单元的有效数据计数小于对应该暂存区的该些实体抹除单元之中的其它实体抹除单元的有效数据计数。
6.根据权利要求1所述的数据写入方法,其特征在于,还包括:
依据所述暂存区的该些实体抹除单元中的有效数据的数量为所述暂存区的所述多个实体抹除单元中的每一个实体抹除单元记录一有效数据计数,
其中从所述暂存区的该些实体抹除单元之中选择所述第三实体抹除单元的步骤包括:
依据对应所述暂存区的所述多个实体抹除单元中的每一个实体抹除单元的所述有效数据计数选择所述第三实体抹除单元,其中对应所述第三实体抹除单元的有效数据计数大于或等于对应所述暂存区的该些实体抹除单元之中的其它实体抹除单元的有效数据计数。
7.一种存储器控制电路单元,用于控制一可复写式非易失性存储器模块,其特征在于,所述存储器控制电路单元包括:
一主机接口,用以电性连接至一主机系统;
一存储器接口,用以电性连接至所述可复写式非易失性存储器模块,其中所述可复写式非易失性存储器模块具有多个实体抹除单元,所述多个实体抹除单元中的每一个实体抹除单元具有多个实体编程单元;以及
一存储器管理电路,电性连接至所述主机接口与所述存储器接口,并且用以将该些实体抹除单元至少分组为一存储区与一暂存区,其中所述暂存区的该些实体抹除单元是以一单页模式来写入数据并且所述存储区的该些实体抹除单元是以一多页模式来写入数据,
其中所述存储器管理电路还用以从所述暂存区的该些实体抹除单元之中选择一第一实体抹除单元,将所述第一实体抹除单元中的多个有效数据复制至所述暂存区的该些实体抹除单元之中的一第二实体抹除单元,并对所述第一实体抹除单元进行一抹除操作,
其中所述存储器管理电路还用以从所述暂存区的该些实体抹除单元之中选择一第三实体抹除单元,将所述第三实体抹除单元中的多个有效数据复制至所述存储区的该些实体抹除单元之中的一第四实体抹除单元,并对所述第三实体抹除单元进行所述抹除操作。
8.根据权利要求7所述的存储器控制电路单元,其特征在于,所述存储器管理电路还用以从所述存储区的该些实体抹除单元之中选择一第五实体抹除单元,将所述第五实体抹除单元中的多个有效数据复制至所述存储区的该些实体抹除单元之中的一第六实体抹除单元,并对所述第五实体抹除单元进行所述抹除操作。
9.根据权利要求7所述的存储器控制电路单元,其特征在于,所述存储器管理电路还用以从所述存储区的该些实体抹除单元之中选择一第七实体抹除单元,将所述第七实体抹除单元中的多个有效数据复制至所述暂存区的该些实体抹除单元之中的一第八实体抹除单元,对所述第七实体抹除单元进行所述抹除操作,并且将存储于所述第八实体抹除单元中属于所述第七实体抹除单元的该些有效数据复制至所述存储区的该些实体抹除单元之中的一第九实体抹除单元。
10.根据权利要求7所述的存储器控制电路单元,其特征在于,在从所述暂存区的该些实体抹除单元之中选择所述第一实体抹除单元的操作中,所述存储器管理电路从暂存在所述暂存区中的数据之中识别至少一热数据,并且依据所述至少一热数据选择所述第一实体抹除单元,其中所述至少一热数据被存储在所述第一实体抹除单元中,
其中在从所述暂存区的该些实体抹除单元之中选择所述第三实体抹除单元的操作中,所述存储器管理电路从暂存在所述暂存区中的数据之中识别至少一冷数据,并且依据所述至少一冷数据选择所述第三实体抹除单元,其中所述至少一冷数据被存储在所述第三实体抹除单元中。
11.根据权利要求7所述的存储器控制电路单元,其特征在于,所述存储器管理电路还用以依据所述暂存区的该些实体抹除单元中的有效数据的数量为所述暂存区的所述多个实体抹除单元中的每一个实体抹除单元记录一有效数据计数,
其中在从所述暂存区的该些实体抹除单元之中选择所述第一实体抹除单元的操作中,所述存储器管理电路依据对应所述暂存区的所述多个实体抹除单元中的每一个实体抹除单元的所述有效数据计数选择所述第一实体抹除单元,其中对应所述第一实体抹除单元的有效数据计数小于对应所述暂存区的该些实体抹除单元之中的其它实体抹除单元的有效数据计数。
12.根据权利要求7所述的存储器控制电路单元,其特征在于,所述存储器管理电路还用以依据所述暂存区的该些实体抹除单元中的有效数据的数量为所述暂存区的所述多个实体抹除单元中的每一个实体抹除单元记录一有效数据计数,
其中在所述暂存区的该些实体抹除单元之中选择所述第三实体抹除单元的操作中,所述存储器管理电路依据对应所述暂存区的所述多个实体抹除单元中的每一个实体抹除单元的所述有效数据计数选择所述第三实体抹除单元,其中对应所述第三实体抹除单元的有效数据计数大于或等于对应所述暂存区的该些实体抹除单元之中的其它实体抹除单元的有效数据计数。
13.一种存储器存储装置,其特征在于,包括:
一连接接口单元,用以电性连接至一主机系统;
一可复写式非易失性存储器模块,具有多个实体抹除单元,所述多个实体抹除单元中的每一个实体抹除单元具有多个实体编程单元;以及
一存储器控制电路单元,电性连接至所述连接接口单元与所述可复写式非易失性存储器模块,并且用以将该些实体抹除单元至少分组为一存储区与一暂存区,其中所述暂存区的该些实体抹除单元是以一单页模式来写入数据并且所述存储区的该些实体抹除单元是以一多页模式来写入数据,
其中所述存储器控制电路单元还用以从所述暂存区的该些实体抹除单元之中选择一第一实体抹除单元,将所述第一实体抹除单元中的多个有效数据复制至所述暂存区的该些实体抹除单元之中的一第二实体抹除单元,并对所述第一实体抹除单元进行一抹除操作,
其中所述存储器控制电路单元还用以从所述暂存区的该些实体抹除单元之中选择一第三实体抹除单元,将所述第三实体抹除单元中的多个有效数据复制至所述存储区的该些实体抹除单元之中的一第四实体抹除单元,并对所述第三实体抹除单元进行所述抹除操作。
14.根据权利要求13所述的存储器存储装置,其特征在于,所述存储器控制电路单元还用以从所述存储区的该些实体抹除单元之中选择一第五实体抹除单元,将所述第五实体抹除单元中的多个有效数据复制至所述存储区的该些实体抹除单元之中的一第六实体抹除单元,并对所述第五实体抹除单元进行所述抹除操作。
15.根据权利要求13所述的存储器存储装置,其特征在于,所述存储器控制电路单元还用以从所述存储区的该些实体抹除单元之中选择一第七实体抹除单元,将所述第七实体抹除单元中的多个有效数据复制至所述暂存区的该些实体抹除单元之中的一第八实体抹除单元,对所述第七实体抹除单元进行所述抹除操作,并且将存储于所述第八实体抹除单元中属于所述第七实体抹除单元中的该些有效数据复制至所述存储区的该些实体抹除单元之中的一第九实体抹除单元。
16.根据权利要求13所述的存储器存储装置,其特征在于,在从所述暂存区的该些实体抹除单元之中选择一第一实体抹除单元的操作中,所述存储器控制电路单元从暂存在所述暂存区中的数据之中识别至少一热数据,并且依据所述至少一热数据选择所述第一实体抹除单元,其中所述至少一热数据被存储在所述第一实体抹除单元中,
其中在从所述暂存区的该些实体抹除单元之中选择所述第三实体抹除单元的操作中,所述存储器控制电路单元从暂存在所述暂存区中的数据之中识别至少一冷数据,并且依据所述至少一冷数据选择所述第三实体抹除单元,其中所述至少一冷数据被存储在所述第三实体抹除单元中。
17.根据权利要求13所述的存储器存储装置,其特征在于,
所述存储器控制电路单元还用以依据所述暂存区的该些实体抹除单元中的有效数据的数量为所述暂存区的所述多个实体抹除单元中的每一个实体抹除单元记录一有效数据计数,
其中在从所述暂存区的该些实体抹除单元之中选择所述第一实体抹除单元的操作中,所述存储器控制电路单元依据对应所述暂存区的所述多个实体抹除单元中的每一个实体抹除单元的所述有效数据计数选择所述第一实体抹除单元,其中对应所述第一实体抹除单元的有效数据计数小于对应所述暂存区的该些实体抹除单元之中的其它实体抹除单元的有效数据计数。
18.根据权利要求13所述的存储器存储装置,其特征在于,
所述存储器控制电路单元还用以依据所述暂存区的该些实体抹除单元中的有效数据的数量为所述暂存区的所述多个实体抹除单元中的每一个实体抹除单元记录一有效数据计数,
其中在从所述暂存区的该些实体抹除单元之中选择所述第三实体抹除单元的操作中,所述存储器控制电路单元依据对应所述暂存区的所述多个实体抹除单元中的每一个实体抹除单元的所述有效数据计数选择所述第三实体抹除单元,其中对应所述第三实体抹除单元的有效数据计数大于或等于对应所述暂存区的该些实体抹除单元之中的其它实体抹除单元的有效数据计数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510228914.8A CN106201932B (zh) | 2015-05-07 | 2015-05-07 | 数据写入方法、存储器控制电路单元与存储器存储装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510228914.8A CN106201932B (zh) | 2015-05-07 | 2015-05-07 | 数据写入方法、存储器控制电路单元与存储器存储装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106201932A CN106201932A (zh) | 2016-12-07 |
CN106201932B true CN106201932B (zh) | 2019-03-05 |
Family
ID=57459648
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510228914.8A Active CN106201932B (zh) | 2015-05-07 | 2015-05-07 | 数据写入方法、存储器控制电路单元与存储器存储装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106201932B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112051963B (zh) * | 2019-06-06 | 2023-06-13 | 群联电子股份有限公司 | 数据写入方法、存储器控制电路单元以及存储器存储装置 |
CN116236000A (zh) * | 2021-12-08 | 2023-06-09 | 比亚迪精密制造有限公司 | 电子烟的数据存储控制方法、电子烟及计算机可读存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201118569A (en) * | 2009-11-23 | 2011-06-01 | Phison Electronics Corp | Data storing method for a flash memory, and flash memory controller and flash memory storage system using the same |
CN102193885A (zh) * | 2010-03-05 | 2011-09-21 | 248固态硬碟有限公司 | 支持虚拟信道的非挥发性存储器控制器 |
CN103136111A (zh) * | 2011-11-29 | 2013-06-05 | 群联电子股份有限公司 | 数据写入方法、存储器控制器与存储器储存装置 |
CN103365790A (zh) * | 2012-03-29 | 2013-10-23 | 群联电子股份有限公司 | 存储器控制器、存储装置与数据写入方法 |
CN103514096A (zh) * | 2012-06-18 | 2014-01-15 | 群联电子股份有限公司 | 数据储存方法、存储器控制器与存储器储存装置 |
CN103593296A (zh) * | 2012-08-15 | 2014-02-19 | 群联电子股份有限公司 | 数据储存方法、存储器控制器与存储器储存装置 |
CN103714008A (zh) * | 2012-10-08 | 2014-04-09 | 群联电子股份有限公司 | 数据存储方法、存储器控制器与存储器存储装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110252187A1 (en) * | 2010-04-07 | 2011-10-13 | Avigdor Segal | System and method for operating a non-volatile memory including a portion operating as a single-level cell memory and a portion operating as a multi-level cell memory |
-
2015
- 2015-05-07 CN CN201510228914.8A patent/CN106201932B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201118569A (en) * | 2009-11-23 | 2011-06-01 | Phison Electronics Corp | Data storing method for a flash memory, and flash memory controller and flash memory storage system using the same |
CN102193885A (zh) * | 2010-03-05 | 2011-09-21 | 248固态硬碟有限公司 | 支持虚拟信道的非挥发性存储器控制器 |
CN103136111A (zh) * | 2011-11-29 | 2013-06-05 | 群联电子股份有限公司 | 数据写入方法、存储器控制器与存储器储存装置 |
CN103365790A (zh) * | 2012-03-29 | 2013-10-23 | 群联电子股份有限公司 | 存储器控制器、存储装置与数据写入方法 |
CN103514096A (zh) * | 2012-06-18 | 2014-01-15 | 群联电子股份有限公司 | 数据储存方法、存储器控制器与存储器储存装置 |
CN103593296A (zh) * | 2012-08-15 | 2014-02-19 | 群联电子股份有限公司 | 数据储存方法、存储器控制器与存储器储存装置 |
CN103714008A (zh) * | 2012-10-08 | 2014-04-09 | 群联电子股份有限公司 | 数据存储方法、存储器控制器与存储器存储装置 |
Also Published As
Publication number | Publication date |
---|---|
CN106201932A (zh) | 2016-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8645613B2 (en) | Data writing method for flash memory and control circuit and storage system using the same | |
CN104765568B (zh) | 数据存储方法、存储器控制电路单元与存储器存储装置 | |
CN104679437B (zh) | 数据写入方法、存储器控制电路单元与存储器储存装置 | |
CN107844431A (zh) | 映射表更新方法、存储器控制电路单元与存储器存储装置 | |
CN104732153B (zh) | 数据抹除方法、存储器控制电路单元及存储器存储装置 | |
CN106469122B (zh) | 有效数据合并方法、存储器控制器与存储器储存装置 | |
CN106776376B (zh) | 缓冲存储器管理方法、存储器控制电路单元及存储装置 | |
CN104699413B (zh) | 数据管理方法、存储器存储装置及存储器控制电路单元 | |
CN106557432B (zh) | 缓冲存储器管理方法、存储器控制电路单元及存储装置 | |
CN104765569B (zh) | 数据写入方法、存储器控制电路单元与存储器储存装置 | |
CN107402716A (zh) | 数据写入方法、内存控制电路单元与内存储存装置 | |
CN103136111B (zh) | 数据写入方法、存储器控制器与存储器储存装置 | |
CN106681932A (zh) | 存储器管理方法、存储器控制电路单元及存储器存储装置 | |
CN103593296B (zh) | 数据储存方法、存储器控制器与存储器储存装置 | |
CN107544922A (zh) | 数据写入方法、存储器控制电路单元及存储器存储装置 | |
TW201401050A (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
CN105988950B (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
CN108733577A (zh) | 存储器管理方法、存储器控制电路单元及存储器存储装置 | |
US8943264B2 (en) | Data storing method, and memory controller and memory storage apparatus using the same | |
CN105224238B (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
CN103544118B (zh) | 存储器储存装置、其存储器控制器与数据写入方法 | |
CN106484308B (zh) | 数据保护方法、存储器控制电路单元及存储器储存装置 | |
CN102890653B (zh) | 指令执行方法、存储器控制器与存储器储存装置 | |
CN104731710B (zh) | 存储器管理方法、存储器控制电路单元与存储器储存装置 | |
CN107045890A (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 |