CN111415699B - 数据存储装置及其操作方法 - Google Patents
数据存储装置及其操作方法 Download PDFInfo
- Publication number
- CN111415699B CN111415699B CN201910994869.5A CN201910994869A CN111415699B CN 111415699 B CN111415699 B CN 111415699B CN 201910994869 A CN201910994869 A CN 201910994869A CN 111415699 B CN111415699 B CN 111415699B
- Authority
- CN
- China
- Prior art keywords
- page
- data
- read
- program
- pages
- 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
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/20—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits characterised by logic function, e.g. AND, OR, NOR, NOT circuits
- H03K19/21—EXCLUSIVE-OR circuits, i.e. giving output if input signal exists at only one input; COINCIDENCE circuits, i.e. giving output only if all input signals are identical
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1012—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1012—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
- G06F11/1032—Simple parity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
- G06F11/108—Parity data distribution in semiconductor storages, e.g. in SSD
-
- 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/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- 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/0656—Data buffering 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/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
-
- 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
- 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/5642—Sensing or reading circuits; Data output 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/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/08—Address circuits; Decoders; Word-line control 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
-
- 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
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Human Computer Interaction (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
本申请描述了用于有效地执行读取失败恢复操作的方法、系统和装置。示例数据存储装置包括:非易失性存储器装置,包括混合了编程完成页面和编程进行中页面的页面组;缓冲存储器,被配置成缓冲待存储在页面组的页面中的数据和XOR奇偶校验;恢复电路,被配置成恢复读取失败数据的错误;以及处理器,被配置成控制恢复电路从缓冲存储器读取与编程进行中页面对应的数据和XOR奇偶校验,并使用与编程完成页面之中除存储读取失败数据的页面之外的剩余编程完成页面对应的数据以及从缓冲存储器读取的数据和XOR奇偶校验来恢复读取失败数据的错误。
Description
相关申请的交叉引用
本申请文件要求于2019年1月7日提交的申请号为10-2019-0001712的韩国专利申请的优先权,该韩国专利申请通过引用整体并入本文以用于所有目的。
技术领域
本公开技术总体涉及一种电子装置,且更特别地,涉及一种数据存储装置。
背景技术
近年来,计算机环境范例已经从台式计算变为能够随时随地使用计算机系统的普适计算。因此,诸如移动电话、数码相机和膝上型计算机的便携式电子装置的使用已经迅速增加。通常,便携式电子装置使用采用存储器装置的数据存储装置,该存储器装置可用于存储便携式电子装置中使用的数据。
使用存储器装置的数据存储装置不具有机械驱动单元,并且展现出优良的稳定性和耐用性、快信息存取速度及低功耗。这种数据存储装置可包括通用串行总线(USB)存储器装置、具有各种接口的存储卡、通用闪存(UFS)装置、固态驱动器(SSD)等。
发明内容
除了其它特征和益处之外,本公开技术的实施例提供了能够有效地执行读取失败恢复操作的数据存储装置。
在本公开的实施例中,一种数据存储装置可包括:非易失性存储器装置,包括多个页面组;数据缓冲器,被配置成存储待存储在多个页面组中的每一个的数据页面中的数据;异或(XOR)奇偶校验缓冲器,被配置成存储待存储在多个页面组中的每一个的XOR奇偶校验页面中的XOR奇偶校验;以及处理器,被配置成当在根据来自主机的读取请求执行读取操作期间发生读取失败时在包括存储读取失败数据的读取失败页面的页面组中存在编程进行中页面时,控制从数据缓冲器和XOR奇偶校验缓冲器读取与编程进行中页面对应的数据和XOR奇偶校验,并且控制使用与除读取失败页面之外的编程完成页面对应的数据以及从数据缓冲器和XOR奇偶校验缓冲器读取的数据和XOR奇偶校验来恢复读取失败数据的错误。
在本公开的实施例中,一种数据存储装置可包括:非易失性存储器装置,包括混合了编程完成页面和编程进行中页面的页面组;缓冲存储器,被配置成缓冲待存储在页面组的页面中的数据和异或(XOR)奇偶校验;恢复电路,被配置成恢复读取失败数据的错误;以及处理器,被配置成控制恢复电路从缓冲存储器读取与编程进行中页面对应的数据和XOR奇偶校验,并且使用与编程完成页面之中除存储读取失败数据的页面之外的剩余编程完成页面对应的数据以及从缓冲存储器读取的数据和XOR奇偶校验来恢复读取失败数据的错误。
在本公开的实施例中,一种数据存储装置的操作方法包括:响应于来自主机的读取请求,对非易失性存储器装置执行读取操作;在发生读取失败时,确认在包括存储读取失败数据的页面的页面组中是否存在一个或多个编程进行中页面;当页面组中存在编程进行中页面时,从缓冲存储器读取与编程进行中页面对应的数据和异或(XOR)奇偶校验;以及使用与除存储读取失败数据的页面之外的编程完成页面对应的数据以及从缓冲存储器读取的数据和XOR奇偶校验来恢复读取失败数据的错误。
在本文件中描述的一些实施例中,在混合了编程完成页面和编程进行中页面的页面组发生读取失败时,可通过从缓冲存储器读取编程进行中页面的数据和XOR奇偶校验来恢复读取失败。因此,可进一步更有效且更快地执行读取失败恢复操作。
附图说明
现在将参照附图在下文中更全面地描述示例实施例;然而,示例实施例可以不同的形式来实现,并且不应被解释为限于本文中阐述的实施例。而是,这些实施例被提供以使本公开将是彻底且完整的,并且将示例实施例的范围充分地传达给本领域技术人员。
在附图中,为了说明清楚,可夸大尺寸。
图1是示出基于本公开技术的实施例的数据存储装置的示例配置的示图。
图2是示出基于本公开技术的实施例的非易失性存储器装置的示例配置的示图。
图3A是示出基于本公开技术的实施例的存储器单元阵列的示例配置的示图。
图3B是示出图3A的平面的示例配置的示图。
图4A是示出基于本公开技术的实施例的存储块的示例的电路图。
图4B是示出基于本公开技术的实施例的存储块的另一示例的电路图。
图5A是示出基于本公开技术的实施例的四层单元(QLC)编程操作的示例的示图。
图5B是示出基于本公开技术的实施例的四层单元(QLC)编程操作的另一示例的示图。
图6A是示出基于本公开技术的实施例的完成了第一QLC编程操作的页面的阈值电压分布的示例的示图。
图6B是示出基于本公开技术的实施例的完成了第二QLC编程操作的页面的阈值电压分布的另一示例的示图。
图7A是示出基于本公开技术的实施例的页面组的配置的示例的示图。
图7B是示出基于本公开技术的实施例的页面组的配置的另一示例的示图。
图8是示出基于本公开技术的实施例的生成和存储数据的XOR奇偶校验并将数据和XOR奇偶校验传送到非易失性存储器装置的进程的示例的示图。
图9A是示出基于本公开技术的实施例的混合了编程完成页面和编程进行中页面的页面组的示例的示图。
图9B是示出基于本公开技术的实施例的编程完成页面发生读取失败的另一示例的示图。
图10A是示出基于本公开技术的实施例的恢复电路的读取失败恢复操作的示例的示图。
图10B是示出基于本公开技术的实施例的恢复电路的读取失败恢复操作的另一示例的示图。
图11是示出基于本公开技术的实施例的数据存储装置的操作方法的示例的流程图。
图12是示出基于本公开技术的实施例的包括固态驱动器(SSD)的数据处理系统的示例的示图。
图13是示出图12所示的控制器的示例的示图。
图14是示出基于本公开技术的实施例的包括数据存储装置的数据处理系统的另一示例的示图。
图15是示出基于本公开技术的实施例的包括数据存储装置的数据处理系统的又一示例的示图。
图16是示出基于本公开技术的实施例的包括数据存储装置的网络系统的示例的示图。
图17是示出两阶段模糊和精细写入操作的示例的示图。
具体实施方式
半导体存储器装置可以是易失性的或非易失性的。易失性半导体存储器装置可高速执行读取操作和写入操作,而其中存储的内容可在断电时丢失。非易失性半导体存储器装置即使在断电时也可保留其中存储的内容。非易失性半导体存储器装置可用于存储无论是否通电都必须保留的内容。
本公开技术的一些实施例提供了用于通过从缓冲存储器读取编程进行中页面(也可被称为“编程未完成页面”)的数据和/或XOR奇偶校验来在非易失性存储器装置中有效地执行读取失败恢复操作的方法、系统和装置。
在示例中,读取失败恢复操作是使用模糊-精细方案执行以减轻NAND中读取失败的影响的芯片猎杀操作的一部分。
图1是示出基于本公开技术的实施例的数据存储装置10的示例配置的示图。
参照图1,数据存储装置10可存储待由诸如移动电话、MP3播放器、膝上型计算机、台式计算机、游戏机、电视(TV)或车载信息娱乐系统等的主机(未在图1中示出)访问的数据。在一些实施例中,数据存储装置10可指存储器系统。
在一些实施例中,根据联接到主机的接口协议,数据存储装置10可被制造为各种类型的存储装置中的任意一种。例如,数据存储装置10可被配置成包括但不限于以下的各种类型的存储装置中的任意一种:固态驱动器(SSD),MMC、eMMC、RS-MMC和微型MMC形式的多媒体卡,SD、迷你SD和微型SD形式的安全数字卡,通用串行总线(USB)存储装置,通用闪存(UFS)装置,个人计算机存储卡国际协会(PCMCIA)卡型存储装置,外围组件互连(PCI)卡型存储装置,高速PCI(PCI-e)卡型存储装置,紧凑型闪存(CF)卡,智能媒体卡,记忆棒等。
在一些实施例中,数据存储装置10可被制造为各种类型的封装中的任意一种。例如,数据存储装置10可被制造成层叠封装(POP)、系统级封装(SIP)、片上系统(SOC)、多芯片封装(MCP)、板上芯片(COB)、晶圆级制造封装(WFP)或者晶圆级堆叠封装(WSP)。
在实施例中,数据存储装置10可包括非易失性存储器装置100和控制器200。
在一些实施例中,控制器200可通过固件或软件的运行来控制数据存储装置10的整体操作。例如,固件或软件可存储在非易失性存储器装置100中,并且可在启动数据存储装置10期间被加载到控制器200中的存储器(例如,第一缓冲存储器230)中。控制器200可利用硬件或硬件与软件的组合来实施。
在一些实施例中,控制器200可包括主机接口210、处理器220、第一缓冲存储器230、错误校正码(ECC)电路240、异或(XOR)运算电路250、恢复电路260和存储器接口270。
在示例中,主机接口210可根据主机协议在主机与数据存储装置10之间进行接口连接。例如,主机接口210可通过包括以下的协议来与主机通信:USB协议、UFS协议、MMC协议、并行高级技术附件(PATA)协议、串行高级技术附件(SATA)协议、小型计算机系统接口(SCSI)协议、串列SCSI(SAS)协议、PCI协议和PCI-e协议。
在另一示例中,处理器220可包括微控制单元(MCU)和/或中央处理单元(CPU)。处理器220可处理从主机传送的请求。为了处理从主机传送的请求,处理器220可运行加载到第一缓冲存储器230中的代码型指令或算法(例如,固件),并且控制诸如主机接口210、第一缓冲存储器230、ECC电路240、XOR运算电路250、恢复电路260、存储器接口270的内部功能块和非易失性存储器装置100。
在又一示例中,处理器220可基于从主机传送的请求来生成用于控制非易失性存储器装置100的操作的控制信号,并且进一步通过存储器接口270将所生成的控制信号提供到非易失性存储器装置100。
在又一示例中,第一缓冲存储器230可包括静态随机存取存储器(SRAM),但不限于此。由处理器220运行的固件可被加载到第一缓冲存储器230中。第一缓冲存储器230可存储运行固件所需的数据(例如,元数据)。例如,第一缓冲存储器230可作为处理器220的工作存储器而操作。在实施例中,由处理器220运行的固件和运行该固件所需的元数据可从第一缓冲存储器230被加载到单独联接到处理器220的存储器(未在图1中示出)中。
在又一示例中,第一缓冲存储器230可存储由XOR运算电路250使用和/或生成的XOR奇偶校验。XOR奇偶校验可包括通过对待存储在非易失性存储器装置100中的编程数据执行XOR运算而生成的多个位。例如,XOR奇偶校验可以是通过对具有预定大小或长度的编程数据执行XOR运算而生成的奇偶校验。XOR奇偶校验可用于读取失败恢复操作,该读取失败恢复操作在发生读取失败时校正读取失败数据的错误。此处,读取失败可指从非易失性存储器装置100读出的读取数据的ECC解码失败。
在又一示例中,ECC电路240可执行ECC编码操作,该ECC编码操作生成待从主机传送到非易失性存储器装置100的编程数据的奇偶校验数据。ECC电路240也可执行ECC解码操作,该ECC解码操作有能力基于对应于从非易失性存储器装置100读出的读取数据的奇偶校验数据来检测并校正读取数据中的错误。
例如,ECC电路240可通过对从主机接收的编程数据进行ECC编码来生成奇偶校验数据,并且通过存储器接口270向非易失性存储器装置100提供包括编程数据和奇偶校验数据的经编码数据。ECC电路240可使用响应于主机的读取请求从非易失性存储器装置100读出的经编码数据中包括的奇偶校验数据来检测和校正读取数据中包括的错误。当检测到的错误位的数量小于或等于与ECC电路240的错误校正能力对应的预定错误数量时,ECC电路240可校正错误。ECC电路240可通过主机接口210向主机提供经错误校正的数据。
在又一示例中,XOR运算电路250可通过对具有预定大小或长度的编程数据执行XOR运算来生成编程数据的XOR奇偶校验。当在ECC电路240中生成的奇偶校验位是与最小编程单位对应的编程数据的奇偶校验位时,在XOR运算电路250中生成的XOR奇偶校验可以是数据组的奇偶校验位,该数据组包括两个或更多个最小编程单位的编程数据。例如,奇偶校验位可用于对从非易失性存储器装置100读出的读取数据执行ECC解码操作,并且XOR奇偶校验可用于在ECC解码失败的情况下执行恢复读取数据(例如,读取失败数据)的错误的恢复操作。
在又一示例中,XOR运算电路250可生成临时存储在第二缓冲存储器280中的编程数据的XOR奇偶校验,并且将所生成的XOR奇偶校验传送到第一缓冲存储器230。第一缓冲存储器230可存储从XOR运算电路250传送的XOR奇偶校验。
在又一示例中,恢复电路260可被配置成在ECC解码失败的情况下恢复读取数据(例如,读取失败数据)的错误。例如,恢复电路260可通过对包括读取失败数据的数据组中除读取失败数据之外的剩余数据和对应于相应数据组的XOR奇偶校验执行XOR运算来恢复读取失败数据的错误。
在又一示例中,存储器接口270可基于来自处理器220的指令来控制非易失性存储器装置100。存储器接口270可指存储器控制器。存储器接口270可将控制信号提供到非易失性存储器装置100。控制信号可包括用于控制非易失性存储器装置100的命令CMD、地址ADDR、操作控制信号(CTRL)等。存储器接口270可向非易失性存储器装置100提供数据(例如,编程数据),或者从非易失性存储器装置100接收数据(例如,读取数据)。
在又一示例中,第二缓冲存储器280可被配置成包括数据缓冲器(DB)(未在图1中示出),该数据缓冲器临时存储待从主机传送到非易失性存储器装置100的编程数据或者从非易失性存储器装置100读出并要传送到主机的读取数据。第二缓冲存储器280可包括动态随机存取存储器(DRAM),但不限于此。
在一些实施例中,如图1所示,第二缓冲存储器280位于控制器200外部。在其它实施例中,第二缓冲存储器280可位于控制器200内部。临时存储在第二缓冲存储器280中的编程数据可被保留在第二缓冲存储器280中,直到完成编程数据在非易失性存储器装置100中的存储为止。
在又一示例中,非易失性存储器装置100可作为数据存储装置10的存储介质而操作。非易失性存储器装置100可以是包括但不限于以下的各种类型的非易失性存储器装置中的一种:NAND闪速存储器装置、NOR闪速存储器装置、使用铁电电容器的铁电随机存取存储器(FRAM)、使用隧道磁阻(TMR)层的磁性随机存取存储器(MRAM)、使用硫族化物合金的相变随机存取存储器(PRAM)以及使用过渡金属化合物的电阻式随机存取存储器(RERAM)。
图2是示出图1的非易失性存储器装置100的示例配置的示图。
如图2所示,非易失性存储器装置100可包括存储器单元阵列110、行解码器120、编程/读取电路130、列解码器140、页面缓冲器150、电压生成器160、控制逻辑170和输入/输出(I/O)电路180。
在示例中,存储器单元阵列110可包括布置在多个字线(WL)和多个位线(BL)彼此垂直交叉的区域中的多个存储器单元(未在图2中示出)。
存储器单元阵列110中的存储器单元中的每一个可以是将存储单位数据(例如,1位数据)的单层单元(SLC)、将存储2位数据的多层单元(MLC)、将存储3位数据的三层单元(TLC)以及将存储4位数据的四层单元(QLC)中的至少一个。存储器单元阵列110可包括来自包括SLC、MLC、TLC和QLC的组之中的至少一个或多个存储器单元。存储器单元阵列110可包括以二维(2D)水平结构布置的存储器单元或以3D垂直结构布置的存储器单元。
行解码器120可通过字线WL联接到存储器单元阵列110。行解码器120可根据控制逻辑170的控制来进行操作。行解码器120可对从控制逻辑170提供的行地址X_ADDR进行解码,并且基于解码结果来选择和驱动字线WL中的至少一个字线WL。行解码器120可将从电压生成器160提供的操作电压Vop提供到所选择的字线WL。
编程/读取电路130可通过位线BL联接到存储器单元阵列110。编程/读取电路130可包括对应于位线BL的编程/读取电路(未在图2中示出)。编程/读取电路130可根据控制逻辑170的控制来进行操作。编程/读取电路130可包括被配置成将数据编程在存储器单元中的编程驱动器WD和被配置成放大从存储器单元读取的数据的读出放大器SA。编程/读取电路130可通过向存储器单元阵列110的存储器单元之中通过行解码器120和列解码器140选择的存储器单元提供电流脉冲或电压脉冲来对所选择的存储器单元执行编程操作和读取操作。
列解码器140可根据控制逻辑170的控制来进行操作。列解码器140可对从控制逻辑170提供的列地址Y_ADDR进行解码。列解码器140可基于解码结果将编程/读取电路130的对应于位线BL的编程/读取电路联接到页面缓冲器150。
页面缓冲器150可被配置成临时存储从控制器200的存储器接口270提供的并且将被编程到存储器单元阵列110中的数据,以及从存储器单元阵列110读出并且将被提供到控制器200的存储器接口270的数据。页面缓冲器150可根据控制逻辑170的控制来进行操作。
电压生成器160可基于从控制逻辑170提供的电压控制信号CTRL_vol来生成用于对存储器单元阵列110执行编程操作、读取操作和擦除操作的各种电压。电压生成器160可生成用于驱动多个字线WL和多个位线BL的驱动电压Vop。电压生成器160可生成用于读出存储器单元MC中存储的数据的至少一个或多个参考电压。
控制逻辑170可基于从控制器200接收的命令CMD、地址ADDR或控制信号CTRL,输出用于将数据DATA编程在存储器单元阵列110中或从存储器单元阵列110读出数据DATA的各种控制信号。从控制逻辑170输出的各种控制信号可被提供到行解码器120、编程/读取电路130、列解码器140、页面缓冲器150和电压生成器160。因此,控制逻辑170可完全控制在非易失性存储器装置100中执行的各种操作。
例如,控制逻辑170可基于命令CMD和控制信号CTRL生成操作控制信号CTRL_op,并且将所生成的操作控制信号CTRL_op提供到编程/读取电路130。控制逻辑170可将地址ADDR中包括的行地址X_ADDR和列地址Y_ADDR提供到行解码器120和列解码器140。
I/O电路180可被配置成接收从控制器200提供的命令CMD、地址ADDR和数据DATA,或者将从存储器单元阵列110读出的数据DATA提供到控制器200。I/O电路180可将从控制器200接收的命令CMD和地址ADDR输出到控制逻辑170,并且将从控制器200接收的数据DATA输出到页面缓冲器150。I/O电路180可将从页面缓冲器150接收的数据DATA输出到控制器200。I/O电路180可根据控制逻辑170的控制来进行操作。
图3A是示出基于本公开技术的实施例的存储器单元阵列110的示例配置的示图,并且图3B是示出图3A的平面的示例配置的示图。
如图3A所示,存储器单元阵列110可包括表示为DIE1至DIEp的多个管芯。在一些实施例中,管芯DIE1至DIEp可以是存储器芯片。多个管芯DIE1至DIEp中的每一个可包括多个平面PNE1至PNEq。如图3B所示,多个平面PNE1至PNEq中的每一个可包括多个存储块BLK1至BLKi,并且多个存储块BLK1至BLKi中的每一个可包括多个页面PG1至PGj。
图4A和图4B是示出基于本公开技术的实施例的存储块的示例的电路图。图4A是示出包括以2D方式布置的存储器单元的存储块BLKa的示例的电路图,并且图4B是示出包括以3D方式布置的存储器单元的存储块BLKb的另一示例的电路图。例如,图3B所示的存储块BLK1至BLKi中的每一个可使用图4A或图4B所示的电路来实施,但存储块的配置不限于此。
如图4A所示,存储块BLKa可具有2D水平结构。例如,存储块BLKa可包括布置成在第一方向上间隔开的多个位线BL1至BLm和布置成在第二方向上间隔开的多个字线WL1至WLn,第二方向基本垂直于第一方向。在示例中,第一方向可以是X轴方向,并且第二方向可以是Y轴方向。在另一示例中,第一方向可以是Y轴方向,并且第二方向可以是X轴方向。
存储块BLKa可包括联接到多个位线BL1至BLm的多个单元串CS。在示例中,单元串CS可具有彼此相同的电路配置。为了清楚起见,将在单个单元串CS的情况下描述存储块BLKa。
单元串CS可包括联接在位线BL1和共源线CSL之间的多个存储器单元MC1至MCn以及漏极选择晶体管和源极选择晶体管(分别为DST和SST)。例如,单元串CS可包括联接到漏极选择线DSL的漏极选择晶体管DST、联接到多个字线WL1至WLn的多个存储器单元MC1至MCn以及联接到源极选择线SSL的源极选择晶体管SST。
如图4A所示,联接到相同字线的多个存储器单元可被称为页面(PG)单元。可对联接到相同字线的多个存储器单元同时执行编程操作或读取操作,但不限于此。
如图4B所示,存储块BLKb可具有3D垂直结构。
在一些实施例中,存储块BLKb可包括被布置成在第一方向上间隔开的多个位线BL1至BLm、联接到多个位线BL1至BLm并被布置成在第二方向上间隔开的多个单元串CS11至CS1k~CSm1至CSmk、以及被布置成在第三方向上间隔开的多个字线WL1至WLn(其中第一方向、第二方向和第三方向基本上彼此垂直)。在示例中,第一方向可以是X轴方向,第二方向可以是Y轴方向,并且第三方向可以是Z轴方向,但不限于此。
在示例中,k个单元串可联接到m个位线中的每一个,因此存储块BLKb中可布置m×k个单元串。此处,n、m和k是大于或等于1的整数。
在另一示例中,多个单元串CS11至CS1k~CSm1至CSmk中的每一个可包括至少一个源极选择晶体管SST、第一至第n存储器单元MC1至MCn以及至少一个漏极选择晶体管DST。每个单元串中的源极选择晶体管SST可联接在共源线CSL与存储器单元MC1至MCn之间。
在又一示例中,在X轴方向上布置在相同线上的单元串的源极选择晶体管SST可联接到相同的源极选择线。例如,联接到位线BL1至BLm的多个第一单元串CS11至CSm1的源极选择晶体管SST可联接到第一源极选择线SSL1。类似地,联接到位线BL1至BLm的多个第二至第k单元串CS12至CSm2~CS1k至CSmk中的源极选择晶体管SST可联接到第二至第k源极选择线SSL2至SSLk。
在又一示例中,在X轴方向上布置在相同线上的单元串的漏极选择晶体管DST可联接到相同的漏极选择线。例如,联接到位线BL1至BLm的多个第一单元串CS11至CSm1的漏极选择晶体管DST可联接到第一漏极选择线DSL1。类似地,联接到位线BL1至BLm的多个第二至第k单元串CS12至CSm2~CS1k至CSmk中的漏极选择晶体管DST可联接到第二至第k漏极选择线DSL2至DSLk。
在又一示例中,多个单元串CS11至CS1k~CSm1至CSmk中的每一个中的第一至第n存储器单元MC1至MCn可串联联接在源极选择晶体管SST和漏极选择晶体管DST之间。
在又一示例中,多个单元串CS11至CS1k~CSm1至CSmk中的每一个中的第一至第n存储器单元MC1至MCn可联接到第一至第n字线WL1至WLn。联接到在X轴方向上布置在相同线上的单元串并且联接到相同字线的存储器单元可被称为页面(PG)单元。
在又一示例中,如图4B所示,联接到在X轴方向上布置在相同线上的第一单元串CS11至CSm1并且联接到第一字线WL1的第一存储器单元MC1可指第一-第一页面PG11。类似地,联接到在X轴方向上布置在相同线上的第二至第k单元串CS12至CSm2~CS1k至CSmk并且联接到第一字线WL1的第一存储器单元MC1可指第一-第二页面PG12至第一-第k页面PG1k。例如,在图4B所示的3D垂直结构中,多个页面可联接到一个字线,但不限于此。
在又一示例中,k个页面可联接到字线WL1至WLn中的每一个,因此存储块BLKb中可布置n×k个页面。字线WL1至WLn中的每一个中的页面数量可根据联接到位线BL1至BLm中的每一个的单元串的数量而改变。
现在将描述图4B所示的具有3D垂直结构的存储块的示例编程操作。
图5A和图5B是示出基于本公开技术的实施例的示例QLC编程操作的示图。为了简化附图和便于描述,假设存储块BLKo包括四个字线WL1至WL4,并且四个页面组PG11至PG14、PG21至PG24、PG31至PG34和PG41至PG44联接到四个字线WL1至WL4。例如,四个第一页面PG11至PG14可联接到第一字线WL1,四个第二页面PG21至PG24可联接到第二字线WL2,四个第三页面PG31至PG34可联接到第三字线WL3,并且四个第四页面PG41至PG44可联接到第四字线WL4。
如图5A所示,对存储块BLKo的QLC编程操作可从第一字线WL1的第一-第一页面PG11开始,并且可在第四字线WL4的第四-第四页面PG44终止。
在示例中,可按照以下顺序来执行对存储块BLKo的QLC编程操作:对第一字线WL1的第一页面PG11至PG14的第一QLC编程(1、2、3、4),接着是对第二字线WL2的第二页面PG21至PG24的第一QLC编程(5、6、7、8),接着是对第一字线WL1的第一页面PG11至PG14的第二QLC编程(9、10、11、12),接着是对第三字线WL3的第三页面PG31至PG34的第一QLC编程(13、14、15、16),接着是对第二字线WL2的第二页面PG21至PG24的第二QLC编程(17、18、19、20),接着是对第四字线WL4的第四页面PG41至PG44的第一QLC编程(21、22、23、24),接着是对第三字线WL3的第三页面PG31至PG34的第二QLC编程(25、26、27、28),最后是对第四字线WL4的第四页面PG41至PG44的第二QLC编程(29、30、31、32)。因此,可正常完成对联接到第一至第四字线WL1至WL4的所有页面PG11至PG44的QLC编程操作。
在该示例中,对第一至第四字线WL1至WL4执行的第一QLC编程操作可被称为模糊(或粗略)编程操作,并且对第一至第四字线WL1至WL4执行的第二QLC编程操作可被称为精细编程操作。对于相同页面,待在第一QLC编程操作中存储的数据和待在第二QLC编程操作中存储的数据可彼此相同,但不限于此。
随着非易失性存储器装置100的容量增加,待存储在一个存储器单元中的数据的量也增加。近年来,在一个存储器单元中存储四位数据的四层单元(QLC)方法的使用已经增加。随着存储器单元阵列110的集成度增加,信号线(字线和位线)之间的空间正在减小。这会由于正在执行编程操作的字线而导致对邻近于正在执行编程操作的字线的、例如完成了编程操作的前一字线的其它字线的干扰。因此,预先存储在联接到前一字线的存储器单元中的数据可能被破坏。例如,预先存储的数据的破坏可意味着联接到前一字线的存储器单元的阈值电压分布变形。
为了将联接到第一字线的第一存储器单元的阈值电压分布重新形成(或重构)为用于执行QLC操作的期望阈值电压分布,必须执行示例QLC编程操作。该示例QLC编程操作包括:将第一数据存储在联接到第一字线的第一存储器单元中的第一QLC编程操作(例如,模糊编程操作),将第二数据存储在联接到第一字线的下一字线(例如,第二字线)的第二存储器单元中的另一第一QLC编程操作(例如,模糊编程操作),然后将第一数据再次存储在第一字线的第一存储器单元中的第二QLC编程操作(例如,精细编程操作)。
例如,如图6A所示,执行了第一QLC编程操作的存储器单元的阈值电压分布可能无法彼此清楚地区分。例如,存储器单元的阈值电压分布可能彼此重叠。如图6B所示,执行了第二QLC编程操作的存储器单元的阈值电压分布可彼此清楚地区分。存储器单元的阈值电压分布可彼此完全分离开,而没有任何重叠部分。
因此,因为联接到前一字线的存储器单元的阈值电压分布由于对下一字线执行的编程操作的干扰而变形,所以可执行对前一字线的第一QLC编程操作,使得存储器单元的阈值电压分布接近期望的形式,可执行对下一字线的第一QLC编程操作,然后可对前一字线执行第二QLC编程操作,使得联接到前一字线的存储器单元的阈值电压分布可达到期望的形式,其中第二QLC编程操作在前一字线中再次对相同的数据进行编程。
如图5B所示,类似于图5A所示的QLC编程操作,对存储块BLKo的QLC编程操作可从第一字线WL1的第一-第一页面PG11开始,并且可在第四字线WL4的第四-第四页面PG44终止。然而,图5B中所示的QLC编程操作与图5A的QLC编程操作的不同之处在于:图5B的QLC编程方法对联接到第一字线(例如,第一字线WL1)的多个页面(例如,第一页面PG11至PG14)顺序地执行第一QLC编程操作,然后对联接到下一字线的多个页面和联接到前一字线的多个页面逐个页面地交替执行第一QLC编程操作(或第二QLC编程操作)。
在示例中,参照图5B,可按照以下顺序来执行对存储块BLKo的QLC编程操作:对第一字线WL1的第一页面PG11至PG14的第一QLC编程(1、2、3、4),接着是对第二字线WL2的第二-第一页面PG21的第一QLC编程(5),接着是对第一字线WL1的第一-第一页面PG11的第二QLC编程(6),接着是对第二字线WL2的第二-第二页面PG22的第一QLC编程(7),接着是对第一字线WL1的第一-第二页面PG12的第二QLC编程(8),接着是对第二字线WL2的第二-第三页面PG23的第一QLC编程(9),接着是对第一字线WL1的第一-第三页面PG13的第二QLC编程(10),接着是对第二字线WL2的第二-第四页面PG24的第一QLC编程(11),最后是对第一字线WL1的第一-第四页面PG14的第二QLC编程(12)。
在另一示例中,可按照以下顺序来执行对存储块BLKo的QLC编程操作:对第三字线WL3的第三-第一页面PG31的第一QLC编程(13),接着是对第二字线WL2的第二-第一页面PG21的第二QLC编程(14),接着是对第三字线WL3的第三-第二页面PG32的第一QLC编程(15),接着是对第二字线WL2的第二-第二页面PG22的第二QLC编程(16),接着是对第三字线WL3的第三-第三页面PG33的第一QLC编程(17),接着是对第二字线WL2的第二-第三页面PG23的第二QLC编程(18),接着是对第三字线WL3的第三-第四页面PG34的第一QLC编程(19),最后是对第二字线WL2的第二-第四页面PG24的第二QLC编程(20)。
在又一示例中,可按照以下顺序来执行对存储块BLKo的QLC编程操作:对第四字线WL4的第四-第一页面PG41的第一QLC编程(21),接着是对第三字线WL3的第三-第一页面PG31的第二QLC编程(22),接着是对第四字线WL4的第四-第二页面PG42的第一QLC编程(23),接着是对第三字线WL3的第三-第二页面PG32的第二QLC编程(24),接着是对第四字线WL4的第四-第三页面PG43的第一QLC编程(25),接着是对第三字线WL3的第三-第三页面PG33的第二QLC编程(26),接着是对第四字线WL4的第四-第四页面PG44的第一QLC编程(27),接着是对第三字线WL3的第三-第四页面PG34的第二QLC编程(28),最后是对第四字线WL4的第四-第一至第四-第四页面PG41至PG44的第二QLC编程(29、30、31、32)。在一些实施例中,图5A所示的编程操作可指四串编程操作,图5B所示的编程操作可指一串编程操作。
图7A和图7B是示出基于本公开技术的实施例的页面组的示例配置的示图。为了简化附图和便于描述,假设存储器单元阵列110包括四个管芯DIE1至DIE4,四个管芯DIE1至DIE4中的每一个包括一个平面,该平面包括一个存储块,并且四个管芯DIE1至DIE4中的每一个中的存储块包括多个页面PG11至PG14、PG21至PG24、PG31至PG34以及PG41至PG44。例如,假设第一至第四管芯DIE1至DIE4中的每一个由包括多个页面PG11至PG14、PG21至PG24、PG31至PG34以及PG41至PG44的一个存储块来配置。
如图7A所示,存储器单元阵列110可包括四个页面组XORPG1至XORPG4。四个页面组XORPG1至XORPG4中的每一个可包括16个页面。例如,第一页面组XORPG1可包括第一管芯DIE1的第一页面PG11至PG14、第二管芯DIE2的第一页面PG11至PG14、第三管芯DIE3的第一页面PG11至PG14以及第四管芯DIE4的第一页面PG11至PG14。例如,在图5A和图5B的情况下,第一页面组XORPG1可被配置成包括第一至第四管芯DIE1至DIE4中的每一个中联接到第一字线WL1的四个第一页面PG11至PG14,并且第四页面组XORPG4可被配置成包括第一至第四管芯DIE1至DIE4中的每一个中联接到第四字线WL4的四个第四页面PG41至PG44。在一些实施例中,虽然未在图7A中示出,但第二页面组和第三页面组可被配置成与第一页面组XORPG1具有相同的配置。例如,第二页面组XORPG2可被配置成包括第一至第四管芯DIE1至DIE4中的每一个中联接到第二字线WL2的四个第二页面PG21至PG24,并且第三页面组XORPG3可被配置成包括第一至第四管芯DIE1至DIE4中的每一个中联接到第三字线WL3的四个第三页面PG31至PG34。
当页面组被配置成具有图7A所示的示例配置时,与除最后管芯DIE的最后页面之外的页面中存储的数据(例如,用户数据)对应的XOR奇偶校验可存储在每个页面组中包括的多个页面之中的最后管芯DIE的最后页面PG中。例如,在第一页面组XORPG1中,用户数据可存储在第一至第三管芯DIE1至DIE3的第一页面PG11至PG14和第四管芯DIE4的第一-第一至第一-第三页面PG11至PG13中,并且用户数据的XOR奇偶校验可存储在第四管芯DIE4的第一-第四页面PG14中。因此,此处描述的“页面组”也可被理解为“XOR奇偶校验组”。
如图7B所示,存储器单元阵列110可包括16个页面组XORPG1至XORPG16。16个页面组XORPG1至XORPG16中的每一个可包括四个页面。
例如,第一页面组XORPG1可包括第一管芯DIE1的第一-第一页面PG11、第二管芯DIE2的第一-第一页面PG11、第三管芯DIE3的第一-第一页面PG11和第四管芯DIE4的第一-第一页面PG11。参照图5A、图5B和图7B,第一页面组XORPG1可被配置成包括第一至第四管芯DIE1至DIE4中联接到第一字线WL1的第一页面PG11至PG14中的第一-第一页面PG11,第二页面组XORPG2可被配置成包括第一至第四管芯DIE1至DIE4中联接到第一字线WL1的第一页面PG11至PG14中的第一-第二页面PG12,第三页面组XORPG3可被配置成包括第一至第四管芯DIE1至DIE4中联接到第一字线WL1的第一页面PG11至PG14中的第一-第三页面PG13,并且第四页面组XORPG4可被配置成包括第一至第四管芯DIE1至DIE4中联接到第一字线WL1的第一页面PG11至PG14中的第一-第四页面PG14。
参照图5A、图5B和图7B,第13页面组XORPG13可被配置成包括第一至第四管芯DIE1至DIE4中联接到第四字线WL4的第四页面PG41至PG44中的第四-第一页面PG41,第14页面组XORPG14可被配置成包括第一至第四管芯DIE1至DIE4中联接到第四字线WL4的第四页面PG41至PG44中的第四-第二页面PG42,第15页面组XORPG15可被配置成包括第一至第四管芯DIE1至DIE4中联接到第四字线WL4的第四页面PG41至PG44中的第四-第三页面PG43,并且第16页面组XORPG16可被配置成包括第一至第四管芯DIE1至DIE4中联接到第四字线WL4的第四页面PG41至PG44中的第四-第四页面PG44。
在一些实施例中,虽然未在图7B中示出,但第5至第12页面组可被配置成与第一页面组XORPG1具有相同的配置。
在一些实施例中,当页面组被配置成具有图7B所示的配置时,与除最后管芯DIE的页面之外的剩余页面中存储的用户数据对应的XOR奇偶校验可存储在每个页面组中包括的多个页面之中的最后管芯DIE的页面PG中。例如,在第一页面组XORPG1中,用户数据可存储在第一至第三管芯DIE1至DIE3的第一-第一页面PG11中,并且用户数据的XOR奇偶校验可存储在第四管芯DIE4的第一-第一页面PG11中。
图7A和图7B中示出的页面组的配置仅仅是示例性的,并且可根据需要或设计变化来修改。当存储器单元阵列110的总大小受限时,页面组中包括的页面的数量可随页面组的数量增加而减少,并且页面组中包括的页面的数量可随页面组的数量减少而增加。
图8是示出基于本公开技术的实施例的生成和存储数据的XOR奇偶校验并将数据和XOR奇偶校验传送到非易失性存储器装置的示例进程的示图。参照图8以及图7B描述该示例进程。为了清楚起见,页面组具有图7B所示的示例配置。
如图8所示,第二缓冲存储器280可存储从主机接收的例如以下的编程数据:待存储在第一页面组XORPG1中的第一至第三管芯DIE1至DIE3的第一-第一页面PG11中的编程数据DATA111、DATA112和DATA113(在下文中,称为“第一编程数据(或第一数据)DATA111”、“第二编程数据(或第二数据)DATA112”和“第三编程数据(或第三数据)DATA113”)。第二缓冲存储器280可将存储在其中的第一至第三编程数据DATA111、DATA112和DATA113顺序地传送到非易失性存储器装置100。第二缓冲存储器280可保留存储在其中的第一至第三编程数据DATA111、DATA112和DATA113,直到完成和/或确认第一至第三编程数据DATA111、DATA112和DATA113在第一页面组XORPG1中的第一至第三管芯DIE1至DIE3的第一-第一页面PG11中的存储。
XOR运算电路250可通过对第二缓冲存储器280中存储的第一至第三编程数据DATA111、DATA112和DATA113执行XOR运算来生成XOR奇偶校验XORP11,并且将所生成的XOR奇偶校验XORP11传送到第一缓冲存储器230。在一些实施例中,XOR奇偶校验XORP11可以是第一至第三编程数据DATA111、DATA112和DATA113的相应位的XOR运算值。因此,XOR奇偶校验XORP11可与第一至第三编程数据DATA111、DATA112和DATA113中的每一个包括相同数量的位(因为XORP11是对第一、第二和第三编程数据的逐位XOR运算)。
第一缓冲存储器230可存储从XOR运算电路250接收的XOR奇偶校验XORP11。第一缓冲存储器230可将所存储的XOR奇偶校验传送到非易失性存储器装置100。第一缓冲存储器230可保留存储在其中的XOR奇偶校验XORP11,直到完成和/或确认XOR奇偶校验XORP11在第一页面组XORPG1中的第四管芯DIE4的第一-第一页面PG11中的存储。
非易失性存储器装置100可执行编程操作,该编程操作将从第二缓冲存储器280接收的第一至第三编程数据DATA111、DATA112和DATA113存储在第一页面组XORPG1的第一至第三管芯DIE1至DIE3的第一-第一页面PG11中,并且将从第一缓冲存储器230接收的XOR奇偶校验XORP11存储在第一页面组XORPG1的第四管芯DIE4的第一-第一页面PG11中。
在一些实施例中,因为第一至第四管芯DIE1至DIE4在物理上彼此分离,所以非易失性存储器装置100可不同时将第一至第三编程数据DATA111、DATA112和DATA113以及XOR奇偶校验XORP11编程在第一至第四管芯DIE1至DIE4的第一-第一页面PG11中,因此,可从第一管芯DIE1的第一-第一页面PG11起将第一至第三编程数据DATA111、DATA112和DATA113以及XOR奇偶校验XORP11顺序地存储在第一至第四管芯DIE1至DIE4的第一-第一页面PG11中。
图9A是示出基于本公开技术的实施例的混合了编程完成页面和编程进行中页面的示例页面组的示图。图9B是示出基于本公开技术的实施例的编程完成页面发生读取失败的示例的示图。
如图9A所示,第一页面组XORPG1的第一和第二管芯DIE1和DIE2的第一-第一页面PG11可以是完成了第一和第二编程数据DATA111和DATA112的存储的“编程完成页面”(在图9A中使用密集的点图案表示)。在示例中,“编程完成页面”可指已执行第一QLC编程(例如,模糊编程操作)和第二QLC编程(例如,精细编程操作)的页面。第一页面组XORPG1的第三和第四管芯DIE3和DIE4的第一-第一页面PG11可以是未完成第三编程数据DATA113和XOR奇偶校验XORP11的存储的“编程进行中页面”(在图9B中使用稀疏的点图案表示)。在示例中,“编程进行中页面”可指仅执行了第一QLC编程(例如,模糊编程操作)的页面。在另一示例中,“编程进行中页面”可指仅执行了至少两个或更多个第一QLC编程(例如,模糊编程操作)中的第一个的页面。
稍后在图17的情况下,在文件中进一步阐明模糊编程操作和精细编程操作。
本公开技术的实施例通过访问存储当前正在从编程进行中页面读取的数据和/或奇偶校验的缓冲存储器,有助于使得即使存在编程进行中页面,也能够有效且快速地执行读取失败恢复操作(例如,芯片猎杀恢复操作)。换言之,因为不需要等待编程进行中页面变成编程完成页面,所以利用缓冲存储器(例如,第一缓冲存储器230和第二缓冲存储器280)中的可用数据和/或奇偶校验确保了恢复操作的延迟最小化。
例如,假设从主机接收到对第一页面组XORPG1的第二管芯DIE2的第一-第一页面PG11的读取请求。
虽然未在图9A和图9B中示出,但控制器200可响应于来自主机的读取请求,生成用于从第一页面组XORPG1的第二管芯DIE2的第一-第一页面PG11读出第二数据DATA112的读取命令,并且将该读取命令传送到非易失性存储器装置100。非易失性存储器装置100可基于从控制器200接收的读取命令来从第一页面组XORPG1的第二管芯DIE2的第一-第一页面PG11读取第二数据DATA112,并且将所读取的第二数据DATA112传送到控制器200。
控制器200的ECC电路240可对从非易失性存储器装置100接收的第二数据DATA112执行ECC解码,并且当ECC解码成功时,控制器200可在ECC解码成功的指示下向主机传送经错误校正的第二数据DATA112。另一方面,当ECC解码失败时,控制器200可确定已发生第二数据DATA112的读取失败,并且使用恢复电路260来执行读取失败恢复操作以恢复第二数据DATA112的错误。对于该示例,在图9B中示出了第一页面组XORPG1的第二管芯DIE2的第一-第一页面PG11中存储的第二数据DATA112的读取失败。
图10A是示出基于本公开技术的实施例的恢复电路的读取失败恢复操作的示例的示图。在读取失败数据的通常错误恢复操作中,包括存储读取失败数据的页面(在下文中,称为“读取失败页面”)的页面组中除读取失败页面之外的剩余页面中存储的数据和XOR奇偶校验可用于错误恢复操作。然而,如图10A所示,当第一页面组XORPG1是包括编程完成页面和编程进行中页面的页面组时,第一页面组XORPG1的编程进行中页面中存储的数据不可用于读取失败的第二数据DATA112的错误恢复。
在一些实施例中,可仅使用第一页面组XORPG1的页面中存储的数据来执行对读取失败的第二数据DATA112的错误恢复,并且正在对编程进行中页面执行第二QLC编程(例如,正在处理第三管芯DIE3的第一-第一页面PG11和第四管芯DIE4的第一-第一页面PG11)。在这种情况下,必须完成对第一页面组XORPG1中的编程进行中页面的编程操作,并且只有在那时,才可执行对读取失败的第二数据DATA112的错误恢复。因此,完成读取失败恢复之前的时间可增加,并且读取失败恢复操作可受到不利影响(例如,执行效率低)。
本公开技术的实施例,当包括读取失败页面的页面组中存在编程进行中页面时,提供第二缓冲存储器280和第一缓冲存储器230中存储的数据和XOR奇偶校验,以在读取失败恢复操作中用作对应于编程进行中页面的数据和XOR奇偶校验。因此,可更有效且更快地执行读取失败恢复操作。
例如,如图10A所示,为了对第一页面组XORPG1的第二管芯DIE2的第一-第一页面PG11中存储的第二数据DATA112执行读取失败恢复操作,恢复电路260必须从第一页面组XORPG1读取第一管芯DIE1的第一-第一页面PG11中存储的第一数据DATA111、第三管芯DIE3的第一-第一页面PG11中存储的第三数据DATA113以及第四管芯DIE4的第一-第一页面PG11中存储的XOR奇偶校验。
因为第一页面组XORPG1的第三和第四管芯DIE3和DIE4的第一-第一页面PG11是编程进行中页面,所以相应的第一-第一页面PG11的数据可不用于读取失败恢复操作。
因此,根据实施例的恢复电路260可从非易失性存储器装置100的存储器单元阵列110中的第一页面组XORPG1的第一管芯DIE1的第一-第一页面PG11读取第一数据DATA111,并且分别从第二缓冲存储器280和第一缓冲存储器230读取第三数据DATA113和XOR奇偶校验XORP11。例如,可从存储(或保留)编程进行中页面的相应数据和XOR奇偶校验的第二缓冲存储器280和第一缓冲存储器230读取未完成第二QLC编程的页面中存储的数据和XOR奇偶校验并使用该数据和该XOR奇偶校验。
恢复电路260可通过对第一数据DATA111、第三数据DATA113和XOR奇偶校验XORP11的相应位执行XOR运算来恢复读取失败的第二数据DATA112的错误。
图10B是示出基于本公开技术的实施例的恢复电路的读取失败恢复操作的另一示例的示图。如图10B所示,恢复电路260可通过从缓冲存储器230和280读出编程完成页面(例如,第一管芯DIE1的第一-第一页面PG11)的所有数据(例如,第一数据DATA111)和编程进行中页面(例如,第三和第四管芯DIE3和DIE4的第一-第一页面PG11)的数据(例如,第三数据DATA113和XOR奇偶校验XORP11)来执行读取失败恢复操作。在这种情况下,编程完成页面的数据可不从第二缓冲存储器280删除,并且可保留在第二缓冲存储器280中,直到完成对相同页面组的其它页面的所有编程。
图11是示出基于本公开技术的实施例的数据存储装置的示例操作方法的流程图。
在操作S1101中,控制器200可响应于从主机接收的读取请求来指导非易失性存储器装置100执行读取操作。例如,控制器200的处理器220可基于从主机接收的读取请求来生成待提供到非易失性存储器装置100的读取命令,并且通过存储器接口270将所生成的读取命令提供到非易失性存储器装置100。非易失性存储器装置100可执行读取操作,该读取操作根据从控制器200接收的读取命令来从存储器单元阵列110读出数据并且将读取的数据提供到控制器200。
在操作S1103中,控制器200可确定在读取操作期间是否发生读取失败。例如,控制器200的ECC电路240可对通过存储器接口270从非易失性存储器装置100接收的读取数据执行ECC解码。当ECC解码成功时,ECC电路240可向处理器220提供指示ECC解码成功的信息,并且同时可将经错误校正的读取数据存储在第一缓冲存储器230或第二缓冲存储器280中包括的读取缓冲器(未示出)中。当ECC解码已失败时,ECC电路240可向处理器220提供指示ECC解码失败的信息。处理器220可基于从ECC电路240接收的信息来确定是否发生读取失败。当确定未发生读取失败时,进程可进行到操作S1119,在操作S1119中,读取数据被传送到主机。当确定已发生读取失败时,进程可进行到操作S1105。
在操作S1105中,处理器220可确定包括存储读取失败数据的页面(例如,读取失败页面)的页面组中是否存在编程进行中页面。
在操作S1107中,处理器220可基于操作S1105中的确定来确定包括读取失败页面的页面组中是否存在编程进行中页面。当不存在编程进行中页面时,进程可进行到操作S1115。当存在编程进行中页面时,进程可进行到操作S1109。
在操作S1109中,处理器220可指导恢复电路260从作为数据缓冲器的第二缓冲存储器280和作为XOR奇偶校验缓冲器的第一缓冲存储器230读取对应于编程进行中页面的数据和XOR奇偶校验。
在操作S1111中,处理器220可指导恢复电路260使用包括读取失败页面的页面组中除读取失败页面之外的编程完成页面的数据,以及在操作S1109中从第一缓冲存储器230和第二缓冲存储器280读取的编程进行中页面的数据和XOR奇偶校验来恢复读取失败数据的错误。
在一些实施例中,恢复电路260可根据处理器220的控制来从非易失性存储器装置100或第二缓冲存储器280读取编程完成页面的数据。恢复电路260可通过对编程完成页面的数据以及编程进行中页面的数据和XOR奇偶校验的相应位执行XOR运算来恢复读取失败数据的错误。恢复电路260可将经错误恢复的数据存储在第一缓冲存储器230或第二缓冲存储器280中的至少一个中包括的读取缓冲器(未示出)中。
在操作S1113中,处理器220可通过主机接口210将读取缓冲器中存储的经错误恢复的数据传送到主机。
在操作S1115中,处理器220可控制恢复电路260从非易失性存储器装置100读取与页面组中除读取失败页面之外的所有剩余页面对应的数据和XOR奇偶校验。
在操作S1117中,恢复电路260可基于来自处理器220的指令,通过对在操作S1115中从非易失性存储器装置100读取的数据和XOR奇偶校验的相应位执行XOR运算来恢复读取失败数据的错误,并且将经错误恢复的数据存储在第一缓冲存储器230或第二缓冲存储器280中的至少一个中包括的读取缓冲器(未示出)中。
在操作S1119中,处理器220可通过主机接口210将在操作S1103中存储在第一缓冲存储器230或第二缓冲存储器280中包括的读取缓冲器(未示出)中的经错误校正的读取数据传送到主机。
图11所示的示例方法显示了本公开技术的实施例在存在编程进行中页面时加速读取失败恢复进程的效果。在一些实施例中,编程进行中页面可包括已完成模糊编程操作但仍在进行精细编程操作的页面。在其它实施例中,编程进行中页面可包括已完成第一模糊编程操作但仍在进行第二或后续模糊编程操作的页面。
图12是示出基于本公开技术的实施例的包括固态驱动器(SSD)的数据处理系统的示例的示图。如图12所示,数据处理系统2000可包括主机装置2100和SSD 2200。
在一些实施例中,SSD 2200可包括控制器2210、缓冲存储器装置2220、非易失性存储器装置2231至223n、电源2240、信号连接器2250和电源连接器2260。
在示例中,控制器2210可控制SSD 2220的整体操作。
在一些实施例中,缓冲存储器装置2220可临时存储待存储在非易失性存储器装置2231至223n中的数据。缓冲存储器装置2220可临时存储从非易失性存储器装置2231至223n读取的数据。基于来自控制器2210的指令,临时存储在缓冲存储器装置2220中的数据可被传送到主机装置2100或非易失性存储器装置2231至223n。
在一些实施例中,非易失性存储器装置2231至223n可用作SSD 2200的存储介质。非易失性存储器装置2231至223n可通过多个通道CH1至CHn联接到控制器2210。在示例中,一个或多个非易失性存储器装置可联接到一个通道。联接到一个通道的非易失性存储器装置可联接到相同的信号总线和相同的数据总线。
在一些实施例中,电源2240可将通过电源连接器2260输入的电力PWR提供到SSD2200的内部。电源2240可包括辅助电源2241,该辅助电源2241供应电力以确保SSD 2200即使在发生突然(或意外)断电时也正常终止。在示例中,辅助电源2241可包括能够充电电力PWR的大容量电容器。
在一些实施例中,控制器2210可通过信号连接器2250与主机装置2100交换信号SGL。信号SGL可包括命令、地址、数据等。信号连接器2250可以是各种类型的连接器中的一种,并且基于主机装置2100与SSD 2200之间的接口连接方法。
图13是示出图12的控制器2210的示例的示图。如图13所示,控制器2210可包括主机接口2211、控制器2212、随机存取存储器(RAM)2213、错误校正码(ECC)组件2214和存储器接口2215。
在一些实施例中,主机接口2211可根据主机装置2100的协议来执行主机装置2100和SSD 2200之间的接口连接功能。在示例中,主机接口2211可通过以下中的任意一种与主机装置2100通信:安全数字协议、通用串行总线(USB)协议、多媒体卡(MMC)协议、嵌入式MMC(eMMC)协议、个人计算机存储卡国际协会(PCMCIA)协议、并行高级技术附件(PATA)协议、串行高级技术附件(SATA)协议、小型计算机系统接口(SCSI)协议、串列SCSI(SAS)协议、外围组件互连(PCI)协议、高速PCI(PCI-E)协议和通用闪存(UFS)协议。在另一示例中,主机接口2211可执行磁盘模拟功能,即主机装置2100将SSD 2200识别为例如硬盘驱动器HDD的通用数据存储装置。
在一些实施例中,控制器2212可分析和处理从主机装置2100输入的信号SGL。在示例中,控制器2212可基于限定SDD 2200的操作的固件和/或软件来控制内部功能块的操作。在另一示例中,RAM 2213可作为用于运行固件或软件的工作存储器而操作。
在一些实施例中,ECC组件2214可生成待传送到非易失性存储器装置2231至223n的数据的奇偶校验数据。所生成的奇偶校验数据可与该数据一起存储在非易失性存储器装置2231至223n中。在其它实施例中,ECC组件2214可基于奇偶校验数据来检测从非易失性存储器装置2231至223n读取的数据的错误。当检测到的错误在可校正的范围内(例如,检测到的错误的数量少于ECC的错误校正能力)时,ECC组件2214可校正检测到的错误。
在一些实施例中,存储器接口2215可基于来自控制器2212的指令,将诸如命令和/或地址的控制信号提供至非易失性存储器装置2231至223n。存储器接口2215可基于来自控制器2212的指令与非易失性存储器装置2231至223n交换数据。例如,存储器接口2215可将存储在缓冲存储器装置2220中的数据提供到非易失性存储器装置2231至223n,或者将从非易失性存储器装置2231至223n读取的数据提供到缓冲存储器装置2220。
图14是示出基于本公开技术的实施例的包括数据存储装置的数据处理系统的示例的示图。如图14所示,数据处理系统3000可包括主机装置3100和数据存储装置3200。
在一些实施例中,主机装置3100可被实施为板(例如,印刷电路板(PCB))。虽然未在图14中示出,但主机装置3100可包括被配置成执行主机装置3100的功能的内部功能块。
在一些实施例中,主机装置3100可包括诸如插座、插槽或连接器的连接端子3110。数据存储装置3200可安装在连接端子3110上。
在一些实施例中,数据存储装置3200可被实施为板(例如,PCB)。在示例中,数据存储装置3200可指存储器模块或存储卡。在另一示例中,数据存储装置3200可包括控制器3210、缓冲存储器装置3220、非易失性存储器装置3231和3232、电源管理集成电路(PMIC)3240和连接端子3250。
在一些实施例中,控制器3210可控制数据存储装置3200的整体操作。例如,控制器3210可与图13所示的控制器2210具有相同的配置。
在一些实施例中,缓冲存储器装置3220可临时存储待存储在非易失性存储器装置3231和3232中的数据。在示例中,缓冲存储器装置3220可临时存储从非易失性存储器装置3231和3232读取的数据。在另一示例中,根据控制器3210的控制,临时存储在缓冲存储器装置3220中的数据可被传送到主机装置3100或非易失性存储器装置3231和3232。
在一些实施例中,非易失性存储器装置3231和3232可用作数据存储装置3200的存储介质。
在一些实施例中,PMIC 3240可通过连接端子3250将电力提供到数据存储装置3200的内部。在示例中,PMIC 3240可基于来自控制器3210的指令来管理数据存储装置3200的电力。
在一些实施例中,连接端子3250可联接到主机装置3100的连接端子3110。可通过连接端子3250在主机装置3100和数据存储装置3200之间传送诸如命令、地址、数据的信号和/或电力。根据主机装置3100与数据存储装置3200之间的接口,连接端子3250可以各种形式来配置。连接端子3250可被布置在数据存储装置3200的任意一侧。
图15是示出基于本公开技术的实施例的包括数据存储装置的数据处理系统的示例的示图。如图15所示,数据处理系统4000可包括主机装置4100和数据存储装置4200。
在一些实施例中,主机装置4100可被实施为板(例如,PCB)。虽然未在图15中示出,但主机装置4100可包括被配置成执行主机装置4100的功能的内部功能块。
在一些实施例中,数据存储装置4200可以表面安装封装形式来实施。在示例中,数据存储装置4200可通过焊球4250安装在主机装置4100上。在另一示例中,数据存储装置4200可包括控制器4210、缓冲存储器装置4220和非易失性存储器装置4230。
在一些实施例中,控制器4210可控制数据存储装置4200的整体操作。控制器4210可与图13所示的控制器2210具有相同的配置。
在一些实施例中,缓冲存储器装置4220可临时存储待存储在非易失性存储器装置4230中的数据。在示例中,缓冲存储器装置4220可临时存储从非易失性存储器装置4230读取的数据。在另一示例中,通过控制器4210的控制,临时存储在缓冲存储器装置4220中的数据可被传送到主机装置4100或非易失性存储器装置4230。
在一些实施例中,非易失性存储器装置4230可用作数据存储装置4200的存储介质。
图16是示出基于本公开技术的实施例的包括数据存储装置的网络系统5000的示例的示图。如图16所示,网络系统5000可包括通过网络5500联接的服务器系统5300和多个客户端系统5410至5430。
在一些实施例中,服务器系统5300可响应于多个客户端系统5410至5430的请求来服务数据。在示例中,服务器系统5300可存储从多个客户端系统5410至5430提供的数据。在另一示例中,服务器系统5300可将数据提供到多个客户端系统5410至5430。
在一些实施例中,服务器系统5300可包括主机装置5100和数据存储装置5200。数据存储装置5200可以是图1的数据存储装置10、图12的SSD 2200、图14的数据存储装置3200或图15的数据存储装置4200。
图17是示出两阶段模糊和精细写入操作的示例的示图。如图17所示,写入三个中间级分布FMA、FMB和FMC(模糊写入),然后使用中间级分布FMA至FMC来写入最终目标阈值电压分布A、B和C(精细写入)。在该方案中,以上述伪负感测(pseudo-negative sense)方案执行中间级分布FMA、FMB和FMC的验证操作。
模糊写入是对上部页面数据/下部页面数据的粗略写入。精细写入是对上部页面数据/下部页面数据的精确写入。具体地,将模糊写入操作和精细写入操作作为两阶段写入操作来执行。
如图17所示,将描述包括模糊写入操作和精细写入操作的四级存储方案中的写入操作。首先,从所有存储器单元都被擦除的状态(1)开始,执行对存储器单元的模糊写入操作(2)。参照图17,模糊写入操作是使用小于最终目标阈值电压分布E、A、B和C的下限的验证电压VAV'、VBV'或VCV'来获得中间级分布FMA、FMB或FMC的写入操作。
然后执行对存储器单元的精细写入操作(3)。精细写入操作使用等于最终目标阈值电压分布E、A、B和C的下限的验证电压VAV、VBV或VCV来将中间级分布FMA、FMB或FMC沿正方向偏移,以获得阈值电压分布E、A、B或C。具体地,模糊写入的验证电压VAV'、VBV'和VCV'低于精细写入的各个验证电压VAV、VBV和VCV。同样,中间级分布FMA、FMB和FMC的下限小于各个阈值电压分布A、B和C的下限。注意的是,中间级分布FMA、FMB和FMC的上限可高于各个阈值电压分布A、B和C的上限。
中间级分布FMA、FMB和FMC在写入阈值电压分布A、B和C之前被写入,并且未分配有最终数据。具体地,将存储器单元读取设置为落入阈值电压分布E和A至C中的两个的上限和下限之间的读取电压RA、RB和RC。
本公开技术的实施例提供了用于提高读取失败恢复操作的效率的方法、系统和装置。示例数据存储装置包括:非易失性存储器装置,包括多个页面组;数据缓冲器,被配置成存储待存储在多个页面组中的每一个的数据页面中的数据;异或(XOR)奇偶校验缓冲器,被配置成存储待存储在多个页面组中的每一个的XOR奇偶校验页面中的XOR奇偶校验;以及处理器,被配置成当在根据来自主机的读取请求执行读取操作期间发生读取失败时在包括存储读取失败数据的读取失败页面的页面组中存在编程进行中页面时,控制从数据缓冲器和XOR奇偶校验缓冲器读取与编程进行中页面对应的数据和XOR奇偶校验,并且控制使用与除读取失败页面之外的编程完成页面对应的数据以及从数据缓冲器和XOR奇偶校验缓冲器读取的数据和XOR奇偶校验来恢复读取失败数据的错误。
在一些实施例中,数据存储装置进一步包括:XOR运算电路,被配置成通过对待存储在多个页面组中的每一个的数据页面中的数据执行XOR运算来生成XOR奇偶校验;以及恢复电路,被配置成通过对与编程完成页面对应的数据以及从数据缓冲器和XOR奇偶校验缓冲器读取的数据和XOR奇偶校验的相应位执行XOR运算来恢复读取失败数据的错误。在其它实施例中,处理器控制恢复电路从非易失性存储器装置读取与除读取失败页面之外的编程完成页面对应的数据。在另外的其它实施例中,处理器控制恢复电路从数据缓冲器读取与除读取失败页面之外的编程完成页面对应的数据。在这些实施例中,当包括读取失败页面的页面组中不存在编程进行中页面时,处理器控制恢复电路通过从非易失性存储器装置读取与页面组中除读取失败页面之外的剩余页面对应的数据和XOR奇偶校验来恢复读取失败数据的错误。
在一些实施例中,多个页面组中的每一个包括多个管芯,并且每个页面组中包括的页面包括管芯中的每一个中联接到相同字线的一个页面。在其它实施例中,多个页面组中的每一个包括多个管芯,并且每个页面组中包括的页面包括管芯中的每一个中联接到相同字线的多个页面。
另一示例数据存储装置包括:非易失性存储器装置,包括混合了编程完成页面和编程进行中页面的页面组;缓冲存储器,被配置成缓冲待存储在页面组的页面中的数据和异或(XOR)奇偶校验;恢复电路,被配置成恢复读取失败数据的错误;以及处理器,被配置成控制恢复电路从缓冲存储器读取与编程进行中页面对应的数据和XOR奇偶校验,并且使用与编程完成页面之中除存储读取失败数据的页面之外的剩余编程完成页面对应的数据以及从缓冲存储器读取的数据和XOR奇偶校验来恢复读取失败数据的错误。
在一些实施例中,缓冲存储器包括:数据缓冲器,被配置成缓冲待存储在页面组的页面中的数据;以及XOR奇偶校验缓冲器,被配置成缓冲XOR奇偶校验。在一些实施例中,数据存储装置进一步包括:XOR运算电路,被配置成通过对缓冲在数据缓冲器中的数据执行XOR运算来生成XOR奇偶校验。
在一些实施例中,恢复电路通过对与剩余编程完成页面对应的数据以及从缓冲存储器读取的数据和XOR奇偶校验的相应位执行XOR运算来恢复读取失败数据的错误。在其它实施例中,处理器控制恢复电路从非易失性存储器装置读取与剩余编程完成页面对应的数据。在另外的其它实施例中,处理器控制恢复电路从缓冲存储器读取与剩余编程完成页面对应的数据。
提供一种数据存储装置的操作方法,该方法包括:响应于来自主机的读取请求,对非易失性存储器装置执行读取操作;在发生读取失败时,确认在包括存储读取失败数据的页面的页面组中是否存在一个或多个编程进行中页面;当页面组中存在编程进行中页面时,从缓冲存储器读取与编程进行中页面对应的数据和异或(XOR)奇偶校验;以及使用与除存储读取失败数据的页面之外的编程完成页面对应的数据以及从缓冲存储器读取的数据和XOR奇偶校验来恢复读取失败数据的错误。
在一些实施例中,该方法进一步包括:在恢复读取失败数据的错误之前,从非易失性存储器装置读取与编程完成页面对应的数据。在其它实施例中,该方法进一步包括:在恢复读取失败数据的错误之前,从缓冲存储器读取与编程完成页面对应的数据。
在一些实施例中,确认是否存在一个或多个编程进行中页面包括:当页面组中不存在编程进行中页面时,读取与页面组的页面之中除存储读取失败数据的页面之外的剩余页面对应的数据和XOR奇偶校验。
在一些实施例中,恢复读取失败数据的错误包括:对与编程完成页面对应的数据以及从缓冲存储器读取的数据和XOR奇偶校验的相应位执行XOR运算。
在一些实施例中,编程完成页面是执行了第一编程操作和第二编程操作两者的页面,并且编程进行中页面是执行了第一编程操作而未执行第二编程操作的页面。
虽然已参照本公开技术的某些示例实施例示出和描述了本公开技术,但本领域技术人员将理解的是,在不脱离如所附权利要求及其等同方案所限定的本公开技术的精神和范围的情况下,可在形式和细节上进行各种改变。因此,本公开技术的范围不应限于上述示例实施例,而是应不仅由所附权利要求还由其等同方案确定。
在上述实施例中,可选择性地执行所有步骤,或可省略部分步骤。在每个实施例中,步骤不一定按照所描述的顺序执行,并且可重新排列。本说明书和附图中公开的实施例仅是帮助理解本公开技术的示例,并且本公开技术不限于此。也就是说,对于本领域技术人员应显而易见的是,可基于本公开技术的技术范围进行各种修改。
同时,已在附图和说明书中描述了本公开技术的示例实施例。虽然本文使用了特定的术语,但这些术语只是为了解释本公开技术的实施例。因此,本公开技术不限于上述实施例,并且在本公开技术的精神和范围内可进行许多变化。对于本领域技术人员应显而易见的是,除本文公开的实施例之外,还可基于本公开技术的技术范围进行各种修改。
Claims (19)
1.一种数据存储装置,包括:
非易失性存储器装置,包括多个页面组;
数据缓冲器,存储待存储在所述多个页面组中的每一个的数据页面中的数据;
异或奇偶校验缓冲器,即XOR奇偶校验缓冲器,存储待存储在所述多个页面组中的每一个的XOR奇偶校验页面中的XOR奇偶校验;以及
处理器,当在根据来自主机的读取请求执行读取操作期间发生读取失败时在包括存储读取失败数据的读取失败页面的页面组中存在编程进行中页面时,控制从所述数据缓冲器和所述XOR奇偶校验缓冲器读取与所述编程进行中页面对应的数据和XOR奇偶校验,并且控制使用与除所述读取失败页面之外的编程完成页面对应的数据以及从所述数据缓冲器和所述XOR奇偶校验缓冲器读取的数据和XOR奇偶校验来恢复所述读取失败数据的错误,
其中所述编程完成页面是执行了第一编程操作和第二编程操作两者的页面,从而所述编程完成页面的阈值电压分布达到了最终目标阈值电压分布,并且
所述编程进行中页面是执行了所述第一编程操作而未执行所述第二编程操作的页面,从而所述编程进行中页面的阈值电压分布未达到所述最终目标阈值电压分布。
2.根据权利要求1所述的数据存储装置,进一步包括:
XOR运算电路,通过对待存储在所述多个页面组中的每一个的数据页面中的数据执行XOR运算来生成所述XOR奇偶校验。
3.根据权利要求1所述的数据存储装置,进一步包括:
恢复电路,通过对与所述编程完成页面对应的数据以及从所述数据缓冲器和所述XOR奇偶校验缓冲器读取的数据和XOR奇偶校验的相应位执行XOR运算来恢复所述读取失败数据的错误。
4.根据权利要求3所述的数据存储装置,其中所述处理器控制所述恢复电路从所述非易失性存储器装置读取与除所述读取失败页面之外的所述编程完成页面对应的数据。
5.根据权利要求3所述的数据存储装置,其中所述处理器控制所述恢复电路从所述数据缓冲器读取与除所述读取失败页面之外的所述编程完成页面对应的数据。
6.根据权利要求3所述的数据存储装置,其中当包括所述读取失败页面的所述页面组中不存在所述编程进行中页面时,所述处理器控制所述恢复电路通过从所述非易失性存储器装置读取与所述页面组中除所述读取失败页面之外的剩余页面对应的数据和XOR奇偶校验来恢复所述读取失败数据的错误。
7.根据权利要求1所述的数据存储装置,其中所述多个页面组中的每一个包括多个管芯,并且
每个页面组中包括的页面包括所述管芯中的每一个中联接到相同字线的一个页面。
8.根据权利要求1所述的数据存储装置,其中所述多个页面组中的每一个包括多个管芯,并且
每个页面组中包括的页面包括所述管芯中的每一个中联接到相同字线的多个页面。
9.一种数据存储装置,包括:
非易失性存储器装置,包括混合了编程完成页面和编程进行中页面的页面组;
缓冲存储器,缓冲待存储在所述页面组的页面中的数据和异或奇偶校验即XOR奇偶校验;
恢复电路,恢复读取失败数据的错误;以及
处理器,控制所述恢复电路从所述缓冲存储器读取与所述编程进行中页面对应的数据和XOR奇偶校验,并且使用与所述编程完成页面之中除存储所述读取失败数据的页面之外的剩余编程完成页面对应的数据以及从所述缓冲存储器读取的数据和XOR奇偶校验来恢复所述读取失败数据的错误,
其中所述编程完成页面是执行了第一编程操作和第二编程操作两者的页面,从而所述编程完成页面的阈值电压分布达到了最终目标阈值电压分布,并且
所述编程进行中页面是执行了所述第一编程操作而未执行所述第二编程操作的页面,从而所述编程进行中页面的阈值电压分布未达到所述最终目标阈值电压分布。
10.根据权利要求9所述的数据存储装置,其中所述缓冲存储器包括:
数据缓冲器,缓冲待存储在所述页面组的页面中的数据;以及
XOR奇偶校验缓冲器,缓冲所述XOR奇偶校验。
11.根据权利要求10所述的数据存储装置,进一步包括:
XOR运算电路,通过对缓冲在所述数据缓冲器中的数据执行XOR运算来生成所述XOR奇偶校验。
12.根据权利要求9所述的数据存储装置,其中所述恢复电路通过对与所述剩余编程完成页面对应的数据以及从所述缓冲存储器读取的数据和XOR奇偶校验的相应位执行XOR运算来恢复所述读取失败数据的错误。
13.根据权利要求9所述的数据存储装置,其中所述处理器控制所述恢复电路从所述非易失性存储器装置读取与所述剩余编程完成页面对应的数据。
14.根据权利要求9所述的数据存储装置,其中所述处理器控制所述恢复电路从所述缓冲存储器读取与所述剩余编程完成页面对应的数据。
15.一种数据存储装置的操作方法,包括:
响应于来自主机的读取请求,对非易失性存储器装置执行读取操作;
在发生读取失败时,确认在包括存储读取失败数据的页面的页面组中是否存在一个或多个编程进行中页面;
当所述页面组中存在所述编程进行中页面时,从缓冲存储器读取与所述编程进行中页面对应的数据和异或奇偶校验即XOR奇偶校验;以及
使用与除存储所述读取失败数据的页面之外的编程完成页面对应的数据以及从所述缓冲存储器读取的数据和XOR奇偶校验来恢复所述读取失败数据的错误,
其中所述编程完成页面是执行了第一编程操作和第二编程操作两者的页面,从而所述编程完成页面的阈值电压分布达到了最终目标阈值电压分布,并且
所述编程进行中页面是执行了所述第一编程操作而未执行所述第二编程操作的页面,从而所述编程进行中页面的阈值电压分布未达到所述最终目标阈值电压分布。
16.根据权利要求15所述的方法,进一步包括:在恢复所述读取失败数据的错误之前,从所述非易失性存储器装置读取与所述编程完成页面对应的数据。
17.根据权利要求15所述的方法,进一步包括:在恢复所述读取失败数据的错误之前,从所述缓冲存储器读取与所述编程完成页面对应的数据。
18.根据权利要求15所述的方法,其中确认是否存在一个或多个编程进行中页面包括:当所述页面组中不存在所述编程进行中页面时,读取与所述页面组的页面之中除存储所述读取失败数据的页面之外的剩余页面对应的数据和XOR奇偶校验。
19.根据权利要求15所述的方法,其中恢复所述读取失败数据的错误包括:对与所述编程完成页面对应的数据以及从所述缓冲存储器读取的数据和XOR奇偶校验的相应位执行XOR运算。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190001712A KR20200085519A (ko) | 2019-01-07 | 2019-01-07 | 데이터 저장 장치 및 그것의 동작 방법 |
KR10-2019-0001712 | 2019-01-07 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111415699A CN111415699A (zh) | 2020-07-14 |
CN111415699B true CN111415699B (zh) | 2023-09-26 |
Family
ID=71404418
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910994869.5A Active CN111415699B (zh) | 2019-01-07 | 2019-10-18 | 数据存储装置及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10963339B2 (zh) |
KR (1) | KR20200085519A (zh) |
CN (1) | CN111415699B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102624620B1 (ko) * | 2018-11-02 | 2024-01-15 | 에스케이하이닉스 주식회사 | 메모리 장치 및 이를 포함하는 메모리 시스템 |
US11029874B2 (en) * | 2019-07-30 | 2021-06-08 | Western Digital Technologies, Inc. | Rolling XOR protection in efficient pipeline |
KR20210111561A (ko) * | 2020-03-03 | 2021-09-13 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그것의 동작 방법 |
US11914886B2 (en) * | 2020-10-02 | 2024-02-27 | Western Digital Technologies, Inc. | Nonvolatile memory with on-chip encoding for foggy-fine programming |
KR20220057354A (ko) | 2020-10-29 | 2022-05-09 | 삼성전자주식회사 | 문턱 전압 산포 특성을 향상한 메모리 컨트롤러, 메모리 시스템 및 그 동작 방법 |
US11650756B2 (en) | 2020-12-28 | 2023-05-16 | Western Digital Technologies, Inc. | Nonvolatile memory with encoding for foggy-fine programming with soft bits |
US11495296B2 (en) * | 2021-01-20 | 2022-11-08 | Western Digital Technologies, Inc. | Read threshold calibration for nonvolatile memory with encoded foggy-fine programming |
US11409601B1 (en) * | 2021-01-26 | 2022-08-09 | Micron Technology, Inc. | Memory device protection |
CN113703684B (zh) * | 2021-08-31 | 2024-06-11 | 长江存储科技有限责任公司 | 基于raid的数据存储方法、数据读取方法及存储器系统 |
US11531473B1 (en) | 2021-09-10 | 2022-12-20 | Western Digital Technologies, Inc. | Selective HMB backup in NVM for low power mode |
KR102403477B1 (ko) | 2021-11-12 | 2022-05-30 | 삼성전자주식회사 | 스토리지 장치와 이를 포함하는 호스트-스토리지 시스템 |
US11935609B2 (en) * | 2022-05-12 | 2024-03-19 | Western Digital Technologies, Inc. | Linked XOR flash data protection scheme |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5220569A (en) * | 1990-07-09 | 1993-06-15 | Seagate Technology, Inc. | Disk array with error type indication and selection of error correction method |
CN102124527A (zh) * | 2008-05-16 | 2011-07-13 | 弗森-艾奥公司 | 用于检测和替代失效的数据存储器的装置、系统和方法 |
US8707104B1 (en) * | 2011-09-06 | 2014-04-22 | Western Digital Technologies, Inc. | Systems and methods for error injection in data storage systems |
CN104919434A (zh) * | 2012-12-07 | 2015-09-16 | 西部数据技术公司 | 用于在固态驱动器中进行较低页数据恢复的系统和方法 |
CN107240418A (zh) * | 2016-03-28 | 2017-10-10 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN107799149A (zh) * | 2016-08-29 | 2018-03-13 | 爱思开海力士有限公司 | 数据存储装置及其操作方法 |
CN108062258A (zh) * | 2016-11-08 | 2018-05-22 | 爱思开海力士有限公司 | 用于错误恢复的循环交错的xor阵列 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006079380A (ja) * | 2004-09-10 | 2006-03-23 | Hitachi Ltd | ディスクアレイ装置 |
US8327224B2 (en) * | 2009-04-16 | 2012-12-04 | Micron Technology, Inc. | Data recovery in a solid state storage system |
EP2513795B1 (en) | 2009-12-16 | 2014-03-12 | SanDisk IL Ltd | Auxiliary parity bits for data written in multi-level cells |
KR101623119B1 (ko) * | 2010-02-01 | 2016-05-20 | 삼성전자주식회사 | 솔리드 스테이트 드라이브의 에러 제어 방법 |
KR101925383B1 (ko) * | 2012-07-23 | 2018-12-05 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 그것의 데이터 관리 방법 |
JP2015018451A (ja) * | 2013-07-11 | 2015-01-29 | 株式会社東芝 | メモリコントローラ、記憶装置およびメモリ制御方法 |
US9571125B2 (en) * | 2013-10-03 | 2017-02-14 | Futurewei Technologies, Inc. | Systems and methods of vector-DMA cache-XOR for MPCC erasure coding |
KR102573301B1 (ko) * | 2016-07-15 | 2023-08-31 | 삼성전자 주식회사 | Raid 리커버리를 수행하는 메모리 시스템 및 그 동작방법 |
US10339000B2 (en) * | 2016-09-13 | 2019-07-02 | Sandisk Technologies Llc | Storage system and method for reducing XOR recovery time by excluding invalid data from XOR parity |
US10102071B2 (en) * | 2016-09-26 | 2018-10-16 | Toshiba Memory Corporation | Storage device that restores data lost during a subsequent data write |
-
2019
- 2019-01-07 KR KR1020190001712A patent/KR20200085519A/ko not_active Application Discontinuation
- 2019-10-02 US US16/591,272 patent/US10963339B2/en active Active
- 2019-10-18 CN CN201910994869.5A patent/CN111415699B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5220569A (en) * | 1990-07-09 | 1993-06-15 | Seagate Technology, Inc. | Disk array with error type indication and selection of error correction method |
CN102124527A (zh) * | 2008-05-16 | 2011-07-13 | 弗森-艾奥公司 | 用于检测和替代失效的数据存储器的装置、系统和方法 |
US8707104B1 (en) * | 2011-09-06 | 2014-04-22 | Western Digital Technologies, Inc. | Systems and methods for error injection in data storage systems |
CN104919434A (zh) * | 2012-12-07 | 2015-09-16 | 西部数据技术公司 | 用于在固态驱动器中进行较低页数据恢复的系统和方法 |
CN107240418A (zh) * | 2016-03-28 | 2017-10-10 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN107799149A (zh) * | 2016-08-29 | 2018-03-13 | 爱思开海力士有限公司 | 数据存储装置及其操作方法 |
CN108062258A (zh) * | 2016-11-08 | 2018-05-22 | 爱思开海力士有限公司 | 用于错误恢复的循环交错的xor阵列 |
Also Published As
Publication number | Publication date |
---|---|
US20200218606A1 (en) | 2020-07-09 |
US10963339B2 (en) | 2021-03-30 |
KR20200085519A (ko) | 2020-07-15 |
CN111415699A (zh) | 2020-07-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111415699B (zh) | 数据存储装置及其操作方法 | |
CN107799149B (zh) | 数据存储装置及其操作方法 | |
US10877697B2 (en) | Data storage device and operating method thereof | |
CN109992202B (zh) | 数据存储设备、其操作方法以及包括其的数据处理系统 | |
CN110413446B (zh) | 数据存储设备及其操作方法 | |
US10403376B2 (en) | Data storage device and operating method thereof | |
CN110970074B (zh) | 存储器系统及其操作方法 | |
CN111124273B (zh) | 数据存储装置及数据存储装置的操作方法 | |
US10902928B2 (en) | Memory system, operation method thereof, and nonvolatile memory device | |
US10545689B2 (en) | Data storage device and operating method thereof | |
CN109407966B (zh) | 数据存储装置及其操作方法 | |
CN110010185B (zh) | 存储器系统及其操作方法 | |
CN115938446A (zh) | 存储器装置、其操作方法以及存储器系统 | |
US11263126B2 (en) | Data storage device and operating method thereof | |
CN110032466B (zh) | 数据存储装置及其操作方法 | |
CN112988045A (zh) | 数据存储装置及其操作方法 | |
CN117437957A (zh) | 存储器系统、存储器装置和操作存储器装置的方法 | |
CN115527596A (zh) | 用于在非易失性存储器装置中编程数据的设备及系统 | |
US9966148B1 (en) | Data storage device and operating method thereof | |
CN112084118A (zh) | 数据存储装置及其操作方法 | |
CN112151100A (zh) | 控制器、存储器系统及其操作方法 | |
US12056367B2 (en) | Memory system and operating method thereof for performing urgent fine program operation | |
CN115116500A (zh) | 用于提高存储器装置的数据输入/输出速度的设备和方法 | |
CN115620783A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |