CN111406370A - 基于解码成功趋势的可调整读取重试顺序 - Google Patents
基于解码成功趋势的可调整读取重试顺序 Download PDFInfo
- Publication number
- CN111406370A CN111406370A CN201980005893.XA CN201980005893A CN111406370A CN 111406370 A CN111406370 A CN 111406370A CN 201980005893 A CN201980005893 A CN 201980005893A CN 111406370 A CN111406370 A CN 111406370A
- Authority
- CN
- China
- Prior art keywords
- read level
- level voltage
- decoding
- decode
- read
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 claims abstract description 71
- 230000015654 memory Effects 0.000 claims description 95
- 238000013500 data storage Methods 0.000 claims description 37
- 230000008859 change Effects 0.000 claims description 7
- 230000000630 rising effect Effects 0.000 claims description 7
- 230000007423 decrease Effects 0.000 claims description 4
- 230000008569 process Effects 0.000 description 23
- 230000004044 response Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000012937 correction Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 238000013523 data management Methods 0.000 description 3
- 230000004931 aggregating effect Effects 0.000 description 2
- 239000000872 buffer Substances 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 230000032683 aging Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007935 neutral effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/3746—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with iterative decoding
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
- H03M13/152—Bose-Chaudhuri-Hocquenghem [BCH] codes
-
- 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/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/408—Address circuits
- G11C11/4087—Address decoders, e.g. bit - or word line decoders; Multiple line decoders
-
- 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/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/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/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/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/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/44—Indication or identification of errors, e.g. for repair
-
- 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
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/10—Decoders
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1111—Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/3707—Adaptive decoding and hybrid decoding, e.g. decoding methods or techniques providing more than one decoding algorithm for one code
- H03M13/3715—Adaptation to the number of estimated errors or to the channel state
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/3723—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 using means or methods for the initialisation of the decoder
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/65—Purpose and implementation aspects
- H03M13/6502—Reduction of hardware complexity or efficient processing
-
- 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
- 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
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/563—Multilevel memory reading aspects
- G11C2211/5632—Multilevel reading using successive approximation
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Mathematical Physics (AREA)
- Algebra (AREA)
- General Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
描述用于解码数据的方法、系统以及介质。可基于包含第一解码成功指示符和第二解码成功指示符的解码成功指示符的趋势来确定用于解码操作的读取电平电压序列。从更新近成功解码操作获得所述第一解码成功指示符。可将所述序列中的第一个设定成所述第一解码成功指示符的读取电平电压。如果所述第一解码成功指示符的所述读取电平电压小于所述第二解码成功指示符的读取电平电压,那么所述趋势是下降,且可将所述序列中的第二个设定成小于所述序列中的所述第一个的读取电平电压的读取电平电压。在执行一个或多个解码操作之后,可基于当前成功解码操作的所述读取电平电压来更新所述解码成功指示符。
Description
相关申请的交叉引用
本申请根据35U.S.C.§119要求2018年6月12日申请的名称为“基于解码成功趋势的可调整的读取重试顺序(Adjustable Read Retry Order Based On Decoding SuccessTrend)”的作为美国临时专利申请第62/684,157号的非临时的优先权权益,所述申请的公开内容出于所有目的以全文引用的方式并入在此。
背景技术
归因于在制造时引入的存储器单元的偏差或归因于行为随着存储器单元老化的改变,闪存可能将数据错误引入到存储在其中的数据。可采用纠错码以在读取操作期间纠正数据错误。举例来说,低密度奇偶校验(LDPC)码和博斯乔赫里霍克文黑姆(BoseChaudhuri Hocquenghem)(BCH)码可提供稳健纠错能力。然而,应用LDPC和BCH码的纠错能力会将不合需要的时延添加到读取操作。
附图说明
图1是根据本发明技术的各方面的描绘数据存储系统的示例组件的框图。
图2描绘根据本发明技术的各方面的示出多级单元闪存中的四个可能的单元程序分布的示例曲线图。
图3A描绘根据本发明技术的各方面的默认读取电平电压顺序的实例。
图3B到3F描绘根据本发明技术的各方面的基于成功解码操作的趋势来调整读取电平电压顺序的实例。
图4到6描绘根据本发明技术的各方面的多阶段解码操作的实例的流程图。
具体实施方式
下文阐述的详细描述意图作为对本公开的各种配置的描述,且并非意图表示可实践本公开的唯一配置。附图并入本文中且构成详细描述的一部分。详细描述包含出于提供对本公开的彻底理解的目的的具体细节。然而,本领域的技术人员将显而易见,可在没有这些具体细节的情况下实践本公开。在一些情况下,以框图形式绘示结构和组件以便避免混淆本公开的概念。为了易于理解,相同的组件以相同的元件标号标记。
归因于在例如NAND闪存的非易失性存储器中观察到的高错误率,可将例如LDPC和BCH解码的不同错误恢复方法用于多阶段解码操作(例如,解码操作的一个或多个阶段)以解码从非易失性存储器中的存储器单元群组读取的数据。可使用来自不同读取电平电压序列的相应读取电平电压从存储器单元读取在解码操作的每一阶段中处理的数据。每一阶段可对数据执行硬解码操作和/或对数据执行一个或多个软解码操作。多阶段解码操作可按预定序列一次执行一个阶段,直到成功地解码从存储器单元读取的数据为止。
在一个或多个方面中,期望改进这些纠错方法的性能,尤其是花费在重试读取和解码数据上的时间。本发明技术的一个或多个方面使用解码成功趋势(或解码错误趋势)来预测错误类型且确定用于读取重试的最佳读取电平电压。
同一区块、区块群组、管芯或管芯批次中的存储器单元可能共有产生在从所述区块、区块群组、管芯或管芯批次读取数据时经历的读取错误的类似性的共同特性。在从处于类似使用寿命阶段的存储器单元读取数据时经历的读取错误也可能具有类似性。读取错误可能由例如温度、读取干扰、编程/擦除计数、老化以及数据保持能力的各种因素所导致。这些因素中的一些可能是存储器单元中的一些或许多个所共有的。
在一个或多个方面中,本发明技术通过跟踪解码成功指示符的趋势和成功地解码从存储器单元读取的数据的先前解码操作所处于的对应读取电平电压来利用这些类似性以改进多阶段解码操作。可使用同一趋势来恢复在其它类似地定位的存储器单元中经历的读取错误。举例来说,在同一区块内移位的位往往会在相同方向上移动。因此,使用先前成功读取电平电压,可预测解码成功趋势,且可最佳地重新排序读取电平电压候选。
本发明技术的一个或多个方面不仅可确定用于第一读取重试的最佳读取电平电压,还可在第一读取重试失败的情况下确定用于随后读取重试的最佳读取电平电压。在一个或多个实例中,用于第一读取重试的读取电平电压可以是上次成功解码操作的读取电平电压。可基于来自之前解码操作的两个成功读取电平电压的趋势来确定用于第二读取重试的读取电平。对上两个成功读取电平电压的比较可提供移动方向或趋势。可遵循这一方向或趋势以预测用来以更少错误读取和解码数据的接下来的读取电平电压。
本发明技术的一个或多个方面提供若干性能优点,例如减小读取重试数和提高错误恢复效率,尤其是对于经历高差错率、经受高温或到达使用寿命终点的例如NAND闪存的非易失性存储器。此外,本发明技术的一个或多个方面不限于LDPC和BCH,且可以各种其它解码方法加以利用。
如将在下文更详细地论述,在一个或多个方面中,可基于解码成功指示符的趋势来调整或设定读取电平电压序列。在一个或多个实例中,可基于上次成功读取电平电压和上次成功读取电平电压与倒数第二次成功读取电平电压之间的趋势来调整读取电平电压序列。在一个或多个实例中,可将序列中的第一读取电平电压设定成上次成功读取电平电压。可基于第一读取电平电压和趋势来确定序列中的第二读取电平电压。
在一个或多个实例中,如果上次成功读取电平电压低于倒数第二次成功读取电平电压,那么趋势是电压下降。因此可将第二读取电平电压设定成低于第一读取电平电压的读取电平电压。在一个或多个实例中,如果上次成功读取电平电压高于倒数第二次成功读取电平电压,那么趋势是电压上升。因此可将第二读取电平电压设定成高于第一读取电平电压的读取电平电压。
在一些实例中,可基于同一趋势来确定序列中的一个或多个随后读取电平电压。在一些实例中,可基于与趋势相反的方向来确定一个或多个随后读取电平电压。可基于调整的读取电平电压序列来执行一个或多个当前解码操作以解码数据。如果一个或多个当前解码操作中的一个成功且当前成功读取电平电压不同于上次成功读取电平电压,那么可更新上次成功读取电平电压和倒数第二次成功读取电平电压。接着可基于更新的信息来重新调整读取电平电压序列。
图1是根据本发明技术的各方面的描绘数据存储系统100的示例组件的框图。数据存储系统100尤其包含控制器102、编码/解码引擎104、存储介质106以及闪存装置阵列108。如图1中所描绘,数据存储系统100可经由主机接口112连接到主机装置110。
控制器102可包含若干内部组件(未绘示),例如一个或多个处理器103、只读存储器、闪存组件接口(例如,用以管理沿与闪存装置阵列108的连接传输的指令和数据的复用器)、I/O接口、纠错电路以及其类似物。控制器102的处理器可监视和控制数据存储控制器102中的组件的操作。处理器和/或控制器102可以是多核处理器、通用微处理器、微控制器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、可编程逻辑装置(PLD)、控制器、状态机、门控逻辑、分立硬件组件或前述的组合。在一些方面中,控制器102的一个或多个元件可集成到单芯片中。在其它方面中,元件可实施于两个或大于两个离散组件上。
控制器102可执行代码或指令以进行本文中所描述的操作和功能性。举例来说,控制器102可进行用于管理请求流和地址映射的操作,且进行计算和生成命令。一个或多个指令序列可在控制器102内的存储器上存储为固件。一个或多个指令序列可以是存储且从存储介质106、闪存装置阵列108读取的软件或(例如,经由主机接口112)从主机装置110接收到。存储介质106和闪存装置阵列108表示可在其上存储可由控制器102执行的指令/代码的机器或计算机可读介质的实例。机器或计算机可读介质可通常指代用来将指令提供给控制器102的任何有形和非暂时性介质(medium/media),包含易失性介质(例如用于存储介质或用于控制器102内的缓冲器的动态存储器)和非易失性介质(例如电子介质、光学介质以及磁性介质)两者。本文中所描述的操作和功能性也可实施于使用例如逻辑电路的硬件或硬件与软件/固件的组合中。
在一些方面中,存储介质106表示用来临时存储用于管理数据存储系统100的数据和信息的易失性存储器。根据本公开的各方面,存储介质106是例如双倍数据速率(DDR)RAM的随机存取存储器(RAM)。也可使用其它类型的RAM来实施存储介质106。存储介质106可使用单个RAM模块或多个RAM模块来实施。尽管将存储介质106描绘为与控制器102不同,但应理解,可在不脱离本公开的范围的情况下将存储介质106并入到控制器102中。替代地,存储介质106可以是非易失性存储器,例如磁盘、闪存、周边SSD以及其类似物。
主机接口112可耦合到主机装置110,以从主机装置110接收数据和将数据发送到主机装置110。主机接口112可包含用于以可操作方式将主机装置110耦合到控制器102的电连接和实体连接两者。主机接口112可在主机装置110与控制器102之间传达数据、地址以及控制信号。以这种方式,控制器102可响应于来自主机装置110的写入命令而存储从闪存装置阵列108中的主机装置110接收到的数据,且响应于来自主机装置110的读取命令而读取存储在闪存装置阵列108中的数据且经由主机接口112将读取的数据传送到主机装置110。
主机装置110表示可耦合到数据存储系统100且将数据存储在数据存储系统100中的任何装置。主机装置110可以是计算系统,例如个人计算机、服务器、工作站、手提式计算机、PDA、智能电话以及其类似物。替代地,主机装置110可以是电子装置,例如数码相机、数字音频播放器、数字录像机以及其类似物。
如图1中所进一步描绘,主机装置110和数据存储系统100可经由总线114彼此通信。总线可使用合适的接口标准,包含但不限于串行高级技术附件(SATA)、高级技术附件(ATA)、小型计算机系统接口(SCSI)、PCI扩展、光纤通道、串行连接SCSI(SAS)、安全数字(SD)、嵌入式多媒体卡(EMMC)、通用闪存(UFS)以及快速外围组件互连(PCIe)。根据一些方面,数据存储系统100可包含引脚(或插座)以与主机装置110上的对应插座(或引脚)配合,以建立电连接和实体连接。
控制器可包含内部系统总线115。系统总线115可包含控制总线、地址总线以及数据总线的组合,且使控制器102的组件(例如,所述控制器102中的处理器和/或存储器)与数据存储系统100的其它组件(包含编码/解码引擎104、存储介质106、闪存装置阵列108以及主机接口112)连接。通过系统总线115在各种组件之间传送数据。系统总线115可部分地存在于控制器102外部且部分地存在于控制器102内部。
主机装置110和数据存储系统100可经由有线或无线连接彼此通信,且可以是彼此本地的或彼此远程的。根据一个或多个其它方面,数据存储系统100(或主机接口112)包含无线收发器以使主机装置110和数据存储系统100彼此进行无线通信。
控制器102可从主机装置110的存储接口模块116(例如,装置驱动器)接收数据和/或存储存取命令。由存储接口模块116传达的存储存取命令可包含由主机装置110发出的读取和写入命令。读取和写入命令可指定逻辑地址,例如,用来存取存储在数据存储系统100中的数据的逻辑块地址(LBA)。控制器102可响应于从存储接口模块116接收到的命令而执行闪存装置阵列108中的命令。
闪存装置阵列108可包含多个闪存装置118。闪存装置118表示用于存储数据的非易失性存储器装置。根据本发明技术的各方面,闪存装置118包含例如NAND闪存。每一闪存装置118可包含单个闪存芯片或管芯,或可包含多个闪存芯片或管芯。举例来说,在闪存装置阵列108内,闪存装置118中的一些可包括一个闪存管芯,而其它闪存装置118可包括大于一个闪存管芯。闪存装置118不限于任何特定容量或配置。举例来说,物理块的数目、每物理块的物理页的数目、每物理页的扇区的数目以及扇区的大小可在本发明技术的范围内变化。
闪存装置118可以多个通道布置,其中每一通道具有一个或多个闪存装置118。闪存装置118可包含一个或多个闪存接口(未绘示)。每一闪存接口使控制器102经由对应通道介接到闪存装置中的一个。通道(未绘示)中的每一个可使用耦合在闪存接口中的一个与对应闪存装置之间的一个或多个物理I/O总线来实施。每一通道允许对应闪存接口将读取、写入和/或擦除命令发送到对应闪存装置。每一闪存接口可包含使来自控制器102的针对对应闪存装置的读取、写入和/或擦除命令排队的寄存器(例如,先进先出(FIFO)寄存器)。虽然上文使用的术语“通道”指代耦合在闪存接口与对应闪存装置之间的总线,但是术语“通道”也可指代可通过总线(例如,系统总线115)寻址的对应闪存装置。
闪存装置118可具有标准接口规格。这一标准确保来自多个制造商的芯片可互换使用。可使用闪存装置118的接口来存取内部寄存器120和内部闪存控制器122。在一些方面中,寄存器120可包含地址、命令和/或数据寄存器,所述数据寄存器内部地从NAND存储器单元阵列124检索必要数据且将所述必要数据输出到NAND存储器单元阵列124。借助于实例,存储器单元阵列124可包括单级单元(SLC)存储器、多级单元(MLC)存储器、三级单元(TLC)存储器装置等。在一些方面中,闪存装置阵列108可包括可在SLC、MLC或TLC模式中的一个或多个下运行的一个或多个混合存储器装置。例如3D NAND闪存的其它类型的闪存也涵盖在本发明技术中。
(例如,寄存器120的)数据寄存器可包含将要存储在存储器单元阵列124中的数据,或从存储器单元阵列124获取之后的数据,且还可用于临时数据存储和/或起类似于缓冲器的作用。地址寄存器可存储将要将数据从其中获取到主机装置110的存储器地址,或将要将数据发送和存储到的地址。在一些方面中,包含用以控制奇偶校验、中断控制以及其类似物的指令寄存器。在一些方面中,内部闪存控制器122可经由用以控制闪存装置118的总体行为的控制寄存器存取。内部闪存控制器122和/或控制寄存器可控制停止位的数目、字长、接收器时钟源,且还可控制切换寻址模式、寻呼控制、协处理器控制以及其类似物。
编码/解码引擎104表示可编码和/或解码将要存储在闪存装置阵列108中和/或从闪存装置阵列108读取的码字的一个或多个组件。编码/解码引擎104可包含编码器和解码器。解码器可包含硬解码器和软决策ECC解码器。编码/解码引擎104可编码从主机装置110接收到的数据,且在将解码数据发送到主机之前解码从闪存装置118读取的码字。在一些实施方案中,编码/解码引擎104可包括用来(例如,使用LDPC、BCH或涡轮码(turbo code))进行纠错的一个或多个存储器装置和/或一个或多个处理单元。编码/解码引擎104还可包含确定和/或维护用于编码和解码操作的软度量输入的软信息模块。尽管将编码/解码引擎104描绘为与控制器102不同,但应理解,可在不脱离本公开的范围的情况下将编码/解码引擎104并入到控制器102中。
图2描绘根据本发明技术的各方面的示出多级单元(MLC)闪存中的四个可能的单元程序分布的示例曲线图200。如所描绘,MLC NAND单元可编程成四个不同状态或程序级L0、L1、L2以及L3中的一个,从而每单元产生两个逻辑信息位:最高有效位(MSB)和最低有效位(LSB)。当读取或编程存储器单元时,这两个位可构成存储器块的对应MSB和LSB页。程序级L0和L1可对应于LSB逻辑位值“一”,且程序级L2和L3可对应于LSB逻辑位值“零”。尽管未在图2中指示,但程序级L0和L3可对应于MSB逻辑位值“一”,且程序级L1和L2可对应于MSB逻辑位值“零”。
为了从存储器单元读取数据,将读取电平电压施加于存储器单元,且将具有在所施加读取电平电压下或低于所施加读取电平电压的阈值电压(Vt)并因此接通或导通的存储器单元视为低于读取电平电压的程序分布的部分,且将具有高于读取电平电压的阈值电压并因此未接通或导通的那些存储器单元视为在高于读取电平电压的程序分布中。举例来说,图2描绘读取电平电压C,所述读取电平电压C可施加于存储器单元群组以确定哪些单元是按对应于LSB逻辑位值“一”的L0或L1程序级还是对应于LSB逻辑位值“零”的L2或L3程序级编程。
随着闪存循环(也就是说,反复地编程和擦除),其物理质量改变。举例来说,分别在编程和擦除操作期间在浮栅上反复放置和去除电子可能导致一些电子陷在装置的浮栅中。这些存储器单元的阈值电压最终可能呈现与预期值不同(更高或更低)的值,从而导致最后单元编程分布开始重叠,且在读取数据时导致读取错误。
为了确定存储器单元实际上编程成观察到的假定程序级(即,读取数据)的机率,可发起多个读取操作作为多阶段解码操作的部分。举例来说,存储器单元可在第一阶段中在读取电平电压C下读取,在第二阶段中在读取电平电压LL下读取,在第三阶段中在读取电平电压RR下读取等。相对于图3A更详细地描述多阶段解码操作。如果对数据进行硬解码失败,那么读取电平电压序列设置可用来对从存储器单元读取的数据值进行分类以用于软解码的多个程序区。可按如图2中所绘示的读取电平电压顺序205使用读取电平电压序列。
在多阶段解码操作的第一阶段中,可定义两个程序区。第一程序区包含具有在读取电平电压C下或低于读取电平电压C的编程值的单元,且第二程序区包含具有高于读取电平电压C的编程值的单元。在多阶段解码操作的第二阶段中,可通过聚合使用读取电平电压C来读取的数据与使用读取电平电压LL来读取的数据来定义三个程序区。更特定来说,第一程序区可包含具有在读取电平电压LL下或低于读取电平电压LL的编程值的单元,第二程序区可包含具有高于读取电平电压LL且在读取电平电压C下或低于读取电平电压C的编程值的单元,且第三程序区可包含具有高于读取电平电压C的编程值的单元。多阶段解码操作中的每一随后阶段聚合使用对应于所述阶段的读取电平电压来读取的数据与在前一阶段中读取的数据,以定义对应于不同读取电平电压之间的程序值的范围的额外程序区。本发明技术不限于图2和3A中所表示的读取电平电压的数目或图2和3A中所指示的读取顺序,以在多阶段解码操作的相应阶段中施加读取电平电压。此外,类似读取电平电压序列可用于读取L0和L1程序级之间以及L2和L3程序级之间的区中的MSB位值。
根据本发明技术的各方面,可将置信值分配给相应程序区或“库”以用于软解码操作中。置信值可包含对数似然比(LLR)。在LDPC或BCH应用中,二进制LLR可包含位是“0”或“1”的机率之间的比的对数。正LLR可指示从存储器单元读取的信号可能有可能是0位,且负LLR可指示从存储器单元读取的信号可能有可能是1位。在一些实例中,具有等于五的所分配LLR的位值可能比具有等于第二预定值(例如,二进制“1”)的所分配LLR的位值更有可能是第一预定值(例如,二进制“0”)。具有等于零的所分配LLR的位值可能同样有可能是第一和第二预定值中的任一个。LLR还可由具有值的群组的非二进制置信向量表示。
如上文所介绍,多阶段解码过程的每一阶段定义一组程序区或库。每一组程序区或库具有对应于所述一组中的相应程序区或库的一组置信值(例如,LLR值)。这些置信值可称为解码信息,且可存储于在阶段中的每一个中进行软解码操作时检索的相应表或其它数据结构中。
根据各种实施方案,当进行解码操作时,编码/解码引擎104可使用不同组解码信息和所述组解码信息的不同次序以用于解码的每一阶段。另外,可基于存储器装置的相应区块的年龄来使用不同组解码信息。举例来说,区块的年龄可以是基于与所述区块相关联的编程/擦除循环的数目,且可针对编程/擦除循环的每一预定范围(和/或针对每一读取电平电压)存在不同的多组解码信息的群组。根据本发明技术的各方面,解码的每一阶段可使用多组解码信息(例如,三组),其中单独的软解码操作使用相应组解码信息来进行。
图3A描绘根据本发明技术的各方面的默认(或预定义)读取电平电压顺序的实例。默认读取电平电压顺序300在图2中也绘示为读取电平电压顺序205,且包含中心读取电平电压C、三个更低读取电平电压以及三个更高读取电平电压。三个更低读取电平电压可按降序布置为L、LL以及LLL,其中读取电平电压LLL是最低读取电平电压。三个更高读取电平电压可按升序布置为R、RR以及RRR,其中读取电平电压RRR是最高读取电平电压。在一些实例中,当第一次解码存储器块(例如,两个或大于两个存储器单元)且不存在先前读取历史时,使用默认读取顺序。在一些实例中,当存储器块的先前读取历史不可靠时,使用默认读取顺序。在一些实施例中,读取电平电压C、L、R、RR、LL、RRR以及LLL对应于预定义电压。在一些实例中,如图3A中所绘示,默认读取顺序从中心读取电平电压C开始且按所述顺序以读取电平电压LL继续,接着是RR,接着是L,接着是R,接着是LLL,且接着是RRR。
图3B到3F描绘根据本发明技术的各方面的基于趋势的读取电平电压顺序的实例。如读取电平电压顺序图310到350中所绘示,读取电平电压355可对应于在成功解码操作中上次使用(或最新近使用)的读取电平电压(例如,上次成功读取电平电压)。另外,读取电平电压349可对应于在上次成功解码操作之前的成功解码操作中使用的读取电平电压(例如,倒数第二次成功读取电平电压)。在一些实例中,基于读取电平电压349与355之间的趋势来确定对应于成功解码操作的读取电平电压的变化趋势。在一些实例中,可选择读取电平电压355作为初始地用于解码操作的初始读取电平电压。参考图4到6描述关于解码操作的细节。在一个或多个实例中,控制器102可进行相对于图3B到3F所描述的一个或多个过程。
参考图3B,如图310中所绘示,将初始读取电平电压设定为L,其为读取电平电压355。因为读取电平电压355低于读取电平电压349,所以确定趋势是下降。换句话说,从读取电平电压349到读取电平电压355的变化指示电压下降。因此,在这一实例中,基于下降趋势,将次级读取电平电压(下一读取电平电压)获得(例如,确定、选择或设定)为小于初始读取电平电压L的下一更低读取电平电压的读取电平电压LL。使用同一下降趋势,因为LLL是下一更低读取电平电压,所以确定下一读取电平电压是LLL。由于LLL是最低读取电平电压,所以不存在低于LLL的读取电平电压。因此,在这一点处,用来选择随后读取电平电压的方向变为相反(即,方向变为与趋势相反),且将下一读取电平电压确定为C。读取电平电压C高于已选择的读取电平电压(即,L、LL以及LLL)中的任一个,且C是尚未选择的读取电平电压(即,C、R、RR以及RRR)当中的最低读取电平电压。C紧接于初始读取电平电压L,且是相较于L的下一更高读取电平电压。使用同一反方向(即,电压上升),因为R是下一更高读取电平电压,所以确定下一读取电平电压是R。使用同一反方向,因为RR是下一更高读取电平电压,所以确定下一读取电平电压是RR。使用同一反方向,因为RRR是下一更高读取电平电压,所以确定下一读取电平电压是RRR。因此,基于读取电平电压335和通过之前成功解码操作的读取电平电压335和349来确定的趋势,按将用于多阶段解码操作的所述顺序将读取电平电压序列获得(例如,调整、确定、选择或设定)为L、LL、LLL、C、R、RR以及RRR。
参考图3C,如图320中所绘示,初始读取电平电压是LL,其为读取电平电压355。因为读取电平电压355低于读取电平电压349,所以趋势是下降。因此,在这一实例中,基于下降趋势,因为LLL是小于LL的下一更低读取电平电压,所以将次级读取电平电压获得为读取电平电压LLL。由于LLL是最低读取电平电压,所以不存在低于LLL的读取电平电压。因此,在这一点处,方向相反,且将下一读取电平电压确定为L。读取电平电压L高于已选择的读取电平电压(即,LL和LLL)中的任一个。此外,L是尚未选择的读取电平电压(即,L、C、R、RR以及RRR)当中的最低读取电平电压。L紧接于初始读取电平电压LL,且是相较于LL的下一更高读取电平电压。使用同一反方向,因为C是下一更高读取电平电压,所以下一读取电平电压是C。使用同一反方向,因为R是下一更高读取电平电压,所以下一读取电平电压是R。使用同一反方向,因为RR是下一更高读取电平电压,所以下一读取电平电压是RR。使用同一反方向,因为RRR是下一更高读取电平电压,所以下一读取电平电压是RRR。因此,基于读取电平电压335和通过来自之前成功解码操作的读取电平电压335和349来确定的趋势,按将用于多阶段解码操作的所述顺序将读取电平电压序列获得为LL、LLL、L、C、R、RR以及RRR。
参考图3D,如图330中所绘示,初始读取电平电压是RR,其为读取电平电压355。因为读取电平电压355大于读取电平电压349,所以趋势是上升。因此,在这一实例中,基于上升趋势,因为RRR是相较于RR的下一更高读取电平电压,所以将次级读取电平电压获得为读取电平电压RRR。由于RRR是最高读取电平电压,所以不存在高于RRR的读取电平电压。因此,在这一点处,方向相反(即,电压的方向下降),且将下一读取电平电压确定为R。读取电平电压R低于已选择的读取电平电压(即,RR和RRR)中的任一个,且R是尚未选择的读取电平电压(即,LLL、LL、L、C、R)当中的最高读取电平电压。R紧接于初始读取电平电压RR,且是相较于RR的下一更低读取电平电压。使用同一反方向,因为C是下一更低读取电平电压,所以下一读取电平电压是C。使用同一反方向,因为L是下一更低读取电平电压,所以下一读取电平电压是L。使用同一反方向,因为LL是下一更低读取电平电压,所以下一读取电平电压是LL。使用同一反方向,因为LLL是下一更低读取电平电压,所以下一读取电平电压是LLL。因此,基于通过来自之前成功解码操作的读取电平电压335和349来确定的趋势,按将用于多阶段解码操作的所述顺序将读取电平电压序列获得为RR、RRR、R、C、L、LL以及LLL。
参考图3E,除了读取电平电压355和349分别是C和R之外,趋势类似于图3B和3C的趋势中的每一个。使用与相对于图3B和3C所描述的过程类似的过程,基于读取电平电压355和通过读取电平电压335和349来确定的趋势,按将用于多阶段解码操作的所述顺序将读取电平电压序列获得为C、L、LL、LLL、R、RR以及RRR。
参考图3F,除了读取电平电压355和349分别是R和LL之外,趋势类似于图3D的趋势。使用与相对于图3D所描述的过程类似的过程,基于读取电平电压355和通过读取电平电压335和349来确定的趋势,按将用于多阶段解码操作的所述顺序将读取电平电压序列获得为R、RR、RRR、C、L、LL以及LLL。
在一些实施例中,基于一组解码成功指示符的趋势来获得(例如,确定、选择或设定)读取电平电压序列。如图3B到3F中所绘示,第一解码成功指示符可对应于读取电平电压355,且第二解码成功指示符可对应于不同于读取电平电压355的读取电平电压349。第一和第二解码成功指示符可从至少两个新近成功解码操作获得。在一些实例中,趋势是由先前用于成功解码操作中的读取电平电压的变化所指示的方向(例如,从读取电平电压349到读取电平电压355的变化或趋势)。在如图3B、3C以及3E中所绘示的一些实例中,趋势是下降。在如图3D和3F中所绘示的一些实例中,趋势是上升。在一些实例中,读取电平电压序列(或读取电平电压顺序)根据图3B到3F中所绘示的箭头来布置。
在一些实例中,在确定读取电平电压序列(或顺序)时,当到达趋势的一端时,用来选择序列的随后读取电平电压的方向相反,且确定随后读取电平电压的过程在与趋势相反的方向上继续。举例来说,在图3B中,趋势是下降。因此,顺序是L、LL,且接着是LLL。当到达LLL(其指示趋势的一端)时,用来选择随后读取电平电压的方向变为相反(即,方向变为与趋势相反),且过程在相反方向上继续。因此,在这一实例中,在LLL之后的顺序是C、R、RR且接着是RRR。
图4描绘根据本发明技术的各方面的示例多阶段解码操作400的流程图。在一个或多个实例中,控制器102、编码/解码引擎104或其组合可进行相对于图4所描述的一个或多个过程。多阶段解码操作可响应于从主机装置110接收到的读取命令或响应于由控制器102执行的内部数据管理操作而发起。在发起多阶段解码操作后,根据读取电平电压序列来设定将从中读取所请求的数据的闪存装置118的读取电平电压(框401)。
可基于包含从至少两个新近成功解码操作获得的第一解码成功指示符和第二解码成功指示符的一组解码成功指示符的趋势来调整、确定或设定读取电平电压序列。第一解码成功指示符可对应于上次成功解码操作的读取电平电压,且第二解码成功指示符可对应于倒数第二次成功解码操作的读取电平电压。基于一组解码成功指示符的趋势来确定的读取电平电压序列的实例可包含相对于图3B到3F所描述的序列。读取电平电压序列的另一实例可以是默认序列,例如相对于图3A所描述的默认序列。在一些实例中,如果使用相对于图3B所描述的读取电平电压序列(例如,读取电平电压L、LL、LLL、C、R、RR以及RRR的序列),那么可将初始读取电平电压设定成读取电平电压L。可通过利用对应于读取电平电压L的值对闪存装置中的寄存器进行编程来设定读取电平电压。
在设定了读取电平电压的情况下,使用设定的读取电平电压从存储器单元群组读取数据,且将数据传递到编码/解码引擎104中的硬解码器以对数据执行硬解码操作(框405)。如果硬解码操作成功解码数据(框410),那么将解码数据返回到请求进程(框415)。如果硬解码操作不成功,那么选择软解码信息(框420),且将数据与软解码信息一起传递到编码/解码引擎104中的软决策解码器以使用数据和选定的软解码信息来执行软解码操作(框425)。
如果软解码操作成功解码数据(框430),那么将解码数据返回到请求进程(框415)。如果软解码操作不成功,那么过程确定在多阶段解码操作的当前阶段中是否剩余另一软步骤或软解码操作(框435)。根据本发明技术的各方面,多阶段解码操作的每一阶段可包含硬解码操作和多个软解码操作。软解码操作中的每一个使用对应于当前阶段的相应一组软解码信息。可使用基于不同条件和假设的测试或模拟数据来确定或计算出每一组软解码信息。如果使用第一组软解码信息的软解码操作不成功,那么可使用相同数据但用选定的第二组软解码信息重复软解码操作(框420)。可重复软解码操作的这一循环,直到成功地解码数据或已在软解码尝试中使用与当前阶段相关联的所有组软解码信息为止。根据本发明技术的一些实例,每一阶段可具有用以尝试对数据进行软解码的三组软解码信息。
如果当前阶段未剩余任何软步骤或软解码操作(框435),那么操作确定在多阶段解码操作中是否剩余另一阶段(框440)。在一些实例中,多阶段解码操作可包含对应于例如图2和3A到3F中所描绘的七个读取电平电压的序列的至多七个阶段。具有七个阶段和七个读取电平电压是实例,且本发明技术不限于这些数目。如果在操作中剩余另一阶段,那么设定序列中的下一读取电平电压(框401)且重复上文所描述的阶段操作。重复硬解码操作和软解码操作的这一循环,直到成功地解码数据并将数据返回到请求进程(框415)或在阶段中的每一个中的所有硬解码操作和软解码操作都不成功为止。如果解码不成功,那么将读取错误返回到请求进程(框445)。
图5描绘根据本发明技术的各方面的示例多阶段解码操作的流程图500。在一个或多个实例中,控制器102、编码/解码引擎104或其组合可进行相对于图5所描述的一个或多个过程。类似于上文相对于图4所描述的过程,可响应于从主机装置110接收到的读取命令或响应于由控制器102执行的内部数据管理操作而发起图5中所描绘的多阶段解码操作。
可如本文中所描述(例如,相对于图3A到3F和图4的描述而调整或设定读取电平电压序列,初始地,从用于多阶段解码操作中的读取电平电压序列获得(例如,选择)初始读取电平电压(框505)。可基于(例如,由控制器102)维护的解码成功指示符来从读取电平电压序列获得初始读取电平电压。根据本发明技术的各方面,解码成功指示符可以是指示来自电压序列的对应于在先前解码操作中成功地解码数据的多阶段解码操作的阶段的读取电平电压的所存储数据值。所存储数据值(成功指示符)可利用指示针对数据存储系统中的每一区块、区块群组、管芯、管芯群组或闪存装置118所存储的读取电平电压的相应数据值来指示来自对给定区块、区块群组、管芯、管芯群组或闪存装置118的上次解码操作的成功读取电平电压。可针对数据存储系统中的所有闪存装置118维护指示在成功解码操作中上次使用的读取电平电压的单个所存储数据值,而不是上文所列的不同存储器单元分组的单独数据值,以便最小化这一数据的内存占用率。在一些实例中,可针对数据存储系统中的所有闪存装置118维护指示在成功解码操作中上次使用的读取电平电压的索引值。在如图3B到3F中所绘示的一些实例中,解码成功指示符对应于在成功解码操作中上次使用的读取电平电压355。因此,可将读取电平电压355获得为初始读取电平电压。
在一些实施例中,堆栈存储器可保存与成功解码操作相关联的数据。堆栈存储器数据可通过对应于在成功解码操作中上次使用的读取电平电压的解码成功指示符来更新。因此,可将对应于在成功解码操作中上次使用的读取电平电压的解码成功指示符推送到堆栈存储器中。每当解码成功指示符对应于与堆栈存储器更新的之前时间的读取电平电压不同的读取电平电压时,可更新堆栈存储器。因此,堆栈存储器包含排序的解码成功指示符,使得根据其相应成功解码操作的时间来布置解码成功指示符。在一些实例中,堆栈存储器包含两个或大于两个存储器位置,例如两个存储器位置,且因此保存对应于上两个成功解码操作的解码成功指示符。在一些实例中,堆栈存储器包含两个或大于两个存储器位置,例如四个存储器位置,且因此保存对应于上四个成功解码操作的解码成功指示符。在一些实例中,最新近解码成功指示符在堆栈存储器的顶部。可选择对应于最新近解码成功指示符的读取电平电压作为初始读取电平电压。
在一个或多个实例中,至少基于堆栈存储器中的数据来确定解码成功指示符的趋势。可基于对应于堆栈存储器的解码成功指示符的读取电平电压来确定趋势。在一些实例中,趋势指示对应于堆栈存储器的解码成功指示符的读取电平电压是上升还是下降。在一些实例中,堆栈存储器包含两个存储器位置,且因此保存对应于上两个成功解码操作的解码成功指示符。因此,趋势可指示对应于上两个成功解码操作的读取电平电压的变化是上升还是下降(例如,读取电平电压上升还是下降)。因此,趋势可指示为上升或下降(例如,读取电平电压上升或下降)。
在一个或多个方面中,比较对应于上次成功解码操作的读取电平电压(即,上次成功读取电平电压)与对应于倒数第二次成功解码操作的读取电平电压(即,倒数第二次成功读取电平电压)。当上次成功读取电平电压小于倒数第二次成功读取电平电压时,确定趋势是下降(或读取电平电压下降)。当上次成功读取电平电压大于倒数第二次成功读取电平电压时,确定趋势是上升(或读取电平电压上升)。举例来说,因为读取电平电压355小于读取电平电压349,所以图3B、3C以及3E的趋势中的每一个下降。因为读取电平电压355大于读取电平电压349,所以图3D和3F的趋势中的每一个上升。
在一个或多个实例中,上文所描述的堆栈存储器或相应存储器位置包含对应于成功解码操作的历史的一组解码成功指示符。在一些实例中,所述一组解码成功指示符包含至少两个解码成功指示符。在一些实例中,所述一组解码成功指示符包括包含最新近解码成功指示符和倒数第二新近解码成功指示符的两个或大于两个连续解码成功指示符。
在一个或多个实例中,所述一组解码成功指示符包含第一解码成功指示符和第二解码成功指示符。可基于对应于第一解码成功指示符的读取电平电压与对应于第二解码成功指示符的读取电平电压之间的趋势来确定所述一组解码成功指示符的趋势。第一解码成功指示符可比第二解码成功指示符更为新近。在一些实例中,第一和第二解码成功指示符是对应于两个不同读取电平电压的连续解码成功指示符。在一些实例中,第一解码成功指示符是最新近解码成功指示符。在一些实例中,可基于倒数第二次成功读取电平电压与上次成功读取电平电压之间的趋势来从读取电平电压序列获得次级读取电平电压。
使用初始读取电平电压,执行初始解码操作(框510)。特定来说,使用初始读取电平电压从存储器单元群组读取数据,且将数据传递到编码/解码引擎104中的解码器以用于解码。如果初始解码操作成功,那么将解码数据返回到请求进程(框550)。在一些实例中,使用初始读取电平电压从存储器单元群组读取数据,且将数据传递到编码/解码引擎104中的硬解码器以用于解码(框405),且接着可执行包含软解码的框410到430。
如果初始解码操作不成功,那么从用于多阶段解码操作中的读取电平电压序列获得(例如,确定)次级读取电平电压(框520)。可基于对应于成功解码操作的读取电平电压的趋势来获得(例如,选择)次级读取电平电压。当读取电平电压的趋势是上升时,可从读取电平电压获得次级读取电平电压,使得次级读取电平电压大于初始读取电平电压。举例来说,次级读取电平电压是高于初始读取电平电压的下一更高读取电平电压。以另一方式陈述,次级读取电平电压是大于初始读取电平电压的下一读取电平电压。
当读取电平电压的趋势是下降时,可从读取电平电压序列获得次级读取电平电压,使得次级读取电平电压小于初始读取电平电压。举例来说,次级读取电平电压是低于初始读取电平电压的下一更低读取电平电压。以另一方式陈述,次级读取电平电压是小于初始读取电平电压的下一读取电平电压。
相对于图3B到3F更详细地描述获得初始读取电平电压和次级读取电平电压的过程。在一个或多个实例中,初始读取电平电压是上次成功读取电平电压(例如,图3B到3F中的读取电平电压335)。在一个或多个实例中,次级读取电平电压是与初始读取电平电压相邻且取决于趋势而大于或小于初始读取电平电压的读取电平电压,但次级读取电平电压不是倒数第二次成功读取电平电压(例如,不是图3B到3F中的读取电平电压349)。在图3B中,次级读取电平电压是读取电平电压LL。在图3C中,次级读取电平电压是读取电平电压LLL。在图3D中,次级读取电平电压是读取电平电压RRR。在图3E中,次级读取电平电压是读取电平电压L。在图3F中,次级读取电平电压是读取电平电压RR。
使用次级读取电平电压,执行次级解码操作(框525)。特定来说,使用选定的次级读取电平电压从存储器单元群组读取数据,且将数据传递到编码/解码引擎104中的解码器以用于解码。如果次级解码操作成功,那么将解码数据返回到请求进程(框550)。在一些实例中,使用选定的次级读取电平电压从存储器单元群组读取数据,且将数据传递到编码/解码引擎104中的硬解码器以用于解码(框405),且接着可执行包含软解码的框410到430。
如果次级解码操作不成功,那么可使用在图4中表示的一个或多个额外解码操作来解码存储在存储器单元中的数据(框535)。在一些实例中,可基于对应于先前成功解码操作的读取电平电压的趋势来执行一个或多个解码操作。在一些实例中,可根据关于图3B到3F所描述的排序的读取电平电压(不包含初始和次级读取电平电压,因为其已在框505到525中使用)来执行一个或多个解码操作。在一些实例中,关于图3B到3F所描述的排序的读取电平电压可以是基于对应于先前成功解码操作的读取电平电压的趋势。本发明技术的一个或多个方面允许基于对应于先前成功解码操作的读取电平电压的趋势来调整读取电平电压序列(或顺序)。当解码操作不成功(例如,使用读取电平电压序列中的初始读取电平电压的解码操作)时,读取电平电压序列中的次级读取电平电压和/或其它随后读取电平电压可用于重试解码操作。
如果一个或多个额外解码操作中的一个成功(框540),那么可将解码数据返回到请求进程(框550)。如果一个或多个额外解码过程不成功(框540),那么可将读取错误返回到请求进程(框545)。
在数据的成功解码操作之后,可维护一组解码成功指示符(框555)。举例来说,可基于在此期间成功地解码数据的使用初始或次级读取电平电压的初始或次级解码操作或一个或多个额外解码操作的成功来更新对应数据值。在使用上文所描述的堆栈存储器的实例中,可将在此期间成功地解码数据的初始或次级解码操作或一个或多个额外解码操作的解码成功指示符推送到堆栈存储器中。
多个存储器单元可以是非易失性存储器装置上的多个区块中的区块的部分,且控制器或另一组件(例如,数据存储系统100或闪存装置118中的另一组件)可维护针对区块、包括所述区块的区块群组或非易失性存储器装置的相应解码成功指示符。
多阶段解码操作的每一阶段可包含执行一个或多个解码操作以解码使用来自对应于所述阶段的读取电平电压序列的相应读取电平电压从多个存储器单元读取的数据。可依序执行多阶段解码操作的阶段,直到阶段中的一个中的一个或多个解码操作中的一个成功地解码从多个存储器单元读取的数据为止。多阶段解码操作的每一阶段的一个或多个解码操作可包含硬解码操作和至多多个软解码操作。在一些实例中,可基于例如相对于图3B到3F所描述的序列的读取电平电压序列来执行多阶段解码操作的阶段。
每一解码成功指示符可对应于读取电平电压序列中的一个读取电平电压。维护解码成功指示符包含设定用以指示用来成功地解码数据的来自读取电平电压序列的读取电平电压的解码成功指示符。可通过将在此期间成功地解码数据的初始或次级解码操作或一个或多个额外解码操作的解码成功指示符推送到堆栈存储器中来维护解码成功指示符。
在一些实施例中,在初始解码操作、次级解码操作或一个或多个额外解码操作中的一个成功时维护(例如,更新)所述一组解码成功指示符。
图6描绘根据本发明技术的各方面的示例多阶段解码操作的流程图600。在一或多个实例中,控制器102、编码/解码引擎104或其组合可进行相对于图6所描述的一个或多个过程。类似于上文相对于图4所描述的过程,可响应于从主机装置110接收到的读取命令或响应于由控制器102执行的内部数据管理操作而发起图6中所描绘的多阶段解码操作。
可基于至少包含从至少两个新近(或之前)成功解码操作获得的第一解码成功指示符和第二解码成功指示符的一组解码成功指示符的趋势来调整或设定读取电平电压序列(框610)。第一解码成功指示符可对应于上次(或最新近)成功解码操作的读取电平电压。第二解码成功指示符可对应于倒数第二次成功解码操作的读取电平电压。基于一组解码成功指示符的趋势来确定的读取电平电压序列的实例可包含相对于图3B到3F所描述的序列。
当第一解码成功指示符比第二解码成功指示符更为新近时,可将序列中的第一读取电平电压设定成对应于第一解码成功指示符的读取电平电压。当对应于第一解码成功指示符的读取电平电压小于对应于第二解码成功指示符的读取电平电压时,所述一组解码成功指示符的趋势是下降。当对应于第一解码成功指示符的读取电平电压大于对应于第二解码成功指示符的读取电平电压时,所述一组解码成功指示符的趋势是上升。当所述一组解码成功指示符的趋势是下降时,可将序列中的第二读取电平电压设定成小于第一读取电平电压的读取电平电压。当所述一组解码成功指示符的趋势是上升时,可将序列中的第二读取电平电压设定成高于第一读取电平电压的读取电平电压。
如图3B到3F中所绘示,读取电平电压可包含最低读取电平电压(例如,LLL)和最高读取电平电压(RRR)。当序列中的读取电平电压是最低读取电平电压(例如,LLL)时,序列中的下一读取电平电压是紧接于且高于第一读取电平电压的读取电平电压(例如,图3B中的C、图3C中的L以及图3E中的R)。当序列中的读取电平电压是最高读取电平电压(例如,RRR)时,序列中的下一读取电平电压是紧接于且低于第一读取电平电压的读取电平电压(例如,图3D中的R和图3F中的C)。当序列中的读取电平电压是最低或最高读取电平电压(例如,LLL或RRR)时,基于与趋势相反的方向来确定序列中的下一读取电平电压(例如,在LLL或RRR之后的下一读取电平电压)。
可基于读取电平电压序列来执行一个或多个当前解码操作以解码从多个存储器单元读取的数据(框620)。读取电平电压可用于针对给定区块、区块群组、管芯、管芯群组或闪存装置118的解码操作。一个或多个当前解码操作中的每一个可以是相对于图4所描述的多阶段解码操作的阶段,其中每一阶段可包含硬解码操作(框405)和一个或多个软件解码操作(框425)。多个存储器单元可位于闪存装置118中。一个或多个当前解码操作中的第一个可对应于多阶段解码操作的第一阶段,且可使用序列中的第一读取电平电压来解码数据。一个或多个当前解码操作中的在第一个之后的第二个可对应于多阶段解码操作的第二阶段,且可使用序列中的第二读取电平电压来解码数据。
当一个或多个当前解码操作中的一个成功时,可返回来自一个或多个当前解码操作中的一个的解码数据(框630)。
可至少基于一个或多个当前解码操作中的成功的一个来维护所述一组解码成功指示符(框640)。每一解码成功指示符可指示对给定区块、区块群组、管芯、管芯群组或闪存装置118的之前解码操作的成功读取电平电压。在下文进一步描述维护一组解码成功指示符的过程。
在一个或多个实例中,当用于一个或多个当前解码操作中的成功的一个(或与所述成功的一个相关联)的读取电平电压不同于对应于第一解码成功指示符的读取电平电压时,观察到以下:
-将对应于第二解码成功指示符的读取电平电压设定(或改变)成对应于第一解码成功指示符的读取电平电压。举例来说,将倒数第二次成功读取电平电压的值设定成上次成功读取电平电压的值;以及
-将对应于第一解码成功指示符的读取电平电压设定(或改变)成用于一个或多个当前解码操作中的成功的一个的读取电平电压。举例来说,将上次成功读取电平电压的值设定成当前成功读取电平电压的值。
在一个或多个实例中,当用于一个或多个当前解码操作中的成功的一个(或与所述成功的一个相关联)的读取电平电压与对应于第一解码成功指示符的读取电平电压相同时,观察到以下:
-对应于第一解码成功指示符的读取电平电压保持在其前一值下,未由一个或多个当前解码操作中的成功的一个改变,且被视为上次成功读取电平电压;
-第一解码成功指示符保持为最新近解码成功指示符(或上次解码成功指示符);
-与第一解码成功指示符相关联的解码操作保持为最新近成功解码操作或(或上次成功解码操作);
-对应于第二解码成功指示符的读取电平电压保持在其前一值下,未由一个或多个当前解码操作中的成功的一个改变,且被视为倒数第二次成功读取电平电压;
-第二解码成功指示符保持为倒数第二新近解码成功指示符(或倒数第二次解码成功指示符);以及
-与第二解码成功指示符相关联的解码操作保持为倒数第二新近成功解码操作或(或倒数第二次成功解码操作);
-与第一和第二解码成功指示符相关联的解码操作可保持为连续新近成功解码操作;以及
-与第一和第二解码成功指示符相关联的解码操作可保持为两个新近成功解码操作。
在一个或多个方面中,控制器102可例如在每区块基础上记录上次和倒数第二次成功读取电平电压。当控制器102需要重试对数据的读取和解码时,控制器102可读取用于这一区块的两个先前读取电平电压,且预测下一读取电平电压。在成功读取重试之后,控制器102可比较当前读取电平电压与上次成功读取电平电压。如果两个读取电平电压相同,那么不需要针对上次和倒数第二次成功读取电压进行更新。如果两个读取电平电压不同,那么控制器102可将上次成功读取电平电压移动到倒数第二次成功读取电平电压,且可将当前读取电平电压移动到上次成功读取电平电压。在一个或多个方面中,可将用于维护或更新读取电平电压的伪码表示如下:
在一个或多个实例中,词语“上次”或其变体有时可指代“最新近”或其变体,且反之亦然。在一个或多个实例中,词语“先前”、“之前”或其变体有时可指代“新近”或其变体,且反之亦然。
根据本发明技术的各方面,提供一种机器实施方法,包含基于第一解码成功指示符来获得初始读取电平电压,以及使用初始读取电平电压来执行初始解码操作以解码从多个存储器单元读取的数据。当初始解码操作不成功时,所述方法包含至少基于包括第一解码成功指示符和第二解码成功指示符的一组解码成功指示符的趋势来获得次级读取电平电压,以及使用次级读取电平电压来执行次级解码操作以解码从多个存储器单元读取的数据。当次级解码操作不成功时,所述方法包含至少基于读取电平电压序列来执行一个或多个解码操作以解码从多个存储器单元读取的数据。所述方法进一步包含至少基于初始解码操作、次级解码操作或一个或多个解码操作的结果来维护所述一组解码成功指示符。
根据本发明技术的各方面,提供一种数据存储系统,包含非易失性存储器装置和控制器。所述控制器可使得:基于第一解码成功指示符获得来自读取电平电压序列的初始读取电平电压;使用初始读取电平电压来执行初始解码操作以解码从多个存储器单元读取的数据;以及当初始解码操作成功时,返回来自初始解码操作的解码数据。
当初始解码操作不成功时,所述控制器可使得:至少基于包括第一解码成功指示符和第二解码成功指示符的一组解码成功指示符的趋势获得来自读取电平电压序列的次级读取电平电压;使用次级读取电平电压来执行次级解码操作以解码从多个存储器单元读取的数据;以及当次级解码操作成功时,返回来自次级解码操作的解码数据。
当次级解码操作不成功时,所述控制器可使得至少基于读取电平电压序列来执行一个或多个解码操作以解码从多个存储器单元读取的数据;以及当一个或多个解码操作中的一个成功时,返回来自一个或多个解码操作中的一个的解码数据。所述控制器可至少基于初始解码操作、次级解码操作或一个或多个解码操作的结果来维护所述一组解码成功指示符。
根据本发明技术的各方面,提供一种数据存储系统,包含非易失性存储器装置和控制器。所述控制器可基于至少包括从至少两个新近成功解码操作获得的第一解码成功指示符和第二解码成功指示符的一组解码成功指示符的趋势来调整读取电平电压序列。所述控制器可基于读取电平电压序列来进一步执行一个或多个解码操作以解码从多个存储器单元读取的数据;以及当一个或多个解码操作中的一个成功时,返回来自一个或多个解码操作中的一个的解码数据。所述控制器可至少基于一个或多个解码操作中的成功的一个来进一步维护所述一组解码成功指示符。
根据本发明技术的各方面,一种在其上包含机器可执行指令的非暂时性机器可读介质,所述机器可执行指令在由处理器执行时进行一方法,所述方法包含:基于至少包括第一解码成功指示符和第二解码成功指示符的一组解码成功指示符的趋势来设定读取电平电压序列。所述方法还包含:基于读取电平电压序列来进行一个或多个解码操作以解码从多个存储器单元读取的数据;当一个或多个解码操作中的一个成功时,返回来自一个或多个解码操作中的一个的解码数据;以及至少基于一个或多个解码操作中的成功的一个来维护所述一组解码成功指示符。
根据本发明技术的各方面,提供一种数据存储系统,包含用于使用至少包括从至少两个新近成功解码操作获得的第一解码成功指示符和第二解码成功指示符的一组解码成功指示符的趋势来设定读取电平电压序列的构件。所述数据存储系统进一步包含:用于基于读取电平电压序列来执行一个或多个解码操作以解码从多个存储器单元读取的数据的构件;用于在一个或多个解码操作中的一个成功时提供来自一个或多个解码操作中的一个的解码数据的构件;以及用于至少基于一个或多个解码操作中的成功的一个来维护所述一组解码成功指示符的构件。
上述特征和应用中的许多可实施为指定为记录在计算机可读存储介质(也称为计算机可读介质)上的指令集的软件或固件进程。当这些指令由一个或多个处理单元(例如,一个或多个处理器、处理器的内核或其它处理单元)执行时,其使得处理单元进行在指令中所指示的动作。计算机可读介质的实例包含但不限于CD-ROM、闪存驱动器、RAM芯片、硬盘驱动器、EPROM等。计算机可读介质不包含无线地或通过有线连接传递的载波和电子信号。
术语“软件”意味着在适当的情况下包含存在于只读存储器或其它形式的存储器中的固件,所述固件可读取到存储器中以由处理器处理。此外,在一些实施方案中,本公开的多个软件方面可实施为更大程序的子部分,同时保持本公开的独特软件方面。在一些实施方案中,多个软件方面还可实施为单独程序。最后,一起实施本文中所描述的软件方面的单独程序的任何组合在本公开的范围内。在一些实施方案中,当安装以在一个或多个电子系统上操作时,软件程序定义执行和进行所述软件程序的操作的一个或多个具体机器实施方案。
计算机程序(也称作程序、软件、软件应用、脚本或代码)可以任何形式的编程语言写入,所述编程语言包含编译或解译语言、声明或过程性语言,并且其可以任何形式部署,包含作为独立程序或作为模块、组件、子程序、对象或适合用于计算环境中的其它单元。计算机程序可以但是无需对应于文件系统中的文件。程序可存储在保存其它程序或数据的文件的一部分(例如,存储在标记语言文档中的一个或多个脚本)中、专用于所讨论程序的单个文件中,或多个协调文件(例如,存储一个或多个模块、子程序或代码的部分的文件)中。计算机程序可部署成在一个计算机上或在位于一个站点或分布在多个站点并且通过通信网络互连的多个计算机上执行。
应理解,本文中所描述的示出性区块、模块、元件、组件、方法以及算法可实施为电子硬件、计算机软件或两者的组合。为了示出硬件与软件的这一可互换性,上文已大体就其功能性描述了各种示出性区块、模块、元件、组件、方法以及算法。这种功能性是实施为硬件还是软件取决于特定应用和施加于整个系统的设计约束。本领域的技术人员可针对每一特定应用以不同方式实施所描述的功能性。各种组件和区块可以不同方式布置(例如,以不同顺序布置,或以不同方式分区),而均不脱离本公开的范围。
应理解,将所公开过程中的步骤的具体顺序或层次呈现为一些示例性途径的图示。基于设计偏好和/或其它考虑因素,应理解,可重新布置过程中的步骤的具体顺序或层次。举例来说,在一些实施方案中,步骤中的一些可同时进行。因此,随附的方法权利要求以示例顺序呈现各种步骤的元件,且并不意味着限于所呈现的具体顺序或层次。
提供先前的描述以使本领域的技术人员能够实践本文中所描述的各种方面。先前描述提供本公开的各种实例,且本公开不限于这些实例。对这些方面的各种修改对于本领域的技术人员来说将容易显而易见,并且本文中定义的一般原理可适用于其它方面。因此,权利要求书并不意图限于本文中所展示的方面,而是将被赋予与语言权利要求书一致的完整范围,其中以单数形式提及元件并非意图表示“有且仅有一个”(除非明确地这样陈述),而是表示“一个或多个”。除非另外具体地陈述,否则术语“一些”指代一个或多个。关于男性的代词(例如,他的)包含女性和中性性别(例如,她的和它的),且反之亦然。标题和副标题(如果存在的话)仅为了便利而使用,且不限制本公开。
断言词“配置成”、“可操作以”以及“编程成”不暗示主题的任何特定有形或无形修改,而是意图可互换使用。举例来说,配置成监视和控制操作或组件的处理器还可意味着所述处理器编程成以监视和控制所述操作,或所述处理器可操作以监视和控制所述操作。同样地,配置成执行代码的处理器可理解为编程成执行代码或可操作以执行代码的处理器。
短语“与......通信”和“耦合”意味着与......直接通信或经由在本文中命名或未命名的一个或多个组件(例如,存储卡读卡器)与......间接通信
例如“方面”的短语不暗示这种方面对于本公开必不可少或这种方面适用于本公开的所有配置。与一方面相关的公开可适用于所有配置,或一个或多个配置。一方面可提供一个或多个实例。例如方面的短语可指一个或多个方面,且反之亦然。例如“实施方案”的短语不暗示这种实施方案对于本公开必不可少或这种实施方案适用于本公开的所有配置。与实施方案相关的公开可适用于所有方面,或一个或多个方面。实施方案可提供一个或多个实例。例如“实施方案”的短语可指一个或多个实施方案,且反之亦然。例如“配置”的短语不暗示这种配置对于本公开必不可少或这种配置适用于本公开的所有配置。与配置相关的公开可适用于所有配置,或一个或多个配置。配置可提供一个或多个实例。例如“配置”的短语可指一个或多个配置,且反之亦然。
词语“示例性”在本文中用以意指“充当实例或图示”。本文中描述为“示例性”的任何方面或设计未必应解释为比其它方面或设计优选或有利。
Claims (24)
1.一种机器实施方法,其包括:
基于第一解码成功指示符来获得初始读取电平电压;
使用所述初始读取电平电压来执行初始解码操作以解码从多个存储器单元读取的数据;
当所述初始解码操作不成功时:
至少基于包括所述第一解码成功指示符和第二解码成功指示符的一组解码成功指示符的趋势来获得次级读取电平电压;以及
使用所述次级读取电平电压来执行次级解码操作以解码从所述多个存储器单元读取的数据;
当所述次级解码操作不成功时:
至少基于读取电平电压序列来执行一个或多个解码操作以解码从所述多个存储器单元读取的数据;以及
至少基于所述初始解码操作、所述次级解码操作或所述一个或多个解码操作的结果来维护所述一组解码成功指示符。
2.根据权利要求1所述的方法,其中基于对应于所述第二解码成功指示符的读取电平电压与对应于所述第一解码成功指示符的读取电平电压之间的趋势来确定所述一组解码成功指示符的所述趋势,且其中所述第一解码成功指示符是比所述第二解码成功指示符更为新近的指示符。
3.根据权利要求2所述的方法,其中当对应于所述第一解码成功指示符的所述读取电平电压高于对应于所述第二解码成功指示符的所述读取电平电压时,所述一组解码成功指示符的所述趋势是上升。
4.根据权利要求3所述的方法,其中当所述一组解码成功指示符的所述趋势是上升时,所述次级读取电平电压高于所述初始读取电平电压。
5.根据权利要求4所述的方法,其中所述次级读取电平电压高于对应于所述第二解码成功指示符的所述读取电平电压。
6.根据权利要求1所述的方法,其中所述初始读取电平电压是对应于所述第一解码成功指示符的读取电平电压,且其中所述第一解码成功指示符是比所述第二解码成功指示符更为新近的指示符。
7.一种数据存储系统,其包括:
非易失性存储器装置;以及
控制器,其配置成使得:
基于第一解码成功指示符获得来自读取电平电压序列的初始读取电平电压;
使用所述初始读取电平电压来执行初始解码操作以解码从多个存储器单元读取的数据;
当所述初始解码操作成功时,返回来自所述初始解码操作的解码数据;
当所述初始解码操作不成功时:
至少基于包括所述第一解码成功指示符和第二解码成功指示符的一组解码成功指示符的趋势获得来自所述读取电平电压序列的次级读取电平电压;
使用所述次级读取电平电压来执行次级解码操作以解码从所述多个存储器单元读取的数据;以及
当所述次级解码操作成功时,返回来自所述次级解码操作的解码数据;
当所述次级解码操作不成功时:
至少基于所述读取电平电压序列来执行一个或多个解码操作以解码从所述多个存储器单元读取的数据;以及
当所述一个或多个解码操作中的一个成功时,返回来自所述一个或多个解码操作中的所述一个的解码数据;以及
至少基于所述初始解码操作、所述次级解码操作或所述一个或多个解码操作的结果来维护所述一组解码成功指示符。
8.根据权利要求7所述的数据存储系统,其中所述第一解码成功指示符和所述第二解码成功指示符是对应于两个不同读取电平电压的连续解码成功指示符,其中所述第一解码成功指示符与第一成功解码操作相关联,其中所述第二解码成功指示符与第二成功解码操作相关联,且其中所述第一成功解码操作比所述第二成功解码操作更为新近。
9.根据权利要求8所述的数据存储系统,其中获得所述次级读取电平电压是基于确定对应于所述第二解码成功指示符的读取电平电压与对应于所述第一解码成功指示符的读取电平电压之间的变化。
10.根据权利要求7所述的数据存储系统,其中用于执行所述一个或多个解码操作的所述读取电平电压序列不包含所述初始读取电平电压和所述次级读取电平电压。
11.一种数据存储系统,其包括:
非易失性存储器装置;以及
控制器,其配置成使得:
基于至少包括从至少两个新近成功解码操作获得的第一解码成功指示符和第二解码成功指示符的一组解码成功指示符的趋势来调整读取电平电压序列;
基于所述读取电平电压序列来执行一个或多个解码操作以解码从多个存储器单元读取的数据;
当所述一个或多个解码操作中的一个成功时,返回来自所述一个或多个解码操作中的所述一个的解码数据;以及
至少基于所述一个或多个解码操作中的成功的一个来维护所述一组解码成功指示符。
12.根据权利要求11所述的数据存储系统,其中调整所述读取电平电压序列包括将所述序列中的第一读取电平电压设定成对应于所述第一解码成功指示符的读取电平电压,且其中所述第一解码成功指示符比所述第二解码成功指示符更为新近。
13.根据权利要求12所述的数据存储系统,其中当对应于所述第一解码成功指示符的所述读取电平电压小于对应于所述第二解码成功指示符的读取电平电压时,所述一组解码成功指示符的所述趋势是下降。
14.根据权利要求13所述的数据存储系统,其中调整所述读取电平电压序列包括当所述一组解码成功指示符的所述趋势是下降时将所述序列中的第二读取电平电压设定成小于所述第一读取电平电压的读取电平电压,且
其中所述一个或多个解码操作中的第一个是基于所述第一读取电平电压,且所述一个或多个解码操作中的随后一个是基于所述第二读取电平电压。
15.根据权利要求13所述的数据存储系统,其中所述读取电平电压包括所述读取电平电压当中的最低读取电平电压,且其中当所述序列中的一个读取电平电压是所述最低读取电平电压时,所述序列中的下一读取电平电压是紧接于且高于所述第一读取电平电压的读取电平电压。
16.根据权利要求11所述的数据存储系统,其中所述读取电平电压包括所述读取电平电压当中的最低读取电平电压和最高读取电平电压,且其中当所述序列中的一个读取电平电压是所述最低读取电平电压或所述最高读取电平电压时,所述控制器配置成基于与所述趋势相反的方向来确定所述序列中的下一读取电平电压。
17.根据权利要求11所述的数据存储系统,其中维护所述一组解码成功指示符包括:
当用于所述一个或多个解码操作中的所述成功的一个的读取电平电压不同于对应于所述第一解码成功指示符的读取电平电压时,
将对应于所述第二解码成功指示符的读取电平电压设定成对应于所述第一解码成功指示符的所述读取电平电压;以及
将对应于所述第一解码成功指示符的所述读取电平电压设定成用于所述一个或多个解码操作中的所述成功的一个的所述读取电平电压。
18.一种在其上包含机器可执行指令的非暂时性机器可读介质,所述机器可执行指令在由处理器执行时进行一方法,所述方法包括:
基于至少包括第一解码成功指示符和第二解码成功指示符的一组解码成功指示符的趋势来设定读取电平电压序列;
基于所述读取电平电压序列来进行一个或多个解码操作以解码从多个存储器单元读取的数据;
当所述一个或多个解码操作中的一个成功时,返回来自所述一个或多个解码操作中的所述一个的解码数据;以及
至少基于所述一个或多个解码操作中的成功的一个来维护所述一组解码成功指示符。
19.根据权利要求18所述的非暂时性机器可读介质,其中所述方法包括基于对应于所述第一解码成功指示符的第一读取电平电压与对应于所述第二解码成功指示符的第二读取电平电压之间的趋势来确定所述一组解码成功指示符的所述趋势,且其中所述第一读取电平电压与所述第二读取电平电压不同。
20.根据权利要求18所述的非暂时性机器可读介质,其中设定所述读取电平电压序列包括将第一读取电平电压设定成对应于所述第一解码成功指示符和所述第二解码成功指示符中的更为新近的一个的读取电平电压,所述第一读取电平电压是所述序列中的第一个。
21.根据权利要求20所述的非暂时性机器可读介质,其中如果对应于所述第一解码成功指示符的第一成功读取电平电压小于对应于所述第二解码成功指示符的第二成功读取电平电压,那么设定所述读取电平电压序列包括将第二读取电平电压设定成小于所述第一读取电平电压且小于所述第二成功读取电平电压的读取电平电压,所述第二读取电平电压是所述序列中的第二个。
22.一种数据存储系统,其包括:
用于使用至少包括从至少两个新近成功解码操作获得的第一解码成功指示符和第二解码成功指示符的一组解码成功指示符的趋势来设定读取电平电压序列的构件;
用于基于所述读取电平电压序列来执行一个或多个解码操作以解码从多个存储器单元读取的数据的构件;
用于在所述一个或多个解码操作中的一个成功时提供来自所述一个或多个解码操作中的所述一个的解码数据的构件;以及
用于至少基于所述一个或多个解码操作中的成功的一个来维护所述一组解码成功指示符的构件。
23.根据权利要求22所述的数据存储系统,其中所述用于设定所述读取电平电压序列的构件包括用于基于对应于所述第一解码成功指示符的第一新近读取电平电压与对应于所述第二解码成功指示符的第二新近读取电平电压之间的变化来确定所述一组解码成功指示符的所述趋势的构件,且其中所述第一解码成功指示符是比所述第二解码成功指示符更为新近的指示符。
24.根据权利要求23所述的数据存储系统,其中当所述第一新近读取电平电压小于所述第二新近读取电平电压时,所述趋势是下降,且所述序列中的第二个的电压电平小于所述序列中的第一个的电压电平。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862684157P | 2018-06-12 | 2018-06-12 | |
US62/684,157 | 2018-06-12 | ||
US16/052,523 US10636495B2 (en) | 2018-06-12 | 2018-08-01 | Adjustable read retry order based on decoding success trend |
US16/052,523 | 2018-08-01 | ||
PCT/US2019/017119 WO2019240847A1 (en) | 2018-06-12 | 2019-02-07 | Adjustable read retry order based on decoding success trend |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111406370A true CN111406370A (zh) | 2020-07-10 |
CN111406370B CN111406370B (zh) | 2023-11-28 |
Family
ID=68764233
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980005893.XA Active CN111406370B (zh) | 2018-06-12 | 2019-02-07 | 数据存储系统和可读介质以及用于多阶段解码的相关方法 |
Country Status (5)
Country | Link |
---|---|
US (3) | US10636495B2 (zh) |
KR (1) | KR102411329B1 (zh) |
CN (1) | CN111406370B (zh) |
DE (1) | DE112019000167T5 (zh) |
WO (1) | WO2019240847A1 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI681393B (zh) * | 2019-01-07 | 2020-01-01 | 群聯電子股份有限公司 | 解碼方法、記憶體控制電路單元以及記憶體儲存裝置 |
US11244740B1 (en) | 2020-08-10 | 2022-02-08 | Micron Technology, Inc. | Adapting an error recovery process in a memory sub-system |
KR20220034341A (ko) * | 2020-09-11 | 2022-03-18 | 삼성전자주식회사 | 메모리 컨트롤러, 스토리지 장치 및 메모리 컨트롤러의 구동방법 |
US11467938B2 (en) | 2020-09-21 | 2022-10-11 | SK Hynix Inc. | Read retry threshold optimization systems and methods conditioned on previous reads |
US11538547B2 (en) | 2020-11-10 | 2022-12-27 | SK Hynix Inc. | Systems and methods for read error recovery |
US11411582B1 (en) | 2021-01-15 | 2022-08-09 | SK Hynix Inc. | Machine-learning based LLR generation without assist-read for early-stage soft decoding |
US11809355B2 (en) | 2021-02-05 | 2023-11-07 | SK Hynix Inc. | UART aggregation and JTAG selection circuitry for a multi-solid state drive environment |
KR20230085625A (ko) | 2021-12-07 | 2023-06-14 | 에스케이하이닉스 주식회사 | 메모리 장치 및 그 동작 방법 |
CN116185309B (zh) * | 2023-04-27 | 2023-08-08 | 合肥康芯威存储技术有限公司 | 一种数据处理方法及数据存储设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090059264A1 (en) * | 2007-08-28 | 2009-03-05 | Ricoh Company, Limited | Multifunctional input/output aparatus, control method thereof, and computer program product |
US20120240007A1 (en) * | 2010-10-20 | 2012-09-20 | Stec, Inc. | Ldpc decoding for solid state storage devices |
US20160306693A1 (en) * | 2015-04-14 | 2016-10-20 | Phison Electronics Corp. | Read voltage level estimating method, memory storage device and memory control circuit unit |
US20170242748A1 (en) * | 2016-02-23 | 2017-08-24 | Phison Electronics Corp. | Decoding method, memory storage device and memory control circuit unit |
US20180034485A1 (en) * | 2016-07-28 | 2018-02-01 | Ip Gem Group, Llc | Auto-learning log likelihood ratio |
CN107665723A (zh) * | 2016-07-29 | 2018-02-06 | 西部数据技术公司 | 用于非易失性存储器的非二进制编码 |
Family Cites Families (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6229737B1 (en) | 1996-12-12 | 2001-05-08 | Ericsson Inc. | Method and apparatus for initializing semiconductor memory |
US6378035B1 (en) | 1999-04-06 | 2002-04-23 | Microsoft Corporation | Streaming information appliance with buffer read and write synchronization |
US6820144B2 (en) | 1999-04-06 | 2004-11-16 | Microsoft Corporation | Data format for a streaming information appliance |
US6535920B1 (en) | 1999-04-06 | 2003-03-18 | Microsoft Corporation | Analyzing, indexing and seeking of streaming information |
US7085842B2 (en) | 2001-02-12 | 2006-08-01 | Open Text Corporation | Line navigation conferencing system |
US7386655B2 (en) | 2004-12-16 | 2008-06-10 | Sandisk Corporation | Non-volatile memory and method with improved indexing for scratch pad and update blocks |
US7594087B2 (en) | 2006-01-19 | 2009-09-22 | Sigmatel, Inc. | System and method for writing data to and erasing data from non-volatile memory |
JP4598711B2 (ja) | 2006-03-30 | 2010-12-15 | 富士通株式会社 | 誤り訂正装置 |
CN101553346B (zh) | 2006-09-05 | 2011-01-12 | 盛生投资有限公司 | 手持动力工具 |
US8151060B2 (en) | 2006-11-28 | 2012-04-03 | Hitachi, Ltd. | Semiconductor memory system having a snapshot function |
US8290899B2 (en) | 2007-03-28 | 2012-10-16 | Netapp, Inc. | Group stamping style asynchronous replication utilizing a loosely-accurate global clock |
EP2232843A4 (en) | 2007-12-19 | 2011-07-27 | Colin Simon | DIGITAL VIDEO AND AUDIO FLOW SYNCHRONIZATION DEVICE AND METHOD FOR MULTIMEDIA PRESENTATION DEVICES |
US8200922B2 (en) | 2008-12-17 | 2012-06-12 | Netapp, Inc. | Storage system snapshot assisted by SSD technology |
EP2764516A4 (en) | 2011-10-05 | 2015-07-08 | Lsi Corp | SELF-HISTORIZATION AND HIERARCHICAL CONSISTENCY FOR NON-VOLATILE STORES |
US8977769B2 (en) | 2012-01-17 | 2015-03-10 | Harman International Industries, Incorporated | System for managing lossless failover in an audio-bridging (AVB) network |
US9202577B2 (en) | 2012-03-30 | 2015-12-01 | Intel Corporation | Solid state drive management in power loss recovery |
US9037820B2 (en) | 2012-06-29 | 2015-05-19 | Intel Corporation | Optimized context drop for a solid state drive (SSD) |
US9690642B2 (en) | 2012-12-18 | 2017-06-27 | Western Digital Technologies, Inc. | Salvaging event trace information in power loss interruption scenarios |
US9183142B2 (en) | 2013-03-15 | 2015-11-10 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Reducing flash memory write amplification and latency |
WO2014158155A1 (en) | 2013-03-28 | 2014-10-02 | Hewlett-Packard Development Company, L.P. | Coordinating replication of data stored in a non-volatile memory-based system |
US20150085571A1 (en) | 2013-09-24 | 2015-03-26 | Sandisk Technologies Inc. | Updating read voltages |
US20150127891A1 (en) | 2013-11-04 | 2015-05-07 | Falconstor, Inc. | Write performance preservation with snapshots |
US9720618B1 (en) | 2013-12-16 | 2017-08-01 | EMC IP Holding Company LLC | Maintaining backup snapshots using continuous replication from multiple sources |
KR20150091693A (ko) * | 2014-02-03 | 2015-08-12 | 삼성전자주식회사 | 플래쉬 메모리 읽기 방법 |
US9588847B1 (en) | 2014-03-25 | 2017-03-07 | EMC IP Holding Company LLC | Recovering corrupt virtual machine disks |
US9804934B1 (en) | 2014-12-30 | 2017-10-31 | EMC IP Holding Company LLC | Production recovery using a point in time snapshot |
US9647697B2 (en) | 2015-03-16 | 2017-05-09 | Sandisk Technologies Llc | Method and system for determining soft information offsets |
KR102556479B1 (ko) | 2015-03-20 | 2023-07-17 | 에스케이하이닉스 주식회사 | Ldpc 디코더, 반도체 메모리 시스템 및 그것의 동작 방법 |
US10108350B2 (en) | 2015-09-10 | 2018-10-23 | Western Digital Technologies, Inc. | Method for providing nonvolatile storage write bandwidth using a caching namespace |
US10048876B2 (en) | 2015-09-10 | 2018-08-14 | Western Digital Technologies, Inc. | Method for providing nonvolatile storage write bandwidth using a caching namespace |
KR102673873B1 (ko) | 2016-06-30 | 2024-06-10 | 삼성전자주식회사 | 데이터 복구 방법 및 이를 적용하는 메모리 시스템 및 레이드 스토리지 시스템 |
US10025661B1 (en) * | 2016-12-27 | 2018-07-17 | Sandisk Technologies Llc | Adaptive hard and soft bit decoding |
-
2018
- 2018-08-01 US US16/052,523 patent/US10636495B2/en active Active
-
2019
- 2019-02-07 DE DE112019000167.1T patent/DE112019000167T5/de active Granted
- 2019-02-07 WO PCT/US2019/017119 patent/WO2019240847A1/en active Application Filing
- 2019-02-07 CN CN201980005893.XA patent/CN111406370B/zh active Active
- 2019-02-07 KR KR1020207014523A patent/KR102411329B1/ko active IP Right Grant
-
2020
- 2020-03-19 US US16/824,584 patent/US11017867B2/en active Active
-
2021
- 2021-04-29 US US17/244,794 patent/US11557352B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090059264A1 (en) * | 2007-08-28 | 2009-03-05 | Ricoh Company, Limited | Multifunctional input/output aparatus, control method thereof, and computer program product |
US20120240007A1 (en) * | 2010-10-20 | 2012-09-20 | Stec, Inc. | Ldpc decoding for solid state storage devices |
US20160306693A1 (en) * | 2015-04-14 | 2016-10-20 | Phison Electronics Corp. | Read voltage level estimating method, memory storage device and memory control circuit unit |
US20170242748A1 (en) * | 2016-02-23 | 2017-08-24 | Phison Electronics Corp. | Decoding method, memory storage device and memory control circuit unit |
US20180034485A1 (en) * | 2016-07-28 | 2018-02-01 | Ip Gem Group, Llc | Auto-learning log likelihood ratio |
CN107665723A (zh) * | 2016-07-29 | 2018-02-06 | 西部数据技术公司 | 用于非易失性存储器的非二进制编码 |
Also Published As
Publication number | Publication date |
---|---|
US20190378576A1 (en) | 2019-12-12 |
US10636495B2 (en) | 2020-04-28 |
DE112019000167T5 (de) | 2020-08-06 |
WO2019240847A1 (en) | 2019-12-19 |
US11017867B2 (en) | 2021-05-25 |
US20200219571A1 (en) | 2020-07-09 |
US11557352B2 (en) | 2023-01-17 |
US20210249088A1 (en) | 2021-08-12 |
CN111406370B (zh) | 2023-11-28 |
KR102411329B1 (ko) | 2022-06-22 |
KR20210008326A (ko) | 2021-01-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110955385B (zh) | 用于改进的数据重定位的数据存储系统和方法 | |
CN111406370B (zh) | 数据存储系统和可读介质以及用于多阶段解码的相关方法 | |
CN106067321B (zh) | 适于存储器编程暂停-恢复的控制器 | |
CN109933455B (zh) | 动态多级解码 | |
CN111712804B (zh) | 使用数据块的可变逻辑到物理关联的增强错误校正码能力 | |
US11531587B2 (en) | Dynamic multi-stage decoding | |
US10642525B2 (en) | Multiple-stage data lifetime management for storage devices | |
KR20130084901A (ko) | 플래시 메모리 시스템 및 플래시 메모리 시스템의 리드 방법 | |
CN111722795A (zh) | 存储系统以及用于控制存储系统的方法 | |
CN109411002B (zh) | 一种数据读取的方法及闪存控制器 | |
CN108428467B (zh) | 读取电压追踪方法、存储器储存装置及控制电路单元 | |
CN113314179A (zh) | 用于执行读取操作的存储器系统及其操作方法 | |
CN113010098A (zh) | 用于提高存储器系统的输入/输出吞吐量的设备和方法 | |
CN114464241A (zh) | 用于读取错误恢复的系统和方法 | |
CN111488120B (zh) | 用于自适应芯片启用设置时间的数据存储系统和方法 | |
CN110100236B (zh) | 数据读取方法及闪存设备 | |
US11157210B2 (en) | Memory system performing dummy program operation during normal program operation | |
KR102695482B1 (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
WO2024148459A1 (en) | Dummy data-based read reference voltage search of nand memory | |
TW202429460A (zh) | Nand記憶體的基於虛擬資料的讀取參考電壓搜索 | |
CN113126897A (zh) | 提高存储器系统的输入和输出吞吐量的设备和方法 | |
CN117472270A (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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20240828 Address after: California, USA Patentee after: SanDisk Technology Co. Country or region after: U.S.A. Address before: California, USA Patentee before: Western Digital Technologies, Inc. Country or region before: U.S.A. |