非易失性存储器件、包括其的数据储存设备及其操作方法与流程

文档序号:12179782阅读:464来源:国知局
非易失性存储器件、包括其的数据储存设备及其操作方法与流程

本申请要求2015年8月28日向韩国知识产权局提交的申请号为10-2015-0122057的韩国专利申请的优先权,其全部内容通过引用合并于此。

技术领域

各个实施例涉及包括非易失性存储器件的数据储存设备,且更具体而言涉及一种能快速搜索非易失性存储器件的被擦除页的数据储存设备。



背景技术:

近来,计算环境模式已经转变为无所不在的计算,使得计算机系统能随时随地使用。由于这种事实,便携式电子设备诸如移动电话、数码相机和笔记本电脑的使用迅速增加。一般而言,这样的便携式电子设备使用具有存储器件的数据储存设备。数据储存设备被用作便携式电子设备的主存储器件或辅助存储器件。

使用存储器件的数据储存设备提供的优势在于,具有良好的稳定性和耐久性、快速的信息访问、以及低功耗因为它没有活动件。具有上述优势的数据储存设备包括通用串行总线(universal serial bus,USB)存储器件、具有各种接口的存储卡(memory card)、通用闪存(universal flash storage,UFS)器件、以及固态驱动器(solid state drive,SSD)。

当便携式电子设备播放大文件诸如音乐文件或视频文件时,要求作为储存媒介的数据储存设备具有大的储存容量。数据储存设备使用具有高的存储单元集成度的存储器件来保证大的储存容量(例如,作为非易失性存储器件之一的快闪存储器件)



技术实现要素:

本公开的各个实施例涉及能快速搜索非易失性存储器件的擦除页的数据储存设备。

在一个实施例中,一种数据储存设备可以包括:非易失性存储器件,所述非易失性存储器件包括第一区的存储单元和第二区的存储单元,所述第一区的存储单元以页分组,所述第二区的存储单元分别与页相对应,且适用于储存表示所述第一区的每个页是否处在擦除状态的信息;以及控制器,所述控制器适用于向所述非易失性存储器件提供用于搜索擦除页的搜索命令和页的搜索地址,其中,所述非易失性存储器件响应于所述搜索命令而向所述控制器提供与所述搜索地址相对应的所述第二区的至少一个存储单元的状态。

在一个实施例中,一种用于操作包括非易失性存储器件的数据储存设备的方法,所述非易失性存储器件包括第一区的存储单元和第二区的存储单元,所述第二区的存储单元分别与所述第一区的存储单元相对应,且所述第二区的存储单元中的每个存储单元储存表示编程电压是否施加给所述第一区的相应存储单元的信息,所述方法可以包括:当编程命令和所述第一区的第一存储单元的编程地址被提供时,对与所述编程地址相对应的所述第二区的第一存储单元执行编程操作;以及对所述第一区的第一存储单元执行编程操作。

在一个实施例中,一种非易失性存储器件包括:第一区的存储单元,所述第一区的存储单元适用于储存数据;以及第二区的存储单元,所述第二区的存储单元适用于储存表示是否向所述第一区的存储单元施加编程电压的信息。

根据本公开的实施例,可以快速搜索非易失性存储器件的擦除页。

附图说明

图1是说明根据一个实施例的非易失性存储器件的框图。

图2是说明根据一个实施例的由单电平单元配置的存储块的电路图。

图3是说明数据单元的阈值电压分布的图。

图4是说明编程电压和验证电压的图。

图5是说明编程指示符单元的阈值电压分布的图。

图6是说明在编程指示符单元的编程操作中施加的编程电压的图。

图7是说明根据一个实施例的由多电平单元配置的存储块的电路图。

图8是说明数据单元的阈值电压分布的图。

图9是说明标志单元的阈值电压分布的图。

图10是说明编程电压和验证电压的图。

图11是说明编程指示符单元的阈值电压分布的图。

图12是说明在编程指示符单元的编程操作中施加的编程电压的图。

图13是说明根据一个实施例的非易失性存储器件的编程操作的流程图。

图14是说明根据一个实施例的非易失性存储器件的编程指示符单元的读取操作的流程图。

图15是说明根据一个实施例的数据储存设备的框图。

图16是说明要在随机存取存储器中驱动的固件或软件的图。

图17是说明非易失性存储器件响应于来自控制器的请求的操作的流程图。

图18是说明根据一个实施例的包括数据储存设备的数据处理系统的框图。

图19是说明根据一个实施例的包括固态驱动器(SSD)的数据处理系统的框图。

图20是说明SSD控制器的框图。

图21是说明根据一个实施例的其中安装有数据储存设备的计算机系统的框图。

具体实施方式

在本发明中,在结合附图阅读取下文的示例性实施例之后,本发明的优点、特征以及用于实现这些优点、特征的方法将会变得更加明显。然而,本发明可以用不同的方式实施,而不应解释为局限于本文所列的实施例。确切地说,提供这些实施例用来详细描述本发明达到本发明所属技术领域的技术人员能容易地实施本发明的技术概念的程度。

在本文中要理解的是,本发明的实施例不限于附图所示的细节,并且附图并非按比例绘制且为了更加清楚地描绘本发明的某些特征在一些情况下对比例进行了夸大。尽管在本文使用了特定的术语,但要理解的是,本文所使用的术语仅仅是出于描述特定实施例的目的且并非意图限制本发明的范围。

如本文所使用的,词语“和/或”包括相关联的所列项目中的一个项目或更多个项目的任何组合或所有组合。将会理解,当提及一个部件在另一个部件“上”、与另一个部件“连接”或“耦接”时,这个部件可以直接在另一个部件上,与另一个部件直接“连接”或“耦接”或者可以存在中间部件。如本文所使用的,单数形式也意图包括复数形式,除非在文中别处清楚地表明。还将会理解,说明书中使用的词语“包括”和/或“包含”是指存在至少一个所述的特征、步骤、操作和/或部件,但不排除存在或增加一个或更多个其它的特征、步骤、操作和/或部件。

在下文,将参照附图经由实施例的各个示例来描述非易失性存储器件、包括非易失性存储器件的数据储存设备及其操作方法。

图1是说明根据一个实施例的非易失性存储器件100的框图。参见图1,非易失性存储器件100可以包括存储单元阵列110、行解码器120、列解码器130、数据读/写块140、电压发生器150以及控制逻辑160。

存储单元阵列110可以包括布置在字线WL1至WLm与位线BL1至BLn之间的交叉点处的存储单元。存储单元可以以存取单位来分组。例如,存储块可以作为擦除单位来分组,页可以作为编程与读取单位来分组。将参照图2详细描述存储单元阵列110的存储单元。

行解码器120可以经由字线WL1至WLm与存储单元阵列110耦接。行解码器120可以在控制逻辑160的控制下操作。行解码器120可以对从外部设备(未示出)提供的地址进行解码。行解码器120可以基于解码结果来选择和驱动字线WL1至WLm。例如,行解码器120可以向字线WL1至WLm提供从电压发生器150提供的字线电压。

列解码器130可以经由位线BL1至BLn与存储单元阵列110耦接。列解码器130可以在控制逻辑160的控制下操作。列解码器130可以对从外部设备提供的地址进行解码。列解码器130可以基于解码结果将位线BL1至BLn与数据读/写块140的分别对应于位线BL1至BLn的读/写电路耦接。此外,列解码器130可以基于解码结果来驱动位线BL1至BLn。

数据读/写块140可以在控制逻辑160的控制下操作。数据读/写块140可以根据操作模式来作为写驱动器或感测放大器来操作。例如,数据读/写块140可以作为写驱动器操作,该写驱动器在编程操作期间将从外部设备提供的数据储存在存储单元阵列110内。另一个例子,数据读/写块140可以作为感测放大器操作,该感测放大器在读取操作期间从存储单元阵列110读出数据。

电压发生器150可以产生用于非易失性存储器件100的内部操作的电压。电压发生器150所产生的电压可以施加给存储单元阵列110的存储单元。例如,在编程操作期间产生的编程电压可以施加给要执行编程操作的存储单元的字线。又例如,在擦除操作期间产生的擦除电压可以施加给要执行擦除操作的存储单元的阱区(well area)。再例如,在读取操作期间产生的读取电压可以施加给要执行读取操作的存储单元的字线。

控制逻辑160可以响应于从外部设备提供的控制信号来控制非易失性存储器件100的一般操作。例如,控制逻辑160可以控制非易失性存储器件100的主操作,诸如读取、写入和擦除操作。

当从外部设备提供用于搜索擦除页的特定命令时,控制逻辑160可以对存储单元阵 列110的编程指示符单元执行读取操作。控制逻辑160可以向外部设备提供编程指示符单元的状态(例如,编程指示符单元是处于擦除状态还是编程状态)。对编程指示符单元的读取操作将在下文详细描述。

图2是说明根据一个实施例的由单电平单元配置的存储块BLKs的电路图。图1所示的非易失性存储器件100的存储单元阵列110可以包括多个存储块。所述多个存储块中的每一个存储块可以与图2所示的存储块BLKs相似。

存储块BLKs可以包括数据单元区DCAs和编程指示符单元区PICAs。

数据单元区DCAs可以包括分别与多个位线BL1s至BLns耦接的多个单元串ST1Ds至STnDs。单元串ST1Ds至STnDs彼此相同,且将在下文代表性地描述一个单元串ST1Ds。

单元串ST1Ds可以包括耦接在位线BL1s与公共源极线CSLs之间的多个数据单元DC1s至DCms以及选择晶体管DSTDs和SSTDs。单元串ST1Ds可以包括与漏极选择线DSLs耦接的漏极选择晶体管DSTDs、分别与字线WL1s至WLms耦接的数据单元DC1s至DCms、以及与源极选择线SSLs耦接的源极选择晶体管SSTDs。

数据单元区DCAs可以储存从外部设备(未示出)提供的数据。尽管未示出,数据单元区DCAs可以包括主区和备用区。从外部设备提供的数据可以储存在主区。备用区可以储存与储存在主区中的数据相关的信息(例如,诸如纠错码的元数据)。

编程指示符单元区PICAs可以包括与位线BLPs耦接的编程指示符单元串STPs。尽管在图2中示出了编程指示符单元区PICAs包括单个编程指示符单元串STPs,但是要理解,编程指示符单元区PICAs可以包括多个编程指示符单元串。

编程指示符单元串STPs可以包括耦接在位线BLPs与公共源极线CSLs之间的多个编程指示符单元PIC1s至PICms以及选择晶体管DSTPs和SSTPs。编程指示符单元串STPs可以包括与漏极选择线DSLs耦接的漏极选择晶体管DSTPs、分别与字线WL1s至WLms耦接的编程指示符单元PIC1s至PICms、以及与源极选择线SSLs耦接的源极选择晶体管SSTPs。

编程指示符单元区PICAs的编程指示符单元PIC1s至PICms中的每个编程指示符单元可以用作储存部件,所述储存部件用于储存表示数据单元区DCAs的相应数据单元是被编程还是被擦除的信息。不同于数据单元区DCAs,编程指示符单元区PICAs是隐藏区且访问受限。

将通过以数据单元区DCAs的第一数据单元组DCG1s(在下文中,称为“第一页”)和与第一数据单元组DCG1s相对应的第一编程指示符单元PIC1s为代表性的实例,来进一步详细描述编程指示符单元区PICAs。

第一页DCG1s的数据单元中的每个数据单元可以储存单个数据比特。这种数据单元称为单电平单元(single level cell,SLC)。在第一页DCG1s的数据单元被编程为单电平单元(single level cells,SLC)的情况下,相应的第一编程指示符单元PIC1s可以被编程。此时,第一编程指示符单元PIC1s可以被编程具有图5所示的编程指示符编程状态PPs的阈值电压。

在第一页DCG1s的与所述第一编程指示符单元PIC1s耦接至相同的字线WL1s的数据单元被编程之前,第一编程指示符单元PIC1s可以被编程。第一编程指示符单元PIC1s可以储存表示相应的第一页DCG1s的数据单元是否被编程的信息。例如,被编程的第一编程指示符单元PIC1s可以储存这样的信息,该信息表示用于对第一页DCG1s的数据单元编程的编程电压被施加一次或更多次。相反地,被擦除的第一编程指示符单元PIC1s可以储存这样的信息,该信息表示根本没有施加编程电压或第一页DCG1s的数据单元被擦除。也就是说,第一编程指示符单元PIC1s可以是指示相应的第一页DCG1s是被编程还是被擦除的指示符单元。

图3是说明图2的存储块中所包括的数据单元的阈值电压分布的图。如图3所示,作为单电平单元(single level cell,SLC)的数据单元可以被擦除为具有擦除状态E的阈值电压,和可以被编程为具有编程状态P的阈值电压。

在读取操作期间,可以给数据单元施加具有擦除状态E与编程状态P之间的电压电平的读取电压Vrd_P。当施加读取电压Vrd_P时,可以将具有擦除状态E的阈值电压的数据单元确定为储存数据“1”的“导通-单元”(on-cell),且可以将具有编程状态P的阈值电压的数据单元确定为储存数据“0”的“关断-单元”(off-cell)。

在编程操作期间,为了确定数据单元是否被正确地编程,可以给数据单元施加具有高于读取电压Vrd_P的电压电平的编程验证电压Vvf_P。当编程验证电压Vvf_P施加时,具有比编程验证电压Vvf_P低的阈值电压的数据单元可以被确定为储存数据“1”的“导通-单元”(例如,未被正确地编程的单元),而具有比编程验证电压Vvf_P高的阈值电压的数据单元可以被确定为储存数据“0”的“关断-单元”(例如,被正确地编程的单元)。

图4是说明在图2的数据单元的编程操作期间施加的编程电压和验证电压的图。为了具有密集的阈值电压分布并保证擦除状态E与编程状态P之间的裕度(margin),可以经由增量步进脉冲编程(incremental step pulse program,ISPP)方案来对数据单元 编程。

根据增量步进脉冲编程方案,可以将编程电压Vpgm_DCs作单个脉冲施加给数据单元,且然后可以施加验证电压Vvf_P来验证数据单元是否正确地被编程。换言之,每次施加编程电压Vpgm_DCs给数据单元时,可以施加验证电压Vvf_P。可以将施加编程电压Vpgm_DCs的操作和施加验证电压Vvf_P的操作配置成单个编程循环(program loop)PL。

在执行编程验证操作之后,当数据单元被确定为没有正确地被编程时,增加一增量△V(即,步进电压或步进脉冲)的编程电压Vpgm_DCs和编程验证电压Vvf_P可以再次被施加给数据单元。即,可以重复编程循环PL直至数据单元被正确编程到期望的阈值电压为止。当即使执行最大编程循环Plmaxs而数据单元也未被正确编程到期望的阈值电压时,编程操作可以以“失败”结束。

图5是说明图2的编程指示符单元的阈值电压分布的图。如图5所示,编程指示符单元可以被擦除为具有擦除状态E的阈值电压,且可以被编程为具有编程指示符编程状态PPs的阈值电压。

在读取操作期间,可以向编程指示符单元施加具有处于擦除状态E与编程指示符编程状态PPs之间的电压电平的读取电压Vrd_PPs。当读取电压Vrd_PPs施加时,具有擦除状态E的阈值电压的编程指示符单元可以被确定为储存数据“1”的“导通-单元”,而具有编程指示符编程状态PPs的阈值电压的编程指示符单元可以被确定为储存数据“0”的“关断-单元”。

图6是说明在图2的编程指示符单元的编程操作期间施加的编程电压的图。

编程指示符单元可以在数据单元的编程操作之前被编程。为了将编程指示符单元编程所需的时间最小化,可以通过使用简化编程方案替代ISSP方案来对编程指示符单元编程。

根据简化编程方案,还可以忽略编程验证操作。也就是说,根据简化编程方案,可以给编程指示符单元仅施加一次编程电压Vpgm_PICs。

可以向编程指示符单元施加具有高电压电平的编程电压Vpgm_PICs,使得即使编程电压Vpgm_PICs仅仅被施加一次,编程指示符单元的阈值电压也高于用于读取编程指示符单元的读取电压Vrd_PPs。例如,用具有与在图4所示的数据单元的编程操作期间施加给数据单元的最大编程循环PLmaxs的编程电压Vpgm_DCs相同的电压电平的编程电压Vpgm_PICs,可以执行对编程验证单元的编程操作。

图7是说明根据一个实施例的由多电平单元配置的存储块BLKm的电路图。图1所示的非易失性存储器件100的存储单元阵列110可以包括多个存储块。所述多个存储块中的每个存储块可以与图7所示的存储块BLKm相同。

存储块BLKm可以包括数据单元区DCAm、标志单元区FCA、以及编程指示符单元区PICAm。

数据单元区DCAm可以包括分别与多个位线BL1m至BLnm耦接的多个单元串ST1Dm至STnDm。单元串ST1Dm至STnDm彼此相同,且下面将代表性地描述一个单元串ST1Dm。

单元串ST1Dm可以包括耦接在位线BL1m与公共源极线CSLm之间的多个数据单元DC1m至DCmm以及选择晶体管DSTDm和SSTDm。单元串ST1Dm可以包括与漏极选择线DSLm耦接的漏极选择晶体管DSTDm、分别与字线WL1m至WLmm耦接的数据单元DC1m至DCmm、以及与源极选择线SSLm耦接的源极选择晶体管SSTDm。

数据单元区DCAm可以储存从外部设备(未示出)提供的数据。尽管未示出,数据单元区DCAm可以包括主区和备用区。从外部设备提供的数据可以储存在主区中。备用区可以储存与储存在主区中的数据相关的信息(例如,诸如纠错码的元数据)。

标志单元区FCA可以包括分别与多个位线BL1F至BLpF耦接的多个标志单元串ST1F至STpF。标志单元串ST1F至STpF彼此相同,且下面将代表性地描述一个标志单元串ST1F。

标志单元串ST1F可以包括耦接在位线BL1F与公共源极线CSLm之间的多个标志单元FC1至FCm和选择晶体管DSTF和SSTF。标志单元串ST1F可以包括与漏极选择线DSLm耦接的漏极选择晶体管DSTF、分别与字线WL1m至WLmm耦接的标志单元FC1至FCm、以及与源极选择线SSLm耦接的源极选择晶体管SSTF。

标志单元区FCA的标志单元可以用作储存部件,所述储存部件用于储存这样的信息,该信息表示上比特数据是否被编程在相应的数据单元区DCAm的任何一个数据单元中。不同于数据单元区DCAm,标志单元区FCA是隐藏区且访问受限。

通过以数据单元区DCAm的第一数据单元组DCG1m和与第一数据单元组DCG1m相对应的第一标志单元组FCG1为代表性示例来进一步详细描述标志单元区FCA。

第一数据单元组DCG1m的每个数据单元可以储存多个数据比特。这种数据单元称为多电平单元(multi-level cell,MLC)。例如,如图8所示,每个2比特多电平单元(MLC) 可以被擦除为具有擦除状态E的阈值电压,且可以根据多比特数据而被编程为具有多个编程状态P1、P2和P3之中的任何一个编程状态的阈值电压。

在第一数据单元组DCG1m的每个数据单元储存2比特数据的情况下,上比特或最高有效位(MSB)数据以及下比特数据或最低有效位(LSB)数据可以被编程在每个数据单元中。当MSB数据被编程在第一数据单元组DCG1m的任何一个数据单元中时,相应的第一标志单元组FCG1的所有标志单元可以都被编程。此时,第一标志单元组FCG1的每个标志单元可以被编程为具有如图9所示的标志编程状态PF的阈值电压。

针对第一数据单元组DCG1m的MSB读取操作可以根据第一标志单元组FCG1是否被编程而有所不同。例如,当确定第一标志单元组FCG1的标志单元被编程时,针对第一数据单元组DCG1m的数据单元的MSB读取操作可以正常地执行。相反地,当确定第一标志单元组FCG1的标志单元未被编程时,针对第一数据单元组DCG1m的数据单元的MSB读取操作可以不执行。

储存在第一标志单元组FCG1的每个标志单元中的数据可以因为各种原因而改变或破坏。因此,可以经由纠错来读取第一标志单元组FCG1的标志单元。如此,可以使用多数检查方法。根据多数检查方法,尽管不同的数据储存在第一标志单元组FCG1的标志单元中,可以确定所储存的数据中的大多数为储存在第一标志单元组FCG1中的代表性数据。

编程指示符单元区PICAm可以包括分别与多个位线BL1Pm至BLqPm耦接的多个编程指示符单元串ST1Pm至STqPm。编程指示符单元串ST1Pm至STqPm彼此相同,且为了便于解释,下面将代表性地描述一个编程指示符单元串ST1Pm。

编程指示符单元串ST1Pm可以包括耦接在位线BL1Pm与公共源极线CSLm之间的多个编程指示符单元PIC1m至PICmm以及选择晶体管DSTPm和SSTPm。编程指示符单元串ST1Pm可以包括与漏极选择线DSLm耦接的漏极选择晶体管DSTPm、分别与字线WL1m至WLmm耦接的编程指示符单元PIC1m至PICmm以及与源极选择线SSLm耦接的源极选择晶体管SSTPm。

编程指示符单元区PICAm的编程指示符单元PIC1m至PICmm可以用作储存部件来用于储存这样的信息:该信息表示数据单元区DCAm的数据单元是被编程还是被擦除。不同于数据单元区DCAm,编程指示符单元区PICAm是隐藏区且访问受限。

通过以数据单元区DCAm的第一数据单元组DCG1m和与第一数据单元组DCG1m相对应的第一编程指示符单元组PICG1m为代表性示例,来进一步详细描述编程指示符 单元区PICAm。

第一数据单元组DCG1m的每个数据单元可以是多电平单元(MLC)。在第一数据单元组DCG1m的数据单元被编程为MLC的情况下,相应的第一编程指示符单元组PICG1m可以被编程。此时,第一编程指示符单元组PICG1m可以被编程为具有如图11所示的编程指示符编程状态PPm的阈值电压。

在第一数据单元组DCG1m的与第一编程指示符单元组PICG1m耦接至相同的字线WL1m的数据单元被编程之前,第一编程指示符单元组PICG1m的编程指示符单元可以被编程。换言之,第一编程指示符单元组PICG1m的编程指示符单元可以在LSB数据或MSB数据储存到第一数据单元组DCG1m的数据单元之前被编程。

第一编程指示符单元组PICG1m的编程指示符单元可以储存这样的信息:该信息表示相应的第一数据单元组DCG1m的数据单元是否被编程。例如,第一编程指示符单元组PICG1m的被编程的编程指示符单元可以储存这样的信息:该信息表示用于对相应的第一数据单元组DCG1m的数据单元编程的编程电压被施加一次或更多次。相反地,第一编程指示符单元组PICG1m的被擦除的编程指示符单元可以储存这样的信息:该信息表示根本未施加编程电压或者第一数据单元组DCG1m的数据单元被擦除。也就是说,第一编程指示符单元组PICG1m的编程指示符单元可以是这样的指示符单元:该指示符单元指示相应的第一数据单元组DCG1m是被编程还是被擦除。

储存在第一编程指示符单元组PICG1m的每个编程指示符单元中的数据可能会因为各种原因而改变或破坏。因此,可以经由纠错来读取第一编程指示符单元组PICG1m的编程指示符单元。如此,可以使用多数检查方法。根据多数检查方法,尽管不同的数据储存在第一编程指示符单元组PICG1m的编程指示符单元中,也可以将所储存的数据中的大多数确定为储存在第一编程指示符单元组PICG1m中的代表性数据。

图8是说明图7的存储块中所包括的数据单元的阈值电压分布的图。如图8所示,2比特MLC型数据可以被擦除为具有擦除状态E的阈值电压,且可以被编程为具有多个编程状态P1、P2和P3之中的任何一种状态的阈值电压。

在读取操作期间,可以向数据单元施加第一读取电压Vrd_P1、第二读取电压Vrd_P2和第三读取电压Vrd_P3中的任何一个,所述第一读取电压Vrd_P1具有处在擦除状态E与第一编程状态P1之间的电压电平,所述第二读取电压Vrd_P2具有处在第一编程状态P1与第二编程状态P2之间的电压电平,所述第三读取电压Vrd_P3具有处在第二编程状态P2与第三编程状态P3之间的电压电平。

当施加第二读取电压Vrd_P2时,具有擦除状态E和第一编程状态P1的阈值电压的数据单元可以被确定为储存LSB数据“1”的“导通-单元”,且具有第二编程状态P2和第三编程状态P3的阈值电压的数据单元可以被确定为储存LSB数据“0”的“关断-单元”。

当施加第一读取电压Vrd_P1时,具有擦除状态E的阈值电压的数据单元可以被确定为储存MSB数据“1”的“导通-单元”,且具有第一编程状态P1的阈值电压的数据单元可以被确定为储存MSB数据“0”的“关断-单元”。

当施加第三读取电压Vrd_P3时,具有第二编程状态P2的阈值电压的数据单元可以被确定为储存MSB数据“0”的“导通-单元”,且具有第三编程状态P3的阈值电压的数据单元可以被确定为储存MSB数据“1”的“关断-单元”。

在编程操作期间,为了确定数据单元是否正确被编程,可以向数据单元施加电压电平分别高于读取电压Vrd_P1、Vrd_P2和Vrd_P3的编程验证电压Vvf_P1、Vvf_P2和Vvf_P3。

当向应该被编程到第一编程状态P1的数据单元施加编程验证电压Vvf_P1时,具有低于编程验证电压Vvf_P1的阈值电压的数据单元可以被确定为储存数据“1”的“导通-单元”(例如,未被正确编程的单元),且具有高于编程验证电压Vvf_P1的阈值电压的数据单元可以被确定为储存数据“0”的“关断-单元”(例如,被正确编程的单元)。

当向应该被编程到第二编程状态P2的数据单元施加编程验证电压Vvf_P2时,具有低于编程验证电压Vvf_P2的阈值电压的数据单元可以被确定为储存数据“1”的“导通-单元”(例如,未被正确编程的单元),且具有高于编程验证电压Vvf_P2的阈值电压的数据单元可以被确定为储存数据“0”的“关断-单元”(例如,被正确编程的单元)。

当向应该被编程到第三编程状态P3的数据单元施加编程验证电压Vvf_P3时,具有低于编程验证电压Vvf_P3的阈值电压的数据单元可以被确定为储存数据“1”的“导通-单元”(例如,未被正确编程的单元),且具有高于编程验证电压Vvf_P3的阈值电压的数据单元可以被确定为储存数据“0”的“关断-单元”(例如,被正确编程的单元)。

图9是说明图7的标志单元的阈值电压分布的图。如图9所示,标志单元可以被擦除为具有擦除状态E的阈值电压,且可以被编程为具有标志编程状态PF的阈值电压。

在读取操作期间,可以向标志单元施加具有处于擦除状态E与标志编程状态PF之间的电压电平的读取电压Vrd_PF。当施加读取电压Vrd_PF时,具有擦除状态E的阈值电压的标志单元可以被确定为储存数据“1”的“导通-单元”,且具有标志编程状态PF 的阈值电压的标志单元可以被确定为储存数据“0”的“关断-单元”。

在编程操作期间,为了确定标志单元是否被正确编程,可以向标志单元施加具有高于读取电压Vrd_PF的电压电平的编程验证电压Vvf_PF。当施加编程验证电压Vvf_PF时,具有低于编程验证电压Vvf_PF的阈值电压的标志单元可以被确定为储存数据“1”的“导通-单元”(例如,未被正确编程的单元),且具有高于编程验证电压Vvf_PF的阈值电压的标志单元可以被确定为储存数据“0”的“关断-单元”(例如,被正确地编程的单元)。

可以在针对相应的数据单元的编程操作期间对标志单元执行编程操作。进一步地,可以在针对相应的数据单元的编程操作完成之前完成对标志单元的编程操作。

图10是说明在图7的数据单元和标志单元的编程操作期间施加的编程电压和验证电压的图。为了具有密集的阈值电压分布并保证擦除状态E与编程状态P1、P2、P3和PF之间的裕度,可以经由ISPP方案来对数据单元和标志单元编程。

根据增量步进脉冲编程方案,可以将编程电压Vpgm_DCm/FC作单个脉冲施加给数据单元和标志单元,且然后可以施加验证电压Vvf_P1、Vvf_P2、Vvf_P3和Vvf_PF以验证数据单元和标志单元是否被正确地编程。换言之,每次向数据单元和标志单元施加编程电压Vpgm_DCm/FC时可以施加验证电压Vvf_P1、Vvf_P2、Vvf_P3和Vvf_PF。施加编程电压Vpgm_DCm/FC的操作和施加验证电压Vvf_P1、Vvf_P2、Vvf_P3和Vvf_PF的操作可以配置为单个编程循环PL。

在执行编程验证操作之后,当数据单元和标志单元确定为未被正确编程时,可以给数据单元和标志单元再次施加被增加了增量△V(即步进电压或步进脉冲)的编程电压Vpgm_DCm/FC和编程验证电压Vvf_P1、Vvf_P2、Vvf_P3和Vvf_PF。即,可以重复编程循环PL直到数据单元和标志单元被正确地编程到期望的阈值电压为止。当即使执行了最大编程循环Plmaxm而数据单元和标志单元仍未被编程到期望的阈值电压时,编程操作可以以“失败”结束。

图11是说明图7的编程指示符单元的阈值电压分布的图。如图11所示,编程指示符单元可以被擦除为具有擦除状态E的阈值电压,且可以被编程为具有编程指示符编程状态PPm的阈值电压。

在读取操作期间,可以向编程指示符单元施加具有处在擦除状态E与编程指示符编程状态PPm之间的电压电平的读取电压Vrd_PPm。当施加读取电压Vrd_PPm时,具有擦除状态E的阈值电压的编程指示符单元可以被确定为储存数据“1”的“导通-单元”, 且具有编程指示符编程状态PPm的阈值电压的编程指示符单元可以确定为储存数据“0”的“关断-单元”。

图12是说明在图7的存储块中所包括的编程指示符单元的编程操作期间施加的编程电压的图。

可以在数据单元的编程操作之前对编程指示符单元编程。为了最小化编程指示符单元所需的时间,可以通过使用简化编程方案代替ISPP方案来对编程指示符单元编程。

根据简化编程方案,还可以省略编程验证操作。也就是说,根据简化编程方案,将编程电压Vpgm_PICm作单个脉冲施加给编程指示符单元。

即使编程电压Vpgm_PICm被施加一次,可以向编程指示符单元施加具有高电压电平的编程电压Vpgm_PICm,使得编程指示符单元的阈值电压高于用于读取编程指示符单元的读取电压Vrd_PPm。例如,编程指示符单元的编程操作可以用这样的编程电压Vpgm_PICm来执行:该编程电压Vpgm_PICm具有与在图10所示的数据单元的编程操作期间施加给数据单元的最大编程循环PLmaxs的编程电压Vpgm_DCm/FC相同的电压电平。

图13是说明根据一个实施例的非易失性存储器件的编程操作的流程图。在描述图13时,假设从外部设备(例如,控制器)向非易失性存储器件100提供编程命令和执行编程命令所针对的地址。

可以通过控制逻辑160和由控制逻辑160控制的各个部件(例如,行解码器120、列解码器130、数据读/写块140以及电压发生器150)来执行非易失性存储器件100的编程操作。

在步骤S110,可以向与提供的地址相对应的编程指示符单元施加编程电压(例如,Vpgm_PICs或Vpgm_PICm)。如上所述,根据简化编程方案,可以仅施加一次编程电压给编程指示符单元。

在步骤S120,可以向所提供的地址的数据单元施加编程电压(例如Vpgm_DCs或Vpgm_DCm/FC)。

在步骤S130,可以向数据单元施加编程验证电压(例如,Vvf_P或者Vvf_P1、Vvf_P2、Vvf_P3和Vvf_PF中的一个)。

在步骤S140,可以确定被施加验证电压的数据单元是否被正确编程。在数据单元被 正确编程的情况下,编程操作可以正常结束。相反地,在数据单元未被正确编程的情况下,进程可以进行到步骤S150。

在步骤S150,可以确定用于对数据单元编程的编程循环是否为最大循环(例如,PLmaxs)。在编程循环是最大循环的情况下,编程操作可以以失败结束。相反地,在编程循环不是最大循环的情况下,进程可以进行到步骤S160。

在步骤S160,可以将用于对数据单元编程的编程电压增加一增量△V(即,步进电压或步进脉冲)。然后,进程可以进行到步骤S120,使得向数据单元施加增加的编程电压。

以此方式,非易失性存储器件100的编程操作可以包括与所提供的地址相对应的编程指示符单元的编程操作(即步骤S110)、以及所提供的地址的数据单元的编程操作(即,步骤S120至S160)。

图14是说明根据一个实施例的非易失性存储器件100的编程指示符单元的读取操作的流程图。在描述图14时,假设根据从外部设备(例如控制器)提供的搜索命令和地址来控制非易失性存储器件100。可以提供搜索命令来搜索擦除页。响应于搜索命令,非易失性存储器件100可以对与搜索命令一起被提供的地址所对应的编程指示符单元执行读取操作。

可以由控制逻辑160和受控制逻辑160控制的各个部件(例如,行解码器120、列解码器130、数据读/写块140以及电压发生器150)来对非易失性存储器件100的编程指示符单元执行读取操作。

在步骤S210,可以向与所提供的地址相对应的编程指示符单元施加读取电压(Vrd_P或Vrd_PPm)。

在步骤S220,可以确定被施加读取电压的编程指示符单元的状态。也就是说,可以确定编程指示符单元是储存数据“1”的“导通-单元”还是储存数据“0”的“关断-单元”。

在步骤S230,可以向提供搜索命令的控制器提供编程指示符单元的状态。换言之,根据步骤S220的确定,可以向控制器提供这样的信息;该信息表示所提供的地址的数据单元是编程状态(即,向所提供的地址的数据单元施加一次或更多次编程电压)还是擦除状态。

图15是说明根据一个实施例的数据储存设备的框图。数据储存设备300可以储存 由主机设备(未示出)诸如移动电话、MP3播放器、便携式计算机、台式计算机、游戏机、TV、车载式娱乐信息节目系统等来访问的数据。数据储存设备300也可以称为存储系统。

可以根据与主机设备电耦接的接口的协议来将数据储存设备300制造成各种储存设备中的任何一种。例如,数据储存设备300可以配置成诸如以下储存设备的各种储存设备中的一种:固态驱动器,MMC、eMMC、RS-MMC和微MMC形式的多媒体卡,SD、迷你SD和微SD形式的安全数字卡,通用串行总线(USB)储存设备,通用快闪储存(UFS)设备、个人计算机存储卡国际协会(Personal Computer Memory Card International Association,PCMCIA)卡型储存设备,外围部件互联(peripheral component interconnection,PCI)卡型储存设备,高速PCI(PCI-E)卡型储存设备,紧凑型快闪(CF)卡,智能多媒体卡,存储棒等。

数据储存设备300可以制造成各种封装类型中的任何一种。例如,数据储存设备300可以制造成以下各种封装类型中的任何一种,诸如:层叠封装(package on package,PoP)、系统封装(system in package,SIP)、芯片上系统(system-on-chip,SOC)、多芯片封装(multi chip package,MCP)、板上芯片(chip on board,COB)、晶圆级制造封装(wafer-level fabricated package,WFP)和晶圆级层叠封装(wafer-level stack package,WSP)。

数据储存设备300可以包括非易失性存储器件100。非易失性存储器件100可以作为数据储存设备300的储存媒介操作。非易失性存储器件100可以根据存储单元而由以下各种类型的非易失性存储器件中的任何一种来配置,诸如:快闪存储器件、使用铁电电容器的铁电随机存取存储器(ferroelectric random access memory,FRAM)、使用隧穿磁阻(tunneling magneto-resistive,TMR)层的磁随机存取存储器(magnetic random access memory,MRAM)、使用硫族化物合金的相变随机存取存储器(phase change random access memory,PRAM)、以及使用过渡金属氧化物的阻变随机存取存储器(resistive random access memory,RERAM)。

数据储存设备300可以包括控制器200。控制器200可以包括控制单元210和随机存取存储器230。

控制单元210可以对控制器200的一般操作进行控制。控制单元210可以分析和处理从主机设备输入的信号或请求。为此目的,控制单元210可以对加载在随机存取存储器230上的固件或软件进行解码和驱动。控制单元210可以采用硬件的形式或硬件与软件结合的形式来实现。

随机存取存储器230可以储存要由控制单元210驱动的固件或软件。而且,随机存取存储器230可以储存用于驱动固件或软件所需的数据,例如元数据。也就是说,随机存取存储器230可以作为控制单元210的工作存储器操作。随机存取存储器230可以暂时储存要从主机设备传送到非易失性存储器件100或要从非易失性存储器件100传送到主机设备的数据。换言之,随机存取存储器230可以作为数据缓冲存储器或数据高速缓冲存储器操作。

图16是说明在图15所示的随机存取存储器230中要被驱动的固件或软件的图。

在非易失性存储器件100由快闪存储器件配置的情况下,控制单元210可通过以存储块为单位来控制擦除操作,并且通过以页为单位来控制读取或编程操作。进一步地,由于非易失性存储器件100不可能执行覆写(overwrite)操作,控制单元210可以事先执行擦除操作,以便在数据所储存于的存储单元中储存新数据。

使用快闪存储器件作为数据储存媒介的数据储存设备300的控制单元210可以驱动被称为快闪转换层(flash translation layer,FTL)的固件或软件来控制对快闪存储器件的操作,并且提供与主机设备的设备兼容性。经过驱动这种FTL,数据储存设备300可以由主机设备识别为诸如硬盘的一般数据储存设备。

加载在随机存取存储器230上的FTL可以由用于执行各种功能的模块和用于模块的驱动所需的元数据来配置。例如,当参见图16时,FTL可以包括地址映射表MAP、损耗平衡(wear-leveling)模块WL、无用数据收集(garbage collection)模块GC、坏块管理模块BB以及擦除页搜索模块EPS。

在主机设备访问数据储存设备300的情况下(例如,请求读取操作或写入操作),主机设备可以向数据储存设备300提供逻辑地址。FTL可以将提供的逻辑地址转换为非易失性存储器件100的物理地址,并通过参照被转变的物理地址来执行请求的操作。为了这种地址转换操作,可以在FTL中包括地址转换数据(例如,地址映射表MAP)。

损耗平衡模块WL可以管理非易失性存储器件100的存储块的损耗程度。非易失性存储器件100的存储单元会因编程和擦除操作而老化。老化的存储单元或用坏的存储单元会导致失效(例如,物理缺陷)。损耗平衡模块WL可以以这种以致平衡的方式管理各个存储块的编程-擦除计数,以便防止某个存储块早于其它存储块用坏。

无用数据收集模块GC可以管理储存有碎片数据的存储块。在非易失性存储器件100如上所述由快闪存储器件配置的情况下,非易失性存储器件100不可能执行覆写操作,且擦除的单位会大于编程的单位。针对此原因,当储存空间达到极限时,非易失性存储 器件100会需要将分散在物理上不同位置的有效数据收集到一个地方的操作。无用数据收集模块GC可以执行将由于执行多次写入操作和多次擦除操作而成碎片的有效数据收集到收集区的操作。

坏块管理模块BB可以对非易失性存储器件100的存储块之中已出现失效的存储块进行管理。如上所述,失效(例如物理缺陷)可能会发生在用坏的存储单元中。储存在失效的存储单元中的数据可能不会被正常地读出。另外,数据可能不会正常地储存在失效的存储单元中。坏块管理模块BB可以管理包括失效的存储单元的存储块以便不使用该存储块。

擦除页搜索模块EPS可以执行用于从非易失性存储器件100的页之中搜索擦除页的操作。擦除页搜索模块EPS可以向非易失性存储器件100提供用于搜索擦除页的特定命令和响应于该特定命令而要被执行搜索操作的地址。例如,擦除页搜索模块EPS可以向非易失性存储器件100提供因突然断电而疑似在编程操作期间中断的页的地址和用于命令提供与所述页的地址相对应的编程指示符单元的状态信息的特定命令。

图17是说明响应于来自控制器的请求的非易失性存储器件100的操作的流程图。下面将参照图17描述在控制器200的擦除页搜索模块EPS的控制下执行的非易失性存储器件100的编程指示符单元读取操作。

在步骤S310,控制器200可以向非易失性存储器件100提供用于搜索擦除页的搜索命令和响应于搜索命令而要被执行搜索操作的页的地址。

在步骤S320,非易失性存储器件100可以对与所提供的地址相对应的编程指示符单元执行读取操作,如参照图14描述的。

在步骤S330,非易失性存储器件100可以向控制器200提供编程指示符单元的状态。

在步骤S340,控制器200可以基于从非易失性存储器件100提供的编程指示符单元的状态信息来确定与所提供的地址相对应的页实质上是被擦除还是被编程。

图18是说明根据一个实施例的包括数据储存设备的数据处理系统的框图。

数据处理系统1000可以包括主机设备1100和数据储存设备1200。数据储存设备1200可以包括控制器1210和非易失性存储器件1220。数据储存设备1200可以通过与诸如移动电话、MP3播放器、便携式计算机、台式计算机、游戏机、电视、车载娱乐信息节目系统等的主机设备1100耦接来使用。

控制器1210可以包括主机接口单元1211、控制单元1212、存储器接口单元1213、随机存取存储器1214以及纠错码(error correction code,ECC)单元1215。控制器1210可以参照图16和图17执行上述的擦除页搜索操作。

控制单元1212可以响应于来自主机设备1100的请求来对控制器1210的一般操作进行控制。控制单元1212可以驱动用于控制非易失性存储器件1220的固件或软件。

随机存取存储器1214可以用作控制单元1212的工作存储器。随机存取存储器1214可以用作暂时储存从非易失性存储器件1220读取的数据或从主机设备1100提供的数据的缓冲存储器。

主机接口单元1211可以使主机设备1100与控制器1210连接。例如,主机接口单元1211可以经由以下各种接口协议中的一种来与主机设备1100通信,诸如:通用串行总线(universal serial bus,USB)协议、通用快闪储存(universal flash storage,UFS)协议、多媒体卡(multimedia card,MMC)协议、外围部件互联(peripheral component interconnection,PCI)协议、高速PCI(PCI-E)协议、并行高级技术附件(parallel advanced technology attachment,PATA)协议、串行高级技术附件(serial advanced technology attachment,SATA)协议、小型计算机系统接口(small computer system interface,SCSI)协议、以及串行附加SCSI(serial attached SCSI,SAS)协议。

存储器接口单元1213可以使控制器1210与非易失性存储器件1220连接。存储器接口单元1213可以向非易失性存储器件1220提供命令和地址。另外,存储器接口单元1213可以与非易失性存储器件1220交换数据。

纠错码单元1215可以检测从非易失性存储器件1220读取的数据的错误。此外,纠错码单元1215可以被配置成当检测到的错误在可纠正的范围之内时将检测到的错误纠正。

非易失性存储器件1220可以用作数据储存设备1200的储存媒介。非易失性存储器件1220可以包括多个非易失性存储器芯片(或裸片)NVM_1至NVM_k。非易失性存储器芯片(或裸片)NVM_1至NVM_k每个可以包括上面参照图1至14描述的编程指示符单元,并且可以对编程指示符单元执行编程和读取操作。

控制器1210和非易失性存储器件1220可以制造成各种数据储存设备中的任何一种。例如,控制器1210和非易失性存储器件1220可以集成到一个半导体器件内且可以制造成以下的任何一种:MMC、eMMC、RS-MMC以及微MMC形式的多媒体卡,SD、迷你SD和微SD形式的安全数字卡,通用串行总线(universal serial bus,USB)储存 设备,通用快闪储存(universal flash storage,UFS)设备,个人计算机存储卡国际协会(Personal Computer Memory Card International Association,PCMCIA)卡,小型闪存(compact flash,CF)卡,智能多媒体卡(smart media card),存储棒(memory stick)等。

图19是说明根据一个实施例的包括固态驱动器的数据处理系统的框图。

数据处理系统2000可以包括主机设备2100和固态驱动器(SSD)2200。

SSD 2200可以包括SSD控制器2210、缓冲存储器件2220、非易失性存储器件2231至223n、电源2240、信号连接器2250以及电源连接器2260。

SSD控制器2210可以响应于来自主机设备2100的请求来访问非易失性存储器件2231至223n。SSD控制器2210可以执行上面参照图16和图17描述的擦除页搜索操作。

缓冲存储器件2220可以暂时储存要储存在非易失性存储器件2231至223n中的数据。另外,缓冲存储器件2220可以暂时储存从非易失性存储器件2231至223n读取的数据。暂时储存在缓冲存储器件2220中的数据可以在SSD控制器2210的控制之下传送给主机设备2100或非易失性存储器件2231至223n。

非易失性存储器件2231至223n可以用作SSD 2200的储存媒介。非易失性存储器件2231至223n每个可以包括上面参照图1至14描述的编程指示符单元,并且可以对编程指示符单元执行编程和读取操作。

非易失性存储器件2231至223n可以分别经由多个信道CH1至CHn与SSD控制器2210耦接。一个或更多个非易失性存储器件可以与一个信道耦接。与一个信道耦接的非易失性存储器件可以与相同的信号总线和数据总线耦接。

电源2240可以将经由电源连接器2260输入的电能PWR提供到SSD 2200的内部。电源2240可以包括辅助电源2241。辅助电源2241可以供应电能以便允许SSD 2200在发生突然断电时正常终止。辅助电源2241可以包括能够被电能PWR充电的超级电容器。

SSD控制器2210可以经由信号连接器2250与主机设备2100交换信号SGL。信号SGL可以包括命令、地址、数据等。信号连接器2250可以根据主机设备2100与SSD 2200之间的接口方案来由诸如以下协议的连接器来配置:并行高级技术附件(parallel advanced technology attachment,PATA)、串行高级技术附件(serial advanced technology attachment,SATA)、小型计算机系统接口(small computer system interface,SCSI)、串行附加SCSI(serial attached SCSI,SAS)、外围部件互联(peripheral component interconnection,PCI)以及高速PCI(PCI-E)协议。

图20是说明图19所示的SSD控制器的框图。参见图19,SSD控制器2210可以包括存储器接口单元2211、主机接口单元2212、纠错码(error correction code,ECC)单元2213、控制单元2214以及随机存取存储器2215。

存储器接口单元2211可以向非易失性存储器件2231至223n提供诸如命令和地址的控制信号。另外,存储器接口单元2211可以与非易失性存储器件2231至223n交换数据。存储器接口单元2211可以在控制单元2214的控制下将从缓冲存储器件2220传送来的数据分散到各个信道CH1至CHn。另外,存储器接口单元2211可以在控制单元2214的控制下将从非易失性存储器件2231至223n读取的数据传送到缓冲存储器件2220。

主机接口单元2212可以根据主机设备2100的协议而提供与SSD 2200的接口。例如,主机接口单元2212可以经由以下协议中的一种来与主机设备2100通信:并行高级技术附件(parallel advanced technology attachment,PATA)、串行高级技术附件(serial advanced technology attachment,SATA)、小型计算机系统接口(small computer system interface,SCSI)、串行附加SCSI(serial attached SCSI,SAS)、外围部件互联(peripheral component interconnection,PCI)以及高速PCI(PCI express,PCI-E)协议。此外,主机接口单元2212可以执行支持主机设备2100将SSD 2200识别为硬盘驱动器(hard disk drive,HDD)的磁盘仿真功能。

ECC单元2213可以基于传送给非易失性存储器件2231至223n的数据来产生奇偶校验位(parity bits)。产生的奇偶校验位可以与数据一起储存在非易失性存储器件2231至223n中。ECC单元2213可以检测从非易失性存储器件2231至223n读取的数据的错误。当检测到的错误在可纠正的范围之内时,ECC单元2213可以纠正检测到的错误。

控制单元2214可以分析和处理从主机设备2100输入的信号SGL。控制单元2214可以根据用于驱动SSD 2200的固件或软件来控制缓冲存储器件2220和非易失性存储器件2231至223n的操作。

随机存取存储器2215可用作用于驱动固件或软件的工作存储器。

图21是说明根据一个实施例的安装有数据储存设备的计算机系统的框图。参见图21,计算机系统3000包括与系统总线3700电耦接的网络适配器3100、中央处理单元3200、数据储存设备3300、RAM 3400、ROM 3500以及用户接口3600。数据储存设备3300可以由图15所示的数据储存设备300、图18所示的数据储存设备1200或图19所示的SSD 2200来构造。

网络适配器3100可以提供计算机系统3000与外部网络之间的接口。中央处理单元3200执行用于驱动应用程序或驻留在RAM 3400上的操作系统的一般操作。

数据储存设备3300可以储存计算机系统3000中所需的一般数据。例如,可以在数据储存设备3300储存用于驱动计算机系统3000的操作系统、应用程序、各种程序模块、程序数据和用户数据。

RAM 3400可以用作计算机系统3000的工作存储器。在启动时,可以在RAM 3400上加载从数据储存设备3300读取的操作系统、应用程序、各种程序模块以及用于驱动程序所需的程序数据。在操作系统被驱动之前激活的BIOS(基本输入/输出系统)可以储存在ROM 3500中。计算机系统3000与用户之间的信息交换可以经由用户接口3600来实现。

尽管上文已经描述了一些实施例,但是本领域技术人员将会理解,描述的实施例仅仅是示例。因此,不应基于描述的实施例来限定本文描述的非易失性存储器件、包括非易失性存储器件的数据储存设备及其操作方法。

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