CN105761754B - 存储单元编程方法、存储器控制电路单元与存储装置 - Google Patents

存储单元编程方法、存储器控制电路单元与存储装置 Download PDF

Info

Publication number
CN105761754B
CN105761754B CN201410799120.2A CN201410799120A CN105761754B CN 105761754 B CN105761754 B CN 105761754B CN 201410799120 A CN201410799120 A CN 201410799120A CN 105761754 B CN105761754 B CN 105761754B
Authority
CN
China
Prior art keywords
data
programming
cells
memory
programming parameters
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
Application number
CN201410799120.2A
Other languages
English (en)
Other versions
CN105761754A (zh
Inventor
林纬
许祐诚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Phison Electronics Corp
Original Assignee
Phison Electronics Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Phison Electronics Corp filed Critical Phison Electronics Corp
Priority to CN201410799120.2A priority Critical patent/CN105761754B/zh
Publication of CN105761754A publication Critical patent/CN105761754A/zh
Application granted granted Critical
Publication of CN105761754B publication Critical patent/CN105761754B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Read Only Memory (AREA)

Abstract

本发明提供一种用于存储单元编程方法、存储器控制电路单元与存储装置。此存储单元编程方法包括将可复写式非易失性存储器模块的实体抹除单元至少分组为第一区与第二区,其中第一组编程参数被预先设定用于将第一类数据写入至属于第一区的实体抹除单元的下实体编程单元并且第一区的实体抹除单元的上实体编程单元不会被用来存储数据。此方法还包括:调整第一组编程参数以获得第二组编程参数;以及使用第二组编程参数将第二类数据写入至属于第二区的实体抹除单元的下实体编程单元中,其中第二区的实体抹除单元的上实体编程单元不会被用来存储数据。

Description

存储单元编程方法、存储器控制电路单元与存储装置
技术领域
本发明是有关于一种存储单元编程方法,且特别是有关于一种用于可复写式非易失性存储器模块的存储单元编程方法、存储器控制电路单元与存储装置。
背景技术
数码相机、手机与MP3在这几年来的成长十分迅速,使得消费者对存储媒体的需求也急速增加。由于可复写式非易失性存储器(rewritable non-volatile memory)具有数据非易失性、省电、体积小、无机械结构、读写速度快等特性,最适于便携式电子产品,例如笔记本。固态硬盘就是一种以快闪存储器作为存储媒体的存储器存储装置。因此,近年快闪存储器产业成为电子产业中相当热门的一环。
随着半导体制程的进步,目前的技术已发展出具有能够存储多个比特数据的存储单元的快闪存储器模块。具体来说,快闪存储器模块的数据写入(或称为编程)是利用施予电压至快闪存储器元件的特定端点(例如,控制栅极电压来改变栅极中之一电荷补捉层的电子量),因而改变了存储单元的通道的导通状态,以呈现不同的存储状态。例如,以多阶存储单元(Multi-Level Cell,简称MLC)NAND型快闪存储器为例,当下页面数据为1且上页面数据为1时,控制电路会控制字元线控制电路不改变存储单元中的栅极电压,而将存储单元的存储状态保持为“11”;当下页面数据为1且上页面数据为0时,字元线控制电路会在控制电路的控制下改变存储单元中的栅极电压,而将存储单元的存储状态改变为“10”;当下页面数据为0且上页面数据为0时,字元线控制电路会在控制电路的控制下改变存储单元中的栅极电压,而将存储单元的存储状态改变为“00”;并且,当下页面数据为0且上页面数据为1时,字元线控制电路会在控制电路的控制下改变存储单元中的栅极电压,而将存储单元的存储状态改变为“01”。也就是说,当读取数据时,控制电路会根据目前存储单元中的栅极电压来识别此存储单元的存储状态。
在编程过程中,存储单元会随着电子的多次的注入与移除而造成老化,导致电子写入速度增加并造成临界电压分布变宽。因此,在多次编程后,存储单元可能无法被正确地识别其存储状态,而产生错误比特。此外,在对同一个存储单元所存储的数据进行多次读取时,例如十万至百万次间的读取次数,很有可能会发生所读取的数据是错误的状况,甚至此被多次读取实体抹除单元内所存储的数据会发生异常或遗失。而此类现象以本发明领域具有通常知识者惯称为“读取干扰”(read-disturb)。特别是,快闪存储器模块中会存储快闪存储器存储***的***数据(例如固件码(Firmware Code)、文件分配表(File AllocationTable,简称FAT),且此***数据会在快闪存储器存储***操作期间高频率地的读取。
基此,如何使用适当的编程参数来编程存储单元,以避免存储单元快速劣化,同时又能够较佳地控制栅极中之一电荷补捉层的电子量以防止读取干扰发生,是此领域技术人员所致力的目标。
发明内容
本发明提供一种存储单元编程方法、存储器控制电路单元与存储装置,其能够延长存储单元的寿命,并且避免读取干扰的发生。
本发明的一范例实施例提出一种用于可复写式非易失性存储器模块的存储单元编程方法,其中此可复写式非易失性存储器模块具有多个实体抹除单元,且每一实体抹除单元具有多个实体编程单元。此存储单元编程方法包括:使用第一组编程参数将第一类数据写入此些实体编程单元之中的其中一个实体编程单元;以及使用第二组编程参数将第二类数据写入至此些实体编程单元之中的其中一个实体编程单元,其中第一组编程参数中至少部分参数不相同于第二组编程参数,且以第一组编程参数写入第一类数据的实体编程单元的存储单元的数据比特数相同于以第二组编程参数写入第二类数据的实体编程单元的存储单元的数据比特数。
在本发明的一范例实施例中,此些实体编程单元之中写入第二类数据的实体编程单元映射相对应的逻辑地址,且写入第一类数据的实体编程单元无映射相对应的逻辑地址。
在本发明的一范例实施例中,其中以第一组编程参数写入第一类数据的实体编程单元的存储单元的数据比特数为1个比特并且以第二组编程参数写入第二类数据的实体编程单元的存储单元的数据比特数为1个比特。
在本发明的一范例实施例中,上述存储单元编程方法还包括:将实体抹除单元至少分组为第一区与第二区。并且,上述使用第一组编程参数将第一类数据写入此些实体编程单元之中的步骤包括:使用第一组编程参数将第一类数据写入至属于第一区的实体抹除单元,并且上述使用第二组编程参数将第二类数据写入此些实体编程单元的步骤包括:使用第二组编程参数将第二类数据写入至属于第二区的实体抹除单元。
在本发明的一范例实施例中,每一实体抹除单元的该些实体编程单元包括多个下实体编程单元与多个上实体编程单元。该第一组编程参数被预先设定用于属于该第一区的实体抹除单元,并且该第一区的实体抹除单元的上实体编程单元不会被用来存储数据。该第二组编程参数用于属于该第二区的实体抹除单元,并且该第二区的实体抹除单元的上实体编程单元不会被用来存储数据。
在本发明的一范例实施例中,上述存储单元编程方法还包括:调整第一组编程参数以获得第二组编程参数。
在本发明的一范例实施例中,上述存储单元编程方法还包括:接收一数据;判断此数据是否属于第二类数据;倘若此数据不属于第二类数据时,使用第一组编程参数将数据写入至第一区的实体抹除单元之中的至少一第一实体抹除单元;以及倘若此数据属于第二类数据时,使用第二组编程参数将此数据写入至第二区的实体抹除单元之中的至少一第二实体抹除单元。
在本发明的一范例实施例中,上述存储单元编程方法还包括:识别欲存储此数据的至少一逻辑单元;判断此至少一逻辑单元是否映射至第二区的实体抹除单元;以及倘若此至少一逻辑单元是映射至第二区的实体抹除单元时,识别此数据是属于第二类数据。
在本发明的一范例实施例中,上述存储单元编程方法还包括:使用单层存储单元方式抹除指令对上述第一实体抹除单元执行抹除操作;以及使用多层存储单元方式抹除指令对上述第二实体抹除单元执行抹除操作。
在本发明的一范例实施例中,上述第一组编程参数包括第一增量阶跃脉冲程序调整值、第一初始写入电压、第一验证电压、第一读取电压、第一导通电压与第一抹除电压的至少其中之一。
在本发明的一范例实施例中,上述实体编程单元之中以第一组编程参数编程的实体编程单元的数据保存能力或抗读取干扰能力优于以第二组编程参数编程的实体编程单元的数据保存能力或抗读取干扰能力。
在本发明的一范例实施例中,上述实体编程单元之中以该第二组编程参数编程的实体编程单元的寿命优于以该第一组编程参数编程的实体编程单元的寿命。
在本发明的一范例实施例中,上述实体编程单元之中以该第一组编程参数编程的实体编程单元的存储单元的门槛电压统计分布图的第一状态及第二状态间的电压间距大于以该第二组编程参数编程的实体编程单元的存储单元的门槛电压统计分布图的第一状态及第二状态间的电压间距。
在本发明的一范例实施例中,上述调整第一组编程参数以获得第二组编程参数的步骤包括:调整第一组程序参数的第一验证电压以获取电压来作为第二组程序参数的第二验证电压,其中第一组程序参数的第一验证电压大于第二组程序参数的第二验证电压。
在本发明的一范例实施例中,上述调整第一组编程参数以获得第二组编程参数的步骤包括:调整第一组程序参数的第一增量阶跃脉冲程序调整值以获取一个值来作为第二组程序参数的第二增量阶跃脉冲程序调整值。
在本发明的一范例实施例中,上述第一类数据为固件码并且上述第一区为独立地用以存储固件码的***区,并且上述第二类数据为使用者数据并且第二区为暂存使用者数据的暂驻存储区。
在本发明的一范例实施例中,上述存储单元编程方法还包括:使用第一组参数对存储有第一类数据的实体编程单元执行抹除操作;以及使用第二组参数对存储有第二类数据的实体编程单元执行该抹除操作。
本发明的一范例实施例提出一种存储器控制电路单元,用于存取可复写式非易失性存储器模块,而上述存储器控制电路单元包括:主机接口、存储器接口与存储器管理电路。主机接口电性连接至主机***。存储器接口电性连接至可复写式非易失性存储器模块,其中可复写式非易失性存储器模块具有多个实体抹除单元,且每一实体抹除单元具有多个实体编程单元。存储器管理电路电性连接至主机接口与存储器接口。该存储器管理电路使用第一组编程参数将第一类数据写入此些实体编程单元之中的其中一个实体编程单元;以及使用第二组编程参数将第二类数据写入至此些实体编程单元之中的其中一个实体编程单元,其中第一组编程参数中至少部分参数不相同于第二组编程参数,且以第一组编程参数写入第一类数据的实体编程单元的存储单元的数据比特数相同于以第二组编程参数写入第二类数据的实体编程单元的存储单元的数据比特数。
本发明的一范例实施例提出一种存储器存储装置,其包括:连接接口单元、可复写式非易失性存储器模块与存储器控制电路单元。连接接口单元电性连接至主机***。可复写式非易失性存储器模块具有多个实体抹除单元,且每一实体抹除单元具有多个实体编程单元。存储器控制电路单元电性连接至连接接口单元与可复写式非易失性存储器模块。该存储器控制电路单元使用第一组编程参数将第一类数据写入此些实体编程单元之中的其中一个实体编程单元;以及使用第二组编程参数将第二类数据写入至此些实体编程单元之中的其中一个实体编程单元,其中第一组编程参数中至少部分参数不相同于第二组编程参数,且以第一组编程参数写入第一类数据的实体编程单元的存储单元的数据比特数相同于以第二组编程参数写入第二类数据的实体编程单元的存储单元的数据比特数。
在本发明的一范例实施例中,上述存储器控制电路单元将实体抹除单元至少分组为第一区与第二区。并且,在上述使用第一组编程参数将第一类数据写入此些实体编程单元之中的操作中,上述存储器控制电路单元使用第一组编程参数将第一类数据写入至属于第一区的实体抹除单元,并且在上述使用第二组编程参数将第二类数据写入此些实体编程单元的操作中,上述存储器控制电路单元使用第二组编程参数将第二类数据写入至属于第二区的实体抹除单元。
在本发明的一范例实施例中,上述存储器控制电路单元调整第一组编程参数以获得第二组编程参数。
在本发明的一范例实施例中,上述存储器控制电路单元接收数据,并且判断此数据是否属于第二类数据。倘若数据不属于第二类数据时,存储器控制电路单元使用第一组编程参数将此数据写入至第一区的该些实体抹除单元之中的至少一第一实体抹除单元。倘若此数据属于第二类数据时,存储器控制电路单元使用第二组编程参数将此数据写入至第二区的实体抹除单元之中的至少一第二实体抹除单元。
在本发明的一范例实施例中,上述存储器控制电路单元识别欲存储此数据的至少一逻辑单元,并且判断此至少一逻辑单元是否映射至第二区的实体抹除单元。倘若此至少一逻辑单元是映射至第二区的实体抹除单元时,存储器控制电路单元识别此数据是属于第二类数据。
在本发明的一范例实施例中,上述存储器控制电路单元使用单层存储单元方式抹除指令对上述第一实体抹除单元执行抹除操作,以及使用多层存储单元方式抹除指令对上述第二实体抹除单元执行抹除操作。
在本发明的一范例实施例中,上述存储器控制电路单元调整第一组程序参数的第一验证电压以获取一个电压来作为第二组程序参数的第二验证电压,其中第一组程序参数的第一验证电压大于第二组程序参数的第二验证电压。
在本发明的一范例实施例中,上述存储器控制电路单元调整第一组程序参数的第一增量阶跃脉冲程序调整值以获取一个值来作为第二组程序参数的第二增量阶跃脉冲程序调整值,其中第一组程序参数的第一增量阶跃脉冲程序调整值小于第二组程序参数的第二增量阶跃脉冲程序调整值。
在本发明的一范例实施例中,上述存储器控制电路单元使用第一组参数对存储有第一类数据的实体编程单元执行抹除操作,以及使用第二组参数对存储有第二类数据的实体编程单元执行该抹除操作。
基于上述,本发明范例实施例的存储单元编程方法、存储器控制电路单元与存储装置能够依据欲存储的数据的区域选择不同的编程参数来写入数据,由此可以延长存储单元的寿命,同时兼顾重要***数据的保存。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。
附图说明
图1是根据一范例实施例所示出的主机***与存储器存储装置的结构示意图;
图2是根据一范例实施例所示出的计算机、输入/输出装置与存储器存储装置的示意图;
图3是根据一范例实施例所示出的主机***与存储器存储装置的示意图;
图4是示出根据一范例实施例所示出的存储器存储装置的结构示意图;
图5是根据一范例实施例所示出的可复写式非易失性存储器模块的结构示意图;
图6是根据一范例实施例所示出的存储单元阵列的示意图;
图7是根据一范例实施例所示出的编程存储单元的示意图;
图8是根据一范例实施例所示出的从存储单元中读取数据的示意图;
图9、图10、图11与图12是根据一范例实施例所示出的管理实体抹除单元的范例示意图;
图13是根据一范例实施例所示出的存储器控制电路单元的结构示意图;
图14是根据一范例所示出的数据暂存的示意图;
图15是根据一范例所示出的数据合并程序的示意图;
图16是根据一范例实施例所示出的在使用第一组编程参数编程***区的实体抹除单元的例子中存储单元的统计分配图;
图17是根据一范例实施例所示出的在使用第二组编程参数编程暂驻存储区的实体抹除单元的例子中存储单元的统计分配图;
图18是根据另一范例实施例所示出的在使用第一组编程参数编程***区的实体抹除单元的例子中存储单元的统计分配图;
图19是根据另一范例实施例所示出的在使用第二组编程参数编程暂驻存储区的实体抹除单元的例子中存储单元的统计分配图;
图20是根据一范例实施例所示出的存储单元编程方法的流程图。
附图标记说明:
1000:主机***;
1100:计算机;
1102:微处理器;
1104:随机存取存储器(RAM);
1106:输入/输出(I/O)装置;
1108:***总线;
1110:数据传输接口;
1202:鼠标;
1204:键盘;
1206:显示器;
1208:打印机;
1212:随身碟;
1214:记忆卡;
1216:固态硬盘;
1310:数码相机;
1312:SD卡;
1314:MMC卡;
1316:记忆棒;
1318:CF卡;
1320:嵌入式存储装置;
100:存储器存储装置;
102:连接接口单元;
104:存储器控制电路单元;
106:可复写式非易失性存储器模块;
2202:存储单元阵列;
2204:字元线控制电路;
2206:位元线控制电路;
2208:行译码器;
2210:数据输入/输出缓冲存储器;
2212:控制电路;
702:存储单元;
704:位元线;
706:字元线;
708:源极线;
712:选择栅漏极晶体管;
714:选择栅源极晶体管;
VA:第一预设读取电压;
VB:第二预设读取电压;
VC:第三预设读取电压;
VD:第四预设读取电压;
VE:第五预设读取电压;
VF:第六预设读取电压;
VG:第七预设读取电压;
202:存储器管理电路;
410(0)~410(N):实体抹除单元;
502:数据区;
504:闲置区;
506:***区;
508:暂驻存储区;
510:取代区;
LBA(0)~LBA(H):逻辑单元;
204:主机接口;
206:存储器接口;
208:错误检查与校正电路;
210:缓冲存储器;
212:电源管理电路;
VV1:第一验证电压;
VV2:第二验证电压;
S2001、S2003、S2005、S2007:步骤。
具体实施方式
一般而言,存储器存储装置(也称,存储器存储***)包括可复写式非易失性存储器模块与控制器(也称,控制电路)。通常存储器存储装置是与主机***一起使用,以使主机***可将数据写入至存储器存储装置或从存储器存储装置中读取数据。
图1是根据一范例实施例所示出的主机***与存储器存储装置的结构示意图。
请参照图1,主机***1000一般包括计算机1100与输入/输出(input/output,I/O)装置1106。计算机1100包括微处理器1102、随机存取存储器(random access memory,简称RAM)1104、***总线1108与数据传输接口1110。输入/输出装置1106包括如图2(图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所示,图3是根据一范例实施例所示出的主机***与存储器存储装置的示意图)。嵌入式存储装置1320包括嵌入式多媒体卡(Embedded MMC,简称eMMC)。值得一提的是,嵌入式多媒体卡是直接电性连接于主机***的基板上。
图4是示出根据一范例实施例所示出的存储器存储装置的结构示意图。
请参照图4,存储器存储装置100包括连接接口单元102、存储器控制电路单元104与可复写式非易失性存储器模块106。
在本范例实施例中,连接接口单元102是兼容于通用串行总线(Universal SerialBus,简称USB)标准。然而,必须了解的是,本发明不限于此,连接接口单元102也可以是符合并行先进附件(Parallel Advanced Technology Attachment,简称PATA)标准、电气和电子工程师协会(Institute of Electrical and Electronic Engineers,简称IEEE)1394标准、高速周边零件连接接口(Peripheral Component Interconnect Express,简称PCIExpress)标准、安全数位(Secure Digital,简称SD)接口标准、串行高级技术附件(SerialAdvanced Technology Attachment,简称SATA)标准、超高速一代(Ultra High Speed-I,简称UHS-I)接口标准、超高速二代(Ultra High Speed-II,简称UHS-II)接口标准、记忆棒(MemoryStick,简称MS)接口标准、多媒体存储卡(Multi Media Card,简称MMC)接口标准、嵌入式多媒体存储卡(Embedded Multimedia Card,简称eMMC)接口标准、通用快闪存储器(Universal Flash Storage,简称UFS)接口标准、小型快闪(Compact Flash,简称CF)接口标准、集成式驱动电子接口(Integrated Device Electronics,简称IDE)标准或其他适合的标准。
存储器控制电路单元104用以执行以硬件型式或固件型式实作的多个逻辑栅或控制指令,并且根据主机***1000的指令在可复写式非易失性存储器模块106中进行数据的写入、读取与抹除等操作。
可复写式非易失性存储器模块106是电性连接至存储器控制电路单元104,并且用以存储主机***1000所写入的数据。具体来说,可复写式非易失性存储器模块106的存储单元构成多个实体编程单元以存储数据。在本范例实施例中,可复写式非易失性存储器模块106为三阶存储单元(Trinary Level Cell,简称TLC)NAND型快闪存储器模块(即,一个存储单元中可存储3个比特数据的快闪存储器模块)。然而,本发明不限于此,可复写式非易失性存储器模块106也可是多阶存储单元(Multi Level Cell,简称MLC)NAND型快闪存储器模块(即,一个存储单元中可存储2个比特数据的快闪存储器模块)、其他快闪存储器模块或其他具有相同特性的存储器模块。
图5是根据一范例实施例所示出的可复写式非易失性存储器模块的结构示意图。
请参照图5,可复写式非易失性存储器模块106包括存储单元阵列2202、字元线控制电路2204、位元线控制电路2206、行译码器(column decoder)2208、数据输入/输出缓冲存储器2210与控制电路2212。
图6是根据一范例实施例所示出的存储单元阵列的示意图。
请参照图5与图6,存储单元阵列2202包括用以存储数据的多个存储单元702、多个选择栅漏极(select gate drain,简称SGD)晶体管712与多个选择栅源极(select gatesource,简称SGS)晶体管714、以及连接此些存储单元的多条位元线704、多条字元线706、与共用源极线708(如图6所示)。存储单元702是以阵列方式配置在位元线704与字元线706的交叉点上。当从存储器控制电路单元104接收到写入指令或读取指令时,控制电路2212会控制字元线控制电路2204、位元线控制电路2206、行译码器2208、数据输入/输出缓冲存储器2210来写入数据至存储单元阵列2202或从存储单元阵列2202中读取数据,其中字元线控制电路2204用以控制施予至字元线706的电压,位元线控制电路2206用以控制施予至位元线704的电压,行译码器2208依据指令中的解码列地址以选择对应的位元线,并且数据输入/输出缓冲存储器2210用以暂存数据。
可复写式非易失性存储器模块106中的存储单元是以多种栅极电压来代表多比特(bits)的数据。存储单元阵列2202的存储单元的数据写入(或称为编程)是利用施予一特定端点的电压,例如是控制栅极电压来改变栅极中之一电荷补捉层的电子量,因而改变了存储单元的通道的导通状态,以呈现不同的存储状态。
图7是根据一范例实施例所示出的编程存储单元的示意图。
请参照图7,在本范例实施例中,存储单元的编程是通过脉冲写入/验证临界电压方法来完成。具体来说,欲将数据写入至存储单元时,存储器控制电路单元104会设定初始写入电压以及写入电压脉冲时间,并且指示可复写式非易失性存储器模块106的控制电路2212使用所设定的初始写入电压以及写入电压脉冲时间来编程存储单元,以进行数据的写入。之后,存储器控制电路单元104会使用验证电压来对存储单元进行验证,以判断存储单元是否已处于正确的存储状态。倘若存储单元未被编程至正确的存储状态时,存储器控制电路单元104指示控制电路2212以目前施予的写入电压加上一增量阶跃脉冲程序(Incremental-step-pulse programming,简称ISPP)调整值作为新的写入电压(也称为重复写入电压)并且依据新的写入电压与写入电压脉冲时间再次来编程存储单元。反之,倘若存储单元已被编程至正确的存储状态时,则表示数据已被正确地写入至存储单元。例如,初始写入电压会被设定为16伏特(Voltage,简称V),写入电压脉冲时间会被设定为18微秒(microseconds,简称μs)并且增量阶跃脉冲程序调整值被设定为0.6V,但本发明不限于此。
存储单元阵列2202的存储单元的读取操作是通过施予读取电压于控制栅(control gate),通过存储单元的通道(存储单元用以电连接位元线与源极线的路径,例如是存储单元源极至漏极间的路径)的导通状态,来识别存储单元存储的数据。
图8是根据一范例实施例所示出的从存储单元中读取数据的示意图,其是以TLCNAND型快闪存储器为例。
请参照图8,可复写式非易失性存储器模块106的存储单元的存储状态包括左侧算起的第1个比特的最低有效比特(Least Significant Bit,简称LSB)、从左侧算起的第2个比特的中间有效比特(Center Significant Bit,简称CSB)以及从左侧算起的第3个比特的最高有效比特(Most Significant Bit,简称MSB),其中LSB对应下实体编程单元,CSB对应中实体编程单元,MSB对应上实体编程单元。在此范例中,每一存储单元中的栅极电压可依据第一预设读取电压VA、第二预设读取电压VB、第三预设读取电压VC、第四预设读取电压VD、第五预设读取电压VE、第六预设读取电压VF与第七预设读取电压VG而区分为8种存储状态(即,"111"、"110"、"100"、"101"、"001"、"000"、"010"与"011")。特别是,排列在同一条字元线上的数个存储单元可组成3个实体编程单元,其中由此些存储单元的LSB所组成的实体编程单元称为下实体编程单元,由此些存储单元的CSB所组成的实体编程单元称为中实体编程单元,并且由此些存储单元的MSB所组成的实体编程单元称为上实体编程单元。
图9、图10、图11与图12是根据一范例实施例所示出的管理实体抹除单元的范例示意图。
请参照图9,存储器控制电路单元104(或存储器管理电路202)会以实体编程单元为单位来对可复写式非易失性存储器模块106的存储单元702进行写入操作并且以实体抹除单元为单位来对可复写式非易失性存储器模块106的存储单元702进行抹除操作。具体来说,可复写式非易失性存储器模块106的存储单元702会构成多个实体编程单元,并且此些实体编程单元会构成多个实体抹除单元400(0)~400(N)。实体抹除单元为抹除的最小单位。也即,每一实体抹除单元含有最小数目之一并被抹除的存储单元。实体编程单元为编程的最小单元。即,一个实体编程单元为写入数据的最小单元。每一实体编程单元通常包括数据比特区与冗余比特区。数据比特区包含多个实体存取地址用以存储使用者的数据,而冗余比特区用以存储***的数据(例如,控制资讯与错误更正码)。例如,以属于TLC NAND快闪存储器的可复写式非易失性存储器模块106为例,位于同一条字元线上的存储单元的LSB会构成一个下实体编程单元;位于同一条字元线上的存储单元的CSB会构成一个中实体编程单元;并且位于同一条字元线上的存储单元的MSB会构成一个上实体编程单元。也就是说,可复写式非易失性存储器模块106的实体抹除单元中的实体编程单元可区分为下实体编程单元、中实体编程单元与上实体编程单元(如图10所示)。
请参照图11,在本范例实施例中,存储器控制电路单元104(或存储器管理电路202)会将实体抹除单元410(0)~410(N)逻辑地分组为数据区502、闲置区504、***区506、暂驻存储区508与取代区510。
逻辑上属于数据区502与闲置区504的实体抹除单元是用以存储来自于主机***1000的数据。具体来说,数据区502的实体抹除单元是被视为已存储数据的实体抹除单元,而闲置区504的实体抹除单元是用以替换数据区502的实体抹除单元。也就是说,当从主机***1000接收到写入指令与欲写入的数据时,存储器控制电路单元104(或存储器管理电路202)会从闲置区504中提取实体抹除单元,并且将数据写入至所提取的实体抹除单元中,以替换数据区502的实体抹除单元。
逻辑上属于***区506的实体抹除单元是用以记录***数据。例如,***数据包括关于可复写式非易失性存储器模块的制造商与型号、可复写式非易失性存储器模块的实体抹除单元数、每一实体抹除单元的实体编程单元数、存储器存储装置100的固件码等。
逻辑上属于暂驻存储区508的实体抹除单元是用以作为对应逻辑单元的暂存实体抹除单元组中暂存实体抹除单元,以暂存主机***1000所写入的数据。详细的暂存数据的方法以及步骤,将配合附图说明如后。
逻辑上属于取代区510中的实体抹除单元是用于坏实体抹除单元取代程序,以取代损坏的实体抹除单元。具体来说,倘若取代区510中仍存有正常的实体抹除单元并且数据区502的实体抹除单元损坏时,存储器管理电路202会从取代区510中提取正常的实体抹除单元来更换损坏的实体抹除单元。
特别是,数据区502、闲置区504、***区506与取代区510的实体抹除单元的数量会依据不同的存储器规格而有所不同。此外,必须了解的是,在存储器存储装置100的操作中,实体抹除单元关联至数据区502、闲置区504、***区506与取代区510的分组关系会动态地变动。例如,当闲置区504中的实体抹除单元损坏而被取代区510的实体抹除单元取代时,则原本取代区510的实体抹除单元会被关联至闲置区504。
请参照图12,存储器控制电路单元104(或存储器管理电路202)会配置逻辑单元LBA(0)~LBA(H)以映射数据区502的实体抹除单元,其中每一逻辑单元具有多个逻辑子单元以映射对应的实体抹除单元的实体编程单元。并且,当主机***1000欲写入数据至逻辑单元或更新存储于逻辑单元中的数据时,存储器控制电路单元104(或存储器管理电路202)会从闲置区504中提取一个实体抹除单元来写入数据,以轮替数据区502的实体抹除单元。在本范例实施例中,逻辑子单元可以是逻辑页面或逻辑扇区。
为了识别每个逻辑单元的数据被存储在那个实体抹除单元,在本范例实施例中,存储器控制电路单元104(或存储器管理电路202)会记录逻辑单元与实体抹除单元之间的映射。并且,当主机***1000欲在逻辑子单元中存取数据时,存储器控制电路单元104(或存储器管理电路202)会确认此逻辑子单元所属的逻辑单元,并且对可复写式非易失性存储器模块106下达对应的指令序列以在此逻辑单元所映射的实体抹除单元中来存取数据。例如,在本范例实施例中,存储器控制电路单元104(或存储器管理电路202)会在可复写式非易失性存储器模块106中存储逻辑转实体地址映射表来记录每一逻辑单元所映射的实体抹除单元,并且当欲存取数据时存储器控制电路单元104(或存储器管理电路202)会将逻辑转实体地址映射表载入至缓冲存储器208来维护。
图13是根据一范例实施例所示出的存储器控制电路单元的结构示意图。必须了解的是,图13所示的存储器控制电路单元的结构仅为一范例,本发明不以此为限。
请参照图13,存储器控制电路单元104包括存储器管理电路202、主机接口204、存储器接口206与错误检查与校正电路208。
存储器管理电路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是兼容于USB标准。然而,必须了解的是本发明不限于此,主机接口204也可以是兼容于PATA标准、IEEE 1394标准、PCI Express标准、SD标准、SATA标准、UHS-I接口标准、UHS-II接口标准、MS标准、MMC标准、eMMC接口标准、UFS接口标准、CF标准、IDE标准或其他适合的数据传输标准。
存储器接口206是电性连接至存储器管理电路202并且用以存取可复写式非易失性存储器模块106。也就是说,欲写入至可复写式非易失性存储器模块106的数据会通过存储器接口206转换为可复写式非易失性存储器模块106所能接受的格式。
错误检查与校正电路208是电性连接至存储器管理电路202并且用以执行一错误校正程序以确保数据的正确性。具体来说,当存储器管理电路202从可复写式非易失性存储器模块106中读取数据时,错误检查与校正电路208会对所读取的数据执行错误校正程序。例如,在本范例实施例中,错误检查与校正电路208为低密度奇偶校正(Low DensityParity Check,简称LDPC)电路,并且会存储记录对数似然比(Log Likelihood Ratio,简称LLR)值查询表。当存储器管理电路202从可复写式非易失性存储器模块106读取数据时,错误检查与校正电路208会依据所读取的数据以及查询表中对应的LLR值来执行错误校正程序。其中,值得说明的是在另一范例实施例中,错误检查与校正电路208也可为涡轮码(Turbo Code)电路。
在本发明一范例实施例中,存储器控制电路单元104还包括缓冲存储器210与电源管理电路212。
缓冲存储器210是电性连接至存储器管理电路202并且用以暂存来自于主机***1000的数据与指令或来自于可复写式非易失性存储器模块106的数据。
电源管理电路212是电性连接至存储器管理电路202并且用以控制存储器存储装置100的电源。
在本发明的范例实施例中,当主机***1000欲存储数据至数据区502所映射的逻辑单元时,存储器控制电路单元104(或存储器管理电路202)会先以暂驻存储区508的实体抹除单元来暂存此数据。具体来说,当从主机***1000接收到指示将数据存储至逻辑单元的写入指令时,存储器控制电路单元104(或存储器管理电路202)会从暂驻存储区508中提取数个实体抹除单元作为对应此逻辑单元的暂存实体抹除单元,并且使用单页方式先将数据暂存至此些暂存实体抹除单元的下实体编程单元。之后,存储器控制电路单元104(或存储器管理电路202)才使用多页方式将暂存实体抹除单元中的数据写入至对应的实体抹除单元并且将此逻辑单元映射至此对应的实体抹除单元。在此,欲被存储至映射至数据区502的逻辑单元的数据也称为第二类数据或使用者数据。
在此,所谓单页方式是指,在存储单元中仅存储1个比特数据。也就是说,对于可以存储多个比特的存储单元来说,在单页方式中,存储器控制电路单元104(或存储器管理电路202)仅会对下实体编程单元进行数据的写入操作。由于暂存实体抹除单元是用单页方式来***作,因此,在本范例实施例中,一个暂存实体抹除单元仅有三分之一的容量会被使用且对应一个逻辑单元的暂存实体抹除单元组会包含3个暂存实体抹除单元以提供足够的空间来存储一个逻辑单元的数据。在本范例实施例中,存储器控制电路单元104(或存储器管理电路202)是使用单页方式来操作暂驻存储区508的实体抹除单元。
所谓多页方式是指使用下实体编程单元、中实体编程单元与上实体编程单元来存储数据。也就是说,对于可以存储多个比特的存储单元来说,当使用多页方式来写入数据时,存储器控制电路单元104(或存储器管理电路202)会对一个实体编程单元组的下实体编程单元、中实体编程单元与上实体编程单元执行编程。值得一提的,在一范例实施例中,使用多页方式来操作实体抹除单元时,同一个实体编程单元组的实体编程单元会同时地或阶段性地被编程。再者,相较于以单页方式来操作的实体抹除单元,以多页方式来操作的实体抹除单元的使用寿命较短。具体来说,每个实体抹除单元能够被写入或抹除的次数是有限的,当一个实体抹除单元被写入的次数超过一个临界值时,此实体抹除单元可能就会损坏而无法再被写入数据,其中对应以多页方式来操作的实体抹除单元的临界值会低于对应以单页方式来操作的实体抹除单元的临界值。在本范例实施例中,存储器控制电路单元104(或存储器管理电路202)是使用多页方式来操作关联至数据区502的实体抹除单元。
在本范例实施例中,当一个实体抹除单元被划分至暂驻存储区508后,此实体抹除单元将仅能用于暂驻存储区508,而不会与闲置区504与数据区502的实体抹除单元混用。也就是说,存储器控制电路单元104(或存储器管理电路202)会独立地操作暂驻存储区508与闲置区504的实体抹除单元。例如,当一个实体抹除单元被划分至暂驻存储区508后,存储器控制电路单元104(或存储器管理电路202)会以单页方式在暂驻存储区508中操作此实体抹除单元,直到此实体抹除单元损坏为止。
图14是根据一范例所示出的数据暂存的示意图。
请参照图14,当存储器存储装置100从主机***1000中接收到指示将更新数据存储至逻辑单元LBA(0)的第0~257个逻辑子单元的写入指令时,假设在本范例实施例中,存储器控制电路单元104(或存储器管理电路202)会从暂驻存储区508中提取3个实体抹除单元410(T+1)、410(T+2)、410(T+3)作为对应逻辑单元LBA(0)的暂存实体抹除单元,存储器控制电路单元104(或存储器管理电路202)会使用此对应逻辑单元LBA(0)的暂存实体抹除单元410(T+1)、暂存实体抹除单元410(T+2)与暂存实体抹除单元410(T+3)来写入属于逻辑单元LBA(0)的更新数据。
例如,存储器控制电路单元104(或存储器管理电路202)会将欲存储至逻辑单元LBA(0)的第0~85个逻辑子单元的更新数据依次地写入至暂存实体抹除单元410(T+1)的下实体编程单元、将欲存储至逻辑单元LBA(0)的第86~171个逻辑子单元的更新数据依次地写入至暂存实体抹除单元410(T+2)的下实体编程单元以及将欲存储至逻辑单元LBA(0)的第172~257个逻辑子单元的更新数据(依次地写入至暂存实体抹除单元410(T+3)的下实体编程单元中。
在本范例实施例中,当将主机***1000欲存储的更新数据写入至对应逻辑单元LBA(0)的暂存实体抹除单元410(T+1)、暂存实体抹除单元410(T+2)与暂存实体抹除单元410(T+3)后,存储器控制电路单元104(或存储器管理电路202)就会传送通知已完成指令的回复(Response)给主机***1000。并且,之后,当存储器存储装置100属于闲置状态一段时间(例如,30秒未从主机***1000中接收到任何指令)或者暂驻存储区508以及闲置区504空的实体抹除单元的数目小于预设门槛值时,存储器控制电路单元104(或存储器管理电路202)才会从对应逻辑单元的暂存实体抹除单元中将属于此逻辑单元的有效数据合并至一个空的实体抹除单元并且将此逻辑单元映射至此实体抹除单元。例如,预设门槛值会被设定为3。然而,必须了解的是,本发明不限于此,预设门槛值也可以是其他适当的数值。在此,从对应一逻辑单元的暂存实体抹除单元组中将属于此逻辑单元的有效数据复制至数据区502的对应此逻辑单元的一实体抹除单元的操作称为数据合并操作。
图15是根据一范例所示出的数据合并程序的示意图。
假设对应逻辑单元LBA(0)的暂存实体抹除单元410(T+1)、暂存实体抹除单元410(T+2)与暂存实体抹除单元410(T+3)已存储逻辑单元LBA(0)的所有逻辑子单元的有效数据(如图7所示)并且存储器管理电路202选择对逻辑单元LBA(0)进行数据合并操作。
首先,如同图15所示出,存储器控制电路单元104(或存储器管理电路202)会从闲置区504中提取一个实体抹除单元作为当作用于轮替的实体抹除单元410(F+1)。具体来说,存储器控制电路单元104(或存储器管理电路202)会从闲置区504中选择一个空的实体抹除单元或者所存储的数据为无效数据的实体抹除单元。特别是,倘若所提取的实体抹除单元是存储无效数据的实体抹除单元时,存储器控制电路单元104(或存储器管理电路202)会先对此实体抹除单元执行抹除操作。也就是说,实体抹除单元上的无效数据必须先被抹除。
之后,请参照图15,存储器控制电路单元104(或存储器管理电路202)会从暂存实体抹除单元410(T+1)的下实体编程单元中将属于逻辑单元LBA(0)的第0~85逻辑子单元的有效数据复制至实体抹除单元410(F+1)的对应页面(例如,第0~85实体编程单元)。接着,存储器控制电路单元104(或存储器管理电路202)会从暂存实体抹除单元410(T+2)的下实体编程单元中将属于逻辑单元LBA(0)的第86~171逻辑子单元的有效数据复制至实体抹除单元410(F+1)的对应页面(例如,第86~171实体编程单元)。然后,存储器控制电路单元104(或存储器管理电路202)会从暂存实体抹除单元410(T+3)的下实体编程单元中将属于逻辑单元LBA(0)的第172~257逻辑子单元的有效数据复制至第一实体抹除单元410(F+1)的对应页面(例如,第172~257实体编程单元)。
值得一提的是,如上所述,欲被关联至数据区502的实体抹除单元是以多页方式来操作,因此,写入至实体抹除单元410(F+1)是以实体编程单元组为单位来同时或阶段性地编程。具体来说,在一范例实施例中,实体抹除单元410(F+1)的第0、1、2个实体编程单元会同时地被编程以写入属于逻辑单元LBA(0)的第0、1、2个逻辑子单元的数据;实体抹除单元410(F+1)的第3、4、5个实体编程单元会同时地被编程以写入属于逻辑单元LBA(0)的第3、4、5个逻辑子单元的数据;并且以此类推其他逻辑子单元的数据皆是以实体编程单元组为单位被写入至第一实体抹除单元410(F+1)中。
最后,存储器控制电路单元104(或存储器管理电路202)会在逻辑转实体地址映射表中将逻辑单元LBA(0)映射至实体抹除单元410(F+1)并且将对应逻辑单元的暂存实体抹除单元410(T+1)~410(T+3)执行抹除操作。也就是说,在执行下一个写入指令时,已被抹除的暂存实体抹除单元410(T+1)~410(T+3)就可再被选择作为欲写入的逻辑单元的暂存实体抹除单元。
除了暂驻存储区508之外,在本范例实施例中,存储器控制电路单元104(或存储器管理电路202)也会使用单页方式来操作属于***区506的实体抹除单元。具体来说,若***区506所存储的数据(例如,固件码)遗失将造成存储器存储装置100无法操作,因此,存储器控制电路单元104(或存储器管理电路202)会被设计来将数据写入至***区506的实体抹除单元的下实体编程单元。例如,在本范例时实施例中,包括增量阶跃脉冲程序调整值(以下称为第一增量阶跃脉冲程序调整值)、初始写入电压(以下称为第一初始写入电压)、验证电压(以下称为第一验证电压)、读取电压(以下称为第一读取电压)、导通电压(以下称为第一导通电压)与抹除电压(以下称为第一抹除电压)的一组编程参数(以下称为第一组编程参数)会被预先设定以用于将数据编程至***区506的实体抹除单元的下实体编程单元。在此,欲被存储至映射***区506的实体编程单元的逻辑单元的数据称为第一类数据或***数据。
如上所述,当存储器存储装置100从主机***1000接收到欲存储至映射数据区502的实体抹除单元的逻辑单元的数据(即,所接收到的写入数据属于第二类数据)时,存储器控制电路单元104(或存储器管理电路202)会使用以单页方式操作的暂驻存储区508的实体抹除单元来暂存此数据。例如,在本范例实施例中,存储器控制电路单元104(或存储器管理电路202)会调整预设用于***区506的实体抹除单元的第一组编程参数来产生用于暂驻存储区508的实体抹除单元的另一组编程参数(以下称为第二组编程参数)。
也就是说,在本范例实施例中,对于同样是每个存储单元仅存储1个比特数据的***区506与暂驻存储区508,存储器控制电路单元104(或存储器管理电路202)会分别地使用第一组编程参数与第二组编程参数来将第一类数据与第二类数据写入至对应的实体编程单元。
例如,在一范例实施例中,存储器控制电路单元104(或存储器管理电路202)会通过降低第一组编程参数的第一验证电压所获取的电压作为第二组编程参数的第二验证电压。
图16是根据一范例实施例所示出的在使用第一组编程参数编程***区的实体抹除单元的例子中存储单元的统计分配图,并且图17是根据一范例实施例所示出的在使用第二组编程参数编程暂驻存储区的实体抹除单元的例子中存储单元的统计分配图。
请参照图16,***区506的实体抹除单元是以单页方式来操作,因此,存储单元的栅极电压仅需被区分为两种存储状态。由于第一组编程参数的第一验证电压VV1会被设定在较高的电压,因此,存储器控制电路单元104(或存储器管理电路202)使用第一组编程参数通过脉冲写入/验证临界电压方法将数据写入至***区506的实体抹除单元时,需执行较多次的编程。特别是,由于***区506的实体抹除单元是存储重要的且频繁被读取的数据(例如,固件码),因此,第一组编程参数的第一验证电压VV1会被设定在较高的电压,以明显地区别为被识别为‘1’的存储状态(也称为第一状态)和被识别为‘0’的存储状态(也称为第二存储状态),由此较可避免读取时识别错误。也就是说,以第一组编程参数编程的实体编程单元的存储单元的门槛电压统计分布图的第一状态及第二状态间的电压间距会大于以第二组编程参数编程的实体编程单元的存储单元的门槛电压统计分布图的第一状态及第二状态间的电压间距。基此,以第一组编程参数编程的实体编程单元的数据保存能力或抗读取干扰能力将会优于以第二组编程参数编程的实体编程单元的数据保存能力或抗读取干扰能力。
请参照图17,同样地,由于暂驻存储区508的实体抹除单元是以单页方式来操作,因此,存储单元的栅极电压仅需被区分为两种存储状态。特别是,相对于第一组编程参数来说,由于第二组编程参数的第二验证电压VV2较小,因此,存储器控制电路单元104(或存储器管理电路202)使用第二组编程参数通过脉冲写入/验证临界电压方法将数据编程至暂驻存储区508的实体抹除单元时,存储单元在较少次数的编程操作下就可以通过第二验证电压VV2的验证而完成数据的写入。相对于***区506的实体抹除单元来说,由于暂驻存储区508的实体抹除单元在较少次数的编程操作下就可以完成数据的写入,因此,编程操作对于暂驻存储区508的实体抹除单元的影响程度较低。特别是,由于暂驻存储区508是用于暂存数据,因此,暂驻存储区508的实体抹除单元会被频繁地编程,因此,使用第二验证电压VV2较小的第二组编程参数,可有效地延长暂驻存储区508的实体抹除单元的寿命。基此,以第二组编程参数编程的实体编程单元的寿命将优于以第一组编程参数编程的实体编程单元的寿命。
例如,在另一范例实施例中,存储器控制电路单元104(或存储器管理电路202)也可通过加大第一组编程参数的第一增量阶跃脉冲程序调整值所获取的调整值作为第二组编程参数的第二增量阶跃脉冲程序调整值。
图18是根据另一范例实施例所示出的在使用第一组编程参数编程***区的实体抹除单元的例子中存储单元的统计分配图,并且图19是根据另一范例实施例所示出的在使用第二组编程参数编程暂驻存储区的实体抹除单元的例子中存储单元的统计分配图。
请参照图18,***区506的实体抹除单元是以单页方式来操作,因此,存储单元的栅极电压仅需被区分为两种存储状态。由于第一组编程参数的第一增量阶跃脉冲程序调整值会被设定在较小的值,因此,存储器控制电路单元104(或存储器管理电路202)使用第一组编程参数通过脉冲写入/验证临界电压方法将数据写入至***区506的实体抹除单元时,需执行较多次的编程才能通过验证电压的验证。然而,由于第一增量阶跃脉冲程序调整值较小且每次编程时的写入电压增幅较小,由此栅极中的电荷补捉层的电子量会被较精准的控制。基此,使用第一组编程参数所编程的***区506的实体抹除单元的存储单元能够编程至较正确地状态,由此可有效地避免读取干扰的发生。
请参照图19,同样地,由于暂驻存储区508的实体抹除单元是以单页方式来操作,因此,存储单元的栅极电压仅需被区分为两种存储状态。特别是,相对于第一组编程参数来说,由于第二组编程参数的第二增量阶跃脉冲程序调整值较大,因此,存储器控制电路单元104(或存储器管理电路202)使用第二组编程参数通过脉冲写入/验证临界电压方法将数据编程至暂驻存储区508的实体抹除单元时,存储单元在较少次数的编程操作下就可以通过验证电压的验证而完成数据的写入。相对于***区506的实体抹除单元来说,由于暂驻存储区508的实体抹除单元在较少次数的编程操作下就可以完成数据的写入,因此,编程操作对于暂驻存储区508的实体抹除单元的影响程度较低。特别是,由于暂驻存储区508是用于暂存数据,因此,暂驻存储区508的实体抹除单元会被频繁地编程,因此,使用第二增量阶跃脉冲程序调整值较大的第二组编程参数,可有效地延长暂驻存储区508的实体抹除单元的寿命。
必了解的是,图16~图19仅是调整第一组编程参数来产生第二组编程参数的范例,本发明不限于此。在其他范例实施例中,存储器控制电路单元104(或存储器管理电路202)可调整第一组编程参数的第一增量阶跃脉冲程序调整值、第一初始写入电压、第一验证电压、第一读取电压、第一导通电压与第一抹除电压的至少其中之一以获取第二组编程参数的第二增量阶跃脉冲程序调整值、第二初始写入电压、第二验证电压、第二读取电压、第二导通电压与第二抹除电压。
图20是根据一范例实施例所示出的存储单元编程方法的流程图。
请参照图20,在步骤S2001中,存储器控制电路单元104(或存储器管理电路202)会接收欲存储的数据。例如,存储器存储装置100会从主机***1000中接收入指令与对应此指令的数据,其中写入指令会指示存储此数据的逻辑地址。
在步骤S2003中,存储器控制电路单元104(或存储器管理电路202)会判断所接收的数据是否属于欲被写入至第二区(例如,上述暂驻存储区508)的实体抹除单元的第二类数据。例如,在本范例实施例中,所配置的逻辑单元是映射至数据区502的实体抹除单元,因此,当所接收的数据是要被存储至所配置的逻辑单元时,存储器控制电路单元104(或存储器管理电路202)会识别所接收的数据是属于要先办暂存至暂驻存储区508的第二类数据。
倘若所接收的数据不属于第二类数据(即,属于欲被写入至第一区(例如,上述***506)的实体抹除单元的第一类数据)时,在步骤S2005中,存储器控制电路单元104(或存储器管理电路202)会使用第一组编程参数将此数据写入至第一区的实体抹除单元之中的至少一个实体抹除单元(以下称为第一实体抹除单元)。
倘若所接收的数据属于第二类数据时,在步骤S2007中,存储器控制电路单元104(或存储器管理电路202)会使用第二组编程参数将此数据写入至第二区的实体抹除单元之中的至少一个实体抹除单元(以下称为第二实体抹除单元)。
如上所述,***区506与暂驻存储区508的实体抹除单元是以单页方式操作,然而,在本范例实施例中,可复写式非易失性存储器模块106为TLCNAND型快闪存储器并且所有实体抹除单元在被写入数据之前会使用多层存储单元方式抹除指令。也就是说,在本范例实施例中,尽管***区506与暂驻存储区508的实体抹除单元是可以存储3个比特数据,但存储器控制电路单元104(或存储器管理电路202)会使用上述第一组编程参数与第二组编程参数来操作***区506与暂驻存储区508的实体抹除单元,由此仅使用其下实体编程单元。
值得一提的是,在本发明另一范例实施中,存储器控制电路单元104(或存储器管理电路202)也可在写入数据至***区506的实体抹除单元之前,使用单层存储单元方式抹除指令来对***区506的实体抹除单元进行抹除操作,由此使得***区506的实体抹除单元仅能存1个比特的数据。特别是,在此操作下,存储在***区506的实体抹除单元的数据会更为稳定与可靠。例如,在此例子中,上述第一实体抹除单元在被写入数据之前,存储器控制电路单元104(或存储器管理电路202)会使用单层存储单元方式抹除指令来对第一实体抹除单元执行抹除操作,并且上述第二实体抹除单元在被写入数据之前,存储器控制电路单元104(或存储器管理电路202)会使用多层存储单元方式抹除指令来对第二实体抹除单元执行抹除操作。
综上所述,本发明范例实施例所提出的存储单元编程方法、存储器控制电路单元与存储器存储装置根据皆是以单页方式操作的***区与缓冲区的不同存储需求使用不同的编程参数来编程存储单元,由此可以避免存储在***区的数据发生读取干扰,同时避免暂驻存储区的实体抹除单元快速劣化。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (36)

1.一种存储单元编程方法,用于一可复写式非易失性存储器模块,其特征在于,该可复写式非易失性存储器模块具有多个实体抹除单元,每一该些实体抹除单元具有多个实体编程单元,每一个该些实体编程单元包括多个下实体编程单元与多个上实体编程单元,该存储单元编程方法包括:
使用一第一组编程参数将一第一类数据写入该些实体抹除单元之中的第一实体抹除单元的第一实体编程单元;以及
使用一第二组编程参数将一第二类数据写入至该些实体抹除单元之中的第二实体抹除单元的第一实体编程单元,
其中该第一组编程参数中至少部分参数不相同于该第二组编程参数,且以该第一组编程参数写入该第一类数据的该第一实体抹除单元上实体编程单元不会被程序化并且以该第二组编程参数写入该第二类数据的该第二实体抹除单元的上实体编程单元不会被程序化。
2.根据权利要求1所述的存储单元编程方法,其特征在于,该些实体编程单元之中写入该第二类数据的该第二实体抹除单元的第一实体编程单元映射一相对应的逻辑地址,且写入该第一类数据的该第一实体抹除单元的第一实体编程单元无映射一相对应的逻辑地址。
3.根据权利要求1所述的存储单元编程方法,其特征在于,以该第一组编程参数写入该第一类数据的该第一实体抹除单元的第一实体编程单元的存储单元的数据比特数为1个比特并且以该第二组编程参数写入该第二类数据的该第二实体抹除单元的第一实体编程单元的存储单元的数据比特数为1个比特。
4.根据权利要求3所述的存储单元编程方法,其特征在于,还包括:
将该些实体抹除单元至少分组为一第一区与一第二区;
其中该第一实体抹除单元属于该第一区,并且该第二实体抹除单元属于该第二区。
5.根据权利要求4所述的存储单元编程方法,其特征在于,
其中该第一组编程参数被预先设定用于该第一区的实体抹除单元,其中该第一区的实体抹除单元的上实体编程单元不会被用来存储数据;
其中该第二组编程参数用于该第二区的实体抹除单元,并且该第二区的实体抹除单元的上实体编程单元不会被用来存储数据。
6.根据权利要求5所述的存储单元编程方法,其特征在于,还包括:
调整该第一组编程参数以获得该第二组编程参数。
7.根据权利要求4所述的存储单元编程方法,其特征在于,还包括:
接收一数据;
判断该数据是否属于该第二类数据;
倘若该数据不属于该第二类数据时,使用该第一组编程参数将该数据写入至该第一区的该些实体抹除单元之中的至少一实体抹除单元;以及
倘若该数据属于该第二类数据时,使用该第二组编程参数将该数据写入至该第二区的该些实体抹除单元之中的至少一实体抹除单元。
8.根据权利要求7所述的存储单元编程方法,其特征在于,还包括:
识别欲存储该数据的至少一逻辑单元;
判断该至少一逻辑单元是否映射至该第二区的该些实体抹除单元;以及
倘若该至少一逻辑单元是映射至该第二区的该些实体抹除单元时,识别该数据是属于该第二类数据。
9.根据权利要求1所述的存储单元编程方法,其特征在于,还包括:
使用一单层存储单元方式抹除指令对该第一实体抹除单元执行一抹除操作;以及
使用一多层存储单元方式抹除指令对该第二实体抹除单元执行该抹除操作。
10.根据权利要求1所述的存储单元编程方法,其特征在于,该第一组编程参数包括一第一增量阶跃脉冲程序调整值、一第一初始写入电压、一第一验证电压、一第一读取电压、一第一导通电压与一第一抹除电压的至少其中之一。
11.根据权利要求1所述的存储单元编程方法,其特征在于,该些实体编程单元之中以该第一组编程参数编程的实体编程单元的数据保存能力或抗读取干扰能力优于以该第二组编程参数编程的实体编程单元的数据保存能力或抗读取干扰能力。
12.根据权利要求1所述的存储单元编程方法,其特征在于,该些实体编程单元之中以该第二组编程参数编程的实体编程单元的寿命优于以该第一组编程参数编程的实体编程单元的寿命。
13.根据权利要求1所述的存储单元编程方法,其特征在于,该些实体编程单元之中以该第一组编程参数编程的实体编程单元的存储单元的门槛电压统计分布图的第一状态及第二状态间的电压间距大于以该第二组编程参数编程的实体编程单元的存储单元的门槛电压统计分布图的第一状态及第二状态间的电压间距。
14.根据权利要求6所述的存储单元编程方法,其特征在于,调整该第一组编程参数以获得该第二组编程参数的步骤包括:
调整该第一组编程参数的一第一验证电压以获取一电压来作为该第二组编程参数的一第二验证电压,
其中该第一组编程参数的该第一验证电压大于该第二组编程参数的该第二验证电压。
15.根据权利要求6所述的存储单元编程方法,其特征在于,调整该第一组编程参数以获得该第二组编程参数的步骤包括:
调整该第一组编程参数的一第一增量阶跃脉冲程序调整值以获取一值来作为该第二组编程参数的一第二增量阶跃脉冲程序调整值,
其中该第一组编程参数的该第一增量阶跃脉冲程序调整值小于该第二组编程参数的该第二增量阶跃脉冲程序调整值。
16.根据权利要求7所述的存储单元编程方法,其特征在于,该第一类数据为一固件码并且该第一区为独立地用以存储该固件码的一***区,
其中该第二类数据为一使用者数据并且该第二区为暂存该使用者数据的一暂驻存储区。
17.根据权利要求4所述的存储单元编程方法,其特征在于,还包括:
使用该第一组编程参数对存储有该第一类数据的实体编程单元执行一抹除操作;以及
使用该第二组编程参数对存储有该第二类数据的实体编程单元执行该抹除操作。
18.一种存储器控制电路单元,用于存取一可复写式非易失性存储器模块,其特征在于,该存储器控制电路单元包括:
一主机接口,用以电性连接至一主机***;
一存储器接口,用以电性连接至该可复写式非易失性存储器模块,其中该可复写式非易失性存储器模块具有多个实体抹除单元,且每一该些实体抹除单元具有多个实体编程单元,每一个该些实体编程单元包括多个下实体编程单元与多个上实体编程单元;以及
一存储器管理电路,电性连接至该主机接口与该存储器接口,
其中该存储器管理电路使用一第一组编程参数将一第一类数据写入该些实体抹除单元之中的第一实体抹除单元并且使用一第二组编程参数将一第二类数据写入至该些实体抹除单元之中的第二实体抹除单元,
其中该第一组编程参数中至少部分参数不相同于该第二组编程参数,且以该第一组编程参数写入该第一类数据的该第一实体抹除单元的上实体编程单元不会被程序化并且以该第二组编程参数写入该第二类数据的该第二实体抹除单元的上实体编程单元不会被程序化。
19.根据权利要求18所述的存储器控制电路单元,其特征在于,该些实体编程单元之中写入该第二类数据的该第二实体抹除单元的第一实体编程单元映射一相对应的逻辑地址,且写入该第一类数据的该第一实体抹除单元的第一实体编程单元无映射一相对应的逻辑地址。
20.一种存储器存储装置,其特征在于,包括:
一连接接口单元,用以电性连接至一主机***;
一可复写式非易失性存储器模块,其中该可复写式非易失性存储器模块具有多个实体抹除单元,且每一该些实体抹除单元具有多个实体编程单元,每一个该些实体编程单元包括多个下实体编程单元与多个上实体编程单元;以及
一存储器控制电路单元,电性连接至该连接接口单元与该可复写式非易失性存储器模块,
其中该存储器控制电路单元使用一第一组编程参数将一第一类数据写入该些实体抹除单元之中的第一实体抹除单元的第一实体编程单元并且使用一第二组编程参数将一第二类数据写入至该些实体抹除单元之中的第二实体抹除单元的第一实体编程单元,
其中该第一组编程参数中至少部分参数不相同于该第二组编程参数,且以该第一组编程参数写入该第一类数据的该第一实体抹除单元的上实体编程单元不会被程序化并且以该第二组编程参数写入该第二类数据的该第二实体抹除单元的上实体编程单元不会被程序化。
21.根据权利要求20所述的存储器存储装置,其特征在于,该些实体编程单元之中写入该第二类数据的该第二实体抹除单元的第一实体编程单元映射一相对应的逻辑地址,且写入该第一类数据的该第一实体抹除单元的第一实体编程单元无映射一相对应的逻辑地址。
22.根据权利要求20所述的存储器存储装置,其特征在于,以该第一组编程参数写入该第一类数据的该第一实体抹除单元的第一实体编程单元的存储单元的数据比特数为1个比特并且以该第二组编程参数写入该第二类数据的该第二实体抹除单元的第一实体编程单元的存储单元的数据比特数为1个比特。
23.根据权利要求22所述的存储器存储装置,其特征在于,该存储器控制电路单元将该些实体抹除单元至少分组为一第一区与一第二区,
其中该第一实体抹除单元属于该第一区,并且该第二实体抹除单元属于该第二区。
24.根据权利要求23所述的存储器存储装置,其特征在于,该第一组编程参数被预先设定用于该第一区的实体抹除单元,并且该第一区的实体抹除单元的上实体编程单元不会被用来存储数据;
其中该第二组编程参数用于该第二区的实体抹除单元,并且该第二区的实体抹除单元的上实体编程单元不会被用来存储数据。
25.根据权利要求24所述的存储器存储装置,其特征在于,该存储器控制电路单元调整该第一组编程参数以获得该第二组编程参数。
26.根据权利要求25所述的存储器存储装置,其特征在于,该存储器控制电路单元接收一数据,并且判断该数据是否属于该第二类数据,
倘若该数据不属于该第二类数据时,该存储器控制电路单元使用该第一组编程参数将该数据写入至该第一区的该些实体抹除单元之中的至少一实体抹除单元,
倘若该数据属于该第二类数据时,该存储器控制电路单元使用该第二组编程参数将该数据写入至该第二区的该些实体抹除单元之中的至少一实体抹除单元。
27.根据权利要求26所述的存储器存储装置,其特征在于,该存储器控制电路单元识别欲存储该数据的至少一逻辑单元,并且判断该至少一逻辑单元是否映射至该第二区的该些实体抹除单元,
倘若该至少一逻辑单元是映射至该第二区的该些实体抹除单元时,该存储器控制电路单元识别该数据是属于该第二类数据。
28.根据权利要求20所述的存储器存储装置,其特征在于,该存储器控制电路单元使用一单层存储单元方式抹除指令对该第一实体抹除单元执行一抹除操作,以及使用一多层存储单元方式抹除指令对该第二实体抹除单元执行该抹除操作。
29.根据权利要求20所述的存储器存储装置,其特征在于,该第一组编程参数包括一第一增量阶跃脉冲程序调整值、一第一初始写入电压、一第一验证电压、一第一读取电压、一第一导通电压与一第一抹除电压的至少其中之一。
30.根据权利要求25所述的存储器存储装置,其特征在于,在调整该第一组编程参数以获得该第二组编程参数的操作中,该存储器控制电路单元调整该第一组编程参数的一第一验证电压以获取一电压来作为该第二组编程参数的一第二验证电压,其中该第一组编程参数的该第一验证电压大于该第二组编程参数的该第二验证电压。
31.根据权利要求25所述的存储器存储装置,其特征在于,在调整该第一组编程参数以获得该第二组编程参数的操作中,该存储器控制电路单元调整该第一组编程参数的一第一增量阶跃脉冲程序调整值以获取一值来作为该第二组编程参数的一第二增量阶跃脉冲程序调整值,其中该第一组编程参数的该第一增量阶跃脉冲程序调整值小于该第二组编程参数的该第二增量阶跃脉冲程序调整值。
32.根据权利要求23所述的存储器存储装置,其特征在于,该第一类数据为一固件码并且该第一区为独立地用以存储该固件码的一***区,
其中该第二类数据为一使用者数据并且该第二区为暂存该使用者数据的一暂驻存储区。
33.根据权利要求20所述的存储器存储装置,其特征在于,该存储器控制电路单元使用该第一组编程参数对存储有该第一类数据的该些实体编程单元其中之一执行一抹除操作,并且使用该第二组编程参数对存储有该第二类数据的该些实体编程单元其中之一执行该抹除操作。
34.根据权利要求20所述的存储器存储装置,其特征在于,该些实体编程单元之中以该第一组编程参数编程的实体编程单元的数据保存能力或抗读取干扰能力优于以该第二组编程参数编程的实体编程单元的数据保存能力或抗读取干扰能力。
35.根据权利要求20所述的存储器存储装置,其特征在于,该些实体编程单元之中以该第二组编程参数编程的实体编程单元的寿命优于以该第一组编程参数编程的实体编程单元的寿命。
36.根据权利要求20所述的存储器存储装置,其特征在于,该些实体编程单元之中以该第一组编程参数编程的实体编程单元的存储单元的门槛电压统计分布图的第一状态及第二状态间的电压间距大于以该第二组编程参数编程的实体编程单元的存储单元的门槛电压统计分布图的第一状态及第二状态间的电压间距。
CN201410799120.2A 2014-12-19 2014-12-19 存储单元编程方法、存储器控制电路单元与存储装置 Active CN105761754B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410799120.2A CN105761754B (zh) 2014-12-19 2014-12-19 存储单元编程方法、存储器控制电路单元与存储装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410799120.2A CN105761754B (zh) 2014-12-19 2014-12-19 存储单元编程方法、存储器控制电路单元与存储装置

Publications (2)

Publication Number Publication Date
CN105761754A CN105761754A (zh) 2016-07-13
CN105761754B true CN105761754B (zh) 2020-01-07

Family

ID=56340949

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410799120.2A Active CN105761754B (zh) 2014-12-19 2014-12-19 存储单元编程方法、存储器控制电路单元与存储装置

Country Status (1)

Country Link
CN (1) CN105761754B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10019332B1 (en) * 2017-03-10 2018-07-10 Western Digital Technologies, Inc. Non-volatile memory with program failure recovery
TWI715162B (zh) * 2019-08-26 2021-01-01 點序科技股份有限公司 記憶體驗證方法及記憶體驗證系統

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101252020A (zh) * 2007-02-22 2008-08-27 海力士半导体有限公司 存储器件的读取方法
US7548457B2 (en) * 2006-04-26 2009-06-16 Samsung Electronics Co., Ltd. Multi-bit nonvolatile memory device and related programming method
TW201407617A (zh) * 2012-08-15 2014-02-16 Phison Electronics Corp 資料讀取方法、記憶體控制器與記憶體儲存裝置
US8706952B2 (en) * 2010-02-04 2014-04-22 Phison Electronics Corp. Flash memory storage device, controller thereof, and data programming method thereof

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7548457B2 (en) * 2006-04-26 2009-06-16 Samsung Electronics Co., Ltd. Multi-bit nonvolatile memory device and related programming method
CN101252020A (zh) * 2007-02-22 2008-08-27 海力士半导体有限公司 存储器件的读取方法
US8706952B2 (en) * 2010-02-04 2014-04-22 Phison Electronics Corp. Flash memory storage device, controller thereof, and data programming method thereof
TW201407617A (zh) * 2012-08-15 2014-02-16 Phison Electronics Corp 資料讀取方法、記憶體控制器與記憶體儲存裝置

Also Published As

Publication number Publication date
CN105761754A (zh) 2016-07-13

Similar Documents

Publication Publication Date Title
US9361024B1 (en) Memory cell programming method, memory control circuit unit and memory storage apparatus
US9257187B2 (en) Data storing method, memory control circuit unit and memory storage apparatus
US9703698B2 (en) Data writing method, memory controller and memory storage apparatus
US9665481B2 (en) Wear leveling method based on timestamps and erase counts, memory storage device and memory control circuit unit
US20160118132A1 (en) Low Impact Read Disturb Handling
US9530509B2 (en) Data programming method, memory storage device and memory control circuit unit
US8972653B2 (en) Memory management method, and memory controller and memory storage apparatus using the same
US9496041B2 (en) Memory programming method, memory control circuit unit and memory storage device
CN110795270B (zh) 固态储存装置及其读取重试方法
US10503433B2 (en) Memory management method, memory control circuit unit and memory storage device
US11562792B2 (en) Memory system having a non-volatile memory and a controller configured to switch a mode for controlling an access operation to the non-volatile memory
US9947417B2 (en) Memory management method, memory storage device and memory controlling circuit unit
CN107958687B (zh) 存储器编程方法、存储器控制电路单元及其存储装置
US9396804B1 (en) Memory programming method, memory control circuit unit and memory storage apparatus
US9312013B1 (en) Configuration method of erase operation, memory controlling circuit unit and memory storage device
CN105989887B (zh) 抹除操作配置方法、存储器控制电路单元与存储器
CN112860194B (zh) 存储器控制方法、存储器存储装置及存储器控制电路单元
US11216208B1 (en) Memory system, memory controller, and operation method of memory system
US9972390B2 (en) Two pass memory programming method, memory control circuit unit and memory storage apparatus
CN105761754B (zh) 存储单元编程方法、存储器控制电路单元与存储装置
CN105810246B (zh) 存储器管理方法、存储器存储装置及存储器控制电路单元
US20140050024A1 (en) Data reading method, and circuit, rewritable non-volatile memory module and memory storage apparatus using the same
US9679652B2 (en) Threshold based multi-level cell programming for reliability improvement
US10586596B2 (en) Data writing method, memory control circuit unit and memory storage apparatus
CN108091364B (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