存储器编程方法、存储器控制电路单元及其存储装置与流程

文档序号:14266704阅读:224来源:国知局
存储器编程方法、存储器控制电路单元及其存储装置与流程

本发明涉及一种存储器编程方法,尤其涉及一种用于可复写式非易失性存储器模块的存储器编程方法及使用此方法的存储器控制电路单元与存储器存储装置。



背景技术:

数码相机、移动电话与mp3播放器在这几年来的成长十分迅速,使得消费者对存储介质的需求也急速增加。由于可复写式非易失性存储器模块(例如,闪存存储器)具有数据非易失性、省电、体积小,以及无机械结构等特性,所以非常适合内建于上述所举例的各种便携式多媒体装置中。

一般来说,控制电路会通过对字线(或字线层)施加电压,并且通过位线对可复写式非易失性存储器模块中所选择的存储单元进行编程(programming),以存储数据。目前对于市场大容量的存储需求,目前已发展出一个存储单元存储3个数据比特的可复写式非易失性存储器模块。然而,随着制程技术的越来越精细,要在存储3个数据比特的存储单元中正确地识别出临界电压分布也更为困难。因此,如何确保编程至可复写式非易失性存储器模块的数据的可靠度,是此领域技术人员所致力的欲解决的课题。



技术实现要素:

本发明提供一种存储器编程方法、存储器控制电路单元与存储器存储装置,其能够有效地提升存储数据的可靠度。

本发明的一范例实施例提出一种存储器编程方法,用于可复写式非易失性存储器的实体抹除单元。此可复写式非易失性存储器的实体抹除单元包括多个字线层与多个位线串,此些位线串之中的每一个位线串沿第一方向彼此分离开来排列,此些位线串之中的每一个位线串包括多条位线,此些位线沿第二方向延伸且沿第三方向彼此分离开来排列,此些字线层沿第二方向堆叠且此些字线层之间彼此分离开来,并且每一字线层与每一位线的交错处具有存储单元,此些位线串之中的任一个位线串与此些字线层之中的任一个字线层交错处上的存储单元构成至少一实体编程单元。此存储器编程方法包括使用第一编程参数组将第一数据串编程至实体抹除单元的至少一第一实体编程单元,其中第一实体编程单元是由此些位线串之中的第一位线串与此些字线层之中的第一字线层交错处上的存储单元所构成。此存储器编程方法还包括,在将第一数据串完整地编程至第一实体编程单元的所有存储单元之后,使用第二编程参数组将第一数据串再次编程至第一实体编程单元的所有存储单元。

在本发明的一范例实施例中,上述在将第一数据串完整地编程至第一实体编程单元之后,使用第二编程参数组将第一数据串再次编程至第一实体编程单元的步骤包括:在将第一数据串完整地编程至第一实体编程单元之后,立即使用第二编程参数组将第一数据串再次编程至第一实体编程单元。

在本发明的一范例实施例中,上述在将第一数据串完整地编程至第一实体编程单元之后,使用第二编程参数组将第一数据串再次编程至第一实体编程单元的步骤包括:在将第一数据串完整地编程至第一实体编程单元之后,从第一实体编程单元中读取第一数据串,对从第一实体编程单元中读取的第一数据串执行错误检查与校正操作并且判断发生在从第一实体编程单元中读取的第一数据串上的错误比特的数目是否大于预先定义值;以及仅当发生在从第一实体编程单元中读取的第一数据串上的错误比特的数目大于预先定义值时,执行上述使用第二编程参数组将第一数据串再次编程至第一实体编程单元的步骤。

在本发明的一范例实施例中,上述第一编程参数组包括第一写入电压组、第一写入电压脉冲时间和第一验证电压组且第二编程参数组包括第二写入电压组、第二写入电压脉冲时间和第二验证电压组,其中第一写入电压组不同于第二写入电压组。

在本发明的一范例实施例中,上述第一编程参数组包括第一写入电压组、第一写入电压脉冲时间和第一验证电压组且第二编程参数组包括第二写入电压组、第二写入电压脉冲时间和第二验证电压组,其中第一验证电压组不同于第二验证电压组。

在本发明的一范例实施例中,上述第二编程参数组相同于上述第一编程参数组。

在本发明的一范例实施例中,在将第一数据串完整地编程至第一实体编程单元的所有存储单元之后,第一实体编程单元的存储单元可被正常地读取,并且从第一实体编程单元的存储单元中读取的数据相同于第一数据串。

本发明的一范例实施例提出一种用于可复写式非易失性存储器模块的存储器控制电路单元。此可复写式非易失性存储器模块包括一个实体抹除单元,此实体抹除单元包括多个字线层与多个位线串,此些位线串之中的每一个位线串沿第一方向彼此分离开来排列,此些位线串之中的每一个位线串包括多条位线,此些位线沿第二方向延伸且沿第三方向彼此分离开来排列,此些字线层沿第二方向堆叠且此些字线层之间彼此分离开来,并且每一字线层与每一位线的交错处具有存储单元,此些位线串之中的任一个位线串与此些字线层之中的任一个字线层交错处上的存储单元构成至少一实体编程单元。此存储器控制电路单元包括:主机接口、存储器接口和存储器管理电路。存储器管理电路电性连接至主机接口与存储器接口。主机接口用以电性连接至主机系统,并且存储器接口用以电性连接至可复写式非易失性存储器模块。存储器管理电路用以下达一第一指令序列以使用第一编程参数组将第一数据串编程至实体抹除单元的至少一第一实体编程单元,其中第一实体编程单元是由此些位线串之中的第一位线串与此些字线层之中的第一字线层交错处上的存储单元所构成。在将第一数据串完整地编程至第一实体编程单元的所有存储单元之后,存储器管理电路下达一第二指令序列以使用第二编程参数组将第一数据串再次编程至第一实体编程单元的所有存储单元。

在本发明的一范例实施例中,在将第一数据串完整地编程至第一实体编程单元之后,使用第二编程参数组将第一数据串再次编程至第一实体编程单元的运作中,存储器管理电路在将第一数据串完整地编程至第一实体编程单元之后,立即使用第二编程参数组将第一数据串再次编程至第一实体编程单元。

在本发明的一范例实施例中,在将第一数据串完整地编程至第一实体编程单元之后,使用第二编程参数组将第一数据串再次编程至第一实体编程单元的运作中,在将第一数据串完整地编程至第一实体编程单元之后,存储器管理电路从第一实体编程单元中读取第一数据串,对从第一实体编程单元中读取的第一数据串执行错误检查与校正操作并且判断发生在从第一实体编程单元中读取的第一数据串上的错误比特的数目是否大于预先定义值。并且,仅当发生在从第一实体编程单元中读取的第一数据串上的错误比特的数目大于预先定义值时,存储器管理电路执行上述使用第二编程参数组将第一数据串再次编程至第一实体编程单元的运作。

本发明的一范例实施例提出一种存储器存储装置,其包括用以电性连接至主机系统的连接接口单元、可复写式非易失性存储器模块与电性连接至连接接口单元与可复写式非易失性存储器模块的上述存储器控制电路单元。此存储器控制电路单元包括:主机接口、存储器接口和存储器管理电路。主机接口用以电性连接至主机系统,存储器接口用以电性连接至可复写式非易失性存储器模块,且存储器管理电路电性连接至主机接口与存储器接口。

基于上述,本发明范例实施例的存储器编程方法、存储器控制电路单元与存储器存储装置能够有效地提升存储数据的可靠度,避免数据遗失。

为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。

附图说明

图1是根据第一范例实施例所示出的主机系统、存储器存储装置及输入/输出(i/o)装置的示意图。

图2是根据另一范例实施例所示出的主机系统、存储器存储装置及输入/输出(i/o)装置的示意图。

图3是根据另一范例实施例所示出的主机系统与存储器存储装置的示意图。

图4是根据第一范例实施例所示出的主机系统与存储器存储装置的概要方块图。

图5是根据第一范例实施例所示出的可复写式非易失性存储器模块的概要方块图。

图6是根据第一范例实施例所示出的实体抹除单元的存储单元阵列的示意图。

图7是根据第一范例实施例所示出的编程存储单元的示意图。

图8是根据第一范例实施例所示出的从存储单元中读取数据的示意图。

图9、图10、图11与图12是根据第一范例实施例所示出的管理实体抹除单元的范例示意图。

图13是根据第一范例实施例所示出的存储器控制电路单元的概要方块图。

图14是根据本发明第一范例实施例所示出的存储器编程方法的流程图。

图15是根据本发明第二范例实施例所示出的存储器编程方法的流程图。

附图标号说明:

10:存储器存储装置;

11:主机系统;

12:输入/输出(i/o)装置;

110:系统总线;

111:处理器;

112:随机存取存储器(ram);

113:只读存储器(rom);

114:数据传输接口;

20:主机板;

204:无线存储器存储装置;

205:全球定位系统模块;

206:网络接口卡;

207:无线传输装置;

208:键盘;

209:屏幕;

210:喇叭;

30:存储器存储装置;

31:主机系统;

32:sd卡;

33:cf卡;

34:嵌入式存储装置;

341:嵌入式多媒体卡;

342:嵌入式多芯片封装存储装置;

402:连接接口单元;

404:存储器控制电路单元;

406:可复写式非易失性存储器模块;

410(0)、410(1)、410(f-1)、410(f)、410(f+1)、410(s-1)、410(s)、410(s+1)、410(r-1)、410(r)、410(r+1)、410(n):实体抹除单元;

2202:存储单元阵列;

2204:字线控制电路;

2206:位线控制电路;

2208:行解码器;

2210:数据输入/输出缓冲器;

2212:控制电路;

702:存储单元;

704(1)、704(2)、704(3)、704(4):位线串;

704(1-1)、704(1-2)、704(1-3)、704(1-4)、704(2-1)、704(2-2)、704(2-3)、704(2-4)、704(3-1)、704(3-2)、704(3-3)、704(3-4)、704(4-1)、704(4-2)、704(4-3)、704(4-4):位线组;

706(1)、706(2)、706(3)、706(4)、706(5)、706(6)、706(7)、706(8)、706(9):字线层;

va:第一预设读取电压;

vb:第二预设读取电压;

vc:第三预设读取电压;

vd:第四预设读取电压;

ve:第五预设读取电压;

vf:第六预设读取电压;

vg:第七预设读取电压;

502:数据区;

504:闲置区;

506:系统区;

508:暂存区;

510:取代区;

lba(0)~lba(h):逻辑单元;

1302:存储器管理电路;

1304:主机接口;

1306:存储器接口;

1308:错误检查与校正电路;

1310:缓冲存储器;

1312:电源管理电路;

s1401:使用第一编程参数组将数据串(以下称为第一数据串)编程至实体抹除单元的至少一个实体编程单元(以下称为第一实体编程单元)的步骤;

s1402:使用第二编程参数组将第一数据串再次编程至第一实体编程单元的步骤;

s1501:使用第一编程参数组将数据串(以下称为第一数据串)编程至实体抹除单元的至少一个实体编程单元(以下称为第一实体编程单元)的步骤;

s1503:从第一实体编程单元中读取第一数据串的步骤;

s1505:判断发生在所读取的第一数据串上的错误比特的数目是否大于预先定义值的步骤;

s1507:使用第二编程参数组将第一数据串再次编程至第一实体编程单元的步骤。

具体实施方式

一般而言,存储器存储装置(也称,存储器存储系统)包括可复写式非易失性存储器模块与控制器(也称,控制电路单元)。通常存储器存储装置是与主机系统一起使用,以使主机系统可将数据写入至存储器存储装置或从存储器存储装置中读取数据。

[第一范例实施例]

图1是根据第一范例实施例所示出的主机系统、存储器存储装置及输入/输出(i/o)装置的示意图,并且图2是根据另一范例实施例所示出的主机系统、存储器存储装置及输入/输出(i/o)装置的示意图。

请参照图1与图2,主机系统11一般包括处理器111、随机存取存储器(randomaccessmemory,ram)112、只读存储器(readonlymemory,rom)113及数据传输接口114。处理器111、随机存取存储器112、只读存储器113及数据传输接口114皆电性连接至系统总线(systembus)110。

在本范例实施例中,主机系统11是通过数据传输接口114与存储器存储装置10电性连接。例如,主机系统11可经由数据传输接口114将数据写入至存储器存储装置10或从存储器存储装置10中读取数据。此外,主机系统11是通过系统总线110与i/o装置12电性连接。例如,主机系统11可经由系统总线110将输出信号传送至i/o装置12或从i/o装置12接收输入信号。

在本范例实施例中,处理器111、随机存取存储器112、只读存储器113及数据传输接口114是可设置在主机系统11的主机板20上。数据传输接口114的数目可以是一或多个。通过数据传输接口114,主机板20可以经由有线或无线方式电性连接至存储器存储装置10。存储器存储装置10可例如是u盘201、存储卡202、固态硬盘(solidstatedrive,ssd)203或无线存储器存储装置204。无线存储器存储装置204可例如是近距离无线通信(nearfieldcommunicationstorage,nfc)存储器存储装置、无线传真(wifi)存储器存储装置、蓝牙(bluetooth)存储器存储装置或低功耗蓝牙存储器存储装置(例如,ibeacon)等以各式无线通信技术为基础的存储器存储装置。此外,主机板20也可以通过系统总线110电性连接至全球定位系统(globalpositioningsystem,gps)模块205、网络接口卡206、无线传输装置207、键盘208、屏幕209、喇叭210等各式i/o装置。例如,在一范例实施例中,主机板20可通过无线传输装置207存取无线存储器存储装置204。

在一范例实施例中,所提及的主机系统为可实质地与存储器存储装置配合以存储数据的任意系统。虽然在上述范例实施例中,主机系统是以电脑系统来作说明,然而,图3是根据另一范例实施例所示出的主机系统与存储器存储装置的示意图。请参照图3,在另一范例实施例中,主机系统31也可以是数码相机、摄像机、通信装置、音频播放器、视频播放器或平板电脑等系统,而存储器存储装置30可为其所使用的sd卡32、cf卡33或嵌入式存储装置34等各式非易失性存储器存储装置。嵌入式存储装置34包括嵌入式多媒体卡(embeddedmmc,emmc)341和/或嵌入式多芯片封装存储装置(embeddedmultichippackage,emcp)342等各类型将存储器模块直接电性连接于主机系统的基板上的嵌入式存储装置。

图4是根据第一范例实施例所示出的主机系统与存储器存储装置的概要方块图。

请参照图4,存储器存储装置10包括连接接口单元402、存储器控制电路单元404与可复写式非易失性存储器模块406。

在本范例实施例中,连接接口单元402是相容于安全数字(securedigital,sd)接口标准。然而,必须了解的是,本发明不限于此,连接接口单元402也可以是符合串行先进附件(serialadvancedtechnologyattachment,sata)标准、并列先进附件(paralleladvancedtechnologyattachment,pata)标准、电气和电子工程师协会(instituteofelectricalandelectronicengineers,ieee)1394标准、高速周边零件连接接口(peripheralcomponentinterconnectexpress,pciexpress)标准、通用串行总线(universalserialbus,usb)标准、超高速一代(ultrahighspeed-i,uhs-i)接口标准、超高速二代(ultrahighspeed-ii,uhs-ii)接口标准、记忆棒(memorystick,ms)接口标准、多芯片封装(multi-chippackage)接口标准、多媒体存储卡(multimediacard,mmc)接口标准、嵌入式多媒体存储卡(embeddedmultimediacard,emmc)接口标准、通用闪存存储器(universalflashstorage,ufs)接口标准、嵌入式多芯片封装(embeddedmultichippackage,emcp)接口标准、小型闪存(compactflash,cf)接口标准、整合式驱动电子接口(integrateddeviceelectronics,ide)标准或其他适合的标准。在本范例实施例中,连接接口单元402可与存储器控制电路单元404封装在一个芯片中,或者连接接口单元402是布设于一包含存储器控制电路单元的芯片外。

存储器控制电路单元404用以执行以硬件或软件实作的多个逻辑门或控制指令,并且根据主机系统11的指令在可复写式非易失性存储器模块406中进行数据的写入、读取与抹除等操作。

可复写式非易失性存储器模块406是电性连接至存储器控制电路单元404,并且用以存储主机系统11所写入的数据。可复写式非易失性存储器模块406具有实体抹除单元410(0)~410(n)。例如,实体抹除单元410(0)~410(n)可属于同一个存储器晶粒(die)或者属于不同的存储器晶粒。每一实体抹除单元分别具有复数个实体编程单元,其中属于同一个实体抹除单元的实体编程单元可被独立地写入且被同时地抹除。然而,必须了解的是,本发明不限于此,每一实体抹除单元是可由64个实体编程单元、256个实体编程单元或其他任意个实体编程单元所组成。

更详细来说,实体抹除单元为抹除的最小单位。也即,每一实体抹除单元含有最小数目之一并被抹除的存储单元。实体编程单元为编程的最小单元。即,实体编程单元为写入数据的最小单元。每一实体编程单元通常包括数据比特区与冗余比特区。数据比特区包含多个实体存取地址用以存储使用者的数据,而冗余比特区用以存储系统的数据(例如,控制信息与错误更正码)。在本范例实施例中,每一个实体编程单元的数据比特区中会包含8个实体存取地址,且一个实体存取地址的大小为512比特组(byte)。然而,在其他范例实施例中,数据比特区中也可包含数目更多或更少的实体存取地址,本发明并不限制实体存取地址的大小以及个数。例如,在一范例实施例中,实体抹除单元为实体区块,并且实体编程单元为实体页面或实体扇区,但本发明不以此为限。

在本范例实施例中,可复写式非易失性存储器模块406为三维(threedimension,3d)复数阶存储单元(trinarylevelcell,tlc)nand型闪存存储器模块(即,一个存储单元中可存储3个数据比特的闪存存储器模块)或其他具有相同特性的存储器模块。然而,本发明不限于此,可复写式非易失性存储器模块406也可是3d多阶存储单元(multilevelcell,mlc)nand型闪存存储器模块(即,一个存储单元中可存储2个比特数据的闪存存储器模块)或其他具有相同特性的存储器模块。

图5是根据第一范例实施例所示出的可复写式非易失性存储器模块的概要方块图,并且图6是根据第一范例实施例所示出的实体抹除单元的存储单元阵列的示意图。

请参照图5与图6,可复写式非易失性存储器模块406包括存储单元阵列2202、字线控制电路2204、位线控制电路2206、行解码器(columndecoder)2208、数据输入/输出缓冲器2210与控制电路2212。

请参照图5与图6,存储单元阵列2202包括用以存储数据的多个存储单元702、多个位线串(例如,第一位线串704(1)、第二位线串704(2)、第三位线串704(3)与第四位线串704(4))与多个字线层(例如,第一字线层706(1)、第二字线层706(2)、第三字线层706(3)、第四字线层706(4)、第五字线层706(5)、第六字线层706(6)、第七字线层706(7)、第八字线层706(8)与第九字线层706(9))。实体抹除单元的是由存储单元阵列2202中的存储单元702所构成。具体来说,每一位线串包括多个位线组(例如,位线组704(1-1)、位线组704(1-2)、位线组704(1-3)、位线组704(1-4)、位线组704(2-1)、位线组704(2-2)、位线组704(2-3)、位线组704(2-4)、位线组704(3-1)、位线组704(3-2)、位线组704(3-3)、位线组704(3-4)、位线组704(4-1)、位线组704(4-2)、位线组704(4-3)、位线组704(4-4)),并且每一位线组是沿第一方向彼此分离开来排列。此外,每一位线组包括沿第三方向彼此分离开来排列且沿第二方向延伸的多条位线(如图6所示垂直排列穿过各字线层的管状元件)。而此些字线层是沿第二方向堆叠且字线层之间彼此分离开来。例如,第一方向为x轴,第二方向为z轴,而第三方向为y轴。而构成实体抹除单元的存储单元位于每一字线层与每一位线串的每一位线的交错处。在本范例实施例,可复写式非易失性存储器模块406为3dtlcnand型闪存存储器模块,因此,每个位线串与每个字线层交错处上的存储单元会构成3个实体编程单元。而在可复写式非易失性存储器模块406为3dmlcnand型闪存存储器模块的例子中,每个位线串与每个字线层交错处上的存储单元会构成2个实体编程单元。当从存储器控制电路单元404接收到写入指令或读取指令时,控制电路2212会控制字线控制电路2204、位线控制电路2206、行解码器2208、数据输入/输出缓冲器2210来写入数据至存储单元阵列2202或从存储单元阵列2202中读取数据,其中字线控制电路2204用以控制施予至字线706的电压,位线控制电路2206用以控制施予至位线704的电压,行解码器2208依据指令中的解码列地址以选择对应的位线,并且数据输入/输出缓冲器2210用以暂存数据。可复写式非易失性存储器模块406中的存储单元是以多种栅极电压来代表多比特(bits)的数据。存储单元阵列2202的存储单元的数据写入(或称为编程)是利用施予一特定端点的电压,例如是控制栅极电压来改变栅极中的一电荷补捉层的电子量,因而改变了存储单元的通道的导通状态,以呈现不同的存储状态。

图7是根据第一范例实施例所示出的编程存储单元的示意图。

请参照图7,在本范例实施例中,存储单元的编程是通过脉冲写入/验证临界电压方法来完成。具体来说,欲将数据写入至存储单元时,存储器控制电路单元404会设定初始写入电压以及写入电压脉冲时间,并且指示可复写式非易失性存储器模块406的控制电路2212使用所设定的初始写入电压以及写入电压脉冲时间来编程存储单元,以进行数据的写入。之后,存储器控制电路单元404会使用验证电压来对存储单元进行验证,以判断存储单元是否已处于正确的存储状态。倘若存储单元未被编程至正确的存储状态时,存储器控制电路单元404指示控制电路2212以目前施予的写入电压加上一增量阶跃脉冲编程(incremental-step-pulseprogramming,ispp)调整值作为新的写入电压(也称为重复写入电压)并且依据新的写入电压与写入电压脉冲时间再次来编程存储单元。反之,倘若存储单元已被编程至正确的存储状态时,则表示数据已被正确地写入至存储单元。例如,初始写入电压会被设定为16伏特(voltage,v),写入电压脉冲时间会被设定为18微秒(microseconds,μs)并且增量阶跃脉冲编程调整值被设定为0.6v,但本发明不限于此。

存储单元阵列2202的存储单元的读取运作是通过施予读取电压于控制门(controlgate),通过存储单元的通道(存储单元用以电连接位线与源极线的路径,例如是存储单元源极至漏极间的路径)的导通状态,来识别存储单元存储的数据。

图8是根据第一范例实施例所示出的从存储单元中读取数据的示意图,其是以3dtlcnand型闪存存储器为例。

请参照图8,可复写式非易失性存储器模块406的存储单元的存储状态包括左侧算起的第1个比特的最低有效比特(leastsignificantbit,lsb)、从左侧算起的第2个比特的中间有效比特(centersignificantbit,csb)以及从左侧算起的第3个比特的最高有效比特(mostsignificantbit,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,存储器控制电路单元404会以实体编程单元为单位来对可复写式非易失性存储器模块406的存储单元702进行写入运作并且以实体抹除单元为单位来对可复写式非易失性存储器模块406的存储单元702进行抹除运作。具体来说,可复写式非易失性存储器模块406的存储单元702会构成多个实体编程单元,并且此些实体编程单元会构成多个实体抹除单元410(0)~410(n)。实体抹除单元为抹除的最小单位。也即,每一实体抹除单元含有最小数目之一并被抹除的存储单元。实体编程单元为编程的最小单元。即,一个实体编程单元为写入数据的最小单元。特别是,在本范例实施例中,一个实体抹除单元被抹除之前,其中的实体编程单元可被执行一次或多次编程。每一实体编程单元通常包括数据比特区与冗余比特区。数据比特区包含多个实体存取地址用以存储使用者的数据,而冗余比特区用以存储系统的数据(例如,控制信息与错误更正码)。例如,以属于3dtlcnand闪存存储器的可复写式非易失性存储器模块406为例,位于一字线层和一位线串交界处上的存储单元的lsb会构成一个下实体编程单元;位于一字线层和一位线串交界处上的存储单元的csb会构成一个中实体编程单元;并且位于一字线层和一位线串交界处上的存储单元的msb会构成一个上实体编程单元。也就是说,可复写式非易失性存储器模块406的实体抹除单元中的实体编程单元可区分为下实体编程单元、中实体编程单元与上实体编程单元(如图10所示)。

请参照图11,在本范例实施例中,存储器控制电路单元404会将实体抹除单元410(0)~410(n)逻辑地分组为数据区502、闲置区504、系统区506、暂存区508与取代区510。

逻辑上属于数据区502与闲置区504的实体抹除单元是用以存储来自于主机系统11的数据。具体来说,数据区502的实体抹除单元是被视为已存储数据的实体抹除单元,而闲置区504的实体抹除单元是用以替换数据区502的实体抹除单元。也就是说,当从主机系统11接收到写入指令与欲写入的数据时,存储器控制电路单元404会从闲置区504中提取实体抹除单元,并且将数据写入至所提取的实体抹除单元中,以替换数据区502的实体抹除单元。

逻辑上属于系统区506的实体抹除单元是用以记录系统数据。例如,系统数据包括关于可复写式非易失性存储器模块的制造商与型号、可复写式非易失性存储器模块的实体抹除单元数、每一实体抹除单元的实体编程单元数、存储器存储装置10的软件码等。

逻辑上属于暂存区508的实体抹除单元是用以暂存主机系统11所写入的数据。

逻辑上属于取代区510中的实体抹除单元是用于坏实体抹除单元取代程序,以取代损坏的实体抹除单元。具体来说,倘若取代区510中仍存有正常的实体抹除单元并且数据区502的实体抹除单元损坏时,存储器管理电路1302会从取代区510中提取正常的实体抹除单元来更换损坏的实体抹除单元。

特别是,数据区502、闲置区504、系统区506、暂存区508与取代区510的实体抹除单元的数量会依据不同的存储器规格而有所不同。此外,必须了解的是,在存储器存储装置10的运作中,实体抹除单元关联至数据区502、闲置区504、系统区506暂存区508与取代区510的分组关系会动态地变动。例如,当闲置区504中的实体抹除单元损坏而被取代区510的实体抹除单元取代时,则原本取代区510的实体抹除单元会被关联至闲置区504。例如,在开卡程序中,未配置实体抹单元至暂存区508,当执行写入运作时,存储器控制电路单元404会从闲置区504中提取实体抹除单元来暂存数据,而此用于暂存数据的实体抹除单元会被视为属于暂存区508。

请参照图12,存储器控制电路单元404会配置逻辑单元lba(0)~lba(h)以映射数据区502的实体抹除单元,其中每一逻辑单元具有多个逻辑子单元以映射对应的实体抹除单元的实体编程单元。并且,当主机系统11欲写入数据至逻辑单元或更新存储于逻辑单元中的数据时,存储器控制电路单元404会从闲置区504中提取一个实体抹除单元来写入数据,以轮替数据区502的实体抹除单元。在本范例实施例中,逻辑子单元可以是逻辑页面或逻辑扇区。

为了识别每个逻辑单元的数据被存储在那个实体抹除单元,在本范例实施例中,存储器控制电路单元404会记录逻辑单元与实体抹除单元之间的映射。并且,当主机系统11欲在逻辑子单元中存取数据时,存储器控制电路单元404会确认此逻辑子单元所属的逻辑单元,并且对可复写式非易失性存储器模块406下达对应的指令序列以在此逻辑单元所映射的实体抹除单元中来存取数据。例如,在本范例实施例中,存储器控制电路单元404会在可复写式非易失性存储器模块406中存储逻辑转实体地址映射表来记录每一逻辑单元所映射的实体抹除单元,并且当欲存取数据时存储器控制电路单元404会将逻辑转实体地址映射表载入至缓冲存储器来维护。

图13是根据第一范例实施例所示出的存储器控制电路单元的概要方块图。必须了解的是,图13所示的存储器控制电路单元的结构仅为一范例,本发明不以此为限。

请参照图13,存储器控制电路单元404包括存储器管理电路1302、主机接口1304、存储器接口1306与错误检查与校正电路1308。

存储器管理电路1302用以控制存储器控制电路单元404的整体运作。具体来说,存储器管理电路1302具有多个控制指令,并且在存储器存储装置10运作时,此些控制指令会被执行以进行数据的写入、读取与抹除等运作。以下描述存储器管理电路1302所执行的操作与功能,也可视为由存储器控制电路单元404所执行。

在本范例实施例中,存储器管理电路1302的控制指令是以软件来实作。例如,存储器管理电路1302具有微处理器单元(未示出)与只读存储器(未示出),并且此些控制指令是被烧录至此只读存储器中。当存储器存储装置10运作时,此些控制指令会由微处理器单元来执行以进行数据的写入、读取与抹除等运作。

在本发明另一范例实施例中,存储器管理电路1302的控制指令也可以程序码型式存储于可复写式非易失性存储器模块406的特定区域(例如,存储器模块中专用于存放系统数据的系统区)中。此外,存储器管理电路1302具有微处理器单元(未示出)、只读存储器(未示出)及随机存取存储器(未示出)。特别是,此只读存储器具有驱动码,并且当存储器控制电路单元404被致能时,微处理器单元会先执行此驱动码段来将存储于可复写式非易失性存储器模块406中的控制指令载入至存储器管理电路1302的随机存取存储器中。之后,微处理器单元会运转此些控制指令以进行数据的写入、读取与抹除等运作。

此外,在本发明另一范例实施例中,存储器管理电路1302的控制指令也可以一硬件来实作。例如,存储器管理电路1302包括微控制器、存储单元管理电路、存储器写入电路、存储器读取电路、存储器抹除电路与数据处理电路。存储单元管理电路、存储器写入电路、存储器读取电路、存储器抹除电路与数据处理电路是电性连接至微控制器。其中,存储单元管理电路用以管理可复写式非易失性存储器模块406的实体抹除单元;存储器写入电路用以对可复写式非易失性存储器模块406下达写入指令以将数据写入至可复写式非易失性存储器模块406中;存储器读取电路用以对可复写式非易失性存储器模块406下达读取指令以从可复写式非易失性存储器模块406中读取数据;存储器抹除电路用以对可复写式非易失性存储器模块406下达抹除指令以将数据从可复写式非易失性存储器模块406中抹除;而数据处理电路用以处理欲写入至可复写式非易失性存储器模块406的数据以及从可复写式非易失性存储器模块406中读取的数据。

主机接口1304是电性连接至存储器管理电路1302并且用以接收与识别主机系统11所传送的指令与数据。也就是说,主机系统11所传送的指令与数据会通过主机接口1304来传送至存储器管理电路1302。在本范例实施例中,主机接口1304是相容于usb标准。然而,必须了解的是本发明不限于此,主机接口1304也可以是相容于pata标准、ieee1394标准、pciexpress标准、sd标准、sata标准、uhs-i接口标准、uhs-ii接口标准、ms标准、mmc标准、emmc接口标准、ufs接口标准、cf标准、ide标准或其他适合的数据传输标准。

存储器接口1306是电性连接至存储器管理电路1302并且用以存取可复写式非易失性存储器模块406。也就是说,欲写入至可复写式非易失性存储器模块406的数据会经由存储器接口1306转换为可复写式非易失性存储器模块406所能接受的格式。

错误检查与校正电路1308是电性连接至存储器管理电路1302并且用以执行一错误校正程序以确保数据的正确性。具体来说,当存储器管理电路1302从可复写式非易失性存储器模块406中读取数据时,错误检查与校正电路1308会对所读取的数据执行错误校正程序。例如,在本范例实施例中,错误检查与校正电路1308为低密度奇偶校正(lowdensityparitycheck,ldpc)电路,并且会存储记录对数可能性比(loglikelihoodratio,llr)值查询表。当存储器管理电路1302从可复写式非易失性存储器模块406读取数据时,错误检查与校正电路1308会依据所读取的数据以及查询表中对应的llr值来执行错误校正程序。其中,值得说明的是在另一范例实施例中,错误检查与校正电路1308也可为涡轮码(turbocode)电路。

在本发明一范例实施例中,存储器控制电路单元404还包括缓冲存储器1310与电源管理电路1312。

缓冲存储器1310是电性连接至存储器管理电路1302并且用以暂存来自于主机系统11的数据与指令或来自于可复写式非易失性存储器模块406的数据。

电源管理电路1312是电性连接至存储器管理电路1302并且用以控制存储器存储装置10的电源。

在本范例实施例中,在将数据写入至上述实体抹除单元的过程中,存储器控制电路单元404每次下达指令序列(即,包含“80”、“地址”、“10”等字串的编程指令)以对其中一个字线层施加电压以进行编程运作时,仅会指示选择其中一个位线串来作动,以对此字线层和此位线串交界处上的存储单元进行编程。特别是,为了让编程后的存储单元的电压分布中的读取极限(readmargin)加大,以增加数据的可靠度,在本范例实施例中,存储器控制电路单元404会在完成一个字线层和一个位线串交界处上的存储单元的完整编程(即,完成上述脉冲写入/验证临界电压编程操作)后,再对此字线层和一个位线串交界处上的存储单元进行第二次编程。具体来说,在一个字线层和一个位线串交界处上的存储单元被完整编程后,此字线层和此位线串交界处上的存储单元上的数据已可被正确地读取(即,可下达读取指令来正确读取此些存储单元上的数据)。然而,为了加大此些存储单元内的读取极限,存储器控制电路单元404会在此字线层和此位线串交界处上的存储单元已存储正确的数据下,再此下达编程指令以使用上述脉冲写入/验证临界电压方法来对此些存储单元执行编程。也就是说,在本范例实施例中,存储器控制电路单元404会连续对一个字线层和一个位线串交界处上的存储单元进行多次完整编程操作。

图14是根据第一范例实施例所示出的存储器编程方法的流程图。

请参照图14,在步骤s1401中,存储器控制电路单元404使用第一编程参数组将数据串(以下称为第一数据串)编程至实体抹除单元的至少一个实体编程单元(以下称为第一实体编程单元),其中第一实体编程单元是由第一位线串704(1)与第一字线层706(1)交错处上的存储单元所构成。如上所述,在本范例实施例中,可复写式非易失性存储器模块406为3dtlcnand型闪存存储器模块,因此,第一位线串704(1)与第一字线层706(1)交错处上的存储单元会组成3个实体编程单元,并且此3个实体编程单元会同时被完成编程。

接着,在步骤s1402中,存储器控制电路单元404使用第二编程参数组将第一数据串再次编程至第一实体编程单元。例如,存储器控制电路单元404在完成将第一数据串完整地编程至第一实体编程单元后,立即使用第二编程参数组将第一数据串再次编程至第一实体编程单元。

在此,第二编程参数组是不同于第一编程参数组。例如,存储器控制电路单元404会根据第一编程参数组的写入电压组(以下称为第一写入电压组)和预定调整值来产生第二编程参数组的写入电压组(以下称为第二写入电压组)。或者,在另一范例实施例中,存储器控制电路单元404会根据第一编程参数组的验证电压组(以下称为第一验证电压组)和预定调整值来产生第二编程参数组的验证电压组(以下称为第二验证电压组)。再者,在另一范例实施例中,存储器控制电路单元404会根据第一编程参数组的写入电压脉冲时间(以下称为第一写入电压脉冲时间)和预定调整值来产生第二编程参数组的写入电压脉冲时间(以下称为第二写入电压脉冲时间)。

值得一提的是,尽管在本范例实施例中,第二编程参数组是不同于第一编程参数组。然而,本发明不限于此,在另一范例实施例中,第二编程参数组也可相同于第一编程参数组。

[第二范例实施例]

第二范例实施例的存储器存储装置的硬件结构本质上是相同于第一范例实施例的存储器存储装置的硬件结构,其差异之处在于第一范例实施例的存储器存储装置是对同一个字线层与同一个位线串交界出上的相同存储单元连续进行完整编程操作,而第二范例实施例的存储器存储装置是在完成完整编程操作后,发现发生在所编程的数据上的错误比特的数目大于一预先定义值时,才进行重复编程的操作。以下将使用第一范例实施例的存储器存储装置的图式与元件编号来详细说明第二范例实施例的存储器存储装置的运作。

图15是根据第二范例实施例所示出的存储器编程方法的流程图。

请参照图15,在步骤s1501中,存储器控制电路单元404使用第一编程参数组将数据串(以下称为第一数据串)编程至实体抹除单元的至少一个实体编程单元(以下称为第一实体编程单元),其中第一实体编程单元是由第一位线串704(1)与第一字线层706(1)交错处上的存储单元所构成。

在步骤s1503中,存储器控制电路单元404会从第一实体编程单元中读取第一数据串,并且在步骤s1505中,存储器控制电路单元404会判断发生在所读取的第一数据串上的错误比特的数目是否大于预先定义值。具体来说,存储器控制电路单元404的错误检查与校正电路1308会对所读取的第一数据串执行错误检查与校正操作。例如,错误检查与校正电路1308能够校正的错误比特的数目为最大可校正数目,并且预先定义值可被设定为小于或等于错误检查与校正电路1308的最大可校正数目。

倘若发生在所读取的第一数据串上的错误比特的数目大于预先定义值时,则在步骤s1507中,存储器控制电路单元404使用第二编程参数组将第一数据串再次编程至第一实体编程单元。

倘若发生在所读取的第一数据串上的错误比特的数目非大于预先定义值时,则图15的流程会结束。

综上所述,本发明范例实施例的数据编程方法、存储器控制电路单元与存储器存储装置是在编程数据时,对相同的存储单元重复执行编程操作,由此增加存储单元的电压分布中的读取极限,以提升数据的可靠度。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1