存储器控制器及其操作方法与流程

文档序号:18354406发布日期:2019-08-06 22:54阅读:187来源:国知局
存储器控制器及其操作方法与流程

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

本公开的各个实施例总体涉及一种电子装置。特别地,实施例涉及一种存储器控制器以及操作存储器控制器的方法。



背景技术:

通常,存储装置在诸如计算机、智能电话或智能平板/平板的主机装置的控制下存储数据。存储装置的示例包括将数据存储在磁盘中的硬盘驱动器(hdd),以及诸如固态驱动器(ssd)和将数据存储在半导体存储器、特别是非易失性存储器中的存储卡的装置。

存储装置可以包括存储数据的存储器装置以及被配置为将数据存储到存储器装置的存储器控制器。存储器装置可以是易失性存储器或非易失性存储器。非易失性存储器的代表性示例包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)、闪速存储器、相变随机存取存储器(pram)、磁性ram(mram)、电阻式ram(rram)、铁电ram(fram)等。



技术实现要素:

本公开的各个实施例涉及一种被配置为感测异常阈值电压分布的存储器控制器以及操作存储器控制器的方法。

本公开的实施例可以提供一种存储器控制器,其被配置为在擦除状态和第一编程状态至第n编程状态(其中n是大于1的自然数)中的任意一个中对选择的存储器单元执行读取操作,相邻的一对状态由相应阈值电压分开,存储器控制器包括:读取失败控制电路,其被配置为当读取操作失败时执行确定待用于读取选择的存储器单元的最佳读取电压的辅助读取操作,并且基于通过读取操作和辅助读取操作获得的读取相关信息确定选择的存储器单元的阈值电压分布是否是异常分布;以及错误校正码(ecc)引擎,其被配置为基于选择的存储器单元的阈值电压分布是否是异常分布,对通过使用最佳读取电压读取选择的存储器单元而获得的硬判决数据(harddecisiondata)执行ecc解码操作。

本公开的实施例可以提供一种操作存储器控制器的方法,其包括:在擦除状态和第一编程状态至第n编程状态(其中n是大于1的自然数)中的任意一个中对选择的存储器单元执行正常读取操作,相邻的一对状态由相应阈值电压分开;当正常读取操作失败时执行确定待用于读取选择的存储器单元的最佳读取电压的辅助读取操作;基于通过正常读取操作和辅助读取操作获得的读取相关信息确定选择的存储器单元的阈值电压分布是否是异常分布;并且基于选择的存储器单元的阈值电压分布是否是异常分布,对通过使用最佳读取电压读取选择的存储器单元而获得的硬判决数据执行误差校正码(ecc)解码操作。

附图说明

图1是示出根据本公开的实施例的包括存储器控制器的存储装置的示图。

图2是示出图1的存储器控制器的配置的示图。

图3是描述根据本公开的实施例的存储器控制器的操作的流程图。

图4是示出根据本公开的实施例的正常阈值电压分布的示图。

图5是示出根据本公开的实施例的感测异常分布的方法的示图。

图6是示出根据本公开的实施例的感测异常分布的方法的示图。

图7是示出根据本公开的实施例的感测异常分布的方法的示图。

图8是示出根据本公开的实施例的感测异常分布的方法的示图。

图9是示出根据本公开的实施例的感测异常分布的方法的示图。

图10是示出图1的读取失败控制电路的配置的框图。

图11是示出图1的存储器装置的配置的示图。

图12是示出图11的存储器单元阵列的示例的示图。

图13是示出根据本公开的实施例的图12的存储块(blk1)至(blkz)中的任意一个(blka)的电路图。

图14是示出根据本公开的实施例的图12的存储块(blk1)至(blkz)中的任意一个(blkb)的电路图。

图15是示出根据本公开的实施例的图11的存储器单元阵列中的存储块(blk1)至(blkz)中的任意一个(blkc)的电路图。

图16是示出根据本公开的实施例的图1的存储器控制器的示例的示图。

图17是示出应用根据本公开的实施例的存储装置的存储卡系统的框图。

图18是示出应用根据本公开的实施例的存储装置的固态驱动器(ssd)系统的框图。

图19是示出应用根据本公开的实施例的存储装置的用户系统的框图。

具体实施方式

现在将参照附图更详细地描述各个实施例;然而,本公开的元件和特征可以与本文所示或所述不同地配置或布置。因此,本公开不限于本文阐述的实施例。相反,提供这些实施例使得本公开是彻底且完全的,并且将向本领域技术人员完全传达实施例的范围。还注意的是,对“实施例”等的提及不一定针对仅仅一个实施例,并且对“实施例”等的不同提及不一定针对相同的实施例。

在附图中,为了清楚起见,尺寸可能被夸大。将理解的是,当元件被称为在两个元件“之间”时,两个元件之间可以仅有一个元件,或也可存在一个或多个中间元件。

将参照附图描述各个实施例。参考截面图和示意图来描述实施例及其结构。这样,作为例如制造技术和/或公差的结果的图示的形状的变化是预期的。因此,实施例不应被解释为限于本文所示的结构和内部区域的特定形状;相反,实施例包括由例如制造产生的形状的偏差。在附图中,为了清楚起见,层和区域的长度和尺寸可能被夸大。附图中相同的附图标记表示相同的元件。

诸如“第一”和“第二”的术语可以用于标识各种部件,但是它们不应该限制各种部件。这些术语仅用于区分部件与以其它方式具有相同或相似名称的其它部件。例如,在不脱离本公开的精神和范围的情况下,第一部件可以被称为第二部件,并且第二部件可以被称为第一部件等。此外,“和/或”可以包括所提及的部件中的任何一种或组合。

此外,单数形式可以包括复数形式,并且反之亦然,除非陈述或上下文另有需要。此外,如说明书中使用的“包括/包含”或“包括有/包含有”表示存在一个或多个所述部件、步骤、操作和元件,但是任何这样的术语不排除添加一个或多个未陈述的部件、操作和/或元件。

此外,除非另有限定,否则本文所使用的包括技术术语和科学术语的所有术语具有与相关领域的技术人员通常理解的含义相同的含义。诸如在常用词典中限定的术语应被理解为具有与它们在相关领域的背景下的含义一致的含义,并且除非在本说明书中明确地限定,否则不应解释为具有理想化或过于正式的意义。

还应注意的是,在本说明书中,“连接/联接”不仅指一个部件直接联接另一部件,而且还指通过中间部件间接联接另一部件。另一方面,“直接连接/直接联接”指一个部件直接联接另一部件而没有中间部件。

图1是示出根据本公开的实施例的包括存储器控制器200的存储装置50的示图。

参照图1,存储装置50可以包括存储器装置100和存储器控制器200。

存储器装置100可以在其中存储数据。存储器装置100可以在存储器控制器200的控制下操作。存储器装置100可以包括包含有配置成在其中存储数据的多个存储器单元的存储器单元阵列。存储器单元阵列可以包括多个存储块。每个存储块可以包括多个存储器单元。存储器装置100可以在存储器控制器200的控制下以顺序的或随机的次序将数据存储到存储块。在实施例中,存储器装置100可以是双倍数据速率同步动态随机存取存储器(ddrsdram)、低功率双倍数据速率4(lpddr4)sdram、图形双倍数据速率(gddr)sdram、低功率ddr(lpddr)、rambus动态随机存取存储器(rdram)、nand闪速存储器、竖直nand闪速存储器、nor闪速存储器装置、电阻式随机存取存储器(rram)、相变存储器(pram)、磁阻随机存取存储器(mram)、铁电随机存取存储器(fram)或自旋转矩随机存取存储器(stt-ram)。

在实施例中,存储器装置100可以被实现为三维(3d)阵列结构。本公开不仅可以应用于其中电荷存储层由导电浮栅(fg)形成的闪速存储器,而且还可以被应用于其中电荷存储层由绝缘层形成的电荷捕获闪存(ctf)存储器。

存储器装置100可以被配置为从存储器控制器200接收命令和地址并且访问由地址选择的存储器单元阵列的区域。换言之,存储器装置100可以对由地址选择的区域执行对应于命令的操作。例如,存储器装置100可以执行写入(编程)操作、读取操作和擦除操作。在编程操作期间,存储器装置100可以将数据编程到由地址选择的区域。在读取操作期间,存储器装置100可以从由地址选择的区域读取数据。在擦除操作期间,存储器装置100可以从由地址选择的区域擦除数据。

存储器控制器200可以响应于主机300的请求或者在不存在主机300的请求的情况下控制存储器装置100的操作。

例如,存储器控制器200可以响应于来自主机300的请求控制存储器装置100执行编程操作、读取操作或擦除操作。在编程操作期间,存储器控制器200可以将编程命令、物理地址和数据提供给存储器装置100。在读取操作期间,存储器控制器200可以将读取命令和物理地址提供给向存储器装置100。在擦除操作期间,存储器控制器200可以将擦除命令和物理地址提供给存储器装置100。

在实施例中,存储器控制器200可以在没有来自主机300的请求的情况下自主地生成编程命令、地址和数据,并且将编程命令、地址和数据传输到存储器装置100。例如,存储器控制器200可以将命令、地址和数据提供给存储器装置100以执行诸如用于磨损均衡的编程操作或用于垃圾收集的编程操作的后台操作。

存储器控制器200可以执行固件以用于控制存储器装置100。在存储器装置100是闪速存储器装置的实施例中,存储器控制器200可以管理诸如闪存转换层(ftl)的固件以用于控制主机300与存储器装置100之间的通信。详细地,存储器控制器200可以将包括在来自主机300的请求中的逻辑地址转换为物理地址。

在实施例中,存储器控制器200可以包括被配置为执行错误位校正的错误校正码(ecc)引擎(未示出)。ecc引擎可以包括ecc编码器和ecc解码器。ecc编码器可以对待被存储到存储器装置100的原始数据执行错误校正编码操作,并且生成具有奇偶校验位的写入数据。奇偶校验位可以被存储在存储器装置100中。ecc解码器可以对从存储器装置100读取的数据执行错误校正解码操作。如果读取数据中的错误位的数量超过能够由ecc引擎校正的位的最大数量,则错误校正解码操作可能失败。错误校正解码操作的失败指示读取操作已经失败。这可以指示原始数据尚未根据读取操作恢复。另一方面,如果读取数据中的错误位的数量未超过能够由ecc引擎校正的位的最大数量,则错误校正解码操作可能成功。错误校正解码操作的成功指示读取操作已经通过。这可以指示原始数据已经根据读取操作恢复。

在实施例中,如果读取操作已经失败,则存储器控制器200可以执行恢复原始数据的一系列操作。对于该操作,控制器200可以包括读取失败控制电路210。

如果由存储器装置100执行的读取操作已经失败,则读取失败控制电路210可以根据预定的防御代码操作执行恢复原始数据的操作。在实施例中,防御代码操作可以包括读取重试操作。可选地,在实施例中,防御代码操作可以包括使用具有不同电压电平的读取电压读取选择的页面以确定最佳读取电压(最佳读取偏置)的操作。作为另一备选方案,在实施例中,防御代码操作可以包括使用最佳读取电压读取选择的页面的操作。

在本公开的实施例中,读取失败控制电路210可以使用在确定最佳读取电压的进程期间获得的信息来检测异常阈值电压分布。对具有异常阈值电压分布的页面数据的错误校正解码操作失败的可能性较高。

因此,读取失败控制电路210可以执行检测异常阈值电压分布的操作,并且如果检测到异常阈值电压分布,则可以使用最佳读取电压省略硬判决读取操作。

将在下面参照图4至图9详细描述由读取失败控制电路210检测异常阈值电压分布的方法。

主机300可以使用诸如以下的各种通信方法中的至少一种与存储装置50通信:通用串行总线(usb)通信方法、串行at附件(sata)通信方法、串列scsi(sas)通信方法、高速片间(hsic)通信方法、小型计算机系统接口(scsi)通信方法、外围组件互联(pci)通信方法、高速pci(pcie)通信方法、高速非易失性存储器(nvme)通信方法、通用闪速存储器(ufs)通信方法、安全数字(sd)通信方法、多媒体卡(mmc)通信方法、嵌入式mmc(emmc)通信方法、双列直插式存储器模块(dimm)通信方法、寄存式dimm(rdimm)通信方法和低负载的dimm(lrdimm)通信方法。

图2是示出图1的存储器控制器200的配置的示图。

参照图2,存储器控制器200可以包括处理器201、只读存储器(rom)202、主机接口203、存储器接口204和ecc引擎205。

处理器201可以由电路、逻辑、代码或该电路、逻辑、代码的组合来实现,并且可以控制包括处理器201的存储装置的总体操作。如果电力被施加到存储装置50,则处理器201可以驱动存储在rom202中的固件,从而控制存储装置50的总体操作。此外,处理器201可以解析从主机施加的命令,并且基于解析的结果控制存储器装置100的整体操作。

在实施例中,参照图1描述的读取失败控制电路210可以在固件中实现并且被包括在固件中作为固件的功能中的一个。在实施例中,读取失败控制电路210可以表示控制防御代码操作的固件功能。

rom202可以存储用于驱动存储装置50的固件代码。在各个实施例中,固件代码可以被存储在存储器装置100而不是rom202中。

主机接口203可以使用诸如以下的各种接口协议中的任意一种与主机通信:通用串行总线(usb)协议、多媒体卡(mmc)协议、高速外围组件互连(pci-e)协议、串列scsi(sas)协议、高级串行技术附件(sata)协议、高级并行技术附件(pata)协议、小型计算机系统接口(scsi)协议、增强型小型磁盘接口(esdi)协议和电子集成驱动器(ide)协议。

存储器接口204可以使存储器控制器200和存储器装置100彼此接口连接。详细地,参照图1描述的命令可以通过存储器接口204提供给存储器装置100,并且数据可以通过存储器接口204从存储器控制器200传输到存储器装置100。从存储器装置100输出的数据可以通过存储器接口204提供给存储器控制器200。

ecc引擎205可以检测并校正从存储器装置100读取的数据中的错误位。ecc引擎205可以包括ecc编码器206和ecc解码器207。ecc编码器206可以对待被存储到存储器装置100的原始数据执行错误校正编码操作,并且生成具有奇偶校验位的写入数据。奇偶校验位可以被存储到存储器装置100。ecc解码器207可以对从存储器装置100读取的数据执行错误校正解码操作。如果读取数据中的错误位的数量超过能够由ecc引擎205校正的位的最大数量,则错误校正解码操作失败。错误校正解码操作的失败指示读取操作已经失败。这可以指示原始数据尚未根据读取操作恢复。另一方面,如果读取数据中的错误位的数量未超过能够由ecc引擎205校正的位的最大数量,则错误校正解码操作成功。错误校正解码操作的成功指示读取操作已经通过。这可以指示原始数据已经根据读取操作恢复。

在实施例中,ecc引擎205可以通过使用低密度奇偶校验(ldpc)码、博斯、查德胡里、霍昆格姆(bose,chaudhri,hocquenghem,bch)码、涡轮码、里德-所罗门(reed-solomon,rs)码、卷积码、递归系统码(rsc)、或者诸如网格编码调制(tcm)、块编码调制(bcm)或汉明码的编码调制来校正错误。然而,ecc引擎205不限于这些错误校正技术。因此,ecc引擎205可以包括用于错误校正的所有电路、模块、系统或装置。

图3是描述根据本公开的实施例的存储器控制器200的操作的流程图。

存储器控制器200可以从存储器装置的选择的页面接收读取数据的请求,并且将针对选择的页面的正常读取命令提供给存储器装置。图3是描述当对从存储器装置100提供的读取数据执行的错误校正解码操作已经失败时执行的存储器控制器200的操作的流程图。

参照图3,在步骤s301处,存储器控制器200执行辅助读取操作。辅助读取操作可以是当正常读取操作已经失败时被执行以根据防御代码操作确定最佳读取电压的读取操作。换言之,辅助读取操作可以包括执行以确定最佳读取电压的任何读取操作。

可以根据在步骤s301处执行的辅助读取操作和先前的失败读取操作来获得各种读取相关信息。读取相关信息可以包括关于当施加读取电压时为导通的单元的on单元的数量或者为关断的单元的off单元的数量的单元计数信息、关于最佳读取电压范围的读取电压范围信息以及关于最佳读取电压之间的间隔(interval)的读取电压间隔信息中的一个或多个。

在步骤s303处,存储器控制器200可以确定最佳读取电压。由存储器控制器200确定最佳读取电压的各种方案或方法可以用于确定最佳读取电压。例如,可以使用阈值电压分布的梯度来确定最佳读取电压。另选地,可以使用基于读取电压确定的单元计数来确定最佳读取电压。

在步骤s305处,存储器控制器200可以确定选择的存储器单元的阈值电压分布是否是异常分布。将在下面参照图4至图10详细描述确定存储器单元的阈值电压分布是否是异常分布的方法。

当在步骤s305处确定存储器单元的阈值电压分布是异常分布时(即,在步骤s305为“是”)时,进程进行到步骤s317以输出读取失败信号,而不执行通过步骤s307至s313执行的错误校正解码操作。

当在步骤s305处确定存储器单元的阈值电压分布是正态分布(即,在步骤s305为“否”)时,进程进行到步骤s307。

在步骤s307处,存储器控制器200可以执行硬解码操作。详细地,存储器控制器200可以向存储器装置100提供指令存储器装置100使用最佳读取电压读取选择的页面的命令。此后,存储器控制器200可以执行硬解码操作,该硬解码操作是对使用最佳读取电压读取的数据的错误校正解码操作。此处,使用最佳读取电压读取的数据可以是硬判决数据。

在步骤s309处,存储器控制器200可以确定硬解码操作是否已经成功。如果使用最佳读取电压读取的数据中的错误位的数量超过可以由ecc引擎205校正的可校正位的最大数量,则确定解码操作已经失败,并且进程进行到步骤s311。如果使用最佳读取电压读取的数据中的错误位的数量未超过可以由ecc引擎205校正的可校正位的最大数量,则确定解码操作已经成功,并且可以恢复原始数据。因此,进程可以进行到步骤s315以输出读取通过信号。

在步骤s311处,存储器控制器200可以执行软解码操作。详细地,存储器控制器200可以从存储器装置100接收软判决数据,该软判决数据是添加到硬判决数据的可能性信息。软判决数据可以是使用不同于最佳读取电压的读取电压从选择的页面读取的数据。存储器控制器200可以执行软解码操作,该软解码操作是对软判决数据的错误校正解码操作。

在步骤s313处,存储器控制器200可以确定软解码操作是否已经成功。如果软判决数据中的错误位的数量超过可以由ecc引擎205校正的可校正位的最大数量,则确定解码操作已经失败,并且进程进行到步骤s317以输出读取失败信号。如果软判决数据中的错误位的数量未超过可以由ecc引擎205校正的可校正位的最大数量,则确定解码操作已经成功,并且可以恢复原始数据。因此,进程可以进行到步骤s315以输出读取通过信号。

图4是示出根据本公开的实施例的正常阈值电压分布的示图。

参照图4,示出了选择的页面中的存储器单元的阈值电压分布。在参照图4的描述中,假设每个存储器单元是能够在其中存储2位数据的多层单元(mlc)。横轴表示每个存储器单元的阈值电压,并且纵轴表示存储器单元的数量。

选择的存储器单元可以被编程为处于擦除状态e、第一编程状态pv1、第二编程状态pv2和第三编程状态pv3中的任意一个。

对应于擦除状态e的存储器单元可以存储数据“11”,对应于第一编程状态pv1的存储器单元可以存储数据“10”,对应于第二编程状态pv2的存储器单元可以存储数据“00”,并且对应于第三编程状态pv3的存储器单元可以存储数据“01”。

第一读取电压r1可以是擦除状态e和第一编程状态pv1通过其彼此分离的读取电压。第二读取电压r2可以是第一编程状态pv1和第二编程状态pv2通过其彼此彼此分离的读取电压。第三读取电压r3可以是第二编程状态pv2和第三编程状态pv3通过其彼此分离的读取电压。

在理想情况下,对应于擦除状态e、第一编程状态pv1、第二编程状态pv2和第三编程状态pv3中的每一个的存储器单元的数量可以相同。例如,如图4所示,对应于擦除状态e、第一编程状态pv1、第二编程状态pv2和第三编程状态pv3中的每一个的存储器单元的数量是1000。

图5是示出根据本公开的实施例的感测异常分布的方法的示图。

参照图5,与图4的实施例相比,擦除状态e的存储器单元的数量从1000减少到400,并且另一方面,对应于第一编程状态pv1和第三编程状态pv3中的每一个的存储器单元的数量从1000增加到1300。对应于第二编程状态pv2的存储器单元的数量保持为1000。

当对已经正常执行编程操作的页面重复地执行编程操作时,换言之,执行重写操作时,可以发生图5所示的阈值电压分布。

考虑到第一读取电压r1,擦除状态e的存储器单元的单元计数将保持在预定水平或更高水平。虽然考虑了干扰损失,但是可以将擦除状态e的存储器单元的单元计数小于预定水平的情况估计为处于重写状态。

因此,存储器控制器200可以使用对应于由对应的正常读取电压确定的每个状态的单元计数来确定选择的存储器单元的阈值电压分布是否是异常分布。例如,如果对应于擦除状态e的存储器单元的数量小于预设参考值(例如,正常状态的50%),则存储器控制器200可以确定选择的存储器单元的阈值分布是异常分布。

图6是示出根据本公开的实施例的感测异常分布的方法的示图。

参照图6,具有低于第一读取电压r1的阈值电压的存储器单元的数量是1400,具有在第一读取电压r1和第二读取电压r2之间的阈值电压的存储器单元的数量是1400,具有在第二读取电压r2和第三读取电压r3之间的阈值电压的存储器单元的数量是1200,并且具有高于第三读取电压r3的阈值电压的存储器单元的数量是0。

通常,当在执行编程操作的同时发生突然断电事件时,可能无法正确执行对具有最高编程状态的存储器单元的编程操作。因此,当单元计数小于基于最高读取电压的正常值或者不存在具有高于最高读取电压的阈值电压的存储器单元时,可以估计已经发生突然断电事件。

因此,存储器控制器200可以使用对应于由对应的正常读取电压确定的每个状态的单元计数来确定选择的存储器单元的阈值电压分布是否是异常分布。例如,如果具有高于为最高读取电压的第三读取电压r3的阈值电压的存储器单元的数量小于预设参考值,则存储器控制器200可以确定选择的存储器单元的阈值电压分布是异常分布。

图7是示出根据本公开的实施例的感测异常分布的方法的示图,并且更特别地,是根据最佳读取电压的范围感测异常分布的方法的示图。

图7a)是示出理想情况下的阈值电压分布的示图。

参照图7a),假设每个存储器单元是能够在该存储器单元中存储2位数据的mlc。横轴表示每个存储器单元的阈值电压,并且纵轴表示存储器单元的数量。

选择的存储器单元可以被编程为处于擦除状态e、第一编程状态pv1、第二编程状态pv2和第三编程状态pv3中的任意一个。

第一读取电压r1可以是擦除状态e和第一编程状态pv1通过其彼此分离的读取电压。第二读取电压r2可以是第一编程状态pv1和第二编程状态pv2通过其彼此分离的读取电压。第三读取电压r3可以是第二编程状态pv2和第三编程状态pv3通过其彼此分离的读取电压。

擦除状态e、第一编程状态pv1、第二编程状态pv2和第三编程状态pv3的相应阈值电压分布的中值可以分别是第一电压v1、第二电压v2、第三电压v3以及第四电压v4。

图7b)是示出异常分布的示图。

存储器控制器200可以根据每个确定的最佳读取电压是否落入对应的置信区间内来确定阈值电压分布是否是异常分布。每个置信区间可以是理想阈值电压分布图的擦除状态e、第一编程状态pv1、第二编程状态pv2和第三编程状态pv3的相应阈值电压分布的中值之间(即,在第一电压v1和第二电压v2之间、在第二电压v2和第三电压v3之间以及在第三电压v3和第四电压v4之间)的范围中的对应一个范围。

在实施例中,第一最佳读取电压r1'的置信区间可以是第一电压v1和第二电压v2之间的范围。第二最佳读取电压r2'的置信区间可以是第二电压v2和第三电压v3之间的范围。第三最佳读取电压r3'的置信区间可以是第三电压v3和第四电压v4之间的范围。

在图7b)中,由于第二最佳读取电压r2'和第三最佳读取电压r3'在它们各自的置信区间外,因此电压分布是异常分布。

图8和图9是示出根据本公开的实施例的感测异常分布的方法的示图,并且更特别地,是使用最佳读取电压之间的间隔来感测异常分布的方法的示图。

在图8和图9的每一个中,a)是示出理想情况下的阈值电压分布的示图,并且b)是示出异常分布的示图。

参照图8a)和图9a),假设每个存储器单元是能够在该存储器单元中存储2位数据的mlc。横轴表示每个存储器单元的阈值电压,并且纵轴表示存储器单元的数量。

选择的存储器单元可以被编程为被包括在擦除状态e、第一编程状态pv1、第二编程状态pv2和第三编程状态pv3中的任意一个中。

第一读取电压r1可以是擦除状态e和第一编程状态pv1通过其彼此分离的读取电压。第二读取电压r2可以是第一编程状态pv1和第二编程状态pv2通过其彼此分离的读取电压。第三读取电压r3可以是第二编程状态pv2和第三编程状态pv3通过其彼此分离的读取电压。

存储器控制器200可以根据确定的最佳读取电压之间的间隔中的每一个是否小于最小宽度或者大于最大宽度来确定阈值电压分布是否是异常分布。

通常,当在执行编程操作的同时发生突然断电事件时,与正常分布的宽度相比,相对较高编程状态(例如,pv2或pv3)的阈值电压分布的宽度减小。另选地,最佳读取电压间隔可能不恒定。

因此,当确定的最佳读取电压之间的间隔小于最小宽度或大于最大宽度时,存储器控制器200可以确定阈值电压分布是异常分布。

图8b)示出第二最佳读取电压r2'和第三最佳读取电压r3'之间的间隔小于最小宽度的情况。图9b)示出第二最佳读取电压r2'和第三最佳读取电压r3'之间的间隔大于最大宽度的情况。

图10是示出图1的读取失败控制电路210的配置的框图。

参照图10,读取失败控制电路210可以包括读取电压确定部件211、异常分布检测器212和读取信息存储装置213。

如果正常读取操作失败,则读取电压确定部件211可以使用辅助读取操作来确定最佳读取电压或最佳读取偏置。详细地,读取电压确定部件211可以从存储器装置100接收读取数据rdata。读取数据rdata可以是使用正常读取电压从选择的存储器单元读取的数据。另选地,读取数据rdata可以是使用辅助读取电压从选择的存储器单元读取的数据。读取数据rdata可以是使用最佳读取电压从选择的存储器单元读取的数据。读取电压确定部件211可以将通过正常读取操作、辅助读取操作或使用最佳读取电压的读取操作获得的单元计数213a存储到读取信息存储装置213。

读取电压确定部件211可以将确定的最佳读取电压提供给异常分布检测器212。

异常分布检测器212可以从读取电压确定部件211接收最佳读取电压。异常分布检测器212可以基于最佳读取电压和存储在读取信息存储装置213中的读取相关信息213a至213c来确定选择的存储器单元的阈值电压分布是否是异常分布。当检测到异常分布时,异常分布检测器212可以输出读取失败信号fail。

在实施例中,异常分布检测器212可以使用对应于由对应的正常读取电压确定的每个状态的单元计数信息213a来确定选择的存储器单元的阈值电压分布是否是异常分布。例如,如果对应于擦除状态e的存储器单元的数量小于预设参考值(例如,正常状态的50%),则异常分布检测器212可以确定选择的存储器单元的阈值分布是异常分布。

在实施例中,异常分布检测器212可以使用对应于由对应的正常读取电压确定的每个状态的单元计数信息213a来确定选择的存储器单元的阈值电压分布是否是异常分布。例如,如果具有高于作为最高读取电压的第三读取电压r3的阈值电压的存储器单元的数量小于预设参考值,则异常分布检测器212可以确定选择的存储器单元的阈值电压分布是异常分布。

在实施例中,异常分布检测器212可以根据每个最佳读取电压是否落入对应的置信区间内来确定阈值电压分布是否是异常分布。每个置信区间可以是理想阈值电压分布图的擦除状态e、第一编程状态pv1、第二编程状态pv2和第三编程状态pv3的相应阈值电压分布的中值之间(例如,如图7所示,在第一电压v1和第二电压v2之间、在第二电压v2和第三电压v3之间以及在第三电压v3和第四电压v4之间)的范围中的对应一个范围。置信区间可以被预先存储在读取信息存储装置213的读取电压范围信息213b中。如果最佳读取电压不在对应的置信区间内,则异常分布检测器212可以确定选择的存储器单元的阈值电压分布是异常分布。

在实施例中,异常分布检测器212可以根据最佳读取电压(例如,图8和图9中所示的第一最佳读取电压r1'至第三最佳读取电压r3')之间的间隔确定阈值电压分布是否是异常分布。例如,当确定的最佳读取电压之间的间隔小于最小宽度或大于最大宽度时,如参照图8和图9所述,异常分布检测器212可以确定阈值电压分布是异常分布。最小宽度和最大宽度可以被预先存储在读取信息存储装置213的读取电压间隔信息213c中。

读取信息存储装置213可以在其中存储读取相关信息213a至213c。当执行读取操作时,可以获得读取相关信息213a至213c。另选地,可以预先存储读取相关信息213a至213c。

读取信息存储装置213可以存储单元计数信息213a、读取电压范围信息213b和读取电压间隔信息213c中的至少一个。

单元计数信息213a可以是关于当施加读取电压时接通的on单元的数量或关断的off单元的数量的信息。

读取电压范围信息213b可以是关于其内存在最佳读取电压的置信区间的信息。

读取电压间隔信息213c可以是关于最佳读取电压之间的最小宽度和最大宽度的信息。

在实施例中,读取失败控制电路210可以向ecc引擎220提供硬判决数据或软判决数据。ecc引擎220可以是参照图2描述的ecc引擎205。ecc解码器可以对硬判决数据执行硬解码操作或者对软判决数据执行软解码操作,并且可以将硬解码操作或软解码操作的结果提供给读取失败控制电路210。

在本公开的实施例中,存储器控制器200可以感测选择的存储器单元的阈值电压分布是否是异常分布。如果阈值电压分布是异常分布,则存储器控制器200可以将读取操作处理为读取失败而不执行错误校正解码操作,从而防止执行冗余错误校正解码操作。

在各个实施例中,存储器控制器200可以根据异常分布的类型以不同方式应用错误处理操作。例如,当确定在已经发生突然断电(spo)事件时已经发生错误时,在检测到异常分布的情况下,执行应对spo事件的操作,从而可以防止对应的存储块被处理为坏块。如果确定在已经发生spo事件时尚未发生错误,则在检测到异常分布的情况下,对应的存储块可以被处理为坏块。

图11是示出图1的存储器装置100的配置的示图。

参照图11,存储器装置100可以包括存储器单元阵列110、外围电路120和控制逻辑130。

存储器单元阵列110可以包括多个存储块blk1至blkz。多个存储块blk1至blkz通过行线rl联接到地址解码器121。存储块blk1至blkz可以通过位线bl1至blm联接到读取/写入电路123。存储块blk1至blkz中的每一个可以包括多个存储器单元。在实施例中,多个存储器单元可以是非易失性存储器单元。联接到相同字线的存储器单元可以被定义为一个页面。换言之,存储器单元阵列110由多个页面形成。在实施例中,存储器单元阵列110中的存储块blk1至blkz中的每一个可以包括多个虚拟单元。一个或多个虚拟单元可以串联地联接在漏极选择晶体管和存储器单元之间以及源极选择晶体管和存储器单元之间。

存储器装置100的存储器单元中的每一个可以由能够存储单个数据位的单层单元(slc)、能够存储两个数据位的多层单元(mlc)、能够存储三个数据位的三层单元(tlc)或能够存储四个数据位的四层单元(qlc)形成。

外围电路120可以包括地址解码器121、电压发生器122、读取/写入电路123和数据输入/输出电路124。

外围电路120可以驱动存储器单元阵列110。例如,外围电路120可以驱动存储器单元阵列110执行编程操作、读取操作或擦除操作。

地址解码器121通过行线rl联接到存储器单元阵列110。行线rl可以包括漏极选择线、字线、源极选择线和公共源极线。在实施例中,字线可以包括正常字线和虚拟字线。在实施例中,行线rl可以进一步包括管道选择线。

地址解码器121可以在控制逻辑130的控制下操作。地址解码器121从控制逻辑130接收地址addr。

地址解码器121可以解码接收的地址addr中的块地址。地址解码器121根据解码的块地址选择存储块blk1至blkz中的至少一个。地址解码器121可以解码接收的地址addr中的行地址。地址解码器121可以根据解码的行地址通过将从电压发生器122供给的电压施加到字线wl来选择所选择的存储块的至少一个字线wl。

在编程操作期间,地址解码器121可以将编程电压施加到选择的字线并且将具有电平低于编程电压的电平的通过电压施加到未选择的字线。在编程验证操作期间,地址解码器121可以将验证电压施加到选择的字线并且将高于验证电压的验证通过电压施加到未选择的字线。

在读取操作期间,地址解码器121可以将读取电压施加到选择的字线并且将高于读取电压的通过电压施加到未选择的字线。

在实施例中,可以基于存储块来执行存储器装置100的擦除操作。在擦除操作期间,待被输入到存储器装置100的地址addr包括块地址。地址解码器121可以解码块地址并且根据解码的块地址选择对应的一个存储块。在擦除操作期间,地址解码器121可将接地电压施加到联接到选择的存储块的字线。

在实施例中,地址解码器121可以解码传输的地址addr中的列地址。解码的列地址dca可以被传输到读取/写入电路123。在实施例中,地址解码器121可以包括诸如行解码器、列解码器和地址缓冲器的部件。

电压发生器122可以通过使用供给到存储器装置100的外部电源电压来生成多个电压。电压发生器122可以在控制逻辑130的控制下操作。

在实施例中,电压发生器122可以通过调节外部供给电压来生成内部供给电压。从电压发生器122生成的内部供给电压可以被用作存储器装置100的操作电压。

在实施例中,电压发生器122可以使用外部供给电压或内部供给电压来生成多个电压。电压发生器122可以生成存储器装置100中所需的各种电压。例如,电压发生器122可以生成多个编程电压、多个通过电压、多个选择读取电压和多个未选择读取电压。

例如,电压发生器122可以包括用于接收内部供给电压的多个泵浦电容器,并且可以在控制逻辑130的控制下通过选择性地启用多个泵浦电容器来生成多个电压。

生成的电压可以通过地址解码器121被供给到存储器单元阵列110。

读取/写入电路123可以包括分别通过第一位线bl1至第m位线blm联接到存储器单元阵列110的第一页面缓冲器pb1至第m页面缓冲器pbm。第一页面缓冲器pb1至第m页面缓冲器pbm可以在控制逻辑130的控制下操作。

第一页面缓冲器pb1至第m页面缓冲器pbm可以执行与数据输入/输出电路124的数据通信。在编程操作期间,第一页面缓冲器pb1至第m页面缓冲器pbm可以通过数据输入/输出电路124和数据线dl来接收待被存储的数据data。

在编程操作期间,当编程脉冲被施加到选择的字线时,第一页面缓冲器pb1至第m页面缓冲器pbm可以通过位线bl1至blm将通过数据输入/输出电路124接收的数据data传输到选择的存储器单元。选择的页面中的存储器单元基于传输的数据data被编程。联接到施加了编程许可电压(例如,接地电压)的位线的存储器单元可以具有增加的阈值电压。联接到施加了编程禁止电压(例如,供给电压)的位线的存储器单元的阈值电压可以被保留。在编程验证操作期间,第一页面缓冲器pb1至第m页面缓冲器pbm通过位线bl1至blm从选择的存储器单元读取页面数据。

在读取操作期间,读取/写入电路123可以通过位线bl从选择的页面中的存储器单元读取数据data并且将读取数据data输出到数据输入/输出电路124。

在擦除操作期间,读取/写入电路123可以浮动位线bl。在实施例中,读取/写入电路123可以包括行选择电路。

数据输入/输出电路124通过数据线dl联接到第一页面缓冲器pb1至第m页面缓冲器pbm。数据输入/输出电路124可以在控制逻辑130的控制下操作。

数据输入/输出电路124可以包括用于接收输入数据的多个输入/输出缓冲器(未示出)。在编程操作期间,数据输入/输出电路124可以从外部控制器(未示出)接收待被存储的数据data。在读取操作期间,数据输入/输出电路124可以将从读取/写入电路123中的第一页面缓冲器pb1至第m页面缓冲器pbm接收的数据输出到外部控制器。

控制逻辑130可以联接到地址解码器121、电压发生器122、读取/写入电路123和数据输入/输出电路124。控制逻辑130可以控制存储器装置100的总体操作。控制逻辑130可以响应于从外部装置传输的命令cmd而操作。

图12是示出图11的存储器单元阵列110的示例的示图。

参照图12,存储器单元阵列110可以包括多个存储块blk1至blkz。每个存储块可以具有三维(3d)结构。每个存储块可以包括堆叠在衬底上的多个存储器单元。存储器单元在+x方向、+y方向和+z方向上布置。将参照图13和图14更详细地描述每个存储块的结构。

图13是示出根据本公开的实施例的图12的存储块blk1至blkz中的任意一个存储块blka的电路图。

参照图13,存储块blka可以包括多个单元串cs11至cs1m和cs21至cs2m。在实施例中,单元串cs11至cs1m和cs21至cs2m中的每一个可以形成为‘u’形。在存储块blka中,m个单元串可以被布置在行方向(即,+x方向)上。在图13中,两个单元串被示出为布置在列方向(即,+y方向)上。然而,该图示是为了清楚起见;将理解的是,可以在列方向上布置三个或更多个单元串。

多个单元串cs11至cs1m和cs21至cs2m中的每一个可以包括至少一个源极选择晶体管sst、各自可以具有类似的结构的第一存储器单元mc1至第n存储器单元mcn、管道晶体管pt以及至少一个漏极选择晶体管dst。

选择晶体管sst和dst可以具有类似的结构。在实施例中,选择晶体管sst和dst以及存储器单元mc1至mcn中的每一个可以包括沟道层、隧穿绝缘层、电荷存储层和阻挡绝缘层。在实施例中,用于提供沟道层的柱(pillar)可以被设置在每个单元串中。在实施例中,用于提供沟道层、隧穿绝缘层、电荷存储层和阻挡绝缘层中的至少一个的柱可以被设置在每个单元串中。

每个单元串的源极选择晶体管sst联接在公共源极线csl与存储器单元mc1至mcp之间。

在实施例中,布置在相同行中的单元串的源极选择晶体管联接到在行方向上延伸的源极选择线,并且布置在不同行中的单元串的源极选择晶体管联接到不同的源极选择线。在图13中,第一行中的单元串cs11至cs1m的源极选择晶体管联接到第一源极选择线ssl1。第二行中的单元串cs21至cs2m的源极选择晶体管联接到第二源极选择线ssl2。

在实施例中,单元串cs11至cs1m和cs21至cs2m的源极选择晶体管可以共同地联接到单个源极选择线。

在每个单元串中的第一存储器单元mc1至第n存储器单元mcn联接在源极选择晶体管sst和漏极选择晶体管dst之间。

第一存储器单元mc1至第n存储器单元mcn可以被划分成第一存储器单元mc1至第p存储器单元mcp以及第p+1存储器单元mcp+1至第n存储器单元mcn。第一存储器单元mc1至第p存储器单元mcp被连续地布置在-z方向上并且串联地联接在源极选择晶体管sst与管道晶体管pt之间。第p+1存储器单元mcp+1至第n存储器单元mcn被连续地布置在+z方向上并且串联地联接在管道晶体管pt和漏极选择晶体管dst之间。第一存储器单元mc1至第p存储器单元mcp以及第p+1存储器单元mcp+1至第n存储器单元mcn通过管道晶体管pt彼此联接。每个单元串的第一存储器单元mc1至第n存储器单元mcn的栅极分别联接到第一字线wl1至第n字线wln。

每个单元串的管道晶体管pt的栅极联接到管线pl。

每个单元串的漏极选择晶体管dst联接在对应的位线和存储器单元mcp+1至mcn之间。在行方向上布置的单元串联接到在行方向上延伸的漏极选择线。第一行中的单元串cs11至cs1m的漏极选择晶体管联接到第一漏极选择线dsl1。第二行中的单元串cs21至cs2m的漏极选择晶体管联接到第二漏极选择线dsl2。

在列方向上布置的单元串可以联接到在列方向上延伸的位线。在图9中,第一列中的单元串cs11和cs21联接到第一位线bl1。第m列中的单元串cs1m和cs2m联接到第m位线blm。

联接到在行方向上布置的单元串中的相同字线的存储器单元形成单个页面。例如,第一行中的单元串cs11至cs1m中的联接到第一字线wl1的存储器单元形成单个页面。第二行中的单元串cs21到cs2m中的联接到第一字线wl1的存储器单元形成另一单个页面。可以通过选择漏极选择线dsl1和dsl2中的任何一个来选择布置在单个行方向上的单元串。可以通过选择字线wl1至wln中的任何一个而从选择的单元串中选择一个页面。

在实施例中,可以提供偶数位线和奇数位线来代替第一位线bl1至第m位线blm。布置在行方向上的单元串cs11至cs1m或cs21至cs2m的偶数的单元串可以联接到相应偶数位线。布置在行方向上的单元串cs11至cs1m或cs21至cs2m的奇数的单元串可以联接到相应奇数位线。

在实施例中,第一存储器单元mc1至第n存储器单元mcn中的一个或多个可以用作虚拟存储器单元。例如,可以提供虚拟存储器单元以减小源极选择晶体管sst与存储器单元mc1至mcp之间的电场。另选地,可以提供虚拟存储器单元以减小漏极选择晶体管dst与存储器单元mcp+1至mcn之间的电场。当虚拟存储器单元的数量增加时,存储块blka的操作可靠性可以增加,而存储块blka的大小可能增加。当虚拟存储器单元的数量减少时,存储块blka的大小可以减小,但是存储块blka的操作可靠性可能减小。

为了有效地控制至少一个虚拟存储器单元,虚拟存储器单元中的每一个可以具有阈值电压。在对存储块blka执行擦除操作之前或之后,可以对虚拟存储器单元中的所有或一些执行编程操作。在已经执行编程操作之后执行擦除操作的情况下,虚拟存储器单元可以通过控制待被施加到联接到相应虚拟存储器单元的虚拟字线的电压而具有阈值电压。

图14是示出根据本公开的实施例的图12的存储块blk1至blkz中的任意一个存储块blkb的电路图。

参照图14,存储块blkb可以包括多个单元串cs11'至cs1m'和cs21'至cs2m'。单元串cs11'至cs1m'和cs21'至cs2m'中的每一个在+z方向上延伸。单元串cs11'至cs1m'和cs21'至cs2m'中的每一个可以包括堆叠在设置在存储块blk1'下部的衬底(未示出)上的至少一个源极选择晶体管sst、第一存储器单元mc1至第n存储器单元mcn以及至少一个漏极选择晶体管dst。

每个单元串的源极选择晶体管sst联接在公共源极线csl与存储器单元mc1至mcn之间。在相同行中布置的单元串的源极选择晶体管联接到相同的源极选择线。在第一行中布置的单元串cs11'至cs1m'的源极选择晶体管可以联接到第一源极选择线ssl1。在第二行中布置的单元串cs21'至cs2m'的源极选择晶体管可以联接到第二源极选择线ssl2。在实施例中,单元串cs11'至cs1m'和cs21'至cs2m'的源极选择晶体管可以共同地联接到单个源极选择线。

在每个单元串中的第一存储器单元mc1至第n存储器单元mcn串联地联接在源极选择晶体管sst和漏极选择晶体管dst之间。第一存储器单元mc1至第n存储器单元mcn的栅极分别联接到第一字线wl1至第n字线wln。

每个单元串的漏极选择晶体管dst联接在对应的位线和存储器单元mc1至mcn之间。在行方向上布置的单元串的漏极选择晶体管可以联接到在行方向上延伸的漏极选择线。第一行中的单元串cs11'至cs1m'的漏极选择晶体管联接到第一漏极选择线dsl1。第二行中的单元串cs21'至cs2m'的漏极选择晶体管可以联接到第二漏极选择线dsl2。

因此,除了管道晶体管pt从每个单元串被排除之外,图14的存储块blkb可以具有与图13的存储块blka的电路类似的等效电路。

在实施例中,可以提供偶数位线和奇数位线来代替第一位线bl1至第m位线blm。在行方向上布置的单元串cs11'至cs1m'或cs21'至cs2m'中的偶数的单元串可以联接到相应偶数位线,并且在行方向上布置的单元串cs11'至cs1m'或cs21'至cs2m'中的奇数的单元串可以联接到相应奇数位线。

在实施例中,第一存储器单元mc1至第n存储器单元mcn中的一个或多个可以用作虚拟存储器单元。例如,可以提供虚拟存储器单元以减小源极选择晶体管sst与存储器单元mc1至mcn之间的电场。另选地,可以提供虚拟存储器单元以减小漏极选择晶体管dst与存储器单元mc1至mcn之间的电场。当虚拟存储器单元的数量增加时,存储块blkb的操作可靠性可以增加,而存储块blkb的大小可能增加。当虚拟存储器单元的数量减少时,存储块blkb的大小可以减小,但是存储块blkb的操作可靠性可能减小。

为了有效地控制虚拟存储器单元,虚拟存储器单元中的每一个可以具有阈值电压。在对存储块blkb执行擦除操作之前或之后,可以对虚拟存储器单元中的所有或一些执行编程操作。在已经执行编程操作之后执行擦除操作的情况下,虚拟存储器单元可以通过控制待被施加到联接到相应虚拟存储器单元的虚拟字线的电压而具有阈值电压。

图15是示出根据本公开的实施例的图11的存储器单元阵列110中的存储块blk1至blkz中的任意一个blkc的电路图。

参照图15,存储块blkc可以包括多个串sr。多个串sr可以分别联接到多个位线bl1到bln。每个串sr可以包括源极选择晶体管sst、存储器单元mc和漏极选择晶体管dst。

每个串sr的源极选择晶体管sst可以联接在存储器单元mc与公共源极线csl之间。串sr的源极选择晶体管sst可以共同联接到公共源极线csl。

每个串sr的漏极选择晶体管dst可以联接在存储器单元mc和对应的位线bl之间。串sr的漏极选择晶体管dst可以分别联接到位线bl1至bln。

在每个串sr中,多个存储器单元mc可以被设置在源极选择晶体管sst和漏极选择晶体管dst之间。在每个串sr中,存储器单元mc可以彼此串联联接。

在串sr中,被设置为距公共源极线csl相同顺序的存储器单元mc可以共同联接到单个字线。串sr中的存储器单元mc可以联接到多个字线wl1至wlm。

在存储块blkc中,可以基于存储块执行擦除操作。当基于存储块执行擦除操作时,可以响应于擦除请求同时擦除存储块blkc的所有存储器单元。

图16是示出根据本公开的实施例的图1的存储器控制器200的示例的示图。

存储器控制器1000联接到主机和存储器装置100。响应于来自主机的请求,控制器1000可以访问存储器装置100。例如,存储器控制器1000可以控制存储器装置100的写入操作、读取操作、擦除操作和后台操作。存储器控制器1000可以在存储器装置100和主机之间提供接口连接。存储器控制器1000可以驱动用于控制存储器装置100的固件。

参照图16,存储器控制器1000可以包括处理器1010、存储器缓冲器1020、错误校正码(ecc)电路1030、主机接口1040、缓冲器控制电路1050、存储器接口1060和总线1070。

总线1070可以提供存储器控制器1000的部件之间的通道。

处理器1010可以控制存储器控制器1000的整体操作并且执行逻辑操作。处理器1010可以通过主机接口1040与外部主机通信,并且可以通过存储器接口1060与存储器装置100通信。另外,处理器1010可以通过缓冲器控制电路1050与存储器缓冲器1020通信。处理器1010可以通过使用存储器缓冲器1020作为操作存储器、高速缓冲存储器或缓冲存储器来控制存储装置50的操作。

处理器1010可以执行闪存转换层(ftl)的功能。处理器1010可以通过ftl将由主机提供的逻辑块地址(lba)转换成物理块地址(pba)。ftl可以使用映射表来接收lba并且将lba转换成pba。可以基于映射单元以各种方式修改使用ftl的地址映射方法。代表性的地址映射方法可以包括页面映射方法、块映射方法和混合映射方法。

处理器1010可以随机化从主机接收的数据。例如,处理器1010可以使用随机化种子来随机化从主机接收的数据。随机化数据可以被提供给存储器装置100作为待被存储的数据,并且可以被编程到存储器单元阵列。

在读取操作期间,处理器1010可以将从存储器装置100接收的数据去随机化。例如,处理器1010可以使用去随机化种子来将从存储器装置100接收的数据去随机化。去随机化数据可以被输出到主机。

在实施例中,处理器1010可以驱动软件或固件以执行随机化操作和去随机化操作。

在实施例中,处理器1010可以执行参照图1描述的读取失败控制电路210的异常分布感测操作。

存储器缓冲器1020可以用作处理器1010的操作存储器、高速缓冲存储器或缓冲存储器。存储器缓冲器1020可以存储待由处理器1010执行的代码和命令。存储器缓冲器1020可以存储待由处理器1010处理的数据。存储器缓冲器1020可以包括静态ram(sram)或动态ram(dram)。

ecc电路1030可以执行错误校正。ecc电路1030可以基于待通过存储器接口1060写入到存储器装置100的数据来执行ecc编码操作。ecc编码的数据可以通过存储器接口1060被传输到存储器装置100。ecc电路1030可以通过存储器接口1060对从存储器装置100接收的数据执行ecc解码操作。例如,ecc电路1030可以被包括在存储器接口1060中作为存储器接口1060的部件。

主机接口1040可以在处理器1010的控制下与外部主机通信。主机接口1040可以使用诸如以下的各种通信方式中的至少一种来执行通信:通用串行总线(usb)、串行at附件(sata)、串列scsi(sas)、高速片间(hsic)、小型计算机系统接口(scsi)、外围组件互联(pci)、高速pci(pcie)、高速非易失性存储器(nvme)、通用闪速存储器(ufs)、安全数字(sd)、多媒体卡(mmc)、嵌入式mmc(emmc)、双列直插式存储器模块(dimm)、寄存式dimm(rdimm)和低负载dimm(lrdimm)。

缓冲器控制电路1050可以在处理器1010的控制下控制存储器缓冲器1020。

存储器接口1060可以在处理器1010的控制下与存储器装置100通信。存储器接口1060可以通过由总线1070提供的通道与存储器装置100进行命令、地址和数据的通信。

例如,存储器控制器1000可以既不包括存储器缓冲器1020也不包括缓冲器控制电路1050,该存储器缓冲器1020和缓冲器控制电路1050中的一个或两个可以单独提供,或者该存储器缓冲器1020和缓冲器控制电路1050的功能可以分布在系统中的一个或多个其它部件中。

例如,处理器1010可以使用代码来控制存储器控制器1000的操作。处理器1010可以从设置在存储器控制器1000中的非易失性存储器装置(例如,只读存储器)加载代码。另选地,处理器1010可以通过存储器接口1060从存储器装置100加载代码。

例如,存储器控制器1000的总线1070可以被划分成控制总线和数据总线。数据总线可以在存储器控制器1000中传输数据。控制总线可以在存储器控制器1000中传输诸如命令和地址的控制信息。数据总线和控制总线可以彼此分开以便不会相互干扰或影响。数据总线可以联接到主机接口1040、缓冲器控制电路1050、ecc电路1030和存储器接口1060。控制总线可以联接到主机接口1040、处理器1010、缓冲器控制电路1050、存储器缓冲器1020和存储器接口1060。

图17是示出应用根据本公开的实施例的存储装置的存储卡系统2000的框图。

参照图17,存储卡系统2000可以包括存储器控制器2100、存储器装置2200和连接器2300。

存储器控制器2100联接到存储器装置2200。存储器控制器2100可以访问存储器装置2200。例如,存储器控制器2100可以控制存储器装置2200的读取操作、写入操作、擦除操作和后台操作。存储器控制器2100可以在存储器装置2100和主机之间提供接口连接。存储器控制器2100可以驱动用于控制存储器装置2200的固件。存储器控制器2100可以以与参照图1描述的存储器控制器200的方式相同的方式来配置。

在实施例中,存储器控制器2100可以包括诸如随机存取存储器(ram)、处理器、主机接口、存储器接口和ecc电路的部件。

存储器控制器2100可以通过连接器2300与外部装置通信。存储器控制器2100可以基于具体通信协议与外部装置(例如,主机)通信。在实施例中,存储器控制器2100可以通过诸如以下的各种通信协议中的至少一种与外部装置通信:通用串行总线(usb)协议、多媒体卡(mmc)协议、嵌入式mmc(emmc)协议、外围组件互连(pci)协议、高速pci(pci-e)协议、高级技术附件(ata)协议、串行ata(sata)协议、并行ata(pata)协议、小型计算机小型接口(scsi)协议、增强型小型磁盘接口(esdi)协议、电子集成驱动器(ide)协议、火线协议、通用闪速存储器(ufs)协议、wi-fi协议、蓝牙协议和高速非易失性存储器(nvme)协议。在实施例中,连接器2300可以由上述各种通信协议中的至少一种来限定。

在实施例中,存储器装置2200可以被实施为诸如以下的各种非易失性存储器装置中的任意一种:电可擦除可编程rom(eeprom)、nand闪速存储器、nor闪速存储器、相变ram(pram)、电阻式ram(reram)、铁电ram(fram)和自旋转矩磁性ram(stt-mram)。

在实施例中,存储器控制器2100和存储器装置2200可以集成到单个半导体器装置中以形成诸如以下的存储卡:个人计算机存储卡国际协会(pcmcia)、标准闪存卡(cf)、智能媒体卡(sm或smc)、记忆棒、多媒体卡(mmc、rs-mmc或微型mmc)、sd卡(sd、迷你sd、微型sd或sdhc)、或通用闪速存储装置(ufs)。

图18是示出应用根据本公开的实施例的存储装置的固态驱动器(ssd)系统3000的框图。

参照图18,ssd系统3000可以包括主机3100和ssd3200。ssd3200可以通过信号连接器3001与主机3100交换信号,并且可以通过电力连接器3002接收电力。ssd3200可以包括ssd控制器3210、多个闪速存储器3221至322n、辅助电源3230和缓冲存储器3240。

在实施例中,ssd控制器3210可以执行以上参照图1描述的存储器控制器200的功能。

ssd控制器3210可以响应于从主机3100接收的信号来控制多个闪速存储器3221至322n。在实施例中,信号可以基于主机3100的接口和ssd3200的接口。例如,信号可以由诸如以下的各种接口中的至少一个限定:通用串行总线(usb)接口、多媒体卡(mmc)接口、嵌入式mmc(emmc)接口、外围组件互连(pci)接口、高速pci(pci-e)接口、高级技术附件(ata)接口、串行ata(sata)接口、并行ata(pata)接口、小型计算机小型接口(scsi)接口、增强型小型磁盘接口(esdi)接口、电子集成驱动器(ide)接口、火线接口、通用闪速存储器(ufs)接口、wi-fi接口、蓝牙接口和高速非易失性存储器(nvme)接口。

辅助电源3230可以通过电力连接器3002联接到主机3100。辅辅助电源3230可以供给有来自主机3100的电力并且可以被充电。当不平稳地传送来自主机3100的电力供给时,辅助电源3230可以供给ssd3200的电力。在实施例中,辅助电源3230可以被定位在ssd3200内部或在ssd3200外部。例如,辅助电源3230可以被设置在主板中并且可以将辅助电力供给到ssd3200。

缓冲存储器3240用作ssd3200的缓冲存储器。例如,缓冲存储器3240可以临时存储从主机3100接收的数据或从多个闪速存储器3221至322n接收的数据,或者可以临时存储闪速存储器3221至322n的元数据(例如,映射表)。缓冲存储器3240可以包括诸如dram、sdram、ddrsdram、lpddrsdram和gram的易失性存储器或诸如fram、reram、stt-mram和pram的非易失性存储器。

图19是示出应用根据本公开的实施例的存储装置的用户系统4000的框图。

参照图19,用户系统4000可以包括应用处理器4100、存储器模块4200、网络模块4300、存储模块4400和用户接口4500。

应用处理器4100可以运行包括在用户系统4000、操作系统(os)或用户程序中的部件。在实施例中,应用处理器4100可以包括用于控制包括在用户系统4000中的部件的控制器、接口、图形引擎等。应用处理器4100可以被设置为片上系统(soc)。

存储器模块4200可以用作用户系统4000的主存储器、工作存储器、缓冲存储器或高速缓冲存储器。存储器模块4200可以包括诸如dram、sdram、ddrsdram、ddr2sdram、ddr3sdram、lpddrsdram和lpddr3sdram的易失性ram或诸如pram、reram、mram和fram的非易失性ram。在实施例中,应用处理器4100和存储器模块4200可以被封装为堆叠封装(pop)并且可以然后被设置为单个半导体封装。

网络模块4300可以与外部装置通信。例如,网络模块4300可以支持诸如以下的无线通信:码分多址(cdma)、全球移动通信系统(gsm)、宽带cdma(wcdma)、cdma-2000、时分多址(tdma)、长期演进(lte)、wimax、wlan、uwb、蓝牙、或wi-fi通信。在实施例中,网络模块4300可以被包括在应用处理器4100中。

存储模块4400可以在其中存储数据。例如,存储模块4400可以存储从应用处理器4100接收的数据。另选地,存储模块4400可以将存储在存储模块4400中的数据传输到应用处理器4100。在实施例中,存储模块4400可以被实施为诸如相变ram(pram)、磁性ram(mram)、电阻ram(rram)、nand闪速存储器、nor闪速存储器或具有三维(3d)结构的nand闪速存储器的非易失性半导体存储器装置。在实施例中,存储模块4400可以被设置为诸如用户系统400的存储卡或外部驱动器的可移除存储介质(即,可移除驱动器)。

在实施例中,存储模块4400可以包括多个非易失性存储器装置,并且多个非易失性存储器装置中的每一个可以以与以上参照图11和图15描述的存储器装置100的方式相同的方式操作。存储模块4400可以以与以上参照图1描述的存储装置50的方式相同的方式操作。

用户接口4500可以包括将数据或指令输入到应用处理器4100或将数据输出到外部装置的接口。在实施例中,用户接口4500可以包括诸如以下的用户输入接口:键盘、小键盘、按钮、触摸面板、触摸屏、触摸板、触摸球、摄影机、麦克风、陀螺仪传感器、振动传感器和压电装置。用户接口4500可以进一步包括诸如以下的用户输出接口:液晶显示器(lcd)、有机发光二极管(oled)显示装置、有源矩阵oled(amoled)显示装置、led、扬声器和监视器。

本公开的各个实施例涉及一种被配置为感测异常阈值电压分布的存储器控制器以及操作该存储器控制器的方法。

虽然已经为了说明的目的公开了本公开的实施例,但是本领域技术人员将理解,根据前述公开内容,可以进行各种变型、添加和替换。因此,本公开的范围由所附权利要求和权利要求的等同物限定,而不是由前面的描述限定。

在以上讨论的实施例中,可以选择性地执行或跳过步骤。另外,不需要以公开的顺序执行每个实施例中的步骤。更一般地,公开的实施例旨在帮助本领域技术人员更清楚地理解本公开,而不是限制本公开的范围。本领域技术人员将理解,基于本公开的技术范围,各种变型是可能的。

已经参照附图描述本公开的实施例,并且在说明书中使用的特定术语或词语应当根据本公开的精神来解释,而不限制本公开的主题。应当理解的是,本文所述的基本发明构思的许多变化和变型仍然落入如所附权利要求及其等同物所限定的本公开的精神和范围内。

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