存储器系统及其操作方法与流程

文档序号:19179112发布日期:2019-11-20 00:49阅读:509来源:国知局
存储器系统及其操作方法与流程

相关申请的交叉引用

本申请要求于2018年5月9日提交的申请号为10-2018-0052919的韩国专利申请的优先权,其全部公开内容通过引用整体并入本文。

本发明的各个示例性实施例总体涉及一种存储器系统。特别地,实施例涉及一种处理关于存储器装置的数据的存储器系统及其操作方法。



背景技术:

计算机环境范例已经转变成使计算机系统可随时随地使用的普适计算。因此,诸如移动电话、数码相机和笔记本电脑/膝上型计算机的便携式电子装置的使用已经迅速增加。这些便携式电子装置通常使用具有一个或多个存储器装置的存储器系统来存储数据。存储器系统可用作便携式电子装置的主存储装置或辅助存储装置。

因为这种存储器系统没有移动部件,所以它们可提供优良的稳定性、耐用性、高信息存取速度以及低功耗。具有这种优点的存储器系统的示例包括通用串行总线(usb)存储器装置、具有各种接口的存储卡以及固态驱动器(ssd)。



技术实现要素:

各个实施例涉及一种存储器系统及其操作方法,其能够使存储器系统的复杂性和性能劣化最小化并且使存储器装置的使用效率最大化,从而快速且稳定地处理关于存储器装置的数据。

在实施例中,一种存储器系统可包括:存储器装置,包括多个存储块,每一个存储块具有多个页面;以及控制器,适于控制存储器装置以在页面中执行编程操作,存储器装置可检查被编程页面的编程电压分布,并且可检查被编程页面中的失效位,并且控制器可确认编程操作中的部分编程成功,并且可在存储块中对对应于部分编程成功的第一数据执行复制操作。

存储器装置可检查各个编程电压分布的失效位,可对各个编程电压分布的失效位的失效位数量进行计数,并且可根据失效位数量来确认部分编程成功。

存储器装置可对各个编程电压分布组的各个编程电压分布的失效位数量进行求和,并且可将求和失效位数量小于阈值的编程电压分布组确认为对应于部分编程成功的部分成功编程电压分布组。

存储器装置可通过将第一编程电压分布组的第一求和失效位数量、第二编程电压分布组的第二求和失效位数量和第三编程电压分布组的第三求和失效位数量进行求和,来对各个编程电压分布组的各个编程电压分布的失效位数量进行求和。

第一编程电压分布组可包括与存储块中的最低有效位(lsb)页面相对应的编程电压分布,第二编程电压分布组可包括与存储块中的中央有效位(csb)页面相对应的编程电压分布,并且第三编程电压分布组可包括与存储块中的最高有效位(msb)页面相对应的编程电压分布。

阈值可表示控制器的最大错误校正能力。

控制器可从存储器装置接收指示部分编程成功的状态信号,可对应于该状态信号确认编程操作中的部分编程成功,可识别对应于部分成功编程电压分布组的第一存储块的第一页面,并且读取存储在第一页面中的第一数据并对存储在第一页面中的第一数据进行错误校正。

控制器可控制存储器装置以将被错误校正的第一数据存储在第一存储块的第二页面和第二存储块的第一页面中的至少一个中。

第一数据可以是存储在第一页面中的整个数据和存储在第一页面之中包括失效位的页面中的数据中的一个。

存储器装置可检查编程电压分布之中的最高电平编程电压分布,并且当最高电平编程电压分布是通过(pass)时,可检查剩余编程电压分布中的失效位。

存储器系统可进一步包括:检查部件,适于通过电流感测电路(csc)检查存储块中的编程电压分布,并将指示部分编程成功的状态信号输出到控制器,并且可包括:操作检查部件,包括电流感测电路,并适于检查编程电压分布;计数器,适于对编程电压分布中的失效位进行计数;求和部件,适于对所计数的失效位的失效位数量进行求和;比较器,适于将失效位数量的求和失效位数量与阈值进行比较;以及存储装置,适于存储失效位数量、求和失效位数量和阈值。

在实施例中,一种操作存储器系统的方法可包括:对包括多个存储块的存储器装置执行编程操作,每一个该存储块具有多个页面;检查被编程页面的编程电压分布;检查被编程页面中的失效位;对应于编程操作中的失效位,确认部分编程成功;并且在存储块中对对应于部分编程成功的第一数据执行复制操作。

检查失效位可包括:检查各个编程电压分布的失效位;对各个编程电压分布的失效位的失效位数量进行计数;并且对各个编程电压分布组的各个编程电压分布的失效位数量进行求和。

确认部分编程成功可包括:根据失效位数量确认部分编程成功;并且将求和失效位数量小于阈值的编程电压分布组确认为对应于部分编程成功的部分成功编程电压分布组。

阈值可表示存储器装置的控制器的最大错误校正能力。

执行复制操作可包括:对应于指示部分编程成功的状态信号识别对应于部分成功编程电压分布组的第一存储块的第一页面;读取存储在第一页面中的第一数据并对存储在第一页面中的第一数据进行错误校正;并且将被错误校正的第一数据存储在第一存储块的第二页面和第二存储块的第一页面中的至少一个中。

第一数据可以是存储在第一页面中的整个数据和存储在第一页面之中包括失效位的页面中的数据中的一个。

对各个编程电压分布组的各个编程电压分布的失效位数量进行求和可包括:对第一编程电压分布组的第一求和失效位数量、第二编程电压分布组的第二求和失效位数量和第三编程电压分布的第三求和失效位数量进行求和。

第一编程电压分布组可包括与存储块中的最低有效位(lsb)页面相对应的编程电压分布,第二编程电压分布组可包括与存储块中的中央有效位(csb)页面相对应的编程电压分布,并且第三编程电压分布组可包括与存储块中的最高有效位(msb)页面相对应的编程电压分布。

检查失效位可包括:检查编程电压分布之中的最高电平编程电压分布,并且当最高电平编程电压分布通过时,检查剩余编程电压分布中的失效位。

在实施例中,一种存储器系统可包括:存储器装置和控制器,其中存储器装置包括:第一和第二逻辑页面;以及外围电路,适于:对第一逻辑页面执行编程和验证操作;当验证操作失败时,执行对第一逻辑页面的失效位数量进行计数的计数操作;并且当失效位数量小于控制器的错误校正能力时,执行将第一逻辑页面的被错误校正的数据编程到第二逻辑页面中的编程操作;并且控制器适于:控制编程、验证、计数和复制操作;确定验证操作是否失败,以及失效位数量是否小于错误校正能力;并且对第一逻辑页面的数据进行错误校正。

附图说明

由参照附图的以下具体实施方式,本发明的这些和其它特征及优点对于本发明所属领域的技术人员将变得显而易见,其中:

图1是示出根据本发明的实施例的包括存储器系统的数据处理系统的框图;

图2是示出图1所示的存储器系统中采用的存储器装置的示例性配置的示意图;

图3是示出图2所示的存储器装置中的存储块的存储器单元阵列的示例性配置的电路图;

图4是示出图2所示的存储器装置的示例性三维结构的示意图;

图5至图9是根据实施例的用于帮助说明存储器系统中的数据处理操作的示意图的示例;

图10是描述根据实施例的存储器系统中处理数据的操作过程的示意性流程图;

图11至图19是示意性示出根据本发明的各个实施例的图1所示的数据处理系统的应用示例的示图。

具体实施方式

以下参照附图更详细地描述本发明的各个实施例。然而,应注意到,本发明可以其它不同的实施例、形式及其变型实施,并不应被解释为受限于本文所阐述的实施例。相反,提供所描述的实施例使得本公开将是彻底的且完整的,并将本发明全面地传达给本发明所属领域的技术人员。贯穿本公开,在本发明的各个附图和实施例中,相同的附图标记表示相同的部件。注意的是,对“实施例”的参考不一定意味着仅针对一个实施例,并且对“实施例”的不同参考不一定针对相同的实施例。

将理解的是,虽然可在本文中使用术语“第一”、“第二”、“第三”等来描述各个元件,但是这些元件不受这些术语限制。这些术语用于区分一个元件与另一个元件。因此,在不脱离本发明的精神和范围的情况下,下面描述的第一元件也可被称为第二元件或第三元件。

附图不一定按比例绘制,并且在一些情况下,为了清楚地说明实施例的特征,比例可能已经被夸大。

将进一步理解的是,当元件被称为“连接到”或“联接到”另一元件时,其可直接在其它元件上、连接到或联接到其它元件,或者可存在一个或多个中间元件。此外,还将理解的是,当元件被称为在两个元件“之间”时,其可以是这两个元件之中的唯一元件,或者也可存在一个或多个中间元件。

本文使用的术语仅是为了描述特定实施例,并不旨在限制本发明。如本文使用的,除非上下文另有清楚地说明,否则单数形式也旨在包括复数形式,反之亦然。将进一步理解的是,当在本说明书中使用术语“包括”、“包括有”、“包含”和“包含有”时,其说明所陈述元件的存在,但不排除一个或多个其它元件的存在或添加。如本文所使用的,术语“和/或”包括一个或多个相关所列项目的任何和全部组合。

除非另有定义,否则本文使用的包括技术和科学术语的所有术语具有与本发明所属领域的普通技术人员基于本公开所通常理解的含义相同的含义。将进一步理解的是,诸如在常用字典中定义的那些术语的术语应当被解释为具有与其在本公开和相关技术语境中的含义一致的含义,并且将不以理想化或过于形式化的意义来解释,除非本文中明确地这样定义。

在下面的描述中,为了提供对本发明的全面理解,描述了大量的具体细节。可在没有一些或全部这些具体细节的情况下实施本发明。在其它情况下,没有详细地描述公知的进程结构和/或进程以避免不必要地模糊本发明。

还应注意的是,在一些情况下,如对于相关领域的技术人员显而易见的是,结合一个实施例所描述的特征或元件可单独使用或与另一个实施例的其它特征或元件组合使用,除非另有特别说明。

图1是示出根据本发明的实施例的包括存储器系统110的数据处理系统100的框图。

参照图1,数据处理系统100可包括主机102和存储器系统110。

主机102可包括诸如移动电话、mp3播放器和膝上型计算机的便携式电子装置或诸如台式计算机、游戏机、tv和投影仪的非便携式电子装置。

存储器系统110可响应于主机102的请求为主机102存储数据。存储器系统110的非限制性示例可包括固态驱动器(ssd)、多媒体卡(mmc)、安全数字(sd)卡、通用存储总线(usb)装置、通用闪存(ufs)装置、紧凑式闪存(cf)卡、智能媒体卡(smc)、个人计算机存储卡国际协会(pcmcia)卡和记忆棒。mmc可包括嵌入式mmc(emmc)、缩小尺寸的mmc(rs-mmc)和微型-mmc。sd卡可包括迷你-sd卡和微型-sd卡。

存储器系统110可由各种类型的存储装置实施。包括在存储器系统110中的存储装置的非限制性示例可包括诸如动态随机存取存储器(dram)和静态ram(sram)的易失性存储器装置和诸如只读存储器(rom)、掩模rom(mrom)、可编程rom(prom)、可擦除可编程rom(eprom)、电可擦除可编程rom(eeprom)、铁电ram(fram)、相变ram(pram)、磁阻ram(mram)、电阻式ram(rram)和闪速存储器的非易失性存储器装置。闪速存储器可具有三维(3d)堆叠结构。

存储器系统110可包括存储器装置150和控制器130。存储器装置150可为主机120存储数据,并且控制器130可控制到存储器装置150中的数据存储。

控制器130和存储器装置150可集成到单个半导体装置中,单个半导体装置可被包括在如上所例示的各种类型的存储器系统中。

存储器系统110的非限制性应用示例可包括计算机、超移动pc(umpc)、工作站、上网本、个人数字助理(pda)、便携式计算机、网络平板、平板计算机、无线电话、移动电话、智能电话、电子书、便携式多媒体播放器(pmp)、便携式游戏机、导航系统、黑盒、数码相机、数字多媒体广播(dmb)播放器、3维电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、数字视频记录器、数字视频播放器、构成数据中心的存储装置、能够在无线环境下传输/接收信息的装置、构成家庭网络的各种电子装置中的一个、构成计算机网络的各种电子装置中的一个、构成远程信息处理的各种电子装置中的一个、射频识别(rfid)装置或构成计算系统的各种部件中的一个。

存储器装置150可以是非易失性存储器装置,并且即使不提供电力,也可保留其中存储的数据。存储器装置150可通过写入操作存储从主机102提供的数据,并且通过读取操作将存储在其中的数据提供给主机102。存储器装置150可包括多个存储器管芯(未示出),每一存储器管芯包括多个平面(未示出),每一平面包括多个存储块152至156,存储块152至156中的每一个可包括多个页面,并且每一个页面可包括联接到字线的多个存储器单元。

控制器130可响应于来自主机102的请求来控制存储器装置150。例如,控制器130可将从存储器装置150读取的数据提供给主机102,并将由主机102提供的数据存储到存储器装置150中。对于该操作,控制器130可控制存储器装置150的读取操作、写入操作、编程操作和擦除操作。

控制器130可包括主机接口(i/f)132、处理器134、错误校正码(ecc)部件138、电源管理单元(pmu)140、诸如nand闪速控制器(nfc)的存储器接口142以及存储器144,其全部通过内部总线可操作地联接。

主机接口132可被配置成处理主机102的命令和数据,并可通过诸如以下的各种接口协议中的一种或多种与主机102通信:通用串行总线(usb)、多媒体卡(mmc)、高速外围组件互连(pci-e或pcie)、小型计算机系统接口(scsi)、串列scsi(sas)、串行高级技术附件(sata)、并行高级技术附件(pata)、增强型小型磁盘接口(esdi)以及电子集成驱动器(ide)。

ecc部件138可检测并且校正从存储器装置150读取的数据中包含的错误。换言之,ecc部件138可通过在ecc编码处理期间使用的ecc代码对从存储器装置150读取的数据执行错误校正解码处理。根据错误校正解码处理的结果,ecc部件138可输出信号,例如错误校正成功/失败信号。当错误位的数量大于可校正错误位的阈值时,ecc部件138不会校正错误位,并且可输出错误校正失败信号。

ecc部件138可通过诸如以下的编码调制执行错误校正:低密度奇偶校验(ldpc)码、博斯-查德胡里-霍昆格姆(bch)码、turbo码、里德-所罗门(rs)码、卷积码、递归系统码(rsc)、网格编码调制(tcm)以及分组编码调制(bcm)。然而,ecc部件138不限于此。ecc部件138可包括用于错误校正的所有电路、模块、系统或装置。

pmu140可提供和管理控制器130的电力。

存储器接口142可用作用于将控制器130和存储器装置150接口连接的存储器/存储接口,使得控制器130响应于来自主机102的请求来控制存储器装置150。当存储器装置150是闪速存储器或具体是nand闪速存储器时,存储器接口142可以在处理器134的控制下生成用于存储器装置150的控制信号并且处理待提供给存储器装置150的数据。存储器接口142可用作处理控制器130和存储器装置150之间的命令和数据的接口(例如,nand闪存接口)。具体地,存储器接口142可支持控制器130和存储器装置150之间的数据传输。

存储器144可用作存储器系统110和控制器130的工作存储器,并且存储用于驱动存储器系统110和控制器130的数据。控制器130可响应于来自主机102的请求控制存储器装置150执行读取操作、写入操作、编程操作和擦除操作。控制器130可将从存储器装置150读取的数据提供给主机102并可将从主机102提供的数据存储到存储器装置150中。存储器144可存储控制器130和存储器装置150执行这些操作所需的数据。

存储器144可通过易失性存储器来实现。例如,存储器144可通过静态随机存取存储器(sram)或动态随机存取存储器(dram)来实现。存储器144可设置在控制器130内部或外部。图1例示了设置在控制器130内部的存储器144。在实施例中,存储器144可通过具有在存储器144和控制器130之间传输数据的存储器接口的外部易失性存储器实现。

处理器134可控制存储器系统110的全部操作。处理器134可驱动固件来控制存储器系统110的全部操作。固件可被称为闪存转换层(ftl)。

而且,在根据本公开的实施例的存储器系统110中,在存储器装置150中执行与从主机102接收的多个命令相对应的多个命令操作的情况下,可确定在存储器装置150中执行的命令操作是已经成功还是已经失败。在根据本公开的实施例的存储器系统110中,在存储器装置150的存储块中执行与从主机102接收的多个写入命令相对应的编程操作的情况下,通过电流感测电路(csc,未示出)检查与在存储器装置150的存储块中执行编程操作相对应的编程电压分布,编程电压分布是通过还是失败(在整个公开中,“失败”也可被称为“失效”)被检查,因此,可确定在存储器装置150的存储块中执行的编程操作是已经成功还是已经失败。特别地,在根据本公开的实施例的存储器系统中,当执行编程操作时,针对分别指示存储块中的编程状态的编程电压分布中的每一个检查通过或失败,并且可通过编程电压分布的通过或失败来确定编程操作是已经成功还是已经失败,从而减少另外的编程操作的数量。因为稍后将参照图5至图10进行详细描述,以描述在包括在存储器装置150中的存储块中执行编程操作的操作以及检查编程操作是已经成功还是已经失败的操作,因此这里将省略对其的进一步描述。

控制器130的处理器134可包括用于执行存储器装置150的坏块管理操作的管理单元(未示出)。管理单元可执行对在存储器装置150中包括的多个存储块152至156中,由于nand闪速存储器的特性而在编程操作期间发生编程失败的坏块进行检查的坏块管理操作。管理单元可将坏块的编程失败数据写入新的存储块。在具有3d堆叠结构的存储器装置150中,坏块管理操作可能降低存储器装置150的使用效率和存储器系统110的可靠性。因此,需要更可靠地执行坏块管理操作。

图2是示出图1的存储器装置150的示意图。

参照图2,存储器装置150可包括多个存储块0至n-1,例如存储块0block0(210)、存储块1block1(220)、存储块2block2(230)至存储块n-1blockn-1(240),并且块0至n-1中的每一个可包括多个页面,例如2m个页面,其数量可根据电路设计而不同。包括在各个存储块0至n-1中的存储器单元可以是存储1位数据的单层单元(slc)或存储2位或更多位数据的多层单元(mlc)中的一个或多个。在实施例中,存储器装置150可包括多个三层单元(tlc),每个三层单元存储3位数据。在另一实施例中,存储器装置可包括多个四层单元(qlc),每个四层单元存储4位数据。

图3是示出存储器装置150中的存储块的存储器单元阵列的示例性配置的电路图。

参照图3,存储器装置150中的存储块330可对应于包括在存储器系统110的存储器装置150中的多个存储块152至156中的任意一个,可包括联接到多个相应位线bl0至blm-1的多个单元串340。每列的单元串340可包括一个或多个漏极选择晶体管dst和一个或多个源极选择晶体管sst。多个存储器单元mc0至mcn-1可串联地被联接在漏极选择晶体管dst和源极选择晶体管sst之间。在实施例中,存储器单元晶体管mc0至mcn-1的每一个可通过能够存储多个位的数据信息的mlc来实施。单元串340中的每一个可被电联接到多个位线bl0至blm-1中的相应位线。例如,如图3所示,第一单元串被联接到第一位线bl0,最后一个单元串被联接到最后一个位线blm-1。

虽然图3示出了nand闪速存储器单元,但是本发明不限于此。应注意的是,存储器单元可以是nor闪速存储器单元或者包括在其中组合的两种或更多种存储器单元的混合闪速存储器单元。另外,应注意的是,存储器装置150可以是包括作为电荷存储层的导电浮栅的闪速存储器装置,或是包括作为电荷存储层的绝缘层的电荷撷取闪存(ctf)存储器装置。

存储器装置150可进一步包括电压供给310,其根据操作模式提供包括编程电压、读取电压和通过电压的字线电压以供应给字线。电压供给310的电压产生操作可由控制电路(未示出)来控制。在控制电路的控制下,电压供给310可选择存储器单元阵列的存储块(或扇区)中的一个,选择被选择的存储块的字线中的一个,并根据需要将字线电压提供给被选择的字线和未被选择的字线。

存储器装置150可包括由控制电路控制的读取/写入电路320。在验证/正常读取操作期间,读取/写入电路320可用作读出放大器,其用于从存储器单元阵列读取数据。在编程操作期间,读取/写入电路320可用作根据待被存储在存储器单元阵列中的数据驱动位线的写入驱动器。在编程操作期间,读取/写入电路320可从缓冲器(未示出)接收待被存储到存储器单元阵列中的数据,并根据所接收的数据驱动位线。读取/写入电路320可包括分别对应于列(或位线)或列对(或位线对)的多个页面缓冲器322至326,并且页面缓冲器322至326中的每一个可包括多个锁存器(未示出)。

图4是示出存储器装置150的示例性三维(3d)结构的示意图。

存储器装置150可由2d或3d存储器装置来实现。具体地,如图4所示,存储器装置150可以由具有3d堆叠结构的非易失性存储器装置来实现。当存储器装置150具有3d结构时,存储器装置150可包括每一个都具有3d结构(或垂直结构)的多个存储块blk0至blkn-1。

在下文中,将参照图5至图10对与根据本公开的实施例的存储器系统中的存储器装置150相关的数据处理操作,特别是在对存储器装置150执行命令操作的情况下的数据处理操作进行详细描述。

图5至图9是帮助说明根据实施例的存储器系统中的数据处理操作的示意图。在本公开的实施例中,为便于说明,将以以下情况作为示例进行详细描述:在图1所示的存储器系统110中,从主机102接收到多个命令,并执行对应于这些命令的命令操作。例如,在本公开的实施例中,将对从主机102接收多个写入命令并执行与写入命令相对应的编程操作的情况下的数据处理操作进行详细描述。

此外,在本公开的实施例中,将以以下情况作为示例进行描述:在将与从主机102接收的多个写入命令相对应的写入数据存储在包括在控制器130的存储器144中的缓冲器/高速缓存器中之后,存储在缓冲器/高速缓存器中的写入数据被编程到并存储在包括在存储器装置150中的多个存储块中,并且在对应于写入数据存储在多个存储块中而更新映射数据之后,将更新后的映射数据存储在包括在存储器装置150中的多个存储块中。也就是说,在本公开的实施例中,将以执行与从主机102接收的多个写入命令相对应的编程操作的情况作为示例进行描述。同时,在本公开的实施例中,为便于说明,下面将作为示例进行描述:控制器130在存储器系统110中执行命令操作,需要注意的是,如上所述,包括在控制器130中的处理器134可通过例如ftl(闪存转换层)在存储器系统110中执行命令操作。而且,在本公开的实施例中,控制器130将与从主机102接收的写入命令相对应的用户数据和元数据编程并存储在包括在存储器装置150中的多个存储块之中的随机存储块中。

元数据可包括关于与编程操作相对应的存储块中存储的数据的第一映射数据和第二映射数据,第一映射数据包括逻辑到物理(l2p)信息(在下文中,称为“逻辑信息”),第二映射数据包括物理到逻辑(p2l)信息(在下文中,称为“物理信息”)。而且,元数据可包括:关于与从主机102接收的命令相对应的命令数据的信息;关于与命令相对应的命令操作的信息;关于待对其执行命令操作的存储器装置150的存储块的信息;以及关于与命令操作相对应的映射数据的信息。换言之,元数据可包括所有剩余信息和除了与从主机102接收的命令相对应的用户数据之外的数据。

也就是说,在本公开的实施例中,在控制器130从主机102接收多个写入命令的情况下,执行对应于写入命令的编程操作,并且将对应于写入命令的用户数据写入并存储在存储器装置150的存储块之中的空存储块、开放存储块或已执行擦除操作的空闲存储块中。而且,将包括l2p映射表或l2p映射列表的第一映射数据和包括p2l映射表或p2l映射列表的第二映射数据写入并存储在存储器装置150的存储块之中的空存储块、开放存储块或空闲存储块中,其中l2p映射表或l2p映射列表中记录作为存储在存储块中的用户数据的逻辑地址和物理地址之间的映射信息的逻辑信息,p2l映射表或p2l映射列表中记录作为存储有用户数据的存储块的物理地址和逻辑地址之间的映射信息的物理信息。

此处,在从主机102接收到写入命令的情况下,控制器130将对应于写入命令的用户数据写入并存储在存储块中,并且将包括存储在存储块中的用户数据的第一映射数据和第二映射数据的元数据存储在存储块中。特别地,与存储在存储器装置150的存储块中的用户数据的数据段相对应,控制器130生成并更新第一映射数据的l2p段和第二映射数据的p2l段作为元数据的元段之中的映射数据的映射段,然后将它们存储在存储器装置150的存储块中。存储在存储器装置150的存储块中的映射段被加载到包括在控制器130中的存储器144中,然后进行更新。

而且,在根据本公开的实施例的存储器系统中,如上所述,在存储器装置150的存储块中执行编程操作之后,可确定在存储器装置150的存储块中执行的编程操作是已经成功还是已经失败。在根据本公开的实施例的存储器系统中,在存储器装置150的存储块中执行与从主机102接收的多个写入命令相对应的编程操作的情况下,通过电流感测电路(csc)检查与在存储器装置150的存储块中执行编程操作相对应的编程电压分布,检查编程电压分布的通过或失败。基于该检查,可确定编程操作是已经成功还是已经失败。特别地,在根据本公开的实施例的存储器系统中,当在存储器装置150的存储块中执行编程操作时,针对分别指示存储块中的编程状态的编程电压分布中的每一个检查通过或失败,并且可通过编程电压分布的通过或失败来确定编程操作是已经成功还是已经失败,从而减少存储器装置150的存储块中另外的编程操作的数量。在下文中,将参照图5至图9详细描述根据本公开的实施例的存储器系统中的数据处理操作。

首先,参照图5,控制器130执行与从主机102接收的多个命令相对应的命令操作,例如,与从主机102接收的多个写入命令相对应的编程操作。此时,控制器130将对应于写入命令的用户数据编程并存储在存储器装置150的存储块中。而且,对应于关于存储块的编程操作,控制器130生成并更新用于用户数据的元数据,并将元数据存储在存储器装置150的存储块中。

