CN112562772B - 自适应低密度奇偶校验硬解码器 - Google Patents
自适应低密度奇偶校验硬解码器 Download PDFInfo
- Publication number
- CN112562772B CN112562772B CN201911367764.3A CN201911367764A CN112562772B CN 112562772 B CN112562772 B CN 112562772B CN 201911367764 A CN201911367764 A CN 201911367764A CN 112562772 B CN112562772 B CN 112562772B
- Authority
- CN
- China
- Prior art keywords
- memory
- word line
- decoder
- decoding
- successful
- 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
- 230000003044 adaptive effect Effects 0.000 title abstract description 5
- 238000000034 method Methods 0.000 claims abstract description 42
- 230000014759 maintenance of location Effects 0.000 claims description 17
- 238000013016 damping Methods 0.000 claims description 5
- 238000004891 communication Methods 0.000 claims description 4
- 238000005516 engineering process Methods 0.000 description 30
- 238000009826 distribution Methods 0.000 description 26
- 238000013500 data storage Methods 0.000 description 21
- 238000012937 correction Methods 0.000 description 14
- 239000010410 layer Substances 0.000 description 10
- 238000004590 computer program Methods 0.000 description 9
- 239000004065 semiconductor Substances 0.000 description 4
- 238000007667 floating Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 239000000463 material Substances 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 108700043492 SprD Proteins 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001808 coupling effect Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000003071 parasitic effect Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- 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
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5621—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
- G11C11/5642—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/08—Address circuits; Decoders; Word-line control circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/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/3418—Disturbance prevention or evaluation; Refreshing of disturbed memory data
-
- 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/349—Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
-
- 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/35—Unequal or adaptive error protection, e.g. by providing a different level of protection according to significance of source information or by adapting the coding according to the change of transmission channel characteristics
- H03M13/353—Adaptation to the channel
-
- 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5621—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/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
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/10—Decoders
Abstract
本申请公开了一种自适应低密度奇偶校验硬解码器以及一种对从存储器装置读取的数据进行解码的方法、系统和装置,包括:从存储器装置的字线区域中包括的第一存储器位置接收噪声数据;识别字线区域和与该字线区域相关联的先前成功的解码器参数;使用针对相同字线区域中包括的第二存储器位置的先前成功解码中使用的先前成功的解码器参数来对噪声数据解码;确定基于先前成功的解码器参数的解码是否已成功;在确定解码已成功时,保持先前成功的解码器参数作为第一存储器位置的解码器参数;并且在确定解码已失败时,通过使用从预定义解码器参数的集合中选择的另一解码器参数来对从第一存储器位置读取的噪声数据解码。
Description
技术领域
本专利文件涉及一种半导体存储器和包括该半导体存储器的数据存储装置。
背景技术
随着对大容量数据存储装置的需求增加,半导体制造商持续开发能够实现高容量数据存储装置的新技术,包括垂直地堆叠多个存储器单元层的三维(3D)闪速存储器堆叠技术以及使每个存储器单元能够存储两位或更多位信息的多层单元(MLC)编程技术。
然而,每个存储器单元存储的位的数量增加和存储器单元阵列的密度增加,可能使得数据存储装置更易于由于MLC存储器单元的密集的阈值电压分布和在密集的存储器阵列中的相邻存储器单元之间的干扰而发生错误。从这种高容量数据存储装置读取的信息通常由错误校正码(ECC)解码器处理,以校正可能引入所存储的信息中的错误。
发明内容
除了其它特征和优点之外,所公开技术的实施例提供了基于存储器装置中的操作条件和数据的物理位置而自适应低密度奇偶校验(LDPC)解码器参数的方法和系统。
在所公开技术的实施例中,一种对从存储器装置读取的数据进行解码的方法包括:从存储器装置的物理位置区域(在本文中也可被称为字线区域)中包括的第一存储器位置接收噪声数据;识别物理位置区域和与所识别的物理位置区域相关联的先前成功的解码器参数;使用针对相同物理位置区域中包括的第二存储器位置的先前成功解码中使用的先前成功的解码器参数来对从第一存储器位置读取的噪声数据进行解码;确定使用先前成功的解码器参数的解码是否已成功;在确定解码已成功时,保持先前成功的解码器参数作为第一存储器位置的解码器参数;并且在确定软解码操作已失败时,通过使用从预定义解码器参数的集合中选择的另一解码器参数来对从第一存储器位置读取的噪声数据进行解码。
在所公开技术的另一实施例中,一种设置解码器参数的方法,解码器参数用于对从存储器装置读取的数据进行解码,该方法包括:将存储器装置划分成多个字线区域;获得为校正从存储器装置的字线区域中包括的存储器位置读取的数据中的错误符号而产生的解码器参数设置的列表;在接收到请求对字线区域中包括的存储器单元进行读取操作的读取命令时,使用该列表中的解码器参数设置中的一个来对从存储器单元读取的数据进行解码;确定所使用的解码器参数设置是否已成功地对从存储器装置的字线区域中的存储器单元读取的噪声数据进行解码;并且在确定实现成功解码时,存储实现成功解码的解码器参数设置。
在所公开技术的又一实施例中,一种系统包括:非暂时性计算机可读介质,存储指令;以及处理器,与非暂时性计算机可读介质通信,其中在处理器运行指令时,该指令使该处理器:从存储器装置的字线区域中包括的第一存储器位置接收噪声数据,识别字线区域和与所识别的字线区域相关联的先前成功的解码器参数,使用针对相同字线区域中包括的第二存储器位置的先前成功解码中使用的先前成功的解码器参数来对从第一存储器位置读取的噪声数据进行解码,确定使用先前成功的解码器参数的解码是否已成功,在确定解码已成功时,保持先前成功的解码器参数作为第一存储器位置的解码器参数,并且当确定解码操作已失败时,通过使用从预定义解码器参数的集合中选择的另一解码器参数来对从第一存储器位置读取的噪声数据进行解码。
本专利文件中描述的主题可以提供一个或多个以下特征的特定方式来实施。
附图说明
图1示出基于所公开技术的一些实施例来实施的存储器系统的示例。
图2示出基于所公开技术的一些实施例来实施的存储器单元阵列的示例。
图3示出多层单元装置中的阈值电压分布曲线的示例,其中将每个编程/擦除状态的单元数量绘制为阈值电压的函数。
图4示出理想阈值电压分布曲线的示例和失真阈值电压分布曲线的示例。
图5示出NAND闪速存储器中单元间干扰的示例。单元间干扰还会导致闪存单元的阈值电压失真。
图6通过将正常阈值电压分布和偏移阈值电压分布进行比较来示出NAND闪速存储器中的保持错误的示例。
图7示出基于所公开技术的一些实施例的利用错误校正码(ECC)的数据存储装置的示例。
图8是示出基于所公开技术的一些实施例的对从某个存储器位置读取的噪声数据进行解码的方法的示例的流程图。
图9是示出基于所公开技术的一些实施例的设置解码参数值的方法的示例的流程图。
具体实施方式
图1示出基于所公开技术的一些实施例来实施的存储器系统100的示例。存储器系统100包括存储器模块110,该存储器模块110可用于存储供其它电子装置或系统使用的信息。存储器系统100可并入(例如,位于电路板上)其它电子装置和系统中。可选地,存储器系统100可被实施为外部存储装置,诸如USB闪存驱动器和固态驱动器(SSD)。
存储器系统100中包括的存储器模块110可包括存储器区域(例如,存储器阵列)102、104、106和108。存储器区域102、104、106和108中的每个可被包括在单个存储器管芯或多个存储器管芯中。存储器管芯可被包括在集成电路(IC)芯片中。
存储器区域102、104、106和108中的每个包括多个存储器单元。可基于存储器单元组(memory unit)来执行读取操作、编程操作或擦除操作。因此,每个存储器单元组可包括预定数量的存储器单元。存储器区域102、104、106或108中的存储器单元可被包括在单个存储器管芯或多个存储器管芯中。
存储器区域102、104、106和108中的每个中的存储器单元可在存储器单元组中以行和列来布置。存储器单元组中的每个可以是物理单元组。例如,多个存储器单元的组可形成存储器单元组。存储器单元组中的每个也可以是逻辑单元组。例如,存储器单元组可以是可通过诸如存储库(bank)地址、块地址和基于页面的地址的唯一地址来识别的存储库、块或页面。在读取或写入操作期间,与特定存储器单元组相关联的唯一地址可用于访问该特定存储器单元组。基于该唯一地址,可将信息写入该特定存储器单元组中的一个或多个存储器单元或从该特定存储器单元组中的一个或多个存储器单元检索信息。
存储器区域102、104、106和108中的存储器单元可包括非易失性存储器单元。非易失性存储器单元的示例包括闪速存储器单元、相变存储器(PRAM)单元、磁阻随机存取存储器(MRAM)单元或其它类型的非易失性存储器单元。在存储器单元被配置成NAND闪速存储器单元的示例实施方案中,可基于页面来执行读取或写入操作。然而,NAND闪速存储器中的擦除操作是基于块来执行的。
非易失性存储器单元中的每个可被配置成单层单元(SLC)或多层存储器单元。单层单元可每单元存储一个信息位。多层存储器单元可每单元存储多于一个信息位。例如,存储器区域102、104、106和108中的存储器单元中的每个可被配置成每单元存储两个信息位的多层单元(MLC)、每单元存储三个信息位的三层单元(TLC)或每单元存储四个信息位的四层单元(QLC)。在另一示例中,存储器区域111中的存储器单元中的每个可被配置成存储至少一个信息位(例如,一个信息位或多个信息位),并且存储器区域112中的存储器单元中的每个可被配置成存储多于一个信息位。
如图1所示,存储器系统100包括控制器模块120。控制器模块120包括与存储器模块110通信的存储器接口121、与主机(未示出)通信的主机接口126、执行固件级代码的处理器124以及临时或永久存储可执行固件/指令和相关信息的高速缓存和存储器122和123。在一些实施方案中,控制器模块120可包括错误校正引擎125,以对存储器模块110中存储的信息执行错误校正操作。错误校正引擎122可被配置成检测/校正单个位错误或多个位错误。在另一实施方案中,错误校正引擎125可位于存储器模块110中。
主机可以是包括一个或多个处理器的装置或系统,操作该一个或多个处理器以从存储器系统100中检索数据或者将数据存储或写入到存储器系统100中。在一些实施方案中,主机的示例可包括个人计算机(PC)、便携式数字装置、数码相机、数字多媒体播放器、电视机以及无线通信装置。
在一些实施方案中,控制器模块120还可包括主机接口126以与主机通信。主机接口126可包括符合包括但不限于以下的主机接口规范中的至少一个的组件:串行高级技术附件(SATA)、串列小型计算机系统接口(SAS)规范、高速外围组件互连(PCIe)。
图2示出基于所公开技术的一些实施例来实施的存储器单元阵列的示例。
在一些实施方案中,存储器单元阵列可包括NAND闪速存储器阵列,该NAND闪速存储器阵列被分割成许多块,并且每个块包括一定数量的页面。每个块包括多个存储器单元串,并且每个存储器单元串包括多个存储器单元。
在存储器单元阵列是NAND闪速存储器阵列的一些实施方案中,读取和写入(编程)操作是以页面为单位来执行,并且擦除操作是以块为单位来执行。在对块中包括的任何页面执行编程操作之前,必须同时擦除相同块中的所有存储器单元。在一个实施方案中,NAND闪速存储器可使用偶数/奇数位线结构。在另一实施方案中,NAND闪速存储器可使用全位线结构。在偶数/奇数位线结构中,偶数和奇数位线沿每个字线交错,并且被交替访问,使得偶数和奇数位线中的每对可共享诸如页面缓冲器的外围电路。在全位线结构中,同时访问所有位线。
图3示出多层单元装置中的阈值电压分布曲线的示例,其中将每个编程/擦除状态的单元数量绘制为阈值电压的函数。如图3中所示,阈值电压分布曲线包括阈值电压最低的擦除状态(表示为“ER”并且对应于“11”),以及读取电压处于(由虚线表示的)状态之间的三个编程状态(分别表示为“P1”、“P2”和“P3”,分别对应于“01”、“00”和“10”)。在一些实施例中,因为存储器阵列的材料属性上的差异,编程/擦除状态的阈值电压分布中的每个具有有限的宽度。
在存储器单元中写入多于一个数据位时,由于相邻分布之间的距离减小,需要精细布置存储器单元的阈值电压电平。这是通过使用增量步进脉冲编程(ISPP)来实现的,即,使用编程和验证方法,利用施加到字线的阶梯式编程电压,对相同字线上的存储器单元重复编程来实现的。每个编程状态与验证操作中使用的验证电压相关联,并且设置每个阈值电压分布窗口的目标位置。
可能由阈值电压分布失真或重叠而导致读取错误。理想的存储器单元阈值电压分布可能由于例如编程和擦除(P/E)周期、单元间干扰以及数据保持错误而显著失真或重叠,这将在下文中讨论,并且在大多数情况下,这种读取错误可通过使用错误校正码(ECC)来管理。
图4示出理想阈值电压分布曲线410的示例和失真阈值电压分布曲线420的示例。纵轴表示存储器单元的数量,存储器单元具有在横轴上表示的特定阈值电压。
对于n位多层单元NAND闪速存储器,每个单元的阈值电压可被编程为2n个可能值。在理想的多层单元NAND闪速存储器中,每个值对应于非重叠阈值电压窗口。
闪速存储器P/E周期对单元晶体管的电荷撷取层的浮栅的隧道氧化物造成损坏,这导致阈值电压偏移,并因此逐渐劣化存储器装置噪声容限。随着P/E周期增加,不同编程状态的相邻分布之间的裕度减小,并且最后这些分布开始重叠。在具有编程在相邻分布的重叠范围内的阈值电压的存储器单元中存储的数据位可能被误判为不同于原始目标值的值。
图5示出NAND闪速存储器中的单元间干扰的示例。单元间干扰还会导致闪存单元的阈值电压失真。一个存储器单元晶体管的阈值电压偏移可通过干扰单元和牺牲单元之间的寄生电容耦合效应,来影响该存储器单元晶体管的相邻存储器单元晶体管的阈值电压。单元间干扰的量可能受NAND闪速存储器位线结构的影响。在偶数/奇数位线结构中,一个字线上的存储器单元交替地连接到偶数位线和奇数位线,并且偶数单元在相同字线中的奇数单元之前进行编程。因此,偶数单元和奇数单元经历不同量的单元间干扰。全位线结构中的单元比偶数/奇数位线结构中的偶数单元受到更少的单元间干扰,并且全位线结构可高效地支持高速电流感测,以提高存储器读取和验证速度。
图5中的虚线表示所考虑的单元的P/E状态(在编程干扰之前)的正常分布,并且“相邻状态值”表示已经被编程到相邻状态的值。如图5所示,如果相邻状态被编程为P1,则所考虑的单元的阈值电压分布偏移特定量。然而,如果相邻状态被编程为阈值电压高于P1的P2,则与相邻状态为P1相比,这导致更大的偏移。类似地,当相邻状态被编程为P3时,阈值电压分布的偏移最大。
图6通过将正常阈值电压分布和偏移阈值电压分布进行比较,来示出NAND闪速存储器中的保持错误的示例。NAND闪速存储器中存储的数据往往会随着时间的推移而损坏,这称为数据保持错误。保持错误是由单元晶体管的浮栅或电荷撷取层中存储的电荷丢失所造成的。由于浮栅或电荷撷取层的损耗,具有更多编程擦除周期的存储器单元更可能经历保持错误。在图6的示例中,顶行电压分布(损坏前)与底行分布(被保持错误损害)的比较显示了向左偏移。
随着闪速存储器老化,根据诸如读取干扰、保持和物理位置的操作条件,闪速存储器页面的单元电压分布开始具有较大的变化。在示例实施方案中,ECC解码器具有不适应当前操作条件的静态解码器参数设置。因此,数据损坏的风险增加,较长的解码延迟可能会劣化服务质量(QoS)和能效。在另一实施方案中,可使用查找表、基于闪速存储器操作条件和数据的物理位置来预测最佳解码器设置。然而,这种查找表需要较大的存储容量来针对每个存储器位置而存储大量的预定义最佳解码器设置。
在所公开技术的一些实施例中,LDPC硬解码器使用多个解码参数来对读出数据进行解码,该多个解码参数包括但不限于对数似然比(LLR)缩放、迭代控制、初始LLR、LLR阻尼缩放因子以及校验和阈值。基于所公开技术的一些实施例实施的解码器可使用最佳解码器设置来对读出数据进行解码,最佳解码器设置是基于闪速存储器操作条件而确定的,其中闪速存储器操作条件包括但不限于编程/擦除计数(PEC)、正被解码的数据的数据保持和读取干扰(SPRD)以及操作温度。
在所公开技术的一些实施例中,LDPC解码器可基于存储器装置中的数据的物理位置来自适应解码器参数。在所公开技术的一些实施例中,可通过使用不同存储器位置的最佳解码器设置来提高LDPC解码器的性能。
在本专利文件的上下文中,与解码器设置或存储器系统性能结合使用的词语最优、优化或最佳用于指示相比其它解码器设置,为存储器装置提供更好的性能(例如,更高的可靠性、更好的QoS等)的解码器设置。在这个意义上说,最佳、优化或最优的词语可传达或不传达存储器装置可实现的最好的可能的性能。
在所公开技术的一些实施例中,解码器可基于操作条件和正被访问的存储器位置的物理位置,随着环境的变化而自适应解码器参数,而不需要具有大量的预定义最佳解码器设置的查找表。
在所公开技术的一些实施例中,每个物理存储块被划分成多个部分,每个部分被分配预定义解码器参数的有限集合中的一个。解码器可使用被分配给存储器位置的预定义解码器参数的有限集合来对从该存储器位置读取的数据进行解码。在所公开技术的一些实施例中,在确定当前正被访问的存储器单元属于与先前成功的解码器设置相关联的存储器部分时,解码器可利用先前成功的解码器设置来对当前读出数据进行解码。如果先前成功的解码器设置未能成功地对从该存储器部分读取的数据进行解码,则选择不同的解码器参数集合来对该存储器部分进行解码。
数据存储装置可由多个存储器芯片管芯制成,每个存储器芯片管芯包括多个物理存储块。每个物理存储块包括多个存储器单元,并且每个存储器单元可通过所联接的字线来选择。在所公开技术的一些实施例中,每个物理存储块被划分成多个字线区域。基于字线区域在存储器芯片管芯或存储块中的物理位置来划分字线区域。每个字线区域包括多个存储器单元,多个存储器单元联接到布置在存储器芯片管芯或存储块的相同物理部分中的多个字线。在所公开技术的一些实施例中,解码器可使用被分配给存储器位置的预定义解码器参数的有限集合来对从字线区域读取的数据进行解码。在确定当前正被访问的存储器单元属于与先前成功的解码器设置相关联的字线区域时,解码器可利用先前成功的解码器设置来对当前读出数据进行解码。
图7示出基于所公开技术的一些实施例的利用错误校正码(ECC)的数据存储装置700的示例。数据存储装置700可包括自适应解码器710和多个存储器管芯740。自适应解码器710可包括处理器720和存储器730。存储器730被配置成存储解码器参数的有限集合732和成功的解码器参数734。
数据存储装置700的一些示例包括固态驱动器(SSD),是利用非易失性存储器(例如,闪速存储器)和/或易失性存储器(例如,同步动态随机存取存储器;SDRAM)来存储数据的数据存储装置。例如,数据存储装置700可包括使用多层单元技术的多个闪速存储器装置。每个存储器装置包括多个存储块,并且多个存储块中的每个包括多个存储器单元。每个存储器单元可被编程为多个编程状态中的一个。可使用多个读取阈值来读出每个存储器单元中存储的数据。基于所公开技术的一些实施例实施的数据存储装置被配置成确保可使用优化解码器参数来对数据进行解码。
数据存储装置700可包括错误校正码(ECC)引擎,该ECC引擎被配置成接收待被写入到多个存储器管芯740的数据,并且生成码字。例如,ECC引擎可包括编码器,该编码器被配置成使用错误校正码来对数据进行编码,诸如低密度奇偶校验(LDPC)编码器。
ECC引擎还可被配置成接收数据,并且使用错误校正码解码器,诸如LDPC解码器来处理所接收的数据。LDPC解码器可被配置成对从多个存储器管芯740读取的数据进行解码,以检测和校正数据中存在的一个或多个错误位,直到达到ECC方案的错误校正能力。在一些实施方案中,处理器720可包括ECC引擎。
处理器720可进行操作以基于正被访问的存储器单元的物理位置来找到解码器参数的最佳集合。在所公开技术的一些实施例中,处理器720可进行操作以基于存储器单元所属的字线区域来找到解码器参数的最佳集合。在所公开技术的一些实施例中,存储器730可进行操作以存储每个字线区域的成功的解码器参数(例如,当对相应字线区域的先前解码成功时使用的解码器参数的集合)。
在接收到读取请求和相关联的读取地址时,处理器720找到对应于该读取地址的字线区域,并且获取与该字线区域相关联的成功的解码器参数。处理器720使用对应于该字线区域的成功的解码器参数来对从该字线区域的存储器单元读出的数据进行解码。
如果成功完成解码,则处理器720可存储成功的解码器参数作为该字线区域的最佳解码器参数。如果解码失败,则处理器720使用预定义解码器参数的有限集合来对数据进行解码。当使用预定义解码器参数的有限集合中的一个成功地解码数据时,处理器720将该解码器参数作为最佳解码器参数而存储在存储器730中。
图8是示出基于所公开技术的一些实施例的对从某个存储器位置读取的噪声数据进行解码的方法800的示例的流程图。方法800包括,在步骤810,从属于字线区域的存储器位置接收噪声数据(或噪声码字)。在示例中,噪声数据是由于诸如由编程和擦除(P/E)周期、单元间干扰、数据保持错误及读取干扰所造成的错误的一种或多种类型的错误而已被损坏的数据(或码字)。
方法800包括,在步骤820,识别包括存储器位置的字线区域。方法800还可包括识别和获取在该字线区域中包括的任意存储器位置的先前成功解码中用于对损坏数据进行解码的一个或多个解码器参数。
方法800包括,在步骤830,使用针对相同字线区域中包括的第二存储器位置的先前成功解码中使用的先前成功的解码器参数,来对从第一存储器位置读取的噪声数据进行解码。如果第二存储器位置和第一存储器位置都被包括在相同字线区域中,则第二存储器位置的先前成功的解码参数可用于对从第一存储器位置读取的数据进行解码。
方法800包括,在步骤840,确定基于先前成功的解码器参数进行的解码是否成功。例如,方法800包括,在步骤840,确定在对从字线区域的第二存储器位置读取的噪声数据进行解码的先前成功解码中使用的一个或多个解码器参数是否已成功地对从该字线区域的第一存储器位置读取的噪声数据进行解码。
方法800包括,在步骤850,在确定解码已成功时,保持先前成功的解码器参数作为第一存储器位置的解码器参数。例如,在确定基于一个或多个解码器参数的解码已成功时,可保持该一个或多个解码器参数作为第一存储器位置的解码器参数。
方法800包括,在步骤860,在确定解码操作已失败时,通过使用从预定义解码器参数的集合中选择的另一解码器参数来对从第一存储器位置读取的噪声数据进行解码。在确定基于该一个或多个解码器参数的解码已失败时,基于预定义解码器参数的有限集合内的一个或多个解码器参数来一次一个地对噪声数据进行解码,直到实现成功解码。
在一些实施方案中,字线区域包括联接到基于字线在存储器装置中的物理位置而被一起分组的字线组的存储器单元。
在一些实施方案中,基于存储器装置的第一和第二存储器位置的操作条件来确定字线区域,操作条件包括第一和第二存储器位置的编程/擦除计数、第一和第二存储器位置的数据保持和读取干扰以及第一和第二存储器位置的操作温度中的至少一个。
在一些实施方案中,基于管芯索引、块索引或字线索引中的至少一个来确定字线区域。
在一些实施方案中,解码器参数包括对数似然比(LLR)缩放、迭代控制、初始LLR、LLR阻尼缩放因子或校验和阈值中的至少一个。
在一些实施方案中,基于存储器装置操作条件来确定预定义解码器参数的集合,该存储器装置操作条件包括编程/擦除计数、正被解码数据的数据保持和读取干扰或存储器装置的操作温度中的至少一个。
在一些实施方案中,通过使用从预定义解码器参数的集合中选择的另一解码器参数来对从第一存储器位置读取的噪声数据进行解码包括:一次一个地选择解码器参数,直到解码成功。
图9是示出基于所公开技术的一些实施例的设置解码参数值的方法900的示例的流程图。方法900包括,在步骤910,将存储器装置划分成多个字线区域。在一些实施方案中,可使用4位变量来指示每个字线区域和页面类型的最佳解码器设置。变量可被初始化为某个预定义值。
方法900包括,在步骤920,获得为了校正从存储器装置的字线区域中包括的存储器位置读取的数据中的错误符号而产生的解码器参数设置的列表。在示例中,由于过度的编程和擦除(P/E)周期、单元间干扰、数据保持错误和/或读取干扰,读出数据中可能会引入错误位。
所列出的每个解码器设置都被从0至L-1进行标记。在一些实施方案中,可用16个解码器设置。每个设置可对应于特定的解码器模式,诸如低失败位计数(FB)模式、中FB高吞吐量模式、高FB高吞吐量模式、高FB高校正模式等。每个解码器模式可用于不同产品生命周期阶段的数据存储装置。低FB模式可指示在数据存储装置的生命周期的开始时,数据中的错误位的数量较低。中FB高吞吐量模式可指示在数据存储装置的生命周期的中期时,数据中的错误位的数量高于低FB模式中的错误位的数量。高FB高吞吐量模式可指示在数据存储装置用作企业产品的情况下,在数据存储装置的生命周期的末期时,数据中的错误位的数量较高。高FB高校正模式可指示对于企业产品和客户产品两者的情况,数据存储装置处于数据存储装置的生命周期的末期。
方法900包括,在步骤930,在接收到请求对字线区域中包括的存储器单元进行读取操作的读取命令时,使用列表中的解码器参数设置中的一个来对从存储器单元读取的数据进行解码。例如,具有指示最佳解码器设置的4位值的解码器设置可用于解码数据。在一些实施方案中,列表中的所有解码器设置可一次一个地使用以对数据进行解码,直到实现成功解码。
方法900包括,在步骤940,确定所使用的解码器参数设置是否已成功对从存储器装置的字线区域的存储器单元读取的噪声数据进行解码。
方法900包括,在步骤950,在确定实现成功解码时,存储实现成功解码的解码器参数设置。
在一些实施方案中,将针对相同字线区域中的任意存储器单元的、在先前成功解码中用于对数据进行解码的解码器设置存储在存储器中,并且用于在针对相同字线区域中的相同存储器单元或任意其它存储器单元的后续解码中对数据进行解码。如果后续解码成功,则将该解码器设置保持在存储器中。如果后续解码不成功,则可逐个地使用列表中的其余解码器设置来对数据进行解码,直到解码成功或失败。如果第i设置解码成功,则将4位变量更改为“i”。
存储器消耗等于3×N×K,其中N是物理块的总数量,K是每块的字线区域的数量。每个存储器管芯可包括数万个块。如果将每个块分割成8个字线区域,则存储解码器设置所需的存储器大约为150KB。通过创建块区域,即在超级块内对若干相邻块分组,可进一步减少存储器消耗。如果块区域中的块的数量等于B,则存储器消耗等于(3×N×K)/B。凭借如此小的存储器占用,可在片上系统(SoC)中充分实施该算法。
本专利文件中描述的主题和功能操作的实施方案可在包括本说明书中公开的结构及其等同方案的各种系统、数字电子电路或计算机软件、固件或硬件或它们中的一个或多个的组合中实施。本说明书中描述的主题的实施方案可被实施为一个或多个计算机程序产品,即被编码在有形和非暂时性计算机可读介质上的计算机程序指令的一个或多个模块,以用于由数据处理装置运行或控制该数据处理装置的操作。计算机可读介质可以是机器可读存储装置、机器可读存储装置衬底、存储器装置、实现机器可读传播信号的物质组合,或者它们中的一个或多个的组合。术语“处理器”包括用于处理数据的所有设备、装置和机器,作为示例,包括可编程处理器、计算机或者多个处理器或计算机。除了硬件之外,该设备还可包括为所讨论的计算机程序创建运行环境的代码,例如构成处理器固件、协议栈、数据库管理系统、操作系统或它们中的一个或多个的组合的代码。
计算机程序(也称为程序、软件、软件应用、脚本或代码)可以以包括编译或解释语言的任意形式的编程语言来编写,并且可以包括以下的任意形式部署:作为独立程序或作为模块、组件、子例程或适合在计算环境中使用的其它单元。计算机程序不一定对应于文件系统中的文件。程序可被存储在保持其它程序或数据的文件的一部分(例如,标记语言文档中存储的一个或多个脚本)中,被存储在专用于所讨论的程序的单个文件中,或者被存储在多个协调文件(例如,存储一个或多个模块、子程序或部分代码的文件)中。计算机程序可被部署为在位于一个站点或分布在多个站点并通过通信网络互连的一台或多台计算机上运行。
本说明书中描述的进程和逻辑流程可由一个或多个可编程处理器执行,该可编程处理器运行一个或多个计算机程序以通过对输入数据进行操作并生成输出来执行功能。进程和逻辑流程也可由专用逻辑电路来执行,并且设备也可被实施为专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。
作为示例,适于运行计算机程序的处理器包括通用和专用微处理器,以及任意类型的数字计算机的任意一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或这两者接收指令和数据。计算机的基本元件是用于执行指令的处理器和用于存储指令和数据的一个或多个存储器装置。通常,计算机还将包括用于存储数据的一个或多个大容量存储装置,或者被可操作地联接以从一个或多个大容量存储装置接收数据或向其传送数据,或者这两者,其中大容量存储装置例如磁盘、磁光盘或光盘。然而,计算机不需要这种装置。适于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器装置,作为示例,包括半导体存储器装置,例如EPROM、EEPROM和闪速存储器装置。处理器和存储器可由专用逻辑电路来辅助或被并入专用逻辑电路中。
本说明书以及附图仅旨在被认为是示例性的,其中示例性表示为示例。如本文使用的,单数形式“一个”、“一”及“该”也旨在包括复数形式,除非上下文另有清楚地说明。另外,除非上下文另有明确指示,否则使用“或”旨在包括“和/或”。
虽然本专利文件包括许多细节,但这些细节不应被解释为对任何发明或可能要求保护的内容的范围加以限制,而应该被解释为针对特定发明的特定实施例的特征的描述。在本专利文件中在单独的实施例的上下文中描述的某些特征也可在单个实施例的组合中实施。相反地,在单个实施例的上下文中描述的各个特征也可在多个实施例中单独或在任何适当的子组合中来实施。此外,虽然特征可在上文中被描述为以某些组合起作用,甚至最初要求这样保护,但在某些情况下,来自所要求保护的组合的一个或多个特征可从该组合中删除,并且要求保护的组合可指向子组合或子组合的变型。
类似地,虽然在附图中以特定的顺序描述了操作,但这不应被理解为要求以所示的特定次序或顺序的次序来执行这些操作或要求执行所有所示的操作以获得期望的结果。此外,在本专利文件中描述的实施例中的各种系统组件的分离不应被理解为在所有实施例中都需要这种分离。
仅描述了一些实施方案和示例,并且可基于本专利文件中描述和说明的内容来作出其它实施方案、改进和变型。
Claims (19)
1.一种对从存储器装置读取的数据解码的方法,包括:
从所述存储器装置的字线区域中包括的第一存储器位置接收噪声数据,其中所述字线区域是基于存储器管芯或存储块中的字线的物理位置而被划分的多个字线区域中的一个;
在识别的字线区域的解码器参数设置的列表之中,识别所述字线区域和与所识别的字线区域相关联的先前成功的解码器参数;
使用针对相同的所述字线区域中包括的第二存储器位置的先前成功解码中使用的所述先前成功的解码器参数来对从所述第一存储器位置读取的噪声数据解码;
确定基于所述先前成功的解码器参数的解码是否成功;
在确定所述解码已成功时,保持所述先前成功的解码器参数作为所述第一存储器位置的解码器参数;并且
在确定所述解码已失败时,通过逐个地使用解码器参数设置的列表上的解码器参数设置而不是先前成功的解码器参数设置,来对从所述第一存储器位置读取的噪声数据解码,直到所述解码成功。
2.根据权利要求1所述的方法,其中所述字线区域包括联接到基于字线在所述存储器装置中的物理位置而被一起分组的字线组的存储器单元。
3.根据权利要求1所述的方法,其中基于所述存储器装置的所述第一存储器位置和所述第二存储器位置的操作条件来确定所述字线区域,所述操作条件包括所述第一存储器位置和所述第二存储器位置的编程/擦除计数、所述第一存储器位置和所述第二存储器位置的数据保持和读取干扰以及所述第一存储器位置和所述第二存储器位置的操作温度中的至少一个。
4.根据权利要求1所述的方法,其中基于管芯索引、块索引以及字线索引中的至少一个来确定所述字线区域。
5.根据权利要求1所述的方法,其中所述解码器参数包括对数似然比缩放,即LLR缩放、迭代控制、初始LLR、LLR阻尼缩放因子以及校验和阈值中的至少一个。
6.根据权利要求1所述的方法,其中基于存储器装置操作条件来确定所述预定义解码器参数的集合,所述存储器装置操作条件包括编程/擦除计数、正被解码数据的数据保持和读取干扰以及所述存储器装置的操作温度中的至少一个。
7.一种设置解码器参数的方法,所述解码器参数用于对从存储器装置读取的数据进行解码,所述方法包括:
基于存储器管芯或存储块中的字线的物理位置将所述存储器装置划分成多个字线区域;
获得解码器参数设置的列表,所述解码器参数设置的列表为校正从所述存储器装置的所述字线区域中包括的存储器位置读取的数据中的错误符号而产生;
在接收到请求对所述字线区域中包括的存储器单元进行读取操作的读取命令时,在所述字线区域的解码器参数设置的列表之中,使用与所述存储器装置的字线区域相关联的第一解码器参数设置,来对从所述存储器单元读取的数据解码;
确定所使用的解码器参数设置是否已成功地对从所述存储器装置的所述字线区域中的所述存储器单元读取的噪声数据解码;并且
在确定实现成功解码时,存储实现成功解码的所述解码器参数设置;或者
在确定所述解码已失败时,逐个地通过解码器参数设置的列表上的解码器参数设置而不是所述第一解码器参数设置,来对从所述字线区域的存储器单元读取的噪声数据解码,直到所述解码成功。
8.根据权利要求7所述的方法,其中所述字线区域包括联接到基于字线在所述存储器装置中的物理位置而被一起分组的字线组的存储器单元。
9.根据权利要求7所述的方法,其中基于所述存储器装置的第一存储器位置和第二存储器位置的操作条件来确定所述字线区域,所述操作条件包括所述第一存储器位置和所述第二存储器位置的编程/擦除计数、所述第一存储器位置和所述第二存储器位置的数据保持和读取干扰以及所述第一存储器位置和所述第二存储器位置的操作温度中的至少一个。
10.根据权利要求7所述的方法,其中基于管芯索引、块索引以及字线索引中的至少一个来确定所述字线区域。
11.根据权利要求7所述的方法,其中所述解码器参数包括对数似然比缩放,即LLR缩放、迭代控制、初始LLR、LLR阻尼缩放因子以及校验和阈值中的至少一个。
12.根据权利要求7所述的方法,其中基于存储器装置操作条件来确定所述解码器参数设置的列表,所述存储器装置操作条件包括编程/擦除计数、正被解码数据的数据保持和读取干扰以及所述存储器装置的操作温度中的至少一个。
13.根据权利要求7所述的方法,其中确定所使用的解码器参数设置是否已成功地对从所述存储器装置的所述字线区域中包括的所述存储器单元读取的噪声数据进行解码包括:一次一个地选择解码器参数,直到所述解码成功。
14.一种对数据解码的系统,包括:
非暂时性计算机可读介质,存储指令;以及
处理器,与所述非暂时性计算机可读介质通信,其中在所述处理器运行所述指令时,所述指令使所述处理器:
从存储器装置的字线区域中包括的第一存储器位置接收噪声数据,其中所述字线区域是基于存储器管芯或存储块中的字线的物理位置而被划分的多个字线区域中的一个;
在识别的字线区域的解码器参数的列表之中,识别所述字线区域和与所识别的字线区域相关联的先前成功的解码器参数;
使用针对相同的所述字线区域中包括的第二存储器位置的先前成功解码中使用的所述先前成功的解码器参数来对从所述第一存储器位置读取的噪声数据解码;
确定使用所述先前成功的解码器参数的解码是否成功;
在确定所述解码已成功时,保持所述先前成功的解码器参数作为所述第一存储器位置的解码器参数;以及
在确定所述解码已失败时,通过逐个地使用解码器参数的列表上的解码器参数而不是先前成功的解码器参数,来对从所述第一存储器位置读取的噪声数据解码,直到所述解码成功。
15.根据权利要求14所述的系统,其中所述字线区域包括联接到基于字线在所述存储器装置中的物理位置而被一起分组的字线组的存储器单元。
16.根据权利要求14所述的系统,其中基于所述存储器装置的所述第一存储器位置和所述第二存储器位置的操作条件来确定所述字线区域,所述操作条件包括所述第一存储器位置和所述第二存储器位置的编程/擦除计数、所述第一存储器位置和所述第二存储器位置的数据保持和读取干扰以及所述第一存储器位置和所述第二存储器位置的操作温度中的至少一个。
17.根据权利要求14所述的系统,其中基于管芯索引、块索引以及字线索引中的至少一个来确定所述字线区域。
18.根据权利要求14所述的系统,其中所述解码器参数包括对数似然比缩放,即LLR缩放、迭代控制、初始LLR、LLR阻尼缩放因子以及校验和阈值中的至少一个。
19.根据权利要求14所述的系统,其中基于存储器装置操作条件来确定所述预定义解码器参数的集合,所述存储器装置操作条件包括编程/擦除计数、正被解码数据的数据保持和读取干扰以及所述存储器装置的操作温度中的至少一个。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/566,639 | 2019-09-10 | ||
US16/566,639 US11444637B2 (en) | 2019-09-10 | 2019-09-10 | Self-adaptive low-density parity check hard decoder |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112562772A CN112562772A (zh) | 2021-03-26 |
CN112562772B true CN112562772B (zh) | 2024-03-15 |
Family
ID=74849600
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911367764.3A Active CN112562772B (zh) | 2019-09-10 | 2019-12-26 | 自适应低密度奇偶校验硬解码器 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11444637B2 (zh) |
CN (1) | CN112562772B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9430735B1 (en) * | 2012-02-23 | 2016-08-30 | Micron Technology, Inc. | Neural network in a memory device |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8307268B2 (en) * | 2007-12-06 | 2012-11-06 | Marvell World Trade Ltd. | Iterative decoder systems and methods |
US8312354B1 (en) * | 2007-12-27 | 2012-11-13 | Marvell International Ltd. | Method and apparatus for improved performance of iterative decoders on channels with memory |
US9183134B2 (en) * | 2010-04-22 | 2015-11-10 | Seagate Technology Llc | Data segregation in a storage device |
US9141528B2 (en) * | 2011-05-17 | 2015-09-22 | Sandisk Technologies Inc. | Tracking and handling of super-hot data in non-volatile memory systems |
US8874852B2 (en) | 2012-03-28 | 2014-10-28 | International Business Machines Corporation | Data cache block deallocate requests in a multi-level cache hierarchy |
US8990670B2 (en) * | 2012-09-28 | 2015-03-24 | Intel Corporation | Endurance aware error-correcting code (ECC) protection for non-volatile memories |
US9135112B2 (en) * | 2012-12-11 | 2015-09-15 | Seagate Technology Llc | Policy for read operations addressing on-the-fly decoding failure in non-volatile memory |
US9009565B1 (en) * | 2013-03-15 | 2015-04-14 | Pmc-Sierra, Inc. | Systems and methods for mapping for solid-state memory |
US9235467B2 (en) * | 2013-03-15 | 2016-01-12 | Pmc-Sierra Us, Inc. | System and method with reference voltage partitioning for low density parity check decoding |
US9431113B2 (en) * | 2013-08-07 | 2016-08-30 | Sandisk Technologies Llc | Data storage system with dynamic erase block grouping mechanism and method of operation thereof |
KR102244618B1 (ko) * | 2014-02-21 | 2021-04-26 | 삼성전자 주식회사 | 플래시 메모리 시스템 및 플래시 메모리 시스템의 제어 방법 |
US9760437B2 (en) * | 2015-07-01 | 2017-09-12 | International Business Machines Corporation | Error correction based on thermal profile of flash memory device |
US9733861B2 (en) * | 2015-07-24 | 2017-08-15 | Sk Hynix Memory Solutions Inc. | Data temperature profiling by smart counter |
US10250281B2 (en) * | 2016-12-30 | 2019-04-02 | Sandisk Technologies Llc | ECC decoder having adjustable parameters |
-
2019
- 2019-09-10 US US16/566,639 patent/US11444637B2/en active Active
- 2019-12-26 CN CN201911367764.3A patent/CN112562772B/zh active Active
Non-Patent Citations (2)
Title |
---|
"Adaptive ECC Scheme for Hybrid SSD’s";Jen-Wei Hsieh etc.;《IEEE TRANSACTIONS ON COMPUTERS》;第64卷(第12期);第3348-3360页 * |
Jen-Wei Hsieh etc.."Adaptive ECC Scheme for Hybrid SSD’s".《IEEE TRANSACTIONS ON COMPUTERS》.2015,第64卷(第12期),第3348-3360页. * |
Also Published As
Publication number | Publication date |
---|---|
US20210075443A1 (en) | 2021-03-11 |
US11444637B2 (en) | 2022-09-13 |
CN112562772A (zh) | 2021-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10896123B2 (en) | Enhancing the effectiveness of read scan performance and reliability for non-volatile memory | |
US9454414B2 (en) | System and method for accumulating soft information in LDPC decoding | |
CN112783685B (zh) | 快速收敛的低密度奇偶校验码的位翻转解码器 | |
US10090044B2 (en) | System and method for burst programming directly to MLC memory | |
US9590656B2 (en) | System and method for higher quality log likelihood ratios in LDPC decoding | |
US9450610B1 (en) | High quality log likelihood ratios determined using two-index look-up table | |
CN111538620B (zh) | 存储器装置的鲁棒检测方法 | |
US20180349044A1 (en) | Programming Schemes for Avoidance or Recovery from Cross-Temperature Read Failures | |
US9213601B2 (en) | Adaptive data re-compaction after post-write read verification operations | |
CN108694098B (zh) | 对于存储设备的不同存储器区域的比特顺序修改 | |
US10063258B2 (en) | Method and data storage device to estimate a number of errors using convolutional low-density parity-check coding | |
US10389389B2 (en) | Method and data storage device using convolutional low-density parity-check coding with a long page write and a short page read granularity | |
US10367528B2 (en) | Convolutional low-density parity-check coding | |
US20160350179A1 (en) | Decoding method, memory storage device and memory control circuit unit | |
US11711095B2 (en) | Bit flipping low-density parity-check decoders with low error floor | |
US20190250843A1 (en) | Providing recovered data to a new memory cell at a memory sub-system based on an unsuccessful error correction operation | |
CN111538621B (zh) | 针对位线故障的软芯片猎杀恢复 | |
CN112306736A (zh) | 用于非易失性存储器中的错误校正的快速失效支持 | |
CN114765047A (zh) | 非易失性存储器装置中的软读取阈值估计的高斯建模 | |
CN112562772B (zh) | 自适应低密度奇偶校验硬解码器 | |
US11830545B2 (en) | Data programming techniques to store multiple bits of data per memory cell with high reliability | |
CN117957519A (zh) | 管理存储器子系统中的存储器单元的写入干扰 | |
CN115482866A (zh) | 基于存储器装置中先前读取尝试的参数估计 | |
US20170373705A1 (en) | Apparatuses and methods for erasure-assisted ecc decoding | |
US20240054046A1 (en) | Error-handling management during copyback operations in memory devices |
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 |