CN112289360B - 读取重试阈值电压选择 - Google Patents
读取重试阈值电压选择 Download PDFInfo
- Publication number
- CN112289360B CN112289360B CN202010469243.5A CN202010469243A CN112289360B CN 112289360 B CN112289360 B CN 112289360B CN 202010469243 A CN202010469243 A CN 202010469243A CN 112289360 B CN112289360 B CN 112289360B
- Authority
- CN
- China
- Prior art keywords
- read
- threshold voltage
- read threshold
- retry
- sets
- 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
- 230000015654 memory Effects 0.000 claims abstract description 151
- 238000000034 method Methods 0.000 claims abstract description 37
- 230000004044 response Effects 0.000 claims abstract description 7
- 230000006870 function Effects 0.000 claims description 15
- 238000000926 separation method Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 9
- 230000008520 organization Effects 0.000 description 4
- 101100135116 Oryza sativa subsp. japonica RR12 gene Proteins 0.000 description 3
- 230000001174 ascending effect Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 101100350460 Oryza sativa subsp. japonica RR27 gene Proteins 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 229920000642 polymer Polymers 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000002269 spontaneous effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3404—Convergence or correction of memory cell threshold voltages; Repair or recovery of overerased or overprogrammed cells
-
- 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
-
- 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
- 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/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/5671—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 trapping in an insulator
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
实施例描述了一种用于从存储装置读取数据的方法,该方法包括:选择待读取的存储块;识别用于读取该块的读取重试表;确定所选择的存储块的读取重试表需要更新;并且使用来自该读取重试表的新读取阈值电压组读取存储块。响应于使用新电压组的成功读取操作,该方法还可包括:利用该新读取电压组来代替第一字段中的初始读取电压组;并且利用从读取重试邻居表中识别出的额外读取阈值电压组填充读取重试表中的多个后续字段,其中在读取电压空间中,额外读取电压组中的至少一个在距离上最接近初始读取电压组。
Description
技术领域
本公开涉及一种读取重试阈值电压选择。
背景技术
诸如固态驱动器(SSD)的非易失性存储器装置正在消费电子领域找到新的应用。例如,它们正在替换通常包括快速旋转磁盘(磁碟(platter))的硬盘驱动器(HDD)。非易失性存储器有时被称为“闪速存储器”或“闪速存储器装置”(例如,NAND和NOR闪速存储器装置),被用于媒体存储、相机、移动电话、移动计算机、膝上型计算机、USB闪存驱动器等中。非易失性存储器可以在电源关闭时提供相对可靠、紧凑、经济高效且易于访问的数据存储方法。
NAND闪存装置通常由包括多个页面的块组成。每个页面可以包括多个NAND闪存单元,例如数百或数千个NAND闪存单元。NAND闪存单元可以是可以表示每个单元一位的单层单元(SLC)闪存装置,也可以是每个单元可表示两个或更多位的多层单元(MLC)闪存装置。例如,三层单元(TLC)NAND闪存装置可以表示每个单元三位。每个单元可以保持电压以指示存储在物理上相同的闪存单元中的值。例如,SLC闪存装置可以在每个单元存储一位数据,例如,“1”或“0”。MLC可以在每个单元中存储两位数据,因此可以支持四种可能的状态,例如,“11”、“10”、“01”或“00”。将理解的是,状态可以参考闪速存储器实施方式来表示电荷状态或电压电平,并且电荷状态或电压电平可以取决于单元中存储的电荷量。因此,每个单元使用多个层的MLC NAND闪存装置可以更具成本效益,因为与SLC闪存装置相比,MLC NAND闪存装置可以允许存储更多的位,并且通常用于大容量级别的存储器。
可以通过识别每个单元的电压电平来读取MLC NAND闪存装置的单元中存储的数据。如果电压电平高于某个读取阈值电压,则装置可以确定该单元中存储的数据与特定的电荷状态相关联,这可以用来确定在该单元中存储了什么数据。随着时间的流逝,在使用装置期间反复进行编程、擦除和其它压力(例如,暴露于高温)会降低装置存储数据的一致性/可靠性。也就是说,一些单元中存储的电荷量可能改变,从而降低或增加单元工作的电压电平。在一些情况下,电压电平对于一些单元可能会偏移太远,并导致这些单元的数据读取不正确和/或导致读取操作失败,在这种情况下,装置可能会尝试重试读取操作。重试读取操作可能会增加读取操作的延迟,因此可能不会达到服务质量(QoS)要求。
发明内容
本公开的实施例涉及一种用于改善NAND闪存装置的读取准确性和延迟的方法、装置和系统。该方法允许装置修改其读取阈值电压,以跟踪在用户使用期间NAND闪存装置中的单元的电压电平的变化。如由NAND闪存装置的本地存储器中存储的读取重试邻居表所确定的,一些实施例基于其与读取电压空间中的其它读取阈值电压的接近度(proximity)来修改读取阈值电压。允许该装置基于电压与其它读取阈值电压的接近度来修改其读取阈值电压以允许该装置更准确地且以较低的延迟读取NAND闪存装置中存储的数据。
在一些实施例中,一种用于从存储装置读取数据的方法包括:选择待读取的存储块,该存储块是被配置为存储数据位的存储器装置中的大容量存储器的一部分;识别用于读取该存储块的读取重试表,该读取重试表包括多个字段,该多个字段包含:第一字段中的初始读取阈值电压组;以及在第一字段的多个后续字段中的多个后续读取阈值电压组;确定所选择的存储块的读取重试表需要更新;使用来自读取重试表的新读取阈值电压组来读取存储块,该新读取阈值电压组是读取重试表中的多个后续读取阈值电压组中的一个;响应于确定已经使用新读取阈值电压组成功读取了该存储块,利用该新读取阈值电压组替换第一字段中的初始读取阈值电压组;并以及利用从读取重试邻居表中识别的额外读取阈值电压组填充读取重试表中的多个后续字段,以创建经更新的读取重试表,其中在读取电压空间中,额外读取阈值电压组中的至少一个在距离上最接近于初始读取阈值电压组。
确定所选择的存储块的读取重试表需要更新可以包括:使用初始读取阈值电压组对存储块执行第一读取操作;以及确定该第一读取操作导致失败的读取操作。确定所选择的存储块的读取重试表需要更新可以进一步包括:使用初始读取阈值电压组对存储块执行至少第二读取操作;以及确定该至少第二读取操作导致失败的读取操作的次数超过失败的读取操作的阈值次数。读取重试表可以是默认读取重试表,该默认读取重试表被设计为设置用于在未受压力的条件下读取存储器装置的读取阈值电压。经更新的读取重试表可不同于读取重试表,并且可被设计为设置用于在受压力的条件下读取存储器装置的读取阈值电压。可通过存储块中的经编程的单元的电荷状态来定义受压力的条件,经编程的单元的电压电平在存储器装置经历了多个编程和擦除周期后已从其初始状态偏移。读取重试邻居表可以包括:第一列,列出第一多个读取阈值电压组;以及至少一个第二列,列出至少一列其它多个读取阈值电压组。该第一多个读取阈值电压组可以是能够被存储器装置使用的可用读取阈值电压组,并且其中可根据到第一多个读取阈值电压组中的对应的读取阈值电压组的距离,来识别至少一列其它多个读取阈值电压组中的读取阈值电压组。可以按照与第一多个读取阈值电压组的分离距离,以增加分离距离的方式来布置至少一列其它多个读取阈值电压组。读取重试表和读取重试邻居表可存储在存储器装置的本地存储器中。
在特定实施例中,一种存储器装置包括:处理器;大容量存储器,与处理器通信地联接并且包括被配置为存储数据多个大容量存储块;以及本地存储器,与处理器通信地联接并且包括读取重试表、读取重试邻居表和计算机可读指令。读取重试表可包括按顺序布置的用于读取多个大容量存储块的多个读取阈值电压组,读取重试邻居表可包括关于读取电压空间中的读取阈值电压组之间的空间关系的信息,并且计算机可读指令在由处理器执行时可将存储器装置配置为:从多个大容量存储块中选择存储块进行读取;识别用于读取该存储块的读取重试表,读取重试表包括多个字段,该多个字段包含:第一字段中的初始读取阈值电压组;以及在第一字段的多个后续字段中的多个后续读取阈值电压组;确定所选择的存储块的读取重试表需要更新;使用来自读取重试表的新读取阈值电压组来读取存储块,该新读取阈值电压组是读取重试表中的多个后续读取阈值电压组中的一个;响应于确定已经使用新读取阈值电压组成功读取了该存储块,利用该新读取阈值电压组替换第一字段中的初始读取阈值电压组;并且使用从读取重试邻居表中识别出的额外读取阈值电压组填充读取重试表中的多个后续字段,以创建经更新的读取重试表,其中在读取电压空间中,额外读取阈值电压中组的至少一个在距离上最接近于初始读取阈值电压组。
读取重试表是默认读取重试表,该默认读取重试表可被设计为设置用于在未受压力的条件下读取存储器装置的读取阈值电压。经更新的读取重试表可不同于读取重试表,并且被设计为设置用于在受压力的条件下读取存储器装置的读取阈值电压。读取重试邻居表可以包括:第一列,列出第一多个读取阈值电压组;以及至少一个第二列,列出至少一列其它多个读取阈值电压组。该第一多个读取阈值电压组可以是能够被存储器装置使用的可用读取阈值电压组,其中可根据到第一多个读取阈值电压组中的对应的读取阈值电压组的距离,来识别至少一列其它多个读取阈值电压组中的读取阈值电压组。
在一些实施例中,一种用于从存储装置读取数据的计算机系统,包括:主机装置,包括主机处理器和主机存储器装置;以及存储器装置,通信地联接到主机装置并且被配置为从主机装置存储数据并且向主机装置发送数据。存储器装置包括:存储器装置处理器;大容量存储器,与存储器装置处理器通信地联接并且包括被配置为存储数据的多个大容量存储块;本地存储器,与存储器装置处理器通信地联接并且包括读取重试表、读取重试邻居表和计算机可读指令。读取重试表可包括按顺序布置的用于读取多个大容量存储块的多个读取阈值电压组,读取重试邻居表可包括关于读取电压空间中的读取阈值电压组之间的空间关系的信息;并且计算机可读指令在由存储器装置处理器执行时可将存储器装置配置为:从多个大容量存储块中选择存储块进行读取;识别用于读取该存储块的读取重试表,读取重试表包括多个字段,该多个字段包含:第一字段中的初始读取阈值电压组;以及在第一字段的多个后续字段中的多个后续读取阈值电压组;确定所选择的存储块的读取重试表需要更新;使用来自读取重试表的新读取阈值电压组来读取存储块,该新读取阈值电压组是读取重试表中的多个后续读取阈值电压组中的一个;响应于确定已经使用新读取阈值电压组成功读取了该存储块,利用该新读取阈值电压组替换第一字段中的初始读取阈值电压组;并且使用从读取重试邻居表中识别出的额外读取阈值电压组填充读取重试表中的多个后续字段,以创建经更新的读取重试表,其中在读取电压空间中,额外读取阈值电压中组的至少一个在距离上最接近于初始读取阈值电压组。
读取重试表可以是默认读取重试表,该默认读取重试表被设计为设置用于在未受压力的条件下读取存储器装置的读取阈值电压。经更新的读取重试表可不同于读取重试表,并且被设计为设置用于在受压力的条件下读取存储器装置的读取阈值电压。读取重试邻居表可以包括:第一列,列出第一多个读取阈值电压组;至少一个第二列,列出至少一列其它多个读取阈值电压组。该第一多个读取阈值电压组可以是能够被存储器装置使用的可用读取阈值电压组,并且其中可根据到第一多个读取阈值电压组中的对应的读取阈值电压组的距离,来识别至少一列其它多个读取阈值电压组中的读取阈值电压组。
参考以下详细描述和附图,可以更好地理解本公开的实施例的本质和优点。然而,应当理解的是,提供每个附图仅出于说明的目的,并且不旨在作为对本公开范围的限制的定义。并且,作为通用规则,除非从说明书中明显得知相反,否则在不同附图中的元件使用相同的附图标记,这些元件在功能或目的上通常相同或至少相似。
附图说明
图1是示出根据本公开的一些实施例的包括联接到闪速存储器装置的主机装置的系统的简化框图。
图2是闪速存储器的结构组织的示例示图。
图3是示出根据本公开的一些实施例的MLC NAND闪存装置中的存储块的示例性编程分布的图表。
图4是根据本公开的一些实施例的示例读取重试表。
图5是示出根据本公开的一些实施例的在装置经历了压力之后的MLC NAND闪存装置中的存储块和图像传感器阵列的示例性编程分布的图表。
图6是根据本公开的一些实施例的第三读取阈值电压组导致成功的读取操作的示例RRT。
图7是根据本公开的一些实施例的已经利用根据读取重试邻居表确定的一个或多个读取阈值电压组来更新的示例经更新RRT。
图8是根据本公开的一些实施例的示例读取重试邻居表。
图9是示出根据本公开的一些实施例的在读取电压空间中绘制的读取阈值电压组的示例图形表示的图表。
图10是根据本公开的一些实施例的用于经更新读取重试表的示例方法的流程图。
具体实施方式
下面提供本公开的某些方面和实施例。对于本领域技术人员显而易见的是,这些方面和实施例中的一些可以独立地应用,并且它们中的一些可以组合地应用。在下面的描述中,出于解释的目的,阐述了具体细节以便提供对实施例的透彻理解。然而,将显而易见的是,可以在没有这些具体细节的情况下实践各种实施例。附图和描述并不具有限制性。
后续描述提供了示例,并且不旨在限制本公开的范围、适用性或配置。相反,对示例性实施例的随后描述将向本领域技术人员提供能够用于实施示例性实施例的描述。应该理解的是,在不脱离所附权利要求书所阐述的本公开的精神和范围的情况下,可以对元件的功能和布置进行各种改变。
在以下描述中给出了具体细节以提供对实施例的透彻理解。然而,本领域的普通技术人员将理解,可以在没有这些具体细节的情况下实践实施例。例如,电路、系统、网络、进程和其它组件可以以框图形式被示出为组件,以便不会在不必要的细节上模糊实施例。在其它情况下,可以在没有不必要的细节的情况下示出公知的电路、进程、算法、结构和技术,以避免模糊实施例。
另外,应当注意,可以将各个实施例描述为被描绘为流程图、流程示图、数据流程图、结构图或框图的进程。尽管流程图可以将操作描述为顺序进程,但是许多操作可以并行或同时执行。另外,可以重新安排操作顺序。当进程的操作完成时,该进程将终止,但可能会有图中未包括的其它步骤。进程可以对应于方法、函数、过程、子例程、子程序等。当进程对应于函数时,其终止可对应于该函数向调用函数或主函数的返回。
术语“计算机可读介质”包括但不限于便携式或非便携式存储装置、光学存储装置以及能够存储、包含或携带指令和/或数据的各种其它介质。计算机可读介质可以包括可以存储数据的非瞬态介质,并且不包括无线或通过有线连接传播的载波和/或瞬态电子信号。非瞬态介质的示例可以包括但不限于磁盘或磁带、诸如光盘(CD)或数字通用磁盘(DVD)的光学存储介质、闪速存储器、存储器或存储器装置。计算机可读介质上可能存储有代码和/或机器可执行指令,该代码和/或机器可执行指令可以表示过程,函数,子程序,程序,例程,子例程,模块,软件包,类或指令、数据结构或程序语句的任意组合。通过传递和/或接收信息、数据、自变量、参数或存储器内容,代码段可以联接到另一代码段或硬件电路。可以通过包括存储器共享、消息传递、令牌传递、网络传输等的任何适当方式来传递、转发或传输信息、自变量、参数、数据等。
此外,可以通过硬件、软件、固件、中间件、微代码、硬件描述语言或其任意组合来实施实施例。当以软件、固件、中间件或微代码实施时,用于执行必要任务的程序代码或代码段(例如,计算机程序产品)可以存储在计算机可读或机器可读介质中。处理器可以执行必要的任务。
以下的详细描述连同有时在多个附图中使用相同的附图标记来指定相似或相同的结构或结构元件的附图,提供了对本公开的本质和优点的更好的理解。
本公开的实施例涉及一种用于改善MLC NAND闪速存储器装置的读取操作的方法、装置和系统。可根据读取重试表读取MLC NAND闪速存储器装置中存储的数据。读取重试表可包括几个读取阈值电压组。如将在本文中关于图3和图4进一步讨论的,每个读取阈值电压组可包括一个或多个读取阈值电压,以识别存储器单元的不同电荷状态。默认情况下,第一读取阈值电压组可用于从存储器装置读取数据。通常,第一读取阈值电压组导致成功读取闪速存储器装置中存储的数据。
但是,随着时间的流逝,持续使用闪存装置可能会导致不同电荷状态的电压电平发生变化。块中单元的一些电压电平可以降低到由初始读取阈值电压组定义的与其对应的读取阈值电压以下。因此,对于该块,使用第一读取阈值电压组的第一读取操作可能失败。如果第一读取阈值电压组使第一读取操作失败,则可以在块的第二读取操作中使用第二读取阈值电压组。如果第二读取阈值电压组导致第二读取操作失败,则可以在块的第三读取操作中使用第三读取阈值电压组,依此类推,直到实现成功的读取操作。每次读取块时重复此进程。因此,可能会出现延迟问题,以及读取失败的次数增加,尤其是在读取重试表保持不变的情况下。
根据本公开的一些实施例,一旦在不成功的读取操作之后执行了成功的读取操作,则闪速存储器装置可利用一个或多个新读取阈值电压组来更新读取重试表。如将在本文中关于图9进一步讨论的,可根据包含与读取电压空间中的不同读取阈值电压组之间的距离有关的数据的读取重试邻居表来选择新读取阈值电压组。新读取阈值电压组可以是与初始读取阈值电压组接近的读取阈值电压组。新读取重试表可使闪速存储器装置更快速、更准确地读取数据,而不必使用已知将失败的阈值电压组重复读取操作。因此,本文的实施例提供具有较低的读取延迟和较高的读取准确性的改进的MLC NAND闪速存储器装置。
图1是示出包括联接到闪速存储器装置104的主机装置102的系统100的简化框图。主机装置102可包括任何合适的硬件装置、软件应用、或由主机处理器103和主机存储器装置105实施的硬件和软件的组合。在一些实施例中,主机装置102可包括主机侧控制器(未示出)。主机装置102可向闪速存储器装置104发送请求以访问闪速存储器108,例如,以将数据写入大容量存储器108或从大容量存储器108读取数据。
在一些实施例中,闪速存储器装置104可以包括通信地联接到大容量存储器108的闪速存储器控制器106。闪速存储器控制器106可以被配置为从主机装置102接收各种命令,并且基于这些命令与大容量存储器108通信。闪速存储器控制器106可以使大容量存储器108能够基于从主机装置102接收的命令来执行各种操作。例如,主机装置102可以与闪速存储器控制器106通信以编程、擦除、读取或修整大容量存储器108的部分。大容量存储器108可以是用于存储来自主机装置102的数据的任何合适类型的存储器,例如,闪速存储器。
根据本公开的一些实施例,闪速存储器控制器106还可以通信地联接到本地存储器110。本地存储器110可以是任何合适的非易失性存储器,例如只读存储器(ROM)。本地存储器110可以存储针对闪速存储器装置104的硬件的低级控制信息(例如,固件)。在一些实施例中,本地存储器110可以存储代码行,当由闪速存储器控制器106指示时,该代码行导致使用读取重试邻居表112从大容量存储器108读取数据。如将在本文中对于图8和图9进一步讨论的,读取重试邻居表112可以存储与读取电压空间中的读取阈值电压组之间的距离有关的数据。
在一些实施方式中,闪速存储器控制器106和本地存储器110可以是设备114的一部分。例如,设备114可以被实施为片上系统(SoC)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或任何其它合适的电路。尽管本地存储器110被示为与大容量存储器108分离并且独立,但是实施例不限于这种配置。在一些实施例中,本地存储器110被实施在大容量存储器108中,使得大容量存储器108的一部分被用于形成本地存储器110。
在一些实施方式中,大容量存储器108可以是任何非易失性存储器,例如,NAND闪存。在一些实施方式中,大容量存储器108可以是被配置为作为NAND闪存在外部交互的NOR闪速存储器。可将大容量存储器108设计为在没有连续或基本上连续的外部电源的情况下存储数据。在一些示例中,大容量存储器108可用于例如在诸如膝上型计算机的计算机系统中的辅助数据存储装置。在这样的示例中,闪速存储器装置104可以代替磁性硬盘驱动器(HDD)。在一些示例中,闪速存储器控制器106可在闪速存储器装置104的外部。在一些这样的示例中,闪速存储器控制器106可以与多个闪速存储器交互。在一些实施例中,代替大容量存储器108或除大容量存储器108之外,可以使用其它非易失性存储器。示例可以包括只读存储器(ROM)、掩模ROM(MROM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、铁电RAM(F-RAM)、磁阻RAM(RAM)、基于聚合物的有机存储器、全息存储器、相变存储器等。参照图2说明诸如大容量存储器108的闪速存储器的示例性结构组织。
图2是大容量存储器108的组织的示例示图。要注意的是,图2中所示的结构200仅用于说明性目的,大容量存储器108的实际物理组织可与图示大不相同。
在一些实施方式中,大容量存储器108可以被实施为被称为块的NAND闪存单元的二维矩阵,其包括页面(行)和串(列)。在块内,同一行中的所有单元可共享字线(WL)。闪速存储器管芯可包括多个块202,其可以包括主块202a和扩展块202b。在一些实施方式中,主块202a可以用于存储数据,并且扩展块202b可以用于存储辅助信息,例如,错误校正码、与块管理有关的元数据(例如,擦除周期计数器、逻辑地址信息、坏块标志)等。多个块202可以包括可在不同平面上的块。在图2所示的示例中,可有两个平面,平面0和平面1,但是其它示例可包括每个管芯不同数量的平面。多个这样的管芯可被包括在诸如大容量存储器108的闪速存储器中。平面0可包括第一组块,例如,块0、块2、块4、……、块4214。平面1可包括第二组块,例如,块1、块3、块5、……、块4215。在图2所示的示例中,主块202a可以包括4096个块,而扩展块202b可以包括120个块。在大多数实施方式中,块可以代表最小的可擦除单元。
每个块可包括多个字线。如图2所示,平面0上的块2可以包括多个字线204。例如,字线204可以包括86个字线,其可以等效于258个页面(例如,每个字线三个页面)。通常,在MLC NAND闪存装置中,单个单元中的两个位未映射到同一页面。例如,字线上的所有最高有效位(MSB)可以形成MSB页面,而字线上的所有最低有效位(LSB)可以形成LSB页面。如图2所示,由WL2表示的字线206可以对应于LSB页面和MSB页面。MSB页面可以包括与WL2上的所有单元相关联的MSB,而LSB页面可以包括与WL2上的所有单元相关联的LSB。每个页面可以存储多个字节,该多个字节可以包括用于主数据的字节和用于辅助数据的字节。例如,来自字线206的LSB页面可以包括字节208,字节208包括主字节和备用字节。在图2所示的示例中,来自字线206的LSB页面可以包括16384个主字节和2048个备用字节。闪速存储器中的每个页面可以代表最小可编程单元或最小可读单元。在本说明书中,闪速存储器的编程或写入可以互换使用。对页面进行编程可以被解释为基于写入数据使该页面上的每个单元的电压电平达到可能的状态中的一个。
与SLC闪存装置相比,MLC NAND闪存装置通常提供较高的单元密度,具有成本效益,因此通常用于海量存储消费类应用。但是,由于单个单元存在多个电荷状态,因此读取MLC NAND闪存装置可能较复杂,并且为了成功读取MLC NAND闪存装置的块,需要识别该块中每个单元的特定电荷状态。
图3是示出根据本公开的一些实施例的MLC NAND闪存装置中的存储块的示例性编程分布的图表300。y轴表示根据对数标度以升序向上的位数,x轴表示向右升序的阈值电压。对于MLC NAND闪速存储器装置,每个单元可保存两位数据;因此,每个单元可以处于四个可能的电荷状态:三个已编程的电荷状态P1、P2和P3(例如,分别以二进制表示为“01”、“10”和“00”)以及一个已擦除的电荷状态P0(例如,以二进制表示为“11”)。每个读取操作可以参考读取阈值电压组,该读取阈值电压组可包括三个阈值电压,MLC NAND闪速存储器装置的P1、P2和P3电荷状态中的每一个电荷状态对应一个阈值电压。例如,可以使用读取阈值电压组V1、V2和V3,来读取由图3中的图表300表示的存储块中的单元。那些高于读取阈值电压V3的位可被读取为具有“00”数据的P3状态,那些高于读取阈值电压V2但低于V3的位可被读取为具有“10”数据的P2状态,那些高于读取阈值电压V1但低于V2的位可被读取为具有“01”数据的P1状态,并且那些低于读取阈值电压V1的位可被读取为具有“11”数据的P0状态。
在一些实施例中,该读取阈值电压组可以是作为表存储在例如图1中的本地存储器110的本地存储器中的多个读取阈值电压组中的一个。可按特定顺序排列读取阈值电压组,以便在初始读取操作失败的情况下,可以使用后续读取阈值电压组来重试读取操作。这样的表可被称为“读取重试表(RRT)”。
图4是根据本公开的一些实施例的示例读取重试表400。RRT 400可包括五个读取阈值电压组:RR0、RR1、RR2、RR3和RR4。每个读取阈值电压组可包括三个阈值电压。例如,RR0可以包括阈值电压V1,V2和V3,RR1可以包括V4、V5和V6,RR2可以包括V7、V8和V9,等,以此类推直至RR4。尽管图4仅示出了用于读取重试表的五个读取阈值电压组,其中每个组包括三个阈值电压,但是实施例不限于这种配置,并且在不脱离本公开的精神和范围的情况下,其它实施例可在读取重试表中包括更多或更少的读取阈值电压组,并且每个读取阈值电压组可包括更多或更少阈值电压。
RRT 400可以是用于闪速存储器装置的每次读取操作的初始表。在一些情况下,读取块的第一次尝试成功。例如,由例如闪速存储器控制器106的闪速存储器控制器执行的读取操作可以参考RRT 400,并从初始阈值电压组,例如从利用哈希标记所示的RR0中识别阈值电压V1、V2和V3。可通过将电荷状态与各个读取电压V1、V2和V3进行比较来确定块中每个单元的每个电荷状态。当闪速存储器装置能够确定块中每个单元的电荷状态时,成功读取发生。
但是,在一些情况下,读取操作可能会失败。当一些位的电荷状态由于例如过度的编程和擦除周期和/或暴露于高温的压力而发生偏移时,可能会发生这种情况。这些压力可在存储器装置被制造并出售给用户之后发生,并且用户的使用导致压力,该压力导致电荷状态的偏移。图5是示出根据本公开的一些实施例的,在装置经历压力之后MLC NAND闪存装置中的存储块的示例性编程分布的图表500。为了便于比较,将受压力的电荷状态SP0、SP1、SP2和SP3(以实线表示)叠加在图3的初始的、未受压力或受压力不足的电荷状态P0、P1、P2和P3(以虚线示出)上。如图5所示,由于压力引起的电荷存储能力的变化,每个电荷状态SP0-SP3的分布已经从初始电荷状态P0-P3偏移。因此,一些单元可能具有位于被配置为读取那些单元的相应读取阈值以下的电压电平,这可能导致读取操作失败。例如,以低于初始读取阈值电压V1的电荷状态SP1存储的单元可能导致读取操作失败,因为装置可能不会确定那些单元高于读取阈值电压V1,因此可能不会识别它们包含“01”数据。
为了补偿这种电荷状态的电压电平偏移,可将读取重试表配置为在初始读取失败的情况下为后续读取操作提供不同的读取阈值。作为示例,图6是根据本公开的一些实施例的第三读取阈值电压组导致成功的读取操作的示例RRT 600。RRT 600可以基本上类似于图4中的RRT 400,并且包括相同的五个默认读取阈值电压组:RR0、RR1、RR2、RR3和RR4。由于电荷状态由于压力而偏移,因此如果使用RR0,则读取操作可能会失败,因为块中的一些单元的电压电平低于读取阈值电压V1、V2和V3。
如果RR0失败,则后续读取阈值电压组RR1可以用于下一个读取操作。后续读取阈值电压组可按例如在一个示例中从左至右的顺序用于后续读取重试操作中。RR1的一个或多个读取阈值电压可以低于RR0的一个或多个读取阈值电压,以试图追踪电荷状态的偏移。作为示例,RR1可包括可以小于RR0的读取阈值电压V1、V2和V3的如图5所示的读取阈值电压V4、V5和V6。因此,更多具有偏移的电压电平的单元可以被确定为处于正确的电荷状态。然而,该块中的一些单元可能具有仍然不能被读取阈值电压V4、V5和V6读取的电荷状态。因此,使用RR1的读取操作也可能失败。因此,下一个读取重试操作可以将RR2用作后续读取操作的下一个读取阈值电压组,如哈希标记所示。RR2可以包括读取阈值电压V7、V8和V9,其读取阈值电压如图5所示。可以使读取阈值电压V7、V8和V9处于在所有已编程的电荷状态之间进行区分的位置。因此,读取阈值电压V7,V8和V9可足以识别该块中所有单元的正确电荷状态,并且使用RR2的读取重试操作可能会成功。
在一些情况下,在使用后续读取阈值电压组之前,可以使用所选择的读取阈值电压组来执行几次读取操作。例如,在使用RR1执行读取重试操作之前,可以将RR0用于一定次数的连续读取操作。在一些实施例中,在使用后续读取阈值电压组之前,可以发生阈值次数的尝试。一旦读取操作失败阈值次数,则可以确定需要更新读取重试表600。
如果读取重试表包含导致读取操作失败的读取阈值电压组,并且读取重试表未更新,则稍后读取该块时,装置将反复使那些读取操作失败。这会增加延迟和读取失败的次数,随着用户持续使用该装置并使其承受额外的压力,情况可能会变得更糟。根据本公开的一些实施例,可以利用不包含已导致读取操作失败的读取阈值电压组的新分组的读取阈值电压组来更新读取重试表。那样,那些已知失败的读取阈值电压组可能不会再次使用,从而改善了读取延迟和准确性。这可以在其被出售并由用户使用后的使用寿命中持续地改善存储器装置的延迟。如本文将进一步讨论的,新分组可以包括多个读取阈值电压组,其中第一读取阈值电压组是在上一次成功读取中使用的读取阈值电压组,并且后续读取阈值电压组可以是在读取电压空间中绘制图表时与紧接在之前的读取阈值电压组最靠近的读取阈值电压组。
图7是根据本公开的一些实施例的已经利用根据读取重试邻居表确定的一个或多个读取阈值电压组来更新的示例经更新RRT 700。继续图6中讨论的使用RR2成功进行读取重试操作的示例,由于RR2导致先前成功的读取重试操作,因此可以将RRT 700的初始读取阈值电压组设置为RR2。因此,用于读取块的后续读取操作可以使用导致最后一次成功读取操作的读取阈值电压组。可使用从读取重试邻居表中识别出的读取阈值电压组来填充读取阈值电压组的其余字段。
图8是根据本公开的一些实施例的示例读取重试邻居表800。读取重试邻居表800可以是NAND闪速存储器装置的本地存储器中存储的表,该表在读取阈值电压组之间建立关系。在一些实施例中,读取重试邻居表800包括第一列802,其以升序列出所有可用的读取阈值电压组RR0至RRN。可用的读取阈值电压组的数量可由闪速存储器装置的硬件定义。硬件可以被配置为根据有限数量的读取阈值电压组进行读取。在一个示例中,闪速存储器装置可具有50个不同的读取阈值电压组,其中没有两个读取阈值电压组是相同的。可根据最接近第一列802中的对应读取阈值电压组的读取阈值电压组来布置第二列和后续的列。例如,参考读取阈值电压组RR0,第一最近邻居804可以是RR1,第二最近邻居806可以是RR3,并且第N最近邻居808(例如,最远邻居)可以是RR27。
可根据应用到在读取电压空间中绘制的阈值电压组的距离函数来确定阈值电压组之间的距离。图9是示出根据本公开的一些实施例的在读取电压空间中绘制的读取阈值电压组的示例图形表示的图表900。每个读取阈值电压组可以是多维数据点,其中每个数据点对应于图表900中的读取电压空间的维度。继续以MLC NAND闪存装置为例,由于每个读取阈值电压组可包含用于读取电荷状态P1、P2和P3的三个读取阈值电压,因此每个读取阈值电压组可以是在包含三个轴Vx、Vy和Vz的读取电压空间中绘制的三维数据点。可以在读取电压空间中绘制所有50个读取阈值电压组,并将其显示为图表900。假设在读取电压空间中绘制时,读取阈值电压组是三维坐标空间中的点,则可以根据以下距离函数确定两个读取阈值电压组(RR)之间的距离:
d(RR1,RR2)=√((Vx2-Vx1)2+(Vy2-Vy1)2+(Vz2-Vz1)2)
其中,函数d表示RR1和RR2之间的距离。可以理解的是,示出三维读取电压空间的实施例仅是示例性的,并且其它实施例可在读取电压空间中具有多于或少于三个的维度。例如,每个电荷状态具有三位数据的三层单元(TLC)闪速存储器装置可具有八个维度(一个用于擦除电荷状态,七个用于编程电荷状态)。
利用该公式,可以使用读取阈值电压组之间的距离来填充读取重试邻居表,以便可以识别接近某些其它读取阈值电压组的读取阈值电压组。例如,最接近RR0的读取阈值电压组可以是RR1,第二最近RR0的读取阈值电压组可以是RR3,并且离RR0最远的读取阈值电压组可以是RR27,其可在图8中的读取重试邻居表800的RR0的行中反映。每行可为第一列802中的各自读取阈值电压组建立相同的信息。
考虑到这一点,可以更详细地讨论填写图7中经更新的RRT 700。如本文中所提及的,RR2可以是在使用每个读取阈值电压组RR0和RR1进行一次或更多次不成功的读取之后导致成功的读取操作的最后一个读取阈值电压组。因此,可将RRT 700的初始读取阈值电压组定义为RR2。下一个读取阈值电压组可以是在读取电压空间中最接近RR2的读取阈值电压组。参照图8中的读取重试邻居表800,最接近RR2的读取阈值电压组可以是RR6。因此,RRT700中的第二个读取重试阈值电压组可以是RR6。下一个读取阈值电压组可以是在读取电压空间中最接近RR6的读取阈值电压组。参照图8中的读取重试邻居表800,最接近RR6的读取阈值电压组可以是RR3。可重复此逻辑,直到RRT 700中的所有字段都被填充,从而在最后两个字段中填充RR5和RR12。这些读取阈值电压组的图形表示可以在图9中看到,该示图示出了包括作为数据点的读取阈值电压组的图表900。如图9所示,RR6最接近RR2,RR3最接近RR6,RR5最接近RR3,RR12最接近RR5。
在一些实施例中,如果为填充RRT中的字段而识别出的最接近的读取阈值电压组在之前已经使用过并且导致读取失败,则可以使用下一个最接近的读取阈值电压组。例如,如果RR3的读取阈值电压实际布置成使得RR3位于图9所示的RR3x处,则RR0将最接近RR3x。然而,由于RR0已经在导致读取失败的先前读取操作中使用过,所以可不选择RR0,而是可以选择第二最接近的读取阈值电压组(例如,第二最近邻居列806中的读取阈值电压组)。在一些实施例中,可以在本地存储器中标记导致读取失败的读取阈值电压组,使得所执行的用于更新RRT的后续操作可以避免使用这些读取阈值电压组。例如,RR0可以设置有标志“1”,表示它已在失败的读取操作中使用过,而RR5和除RR1以外的所有其它读取阈值电压组可以设置有标志“0”,表示它们尚未导致读取操作失败。
通过利用导致读取操作成功的最新读取阈值电压组来更新RRT,并利用读取电压空间中与紧接在之前的阈值电压组最接近的阈值电压组来填充其余字段,所更新的RRT可使后续读取操作的成功读取机会最大化,并改善读取延迟。读取延迟可以得到改善,因为初始读取阈值电压组是导致读取操作成功的最新使用的组;并且如果初始读取阈值电压组以某种方式导致了读取操作失败,则可使用与初始读取阈值电压组最相似的后续读取阈值电压组。
图10是根据本公开的一些实施例的用于更新读取重试表的示例方法1000的流程图。方法1000可以是可以由处理器执行以指示处理器执行以下功能中的一个或多个的计算机可读介质。在框1002中,可选择待读取的存储块。比如,例如图1中的大容量存储器108的大容量存储器的块,例如图2中的块0,可被选择为由例如图1中的闪速存储器控制器106的闪速存储器控制器读取。该块可包含例如图1中的主机装置102的主机装置已经请求读取的信息。
然后,在框1004中,可识别用于读取所选择的块的读取重试表。例如,闪速存储器控制器可选择与所选择的块相关联的读取重试表。读取重试表可以是默认的读取重试表,例如图4中的RRT 400,其尚未由于一个或多个失败的读取操作而被更新。默认读取重试表可由闪速存储器装置的设计者设置,并且可被设计为读取存储器单元按预期操作并且承受诸如以下的压力之前的存储块:过度的编程和擦除周期和/或过高和过低的温度。在可选实施例中,读取重试表可以是先前更新的读取重试表。
在框1006中,可由闪速存储器控制器确定读取重试表需要被更新。确定读取重试表需要更新的方式可以有很多。例如,在一次读取操作失败的情况下,可确定读取重试表需要更新。该一次失败的读取操作可以是使用初始读取阈值电压组的失败读取操作。作为示例,如本文关于图6所讨论的,使用图4的RRT 400中的RR0的读取操作可能会导致读取操作失败。在另一示例中,当发生阈值数量的读取操作失败时,可确定读取重试表需要更新。这些读取操作失败可以是均使用相同的初始读取阈值电压组的一系列的读取操作失败。作为示例,可执行全部使用图4的RRT 400中的RR0的五次读取操作,并且为了使闪速存储器控制器确定需要更新读取重试表,可能需要所有读取操作都失败。通过使该方法在确定需要更新读取重试表之前执行阈值数量的读取操作,该方法可确认读取重试表需要更新,而非仅仅是由于与读取阈值电压无关的其它原因而遇到自发的读取失败。这可以提高读取重试表的准确性,从而改善后续读取操作的准确性和延迟。
在框1008中,可以使用来自读取重试表的新读取阈值电压组来读取存储块。新读取阈值电压组可以是紧跟在框1006中使闪速存储器控制器确定需要更新读取重试表的读取阈值电压组之后的读取阈值电压组。作为示例,如本文关于图6所讨论的,如果RR0导致初始读取操作失败,则可以使用图4的RRT 400中的RR1来读取存储块。
如果新读取阈值电压组没有导致成功的读取,则方法1000可循环回到框1008,在框1008中使用另一新读取阈值电压组来读取该块。新读取阈值电压组可以是在最近导致读取操作失败的该读取阈值电压组之后的读取阈值电压组。例如,如本文关于图6所讨论的,如果RR0和RR1都导致读取操作失败,则可使用图4的RRT 400中的RR2来读取存储块。可以继续进行这种利用新读取阈值电压组读取块的循环,直到读取阈值电压组导致成功的读取。
如果新读取阈值电压组确实导致成功的读取,则在框1012中,可由闪速存储器控制器利用新读取阈值电压组替换初始读取阈值电压组。例如,如本文关于图7所讨论的,如果图4的RRT 400中的RR2导致成功读取,则可将读取阈值电压组的初始字段设置为RR2。
然后,在框1014中,可以利用从读取重试邻居表中识别出的额外读取阈值电压组来填充读取重试表中的后续字段。例如,如本文关于图7至图8所讨论的,可利用从图8中的读取重试邻居表800中识别出的RR6、RR3、RR5和RR12来填充五字段读取重试表的字段2至字段5。可以使用与在读取电压空间中绘制的读取阈值电压组之间的距离有关的数据来填充读取重试邻居表。如本文中关于图9所讨论的,在该空间中,每个读取阈值电压组可以是多维数据点,该多维数据点作为在读取电压空间中的点而存在。
尽管已经针对特定实施例描述了本公开,但是将理解的是,本公开旨在覆盖所附权利要求的范围内的所有修改和等同方案。
Claims (20)
1.一种从存储装置读取数据的方法,包括:
选择待读取的存储块,所述存储块是存储数据位的存储器装置中的大容量存储器的一部分;
识别读取所述存储块的读取重试表,所述读取重试表包括多个字段,所述多个字段包含:第一字段中的初始读取阈值电压组;以及在所述第一字段的多个后续字段中的多个后续读取阈值电压组;
确定所选择的存储块的所述读取重试表需要更新;
使用来自所述读取重试表的新读取阈值电压组来读取所述存储块,所述新读取阈值电压组是所述读取重试表中的所述多个后续读取阈值电压组中的一个;
响应于确定已经使用所述新读取阈值电压组成功读取了所述存储块,利用所述新读取阈值电压组替换所述第一字段中的所述初始读取阈值电压组;以及
利用从读取重试邻居表中识别的额外读取阈值电压组填充所述读取重试表中的所述多个后续字段,以创建经更新的读取重试表,其中在读取电压空间中,所述额外读取阈值电压组中的至少一个在距离上最接近所述初始读取阈值电压组,
其中,按照与所述新读取阈值电压组的分离距离,以增加所述分离距离的方式来布置所述额外读取阈值电压组。
2.根据权利要求1所述的方法,其中确定所选择的存储块的所述读取重试表需要更新包括:
使用所述初始读取阈值电压组对所述存储块执行第一读取操作;以及
确定所述第一读取操作导致失败的读取操作。
3.根据权利要求2所述的方法,其中确定所选择的存储块的所述读取重试表需要更新进一步包括:
使用所述初始读取阈值电压组对所述存储块执行至少第二读取操作;以及
确定所述至少第二读取操作导致失败的读取操作的次数超过失败的读取操作的阈值次数。
4.根据权利要求1所述的方法,其中所述读取重试表是默认读取重试表,所述默认读取重试表被设计为设置在未受压力的条件下读取所述存储器装置的读取阈值电压。
5.根据权利要求4所述的方法,其中所述经更新的读取重试表不同于所述读取重试表,并且被设计为设置在受压力的条件下读取所述存储器装置的读取阈值电压。
6.根据权利要求5所述的方法,其中通过所述存储块中的经编程的单元的电荷状态来定义所述受压力的条件,所述经编程的单元的电压电平在所述存储器装置经历了多个编程和擦除周期后已从其初始状态偏移。
7.根据权利要求1所述的方法,其中所述读取重试邻居表包括:第一列,列出第一多个读取阈值电压组;以及至少一个第二列,列出至少一列其它多个读取阈值电压组。
8.根据权利要求7所述的方法,其中所述第一多个读取阈值电压组是能够被所述存储器装置使用的可用读取阈值电压组,并且其中根据到所述第一多个读取阈值电压组中的对应的读取阈值电压组的距离,来识别所述至少一列其它多个读取阈值电压组中的读取阈值电压组。
9.根据权利要求8所述的方法,其中按照与所述第一多个读取阈值电压组的分离距离,以增加分离距离的方式来布置所述至少一列其它多个读取阈值电压组。
10.根据权利要求1所述的方法,其中所述读取重试表和所述读取重试邻居表存储在所述存储器装置的本地存储器中。
11.一种存储器装置,包括:
处理器;
大容量存储器,与所述处理器通信地联接并且包括存储数据的多个大容量存储块;
本地存储器,与所述处理器通信地联接并且包括读取重试表、读取重试邻居表和计算机可读指令,其中:
所述读取重试表包含按顺序布置的、读取所述多个大容量存储块的多个读取阈值电压组;
所述读取重试邻居表包含关于读取电压空间中的读取阈值电压组之间的空间关系的信息;并且
所述计算机可读指令在由所述处理器执行时将所述存储器装置配置为:
从所述多个大容量存储块中选择待读取的存储块;
识别读取所述存储块的所述读取重试表,所述读取重试表包括多个字段,所述多个字段包含:第一字段中的初始读取阈值电压组;以及在所述第一字段的多个后续字段中的多个后续读取阈值电压组;
确定所选择的存储块的所述读取重试表需要更新;
使用来自所述读取重试表的新读取阈值电压组来读取所述存储块,所述新读取阈值电压组是所述读取重试表中的所述多个后续读取阈值电压组中的一个;
响应于确定已经使用所述新读取阈值电压组成功读取了所述存储块,利用所述新读取阈值电压组替换所述第一字段中的所述初始读取阈值电压组;并且
使用从所述读取重试邻居表中识别出的额外读取阈值电压组填充所述读取重试表中的所述多个后续字段,以创建经更新的读取重试表,其中在读取电压空间中,所述额外读取阈值电压中组的至少一个在距离上最接近于所述初始读取阈值电压组,
其中,按照与所述新读取阈值电压组的分离距离,以增加所述分离距离的方式来布置所述额外读取阈值电压组。
12.根据权利要求11所述的存储器装置,其中所述读取重试表是默认读取重试表,所述默认读取重试表被设计为设置,未受压力的条件下读取所述存储器装置的读取阈值电压。
13.根据权利要求12所述的存储器装置,其中所述经更新的读取重试表不同于所述读取重试表,并且被设计为设置在受压力的条件下读取所述存储器装置的读取阈值电压。
14.根据权利要求11所述的存储器装置,其中所述读取重试邻居表包括:第一列,列出第一多个读取阈值电压组;以及至少一个第二列,列出至少一列其它多个读取阈值电压组。
15.根据权利要求14所述的存储器装置,其中所述第一多个读取阈值电压组是能够被所述存储器装置使用的可用读取阈值电压组,并且其中根据到所述第一多个读取阈值电压组中的对应的读取阈值电压组的距离,来识别所述至少一列其它多个读取阈值电压组中的读取阈值电压组。
16.一种计算机系统,从存储装置读取数据,所述计算机系统包括:
主机装置,包括主机处理器和主机存储器装置;以及
存储器装置,通信地联接到所述主机装置并且从所述主机装置存储数据并且向所述主机装置发送数据,所述存储器装置包括:
存储器装置处理器;
大容量存储器,与所述存储器装置处理器通信地联接并且包括存储数据的多个大容量存储块;
本地存储器,与所述存储器装置处理器通信地联接并且包括读取重试表、读取重试邻居表和计算机可读指令,其中:
所述读取重试表包含按顺序布置的、读取所述多个大容量存储块的多个读取阈值电压组;
所述读取重试邻居表包含关于读取电压空间中的读取阈值电压组之间的空间关系的信息;并且
所述计算机可读指令在由所述存储器装置处理器执行时将所述存储器装置配置为:
从所述多个大容量存储块中选择待读取的存储块;
识别读取所述存储块的所述读取重试表,所述读取重试表包括多个字段,所述多个字段包含:第一字段中的初始读取阈值电压组;以及在所述第一字段的多个后续字段中的多个后续读取阈值电压组;
确定所选择的存储块的所述读取重试表需要更新;
使用来自所述读取重试表的新读取阈值电压组来读取所述存储块,所述新读取阈值电压组是所述读取重试表中的所述多个后续读取阈值电压组中的一个;
响应于确定已经使用所述新读取阈值电压组成功读取了所述存储块,利用所述新读取阈值电压组替换所述第一字段中的所述初始读取阈值电压组;并且
使用从所述读取重试邻居表中识别出的额外读取阈值电压组填充所述读取重试表中的所述多个后续字段,以创建经更新的读取重试表,其中在读取电压空间中,所述额外读取阈值电压中组的至少一个在距离上最接近于所述初始读取阈值电压组,
其中,按照与所述新读取阈值电压组的分离距离,以增加所述分离距离的方式来布置所述额外读取阈值电压组。
17.根据权利要求16所述的计算机系统,其中所述读取重试表是默认读取重试表,所述默认读取重试表被设计为设置在未受压力的条件下读取所述存储器装置的读取阈值电压。
18.根据权利要求17所述的计算机系统,其中所述经更新的读取重试表不同于所述读取重试表,并且被设计为设置在受压力的条件下读取所述存储器装置的读取阈值电压。
19.根据权利要求16所述的计算机系统,其中所述读取重试邻居表包括:第一列,列出第一多个读取阈值电压组;以及至少一个第二列,列出至少一列其它多个读取阈值电压组。
20.根据权利要求19所述的计算机系统,其中所述第一多个读取阈值电压组是能够被所述存储器装置使用的可用读取阈值电压组,并且其中根据到所述第一多个读取阈值电压组中的对应的读取阈值电压组的距离,来识别所述至少一列其它多个读取阈值电压组中的读取阈值电压组。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/520,274 | 2019-07-23 | ||
US16/520,274 US11127471B2 (en) | 2019-07-23 | 2019-07-23 | Read retry threshold voltage selection |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112289360A CN112289360A (zh) | 2021-01-29 |
CN112289360B true CN112289360B (zh) | 2024-06-14 |
Family
ID=74190423
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010469243.5A Active CN112289360B (zh) | 2019-07-23 | 2020-05-28 | 读取重试阈值电压选择 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11127471B2 (zh) |
CN (1) | CN112289360B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11127471B2 (en) * | 2019-07-23 | 2021-09-21 | SK Hynix Inc. | Read retry threshold voltage selection |
US11467938B2 (en) * | 2020-09-21 | 2022-10-11 | SK Hynix Inc. | Read retry threshold optimization systems and methods conditioned on previous reads |
KR20220122826A (ko) * | 2021-02-26 | 2022-09-05 | 삼성전자주식회사 | 비휘발성 메모리 장치, 메모리 컨트롤러, 및 이를 포함하는 스토리지 장치의 리드 방법 |
CN113223583B (zh) * | 2021-05-14 | 2024-05-17 | 深圳市硅格半导体有限公司 | NAND Flash坏块内数据重读的方法、电子设备及存储介质 |
JP2023002208A (ja) * | 2021-06-22 | 2023-01-10 | キオクシア株式会社 | メモリシステム及びリード方法 |
US11557348B1 (en) * | 2021-06-24 | 2023-01-17 | Western Digital Technologies, Inc. | Enhanced word line stripe erase abort detection |
WO2023019497A1 (en) * | 2021-08-19 | 2023-02-23 | Yangtze Advanced Memory Industrial Innovation Center Co., Ltd | Memory device and controlling method thereof |
CN114138190B (zh) * | 2021-11-19 | 2022-10-28 | 北京得瑞领新科技有限公司 | 闪存设备的数据读取方法、装置、存储介质及闪存设备 |
KR102496386B1 (ko) * | 2022-03-16 | 2023-02-06 | 주식회사 파두 | 낸드 플래시 메모리의 에러 특성화 방법, 이를 활용한 에러 추정 방법 및 스토리지 시스템 제어 방법 |
CN115295048A (zh) * | 2022-07-28 | 2022-11-04 | 山东华芯半导体有限公司 | 一种nand flash的最优固定电压轴的筛选方法 |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7023735B2 (en) * | 2003-06-17 | 2006-04-04 | Ramot At Tel-Aviv University Ltd. | Methods of increasing the reliability of a flash memory |
US7372731B2 (en) * | 2003-06-17 | 2008-05-13 | Sandisk Il Ltd. | Flash memories with adaptive reference voltages |
US7672803B1 (en) * | 2004-12-07 | 2010-03-02 | Spansion Llc | Input of test conditions and output generation for built-in self test |
KR101835605B1 (ko) | 2011-11-24 | 2018-03-08 | 삼성전자 주식회사 | 플래시 메모리 시스템 및 플래시 메모리 시스템의 리드 방법 |
JP2013122793A (ja) | 2011-12-09 | 2013-06-20 | Toshiba Corp | 不揮発性半導体記憶装置 |
US20130185612A1 (en) | 2012-01-18 | 2013-07-18 | Samsung Electronics Co., Ltd. | Flash memory system and read method of flash memory system |
KR20160004073A (ko) | 2014-07-02 | 2016-01-12 | 삼성전자주식회사 | 비휘발성 메모리 장치 및 그 구동 방법 |
KR102263046B1 (ko) | 2014-10-29 | 2021-06-09 | 삼성전자주식회사 | 메모리 장치, 메모리 시스템, 상기 메모리 장치의 동작 방법 및 상기 메모리 시스템의 동작 방법 |
KR102290974B1 (ko) | 2014-11-07 | 2021-08-19 | 삼성전자주식회사 | 불휘발성 메모리 장치, 메모리 컨트롤러 및 그것들을 포함하는 불휘발성 메모리 시스템의 동작 방법 |
US9720754B2 (en) | 2014-11-20 | 2017-08-01 | Western Digital Technologies, Inc. | Read level grouping for increased flash performance |
CN106158038B (zh) | 2015-04-14 | 2021-03-09 | 恩智浦美国有限公司 | 从非易失性存储器读取数据的方法 |
CN106653087A (zh) * | 2015-10-28 | 2017-05-10 | 光宝电子(广州)有限公司 | 固态存储装置及其相关读取控制方法 |
CN106816179B (zh) | 2015-11-30 | 2020-12-25 | 华为技术有限公司 | 一种闪存纠错方法和装置 |
KR102609130B1 (ko) | 2016-02-17 | 2023-12-05 | 삼성전자주식회사 | 읽기 전압 서치 유닛을 포함하는 데이터 저장 장치 |
KR20170120741A (ko) | 2016-04-21 | 2017-11-01 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
US10102920B2 (en) * | 2016-08-15 | 2018-10-16 | Sandisk Technologies Llc | Memory system with a weighted read retry table |
US10304559B2 (en) | 2016-12-30 | 2019-05-28 | Western Digital Technologies, Inc. | Memory write verification using temperature compensation |
US10468117B2 (en) * | 2017-01-12 | 2019-11-05 | Sandisk Technologies Llc | Read threshold adjustment with feedback information from error recovery |
US10146460B1 (en) * | 2017-06-01 | 2018-12-04 | Apple Inc. | Programming schemes for avoidance or recovery from cross-temperature read failures |
US10403372B2 (en) * | 2017-08-29 | 2019-09-03 | SK Hynix Inc. | Memory system with adaptive read-threshold scheme and method of operating such memory system |
US10740178B2 (en) | 2017-10-05 | 2020-08-11 | Western Digital Technologies, Inc. | Self-prioritizing adaptive retry threshold adjustment |
US10783972B2 (en) * | 2018-08-02 | 2020-09-22 | SK Hynix Inc. | NAND flash memory with reconfigurable neighbor assisted LLR correction with downsampling and pipelining |
US11127471B2 (en) * | 2019-07-23 | 2021-09-21 | SK Hynix Inc. | Read retry threshold voltage selection |
-
2019
- 2019-07-23 US US16/520,274 patent/US11127471B2/en active Active
-
2020
- 2020-05-28 CN CN202010469243.5A patent/CN112289360B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
US20210027845A1 (en) | 2021-01-28 |
US11127471B2 (en) | 2021-09-21 |
CN112289360A (zh) | 2021-01-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112289360B (zh) | 读取重试阈值电压选择 | |
US9946472B2 (en) | Semiconductor storage device having nonvolatile semiconductor memory | |
CN111527545B (zh) | 基于温度的存储器操作 | |
US9201785B2 (en) | Data writing method, memory controller and memory storage apparatus | |
US8612836B2 (en) | Non-volatile memory device with uncorrectable information region and operation method using the same | |
KR102326659B1 (ko) | 비휘발성 메모리의 ecc 제어 방법 및 이를 수행하는 메모리 시스템 | |
US9141476B2 (en) | Method of storing system data, and memory controller and memory storage apparatus using the same | |
US8370680B2 (en) | Solid state storage system for controlling reserved area and method of controlling the same | |
JP2019169217A (ja) | メモリシステム、その制御方法及びプログラム | |
KR20100068364A (ko) | 더미 데이터를 기록하여 mlc 플래시를 slc로 사용하는 방법 | |
US20160283319A1 (en) | Data storage device and encoding method thereof | |
US9405620B2 (en) | Data storage device and error correction method thereof | |
KR101468432B1 (ko) | 제어된 스크럽 데이터 판독에 의해 트리거되는 플래시 메모리 리프레시 기술 | |
CN110795270A (zh) | 固态储存装置及其读取重试方法 | |
US20180046538A1 (en) | Modifiable stripe length in flash memory devices | |
US8533549B2 (en) | Memory system and computer system | |
US20210019254A1 (en) | Wear leveling based on sub-group write counts in a memory sub-system | |
US20230197183A1 (en) | Storage controller including parity management module, storage device including the same, and operating method of storage device | |
US11881265B2 (en) | Memory system and read method | |
US11061764B2 (en) | Data storage device and data retrieval method | |
CN106297881B (zh) | 非挥发性存储器的健康管理 | |
US11216338B2 (en) | Storage device that performs state shaping of data | |
US11210008B2 (en) | Memory system for multi-clustering read thresholds and method thereof | |
KR20230064279A (ko) | 메모리 시스템에서 데이터를 복구하는 장치 및 방법 | |
KR20140104829A (ko) | 멀티 레벨 셀 비휘발성 메모리 시스템 |
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 |