控制器130生成并更新第一映射数据和第二映射数据,第一映射数据和第二映射数据包括表示用户数据被存储在包括在存储器装置150的存储块中的页面中的信息。也就是说,控制器130生成并更新l2p段作为第一映射数据的逻辑段,以及p2l段作为第二映射数据的物理段,然后将它们存储在包括在存储器装置150的存储块中的页面中。

例如,控制器130将与从主机102接收的写入命令相对应的用户数据高速缓存并缓冲在包括在控制器130的存储器144中的第一缓冲器510中。特别地,在将用户数据的数据段512存储在作为数据缓冲器/高速缓存器的第一缓冲器510中之后,控制器130将存储在第一缓冲器510中的数据段512存储在包括在存储器装置150的存储块中的页面中。因为与从主机102接收的写入命令相对应的用户数据的数据段512被编程到并存储在包括在存储器装置150的存储块中的页面中,所以控制器130生成并更新第一映射数据和第二映射数据,并将它们存储在包括在控制器130的存储器144中的第二缓冲器520中。特别地,控制器130将用户数据的第一映射数据的l2p段522和第二映射数据的p2l段524存储在作为映射缓冲器/高速缓存器的第二缓冲器520中。在控制器130的存储器144中的第二缓冲器520中,如上所述,可存储有第一映射数据的l2p段522和第二映射数据的p2l段524。可选地,可存储有用于第一映射数据的l2p段522的映射列表和用于第二映射数据的p2l段524的映射列表。控制器130将存储在第二缓冲器520中的第一映射数据的l2p段522和第二映射数据的p2l段524存储在包括在存储器装置150的存储块中的页面中。

如上所述,在存储器装置150的存储块中执行编程操作的情况下,控制器130确定在存储器装置150的存储块中执行的编程操作是已经成功还是失败。控制器130通过从存储器装置150接收在存储器装置150的存储块中执行的编程操作是已经成功还是已经失败的结果,来确定编程操作是已经成功还是已经失败,并且在存储器装置150的存储块中针对失败的编程操作执行另外的编程操作。存储器装置150通过检查与在存储块中执行的编程操作相对应的编程电压分布是已经通过还是已经失败,来确定编程操作是已经成功还是已经失败,然后将确定的结果传输到控制器130。通过检查针对存储块中的编程状态的编程电压分布中的每一个是通过还是失败来确定编程操作是已经成功还是已经失败,允许控制器130使另外的编程操作的执行最小化。

参照图6,存储器装置150包括多个存储器管芯,例如,存储器管芯0(表示为“die0”)、存储器管芯1(表示为“die1”)、存储器管芯2(表示为“die2”)以及存储器管芯3(表示为“die3”)。存储器管芯中的每一个包括多个平面,例如,平面0(表示为“plane0”)、平面1(表示为“plane1”)、平面2(表示为“plane2”)以及平面3(表示为“plane3”)。如上参照图2所述,包括在存储器装置150中的存储器管芯中的各个平面包括多个存储块,例如,n个块block0、block1、……、blockn-1,块中的每一个包括多个页面,例如,2m个页面。此外,存储器装置150包括对应于各个存储器管芯的多个缓冲器,例如,对应于存储器管芯0的缓冲器0(表示为“buffer0”)、对应于存储器管芯1的缓冲器1(表示为“buffer1”)、对应于存储器管芯2的缓冲器2(表示为“buffer2”)以及对应于存储器管芯3的缓冲器3(表示为“buffer3”)。

在执行与从主机102接收的多个命令相对应的命令操作的情况下,对应于命令操作的数据被存储在包括在存储器装置150中的缓冲器中。例如,在执行编程操作的情况下,对应于编程操作的数据被存储在缓冲器中,然后被存储在包括在存储器管芯的存储块中的页面中。在执行读取操作的情况下,对应于读取操作的数据从包括在存储器管芯的存储块中的页面中被读取,被存储在缓冲器中,然后通过控制器130被提供给主机102。

虽然作为示例并为便于说明,图6示出了包括在图6的存储器装置150中的缓冲器存在于各个对应存储器管芯的外部,但应当注意的是,本发明不限于此。例如,缓冲器可存在于各个相应存储器管芯的内部。还应当注意的是,缓冲器可对应于各个存储器管芯中的各个平面或各个存储块。进一步地,在本公开的实施例中,虽然作为示例并为便于说明,描述了包括在图6的存储器装置150中的缓冲器(buffer0至buffer3)对应于如以上参照图3描述的包括在存储器装置150中的多个页面缓冲器322、324和326,但应当注意的是,缓冲器可以是包括在存储器装置150中的多个高速缓存器或多个寄存器。

而且,包括在图6的存储器装置150中的多个存储块可被分组为多个超级存储块,并且可在多个超级存储块中执行命令操作。超级存储块中的每一个可包括多个存储块,例如包括在第一存储块组和第二存储块组中的存储块。在这方面,当第一存储块组被包括在某个第一存储器管芯的第一平面中时,第二存储块组可被包括在第一存储器管芯的第一平面、第一存储器管芯的第二平面或第二存储器管芯的平面中。在下文中,将通过示例,参照图7至图9,针对在根据本公开的实施例的存储器系统中的存储器装置150的存储块中执行编程操作的情况下,确定在存储块中执行的编程操作是已经成功还是已经失败进行详细描述。

当控制器130在存储器装置150的存储块中执行编程操作时,将数据位编程在存储块的页面中实现的存储器单元中。例如,为了将k个数据位编程在一个存储器单元中,在存储器单元中形成2k个阈值电压中的任何一个。由于存储器单元之间的电特性的微小差异,编程有相同数据的存储器单元的阈值电压形成一定范围的阈值电压分布。每一个阈值电压分布对应于可由k个数据位生成的2k个数据值中的每一个。因为可布置阈值电压分布的电压窗口有限,所以随着数据位数量k增加,相邻阈值电压分布之间的距离减少。因此,相邻阈值电压分布可能彼此重叠。当相邻阈值电压分布以这种方式重叠时,可以包括多个错误位。

三层单元(tlc)存储块中的阈值电压分布可如图7所示具有彼此完全不重叠的理想阈值电压分布,或者可如图8所示具有由于存储器单元的特性劣化而移动、移位或发生变形从而彼此重叠的阈值电压分布。例如,图7中表示了指示三层单元存储块的编程状态和擦除状态的理想阈值电压分布。然而,当在存储器单元中发生特性劣化时,如图8所示,指示编程状态和擦除状态的阈值电压分布可由彼此重叠的相邻阈值电压分布来表示。详细地,在将三个数据位(即,k=3)编程在包括在三层单元存储块中的单个存储器单元中的情况下,在单个存储器单元中形成23(即,八)个阈值电压分布之中的任何一个阈值电压分布。由于多个存储器单元之间的电特性的微小差异,编程有相同数据的存储器单元的阈值电压形成一定范围的阈值电压分布。例如,在三层单元存储块中,形成对应于七个编程状态的阈值电压分布p1、p2、p3、p4、p5、p6和p7以及对应于一个擦除状态的阈值电压分布e。

如图8所示,当存储器装置150的存储块中的阈值电压分布具有彼此重叠的阈值电压分布时,可包括多个错误位。当分别指示存储块中的编程状态的编程电压分布具有彼此重叠的阈值电压分布时,在由于存在多个错误位而确定编程操作已经失败之后,需要针对存储块中失败的编程操作执行另外的编程操作。在根据本公开的实施例的存储器系统中,当在存储器装置150的存储块中执行与从主机102接收的多个写入命令相对应的编程操作时,通过电流感测电路检查与在存储器装置150的存储块中执行编程操作相对应的编程电压分布。特别地,在本公开的实施例中,当对应于执行编程操作的编程电压分布具有图7或图8所示的阈值电压分布时,通过电流感测电路检查各个编程电压分布是已经通过还是已经失败,从而可确定在存储器装置150的存储块中执行的编程操作是已经成功还是已经失败。在下文中,将参照图9详细描述根据本公开的实施例的确定在存储器系统中编程操作是已经成功还是已经失败的操作。

参照图9,控制器130将与从主机(例如,图1所示的主机102)接收的多个写入命令相对应的数据存储在控制器130的存储器144中,然后,将存储在存储器144中的数据编程和存储在包括在存储器装置150的存储器管芯中的存储块中。控制器130通过缓冲器0将存储在存储器144中的第一数据910编程在包括在存储器装置150的存储器管芯0中的存储块中,并且通过缓冲器1将存储在存储器144中的第二数据920编程在包括在存储器装置150的存储器管芯1中的存储块中。此外,控制器130从包括在存储器装置150的存储器管芯中的存储块中读取与从主机102接收的多个读取命令相对应的数据,将所读取的数据存储在控制器130的存储器144中,然后将数据提供给主机102。控制器130通过缓冲器0从包括在存储器装置150的存储器管芯0中的存储块中读取数据,并将所读取的数据存储在存储器144中,并且通过缓冲器1从包括在存储器装置150的存储器管芯1中的存储块中读取数据,并将所读取的数据存储在存储器144中。在通过ecc部件138校正存储在存储器144中的第一数据910和第二数据920的错误位之后,控制器130将被错误校正的数据提供给主机102。

具体地,在将存储在存储器144中的第一数据910和第二数据920分别编程和存储在包括在存储器装置150的存储器管芯0和存储器管芯1中的存储块中之后,控制器130确定在存储块中执行的编程操作是已经成功还是已经失败。例如,在将存储在存储器144中的第一数据910编程和存储在存储器管芯0的存储块中之后,控制器130从存储器装置150接收指示在存储器管芯0的存储块中执行的编程操作是已经成功还是已经失败的检查结果。存储器装置150通过检查部件0检查其中针对第一数据910执行编程操作的存储器管芯0的存储块中的阈值电压分布,并且在通过检查对应于阈值电压分布的编程电压分布是已经通过还是已经失败来确定编程操作是已经成功还是已经失败之后,将指示编程操作是已经成功还是已经失败的检查结果传输到控制器130。而且,在将存储在存储器144中的第二数据920编程和存储在存储器管芯1的存储块中之后,控制器130从存储器装置150接收指示在存储器管芯1的存储块中执行的编程操作是已经成功还是已经失败的检查结果。存储器装置150通过检查部件1检查其中针对第二数据920执行编程操作的存储器管芯1的存储块中的阈值电压分布,并且在通过检查对应于阈值电压分布的编程电压分布是已经通过还是已经失败来确定编程操作是已经成功还是已经失败之后,将指示编程操作是已经成功还是已经失败的检查结果传输到控制器130。

在本公开的实施例中,虽然作为示例并为便于说明,描述了检查部件(例如,检查部件0、检查部件1……)分别对应于包括在存储器装置150中的存储器管芯(例如,存储器管芯0、存储器管芯1……),但应当注意的是,检查部件可以可选地对应于包括在存储器装置150中的整个存储器单元阵列,或者应当注意的是,检查部件可分别对应于包括在存储器管芯中的平面(例如,平面0、平面1、平面3……),或者分别对应于包括在平面中的存储块(例如,存储块block0至blockn-1)。此外,虽然作为示例并为便于说明,图9示出了检查部件存在于存储器装置150的内部和存储器管芯的外部,但应当注意的是,检查部件可存在于存储器装置150的外部或存储器管芯的内部。可选地,检查部件也可存在于控制器130的内部。

检查部件中的每一个包括:操作检查部件,检查存储器装置150或各个存储器管芯中的存储器单元阵列的操作状态;计数器,对通过操作检查部件检查的失效位进行计数;求和部件,对通过计数器计数的失效位的数量进行求和;比较器,将失效位的求和数量与阈值进行比较;以及存储器,对失效位的数量、失效位的求和数量、阈值等进行存储。操作检查部件包括电流感测电路。通过电流感测电路检查存储器单元阵列中的阈值电压分布,操作检查部件检查执行编程操作的存储块中的编程电压分布,并生成指示执行编程操作的存储块中的编程电压分布是已经通过还是已经失败的信号。计数器对在通过操作检查部件检查已经通过或已经失败的编程电压分布之中、编程电压分布已经失败的存储器单元进行计数。因此,计数器对通过操作检查部件检查的编程电压分布中的失效位进行计数。求和部件对通过计数器计数的失效位数量进行求和。特别地,求和部件对每一个可选页面组的失效位数量进行求和。比较器将失效位数量与阈值进行比较。特别地,在将失效位的求和数量与阈值进行比较之后,比较器根据比较结果将指示编程操作是已经成功还是已经失败的信号(即,检查结果)传输到控制器130。存储装置存储失效位的数量、失效位的求和数量、阈值、由操作检查部件检查的已经通过或已经失败的编程电压分布的信号值以及由比较器检查的已经成功或已经失败的编程操作的信号值。存储装置可被包括在存储器装置150的缓冲器中。特别地,存储装置可被包括在被实施为存储器装置150中的寄存器的缓冲器中。在本公开的实施例中,为便于说明,下面将作为示例详细描述:当在包括在存储器装置150中的三层单元存储块中执行编程操作时,检查具有图7和图8的阈值电压分布的编程电压分布的通过或失败,然后确定编程操作的成功或失败。

例如,在存储器装置150的存储块中执行编程操作之后,检查部件中的每一个检查执行编程操作的存储块中的阈值电压分布,作为编程电压分布。检查部件检查编程电压分布中的最高电平编程电压分布p7是已经通过还是已经失败。特别地,在检查针对最高电平编程电压分布p7的通过或失败之后,并且如果最高电平编程电压分布p7通过,则检查部件检查剩余的编程电压分布p1、p2、p3、p4、p5和p6是已经通过还是已经失败。然而,如果最高电平编程电压分布p7失败,则检查部件将指示在存储器装置150的存储块中执行的所有编程操作都已经失败的信号,例如编程失败状态信号传输到控制器130。

此外,当最高电平编程电压分布p7和剩余编程电压分布p1、p2、p3、p4、p5和p6,即所有的编程电压分布p1、p2、p3、p4、p5、p6和p7都通过时,检查部件将指示存储器装置150的存储块中执行的编程操作已经成功的信号传输到控制器130。当所有的编程电压分布p1、p2、p3、p4、p5、p6和p7都通过时,检查部件将指示存储器装置150的存储块中执行的所有编程操作都已经正常成功的信号,例如完全成功编程状态信号传输到控制器130。

当最高电平编程电压分布p7通过但剩余编程电压分布p1、p2、p3、p4、p5和p6之中的一个或多个编程电压分布失败时,检查部件检查其中已出现失败的编程电压分布的失效位,并对编程电压分布p1、p2、p3、p4、p5、p6和p7中的失效位进行计数。在根据本公开的实施例的存储器系统中,当在所有编程电压分布p1、p2、p3、p4、p5、p6和p7之中存在其中已出现至少一个失败的编程电压分布时,不针对预定的最大循环执行另外的编程操作,直到所有编程电压分布p1、p2、p3、p4、p5、p6和p7都已经通过,并且在所有编程电压分布p1、p2、p3、p4、p5、p6和p7中检查失效位。因此,通过减少另外的编程操作的数量,可减少存储器单元的特性劣化,并且可提高操作速度。此外,通过减少存储器装置150的字线中的串应力,可提高存储器装置150的可靠性。

即,当在所有编程电压分布p1、p2、p3、p4、p5、p6和p7之中存在其中已出现至少一个失败的编程电压分布时,检查部件对第一编程电压分布p1中的第一失效位进行检查和计数,对第二编程电压分布p2中的第二失效位进行检查和计数,对第三编程电压分布p3中的第三失效位进行检查和计数,对第四编程电压分布p4中的第四失效位进行检查和计数,对第五编程电压分布p5中的第五失效位进行检查和计数,对第六编程电压分布p6中的第六失效位进行检查和计数,以及对第七编程电压分布p7中的第七失效位进行检查和计数。

检查部件对在所有编程电压分布p1、p2、p3、p4、p5、p6和p7中计数的失效位的数量求和。针对编程电压分布组中的每一个,检查部件对所有编程电压分布p1、p2、p3、p4、p5、p6和p7中的失效位的数量求和。对应于包括在存储器装置150中的存储块,检查部件针对编程电压分布组中的每一个对失效位的数量求和。特别地,对应于在每一个存储器单元中每一个存储块存储1位或至少2位的存储块,检查部件针对单个编程电压分布组或多个编程电压分布组(例如,单层单元存储块中的单个编程电压分布组、多层单元存储块中的两个编程电压分布组、三层单元存储块中的三个编程电压分布组和四层单元存储块中的四个编程电压分布组)对失效位的数量进行求和。

例如,检查部件对包括在第一编程电压分布组中的编程电压分布p3和p7的失效位的数量进行求和,对包括在第二编程电压分布组中的编程电压分布p2、p4和p6的失效位的数量进行求和,并且对包括在第三编程电压分布组中的编程电压分布p1和p5的失效位的数量进行求和。第一编程电压分布组包括与执行编程操作的存储器装置150的存储块中的最低有效位(lsb)页面相对应的编程电压分布p3和p7,第二编程电压分布组包括与执行编程操作的存储器装置150的存储块中的中央有效位(csb)页面相对应的编程电压分布p2、p4和p6,并且第三编程电压分布组包括与执行编程操作的存储器装置150的存储块中的最高有效位(msb)页面相对应的编程电压分布p1和p5。也就是说,对应于存储块中的lsb页面,检查部件对通过对第三编程电压分布p3中的第三失效位进行计数而获得的第三失效位数量和通过对第七编程电压分布p7中的第七失效位进行计数而获得的第七失效位数量进行求和。对应于存储块中的csb页面,检查部件对通过对第二编程电压分布p2中的第二失效位进行计数而获得的第二失效位数量、通过对第四编程电压分布p4中的第四失效位进行计数而获得的第四失效位数量和通过对第六编程电压分布p6中的第六失效位进行计数而获得的第六失效位数量进行求和。进一步地,对应于存储块中的msb页面,检查部件对通过对第一编程电压分布p1中的第一失效位进行计数而获得的第一失效位数量和通过对第五编程电压分布p5中的第五失效位进行计数而获得的第五失效位数量进行求和。

检查部件将在各个第一至第三编程电压分布组p3和p7,p2、p4和p6以及p1和p5中计数的失效位的数量与阈值进行比较。特别地,检查部件将所有编程电压分布p1、p2、p3、p4、p5、p6和p7中的编程电压分布组中的每一个的求和位数量和阈值进行比较,然后基于比较结果,将指示存储器装置150的存储块中执行的编程操作已经成功或已经失败的信号传输到控制器130。检查部件将通过将第一编程电压分布组的第三失效位数量和第七失效位数量进行求和而获得的第一求和位数量与阈值进行比较,将通过将第二编程电压分布组的第二失效位数量、第四失效位数量和第六失效位数量进行求和而获得的第二求和位数量与阈值进行比较,并且将通过将第三编程电压分布组的第一失效位数量和第五失效位数量进行求和而获得的第三求和位数量与阈值进行比较。可对应于ecc部件138的最大错误校正能力来确定阈值。可在控制器130或检查部件中确定阈值,然后将该阈值存储在存储装置中。当在控制器130中确定阈值时,可在处理器134或ecc部件138中确定该阈值。

在作为对第一求和位数量与阈值进行比较、对第二求和位数量与阈值进行比较以及对第三求和位数量与阈值进行比较的结果,至少一个求和位数量超过阈值的情况下,检查部件将指示存储器装置150的存储块中执行的所有编程操作都已经失败的信号,例如编程失败状态信号传输到控制器130。在其中求和位数量超过阈值的编程电压分布组(在下文中,称为“失败编程电压分布组”)中,包括具有比阈值更多数量的错误位的编程电压分布。包括在失败编程电压分布组中的错误位超过ecc部件138的最大错误校正能力。换言之,因为超过ecc部件138的最大错误校正能力的错误位被编程在存储块中对应于失败编程电压分布组的页面中,所以检查部件将编程失败状态信号传输到控制器130。

当作为对第一求和位数量与阈值进行比较、对第二求和位数量与阈值进行比较以及对第三求和位数量与阈值进行比较的结果,所有各个求和位数量都小于阈值时,检查部件将指示存储器装置150的存储块中执行的编程操作已经部分成功的信号,例如部分成功编程状态信号传输到控制器130。在求和位数量小于阈值的编程电压分布组(在下文中,称为“部分成功编程电压分布组”)中,包括具有比阈值更少数量的错误位的编程电压分布。包括在部分成功编程电压分布组中的错误位处于ecc部件138的最大错误校正能力范围内。换言之,因为处于ecc部件138的最大错误校正能力内的错误位被编程在存储块中对应于部分成功编程电压分布组的页面中,所以检查部件将部分成功编程状态信号传输到控制器130。

当从存储器装置150的检查部件中的每一个接收到编程失败状态信号时,控制器130确认在存储器装置150的存储块中执行的所有编程操作都已经失败,并且再次针对失败的编程操作执行编程操作,或者作为对从主机102接收的写入命令的响应将指示失败的信号传输到主机102。当从存储器装置150的检查部件中的每一个接收到完全成功编程状态信号时,控制器130确认在存储器装置150的存储块中执行的所有编程操作都已经成功,作为对从主机102接收的写入命令的响应,将指示成功的信号传输到主机102,并且执行与从主机102接收的其它命令相对应的命令操作。

当从存储器装置150的检查部件中的每一个接收到部分成功编程状态信号时,控制器130确认在存储器装置150的存储块中执行的编程操作已经部分成功,并且作为对从主机102接收的写入命令的响应,将指示成功的信号传输到主机102。进一步地,对应于从存储器装置150的检查部件中的每一个接收的部分成功编程状态信号,控制器130在存储器装置150的存储块中对与部分成功编程操作相对应的数据(在下文中,称为“部分成功编程数据”)执行复制操作。控制器130识别存储器装置150的存储块中对应于部分成功编程电压分布组的页面,读取存储在部分成功编程电压分布组的页面中的部分成功编程数据,并且将读取的部分成功编程数据存储在存储器装置150的存储块中。在这方面,控制器130将读取的部分成功编程数据存储在控制器130的存储器144中,通过ecc部件138执行错误校正操作,并且将被错误校正的部分成功编程数据存储在存储器装置150的存储块中。

当部分成功编程电压分布组的页面是第一存储块的第一lsb页面、第一csb页面和第一msb页面时,控制器130将存储在第一lsb页面、第一csb页面和第一msb页面中的部分成功编程数据存储在第一存储块的第二lsb页面、第二csb页面和第二msb页面中,或者第二存储块的第一lsb页面、第一csb页面和第一msb页面中。当部分成功编程电压分布组的页面是第一存储块的第一lsb页面、第一csb页面和第一msb页面时,控制器130将存储在第一lsb页面、第一csb页面和第一msb页面之中的特定页面中,例如第一msb页面中的部分成功编程数据存储在第一存储块的第二msb页面中或第二存储块的第一msb页面中。第一存储块的第一lsb页面、第一csb页面和第一msb页面之中的特定页面可以是包括失效位的页面,并且剩余页面可以是不包括失效位的页面。即,控制器130对整个部分成功编程数据执行复制操作,或者对部分成功编程数据中包括失效位的部分数据执行复制操作。在下文中,将参照图10详细描述根据本公开的实施例的在存储器系统中处理数据的操作。

图10是描述根据实施例的在存储器系统110中处理数据的操作进程的示意性流程图。

参照图10,在步骤1005中,存储器系统110在存储器装置150的存储块中执行与从主机102接收的多个写入命令相对应的编程操作。

存储器系统110在步骤1010中检查针对在存储器装置150的存储块中执行的编程操作的编程电压分布,并且在步骤1015中检查编程电压分布是已经通过还是已经失败。

当作为检查编程电压分布是已经通过还是已经失败的结果,所有编程电压分布都通过(即,步骤1015中为“是”)时,存储器系统110在步骤1020中确认在存储器装置150的存储块中执行的所有编程操作都已经成功,并且操作可结束。

当作为检查编程电压分布是已经通过还是已经失败的结果,在编程电压分布中已出现至少一个或多个失败(即,步骤s1015中为“否”)时,在步骤1025中,存储器系统110检查编程电压分布中的失效位并对失效位进行计数。

然后,在步骤1030中,存储器系统110将计数的失效位数量与阈值进行比较,特别是针对编程电压分布组中的每一个对编程电压分布中的失效位数量进行求和,然后将求和失效位数量与阈值进行比较。

当编程电压分布组中的每一个中的失效位数量,特别是求和失效位数量超过阈值(即,步骤s1030中为“是”)时,存储器系统110在步骤1035中确认在存储器装置150的存储块中执行的所有编程操作都已经失败,并且操作可结束。

当编程电压分布组中的每一个中的失效位数量,特别是求和失效位数量小于或等于阈值(即,在步骤s1030中为“否”)时,存储器系统110在步骤1040中确认在存储器装置150的存储块中执行的编程操作已经部分成功,并且对部分成功编程数据执行复制操作。

因为以上参照图5至图9对以下情况进行了详细描述,所以本文将省略对以下情况的进一步描述:在存储器装置150的存储块中执行与从主机102接收的多个写入命令相对应的编程操作、根据执行编程操作来检查编程电压分布中的每一个是已经通过还是已经失败、通过针对编程电压分布中的每一个检查通过或失败来确定在存储器装置150的存储块中执行的编程操作是已经成功还是已经失败,以及根据编程操作是已经成功还是已经失败来执行另外的编程操作。在下文中,将参照图11至图19对应用了根据实施例的包括以上参照图1至图10描述的存储器装置150和控制器130的存储器系统110的数据处理系统和电子设备进行详细描述。

图11至图19是示意性示出图1的数据处理系统的应用示例的示图。

图11是示意性示出包括根据本实施例的存储器系统的数据处理系统的另一示例的示图。图11示意性示出应用了根据本实施例的存储器系统的存储卡系统。

参照图11,存储卡系统6100可包括存储器控制器6120、存储器装置6130和连接器6110。

更具体地,存储器控制器6120可被连接到通过非易失性存储器实施的存储器装置6130,并被配置为访问存储器装置6130。例如,存储器控制器6120可被配置为控制存储器装置6130的读取操作、写入操作、擦除操作和后台操作。存储器控制器6120可被配置为提供存储器装置6130和主机之间的接口并驱动用于控制存储器装置6130的固件。也就是说,存储器控制器6120可对应于参照图1和图5描述的存储器系统110的控制器130,并且存储器装置6130可对应于参照图1和图5描述的存储器系统110的存储器装置150。

因此,存储器控制器6120可包括ram、处理器、主机接口、存储器接口和错误校正部件。存储器控制器130可进一步包括图5所示的元件。

存储器控制器6120可通过连接器6110与例如图1的主机102的外部装置通信。例如,如参照图1所述,存储器控制器6120可被配置为通过诸如以下的各种通信协议中的一种或多种与外部装置通信:通用串行总线(usb)、多媒体卡(mmc)、嵌入式mmc(emmc)、外围组件互连(pci)、高速pci(pcie)、高级技术附件(ata)、串行ata、并行ata、小型计算机系统接口(scsi)、增强型小型磁盘接口(edsi)、电子集成驱动器(ide)、火线、通用闪存(ufs)、wi-fi以及蓝牙等。因此,根据本实施例的存储器系统和数据处理系统可应用于有线/无线电子装置,或者特别是应用于移动电子装置。

存储器装置6130可通过非易失性存储器来实施。例如,存储器装置6130可由诸如以下的各种非易失性存储器装置来实施:可擦除可编程rom(eprom)、电可擦除可编程rom(eeprom)、nand闪速存储器、nor闪速存储器、相变ram(pram)、电阻式ram(reram)、铁电ram(fram)以及自旋力矩转移磁性ram(stt-mram)。存储器装置6130可包括如在图5的存储器装置150中的多个管芯。

存储器控制器6120和存储器装置6130可集成到单个半导体装置中。例如,存储器控制器6120和存储器装置6130可通过集成到单个半导体装置中来构造固态驱动器(ssd)。而且,存储器控制器6120和存储器装置6130可构造诸如以下的存储卡:pc卡(pcmcia:个人计算机存储卡国际协会)、紧凑式闪存(cf)卡、智能媒体卡(例如,sm和smc)、记忆棒、多媒体卡(例如,mmc、rs-mmc、微型mmc和emmc)、sd卡(例如,sd、迷你sd、微型sd和sdhc)和通用闪存(ufs)。

图12是示意性示出包括根据本实施例的存储器系统的数据处理系统的另一示例的示图。

参照图12,数据处理系统6200可包括具有一个或多个非易失性存储器的存储器装置6230和用于控制存储器装置6230的存储器控制器6220。如图12所示的数据处理系统6200可作为如参照图1所描述的诸如存储卡(cf、sd、微型-sd等)或usb装置的存储介质。存储器装置6230可对应于图1和图5所示的存储器系统110中的存储器装置150,并且存储器控制器6220可对应于图1和图5所示的存储器系统110中的控制器130。

存储器控制器6220可响应于主机6210的请求来控制对存储器装置6230的读取操作、写入操作或擦除操作,并且存储器控制器6220可包括一个或多个cpu6221、诸如ram6222的缓冲存储器、ecc电路6223、主机接口6224以及诸如nvm接口6225的存储器接口。

cpu6221可控制对存储器装置6230的全部操作,例如读取操作、写入操作、文件系统管理和坏页面管理操作。ram6222可根据cpu6221的控制来操作,并且用作工作存储器、缓冲存储器或高速缓冲存储器。当ram6222用作工作存储器时,由cpu6221处理的数据可以临时存储在ram6222中。当ram6222用作缓冲存储器时,ram6222可用于缓冲从主机6210传输到存储器装置6230或从存储器装置6230传输到主机6210的数据。当ram6222用作高速缓冲存储器时,ram6222可辅助低速存储器装置6230以高速操作。

ecc电路6223可对应于图1所示的控制器130的ecc部件138。如参照图1描述的,ecc电路6223可以生成用于校正从存储器装置6230提供的数据的失效位或错误位的ecc(错误校正码)。ecc电路6223可对提供给存储器装置6230的数据执行错误校正编码,从而形成具有奇偶校验位的数据。奇偶校验位可被存储在存储器装置6230中。ecc电路6223可对从存储器装置6230输出的数据执行错误校正解码。此时,ecc电路6223可使用奇偶校验位来校正错误。例如,如参照图1所述,ecc电路6223可使用ldpc码、bch码、turbo码、里德-所罗门(rs)码、卷积码、rsc或诸如tcm或bcm的编码调制来校正错误。

存储器控制器6220可通过主机接口6224向主机6210传输数据/从主机6210接收数据,并通过nvm接口6225向存储器装置6230传输数据/从存储器装置6230接收数据。主机接口6224可通过pata总线、sata总线、scsi、usb、pcie或nand接口连接到主机6210。存储器控制器6220可具有使用诸如wifi或长期演进(lte)的移动通信协议的无线通信功能。存储器控制器6220可连接到外部装置,例如主机6210或另一外部装置,然后向外部装置传输数据/从外部装置接收数据。特别地,由于存储器控制器6220被配置为通过各种通信协议中的一种或多种与外部装置进行通信,因此根据本实施例的存储器系统和数据处理系统可应用于有线/无线电子装置或特别是移动电子装置。

图13是示意性示出包括根据本实施例的存储器系统的数据处理系统的另一示例的示图。图13示意性示出应用了根据本实施例的存储器系统的ssd。

参照图13,ssd6300可包括控制器6320和包括多个非易失性存储器的存储器装置6340。控制器6320可对应于图1和图5的存储器系统110中的控制器130,并且存储器装置6340可对应于图1和图5的存储器系统中的存储器装置150。

更具体地,控制器6320可通过多个通道ch1至chi连接到存储器装置6340。控制器6320可包括一个或多个处理器6321、缓冲存储器6325、ecc电路6322、主机接口6324以及例如非易失性存储器接口6326的存储器接口。

缓冲存储器6325可临时存储从主机6310提供的数据或从包括在存储器装置6340中的多个闪速存储器nvm提供的数据,或者临时存储多个闪速存储器nvm的元数据,例如,包括映射表的映射数据。缓冲存储器6325可通过诸如dram、sdram、ddrsdram、lpddrsdram和gram的易失性存储器或诸如fram、reram、stt-mram和pram的非易失性存储器来实施。为便于描述,图12示出了缓冲存储器6325存在于控制器6320内部。然而,缓冲存储器6325可存在于控制器6320外部。

ecc电路6322可在编程操作期间计算待编程到存储器装置6340中的数据的ecc值,在读取操作期间基于ecc值对从存储器装置6340读取的数据执行错误校正操作,并且在失效数据恢复操作期间对从存储器装置6340恢复的数据执行错误校正操作。

主机接口6324可提供与诸如主机6310的外部装置的接口连接功能,并且非易失性存储器接口6326可提供与通过多个通道连接的存储器装置6340的接口连接功能。

此外,可提供应用了图1和图5的存储器系统110的多个ssd6300来实施数据处理系统,例如,raid(独立磁盘冗余阵列)系统。此时,raid系统可包括多个ssd6300和用于控制多个ssd6300的raid控制器。当raid控制器响应于从主机6310提供的写入命令执行编程操作时,raid控制器可根据多个raid级别,即,从ssd6300中的主机6310提供的写入命令的raid级别信息,来选择一个或多个存储器系统或ssd6300,并将对应于写入命令的数据输出到选择的ssd6300。此外,当raid控制器响应于从主机6310提供的读取命令执行读取命令时,raid控制器可根据多个raid级别,即,从ssd6300中的主机6310提供的读取命令的raid级别信息,来选择一个或多个存储器系统或ssd6300,并将从所选择的ssd6300读取的数据提供给主机6310。

图14是示意性示出包括根据本实施例的存储器系统的数据处理系统的另一示例的示图。图14示意性示出应用根据本实施例的存储器系统的嵌入式多媒体卡(emmc)。

参照图14,emmc6400可包括控制器6430和通过一个或多个nand闪速存储器实施的存储器装置6440。控制器6430可对应于图1和图5的存储器系统110中的控制器130,并且存储器装置6440可对应于图1和图5的存储器系统110中的存储器装置150。

更具体地,控制器6430可通过多个通道连接到存储器装置6440。控制器6430可包括一个或多个内核6432、主机接口6431和诸如nand接口6433的存储器接口。

内核6432可控制emmc6400的全部操作,主机接口6431可提供控制器6430和主机6410之间的接口连接功能,并且nand接口6433可提供存储器装置6440和控制器6430之间的接口连接功能。例如,主机接口6431可作为并行接口,例如参照图1所描述的mmc接口。此外,主机接口6431可作为串行接口,例如uhs((超高速)-i/uhs-ii)接口。

