CN117393022A - 存储器装置、存储器系统及其操作方法 - Google Patents
存储器装置、存储器系统及其操作方法 Download PDFInfo
- Publication number
- CN117393022A CN117393022A CN202310057981.2A CN202310057981A CN117393022A CN 117393022 A CN117393022 A CN 117393022A CN 202310057981 A CN202310057981 A CN 202310057981A CN 117393022 A CN117393022 A CN 117393022A
- Authority
- CN
- China
- Prior art keywords
- data
- bit data
- memory cell
- nonvolatile memory
- programmed
- 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.)
- Pending
Links
- 230000015654 memory Effects 0.000 title claims abstract description 745
- 238000000034 method Methods 0.000 title claims abstract description 91
- 230000004044 response Effects 0.000 claims abstract description 38
- 239000000872 buffer Substances 0.000 claims description 49
- 238000012937 correction Methods 0.000 claims description 32
- 238000013479 data entry Methods 0.000 description 50
- 238000012545 processing Methods 0.000 description 29
- 238000009826 distribution Methods 0.000 description 26
- 238000013507 mapping Methods 0.000 description 26
- 238000013519 translation Methods 0.000 description 23
- 230000008569 process Effects 0.000 description 21
- 230000008859 change Effects 0.000 description 15
- 238000004891 communication Methods 0.000 description 15
- 230000002093 peripheral effect Effects 0.000 description 11
- 230000005540 biological transmission Effects 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 238000003860 storage Methods 0.000 description 7
- 238000013500 data storage Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 239000000758 substrate Substances 0.000 description 2
- 241000699670 Mus sp. Species 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000004242 micellar liquid chromatography Methods 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
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/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3436—Arrangements for verifying correct programming or erasure
- G11C16/3454—Arrangements for verifying correct programming or for detecting overprogrammed cells
- G11C16/3459—Circuits or methods to verify correct programming of nonvolatile memory cells
-
- 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
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- 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
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Read Only Memory (AREA)
Abstract
本申请涉及一种存储器装置、存储器系统及其操作方法。该存储器装置包括第一存储器组和控制装置。第一存储器组包括存储多位数据的第一非易失性存储器单元。控制装置执行多个编程操作以将多位数据存储在第一非易失性存储器单元中。在执行多个编程操作时根据第一非易失性存储器单元的编程状态,控制装置在多位数据之中的最高有效位数据被编程到第一非易失性存储器单元之前,响应于读取命令执行用于获取多位数据之中已被编程到第一非易失性存储器单元中的位数据的读取操作。控制装置输出响应于读取命令获得的数据。
Description
相关申请的交叉引用
本专利申请要求于2022年7月11日提交的申请号为10-2022-0084914的韩国专利申请的权益,该韩国专利申请的全部公开内容通过引用并入本文。
技术领域
本文中描述的本公开的一个或多个实施例涉及一种存储器系统及其操作方法,并且更具体地,涉及一种用于在存储器系统的非易失性存储器装置中对数据进行编程或读取数据的设备和方法。
背景技术
数据处理系统包括存储器系统或数据存储装置。数据处理系统可以发展为在数据存储装置中存储更多的大量数据,在数据存储装置中更快地存储数据以及更快地读取数据存储装置中存储的数据。存储器系统或数据存储装置可以包括用于存储数据的非易失性存储器单元和/或易失性存储器单元。
发明内容
本公开中的实施例可以提供存储器系统、数据处理系统以及操作过程或方法,其通过降低存储器系统的操作复杂度和性能劣化,可以快速可靠地将数据处理到存储器装置中,从而提高存储器装置的使用效率。
本公开的实施例可以提供用于提高存储器系统的输入/输出操作性能的设备或方法。
在实施例中,一种存储器装置可以包括:第一存储器组,包括被配置为存储多位数据的第一非易失性存储器单元;以及控制装置,被配置为:执行多个编程操作,以将多位数据存储在第一非易失性存储器单元中;在执行多个编程操作时根据第一非易失性存储器单元的编程状态,在多位数据之中的最高有效位数据被编程到第一非易失性存储器单元之前,响应于读取命令执行用于获取多位数据之中已被编程到第一非易失性存储器单元中的位数据的读取操作;并输出对应于读取命令获得的位数据。
存储器装置可以被配置为基于多位数据之中编程在第一非易失性存储器单元中的数据的位数来确定编程状态。
控制装置可以进一步被配置为根据第一非易失性存储器单元的编程状态,改变在读取操作期间施加到第一非易失性存储器单元的读取电压的电平。
控制装置进一步被配置为随着多位数据之中编程到第一非易失性存储器单元的数据的位数增加,提高施加到第一非易失性存储器单元以读取最低有效位数据的读取电压的电平。
控制装置可以被配置为按照多位数据之中最低有效位数据到最高有效位数据的顺序,在第一非易失性存储器单元中执行多个编程操作。
存储器装置可以进一步包括数据缓冲器,该数据缓冲器被配置为临时存储包括待存储在第一非易失性存储器单元中的多位数据的写入数据。控制装置可以进一步被配置为在位数据已经被编程到第一非易失性存储器单元之后并且在多位数据中的所有数据被编程到第一非易失性存储器单元之前,从数据缓冲器中移除写入数据的与位数据相对应的部分。
存储器系统可以进一步包括第二存储器组,该第二存储器组包括第二非易失性存储器单元,该第二非易失性存储器单元存储与关于第一非易失性存储器单元的编程状态相对应的标志。控制装置可以进一步被配置为在对第一非易失性存储器单元执行读取操作之前读取第二非易失性存储器单元中存储的标志,以识别关于第一非易失性存储器单元的编程状态。
控制装置可以进一步被配置为在跳过对从第二存储器组获得的标志执行错误校正操作的同时,对从第一存储器组获得的数据执行错误校正操作。
存储器装置可以进一步包括寄存器,该寄存器被配置为记录表示针对关于多位数据之中最近被编程到第一非易失性存储器单元中的位数据执行的编程操作是否完成的信息。
控制装置可以进一步被配置为基于寄存器中记录的信息,执行关于第一非易失性存储器单元的编程状态检查操作以识别编程状态。
在另一个实施例中,一种操作存储器系统的方法可以包括:将多位数据之中的最低有效位数据编程到被配置为存储多位数据的第一非易失性存储器单元;在将多位数据之中的最高有效位数据编程到第一非易失性存储器单元中之前,响应于读取命令对编程到第一非易失性存储器单元中的最低有效位数据执行读取操作;并且响应于读取命令将最低有效位数据输出至外部装置。
该方法可以进一步包括将标志编程到第二非易失性存储器单元中,该标志指示第一非易失性存储器单元中对最低有效位数据的编程是否完成;在第一非易失性存储器单元中对多位数据之中除最低有效位数据之外的位数据进行编程;并且响应于除最低有效位数据之外的位数据的编程是否完成,更新标志。
该方法可以进一步包括:当除了最低有效位数据之外的位数据是最高有效位数据时,在完成对位数据的编程之后终止第一非易失性存储器单元中的编程操作;当除最低有效位数据之外的位数据不是最高有效位数据时,在第一非易失性存储器单元中对多位数据之中除最低有效位数据之外的另一位数据进行编程;并且根据对除最低有效位数据之外的另一位数据的编程是否完成,更新标志。
该方法可以进一步包括:在对最低有效位数据的编程完成之后,将表示对最低有效位数据的编程是否完成的指示符存储在寄存器中;在第一非易失性存储器单元中编程多位数据之中除最低有效位数据之外的位数据;并且根据对除最低有效位数据之外的位数据的编程完成,更新寄存器中存储的指示符。
执行读取操作可以包括:根据第一非易失性存储器单元的编程状态确定读取电压的电平;并且通过将具有确定电平的读取电压施加到第一非易失性存储器单元来读取最低有效位数据。
该方法可以进一步包括基于多位数据之中编程到第一非易失性存储器单元中的数据的位数来确定编程状态。
多位数据可以按照最低有效位到最高有效位数据的顺序被编程到第一非易失性存储器单元中。随着多位数据之中编程到第一非易失性存储器单元中的数据的位数增加,读取电压的电平增加。
在另一个实施例中,一种存储器系统可以包括:存储器管芯,包括被配置为存储多位数据的第一非易失性存储器单元;以及控制器,被配置为在多位数据之中的最高有效位数据被编程到第一非易失性存储器单元之前,响应于读取命令,读取根据第一非易失性存储器单元的状态已经被编程到第一非易失性存储器单元中的位数据,其中位数据是多位数据的一部分。
存储器系统可以进一步包括数据缓冲器,该数据缓冲器被配置为临时存储包括待存储在第一非易失性存储器单元中的多位数据的写入数据。控制器可以进一步被配置为在位数据已经被编程到第一非易失性存储器单元中之后并且在多位数据中的所有数据被编程到第一非易失性存储器单元中之前,从数据缓冲器中移除写入数据的与位数据相对应的部分。
控制器可以被配置为基于多位数据之中编程到第一非易失性存储器单元中的数据的位数确定编程状态。控制器被配置为基于编程状态确定读取电压的电平,并且通过将读取电压施加到第一非易失性存储器单元来执行用于获得位数据的读取操作。
在实施例中,一种控制器的操作方法可以包括:控制存储器装置依次对多位数据的数据位序列进行编程,同时每当对该序列的每个数据位进行编程时记录表示编程依次完成的信息;并且通过基于在读取的时间点记录的信息确定用于读取的读取电压,控制存储器装置在完成对多位数据的编程之前读取序列之中的已经编程的数据位。
附图说明
本文中的描述参考了附图,其中在整个附图中,相同的附图标记指代相同的部件。
图1示出根据本公开的实施例的存储器系统。
图2示出根据本公开的实施例的数据处理系统。
图3示出根据本公开的另一实施例的存储器系统。
图4示出根据本公开的实施例的参照图1至图3描述的控制器中的内层。
图5示出根据本公开的实施例的存储器装置。
图6示出根据本公开的实施例的将多位数据编程到非易失性存储器单元的第一示例。
图7示出根据本公开的实施例的将多位数据编程到非易失性存储器单元的第二示例。
图8示出根据本公开的实施例的将多位数据编程到非易失性存储器单元的第三示例。
图9示出根据本公开的另一实施例的在存储器系统内执行的编程操作的第一示例。
图10示出根据本公开的实施例的根据非易失性存储器单元的编程状态的关于LSB数据的读取电压的电平变化。
图11示出根据本公开的另一实施例的在存储器系统内执行的读取操作的第一示例。
图12示出根据本公开的实施例的图11中所示的读取操作的操作裕量。
图13示出根据本公开的实施例的具有响应于标志而确定的电平的读取电压。
图14示出根据本公开的另一实施例的在存储器系统内执行的读取操作的第二示例。
图15示出根据本公开的实施例的图14中所示的读取操作的操作裕量。
图16示出根据本公开的实施例的被配置为根据第一编程方法存储4位数据的非易失性存储器单元的阈值电压变化。
图17示出根据本公开的实施例的被配置为根据第二编程方法存储4位数据的非易失性存储器单元的阈值电压变化。
图18示出根据本公开的实施例的被配置为根据第三编程方法存储4位数据的非易失性存储器单元的阈值电压变化。
具体实施方式
下面参照附图描述本公开的各个实施例。本公开的元件和特征可以被不同地配置或布置以形成其它实施例,其它实施例可以是所公开的实施例中的任意一个的变型。
在本公开中,对“一个实施例”、“示例实施例”、“实施例”、“另一实施例”、“一些实施例”、“各个实施例”、“其它实施例”、“可选实施例”等中包括的各种特征(例如,元件、结构、模块、组件、步骤、操作、特性等)的引用旨在表示本公开的一个或多个实施例中包括任何此类特征,但是可以或不一定组合在相同的实施例中。
在本公开中,术语“包含”、“包含有”、“包括”和“包括有”是开放式的。如所附权利要求书中使用的,这些术语指定存在所陈述的元件并且不排除存在或添加一个或多个其它元件。此外,权利要求中的术语不排除设备包括附加组件,例如,接口单元、电路等。
在本公开中,可以将各种单元、电路或其它组件描述或声称为“被配置为”执行一个或多个任务。在此类语境中,“被配置为”用于通过指示块/单元/电路/组件包括在操作期间执行一个或多个任务的结构(例如,电路)来暗示结构。像这样,即使在指定的块/单元/电路/组件当前不操作,例如,没有接通也没有激活时,也可以说块/单元/电路/组件被配置为执行任务。与“被配置为”一起使用的块/单元/电路/组件包括硬件,例如,电路、存储可运行以实现操作的程序指令的存储器等。此外,“被配置为”可以包括由软件和/或固件(例如,FPGA或运行软件的通用处理器)操纵以能够执行待解决的任务的方式操作的通用结构(例如,通用电路)。“被配置为”还可以包括使制造过程(例如,半导体制造设施)适应制造适合实现或执行一个或多个任务的装置(例如,集成电路)。
在本公开中使用时,术语“电路”或“逻辑”是指以下全部:(a)纯硬件电路实现方式(诸如仅模拟和/或数字电路中的实现方式)以及(b)电路和软件(和/或固件)的组合,诸如(如果适用的话):(i)处理器的组合,或(ii)处理器/软件(包括一起工作以使诸如移动电话或服务器的设备执行各种功能的数字信号处理器、软件和存储器)的部分,以及(c)需要用于操作的软件或固件的电路,诸如微处理器或微处理器的一部分,即使该软件或固件实际上不存在。“电路”或“逻辑”的这个定义适用于该术语在本申请中、包括在任何权利要求中的所有使用。作为进一步的示例,如本申请中使用的术语“电路”或“逻辑”还涵盖仅处理器(或多个处理器)或处理器的部分以及它的(或它们的)附随的软件和/或固件的实施方式。如果适用于特别声明的元件,术语“电路”或“逻辑”还涵盖例如存储装置的集成电路。
在本文中使用时,术语“第一”、“第二”、“第三”等用作名词的标签,它们在名词之前,并且不意味任何类型的排序(例如,空间的、时间的、逻辑的等)。术语“第一”和“第二”不一定表示第一个值必须写在第二个值之前。进一步,尽管在本文中术语可以用于识别各种元件,但是这些元件不受这些术语的限制。这些术语用于将一个元件与另外具有相同或相似名称的另一个元件区分开。例如,可以将第一电路与第二电路区分开。
进一步,术语“基于”用于描述影响确定的一个或多个因素。该术语不排除可以影响确定的额外的因素。也就是说,确定可以仅基于那些因素或至少部分地基于那些因素。考虑短语“基于B确定A”。尽管在这种情况下,B是影响A的确定的因素,但这种短语不排除A的确定也基于C。在其他情况下,可以仅基于B来确定A。
这里,数据条目、一个条目的数据、一项数据或数据项可以是位的序列。例如,数据条目可以包括文件的内容、该文件的一部分、存储器中的页面、面向对象的程序中的对象、数字消息、数字扫描图像、视频或音频信号的一部分、元数据或可以由一系列位表示的任何其他实体。根据实施例,数据条目可以包括离散的对象。根据另一实施例,数据条目可以包括为数据输入/输出操作所处理或处置的信息的单位。根据另一实施例,数据条目可以包括两个不同组件之间的发送包内的信息单位。
本文中描述的实施例可以提供用于改善存储器系统或数据处理系统的数据输入/输出操作的设备和方法。
现在将参照附图描述实施例,其中相同的附图标记指代相同的元件。
图1示出根据本公开的实施例的存储器系统。存储器系统110可以存储数据条目并输出所存储的数据条目。存储器系统110可以包括能够存储数据条目的区域,以及能够执行用于存储、擦除或读取数据条目的操作的控制装置。稍后将参照图2至图3描述存储器系统110中包括的组件的示例。
参照图1,存储器系统110可以包括存储器装置150和控制器130。存储器系统110中包括的存储器装置150和控制器130可以是在物理上彼此分离的组件类型。存储器装置150和控制器130可以通过至少一条数据路径或至少一条通信线路相互连接。例如,数据路径和通信线路可以包括通道和/或通路。
根据实施例,存储器装置150和控制器130可以是一种在功能上彼此分离的组件。而且,根据实施例,存储器装置150和控制器130可以通过单个芯片或多个芯片来实施。
控制器130可以包括闪存转换层(FTL)240和输入/输出控制模块260。控制器130中包括的闪存转换层(FTL)240可以执行数据处理操作,以用于将从外部装置(例如,主机102,参见图2)传送的数据条目(例如,主机数据)传送到存储器装置150,以便将数据条目存储在存储器装置150中。因为外部装置使用的地址方案(例如,逻辑地址方案)和存储器系统110内使用的地址方案(例如,物理地址方案)彼此不同,所以闪存转换层(FTL)240可以确定数据条目存储在存储器装置150中的位置。而且,闪存转换层(FTL)240可以生成用于将数据条目的逻辑地址和物理地址相互关联的映射信息或映射数据条目。这里,关于数据条目的逻辑地址可以由主机102确定,而关于数据条目的物理地址可以由存储器系统110确定。
输入/输出控制模块260可以控制用于将从闪存转换层(FTL)240传送的数据条目存储在存储器装置150中的操作。存储装器置150可以包括多个存储器平面,每个存储器平面包括多个非易失性存储器单元。可以在存储器装置150内并行执行数据输入/输出操作,以提高输入/输出操作性能。例如,当输入/输出控制模块260可以将读取命令发送到存储器装置150时,存储器装置150中的多个存储器平面中的每一个可以读取多个存储器单元中存储的数据条目并通过通道将读取的数据条目输出到输入/输出控制模块260。进一步,输入/输出控制模块260可以调度在多个存储器平面或多个区域,例如第一非易失性单元区域292和第二非易失性单元区域294中执行的数据输入/输出操作。
根据实施例,输入/输出控制模块260可以包括在图2至图3中所示的存储器接口142中。根据另一个实施例,输入/输出控制模块260可以布置在闪存转换层(FTL)240和图2和图3所示的存储器接口142之间。
参照图1,存储器装置150可以包括多个区域,例如第一非易失性单元区域292和第二非易失性单元区域294。例如,多个区域可以包括在单个存储器管芯或单个存储器平面中。存储器管芯可以包括存储器平面中的至少一个。可以将存储器管芯理解为被实施在物理上可区分的衬底上的组件类型。每个存储器管芯可以通过数据路径连接到控制器130并且包括用于与控制器130交换数据条目和信号的接口。
根据实施例,存储器装置150可以包括多个存储器平面。存储器平面可以包括至少一个存储块、被配置为控制包括多个非易失性存储器单元的阵列的驱动电路以及被配置为临时存储输入到多个非易失性存储器单元或从多个非易失性存储器单元输出的数据的至少一个缓冲器。存储器平面可以理解为包括多个组件的逻辑或物理分区。
多个区域,例如第一非易失性单元区域292和第二非易失性单元区域294,可以包括多个存储块152、154、156(参见图2)。存储块可以被理解为通过擦除操作从其中将数据一起擦除的一组非易失性存储器单元。存储块152、154、156可以包括页面,该页面是在编程操作期间一起存储数据或在读取操作期间一起输出数据的一组非易失性存储器单元。例如,从页面输出的数据可以通过数据锁存器和高速缓存锁存器输出到控制器130。存储块152、154、156中的每一个可以包括多个页面。参照图1描述的存储器装置150的内部配置可以响应于存储器系统110的操作性能而改变。本公开的实施例不限于参照图1描述的内部配置。稍后将参照图5描述存储器装置150的配置和操作。
参照图1,存储器系统110中包括的多个区域292、294可以包括多个非易失性存储器单元。例如,多个区域292、294可以包括第一非易失性单元区域292和第二非易失性单元区域294。第一非易失性单元区域292和第二非易失性单元区域294可以包括多个存储器单元,每个存储器单元被配置为存储多位数据。
根据实施例,第一非易失性单元区域292可以存储数据条目,而第二非易失性单元区域294可以存储标志。这里,数据条目可以包括存储器系统110从外部装置(例如,参照图2和图3的主机102)接收的写入数据或存储器系统110中用于内部操作的元数据。标志可以包括指示第一非易失性单元区域292中包括的非易失性存储器单元的编程状态的信息。在另一个实施例中,除了标志之外的数据可以存储在第二非易失性单元区域294中。根据实施例,标志可以存储在控制器130中包括的或控制器130使用的易失性存储器(例如,图2和图3中描述的存储器144)中。
根据实施例,存储器系统110中包括的第一非易失性单元区域292和第二非易失性单元区域294可以存储不同类型的数据。例如,第一非易失性单元区域292可以存储从外部装置传送的待存储在存储器系统110中的数据条目。第二非易失性单元区域294可以存储第一非易失性单元区域292中存储的数据条目的奇偶校验信息。这里,当在将数据编程到第一非易失性单元区域292的操作期间发生中断或错误时,奇偶校验信息可以用于恢复编程到第一非易失性单元区域292的数据。
可以在几个步骤中执行将多位数据编程到包括存储器单元的第一非易失性单元区域292的操作,每个存储器单元能够存储多位数据。或者可以在第一非易失性单元区域292中执行多个编程操作以将多位数据编程到第一非易失性单元区域292。根据实施例,为了对多位数据进行编程,存储器系统110可以执行两步编程操作或多步编程操作。在另一个实施例中,存储器系统110可以执行模糊编程操作和精细编程操作以对多位数据进行编程。稍后将参照图6至图8描述存储器系统110执行的存储多位数据的操作。
一次性(one-shot)编程操作可以通过多次编程操作来执行,在多次编程操作中,连续施加多个ISPP步进脉冲以将多位数据编程到非易失性存储器单元,直到连接到第一非易失性单元区域292的特定字线的非易失性存储器单元完全编程有多位数据。在一次性编程操作中,多个编程脉冲交替地施加到多条字线以执行关于多位数据的多个编程操作。当通过特定字线执行编程操作时,可以不通过另一字线执行另一编程操作。然而,随着第一非易失性单元区域292的集成度增加,当相邻字线之间(例如,在执行编程操作的字线和紧邻该字线的另一条字线之间)没有编程操作交错时,非易失性存储器单元之间会出现大量的单元间干扰。
为了减少编程操作期间的干扰,可以使用两步编程方法来将多位数据存储在第一非易失性单元区域292中包括的非易失性存储器单元中。在两步编程方法中,LSB数据可以首先被编程到具有与擦除状态相对应的阈值电压的非易失性存储器单元(第一步编程操作),然后MSB数据可以被编程到非易失性存储器单元(第二步编程操作)。例如,在LSB数据条目被编程到连接到特定字线的非易失性存储器单元之后,另一个LSB数据条目可以被编程到连接到与特定字线相邻的另一字线的非易失性存储器单元。通过将LSB数据条目编程到连接到多条字线的非易失性存储器单元,然后在LSB数据条目被编程之后依次将MSB数据条目编程到非易失性存储器单元,可以减少单元间的干扰。
在存储器系统110中,通过两步编程方法或多步编程方法存储在连接到多条字线的非易失性存储器单元中的数据条目的大小大于编程到联接到单个字线的非易失性存储器单元中的数据条目的大小。由于大量数据条目通过两步编程方法或多步编程方法交替地编程到联接到多条字线的非易失性存储器单元,因此编程操作所需的时间可能很长。因此,将写入数据保持在数据缓冲器270中的时间可能增加,该数据缓冲器270被配置为存储待编程到第一非易失性单元区域292的写入数据。
随着存储器装置150被配置为存储更多数据,第一非易失性单元区域292中存储的数据条目的大小会增加。例如,第一非易失性单元区域292中包括的页面的大小会增加。当确定待编程到第一非易失性单元区域292中包括的多个非易失性存储器单元中的写入数据的大小足够时,第一非易失性单元区域292中包括的多个非易失性存储器单元可以编程有多位数据。当多个非易失性存储器单元从最低有效位(LSB)数据到最高有效位(MSB)数据进行编程时,可以完成对多个非易失性存储器单元的编程操作。
另一方面,当写入数据的大小不够时,多位数据可能不会被编程到第一非易失性单元区域292中包括的多个非易失性存储器单元。当多位数据之中的一些位数据(例如,LSB数据)被编程到多个非易失性存储器单元之后没有更多的写入数据时,无法在相应的非易失性存储器单元中对MSB数据进行编程操作。在这种情况下,可能无法完成对相应的非易失性存储器单元的编程操作。
为了避免编程操作可能无法完成,控制器130可以将虚拟数据,而不是写入数据,编程到相应的非易失性存储器单元。可以将虚拟数据视为无用数据,但其优点在于可以快速完成对相应的非易失性存储器单元的编程操作。当编程操作完成时,控制器130可以删除或释放数据缓冲器270中存储的写入数据。因此,可以增加存储器系统110中的资源利用率。
存储器144中的数据缓冲器270的大小可能不是固定的,而是可以动态建立的。如果在编程操作未完成的状态下控制器130不删除数据缓冲器270中存储的写入数据,则存储器系统110中的资源利用会降低。当写入数据保留在数据缓冲器270中时,存储器系统110可能无法获得用于另一输入/输出操作的资源,从而存储器系统110的I/O性能可能降低。
即使写入数据被编程到非易失性存储器单元,当对相应的非易失性存储器单元的编程操作未完全编程有多位数据时,存储器系统110也应该保持数据缓冲器270中的写入数据。这是因为在对非易失性存储器单元的编程操作未完全编程有多位数据的状态下读取编程到非易失性存储器单元的数据时,极有可能发生错误。根据本公开的实施例,读取电压的电平可以响应于非易失性存储器单元的编程状态而改变。如果调整读取电压的电平,则在编程操作未完成时(例如,当多位数据中的一些位数据被编程时)读取非易失性存储器单元时发生错误的概率可能减少。因此,在多位数据之中的一些位数据存储在非易失性存储器单元中(即,MSB数据未被编程到非易失性存储器单元中)时,可以读取非易失性存储器单元中存储的位数据。由此,控制器130可以从数据缓冲器270中释放或删除与编程到非易失性存储器单元的位数据相对应的写入数据,从而可以提高存储器系统110的资源利用率。
存储器系统110可以基于如下的编程操作调整施加到非易失性存储器单元的读取电压的电平并控制数据缓冲器270,该编程操作关于多位数据之中的一些位数据是否被编程到非易失性存储器单元中,即使非易失性存储器单元没有完全编程有多位数据。根据实施例,存储器装置150可以将与第一非易失性单元区域292中包括的非易失性存储器单元的编程状态相对应的标志编程到第二非易失性单元区域294。例如,在存储器装置150将LSB数据编程到第一非易失性单元区域292中包括的非易失性存储器单元之后,与LSB数据相对应的标志可以被编程到第二非易失性单元区域294中包括的非易失性存储器单元。在存储器装置150将中央有效位(CSB)数据编程到第一非易失性单元区域292中已经编程有LSB数据的非易失性存储器单元之后,可以在第二非易失性单元区域294中更新与CSB数据相对应的标志。根据实施例,第3位数据、第4位数据或更多位数据可以存储在第一非易失性单元区域292中包括的存储器单元中,并且可以基于编程到第一非易失性单元区域292中包括的存储器单元的第3位数据、第4位数据或更多位数据来更新或存储第二非易失性单元区域294中存储的标志。
例如,当在第一非易失性单元区域292中完成第一步编程操作时,存储器系统110可以被识别出与第一步编程操作相对应的至少一些位数据被编程到第一非易失性单元区域522的非易失性存储器单元。在存储器系统110中的第一非易失性单元区域292中完成第一步编程操作之后,可以在第一非易失性单元区域292中执行第二步编程操作,或者在执行第二步编程操作之前,可以在第一非易失性单元区域292中执行对已经通过第一步编程操作编程的至少一些位数据的读取操作。每当在第一非易失性单元区域292中完成分步(step-by-step)(或多步)编程操作时,存储器装置150可以通知控制器130相应步的编程操作已完成。这里,每步编程操作可以包括用于将至少一位数据编程到第一非易失性单元区域292中包括的非易失性存储器单元的编程操作。
控制器130可以释放或删除响应于每步编程操作的完成存储在数据缓冲器270中的写入数据的一些,这些写入数据对应于编程到存储器装置150中的至少一些位数据。当从外部装置输入用于获得从数据缓冲器270中删除的数据的读取命令时,尽管MSB数据未被编程到相应的非易失性存储器单元,但是控制器130可以对编程到存储器装置150的非易失性存储器单元的至少一些位数据执行读取操作。
在对非易失性存储器单元执行分步编程操作时,第一非易失性单元区域292中的非易失性存储器单元的阈值电压分布可以改变。随着更多的位数据被编程到相应的非易失性存储器单元中,即,将位数据编程到对应的非易失性存储器单元的更多步编程操作完成,非易失性存储器单元的阈值电压分布在特定方向(例如,图10中所示的水平轴方向)上向右偏移。参照图10,当第3位数据被编程到非易失性存储器单元时,与LSB数据相对应的阈值电压分布可以比第2位数据存储在非易失性存储器单元中时右移更多。因此,存储器系统110可以响应于非易失性存储器单元的编程状态,改变为读取非易失性存储器单元中存储的数据而施加的读取电压的电平。
在对编程到第一非易失性单元区域292的位数据执行读取操作之前,控制器130可以检查第一非易失性单元区域292中包括的非易失性存储器单元的编程状态。根据实施例,如果指示第一非易失性单元区域292中包括的非易失性存储器单元的编程状态的标志存储在存储器装置150的第二非易失性单元区域294中,则控制器130可以读取第二非易失性存储器单元294中的标志以识别第一非易失性单元区域292中包括的非易失性存储器单元的编程状态。在下文中,将参照图11至图13描述本公开的实施例。
根据实施例,当存储器装置150中没有存储标志的区域时,控制器130可以在第一非易失性单元区域292中执行读取操作之前,执行检查第一非易失性单元区域292的编程状态的操作。这里,编程状态检查操作可以包括用于检查存储器装置150的操作状态的检查操作(例如,状态检查命令操作),该检查操作包括是否完成分步(或多步)编程操作的步进编程操作(step program operation)。在下文中,将参照图14至图18描述本公开的实施例。
在下文中,将参照图2至图18详细描述上述存储器系统的操作。具体地,将参照图2至图4描述存储器系统中包括的控制器,并且将参照图5描述存储器系统中包括的非易失性存储器装置。进一步,将参照图6至图8描述将多个数据条目和奇偶校验条目编程到存储器装置的系统和方案。
图2和图3示出根据本公开的一个或多个实施例的可以由存储器系统110执行的一些操作。
参照图2,数据处理系统100可以包括与诸如存储器系统110的存储器系统接合或联接的主机102。例如,主机102和存储器系统110可以经由数据总线、主机电缆等相互联接以执行数据通信。
存储器系统110可以包括存储器装置150和控制器130。存储器系统110中的存储器装置150和控制器130可以认为是根本上彼此分离的组件或元件。存储器装置150和控制器130可以经由至少一条数据路径连接。例如,数据路径可以包括通道和/或通路。
根据实施例,存储器装置150和控制器130可以是按功能划分的组件或元件。进一步,根据实施例,存储器装置150和控制器130可以用单个芯片或多个芯片来实现。控制器130可以响应于从外部装置输入的请求而执行数据输入/输出操作。例如,当控制器130响应于从外部装置输入的读取请求而执行读取操作时,存储在存储器装置150中包括的多个非易失性存储器单元中的数据被传递到控制器130。
如图2所示,存储器装置150可以包括多个存储块152、154、156。存储块152、154、156可以被理解为通过单个擦除操作而将数据一起移除的一组非易失性存储器单元。尽管未示出,但是存储块152、154、156可以包括页面,该页面是在单个编程操作期间将数据存储在一起或者在单个读取操作期间将数据一起输出的一组非易失性存储器单元。例如,一个存储块可以包括多个页面。
例如,存储器装置150可以包括多个存储器平面或多个存储器管芯。根据实施例,可以认为存储器平面是逻辑或物理分区,该逻辑或物理分区包括至少一个存储块、能够控制包括多个非易失性存储器单元的阵列的驱动电路以及可以临时存储输入到非易失性存储器单元或从非易失性存储器单元输出的数据的缓冲器。
另外,根据实施例,存储器管芯可以包括至少一个存储器平面。存储器管芯可以被理解为在实际上可区分的衬底上实现的一组组件。每个存储器管芯可以通过数据路径连接到控制器130。每个存储器管芯可以包括用于与控制器130交换数据的项目和信号的接口。
根据实施例,存储器装置150可以包括至少一个存储块152、154、156,至少一个存储器平面或至少一个存储器管芯。根据存储器系统110的性能,图1和图2所示的存储器装置150的内部配置可以不同。本公开的实施例不限于图2所示的内部配置。
参照图2,存储器装置150可以包括能够将至少一些电压供应到存储块152、154、156中的电压供应电路170。电压供应电路170可以将读取电压Vrd、编程电压Vprog、通过电压Vpass或擦除电压Vers供应到存储块中包括的非易失性存储器单元中。例如,在用于读取存储块152、154、156中包括的非易失性存储器单元中存储的数据的读取操作期间,电压供应电路170可以将读取电压Vrd供应到所选择的非易失性存储器单元中。在将数据存储在存储块152、154、156中包括的非易失性存储器单元中的编程操作期间,电压供应电路170可以将编程电压Vprog供应到所选择的非易失性存储器单元中。而且,在对所选择的非易失性存储器单元执行的读取操作或编程操作期间,电压供应电路170可以将通过电压Vpass供应到所选择的非易失性存储器单元中。在擦除存储块152、154、156中包括的非易失性存储器单元中存储的数据的擦除操作期间,电压供应电路170可以将擦除电压Vers供应到存储块中。
存储器装置150可以存储关于基于执行哪种操作而向存储块152、154、156供应的各种电压的信息。例如,当存储块152、154、156中的非易失性存储器单元可以存储多位数据时,可能需要用于识别或读取多位数据条目的读取电压Vrd的多个电平。存储器装置150可以包括表,该表包括与对应于多位数据条目的多个电平的读取电压Vrd相对应的信息。例如,该表可以包括寄存器中存储的偏置值,每个偏置值对应于读取电压Vrd的特定电平。用于读取操作的读取电压Vrd的偏置值的数量可以限于预设范围。而且,可以对偏置值进行量化。
主机102可以包括便携式电子装置,例如移动电话、MP3播放器、膝上型计算机等,或者非便携式电子装置,例如台式计算机、游戏机、电视TV、投影仪等。
主机102还可以包括至少一个操作系统(OS),可以控制在主机102中执行的功能和操作。OS可以提供与存储器系统110可操作地接合的主机102与旨在将数据存储在存储器系统110中的用户之间的互操作性。OS可以支持与用户的请求相对应的功能和操作。作为示例而非限制,根据主机102的移动性,OS可以被分类为通用操作系统和移动操作系统。根据系统要求或用户环境,通用操作系统可以分为个人操作系统和企业操作系统。与个人操作系统相比,企业操作系统可以专门用于确保和支持高性能计算。
移动操作系统可以用于支持针对移动性的服务或功能,例如省电功能。主机102可以包括多个操作系统。主机102可以运行与存储器系统110联结的与用户的请求相对应的多个操作系统。主机102可以将与用户的请求相对应的多个命令发送到存储器系统110,从而执行与存储器系统110内的多个命令相对应的操作。
存储器系统110中的控制器130可以响应于从主机102输入的请求或命令而控制存储器装置150。例如,控制器130可以执行读取操作以向主机102提供从存储器装置150读取的数据,并且可以执行写入操作(或编程操作)以将从主机102输入的数据存储在存储器装置150中。为了执行数据输入/输出(I/O)操作,控制器130可以控制和管理读取数据、对数据进行编程、擦除数据等的内部操作。
根据实施例,控制器130可以包括主机接口132、处理器134、错误校正电路138、电源管理单元(PMU)140、存储器接口142和存储器144。关于存储器系统110,如图2所示的控制器130中包括的组件可以根据结构、功能、操作性能等变化。
例如,根据主机接口的协议,存储器系统110可以用可以与主机102电联接的各种类型的存储装置中的任意一种来实现。适用的存储装置的非限制性示例包括固态驱动器(SSD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、缩小尺寸的MMC(RS-MMC)、微型MMC、安全数字(SD)卡、迷你SD、微型SD、通用串行总线(USB)存储装置、通用闪存(UFS)装置、紧凑型闪存(CF)卡、智能媒体(SM)卡、记忆棒等。根据存储器系统110的实现,可以向控制器130添加或从控制器130省略这些组件。
主机102和存储器系统110均可以包括控制器或用于根据一个或多个预定协议来发送和接收信号、数据等的接口。例如,存储器系统110中的主机接口132可以包括能够将信号、数据等发送到主机102或者从主机102接收信号、数据等的设备。
控制器130中包括的主机接口132可以经由总线接收从主机102输入的信号、命令(或请求)和/或数据。例如,主机102和存储器系统110可以使用用于数据通信的一组预定的规则或规程或者预设接口以在它们之间发送和接收数据。主机102和存储器系统110支持的用于发送和接收数据的数据通信标准或接口的多组规则或规程的示例包括通用串行总线(USB)、多媒体卡(MMC)、并行高级技术附件(PATA)、小型计算机系统接口(SCSI)、增强型小磁盘接口(ESDI)、电子集成驱动器(IDE)、高速外围组件互连(PCIe或PCI-e)、串列SCSI(SAS)、串行高级技术附件(SATA)、移动工业处理器接口(MIPI)等。根据实施例,主机接口132是用于与主机102交换数据的一种层,并且由称为主机接口层(HIL)的固件来驱动或用称为主机接口层(HIL)的固件来实现。根据实施例,主机接口132可以包括命令队列。
电子集成驱动器(IDE)或高级技术附件(ATA)可以用作发送和接收数据的接口中的一种,并且,例如,可以使用包括并行连接的40根导线的电缆,以支持主机102与存储器系统110之间的数据发送和数据接收。当多个存储器系统110连接到单个主机102时,多个存储器系统110可以通过使用多个存储器系统110连接到的位置或拨码开关而划分为主控和从属。设置为主控的存储器系统110可以用作主存储器装置。IDE(ATA)可以包括,例如,快速ATA、ATAPI和增强型IDE(EIDE)。
串行高级技术附件(SATA)接口是一种与电子集成驱动器(IDE)装置使用的并行数据通信接口的各种ATA标准兼容的串行数据通信接口。可以将IDE接口中的40根导线减少到SATA接口中的六根导线。例如,IDE的40个并行信号可以被转换为SATA接口的6个串行信号。SATA接口由于其更快的数据发送和接收速率以及其用于数据发送和接收的在主机102中的更少的资源消耗已被广泛使用。SATA接口可以将多达30个外部装置连接到主机102中包括的单个收发器。另外,SATA接口可以支持热插拔,即使在主机102和另一装置之间的数据通信正在运行时,该热插拔也允许外部装置附接到主机102或从主机102拆卸。因此,即使当主机102通电时,存储器系统110也可以像由通用串行总线(USB)支持的装置那样作为额外的装置被连接或被断开。例如,在具有eSATA端口的主机102中,存储器系统110可以像外部硬盘那样自由地被附接到主机102或从主机102拆卸。
小型计算机系统接口(SCSI)是一种用于连接计算机或服务器与其它外围装置的串行数据通信接口。与诸如IDE和SATA的其它接口相比,SCSI可以提供较高的传输速度。在SCSI中,主机102和至少一个外围装置(例如,存储器系统110)串联连接,但是可以通过并行数据通信来执行主机102与每个外围装置之间的数据发送和接收。在SCSI中,很容易将诸如存储器系统110的装置连接到主机102或从主机102断开连接。SCSI可以支持将15个其它装置连接到主机102中包括的单个收发器。
串列SCSI(SAS)可以被理解为SCSI的串行数据通信版本。在SAS中,主机102和多个外围装置串联连接,并且可以以串行数据通信方案来执行主机102与每个外围装置之间的数据发送和接收。SAS可以通过串行电缆而不是并行电缆来支持主机102与外围装置之间的连接,以使用SAS容易地管理装备并且增强或提高操作可靠性和通信性能。SAS可以支持将八个外部装置连接到主机102中包括的单个收发器。
高速非易失性存储器(NVMe)是一种至少基于高速外围组件互连(PCIe)的接口,该高速外围组件互连(PCIe)被设计以提高配备有非易失性存储器系统110的主机102、服务器、计算装置等的性能和设计灵活性。PCIe可以使用插槽或特定电缆来连接计算装置(例如,主机102)和外围装置(例如,存储器系统110)。例如,PCIe可以使用多个引脚(例如,18个引脚、32个引脚、49个引脚、82个引脚等)和至少一根导线(例如,x1、x4、x8或x16)以实现超过每秒几百MB(例如,250MB/s、500MB/s、984.6250MB/s或1969MB/s)的高速数据通信。根据实施例,PCIe方案可以实现每秒数十到数千兆比特的带宽。NVMe可以支持诸如SSD的存储器系统110的比硬盘更快的操作速度。
根据实施例,主机102和存储器系统110可以通过通用串行总线(USB)来连接。通用串行总线(USB)是一种可扩展的、可热插的即插即用的串行接口,该串行接口可以在主机102与外围装置(诸如键盘、鼠标、操纵杆、打印机、扫描仪、存储装置、调制解调器、摄像机等)之间提供经济有效的标准连接。多个诸如存储器系统110的外围装置可以联接到主机102中包括的单个收发器。
参照图2,错误校正电路138可以校正从存储器装置150读取的数据的错误位,并且可以包括错误校正码(ECC)编码器和ECC解码器。ECC编码器可以对待编程到存储器装置150的数据执行错误校正编码,以生成添加了校验位的经编码的数据,并且将经编码的数据存储在存储器装置150中。当控制器130读取存储器装置150中存储的数据时,ECC解码器可以检测并且校正从存储器装置150读取的数据中包含的错误位。例如,在对从存储器装置150读取的数据执行错误校正解码之后,错误校正电路138确定错误校正解码成功还是没成功,并且基于错误校正解码的结果来输出指令信号,例如校正成功信号或校正失败信号。错误校正电路138可以使用在ECC编码过程期间已经为存储器装置150中存储的数据生成的校验位,以校正读取的数据条目的错误位。当错误位的数量大于或等于可校正的错误位的数量时,错误校正电路138可以不校正错误位,而是可以输出指示校正错误位失败的校正失败信号。
根据实施例,错误校正电路138可以基于诸如低密度奇偶校验(LDPC)码、博斯-查德胡里-霍昆格姆(Bose-Chaudhuri-Hocquenghem,BCH)码、turbo码、里德-所罗门(Reed-Solomon,RS)码、卷积码、递归系统码(RSC)、网格编码调制(TCM)或分组编码调制(BCM)等来执行错误校正操作。错误校正电路138可以包括用于基于上述代码中的至少一种来执行错误校正操作的所有电路、模块、系统和/或装置。
例如,ECC解码器可以对从存储器装置150发送的数据执行硬判决解码或软判决解码。硬判决解码可以被理解为为错误校正而概括地分类的两种方法中的一种。硬判决解码可以包括通过从存储器装置150中的非易失性存储器单元读取数字数据“0”或“1”来校正错误位的操作。由于硬判决解码处理二进制逻辑信号,因此电路/算法设计或配置可以比软判决解码更简单,并且处理速度可以比软判决解码更快。
软判决解码可以通过两个或更多个量化值,例如多位数据、近似值、模拟值等,来量化存储器装置150中的非易失性存储器单元的阈值电压,以基于两个或更多个量化值来校正错误位。控制器130可以从存储器装置150中的多个非易失性存储器单元接收两个或更多个字母或量化值,然后基于通过将量化值表征为诸如条件概率或似然的信息的组合而生成的信息来执行解码。
根据实施例,ECC解码器可以使用为软判决解码设计的方法之中的低密度奇偶校验码和生成器矩阵(low-density parity-check andgenerator matrix,LDPC-GM)码。低密度奇偶校验(LDPC)码根据可靠性在若干位中使用可以从存储器装置150中读取数据的值的算法,而不是像硬判决解码那样简单地使用数据1或0,并且通过消息交换来迭代地重复以提高值的可靠性。然后,将值最终确定为数据1或0。例如,使用LDPC码的解码算法可以被理解为概率解码。在硬判决解码中,从非易失性存储器单元输出的值被解码为0或1。与硬判决解码相比,软判决解码可以基于随机信息来确定非易失性存储器单元中存储的值。关于可以被认为是在存储器装置150中可以出现的错误的位翻转,软判决解码可以提供校正错误和恢复数据的改进的概率,以及提供经校正的数据的可靠性和稳定性。LDPC-GM码可以具有内部LDGM码可以与高速LDPC码串联连结的方案。
根据实施例,ECC解码器可以使用,例如,低密度奇偶校验卷积码(LDPC-CC)来进行软判决解码。LDPC-CC可以具有基于可变块长度和移位寄存器使用线性时间编码和流水解码的方案。
根据实施例,ECC解码器可以使用例如对数似然比Turbo码(LLR-TC)来进行软判决解码。可以将对数似然比(LLR)作为采样值与理想值之间的距离的非线性函数进行计算。另外,Turbo码(TC)可以包括二维或三维的简单码,例如汉明码,并且在行方向和列方向上重复解码以提高值的可靠性。
电源管理单元(PMU)140可以控制提供给控制器130的电力。PMU140可以监测供应给存储器系统110的电力,例如供应给控制器130的电压,并且向控制器130中包括的组件提供电力。PMU 140不仅可以检测通电或断电,还可以在供应给存储器系统110的电力不稳定时生成触发信号以使存储器系统110紧急备份当前状态。根据实施例,PMU 140可以包括能够累积可以在紧急情况下使用的电力的装置或组件。
存储器接口142可以用作用于处理在控制器130和存储器装置150之间传输的命令和数据的接口,以允许控制器130响应于从主机102输入的命令或请求而控制存储器装置150。在存储器装置150是闪速存储器时的情况下,存储器接口142可以生成针对存储器装置150的控制信号,并且可以在处理器134的控制下处理输入到存储器装置150或从存储器装置150输出的数据。
例如,当存储器装置150包括NAND闪速存储器时,存储器接口142包括NAND闪存控制器(NFC)。存储器接口142可以提供用于处理控制器130和存储器装置150之间的命令和数据的接口。根据实施例,存储器接口142可以通过称为闪存接口层(FIL)的固件来实现或由称为闪存接口层(FIL)的固件驱动以与存储器装置150交换数据。
根据实施例,存储器接口142可以支持开放的NAND闪存接口(ONFi)、切换模式等以用于与存储器装置150的数据输入/输出。例如,ONFi可以使用包括至少一条信号线的数据路径(例如,通道、通路等),该至少一条信号线能够以8位或16位数据为单位支持双向发送和接收。控制器130与存储器装置150之间的数据通信可以通过关于异步单倍数据速率(SDR)、同步双倍数据速率(DDR)、切换双倍数据速率(DDR)等的至少一个接口来实施。
存储器144在为在存储器系统110和控制器130中执行的操作临时存储交易数据时,可以用作存储器系统110或控制器130的工作存储器。例如,在将读取的数据条目输出到主机102之前,存储器144可以响应于来自主机102的读取请求而临时存储从存储器装置150输出的读取的数据条目。另外,在将写入数据条目编程到存储器装置150中之前,控制器130可以将从主机102输入的写入数据条目临时存储在存储器144中。当控制器130控制存储器装置150的诸如数据读取操作、数据写入或编程操作、数据擦除操作等的操作时,在存储器系统110的控制器130和存储器装置150之间传输的数据可以临时存储在存储器144中。
除了读取的数据条目或写入数据条目之外,存储器144可以存储用于在主机102和存储器装置150之间输入或输出数据的信息,例如映射数据、读取请求、编程请求等。根据实施例,存储器144可以包括命令队列、程序存储器、数据存储器、写入缓冲器/高速缓存、读取缓冲器/高速缓存、数据缓冲器/高速缓存、映射缓冲器/高速缓存等中的一个或多个。控制器130可以为被建立以执行数据输入/输出操作的组件在存储器144中分配一些存储空间。例如,在存储器144中建立的写入缓冲器可以用于临时存储受制于编程操作的目标数据。
在实施例中,存储器144可以用易失性存储器来实现。例如,存储器144可以用静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)或两者来实现。尽管图2示出,例如,存储器144设置在控制器130内,但是实施例不限于此。存储器144可以位于控制器130内或外部。例如,存储器144可以由具有存储器接口的外部易失性存储器来实现,该存储器接口在存储器144和控制器130之间传送数据和/或信号。
处理器134可以控制存储器系统110的全部操作。例如,处理器134可以响应于从主机102输入的写入请求或读取请求而控制存储器装置150的编程操作或读取操作。根据实施例,处理器134可以运行固件以控制存储器系统110中的编程操作或读取操作。在本文中,固件可以被称为闪存转换层(FTL)。稍后将参照图3和图4详细描述FTL的示例。根据实施例,处理器134可以用微处理器、中央处理单元(CPU)等来实现。
根据实施例,存储器系统110可以用至少一个多核处理器来实现。多核处理器是集成两个或多个内核的一种电路或芯片,两个或多个内核被认为是不同的处理区域。例如,当多核处理器中的多个内核独立地驱动或运行多个闪存转换层(FTL)时,可以提高存储器系统110的数据输入/输出速度(或性能)。根据实施例,可以通过多核处理器中的不同内核来独立地执行存储器系统110中的数据输入/输出(I/O)操作。
控制器130中的处理器134可以执行与从主机102输入的请求或命令相对应的操作。进一步,存储器系统110可以独立于从主机102输入的命令或请求执行操作。在一种情况下,由控制器130响应于从主机102输入的请求或命令而执行的操作可以被认为是前台操作,而由控制器130独立于从主机102输入的请求或命令执行的操作可以被认为是后台操作。控制器130可以执行用于在存储器装置150中读取、写入或擦除数据的前台操作或后台操作。另外,与作为从主机102发送的设置命令的设置参数命令或设置特征命令相对应的参数设置操作可以被认为是前台操作。可以由控制器130在没有从主机102发送的命令的情况下执行的后台操作包括垃圾收集(GC)、损耗均衡(WL)、用于识别和处理坏块的坏块管理等。
根据实施例,基本相似的操作可以作为前台操作和后台操作两者执行。例如,当存储器系统110响应于从主机102输入的请求或命令而执行垃圾收集(例如,手动GC)时,垃圾收集可以被认为是前台操作。当存储器系统110独立于主机102执行垃圾收集(例如,自动GC)时,垃圾收集可以被认为是后台操作。
当存储器装置150包括均包括非易失性存储器单元的多个管芯(或多个芯片)时,控制器130可以执行关于从主机102输入的多个请求或命令的并行处理,以提高存储器系统110的性能。例如,所发送的请求或命令可以被划分为多个组,多个组包括存储器装置150中包括的多个平面、多个管芯或多个芯片中的至少一些,并且在每个平面、每个芯片或每个芯片中单独或并行处理多组请求或命令。
控制器130中的存储器接口142可以通过至少一个通道和至少一个通路来连接到存储器装置150中的多个管芯或芯片。当控制器130响应于与包括非易失性存储器单元的多个页面相关联的请求或命令而通过每个通道或每个通路来将数据分配和存储在多个管芯中时,可以在多个管芯或平面中同时或并行执行与该请求或命令相对应的多个操作。这种处理方法或方案可以被认为是交错法。由于存储器系统110的数据输入/输出速度通过以交错法操作而增加,因此可以提高存储器系统110的数据I/O性能。
作为示例而非限制,控制器130可以识别与存储器装置150中包括的多个存储器管芯相关联的多个通道(或通路)的状态。控制器130可以将每个通道或每个通路的状态确定为忙碌状态、就绪状态、活动状态、空闲状态、正常状态和/或异常状态中的一种。确定由控制器通过哪个通道或通路传递指令(和/或数据)可以与物理块地址相关联。控制器130可以参考从存储器装置150传递的描述符。描述符可以包括描述关于存储器装置150的参数的块或页面。描述符可以具有预定的格式或结构。例如,描述符可以包括装置描述符、配置描述符、单元描述符等。控制器130可以参考或使用描述符来确定哪个(或些)通道或通路用于交换指令或数据。
参照图2所示,存储器系统110中的存储器装置150可以包括多个存储块152、154、156。多个存储块152、154、156中的每一个包括多个非易失性存储器单元。根据实施例,存储块152、154、156可以是一起擦除的一组非易失性存储器单元。存储块152、154、156可以包括多个页面,该多个页面是一起读取或编程的一组非易失性存储器单元。
在实施例中,每个存储块152、154或156可以具有高集成度的三维堆叠结构。进一步,存储器装置150可以包括多个管芯,每个管芯包括多个平面,每个平面包括多个存储块152、154、156。存储器装置150的配置可以根据存储器系统110的性能而改变。
图2示出包括存储器装置150多个存储块152、154和156。根据可以存储在一个存储器单元中的位的数量,多个存储块152、154、156可以是单层单元(SLC)存储块、多层单元(MLC)存储块等中的任意一个。SLC存储块包括由存储器单元实现的多个页面,每个存储器单元存储一位数据。SLC存储块可以具有比MLC存储块更高的数据I/O操作性能和更高的耐久性。MLC存储块包括由存储器单元实现的多个页面,每个存储器单元存储多位数据,例如两位或更多位数据。与SLC存储块相比,对于同一空间,MLC存储块可以具有更大的存储容量。从存储容量的角度来看,MLC存储块可以高度集成。
在实施例中,存储器装置150可以用诸如双层单元(DLC)存储块、三层单元(TLC)存储块、四层单元(QLC)存储块或其组合的MLC存储块来实现。DLC存储块可以包括由存储器单元实现的多个页面,每个存储器单元能够存储2位数据。TLC存储块可以包括由存储器单元实现的多个页面,每个存储器单元能够存储3位数据。QLC存储块可以包括由存储器单元实现的多个页面,每个存储器单元能够存储4位数据。在另一实施例中,存储器装置150可以用包括由存储器单元实现的多个页面的块来实现,每个存储器单元能够存储五位或更多位数据。
根据实施例,控制器130可以将存储器装置150中包括的MLC存储块用作将一位数据存储在一个存储器单元中的SLC存储块。多层单元(MLC)存储块的数据输入/输出速度可以比SLC存储块的更慢。也就是说,当将MLC存储块用作SLC存储块时,可以减少读取或编程操作的裕量。例如,当MLC存储块用作SLC存储块时,控制器130可以以更高的速度执行数据输入/输出操作。因此,控制器130可以将MLC存储块用作SLC缓冲器来临时存储数据,因为缓冲器可能需要较高的数据输入/输出速度以提高存储器系统110的性能。
进一步,根据实施例,控制器130可以将数据多次编程到MLC中而不对存储器装置150中包括的特定MLC存储块执行擦除操作。通常,非易失性存储器单元不支持数据重写。然而,控制器130可以使用MLC能够存储多位数据的特征将1位数据多次编程到MLC中。对于MLC重写操作,当将1位数据编程到MLC中时,控制器130可以将编程次数作为单独的操作信息来存储。根据实施例,在将另一个1位数据编程到均存储了1位数据的相同的MLC中之前,可以执行用于均匀地均衡MLC的阈值电压的操作。
在实施例中,存储器装置150被实现为非易失性存储器,诸如闪速存储器,例如,NAND闪速存储器、NOR闪速存储器等。在另一实施例中,存储器装置150可以由相变随机存取存储器(PCRAM)、铁电随机存取存储器(FRAM)、自旋转移力矩随机存取存储器(STT-RAM)和自旋转移力矩磁性随机存取存储器(STT-MRAM)等中的至少一种来实现。
参照图3,存储器系统中的控制器130与主机102和存储器装置150一起操作。如图所示,控制器130包括主机接口132、闪存转换层(FTL)240、存储器接口142以及预先参照图2识别的存储器144。
根据实施例,闪存转换层(FTL)240中可以包括图2所示的错误校正电路138。在另一实施例中,错误校正电路138可以被实现为单独的模块、电路、固件等,控制器130中包括错误校正电路138或者错误校正电路138与控制器130相关联。
主机接口132可以处理从主机102发送的命令、数据等。作为示例而非限制,主机接口132可以包括命令队列56、缓冲器管理器52和事件队列54。命令队列56可以依次存储从主机102接收的命令、数据等,并且将它们例如按照它们存储在命令队列56中的顺序输出到缓冲器管理器52。缓冲器管理器52可以对从命令队列56接收的命令、数据等进行分类、管理或调整。事件队列54可以顺序地发送事件以处理从缓冲器管理器52接收的命令、数据等。
可以从主机102发送同一特性的多个命令或数据,或者不同特性的多个命令和数据在被主机102混合或混杂之后可以被发送到存储器系统110。例如,可以传递用于读取数据的多个命令即读取命令,或者可以将用于读取数据的命令即读取命令以及用于对数据进行编程/写入数据的命令即写入命令交替地发送到存储器系统110。主机接口132可以将从主机102发送的命令、数据等依次存储在命令队列56中。之后,主机接口132可以根据已经从主机102发送的命令、数据等的特性来估计或预测控制器130将执行什么类型的内部操作。主机接口132可以基于命令、数据等的特性来确定它们的处理顺序和优先级。
根据从主机102发送的命令、数据等的特性,主机接口132中的缓冲器管理器52被配置为确定缓冲器管理器是否应该将命令、数据等存储在存储器144中,或者缓冲器管理器52是否应该将命令、数据等传递到闪存转换层(FTL)240。事件队列54接收从缓冲器管理器52发送的事件,这些事件将由存储器系统110或控制器130响应于命令、数据等而在内部运行和处理,并且事件队列54将这些事件按事件输入到事件队列54的顺序传送到闪存转换层(FTL)240。
根据实施例,图3所示的闪存转换层(FTL)240可以实施多线程方案以执行数据输入/输出(I/O)操作。多线程FTL可以通过控制器130中包括的使用多线程方案的多核处理器来实施。
根据实施例,闪存转换层(FTL)240可以包括主机请求管理器(HRM)46、映射管理器(MM)44、状态管理器42和块管理器48。主机请求管理器(HRM)46可以管理从事件队列54发送的事件。映射管理器(MM)44可以处理或控制映射数据。状态管理器42可以执行垃圾收集(GC)或损耗均衡(WL)。块管理器48可以在存储器装置150中的块上运行命令或指令。
作为示例而非限制,主机请求管理器(HRM)46可以使用映射管理器(MM)44和块管理器48来处理根据读取命令和编程命令的请求以及从主机接口132传递的事件。主机请求管理器(HRM)46可以将查询请求发送到映射管理器(MM)44以确定对应于与事件一起输入的逻辑地址的物理地址。主机请求管理器(HRM)46可以将读取请求和物理地址发送到存储器接口142,以处理读取请求即处理事件。在一个实施例中,主机请求管理器(HRM)46可以将编程请求(或写入请求)发送到块管理器48,以将数据编程到存储器装置150中没有存储数据的特定空页面,然后可以将与编程请求相对应的映射更新请求发送到映射管理器(MM)44,以更新与使逻辑地址和物理地址相互映射的信息中的经编程的数据有关的项。
块管理器48可以将从主机请求管理器(HRM)46、映射管理器(MM)44和/或状态管理器42传递的编程请求转换为用于存储器装置150的闪存编程请求,以管理存储器装置150中的闪存块。为了使存储器系统110的编程性能或写入性能最大化或者增强存储器系统110的编程性能或写入性能,块管理器48可以收集编程请求并且将针对多平面和单次编程操作的闪存编程请求发送到存储器接口142。在实施例中,块管理器48将若干闪存编程请求发送到存储器接口142,以增强多通道和多方向的闪存控制器的并行处理或者使多通道和多方向的闪存控制器的并行处理最大化。
在实施例中,块管理器48可以根据有效页面的数量来管理存储器装置150中的块,当需要空闲块时选择并且擦除没有有效页面的块,并且当确定待执行垃圾收集时选择包括最少数量的有效页面的块。状态管理器42可以执行垃圾收集以将所选择的块中存储的有效数据移动到空块并且擦除所选择的块中存储的数据,使得存储器装置150可以具有足够的空闲块(即,没有数据的空块)。当块管理器48向状态管理器42提供关于待被擦除的块的信息时,状态管理器42可以检查待被擦除的块的所有闪存页面以确定块的每个页面是否有效。
例如,为了确定每个页面的有效性,状态管理器42可以识别每个页面的带外(OOB)区域中记录的逻辑地址。为了确定每个页面是否有效,状态管理器42可以将页面的物理地址与映射到从查询请求获得的逻辑地址的物理地址进行比较。状态管理器42针对每个有效页面将编程请求发送到块管理器48。当完成编程操作时,可以通过映射管理器44来更新映射表。
映射管理器44可以管理映射数据,例如逻辑-物理映射表。映射管理器44可以处理各种请求,例如,由主机请求管理器(HRM)46或状态管理器42生成的查询、更新等。映射管理器44可以将整个映射表存储在存储器装置150,例如闪存/非易失性存储器中,并且根据存储器144的存储容量来高速缓存映射条目。当在处理查询或更新请求的同时发生映射高速缓存未命中时,映射管理器44可以将读取请求发送到存储器接口142以加载存储器装置150中存储的相关映射表。当映射管理器44中的脏高速缓存块的数量超过某一阈值时,可以将编程请求发送到块管理器48,从而形成干净的高速缓存块并且脏映射表可以存储在存储器装置150中。
当执行垃圾收集时,状态管理器42将有效页面复制到空闲块,并且主机请求管理器(HRM)46可以针对页面的相同逻辑地址编程数据的最新版本并且同时发布更新请求。当状态管理器42在未正常完成有效页面的复制的状态下请求映射更新时,映射管理器44不会执行映射表更新。这是因为当状态管理器42请求映射更新并且稍后完成有效页面复制时,映射请求是用旧物理信息发布的。当最新映射表仍指向旧物理地址或者仅最新映射表仍指向旧物理地址时,映射管理器44可以执行映射更新操作以确保准确性。
图4示出根据本公开的实施例的图1至图3所示的控制器的内部配置。
参照图4,控制器130中的闪存转换层(FTL)240可以被划分为三层:地址转换层ATL;虚拟闪存层VFL;以及闪存接口层FIL。
例如,地址转换层ATL可以将从文件系统发送的逻辑地址LA转换为逻辑页面地址。地址转换层ATL可以执行关于逻辑地址空间的地址转换过程。也就是说,地址转换层ATL可以基于将闪速存储器的逻辑页面地址LPA映射到从主机发送的逻辑地址LA的映射信息来执行地址转换过程。这种逻辑到逻辑地址映射信息(以下称为L2L映射)可以存储在存储器装置150中元数据被存储的区域中。
虚拟闪存层VFL可以将由地址转换层ATL映射的逻辑页面地址LPA转换为虚拟页面地址VPA。这里,虚拟页面地址VPA可以对应于虚拟存储器装置的物理地址。也就是说,虚拟页面地址VPA可以对应于存储器装置150中的存储块152、154、156。如果在存储器装置150中的存储块152、154、156之中存在坏块,则虚拟闪存层VFL可以排除该坏块。另外,虚拟闪存层VFL可以包括恢复算法,用于扫描扫描区域以恢复存储器装置150中存储的逻辑到虚拟地址映射信息(L2V映射)和用于存储用户数据的数据区域中的映射信息。恢复算法能够恢复逻辑到虚拟地址映射信息(L2V映射)。基于通过恢复算法而恢复的逻辑到虚拟地址映射信息(L2V映射),虚拟闪存层VFL可以执行关于虚拟地址空间的地址转换过程。
闪存接口层FIL可以将虚拟闪存层VFL的虚拟页面地址转换为存储器装置150的物理页面地址。闪存接口层FIL执行与存储器装置150接口的低等级操作。例如,闪存接口层FIL可以包括用于控制存储器装置150的硬件的低等级驱动程序、用于检查和校正从存储器装置150发送的数据中的错误的错误校正码(ECC)以及用于执行诸如坏块管理(BBM)的模块。
图5示出根据本公开的实施例的存储器装置。具体地,图5示意性地示出根据本公开的实施例的存储器装置150中包括的存储器管芯或存储器平面中的存储器单元阵列电路。
参照图5,存储器装置150可以包括具有多个单元串340的至少一个存储器组330。每个单元串340可以包括连接到多条位线BL0到BLm-1中的相应位线的多个非易失性存储器单元MC0到MCn-1。单元串340设置在存储器组330的各个列中,并且每个单元串340可以包括至少一个漏极选择晶体管DST和至少一个源极选择晶体管SST。每个单元串340的非易失性存储器单元MC0至MCn-1可以串联连接在漏极选择晶体管DST和源极选择晶体管SST之间。非易失性存储器单元MC0至MCn-1中的每一个可以被配置为每个单元存储多位的数据条目的多层单元(MLC)。单元串340可以电连接到位线BL0至BLm-1中的相应位线。
在图5所示的实施例中,存储器组330可以包括NAND型闪速存储器单元MC0至MCn-1。在另一个实施例中,存储器组330可以被实施为NOR型闪速存储器、混合或组合至少两种不同类型的存储器单元的混合闪速存储器或者控制器嵌入单个存储器芯片中的单芯片NAND闪速存储器。在实施例中,存储器组330可以包括闪速存储器单元,该闪速存储器单元包括电荷撷取闪存(CTF)层,该CTF层包括导电浮栅或绝缘层。
图5示出可以包括存储器装置150的存储器系统110的实施例。在该实施例中,存储器装置150中的存储器组330可以包括一个或多个存储块152、154、156。根据实施例,存储器装置150可以具有二维(2D)或三维(3D)结构。例如,存储器装置150中的存储块152、154、156中的每一个可以被实施为3D结构或垂直结构。存储块152、154、156中的每一个可以具有沿第一至第三方向,例如x轴方向、y轴方向和z轴方向延伸的三维结构。
包括多个存储块152、154、156的存储器组330可以连联接到多条位线BL、多条串选择线SSL、多条漏极选择线DSL、多条字线WL、多条虚拟字线DWL和多条公共源极线CSL。在实施例中,存储器组330可以包括例如可以分别对应于单元串340的多个NAND串NS。每个NAND串NS可以包括多个存储器单元MC并且可以连接到位线BL中的相应位线。另外,每个NAND串NS的串选择晶体管SST可以连接到公共源极线CSL,并且每个NAND串NS的漏极选择晶体管DST可以连接到相应的位线BL。在每个NAND串NS中,存储器单元MC可以布置在串选择晶体管SST和漏极选择晶体管DST之间。
参照图5,存储器装置150可以包括电压供应电路170,电压供应电路170可以根据操作模式为各条字线供应字线电压,例如一个或多个预定电压,诸如编程电压、读取电压和通过电压,或者可以向形成包括存储器单元MC的每个存储块的块体(例如,阱区)供应电压。在这种情况下,可以在控制电路180的控制下执行电压供应电路170的电压生成操作。而且,电压供应电路170可以生成多个可变读取电压以将多个数据条目彼此区分开。可以将多个可变读取电压施加到存储器组330中的非易失性存储器单元。
响应于控制电路的控制,可以选择存储器单元阵列的存储块(或扇区)中的一个,并且可以选择所选择的存储块的字线中的一条。可以分别将字线电压提供给所选择的字线和未选择的字线。电压供应电路170可以包括用于生成具有各种电平的目标电压的电压生成电路(例如,参见图6至图8)。
在实施例中,电压供应电路170可以联接到接收从外部(例如,外部装置)施加的第一电源电压VCC的第一引脚或焊盘以及接收从外部装置施加的第二电源电压VPP的第二引脚或焊盘。第二电源电压VPP可以具有更高的电压电平,例如,比第一电源电压VCC的电压电平高两倍或更多。例如,第一电源电压VCC可以具有2.0V至5.5V的电压电平,而第二电源电压可以具有9V至13V的电压电平。
根据实施例,电压供应电路170可以包括用于更快速地生成在存储器组330中使用的各种电平的目标电压的电压生成电路。电压生成电路可以使用第二电源电压VPP来生成可以具有比第二电源电压VPP更高的电压电平的目标电压。
存储器装置150还可以包括由控制电路180控制的读取/写入电路320。读取/写入电路320可以根据操作模式作为读出放大器或写入驱动器操作。例如,在验证操作和读取操作中,读取/写入电路320可以作为用于从存储器单元阵列读取数据条目的读出放大器操作。在编程操作中,读取/写入电路320可以作为写入驱动器来操作,该写入驱动器根据待存储在存储器单元阵列中的数据来控制位线的电位。读取/写入电路320可以在编程操作期间从页面缓冲器接收待编程到单元阵列的数据条目。读取/写入电路320可以基于输入数据条目来驱动位线。为此,读取/写入电路320可以包括多个页面缓冲器(PB)322、324、326,每个页面缓冲器对应于每一列(或每条位线)或每一列对(或每一位线对)。根据实施例,页面缓冲器322、324、326中的每一个中可以包括多个锁存器。
页面缓冲器322、324、326可以通过多条总线BUS联接到数据输入/输出装置(例如,串行化电路或串行器)。当页面缓冲器322、324、326中的每一个通过不同的总线联接到数据输入/输出装置时,可以减少从页面缓冲器322、324、326发送数据时可能发生的延迟。例如,每个页面缓冲器322、324、326可以执行数据发送而无需等待。根据实施例,输入/输出装置可以包括在参照图6描述的输入/输出控制电路(未示出)中。进一步,参照图5描述的页面缓冲器322、324、326可以包括参照图6描述的数据寄存器(未示出)。
根据实施例,存储器装置150可以接收写入命令、写入数据条目和关于待存储写入数据条目的位置的信息(例如,物理地址)。控制电路180使电压供应电路170生成用于响应于写入命令执行的编程操作的编程脉冲、通过电压等,并生成用于在编程操作之后执行的验证操作的一个或多个电压。
当将多位数据条目编程到存储器组330中包括的非易失性存储器单元时,错误率可能高于将单位数据条目存储在非易失性存储器单元中时的错误率。例如,非易失性存储器单元中的错误可能是由于单元间干扰(CCI)而引起的。为了减少非易失性存储器单元中的错误,应减小与非易失性存储器单元之间存储的数据条目相对应的阈值电压分布的宽度(偏差)。
为此,存储器装置150可以执行增量阶跃脉冲编程(ISPP)操作以有效地使非易失性存储器单元的阈值电压分布窄。在实施例中,存储器装置150可以针对多步编程操作使用ISPP操作。例如,存储器装置150可以根据非易失性存储器单元或页面之间的预定顺序,将编程操作分为最低有效位(LSB)编程操作和最高有效位(MSB)操作。
图6示出根据本公开的实施例的将多位数据编程到非易失性存储器单元的第一示例。图6示出用于将2位数据编程到非易失性存储器单元的两步编程操作。
参照图6,在数据编程操作之前,非易失性存储器单元可以具有与擦除状态相对应的阈值电压。当执行第一步编程操作时,LSB数据可以被编程到非易失性存储器单元中。此后,当执行第二步编程操作时,MSB数据可以被编程到非易失性存储器单元中。通过第一步编程操作和第二步编程操作,非易失性存储器单元的阈值电压可以属于四种不同状态ER、P1、P2、P3中的一种。非易失性存储器单元的四种不同阈值电压状态ER、P1、P2、P3可以对应于不同的2位数据'11'、'01'、'00'、'10'。
由于诸如资源限制、中断或延迟、电源问题等各种原因,存储器装置150可能需要很长时间来将多位数据编程到非易失性存储器单元。如参照图1和图6所描述的,当第一步编程操作完成时,存储器装置150可以通知控制器130LSB数据完成(LSB DATACOMPLETION)。此后,存储器装置150可以通过第二步编程操作将MSB数据编程到已经编程有LSB数据的非易失性存储器单元。当第二步编程操作完成时,存储器装置150可以向控制器130发送MSB数据的完成通知(MSB DATACOMPLETION)。
图7示出根据本公开的实施例的将多位数据编程到非易失性存储器单元的第二示例。图7示出用于将3位数据编程到非易失性存储器单元的三步编程操作。
在数据编程操作之前,非易失性存储器单元可以具有对应于图6所示的擦除状态的阈值电压。参照图7,当执行第一步编程操作时,LSB数据可以被编程到非易失性存储器单元。此后,当执行第二步编程操作时,可以将CSB数据编程到已经编程有LSB数据的非易失性存储器单元。此后,可以通过第三步编程操作将MSB数据编程到非易失性存储器单元。通过第一步编程操作至第三步编程操作,非易失性存储器单元的阈值电压可以属于八种不同的阈值电压状态。非易失性存储器单元的八个不同阈值电压状态对应于三位数据(例如,'111'、'011'、'101'、'001'、'110'、'010'、'100'、'000')。
通过三步编程操作,存储器装置150可能需要很长时间来存储多位数据。参照图1和图7,当第一步编程操作完成时,存储器装置150可以通知控制器130关于LSB数据的编程完成(LSB DATA COMPLETION)。此后,存储器装置150可以通过第二步编程操作对CSB数据进行编程。当第二步编程操作完成时,存储器装置150可以通知控制器130CSB数据的编程完成(CSB DATA COMPLETION)。此后,存储器装置150可以通过第三步编程操作对MSB数据进行编程。当第三步编程操作完成时,存储器装置150可以向控制器130提供MSB数据的完成通知(MSBDATA COMPLETION)。
尽管在图7中描述了通过三步编程操作将3位数据编程到非易失性存储器单元,但是根据实施例可以通过两步编程操作对3位数据进行编程。在通过两步编程操作对3位数据进行编程的情况下,存储器装置150可以在第一步编程之后向控制器130发送LSB数据的完成,并且在第二步编程之后向控制器130发送CSB数据和MSB数据的完成。
根据实施例,控制器130可以基于从存储器装置150传送的完成通知来删除或擦除数据缓冲器270(参照图1)中存储的写入数据中的一些。由此,存储器系统110可以增加内部资源的利用率。
参照图7,编程到非易失性存储器的3位数据可以包括LSB(最低有效位)数据、CSB(中央有效位)数据和MSB(最高有效位)数据,它们分别对应于低位、中位和高位。例如,控制器130可以在连接到单条字线的一组非易失性存储器单元中对三页面数据进行编程。三页面数据分别对应于每个非易失性存储器单元的低位、中位和高位。三页面数据可以包括LSB页面数据、CSB页面数据和MSB页面数据。
图8示出根据本公开的实施例的将多位数据编程到非易失性存储器单元的第三示例。图8示出用于将3位数据存储在非易失性存储器单元中的另一个三步编程操作。
参照图8,在数据编程操作之前,非易失性存储器单元可以具有与擦除状态相对应的阈值电压。存储器装置150可以基于非易失性存储器单元中存储的LSB数据执行部分编程操作。这里,部分编程操作可以包括用于通过施加大ISPP阶跃脉冲基于LSB数据大大增加非易失性存储器单元的阈值电压的二进制编程操作。在执行二进制编程操作之后,存储器装置150可以向控制器130提供LSB数据的完成通知(LSB DATACOMPLETION)。
在二进制编程操作之后,存储器装置150可以基于CSB和MSB数据对非易失性存储器单元进行编程。在此步骤中,可以基于小于二进制编程操作的ISPP阶跃脉冲的ISPP阶跃脉冲,例如,在更短时间内施加较低电平脉冲或施加相同电平脉冲,来增加非易失性存储器单元的阈值电压。这个过程可以称为模糊编程操作。此后,存储器装置150可以执行精细编程操作以使关于非易失性存储器单元的阈值电压分布的宽度变窄。精细编程操作可以使用比模糊编程操作的ISPP阶跃脉冲更小的ISPP阶跃脉冲。
与二进制编程操作或模糊编程操作不同,执行精细编程操作是为了使关于非易失性存储器单元的多个阈值电压分布的宽度变窄。在精细编程操作过程中,错误的可能性可能会增加。因此,即使在二进制编程操作和模糊编程操作完成之后,存储器装置150也可以将经编程的位数据(所有位值)存储在SLC缓冲器中。根据实施例,存储器装置150可以在模糊编程操作完成之后向控制器130通知模糊编程操作完成(FOGGY COMPLETION)。而且,在精细编程之后,存储器装置150将精细编程操作的完成通知(FINE COMPLETION)传送到控制器130。
如上所述,参照图6至图8,可以通过多步编程操作来执行将多位数据存储在存储器装置150中的过程,并且在每步编程操作完成时存储器装置150可以输出完成通知。控制器130可以基于从存储器装置150传送的完成通知来擦除或删除图1所示的数据缓冲器270中存储的数据。
根据实施例,可以类似于编程到第一非易失性单元区域292中的写入数据对参照图1描述的第二非易失性单元区域294中存储的标志进行编程。在多位数据存储在第一非易失性单元区域292中的情况下,控制器130可以通过图2所示的错误校正电路138来检测和校正错误。然而,标志是一种指示编程状态的信息,而不是通过基于错误校正码的错误校正机制处理的数据或信息。因此,错误校正电路138不检查或处理标志以检测和校正标志中包括的错误。
图9示出根据本公开的另一实施例的在存储器系统内执行的编程操作的第一示例。
参照图9,编程操作过程可以通过从外部装置(例如,图2至图3中所示的主机102)输入的写入命令和写入数据,或由控制器130执行的内部操作(例如,垃圾收集、损耗均衡、数据迁移等)开始(操作708)。
存储器装置150的第一非易失性单元区域292中包括的非易失性存储器单元可以存储多位数据。非易失性存储器单元中存储的多位数据可以按照LSB数据到MSB数据的顺序被编程。多位数据可以通过至少两步编程操作或与多位数据的位数相对应的多步编程操作存储在非易失性存储器单元中。
当编程操作开始时(操作708),存储器系统110可以对多位数据之中的至少一位数据执行步进编程操作(操作710)。这里,与至少一位数据相对应的步进编程操作可以包括对非易失性存储器单元中存储的LSB数据的编程操作。
在位数据被编程到第一非易失性单元区域292中的非易失性存储器单元之后(操作710),存储器系统110可以存储与经编程的位数据相对应的标志(操作712)。根据实施例,存储器系统110可以将标志信息存储在与第一非易失性单元区域292中的非易失性存储器单元相对应的第二非易失性单元区域294中。
存储器系统110可以继续分步编程操作,直到多位数据被编程到非易失性存储器单元中。存储器系统110可以对多位数据之中的另一位数据执行另一步进编程操作(操作714)。在对另一位数据进行步进编程操作之后,存储器系统110可以更新或存储与经编程的位数据相对应的标志(操作716)。
存储器系统110可以检查是否所有的多位数据都被编程(操作718)。根据实施例,非易失性存储器单元可以按照LSB数据到MSB数据的顺序编程有多位数据。存储器系统110可以检查MSB数据是否被编程到非易失性存储器单元,以确定非易失性存储器单元是否编程有多位数据。
当并非所有多位数据被编程时(操作718中的否),存储器系统110可以对多位数据之中的另一位数据执行另一步进编程操作(操作714)。当所有多位数据已被编程时(操作718中的是),存储器系统110可以终止编程操作过程(操作720)。
图10示出根据本公开的实施例的根据非易失性存储器单元的编程状态的关于LSB数据的读取电压的电平变化。具体地,图10描述了根据多位数据的三种不同编程方法的阈值电压分布的变化。
在第一种编程方法(情况1)中,对多位数据之中的每一位数据进行分步编程。在具有数据被擦除的状态的非易失性存储器单元中,LSB数据可以通过第一步编程操作(第一PGM)进行编程。此后,可以通过第二步编程操作(第一PGM)将第二位数据编程到已经编程有LSB数据的非易失性存储器单元。通过第三步编程操作(第三PGM),第三位数据可以被编程到编程有第二位数据的非易失性存储器单元。通过第四编程操作(第四PGM),第四位数据(即,MSB数据)可以被编程到编程有第三位数据的非易失性存储器单元。在图10所示的第一种编程方法(情况1)中,以4位数据可以存储在非易失性存储器单元中为例,但是在每个非易失性存储器单元中存储的多位数据的位数可以根据实施例而变化。
参照图10,每当通过第一种编程方法(情况1)执行步进编程操作时,与LSB数据相关联的阈值电压分布被移动或改变。通常,在所有多位数据被编程之后,存储器装置150施加读取电压(LSB数据读取)以从非易失性存储器单元读取LSB数据。然而,因为在所有多位数据被编程之前LSB数据的阈值电压分布可能会变化,所以在所有多位数据被编程之前用于读取LSB数据的读取电压(LSB读取)应该基于非易失性存储器单元的编程状态而改变。如果读取电压的电平未改变,则在非易失性存储器单元中会出现很多错误,从而可能难以从非易失性存储器单元中准确地读取LSB数据。尽管在图10中已经描述了调整用于获得LSB数据的读取电压的电平,但是存储器系统110可以改变用于获得不同于LSB数据的位数据的读取电压的电平。
在第二种编程方法(情况2)中,多位数据之中的LSB数据和MSB数据通过单独的步进编程操作进行编程,并且可以一次对LSB数据和MSB数据之间的多个位数据进行编程。在具有数据被删除或擦除的状态的非易失性存储器单元中,LSB数据可以通过第一步编程操作(第一PGM)进行编程。此后,可以通过第二步编程操作(第二PGM)将多位数据编程到编程有LSB数据的非易失性存储器单元。可以通过第三步编程操作(第三PGM)将MSB数据编程到编程有多位数据的非易失性存储器单元。在图10的第二种编程方法(情况2)中,作为示例描述了非易失性存储器单元中可以存储4位数据的情况,但是非易失性存储器单元中存储的多位数据的位数可以根据实施例而不同。
在第三种编程方法(情况3)中,可以对多位数据之中的两位数据进行分步编程。在具有数据被删除或擦除的状态的非易失性存储器单元中,可以通过第一步编程操作(第一PGM)对包括LSB数据的两位数据进行编程。此后,可以通过第二步编程操作(第二PGM)将包括MSB数据的另一两位数据编程到已经编程有包括LSB数据的两位数据的非易失性存储器单元。在图10的第三种编程方法(情况3)中,作为示例描述了非易失性存储器单元中可以存储4位数据的情况,但是编程到每个非易失性存储器单元的多位数据的位数可以根据实施例而变化。
即使像第一种编程方法(情况1)那样通过第二种编程方法(情况2)和第三种编程方法(情况3)将多位数据编程到非易失性存储器单元时,与LSB数据相对应的阈值电压分布也可以被移位或改变。存储器系统110可以响应于关于非易失性存储器单元的阈值电压分布的变化而改变用于获得LSB数据的读取电压的电平。通过该方法,即使在MSB数据被编程到非易失性存储器单元之前,存储器系统110也可以准确地读取编程到非易失性存储器单元的LSB数据。参照图6至图8,在MSB数据被编程到相应的存储器单元中之前,LSB数据或CSB数据可以存储在特定的存储器单元中。例如,在LSB数据或CSB数据被编程到特定的存储器单元之后,MSB数据被编程到其中之前,控制器130可以读取编程到相应存储器单元的LSB数据或CSB数据。而且,在与包括MSB数据的多位数据相对应的阈值电压分布的形成完成之前,控制器130可以读取相应存储器单元中存储的LSB数据或CSB数据。因此,在相应的存储器单元完全编程有多位数据之前,存储器系统110可以从图1所示的数据缓冲器270释放或删除一些经编程的位数据。
图11示出根据本公开的另一实施例的在存储器系统内执行的读取操作的第一示例。
参照图1和图11,存储器装置150中的第一非易失性单元区域292可以存储多位数据,而第二非易失性单元区域294可以存储标志。
参照图11,读取操作可以由控制器130执行以获得存储器装置150中存储的数据(操作808)。通常,在存储器装置150中包括的非易失性存储器单元编程有多位数据之后,控制器130可以尝试读取编程到相应的非易失性存储器单元的多位数据。然而,在本公开的实施例中,控制器130可以对具有未编程MSB数据的编程状态的非易失性存储器单元执行读取操作。
当读取操作开始时(操作808),存储器系统110可以读取与读取数据的位置相对应的标志(操作810)。因为标志指示存储读取数据的非易失性存储器单元的编程状态,所以存储器系统110可以设置或调整用于读取非易失性存储器单元的读取电压的电平以基于该标志执行读取操作(操作812)。如图10所示,与非易失性存储器单元中存储的位数据相对应的阈值电压分布可以根据编程状态(例如,多少位数据被编程到其中)而变化,并且响应于编程状态应该调整或改变读取电压的电平,以避免对应于编程到非易失性存储器单元的位数据的读取数据的错误。例如,存储器系统110可以根据标志从预设的读取电压表中选择读取电压的电平,通过将标志应用到预设的算术表达式等中来计算或确定读取电压的电平等。
当确定了读取电压的电平时(操作812),存储器系统110可以将具有确定电平的读取电压施加到与读取数据的位置相对应的非易失性存储器单元,以执行读取操作(操作814)。在对非易失性存储器单元执行读取操作之后(操作814),存储器系统110可以输出通过读取操作获得的读取数据(操作816)。这里,可以将读取数据从存储器装置150传送到控制器130。根据实施例,当响应于从外部装置输入的读取命令执行读取操作时,控制器130可以将读取数据输出到外部装置。当读取数据被输出时(操作816),存储器系统110可以终止读取操作(操作818)。
图12示出根据本公开的实施例的图11中所示的读取操作的操作裕量。
参照图12,将描述由存储器系统110执行的两种不同的读取操作。首先,当所有多位数据都被编程到存储器装置150中包括的非易失性存储器单元时,可以执行第一读取操作(FIRST READ OP.)。控制器130可以将第一读取命令(第一读取CMD)、非易失性存储器单元的地址和第二读取命令(第二读取CMD)发送到存储器装置150。在这种情况下,非易失性存储器单元的地址可以包括由控制器130中的闪存转换层240转换的物理地址。在读取操作裕量tR期间,响应于读取命令和地址,存储器装置150可以输出从非易失性存储器单元获得的读取数据。
此外,当并非所有多位数据被编程到存储器装置150中包括的非易失性存储器单元时,可以执行第三读取操作(THIRD READ OP.)。与第一读取操作(FIRST READ OP.)不同,第三读取操作(THIRD READOP.)包括用于在发送第一读取命令(第一读取CMD)、非易失性存储器单元的地址和第二读取命令(第二读取CMD)之前读取存储器装置150中的标志的附加操作(附加CMD&ADD循环)。这里,附加操作(附加CMD&ADD循环)可以包括将读取命令(附加的CMD)和标志的地址发送到存储器装置150并且由存储器装置150将关于标志的信息输出到控制器130,该标志的地址用于控制器130确定非易失性存储器单元的编程状态,该编程状态是第三读取操作(THIRD READ OP.)的目标。
图13示出根据本公开的实施例的具有响应于标志而确定的电平的读取电压。
参照图13,将描述通过两步编程操作将4位数据编程到存储器装置150中的非易失性存储器单元的示例。可以类似于图10所示的第三种编程方法(Case3)来对非易失性存储器单元进行编程。通过两步编程操作编程有4位数据的非易失性存储器单元可以具有三种编程状态之一。第一编程状态是非易失性存储器单元的数据被擦除的擦除状态(ERASEDSTATE)。第二编程状态是一些位数据(即,4位数据中的2位数据)通过对非易失性存储器单元执行的第一步编程操作(第一PGM)被编程的状态。编程到其中的2位数据可以包括LSB数据。第三编程状态是从LSB数据到MSB数据的所有4位数据通过第二步编程操作(第二PGM)被编程到非易失性存储器单元的状态。
在实施例中,当对非易失性存储器单元执行第一步编程操作(第一PGM)时,可以生成与包括LSB数据的两位数据相对应的四个阈值电压分布。根据实施例,编程有特定位数据的非易失性存储器单元中的一些可以用作标志单元。该标志可以显示关于非易失性存储器单元的当前编程状态。例如,与擦除状态(例如,数据'1'和'11')相对应的阈值电压分布可以用作标志。比较第一步编程操作(第一PGM)之前和之后,第一步编程操作(第一PGM)之后的阈值电压分布的宽度(例如,'11'的数据)可能比执行第一步编程操作(第一PGM)之前的阈值电压分布的宽度(例如,'1'的数据)窄。如果确定用作标志的阈值电压分布的宽度变窄,则存储器系统110可以识别出已经对非易失性存储器单元执行了第一步编程操作(第一PGM)。
当基于对标志的检查操作识别出已经对非易失性存储器单元执行了第一步编程操作(第一PGM)时,存储器系统110可以基于标志改变或调整用于读取LSB数据施加的读取电压(LSB读取)的电平。
在对已经编程有包括LSB数据的2位数据的非易失性存储器单元执行第二步编程操作(第二PGM)之后,也可以更新或改变标志。参照图13,与另一个值(例如,数据'00'和'0000')相对应的另一个阈值电压分布可以用作标志。比较第二步编程操作(第二PGM)之前和之后,第二步编程操作(第二PGM)之后的阈值电压分布的宽度(例如,数据'0000')可能比执行第二步编程操作(第二PGM)之前的阈值电压分布的宽度(例如,数据'00')窄。存储器系统110可以基于用作标志的阈值电压分布的变化识别出非易失性存储器单元中完成了第二步编程操作(第二PGM),从而可以对应于非易失性存储器单元的编程状态更改或调整用于读取LSB数据施加的读取电压(LSB读取)的电平。
参照图13,根据另一实施例,配置为存储单个位数据的附加标志存储器单元可以用于存储标志。例如,与存储4位数据的非易失性存储器单元不同,存储器装置150中的SLC存储块中包括的非易失性存储器单元可以用作标志单元。在对非易失性存储器单元执行第一步编程操作(第一PGM)之后,数据'1'被编程到标志存储器单元中。如果数据'1’被编程到标志存储器单元,则与擦除状态相比,与数据'1’相对应的阈值电压分布的宽度可能变窄。进一步,在对非易失性存储器单元执行第二步编程操作(第二PGM)之后,数据'0'被编程到标志存储器单元中。如果数据“0”被编程到标志存储器单元,则标志存储器单元的阈值电压分布可能向右偏移。因此,标志存储器单元的配置和将关于非易失性存储器单元的编程状态存储在标志存储器单元中的方法可以根据存储器系统110或存储器装置150如何将多位数据编程到非易失性存储器单元而不同。
图14示出根据本公开的另一实施例的在存储器系统内执行的读取操作的第二示例。图14示出另一实施例,其中存储器装置150中的第一非易失性单元区域292和第二非易失性单元区域294均用于存储数据条目,并且没有单独存储附加标志。
参照图14,读取操作可以由控制器130执行以读取存储器装置150中存储的数据条目(操作908)。通常,在存储器装置150中包括的非易失性存储器单元编程有多位数据之后,控制器130可以尝试执行用于读取编程到非易失性存储器单元的多位数据的读取操作。然而,即使存储器装置150中包括的非易失性存储器单元完全编程有多位数据时,控制器130也可以执行用于从非易失性存储器单元读取多位数据之中的一些位数据的读取操作。
当读取操作开始时(操作908),存储器系统110可以执行用于检查关于与读取数据的位置相对应的非易失性存储器单元的编程状态的操作(操作910)。例如,存储器装置150或控制器130可以存储指示对与读取数据的位置相对应的非易失性存储器单元执行的步进编程操作是否完成的状态信息。为此,根据实施例,存储器装置150或控制器130可以进一步包括用于存储编程状态的诸如寄存器的组件。根据实施例,存储器装置150或控制器130可以存储或更新关于存储器管芯或存储器平面的操作信息或状态信息,并且可以存储操作信息或包括分步编程操作是否完成的状态信息。存储器系统110可以通过利用关于非易失性存储器单元的状态信息(例如,编程操作结果、页面/块信息)来估计或识别关于待执行读取操作的非易失性存储器单元的编程状态。
存储器系统110可以根据估计或识别为检查操作的编程状态来设置或调整读取电压的电平(操作912)。如参照图10所描述的,每当对非易失性存储器单元执行步进编程操作时,可以根据经编程的位数据而移位或改变非易失性存储器单元的阈值电压电平。与非易失性存储器单元中存储的位数据相对应的阈值电压分布可以根据非易失性存储器单元的编程状态而变化。因此,应该响应于编程状态调整或改变读取电压的电平以减少从非易失性存储器单元读取或获得的位数据中的错误。
当确定了读取电压的电平时(操作912),存储器系统110可以将具有确定电平的读取电压施加到与读取数据的位置相对应的非易失性存储器单元以执行读取操作(操作914)。在对非易失性存储器单元执行读取操作之后(操作914),存储器系统110可以输出通过读取操作获得的读取数据(操作916)。这里,可以将读取数据从存储器装置150传送到控制器130。根据实施例,当响应于从诸如图2和图3所示的主机102的外部装置输入的读取命令而执行读取操作时,控制器130可以将读取数据输出到外部装置。当读取数据被输出时(操作916),存储器系统110可以终止读取操作(操作919)。
图15示出根据本公开的实施例的图14中所示的读取操作的操作裕量。
参照图15,将描述由存储器系统110执行的两种不同的读取操作。首先,当所有多位数据都被编程到存储器装置150中包括的非易失性存储器单元时,可以执行第一读取操作(FIRST READ OP.)。控制器130可以将第一读取命令(第一读取CMD)、非易失性存储器单元的地址和第二读取命令(第二读取CMD)发送到存储器装置150。在这种情况下,非易失性存储器单元的地址可以包括由控制器130中的闪存转换层240转换的物理地址。在读取操作裕量tR期间,响应于读取命令和地址,存储器装置150可以输出从非易失性存储器单元获得的读取数据。
此外,当并非所有多位数据被编程到存储器装置150中包括的非易失性存储器单元中时,可以执行第二读取操作(SECOND READ OP.)。与第一读取操作(FIRST READ OP.)不同,第二读取操作(SECONDREAD OP.)可以包括在发送第一读取命令(第一读取CMD)、非易失性存储器单元的地址以及由控制器130执行的第二读取命令(第二读取CMD)之前,检查存储器装置150的编程状态的附加操作(程序步骤提示)。例如,在用于检查编程状态的附加操作(程序步骤提示)中,控制器130可以检查被配置为存储非易失性存储器单元的编程状态的寄存器,该编程状态为第二读取操作(SECOND READ OP.)的目标。根据实施例,控制器130可以在寄存器中存储对非易失性存储器单元执行的分步编程操作是否已经完成,并且控制器130可以在对相应的非易失性存储器单元执行读取操作之前检查编程状态。当存储器装置150将非易失性存储器单元中执行的分步编程操作是否已经完成存储在寄存器中时,控制器130可以通过用于传送状态检查命令等的操作来检查编程状态,以检查存储器装置150中存储的状态信息。
参照图12和图15,在参照图12描述的实施例中额外地执行标志的读取操作,而在参照图15描述的实施例中不进行读取操作的情况下可以检查关于编程操作是否完成的编程状态。因为用于检查非易失性存储器单元的编程状态的检查操作(编程步骤提示)的操作裕量小于用作标志的用于读取非易失性存储器单元的附加操作(附加CMD&ADD循环)的操作余量,所以可以提高读取操作的操作速度。
图16示出根据本公开的实施例的被配置为根据第一编程方法存储4位数据的非易失性存储器单元的阈值电压变化。
参照图16,可以将4位数据存储在非易失性存储器单元中,并且可以通过四步编程操作依次对4位数据进行编程。参照图16描述的编程方法可以与参照图10描述的第一编程方法(情况1)基本相同。
当通过第一编程方法(情况1)执行分步编程操作时,可以提前推断非易失性存储器单元的阈值电压的变化,因为它与操作特性相关。存储器系统110可以通过检查指示逐步编程操作是否完成的状态信息来识别非易失性存储器单元的编程状态。
当存储器系统110识别出非易失性存储器单元的编程状态时,存储器系统110可以基于编程状态调整或改变用于读取LSB数据施加到非易失性存储器单元的读取电压(LSB读取)的电平。例如,随着编程操作完成次数的增加更多位数据被编程到非易失性存储器单元中时,为读取LSB数据施加读取电压(LSB读取)的电平会增加。
图17示出根据本公开的实施例的被配置为根据第二编程方法存储4位数据的非易失性存储器单元的阈值电压变化。
参照图17,可以将4位数据存储在非易失性存储器单元中,并且可以通过三步编程操作依次对4位数据进行编程。参照图17描述的编程方法可以与参照图10描述的第二编程方法(情况2)基本相同。
当通过第二编程方法(情况2)执行分步编程操作时,可以预先估计或推断非易失性存储器单元的阈值电压变化,因为它与操作特性相关。存储器系统110可以通过检查包括逐步编程操作是否完成的状态信息来识别非易失性存储器单元的编程状态。根据实施例,记录在寄存器中存储在控制器130或存储器装置150中的状态信息可以包括指示分步编程操作是否完成的信息。
当存储器系统110识别出非易失性存储器单元的编程状态时,可以根据编程状态调整或改变为读取LSB数据施加的读取电压(LSB读取)的电平。例如,随着步进编程操作完成次数的增加更多位数据被编程到非易失性存储器单元中时,为读取LSB数据施加读取电压(LSB读取)的电平会增加。
图18示出根据本公开的实施例的被配置为根据第三编程方法存储4位数据的非易失性存储器单元的阈值电压变化。
参照图18,可以将4位数据存储在非易失性存储器单元中,并且可以通过两步编程操作依次对4位数据进行编程。参照图18描述的编程方法可以与参照图10描述的第三编程方法(情况3)基本相同。
当通过第三编程方法(情况3)执行两步编程操作中的每一步时,由于操作特性可以估计或推断非易失性存储器单元的阈值电压变化。存储器系统110可以通过检查包括诸如步进编程操作是否完成的编程成功/失败的状态信息来识别非易失性存储器单元的编程状态。
当存储器系统110识别出非易失性存储器单元的编程状态时,存储器系统110可以基于编程状态调整为读取LSB数据施加的读取电压(LSB读取)的电平。例如,存储器系统110可以包括读取电压表,该读取电压表包括关于根据两步编程操作中的每一步的与非易失性存储器单元的阈值电压变化相对应的读取电压电平的信息。基于读取电压表,存储器系统110可以基于编程状态改变或调整为读取LSB数据施加的读取电压(LSB读取)的电平。
如上所述,根据本公开的实施例的存储器系统可以提供一种用于读取被配置为存储多位数据的非易失性存储器单元中存储的位数据的设备和方法,即使多位数据之中只有一些数据位存储在非易失性存储器单元中,从而有效地使用资源,因为在存储器系统内执行的数据一次性编程期间,存储器系统不必使写入数据保持在数据缓冲器中以确保数据安全。
进一步,根据本公开的实施例,当能够存储多位数据的非易失性存储器单元中存储的写入数据不足时,存储器系统不必对虚拟数据进行编程。存储器系统可以只将一些位数据而不将虚拟数据编程到非易失性存储器单元,并对非易失性存储器单元中经编程的位数据执行读取操作,即使并非所有多位数据被编程到非易失性存储器单元。存储器系统不必将虚拟数据编程到包括非易失性存储器单元的存储器装置。
本文中描述的方法、过程和/或操作可以由代码或指令执行,该代码或指令待由计算机、处理器、控制器或其它信号处理装置运行。该计算机、处理器、控制器或其它信号处理装置可以是本文中描述的计算机、处理器、控制器或其它信号处理装置或者是除本文中描述的元件之外的元件。因为详细描述了构成方法(或计算机、处理器、控制器或其他信号处理装置的操作)的基础的算法,所以实现方法实施例的操作的代码或指令可以将计算机、处理器、控制器或其他信号处理装置转换为执行此处的方法的专用处理器。
而且,另一个实施例可以包括用于存储上述代码或指令的计算机可读介质,例如非暂时性计算机可读介质。计算机可读介质可以是易失性或非易失性存储器或其他存储装置,其可以可拆卸地或固定地联接到计算机、处理器、控制器或其他信号处理装置,计算机、处理器、控制器或其他信号处理装置用于运行用于执行本文的方法实施例或操作设备的实施例的代码或指令。
例如,本文中公开的实施例的控制器、处理器、控制电路、装置、模块、单元、复用器、逻辑、接口、解码器、驱动器、生成器和其他信号生成和信号处理特征可以在例如包括硬件、软件或两者的非暂时性逻辑中实现。当至少部分地在硬件中实现时,控制器、处理器、控制电路、装置、模块、单元、复用器、逻辑、接口、解码器、驱动器、生成器和其他信号生成和信号处理特征可以是,例如包括但不限于专用集成电路、现场可编程门阵列、逻辑门的组合、片上系统、微处理器或另一种类型的处理或控制电路的各种集成电路中的任何一种。
当至少部分地以软件来实现时,控制器、处理器、控制电路、装置、模块、单元、复用器、逻辑电路、接口、解码器、驱动器、生成器以及其他信号生成和信号处理特征部件可以包括例如存储器或其他存储装置,存储器或其他存储装置用于存储例如待由计算机、处理器、微处理器、控制器或其他信号处理装置执行的代码或指令。计算机、处理器、微处理器、控制器或其他信号处理装置可以是本文中描述的那些或除本文中描述的元件之外的那些。因为详细描述了构成方法(或计算机、处理器、微处理器、控制器或其他信号处理装置的操作)的基础的算法,所以实现方法实施例的操作的代码或指令可以将计算机、处理器、控制器或其他信号处理装置转换为执行本文中描述的方法的专用处理器。
尽管已相对于特定实施例示出和描述了本教导,但是对于本领域技术人员而言将显而易见的是,在不脱离所附利要求书所限定的本公开的构思和范围的情况下,可以进行各种改变和修改。此外,可以组合实施例以形成额外的实施例。
Claims (20)
1.一种存储器装置,包括:
第一存储器组,包括存储多位数据的第一非易失性存储器单元;以及
控制装置:
执行多个编程操作,以将所述多位数据存储在所述第一非易失性存储器单元中;
在执行所述多个编程操作时根据所述第一非易失性存储器单元的编程状态,在所述多位数据之中的最高有效位数据被编程到所述第一非易失性存储器单元中之前,响应于读取命令,执行获取所述多位数据之中已被编程到所述第一非易失性存储器单元中的位数据的读取操作;并且
输出响应于所述读取命令获得的所述位数据。
2.根据权利要求1所述的存储器装置,其中,所述存储器装置基于所述多位数据之中编程到所述第一非易失性存储器单元的数据的位数,确定所述编程状态。
3.根据权利要求1所述的存储器装置,其中,所述控制装置进一步根据所述第一非易失性存储器单元的所述编程状态,改变在所述读取操作期间施加到所述第一非易失性存储器单元的读取电压的电平。
4.根据权利要求1所述的存储器装置,其中,随着所述多位数据之中编程到所述第一非易失性存储器单元的数据的位数增加,所述控制装置进一步提高待施加到所述第一非易失性存储器单元以读取最低有效位数据的读取电压的电平。
5.根据权利要求1所述的存储器装置,其中,所述控制装置可以按照所述多位数据之中最低有效位数据到最高有效位数据的顺序,在所述第一非易失性存储器单元中执行所述多个编程操作。
6.根据权利要求1所述的存储器装置,
进一步包括数据缓冲器,所述数据缓冲器临时存储包括待存储在所述第一非易失性存储器单元中的所述多位数据的写入数据,
其中,在所述位数据已经被编程到所述第一非易失性存储器单元之后并且在所述多位数据中的所有数据被编程到所述第一非易失性存储器单元之前,所述控制装置进一步从所述数据缓冲器中移除所述写入数据的与所述位数据相对应的部分。
7.根据权利要求1所述的存储器装置,
进一步包括第二存储器组,所述第二存储器组包括第二非易失性存储器单元,所述第二非易失性存储器单元存储与关于所述第一非易失性存储器单元的所述编程状态相对应的标志,
其中,在对所述第一非易失性存储器单元执行所述读取操作之前,所述控制装置进一步读取所述第二非易失性存储器单元中存储的所述标志,以识别关于所述第一非易失性存储器单元的所述编程状态。
8.根据权利要求7所述的存储器装置,其中,所述控制装置进一步在跳过对从所述第二存储器组获得的所述标志执行错误校正操作的同时,对从所述第一存储器组获得的数据执行所述错误校正操作。
9.根据权利要求1所述的存储器装置,进一步包括寄存器,所述寄存器记录表示针对所述多位数据之中最近被编程到所述第一非易失性存储器单元的位数据的编程操作是否完成的信息。
10.根据权利要求9所述的存储器装置,其中,所述控制装置进一步基于所述寄存器中记录的所述信息,执行关于所述第一非易失性存储器单元的编程状态检查操作以识别所述编程状态。
11.一种操作存储器系统的方法,包括:
将多位数据之中的最低有效位数据编程到存储所述多位数据的第一非易失性存储器单元;
在将所述多位数据之中的最高有效位数据编程到所述第一非易失性存储器单元中之前,响应于读取命令对编程到所述第一非易失性存储器单元中的所述最低有效位数据执行读取操作;并且
响应于所述读取命令将所述最低有效位数据输出至外部装置。
12.根据权利要求11所述的方法,进一步包括:
将标志编程到第二非易失性存储器单元中,所述标志指示所述第一非易失性存储器单元中对所述最低有效位数据的编程是否完成;
在所述第一非易失性存储器单元中对所述多位数据之中除所述最低有效位数据之外的位数据进行编程;并且
响应于对除所述最低有效位数据之外的位数据的编程是否完成,更新所述标志。
13.根据权利要求12所述的方法,进一步包括:
当除所述最低有效位数据之外的位数据是所述最高有效位数据时,在完成对所述位数据的编程之后终止关于所述第一非易失性存储器单元的编程操作;
当除所述最低有效位数据之外的位数据不是所述最高有效位数据时,在所述第一非易失性存储器单元中对所述多位数据之中除所述最低有效位数据之外的另一位数据进行编程;并且
根据对除所述最低有效位数据之外的另一位数据的编程是否完成,更新所述标志。
14.根据权利要求11所述的方法,进一步包括:
在对所述最低有效位数据的编程完成之后,将表示对所述最低有效位数据的编程是否完成的指示符存储在寄存器中;
将所述多位数据之中除所述最低有效位数据之外的位数据编程到所述第一非易失性存储器单元;并且
根据对除所述最低有效位数据之外的位数据的编程完成,更新所述寄存器中的所述指示符。
15.根据权利要求11所述的方法,其中,执行所述读取操作包括:
根据所述第一非易失性存储器单元的编程状态确定读取电压的电平;并且
通过将具有确定电平的所述读取电压施加到所述第一非易失性存储器单元,从所述第一非易失性存储器单元读取所述最低有效位数据。
16.根据权利要求15所述的方法,进一步包括:
基于所述多位数据之中编程到所述第一非易失性存储器单元的数据的位数来确定所述编程状态。
17.根据权利要求16所述的方法,其中,
所述多位数据按照所述最低有效位到最高有效位数据的顺序被编程到所述第一非易失性存储器单元,并且
随着所述多位数据之中编程到所述第一非易失性存储器单元的数据的位数增加,所述读取电压的电平增加。
18.一种存储器系统,包括:
存储器管芯,包括存储多位数据的第一非易失性存储器单元;以及
控制器,在所述多位数据之中的最高有效位数据被编程到所述第一非易失性存储器单元之前,响应于读取命令,读取根据所述第一非易失性存储器单元的编程状态已经被编程到所述第一非易失性存储器单元的位数据,
其中,所述位数据是所述多位数据的一部分。
19.根据权利要求18所述的存储器系统,
进一步包括数据缓冲器,所述数据缓冲器临时存储包括待存储在所述第一非易失性存储器单元中的所述多位数据的写入数据,
其中,在所述位数据已经被编程到所述第一非易失性存储器单元之后并且在所述多位数据中的所有数据被编程到所述第一非易失性存储器单元之前,所述控制器进一步从所述数据缓冲器中移除所述写入数据的与所述位数据相对应的部分。
20.根据权利要求18所述的存储器系统,
其中,所述控制器基于所述多位数据之中编程到所述第一非易失性存储器单元的数据的位数确定所述编程状态,并且
所述控制器基于所述编程状态确定读取电压的电平,并且通过将所述读取电压施加到所述第一非易失性存储器单元,执行获取所述位数据的读取操作。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220084914A KR20240008046A (ko) | 2022-07-11 | 2022-07-11 | 비휘발성 메모리 장치의 프로그램 상태에 대응하여 데이터를 읽는 장치 및 방법 |
KR10-2022-0084914 | 2022-07-11 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117393022A true CN117393022A (zh) | 2024-01-12 |
Family
ID=89431397
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310057981.2A Pending CN117393022A (zh) | 2022-07-11 | 2023-01-19 | 存储器装置、存储器系统及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20240012563A1 (zh) |
KR (1) | KR20240008046A (zh) |
CN (1) | CN117393022A (zh) |
-
2022
- 2022-07-11 KR KR1020220084914A patent/KR20240008046A/ko unknown
- 2022-11-23 US US17/993,678 patent/US20240012563A1/en active Pending
-
2023
- 2023-01-19 CN CN202310057981.2A patent/CN117393022A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US20240012563A1 (en) | 2024-01-11 |
KR20240008046A (ko) | 2024-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11373709B2 (en) | Memory system for performing a read operation and an operating method thereof | |
CN114333953A (zh) | 存储器系统中用于控制读取电压的装置和方法 | |
US20220171564A1 (en) | Apparatus and method for maintaining data stored in a memory system | |
CN114661226A (zh) | 用于传输由非易失性存储器系统生成的元数据的装置和方法 | |
US20230376212A1 (en) | Apparatus and method for recovering data in a memory system | |
US11798648B2 (en) | Apparatus and method for recovering data in a memory system | |
US20240028216A1 (en) | Apparatus and method for programming data in a non-volatile memory device | |
US11829244B2 (en) | Apparatus and method for programming data in a memory device | |
US11990191B2 (en) | Apparatus and method for programming data in a non-volatile memory device | |
US11894059B2 (en) | Apparatus and method for programming data in a non-volatile memory device | |
US11915762B2 (en) | Apparatus and method for programming data in a non-volatile memory device | |
US11941289B2 (en) | Apparatus and method for checking an error of a non-volatile memory device in a memory system | |
US20220075542A1 (en) | Calibration apparatus and method for data communication in a memory system | |
US20240012563A1 (en) | Apparatus and method for programming or reading data based on a program status of a non-volatile memory device | |
US20230162806A1 (en) | Apparatus and method for reducing signal interference in a semiconductor device | |
US11929122B2 (en) | Apparatus and method for erasing data in a non-volatile memory device | |
US11854657B2 (en) | Memory device and memory system supporting interleaving operation and operation method thereof | |
US11676674B2 (en) | Apparatus and method for programming and verifying data in a non-volatile memory device | |
US20230402071A1 (en) | Apparatus and method for reading data based on a program status of a non-volatile memory device | |
CN115775582A (zh) | 将数据编程在非易失性存储器装置中的设备、系统及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |