CN111258794A - 存储器系统及其操作方法 - Google Patents
存储器系统及其操作方法 Download PDFInfo
- Publication number
- CN111258794A CN111258794A CN201910910086.4A CN201910910086A CN111258794A CN 111258794 A CN111258794 A CN 111258794A CN 201910910086 A CN201910910086 A CN 201910910086A CN 111258794 A CN111258794 A CN 111258794A
- Authority
- CN
- China
- Prior art keywords
- read
- data
- memory
- threshold
- controller
- 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.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/073—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
-
- 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
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/22—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using ferroelectric elements
- G11C11/225—Auxiliary circuits
- G11C11/2273—Reading or sensing circuits or methods
-
- 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 OR CALCULATING; 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/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0751—Error or fault detection not based on redundancy
- G06F11/0754—Error or fault detection not based on redundancy by exceeding limits
- G06F11/076—Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0793—Remedial or corrective actions
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/1048—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 arrangements adapted for a specific error detection or correction feature
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- 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
- 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
- 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/50—Marginal testing, e.g. race, voltage or current testing
- G11C29/50004—Marginal testing, e.g. race, voltage or current testing of threshold voltage
-
- 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/81—Threshold
-
- 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
- G11C2029/0409—Online test
-
- 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
- G11C2029/0411—Online error correction
-
- 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/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/021—Detection or location of defective auxiliary circuits, e.g. defective refresh counters in voltage or current generators
-
- 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/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/028—Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
本文描述了存储器系统及其操作方法。一种存储器系统包括存储器装置和控制器,控制器适于校正通过由存储器装置响应于从主机提供的读取命令而执行的第一读取操作来读取的请求数据中包括的错误,并且将校正的数据提供给主机,其中控制器包括适于执行第一读取操作的第一读取处理器、适于执行第二读取操作的第二读取处理器、适于执行第三读取操作的第三读取处理器、以及适于通过电子升压操作来检测最佳读取电压并且执行第四读取操作的第四读取处理器。
Description
相关申请的交叉引用
本申请要求于2018年11月30日提交的韩国专利申请No.10-2018-0151629的优先权,其公开内容通过引用整体并入本文。
技术领域
本发明的各种示例性实施例涉及数据处理系统,并且更具体地涉及能够有效地执行读取操作的存储器系统及其操作方法。
背景技术
计算机环境范例已经转移到普适计算,这使得计算系统能够随时随地被使用。结果,诸如移动电话、数码相机和膝上型计算机等便携式电子装置的使用迅速增加。这些便携式电子装置通常使用具有一个或多个存储器装置的存储器系统来存储数据。存储器系统可以被用作便携式电子装置的主存储器装置或辅助存储器装置。
与硬盘装置相比,存储器系统提供优异的稳定性、耐用性、高信息访问速度和低功耗,因为它们没有移动部件。具有这样的优点的存储器系统的示例包括通用串行总线(USB)存储器装置、具有各种接口的存储器卡和固态驱动器(SSD)。
发明内容
本发明的各种实施例涉及存储器系统,当读取数据中包括的错误位的数目大于或等于预定阈值时,该存储器系统能够通过跳过读取重试操作来执行读取操作。
根据本发明的实施例,一种存储器系统包括存储器装置和控制器,控制器适于响应于来自主机的读取命令而控制存储器装置对请求数据执行读取操作,从存储器装置接收与读取操作相对应的请求数据,校正请求数据的错误以生成校正数据,并且将校正数据提供给主机,其中控制器包括:第一读取处理器,其适于响应于读取命令而执行读取请求数据作为第一数据的第一读取操作;第二读取处理器,其适于当第一数据的错误位的数目大于或等于第一阈值并且小于第二阈值时,执行使用存储在读取历史表中的电压来再次读取请求数据作为第二数据的第二读取操作;第三读取处理器,其适于当第二数据的错误位的数目等于或大于第一阈值时,执行使用存储在预定表中的电压来再次读取请求数据作为第三数据的第三读取操作;以及第四读取处理器,其适于当第三数据的错误位的数目等于或大于第一阈值时,通过电子升压操作来检测最佳读取电压,并且执行使用最佳读取电压来再次读取请求数据作为第四数据的第四读取操作,其中当第一数据的错误位的数目大于或等于第二阈值时,第四读取处理器执行第四读取操作。
根据本发明的实施例,一种存储器系统的操作方法包括:响应于从主机提供的读取命令而读取请求数据作为第一数据的第一读取步骤;当第一数据的错误位的数目大于或等于第一阈值并且小于第二阈值时使用存储在读取历史表中的电压来再次读取请求数据作为第二数据的第二读取步骤;当第二数据的错误位的数目大于或等于第一阈值时使用存储在预定表中的电压来再次读取请求数据作为第三数据的第三读取步骤;以及当第三数据的错误位的数目等于或大于第一阈值时通过电子升压操作来检测最佳读取电压并且使用最佳读取电压来再次读取请求数据作为第四数据的第四读取步骤,其中当第一数据的错误位的数目大于或等于第二阈值时,执行第四读取步骤。
根据本发明的实施例,一种存储器系统包括:存储器装置,其包括多个存储器块;以及控制器,其适于从主机接收读取命令并且响应于读取命令而控制存储器装置执行读取操作,其中控制器适于:响应于读取命令而使用读取电压从存储器块读取请求数据作为第一读取数据;确定第一读取数据的错误位的数目是否大于或等于第一阈值;当确定第一读取数据的错误位的数目大于或等于第一阈值时,确定第一读取数据的错误位的数目是否大于或等于第二阈值;当确定第一读取数据的错误位的数目小于第二阈值时,使用读取电压从存储器块读取请求数据作为第二读取数据;以及当确定第一读取数据的错误位的数目大于或等于第二阈值时,使用通过电子升压操作而生成的最佳读取电压来从存储器块读取请求数据作为附加读取数据。
附图说明
图1是示出根据本发明的实施例的包括存储器系统的数据处理系统的框图。
图2是示出图1所示的存储器系统中采用的存储器装置的示意图。
图3是示出图1所示的存储器装置中的存储器块的存储器单元阵列的电路图。
图4是示出根据本发明的实施例的存储器系统的存储器装置的框图。
图5是示意性地示出3位多级单元(MLC)非易失性存储器装置的编程和擦除状态的阈值电压分布。
图6是示意性地示出由于3位多级单元(MLC)非易失性存储器装置的特性劣化而导致的编程和擦除状态的阈值电压分布。
图7是示出校正读取数据中包括的错误位的传统过程的流程图。
图8是示出根据实施例的包括控制器的数据处理系统的图。
图9是示出根据实施例的数据处理系统的操作过程的流程图。
图10至图18是示意性地示出根据本发明的各种实施例的数据处理系统的示例性应用的图。
具体实施方式
下面将参考附图更详细地描述本发明的示例性实施例。然而,本发明可以以不同的形式实现,并且不应当被解释为限于本文中阐述的实施例。相反,提供这些实施例是为了使得本公开将彻底和完整并且向本领域技术人员充分传达本发明的范围。贯穿本公开,在本发明的各个图和实施例中,相同的附图标记指代相同的部件。
应当注意,对“实施例”的引用不一定仅表示一个实施例,并且对“实施例”的不同引用不一定是指相同的实施例。
应当理解,尽管本文中可以使用术语“第一”和/或“第二”来描述各种要素,但是这些要素不应当受这些术语的限制。这些术语仅用于将一个要素与另一要素区分开。例如,在不脱离本公开的教导的情况下,下面讨论的第一要素可以称为第二要素。类似地,第二要素也可以称为第一要素。
应当理解,当一个元件被称为“耦合”或“连接”到另一元件时,它可以直接耦合或连接到另一元件,或者可以在它们之间存在中间元件。相反,应当理解,当一个元件被称为“直接耦合”或“直接连接”到另一元件时,不存在中间元件。描述元件之间的关系的其他表达(诸如“在......之间”、“直接在......之间”、“与......相邻”或“与......直接相邻”)应当以相同的方式来解释。
本文中使用的术语仅用于描述特定实施例的目的,而非旨在是限制性的。在本公开中,除非上下文另有明确说明,否则单数形式也旨在包括复数形式。将进一步理解,术语“包括”、“包含”、“具有”等当在本说明书中使用时指定所述特征、数字、步骤、操作、元件、部件和/或其组合的存在,但不排除一个或多个其他特征、数字、步骤、操作、元件、部件和/或其组合的存在或添加。
上述示例性实施例仅用于理解本公开的技术精神的目的,并且本公开的范围不应当限于上述示例性实施例。对于本公开所属领域的技术人员很清楚的是,除了上述示例性实施例之外,还可以基于本公开的技术精神进行其他修改。
除非另外定义,否则本文中使用的所有术语(包括技术和科学术语)具有与本公开所属领域的普通技术人员通常理解的含义相同的含义。除非在本公开中另外定义,否则这些术语不应当被解释为是理想的或过于正式。
在下文中,将参考附图详细描述本发明的各种实施例。
图1是示出根据本发明的实施例的包括存储器系统110的数据处理系统100的框图。
参考图1,数据处理系统100可以包括主机102和存储器系统110。
主机102可以包括各种便携式电子装置中的任何一种,诸如移动电话、MP3播放器和膝上型计算机,或者可以包括各种非便携式电子装置中的任何一种,诸如台式计算机、游戏机、电视(TV)和投影仪。
主机102可以包括至少一个操作系统(OS)或多个操作系统。主机102可以执行OS以在存储器系统110上执行与用户请求相对应的操作。这里,主机102可以向存储器系统110提供与用户请求相对应的多个命令。因此,存储器系统110可以执行与多个命令相对应(即,与用户的请求相对应)的某些操作。OS可以管理和控制主机102的整体功能和操作。OS可以使用数据处理系统100或存储器系统110来支持主机102与用户之间的操作。
存储器系统110可以响应于来自主机102的请求而操作或执行特定功能或操作。特别地,存储器系统110可以存储要由主机102访问的数据。存储器系统110可以被用作主机102的主存储器系统或辅助存储器系统。存储器系统110可以根据主机接口的协议利用可以与主机102电耦合的各种类型的存储装置中的任何一种来实现。存储器系统110的非限制性示例包括固态驱动器(SSD)、多媒体卡(MMC)和嵌入式MMC(eMMC)。
存储器系统110可以包括各种类型的存储装置。这样的存储装置的非限制性示例包括诸如动态随机存取存储器(DRAM)和静态RAM(SRAM)的易失性存储器装置、以及诸如只读存储器(ROM)、掩模ROM(MROM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、铁电RAM(FRAM)、相变RAM(PRAM)、磁阻式RAM(MRAM)、电阻式RAM(RRAM)和闪存等的非易失性存储器装置。
存储器系统110可以包括控制器130和存储器装置150。
控制器130和存储器装置150可以被集成到单个半导体器件中,该半导体器件可以被包括在如上所述的各种类型的存储器系统中的任何一种中。例如,控制器130和存储器装置150可以被集成为单个半导体器件以构成SSD、个人计算机存储器卡国际协会(PCMCIA)卡、安全数字(SD)卡(包括mini-SD、micro-SD和SDHC)、以及通用闪存(UFS)装置。存储器系统110可以被配置作为计算机、智能电话、便携式游戏机、或构成计算系统的各种部件之一的一部分。
存储器装置150可以是非易失性存储器装置,即使没有供电,非易失性存储器装置也可以保留所存储的数据。存储器装置150可以存储通过写入操作从主机102提供的数据,并且通过读取操作将存储在其中的数据输出到主机102。在一个实施例中,存储器装置150可以包括多个存储器管芯(未示出),并且每个存储器管芯可以包括多个平面(未示出)。每个平面可以包括多个存储器块152至156。多个存储器块152至156中的每一个可以包括多个页,每个页可以包括耦合到字线的多个存储器单元。在一个实施例中,存储器装置150可以是具有3维(3D)堆叠结构的闪存。
下面将参考图2至图4详细描述存储器装置150的结构和存储器装置150的3D堆叠结构。
控制器130可以响应于来自主机102的请求而控制存储器装置150。例如,控制器130可以将从存储器装置150读取的数据提供给主机102,并且将从主机102提供的数据存储到存储器装置150中。为了该操作,控制器130可以控制存储器装置150的读取、写入、编程和擦除操作。
更具体地,控制器130可以包括主机接口(I/F)132、处理器134、纠错码(ECC)电路138、存储器接口142和存储器144,所有这些都经由内部总线可操作地耦合或接合。如下面将参考图8描述,处理器134可以包括第一读取处理器802、第二读取处理器804、第三读取处理器806、第四读取处理器808和错误检测器810。第一读取处理器802、第二读取处理器804、第三读取处理器806、第四读取处理器808包括其相应操作和功能所需要的所有电路、系统、软件、固件和装置。
主机接口132可以处理主机102的命令和数据。主机接口132可以通过诸如通用串行总线(USB)、多媒体卡(MMC)、外围部件快速互连(PCI或PCIe)、小型计算机系统接口(SCSI)、串行连接SCSI(SAS)、串行高级技术附件(SATA)、并行高级技术附件(PATA)、增强型小磁盘接口(ESDI)和集成驱动电子装置(IDE)等各种接口协议中的一个或多个与主机102通信。主机接口132可以经由固件(即,用于与主机102交换数据的主机接口层(HIL))来被驱动。
ECC电路138可以校正要由存储器装置150处理的数据的错误位,并且可以包括ECC编码器和ECC解码器。ECC编码器可以对要编程到存储器装置150中的数据执行纠错编码以生成添加了奇偶校验位的数据。包括奇偶校验位的数据可以存储在存储器装置150中。ECC解码器可以检测并且校正从存储器装置150读取的数据中包含的错误。ECC电路138可以通过诸如低密度奇偶校验(LDPC)码、Bose-Chaudhri-Hocquenghem(BCH)码、turbo码、Reed-Solomon码、卷积码、递归系统码(RSC)、网格编码调制(TCM)和块编码调制(BCM)等编码调制来执行纠错。然而,ECC电路138不限于这些纠错技术。这样,ECC电路138可以包括用于执行适当的纠错的任何和所有电路、模块、系统或装置。
存储器接口142可以用作控制器130与存储器装置150之间的存储器/存储接口,使得控制器130可以响应于来自主机102的请求而控制存储器装置150。
存储器144可以用作存储器系统110和控制器130的工作存储器。也就是说,存储器144可以存储用于驱动存储器系统110和控制器130的数据。
存储器144可以是易失性存储器。例如,存储器144可以是静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)。存储器144可以设置在控制器130内部或外部。图1示出了存储器144设置在控制器130内。可替代地,存储器144可以是具有用于在存储器144与控制器130之间传输数据的存储器接口的外部易失性存储器。
如上所述,存储器144可以包括程序存储器、数据存储器、写缓冲器/高速缓存、读缓冲器/高速缓存、数据缓冲器/高速缓存以及映射缓冲器/高速缓存。存储器144可以存储执行主机102与存储器装置150之间的数据写入和读取操作所需要的一些数据以及控制器130和存储器装置150执行这些操作所需要的其他数据。
处理器134可以控制存储器系统110的整体操作。处理器134可以使用固件来控制存储器系统110的整体操作。固件可以称为闪存转换层(FTL)。处理器134可以利用微处理器或中央处理单元(CPU)来实现。
例如,控制器130可以通过处理器134执行由主机102在存储器装置150中请求的操作。此外,控制器130可以通过处理器134对存储器装置150执行后台操作。对存储器装置150执行的后台操作可以包括垃圾收集(GC)操作、耗损均衡(WL)操作、映射刷新操作和坏块管理操作。垃圾收集操作可以包括将存储在存储器装置150的存储器块152至156之中的一些存储器块中的数据复制和处理到其他存储器块中的操作。耗损均衡操作可以包括在存储器块152至156之间或在存储器块152至156的数据之间执行交换的操作。映射刷新操作可以包括将存储在控制器130中的映射数据存储在存储器块152至156中的操作。坏块管理操作可以包括管理存储器装置150的坏块的操作。也就是说,坏块管理操作可以包括检测和处理存储器装置150中的存储器块152至156之中的坏块的操作。
参考图2至图4详细描述根据本发明的实施例的存储器系统的存储器装置。
图2是示出图1的存储器装置150的示意图。图3是示出图1的存储器装置150中的存储器块330的存储器单元阵列的示例性配置的电路图。图4是示出图1的存储器装置150的示例性三维(3D)结构的示意图。
参考图2,存储器装置150可以包括多个存储器块BLOCK0至BLOCKN-1,其中N是大于1的整数。块BLOCK0至BLOCKN-1中的每个块可以包括多个页,例如,2M或M个页,其中M是大于1的整数。多个页中的每个页的数目可以根据电路设计而变化。每个页可以包括耦合到多个字线WL的多个存储器单元。
此外,各个存储器块BLOCK0至BLOCKN-1中的存储器单元可以是存储1位数据的单级单元(SLC)存储器块或存储2位数据的多级单元(MLC)存储器块中的一个或多个。因此,存储器装置150可以包括SLC存储器块或MLC存储器块,这取决于可以在存储器块中的每个存储器单元中表达或存储的位的数目。SLC存储器块可以包括由存储器单元实现的多个页,每个存储器单元存储一位数据。SLC存储器块通常可以具有比MLC存储器块更高的数据计算性能和更高的耐用性。MLC存储器块可以包括由存储器单元实现的多个页,每个存储器单元存储多位数据(例如,2位或更多位)。MLC存储器块通常可以具有比SLC存储器块更大的数据存储空间,即,更高的集成密度。在另一实施例中,存储器装置150可以包括多个三级单元(TLC)存储器块。在又一实施例中,存储器装置150可以包括多个四级单元(QLC)存储器块。TLC存储器块可以包括由存储器单元实现的多个页,每个存储器单元能够存储3位数据。QLC存储器块可以包括由存储器单元实现的多个页,每个存储器单元能够存储4位数据。
代替非易失性存储器,存储器装置150可以由相变随机存取存储器(PCRAM)、电阻式随机存取存储器(RRAM或ReRAM)、铁电随机存取存储器(FRAM)和自旋转移力矩磁随机存取存储器(STT-RAM或STT-MRAM)中的任何一个来实现。
存储器块210、220、230、240可以通过编程操作存储从主机102接收的数据,并且可以通过读取操作将存储在其中的数据传输到主机102。
参考图3,存储器块330可以包括耦合到多个对应位线BL0至BLm-1的多个单元串340。每列的单元串340可以包括一个或多个漏极选择晶体管DST和一个或多个源极选择晶体管SST。在漏极选择晶体管DST与源极选择晶体管SST之间,多个存储器单元MC0至MCn-1可以串联耦合。在一个实施例中,存储器单元晶体管MC0至MCn-1中的每一个可以由能够存储多个位的数据信息的MLC实现。每个单元串340可以电耦合到多个位线BL0至BLm-1中的对应位线。例如,如图3所示,第一单元串耦合到第一位线BL0,并且最后的单元串耦合到最后的位线BLm-1。
虽然图3示出了NAND闪存单元,但是本公开不限于此。注意,存储器单元可以是NOR闪存单元,或者是包括组合在其中的两种或更多种存储器单元的混合闪存单元。此外,应当注意,存储器装置150可以是包括导电浮栅作为电荷存储层的闪存装置,或者可以是包括绝缘层作为电荷存储层的电荷陷阱闪存(CTF)装置。
存储器装置150可以进一步包括电压供应310,电压供应310根据操作模式生成包括编程电压、读取电压和通过电压在内的不同字线电压以提供给字线。电压供应310的电压生成操作可以由控制电路(未示出)控制。在控制电路的控制下,电压供应310可以选择存储器单元阵列的至少一个存储器块(或扇区),选择所选择的存储器块的至少一个字线,并且向所选择的字线和可能需要的未选择的字线提供字线电压。
存储器装置150可以包括由控制电路控制的读写(读/写)电路320。在验证/正常读取操作期间,读/写电路320可以作为感测放大器进行操作以用于从存储器单元阵列读取(即,感测和放大)数据。在编程操作期间,读/写电路320可以作为写驱动器进行操作以用于根据要存储在存储器单元阵列中的数据来向位线提供电压或电流。在编程操作期间,读/写电路320可以从缓冲器(未示出)接收要存储到存储器单元阵列中的数据,并且根据所接收的数据来驱动位线。读/写电路320可以包括分别对应于列(或位线)或列对(或位线对)的多个页缓冲器322至326。页缓冲器322至326中的每一个可以包括多个锁存器(未示出)。
存储器装置150可以由2D或3D存储器装置实现。特别地,如图4所示,存储器装置150可以由具有3D堆叠结构的非易失性存储器装置实现。当存储器装置150具有3D结构时,存储器装置150可以包括多个存储器块BLK0至BLKN-1。本文中,图4是示出图1所示的存储器装置150的存储器块152、154和156的框图。存储器块152、154和156中的每一个可以以3D结构(或垂直结构)实现。例如,存储器块152、154和156可以包括在第一方向至第三方向(例如,x轴方向、y轴方向和z轴方向)上延伸的三维结构的结构。
存储器装置150中包括的每个存储器块330可以包括沿第二方向延伸的多个NAND串NS以及沿第一方向和第三方向延伸的多个NAND串NS。在本文中,每个NAND串NS可以耦合到位线BL、至少一个串选择线SSL、至少一个接地选择线GSL、多个字线WL、至少一个虚设字线DWL和公共源极线CSL,并且每个NAND串NS可以包括多个晶体管结构TS。
简言之,存储器装置150的存储器块152、154和156之中的每个存储器块330可以耦合到多个位线BL、多个串选择线SSL、多个接地选择线GSL、多个字线WL、多个虚设字线DWL和多个公共源极线CSL,并且每个存储器块330可以包括多个NAND串NS。而且,在每个存储器块330中,一个位线BL可以耦合到多个NAND串NS以在一个NAND串NS中实现多个晶体管。而且,每个NAND串NS的串选择晶体管SST可以耦合到对应的位线BL,并且每个NAND串NS的接地选择晶体管GST可以耦合到公共源极线CSL。在本文中,存储器单元MC可以设置在每个NAND串NS的串选择晶体管SST与接地选择晶体管GST之间。也就是说,可以在存储器装置150的存储器块152、154和156中的每个存储器块330中实现多个存储器单元。
如上面参考图2所述,闪存可以根据存储在每个存储器单元中的位的数目来确定可以存储在每个存储器单元中的数据的状态。每个单元存储1位数据的存储器单元称为单个位单元或单级单元(SLC)。每个单元存储多位数据(即,2位或更多位数据)的存储器单元被称为多位单元、多级单元(MLC)或多状态单元。MLC有利于高集成度。然而,随着在每个存储器单元中编程的位的数目增加,可靠性降低并且读取失败率增加。
例如,当要在存储器单元中编程k位时,在存储器单元中形成2k个阈值电压之一。由于存储器单元的电特性之间的微小差异,针对相同数据被编程的存储器单元的阈值电压形成阈值电压分布。阈值电压分布分别对应于表示k位信息的2k个数据值。
然而,可用于阈值电压分布的电压窗口是有限的。因此,随着值k增加,阈值电压分布之间的距离减小并且相邻阈值电压分布彼此重叠。当相邻阈值电压分布彼此重叠时,读取数据可以包括几个或几十个错误位。
图5是示出3位多级单元(MLC)非易失性存储器装置的编程和擦除状态的阈值电压分布。
图6是示出由于3位MLC非易失性存储器装置的特性劣化而导致的编程和擦除状态的阈值电压分布。
在MLC非易失性存储器装置中,例如,在能够将k位数据存储在单个存储器单元中的MLC闪存装置中,存储器单元可以具有2k个阈值电压分布之一。例如,3位MLC具有8个阈值电压分布之一。
由于存储器单元之间的特性差异,针对相同数据被编程的存储器单元的阈值电压形成阈值电压分布。在3位MLC非易失性存储器装置中,如图5所示,阈值电压分布与包括7个编程状态“P1”至“P7”和擦除状态“E”的数据状态相对应地形成。图5示出了理想情况,其中阈值电压分布不重叠并且在它们之间具有读取电压余裕。
参考图6的闪存示例,存储器单元可能经历电荷损失,这在浮栅或隧道氧化物膜处捕获的电子随时间放电时发生。当隧道氧化物膜通过迭代编程和擦除操作劣化时,这种电荷损失可能加速。电荷损失导致存储器单元的阈值电压降低。例如,如图6所示,阈值电压分布可能由于电荷损失而向左移位。
此外,编程干扰、擦除干扰和/或背部图案依赖性也导致阈值电压增加。随着存储器单元的特性恶化,相邻阈值电压分布可能重叠,如图6所示。
一旦相邻阈值电压分布重叠,当特定读取电压被施加到所选择的字线时,读取数据可能包括大量错误。例如,当根据读取电压Vread3的存储器单元的感测状态为导通时,存储器单元被确定为具有第二编程状态“P2”。当根据读取电压Vread3的存储器单元的感测状态为关断时,存储器单元被确定为具有第三编程状态“P3”。然而,当相邻阈值电压分布重叠时,实际上具有第三编程状态“P3”的存储器单元可能被错误地确定为具有第二编程状态“P2”。简而言之,当相邻阈值电压分布重叠时,如图6所示,读取数据可能包括大量错误。因此,有必要提供一种用于精确地读取存储在半导体存储器装置的存储器单元中的数据的方案。
图7是示出校正读取数据中包括的错误位的传统过程的流程图。
参考图7,在步骤S702,控制器130可以控制存储器装置150执行第一读取操作1stREAD。控制器130可以响应于读取命令而控制存储器装置150执行第一读取操作1st READ。第一读取操作1st READ可以包括响应于读取命令而读取与从主机102提供的读取命令相对应的请求数据。控制器130可以控制存储器装置150基于预定的基本读取电压来读取存储在存储器块中的请求数据。存储器装置150可以向控制器130提供通过第一读取操作1st READ读取的第一数据。
在步骤S704,控制器130可以确定第一读取操作1st READ是否成功。控制器130可以测量第一数据中包括的错误位的数目#1st ERROR BITS。当错误位的数目#1st ERROR BITS大于或等于第一阈值TH1时,控制器130可以将第一读取操作1st READ处理为“失败”。当错误位的数目#1st ERROR BITS小于第一阈值TH1时,控制器130可以将第一读取操作1st READ处理为“通过”,并且校正第一数据中包括的错误并且将校正的数据提供给主机102。另外,在将第一读取操作1st READ处理为“通过”之后,控制器130可以将用于第一读取操作1st READ的读取电压写入包括在存储器144中的读取历史表中。控制器130还可以控制存储器装置150将关于读取历史表的信息存储到存储器装置150的存储器块中。存储在读取历史表中的初始数据可以与第一读取操作1st READ中使用的预定基本读取电压相同。
在步骤S706,控制器130可以控制存储器装置150执行第二读取操作2nd READ。在将第一读取操作1st READ处理为“失败”(即,步骤S704处的“是”)之后,控制器130可以控制存储器装置150执行第二读取操作2nd READ。第二读取操作2nd READ可以包括基于读取历史表中存储的读取电压来再次读取请求数据作为第二数据。如上所述,每当将第一读取操作1stREAD处理为“通过”时,控制器130可以利用用于第一读取操作1st READ的读取电压来更新读取历史表。存储器装置150可以向控制器130提供通过第二读取操作2nd READ读取的第二数据。
在步骤S708,控制器130可以确定第二读取操作2nd READ是否成功。控制器130可以测量包括在第二数据中的错误位的数目#2nd ERROR BITS。当错误位的数目#2nd ERRORBITS大于或等于第一阈值TH1时,控制器130可以将第二读取操作2nd READ处理为“失败”。当错误位的数目#2nd ERROR BITS小于第一阈值TH1时,控制器130可以将第二读取操作2ndREAD处理为“通过”,并且校正第二数据中包括的错误并且将校正的数据提供给主机102。
在将第二读取操作2nd READ处理为“失败”(即,步骤S708处的“是”)之后,在步骤S710,控制器130可以控制存储器装置150执行第三读取操作3rd READ。控制器130可以控制存储器装置150执行第三读取操作3rd READ。第三读取操作3rd READ可以包括通过顺序地施加根据实验值被包括在预定表中的多个读取电压来再次读取请求数据作为第三数据。第三读取操作3rd READ可以包括与预定表中包括的相应读取电压相对应的读取操作。也就是说,第三读取操作3rd READ可以包括一个或多个读取操作。因此,第三读取操作3rd READ所需要的时间可以长于第一读取操作1st READ和第二读取操作2nd READ所需要的时间。
在步骤S712,控制器130可以确定第三读取操作3rd READ是否成功。控制器130可以测量包括在第三数据中的错误位的数目#3rd ERROR BITS。当错误位的数目#3rd ERRORBITS大于或等于第一阈值TH1时,控制器130可以将第三读取操作3rd READ处理为“失败”。当错误位的数目#3rd ERROR BITS小于第一阈值TH1时,控制器130可以将第三读取操作3rdREAD处理为“通过”,并且校正第三数据中包括的错误并且将校正的数据提供给主机102。
在将第三读取操作3rd READ处理为“失败”(即,步骤S712处的“是”)之后,在步骤S714,控制器130可以控制存储器装置150执行第四读取操作4th READ。控制器130可以基于各种算法执行检测最佳读取电压的电子升压(e-boost)操作。例如,控制器130可以通过根据高斯建模算法使读取电压具有相邻阈值电压分布的峰值之间的中间值来执行电子升压操作。另外,控制器130可以读取特定数据两次或更多次,并且基于读取结果执行电子升压操作。控制器130可以控制存储器装置150执行第四读取操作4th READ以通过施加通过电子升压操作而检测到的最佳读取电压来再次读取请求数据作为第四数据。
在步骤S716,控制器130可以确定第四读取操作4th READ是否成功。控制器130可以测量第四数据中包括的错误位的数目#4th ERROR BITS。当错误位的数目#4th ERROR BITS大于或等于第一阈值TH1时,控制器130可以将第四读取操作4th READ处理为“失败”。当错误位的数目#4th ERROR BITS小于第一阈值TH1时,控制器130可以将第四读取操作4th READ处理为“通过”,并且校正第四数据中包括的错误并且将校正的数据提供给主机102。
在将第四读取操作4th READ处理为“失败”(即,步骤S716处的“是”)之后,在步骤S718,控制器130可以使用利用软判定读取电压生成的对数似然比(LLR)来校正第四数据中包括的错误。控制器130可以利用软判定读取电压执行从存储器装置150读取数据的软读取操作SOFT READ。软判定读取电压可以具有与在步骤S714通过电子升压操作READ检测到的最佳读取电压不同的水平。例如,控制器130可以从包括通过最佳读取电压而读取的数据的存储器单元使用软读取电压附加地执行软读取操作SOFT READ。软读取操作SOFT READ不仅是读取数据的操作,而且是使用软判定读取电压生成LLR的操作。LLR是能够向利用通过电子升压操作检测到的最佳读取电压而读取的数据增加可靠性的信息。控制器130可以使用LLR校正第四数据中包括的错误,并且将校正的数据提供给主机102。
根据上面参考图7描述的传统技术,当错误位的数目#1st ERROR BITS大于或等于第一阈值TH1时,控制器130控制存储器装置150顺序地执行第二读取操作2nd READ至第四读取操作4th READ和软读取操作SOFT READ,直到通过针对请求数据的每个后续读取操作而读取的数据中包括的错误位的数目变得小于第一阈值TH1。当通过第二读取操作2nd READ和第三读取操作3rd READ读取的第二数据和第三数据中的每一个中包括的错误位的数目仍然大于或等于第一阈值TH1、并且错误位的数目#4th ERROR BITS小于第一阈值TH1时,或者通过软读取操作来校正第四数据中包括的错误时,读取请求数据所需要的总时间中的第二读取操作2nd READ和第三读取操作3rd READ所花费的时间可能是不必要的。
根据实施例,在将第一读取操作1st READ处理为“失败”之后,控制器130可以根据错误位的数目#1st ERROR BITS来确定是否执行第二读取操作2nd READ和第三读取操作3rdREAD。当基于错误位的数目#1st ERROR BITS确定请求数据中包括的错误仅在必须执行第四读取操作4th READ和软读取操作SOFT READ时可校正时,控制器130可以控制存储器装置150跳过第二读取操作2nd READ和第三读取操作3rd READ,并且在执行第一读取操作1st READ之后立即执行第四读取操作4th READ和软读取操作SOFT READ,从而缩短了成功读取请求数据所需要的总时间。
图8是示出根据实施例的数据处理系统100的图。图8示出了图1所示的数据处理系统100的配置之中与本发明的实施例相关的配置。
参考图8,数据处理系统100可以包括主机102和存储器系统100,存储器系统100包括控制器130和存储器装置150。控制器130可以包括处理器134、纠错码(ECC)电路138和存储器144。处理器134可以包括第一读取处理器802、第二读取处理器804、第三读取处理器806、第四读取处理器808和错误检测器810。
第一读取处理器802可以控制存储器装置150执行第一读取操作。响应于从主机102接收的读取命令,第一读取处理器802可以控制存储器装置150执行第一读取操作。第一读取操作可以包括读取与读取命令相对应的请求数据。第一读取处理器802可以控制存储器装置150基于预定的基本读取电压来读取存储在存储器装置150的存储器块中的请求数据作为第一数据DATA1。第一读取处理器802可以将第一数据DATA1提供给错误检测器810。如下所述,当错误检测器810将第一读取操作处理为“通过”时,第一读取处理器802可以将用于第一读取操作的读取电压V_PASS存储在读取历史表中,读取历史表可以被包括在存储器144中。
错误检测器810可以测量第一数据DATA1中包括的第一错误位的数目以确定第一读取操作是否成功。当第一错误位的数目小于第一阈值TH1时,错误检测器810可以将第一读取操作处理为“通过”,并且将通过信号SIG_PASS和第一数据DATA1提供给ECC电路138。如下所述,ECC电路138可以校正第一数据DATA1中包括的错误,并且将校正的第一数据DATA1'提供给主机102。此外,错误检测器810可以在将第一读取操作处理为“通过”之后将通过信号SIG_PASS提供给第一读取处理器802。响应于通过信号SIG_PASS,第一读取处理器802可以将读取电压V_PASS存储在存储器144的读取历史表中。第一读取处理器802可以控制存储器装置150将关于读取历史表的信息INFO_HISTORY编程到存储器块中。
当第一错误位的数目大于或等于第一阈值TH1并且小于第二阈值TH2时,错误检测器810可以将第一读取操作处理为“失败”,并且向第二读取处理器804提供失败信号SIG_FAIL。当第一错误位的数目大于或等于第二阈值TH2时,错误检测器810可以将第一读取操作处理为“失败”,并且向第四读取处理器808提供失败信号SIG_FAIL。根据本实施例,在将第一读取操作处理为“失败”之后,错误检测器810可能不会无条件地将失败信号SIG_FAIL提供给第二读取处理器804,并且当第一错误位的数目大于或等于第二阈值TH2时,将失败信号SIG_FAIL提供给第四读取处理器808。当基于第一错误位的数目预测第二读取操作和第三读取操作将被处理为“失败”时,错误检测器810可以控制存储器装置150跳过第二读取操作和第三读取操作并且立即执行第四读取操作和软读取操作,从而缩短了成功读取请求数据所需要的总时间。
第二读取处理器804可以响应于失败信号SIG_FAIL来控制存储器装置150执行第二读取操作。第二读取处理器804可以基于信息INFO_HISTORY控制存储器装置150执行第二读取操作。第二读取操作可以包括再次读取与来自主机102的读取命令相对应的请求数据作为第二数据DATA2。信息INFO_HISTORY可以是关于存储在存储器144的读取历史表中的读取电压的信息。如上所述,每当第一读取操作被处理为“通过”时,第一读取处理器802可以将针对第一读取操作使用的读取电压V_PASS更新到读取历史表中。第二读取处理器804可以将第二数据DATA2提供给错误检测器810。
错误检测器810可以测量第二数据DATA2中包括的第二错误位的数目以确定第二读取操作是否成功。当第二错误位的数目大于或等于第一阈值TH1时,错误检测器810可以将第二读取操作处理为“失败”,并且将失败信号SIG_FAIL提供给第三读取处理器806。当所测量的第二错误位的数目小于第一阈值TH1,错误检测器810可以将第二读取操作处理为“通过”,并且将通过信号SIG_PASS和第二数据DATA2提供给ECC电路138。如下所述,ECC电路138可以校正第二数据DATA2中包括的错误,并且将校正的第二数据DATA2'提供给主机102。
第三读取处理器806可以响应于失败信号SIG_FAIL来控制存储器装置150执行第三读取操作。第三读取处理器806可以基于信息INFO_TABLE控制存储器装置150执行第三读取操作。第三读取操作可以包括再次读取与来自主机102的读取命令相对应的请求数据作为第三数据DATA3。信息INFO_TABLE可以是关于根据实验值存储在预定表中的多个读取电压的信息,预定表存储在存储器144中。每当第一读取操作被处理为“通过”时,可以更新第二读取操作中使用的读取历史表,而预定表可以包括基于制造过程中的实验值而确定的固定电压。第三读取操作可以包括与预定表中包括的相应读取电压相对应的读取操作。换言之,第三读取操作可以包括一个或多个读取操作。因此,第三读取操作所需要的时间可以长于第一读取操作和第二读取操作所需要的时间。第三读取处理器806可以将第三数据DATA3提供给错误检测器810。
错误检测器810可以测量第三数据DATA3中包括的第三错误位的数目以确定第三读取操作是否成功。当第三错误位的数目大于或等于第一阈值TH1时,错误检测器810可以将第三读取操作处理为“失败”,并且将失败信号SIG_FAIL提供给第四读取处理器808。当第三错误位的数目小于第一阈值TH1时,错误检测器810可以将第三读取操作处理为“通过”,并且将通过信号SIG_PASS和第三数据DATA3提供给ECC电路138。如下所述,ECC电路138可以校正第三数据DATA3中包括的错误,并且将校正的第三数据DATA3'提供给主机102。
第四读取处理器808可以响应于失败信号SIG_FAIL来控制存储器装置150执行第四读取操作。第四读取处理器808可以执行基于各种算法来检测最佳读取电压V_OPTIMAL的电子升压操作。例如,第四读取处理器808可以通过根据高斯建模算法使读取电压具有相邻阈值电压分布的峰值之间的中间值来执行电子升压操作。另外,第四读取处理器808可以读取特定数据两次或更多次,并且基于读取结果执行电子升压操作。第四读取处理器808可以控制存储器装置150执行第四读取操作。第四读取操作可以包括基于最佳读取电压V_OPTIMAL再次读取与从主机102提供的读取命令相对应的请求数据作为第四数据DATA4。第四读取处理器808可以将第四数据DATA4提供给错误检测器810。
错误检测器810可以测量第四数据DATA4中包括的第四错误位的数目以确定第四读取操作是否成功。当第四错误位的数目大于或等于第一阈值TH1时,错误检测器810可以将第四读取操作处理为“失败”,并且将失败信号SIG_FAIL和第四数据DATA4提供给ECC电路138。当第四错误位的数目小于第一阈值TH1时,错误检测器810可以将第四读取操作处理为“通过”,并且将通过信号SIG_PASS和第四数据DATA4提供给ECC电路138。
ECC电路138可以响应于失败信号SIG_FAIL使用通过软判定读取电压而生成的对数似然比(LLR)来校正第四数据DATA4中包括的错误。ECC电路138可以控制存储器装置150利用软判定读取电压读取数据。软判定读取电压可以具有与最佳读取电压V_OPTIMAL不同的水平。例如,ECC电路138可以控制存储器装置150使用软读取电压从包括通过最佳读取电压V_OPTIMAL而读取的第四数据DATA4的存储器单元附加地执行软读取操作。软读取操作不仅是读取数据的操作,而且是使用软判定读取电压生成LLR的操作,LLR是能够向利用最佳读取电压V_OPTIMAL读取的数据增加可靠性的信息。ECC电路138可以使用LLR校正第四数据中包括的错误,并且将校正的第四数据DATA4”提供给主机102。
ECC电路138可以响应于通过信号SIG_PASS来校正第一数据DATA1至第四数据DATA4中包括的错误。ECC电路138可以使用纠错码对分别在第一读取处理器802至第四读取处理器808的控制下读取的第一数据DATA1至第四数据DATA4执行纠错解码操作。ECC电路138可以校正第一数据DATA1至第四数据DATA4中包括的错误,并且将校正的第一数据DATA1'至第四数据DATA4'提供给主机102。
图9是示出根据实施例的数据处理系统100的操作过程的流程图。例如,图9的过程可以由图8的控制器130执行。
参考图9,在步骤S902,控制器130可以响应于从主机102接收的读取命令CMD_READ来控制存储器装置150执行第一读取操作1st READ。控制器130可以控制存储器装置150执行第一读取操作1st READ。第一读取操作1st READ可以包括使用预定的基本读取电压读取与读取命令CMD_READ相对应的数据作为第一数据DATA1。存储器装置150可以向控制器130提供第一数据DATA1。
在步骤S905,当第一数据DATA1中包括的错误位的数目#1st ERROR BITS小于第一阈值TH1时(即,步骤S904处的“否”),控制器130可以校正第一数据DATA1中包括的错误。在校正第一数据DATA1中包括的错误之后,控制器130可以将校正的第一数据DATA1'提供给主机102。例如,当第一阈值TH1是20并且错误位的数目#1st ERROR BITS是15时,控制器130可以校正第一数据DATA1中包括的错误,并且将校正的第一数据DATA1'提供给主机102。
当错误位的数目#1st ERROR BITS大于或等于第一阈值TH1时(即,步骤S904处的“是”),在步骤S906,控制器130可以比较错误位的数目#1st ERROR BITS与第二阈值TH2。当错误位的数目#1st ERROR BITS大于或等于第一阈值TH1并且小于第二阈值TH2时(即,步骤S906处的“否”),控制器130可以控制存储器装置150执行第二读取操作2nd READ。当错误位的数目#1st ERROR BITS大于或等于第二阈值TH2时(即,步骤S906处的“是”),则在步骤S916,控制器130可以控制存储器装置150执行第四读取操作4th READ。例如,当第一阈值TH1是20,第二阈值TH2是50,并且错误位的数目#1st ERROR BITS是45时,控制器130可以控制存储器装置150执行第二读取操作2nd READ。当第一阈值TH1是20,第二阈值TH2是50,并且错误位的数目#1st ERROR BITS是55时,控制器130可以控制存储器装置150执行第四读取操作4th READ。
此外,当错误位的数目#1st ERROR BITS大于或等于第一阈值TH1时,控制器130可能不会无条件地执行第二读取操作2nd READ。也就是说,当错误位的数目#1st ERROR BITS大于或等于第二阈值TH2时,控制器130可以控制存储器装置150跳过第二读取操作2nd READ和第三读取操作3rd READ并且立即执行第四读取操作4th READ,从而缩短对与从主机102提供的读取命令CMD_READ相对应的请求数据的读取操作所需要的总时间。
当错误位的数目#1st ERROR BITS大于或等于第一阈值TH1并且小于第二阈值TH2时(即,步骤S906处的“否”),在步骤S908,控制器130可以控制存储器装置150执行第二读取操作2nd READ。控制器130可以控制存储器装置150执行第二读取操作2nd READ。第二读取操作2nd READ可以包括使用存储在读取历史表中的读取电压来再次读取与从主机102提供的读取命令CMD_READ相对应的数据作为第二数据DATA2。如上所述,读取历史表可以包括当通过第一读取操作1st READ成功读取与从主机102提供的读取命令CMD_READ相对应的数据时使用的读取电压。存储器装置150可以向控制器130提供第二数据DATA2。
在步骤S911,当第二数据DATA2中包括的错误位的数目#2nd ERROR BITS小于第一阈值TH1时(即,步骤S910处的“否”),控制器130可以校正第二数据DATA2中包括的错误。在校正第二数据DATA2中包括的错误之后,控制器130可以将校正的第二数据DATA2'提供给主机102。例如,当第一阈值TH1是20并且错误位的数目#2nd ERROR BITS是15时,控制器130可以校正第二数据DATA2中包括的错误,并且然后将校正的第二数据DATA2'提供给主机102。
当错误位的数目#2nd ERROR BITS大于或等于第一阈值TH1时(即,步骤S910处的“是”),在步骤S912,控制器130可以控制存储器装置150执行第三读取操作3rd READ。第三读取操作3rd READ可以包括使用根据实验值被包括在预定表中的读取电压来再次读取与从主机102提供的读取命令CMD_READ相对应的数据作为第三数据DATA3。预定表可以包括多个读取电压。控制器130可以控制存储器装置150通过顺序地施加多个读取电压来执行第三读取操作3rd READ。例如,当第一阈值TH1是20并且错误位的数目#2nd ERROR BITS是35时,控制器130可以控制存储器装置150执行第三读取操作3rd READ。存储器装置150可以向控制器130提供第三数据DATA3。
在步骤S915,当第三数据DATA3中包括的错误位的数目#3rd ERROR BITS小于第一阈值TH1时(即,步骤S914处的“否”),控制器130可以校正第三数据DATA3中包括的错误。在校正第三数据DATA3中包括的错误之后,控制器130可以将校正的第三数据DATA3'提供给主机102。例如,当第一阈值TH1是20并且错误位的数目#3rd ERROR BITS是10时,控制器130可以校正第三数据DATA3中包括的错误,并且然后将校正的第三数据DATA3'提供给主机102。
当错误位的数目#1st ERROR BITS大于或等于第二阈值TH2时(即,步骤S906处的“是”),或者当错误位的数目#3rd ERROR BITS大于或等于第一阈值TH1(即,步骤S914处的“是”)时,在步骤S916,控制器130可以控制存储器装置150执行第四读取操作4th READ。控制器130可以执行电子升压操作以检测最佳读取电压,并且控制存储器装置150执行第四读取操作4th READ。第四读取操作4th READ可以包括使用最佳读取电压再次读取与从主机102提供的读取命令CMD_READ相对应的数据作为第四数据DATA4。例如,当第一阈值TH1是20并且错误位的数目#3rd ERROR BITS是30时,控制器130可以控制存储器装置150执行第四读取操作4th READ。存储器装置150可以向控制器130提供第四数据DATA4。
在步骤S919,当第四数据DATA4中包括的错误位的数目#4th ERROR BITS小于第一阈值TH1时(即,步骤S918处的“否”),控制器130可以校正第四数据DATA4中包括的错误。在校正第四数据DATA4中包括的错误之后,控制器130可以将校正的第四数据DATA4'提供给主机102。例如,当第一阈值TH1是20并且错误位的数目#4th ERROR BITS是2时,控制器130可以校正第四数据DATA4中包括的错误,并且然后将校正的第四数据DATA4'提供给主机102。
当第四数据DATA4中包括的错误位的数目#4th ERROR BITS大于或等于第一阈值TH1时(即,步骤S918处的“是”),在步骤S920,控制器130可以控制存储器装置150执行软读取操作SOFT READ。控制器130可以执行软读取操作SOFT READ。软读取操作SOFT READ可以包括使用具有与在步骤S916通过电子升压操作READ检测到的最佳读取电压不同的水平的软判定读取电压来从存储器装置150读取数据。例如,当第一阈值TH1是20并且错误位的数目#4th ERROR BITS是22时,控制器130可以使用通过软读取操作SOFT READ生成的LLR来校正第四数据DATA4中包括的错误。如上所述,软读取操作SOFT READ不仅是读取数据的操作,而且是生成LLR的操作。使用软判定读取电压,LLR是能够向利用通过电子升压操作检测到的最佳读取电压而读取的数据增加可靠性的信息。控制器130可以使用在步骤S920生成的LLR来校正在步骤S916读取的第四数据DATA4中包括的错误,并且然后将校正的第四数据DATA4”提供给主机102。
在下文中,现在将参考图10至图18更详细地描述参考图1至图9描述的包括存储器装置150和控制器130的存储器系统110被应用的数据处理系统和电子装置。
图10是示出根据实施例的包括存储器系统的数据处理系统的另一示例的图。例如,图10示出了可以应用存储器系统的存储器卡系统6100。
参考图10,存储器卡系统6100可以包括存储器控制器6120、存储器装置6130和连接器6110。
更具体地,存储器控制器6120可以电连接到存储器装置6130,并且被配置为访问由非易失性存储器实现的存储器装置6130。例如,存储器控制器6120可以被配置为控制存储器装置6130的读取、写入、擦除和后台操作。存储器控制器6120可以被配置为提供存储器装置6130与外部装置(例如,图1的主机102)之间的接口,并且使用固件用于控制存储器装置6130。即,存储器控制器6120可以对应于参考图1描述的存储器系统110的控制器130,并且存储器装置6130可以对应于参考图1描述的存储器系统110的存储器装置150。
因此,存储器控制器6120可以包括随机存取存储器(RAM)、处理器、主机接口、存储器接口和纠错部件。
存储器控制器6120可以通过连接器6110与外部装置通信。例如,如参考图1所述,存储器控制器6120可以被配置为通过诸如通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围部件互连(PCI)、PCI快速(PCIe)、高级技术附件(ATA)、串行ATA、并行ATA、小型计算机系统接口(SCSI)、增强型小磁盘接口(EDSI)、集成驱动电子装置(IDE)、火线、通用闪存(UFS)、无线保真(Wi-Fi或WiFi)和蓝牙等各种通信协议中的一个或多个与外部装置通信。因此,根据本实施例的存储器系统和数据处理系统可以应用于有线/无线电子装置和特定移动电子装置。
存储器装置6130可以由非易失性存储器实现。例如,存储器装置6130可以由各种非易失性存储器装置中的任何一种实现,诸如可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、NAND闪存、NOR闪存、相变RAM(PRAM)、电阻式RAM(ReRAM)、铁电RAM(FRAM)和自旋转移力矩磁RAM(STT-RAM)。
存储器控制器6120和存储器装置6130可以被集成到单个半导体器件中以形成固态驱动器(SSD)。此外,存储器控制器6120和存储器装置6130可以如此集成以形成存储器卡,诸如PC卡(例如,个人计算机存储器卡国际协会(PCMCIA)卡)、紧凑型闪存(CF)卡、智能媒体卡(例如,SM和SMC)、记忆棒、多媒体卡(例如,MMC、RS-MMC、MMCmicro和eMMC)、安全数字(SD)卡(例如,SD、miniSD、microSD和SDHC)和/或通用闪存(UFS)。
图11是示出根据实施例的包括存储器系统的数据处理系统6200的另一示例的图。
参考图11,数据处理系统6200可以包括具有一个或多个非易失性存储器的存储器装置6230和用于控制存储器装置6230的存储器控制器6220。图11所示的数据处理系统6200可以用作诸如存储器卡(例如,CF、SD、micro-SD等)或USB装置等存储介质,如参考图1所述。存储器装置6230可以对应于图1所示的存储器系统110中的存储器装置150,并且存储器控制器6220可以对应于图1所示的存储器系统110中的控制器130。
存储器控制器6220可以响应于主机6210的请求而控制对存储器装置6230的读取、写入或擦除操作。存储器控制器6220可以包括一个或多个中央处理单元(CPU)6221、诸如随机存取存储器(RAM)6222的缓冲存储器、纠错码(ECC)电路6223、主机接口6224和诸如非易失性存储器(NVM)接口6225的存储器接口。
CPU 6221可以控制对存储器装置6230的整体操作,例如,读取、写入、文件系统管理和坏页管理操作。RAM 6222可以根据CPU 6221的控制来被操作,并且被用作工作存储器、缓冲存储器或高速缓存存储器。当RAM 6222被用作工作存储器时,由CPU 6221处理的数据可以临时存储在RAM 6222中。当RAM 6222被用作缓冲存储器时,RAM 6222可以用于缓冲从主机6210传输到存储器装置6230的数据,反之亦然。当RAM 6222被用作高速缓存存储器时,RAM 6222可以帮助低速存储器装置6230高速操作。
ECC电路6223可以生成用于校正从存储器装置6230提供的数据的失败位或错误位的纠错码(ECC)。ECC电路6223可以对提供给存储器装置6230的数据执行纠错编码,从而形成具有奇偶校验位的数据。奇偶校验位可以存储在存储器装置6230中。ECC电路6223可以对从存储器装置6230输出的数据执行纠错解码。ECC电路6223可以使用奇偶校验位来校正错误。例如,如参考图1所述,ECC电路6223可以使用低密度奇偶校验(LDPC)码、Bose-Chaudhri-Hocquenghem(BCH)码、turbo码、Reed-Solomon(RS)码、卷积码、递归系统码(RSC)或者诸如网格编码调制(TCM)或块编码调制(BCM)的编码调制来校正错误。
存储器控制器6220可以通过主机接口6224向/从主机6210发送/接收数据。存储器控制器6220可以通过NVM接口6225向/从存储器装置6230发送/接收数据。主机接口6224可以通过并行高级技术附件(PATA)总线、串行高级技术附件(SATA)总线、小型计算机系统接口(SCSI)、通用串行总线(USB)、外围部件快速互连(PCIe)或NAND接口连接到主机6210。存储器控制器6220可以具有利用诸如无线保真(WiFi)或长期演进(LTE)的移动通信协议的无线通信功能。存储器控制器6220可以连接到外部装置,例如主机6210或另一外部装置,并且然后向/从外部装置发送/接收数据。具体地,由于存储器控制器6220被配置为根据各种通信协议中的一个或多个与外部装置通信,根据实施例的存储器系统和数据处理系统可以应用于有线/无线电子装置,尤其是移动电子装置。
图12是示出根据实施例的包括存储器系统的数据处理系统的另一示例的图。例如,图12示出了可以应用存储器系统的固态驱动器(SSD)。
参考图12,SSD 6300可以包括控制器6320和包括多个非易失性存储器(NVM)的存储器装置6340。控制器6320可以对应于图1的存储器系统110中的控制器130,并且存储器装置6340可以对应于图1的存储器系统中的存储器装置150。
具体地,控制器6320可以通过多个通道CH1至CHi连接到存储器装置6340。控制器6320可以包括一个或多个处理器6321、纠错码(ECC)电路6322、主机接口6324、缓冲存储器6325和存储器接口,例如,非易失性存储器接口6326。
缓冲存储器6325可以临时存储从主机6310提供的数据或者从存储器装置6340中包括的多个非易失性存储器(例如,闪存NVM)提供的数据。此外,缓冲存储器6325可以临时存储多个闪存的元数据,例如,包括映射表的映射数据。缓冲存储器6325可以由各种易失性存储器(诸如动态随机存取存储器(DRAM)、同步DRAM(SDRAM)、双倍数据速率(DDR)SDRAM、低功率DDR(LPDDR)SDRAM和图形RAM(GRAM))或非易失性存储器(诸如铁电RAM(FRAM)、电阻式RAM(RRAM或ReRAM)、自旋转移力矩磁RAM(STT-MRAM)和相变RAM(PRAM))中的任何一种实现。图12示出了缓冲存储器6325在控制器6320中实现。然而,缓冲存储器6325可以在控制器6320外部。
ECC电路6322可以在编程操作期间计算要编程到存储器装置6340的数据的纠错码(ECC)值。ECC电路6322可以在读取操作期间基于ECC值对从存储器装置6340读取的数据执行纠错操作。ECC电路6322可以在失败数据恢复操作期间对从存储器装置6340恢复的数据执行纠错操作。
主机接口6324可以提供与外部装置(例如,主机6310)的接口功能。非易失性存储器接口6326可以提供与通过多个通道连接的存储器装置6340的接口功能。
此外,可以应用图1的存储器系统110的多个SSD 6300可以被提供以实现数据处理系统,例如,独立盘冗余阵列(RAID)系统。RAID系统可以包括多个SSD 6300和用于控制多个SSD 6300的RAID控制器。当RAID控制器响应于从主机6310提供的写入命令而执行编程操作时,RAID控制器可以根据多个RAID级别(即,SSD 6300中的从主机6310提供的写入命令的RAID级别信息)选择一个或多个存储器系统或SSD 6300,并且向所选择的SSD 6300输出与写入命令相对应的数据。此外,当RAID控制器响应于从主机6310提供的读取命令而执行读取命令时,RAID控制器可以根据多个RAID级别(即,SSD 6300中的从主机6310提供的读取命令的RAID级别信息)选择一个或多个存储器系统或SSD 6300,并且向主机6310提供从所选择的SSD 6300读取的数据。
图13是示出根据实施例的包括存储器系统的数据处理系统的另一示例的图。例如,图13示出了可以应用存储器系统的嵌入式多媒体卡(eMMC)6400。
参考图13,eMMC 6400可以包括控制器6430和由一个或多个NAND闪存实现的存储器装置6440。控制器6430可以对应于图1的存储器系统110中的控制器130。存储器装置6440可以对应于图1的存储器系统110中的存储器装置150。
具体地,控制器6430可以通过多个通道连接到存储器装置6440。控制器6430可以包括主机接口6431、一个或多个核6432和存储器接口(例如,NAND接口6433)。
核6432可以控制eMMC 6400的整体操作。主机接口6431可以提供控制器6430与主机6410之间的接口功能。NAND接口6433可以提供存储器装置6440与控制器6430之间的接口功能。例如,主机接口6431可以用作并行接口,例如,如参考图1所述的MMC接口。此外,主机接口6431可以用作串行接口,例如,超高速(UHS)-I/UHS-II接口。
图14至图17是示出根据实施例的包括存储器系统的数据处理系统的其他示例的图。例如,图14至图17示出了可以应用存储器系统的通用闪存(UFS)系统6500、6600、6700、6800。
参考图14至图17,UFS系统6500、6600、6700、6800可以分别包括主机6510、6610、6710、6810、UFS装置6520、6620、6720、6820和UFS卡6530、6630、6730、6830。主机6510、6610、6710、6810可以用作有线/无线电子装置、特别是移动电子装置的应用处理器。UFS装置6520、6620、6720、6820可以用作嵌入式UFS装置。UFS卡6530、6630、6730、6830可以用作外部嵌入式UFS装置或可移除UFS卡。
各个UFS系统6500、6600、6700、6800中的主机6510、6610、6710、6810、UFS装置6520、6620、6720、6820和UFS卡6530、6630、6730、6830可以通过UFS协议与外部通信装置,例如,有线/无线电子装置、特别是移动电子装置。UFS装置6520、6620、6720、6820和UFS卡6530、6630、6730、6830可以由图1所示的存储器系统110实现。例如,在UFS系统6500、6600、6700、6800中,UFS装置6520、6620、6720、6820可以以参考图11至图13描述的数据处理系统6200、SSD 6300或eMMC 6400的形式实现。UFS卡6530、6630、6730、6830可以以参考图10描述的存储器卡系统6100的形式实现。
此外,在UFS系统6500、6600、6700、6800中,主机6510、6610、6710、6810、UFS装置6520、6620、6720、6820和UFS卡6530、6630、6730、6830可以通过UFS接口(例如,移动行业处理器接口(MIPI)中的MIPI M-PHY和MIPI UniPro(统一协议))彼此通信。此外,UFS装置6520、6620、6720、6820和UFS卡6530、6630、6730、6830可以通过除了UFS协议之外的各种协议中的任何协议彼此通信,例如,通用存储总线(USB)闪存驱动(UFD)、多媒体卡(MMC)、安全数字(SD)、mini-SD和micro-SD。
在图14所示的UFS系统6500中,主机6510、UFS装置6520和UFS卡6530中的每一个可以包括UniPro。主机6510可以执行切换操作以与UFS装置6520和UFS卡6530通信。具体地,主机6510可以通过链路层切换(例如,在UniPro处的L3切换)与UFS装置6520或UFS卡6530通信。UFS装置6520和UFS卡6530可以通过主机6510的UniPro处的链路层切换来彼此通信。在所示实施例中,一个UFS装置6520和一个UFS卡6530连接到主机6510。然而,多个UFS装置和UFS卡可以并行或以星形形式连接到主机6410。星形形式是一种其中单个装置与多个装置耦合以进行集中操作的布置。多个UFS卡可以并行或以星形形式连接到UFS装置6520,或者串联或以链形式连接到UFS装置6520。
在图15所示的UFS系统6600中,主机6610、UFS装置6620和UFS卡6630中的每一个可以包括UniPro。主机6610可以通过执行切换操作的切换模块6640与UFS装置6620或UFS卡6630通信,例如通过执行UniPro处的链路层切换(例如L3切换)的切换模块6640。UFS装置6620和UFS卡6630可以通过UniPro处的切换模块6640的链路层切换来彼此通信。在所示实施例中,一个UFS装置6620和一个UFS卡6630连接到切换模块6640。然而,多个UFS装置和UFS卡可以并联或以星形形式连接到切换模块6640。多个UFS卡可以串联或以链形式连接到UFS装置6620。
在图16所示的UFS系统6700中,主机6710、UFS装置6720和UFS卡6730中的每一个可以包括UniPro。主机6710可以通过执行切换操作的切换模块6740与UFS装置6720或UFS卡6730通信,例如通过执行UniPro处的链路层切换(例如L3切换)的切换模块6740。UFS装置6720和UFS卡6730可以通过UniPro处的切换模块6740的链路层切换来彼此通信。切换模块6740可以与UFS装置6720作为一个模块集成在UFS装置6720内部或外部。在所示实施例中,一个UFS装置6720和一个UFS卡6730连接到切换模块6740。然而,每个包括切换模块6740和UFS装置6720的多个模块可以并联或以星形形式连接到主机6710。在另一示例中,多个模块可以串联或以链形式彼此连接。此外,多个UFS卡可以并行或以星形形式连接到UFS装置6720。
在图17所示的UFS系统6800中,主机6810、UFS装置6820和UFS卡6830中的每一个可以包括M-PHY和UniPro。UFS装置6820可以执行切换操作以与主机6810和UFS卡6830通信。具体地,UFS装置6820可以通过用于与主机6810通信的M-PHY和UniPro模块与用于与UFS卡6830通信的M-PHY和UniPro模块之间的切换操作来与主机6810或UFS卡6830通信,例如,通过目标标识符(ID)切换操作。主机6810和UFS卡6830可以通过UFS装置6820的M-PHY和UniPro模块之间的目标ID切换来彼此通信。在所示实施例中,一个UFS装置6820连接到主机6810并且一个UFS卡6830连接到UFS装置6820。然而,多个UFS装置可以并行或以星形形式连接到主机6810,或者串联或以链形式连接到主机6810。多个UFS卡可以并行或以星形形式连接到UFS装置6820,或者串联或以链形式连接到UFS装置6820。
图18是示出根据本发明的实施例的包括存储器系统的数据处理系统的另一示例的图。例如,图18是示出可以应用存储器系统的用户系统6900的图。
参考图18,用户系统6900可以包括用户接口6910、存储器模块6920、应用处理器6930、网络模块6940和存储模块6950。
具体地,应用处理器6930可以驱动用户系统6900中的部件,例如操作系统(OS),并且包括控制用户系统6900中包括的部件的控制器、接口和图形引擎。应用处理器6930可以作为片上系统(SoC)提供。
存储器模块6920可以被用作用户系统6900的主存储器、工作存储器、缓冲存储器或高速缓存存储器。存储器模块6920可以包括易失性随机存取存储器(RAM)(诸如动态RAM(DRAM)、同步DRAM(SDRAM)、双倍数据速率(DDR)SDRAM、DDR2 SDRAM、DDR3SDRAM、低功耗DDR(LPDDR)SDARM、LPDDR3 SDRAM或LPDDR4 SDRAM)或非易失性RAM(诸如相变RAM(PRAM)、电阻式RAM(ReRAM)、磁阻式RAM(MRAM)或铁电RAM(FRAM))。例如,可以基于封装上封装(PoP)来封装和安装应用处理器6930和存储器模块6920。
网络模块6940可以与外部装置通信。例如,网络模块6940不仅可以支持有线通信,还可以支持各种无线通信协议,诸如码分多址(CDMA)、全球移动通信系统(GSM)、宽带CDMA(WCDMA)、CDMA-2000、时分多址(TDMA)、长期演进(LTE)、全球微波接入互操作性(WiMAX)、无线局域网(WLAN)、超宽带(UWB)、蓝牙、无线显示(WI-DI),从而与有线/无线电子装置通信,尤其是移动电子装置。因此,根据本发明的实施例的存储器系统和数据处理系统可以应用于有线/无线电子装置。网络模块6940可以被包括在应用处理器6930中。
存储模块6950可以存储数据,例如,从应用处理器6930接收的数据,并且然后可以将所存储的数据传输到应用处理器6930。存储模块6950可以由非易失性半导体存储器装置实现,诸如相变RAM(PRAM)、磁RAM(MRAM)、电阻式RAM(ReRAM)、NAND闪存、NOR闪存和3D NAND闪存,并且作为用户系统6900的可移除存储介质来提供,诸如存储器卡或外部驱动器。存储模块6950可以对应于参考图1描述的存储器系统110。此外,存储模块6950可以被实现为SSD、eMMC和UFS,如上面参考图12至图17所述。
用户接口6910可以包括用于向应用处理器6930输入数据或命令或者向外部装置输出数据的接口。例如,用户接口6910可以包括用户输入接口(诸如键盘、小键盘、按钮、触摸面板、触摸屏、触摸板、触摸球、相机、麦克风、陀螺仪传感器、振动传感器和压电元件)和用户输出接口(诸如液晶显示器(LCD)、有机发光二极管(OLED)显示装置、有源矩阵OLED(AMOLED)显示装置、LED、扬声器和电机)。
此外,当图1的存储器系统110应用于用户系统6900的移动电子装置时,应用处理器6930可以控制移动电子装置的整体操作,并且网络模块6940可以用作用于控制与外部装置的有线/无线通信的通信模块。用户接口6910可以在移动电子装置的显示/触摸模块上显示由处理器6930处理的数据,或者支持从触摸面板接收数据的功能。
根据本实施例,存储器系统可以通过在读取数据中包括的错误位的数目大于或等于预定阈值时跳过读取重试操作来提高读取速度。
虽然已经关于特定实施例描述了本发明,对于本领域技术人员来说将显而易见的是,在不脱离如所附权利要求中限定的本发明的精神和范围的情况下,可以进行各种改变和修改。
Claims (20)
1.一种存储器系统,包括:
存储器装置;以及
控制器,适于响应于来自主机的读取命令而控制所述存储器装置对请求数据执行读取操作,从所述存储器装置接收与所述读取操作相对应的所述请求数据,校正所述请求数据的错误以生成校正数据,并且将所述校正数据提供给所述主机,
其中所述控制器包括:
第一读取处理器,适于响应于所述读取命令而执行读取所述请求数据作为第一数据的第一读取操作;
第二读取处理器,适于当所述第一数据的错误位的数目大于或等于第一阈值并且小于第二阈值时,执行使用存储在读取历史表中的电压来再次读取所述请求数据作为第二数据的第二读取操作;
第三读取处理器,适于当所述第二数据的错误位的数目等于或大于所述第一阈值时,执行使用存储在预定表中的电压来再次读取所述请求数据作为第三数据的第三读取操作;以及
第四读取处理器,适于当所述第三数据的错误位的数目等于或大于所述第一阈值时,通过电子升压操作来检测最佳读取电压,并且执行使用所述最佳读取电压来再次读取所述请求数据作为第四数据的第四读取操作,
其中当所述第一数据的错误位的数目大于或等于所述第二阈值时,所述第四读取处理器执行所述第四读取操作。
2.根据权利要求1所述的存储器系统,其中所述控制器进一步包括纠错码(ECC)电路,所述纠错码(ECC)电路适于当所述第四数据的错误位的数目大于或等于所述第一阈值时,执行使用软读取电压来生成对数似然比(LLR)的软读取操作。
3.根据权利要求1所述的存储器系统,其中所述控制器进一步包括存储器,所述存储器适于存储所述读取历史表和所述预定表。
4.根据权利要求2所述的存储器系统,其中所述控制器进一步包括错误检测器,所述错误检测器适于检测所述第一数据至所述第四数据的错误,并且将所述第一数据至所述第四数据中的每个数据的错误位的数目与所述第一阈值和所述第二阈值进行比较。
5.根据权利要求1所述的存储器系统,其中所述第一读取处理器使用预定的基本读取电压来执行所述第一读取操作。
6.根据权利要求1所述的存储器系统,其中每当所述第一读取操作被处理为通过时,所述第一读取处理器利用用于所述第一读取操作的读取电压来更新所述读取历史表。
7.根据权利要求1所述的存储器系统,其中所述电子升压操作包括根据高斯建模算法检测所述最佳读取电压的操作或基于通过执行两次或更多次读取操作而获得的结果来检测所述最佳读取电压的操作。
8.根据权利要求2所述的存储器系统,其中所述LLR包括能够向所述第四数据添加可靠性的信息。
9.根据权利要求2所述的存储器系统,其中当所述第一数据至所述第四数据中的每个数据的错误位的数目小于所述第一阈值时,所述ECC电路校正所述第一数据至所述第四数据的错误并且将所述校正数据提供给所述主机。
10.根据权利要求3所述的存储器系统,其中所述存储器包括易失性存储器。
11.一种存储器系统的操作方法,包括:
第一读取步骤,响应于从主机提供的读取命令而读取请求数据作为第一数据;
第二读取步骤,当所述第一数据的错误位的数目大于或等于第一阈值并且小于第二阈值时,使用存储在读取历史表中的电压来再次读取所述请求数据作为第二数据;
第三读取步骤,当所述第二数据的错误位的数目大于或等于所述第一阈值时,使用存储在预定表中的电压来再次读取所述请求数据作为第三数据;以及
第四读取步骤,当所述第三数据的错误位的数目等于或大于所述第一阈值时,通过电子升压操作来检测最佳读取电压,并且使用所述最佳读取电压来再次读取所述请求数据作为第四数据,
其中当所述第一数据的错误位的数目大于或等于所述第二阈值时,执行所述第四读取步骤。
12.根据权利要求11所述的操作方法,进一步包括:纠错码(ECC)执行步骤,当所述第四数据的错误位的数目大于或等于所述第一阈值时,执行使用软读取电压来生成对数似然比(LLR)的软读取操作。
13.根据权利要求11所述的操作方法,进一步包括:将所述读取历史表和所述预定表存储在存储器中。
14.根据权利要求12所述的操作方法,进一步包括:错误检测步骤,检测所述第一数据至所述第四数据的错误,并且将所述第一数据至所述第四数据中的每个数据的错误位的数目与所述第一阈值和所述第二阈值进行比较。
15.根据权利要求11所述的操作方法,其中所述第一读取步骤包括:使用预定的基本读取电压来读取所述请求数据。
16.根据权利要求11所述的操作方法,其中所述第一读取步骤包括:当所述第一数据的错误位的数目小于所述第一阈值时,利用用于所述第一读取步骤的读取电压来更新所述读取历史表。
17.根据权利要求11所述的操作方法,其中所述电子升压操作包括:根据高斯建模算法检测所述最佳读取电压,或者基于通过执行两次或更多次读取操作而获得的结果来检测所述最佳读取电压。
18.根据权利要求12所述的操作方法,其中所述LLR包括能够向所述第四数据添加可靠性的信息。
19.根据权利要求12所述的操作方法,其中所述ECC执行步骤包括:当所述第一数据至所述第四数据中的每个数据的错误位的数目小于所述第一阈值时,校正所述第一数据至所述第四数据的错误并且将所校正的数据提供给所述主机。
20.根据权利要求13所述的操作方法,其中所述存储器包括易失性存储器。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020180151629A KR102671727B1 (ko) | 2018-11-30 | 2018-11-30 | 메모리 시스템 및 그것의 동작방법 |
| KR10-2018-0151629 | 2018-11-30 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN111258794A true CN111258794A (zh) | 2020-06-09 |
Family
ID=70850878
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201910910086.4A Withdrawn CN111258794A (zh) | 2018-11-30 | 2019-09-25 | 存储器系统及其操作方法 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US10943634B2 (zh) |
| KR (1) | KR102671727B1 (zh) |
| CN (1) | CN111258794A (zh) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN113946280A (zh) * | 2020-07-17 | 2022-01-18 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
| CN114023372A (zh) * | 2021-11-02 | 2022-02-08 | 深圳宏芯宇电子股份有限公司 | 存储器管理方法、存储器存储装置及存储器控制器 |
Families Citing this family (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR102747427B1 (ko) * | 2019-03-26 | 2024-12-31 | 에스케이하이닉스 주식회사 | 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 시스템의 동작 방법 |
| US11682467B2 (en) | 2020-11-04 | 2023-06-20 | Samsung Electronics Co., Ltd. | Nonvolatile memory device, controller for controlling the same, storage device including the same, and reading method of the same |
| KR102344380B1 (ko) * | 2021-06-02 | 2021-12-28 | 삼성전자주식회사 | 비휘발성 메모리 장치, 그것을 제어하는 제어기, 그것을 포함하는 저장 장치 및 그것의 동작 방법 |
| US12183407B2 (en) * | 2021-06-16 | 2024-12-31 | Micron Technology, Inc. | Setting switching for single-level cells |
| KR102345067B1 (ko) * | 2021-08-25 | 2021-12-29 | 삼성전자주식회사 | 스토리지 장치 및 스토리지 컨트롤러의 구동 방법 |
| US20250266110A1 (en) * | 2024-02-15 | 2025-08-21 | Western Digital Technologies, Inc. | Single-level memory cell error on-chip detection |
Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN1221187A (zh) * | 1997-12-25 | 1999-06-30 | 富士通株式会社 | 磁盘设备及其错误纠正方法 |
| US20100091535A1 (en) * | 2007-03-12 | 2010-04-15 | Anobit Technologies Ltd | Adaptive estimation of memory cell read thresholds |
| KR20160013764A (ko) * | 2014-07-28 | 2016-02-05 | 삼성전자주식회사 | 메모리 장치, 메모리 시스템, 상기 메모리 장치의 동작 방법 및 상기 메모리 시스템의 동작 방법 |
| CN106169308A (zh) * | 2015-03-16 | 2016-11-30 | 爱思开海力士有限公司 | 存储器控制器及其操作方法 |
| CN107728932A (zh) * | 2016-08-10 | 2018-02-23 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
| CN108694096A (zh) * | 2017-03-29 | 2018-10-23 | 爱思开海力士有限公司 | 控制器、存储系统及其操作方法 |
Family Cites Families (13)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR101835605B1 (ko) | 2011-11-24 | 2018-03-08 | 삼성전자 주식회사 | 플래시 메모리 시스템 및 플래시 메모리 시스템의 리드 방법 |
| KR20140029582A (ko) * | 2012-08-28 | 2014-03-11 | 에스케이하이닉스 주식회사 | 반도체 장치 및 이의 동작 방법 |
| US9069659B1 (en) * | 2013-01-03 | 2015-06-30 | Densbits Technologies Ltd. | Read threshold determination using reference read threshold |
| US9870830B1 (en) * | 2013-03-14 | 2018-01-16 | Sandisk Technologies Llc | Optimal multilevel sensing for reading data from a storage medium |
| KR20150074655A (ko) * | 2013-12-24 | 2015-07-02 | 에스케이하이닉스 주식회사 | 메모리 시스템 |
| KR20150091693A (ko) * | 2014-02-03 | 2015-08-12 | 삼성전자주식회사 | 플래쉬 메모리 읽기 방법 |
| KR102262909B1 (ko) * | 2014-12-18 | 2021-06-10 | 에스케이하이닉스 주식회사 | 메모리 시스템 동작 방법 |
| KR20160146332A (ko) * | 2015-06-12 | 2016-12-21 | 에스케이하이닉스 주식회사 | 복수의 저장 영역들을 포함하는 메모리 시스템 및 그것의 동작 방법 |
| KR20170000108A (ko) * | 2015-06-23 | 2017-01-02 | 에스케이하이닉스 주식회사 | 컨트롤러, 반도체 메모리 시스템 및 그것의 동작 방법 |
| US20170148525A1 (en) * | 2015-11-25 | 2017-05-25 | Sandisk Technologies Llc | Method and System For Adaptively Adjusting a Verify Voltage to Reduce Storage Raw Bit Error Rate |
| KR102378541B1 (ko) | 2015-11-27 | 2022-03-25 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
| KR102589259B1 (ko) * | 2016-06-20 | 2023-10-12 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
| KR20180027660A (ko) * | 2016-09-05 | 2018-03-15 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
-
2018
- 2018-11-30 KR KR1020180151629A patent/KR102671727B1/ko active Active
-
2019
- 2019-07-19 US US16/517,232 patent/US10943634B2/en active Active
- 2019-09-25 CN CN201910910086.4A patent/CN111258794A/zh not_active Withdrawn
Patent Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN1221187A (zh) * | 1997-12-25 | 1999-06-30 | 富士通株式会社 | 磁盘设备及其错误纠正方法 |
| US20100091535A1 (en) * | 2007-03-12 | 2010-04-15 | Anobit Technologies Ltd | Adaptive estimation of memory cell read thresholds |
| KR20160013764A (ko) * | 2014-07-28 | 2016-02-05 | 삼성전자주식회사 | 메모리 장치, 메모리 시스템, 상기 메모리 장치의 동작 방법 및 상기 메모리 시스템의 동작 방법 |
| CN106169308A (zh) * | 2015-03-16 | 2016-11-30 | 爱思开海力士有限公司 | 存储器控制器及其操作方法 |
| CN107728932A (zh) * | 2016-08-10 | 2018-02-23 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
| CN108694096A (zh) * | 2017-03-29 | 2018-10-23 | 爱思开海力士有限公司 | 控制器、存储系统及其操作方法 |
Non-Patent Citations (1)
| Title |
|---|
| 张为民等: "基于SD卡文件记录的风光互补控制器系统的研制", 《电子技术》 * |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN113946280A (zh) * | 2020-07-17 | 2022-01-18 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
| CN114023372A (zh) * | 2021-11-02 | 2022-02-08 | 深圳宏芯宇电子股份有限公司 | 存储器管理方法、存储器存储装置及存储器控制器 |
Also Published As
| Publication number | Publication date |
|---|---|
| KR102671727B1 (ko) | 2024-06-04 |
| KR20200065298A (ko) | 2020-06-09 |
| US10943634B2 (en) | 2021-03-09 |
| US20200176045A1 (en) | 2020-06-04 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US10943634B2 (en) | Read latency improvement method and memory system thereof | |
| CN110058797B (zh) | 存储器系统及其操作方法 | |
| CN110750207B (zh) | 存储器系统及其操作方法 | |
| US20200210295A1 (en) | Memory system and operating method thereof | |
| US11163646B2 (en) | Memory system for detecting erased page including memory cells with distorted threshold voltages, and operation method thereof | |
| CN108241470B (zh) | 控制器及其操作方法 | |
| CN111145818B (zh) | 存储器系统及其操作方法 | |
| CN111090596B (zh) | 存储器系统及其操作方法 | |
| CN110751972A (zh) | 存储器系统及该存储器系统的操作方法 | |
| US10732874B2 (en) | Memory system and operation method thereof | |
| CN110045914B (zh) | 存储器系统及其操作方法 | |
| CN108363547A (zh) | 控制器及其操作方法 | |
| CN110968521B (zh) | 存储器系统及其操作方法 | |
| CN110716880B (zh) | 存储器系统及其操作方法 | |
| US10747664B2 (en) | Memory system and operating method thereof | |
| US10977117B2 (en) | Memory device, a memory system and an operating method thereof | |
| CN110795359A (zh) | 存储器系统及该存储器系统的操作方法 | |
| CN110928486B (zh) | 存储器系统及其操作方法 | |
| CN110865948B (zh) | 存储系统及其操作方法 | |
| US10908992B2 (en) | Controller and operation method thereof | |
| CN110688060B (zh) | 存储器系统及该存储器系统的操作方法 | |
| CN111176555B (zh) | 存储器系统及其操作方法 | |
| US11049569B2 (en) | Controller and operating method thereof | |
| US20200174702A1 (en) | Memory system, operating method thereof and controller | |
| CN110716879B (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 | ||
| WW01 | Invention patent application withdrawn after publication |
Application publication date: 20200609 |
|
| WW01 | Invention patent application withdrawn after publication |