图15至图18是示意性示出包括根据本实施例的存储器系统的数据处理系统的其它示例的示图。图15至图18示意性示出应用根据本实施例的存储器系统的ufs(通用闪存)系统。

参照图15至图18,ufs系统6500、6600、6700和6800可分别包括主机6510、6610、6710和6810,ufs装置6520、6620、6720和6820以及ufs卡6530、6630、6730和6830。主机6510、6610、6710和6810可用作有线/无线电子装置或特别是移动电子装置的应用处理器,ufs装置6520、6620、6720和6820可用作嵌入式ufs装置,并且ufs卡6530、6630、6730和6830可以用作外部嵌入式ufs装置或可移除ufs卡。

在各个ufs系统6500、6600、6700和6800中的主机6510、6610、6710和6810,ufs装置6520、6620、6720和6820以及ufs卡6530、6630、6730和6830可通过ufs协议与诸如有线/无线电子装置或特别是移动电子装置的外部装置通信,并且ufs装置6520、6620、6720和6820以及ufs卡6530、6630、6730和6830可通过图1和图5所示的存储器系统110实施。例如,在ufs系统6500、6600、6700和6800中,ufs装置6520、6620、6720和6820可参照图12至图14描述的数据处理系统6200、ssd6300或emmc6400的形式来实施,并且ufs卡6530、6630、6730和6830可参照图11描述的存储卡系统6100的形式来实施。

而且,在ufs系统6500、6600、6700和6800中,主机6510、6610、6710和6810,ufs装置6520、6620、6720和6820以及ufs卡6530、6630、6730和6830可通过ufs接口,例如,mipi(移动工业处理器接口)中的mipim-phy和mipiunipro(统一协议)来彼此通信。此外,ufs装置6520、6620、6720和6820与ufs卡6530、6630、6730和6830可通过ufs协议以外的各种协议,例如,ufd、mmc、sd、迷你-sd和微型-sd彼此通信。

在图15所示的ufs系统6500中,主机6510、ufs装置6520以及ufs卡6530中的每一个可包括unipro。主机6510可执行交换操作,以便与ufs装置6520和ufs卡6530通信。特别地,主机6510可通过诸如unipro处的l3交换的链路层交换与ufs装置6520或ufs卡6530通信。此时,ufs装置6520和ufs卡6530可通过主机6510的unipro处的链路层交换来彼此通信。在本实施例中,为便于描述,已经例示了其中一个ufs装置6520和一个ufs卡6530连接到主机6510的配置。然而,多个ufs装置和ufs卡可并联或以星型形式连接到主机6410,并且多个ufs卡可并联或以星型形式连接到ufs装置6520,或者串联或以链型形式连接到ufs装置6520。

在图16所示的ufs系统6600中,主机6610、ufs装置6620和ufs卡6630中的每一个可包括unipro,并且主机6610可通过执行交换操作的交换模块6640,例如,通过在unipro处执行链路层交换例如l3交换的交换模块6640,来与ufs装置6620或ufs卡6630通信。ufs装置6620和ufs卡6630可通过在unipro处的交换模块6640的链路层交换来彼此通信。在本实施例中,为便于描述,已经例示了其中一个ufs装置6620和一个ufs卡6630连接到交换模块6640的配置。然而,多个ufs装置和ufs卡可并联或以星型形式连接到交换模块6640,并且多个ufs卡可串联或以链型形式连接到ufs装置6620。

在图17所示的ufs系统6700中,主机6710、ufs装置6720和ufs卡6730中的每一个可包括unipro,并且主机6710可通过执行交换操作的交换模块6740,例如,通过在unipro处执行链路层交换例如l3交换的交换模块6740,来与ufs装置6720或ufs卡6730通信。此时,ufs装置6720和ufs卡6730可通过在unipro处的交换模块6740的链路层交换来彼此通信,并且交换模块6740可在ufs装置6720内部或外部与ufs装置6720集成为一个模块。在本实施例中,为便于描述,已经例示了其中一个ufs装置6720和一个ufs卡6730连接到交换模块6740的配置。然而,每一个包括交换模块6740和ufs装置6720的多个模块可并联或以星型形式连接到主机6710,或者串联或以链型形式彼此连接。此外,多个ufs卡可并联或以星型形式连接到ufs装置6720。

在图18所示的ufs系统6800中,主机6810、ufs装置6820和ufs卡6830中的每一个可包括m-phy和unipro。ufs装置6820可执行交换操作以便与主机6810和ufs卡6830通信。特别地,ufs装置6820可通过在用于与主机6810通信的m-phy和unipro模块和用于与ufs卡6830通信的m-phy和unipro模块之间的交换操作,例如通过目标id(标识符)交换操作,来与主机6810或ufs卡6830通信。此时,主机6810和ufs卡6830可通过ufs装置6820的m-phy和unipro模块之间的目标id交换来彼此通信。在本实施例中,为便于描述,已经例示了其中一个ufs装置6820连接到主机6810,一个ufs卡6830连接到ufs装置6820的配置。然而,多个ufs装置可并联或以星型形式连接到主机6810或串联或以链型形式连接到主机6810,并且多个ufs卡可并联或以星型形式连接到ufs装置6820或串联或以链型形式连接到ufs装置6820。

图19是示意性示出包括根据实施例的存储器系统的数据处理系统的另一示例的示图。图19是示意性示出应用根据本实施例的存储器系统的用户系统的示图。

参照图19,用户系统6900可包括应用处理器6930、存储器模块6920、网络模块6940、存储模块6950和用户接口6910。

更具体地,应用处理器6930可驱动包括在用户系统6900中的诸如os的部件,并且包括控制包括在用户系统6900中的部件的控制器、接口和图形引擎。应用处理器6930可作为片上系统(soc)被提供。

存储器模块6920可用作用户系统6900的主存储器、工作存储器、缓冲存储器或高速缓冲存储器。存储器模块6920可包括诸如dram、sdram、ddrsdram、ddr2sdram、ddr3sdram、lpddrsdarm、lpddr2sdram或lpddr3sdram的易失性ram,或诸如pram、reram、mram或fram的非易失性ram。例如,可基于pop(堆叠封装)来封装并安装应用处理器6930和存储器模块6920。

网络模块6940可与外部装置通信。例如,网络模块6940不仅可支持有线通信,而且可支持各种无线通信协议,诸如码分多址(cdma)、全球移动通信系统(gsm)、宽带cdma(wcdma)、cdma-2000、时分多址(tdma)、长期演进(lte)、全球微波接入互操作性(wimax)、无线局域网(wlan)、超宽带(uwb)、蓝牙、无线显示器(wi-di),因此与有线/无线电子装置或特别是移动电子装置通信。因此,根据本发明的实施例的存储器系统和数据处理系统可应用于有线/无线电子装置。网络模块6940可被包括在应用处理器6930中。

存储模块6950可存储数据,例如从应用处理器6930接收的数据,然后可将所存储的数据传输到应用处理器6930。存储模块6950可通过诸如相变ram(pram)、磁性ram(mram)、电阻式ram(reram)、nand闪存、nor闪存和3dnand闪存的非易失性半导体存储器装置来实施,并且可被提供为诸如用户系统6900的存储卡或外部驱动器的可移动存储介质。存储模块6950可对应于参照图1和图5描述的存储器系统110。此外,存储模块6950可被实施为如上参照图13至图18所述的ssd、emmc和ufs。

用户接口6910可包括用于向应用处理器6930输入数据或命令或者用于将数据输出到外部装置的接口。例如,用户接口6910可包括诸如键盘、小键盘、按钮、触摸面板、触摸屏、触摸板、触摸球、摄像机、麦克风、陀螺仪传感器、振动传感器和压电元件的用户输入接口,以及诸如液晶显示器(lcd)、有机发光二极管(oled)显示装置、有源矩阵oled(amoled)显示装置、led、扬声器和马达的用户输出接口。

此外,当图1和图5的存储器系统110被应用于用户系统6900的移动电子装置时,应用处理器6930可控制移动电子装置的全部操作,并且网络模块6940可用作用于控制与外部装置的有线/无线通信的通信模块。用户接口6910可在移动电子装置的显示/触摸模块上显示由处理器6930处理的数据或支持从触摸面板接收数据的功能。

根据实施例的存储器系统及其操作方法可以使存储器系统的复杂度和性能劣化最小化并且使存储器装置的使用效率最大化,从而快速且稳定地处理关于存储器装置的数据。

虽然为了说明的目的已经描述各个实施例,但是对于本领域技术人员显而易见的是,在不脱离如所附权利要求所限定的本发明的精神和范围的情况下,可以进行各种改变和变型。

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