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

文档序号:13876271阅读:225来源:国知局
存储器系统及其操作方法与流程

相关申请的交叉引用

本申请要求于2016年8月19日向韩国知识产权局提交的申请号为10-2016-0105450的韩国专利申请的优先权,其全部公开内容通过引用并入本文。

示例性实施例涉及一种包括被配置为执行编程操作和编程验证操作的存储器装置的存储器系统以及存储器系统的操作方法。



背景技术:

计算机环境范例已经转变至可随时随地使用的普适计算系统。由于该事实,诸如移动电话、数码相机和笔记本电脑的便携式电子装置的使用已经快速增长。这些便携式电子装置通常使用具有存储器装置的存储器系统用于数据存储。存储器系统可以用作便携式电子装置的主存储器装置或辅助存储器装置。

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



技术实现要素:

各个实施例涉及一种改进的存储器系统及其操作方法,其管理关于编程在由存储器系统采用的存储器装置中的数据的错误信息,以防止数据中出现错误并且稳定地存储数据。

根据本发明的实施例,一种存储器系统包括:存储器装置,其包括多个存储块,存储器装置被配置为执行编程操作和编程验证操作以将数据编程到存储块;以及控制器,其被配置为检测编程错误位信息作为编程验证操作的结果,基于检测的编程错误位信息在存储块中选择牺牲存储块(victimmemoryblock),并且复制牺牲存储块的编程数据。

编程错误位信息可以包括通过对执行编程操作和编程验证操作的各个存储块的每个页面的编程验证操作检测的编程错误位的数量。

控制器可以包括编程错误管理单元,其被配置为管理每个页面的编程错误位的数量,并且总计各个存储块的每个页面的编程错误位的数量。

控制器可以进一步包括:读取时间管理单元,其被配置为测量用于对各个存储块执行的读取操作的读取操作时间;以及读取计数管理单元,其被配置为计数用于对各个存储块执行的读取操作的读取操作计数。

控制器可以基于编程错误位的数量并且基于读取操作时间和读取操作计数中的至少一个在多个存储块中选择牺牲存储块。

控制器可以在多个存储块中选择具有最长读取操作时间或最大读取操作计数并且具有等于或大于阈值的编程错误位的数量的存储块作为牺牲存储块。

当复制牺牲存储块的数据时,控制器可以读取牺牲存储块的数据,并且将读取数据编程到多个存储块中的空闲存储块,而不执行ecc(错误校正码)操作。

当读取牺牲存储块的数据时,控制器可以通过垃圾收集操作读取牺牲存储块的数据中的有效数据。

存储器装置可以包括:电压供给电路,其被配置为根据编程操作或编程验证操作将操作电压供给到存储块;读取/写入电路,其被配置为根据编程操作或编程验证操作驱动和感测存储块的相应位线的电位;以及控制电路,其被配置为控制电压供给电路和读取/写入电路。

读取/写入电路可以包括通过相应位线与存储器单元联接的多个页面缓冲器,其中,在编程验证操作期间,页面缓冲器可以根据相应存储器单元的验证结果改变多个感测节点的电位。

在编程验证操作期间,控制电路可以计数多个感测节点中电位未改变的感测节点,并且通过比较计数的感测节点的数量与位的参考数量确定编程操作是否成功。

在编程验证操作期间,控制电路可以计数多个感测节点中电位未改变的感测节点,并且将计数的感测节点的数量输出到控制器作为编程错误位信息。

根据本发明的实施例,一种存储器系统的操作方法包括:执行编程操作和编程验证操作以将数据编程到多个存储块;检测编程错误位信息作为编程验证操作的结果;基于检测的编程错误位信息在多个存储块中选择牺牲存储块;以及复制牺牲存储块的数据。

编程错误位信息可以包括通过对执行编程操作和编程验证操作的各个存储块的每个页面的编程验证操作检测的编程错误位的数量。

编程错误位信息的检测可以包括:管理每个页面的编程错误位的数量,并且总计各个存储块的每个页面的编程错误位的数量。

牺牲存储块的选择可以包括:测量各个存储块所花费的读取操作时间,或计数对各个存储块执行的读取操作计数;在多个存储块中选择具有等于或大于阈值的编程错误位的数量的存储块;并且在选择的存储块中选择具有最长读取操作时间或最大读取操作计数的存储块作为牺牲存储块。

在不对牺牲存储块的数据执行错误校正操作的情况下,可以执行牺牲存储块的数据的复制。

可以通过垃圾收集操作复制牺牲存储块的数据中的有效数据执行牺牲存储块的数据的复制。

根据本发明的实施例,一种数据处理系统包括:主机,其可操作地联接到存储器系统,其中存储器系统被配置为固态驱动器、嵌入式多媒体卡、通用闪存和用户系统中的至少一个。

存储器装置可以是选自由以下构成的组的非易失性存储器装置:只读存储器(rom)、掩模rom(mrom)、可编程rom(prom)、可擦除可编程rom(eprom)、电可擦除可编程rom(eeprom)、铁电随机存取存储器(fram)、相变ram(pram)、磁阻ram(mram)、电阻式ram(rram)和闪速存储器。

附图说明

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

图1是示出根据本发明的实施例的数据处理系统的框图。

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

图3是示出在图1的存储器装置中采用的存储块的示例性配置的电路图。

图4是示出图1的存储器装置的存储块的3-d配置的示意图。

图5是示出根据本发明的实施例的存储器系统的框图。

图6是示出图5的存储器装置的更详细的框图。

图7是示出根据本发明的实施例的存储器系统的操作的流程图。

图8是示出根据本发明的实施例的存储卡系统的图。

图9是示出根据本发明的实施例的数据处理系统的框图。

图10是示出根据本发明的实施例的固态驱动器(ssd)的框图。

图11是示出根据本发明的实施例的嵌入式多媒体卡(emmc)的框图。

图12是示出根据本发明的实施例的通用闪存(ufs)的框图。

图13是示出根据本发明的实施例的包括存储器系统的用户系统的框图。

具体实施方式

虽然,以下参照附图更详细地描述各个实施例,但是应注意的是,本发明可以不同形式实施,并且不应被解释为仅限于本文阐述的实施例。相反,提供描述的实施例使得本公开将是彻底且完全的,并且将向本发明所属领域的技术人员完全传达本发明。在整个公开中,相同的附图标记在整个本发明的各个附图和实施例中表示相同的部件。

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

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

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

本文使用术语的目的仅是描述特定实施例而不旨在限制本发明。

如本文使用的,单数形式也旨在包括复数形式,除非上下文另有清楚地说明。

将进一步理解的是,当在该说明书中使用术语“包括”、“包括有”、“包含”和“包含有”时,它们指定阐述的元件的存在而不排除一个或多个其它元件的存在或增加。如本文使用的,术语“和/或”包括一个或多个相关的所列项目的任意和所有组合。

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

进一步注意的是,在以下描述中,为了提供本发明的彻底理解,阐述了许多具体细节。然而,对相关领域技术人员将显而易见的是,本发明可在没有一些或全部这些具体细节的情况下被实践。在其它情况下,为了不使本发明不必要地模糊,未详细地描述公知的进程结构和/或进程。

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

在下文中,将参照附图描述本发明的各个实施例。

现在参照图1,根据本发明的实施例,提供包括存储器系统110的数据处理系统100。

数据处理系统100可以包括可操作地联接到存储器系统110的主机102。

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

存储器系统110可以响应于从主机102接收的请求来操作。例如,存储器系统110可以存储待由主机102访问的数据。存储器系统110可以用作主机102的主存储器系统或辅助存储器系统。根据待与主机102电联接的主机接口的协议,存储器系统110可以利用各种存储装置中的任意一种实施。存储器系统110可以利用诸如例如以下的各种存储装置中的任意一种实施:固态驱动器(ssd)、多媒体卡(mmc)、嵌入式mmc(emmc)、尺寸减小的mmc(rs-mmc)、微型-mmc、安全数字(sd)卡、迷你-sd、微型-sd、通用串行总线(usb)存储装置、通用闪存(ufs)装置、标准闪存(cf)卡、智能媒体(sm)卡、记忆棒等。

用于存储器系统110的存储装置可以利用诸如动态随机存取存储器(dram)和静态随机存取存储器(sram)的易失性存储器装置或诸如只读存储器(rom)、掩膜rom(mrom)、可编程rom(prom)、可擦除可编程rom(eprom)、电可擦除可编程rom(eeprom)、铁电随机存取存储器(fram)、相变ram(pram)、磁阻ram(mram)、电阻式ram(rram)和闪速存储器的非易失性存储器装置实施。

存储器系统110可以包括:存储器装置150,其用于存储待由主机102访问的数据;以及控制器130,其可操作地联接到存储器装置150以用于控制数据在存储器装置150中的存储以及存储的数据从存储器装置150到主机102的传送。

控制器130和存储器装置150可以被集成到单个半导体装置中。例如,控制器130和存储器装置150可以被集成到被配置为固态驱动器(ssd)的单个半导体装置中。当存储器系统110用作ssd时,与存储器系统110电联接的主机102的操作速度可以显著增加。

控制器130和存储器装置150可以被集成到被配置为诸如例如以下的存储卡的单个半导体装置中:个人计算机存储卡国际协会(pcmcia)卡、标准闪存(cf)卡、智能媒体卡(smc)、记忆棒、多媒体卡(mmc)、rs-mmc、微型-mmc、安全数字(sd)卡、迷你-sd、微型-sd、sdhc和通用闪存(ufs)装置。

再如,存储器系统110可以被配置为诸如以下的部分:计算机、超移动pc(umpc)、工作站、上网本、个人数字助理(pda)、便携式计算机、网络平板、平板计算机、无线电话、移动电话、智能电话、电子书、便携式多媒体播放器(pmp)、便携式游戏机、导航装置、黑盒子、数码相机、数字多媒体广播(dmb)播放器、三维(3d)电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、数字视频记录器、数字视频播放器、配置数据中心的存储器、能够在无线环境下传输和接收信息的装置、配置家庭网络的各种电子装置中的一个、配置计算机网络的各种电子装置中的一个、配置远程信息处理网络的各种电子装置中的一个、rfid装置或配置计算系统的各种组成元件中的一个。

当对装置的电力供给被中断时,存储器系统110的存储器装置150可保留存储的数据。例如,存储器装置150可以在写入操作期间存储从主机102提供的数据,并且在读取操作期间将存储的数据提供给主机102。存储器装置150可以包括多个存储块152、154和156。存储块152、154和156中的每一个可以包括多个页面。每个页面可以包括电联接到字线(wl)的多个存储器单元(参见图3)。存储器装置150可以是诸如闪速存储器的非易失性存储器装置。闪速存储器可以具有三维(3d)堆叠结构。

存储器系统110的控制器130可以响应于来自主机102的请求控制存储器装置150。例如,在从主机102接收到读取请求时,控制器130可以将读取命令和地址发出到存储器装置以用于读取存储在存储器装置中请求地址中的数据,并且可以将从存储器装置150读取的数据提供给主机102。并且,响应于从主机102接收的编程请求(也被称为写入请求),控制器130可以发出写入命令、地址和写入数据,并且可以控制存储器装置的操作以用于将写入数据存储到存储器装置150中。写入数据与写入请求一起从主机102被提供给存储器控制器。控制器130可以控制包括读取操作、写入操作和擦除操作的存储器装置150的一个或多个操作。控制器130还可以控制包括例如磨损均衡操作和垃圾操作的存储器装置150的一个或多个后台操作。

根据图1示出的实施例,控制器130可以包括可操作地联接到内部总线的主机接口单元132、处理器134、错误校正码(ecc)单元138、电源管理单元(pmu)140、nand闪存控制器(nfc)142和存储器144。

主机接口单元132提供主机102和控制器130之间的接口。例如,主机接口单元132可以接收并处理从主机102提供的请求、地址和数据。主机接口单元132还可以将读取数据从存储器装置传输到主机102。主机接口单元132可以通过诸如以下的各种公知的接口协议中的至少一种与主机102通信:通用串行总线(usb)、多媒体卡(mmc)、高速外围组件互连(pci-e)、串列scsi(sas)、串行高级技术附件(sata)、并行高级技术附件(pata)、小型计算机系统接口(scsi)、增强型小型磁盘接口(esdi)和集成驱动电路(ide)。

ecc单元138可以检测并校正在读取操作期间从存储器装置150读取的数据中的错误。当错误位的数量大于或等于可校正错误位的阈值数量时,ecc单元138可以不校正错误位,并且可以输出指示校正错误位失败的错误校正失败信号。

ecc单元138可以基于诸如以下的编码调制执行错误校正操作:低密度奇偶校验(ldpc)码、博斯-查德胡里-霍昆格姆(bose-chaudhuri-hocquenghem,bch)码、涡轮码、里德-所罗门(reed-solomon,rs)码、卷积码、递归系统码(rsc)、格形编码调制(tcm)、分组编码调制(bcm)等。ecc单元138可以包括用于错误校正操作的所有电路、系统或装置。

pmu140可以提供和管理用于控制器130的电力,例如用于包括在控制器130中的组成元件的电力。可以采用任何合适的pmu。

nfc142可以用作控制器130和存储器装置150之间的存储器接口,以允许控制器130响应于来自主机102的请求控制存储器装置150。当存储器装置150是闪速存储器时,nfc142可以在处理器134的控制下生成用于存储器装置150的控制信号并且处理数据。例如,当存储器装置150是nand闪速存储器时,nfc142可以在处理器134的控制下生成用于存储器装置150的控制信号并且处理数据。

存储器144可以用作存储器系统110和控制器130的工作存储器,并且存储用于驱动存储器系统110和控制器130的数据。控制器130可以响应于来自主机102的请求控制存储器装置150。例如,控制器130可以将从存储器装置150读取的数据提供给主机102,并且将从主机102提供的数据存储在存储器装置150中。当控制器130控制存储器装置150的操作时,存储器144可以存储由控制器130和存储器装置150用于诸如读取操作、写入操作、编程操作和擦除操作的操作的数据。

存储器144可以利用易失性存储器实施。例如,存储器144可以利用静态随机存取存储器(sram)或动态随机存取存储器(dram)实施。如上所述,存储器144可以存储由主机102和存储器装置150用于读取操作和写入操作的数据。为了存储数据,存储器144可以包括程序存储器、数据存储器、写入缓冲器、读取缓冲器、映射缓冲器等。

处理器134可以控制存储器系统110的操作。例如,响应于来自主机102的写入请求或读取请求,处理器134可以控制存储器装置150的写入操作或读取操作。处理器134可以驱动被称为闪存转换层(ftl)的固件来控制存储器系统110的操作。在实施例中,处理器134可以利用微处理器来实施。在另一实施例中,处理器134可以利用中央处理单元(cpu)来实施。

管理单元(未示出)可以被包括在处理器134中以用于执行存储器装置150的坏块管理操作。管理单元可以找到包括在存储器装置150中的对于进一步使用处于不能令人满意的状况的坏存储块,并且对坏存储块执行坏块管理。当存储器装置150是诸如nand闪速存储器的闪速存储器时,由于nand逻辑功能的特性,在写入操作(或编程操作)期间可能发生编程失败。在坏块管理期间,编程失败的存储块或坏存储块的数据可以被编程到新存储块中。可靠的坏块管理可以减少利用效率的劣化并且增加存储器装置150的可靠性。

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

参照图2,存储器装置150可以包括多个存储块。例如,存储器装置150可以包括第0块210至第(n-1)块240。多个存储块210至240中的每一个可以包括多个页面。例如,多个存储块210至240中的每一个可以包括2m数量的页面(2m页面),本发明将不限于此。m和n是自然数。多个页面中的每一个可以包括电联接到字线的多个存储器单元。

根据每个存储器单元中可以存储或表达的位的数量,存储器装置150可以包括多种存储块,如单层单元(slc)存储块和多层单元(mlc)存储块。slc存储块可以包括利用每个能够存储1位数据的存储器单元实施的多个页面。mlc存储块可以包括利用每个能够存储多位数据(例如,两位或更多位数据)的存储器单元实施的多个页面。包括利用每个能够存储3位数据的存储器单元实施的多个页面的mlc存储块可以被定义为三层单元(tlc)存储块。

多个存储块210至240中的每一个可以在写入操作期间存储从主机102提供的数据。并且,多个存储块中的每一个可以在读取操作期间将存储的数据提供给主机102。

图3是示出图1的多个存储块152至156中的一个的电路图。

参照图3,存储器装置150的存储块330可以包括被实施成存储器单元阵列并联接到多个位线bl0至blm-1的多个单元串340。每列的单元串340的每一个可以包括至少一个漏极选择晶体管dst和至少一个源极选择晶体管sst。多个存储器单元或存储器单元晶体管mc0至mcn-1可以串联地联接在选择晶体管sst和dst之间。各个存储器单元mc0至mcn-1可以由多层单元(mlc)构成,多层单元的每一个存储多个位的信息。单元串340的每一个可以电联接到多个位线bl0至blm-1中的相应位线。作为参考,在图3中,“dsl”表示漏极选择线,“ssl”表示源极选择线,并且“csl”表示共源线。

虽然图3示出作为示例的由nand闪速存储器单元构成的存储块330,但是要注意的是,根据实施例的存储器装置150的存储块330不限于nand闪速存储器,并且可通过nor闪速存储器、组合至少两种存储器单元的混合闪速存储器或控制器内置于存储器芯片中的1-nand闪速存储器实现。半导体装置的操作特性不仅可应用于其中电荷存储层通过导电浮栅构成的闪速存储器装置而且可应用于其中电荷存储层通过介电层构成的电荷撷取闪存(ctf)。

存储器装置150的电压供给块310可以提供待根据操作模式被供应至各自字线的字线电压(例如,编程电压、读取电压和通过电压)并且提供待被供给到形成有存储器单元的体材料(bulk)(例如,阱区)的电压。可通过控制电路(未示出)的控制执行电压供给块310的电压生成操作。电压供给块310可生成多个可变读取电压以生成多个读取数据,响应于控制电路的控制来选择存储器单元阵列的存储块(或扇区)中的一个,选择被选择的存储块的字线中的一个,并且将字线电压提供给选择的字线和未选择的字线。

存储器装置150的读取/写入电路320可通过控制电路控制并且可根据操作模式用作读出放大器或写入驱动器。例如,在验证/正常读取操作的情况下,读取/写入电路320可用作用于从存储器单元阵列读取数据的读出放大器。在编程操作的情况下,读取/写入电路320可用作根据待在存储器单元阵列中存储的数据驱动位线的写入驱动器。在编程操作中,读取/写入电路320可从缓冲器(未示出)接收待被写入存储器单元阵列中的数据,并且可根据输入的数据驱动位线。为此,读取/写入电路320可包括分别与列(或位线)或列对(或位线对)对应的多个页面缓冲器(pb)322、324和326,并且页面缓冲器322、324和326中的每一个中可包括多个锁存器(未示出)。

图4是示出图1的存储器装置150的结构的示意图。

存储器装置150可以被实现为二维存储器装置或三维存储器装置。参照图4,在存储器装置150被实现为三维非易失性存储器装置的情况下,存储器装置150可以包括多个存储块blk0至blkn-1。

存储块blk0至blkn-1可以被实现为三维结构或垂直结构。例如,各个存储块blk0至blkn-1可以通过包括在第一方向至第三方向(例如,x轴方向、y轴方向和z轴方向)上延伸的结构实现为三维结构。

包括在存储器装置150中的各个存储块blk0至blkn-1可以包括在第二方向上延伸的多个nand串。多个nand串可被设置在第一方向和第三方向上。每个nand串可被联接至位线(例如,图3的单元串340联接到位线bl0)。如图3所示,共源线csl可以联接到存储块的每个nand串的源极选择晶体管sst。形成存储块的多个nand串可以联接到联接到每个漏极选择晶体管dst的栅极的至少一个漏极选择线dsl、联接到每个源极选择晶体管sst的栅极的至少一个源极选择线ssl、多个字线wl1至wln-1、至少一个虚拟字线wl0和共源线csl。每个nand串可以包括例如sst、dst和mc0至mcn-1的多个晶体管结构(参见图3)。

即,在存储器装置150的多个存储块blk0至blkn-1中,各个存储块blk0至blkn-1可联接至多个位线、多个漏极选择线、多个源极选择线、多个字线、多个虚拟字线和多个共源线,并且因此,可以包括多个nand串。并且,在各个存储块blk0至blkn-1中,多个nand串可以联接到一个位线,并且可以在一个nand串中实现多个晶体管。每个nand串的漏极选择晶体管可以联接到相应位线,并且每个nand串的源极选择晶体管可以联接到共源线(参见图3)。多个存储器单元mc1至mcn-1可以被设置在每个nand串的漏极选择晶体管dst和源极选择晶体管sst之间。即,在存储器装置150的多个存储块blk0至blkn-1中,可以在存储块blk0至blkn-1的每个中实现多个存储器单元。

在下文中,参照图5至图7,描述根据本发明的实施例的将数据编程到存储器装置150并且将编程数据复制在图1的存储器系统110中的操作。

图5示出根据本发明的实施例的存储器系统。

参照图5,存储器系统500包括控制器510和存储器装置520。存储器装置520可以包括多个存储块522、524和526。存储器系统500,控制器510,存储器装置520和多个存储块522、524和526可以分别对应于图1的存储器系统110,控制器130,存储器装置150和多个存储块152、154和156。在下文中,为了便于解释,虽然存储器装置520被示为非易失性存储器装置,即,nand闪速存储器装置,但是本公开不限于此。作为非易失性存储器装置,可以包括nor闪速存储器装置、电阻式随机存取存储器(rram)装置、相变存储器(pram)装置、磁阻随机存取存储器(mram)装置、铁电随机存取存储器(fram)装置等。

控制器510以与图1所示的控制器130的方式相同的方式响应于来自主机(未示出)的请求控制存储器装置520。即,控制器510将从存储器装置520读取的数据提供给主机,并且将从主机提供的数据存储在存储器装置520中。为此,控制器510控制存储器装置520的编程操作、读取操作、擦除操作等。因此,控制器510可以包括图1所示的控制器130的配置。

另外,控制器510可以对存储器装置520执行诸如读取回收操作等的后台操作。由于对存储器装置520的高度集成的要求增加,因此包括在存储器装置520中的多个存储块522、524和526利用多层单元(mlc)配置变得普遍。因此,存储器单元的阈值电压分布之间的间隔变得密集。因此,为了防止数据保持特性由于时间的流逝而劣化或防止阈值电压分布由于存储器单元之间的干扰而变化,控制器510在存储器装置520的多个存储块522、524和526中选择牺牲存储块,并且将牺牲存储块的数据复制到存储器装置520的空闲存储块。

为了在多个存储块522、524和526中选择牺牲存储块,控制器510可以包括多个管理单元,其可以被实施在设置在控制器510中的处理器(未示出)中驱动的ftl中。例如,处理器可以是图1的处理器134。

根据图5的实施例,控制器510可以包括编程错误管理单元512、读取时间管理单元514和读取计数管理单元516。

编程错误管理单元512可以从存储器装置520接收编程错误位信息n位。作为被执行以检查存储器装置520的编程操作是否成功的编程验证操作的结果,编程错误位信息n位可以由存储器装置520检测。编程错误位信息n位可以是或包括通过对执行编程操作的每个页面的程序验证操作检测的编程错误位的数量。在这方面,当编程操作最终被验证为成功时,检测的编程错误位的数量可以被设置为编程错误位信息n位。可选地,编程错误位信息n位可以进一步表示每编程电压pvn通过编程验证操作检测的编程错误位的数量。

编程错误管理单元512可以管理每个页面的编程错误位的数量,并且总计各个存储块522、524和526的每个页面的编程错误位的数量。因此,当页面被新编程或无效时,可以根据新编程或无效的页面来更新包括新编程或无效的页面的块的编程错误位的数量。即,块的编程错误位的数量可以增加或减少与新编程或无效的页面相对应的编程错误位的数量。编程错误位信息n位可以被包括在指示存储在多个存储块522、524和526中的数据的逻辑地址la和物理地址pa之间的关系的映射信息中。

读取时间管理单元514可以测量对每个存储块522、524和526执行读取操作所花费的时间,并且利用最新值更新读取操作时间。

读取计数管理单元516可以计数每个存储块522、524和526的读取操作计数,即每个存储块522、524和526中执行的读取操作的数量,并且当执行新的读取操作时,读取计数管理单元516可以利用最新值更新读取操作计数。

控制器510可以基于编程错误位信息n位以及每个存储块的读取操作时间和读取操作计数中的至少一个在多个存储块522、524和526中选择牺牲存储块。例如,牺牲存储块可以是多个存储块中具有最长读取操作时间或最大读取操作计数的存储块,其中多个存储块中的每一个具有大于阈值的编程错误位的数量。控制器510可以基于以上标准选择牺牲块并且然后可将指示被选择的牺牲存储块的地址addvm与用于将牺牲存储块的数据data(复制)复制到另一存储块的复制命令cmd一起传输到存储器装置520。

以与实际读取操作相似的方式执行用于验证编程操作的编程验证操作。由于控制器510基于通过编程验证操作检测的错误位信息选择牺牲存储块,因此在数据复制操作期间可以省略通过ecc(错误校正码)检查错误的操作。在下文中,将参照图6更详细地描述通过存储器装置520执行的编程操作或编程验证操作。

图6是示出图5所示的存储器装置520的更详细的框图。

参照图6,存储器装置520可以包括:操作电路610和620,其对存储块522执行编程操作、读取操作和擦除操作;以及控制电路630,其控制操作电路610和620。操作电路610和620的配置和操作与参照图3描述的电压供给电路310和读取/写入电路310的配置和操作基本上相同;因此,将省略其的详细描述。

根据图6的实施例的控制电路630可以包括通过/失败检查电路640。当存储器装置520根据控制器510的控制执行编程操作时,编程验证操作也与编程操作一起执行。在编程验证操作期间,通过/失败检查电路640计数编程操作失败的存储器单元,并且确定计数的失败存储器单元的数量或者编程错误位的数量是否在错误可校正范围内。在编程错误位的数量在错误可校正范围内的情况下,编程操作被确定为成功(即,确定为通过)。在编程错误位的数量超出错误可校正范围的情况下,编程操作被确定为失败(即,确定为失败)。

读取/写入电路620的多个页面缓冲器pb可以通过相应位线bl0至blm-1联接到编程的存储器单元(例如,存储器单元阵列的第一行的存储器单元mc0)并且可以执行编程验证操作。在编程验证操作期间,验证数据(其表示对编程的存储器单元mc0的编程验证操作的结果)根据编程的存储器单元mc0的验证结果被存储在页面缓冲器pb中。根据编程验证操作的结果或存储在页面缓冲器pb中的验证数据,感测节点sn0至snm-1的电位维持在高电平中或变为低电平。在编程的存储器单元mc0的验证结果表示通过的情况下,验证数据“1”被存储并且感测节点sn0至snm-1可以变为低电平。在编程的存储器单元mc0的验证结果表示失败的情况下,验证数据“0”被存储并且感测节点sn0至snm-1可以维持高电平。

通过/失败检查电路640比较根据读取/写入电路620的页面缓冲器pb的感测节点sn的电位水平的测量电流与对应于错误可校正范围的参考电流,并且根据比较的结果输出通过信号或失败信号(pass/fail)。例如,在根据感测节点sn的电位水平的测量电流高于对应于错误可校正范围的参考电流的情况下,失败信号fail被输出,并且在测量电流等于或低于参考电流的情况下,通过信号pass被输出。

控制电路630根据从通过/失败检查电路640输出的通过/失败信号pass/fail检查编程操作是否成功。存储器装置520可以以其中脉冲类型的编程电压阶段性逐渐增加的增量阶跃脉冲程序(incrementalsteppulseprogram,ispp)方式执行编程操作。因此,在通过/失败检查电路640输出失败信号fail的情况下,控制电路630可以生成控制信号cmdi并且控制电压供给电路610增加编程电压并且再次将增加的编程电压施加到字线wln。直到编程电压被施加预定次数,控制电路630可以响应于失败信号fail重复地控制电压供给电路610。在即使在编程电压被施加等于预定次数的次数之后通过/失败检查电路640还输出失败信号fail的情况下,控制电路630确定相应页面的编程操作为有缺陷的,并且终止编程操作。

在其中在编程电压被施加等于预定次数的次数之前通过/失败检查电路640输出通过信号pass的情况下,控制电路630确定相应页面的编程操作成功。

然而,虽然因为包括在编程的存储器单元mc0中的错误位的总数量在错误可校正范围内,所以确定编程操作成功,但是在编程的存储器单元mc0中可能仍然存在一个或多个编程失败的存储器单元(即,具有错误位的存储器单元),其由存储在页面缓冲器pb中的验证数据表示。

当编程操作在特定编程电压电平处被确定为成功时,控制电路630可以通过计数高电平的感测节点sn的数量,即,存储在读取/写入电路620的页面缓冲器pb中为“0”的验证数据的数量检测编程错误位的数量。最终,编程错误位的数量被检测为编程验证操作的结果,并且这可以被传输到控制器510作为编程错误位信息n位。包括在控制器510中的编程错误管理单元512可以基于传输的编程错误位信息n位、读取操作时间、读取操作计数和编程电压稳定地复制具有相对大数量的编程错误位的牺牲存储块的数据。

图7是示出根据本发明的实施例的存储器系统500的操作的流程图。

参照图7,操作可以包括编程数据的步骤s710、管理编程错误的步骤s720、比较编程错误与阈值vth的步骤s730、比较读取时间/计数与最大值的步骤s740以及选择牺牲块并且复制牺牲块的数据的步骤s750。

在下文中,将参照图5至图7进一步详细地描述每个步骤。

在步骤s710中,控制器510可以根据来自主机102的请求将数据data编程到存储器装置520。响应于从控制器510传输的命令cmd和地址add,存储器装置520可以将数据data编程到对应于地址add的区域(例如,存储器单元mc0)。在这方面,存储器装置520可以在每次执行编程操作时执行编程验证操作。即,存储器装置520可以检测编程的存储器单元mc0中的编程错误位,并且检测的编程错误位的数量与错误可校正范围比较。因此,存储器装置520可以确定编程操作是否成功。存储器装置520可以将通过编程验证操作获得的编程错误位信息n位提供给控制器510。

在步骤s720中,包括在控制器510中的编程错误管理单元512可以管理所提供的对其执行编程操作的每页面的编程错误位信息n位。此外,编程错误管理单元512可以总计各个存储块522、524和526中的每一个的每个页面的编程错误位的数量。因此,当执行存储器装置520的编程操作时,各个存储块522、524和526的编程错误位的数量可以被更新。

在步骤s730中,控制器510可以比较各个存储块522、524和526的编程错误位的数量与预设阈值vth。

可以对存储块522、524和526中的每个都具有等于或大于阈值vth的编程错误位的数量的一个或多个存储块执行步骤s740。在步骤s740中,控制器510的读取时间管理单元514或读取计数管理单元516可以检查和比较每个都具有等于或大于阈值vth的编程错误位的数量的存储块的读取操作时间或读取操作计数。

可以对每个都具有等于或大于阈值vth的编程错误位的数量的存储块中具有等于最大值vmax的读取操作时间/计数的存储块执行步骤s750。在步骤s750中,控制器510可以选择具有最大读取操作时间/计数的存储块作为牺牲块,并且将牺牲存储块的数据复制到空闲存储块。

在复制操作期间,控制器510可以控制存储器装置520以读取牺牲存储块的数据,并且然后再次将读取数据编程到空闲存储块。在这方面,控制器510可以省略对从牺牲存储块读取的数据的ecc操作。

此外,控制器510可以参照指示逻辑地址la与物理地址pa之间的关系的映射信息通过仅从牺牲存储块复制有效数据执行垃圾收集操作。

图8至图13是示出根据本发明的实施例的存储器系统110的各种应用示例的图。

图8是示出作为以上参照图1至图7描述的数据处理系统的存储卡系统6100的图。

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

详细地,存储器控制器6120可以与存储器装置6130连接并且可以访问存储器装置6130。在一些实施例中,存储器装置6130可以利用非易失性存储器(nvm)实施。例如,存储器控制器6120可以控制存储器装置6130的读取操作、写入操作、擦除操作和后台操作。存储器控制器6120可以提供存储器装置6130和主机(未示出)之间的接口,并且可以驱动用于控制存储器装置6130的固件。例如,存储器控制器6120可以对应于以上参照图1描述的存储器系统110中的控制器130,并且存储器装置6130可以对应于以上参照图1描述的存储器系统110中的存储器装置150。

因此,存储器控制器6120可以包括诸如如图1所示的随机存取存储器(ram)、处理单元、主机接口、存储器接口和错误校正单元的部件。

存储器控制器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-ram)。

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

图9是示意性地示出根据本发明的实施例的包括存储器系统的数据处理系统6200的示例的图。

参照图9,数据处理系统6200可以包括利用至少一个非易失性存储器(nvm)实施的存储器装置6230和用于控制存储器装置6230的存储器控制器6220。如以上参照图1描述的,数据处理系统6200可以是诸如存储卡(例如,cf、sd、微型sd)的存储介质。存储器装置6230可对应于以上参照图1描述的存储器系统110中的存储器装置150,并且存储器控制器6220可以对应于以上参照图1描述的存储器系统110中的控制器130。

存储器控制器6220可以响应于从主机6210提供的请求控制对存储器装置6230的包括读取操作、写入操作和擦除操作的操作。存储器控制器6220可以包括全部都通过内部总线联接的中央处理单元(cpu)6221、作为缓冲存储器的随机存取存储器(ram)6222、错误校正码(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)码、涡轮码、里德-所罗门(rs)码、卷积码、递归系统码(rsc)、格形编码调制(tcm)和分组编码调制(bcm)。

存储器控制器6220通过主机接口6224将数据传输到主机6210并从主机6210接收数据,并且通过nvm接口6225将数据传输到存储器装置6230并从存储器装置6230接收数据。主机接口6224可以通过诸如以下的各种接口协议中的至少一种与主机6210连接:并行高级技术附件(pata)总线、串行高级技术附件(sata)总线、小型计算机系统接口(scsi)、通用串行总线(usb)、高速外围组件互连(pcie)或nand接口。进一步地,由于诸如无线保真(wi-fi)或长期演进(lte)的无线通信功能或移动通信协议被实现,因此存储器控制器6220可以通过与诸如主机6210的外部装置或除主机6210之外的另一外部装置连接传输和接收数据。具体地,因为存储器控制器6220被配置为通过各种通信协议中的至少一种与外部装置通信,所以根据本实施例的存储器系统和数据处理系统可以应用于例如移动电子设备的有线和/或无线电子设备。

图10是示出根据本发明的实施例的包括存储器系统的数据处理系统的示例的图。图10示出固态驱动器(ssd)6300。

参照图10,ssd6300可以包括可以包含多个非易失性存储器nvm的存储器装置6340以及控制器6320。控制器6320可以对应于以上参照图1描述的存储器系统110中的控制器130,并且存储器装置6340可以对应于以上参照图1描述的存储器系统110中的存储器装置150。

详细地,控制器6320可以通过多个通道ch1至chi与存储器装置6340连接。控制器6320可以包括通过内部总线联接的处理器6321、缓冲存储器6325、错误校正码(ecc)电路6322、主机接口6324和作为存储器接口的非易失性存储器(nvm)接口6326。

缓冲存储器6325临时存储从主机6310接收的数据或从包括在存储器装置6340中的多个闪速存储器nvm接收的数据,或临时存储多个非易失性存储器nvm的元数据。例如,元数据可以包括包含映射表的映射数据。缓冲存储器6325可以利用诸如但不限于动态随机存取存储器(dram)、同步动态随机存取存储器(sdram)、双倍数据速率(ddr)sdram、低功率双倍数据速率(lpddr)sdram和图形随机存取存储器(gram)的易失性存储器或诸如但不限于铁电随机存取存储器(fram)、电阻式随机存取存储器(reram)、自旋转移力矩磁性随机存取存储器(stt-mram)和相变随机存取存储器(pram)的非易失性存储器实施。虽然为了便于解释,在图10中示出缓冲存储器6325被设置在控制器6320内部,但是注意的是,缓冲存储器6325可被设置在控制器6320外部。

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

主机接口6324提供关于诸如主机6310的外部装置的接口功能。非易失性存储器接口6326提供关于通过多个通道ch1至chi连接的存储器装置6340的接口功能。

由于其中每个都应用以上参照图1描述的存储器系统110的多个ssd6300被使用,因此诸如独立磁盘冗余阵列(raid)系统的数据处理系统可以被实施。在raid系统中,可以包括多个ssd6300和用于控制多个ssd6300的raid控制器。在通过从主机6310接收写入命令执行编程操作的情况下,raid控制器可以在多个raid级别(例如,多个ssd6300)中响应于从主机6310接收的写入命令的raid级别信息选择至少一个存储器系统(例如,至少一个ssd6300),并且可以将对应于写入命令的数据输出到所选择的ssd6300。在通过从主机6310接收读取命令执行读取操作的情况下,raid控制器可以在多个raid级别(例如,多个ssd6300)中响应于从主机6310接收的读取命令的raid级别信息选择至少一个存储器系统(例如,至少一个ssd6300),并且可以将从所选择的ssd6300输出的数据提供给主机6310。

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

参照图11,emmc6400包括利用至少一个nand闪速存储器实施的存储器装置6440以及控制器6430。控制器6430可以对应于以上参照图1描述的存储器系统110中的控制器130,并且存储器装置6440可以对应于以上参照图1描述的存储器系统110中的存储器装置150。

详细地,控制器6430可以通过多个通道与存储器装置6440连接。控制器6430可以包括内核6432、主机接口6431以及诸如nand接口6433的存储器接口。

内核6432可以控制emmc6400的操作。主机接口6431可以在控制器6430和主机6410之间提供接口功能。nand接口6433可以在存储器装置6440和控制器6430之间提供接口功能。例如,主机接口6431可以是诸如以上参照图1描述的mmc接口的并行接口,或诸如超高速1级(uhs-ⅰ)/uhs2级(uhs-ⅱ)和通用闪存(ufs)接口的串行接口。

图12是示出根据本发明的实施例的包括存储器系统的数据处理系统的另一示例的图。图12是示意性地示出应用根据实施例的存储器系统的通用闪存(ufs)系统6500的图。

参照图12,ufs系统6500可以包括ufs主机6510、多个ufs装置6520和6530、嵌入式ufs装置6540和可移除ufs卡6550。ufs主机6510可以是例如移动电子设备的有线和/或无线电子设备的应用处理器。

ufs主机6510、ufs装置6520和6530、嵌入式ufs装置6540和可移除ufs卡6550可以通过ufs协议分别与诸如有线和/或无线电子设备(例如,移动电子设备)的外部装置通信。ufs装置6520和6530、嵌入式ufs装置6540和可移除ufs卡6550可以利用例如以上参照图8描述的存储卡系统6100的以上参照图1描述的存储器系统110实施。嵌入式ufs装置6540和可移除ufs卡6550可以通过除ufs协议之外的另一协议通信。例如,嵌入式ufs装置6540和可移除ufs卡6550可以通过诸如但不限于usb闪存驱动器(ufd)、多媒体卡(mmc)、安全数字(sd)、迷你sd和微型sd的各种卡协议通信。

图13是示出根据本发明的实施例的包括存储器系统的数据处理系统的示例的图。图13是示意性地示出应用根据实施例的存储器系统的用户系统6600的图。

参照图13,用户系统6600可以包括应用处理器6630、存储器模块6620、网络模块6640、存储模块6650和用户接口6610。

应用处理器6630可以驱动包括在用户系统6600中的各种部件和操作系统(os)。例如,应用处理器6630可以包括用于控制包括在用户系统6600中的诸如接口、图形引擎等的各种部件的控制器。应用处理器6630可以通过片上系统(soc)提供。

存储器模块6620可以用作用户系统6600的主存储器、工作存储器、缓冲存储器或高速缓冲存储器。存储器模块6620可以包括诸如动态随机存取存储器(dram)、同步动态随机存取存储器(sdram)、双倍数据速率(ddr)sdram、ddr2sdram、ddr3sdram、低功率双倍数据速率(lpddr)sdram、lpddr2sdram和lpddr3sdram的易失性随机存取存储器或诸如相变随机存取存储器(pram)、电阻式随机存取存储器(reram)、磁性随机存取存储器(mram)和铁电随机存取存储器(fram)的非易失性随机存取存储器。例如,应用处理器6630和存储器模块6620可以通过基于堆叠封装(pop)被封装安装。

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

存储模块6650可以存储诸如从应用处理器6630接收的数据的数据。存储模块6650还可以将存储在其中的数据传输到应用处理器6630。存储模块6650可以由诸如以下的非易失性半导体存储器装置实现:相变ram(pram)、磁性ram(mram)、电阻式ram(reram)、nand闪速存储器、nor闪速存储器和三维nand闪速存储器。存储模块6650可以被提供为诸如用户系统6600的存储卡和外部驱动器的可移除存储介质。例如,存储模块6650可以对应于以上参照图1描述的存储器系统110,并且可以利用以上参照图10至图12描述的ssd、emmc和ufs实施。

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

在以上参照图1描述的存储器系统110被应用于根据实施例的用户系统6600的移动电子设备的情况下,如上所述,应用处理器6630可以控制移动电子设备的操作,并且作为通信模块的网络模块6640可以控制与外部装置的有线和/或无线通信。作为移动电子设备的显示/触摸模块的用户接口6610显示由应用处理器6630处理的数据或支持来自触摸面板的数据的输入。

在根据本发明的各个实施例的存储器系统和用于存储器系统的操作方法中,当数据被编程到存储器装置时检测的错误信息被管理,从而相应数据可以被备份。因此,可以防止在数据读取操作期间可能发生的错误。另外,由于数据基于错误信息被备份,即被读取和被编程,因此对读取数据的错误检测和补偿操作可以被省略。因此,存储器系统的操作速度可以被提高,并且存储器系统的操作负载可以被降低。

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

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