CN115440289A - 用于局部增强的解码系统和方法 - Google Patents
用于局部增强的解码系统和方法 Download PDFInfo
- Publication number
- CN115440289A CN115440289A CN202111577052.1A CN202111577052A CN115440289A CN 115440289 A CN115440289 A CN 115440289A CN 202111577052 A CN202111577052 A CN 202111577052A CN 115440289 A CN115440289 A CN 115440289A
- Authority
- CN
- China
- Prior art keywords
- decoder
- nodes
- memory
- variable nodes
- controller
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
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/3707—Adaptive decoding and hybrid decoding, e.g. decoding methods or techniques providing more than one decoding algorithm for one code
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- 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/18—Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
-
- 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/1128—Judging correct decoding and iterative stopping criteria other than syndrome check and upper limit for decoding iterations
-
- 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/1142—Decoding using trapping sets
-
- 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/61—Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
- H03M13/615—Use of computational or mathematical techniques
- H03M13/616—Matrix operations, especially for generator matrices or check matrices, e.g. column or row permutations
-
- 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/18—Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
- G11C2029/1802—Address 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/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/09—Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
-
- 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/1108—Hard decision decoding, e.g. bit flipping, modified or weighted bit flipping
-
- 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/29—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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2906—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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Probability & Statistics with Applications (AREA)
- General Physics & Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Algebra (AREA)
- Computing Systems (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本公开涉及用于局部增强的解码系统和方法。本公开的实施例提供了一种对极有可能包括一些错误的小子图进行解码的方案。控制器被配置为:控制第一解码器使用错误校正码的奇偶校验矩阵对从存储器装置读取的数据进行解码;当满足特定条件时,从奇偶校验矩阵的由多个变量节点和多个校验节点定义的整个二部图中提取一个或多个子图;以及控制第二解码器使用奇偶校验矩阵的与所提取的子图相对应的子矩阵对第一解码器的解码结果进行解码。
Description
技术领域
本公开的实施例涉及用于存储器系统的解码方案。
背景技术
计算机环境范例已经转变为可以随时随地使用的无处不在的计算系统。因此,诸如移动电话、数码相机和笔记本电脑的便携式电子装置的使用迅速增加。这些便携式电子装置通常使用具有(多个)存储器装置,即,(多个)数据存储装置的存储器系统。数据存储装置被用作便携式电子装置的主存储器装置或辅助存储器装置。
由于存储器装置没有移动部件,因此使用存储器装置的存储器系统提供优异的稳定性、耐久性、高信息访问速度和低功耗。具有这些优点的存储器系统的示例包括通用串行总线(USB)存储器装置、诸如通用闪存(UFS)等具有各种接口的存储卡、以及固态驱动器(SSD)。存储器系统可以使用各种类型的解码器。
发明内容
本发明的方面包括一种具有对极有可能包括一些错误的小子图进行解码的增强解码器的系统及其解码方法。
在本发明的一方面中,一种存储器系统包括:存储器装置,存储利用错误校正码编码的数据;以及控制器,包括具有第一精度的第一解码器和具有比第一精度大的第二精度的第二解码器。控制器被配置为:控制第一解码器通过使用错误校正码的奇偶校验矩阵来对从存储器装置读取的数据进行解码;当满足特定条件时,从奇偶校验矩阵的由多个变量节点和多个校验节点定义的整个二部图(bipartite graph)中提取一个或多个子图;以及控制第二解码器使用奇偶校验矩阵的与所提取的子图相对应的子矩阵来对第一解码器的解码结果进行解码。
在本发明的另一方面中,一种用于操作包括存储利用错误校正码编码的数据的存储器装置和控制器的存储器系统的方法包括:控制具有第一精度的第一解码器通过使用错误校正码的奇偶校验矩阵来对从存储器装置读取的数据进行解码;当满足特定条件时,从奇偶校验矩阵的由多个变量节点和多个校验节点定义的整个二部图中提取一个或多个子图;以及控制具有比第一精度大的第二精度的第二解码器使用奇偶校验矩阵的与所提取的子图相对应的子矩阵来对第一解码器的解码结果进行解码。
通过以下描述,本发明的其他方面将变得显而易见。
附图说明
图1是示出根据本发明实施例的数据处理系统的框图。
图2是示出根据本发明实施例的存储器系统的框图。
图3是示出根据本发明实施例的存储器装置的存储块的电路图。
图4是示出根据本发明实施例的存储器装置的不同类型的单元的状态的分布的示图。
图5A是示出根据本发明实施例的多层单元(MLC)的格雷编码的示例的示图。
图5B是示出根据本发明实施例的多层单元(MLC)的页面的状态分布的示图。
图6A是示出根据本发明实施例的三层单元(TLC)的格雷编码的示例的示图。
图6B是示出根据本发明实施例的三层单元(TLC)的页面的状态分布的示图。
图7是示出根据本发明实施例的存储器系统的示图。
图8是示出根据本发明实施例的解码装置的示图。
图9是示出根据本发明实施例的用于操作解码装置的方法的流程图。
图10示出了奇偶校验矩阵的不同度(degree)分布。
图11是示出根据本发明实施例的解码装置的子图提取及其使用的流程图。
图12是示出根据本发明第一实施例的子图提取方案的流程图。
图13是示出根据本发明第二实施例的子图提取方案的流程图。
具体实施方式
下面参照附图更详细地描述本发明的各个实施例。然而,本发明可以以不同的形式实现,因此不应被解释为限于本文阐述的实施例。相反,提供这些实施例是为了使本公开透彻和完整,并将本发明的范围充分地传达给本领域技术人员。此外,本文中对“实施例”、“另一实施例”等的引用不一定仅针对一个实施例,并且对任何这种短语的不同引用不一定针对相同的(多个)实施例。本文所使用的术语“实施例”不一定指所有实施例。在整个公开内容中,相同附图标记在本发明的附图和实施例中指代相同的部件。
本发明可以以多种方式来实施,包括被实施为过程、设备、系统、在计算机可读存储介质上实现的计算机程序产品;和/或处理器,例如适于运行联接到处理器的存储器上存储的和/或由联接到处理器的存储器提供的指令的处理器。在本说明书中,这些实施方案或本发明可能采用的任何其他形式可以被称为技术。通常,所公开的过程的操作顺序在本发明的范围内可以变化。除非另有说明,否则被描述为适于执行任务的、诸如处理器或存储器的组件可以被实施为被临时配置为在给定时间执行该任务的通用组件或被制造为执行该任务的特定组件。如本文所使用的,术语“处理器”等是指适于处理诸如计算机程序指令的数据的一个或多个装置、电路和/或处理内核。
本文描述的方法、过程和/或操作可以通过待由计算机、处理器、控制器或其他信号处理装置运行的代码或指令来执行。计算机、处理器、控制器或其他信号处理装置可以是本文描述的计算机、处理器、控制器或其他信号处理装置,或者是本文描述的元件之外的一个元件。由于对形成方法的基础的算法(或计算机、处理器、控制器或其他信号处理装置的操作)进行了详细描述,因此用于实施方法实施例的操作的代码或指令可以将计算机、处理器、控制器或其他信号处理装置转换为执行本文的方法的专用处理器。
当至少部分地以软件实施时,控制器、处理器、装置、模块、单元、多路复用器、生成器、逻辑、接口、解码器、驱动器以及其他信号生成和信号处理特征可以包括例如用于存储待由例如计算机、处理器、微处理器、控制器或其他信号处理装置运行的代码或指令的存储器或其他存储装置。
以下结合示出了本发明的方面的附图提供了对本发明实施例的详细描述。结合这些实施例描述了本发明,但是本发明不限于任何实施例。本发明的范围仅由权利要求限制。本发明涵盖权利要求的范围内的许多替代、修改和等同形式。下面的描述中阐述了许多具体细节,以便提供对本发明的透彻理解。提供这些细节仅出于示例的目的;在没有这些具体细节中的一些或全部的情况下,可以根据权利要求来实践本发明。为了清楚起见,并未详细描述与本发明有关的技术领域中已知的技术材料,从而不会不必要地使本发明不清楚。
图1是示出根据本发明实施例的数据处理系统2的框图。
参照图1,数据处理系统2可以包括主机装置5和存储器系统10。存储器系统10可以从主机装置5接收请求并响应于接收到的请求而操作。例如,存储器系统10可以存储待由主机装置5访问的数据。
主机装置5可以利用各种类型的电子装置中的任意一种来实施。在各个实施例中,主机装置5可以包括诸如以下的电子装置:台式计算机、工作站、三维(3D)电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器和/或数字视频记录器以及数字视频播放器。在各个实施例中,主机装置5可以包括诸如以下的便携式电子装置:移动电话、智能电话、电子书、MP3播放器、便携式多媒体播放器(PMP)和/或便携式游戏机。
存储器系统10可以利用诸如固态驱动器(SSD)和存储卡的各种类型的存储装置中的任意一种来实施。在各个实施例中,存储器系统10可以被设置为诸如以下的电子装置中的各种组件中的一种:计算机、超移动个人计算机(UMPC)、工作站、上网本、个人数字助理(PDA)、便携式计算机、网络平板电脑、无线电话、移动电话、智能电话、电子书阅读器、便携式多媒体播放器(PMP)、便携式游戏装置、导航装置、黑匣子、数码相机、数字多媒体广播(DMB)播放器、三维电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、数字视频记录器、数字视频播放器、数据中心的存储装置、能够在无线环境下接收和发送信息的装置、射频识别(RFID)装置,以及家庭网络的各种电子装置中的一种、计算机网络的各种电子装置中的一种、远程信息处理网络的各种电子装置中的一种、或者计算系统的各种组件中的一种。
存储器系统10可以包括控制器100和存储器装置200。控制器100可以控制存储器装置200的整体操作。
存储器装置200可以在控制器100的控制下执行一项或多项擦除操作、编程操作和读取操作。存储器装置200可以通过输入/输出线接收命令CMD、地址ADDR和数据DATA。存储器装置200可以通过电源线接收电力PWR,并且通过控制线接收控制信号CTRL。根据存储器系统10的设计和配置,控制信号CTRL可以包括命令锁存使能(enable)信号、地址锁存使能信号、芯片使能信号、写入使能信号、读取使能信号以及其他操作信号。
控制器100和存储器装置200可以被集成到诸如固态驱动器(SSD)的单个半导体装置中。SSD可以包括用于在其中存储数据的存储装置。当半导体存储器系统10用于SSD时,可以显著地提高联接到存储器系统10的主机装置(例如,图1的主机装置5)的操作速度。
控制器100和存储器装置200可以被集成到诸如存储卡的单个半导体装置中。例如,控制器100和存储器装置200可以被集成以配置个人计算机存储卡国际协会(PCMCIA)的个人计算机(PC)卡、紧凑型闪存(CF)卡、智能媒体(SM)卡、记忆棒、多媒体卡(MMC)、减小尺寸的多媒体卡(RS-MMC)、MMC的微型版本(MMCmicro)、安全数字(SD)卡、迷你安全数字(miniSD)卡、微型安全数字(microSD)卡、安全数字高容量(SDHC)和/或通用闪存(UFS)。
图2是示出根据本发明实施例的存储器系统的框图。例如,图2的存储器系统可以描绘图1所示的存储器系统10。
参照图2,存储器系统10可以包括控制器100和存储器装置200。存储器系统10可以响应于来自主机装置(例如,图1的主机装置5)的请求而操作,并且特别地,存储待由主机装置访问的数据。
存储器装置200可以存储待由主机装置访问的数据。
存储器装置200可以利用诸如动态随机存取存储器(DRAM)和/或静态随机存取存储器(SRAM))的易失性存储器装置或诸如只读存储器(ROM)、掩模ROM(MROM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、铁电随机存取存储器(FRAM)、相变RAM(PRAM)、磁阻式RAM(MRAM)和/或电阻式RAM(RRAM)的非易失性存储器装置来实施。
控制器100可以控制数据在存储器装置200中的存储。例如,控制器100可以响应于来自主机装置的请求而控制存储器装置200。控制器100可以将从存储器装置200读取的数据提供到主机装置,并且可以将从主机装置提供的数据存储到存储器装置200中。
控制器100可以包括通过总线160联接的存储装置110、可以被实施为诸如中央处理单元(CPU)的处理器的控制组件120、错误校正码(ECC)组件130、主机接口(I/F)140和存储器接口(I/F)150。
存储装置110可以用作存储器系统10和控制器100的工作存储器,并且存储用于驱动存储器系统10和控制器100的数据。当控制器100控制存储器装置200的操作时,存储装置110可以存储被控制器100和存储器装置200用于诸如读取操作、写入操作、编程操作和擦除操作等操作的数据。
存储装置110可以利用诸如静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)的易失性存储器来实施。如上所述,存储装置110可以将主机装置用于读取操作和写入操作的数据存储在存储器装置200中。为了存储数据,存储装置110可以包括程序存储器、数据存储器、写入缓冲器、读取缓冲器、映射缓冲器等。
控制组件120可以控制存储器系统10的总体操作,并且响应于来自主机装置的写入请求或读取请求而控制存储器装置200的写入操作或读取操作。控制组件120可以驱动被称为闪存转换层(FTL)的固件,以控制存储器系统10的总体操作。例如,FTL可以执行诸如逻辑到物理(L2P)映射、损耗均衡、垃圾收集和/或坏块处置的操作。L2P映射被称为逻辑块寻址(LBA)。
ECC组件130可以在读取操作期间检测和校正从存储器装置200读取的数据中的错误。当错误位的数量大于或等于可校正错误位的阈值数量时,ECC组件130可以不校正错误位,而是输出指示校正错误位失败的错误校正失败信号。
在各个实施例中,ECC组件130可以基于诸如以下的编码调制来执行错误校正操作:低密度奇偶校验(LDPC)码、博斯-查德胡里-霍坤格姆(Bose-Chaudhuri-Hocquenghem,BCH)码、turbo码、turbo乘积码(TPC)、里德-所罗门(Reed-Solomon,RS)码、卷积码、递归系统码(RSC)、网格编码调制(TCM)或块编码调制(BCM)。然而,错误校正不限于这些技术。因此,ECC组件130可以包括用于适当的错误校正操作的任何和所有电路、系统或装置。
主机接口140可以通过诸如以下的各种通信标准或接口中的一种或多种与主机装置通信:通用串行总线(USB)、多媒体卡(MMC)、高速外围组件互连(PCI-e或PCIe)、小型计算机系统接口(SCSI)、串列SCSI(SAS)、串行高级技术附件(SATA)、并行高级技术附件(PATA)、增强型小型磁盘接口(ESDI)和电子集成驱动器(IDE)。
存储器接口150可以提供控制器100和存储器装置200之间的接口,以允许控制器100响应于来自主机装置的请求而控制存储器装置200。存储器接口150可以在控制组件120的控制下生成用于存储器装置200的控制信号并处理数据。当存储器装置200是诸如NAND闪速存储器的闪速存储器时,存储器接口150可以在控制组件120的控制下生成用于存储器装置200的控制信号并处理数据。
存储器装置200可以包括存储器单元阵列210、控制电路220、电压生成电路230、行解码器240、可以具有页面缓冲器阵列的形式的页面缓冲器阵列250、列解码器260以及输入和输出(输入/输出)电路270。存储器单元阵列210可以包括可以存储数据的多个存储块211。电压生成电路230、行解码器240、页面缓冲器阵列250、列解码器260和输入/输出电路270可以形成存储器单元阵列210的外围电路。外围电路可以执行存储器单元阵列210的编程操作、读取操作、或擦除操作。控制电路220可以控制外围电路。
电压生成电路230可以生成各种电平的操作电压。例如,在擦除操作中,电压生成电路230可以生成各种电平的操作电压,诸如擦除电压和通过电压。
行解码器240可以与电压生成电路230和多个存储块211进行电通信。行解码器240可以响应于控制电路220生成的行地址,在多个存储块211之中选择至少一个存储块,并且将从电压生成电路230供应的操作电压传输到所选择的存储块。
页面缓冲器阵列250可以通过位线BL(图3所示)与存储器单元阵列210联接。页面缓冲器阵列250可以在编程操作和读取操作中利用正电压对位线BL进行预充电、将数据发送到所选择的存储块以及从所选择的存储块接收数据,或者响应于控制电路220生成的(多个)页面缓冲器控制信号,临时存储所传输的数据。
列解码器260可以向页面缓冲器阵列250发送数据以及从页面缓冲器阵列250接收数据,或者向输入/输出电路270发送数据以及从输入/输出电路270接收数据。
输入/输出电路270可以将从外部装置(例如,图1的控制器100)接收的命令和地址发送到控制电路220,将数据从外部装置传输到列解码器260,或者通过输入/输出电路270将数据从列解码器260输出到外部装置。
控制电路220可以响应于命令和地址而控制外围电路。
图3是示出根据本发明实施例的存储器装置的存储块的电路图。例如,图3的存储块可以是图2所示的存储器单元阵列210的存储块211中的任意一个。
参照图3,存储块211可以包括联接到行解码器240的多条字线WL0至WLn-1、漏极选择线DSL和源极选择线SSL。这些线可以平行地布置,其中多条字线位于DSL和SSL之间。
存储块211可以进一步包括分别联接到位线BL0至BLm-1的多个单元串221。每一列的单元串可以包括一个或多个漏极选择晶体管DST以及一个或多个源极选择晶体管SST。在所示的实施例中,每个单元串具有一个DST和一个SST。在单元串中,多个存储器单元或存储器单元晶体管MC0至MCn-1可以在选择晶体管DST和SST之间串联联接。存储器单元中的每一个可以形成为多层单元。例如,存储器单元中的每一个可以形成为存储1位数据的单层单元(SLC)。存储器单元中的每一个可以形成为存储2位数据的多层单元(MLC)。存储器单元中的每一个可以形成为存储3位数据的三层单元(TLC)。存储器单元中的每一个可以形成为存储4位数据的四层单元(QLC)。
每个单元串中的SST的源极可以联接到公共源极线CSL,每个DST的漏极可以联接到相应的位线。单元串中的SST的栅极可以联接到SSL,单元串中的DST的栅极可以联接到DSL。跨单元串的存储器单元的栅极可以联接到各自的字线。也就是说,存储器单元MC0的栅极联接到相应的字线WL0,存储器单元MC1的栅极联接到相应的字线WL1,以此类推。联接到特定字线的一组存储器单元可以被称为一个物理页面。因此,存储块211中的物理页面的数量可以对应于字线的数量。
页面缓冲器阵列250可以包括联接到位线BL0至BLm-1的多个页面缓冲器(PB)251。页面缓冲器251可以响应于页面缓冲器控制信号而操作。例如,页面缓冲器251可以在读取或验证操作期间临时存储通过位线BL0至BLm-1接收的数据或感测位线的电压或电流。
在一些实施例中,存储块211可以包括NAND型闪速存储器单元。然而,存储块211不限于这种单元类型,而是可以包括(多个)NOR型闪速存储器单元。存储器单元阵列210可以被实施为组合了两种或更多种类型的存储器单元的混合闪速存储器,或者被实施为控制器嵌入在存储器芯片内部的单一NAND闪速存储器。
图4是示出根据本发明实施例的存储器装置的不同类型的单元的状态或编程电压(PV)电平的分布的示图。
参照图4,存储器单元中的每一个可以利用特定类型的单元,例如,存储1位数据的单层单元(SLC)、存储2位数据的多层单元(MLC)、存储3位数据的三层单元(TLC)或存储4位数据的四层单元(QLC)来实施。通常,特定存储器装置中的所有存储器单元具有相同的类型,但这不是必需的。
SLC可以包括两个状态P0和P1。P0可以表示擦除状态,P1可以表示编程状态。由于SLC可以被设置为两个不同状态中的一个,因此每个SLC可以根据设置的编码方法来编程或存储1个位。MLC可以包括四个状态P0、P1、P2和P3。在这些状态之中,P0可以表示擦除状态,P1至P3可以表示编程状态。由于MLC可以被设置为四个不同状态中的一个,因此每个MLC可以根据设置的编码方法来编程或存储两个位。TLC可以包括八个状态P0至P7。在这些状态之中,P0可以表示擦除状态,P1至P7可以表示编程状态。由于TLC可以被设置为八个不同状态中的一个,因此每个TLC可以根据设置的编码方法来编程或存储三个位。QLC可以包括十六个状态P0至P15。在这些状态之中,P0可以表示擦除状态,P1至P15可以表示编程状态。由于QLC可以被设置为十六个不同状态中的一个,因此每个QLC可以根据设置的编码方法来编程或存储四个位。
返回参照图2和图3,存储器装置200可以包括多个存储器单元(例如,NAND闪速存储器单元)。存储器单元以行和列的阵列来布置,如图3所示。每行中的单元连接到字线(例如,WL0),而每列中的单元联接到位线(例如,BL0)。这些字线和位线用于读取操作和写入操作。在写入操作期间,在字线被生效(asserted)时,在位线处提供待写入的数据(“1”或“0”)。在读取操作期间,字线再次被生效,然后可以从位线获取每个单元的阈值电压。多个页面可以共享属于(即,联接到)相同字线的存储器单元。当存储器单元利用MLC来实施时,多个页面包括最高有效位(MSB)页面和最低有效位(LSB)页面。当存储器单元利用TLC来实施时,多个页面包括MSB页面、中间有效位(CSB)页面和LSB页面。当存储器单元利用QLC来实施时,多个页面包括MSB页面、中间最高有效位(CMSB)页面、中间最低有效位(CLSB)页面和LSB页面。可以使用编码方案(例如,格雷编码)对存储器单元进行编程,以增加诸如SSD的存储器系统10的容量。
图5A是示出根据本发明实施例的多层单元(MLC)的编码的示例的示图。
参照图5A,可以使用设置类型的编码来编程MLC。MLC可以具有4个编程状态,包括擦除状态E(或PV0)和第一编程状态PV1至第三编程状态PV3。擦除状态E(或PV0)可以对应于“11”。第一编程状态PV1可以对应于“10”。第二编程状态PV2可以对应于“00”。第三编程状态PV3可以对应于“01”。
在MLC中,如图5B所示,存在2种类型的页面,包括LSB页面和MSB页面。可以应用1个或2个阈值以从MLC检索数据。对于MSB页面,单个阈值是VT1。VT1区分第一编程状态PV1和第二编程状态PV2。对于LSB页面,2个阈值包括阈值VT0和阈值VT2。VT0区分擦除状态E和第一编程状态PV1。VT2区分第二编程状态PV2和第三编程状态PV3。
图6A是示出根据本发明实施例的三层单元(TLC)的格雷编码的示例的示图。
参照图6A,可以使用格雷编码对TLC进行编程。TLC可以具有8个编程状态,包括擦除状态E(或PV0)和第一编程状态PV1至第七编程状态PV7。擦除状态E(或PV0)可以对应于“111”。第一编程状态PV1可以对应于“011”。第二编程状态PV2可以对应于“001”。第三编程状态PV3可以对应于“000”。第四编程状态PV4可以对应于“010”。第五编程状态PV5可以对应于“110”。第六编程状态PV6可以对应于“100”。第七编程状态PV7可以对应于“101”。
在TLC中,如图6B所示,存在3种类型的页面,包括LSB页面、CSB页面和MSB页面。可以应用2个或3个阈值以从TLC检索数据。对于MSB页面,2个阈值包括区分擦除状态E和第一编程状态PV1的阈值VT0,以及区分第四编程状态PV4和第五编程状态PV5的阈值VT4。对于CSB页面,3个阈值包括VT1、VT3和VT5。VT1区分第一编程状态PV1和第二编程状态PV2。VT3区分第三编程状态PV3和第四编程状态PV4。VT5区分第五编程状态PV5和第六编程状态PV6。对于LSB页面,2个阈值包括VT2和VT6。VT2区分第二编程状态PV2和第三编程状态PV3。VT6区分第六编程状态PV6和第七编程状态PV7。
图7是示出根据本发明实施例的存储器系统的示图。
参照图7,存储器系统可以包括控制器100和存储器装置200。存储器装置200可以包括具有诸如单层单元(SLC)、多层单元(MLC)、三层单元(TLC)或四层单元(QLC)的存储器单元的NAND型闪速存储器装置。在各个实施例中,存储器装置200可以包括具有QLC存储器单元(即,QLC)的NAND型闪速存储器装置。
控制器100可以从主机接收命令,并将接收到的命令提供到存储器装置200。例如,控制器100接收写入命令和与写入命令相对应的写入数据,并控制存储器装置200对写入数据执行编程操作。又例如,控制器100接收读取命令,并控制存储器装置200对与读取命令相对应的数据执行读取操作。控制器100将与读取命令相对应的读取数据传输到主机。
控制器100可以包括编码器700A和解码器700B。在编程操作期间,编码器700A可以基于设置的编码方案来对写入数据执行编码操作。在读取操作期间,解码器700B可以基于设置的、与编码方案相对应的解码方案来对读取数据执行解码操作。下面将参照图8至图13描述解码方案。尽管未在图7中示出,但是控制器100和存储器装置200可以包括如图2所示的各种其他组件并执行图1和图2中描述的操作。在实施例中,编码器700A和解码器700B可以以图2所示的控制器100的ECC组件130来实现。也可以采用其他合适的布置,如下所述。通常,编码器700A和解码器700B可以由硬件、软件、固件或其任何合适的组合来实施。
控制器的一种实施方案可以包括片上系统(SoC)中具有不同精度(或功率)的两个解码器。在图8所示的示例中,解码装置800可以具有分层解码架构,其包括具有第一精度的第一解码器810和具有比第一精度大的第二精度的第二解码器820。作为示例而非任何限制,第一解码器810可以是位翻转(BF)解码器,第二解码器820可以是最小和(MS)解码器。BF解码器810具有较小的门计数(即,较小的面积),消耗较少的功率,但具有较弱的错误校正能力(即,较低的精度)。与BF解码器810相比,MS解码器820具有更高的门计数、消耗更高的功率并且可以校正更多的错误(即,更高的精度)。一旦BF解码器810未能校正码字,码字就可以被发送到MS解码器820以进行第二次解码尝试。大多数码字可以由低功率的BF解码器810解码,而少数码字(例如,1%至5%的码字)可以由高功率的MS解码器820解码。因此,该方案改进了能量消耗。然而,由于两个解码器都需要在SoC中实施,因此尽管能量消耗低,但是门计数和峰值功率可能高。特别地,在移动应用中,错误校正码(ECC)解码器引擎可以占据SoC门计数的60%以上,而移动应用通常需要低的门计数以保持低成本。
因此,本发明的实施例提供包括两个不同解码器的解码装置的架构以及用于操作这两个解码器的方法,以解决解码装置中的门计数和峰值功率问题同时保持低能耗。实施例可以应用于如图8所示的包括具有不同解码精度和功率的两个解码器810和820的解码装置800。在实施例中,第一解码器810和第二解码器820可以分别是位翻转(BF)解码器和最小和(MS)解码器。在另一实施例中,第一解码器810和第二解码器820可以分别是低精度MS解码器和高精度MS解码器。在又一实施例中,第一解码器810和第二解码器编码器820可以分别是MS解码器和Bahl、Cocke、Jelinek和Raviv(BCJR)解码器。尽管实施例可以以如上所述的各种方式来实施,但是针对如图8所示的包括BF解码器810和MS解码器820的解码装置800描述了实施例。实施例可以在解码装置中一起实现门计数、峰值功率和能量的优化。
已经观察到,对于来自BF解码器810的大多数失败,剩余的错误是紧密互连的。BF解码器810不足以校正这种错误,因为BF解码器810没有在底层错误校正码(例如,低密度奇偶校验(LDPC)码)的二部图(例如,Tanner图)中在变量节点(VN)和校验节点(CN)之间生成和传播可靠性信息。进一步地,已经观察到,一旦生成可靠性信息并在二部图的特定子图(这是由通常不多的剩余错误的小邻域所引起的)中沿着变量节点和校验节点之间的边缘传递可靠性信息,剩余错误可以被恢复。该观察意味着沿整个图生成和传递软信息的全面的MS解码器是没有必要的。因此,实施例提供了一种解码系统,该解码系统包括局部增强解码器(以下称为迷你MS解码器,如830所指示的),以用于对极有可能包括一些剩余错误的非常小的子图进行解码,同时保持图的其余部分由BF解码器810解码。
图9是示出根据本发明实施例的用于操作解码装置的方法900的流程图。在实施例中,解码装置可以是包括BF解码器810和迷你MS解码器830而不是全面的MS解码器820的解码装置800,如图8所示。
参照图9,方法900可以包括操作910至960并且可以由图7中的控制器100控制。控制器100可以从存储器装置200读取数据(或码字),并且控制BF解码器810对数据进行解码(910)。BF解码器810可以使用错误校正码(例如,低密度奇偶校验(LDPC)码)的奇偶校验矩阵来对数据执行BF解码。
控制器100可以确定是否满足特定条件。在一些实施例中,特定条件可以包括BF解码器810卡住的情况(930)。也就是说,当BF解码器810卡住并且没有进展时,可以开始启用(kicked in)迷你MS解码器830。该条件可以通过沿着BF解码器810的连续解码迭代检查校验和来识别。当校验和结果低于BF解码的大量迭代的特定阈值时(即,当校验和结果小于设置的阈值时),控制器100可以启动迷你MS解码器830。可选地,当检测到BF解码器810的任何振荡时,控制器100可以启动迷你MS解码器830。该振荡检测方案在题为“OSCILLATIONDETECTION AND MITIGATION IN BIT-FLIPPING DECODERS(位翻转解码器中的振荡检测和减轻)”、申请序列号为17/124,203的美国专利申请中进行了描述,该美国专利申请通过引用整体并入本文。
当确定满足特定条件(930,是)时,控制器100可以针对迷你MS解码器830执行子图提取和初始化(940)。控制器100可以从奇偶校验矩阵的整个二部图中提取一个或多个子图。二部图可以由多个变量节点和多个校验节点定义。子图中的每一个可以基于未满足(unsatisfied)校验节点和从满足(satisfied)校验节点的多个相邻节点(neighbor)之中选择的相邻节点来确定。在一些实施例中,所选择的相邻节点可以与未满足校验节点具有设置的距离(例如,距离1(distance-1)或距离2(distance-2))。下面详细描述子图的识别和提取。
迷你MS解码器830可以通过信道输入值或BF解码器810末端的位值或者两者的组合来初始化。
在执行子图提取和初始化之后,控制器100可以控制迷你MS解码器830使用奇偶校验矩阵的、与所提取的子图相对应的子矩阵来对数据进行解码。
在一些情况下,子图不包含所有错误。这意味着不满足全局校验和/或循环冗余校验(CRC)。在这种情况下,在由迷你MS解码器830解码之后,BF解码器810可以通过从迷你MS解码器830获取硬判决(HD)值来继续解码。在一些实施例中,通过对迷你MS解码器830的输出执行硬判决解码来获得HD值。HD值包括二进制值0和1。BF解码器810和迷你MS解码器830之间的迭代可以继续进行,直到达到设置的最大迭代次数(920)。在每次BF解码迭代结束时,BF解码器810可以测试校正子(syndrome)(例如,LDPC校正子和CRC校正子)是否全部为零。当确定测试通过时,BF解码器810可以通过宣布成功来终止。当确定已经达到最大迭代次数(920,是)时,BF解码器810可以通过宣布解码失败来终止(960)。
如上所述,控制器100可以执行子图识别和提取。在一些实施例中,迷你MS解码器830所操作的子图可以由未满足校验(校验节点)和满足校验的distance-1相邻节点和distance-2相邻节点中的一些所强加(imposed)的子图来定义。校验节点的distance-1相邻节点可以是连接到该校验节点的变量节点。校验节点C的distance-2相邻节点可以是连接到校验节点C的distance-1相邻节点的相同校验节点的变量节点。
在错误基底区域中,已经观察到,与大多数错误模式相比,一些错误模式发生得更频繁。这些模式及其变型是根据BF解码器810的错误模式来确定的。例如,当奇偶校验矩阵可能具有如图10所示的不同度分布时,已经研究并观察到可以从奇偶校验矩阵中提取特定结构(错误模式)。在图10中,x轴代表变量节点,y轴代表校验方程。下面详细描述两种子图提取算法(方案)。迷你MS解码器830可以专注于发生大多数错误的较小图。当大多数错误出现在子图中并且迷你MS解码器830可以解码错误模式时,这种情况可以提高解码性能。当应用BF解码器810时,可以校正其余的错误。
图11是示出根据本发明实施例的包括BF解码器810和迷你MS解码器830的解码装置800的子图提取及其使用的流程图。
参照图11,两种子图提取方案Scheme A和Scheme B可以由控制器100控制并且用于迷你MS解码器830。作为示例而非任何限制,针对子图提取方案,可以考虑具有两个不同度(degree),即度a(degree-a)和度b(degree-b)的变量节点。degree-a变量节点可以是连接到“a”个校验节点的变量节点。类似地,degree-b变量节点可以是连接到“b”个校验节点的变量节点。此处,a和b可以是整数。在一些实施例中,对于具有不止两个特定度的不规则LDPC码,控制器100可以将多个度分入到degree-a类别,将剩余度分入到degree-b类别并应用子图提取算法。控制器100可以针对错误中的具有两个不同度(即degree-a和degree-b)的变量节点,这些变量节点彼此之间最多相距distance-2。
对于每种子图提取方案,输入可以包括奇偶校验矩阵和未满足校验,输出可以包括子图中的变量节点以及奇偶校验矩阵的与子图相对应的子矩阵。
迷你MS解码器830可以接收根据所选择的子图提取方案的输出并且使用接收到的输出执行MS解码。BF解码器810可以接收由迷你MS解码器830解码的子图变量节点的解码输出以及其余变量节点的状态信息,并使用接收到的解码输出和状态信息来执行BF解码。
图12是示出根据本发明第一实施例的子图提取方案(Scheme A)1200的流程图。
在图12中,子图提取方案1200的输入可以包括奇偶校验矩阵、解码的陪集(coset)和校验方程。在最简单的形式中,陪集可以包括具有相同校正子的所有向量。子图提取方案1200的输出可以包括子图中的变量和相应的子矩阵。
在所示示例中,子图提取方案1200可以包括针对根据BF解码器810的解码结果的未满足校验方程(节点)中的每一个的操作1210至1230。
在操作1210中,控制器100可以增加连接到未满足校验方程(节点)的每个变量节点的distance-1权重。
在操作1220中,控制器100可以找到连接到该校验方程的degree-a变量节点并将其添加到搜索列表中。进一步地,控制器100可以找到包括搜索列表中的degree-a变量并且被满足的其他方程。此外,控制器100可以找到连接到这些满足方程的degree-b变量节点并将它们的distance-2权重增加设定值(例如,1)。
在操作1230中,控制器100可以提取具有搜索列表中的degree-a变量节点和distance-2权重大于1的degree-b变量的子图。
已经观察到,当应用该子图提取方案1200时,80%的错误模式使用跟随有BF解码器810的迷你MS解码器83被成功地解码。子图提取方案1200可以推广用于不同的度分布以及与未满足校验方程的不同距离。
图13是示出根据本发明第二实施例的子图提取方案(Scheme B)1300的流程图。
在图13中,子图提取方案1300的输入可以包括奇偶校验矩阵和未满足校验。子图提取方案1300的输出可以包括子图中的变量、解码的陪集和校验方程。
在所示示例中,子图提取方案1300可以包括针对根据BF解码器810的解码结果的未满足校验方程(节点)中的每一个的操作1310至1340。
在操作1310中,控制器100可以增加连接到未满足校验方程的每个变量节点的distance-1权重。
在操作1320中,控制器100可以找到连接到该校验方程的degree-a变量节点并将其添加到第一搜索列表。进一步地,控制器100可以找到包括第一搜索列表中的degree-a变量并且被满足的其他方程。此外,控制器100可以找到连接到这些满足方程的degree-b变量节点并将它们的distance-2权重增加设定值(例如,1)。
在操作1330中,控制器100可以找到连接到该校验方程的degree-b变量并将其添加到第二搜索列表。
在操作1340中,控制器100可以提取具有第一搜索列表中的degree-a变量节点和distance-2权重大于1的degree-b变量的子图。进一步地,控制器100可以添加出现在第二搜索列表中并且针对distance-2的权重至少为1的degree-b变量节点。
已经观察到,当应用该子图提取方案1300时,96.6%的错误模式使用跟随有BF解码器810的迷你MS解码器830被成功地解码。子图提取方案1300可以推广用于不同的度分布以及与未满足校验方程的不同距离。
如上所述,实施例提供了一种用增强解码器替换解码装置中的两个解码器之中的更高精度的解码器的方案,该增强解码器对整个二部图之中的子图进行操作。因此,实施例可以在保持低能耗的同时减少解码装置中的门计数和峰值功率。
尽管为了清楚和理解的目的已经详细地示出和描述了前述实施例,但是本发明不限于所提供的细节。如本领域技术人员根据前述公开内容将理解的,存在许多实施本发明的替代方式。因此,所公开的实施例是示例性的,而非限制性的。本发明旨在涵盖落入权利要求范围内的所有修改和替代。此外,可以对实施例进行组合,以形成另外的实施例。
Claims (16)
1.一种存储器系统,包括:
存储器装置,存储利用错误校正码编码的数据;以及
控制器,包括具有第一精度的第一解码器和具有比所述第一精度大的第二精度的第二解码器,
其中所述控制器:
控制所述第一解码器通过使用所述错误校正码的奇偶校验矩阵来对从所述存储器装置读取的数据进行解码;
当满足特定条件时,从所述奇偶校验矩阵的由多个变量节点和多个校验节点定义的整个二部图中提取一个或多个子图;以及
控制所述第二解码器使用所述奇偶校验矩阵的与所提取的子图相对应的子矩阵来对所述第一解码器的解码结果进行解码。
2.根据权利要求1所述的存储器系统,其中所述第一解码器包括位翻转解码器即BF解码器,所述第二解码器包括最小和解码器即MS解码器。
3.根据权利要求1所述的存储器系统,其中所述特定条件包括当沿着使用所述第一解码器的连续解码迭代的校验和小于阈值时。
4.根据权利要求1所述的存储器系统,其中所述特定条件包括当检测到所述第一解码器的振荡时。
5.根据权利要求1所述的存储器系统,其中所述子图中的每一个是基于未满足校验节点和从满足校验节点的多个相邻节点之中选择的相邻节点来确定的,所选择的相邻节点与所述未满足校验节点具有设定距离。
6.根据权利要求5所述的存储器系统,其中所述子图中的每一个包括连接到所述未满足校验节点的第一组变量节点,以及连接到所述满足校验节点的、作为与所述第一组变量节点相距distance-1或diatance-2的相邻节点的第二组变量节点。
7.根据权利要求6所述的存储器系统,其中所述第一组变量节点包括与所述未满足校验节点具有degree-a分布的变量节点,并且所述第二组变量节点包括与所述未满足校验节点具有degree-b分布并且与所述第一组变量节点具有distance-2权重的变量节点。
8.根据权利要求1所述的存储器系统,其中当达到所述第一解码器的最大迭代次数时,所述控制器终止解码操作。
9.一种操作存储器系统的方法,所述存储器系统包括存储利用错误校正码编码的数据的存储器装置以及控制器,所述方法包括:
控制具有第一精度的第一解码器通过使用所述错误校正码的奇偶校验矩阵来对从所述存储器装置读取的数据进行解码;
当满足特定条件时,从所述奇偶校验矩阵的、由多个变量节点和多个校验节点定义的整个二部图中提取一个或多个子图;以及
控制具有比所述第一精度大的第二精度的第二解码器使用所述奇偶校验矩阵的与所提取的子图相对应的子矩阵来对所述第一解码器的解码结果进行解码。
10.根据权利要求9所述的方法,其中所述第一解码器包括位翻转解码器即BF解码器,所述第二解码器包括最小和解码器即MS解码器。
11.根据权利要求9所述的方法,其中所述特定条件包括当沿着使用所述第一解码器的连续解码迭代的校验和小于阈值时。
12.根据权利要求9所述的方法,其中所述特定条件包括当检测到所述第一解码器的振荡时。
13.根据权利要求9所述的方法,其中所述子图中的每一个是基于未满足校验节点和从满足校验节点的多个相邻节点之中选择的相邻节点来确定的,所选择的相邻节点与所述未满足校验节点具有设定距离。
14.根据权利要求13所述的方法,其中所述子图中的每一个包括连接到所述未满足校验节点的第一组变量节点,以及连接到所述满足校验节点的、作为与所述第一组变量节点相距distance-1或distance-2的相邻节点的第二组变量节点。
15.根据权利要求14所述的方法,其中所述第一组变量节点包括与所述未满足校验节点具有degree-a分布的变量节点,并且所述第二组变量节点包括与所述未满足校验节点具有degree-b分布并且与所述第一组变量节点具有distance-2权重的变量节点。
16.根据权利要求9所述的方法,进一步包括:当达到所述第一解码器的最大迭代次数时,所述控制器终止解码操作。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/339,285 US11621727B2 (en) | 2021-06-04 | 2021-06-04 | Decoding systems and methods for local reinforcement |
US17/339,285 | 2021-06-04 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115440289A true CN115440289A (zh) | 2022-12-06 |
Family
ID=84272109
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111577052.1A Pending CN115440289A (zh) | 2021-06-04 | 2021-12-22 | 用于局部增强的解码系统和方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11621727B2 (zh) |
CN (1) | CN115440289A (zh) |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8132065B2 (en) | 2006-12-21 | 2012-03-06 | Industrial Technology Research Institute | Hybrid sphere decoding method and system |
KR100842680B1 (ko) * | 2007-01-08 | 2008-07-01 | 삼성전자주식회사 | 플래시 메모리 장치의 오류 정정 컨트롤러 및 그것을포함하는 메모리 시스템 |
US8464129B2 (en) | 2008-08-15 | 2013-06-11 | Lsi Corporation | ROM list-decoding of near codewords |
KR101321487B1 (ko) | 2009-04-21 | 2013-10-23 | 에이저 시스템즈 엘엘시 | 기입 검증을 사용한 코드들의 에러-플로어 완화 |
EP2737630A2 (en) | 2011-07-29 | 2014-06-04 | SanDisk Technologies Inc. | Checksum using sums of permutation sub-matrices |
US8645810B2 (en) | 2011-07-31 | 2014-02-04 | Sandisk Technologies Inc. | Fast detection of convergence or divergence in iterative decoding |
US9459956B2 (en) | 2013-07-19 | 2016-10-04 | Seagate Technology Llc | Data decoder with trapping set flip bit mapper |
US10700706B2 (en) | 2017-09-22 | 2020-06-30 | SK Hynix Inc. | Memory system with decoders and method of operating such memory system and decoders |
CN110275796B (zh) * | 2018-03-16 | 2023-08-08 | 爱思开海力士有限公司 | 具有混合解码方案的存储器系统及其操作方法 |
US10965319B2 (en) * | 2018-10-25 | 2021-03-30 | PetaIO Inc. | Bit flipping algorithm for decoding LDPC-encoded data |
KR102643457B1 (ko) * | 2018-11-19 | 2024-03-06 | 에스케이하이닉스 주식회사 | Ldpc 디코더, 반도체 메모리 시스템 및 그것의 동작 방법 |
-
2021
- 2021-06-04 US US17/339,285 patent/US11621727B2/en active Active
- 2021-12-22 CN CN202111577052.1A patent/CN115440289A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US11621727B2 (en) | 2023-04-04 |
US20220393703A1 (en) | 2022-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109616148B (zh) | 具有解码器的存储器系统、其操作方法和解码器 | |
US10997017B2 (en) | Neighbor assisted correction error recovery for memory system and method thereof | |
CN108073467B (zh) | 具有硬信道信息的位翻转ldpc解码算法 | |
CN109428606B (zh) | 具有ldpc解码器的存储器系统及其操作方法 | |
US11070234B2 (en) | Memory system with hybrid decoding scheme with information exchange and method of operating such memory system | |
US10846172B2 (en) | Encoding method and system for memory device including QLC cells | |
CN111540393B (zh) | 用于基于字线分组的读取操作的存储器系统和方法 | |
US10938419B2 (en) | Encoding method and system for memory device including QLC cells | |
CN113936715A (zh) | 使用域变换的读取阈值优化系统和方法 | |
US11036579B2 (en) | Decoder for memory system and method thereof | |
US11271589B2 (en) | Memory system with error-reduction scheme for decoding and method of operating such memory system | |
CN110277999B (zh) | Ldpc解码装置、包括其的存储器系统及其方法 | |
US10991409B2 (en) | Encoder for memory system and method thereof | |
US11265021B2 (en) | Apparatus and method for error recovery in memory system | |
US11356123B2 (en) | Memory system with low-complexity decoding and method of operating such memory system | |
US11115062B2 (en) | Memory system with adaptive threshold decoding and method of operating such memory system | |
US11074128B2 (en) | Memory system with hybrid iterative decoding capability and method of operating such memory system | |
US11621727B2 (en) | Decoding systems and methods for local reinforcement | |
US11949430B2 (en) | Parallel system to calculate low density parity check | |
US11973515B2 (en) | Hybrid precision MS decoder to reduce gate-count for long codes | |
CN110047554B (zh) | 具有超级芯片删除恢复的存储器系统及其操作方法 | |
US20240086101A1 (en) | System and method for history-based non-parametric channel information prediciton using a deep neural network | |
US11770133B1 (en) | Exact ber reporting in the presence of CRC termination |
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 |