CN102290105B - 具有多位存储器件的数据存储系统及其操作方法 - Google Patents
具有多位存储器件的数据存储系统及其操作方法 Download PDFInfo
- Publication number
- CN102290105B CN102290105B CN201110056113.XA CN201110056113A CN102290105B CN 102290105 B CN102290105 B CN 102290105B CN 201110056113 A CN201110056113 A CN 201110056113A CN 102290105 B CN102290105 B CN 102290105B
- Authority
- CN
- China
- Prior art keywords
- data
- area
- programming
- programming operation
- stored
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5621—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
- G11C11/5628—Programming or writing circuits; Data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C14/00—Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down
- G11C14/0009—Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down in which the volatile element is a DRAM cell
- G11C14/0018—Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down in which the volatile element is a DRAM cell whereby the nonvolatile element is an EEPROM element, e.g. a floating gate or metal-nitride-oxide-silicon [MNOS] transistor
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/564—Miscellaneous aspects
- G11C2211/5641—Multilevel memory having cells with different number of storage levels
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/564—Miscellaneous aspects
- G11C2211/5642—Multilevel memory with buffers, latches, registers at input or output
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/564—Miscellaneous aspects
- G11C2211/5643—Multilevel memory comprising cache storage devices
Landscapes
- Engineering & Computer Science (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Read Only Memory (AREA)
Abstract
一种数据存储设备包括:包括存储单元阵列的非易失性存储器件;和包括缓冲存储器并控制该非易失性存储器件的存储器控制器。该数据存储设备的操作方法包括:根据外部请求将数据存储在缓冲存储器中,并确定存储在该缓冲存储器中的数据是否是伴随该存储单元阵列的缓冲器编程操作的数据。当存储在该缓冲存储器中的数据是伴随该缓冲器编程操作的数据时,该方法还包括确定是否需要对该存储单元阵列的主编程操作,以及当需要对存储单元阵列的主编程操作时,确定对该存储单元阵列的主编程操作的编程模式。该方法还包括基于确定的编程模式向该多位存储器件发出用于对该存储单元阵列的主编程操作的命令的集合。
Description
相关申请的交叉引用
本申请要求于2010年3月9日提交的韩国专利申请No.10-2010-0020798以及2010年11月9日提交的韩国专利申请No.10-2010-0111143的优先权,其全部内容通过参照而被合并于此。
背景技术
示范性实施例涉及一种电子设备,更具体地,示范性实施例涉及存储系统。
半导体存储器件是在诸如计算机和从卫星到消费电子设备的基于微处理器的应用之类的数字逻辑系统中通常发现的重要的微电子元件。半导体存储器件的制造的进步,包括使得定标到较高的存储器密度和较快的工作速度的工艺改进和电路设计相关的发展,帮助建立用于其它的数字逻辑族的性能标准。
半导体存储器件一般包括诸如随机存取存储器(RAM)器件之类的易失性存储器件和非易失性存储器件。在RAM器件中,例如通过建立诸如静态随机存取存储器(SRAM)中的双稳态触发器的逻辑状态或通过对动态随机存取存储器(DRAM)中的电容器充电,来存储数据。在SRAM和DRAM器件二者中,只要提供功率电源,数据就保持存储并且可以读取数据,但是当电源关断或中断时,数据就丢失。
掩模只读存储器(MROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)和电可擦除可编程只读存储器(EEPROM)器件是在即使电源关断或中断时也能够保持存储的数据的非易失性存储器的示例。非易失性存储器的数据存储状态根据使用的制造技术可以是永久的或可重编程的。非易失性的半导体存储器用于计算机、航空电子学、电信和消费电子设备行业中的多种应用中的程序和微代码存储。单芯片易失性以及非易失性存储器存储模式的组合还在诸如用在需要快速、可重编程的非易失性存储器的系统中的非易失性SRAM(nvRAM)之类的器件中有效。此外,许多专用存储器结构已经演进了,其包含一些额外的逻辑电路以优化特定应用任务的性能。
掩模只读存储器(MROM)、可编程只读存储器(PROM)和可擦除可编程只读存储器(EPROM)非易失性存储器件不能够自由地运行自系统擦除和写操作,因此不容易更新这样的存储器的内容。另一方面,电可擦除可编程只读存储器(EEPROM)非易失性存储器件是电可擦除和可写的,因而可以容易地应用于需要连续更新的辅助存储器或系统编程存储器。
发明内容
本发明构思的实施例的一个方面针对为了数据存储设备提供的操作方法,该数据存储设备包括:非易失性存储器件,包括存储单元阵列;和存储器控制器,其包括缓冲存储器并且其控制该非易失性存储器件。该操作方法包括:根据外部请求将数据存储在该缓冲存储器中,并确定存储在该缓冲存储器中的数据是否是伴随该存储单元阵列的缓冲器编程操作的数据。当存储在该缓冲存储器中的数据是伴随该缓冲器编程操作的数据时,确定是否需要对该存储单元阵列的主编程操作,并且当需要对该存储单元阵列的主编程操作时,确定对该存储单元阵列的主编程操作的编程模式。该操作方法还包括:基于确定的编程模式向该多位存储器件发出用于对该存储单元阵列的主编程操作的命令的集合。
本发明构思的实施例的另一个方面针对数据存储设备,其包括:包括存储单元阵列的非易失性存储器件,该存储单元阵列包括第一区域和第二区域;和存储器控制器,包括缓冲存储器并且被配置为控制该非易失性存储器件。当第一区域的最小编程单位的数据存储在该缓冲存储器中时,该存储器控制器控制该非易失性存储器件以使得将存储在该缓冲存储器中的数据存储在第一区域中。当第二区域的最小编程单位的数据存储在该第一区域中时,该存储器控制器控制该非易失性存储器件以使得将存储在该第一区域中的数据存储在第二区域中。该非易失性存储器件包括页缓冲器,每个页缓冲器包括多个锁存器,该多个锁存器的一个用于存储要被存储在第一区域中或从第一区域读出的数据,并且当存储在第一区域中的数据存储在第二区域中时,根据从该存储器控制器提供的转存(dump)命令,存储在该一个锁存器中的数据被转存到其余锁存器当中的被选中的锁存器中。
本发明构思的实施例的另一个方面针对为了数据存储设备提供的操作方法,该数据存储设备包括:非易失性存储器件,包括存储单元阵列;和存储器控制器,其包括缓冲存储器并且其控制该非易失性存储器件。该操作方法包括:响应于对该存储单元阵列的第一区域的缓冲器编程操作的需求,控制该非易失性存储器件以便对该存储单元阵列的第一区域执行缓冲器编程操作,并且响应于对该存储单元阵列的第二区域的主编程操作的需求,控制该非易失性存储器件以便对该存储单元阵列的第二区域执行主编程操作。对第二区域的主编程操作包括:多个数据设置时间段,每个伴随对第一区域的单个位读操作;和多位编程时间段,其中将在多个数据设置操作中运行的单个位读操作的结果存储在第二区域中。在多个数据设置时间段的开始之前和在多个数据设置时间段的结束之后,切换非易失性存储器件的工作模式。
附图说明
通过参考附图的详细描述,上述和其它目的和特征将变得明显,其中除非另作说明,在各个图中,相似的参考数字始终指代相似的部分,并且其中:
图1A是显示根据本发明构思的示范性实施例的应用于多电平存储器件的地址加扰技术的示例的图;
图1B是显示当根据用于在每个存储单元中存储4位数据的3步编程来执行编程操作时变化的阈值电压分布的示例的图;
图1C是显示当根据用于在每个存储单元中存储3位数据的3步编程来执行编程操作时变化的阈值电压分布的示例的图;
图2是显示根据本发明构思的示范性实施例的数据存储系统的框图;
图3是显示每单元存储4位数据且应用3步重新编程方法的多位存储器件的示范性地址加扰技术的图;
图4是显示在图2示出的数据存储系统的编程操作期间的示范性数据流的图;
图5是显示根据图4描述的单个位和1步编程操作的集合的示范性数据流的图;
图6是显示根据图4描述的单个位和粗/细编程操作的集合的示范性数据流的图;
图7是显示根据图4描述的单个位、粗和细编程操作的集合的示范性数据流的图;
图8是用于描述根据本发明构思的实施例的图2示出的存储器系统的读操作的流程图;
图9是显示每单元存储3位数据且应用3步重新编程方法的多位存储器件的示范性地址加扰技术的图;
图10是显示在应用图9示出的地址加扰技术的数据存储系统的编程操作期间的示范性数据流的图;
图11是用于描述根据本发明构思的示范性实施例的页交织技术的图;
图12是显示在应用图11描述的页交织技术的数据存储系统的编程操作期间的示范性数据流的图;
图13是显示每单元存储3位数据且应用3步重新编程方法的多位存储器件的示范性地址加扰技术的图;
图14是显示在图2示出的数据存储系统的编程操作期间的示范性数据流的图;
图15是显示根据本发明构思的示范性实施例的多位存储器件的页缓冲器结构的图;
图16是显示图13和14描述的1步编程操作的命令序列的图;
图17是显示根据图16示出的1步编程命令序列的示范性数据流的图;
图18是显示图13和14描述的粗编程操作的示范性命令序列的图;
图19是显示根据图18示出的粗编程命令序列的示范性数据流的图;
图20是显示应用图11描述的页交织技术和图13描述的地址加扰技术的数据存储系统的编程操作的示范性数据流的图;
图21是显示在存储单元中存储4位数据且使用重新编程方法的多位存储器件的另一个示范性地址加扰技术的图;
图22A到22D是用于描述根据本发明构思的示范性实施例的多位存储器件的第一和第二区域的各种组合的图;
图23是用于描述根据本发明构思的示范性实施例的存储器控制器的操作的流程图;
图24是用于描述根据本发明构思的另一个示范性实施例的存储器控制器的操作的流程图;
图25是用于描述根据本发明构思的另一个示范性实施例的存储器控制器的操作的流程图;
图26示出了显示具有全位线存储器结构或奇偶存储器结构的存储单元阵列的图;
图27是显示根据本发明构思的示范性实施例的计算系统的框图;
图28是显示根据本发明构思的示范性实施例的存储器控制器的框图;
图29是显示根据本发明构思的示范性实施例的固态驱动器的框图;
图30是显示使用图29中的固态驱动器的存储设备的示例的框图;
图31是显示使用图29中的固态驱动器的存储服务器的示例的框图;
图32到34是显示应用根据本发明构思的示范性实施例的数据存储设备的系统的示例的图;
图35是示出了根据本发明构思的实施例的存储器卡的示例的框图;
图36是示出了根据本发明构思的实施例的数字静态照相机的示例的框图;和
图37是示出了应用图35中的存储器卡的各种系统的示例的图。
具体实施方式
下面将参照示出本发明构思的实施例的附图更完整地描述本发明构思。但是,可以以多种不同的形式来实施本发明构思,并且本发明构思不应当被理解为局限于这里所描述的实施例。相反,提供这些实施例以使得本公开对本领域技术人员来说清楚完整,并完全传达本发明构思的范围。在附图中,为了清楚,层和区域的大小和相对大小可以被放大。相似的参考数字始终指代相似的元件。
应当理解,尽管这里可能使用术语第一、第二、第三等来描述各种元件、部件、区域、层和/或区段,但是这些元件、部件、区域、层和/或区段不应当被这些术语所限制。这些术语可以仅用于将一个元件、组件、区域、层和部件和另一个区域、层或部件区分开来。因此,在不脱离本发明构思的教导的情况下,下面讨论的第一元件、组件、区域、层或部件可以被称为第二元件、组件、区域、层或部件。
这里可能使用空间相对术语,如“在...之下”、“在...下面”、“低于”、“在...之上”、“在...上面”等等来简化描述,以描述图中所示的一个元件或特征对另一个元件或特征的关系。应当理解,空间相对术语可以意欲包括使用中的或操作中的设备的除了图中描述的方位之外的不同的方位。例如,如果在图中的设备被翻转,则用在其它元件或特征“之下”或“下面”描述的元件将被用在其它元件或特征“之上”来定位。因此,示范性术语“在...之下”和“在...下面”能够包括“在...之上”和“在...之下”两种方位。设备可以以其它方式定位(旋转90度或在其它方位),相应地解释这里所用的空间相对描述语。此外,应当理解,当一个层被称为位于两个层之间时,在这两个层之间可以仅仅有该一个层,或者也可以存在一个或多个插入层。
这里所用的术语仅仅是为了描述具体的实施例,不意欲是限制本发明构思。正如这里所用的,单数形式“一”、“一个”和“这个”可以意欲也包括复数形式,除非上下文清楚地指明是单数。还应当理解,用于本说明书中的术语“包括”和/或“包含”指定了既定特征、整数、步骤、操作、元件和/或部件的存在,但是不排除一个或更多的其它特征、整数、步骤、操作、元件、部件、和/或它们的分组的存在或增加。这里所用的术语“和/或”包括相关列出的项的一个或多个的任意或所有组合。
应当理解,当称一个元件或层“在...上”、“连接到”、“耦接到”、或“邻近于”另一个元件或层时,其能够直接在另一元件或层上、连接到、耦接到或邻近于另一个元件或层上,或者也可以存在插入的元件或层。相反,当称一个元件“直接在...上”、“直接连接到”、“直接耦接到”或“直接邻近于”另一元件或层时,则不存在插入的元件或层。
除非另有定义,这里所用的所有术语(包括技术和科学术语)具有和本发明构思所属领域的技术人员通常理解的相同的意思。还应当理解,诸如在通常使用的词典中定义的那些术语应当被理解为具有和在相关技术的内容中的意思一致的意思,并且不应当被解释为理想化的或超出正规认识的,除非这里做了特别的定义。
这里,多电平存储器件是指能够每存储单元存储多个位的存储器件。随着存储在多电平存储器件的每个存储单元中的数据位的数目增大,已经逐渐变得难以保证这样的器件的可靠性。引起可靠性降低的因素中的一个代表性因素是由相邻存储单元之间的耦合引起的阈值电压的变化。例如,由于在对与先前编程的存储单元相邻的存储单元进行编程时引起的耦合,从而该先前编程的存储单元的阈值电压可能变化。在图1A中,示出了应用于多电平存储器件以便有效管理这样的耦合的地址加扰技术的示例。
将在4位数据存储在一个存储单元中的假设下描述地址加扰技术。为了便于说明,在图1A中,仅仅示出了四个字线WL0到WL3。多个存储单元MC与每个字线连接。最初,执行1步编程操作,其中较低的2位数据存储到第一字线WL0中的每个存储单元。也就是说,在该1步编程操作期间,2页数据存储在与第一字线WL0连接的存储单元中。这在图1A中用①表示。然后,对与第二字线WL1连接的存储单元执行1步编程操作。这在图1A中用②表示。在对与第二字线WL1连接的存储单元执行1步编程操作之后,对位于第二字线WL1之下的并且编程了较低的2位数据的第一字线WL0执行粗编程操作(也称为2步编程操作)。这在图1A中用③表示。在粗编程操作期间,上2位数据存储在与第一字线WL0连接的存储单元中。在与第一字线WL0连接的存储单元的粗编程操作之后,对第三字线WL2执行1步编程操作。这在图1A中用④表示。在对第三字线WL2的1步编程操作之后,执行粗编程操作,在其间,上2位数据存储在与第二字线WL1连接的存储单元中。这在图1A中用⑤表示。在对第二字线WL1的粗编程操作之后,对第一字线WL0执行细编程操作。这在图1A中用⑥表示。此后,根据如图1A的圆圈数字所示的上述编程顺序依次运行1步、粗和细编程操作。根据图1A描述的编程顺序选择字线的方式被称为地址加扰技术。
当1步编程操作和粗编程操作完成时,形成与M位数据(M是2或更大的整数)对应的阈值电压分布(例如,2M个阈值电压分布)。尽管在完成粗编程操作时形成所有这些阈值电压分布,但是阈值电压分布之间的读裕度(margin)一般不足。因而,执行细编程操作以保证足够区分阈值电压分布的读裕度。换句话说,进行细编程操作以使得每个阈值电压分布的宽度变窄,从而增大相邻的分布之间的间隔。在细编程操作期间,使用高于在粗编程操作期间使用的读校验电压的读校验电压。可以通过上述编程技术减小相邻的存储单元之间的耦合,其被称为重新编程方法/算法。
在示范性实施例中,上述对4位数据的重新编程方法,即1步编程、粗编程和细编程可以应用于2位数据和3位数据的重新编程方法。
利用该重新编程方法,必须保持存储在任意字线中的存储单元中的数据,直到对该任意字线的细编程操作完成。例如,根据从存储器控制器提供给多位存储器件的数据执行1步编程操作,并且根据通过1步编程操作存储的数据和从存储器控制器提供的数据执行粗编程操作。根据通过1步和粗编程操作存储的数据进行细编程操作。但是,如上所述,难以精确地读取通过1步和粗编程操作存储的数据。这意味着必须将细编程操作所需的数据从存储器控制器提供给多位存储器件。为此,存储器控制器需要保持存储在任意字线中的存储单元中的数据直到对该任意字线的细编程操作完成。这需要在存储器控制器中提供相对大的缓冲存储器以便保持细编程操作所需的数据。
图1B是显示当根据用于在每个存储单元中存储4位数据的3步编程来执行编程操作时阈值电压分布的变化的图。例如,图1B示出了在3步编程期间图1A中的字线WL0的存储单元的阈值电压分布。
首先,2页数据(即,第一和第二页数据)存储在被选中的字线(例如,图1A中的WL0)的存储单元中。此时,如图1B的方框21所示,可以基于要被编程的数据将与擦除状态E对应的阈值电压分布中的存储单元编程为具有阈值电压分布中的每个与编程状态Q1、Q2和Q3对应的阈值电压。
如上所述,字线(例如,WL0)中的1步编程的存储单元的粗编程操作发生在相邻字线(例如,WL1)中的存储单元的1步编程操作之后。此时,如图1B的方框22所示,字线(例如,WL0)中的1步编程的存储单元的分布由于在编程相邻字线(例如,WL1)中的存储单元时引起的耦合而加宽。
然后,2页数据,即第三和第四页数据可以存储在被选中的字线WL0的存储单元中。此时,如图1B的方框23所示,可以将与每个状态对应的阈值电压分布中的存储单元编程为具有相应的阈值电压分布P1’~P15’中的阈值电压。例如,可以基于要被编程的数据将与擦除状态E对应的阈值电压分布中的存储单元编程为具有与编程状态P1′到P3′对应的阈值电压分布中的阈值电压。可以基于要被编程的数据将与编程状态Q1对应的阈值电压分布中的存储单元编程为具有与编程状态P4’到P7’对应的阈值电压分布中的阈值电压。可以基于要被编程的数据将与编程状态Q2对应的阈值电压分布中的存储单元编程为具有与编程状态P8’到P11’对应的阈值电压分布中的阈值电压。可以基于要被编程的数据将与编程状态Q3对应的阈值电压分布中的存储单元编程为具有与编程状态P12’到P15’对应的阈值电压分布中的阈值电压。
如上所述,字线(例如,WL0)中的粗编程的存储单元的细编程操作可以在对相邻字线(例如,WL2和WL1)的1步编程操作和粗编程操作之后进行。此时,如图1B的方框24所示,字线(例如,WL0)中的粗编程的存储单元的分布由于在编程相邻字线(例如,WL2和WL1)中的存储单元时引起的耦合而加宽。为此,难以可靠地从粗编程的存储单元中读取数据。
可以将字线WL0中的存储单元编程为具有最终的阈值电压分布P1到P15,如图1B的方框25所示。此操作被称为细编程操作。如上所述,细编程操作需要先前编程的数据(例如,第一到第四页数据)。由于难以从字线WL0中的存储单元中读取先前编程的数据,因此将基于从存储器控制器提供的数据(或,由存储器件保持的数据)进行细编程操作。如图1B的方框26所示,细编程的存储单元的分布由于在编程相邻字线中的存储单元时引起的耦合而加宽。
然后,将根据图1A中描述的编程顺序(或序列)对每个字线进行1步编程操作、粗编程操作和细编程操作,将用和图1B中描述的相同的方式来执行。
图1C是显示在根据用于在每个存储单元中存储3位数据的3步编程来执行编程操作时阈值电压分布的变化的图。下面将更完整地描述根据3步编程的编程方法。
首先,2页数据(即,第一和第二页数据)存储在被选中的字线(例如,图1A中的WL0)的存储单元中。此时,如图1C的方框31所示,可以基于要被编程的数据将与擦除状态E对应的阈值电压分布中的存储单元编程为具有阈值电压分布中的每个与编程状态Q1、Q2和Q3对应的阈值电压。
如上所述,字线(例如,WL0)中的1步编程的存储单元的粗编程操作发生在相邻字线(例如,WL1)中的存储单元的1步编程操作之后。此时,如图1C的方框31的实线所示,字线(例如,WL0)中的1步编程的存储单元的分布由于在编程相邻字线(例如,WL1)中的存储单元时引起的耦合而加宽。
然后,可以将1页数据存储在被选中的字线WL0的存储单元中。此时,如图1C的方框32所示,可以将与每个状态对应的阈值电压分布中的存储单元编程为具有相应的阈值电压分布P1~P7中的阈值电压。例如,可以基于要被编程的数据将与擦除状态E对应的阈值电压分布中的存储单元编程为具有与编程状态P1对应的阈值电压分布中的阈值电压。可以基于要被编程的数据将与编程状态Q1对应的阈值电压分布中的存储单元编程为具有与编程状态P2和P3对应的阈值电压分布中的阈值电压。可以基于要被编程的数据将与编程状态Q2对应的阈值电压分布中的存储单元编程为具有与编程状态P4和P5对应的阈值电压分布中的阈值电压。可以基于要被编程的数据将与编程状态Q3对应的阈值电压分布中的存储单元编程为具有与编程状态P6到P7对应的阈值电压分布中的阈值电压。
如上所述,字线(例如,WL0)中的粗编程的存储单元的细编程操作可以在对相邻字线(例如,WL2和WL1)的1步编程操作和粗编程操作之后进行。此时,如图1C的方框32中的实线所示,字线(例如,WL0)中的粗编程的存储单元的分布由于在编程相邻字线(例如,WL2和WL1)中的存储单元时引起的耦合而加宽。为此,难以精确地从粗编程的存储单元中读取数据。
可以将字线WL0中的存储单元编程为具有最终的阈值电压分布P1到P15,如图1C的方框33所示。此操作被称为细编程操作。如上所述,细编程操作需要先前编程的数据(例如,第一到第三页数据)。由于难以从字线WL0中的存储单元中读取先前编程的数据,因此将基于从存储器控制器提供的数据(或,由存储器件保持的数据)进行细编程操作。如图1C的方框33中的实线所示,细编程的存储单元的分布由于编程相邻字线中的存储单元时引起的耦合而加宽。
然后,将根据图1A中描述的编程顺序(或序列)对每个字线进行1步编程操执行、粗编程操作和细编程操作,将用和图1C中描述的相同的方式来执行。
图2是显示根据本发明构思的示范性实施例的数据存储系统的框图。
参考图2,数据存储系统1000包括作为非易失性存储器件的多位存储器件100、存储器控制器200和主机300。多位存储器件100可以由一个或多个存储芯片形成。作为数据存储设备,多位存储器件100和存储器控制器200可以构成存储卡、固态驱动器(SSD)、存储棒等等。多位存储器件100包括多个存储块(或区/体),每个存储块具有以行和列布置的存储单元。存储单元的每一个存储多位(或多电平)数据。存储单元被布置为具有2维阵列结构或3维/垂直阵列结构。在美国公开No.2008/0023747和2008/0084729中公开了示范性的3维阵列结构,其全部内容通过引用而被合并于此。
多位存储器件100的存储块分成第一区域101和第二区域102。这里,第一和第二区域101和102可以在逻辑上被定义,而不是在物理上定义。此外,第一和第二区域101和102的划分能够在逻辑上改变。第一区域101中的存储块和第二区域102中的存储块用不同的方式编程。例如,可以根据单个位(single-bit)编程技术(以下称为SLC编程技术)来编程第一区域101中的存储块,并且可以根据多位编程方式(例如,上述N步重新编程技术)(以下称为MLC编程技术)来编程第二区域102中的存储块。换句话说,依据此示例,第一区域101中的每个存储单元存储1位数据,而第二区域102中的每个存储单元存储M位数据(M是3或更大的整数)。此外,第一区域101中的每个存储单元可以存储数目比存储在第二区域102中的每个存储单元中的M位数据(M是3或更大的整数)少的数据位。
仍然参考图2,存储器控制器200被配置为响应于主机300的请求来控制多位存储器件100。存储器控制器200可以包括缓冲存储器201。缓冲存储器201用于临时存储从主机300发送的数据和从多位存储器件100读出的数据。存储器控制器200以静态调度模式控制存储器件100的编程操作。例如,当第一区域101的最小编程单位的数据存储在缓冲存储器201中时,存储器控制器200控制多位存储器件100以使得最小编程单位的数据存储(或编程)在第一区域101中。这被称为缓冲器编程操作。如果在第一区域101中积聚了第二区域102的最小编程单位的数据,则存储器控制器200控制多位存储器件100以使得第二区域102的最小编程单位的数据存储(或编程)在第二区域102中。这被称为主编程操作。稍后将更完整地描述缓冲器编程操作和主编程操作。
在示范性实施例中,可以根据编程模式、每单元位数等不同地确定第一区域101的最小编程单位和第二区域102的最小编程单位。第一区域101的最小编程单位不同于第二区域102的最小编程单位。
在示范性实施例中,可以通过缓冲器编程操作将数据存储在第一区域101并通过主编程操作将数据存储在第二区域102中,来减小存储器控制器200的缓冲存储器201的尺寸。换句话说,不必要将用于细编程操作的数据保持在缓冲存储器201中。因此,存储器控制器200的缓冲存储器201的尺寸减小了。
图3是显示每单元存储4位数据且应用3步重新编程方法的多位存储器件的示范性地址加扰技术的图,以及图4是显示在图2示出的数据存储系统的编程操作期间的数据流的示例的图。下面将更完整地描述根据本发明构思的示范性实施例的数据存储系统的操作。
为了简化描述,如图3所示,假定每个存储块包括64条字线WL0到WL63,并且每个存储单元存储4位数据。利用此假设,4页存储在每条字线的存储单元中,并且256页存储在每个存储块中。这里,术语“页”用于指示数据的页,其例如在逻辑上可由分开的页地址寻址。
首先,当将第一区域101的最小编程单位的数据D0从主机300传送到存储器控制器200的缓冲存储器201时,根据存储器控制器200的控制将存储在缓冲存储器201中的数据D0编程到多位存储器件100的第一区域101中。如上所述,通过SLC编程操作将数据D0编程到第一区域101中。存储器控制器200判断在第一区域101中是否积聚了第二区域102的最小编程单位的数据,并且根据判断结果控制主编程操作。可以根据页地址来判断在第一区域101中是否积聚了第二区域102的最小编程单位的数据。由于仅仅一页D0存储在第一区域101中,因此不执行主编程操作。如果将第一区域101的最小编程单位的数据D1从主机300传送到存储器控制器200的缓冲存储器201,则根据存储器控制器200的控制将存储在缓冲存储器201中的数据D1编程到多位存储器件100的第一区域101中。由于第二区域102的最小编程单位的数据(例如,1步编程操作所需的2页)积聚在第一区域101中,因此存储器控制器200控制多位存储器件100以使得存储在第一区域101中的数据D0和D1被存储在第二区域102中。也就是说,基于存储在第一区域101中的数据D0和D1进行对字线WL0的1步编程操作。
如上所述,当第一区域101的最小编程单位的数据Di(i是0到255)存储在缓冲存储器201中时,在存储器控制器200的控制之下通过SLC编程操作将存储在缓冲存储器201中的数据编程到多位存储器件100的第一区域101中。与确定第一区域101的最小编程单位的数据是否存储在缓冲存储器201中一起,存储器控制器200确定在第一区域101中是否积聚了第二区域102的最小编程单位的数据。存储器控制器200可以根据确定结果控制对第二区域102的1步编程操作、粗编程操作或细编程操作,下面将更完整地描述。
可以用参考图3描述的地址加扰方式执行对第二区域102的1步编程操作、粗编程操作或细编程操作。例如,如果D0和D1数据存储在第一区域101中,则根据存储在第一区域101中的D0和D1数据来执行对字线WL0的1步编程操作。如果D2和D3数据存储在第一区域101中,则执行对字线WL1的1步编程操作。也就是说,根据存储在第一区域101中的D2和D3数据执行对字线WL1的1步编程操作。
接下来,如果D4和D5数据存储在第一区域101中,则根据存储在第一区域101中的D0、D1、D4和D5数据执行对字线WL0的粗编程操作。当D6和D7数据存储在第一区域101中时,根据存储在第一区域101中的D6和D7数据执行对字线WL2的1步编程操作。如果D8和D9数据存储在第一区域101中,则根据存储在第一区域101中的D2、D3、D8和D9数据执行对字线WL1的粗编程操作。在根据存储在第一区域101中的D8和D9数据执行对字线WL1的粗编程操作之后,根据存储在第一区域101中的D0、D1、D4和D5数据进行对字线WL0的细编程操作。然后,在D254数据存储在第一区域101中之前,其余数据D10到D253可以按照与D6和D7数据的1步编程操作、D8和D9数据的粗编程操作、和D0、D1、D4、和D5数据的细编程操作相同的顺序存储在第二区域102中。
在D254和D255数据存储在第一区域101中的情况下,根据存储在第一区域101中的D254和D255数据执行对字线WL63的粗编程操作。在根据存储在第一区域101中的D254和D255数据执行对字线WL63的粗编程操作之后,根据存储在第一区域101中的D246、D247、D252和D253数据进行对字线WL62的细编程操作。最后,根据存储在第一区域101中的D250、D251、D254和D255数据进行对字线WL63的细编程操作。
从图4中可以理解,可以根据要被存储在第一区域101中的数据,即要被存储在第一区域101中的数据的页地址,判断SLC编程操作、SLC和1步编程操作的集合、SLC和粗编程操作的集合、SLC、粗和细编程操作的集合、和SLC、粗、细和细编程操作的集合。当将相应的命令从存储器控制器200提供给多位存储器件100时,可以执行例如SLC编程操作、1步编程操作、粗编程操作或细编程操作。可替换地,指示编程模式的命令集合提供给多位存储器件100,并且多位存储器件100根据该命令集合自动地执行操作的集合。编程模式由SLC编程操作、SLC和1步编程操作的集合、SLC和粗编程操作的集合、SLC、粗和细编程操作的集合、或SLC、粗、细和细编程操作的集合形成。可以根据地址加扰技术、每单元位数等改变编程模式中的编程操作的集合。下表1示出了应用于参考图3和4描述的编程操作的编程模式。
表1
编程模式 | 编程集合 |
模式1 | SLC编程 |
模式2 | SLC编程+1步编程 |
模式3 | SLC编程+粗编程 |
模式4 | SLC编程+粗编程+细编程 |
模式5 | SLC编程+粗编程+细编程+细编程 |
图5是显示根据参考图4描述的单个位和1步编程操作的集合的数据流的示例的图。
参考图5,将数据D0加载到多位存储器件100的页缓冲器103上,并且加载的数据D0存储在第一区域101中。然后,将数据D1加载到多位存储器件100的页缓冲器103上,并且加载的数据D1存储在第一区域101中。当D0和D1数据存储在第一区域101中时,即当在第一区域101中积聚了第二区域102的最小编程单位的数据(例如,2页)时,依次通过页缓冲器103从第一区域101中读取D0和D1数据。然后,根据1步编程操作将存储在页缓冲器103中的D0和D1数据存储在第二区域102中。从第一区域101到页缓冲器103的数据传送可以通过SLC读操作来进行。可以不用存储器控制器200的介入而自动地执行单个位/SLC读操作和1步编程操作的集合。在另一个实施例中,可以根据存储器控制器200的控制进行单个位读操作、1步编程操作、粗编程操作和细编程操作。图5示出的1步编程操作的每一个基本上与图4示出的相同地执行,因而省略了对其的描述。
图6是显示根据图4描述的单个位和粗/细编程操作的集合的数据流的图。
参考图6,将数据D4加载到多位存储器件100的页缓冲器103上,并且加载的数据D4存储在第一区域101中。然后,将数据D5加载到多位存储器件100的页缓冲器103上,并且加载的数据D5存储在第一区域101中。当D4和D5数据存储在第一区域101中时,即当在第一区域101中积聚了第二区域102的最小编程单位的数据(例如,2页)时,如图6所示,依次根据SLC读操作通过页缓冲器103从第一区域101中读取D0、D1、D4和D5数据。然后,通过粗编程操作将存储在页缓冲器103中的D0、D1、D4和D5数据存储在第二区域102中。可以不用存储器控制器200的介入而自动地执行单个位/SLC读操作和粗编程操作的集合。在另一个实施例中,可以根据存储器控制器200的控制进行单个位读操作、1步编程操作、粗编程操作和细编程操作。图6示出的粗编程操作基本上与图4示出的相同地执行,因而省略了对其的描述。
可以用和粗编程操作相同的方式执行细编程操作。例如,对字线WL0的细编程操作伴随有依次将第一区域101的D0、D1、D4和D5数据传送到页缓冲器103并将页缓冲器103的D0、D1、D4和D5数据存储在第二区域102中。
图7是显示根据图4描述的单个位、粗和细编程操作的集合的数据流的图。
参考图7,将数据D8加载到多位存储器件100的页缓冲器103上,并且加载的数据D8存储在第一区域101中。然后,将数据D9加载到多位存储器件100的页缓冲器103上,并且加载的数据D9存储在第一区域101中。当D8和D9数据存储在第一区域101中时,即当在第一区域101中积聚了第二区域102的最小编程单位的数据时,执行对字线WL1的粗编程操作。也就是说,根据SLC读操作通过页缓冲器103依次从第一区域101读出D2、D3、D8和D9数据。通过粗编程操作将页缓冲器103中的D2、D3、D8和D9数据存储在第二区域102中。在执行对字线WL1的粗编程操作之后,不用存储器控制器200的介入,进行对字线WL0的细编程操作。也就是说,根据SLC读操作通过页缓冲器103从第一区域101中依次读出D0、D1、D4和D5数据,并且根据细编程操作将页缓冲器103的D0、D1、D4和D5数据存储在第二区域102中。
图8是用于描述图2示出的存储器系统的读操作的流程图。下面将更完整地描述根据本发明构思的示范性实施例的存储器系统的读操作。
在步骤S100中,从外部设备(例如,主机)请求读操作。在步骤S110中,存储器控制器200确定读请求是否与细编程操作完成的字线有关。基于地址映射信息确定对每个字线的细编程操作是否完成。如果读请求与完成了细编程操作的字线有关,则在步骤S120中,存储器控制器200控制多位存储器件100以使得从存储器件100的第二区域102读取请求的数据。对第二区域102的读操作是MLC读操作。从第二区域102读取的数据临时存储在存储器控制器200的缓冲存储器201中。此后,过程前进到步骤S140。在步骤S110中,如果读请求与没有完成细编程操作的字线有关,则在步骤S130中,存储器控制器200控制多位存储器件100以使得从第一区域101读取请求的数据。对第一区域101的读操作是SLC读操作。从第一区域101读取的数据临时存储在存储器控制器200的缓冲存储器201中。此后,过程前进到步骤S140,其中将存储在缓冲存储器201中的数据发送给外部设备,即主机300。
图9是用于说明每单元存储3位数据且应用3步重新编程方法的多位存储器件的示范性地址加扰技术的图,以及图10是显示在应用图9示出的地址加扰技术的数据存储系统的编程操作期间的数据流的示例的图。下面将更完整地描述根据本发明构思的另一个示范性实施例的数据存储系统的编程操作。
为了便于描述,如图9所示,假定每个存储块包括64条字线WL0到WL63,并且每个存储单元存储3位数据。利用此假设,3页存储在每条字线的存储单元中,并且192页存储在每个存储块中。
如图3和4所述,直接在将第一区域101的最小编程单位的数据Di(i是0到191)存储在存储器控制器200的缓冲存储器201之后,通过SLC编程操作将存储在缓冲存储器201中的数据Di编程到多位存储器件100的第一区域101中。此外,存储器控制器200确定在第一区域101中是否积聚了第二区域102的最小编程单位的数据。根据确定结果执行对第二区域102的1步编程操作、粗编程操作或细编程操作。根据图9示出的地址加扰顺序确定对第二区域102的1步编程操作、粗编程操作或细编程操作。例如,在D0和D1数据存储在第一区域101中的情况下,根据存储在第一区域101中的D0和D1数据执行对字线WL0的1步编程操作。如果D2和D3数据存储在第一区域101中,则根据存储在第一区域101中的D2和D3数据执行对字线WL1的1步编程操作。
接下来,如果数据D4存储在第一区域101中,则根据存储在第一区域101中的D0、D1和D4数据执行对字线WL0的粗编程操作。当D5和D6数据存储在第一区域101中时,根据存储在第一区域101中的D5和D6数据执行对字线WL2的1步编程操作。当数据D7存储在第一区域101中时,根据存储在第一区域101中的D2、D3和D7数据执行对字线WL1的粗编程操作。在根据存储在第一区域101中的D2、D3和D7数据执行对字线WL1的粗编程操作之后,根据存储在第一区域101中的D0、D1和D4数据进行对字线WL0的细编程操作。然后,在D数据191存储在第一区域101中之前,其余数据D8到D190可以按照与D5和D6数据的1步编程操作、数据D7的粗编程操作、和D0、D1和D4数据的细编程操作相同的顺序存储在第二区域102中。
如果数据D191存储在第一区域101中,则根据存储在第一区域101中的D188、D189和D191数据执行对字线WL63的粗编程操作。在根据存储在第一区域101中的D188、D189和D191数据执行对字线WL63的粗编程操作之后,根据存储在第一区域101中的D185、D186和D190数据进行对字线WL62的细编程操作。最后,根据存储在第一区域101中的D188、D189和D191数据进行对字线WL63的细编程操作。
即使3位数据存储在每个存储单元中,从多位存储器件100中读取数据的方法也基本上与上面参考图8描述的相同,因而省略对其的描述。
如参考图4所述,与图10对应的编程操作可以包括编程模式。编程模式可以包括SLC编程操作、SLC和1步编程操作的集合、SLC和粗编程操作的集合、SLC、粗和细编程操作的集合、以及SLC、粗、细和细编程操作的集合。每当将命令从存储器控制器200发送给多位存储器件100时进行每个编程操作,或者由多位存储器件100自动地执行每个编程模式中的编程操作的集合。
图11是用于描述根据本发明构思的示范性实施例的页交织技术的图。
为了便于描述,假定4页数据存储在一条字线中的存储单元中。一般说来,ECC数据的产生以页为单位进行。另一方面,在用于均衡每页的误差率的页交织技术的情况下,要被存储在每条字线的存储单元中的页分成多个ECC组(例如,四个ECC组)。根据每个ECC组中的数据产生ECC数据。如果页交织技术应用于数据存储系统1000,则第一区域101的最小编程单位可以不同于如上所述的。这将参考图12更完整地描述。
图12是显示在应用参考图11描述的页交织技术的数据存储系统的编程操作期间的数据流的示例的图。下面将更完整地描述根据本发明构思的另一个示范性实施例的数据存储系统的编程操作。
为了便于说明,假定每个存储块包括64条字线WL0到WL63,并且每个存储单元存储4位数据。利用此假设,4页存储在每条字线的存储单元中,并且256页存储在每个存储块中。将在使用图3描述的地址加扰技术的假设下描述利用页交织技术的数据存储系统的编程操作。
参考图12,将数据从主机300传送到存储器控制器200。由于使用页交织技术,因此存储器控制器200等待直到要被存储在字线WL0中的数据,即4页数据D0、D1、D4和D5被存储。一旦要被存储在字线WL0中的数据,即4页数据D0、D1、D4和D5存储在缓冲存储器201中,就根据存储器控制器200的控制将要被存储在字线WL0中的数据,即4页数据D0、D1、D4和D5依次存储在多位存储器件100的第一区域101中。如上所述,通过单个位/SLC编程操作将数据存储在第一区域101中。然后,根据存储在第一区域101中的D0和D1数据执行对字线WL0的1步编程操作。当从主机300接收页数据D6到D9到存储器控制器200时,根据存储器控制器200的控制将要被存储在字线WL1中的数据,即4页数据D2、D3、D8和D9依次存储在多位存储器件100的第一区域101中。根据存储在第一区域101中的D2和D3数据以及D4和D5数据依次执行对字线WL1的1步编程操作和对字线WL0的粗编程操作。
当从主机300接收页数据D10到D13到存储器控制器200时,根据存储器控制器200的控制将要被存储在字线WL1中的数据,即4页数据D6、D7、D12和D13依次存储在多位存储器件100的第一区域101中。根据存储在第一区域101中的数据依次执行对字线WL3的1步编程操作、对字线WL1的粗编程操作和对字线WL0的细编程操作。重复在接收到数据D10到D14时执行的操作模式,直到数据D254被存储在缓冲存储器201中。
如果数据D254和D255存储在存储器控制器200的缓冲存储器201中,则根据存储器控制器200的控制将要被存储在字线WL63中的数据,即4页数据D250、D251、D254和D255依次存储在多位存储器件100的第一区域101中。然后,可以根据存储在第一区域101中的数据依次执行对字线WL63的1步编程操作、对字线WL62的粗编程操作、对字线WL61的细编程操作、对字线WL63的粗编程操作、对字线WL62的细编程操作和对字线WL63的细编程操作。
在示范性实施例中,根据开放(open)块的数目和由第一区域101保持的最小的页数确定多位存储器件100的第一区域101的尺寸。在第一存储块充满数据之前,能够对不同于第一存储块的第二存储块请求随机写入操作。在这种情况下,第一存储块被称为开放块。能够根据管理多位存储器件100的策略不同地确定开放块的数目。第一区域101保持的最小的页数可以对应于在对字线(例如,WL0)的细编程操作完成之前存储在第二区域102中的数据量(例如,D0到D9)。在图3中的地址加扰技术应用于数据存储系统的情况下,第一区域101保持的最小的页数例如可以为大约10页。
图13是用于描述每单元存储3位数据且应用3步重新编程方法的多位存储器件的示范性地址加扰技术的图,以及图14是显示在图12示出的数据存储系统的编程操作期间的数据流的示例的图。下面将更完整地描述根据本发明构思的示范性实施例的数据存储系统的操作。
为了简化描述,如图13所示,假定每个存储块包括64条字线WL0到WL63,并且每个存储单元存储3位数据。利用此假设,3页存储在每条字线的存储单元中,并且192页存储在每个存储块中。
首先,如果将第一区域101的最小编程单位的数据D0从主机300传送到存储器控制器200的缓冲存储器201时,则根据存储器控制器200的控制将存储在缓冲存储器201中的数据D0编程到多位存储器件100的第一区域101中。如上所述,通过SLC编程操作将数据D0编程到第一区域101中。存储器控制器200确定在第一区域101中是否积聚了第二区域102的最小编程单位的数据,并且根据确定结果控制主编程操作。可以根据页地址来确定在第一区域101中是否积聚了第二区域102的最小编程单位的数据。由于仅仅一页D0存储在第一区域101中,因此不执行主编程操作。如果将第一区域101的最小编程单位的数据D1从主机300传送到存储器控制器200的缓冲存储器201,则根据存储器控制器200的控制将存储在缓冲存储器201中的数据D1编程到多位存储器件100的第一区域101中。
如果将第一区域101的最小编程单位的数据D2从主机300传送到存储器控制器200的缓冲存储器201,则根据存储器控制器200的控制将存储在缓冲存储器201中的数据D2编程到多位存储器件100的第一区域101中。由于第二区域102的最小编程单位的数据(例如,1步编程操作所需的2页)积聚在第一区域101中,因此存储器控制器200控制多位存储器件100以使得存储在第一区域101中的数据D0和D2被存储在第二区域102中。也就是说,基于存储在第一区域101中的数据D0和D2进行对字线WL0的1步编程操作。
如果将第一区域101的最小编程单位的数据D3从主机300传送到存储器控制器200的缓冲存储器201,则根据存储器控制器200的控制将存储在缓冲存储器201中的数据D3编程到多位存储器件100的第一区域101中。如果将第一区域101的最小编程单位的数据D4从主机300传送到存储器控制器200的缓冲存储器201,则根据存储器控制器200的控制将存储在缓冲存储器201中的数据D4编程到多位存储器件100的第一区域101中。由于第二区域102的最小编程单位的数据(例如,1步编程操作所需的2页)积聚在第一区域101中,因此存储器控制器200控制多位存储器件100以使得存储在第一区域101中的数据D1和D4被存储在第二区域102中。也就是说,基于存储在第一区域101中的数据D1和D4进行对字线WL1的1步编程操作。
如上所述,如果第一区域101的最小编程单位的数据存储在缓冲存储器201中,则在存储器控制器200的控制下将存储在缓冲存储器201中的数据编程到多位存储器件100的第一区域101中。通过SLC编程操作将数据存储在第一区域101中。如果第一区域101的最小编程单位的数据Di(i是0到191)存储在缓冲存储器201中,如图14所述,则在存储器控制器200的控制之下通过SLC编程操作将存储在缓冲存储器201中的数据编程到多位存储器件100的第一区域101中。与确定第一区域101的最小编程单位的数据是否存储在缓冲存储器201中一起,存储器控制器200确定在第一区域101中是否积聚了第二区域102的最小编程单位的数据。存储器控制器200可以根据确定结果控制对第二区域102的1步编程操作、粗编程操作或细编程操作,下面将更完整地描述。
可以用图13示出的地址加扰技术确定对第二区域102的1步编程操作、粗编程操作或细编程操作。例如,如果D0和D2数据存储在第一区域101中,则根据存储在第一区域101中的D0和D2数据来进行对字线WL0的1步编程操作。如果D1和D4数据存储在第一区域101中,则执行对字线WL1的1步编程操作。也就是说,根据存储在第一区域101中的D1和D4数据执行对字线WL1的1步编程操作。
接下来,如果D5数据存储在第一区域101中,则根据存储在第一区域101中的D0、D2和D5数据执行对字线WL0的粗编程操作。当D3和D7数据存储在第一区域101中时,根据存储在第一区域101中的D3和D7数据执行对字线WL2的1步编程操作。如果D8数据存储在第一区域101中,则根据存储在第一区域101中的D1、D4和D8数据执行对字线WL1的粗编程操作。在根据存储在第一区域101中的D1、D4和D8数据执行对字线WL1的粗编程操作之后,根据存储在第一区域101中的D0、D2和D5数据进行对字线WL0的细编程操作。然后,在D191数据存储在第一区域101中之前,其余数据D10到D190可以按照与D3和D7数据的1步编程操作、D1、D4和D8数据的粗编程操作、以及D0、D2和D5数据的细编程操作相同的顺序存储在第二区域102中。
在D191数据存储在第一区域101中的情况下,根据存储在第一区域101中的D186、D189和D191数据执行对字线WL63的粗编程操作。在根据存储在第一区域101中的D186、D189和D191数据执行对字线WL63的粗编程操作之后,根据存储在第一区域101中的D183、D187和D190数据进行对字线WL62的细编程操作。最后,根据存储在第一区域101中的D186、D189和D191数据进行对字线WL63的细编程操作。
从图14中将理解,可以根据存储在第一区域101中的数据,即存储在第一区域101中的数据的页地址,确定SLC编程操作(例如,第一编程模式)、SLC和1步编程操作的集合(例如,第二编程模式)、SLC和粗编程操作的集合(例如,第三编程模式)、SLC、粗和细编程操作的集合(例如,第四编程模式)、以及SLC、粗、细和细编程操作的集合(例如,第五编程模式)。如上参考表1所述,当将相应的命令从存储器控制器200提供给多位存储器件100时,可以执行SLC编程操作、1步编程操作、粗编程操作或细编程操作。可替换地,将表示编程模式的命令集合提供给多位存储器件100,并且多位存储器件100根据命令集合自动地执行操作的集合。编程模式由SLC编程操作、SLC和1步编程操作的集合、SLC和粗编程操作的集合、SLC、粗和细编程操作的集合、以及SLC、粗、细和细编程操作的集合形成。可以根据地址加扰技术、每单元位数等改变编程模式中的编程操作的集合。
图15是显示根据本发明构思的示范性实施例的多位存储器件的页缓冲器结构的图。
参考图15,位线与多个串(例如,NAND串)连接。串的任何一个可以经由位线BL与页缓冲器PB连接。页缓冲器PB可以包括多个锁存器。可以根据存储在存储单元中的数据位的数目确定页缓冲器PB中的锁存器的数目。每个串包括多个存储单元,每个存储单元存储多位数据。例如,每个存储单元可以存储3位数据。在这种情况下,页缓冲器PB可以包括至少四个锁存器L1、L2、L3和L4。在缓冲器编程操作中,可以将要被存储在第一区域101中的数据加载到第一锁存器L1上。在主编程操作中,可以经由第一锁存器L1读出存储在第一区域101中的数据。可以在存储器控制器200的控制下将第一锁存器L1中的数据转存到第二到第四锁存器L2到L4的任何一个中。在示范性实施例中,可以将特定命令(例如,通知转存操作的命令)从存储器控制器200提供给多位存储器件100,以便将第一锁存器L1中的数据转存到其余第二到第四锁存器L2到L4中的任何一个。此时,可以将指示第一锁存器L1中的数据转存到的锁存器的信息从存储器控制器200提供给多位存储器件100。
在图15中,示范性地示出了页缓冲器PB包括四个锁存器L1到L4的示例。但是,页缓冲器PB能够被形成为根据每单元的位数包括更高或更低数目的锁存器。此外,页缓冲器PB还可以包括用于高速缓存的寄存器。
图16是显示图13和14描述的1步编程操作的命令序列的图,以及图17是显示根据图16示出的1步编程命令序列的数据流的示例的图。下面将更完整地描述根据本发明构思的示范性实施例的数据存储系统的操作。
当关于第二区域102的最小编程单位,即2页被存储在第一区域101中时,可以进行参考图13和14描述的1步编程操作。作为主编程操作,对第二区域102的1步编程操作可以伴随对第一区域101的两个SLC读操作和对第二区域102的一个MLC编程操作。
参考图16,在根据本发明构思的示范性实施例的数据存储系统1000的情况下,可以在执行1步编程操作之前将用于切换到SLC操作模式的命令DAh从存储器控制器200传送到多位存储器件100。当接收到用于模式切换的命令DAh时,多位存储器件100可以将从存储器控制器200提供的命令识别为与SLC操作有关的命令,其包括SLC读操作、数据转存操作等等。
在用于模式切换的命令DAh之后,如图16所示,存储器控制器200可以将命令00h、地址Addr5和命令39h的集合传送到多位存储器件100。此时,地址Addr5可以是用于指定1步编程操作所需的2页数据的一页(例如,第一页P1)的地址。在接收到命令39h之后,多位存储器件100的页缓冲器103从第一区域101读出第一页数据P1,如图17所示。读出的数据P1可以被存储在第一锁存器L1中。在读操作期间,如图16所示,多位存储器件100可以建立准备好/忙碌信号R/B以便指示忙碌状态。在读操作完成之后,多位存储器件100可以建立准备好/忙碌信号R/B以便指示准备状态。
然后,如图16所示,存储器控制器200响应于准备好/忙碌信号R/B的状态以与转存命令C0h一起向多位存储器件100传送信息(L1→L3),该信息用于指定数据被转存到的锁存器(例如,L3)。在接收到转存命令C0h之后,多位存储器件100可以控制页缓冲器103以使得第一锁存器L1中的数据P1被转存到第三锁存器L3中。在转存操作期间,如图16所示,多位存储器件100可以建立准备好/忙碌信号R/B以便指示忙碌状态。在转存操作完成之后,多位存储器件100可以建立准备好/忙碌信号R/B以便指示准备状态。
然后,如图16所示,存储器控制器200可以将命令00h、地址Addr5和命令39h的集合传送到多位存储器件100。此时,地址Addr5可以是用于指定1步编程操作所需的2页数据的其余页(例如,第二页P2)的地址。在接收到命令39h之后,多位存储器件100的页缓冲器103从第一区域101读出第二页数据P2,如图17所示。读出的数据P2可以被存储在第一锁存器L1中。在读操作期间,如图16所示,多位存储器件100可以建立准备好/忙碌信号R/B以便指示忙碌状态。在读操作完成之后,多位存储器件100可以建立准备好/忙碌信号R/B以便指示准备好状态。
然后,如图16所示,存储器控制器200响应于准备好/忙碌信号R/B的状态以与转存命令C0h一起向多位存储器件100传送信息(L1→L4),该信息用于指定数据被转存到的锁存器(例如,L4)。在接收到转存命令C0h之后,多位存储器件100可以控制页缓冲器103以使得第一锁存器L1中的数据P2被转存到第四锁存器L4中。在转存操作期间,如图16所示,多位存储器件100可以建立准备好/忙碌信号R/B以便指示忙碌状态。在转存操作完成之后,多位存储器件100可以建立准备好/忙碌信号R/B以便指示准备好状态。
一旦用于1步编程操作的数据准备好,就可以对第二区域102进行1步编程操作。在执行1步编程操作之前,可以将用于退出SLC操作模式的命令DFh从存储器控制器传送到多位存储器件100。当接收到用于模式切换的命令DFh时,多位存储器件100可以将从存储器控制器200提供的命令识别为与主编程操作有关的命令,即与MLC操作有关的命令。然后,如图16所示,存储器控制器200可以将命令8Bh、地址Addr5和命令10h的集合传送到多位存储器件100。此时,地址Addr5可以是用于指定1步编程的页中的一页(例如,第一页)的地址。由于页缓冲器103由1步编程操作的数据设置,因此没有数据从存储器控制器200传送到多位存储器件100。在接收到命令10h之后,如图17所示,可以将页缓冲器103中的数据P1和P2编程到第二区域102中。在编程操作期间,如图16所示,多位存储器件100可以建立准备好/忙碌信号R/B以便指示忙碌状态。在编程操作完成之后,多位存储器件100可以建立准备好/忙碌信号R/B以便指示准备好状态。
根据以上描述,1步编程操作可以由数据设置时间段和编程时间段(或编程确认时间段)形成。在1步编程操作中,如图16所示,数据设置时间段可以包括第一页数据设置时间段和第二页数据设置时间段。第一和第二页数据设置时间段的每一个可以包括SLC读操作和转存操作。可以在第一页数据设置操作之前且在主编程之前进行模式切换。
图18是显示图13和14描述的粗编程操作的命令序列的图,以及图19是显示根据图18示出的粗编程命令序列的数据流的示例的图。下面将更完整地描述根据本发明构思的示范性实施例的数据存储系统的操作。
当作为关于第二区域102的最小编程单位,即3页被存储在第一区域101中时,可以进行参考图13和14描述的粗编程操作。对第二区域102的粗编程操作可以伴随对第一区域101的三个SLC读操作和对第二区域102的一个MLC编程操作。
如图18所示,可以使得SLC读操作的每一个与参考图16和17描述的相同,因而可以省略其描述。在对第一页数据进行SLC读操作之前,如图18所示,可以将用于模式切换的命令DAh从存储器控制器200发送给多位存储器件100。可以用参考图16和17描述的相同的方式来进行对第二区域102的MLC编程操作,除了3位数据存储在第二区域102中之外,因而省略了其描述。在执行粗编程操作之前,如图18所示,可以将用于模式切换的命令DFh从存储器控制器200发送给多位存储器件。
尽管图中未示出,但是作为主编程操作,可以用和与图18示出的命令序列有关的相同的方式执行细编程操作。由于用于细编程操作的命令序列和用于粗编程操作的命令序列具有相同的命令序列,因此可以根据在编程确认时间段之内提供的地址Addr5来区分粗编程操作和细编程操作。例如,在与粗编程操作有关的编程确认时间段之内提供的地址Addr5是用于指定第二页的地址,并且在与细编程操作有关的编程确认时间段之内提供的地址Addr5是用于指定第三页的地址。
图20是显示应用参考图11描述的页交织技术和参考图13描述的地址加扰技术的数据存储系统的编程操作中的数据流的示例的图。下面将更完整地描述根据本发明构思的另一个实施例的数据存储系统的编程操作。
为了简化描述,假定每个存储块包括64条字线WL0到WL63,并且每个存储单元存储3位数据。利用此假设,3页存储在每条字线的存储单元中,并且192页存储在每个存储块中。在应用参考图13描述的地址加扰技术的假设下,描述应用参考图11描述的页交织技术的数据存储系统的编程操作。
参考图20,将数据从主机300传送到存储器控制器200。由于使用页交织技术,因此存储器控制器200等待直到要被存储在字线WL0中的数据,即3页数据D0、D2和D5被存储。一旦要被存储在字线WL0中的数据,即4页数据D0、D2和D5存储在缓冲存储器201中,就根据存储器控制器200的控制将要被存储在字线WL0中的数据,即3页数据D0、D2和D5依次存储在多位存储器件100的第一区域101中。如上所述,通过单个位/SLC编程操作将数据存储在第一区域101中。然后,根据存储在第一区域101中的D0和D2数据执行对字线WL0的1步编程操作。当从主机300接收页数据D6到D8到存储器控制器200时,根据存储器控制器200的控制将要被存储在字线WL1中的数据,即3页数据D1、D4和D8依次存储在多位存储器件100的第一区域101中。根据存储在第一区域101中的D1和D4数据以及D0、D2和D5数据依次执行对字线WL1的1步编程操作和对字线WL0的粗编程操作。
当从主机300接收页数据D9到D11到存储器控制器200时,根据存储器控制器200的控制将要被存储在字线WL2中的数据,即3页数据D3、D7和D11依次存储在多位存储器件100的第一区域101中。根据存储在第一区域101中的数据依次执行对字线WL2的1步编程操作、对字线WL1的粗编程操作和对字线WL0的细编程操作。重复在接收到数据D9到D11时执行的操作模式,直到数据D189被存储在缓冲存储器201中。
当页数据D189和D190存储在存储器控制器200的缓冲存储器201中时,根据存储器控制器200的控制将要被存储在字线WL62中的数据,即3页数据D183、D187和D190依次存储在多位存储器件100的第一区域101中。然后,根据存储在第一区域101中的数据依次执行对字线WL62的1步编程操作、对字线WL61的粗编程操作、和对字线WL60的细编程操作。
如果数据D191存储在存储器控制器200的缓冲存储器201中,则根据存储器控制器200的控制将要被存储在字线WL62中的数据,即3页数据D186、D189和D191依次存储在多位存储器件100的第一区域101中。然后,可以根据存储在第一区域101中的数据依次执行对字线WL63的1步编程操作、对字线WL62的粗编程操作、对字线WL61的细编程操作、对字线WL62的细编程操作、和对字线WL63的细编程操作。
图21是显示在存储单元中存储4位数据且使用重新编程方法的多位存储器件的另一个地址加扰技术的图。
图21中示出的地址加扰技术可以应用于每单元存储4位数据的多位存储器件。使用图21示出的地址加扰技术的数据存储系统可以用和上面描述的相同的方式操作。例如,当关于第一区域101的最小编程单位的数据存储在缓冲存储器201中时,存储器控制器200可以控制多位存储器件100以使得将在缓冲存储器201中存储的数据编程到第一区域101中。同样,存储器控制器200可以确定关于第二区域102的最小编程单位的数据是否准备在第一区域101中,并且控制多位存储器件100以使得根据该确定执行1步编程操作、粗编程操作和细编程操作。可以基于页地址信息根据表1中的编程模式进行这样的操作。
图22A到22D是用于描述根据本发明构思的示范性实施例的多位存储器件的第一和第二区域的各种组合的图。在图中,“BP”表示对第一区域101的缓冲器编程,“MP”表示对第二区域102的主编程。
如上所述,多位存储器件100可以包括第一区域101和第二区域102。这里,第一和第二区域101和102可以构成多位存储器件100的存储单元阵列。尽管图中没有示出,但是存储单元阵列还可以包括诸如元(meta)区域、保留区域等等之类的其它区域。应当理解,存储单元阵列的区域是逻辑上划分的,而非物理上划分。这意味着根据存储器控制器200的地址映射定义存储单元阵列的这样的区域。
参考图22A,在每单元存储3位数据的多位存储器件的情况下,第一区域101由每个存储1位数据的存储单元形成,并且第二区域102由每个存储3位数据的存储单元形成。在这种情况下,可以根据SLC编程技术运行缓冲器编程,并且可以根据上述MLC编程技术进行主编程。
参考图22B,在每单元存储4位数据的多位存储器件的情况下,第一区域101由每个存储1位数据的存储单元形成,并且第二区域102由每个存储4位数据的存储单元形成。在这种情况下,可以根据SLC编程技术执行缓冲器编程,并且可以根据上述MLC编程技术进行主编程。
参考图22C,在每单元存储3位数据的多位存储器件的情况下,第一区域101由每个存储2位数据的存储单元形成,并且第二区域102由每个存储3位数据的存储单元形成。在这种情况下,可以根据上述或传统的MLC编程技术执行缓冲器编程,并且可以根据上述MLC编程技术(例如,重新编程技术)进行主编程。
参考图22D,在每单元存储4位数据的多位存储器件的情况下,第一区域101由每个存储2位数据的存储单元形成,并且第二区域102由每个存储4位数据的存储单元形成。在这种情况下,可以根据上述或传统的MLC编程技术执行缓冲器编程,并且可以根据上述MLC编程技术(例如,重新编程技术)进行主编程。
应当理解,本发明构思不局限于如图22A到22D示出的第一和第二区域101和102的定义的特定示例。作为另一个非限制的示例,如果包括在数据存储设备中的存储介质由多个多位存储器件形成,则能够对各个多位存储器件定义第一和第二区域101和102。可替换地,能够对多位存储器件的任何一个定义第一区域101。可替换地,能够将任何一个多位存储器件定义为第一区域101。
图23是用于描述根据本发明构思的示范性实施例的存储器控制器的操作的流程图。下面将更完整地描述根据本发明构思的示范性实施例的存储器控制器的操作。
在步骤S200中,存储器控制器200可以确定是否接收到数据。如果没有接收到数据,则重复步骤S200。如果接收到数据,则过程进行到步骤S210,其中将接收到的数据存储在存储器控制器200的缓冲存储器201中。在步骤S220中,存储器控制器200可以确定是否请求缓冲器编程操作(或缓冲器编程(BP)操作)。如果不需要BP操作,则该过程结束。
如果需要BP操作,则该过程进行到步骤S230,其中可以将存储在缓冲器存储器201中的数据,即关于第一区域101的最小编程单位的数据,发送给多位存储器件100。这意味着将关于第一区域101的最小编程单位的数据存储在多位存储器件100的第一区域101中。在步骤S240中,存储器控制器200可以判断是否需要主编程(MP)操作(或,BP操作是否伴随MP操作)。此确定可以根据页地址信息做出,如上所述。
如果不需要MP操作,则该过程结束。另一方面,如果需要MP操作,则过程进行到步骤S250,其中确定与MP操作有关的编程模式。BP操作之后的MP操作的编程模式可以由1步编程操作、粗编程操作、粗和细编程操作的集合、以及粗、细和细编程操作的集合形成。在步骤S260中,存储器控制器200可以基于确定的编程模式发出用于主编程的命令的集合。这样的命令可以包括参考图16以及18所述的模式切换命令、SLC读命令、转存命令、编程确认命令等等。此后,该过程结束。
图24是用于描述根据本发明构思的另一个示范性实施例的存储器控制器的操作的流程图。下面将更完整地描述根据本发明构思的另一个示范性实施例的存储器控制器的操作。
在步骤S300中,存储器控制器200可以确定是否接收到数据。如果没有接收到数据,则重复步骤S300。如果接收到数据,则过程进行到步骤S310,其中将接收到的数据存储在存储器控制器200的缓冲存储器201中。在步骤S320中,存储器控制器200可以确定是否请求缓冲器编程操作(或缓冲器编程(BP)操作)。如果不需要BP操作,则该过程结束。
如果需要BP操作,则该过程进行到步骤S330,其中存储器控制器200可以确定是否需要主编程(MP)操作(或,BP操作是否伴随MP操作)。此确定可以根据页地址信息做出,如上所述。如果不需要MP操作,则该过程进行到步骤S340,其中可以将存储在缓冲器存储器201中的数据,即关于第一区域101的最小编程单位的数据,发送给多位存储器件100。这意味着将关于第一区域101的最小编程单位的数据存储在多位存储器件100的第一区域101中。
另一方面,如果需要MP操作,则过程进行到步骤S350,其中确定与MP操作有关的编程模式。确定的编程模式可以是表1中描述的编程模式中的任何一个。但是,应当理解,当使用交织技术时,编程模式变化。在步骤S360中,存储器控制器200可以基于确定的编程模式发出用于缓冲器和主编程的命令的集合。用于缓冲器编程的命令包括SLC编程命令,并且用于主编程的命令包括参考图16和18所述的模式切换命令、SLC读命令、转存命令、编程确认命令等等。此后,该过程结束。
在示范性实施例中,可以在SLC编程命令之后且在用于主编程的命令之前将用于缓冲器编程的数据发送给多位存储器件100。
图25是用于描述根据本发明构思的另一个示范性实施例的存储器控制器的操作的流程图。下面将更完整地描述根据本发明构思的另一个示范性实施例的存储器控制器的操作。
在步骤S400中,存储器控制器200可以确定是否接收到数据。如果没有接收到数据,则重复步骤S400。如果接收到数据,则该过程进行到步骤S410,其中将接收到的数据存储在存储器控制器200的缓冲存储器201中。在步骤S420中,存储器控制器200可以确定编程模式。编程模式可以是表1中描述的编程模式中的任何一个。但是,应当理解,当使用交织技术时,编程模式变化。在步骤S430中,存储器控制器200可以基于确定的编程模式发出用于缓冲器编程的命令或用于缓冲器和主编程的命令的集合。用于缓冲器编程的命令包括SLC编程命令,并且用于主编程的命令包括参考图16和18所述的模式切换命令、SLC读命令、转存命令、编程确认命令等等。此后,该过程结束。
在示范性实施例中,可以在SLC编程命令之后且在用于主编程的命令之前将用于缓冲器编程的数据发送给多位存储器件100。可以将编程模式确定为包括用于缓冲器编程的命令或排除用于缓冲器编程的命令。
在示范性实施例中,可以将通知SLC模式的命令(例如,图16中的DAh)提供给多位存储器件100。同样,在执行缓冲器编程操作之后,可以将指示SLC模式结束的命令(例如,图16中的DFh)提供给多位存储器件100。
在示范性实施例中,可以在图23到25描述的操作之前由存储器控制器200定义第一和第二区域101和102。在定义了第一和第二区域101和102之后,可以根据上述技术进行对从主机300提供的数据的缓冲器和主编程操作。
在示范性实施例中,可以不同地定义编程模式。例如,可以分别对缓冲器编程操作和主编程操作定义编程模式。可替换地,可以对缓冲器编程操作和主编程操作一起定义编程模式。主编程操作可以包括编程操作的集合,诸如1步编程操作、粗编程操作、粗和细编程操作、粗、细和细编程操作等等。
图26是显示具有全位线存储器结构或奇偶存储器结构的存储单元阵列110的图。将描述包括在图2示出的多位存储器件100中的存储阵列110的示范性结构。作为一个示例,现在将描述包括被分割成多个块0~j的存储单元阵列110的NAND闪速存储器件。例如,存储单元阵列110可以被分割成1,023块。可以同时擦除存储在每个块中的数据。在一个实施例中,存储块是同时擦除的存储元件的最小单位。每个存储块例如具有多列,每个列与位线(例如,1KB的位线)对应。
在被称为全位线(ABL)结构的一个实施例中,存储块的全部位线BL0~BL(x-1)能够在读和编程操作期间被同时选中。公共字线WL0~WLm-1中的且连接到所有位线的存储元件能够被同时编程。
在示范性实施例中,同一列中的多个存储元件串联连接以形成NAND串111。NAND串111的一端经由被串选择线SSL控制的选择晶体管连接到相应的位线,另一端经由被地选择线GSL控制的选择晶体管连接到公共源极线CSL。
继续参考图26,在被称为奇偶结构的另一个实施例中,位线分成偶数位线(BLe0~BLe(y-1))和奇数位线(BLo0~BLo(y-1))。在奇数/偶数位线结构中,在第一编程时间中编程公共字线中的且连接到奇数位线的存储元件,而在第二编程时间中编程公共字线中的且连接到偶数位线的存储元件。能够将数据编程到不同的块并且从不同的块读出数据。能够同时执行这样的操作。
形成根据本发明构思的示范性实施例的多位存储器件的闪速存储器件是甚至在电源关断条件下也保持数据的非易失性存储器件。随着诸如蜂窝电话机、PDA、数字照相机、便携式游戏控制台和MP3P设备之类的移动设备的普及的增加,闪速存储器件不仅被广泛用作数据存储器而且用作代码存储器。闪速存储器件还能够用于各种其它应用中,包括高清晰度电视(HDTV)、数字视频设备(DVD)、路由器和全球卫星定位(GSP)设备。
图27是显示根据本发明构思的示范性实施例的计算系统的框图。
此示例的计算系统包括微处理器2100、用户接口2200、诸如基带芯片组之类的调制解调器2300、存储器控制器2400和作为存储介质的多位存储器件2500。调制解调器2300用于与外部网络(网络)通信。多位存储器件2500可以用在先前描述的图2中示出的相同的方式配置。结果,能够减小包括在存储器控制器2400中的缓冲存储器的尺寸。由微处理器2100处理和/或要由微处理器2100处理的N位数据(N是1或更大的整数)通过存储器控制器2400存储在多位存储器件2500中。如果计算系统是移动设备,则在该计算系统中还包括电池2600以为其提供工作电压。尽管图27中没有示出,但是计算系统还包括应用芯片组、照相机图像处理器(CIS)、移动DRAM等等。
图28是显示根据本发明构思的示范性实施例的存储器控制器的框图。
参考图28,控制器可以被配置为将数据存储在存储介质中并且从存储介质读出数据。控制器可以包括第一接口(HI)3210、第二接口(MI)3220、处理单元3230、缓冲存储器3240、误差控制单元3250和ROM3260。图28中的存储器控制器可以例如应用于图2或27示出的系统。
第一接口(HI)3120可以被配置为与外部设备(例如,主机)接口连接,并且第二接口(MI)3220可以被配置为与存储介质(存储器)(诸如图2或27示出的存储介质3100)接口连接。处理单元3230可以被配置为控制控制器3200的总体操作。处理单元3230可以被配置为操作存储在ROM3260中的固件,诸如闪速转换层(FTL)。缓冲存储器3240可以用来临时存储要被写入存储介质3100的数据或从存储介质3100读出的数据。ECC单元3250可以被配置为编码要被存储在存储介质3100中的数据并解码从存储介质3100读取的数据。
在示范性实施例中,存储器控制器可以被配置为根据参考图16和18描述的命令序列依次发出命令。可替换地,存储器控制器可以被配置为发出表示上述命令模式的命令集合。
图29是显示根据本发明构思的示范性实施例的固态驱动器的示例的框图。
参考图29,固态驱动器(SSD)4000可以包括存储介质4100和控制器4200。存储介质4100经由多个通道与控制器4200连接,每个通道公共地与多个非易失性存储器连接。每个非易失性存储器件可以由诸如参考图2描述的存储器形成。控制器4200可以被配置为根据参考图3到21描述的编程技术中的任何一个控制存储介质4100。结果,能够减小包括在控制器4200中的缓冲存储器的尺寸。
图30是显示使用参考图29描述的固态驱动器的数据存储器的示例的框图,以及图31是显示使用参考图29描述的固态驱动器的存储器服务器的示例的框图。
根据本发明构思的示范性实施例的SSD4000可以用来形成各种类型的数据存储设备。例如,图30的数据存储器(存储器)包括用与参考图29描述的相同的方式配置的多个固态驱动器4000。作为另一个示例,图31的存储器服务器(存储器服务器)包括用与上面参考图29描述的相同的方式配置的多个固态驱动器4000和服务器4000A。此外,存储器服务器还可以包括独立盘的冗余阵列(RAID)控制器4000B。
图32到34是显示可以应用根据本发明构思的示范性实施例的数据存储设备的系统的示例的图。
图32示出了系统6000的示例,其中数据存储器6100包括固态驱动器,固态驱动器包括由根据本发明构思的示范性实施例的存储器控制器和多位存储器件形成的数据存储设备。这里,存储器6100通过有线或无线通信与主机(主机)通信。
图33示出了系统7000的示例,其中存储器服务器7100和7200包括固态驱动器,固态驱动器包括根据本发明构思的示范性实施例的数据存储设备。这里,存储器服务器7100和7200通过有线或无线通信与多个主机(主机)通信。
图34示出了系统8000的示例,其中邮件服务器8100包括固态驱动器,固态驱动器包括根据本发明构思的示范性实施例的数据存储设备。这里,邮件服务器8100使用TCP/IP协议通过互联网通信。在此示例中,每个邮件服务器8100经由邮件守护程序(demon)接口和存在点(POP)和/或简单邮件传送协议(SMPT)协议来服务用户邮件程序。
图35是示出了根据本发明构思的实施例的存储器卡的框图。存储卡的非限制示例包括多媒体卡(MMC)卡、安全数字(SD)卡、多用途卡、微SD卡、存储棒、小型SD卡、身份(ID)卡、个人计算机卡(PCMCIA)、固态驱动器(SSD)卡、芯片卡、智能卡、通用串行总线(USB)卡等等。
参考图35,存储卡可以包括用于与外部设备接口的接口电路9221、包括缓冲存储器以及控制存储卡的操作的控制器9222、以及至少一个根据本发明构思的实施例的非易失性存储器件9207。控制器9222可以是被配置为控制非易失性存储器件9207的写和读操作的处理器。具体地,控制器9222可以经由数据总线和地址总线与非易失性存储器件9207和接口电路2221耦接。控制器9222和非易失性存储器件9207可以分别对应于参考图2描述的控制器200和多位存储器件100。控制器9222可以被配置为根据参考图3到21描述的编程技术中的任何一个控制非易失性存储器件9207。结果,能够减小包括在控制器9222中的缓冲存储器的尺寸。
图36是示出了根据本发明构思的实施例的数字静态照相机的示例的框图。
参考图36,数字静态照相机可以包括主体9301、狭槽9302、镜头9303、显示电路9308、快门按钮9312、频闪闪光灯9318等等。存储卡9331可以插入到狭槽9308中并且包括参考图2描述的存储器控制器200和多位存储器件100。存储卡9331中的存储器控制器可以被配置为根据参考图3到21描述的编程技术中的任何一个控制其中的多位存储器件。结果,能够减小包括在存储器控制器中的缓冲存储器的尺寸。
如果存储卡9331是接触型存储器,则当存储卡9331插入到狭槽9308中时,电路板上的电路可以与存储卡9331电接触。如果存储卡9331是非接触型存储卡,则电路板上的电路可以例如通过射频通信与存储卡9331无线地通信。
图37是示出了可以应用图35中所示的存储卡的各种系统的示例的图。
参考图37,存储卡9331可以应用于摄像机(VC)、电视机(TV)、音频设备(AD)、游戏机(GM)、电子音乐设备(MD)、蜂窝电话(CP)、计算机(C)、个人数字助理(PDA)、话音记录器(VR)、PC卡(PCC)等等。
在本发明构思的示范性实施例中,存储单元能够由可变电阻存储单元形成。在美国专利No.7,529,124中公开了示范性可变电阻存储单元和包括其的存储器件,其全部内容通过引用而被合并于此。
在本发明构思的另一个示范性实施例中,存储单元由各种具有电荷存储层的单元结构中的一种形成。具有电荷存储层的单元结构的非限制示例包括使用电荷俘获层的电荷俘获闪速结构、将阵列堆叠在多个层中的堆叠闪速结构、源-漏释放闪速结构(source-drainfreeflashstructure)、管脚型闪速结构等等。
在美国专利No.6,858,906和美国公开No.2004/0169238和2006/0180851中公开了具有电荷俘获闪速结构作为电荷存储层的存储器件,其全部内容通过引用而合并于此。在韩国专利No.673020中公开了源-漏释放闪速结构,其全部内容通过引用而合并于此。
根据本发明构思的非易失性存储器件和/或存储器控制器可以合并到各种类型的封装中。作为非限制示例,根据本发明构思的非易失性存储器件和/或存储器控制器可以合并到下列封装中,诸如层叠封装(PoP)、球栅阵列(BGA)、芯片尺寸封装(CSP)、塑料引线芯片载体(PLCC)、塑料双列直插式封装(PDIP)、晶片中华夫封装(DieinWafflePack)、晶圆中管芯形式(DieinWaferForm)、板上芯片(COB)、陶瓷双列直插式封装(CERDIP)、塑料四方扁平封装(MQFP)、薄型四方扁平封装(TQFP)、小外型封装(SmallOutline,SOIC)、收缩型小外形封装(SSOP)、薄型小外形封装(TSOP)、系统级封装(SIP)、多芯片封装(MCP)、晶圆级制作封装(WFP)和晶圆级堆叠封装(WSP)等等。
上述公开的主题将被认为是说明性的,而不是限制性的,并且所附的权利要求书意欲覆盖落入本发明构思的真实精神和范围的所有这样的修改、增强及其他实施例。因而,为了达到法律允许的最大程度,本发明的范围将被以下权利要求书和它们的等价物的最宽可允许的解释来确定,并且不应该被前述详细说明限制或局限。
Claims (18)
1.一种数据存储设备的操作方法,该数据存储设备包括:包括存储单元阵列的非易失性存储器件;和包括缓冲存储器并控制该非易失性存储器件的存储器控制器,该操作方法包括:
根据外部请求将数据存储在缓冲存储器中;
确定存储在该缓冲存储器中的数据是否是伴随该存储单元阵列的缓冲器编程操作的数据;
当存储在该缓冲存储器中的数据是伴随该缓冲器编程操作的数据时,确定是否需要对该存储单元阵列的主编程操作;
当需要对存储单元阵列的主编程操作时,确定对该存储单元阵列的主编程操作的编程模式;以及
基于确定的编程模式向多位存储器件发出用于对该存储单元阵列的主编程操作的命令的集合,
其中,该存储单元阵列包括第一区域和第二区域,其中该非易失性存储器件包括页缓冲器,每个页缓冲器包括多个锁存器,该多个锁存器中的一个用于存储要被存储在第一区域中或从第一区域读出的数据,并且在第二区域的编程操作期间,根据转存命令,将存储在该一个锁存器中的数据转存到其余锁存器当中的被选中的锁存器中。
2.如权利要求1所述的操作方法,其中该存储单元阵列包括第一区域和第二区域,该第一区域经由该缓冲器编程操作被编程,以及该第二区域经由该主编程操作被编程。
3.如权利要求2所述的操作方法,其中根据伴随该缓冲器编程操作的数据的地址信息来确定用于该主编程操作的编程模式。
4.如权利要求3所述的操作方法,其中该主编程操作包括1步编程操作、粗编程操作和细编程操作中的至少一个。
5.如权利要求4所述的操作方法,其中在主编程操作时提供给该多位存储器件的命令的集合包括第一区域的单个位读命令、转存命令、和第二区域的多位编程命令。
6.如权利要求1所述的操作方法,还包括:在将用于第二区域的编程操作的命令的集合输出到该多位存储器件之前并在第二区域的多位编程命令之前,向该多位存储器件发出模式切换命令。
7.如权利要求2所述的操作方法,其中在确定是否需要主编程操作之前将用于缓冲器编程操作的数据发送到第一区域。
8.如权利要求2所述的操作方法,其中当基于确定的编程模式将用于主编程操作的命令的集合提供给该多位存储器件时,将用于缓冲器编程操作的数据发送到第一区域。
9.如权利要求2所述的操作方法,其中经由单个位编程操作编程第一区域,并且经由多位编程操作编程第二区域。
10.如权利要求2所述的操作方法,其中经由多位编程操作编程第一区域和第二区域。
11.一种数据存储设备,包括:
非易失性存储器件,包括存储单元阵列,该存储单元阵列包括第一区域和第二区域;和
存储器控制器,包括缓冲存储器并且被配置为控制该非易失性存储器件,
其中当第一区域的最小编程单位的数据存储在该缓冲存储器中时,该存储器控制器控制该非易失性存储器件以使得将存储在该缓冲存储器中的数据存储在第一区域中;
其中当第二区域的最小编程单位的数据存储在该第一区域中时,该存储器控制器控制该非易失性存储器件以使得将存储在该第一区域中的数据存储在第二区域中;以及
其中该非易失性存储器件包括页缓冲器,每个页缓冲器包括多个锁存器,该多个锁存器的一个用于存储要被存储在第一区域中或从第一区域读出的数据,并且当存储在第一区域中的数据被存储在第二区域中时,根据从该存储器控制器提供的转存命令,将存储在该一个锁存器中的数据转存到其余锁存器当中的被选中的锁存器中。
12.如权利要求11所述的数据存储设备,其中根据从该存储器控制器提供的命令的集合将存储在第一区域中的第二区域的最小编程单位的数据存储在第二区域中。
13.如权利要求12所述的数据存储设备,其中该命令的集合包括第一区域的单个位读命令、转存命令、和第二区域的多位编程命令。
14.一种数据存储设备的操作方法,该数据存储设备包括:包括存储单元阵列的非易失性存储器件;和包括缓冲存储器并控制该非易失性存储器件的存储器控制器,该操作方法包括:
控制该非易失性存储器件,以便响应于对存储单元阵列的第一区域的缓冲器编程操作的需求,对存储单元阵列的第一区域执行缓冲器编程操作;以及
控制该非易失性存储器件,以便响应于对存储单元阵列的第二区域的主编程操作的需求,对存储单元阵列的第二区域执行主编程操作,
其中对第二区域的主编程操作包括:多个数据设置时间段,每个数据设置时间段伴随对第一区域的单个位读操作;和多位编程时间段,其中将在多个数据设置操作中执行的单个位读操作的结果存储在第二区域中;以及
其中在多个数据设置时间段的开始之前且在多个数据设置时间段的结束之后,切换非易失性存储器件的操作模式,
其中该非易失性存储器件还包括页缓冲器,每个页缓冲器包括多个锁存器,该多个锁存器中的一个用于存储经由各个单个位读操作读出的数据,并且在多个数据设置时间段的每一个之内,根据从存储器控制器提供的转存命令,将存储在该一个锁存器中的数据转存到其余锁存器当中的被选中的锁存器中。
15.如权利要求14所述的操作方法,其中经由单个位编程操作编程第一区域,并且经由多位编程操作编程第二区域。
16.如权利要求14所述的操作方法,其中经由多位编程操作分别编程第一区域和第二区域。
17.如权利要求14所述的操作方法,其中在对第一区域的缓冲器编程操作开始之前且在对第一区域的缓冲器编程操作结束之后切换非易失性存储器件的操作模式。
18.如权利要求14所述的操作方法,其中该主编程操作包括1步编程操作、粗编程操作和细编程操作中的至少一个。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20798/10 | 2010-03-09 | ||
KR1020100020798A KR20110101642A (ko) | 2010-03-09 | 2010-03-09 | 멀티-비트 메모리 장치를 포함한 데이터 저장 시스템 및 그것의 동작 방법 |
KR111143/10 | 2010-11-09 | ||
KR1020100111143A KR101772577B1 (ko) | 2010-11-09 | 2010-11-09 | 멀티-비트 메모리 장치를 포함한 데이터 저장 시스템 및 그것의 동작 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102290105A CN102290105A (zh) | 2011-12-21 |
CN102290105B true CN102290105B (zh) | 2016-01-20 |
Family
ID=44559847
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110056113.XA Active CN102290105B (zh) | 2010-03-09 | 2011-03-09 | 具有多位存储器件的数据存储系统及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (3) | US8355280B2 (zh) |
JP (1) | JP5660615B2 (zh) |
CN (1) | CN102290105B (zh) |
Families Citing this family (100)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7978516B2 (en) | 2007-12-27 | 2011-07-12 | Pliant Technology, Inc. | Flash memory controller having reduced pinout |
US8355280B2 (en) * | 2010-03-09 | 2013-01-15 | Samsung Electronics Co., Ltd. | Data storage system having multi-bit memory device and operating method thereof |
US8467237B2 (en) | 2010-10-15 | 2013-06-18 | Micron Technology, Inc. | Read distribution management for phase change memory |
KR101903091B1 (ko) * | 2011-10-05 | 2018-10-02 | 삼성전자주식회사 | 불휘발성 메모리 장치를 포함하는 메모리 시스템 및 그것의 동작 방법 |
DE102012109612A1 (de) | 2011-10-13 | 2013-04-18 | Samsung Electronics Co., Ltd. | Nichtflüchtige Speichervorrichtung, Programmierungsverfahren für nichtflüchtige Speichervorrichtungen und Speichersystem, das eine nichtflüchtiger Speichervorrichtung umfasst |
KR101893145B1 (ko) * | 2011-12-06 | 2018-10-05 | 삼성전자주식회사 | 메모리 시스템들 및 그것들의 블록 복사 방법들 |
DE102012111829A1 (de) | 2011-12-06 | 2013-06-06 | Samsung Electronics Co., Ltd. | Speichersysteme und Blockkopierverfahren davon |
KR101923157B1 (ko) | 2012-02-22 | 2018-11-28 | 삼성전자주식회사 | 메모리 시스템 및 그것의 프로그램 방법 |
US9001575B2 (en) | 2012-03-30 | 2015-04-07 | Micron Technology, Inc. | Encoding program bits to decouple adjacent wordlines in a memory device |
KR101938210B1 (ko) | 2012-04-18 | 2019-01-15 | 삼성전자주식회사 | 낸드 플래시 메모리, 가변 저항 메모리 및 컨트롤러를 포함하는 메모리 시스템의 동작 방법 |
US9105314B2 (en) | 2012-04-27 | 2015-08-11 | Micron Technology, Inc. | Program-disturb decoupling for adjacent wordlines of a memory device |
US9606730B2 (en) * | 2012-05-04 | 2017-03-28 | Samsung Electronics Co., Ltd. | System and method including three dimensional nonvolatile memory device and random access memory |
US8910000B2 (en) * | 2012-05-17 | 2014-12-09 | Micron Technology, Inc. | Program-disturb management for phase change memory |
US9699263B1 (en) | 2012-08-17 | 2017-07-04 | Sandisk Technologies Llc. | Automatic read and write acceleration of data accessed by virtual machines |
KR102016041B1 (ko) | 2012-10-11 | 2019-08-30 | 삼성전자주식회사 | 비휘발성 메모리 장치의 프로그램 방법 |
KR102025251B1 (ko) | 2012-10-31 | 2019-09-25 | 삼성전자주식회사 | 메모리 시스템 및 그것의 프로그램 방법 |
US9501398B2 (en) | 2012-12-26 | 2016-11-22 | Sandisk Technologies Llc | Persistent storage device with NVRAM for staging writes |
US9239751B1 (en) | 2012-12-27 | 2016-01-19 | Sandisk Enterprise Ip Llc | Compressing data from multiple reads for error control management in memory systems |
US9612948B2 (en) | 2012-12-27 | 2017-04-04 | Sandisk Technologies Llc | Reads and writes between a contiguous data block and noncontiguous sets of logical address blocks in a persistent storage device |
US9454420B1 (en) | 2012-12-31 | 2016-09-27 | Sandisk Technologies Llc | Method and system of reading threshold voltage equalization |
US9647838B2 (en) * | 2013-01-25 | 2017-05-09 | Ralph John Hilla | Restructuring the computer and its association with the internet |
US9384839B2 (en) * | 2013-03-07 | 2016-07-05 | Sandisk Technologies Llc | Write sequence providing write abort protection |
US9870830B1 (en) | 2013-03-14 | 2018-01-16 | Sandisk Technologies Llc | Optimal multilevel sensing for reading data from a storage medium |
KR102101304B1 (ko) * | 2013-03-15 | 2020-04-16 | 삼성전자주식회사 | 메모리 컨트롤러 및 메모리 컨트롤러의 동작 방법 |
US9244763B1 (en) | 2013-03-15 | 2016-01-26 | Sandisk Enterprise Ip Llc | System and method for updating a reading threshold voltage based on symbol transition information |
US9236886B1 (en) | 2013-03-15 | 2016-01-12 | Sandisk Enterprise Ip Llc | Universal and reconfigurable QC-LDPC encoder |
US9367246B2 (en) | 2013-03-15 | 2016-06-14 | Sandisk Technologies Inc. | Performance optimization of data transfer for soft information generation |
KR20140132103A (ko) * | 2013-05-07 | 2014-11-17 | 에스케이하이닉스 주식회사 | 메모리 시스템, 반도체 메모리 장치 및 그것들의 동작 방법 |
KR101456503B1 (ko) * | 2013-05-15 | 2014-11-03 | (주)실리콘화일 | 스택 메모리 |
KR102053958B1 (ko) * | 2013-05-27 | 2019-12-10 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 그것의 재프로그램 방법 |
US9159437B2 (en) | 2013-06-11 | 2015-10-13 | Sandisk Enterprise IP LLC. | Device and method for resolving an LM flag issue |
KR102125376B1 (ko) * | 2013-07-01 | 2020-06-23 | 삼성전자주식회사 | 저장 장치 및 그것의 쓰기 방법 |
US9384126B1 (en) | 2013-07-25 | 2016-07-05 | Sandisk Technologies Inc. | Methods and systems to avoid false negative results in bloom filters implemented in non-volatile data storage systems |
US9524235B1 (en) | 2013-07-25 | 2016-12-20 | Sandisk Technologies Llc | Local hash value generation in non-volatile data storage systems |
KR102096285B1 (ko) | 2013-07-30 | 2020-04-02 | 삼성전자주식회사 | 메모리 시스템 및 그것의 프로그램 방법 |
KR102133362B1 (ko) | 2013-08-14 | 2020-07-15 | 삼성전자주식회사 | 비휘발성 메모리 장치, 그것을 포함하는 메모리 시스템, 및 그것의 프로그램 방법 |
CN107341071A (zh) * | 2013-08-23 | 2017-11-10 | 慧荣科技股份有限公司 | 存取快闪存储器中储存单元的方法以及使用该方法的装置 |
TWI588843B (zh) * | 2013-08-23 | 2017-06-21 | 慧榮科技股份有限公司 | 存取快閃記憶體中儲存單元的方法以及使用該方法的裝置 |
CN104425018B (zh) * | 2013-08-23 | 2019-07-23 | 慧荣科技股份有限公司 | 存取快闪存储器中储存单元的方法以及使用该方法的装置 |
US9235509B1 (en) | 2013-08-26 | 2016-01-12 | Sandisk Enterprise Ip Llc | Write amplification reduction by delaying read access to data written during garbage collection |
US9639463B1 (en) | 2013-08-26 | 2017-05-02 | Sandisk Technologies Llc | Heuristic aware garbage collection scheme in storage systems |
US9442662B2 (en) | 2013-10-18 | 2016-09-13 | Sandisk Technologies Llc | Device and method for managing die groups |
US9298608B2 (en) | 2013-10-18 | 2016-03-29 | Sandisk Enterprise Ip Llc | Biasing for wear leveling in storage systems |
US9436831B2 (en) | 2013-10-30 | 2016-09-06 | Sandisk Technologies Llc | Secure erase in a memory device |
US9263156B2 (en) | 2013-11-07 | 2016-02-16 | Sandisk Enterprise Ip Llc | System and method for adjusting trip points within a storage device |
US9244785B2 (en) | 2013-11-13 | 2016-01-26 | Sandisk Enterprise Ip Llc | Simulated power failure and data hardening |
US9703816B2 (en) | 2013-11-19 | 2017-07-11 | Sandisk Technologies Llc | Method and system for forward reference logging in a persistent datastore |
US9520197B2 (en) | 2013-11-22 | 2016-12-13 | Sandisk Technologies Llc | Adaptive erase of a storage device |
US9520162B2 (en) | 2013-11-27 | 2016-12-13 | Sandisk Technologies Llc | DIMM device controller supervisor |
US9582058B2 (en) | 2013-11-29 | 2017-02-28 | Sandisk Technologies Llc | Power inrush management of storage devices |
US9235245B2 (en) | 2013-12-04 | 2016-01-12 | Sandisk Enterprise Ip Llc | Startup performance and power isolation |
KR102180595B1 (ko) * | 2014-02-06 | 2020-11-19 | 삼성전자주식회사 | 불휘발성 메모리 장치의 동작 방법 및 불휘발성 메모리 시스템 |
KR102218712B1 (ko) * | 2014-02-11 | 2021-02-22 | 삼성전자주식회사 | 저장 장치의 어드레스 맵핑 방법 및 저장 장치의 데이터 독출 방법 |
US9703636B2 (en) | 2014-03-01 | 2017-07-11 | Sandisk Technologies Llc | Firmware reversion trigger and control |
US9448876B2 (en) | 2014-03-19 | 2016-09-20 | Sandisk Technologies Llc | Fault detection and prediction in storage devices |
US9390814B2 (en) | 2014-03-19 | 2016-07-12 | Sandisk Technologies Llc | Fault detection and prediction for data storage elements |
US9454448B2 (en) | 2014-03-19 | 2016-09-27 | Sandisk Technologies Llc | Fault testing in storage devices |
US9626400B2 (en) | 2014-03-31 | 2017-04-18 | Sandisk Technologies Llc | Compaction of information in tiered data structure |
US9626399B2 (en) | 2014-03-31 | 2017-04-18 | Sandisk Technologies Llc | Conditional updates for reducing frequency of data modification operations |
US9390021B2 (en) | 2014-03-31 | 2016-07-12 | Sandisk Technologies Llc | Efficient cache utilization in a tiered data structure |
US9697267B2 (en) | 2014-04-03 | 2017-07-04 | Sandisk Technologies Llc | Methods and systems for performing efficient snapshots in tiered data structures |
US9703491B2 (en) | 2014-05-30 | 2017-07-11 | Sandisk Technologies Llc | Using history of unaligned writes to cache data and avoid read-modify-writes in a non-volatile storage device |
US10656840B2 (en) | 2014-05-30 | 2020-05-19 | Sandisk Technologies Llc | Real-time I/O pattern recognition to enhance performance and endurance of a storage device |
US10372613B2 (en) | 2014-05-30 | 2019-08-06 | Sandisk Technologies Llc | Using sub-region I/O history to cache repeatedly accessed sub-regions in a non-volatile storage device |
US10656842B2 (en) | 2014-05-30 | 2020-05-19 | Sandisk Technologies Llc | Using history of I/O sizes and I/O sequences to trigger coalesced writes in a non-volatile storage device |
US10114557B2 (en) | 2014-05-30 | 2018-10-30 | Sandisk Technologies Llc | Identification of hot regions to enhance performance and endurance of a non-volatile storage device |
US10162748B2 (en) | 2014-05-30 | 2018-12-25 | Sandisk Technologies Llc | Prioritizing garbage collection and block allocation based on I/O history for logical address regions |
US10146448B2 (en) | 2014-05-30 | 2018-12-04 | Sandisk Technologies Llc | Using history of I/O sequences to trigger cached read ahead in a non-volatile storage device |
US9652381B2 (en) | 2014-06-19 | 2017-05-16 | Sandisk Technologies Llc | Sub-block garbage collection |
KR20160025377A (ko) * | 2014-08-27 | 2016-03-08 | 에스케이하이닉스 주식회사 | 반도체 메모리 장치, 그것의 동작 방법 및 그것을 포함하는 데이터 저장 장치 |
US9443601B2 (en) | 2014-09-08 | 2016-09-13 | Sandisk Technologies Llc | Holdup capacitor energy harvesting |
US9678832B2 (en) * | 2014-09-18 | 2017-06-13 | Sandisk Technologies Llc | Storage module and method for on-chip copy gather |
KR102527961B1 (ko) * | 2015-07-02 | 2023-05-04 | 삼성전자주식회사 | 불휘발성 메모리 시스템 및 그것의 프로그램 방법 |
US9799402B2 (en) * | 2015-06-08 | 2017-10-24 | Samsung Electronics Co., Ltd. | Nonvolatile memory device and program method thereof |
JP6453718B2 (ja) * | 2015-06-12 | 2019-01-16 | 東芝メモリ株式会社 | 半導体記憶装置及びメモリシステム |
KR20170089069A (ko) * | 2016-01-25 | 2017-08-03 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그의 동작방법 |
KR102611266B1 (ko) * | 2016-09-02 | 2023-12-08 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
US9940052B2 (en) * | 2016-09-14 | 2018-04-10 | Micron Technology, Inc. | Memory device configuration commands |
US10203885B2 (en) * | 2017-01-18 | 2019-02-12 | Micron Technology, Inc. | Memory device including mixed non-volatile memory cell types |
US10109361B1 (en) * | 2017-06-29 | 2018-10-23 | Intel Corporation | Coarse pass and fine pass multi-level NVM programming |
KR20190006680A (ko) * | 2017-07-11 | 2019-01-21 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
US20190042130A1 (en) * | 2017-12-18 | 2019-02-07 | Intel Corporation | Prefix opcode method for slc entry with auto-exit option |
KR102441580B1 (ko) * | 2018-02-28 | 2022-09-07 | 삼성전자주식회사 | 프로그램 성능이 개선된 메모리 장치 및 이의 동작방법 |
US11217311B2 (en) | 2018-02-28 | 2022-01-04 | Samsung Electronics Co., Ltd. | Memory device with improved program performance and method of operating the same |
US11152074B2 (en) | 2018-02-28 | 2021-10-19 | Samsung Electronics Co., Ltd. | Memory device with improved program performance and method of operating the same |
KR102503177B1 (ko) * | 2018-03-05 | 2023-02-24 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작 방법 |
KR102643067B1 (ko) * | 2018-04-30 | 2024-03-06 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
US10877697B2 (en) * | 2018-04-30 | 2020-12-29 | SK Hynix Inc. | Data storage device and operating method thereof |
KR20190135746A (ko) | 2018-05-29 | 2019-12-09 | 삼성전자주식회사 | 쓰기 버퍼 메모리를 포함하는 스토리지 장치 및 상기 스토리지 장치의 동작 방법 |
JP7408312B2 (ja) * | 2018-08-03 | 2024-01-05 | キオクシア株式会社 | 半導体記憶装置、メモリシステム、及び書き込み方法 |
KR20200034312A (ko) * | 2018-09-21 | 2020-03-31 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
KR20200071955A (ko) | 2018-12-12 | 2020-06-22 | 삼성전자주식회사 | 비휘발성 메모리 장치의 동작 방법, 스토리지 장치의 동작 방법 및 스토리지 장치 |
US11133067B2 (en) * | 2019-03-08 | 2021-09-28 | Western Digital Technologies, Inc. | Multi-phased programming with balanced gray coding |
WO2021068231A1 (en) | 2019-10-12 | 2021-04-15 | Yangtze Memory Technologies Co., Ltd. | Method of programming memory device and related memory device |
US11188261B2 (en) * | 2019-11-18 | 2021-11-30 | International Business Machines Corporation | Memory controllers for solid-state storage devices |
JP6759440B2 (ja) * | 2019-11-28 | 2020-09-23 | キオクシア株式会社 | メモリシステム |
CN110990299B (zh) * | 2020-03-03 | 2020-07-14 | 江苏华创微系统有限公司 | 非规整组相联cache组地址映射方法 |
US11137944B1 (en) * | 2020-03-13 | 2021-10-05 | Western Digital Technologies, Inc. | Combined QLC programming method |
US20220107749A1 (en) * | 2020-10-05 | 2022-04-07 | Lenovo (Singapore) Pte. Ltd. | Cell size-based memory diagnostic |
EP4207199A3 (en) * | 2021-12-28 | 2023-08-09 | Samsung Electronics Co., Ltd. | Memory device, memory system including the same, and operating method of the memory system |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5930167A (en) | 1997-07-30 | 1999-07-27 | Sandisk Corporation | Multi-state non-volatile flash memory capable of being its own two state write cache |
JP4410188B2 (ja) | 2004-11-12 | 2010-02-03 | 株式会社東芝 | 半導体記憶装置のデータ書き込み方法 |
US7130210B2 (en) | 2005-01-13 | 2006-10-31 | Spansion Llc | Multi-level ONO flash program algorithm for threshold width control |
KR100634458B1 (ko) * | 2005-07-04 | 2006-10-16 | 삼성전자주식회사 | 단일의 페이지 버퍼 구조로 멀티-비트 및 단일-비트프로그램 동작을 수행하는 플래시 메모리 장치 |
US7813170B2 (en) * | 2005-11-11 | 2010-10-12 | Kabushiki Kaisha Toshiba | Semiconductor memory device capable of memorizing multivalued data |
JP4679490B2 (ja) * | 2005-11-11 | 2011-04-27 | 株式会社東芝 | 半導体記憶装置 |
JP4805696B2 (ja) | 2006-03-09 | 2011-11-02 | 株式会社東芝 | 半導体集積回路装置およびそのデータ記録方式 |
JP2007305210A (ja) | 2006-05-10 | 2007-11-22 | Toshiba Corp | 半導体記憶装置 |
US7979667B2 (en) * | 2007-12-10 | 2011-07-12 | Spansion Llc | Memory array search engine |
US8239875B2 (en) * | 2007-12-21 | 2012-08-07 | Spansion Llc | Command queuing for next operations of memory devices |
JP2010009733A (ja) | 2008-06-30 | 2010-01-14 | Toshiba Corp | 不揮発性半導体記憶装置 |
KR101434400B1 (ko) * | 2008-07-09 | 2014-08-27 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 메모리 시스템 및 그것의 관리방법 |
JP5259481B2 (ja) | 2009-04-14 | 2013-08-07 | 株式会社東芝 | 不揮発性半導体記憶装置 |
US7936610B1 (en) * | 2009-08-03 | 2011-05-03 | Micron Technology, Inc. | Selective refresh of single bit memory cells |
US8144512B2 (en) * | 2009-12-18 | 2012-03-27 | Sandisk Technologies Inc. | Data transfer flows for on-chip folding |
US8054684B2 (en) | 2009-12-18 | 2011-11-08 | Sandisk Technologies Inc. | Non-volatile memory and method with atomic program sequence and write abort detection |
US8355280B2 (en) * | 2010-03-09 | 2013-01-15 | Samsung Electronics Co., Ltd. | Data storage system having multi-bit memory device and operating method thereof |
KR101662827B1 (ko) * | 2010-07-02 | 2016-10-06 | 삼성전자주식회사 | 쓰기 패턴에 따라 데이터 블록의 쓰기 모드를 선택하는 메모리 시스템 및 그것의 데이터 쓰기 방법 |
KR101798013B1 (ko) * | 2010-12-30 | 2017-11-16 | 삼성전자주식회사 | 비휘발성 메모리 장치의 프로그램 방법 |
-
2011
- 2011-03-04 US US13/040,295 patent/US8355280B2/en active Active
- 2011-03-07 JP JP2011048794A patent/JP5660615B2/ja active Active
- 2011-03-09 CN CN201110056113.XA patent/CN102290105B/zh active Active
-
2013
- 2013-01-09 US US13/737,140 patent/US8976587B2/en active Active
-
2014
- 2014-06-30 US US14/319,137 patent/US8964468B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20140313824A1 (en) | 2014-10-23 |
US8355280B2 (en) | 2013-01-15 |
US8964468B2 (en) | 2015-02-24 |
JP2011187154A (ja) | 2011-09-22 |
US8976587B2 (en) | 2015-03-10 |
CN102290105A (zh) | 2011-12-21 |
JP5660615B2 (ja) | 2015-01-28 |
US20110222342A1 (en) | 2011-09-15 |
US20130141972A1 (en) | 2013-06-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102290105B (zh) | 具有多位存储器件的数据存储系统及其操作方法 | |
US9672104B2 (en) | Memory system and read reclaim method thereof | |
JP6262426B2 (ja) | メモリシステム及びそれのブロック複写方法 | |
US9792206B2 (en) | Memory controller and memory system including the same | |
JP6298249B2 (ja) | 不揮発性メモリ装置とそれを含むメモリシステム及びそれらのメモリブロック管理、消去、及びプログラム方法 | |
CN101847443B (zh) | 非易失性存储器器件和相关的编程方法 | |
US8812807B2 (en) | Nonvolatile memory device and operating method thereof | |
US20080239811A1 (en) | Method for controlling a non-volatile semiconductor memory, and semiconductor storage system | |
KR101734199B1 (ko) | 멀티-비트 메모리 장치를 포함한 데이터 저장 시스템 및 그것의 동작 방법 | |
KR101923157B1 (ko) | 메모리 시스템 및 그것의 프로그램 방법 | |
CN103093818A (zh) | 存储系统及其操作方法 | |
JP2008108418A (ja) | マルチページプログラムの方法、及びこれを行うためのフラッシュメモリ装置 | |
CN104700896B (zh) | 存储器系统和包括所述存储器系统的用户装置 | |
US10503433B2 (en) | Memory management method, memory control circuit unit and memory storage device | |
KR101792867B1 (ko) | 멀티-레벨 메모리 장치를 포함한 데이터 저장 시스템 및 그것의 동작 방법 | |
US9383929B2 (en) | Data storing method and memory controller and memory storage device using the same | |
CN110442299B (zh) | 数据写入方法、存储器控制电路单元以及存储器储存装置 | |
KR101772577B1 (ko) | 멀티-비트 메모리 장치를 포함한 데이터 저장 시스템 및 그것의 동작 방법 | |
KR101691097B1 (ko) | 홀수의 매트들을 구비한 비휘발성 메모리 장치, 그것의 블록 설정 방법, 그것을 포함하는 메모리 시스템 | |
JP2007048191A (ja) | メモリカード |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |