一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

存储器设备的制作方法

2021-05-07 22:47:00 来源:中国专利 TAG:韩国 引用 公开 申请 优先权
存储器设备的制作方法

相关申请的交叉引用

本申请根据35u.s.c.§119(a)要求于2019年10月21日向韩国知识产权局提交的韩国专利申请第10-2019-0130968号的优先权,其全部公开内容通过引用并入本文。

本公开一般涉及一种电子设备,更具体地涉及一种能够存储数据的存储器设备。



背景技术:

最近,计算机环境的范例已经被变换为普适计算,这使得计算系统能够在任何地方和任何时间使用。这便于增加对诸如移动电话、数码相机、笔记本计算机等之类的便携式电子设备的使用。这种便携式电子设备通常可以包括使用存储器设备(即,数据存储设备)的存储器系统。数据存储设备用作便携式电子设备的主存储器设备或辅助存储器设备。

由于没有机械驱动部件,所以使用存储器设备的数据存储设备具有优异的稳定性和耐久性、高信息访问速度、以及低功耗。在具有这种优点的存储器系统的示例中,数据存储设备包括通用串行总线(usb)存储器设备、具有各种接口的存储器卡、固态驱动器(ssd)等。



技术实现要素:

根据本公开的一个方面,提供了一种存储器设备,包括存储器单元阵列,其包括多个存储器块;外围电路,其被配置为对多个存储器块中的选定存储器块执行编程操作,并且被配置为在编程操作期间将选定存储器块中包括的存储器单元编程为多个编程状态;以及控制逻辑,其被配置为控制外围电路执行编程操作,其中控制逻辑被配置为对编程操作期间所使用的编程脉冲数目进行计数,并且被配置为基于经计数的编程脉冲数目来确定选定存储器块是否为坏块。

根据本公开的另一方面,提供了一种存储器设备,包括存储器单元阵列,其包括多个存储器块;外围电路,其被配置为对多个存储器块中的选定存储器块执行编程操作,并且被配置为在编程操作期间将选定存储器块中包括的存储器单元编程为多个编程状态;以及控制逻辑,其被配置为控制外围电路执行编程操作,其中控制逻辑被配置为通过对编程操作期间所使用的编程脉冲数目进行计数来设置多个编程脉冲计数范围,并且被配置为基于多个设置的编程脉冲计数范围之外的存储器单元的数目来确定选定存储器块是否为坏块。

根据本公开的又一方面,提供了一种存储器设备,包括存储器块,其包括多个页;外围电路,其被配置为对存储器块执行编程操作,并且被配置为通过在编程操作期间顺序选择多个页来执行编程操作;以及控制逻辑,其被配置为控制外围电路执行编程操作,其中控制逻辑被配置为对多个页中的每个页的编程脉冲进行计数,并且被配置为基于多个页中的每个页的编程脉冲来确定存储器块是否为坏块。

附图说明

现在,下文中参考附图对示例实施例进行更充分的描述;然而,它们可以以不同的形式来体现,并且不应被解释为限于本文中所阐述的实施例。相反,提供这些实施例使得本公开将是透彻和完整的,并且将示例实施例的范围充分传达给本领域技术人员。

在附图中,为了说明清楚,可能会放大尺寸。应当理解,当元件被称为位于两个元件“之间”时,该元件可以是两个元件之间的唯一元件,或者还可以存在一个或多个中间元件。贯穿全文,相似的参考标记是指相似的元件。

图1是图示了根据本公开的实施例的存储器系统的框图。

图2是图示了图1所示的存储器设备的图。

图3是图示了图2所示的存储器块的图。

图4是图示了三维配置的存储器块的实施例的图。

图5是图示了图2所示的控制逻辑的实施例的框图。

图6是图示了根据本公开的实施例的存储器系统的操作方法的流程图。

图7是图示了存储器单元的擦除状态和编程状态的阈值电压分布图。

图8是图示了图2所示的控制逻辑的另一实施例的框图。

图9是图示了根据本公开的另一实施例的存储器系统的操作方法的流程图。

图10是图示了图2所示的控制逻辑的又一实施例的框图。

图11是图示了根据本公开的又一实施例的存储器系统的操作方法的流程图。

图12是图示了存储器系统的另一实施例的图。

图13是图示了存储器系统的另一实施例的图。

图14是图示了存储器系统的另一实施例的图。

图15是图示了存储器系统的另一实施例的图。

具体实施方式

本文中所公开的具体结构或功能描述仅用于说明描述根据本公开的概念的实施例的目的。根据本公开的概念的实施例可以以各种形式实现,并且不能被解释为限于本文中所阐述的实施例。

在下文中,参考附图对本公开的示例性实施例进行详细描述,以使本领域技术人员能够容易地实现本公开的技术精神。

各个实施例提供一种数据可靠性得以改善的存储器设备。

图1是图示了根据本公开的实施例的存储器系统的框图。

参考图1,存储器系统1000可以包括存储器设备1100,其被配置为存储数据;以及存储器控制器1200,其被配置为基于主机2000来控制存储器设备1100。

主机2000可以通过使用诸如外围组件互连快速(pci-e)、高级技术附件(ata)、串行ata(sata)、并行ata(pata)或串行附接scsi(sas)之类的接口协议与存储器系统1000进行通信。另外,主机2000与存储器系统1000之间的接口协议不限于上文所描述的示例,并且可以是诸如通用串行总线(usb)、多媒体卡(mmc)、增强型小磁盘接口(esdi)、以及集成驱动电子设备(ide)之类的其他接口协议中的一个接口协议。

存储器控制器1200可以控制存储器系统1000的操作并且控制主机2000与存储器设备1100之间的数据交换。例如,存储器控制器1200可以通过基于来自主机2000的请求来控制存储器设备1100来编程或读取数据。在编程操作期间,存储器控制器1200向存储器设备1100传输与编程操作相对应的命令cmd、地址add和要编程数据data。此外,在读取操作中,存储器控制器1200可以接收和临时存储从存储器设备1100读取的数据data,并且向主机2000传输临时存储的数据data。

存储器控制器1200可以包括坏块管理器1210。坏块管理器1210可以通过从存储器设备1100接收坏块信息bb_info来更新和存储关于存储器设备1100中包括的多个存储器块中的坏块的信息。坏块管理器1210可以控制存储器设备1100,使得坏块不会基于存储的关于坏块的信息来在存储器设备1100的一般操作中进行选择。在一些实施例中,存储器设备1100可以包括双倍数据速率同步动态随机存取存储器(ddrsdram)、低功率双倍数据速率4(lpddr4)sdram、图形双倍数据速率(gddr)sram、低功率ddr(lpddr)、rambus动态随机存取存储器(rdram)或闪存。

存储器设备1100可以基于存储器控制器1200来执行编程操作、读取操作、或擦除操作。

在本公开的一个实施例中,存储器设备1100可以将选定存储器块中包括的存储器单元编程为擦除状态和多个编程状态。存储器设备1100可以通过基于对多个编程状态的编程操作期间所使用的编程脉冲计数值来确定选定存储器块是正常存储器块还是坏块来生成坏块信息bb_info。

例如,存储器设备1100可以将选定存储器块中包括的存储器单元编程为擦除状态和多个编程状态,并且在多个编程状态中的每个编程状态的编程操作期间,通过基于与首先通过编程的存储器单元相对应的编程脉冲计数和与最后一个通过编程的存储器单元相对应的编程脉冲计数的差值来确定对应存储器块是为正常存储器块还是坏块来生成坏块信息bb_info。

例如,存储器设备1100可以将选定存储器块中包括的存储器单元编程为擦除状态和多个编程状态,并且基于多个编程状态中的每个编程状态的编程操作期间所使用的编程脉冲数目来设置编程脉冲计数范围。存储器设备1100可以通过将设置的编程脉冲计数范围之外的存储器单元的数目与参考存储器单元数目进行比较并且确定对应的存储器块是正常存储器块还是坏块来生成坏块信息bb_info。

例如,存储器设备1100可以以页为单位对选定存储器块中包括的存储器单元进行编程,并且通过基于每个页上的编程操作期间所使用的编程脉冲计数来确定对应存储器块是正常存储器块还是坏块来生成坏块信息bb_info。

图2是图示了图1所示的存储器设备的图。

参考图2,存储器设备1100可以包括其中存储数据的存储器单元阵列100。存储器设备1100可以包括外围电路200,该外围电路200被配置为执行编程操作以将数据存储在存储器单元阵列100中,执行读取操作以输出存储的数据,以及执行擦除操作以擦除存储的数据。存储器设备1100可以包括控制逻辑300,该控制逻辑300基于存储器控制器(图1所示的1200)来控制外围电路200。

存储器单元阵列100可以包括多个存储器块mb1至mbk110(k是正整数)。局部线ll和位线bl1至blm(m是正整数)可以耦合到存储器块mb1至mbk110中的每个存储器块。例如,局部线ll可以包括第一选择线、第二选择线、以及布置在第一选择线和第二选择线之间的多条字线。此外,局部线ll可以包括伪线,该伪线布置在第一选择线和字线之间以及第二选择线和字线之间。第一选择线可以是源极选择线,而第二选择线可以是漏极选择线。例如,局部线ll可以包括字线、漏极选择线和源极选择线、以及源极线sl。例如,局部线ll还可以包括伪线。例如,局部线ll还可以包括管线。局部线ll可以耦合到存储器块mb1至mbk110中的每个存储器块,并且位线bl1至blm可以共同耦合到存储器块mb1至mbk110。存储器块mb1至mbk110可以以二维结构或三维结构实现。例如,存储器单元可以沿平行于衬底的方向布置在具有二维结构的存储器块110中。例如,存储器单元可以沿垂直于衬底的方向布置在具有三维结构的存储器块110中。

外围电路200可以被配置为基于控制逻辑300来对选定存储器块110执行编程操作、读取操作、以及擦除操作。例如,外围电路200可以包括电压生成电路210、行解码器220、页缓冲器组230、列解码器240、输入/输出电路250、通过/失败检查电路260、以及源极线驱动器270。

电压生成电路210可以基于操作信号op_cmd来生成用于编程操作、读取操作和擦除操作的各种操作电压vop。此外,电压生成电路210可以基于操作信号op_cmd来选择性地使局部线ll放电。例如,电压生成电路210可以基于控制逻辑300来生成编程电压、验证电压、以及通过电压。

行解码器220可以基于行解码器控制信号ad_信号来向耦合到选定存储器块110的局部线ll传送操作电压vop。例如,在编程操作期间,行解码器220可以基于行解码器控制信号ad_信号来将电压生成电路210所生成的编程电压施加到局部线ll中的选定字线,并且将电压生成电路210所生成的通过电压施加到其他未选择字线。

页缓冲器组230可以包括多个页缓冲器pb1至pbm231,其耦合到位线bl1至blm。页缓冲器pb1至pbm231可以基于页缓冲器控制信号pbsignals来进行操作。例如,页缓冲器pb1至pbm231可以临时存储要在编程操作期间编程的数据,并且可以基于临时存储的要编程数据来调整位线bl1至blm的电位电平。此外,页缓冲器pb1至pbm231可以在读取操作或编程验证操作中感测位线bl1至blm的电压或电流。

列解码器240可以基于列地址cadd来在输入/输出电路250与页缓冲器组230之间传送数据。例如,列解码器240可以通过数据线dl与页缓冲器231交换数据,或者列解码器240可以通过列线cl与输入/输出电路250交换数据。

输入/输出电路250可以将从存储控制器(图1所示的1200)接收的命令cmd和地址add传送到控制逻辑300,或者输入/输出电路250可以与列解码器240交换数据data。输入/输出电路250可以将从控制逻辑300接收的坏块信息bb_info传输到外部设备(例如,图1所示的存储器控制器1200)。

在读取操作或编程验证操作中,通过/失败检查电路260可以基于允许位vry_bit<#>来生成参考电流,并且可以通过将从页缓冲器组230接收的感测电压vpb与参考电流所生成的参考电压进行比较来输出通过信号pass或失败信号fail。感测电压vpb可以是基于在编程验证操作期间被确定为通过的存储器单元的数目来控制的电压。

源极线驱动器270可以通过源极线sl耦合到存储器单元阵列110中包括的存储器单元,并且可以控制施加到源极线sl的电压。源极线驱动器270可以从控制逻辑300接收源极线控制信号ctrl_sl,并且可以基于源极线控制信号ctrl_sl来控制施加到源极线sl的源极线电压。

控制逻辑300可以通过基于命令cmd和地址add来输出操作信号op_cmd、行解码器控制信号ad_信号、页缓冲器控制信号pbsignals、以及允许位vry_bit<#>来控制外围电路200。此外,控制逻辑300可以在编程操作期间对编程脉冲数目进行计数,并且可以基于经计数的编程脉冲数目来确定对其执行编程操作的存储器块是否为坏块。

在一个实施例中,在选定存储器块的编程操作期间的多个编程状态中的每个编程状态的编程操作期间,控制逻辑300可以检查当检测到首先通过编程的存储器单元时的编程脉冲计数(以下称为第一编程脉冲计数),并且检查当检测到最后一个通过编程的存储器单元时的编程脉冲计数(以下称为最后一个编程脉冲计数)。控制逻辑300可以通过基于第一编程脉冲计数和最后一个编程脉冲计数的差值来确定对应存储器块是正常存储器块还是坏块来生成坏块信息bb_info。

在另一实施例中,控制逻辑300可以计算选定存储器块的编程操作期间的多个编程状态中的每个编程状态的编程操作期间所使用的编程脉冲数目的平均值。控制逻辑300可以基于平均值来设置与多个编程状态中的每个编程状态相对应的编程脉冲计数范围。控制逻辑300可以对设置的编程脉冲计数范围之外的存储器单元的数目进行计数,并且可以通过将经计数的存储器单元的数目与参考存储器单元数目进行比较并且通过确定对应存储器块是正常存储器块还是坏块来生成坏块信息bb_info。

在又一实施例中,控制逻辑300可以检查选定存储器块中包括的与多个页的每个页的编程操作期间所使用的多个编程状态相对应的编程脉冲计数。控制逻辑300可以通过比较与多个页中的每个页的多个编程状态相对应的检查的编程脉冲计数并且通过确定对应存储器块是正常存储器块还是坏块来生成坏块信息bb_info。

图3是图示了图2所示的存储器块的图。

参考图3,在存储器块110中,彼此平行布置的多条字线可以耦合在第一选择线与第二选择线之间。第一选择线可以是源极选择线ssl,而第二选择线可以是漏极选择线dsl。更具体地,存储器块110可以包括多个串st,其耦合在位线bl1至blm与源极线sl之间。位线bl1至blm可以分别耦合到串st,并且串st可以共同耦合到源极线sl。串st可以彼此相同地配置,因此,作为示例,对耦合到第一位线bl1的串st进行详细描述。

串st可以包括源极选择晶体管sst、多个存储器单元f1至f16、以及漏极选择晶体管dst,它们全部串联耦合在源极线sl与第一位线bl1之间。然而,源极选择晶体管sst、存储器单元、以及漏极选择晶体管的数目不限于此。例如,不同的实施例可以包括多于16个的存储器单元。

源极选择晶体管sst的源极可以耦合到源极线sl,而漏极选择晶体管dst的漏极可以耦合到第一位线bll。存储器单元f1至f16可以串联在源极选择晶体管sst与漏极选择晶体管dst之间。不同串st中包括的源极选择晶体管sst的栅极可以耦合到源极选择线ssl,不同串st中包括的漏极选择晶体管dst的栅极可以耦合到漏极选择线dsl,并且不同串st中包括的存储器单元f1至f16可以耦合到多条字线wl1至wl16。不同串st中包括的耦合到存储器单元中的同一字线的存储器单元组可以被称为页ppg。因此,数目与字线wl1至wl16的数目相对应的页ppg可以包括在存储器块110中。

图4是图示了三维配置的存储器块的实施例的图。

参考图4,存储器单元阵列100可以包括多个存储器块mb1至mbk110。存储器块110可以包括多个串st11至st1m和st21至st2m。在一个实施例中,多个串st11至st1m和st21至st2m中的每个串可以形成为‘i’形或‘u’形。在第一存储器块mb1中,可以沿行方向(x方向)布置m个串。尽管图4中图示了沿列方向(y方向)布置两个串的情况,但是这仅仅是为了方便描述,并且可以沿列方向(y方向)布置三个或更多个串。

多个串st11至st1m和st21至st2m中的每个串可以包括至少一个源极选择晶体管sst、第一存储器单元mc1至第n存储器单元mcn、以及至少一个漏极选择晶体管dst。

每个串的源极选择晶体管sst可以耦合在源极线sl与存储器单元mc1至mcp之间。

布置在同一行中的串的源极选择晶体管可以耦合到同一源极选择线。布置在第一行上的串st11至st1m的源极选择晶体管可以耦合到第一源极选择线ssl1。布置在第二行上的串st21至st2m的源极选择晶体管可以耦合到第二源极选择线ssl2。在另一实施例中,串st11至st1m和st21至st2m的源极选择晶体管可以共同耦合到一条源极选择线。

每个串的第一存储器单元mcl至第n存储器单元mcn可以在源极选择晶体管sst与漏极选择晶体管dst之间彼此串联耦合。第一存储器单元mc1至第n存储器单元mcn的栅极可以分别耦合到第一字线wl1至第n字线wln。

在一个实施例中,第一存储器单元mcl至第n存储器单元mcn中的至少一个存储器单元可以用作伪存储器单元。当提供伪存储器单元时,可以稳定控制对应串的电压或电流。因而,可以提高存储器块110中的数据存储的可靠性。

每个串的漏极选择晶体管dst可以耦合到位线和存储器单元mc1至mcn。沿行方向布置的串的漏极选择晶体管dst可以耦合到沿行方向延伸的漏极选择线。第一行上的串st11至st1m的漏极选择晶体管dst可以耦合到第一漏极选择线dsl1。第二行上的串st21至st2m的漏极选择晶体管dst可以耦合到第二漏极选择线dsl2。

图5是图示了图2所示的控制逻辑的实施例的框图。

参考图5,控制逻辑300可以包括编程脉冲计数器310a、计算电路320a、比较电路330a、以及坏块信息生成电路340a。

编程脉冲计数器310a可以通过使用增量步进脉冲编程(ispp)方法在编程操作期间对编程脉冲数目进行计数。编程脉冲计数器310a可以生成和输出多个编程状态中的每个编程状态的第一编程脉冲计数信号脉冲_计数_快和最后一个编程脉冲计数信号脉冲_计数_慢。第一编程脉冲计数信号脉冲_计数_快可以是代表当在基于多个编程状态中的选定编程状态的编程验证操作期间检测到首先通过编程的存储器单元(快速单元)时的编程脉冲计数的信号。另一方面,最后一个编程脉冲计数信号脉冲_计数_慢可以是代表当在基于选定编程状态的编程验证操作期间检测到最后通过编程的存储器单元(缓慢单元)时的编程脉冲计数的信号。

计算电路320a可以基于从编程脉冲计数器310a接收的第一编程脉冲计数信号脉冲_计数_快和最后一个编程脉冲计数信号脉冲_计数_慢来计算和输出与多个编程状态中的每个编程状态相对应的多个计数差值dv_计数_pv#。多个计数差值dv_计数_pv#可以对应于多个编程状态中的每个编程状态的第一编程脉冲计数和最后一个编程脉冲计数之间的计数数目差。

比较电路330a可以通过将与多个编程状态中的每个编程状态相对应的多个计数差值dv_计数_pv#和与多个编程状态的每个编程状态相对应的多个参考差值rv_计数_pv#进行比较来输出与坏块相对应的通过信号ps或失败信号fs。多个参考差值rv_计数_pv#可以彼此相等或不同。例如,当多个计数差值dv_计数_pv#全部等于或小于多个对应参考差值rv_计数_pv#时,比较电路330a可以输出通过信号ps。当多个计数差值dv_计数_pv#中的至少一个计数差值大于多个对应参考差值rv_计数_pv#时,比较电路330a可以输出失败信号fs。

坏块信息生成电路340a可以基于从比较电路330a接收的通过信号ps或失败信号fs来生成和输出对其执行编程操作的选定存储器块的坏块信息bb_info。例如,当从比较电路330a接收到通过信号ps时,坏块信息生成电路340a可以确定选定存储器块是否为正常存储器块,并且可以生成和输出坏块信息bb_info,该坏块信息bb_info包括指示选定存储器块已经被确定为正常存储器块的信息。另一方面,当从比较电路330a接收到失败信号fs时,坏块信息生成电路340a确定选定存储器块是否为坏块,并且可以生成和输出坏块信息bb_info,该坏块信息bb_info包括指示选定存储器块已经被确定为坏块的信息。

如上文所描述的,控制逻辑300可以在选定存储器块的编程操作期间检查与多个编程状态中的每个编程状态相对应的第一编程脉冲计数和最后一个编程脉冲计数,可以通过使用检查的第一编程脉冲计数和检查的最后一个编程脉冲计数来计算与多个编程状态中的每个编程状态相对应的多个计数差值dv_计数_pv#,可以将多个计数差值dv_计数_pv#中的每个计数差值与多个参考差值rv_计数_pv#中的对应参考差值进行比较,并且可以基于比较结果来生成和输出坏块信息bb_info,该坏块信息bb_info包括指示选定存储器块已经被确定为正常存储器块还是坏块的信息。

图6是图示了根据本公开的实施例的存储器系统的操作方法的流程图。

图7是图示了存储器单元的擦除状态和编程状态的阈值电压分布图。参考图7,存储器单元可以在编程操作期间从擦除状态p0编程为多个编程状态p1至p7。

下文参考图1至图7对根据本公开的实施例的存储器系统的操作方法进行描述。

当从主机2000接收与编程操作相对应的请求时,存储器控制器1200可以基于来自主机2000的请求来生成与编程操作相对应的编程命令cmd。存储器设备1100可以从存储器控制器1200接收编程命令cmd、地址add、以及数据data(s610)。

存储器设备1100可以基于接收的编程命令cmd和接收的地址add来从多个存储器块mb1至mbk中选择要对其执行编程操作的存储器块(例如,mb1),可以以页为单位对选定存储器块(例如,mb1)进行顺序编程,并且可以在通过使用ispp方法对选定页ppg进行的编程操作期间基于多个编程状态中的选定编程状态来执行编程操作(s620)。例如,存储器设备1100可以基于在多个编程状态p1至p7中具有最低阈值电压的编程状态来顺序执行编程操作。例如,存储器设备1100可以通过首先在第一编程状态p1至第七编程状态p7中选择第一编程状态p1来执行编程操作,并且可以通过最后选择第七编程状态p7来执行编程操作。也就是说,存储器设备1100可以通过顺序选择第一编程状态p1至第七编程状态p7来执行编程操作。

在使用ispp方法执行的基于选定编程状态的编程操作期间,执行将编程电压施加到选定页ppg中包括的存储器单元的编程电压施加操作。可以通过执行编程验证操作来检测选定页ppg中包括的存储器单元中被确定为编程失败的存储器单元。当检测到被确定为编程失败的存储器单元时,可以通过使用新编程电压从编程电压施加操作来重新执行上文所描述的操作。当选定页ppg中包括的所有存储器单元被确定为编程通过时,可以确定基于选定编程状态的编程操作已经完成。

这将进行更详细的描述。页缓冲器组230可以基于页缓冲器控制信号pbsignals临时存储通过输入/输出电路250和列解码器240接收的要编程数据data。页缓冲器组230可以基于临时存储的数据data来将编程禁止电压或编程允许电压施加到位线bl1至blm。编程禁止电压可以是电源电压,并且编程允许电压可以是接地电压或电位比编程禁止电压的电位低的电压。

电压生成电路210可以基于操作信号op_cmd来生成和输出操作电压vop,该操作电压vop包括编程操作期间所使用的编程电压和通过电压。行解码器220可以基于行解码器控制信号ad_信号来将操作电压vop传送到耦合到选定存储器块110的局部线ll。例如,行解码器220可以基于行解码器控制信号ad_信号来将由电压生成电路210生成的编程电压施加到局部线ll中的选定字线。行解码器220可以在编程操作期间通过将电压生成电路210所生成的通过电压施加到其他未选择的字线来执行编程电压施加操作。

页缓冲器组230可以基于页缓冲器信号pbsignals来执行编程验证操作,可以将编程允许电压施加到与由于编程验证操作而被确定为编程失败的存储器单元相对应的位线,并且可以将编程禁止电压施加到与被确定为编程通过的存储器单元相对应的位线。

在编程验证操作期间,通过/失败检查电路260可以基于允许位vry_bit<#>来生成参考电流,并且可以通过将从页缓冲器组230接收的感测电压vpb与参考电流所生成的参考电压进行比较来输出通过信号pass或失败信号fail。因而,控制逻辑300可以确定基于选定编程状态的编程操作是已经通过还是已经失败。

当确定编程操作已经失败时,控制逻辑300可以控制电压生成电路210生成新编程电压,其中电压是比先前编程电压高的阶跃电压;并且可以控制外围电路200从编程电压施加操作重新执行上文所描述的操作。另外,控制逻辑300的编程脉冲计数器310a可以对施加到与选定页ppg相对应的字线的编程电压在通过使用ispp方法进行的编程操作期间的施加次数(即,编程脉冲数目)进行计数。

当基于选定编程状态的编程操作(s620)完成时,编程脉冲计数器310a可以检查选定编程状态的第一编程脉冲计数和最后一个编程脉冲计数(s630),并且可以基于检查结果来生成和输出第一编程脉冲计数信号脉冲_计数_快和最后一个编程脉冲计数信号脉冲_计数_慢。编程脉冲计数器310a可以基于从页缓冲器组230输出的感测电压vpb来检查当检测到首先通过了对对应编程状态的编程验证操作的存储器单元时的编程脉冲计数作为第一编程脉冲计数。此外,编程脉冲计数器310a可以基于从页缓冲器组230输出的感测电压vpb来检查当检测到通过了对对应编程状态的编程验证操作的所有存储器单元时的编程脉冲计数作为最后一个编程脉冲计数。

计算电路320a可以基于从编程脉冲计数器310a接收的第一编程脉冲计数信号脉冲_计数_快和最后一个编程脉冲计数信号脉冲_计数_慢来计算和输出与选定编程状态相对应的计数差值dv_计数_pv#(s640)。

比较电路330a可以将与选定编程状态相对应的计数差值dv_计数_pv#与参考差值rv_计数_pv#进行比较(s650)。例如,当计数差值dv_计数_pv#等于或小于参考差值rv_计数_pv#时,比较电路330a可以输出通过信号ps,并且当计数差值dv_计数_pv#大于参考差值rv_计数_pv#时,比较电路330a可以输出失败信号fs。

当从比较电路330a输出失败信号fs时,计数差值dv_计数_pv#大于参考差值rv_计数_pv#(否),坏块信息生成电路340可以生成和输出坏块信息bb_info,其中该信息指示选定存储器块mb1已经基于从比较电路330c接收的失败信号fs而被确定为坏块。更进一步地,从控制逻辑300输出的坏块信息bb_info可以被传输到存储器控制器1200的坏块管理器1210。坏块管理器1210可以通过从存储器设备1100接收坏块信息bb_info来将选定存储器块mb1更新和注册为坏块。

当从比较电路330a输出通过信号ps时,计数差值dv_计数_pv#等于或小于参考差值rv_计数_pv#(是),控制逻辑300可以确定当前编程状态是否为最后一个编程状态(例如,p7),其中在编程操作期间最后对存储器单元进行编程(s670)。

当在上文所描述的确定步骤s670中确定当前编程状态是最后一个编程状态时(是),编程操作可以结束。当在上文所确定的确定步骤s670中确定当前编程状态不是最后一个编程状态时(否),可以选择下一编程状态(s680),并且可以在步骤s620处重新执行上文所描述的步骤。

在上文所描述的操作方法中,当完成对选定存储器块中包括的选定页的编程操作时,可以通过选择下一页来重新执行上文所描述的步骤s620至s680。

如上文所描述的,根据本公开的实施例,使用检查的第一编程脉冲计数和检查的最后一个编程脉冲计数来计算第一编程脉冲计数和最后一个编程脉冲计数以及多个计数差值dv_计数_pv#,该第一编程脉冲计数和最后一个编程脉冲计数与在选定存储器的编程操作期间检查的多个编程状态中的每个编程状态相对应,并且该多个计数差值dv_计数_pv#与多个编程状态中的每个编程状态相对应。多个计数差值dv_计数_pv#中的每个计数差值可以与多个参考差值rv_计数_pv#中的对应参考差值进行比较,并且选定存储器块可以基于比较结果来被确定为坏块。也就是说,在编程操作期间,基于第一编程脉冲计数和最后一个编程脉冲计数而具有大差值的存储器块被确定为坏块。

图8是图示了图2所示的控制逻辑的另一实施例的框图。

参考图8,根据本公开的另一实施例的控制逻辑300可以包括编程脉冲计数器310、计算电路320b、寄存器330b、单元数目计数器340b、比较电路350b、以及坏块信息生成电路360b。

编程脉冲计数器310b可以通过使用增量步进脉冲编程(ispp)方法对编程操作期间的编程脉冲数目进行计数来生成编程脉冲计数信号脉冲_计数,并且生成和输出多个编程状态中的每个编程状态的第一编程脉冲计数信号脉冲_计数_快和最后一个编程脉冲计数信号脉冲_计数_慢。第一编程脉冲计数信号脉冲_计数_快可以是代表当在基于多个编程状态中的选定编程状态的编程验证操作期间检测到首先通过编程的存储器单元(快单元)时的编程脉冲计数的信号,并且最后一个编程脉冲计数信号脉冲_计数_慢可以是代表在基于选定编程状态的编程验证操作期间检测到最后通过编程的存储器单元(慢单元)时的编程脉冲计数的信号。

计算电路320b可以基于从编程脉冲计数器310b接收的第一编程脉冲计数信号脉冲_计数_快和最后一个编程脉冲计数信号脉冲_计数_慢来计算与多个编程状态中的每个编程状态相对应的编程脉冲计数的平均值。计算电路320b可以通过基于所计算的编程脉冲计数的平均值来设置与多个编程状态中的每个编程状态相对应的编程脉冲计数范围来生成和输出编程脉冲计数范围信号脉冲_计数_范围_pv#。

例如,当第一编程脉冲计数为5时,最后一个编程脉冲计数为9,并且编程脉冲计数范围为编程脉冲计数的平均值的±1,编程脉冲计数的平均值可以为7,并且编程脉冲计数范围可以为6到8。

寄存器330b可以接收和存储从计算电路320b输出的编程脉冲计数范围信号脉冲_计数_范围_pv#,并且可以接收和存储通过对从单元数目计数器340b输出的每个编程脉冲中的通过编程的存储器单元的数目进行计数而获得的单元计数信号单元_计数。此外,寄存器330b可以基于编程脉冲计数范围信号脉冲_计数_范围_pv#和单元计数信号单元_计数来生成和输出单元计数输出信号单元_计数_输出_pv#,该单元计数输出信号单元_计数_输出_pv#代表编程脉冲计数范围之外的存储器单元的数目。

单元数目计数器340b可以通过基于从编程脉冲计数器310b接收的编程脉冲计数信号脉冲_计数和在编程验证操作期间从页缓冲器组230接收的感测电压vpb来对每个编程脉冲中被确定为编程通过的存储器单元的数目进行计数来生成和输出单元计数信号单元_计数。

比较电路350b可以接收与多个编程状态中的每个编程状态相对应的多个单元计数输出信号单元_计数_输出_pv#和与多个编程状态中的每个编程状态的参考存储器单元数目相对应的参考单元计数信号rv_单元_计数_pv#,并且比较电路350b可以通过将编程脉冲计数范围之外的存储器单元的数目与参考存储器单元数目进行比较来输出与坏块相对应的通过信号ps或失败信号fs。与多个编程状态相对应的参考存储器单元数目可以彼此相等或不同。当编程脉冲计数范围之外的存储器单元的数目等于或小于参考存储器单元数目时,比较电路350b可以输出通过信号ps。当编程脉冲计数范围之外的存储器单元的数目大于参考存储器单元数目时,比较电路350b可以输出失败信号fs。

坏块信息生成电路360b可以生成和输出基于从比较电路350b接收的通过信号ps或失败信号fs来对其执行编程操作的选定存储器块的坏块信息bb_info。例如,当从比较电路350b接收到通过信号ps时,坏块信息生成电路360b可以确定选定存储器块是否为正常存储器块,并且可以生成和输出坏块信息bb_info,其中该信息指示选定存储器块已经被确定为正常存储器块。另一方面,当从比较电路350b接收到失败信号fs时,坏块信息生成电路360b可以确定选定存储器块是否为坏块,并且可以生成和输出坏块信息bb_info,其中该信息指示选定存储器块已经被确定为坏块。

如上文所描述的,在选定存储器块的编程操作期间,控制逻辑300可以通过计算与多个编程状态中的每个状态相对应的编程脉冲计数平均值来设置编程脉冲计数范围。控制逻辑300可以生成和输出坏块信息bb_info,其中该信息指示选定存储器块已经基于设置的编程脉冲计数范围之外的存储器单元的数目而被确定为正常存储器块或坏块。

图9是图示了根据本公开的另一实施例的存储器系统的操作方法的流程图。

根据本公开的另一实施例,下文参考图1至图4、图7和图9对存储器系统的操作方法进行描述。

当从主机2000接收与编程操作相对应的请求时,存储器控制器1200基于来自主机2000的请求来生成与编程操作相对应的编程命令cmd。存储器设备1100从存储器控制器2000接收编程命令cmd、地址add、以及要编程数据data(s910)。

存储器设备1100可以基于接收的编程命令cmd和接收的地址add来在多个存储器块mb1至mbk中选择要对其执行编程操作的存储器块(例如,mb1),以页为单位对选定存储器块(例如,mb1)进行顺序编程,并且在通过使用ispp方法对选定页ppg进行的编程操作期间从多个编程状态中的一个选定编程状态执行编程操作(s920)。例如,存储器设备1100可以基于在多个编程状态p1至p7中具有最低阈值电压的编程状态来顺序执行编程操作。例如,存储器设备1100可以通过首先从第一编程状态p1至第七编程状态p7中选择第一编程状态p1来执行编程操作,并且通过最后选择第七编程状态p7来执行编程操作。也就是说,存储器设备1100可以通过顺序选择第一编程状态p1至第七编程状态p7来执行编程操作。

在使用ispp方法执行的基于选定编程状态的编程操作期间,执行向选定页ppg中包括的存储器单元施加编程电压的编程电压施加操作,并且存储器单元中的选定页ppg中包括的被确定为编程失败的存储器单元可以通过执行编程验证操作来检测。当检测到被确定为编程失败的存储器单元时,可以通过使用新编程电压从编程电压施加操作来重新执行上文所描述的操作。当选定页ppg中包括的所有存储器单元被确定为编程通过时,可以确定基于选定编程状态的编程操作已经完成。

这将进行更详细的描述。页缓冲器组230可以基于页缓冲器控制信号pbsignals临时存储通过输入/输出电路250和列解码器240接收的要编程数据data。页缓冲器组230可以基于临时存储的数据data来将编程禁止电压或编程允许电压施加到位线bl1至blm。编程禁止电压可以是电源电压,并且编程允许电压可以是接地电压或电位比编程禁止电压的电位低的电压。

电压生成电路210可以基于操作信号op_cmd来生成和输出操作电压vop,该操作电压vop具有编程操作期间所使用的编程电压和通过电压。行解码器220可以基于行解码器控制信号ad_信号来将操作电压vop传送到耦合到选定存储器块110的局部线ll。例如,行解码器220可以基于行解码器控制信号ad_信号来将电压生成电路210所生成的编程电压施加到局部线ll中的选定字线。行解码器220可以在编程操作期间通过将电压生成电路210所生成的通过电压施加到其他未选择的字线来执行编程电压施加操作。

页缓冲器组230可以基于页缓冲器信号pbsignals来执行编程验证操作,可以将编程允许电压施加到与由于编程验证操作而被确定为编程失败的存储器单元相对应的位线,并且可以将编程禁止电压施加到与被确定为编程通过的存储器单元相对应的位线。

在编程验证操作期间,通过/失败检查电路260可以基于允许位vry_bit<#>来生成参考电流,并且可以通过将从页缓冲器组230接收的感测电压vpb与参考电流所生成的参考电压进行比较来输出通过信号pass或失败信号fail。因而,控制逻辑300可以确定基于选定编程状态的编程操作是已经通过还是已经失败。

当确定编程操作已经失败时,控制逻辑300可以控制电压生成电路210生成新编程电压,其中电压是比先前编程电压高的阶跃电压;并且可以控制外围电路200从编程电压施加操作重新执行上文所描述的操作。另外,控制逻辑300的编程脉冲计数器310b可以对施加到与选定页ppg相对应的字线的编程电压在通过使用ispp方法进行的编程操作期间的施加次数(即,编程脉冲数目)进行计数。

当基于选定编程状态的编程操作(s920)完成时,编程脉冲计数器310b可以在编程操作期间基于编程脉冲数目来生成编程脉冲计数信号脉冲_计数。编程脉冲计数器310b可以生成和输出多个编程状态中的每个编程状态的第一编程脉冲计数信号脉冲_计数_快和最后一个编程脉冲计数信号脉冲_计数_慢。计算电路320b可以基于从编程脉冲计数器310b接收的第一编程脉冲计数信号脉冲_计数_快和最后一个编程脉冲计数信号脉冲_计数_慢来计算与选定编程状态相对应的编程脉冲计数的平均值(s930)。

计算电路320b可以基于计算的编程脉冲计数的平均值来设置与选定编程状态相对应的编程脉冲计数范围。寄存器330b可以基于用于对从单元数目计数器340b输出的每个编程脉冲中的通过编程的存储器单元的数目进行计数的单元计数信号单元_计数以及编程脉冲计数范围信号脉冲_计数_范围_pv#来对编程脉冲计数范围之外的存储器单元进行计数(s940)。

比较电路330b可以将与选定编程状态相对应的编程脉冲计数范围之外的存储器单元的数目与参考存储器单元数目进行比较来输出通过信号ps或失败信号fs(s950)。例如,当编程脉冲计数范围之外的存储器单元的数目等于或小于参考存储器单元数目时,比较电路350b可以输出通过信号ps,并且当编程脉冲计数范围之外的存储器单元的数目大于参考存储器单元数目时,比较电路350b可以输出失败信号fs。

当从比较电路330b输出失败信号fs时,经计数的存储器单元的数目大于参考存储器单元数目(否),坏块信息生成电路360b可以生成和输出坏块信息bb_info,其中该信息指示选定存储器块mb1已经基于从比较电路350b接收的失败信号fs而被确定为坏块。更进一步地,从控制逻辑300输出的坏块信息bb_info被传输到存储器控制器1200的坏块管理器1210。坏块管理器1210可以通过从存储器设备1100接收坏块信息bb_info来将选定存储器块mb1更新和注册为坏块。

当从比较电路330b输出通过信号ps时,经计数的存储器单元的数目等于或小于参考存储器单元数目(是),坏块信息生成电路360b可以基于从比较电路350b接收的通过信号ps来确定选定存储器块是否为正常存储器块。另外,控制逻辑300可以确定执行编程操作的当前编程状态是否为最后一个编程状态(例如,p7)(s970)。

当在上文所描述的确定步骤s970中确定在其下执行编程操作的当前编程状态是最后一个编程状态时(是),编程操作可以结束。当在上文所确定的确定步骤s970中确定在其下执行编程操作的当前编程状态不是最后一个编程状态时(否),可以选择下一编程状态(s980),并且可以在步骤s920处重新执行上文所描述的步骤。

在上文所描述的操作方法中,当完成对选定存储器块中包括的选定页的编程操作时,可以通过选择下一页来重新执行上文所描述的步骤s920至s980。

如上文所描述的,根据本公开的另一实施例,可以通过计算与选定存储器块中的编程操作期间的编程状态相对应的编程脉冲计数平均值来设置编程脉冲计数范围,并且选定存储器块可以被确定为坏块。也就是说,在编程操作期间具有编程脉冲计数范围之外的大量存储器单元的存储器块被确定为坏块。

图10是图示了图2所示的控制逻辑的又一实施例的框图。

参考图10,根据本公开的又一实施例,控制逻辑200可以包括编程脉冲计数器310c、寄存器320c、计算电路330c、比较电路340c、以及坏块信息生成电路350c。

编程脉冲计数器310c可以通过使用增量步进脉冲编程(ispp)方法对编程操作期间的编程脉冲数目进行计数。编程脉冲计数器310c可以通过使用多个编程状态中的每个编程状态的第一编程脉冲计数和最后一个编程脉冲计数来生成多个编程状态中的每个编程状态的编程脉冲计数脉冲_计数_pv#。编程脉冲计数脉冲_计数_pv#可以是每个编程状态的编程操作期间所使用的编程脉冲的平均计数。编程脉冲计数脉冲_计数_pv#可以包括与第一编程状态p1至第七编程状态p7中的每个编程状态相对应的平均编程脉冲计数。第一编程脉冲计数可以是当在编程验证操作期间基于多个编程状态中的选定编程状态来检测到首先通过编程的存储器单元(快单元)时的编程脉冲计数。最后一个编程脉冲计数可以是当在编程验证操作期间基于选定编程状态来检测到最后通过编程的存储器单元(慢单元)时的编程脉冲计数。

寄存器320c可以在选定存储器块中包括的多个页中的每个页的编程操作期间接收和存储来自编程脉冲计数器310c的编程脉冲计数脉冲_计数_pv#,并且可以基于每个页存储的编程脉冲计数脉冲_计数_pv#来输出页编程脉冲计数脉冲_计数_页#_pv#。页编程脉冲计数脉冲_计数_页#_pv#可以包括选定存储器块中包括的所有页中的每个页的编程脉冲计数脉冲_计数_pv#。

计算电路330c可以从寄存器320c接收页编程脉冲计数脉冲_计数_页#_pv#,并且可以基于页编程脉冲计数脉冲_计数_页#_pv#来计算页计数差值dv_计数_页#_pv#。例如,计算电路330c可以基于页编程脉冲计数脉冲_计数_页#_pv#来计算与每个编程状态相对应的所有页的编程计数的平均值,并且计算电路330c可以通过计算平均值和每个页的编程计数之间的差来生成每个页的页计数差值dv_计数_页#_pv#。

比较电路340c可以通过将页计数差值dv_计数_页#_pv#与参考差值rv_计数_pv#进行比较来输出与坏块相对应的通过信号或失败信号。例如,当所有页的页计数差值dv_计数_页#_pv#等于或小于参考差值rv_计数_pv#时,比较电路340c可以输出通过信号ps,并且当至少一个页的页计数差值dv_计数_页#_pv#大于参考差值rv_计数_pv#时,比较电路340c可以输出失败信号fs。

坏块信息生成电路350c可以生成和输出基于从比较电路340c接收的通过信号ps或失败信号fs来对其执行编程操作的选定存储器块的坏块信息bb_info。例如,当从比较电路340c接收到通过信号ps时,坏块信息生成电路350c可以确定选定存储器块是否为正常存储器块,并且坏块信息生成电路350c可以生成和输出坏块信息bb_info,其中该信息指示选定存储器块已经被确定为正常存储器块。另一方面,当从比较电路340c接收到失败信号fs时,坏块信息生成电路350c可以确定选定存储器块是否为坏块,并且坏块信息生成电路350c可以生成和输出坏块信息bb_info,其中该信息指示选定存储器块已经被确定为坏块。

如上所述,根据本公开的又一实施例,控制逻辑300可以检查选定存储器块中包括的与在多个页的每个页的编程操作期间所使用的多个编程状态相对应的编程脉冲计数,并且可以通过当检测到至少一个页时确定选定存储器块是否为坏块来生成坏块信息bb_info,其中与多个页中的每个页的多个编程状态相对应的检查的编程脉冲计数的平均值与每个页的编程脉冲计数之间的差超过参考值。

图11是图示了根据本公开的又一实施例的存储器系统的操作方法的流程图。

根据本公开的又一实施例,下文参考图1至图4、图7、图10和图11对存储器系统的操作方法进行描述。

当从主机2000接收到与编程操作相对应的请求时,存储器控制器1200可以基于来自主机2000的请求来生成与该编程操作相对应的编程命令cmd。存储器设备1100可从存储器控制器1200接收编程命令cmd、地址add、以及要编程数据data(s1110)。

存储器设备1100可以通过从多个页中选择一个页以便基于接收的编程命令cmd和接收的地址add来从多个存储器块mb1至mbk中选择要对其执行编程操作的存储器块(例如,mb1)并且以页为单位对存储器块(例如,mb1)进行顺序编程来使用增量步进脉冲编程(ispp)方法执行编程操作(s1120)。例如,存储器设备1100可以基于在多个编程状态p1至p7中具有最低阈值电压的编程状态来顺序执行编程操作。例如,存储器设备1100可以通过首先在第一编程状态p1至第七编程状态p7中选择第一编程状态p1来执行编程操作,并且存储器设备1100可以通过最后选择第七编程状态p7来执行编程操作。也就是说,存储器设备1100可以通过顺序选择第一编程状态p1至第七编程状态p7来执行编程操作。

在使用ispp方法进行的编程操作期间,可以执行向选定页ppg中包括的存储器单元施加编程电压的编程电压施加操作,并且可以通过执行编程验证操作来检测选定页ppg中包括的存储器单元中被确定为编程失败的存储器单元。当检测到被确定为编程失败的存储器单元时,可以通过使用新编程电压从编程电压施加操作来重新执行上文所描述的操作。当选定页ppg中包括的所有存储器单元被确定为编程通过时,可以确定基于选定编程状态的编程操作已经完成。

这将进行更详细的描述。页缓冲器组230可以基于页缓冲器控制信号pbsignals临时存储通过输入/输出电路250和列解码器240接收的要编程数据data,并且页缓冲器组230可以基于临时存储的数据data来将编程禁止电压或编程允许电压施加到位线bl1至blm。编程禁止电压可以是电源电压,并且编程允许电压可以是接地电压或电位比编程禁止电压的电位低的电压。

电压生成电路210可以基于操作信号op_cmd来生成和输出操作电压vop,该操作电压vop具有编程操作期间所使用的编程电压和通过电压。行解码器220可以基于行解码器控制信号ad_信号来将操作电压vop传送到耦合到选定存储器块110的局部线ll。例如,行解码器220可以基于行解码器控制信号ad_信号来将电压生成电路210所生成的编程电压施加到局部线ll中的选定字线。行解码器220可以在编程操作期间通过将电压生成电路210所生成的通过电压施加到其他未选择的字线来执行编程电压施加操作。

页缓冲器组230可以基于页缓冲器信号pbsignals来执行编程验证操作,可以将编程允许电压施加到与由于编程验证操作而被确定为编程失败的存储器单元相对应的位线,并且可以将编程禁止电压施加到与被确定为编程通过的存储器单元相对应的位线。

在编程验证操作期间,通过/失败检查电路260可以基于允许位vry_bit<#>来生成参考电流,并且通过/失败检查电路260可以通过将从页缓冲器组230接收的感测电压vpb与参考电流所生成的参考电压进行比较来输出通过信号pass或失败信号fail。因而,控制逻辑300可以确定基于选定编程状态的编程操作是已经通过还是已经失败。

当确定编程操作已经失败时,控制逻辑300可以控制电压生成电路210生成新编程电压,其中电压是比先前编程电压高的阶跃电压;并且可以控制外围电路200从编程电压施加操作重新执行上文所描述的操作。另外,控制逻辑300的编程脉冲计数器310b可以对施加到与选定页ppg相对应的字线的编程电压在使用ispp方法进行的编程操作期间的施加次数(即,编程脉冲数目)进行计数。

编程脉冲计数器310c可以生成与选定页的多个编程状态相对应的编程脉冲计数脉冲_计数_pv#(s1130)。也就是说,编程脉冲计数器310c可以通过测量选定页的每个编程状态的编程操作期间所使用的编程脉冲的平均计数来生成编程脉冲计数脉冲_计数_pv#。寄存器320c可以在选定存储器块中包括的多个页中的每个页的编程操作期间接收和存储来自编程脉冲计数器310c的编程脉冲计数脉冲_计数_pv#。

当选定页的编程操作完成时,控制逻辑300可以在编程操作期间检查当前页是否为最后一个页(s1140)。

作为上文所描述的步骤s1140的结果,当已经完成了编程操作的当前页不是最后一个页时(否),可以选择下一页(s1150),并且上文所描述的步骤可以在步骤s1120处重新执行。

作为上文所描述的步骤s1140的结果,当已经完成了编程操作的当前页是最后一个页时(是),比较电路340c可以基于每个页的编程脉冲计数脉冲_计数_pv#来计算页计数差值dv_计数_页#_pv#,该编程脉冲计数脉冲_计数_pv#从编程脉冲计数器310c接收并且在每个页的编程操作期间存储(s1160)。

比较电路340c可以通过将页计数差值dv_计数_页#_pv#与参考差值rv_计数_pv#进行比较来检查是否存在大于参考差值rv_计数_pv#的页的页计数差值dv_计数_页#_pv#(s1170)。例如,当所有页的页计数差值dv_计数_页#_pv#等于或小于参考差值rv_计数_pv#时,比较电路340c可以生成和输出通过信号ps。当至少一个页的页计数差值dv_计数_页#_pv#大于参考差值rv_计数_pv#时,比较电路340c可以生成和输出失败信号fs。

作为上文所描述的步骤s1170的结果,当存在页计数差值dv_计数_页#_pv#大于参考差值rv_计数_pv#的页时(是),坏块信息生成电路350可以基于从比较电路340c接收的失败信号fs来确定选定存储器块是否为坏块。坏块信息生成电路350可以生成和输出坏块信息bb_info,其中该信息指示选定存储器块已经被确定为坏块。坏块管理器1210可以通过从存储器设备1100接收坏块信息bb_info来将选定存储器块mb1更新和注册为坏块。

作为上文所描述的步骤s1170的结果,当不存在页计数差值dv_计数_页#_pv#大于参考差值rv_计数_pv#的页时(否),坏块信息生成电路350c可以基于从比较电路340c接收的通过信号ps来确定选定存储器块是否为正常存储器块,并且可以结束编程操作。

在上文所描述的实施例中,通过检查多个编程状态中的每个编程状态的编程脉冲计数来比较与多个编程状态相对应的编程脉冲计数的平均值与每个页的编程脉冲计数之间的差。然而,可以仅通过检查多个编程状态中的与对应于最低阈值电压分布的编程状态(例如,pv1)和对应于最高阈值电压分布的编程状态(例如,pv7)相对应的编程脉冲计数来比较编程脉冲计数的平均值与每个页的编程脉冲计数之间的差。

如上文所描述的,根据本公开的又一实施例,可以检查与选定存储器块中包括的多个页中的每个页的编程操作期间所使用的多个编程状态相对应的编程脉冲计数,并且当检测到与多个页中的每个页的多个编程状态相对应的检查的编程脉冲计数的平均值与每个页的编程脉冲计数之间的差超过参考值时,对应存储器块可以被确定为坏块。

在本公开的上文所描述的实施例中,已经描述了三级单元(tlc)编程方法,其中经编程的存储器单元的阈值电压分布的数目为8(p0至p7)。然而,本公开可以应用于阈值电压分布的数目为4的多级单元(mlc)编程方法、阈值电压分布的数目为16的四级单元(qlc)编程方法等。

图12是图示了存储器系统的另一实施例的图。

参考图12,存储器系统30000可以被实现为蜂窝电话、智能电话、平板pc、个人数字助理(pda)、或无线通信设备。存储器系统30000可以包括存储器设备1100和能够控制存储器设备1100的操作的存储器控制器1200。存储器控制器1200可以基于处理器3100来控制存储器设备1100的数据访问操作,例如,编程操作、擦除操作、读取操作等。

可以基于存储器控制器1200通过显示器3200输出在存储器设备1100中编程的数据。

无线电收发器3300可以通过天线ant传输/接收无线电信号。例如,无线电收发器3300可以将通过天线ant接收的无线电信号改变为可以由处理器3100处理的信号。因此,处理器3100可以处理从无线电收发器3300输出的信号,并且将经处理的信号传输到存储器控制器1200或显示器3200。存储器控制器1200可以将由处理器3100处理的信号传输到存储器设备1100。此外,无线电收发器3300可以将从处理器3100输出的信号改变为无线电信号,并且通过天线ant将改变后的无线电信号输出到外部设备。输入设备3400是能够输入用于控制处理器3100的操作的控制信号或要由处理器3100处理的数据的设备,并且可以被实现为诸如触摸板或计算机安装架、小键盘或键盘等之类的指示设备。处理器3100可以控制显示器3200的操作,使得可以通过显示器3200输出从存储器控制器1200输出的数据、从无线电收发器3300输出的数据、或从输入设备3400输出的数据。

在一些实施例中,能够控制存储器设备1100的操作的存储器控制器1200可以被实现为处理器3100的一部分,或者被实现为与处理器3100分离的芯片。此外,存储器控制器1200可以使用图1所示的存储器控制器1200来实现,并且存储器设备1100可以使用图2所示的存储器设备1100实现。

图13是图示了存储器系统的另一实施例的图。

参考图13,存储器系统40000可以被实现为个人计算机(pc)、平板pc、上网本、电子阅读器、个人数字助理(pda)、便携式多媒体播放器(pmp)、mp3播放器、或mp4播放器。

存储器系统40000可以包括存储器设备1100和能够控制存储器设备1100的数据处理操作的存储器控制器1200。

处理器4100可以基于通过输入设备4200输入的数据通过显示器4300输出存储在存储器设备1100中的数据。例如,输入设备4200可以实现为诸如触摸板或计算机鼠标、小键盘或键盘之类的指示设备。

处理器4100可以控制存储器系统40000的整体操作,并且控制存储器控制器1200的操作。在一些实施例中,能够控制存储器设备1100的操作的存储器控制器1200可以被实现为处理器4100的一部分,或被实现为与处理器4100分离的芯片。此外,存储器控制器1200可以使用图1所示的存储器控制器1200来实现。存储器设备1100可以使用图2所示的存储器设备1100实现。

图14是图示了存储器系统的另一实施例的图。

参考图14,存储器系统50000可以被实现为图像处理设备,例如,数码相机、附有数码相机的移动终端、附有数码相机的智能手机、或附有数码相机的平板pc。

存储器系统50000可以包括存储器设备1100和能够控制存储器设备1100的数据处理操作(例如,编程操作、擦除操作、或读取操作)的存储器控制器1200。

存储器系统50000的图像传感器5200可以将光学图像转换为数字信号,并且转换后的数字信号可以传输到处理器5100或存储器控制器1200。基于处理器5100,转换后的数字信号可以通过显示器5300输出,或者通过存储器控制器1200存储在存储器设备1100中。另外,存储器设备1100中存储的数据可以基于显示器5100或存储器控制器1200通过显示器5300来输出。

在一些实施例中,能够控制存储器设备1100的操作的存储器控制器1200可以被实现为处理器5100的一部分,或者被实现为与处理器5100分离的芯片。此外,存储器控制器1200可以使用图1所示的存储器控制器1200来实现,并且存储器设备1100可以使用图2所示的存储器设备1100来实现。

图15是图示了存储器系统的另一实施例的图。

参考图15,存储器系统70000可以被实现为存储器卡或智能卡。存储器系统70000可以包括存储器设备1100、存储器控制器1200、以及卡接口7100。

存储器控制器1200可以控制存储器设备1100与卡接口7100之间的数据交换。在一些实施例中,卡接口7100可以是安全数字(sd)卡接口或多媒体卡(mmc)接口,但是本公开不限于此。此外,存储器控制器1200可以使用图1所示的存储器控制器1200来实现,并且存储器设备1100可以使用图2所示的存储器设备1100实现。

卡接口7100可以基于主机60000的协议来在主机60000和存储器控制器1200之间进行数据交换接口。在一些实施例中,卡接口7100可以支持通用串行总线(usb)协议和芯片间(ic)usb协议。卡接口7100可以意指能够支持主机60000所使用的协议的硬件、嵌入硬件中的软件、或信号传输方案。

当存储器系统70000耦合到主机60000(诸如pc、平板pc、数字相机、数字音频播放器、蜂窝电话、控制台视频游戏硬件或数字机顶盒)的主机接口6200时,主机接口6200可以基于微处理器6100来通过卡接口7100和存储器控制器1200执行与存储器设备1100的数据通信。

根据本公开,基于存储器块的编程计数数目来确定已经完成编程操作的存储器块是否为坏块,从而可以提高存储器块中存储的数据的可靠性。

虽然已经参考本公开的某些示例性实施例对本公开进行了示出和描述,但是本领域技术人员应当理解,在不脱离如所附权利要求书及其等同物所定义的本公开的精神和范围的情况下,可以在形式和细节上进行各种改变。因此,本公开的范围不应当限于上文所描述的示例性实施例,而不仅应当由所附权利要求书而且还应当由其等同物确定。

在上文所描述的实施例中,可以选择性地执行所有步骤或部分步骤,并且可以省略所有步骤。在每个实施例中,步骤不一定根据所描述的次序执行,并且可以重新布置。在本说明书和附图中公开的实施例仅是示例,以便于对本公开的理解,并且本公开不限于此。也就是说,对于本领域技术人员而言,显而易见的是,可以在本公开的技术范围的基础上进行各种修改。

同时,已经在附图和说明书中对本公开的示例性实施例进行了描述。尽管本文中使用了特定术语,但是这些仅是为了解释本公开的实施例。因此,本公开不限于上文所描述的实施例,并且在本公开的精神和范围内许多变化是可能的。对于本领域技术人员而言,应当显而易见的是,除了本文中所公开的实施例之外,还可以基于本公开的技术范围进行各种修改。

再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