CN110277999B - Ldpc解码装置、包括其的存储器系统及其方法 - Google Patents
Ldpc解码装置、包括其的存储器系统及其方法 Download PDFInfo
- Publication number
- CN110277999B CN110277999B CN201910204786.1A CN201910204786A CN110277999B CN 110277999 B CN110277999 B CN 110277999B CN 201910204786 A CN201910204786 A CN 201910204786A CN 110277999 B CN110277999 B CN 110277999B
- Authority
- CN
- China
- Prior art keywords
- data
- decision
- memory
- decoding
- 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.)
- Active
Links
Images
Classifications
-
- 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
- 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/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1012—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
-
- 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/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/1131—Scheduling of bit node or check node processing
- H03M13/1137—Partly parallel processing, i.e. sub-blocks or sub-groups of nodes being processed in parallel
-
- 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/1148—Structural properties of the code parity-check or generator matrix
- H03M13/1154—Low-density parity-check convolutional codes [LDPC-CC]
-
- 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
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0057—Block codes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mathematical Physics (AREA)
- Error Detection And Correction (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明涉及一种低密度奇偶校验(LDPC)解码装置,该LDPC解码装置包括:数据生成器,生成具有第一精确度的信息;数据转换器,将信息转换为具有第二精确度的消息,第二精确度大于第一精确度;以及解码处理器,通过使用消息来执行低密度奇偶校验(LDPC)解码以生成解码数据。
Description
相关申请的交叉引用
本申请要求于2018年3月16日提交的申请号为62/643,967的美国临时申请的权益,其全部内容通过引用并入本文。
技术领域
本公开的实施例涉及一种用于存储器系统的解码方案。
背景技术
计算机环境范例已经转变成可以被随时随地使用的普适计算系统。因此,诸如移动电话、数码相机以及笔记本计算机的便携式电子装置的使用已经迅速增加。通常,这些便携式电子装置使用具有存储器装置的存储器系统,即数据存储装置。数据存储装置被用作便携式电子装置的主存储器装置或辅助存储器装置。
由于使用存储器装置的数据存储装置不具有移动部件,因此它们提供优良的稳定性、耐用性、高信息访问速度以及低功耗。具有这些优点的数据存储装置的示例包括通用串行总线(USB)存储器装置、具有各种接口的存储卡和固态硬盘(SSD)。可在存储器系统中使用各种编码和解码方案。
发明内容
各种实施例涉及一种用于存储器系统的低密度奇偶校验(LDPC)解码装置及其操作方法。
根据实施例,一种解码装置包括:数据生成器,生成具有第一精确度的信息;数据转换器,将该信息转换为具有第二精确度的消息,第二精确度大于第一精确度;以及解码处理器,通过使用该消息来执行低密度奇偶校验(LDPC)解码以生成解码数据。
根据实施例,一种存储器系统包括存储器装置和用于控制存储器装置以执行读取操作的存储器控制器。该存储器控制器包括解码装置,该解码装置包括:数据生成器,接收从存储器装置读取的数据并且生成读取数据的软判决数据,该软判决数据具有第一精确度;数据转换器,将该软判决数据转换为具有第二精确度的消息,第二精确度大于第一精确度;以及解码处理器,通过使用该消息来执行低密度奇偶校验(LDPC)解码以生成解码数据。
根据实施例,一种用于操作存储器系统的方法,该存储器系统包括存储器装置和适于控制存储器装置以执行读取操作的存储器控制器。该方法包括接收从存储器装置读取的数据;生成读取数据的软判决数据,该软判决数据具有第一精确度;将该软判决数据转换为具有第二精确度的消息,第二精确度大于第一精确度;并且通过使用该消息来执行低密度奇偶校验(LDPC)解码以生成解码数据。
附图说明
图1A是示出根据本发明的实施例的数据处理系统的框图。
图1B是示出根据本发明的实施例的存储器系统的框图。
图2是示出根据本发明的实施例的存储器系统的框图。
图3是示出根据本发明的实施例的存储器装置的存储块的电路图。
图4是示出存储器装置的单元的状态的示图。
图5是示出根据本发明的实施例的存储器系统的示图。
图6是示出典型的低密度奇偶校验(LDPC)解码过程的流程图。
图7A是示出由Tanner图表示的低密度奇偶校验(LDPC)码的示图。
图7B是示出低密度奇偶校验(LDPC)码的结构的示图。
图7C是示出根据低密度奇偶校验(LDPC)解码的校验子检查过程的示图。
图8是示出根据本发明的实施例的低密度奇偶校验(LDPC)解码装置的示图。
图9是示出根据本发明的实施例的低密度奇偶校验(LDPC)解码装置的示例的示图。
图10是示出根据本发明的实施例的低密度奇偶校验(LDPC)解码装置的数据感测操作的示图。
图11A和11B是示出根据本发明的实施例的通过低密度奇偶校验(LDPC)解码装置生成软判决数据的操作的示图。
图12是示出根据本发明的实施例的低密度奇偶校验(LDPC)解码处理器的示图。
图13是示出根据本发明的实施例的低密度奇偶校验(LDPC)解码方法的流程图。
图14是示出根据本发明的实施例的由低密度奇偶校验(LDPC)解码装置执行的过程的示图。
图15是示出根据本发明的实施例的低密度奇偶校验(LDPC)解码装置的模拟的曲线图。
具体实施方式
下面参照附图更详细地描述各个实施例。然而,本发明可以不同的形式实施,因此不应该被解释为限于本文阐述的实施例。相反,提供这些实施例是为了使本公开彻底且完整,并且向本领域技术人员充分传达本发明的范围。此外,本文对“实施例”,“另一实施例”等的参考不一定仅针对一个实施例,并且对任何这样的短语的不同参考不一定针对相同的实施例。在整个公开中,相同的附图标记在本发明的附图和实施例中指示相同的部分。
本发明可以包括下列的多种方式来实施,包括:进程;设备;系统;在计算机可读存储介质上实施的计算机程序产品;和/或处理器,诸如适合于执行存储在与处理器联接的存储器上和/或由与处理器联接的存储器提供的指令的处理器。在本说明书中,这些实施方式或本发明可以采用的任何其它形式可以被称为技术方案。通常,可以在本发明的范围内改变所公开的进程的步骤的顺序。除非另有说明,否则被描述为适合于执行任务的、诸如处理器或存储器的部件可以被实施为临时配置为在给定时间执行该任务的通用部件或者被制造为执行该任务的特定部件。如本文所使用的,术语“处理器”指适合于处理诸如计算机程序指令的数据的一个或多个装置、电路和/或处理内核。
以下与示出本发明的方面的附图一起提供本发明的实施例的详细描述。结合这些实施例描述了本发明,但是本发明不限于任何实施例。本发明的范围仅由权利要求书限定,并且本发明包括许多替换、修改和等同方案。在以下描述中阐述了许多具体细节,以便提供对本发明的透彻理解。提供这些细节是用于示例的目的;本发明可以在没有这些具体细节中的一些或全部的情况下根据权利要求书来实践。为清楚起见,没有详细描述与本发明相关的技术领域中已知的技术材料,以免不必要地使本发明模糊。
图1A是示出根据本发明的实施例的数据处理系统2的框图。
参照图1A,数据处理系统2可以包括主机装置5和存储器系统10。存储器系统10可以从主机装置5接收请求并且响应于所接收的请求而操作。例如,存储器系统10可以存储待由主机装置5访问的数据。
主机装置5可利用各种电子装置中的任何一种来实施。在各种实施例中,主机装置5可以包括诸如以下的电子装置:台式计算机、工作站、三维(3D)电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器和/或数字视频记录器和数字视频播放器。在各种实施例中,主机装置5可以包括诸如移动电话、智能电话、电子书、MP3播放器、便携式多媒体播放器(PMP)和/或便携式游戏机的便携式电子装置。
存储器系统10可以利用诸如固态硬盘(SSD)和存储卡的各种存储装置中的任何一种来实施。在各种实施例中,存储器系统10可以被设置为诸如下列的电子装置中的各个部件中的一个:计算机、超移动PC(UMPC)、工作站、上网本计算机、个人数字助理(PDA)、便携式计算机、网络平板PC、无线电话、移动电话、智能电话、电子书阅读器、便携式多媒体播放器(PMP)、便携式游戏装置、导航装置、黑盒、数码相机、数字多媒体广播(DMB)播放器、三维电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、数字视频记录器、数字视频播放器、数据中心的存储装置、能够在无线环境中接收和发送信息的装置、射频识别(RFID)装置、家庭网络的各种电子装置之一、计算机网络的各种电子装置之一、远程信息处理网络的电子装置之一或计算系统的各种部件之一。
图1B是示出根据本发明的实施例的存储器系统10的框图。
参照图1B,存储器系统10可以包括存储器控制器100和半导体存储器装置200。
存储器控制器100可以控制半导体存储器装置200的全部操作。
半导体存储器装置200可以在存储器控制器100的控制下执行一个或多个擦除操作、编程操作和读取操作。半导体存储器装置200可以通过输入/输出线接收命令CMD、地址ADDR和数据DATA。半导体存储器装置200可以通过电力线接收电力PWR,并且通过控制线接收控制信号CTRL。根据存储器系统10的设计和配置,控制信号CTRL可以包括命令锁存使能信号、地址锁存使能信号、芯片使能信号、写入使能信号、读取使能信号以及其它操作信号。
存储器控制器100和半导体存储器装置200可以集成在诸如固态硬盘(SSD)的单个半导体装置中。SSD可以包括用于在其中存储数据的存储装置。当存储器系统10用于SSD时,联接至存储器系统10的主机(例如,图1A中的主机装置5)的操作速度可以得到显著提高。
存储器控制器100和半导体存储器装置200可以集成在诸如存储卡的单个半导体装置中。例如,存储器控制器100和半导体存储器装置200可以被集成为配置:个人计算机存储卡国际协会(PCMCIA)的个人计算机(PC)卡、标准闪存(CF)卡、智能媒体(SM)卡、记忆棒、多媒体卡(MMC)、减小尺寸的多媒体卡(RS-MMC)、微型版本的MMC(微型MMC)、安全数字(SD)卡、迷你安全数字(迷你SD)卡、微型安全数字(微型SD)卡、高容量安全数字(SDHC)卡和/或通用闪存(UFS)。
图2是示出根据本发明的实施例的存储器系统的框图。例如,图2的存储器系统可以描绘图1A和图1B中所示的存储器系统10。
参照图2,存储器系统10可以包括存储器控制器100和半导体存储器装置200。存储器系统10可以响应于来自主机装置(例如,图1A的主机装置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的一般操作,并且响应于来自主机装置的写入请求或读取请求,控制部件120可以控制半导体存储器装置200的写入操作或读取操作。控制部件120可以驱动被称为闪速存储器转换层(FTL)的固件以控制存储器系统10的一般操作。例如,FTL可以执行诸如逻辑到物理(L2P)映射、损耗均衡、垃圾收集和/或坏块处置的操作。L2P映射被称为逻辑块寻址(LBA)。
在读取操作期间,ECC部件130可以检测并校正从半导体存储器装置200读取的数据中的错误。当错误位的数量大于或等于可校正错误位的阈值数量时,ECC部件130可以不校正错误位,而是可以输出指示校正错误位失败的错误校正失败信号。
在各种实施例中,ECC部件130可以基于诸如下列的编码调制来执行错误校正操作:低密度奇偶校验(LDPC)码、博斯-查德胡里-霍昆格姆(BCH)码、turbo码、turbo乘积码(TPC)、里德-所罗门(Reed-Solomon,RS)码、卷积码、递归系统码(RSC)、网格编码调制(TCM)或分组编码调制(BCM)。然而,错误校正不限于这些技术。因此,ECC部件130可以包括用于合适错误校正操作的任何和所有电路、系统或装置。
主机接口140可以通过诸如下列的各种接口协议中的一个或多个与主机装置通信:通用串行总线(USB)、多媒体卡(MMC)、高速外围组件互连(PCI-e或PCI)、小型计算机系统接口(SCSI)、串列SCSI(SAS)、串行高级技术附件(SATA)、并行高级技术附件(PATA)、增强型小型磁盘接口(ESDI)和电子集成驱动器(IDE)。
存储器接口150可以提供存储器控制器100和半导体存储器装置200之间的接口连接,以允许控制器100响应于来自主机装置的请求来控制半导体存储器装置200。存储器接口150可以在控制部件120的控制下生成用于半导体存储器装置200的控制信号并且处理数据。当半导体存储器装置200是诸如NAND闪速存储器的闪速存储器时,存储器接口150可以在控制部件120的控制下生成用于存储器的控制信号并且处理数据。
半导体存储器装置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可以响应于由控制电路220生成的页面缓冲器控制信号,利用正电压对位线BL预充电,在编程操作和读取操作中将数据传输至被选择的存储块并且从被选择的存储块接收数据,或者临时存储传输的数据。
列解码器260可以将数据传输至页面缓冲器250以及从页面缓冲器250接收数据,或者将数据传输至输入/输出电路270以及从输入/输出电路270接收数据。
输入/输出电路270可以将从外部装置(例如,图1B的存储器控制器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的多个页面缓冲器251。页面缓冲器251可以响应于页面缓冲器控制信号而操作。例如,在读取操作或验证操作期间,页面缓冲器251可以临时存储通过位线BL0至BLm-1接收的数据或者感测位线的电压或电流。
在一些实施例中,存储块211可以包括NAND型闪速存储器单元。然而,存储块211不限于这种单元类型,而是可以包括NOR型闪速存储器单元。存储器单元阵列210可以实现为其中组合两种或更多种类型的存储器单元的混合闪速存储器,或者其中控制器嵌入在存储器芯片内的1-NAND闪速存储器。
在一些实施例中,存储块211可以包括NAND型闪速存储器单元。然而,存储块211不限于这种单元类型,而是可以包括NOR型闪速存储器单元。存储器单元阵列210可以被实施为组合两种或更多种类型的存储器单元的混合闪速存储器,或者控制器被嵌入在存储器芯片内部的1-NAND闪速存储器。
图4是示出存储器装置的不同类型的单元的编程状态或电压电平的分布的示图。
参照图4,存储块的存储器单元中的每一个可以用存储1位数据的单层单元(SLC)、存储2位数据的多层单元(MLC)、存储3位数据的三层单元(TLC)或存储4位数据的四层单元(QLC)来实现。
SLC的存储器单元可以包括两个状态P0和P1。P0可以指示擦除状态,并且P1可以指示编程状态。由于SLC的存储器单元可以设置为两种不同状态中的一种,因此存储器单元中的每一个可以根据设置的编码方法来编程或存储一个位。MLC的存储器单元可以包括四个状态P0、P1、P2和P3。在这些状态之中,P0可以指示擦除状态,并且P1至P3可以指示编程状态。由于MLC的存储器单元可以设置为四种不同状态中的一种,因此存储器单元中的每一个可以根据设置的编码方法来编程或存储两个位。TLC的存储器单元可以包括八个状态P0至P7。在这些状态之中,P0可以指示擦除状态,并且P1至P7可以指示编程状态。由于TLC的存储器单元可以设置为八种不同状态中的一种,因此存储器单元中的每一个可以根据设置的编码方法来编程或存储三个位。QLC的存储器单元可以包括16个状态P0至P15。在这些状态之中,P0可以指示擦除状态,并且P1至P15可以指示编程状态。由于QLC的存储器单元可以设置为十六种不同状态中的一种,因此存储器单元中的每一个可以根据设置的编码方法来编程或存储四个位。
图5是说明根据本发明的实施例的存储器系统的示图。
参照图5,存储器系统可以包括控制器100和存储器装置200。存储器装置200可以包括具有诸如以下的存储器单元的NAND型闪速存储器装置:单层单元(SLC)、多层单元(MLC)、三层单元(TLC)或四层单元(QLC)。在各种实施例中,存储器装置200可包括具有QLC存储器单元(即,QLC)的NAND型闪速存储器装置。
控制器100可以从主机接收命令,并向存储器装置200提供所接收的命令。例如,控制器100接收写入命令和与写入命令相对应的写入数据,并控制存储器装置200对写入数据执行编程操作。又例如,控制器100接收读取命令,并控制存储器装置200对与读取命令相对应的数据执行读取操作。控制器100将与读取命令相对应的读取数据传输至主机。
控制器100可以包括编码装置500A和解码装置500B。在编程操作期间,编码装置500A可以基于设置编码方案对写入数据执行编码操作。在读取操作期间,解码装置500B可以基于与解码编码方案相对应的设置解码方案对读取数据执行解码操作。下面将参照图6至图15描述解码方案。控制器100和存储器装置200可以执行图1B和图2中描述的操作。在实施例中,编码装置500A和解码装置500B可以实现在图2中所示的控制器100的ECC组件130中。如下所述,也可以采用其他合适的布置。通常,编码器500A和解码器500B可以通过硬件、软件、固件或其任何合适的组合来实现。
在各种实施例中,解码装置500B可以使用低密度奇偶校验(LDPC)码以用于在许多存储器系统中进行错误校正,许多存储器系统诸如具有用于存储的闪速存储器的固态硬盘(SSD)。
图6是示出典型的低密度奇偶校验(LDPC)解码过程的流程图。可由图5的解码装置500B来执行图6的典型LDPC解码过程,其中图5的解码装置500B可以使用和积算法或最小和(MS)算法。
参照图6,LDPC解码过程可包括硬判决解码步骤S610。另外,LDPC解码过程可以包括软判决解码步骤S630。可以基于读取操作的次数和软判决读取数据的精确度信息来重复执行软判决解码步骤S630。硬判决解码步骤S610和软判决解码步骤S630的目标数据可以被存储在图5的存储器装置200中。存储在存储器装置200中的数据可以是通过编码装置500A编码和生成的编码数据(或码字)。
硬判决解码步骤S610可以包括对从根据硬判决读取电压VHD而从存储器装置200(即,图2的存储块211的存储器单元)读取的、具有设定或预定长度的读取数据(或硬判决读取数据)进行硬判决LDPC解码。硬判决解码步骤S610可以包括步骤S611、S613和S615。
软判决解码步骤630可以包括当硬判决解码步骤610的硬判决LDPC解码最终失败(S615,否)时,通过根据硬判决读取电压VHD周围的软判决读取电压VSD形成软判决读取数据,来对读取数据(或软判决读取数据)进行软判决LDPC解码。可以由图2的电压生成电路230来生成软判决读取电压VSD和硬判决读取电压VHD。
在步骤S611,可以根据硬判决读取电压VHD从存储器装置200读取用于硬判决的数据(即,硬判决读取数据)。存储器控制器100可以向存储器装置200提供读取命令和地址。存储器装置200可以响应于读取命令和地址,根据硬判决读取电压VHD而从存储器装置200读取读取数据。可以将读取数据提供至存储器控制器100。
在步骤S613,可以执行硬判决解码(例如,LDPC解码)。解码装置500B可以使用LDPC码对读取数据执行硬判决LDPC解码,以生成硬判决数据。
在步骤615,可以确定硬判决LDPC解码是成功还是失败。换言之,在步骤S615,可以确定是否已经校正了硬判决数据的错误。例如,解码装置500B可以通过使用硬判决数据和奇偶校验矩阵的乘积结果来确定是否已经校正了硬判决数据的错误。当乘积结果是零向量(“0”)时,可以确定硬判决数据已被校正。另一方面,当乘积结果不是零向量(“0”)时,可以确定硬判决数据尚未被校正。
当确定硬判决数据被校正时(S615,是),可以在步骤S620确定根据硬判决读取电压VHD的读取操作成功并且可以结束存储器控制器100的操作。硬判决数据可以是通过硬判决LDPC解码的错误校正数据,并且可以提供至外部装置(例如,图1A的主机5)或者在存储器控制器100中使用。
当确定硬判决数据未被校正时(S615,否),可以执行软判决解码步骤S630。软判决解码步骤S630可以包括步骤S631、S633和S635。
在步骤S631,可以根据软判决读取电压VSD从存储器装置200读取用于软判决的数据(即,软判决读取数据)。例如,可以根据软判决读取电压VSD对根据硬判决读取电压VHD而被执行了硬判决解码步骤S610的存储器单元来执行附加读取操作。软判决读取电压VSD可以与硬判决读取电压VHD不同。例如,如图11A和11B所示,软判决读取电压VSD可以大于或小于硬判决读取电压VHD。
在步骤S633中,可以执行软判决解码(例如,LDPC解码)。可以基于软判决读取数据来执行软判决LDPC解码,该软判决读取数据包括被执行了硬判决LDPC解码的硬判决数据和根据软判决读取电压VSD而从存储器单元读取的数据。硬判决读取电压VHD和软判决读取电压VSD可以不同。
例如,存储器装置200的存储器单元MC0至MCn-1中的每一个可以属于包括7个编程状态P1至P7和1个擦除状态E的阈值电压分布中的一个。
硬判决读取电压VHD可以具有多个状态(例如,E和P1至P7)中的2个相邻状态State(i)和State(i+1)之间的电压,如图10所示。每个软判决读取电压VSD可以具有多个状态中的2个相邻状态之间的电压,并且与硬判决读取电压VHD不同。
根据硬判决读取电压VHD从存储器单元MC0至MCn-1读取的硬判决读取数据和根据软判决读取电压VSD从存储器单元MC0至MCn-1读取的软判决读取数据可以具有不同的值。当执行了根据软判决读取电压VSD的附加读取操作以及根据硬判决读取电压VHD的读取操作时,可以获得关于存储器单元MC0至MCn-1的阈值电压或提供与硬判决数据相关联的确定性或可能性的对数似然比(LLR)的附加信息。
当获得附加信息时,对数似然比(LLR),即存储器单元MC0至MCn-1的数据是否属于第一状态(即,“1”)或属于第二状态(即,“0”)的可能性可增加。在步骤S633,解码装置500B可以基于根据硬判决读取电压VHD和软判决读取电压VSD而读取的软判决读取数据来执行软判决LDPC解码以生成软判决数据。
在步骤S635,可以确定软判决LDPC解码是成功还是失败。换言之,在步骤S635,可以确定是否已经校正了软判决数据的错误。例如,解码装置500B可以通过使用软判决数据和奇偶校验矩阵的乘积结果来确定是否已经校正了软判决数据的错误。当乘积结果是零向量(“0”)时,可以确定软判决数据已被校正。当乘积结果不是零向量(“0”)时,可以确定软判决数据未被校正。
当确定软判决数据被校正时(S635,是),在步骤S620,可以确定在步骤S631根据软判决读取电压VSD的读取操作成功并且存储器控制器100的操作可以结束。现在,软判决数据可以是错误校正数据,并且可以提供至外部装置(例如,图1A的主机5)或者在存储器控制器100中使用。
当确定软判决数据未被校正时(S635,否),在步骤S640,可以确定存储器控制器100的读取操作最终失败并且可以结束存储器控制器100的操作。
图7A是示出由Tanner图表示的低密度奇偶校验(LDPC)码的示图。
参照图7A,LDPC码可以由Tanner图表示,该Tanner图包括校验节点710、变量节点720和将校验节点710连接到变量节点720的边缘715。在校验节点处理之后,从校验节点710中的一个传递到变量节点720中的一个的值变为校验节点消息715A。在变量节点处理之后,从变量节点720中的一个传递到校验节点710中的一个的值变为变量节点消息715B。
图7B是示出低密度奇偶校验(LDPC)码的结构的示图。
参照图7B,LDPC码的Tanner图可包括多个校验节点710(例如,5个校验节点C1至C5)、多个变量节点720(例如,10个变量节点V1至V10)和多个边缘715。校验节点710可以表示LDPC码的奇偶校验方程。变量节点720可以表示代码符号。边缘715可以表示校验节点710和变量节点720之间的关系。边缘715可将校验节点710中的每一个连接到对应于由校验节点710表示的奇偶校验方程中包括的代码符号的的变量节点720中的每一个。作为示例,图7B示出了联接到每个校验节点710的变量节点720的数量固定为4,并且联接到每个变量节点720的校验节点710的数量固定为2的规则LDPC码。变量节点720中的每一个的初始值可以是硬判决读取数据和软判决读取数据中的一个。虽然图7B示出了表示5个校验节点和10个变量节点的规则LDPC码,但是本发明的实施例不限于规则LDPC码。
图7C是示出根据低密度奇偶校验(LDPC)解码的校验子检查过程的示图。
参照图7C,对应于图7B的Tanner图的奇偶校验矩阵H可用于校验子检查过程。奇偶校验矩阵H可以对应于奇偶校验方程的图形表达。奇偶校验矩阵H的每列和每行具有相同数量的逻辑高值(即,“1”)。此处,奇偶校验矩阵H的每列具有两个逻辑高值(“1”),并且每行具有四个逻辑高值(“1”)。也就是说,每列中的1的数量对应于联接到每个变量节点720的校验节点710的数量,其中联接到每个变量节点720的校验节点710的数量是2,并且每行中的1的数量对应于联接到每个校验节点710的变量节点720的数量,其中联接到每个校验节点710的变量节点720的数量是4。
可以通过在Tanner图中的变量节点720和校验节点710之间交换在每个节点中生成和更新的消息的迭代过程来执行LDPC解码。在这种情况下,每个节点基于和积算法或类似的次优算法,诸如最小和(MS)算法来更新消息。
例如,对硬判决读取数据的LDPC解码可以包括多次迭代,每个迭代包括校验节点的更新、变量节点的更新以及在变量节点的初始更新之后的校验子检查。在单次迭代之后,当校验子检查的结果满足可被预先确定的条件时,可以结束LDPC解码。当校验子检查的结果不满足该条件时,可以执行另外的单次迭代。附加的迭代可以包括校验节点的更新、变量节点的更新和校验子检查。迭代次数可以限于最大迭代次数。当在一定迭代次数,例如最大迭代计数内,校验子检查的结果仍不满足该条件时,可以确定LDPC解码已经失败。
在图7C中,校验子检查过程可以包括识别奇偶校验矩阵H和向量“v”的乘积结果“Hv t”是否满足条件的过程。可以通过变量节点的更新来获得T向量“v”。当乘积结果“Hv t”变为零向量时,可以评估乘积结果“Hv t”满足条件。
作为示例,图7C示出了乘积结果“Hv t”是非零向量“01000”,因此校验子检查不满足条件,这表示将执行另一次迭代。在为乘积结果“Hv t”的非零向量“01000”中,非零向量元素的数量为1。单次迭代中的不满足对乘积结果“Hv t”的校验子检查的零向量条件的元素的数量可以是不满足校验子检查(USC)的一部分。
通常,诸如MS解码算法的LDPC解码具有更高的校正能力。然而,读取操作的延迟时间可能随着读取操作(例如,NAND感测操作)的数量而线性地增加。而且,所需的感测操作的数量可以随着信息的位数量而呈指数增加。因此,可期望提高LDPC解码性能以限制NAND感测操作的数量。
图8是示出根据本发明的实施例的低密度奇偶校验(LDPC)解码装置500B的示图。
参照图8,LDPC解码装置500B可以包括数据生成器810、数据转换器820和解码处理器830。
数据生成器810可以从存储器装置200(例如,NAND闪速存储器)接收读取数据。数据生成器810可以生成与读取数据相关联的数据。例如,读取数据包括参照图6描述的基于硬判决读取电压VHD的用于硬判决的数据(即,硬判决读取数据),或者基于软判决读取电压VSD的用于软判决的数据(即,软判决读取数据)。与读取数据相关联的数据可以指与读取数据的判决相关联的确定性或可能性。
数据转换器820可以从数据生成器810接收具有第一精确度的数据。数据转换器820可以将具有第一精确度的数据转换为具有第二精确度的消息。第二精确度可以大于第一精确度。例如,该消息包括作为符号的位以用于指示其值的判决,以及表示与该判决相关联的确定性的量值的剩余位。在各种实施例中,数据转换器820可以包括用于存储与数据相对应的消息的映射表。可选地,数据转换器820可以包括用于线性或非线性转换函数的分量来替代映射表,以简化硬件实施。
解码处理器830可以从数据转换器820接收消息。解码处理器830可以对消息执行低密度奇偶校验(LDPC)解码以生成解码数据。
图9是示出根据本发明的实施例的低密度奇偶校验(LDPC)解码装置500B的示例的示图。
参照图9,LDPC解码装置500B可以包括软判决数据生成器810A、映射表820A和解码处理器830。软判决数据生成器810A和映射表820A可以分别与数据生成器810和数据转换器820实现或者被分别实现在数据生成器810和数据转换器820中。
软判决数据生成器810A可以从存储器装置200(例如,NAND闪速存储器)接收读取数据。读取数据可以包括由图5的编码装置500A生成的并且被存储在存储器装置200中的码字或编码数据。读取数据可以包括参照图6描述的基于硬判决读取电压VHD的硬判决读取数据,或者基于软判决读取电压VSD的软判决读取数据。
图10是示出根据本发明的实施例的低密度奇偶校验(LDPC)解码装置500B的数据感测操作的示图。
参照图10,响应于硬判决读取电压VHD,可以感测存储器装置200的选择单元。然后,可以从存储器装置200读取用于硬判决的数据(即,硬判决读取数据)1010。
当对硬判决读取数据1010的LDPC解码失败时,可以生成软判决读取电压VSD1和VSD2并且将软判决读取电压VSD1和VSD2提供至存储器装置200的选择单元,并且可以再次感测该单元。换言之,可以基于硬判决读取电压VHD和软判决读取电压VSD1和VSD2来感测选择存储器单元三次。例如,VHD可以大于VSD1一定的电压差值并且小于VSD2相同的电压差值。然后,作为执行三次感测操作(或执行三个感测操作)的结果,可以从存储器装置200读取用于软判决的数据(即,软判决读取数据)1020。
当对硬判决读取数据1010和软判决读取数据1020的LDPC解码失败时,可以生成软判决读取电压VSD3至VSD6并且将软判决读取电压VSD3至VSD6提供给存储器装置200的选择单元,并且可以感测该单元。换言之,可以基于硬判决读取电压VHD和软判决读取电压VSD1至VSD6来感测选择存储器单元七次。例如,软判决读取电压VSD3小于软判决读取电压VSD1一定的电压差值,软判决读取电压VSD4大于软判决读取电压VSD1相同的差值,软判决读取电压VSD5小于软判决读取电压VSD2相同的差值,并且软判决读取电压VSD6大于软判决读取电压VSD2相同的差值。然后,作为执行七次感测操作(或执行七个感测操作)的结果,可以从存储器装置200读取用于软判决的数据(即,软判决读取数据)1030。
图11A和11B是示出根据本发明的实施例的通过低密度奇偶校验(LDPC)解码装置生成软判决数据的操作的示图。图11A示出了2位软判决解码操作,图11B示出了3位软判决解码操作。
参照图11A,在硬判决解码操作期间(例如,图6的S610),当硬判决读取电压VHD被施加到存储器装置200的存储器单元时,根据该单元的接通或断开状态,硬判决数据2-1可以具有值“1”和“0”中的一个。
在2位软判决解码操作期间(例如,图6的S630),在软判决读取电压VSD1和VSD2被施加到存储器单元的情况下,可通过软判决读取操作而生成软判决数据,即对数似然比(LLR)。
在2位软判决读取操作期间,当第一软判决读取电压VSD1被施加到存储器单元时,根据该存储器单元的状态,第一软判决数据2-2可以是“1000”。以类似的方式,当第二软判决读取电压VSD2被施加到存储器单元时,根据该存储器单元的状态,第二软判决数据2-3可以是“1110”。
例如,解码装置500B可以通过对第一软判决数据2-2和第二软判决数据2-3的特定操作(例如,XNOR操作)来生成软判决数据2-4(或LLR)。软判决数据2-4可以指示硬判决数据2-1的可靠性。
例如,软判决数据2-4中的值“1”可以指示硬判决数据2-1中的对应值是正确的“强”或“高”可能性。另一方面,软判决数据2-4中的值“0”可以指示硬判决数据2-1中的对应值是正确的“弱”或“低”可能性。
参照图11B,在硬判决解码操作期间(例如,图6的S610),当硬判决读取电压VHD被施加到存储器装置200中的存储器单元时,根据该存储器单元的接通或断开状态,硬判决数据3-1可具有值“1”和“0”中的一个。
在3位软判决解码操作(例如,图6的S630)期间,在软判决读取电压VSD1至VSD6被施加至存储器单元的情况下,可通过软判决读取操作而生成软判决数据(或LLR)。
在3位软判决读取操作期间,当第一软判决读取电压VSD1和第二软判决读取电压VSD2被施加到存储器单元时,可根据存储器单元的状态生成第一软判决读取值和第二软判决读取值。解码装置500B可以如图11A所示,通过对第一软判决数据2-2和第二软判决数据2-3进行特定操作(例如,XNOR操作)而生成第一软判决数据3-2(例如,“1001”)(或LLR)。也就是说,第一软判决数据3-2对应于图11A中的软判决数据2-4。
以类似的方式,在3位软判决读取操作期间,当第三软判决读取电压VSD3至第六软判决读取电压VSD6被施加至存储器单元时,可根据存储器单元的状态而生成第三软判决读取值至第六软判决读取值。解码装置500B可以生成第二软判决数据3-3(例如,“10101”)。第二软判决数据3-3可以针对第一软判决数据3-2的可能性信息进行加权或提供更精确的可能性信息。
例如,第二软判决数据3-3中的值“1”可以将第一软判决数据3-2中的对应的“强”可能性值修改为“非常强”或“非常高”,并且将第一软判决数据3-2中的对应的“弱”可能性值修改为“非常弱”或“非常低”。另一方面,第二软判决数据3-3中的值“0”保持对应的可能性值。
因此,第二软判决数据3-3对第一软判决数据3-2进行修改,并且在这样做时,可以提供硬判决数据3-1的可靠性的更准确指示。
返回参照图9,软判决数据生成器810A可以生成与读取数据相关联的数据。读取数据可以存储在缓冲存储器中。软判决数据生成器810A可以通过缓冲存储器接收来自存储器装置200的读取数据、处理读取数据并且为读取数据(或码字)的每个位分配适当的可靠性值。可靠性值可以指示解码装置500B对于给出的判决的确定程度。在一个示例中,可靠性值被称为软判决数据(或软数据,软信息)或对数似然比(LLR)。换言之,可靠性值可以是指示与读取数据的判决相关联的确定性或可能性的软判决数据。软判决数据可以具有(指示判决本身的结果)的符号并且具有表示判决的确定性程度的量值。例如,符号可以指示位值的判决(例如,硬判决)的结果(例如,正号对应于相应值为“0”的判决,并且负号对应于相应值为“1”的判决)。量值可以指示解码装置500B对于该判决的肯定或确定程度(例如,大的量值表示高可靠性或确定性,并且小的量值表示低的可靠性或确定性)。
映射表820A可以从软判决数据生成器810A接收具有第一精确度的软判决数据。映射表820A可以将软判决数据转换为具有第二精确度,即更高精确度的消息。在一个示例中,软判决数据包括提供2位精确度的3个位,并且消息包括提供3位精确度的4个位。在另一示例中,软判决数据包括用于2位精确度的3个位,并且消息包括用于4位精确度的5个位。在各种实施例中,可以通过模拟或分析来离线优化映射表。
类似于软判决数据,消息可以包括用于符号的位和用于量值的剩余位。换言之,该消息包括作为符号的位以用于指示其值的判决,以及作为量值的剩余位以用于指示与该判决相关联的确定性。
解码处理器830可以从映射表820A接收消息。解码处理器830可以对消息来执行低密度奇偶校验(LDPC)解码以生成解码数据(或码字)。
图12是示出根据本发明的实施例的低密度奇偶校验(LDPC)解码处理器830的示图。图12的LDPC解码器对应于图8和图9的解码处理器830。例如,可以在存储器系统中使用LDPC解码处理器830,并且从存储器装置(例如,图5的存储器装置200)读取包含N个单元的页面或段。
参照图12,LDPC解码处理器830可以包括变量节点更新器1210、校验节点更新器1220、码字更新器1230和校验子更新器1240。
变量节点更新器1210可以生成与从变量节点n发送到校验节点m相关联的消息(Qnm)(例如,图7A中所示的从变量节点到校验节点的变量节点消息715B)。校验节点更新器1220可以输出消息Rmn(例如,图7A中所示的从校验节点到变量节点的校验节点消息715A)。
在所示的示例性LDPC解码处理器830中,N个对数似然比(LLR)值的阵列或序列(即,L=[L1,...,LN])被输入到LDPC解码处理器830。每个LLR值是指示符号和量值的软判决数据或软信息。符号可以指示位值的硬判决的结果(例如,负号(-)指示判定为“1”并且正号(+)指示判定为“0”)。量值可以指示与该判决相关联的确定性或可能性(例如,较大的量值对应于相关判决的较多确定性)。
除了生成Qnm消息之外,变量节点更新器1210可以生成解码的LLR Qn,其中1≤n≤N。可以将解码的LLR Qn从变量节点更新器1210传递到码字更新器1230。
校验子更新器1240可以检查以查看是否已从码字中移除了所有错误。例如,如果对于奇偶校验矩阵H(例如,图7C的矩阵),则校验子更新器1240确定解码成功并且已从码字中移除了所有错误。如果这样,则LDPC解码处理器830停止解码并且输出 作为解码器输出。
在一些实施例中,如果则不输出经解码的码字(即,),并且执行另一解码迭代,直到达到可被预先定义的最大迭代次数。换言之,变量节点更新器1210计算新消息Qnm和新值Qn,校验节点更新器1220计算新消息Rmn,并且码字更新器1230计算新码字并且检查新码字和奇偶校验矩阵的乘积是否为0。
图13是示出根据本发明的实施例的低密度奇偶校验(LDPC)解码方法1300的流程图。可以由图8和图9的LDPC解码装置500B来执行LDPC解码方法1300。
参照图13,LDPC解码方法1300可以包括步骤1310、1320、1330和1340。在步骤1310中,LDPC解码装置500B可以接收从存储器装置200读取的数据。在步骤1320中,LDPC解码装置500B可以针对读取数据生成第一精确度的软判决数据。在步骤1330中,LDPC解码装置500B可以将软判决数据转换为具有大于第一精确度的第二精确度的消息。在步骤1340中,LDPC解码装置500B可以使用该消息执行LDPC解码以生成解码数据。
在各种实施例中,软判决数据指示与读取数据的判决相关联的确定性或可能性。
在各种实施例中,转换步骤1330包括使用映射表来将软判决数据转换为消息,该映射表存储与软判决数据相对应的消息。
在各种实施例中,软判决数据包括3位码字,并且消息包括4位码字。
在各种实施例中,消息包括用于指示其值的判决的符号以及用于指示与该判决相关联的确定性的量值。
如上所述,根据实施例的LDPC解码方案使用比由NAND感测操作生成的数据(即,软判决数据或信息)更高精确度的消息。LDPC解码装置基于映射表将输入的软信息映射到更高精确度的表示。
换言之,LDPC解码方案使用多个NAND感测操作来生成较低精确度的软信息,并且使用迭代LDPC解码器,例如MS解码器来生成具有较高精确度的内部消息。解码器将使用多个NAND感测操作而获得的码字的每个位的软信息作为输入,并且使用映射表将信息的每个值映射到更高的精确度值。因此,该LDPC解码方案可以通过限制NAND感测操作的数量而提高LDPC解码性能。
图14是示出由根据本发明的实施例的例如图8和图9的LDPC解码装置500B的低密度奇偶校验(LDPC)解码装置执行的过程1400的示图。
参照图14,假设可以执行7次NAND感测操作并且生成3位软判决数据(或信息)。进一步假设解码装置生成具有更高精确度(例如,4位)的内部消息。解码过程1400包括通过NAND感测操作生成3位软信息(1410)。解码过程1400使用可以被预先定义的映射表来将较低精确度的软信息映射或转换为较高精确度的内部消息(1420)。针对LDPC解码过程的所有迭代,将该转换的消息替换LLR(1430)。
表1和表2示出了映射表的示例,该映射表将任何码位的2位软信息映射到3位内部消息。注意的是,“b”仅表示二进制并且“d”仅表示十进制。软信息和内部消息可以具有符号(指示判决本身的结果)并且具有表示该判决的确定性程度的量值。例如,正号对应于相应值为“0”的判决,负号对应于相应值为“1”的判决。量值可以指示解码装置500B对于该判决的确定程度或肯定程度。作为输入的软信息的量值范围为0至3(即,d0至d3)。作为输出的内部消息的量值范围为0至7(即,d0至d7)。注意的是,并非在输出列中使用所有值。换言之,一些值(即,表1中的d1、d3、d5和d6或表2中的d2、d4、d5和d7)被包括在内部消息的输出中。虽然表1和表2示出了将任意码位的2位软信息映射到3位内部消息的映射表,但是可以根据相同的原理来实现将任意码位的3位软信息映射到4位内部消息或5位内部消息的映射表。
表1:
表2:
在各种实施例中,可以通过使用离线模拟以确定导致最小码字失败率(CFR)或最低平均迭代或任何其他合适度量的值来获得映射表。可选地,映射表可以被更简单的线性或非线性函数代替,以简化硬件实施。
图15是示出根据本发明的实施例的低密度奇偶校验(LDPC)解码装置的模拟的曲线图。
作为示例,图15示出了针对各种情况的LDPC解码装置的码字失败率(CFR)与原始(raw)位错误率,一些情况利用了映射表而一些情况没有。在所有情况下,软信息的精确度均为3位。解码装置的内部消息的精确度从3位至5位变化。圆形标记表示根据实施例的LDPC解码方案,而方形标记表示当在解码装置中按原样使用软信息时的CFR。
从图15中的曲线图可以看到当使用了上面的映射表表1和表2时,改善了CFR。另一方面,在软信息未使用映射表转换的情况下,即使内部消息的精确度从3增加到4或5时,CFR也没有被改善。
如上所述,根据实施例的解码装置使用了从与来自存储器装置的读取数据相对应的较低精确度的软判决数据转换的更高精确度的软判决数据,因此可通过限制NAND感测操作的次数来提高解码性能。
尽管为了清楚理解的目的已经在一些细节上描述了前述实施例,但是本发明不限于所提供的细节。存在许多实现本发明的替代方式。所公开的实施例是说明性的而非限制性的。
Claims (18)
1.一种解码装置,包括:
数据生成器,生成具有第一精确度的信息;
数据转换器,将所述信息转换为具有第二精确度的消息,所述第二精确度大于所述第一精确度;以及
解码处理器,通过使用所述消息来执行低密度奇偶校验解码,即LDPC解码,以生成解码数据。
2.根据权利要求1所述的解码装置,其中所述数据生成器从存储器装置接收读取数据,并且生成指示与所述读取数据的判决相关联的确定性的信息。
3.根据权利要求1所述的解码装置,其中所述数据转换器包括映射表,所述映射表存储与所述信息相对应的所述消息。
4.根据权利要求1所述的解码装置,其中所述信息包括3位码字。
5.根据权利要求4所述的解码装置,其中所述消息包括4位码字。
6.根据权利要求5所述的解码装置,其中所述消息具有指示位的值的判决的符号以及指示与所述判决相关联的确定性的量值。
7.一种存储器系统,包括:
存储器装置;以及
存储器控制器,控制所述存储器装置以执行读取操作,
其中所述存储器控制器包括解码装置,所述解码装置包括:
数据生成器,接收从所述存储器装置读取的数据并且生成所述读取数据的软判决数据,所述软判决数据具有第一精确度;
数据转换器,将所述软判决数据转换为具有第二精确度的消息,所述第二精确度大于所述第一精确度;以及
解码处理器,通过使用所述消息来执行低密度奇偶校验解码,即LDPC解码,以生成解码数据。
8.根据权利要求7所述的存储器系统,其中所述数据生成器包括软判决数据生成器,所述软判决数据生成器从所述存储器装置接收所述读取数据,并且生成指示与所述读取数据的判决相关联的确定性的软判决数据。
9.根据权利要求7所述的存储器系统,其中所述数据转换器包括映射表,所述映射表存储与所述软判决数据相对应的所述消息。
10.根据权利要求7所述的存储器系统,其中所述软判决数据包括3位码字。
11.根据权利要求10所述的存储器系统,其中所述消息包括4位码字。
12.根据权利要求11所述的存储器系统,所述消息具有指示位的值的判决的符号以及指示与所述判决相关联的确定性的量值。
13.一种操作存储器系统的方法,所述存储器系统包括存储器装置和存储器控制器,所述存储器控制器控制所述存储器装置以执行读取操作,所述方法包括:
接收从所述存储器装置读取的数据;
生成所述读取数据的软判决数据,所述软判决数据具有第一精确度;
将所述软判决数据转换为具有第二精确度的消息,所述第二精确度大于所述第一精确度;并且
通过使用所述消息来执行低密度奇偶校验解码,即LDPC解码,以生成解码数据。
14.根据权利要求13所述的方法,其中生成所述读取数据的软判决数据包括:生成指示与所述读取数据的判决相关联的确定性的所述软判决数据。
15.根据权利要求13所述的方法,其中将所述软判决数据转换为所述消息包括:通过使用映射表将所述软判决数据转换为所述消息,所述映射表存储与所述软判决数据相对应的所述消息。
16.根据权利要求13所述的方法,其中所述软判决数据包括3位码字。
17.根据权利要求16所述的方法,其中所述消息包括4位码字。
18.根据权利要求17所述的方法,所述消息具有指示位的值的判决的符号以及指示与所述判决相关联的确定性的量值。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862643967P | 2018-03-16 | 2018-03-16 | |
US62/643,967 | 2018-03-16 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110277999A CN110277999A (zh) | 2019-09-24 |
CN110277999B true CN110277999B (zh) | 2023-03-14 |
Family
ID=67905580
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910204786.1A Active CN110277999B (zh) | 2018-03-16 | 2019-03-18 | Ldpc解码装置、包括其的存储器系统及其方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10884858B2 (zh) |
CN (1) | CN110277999B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7358279B2 (ja) * | 2020-03-18 | 2023-10-10 | キオクシア株式会社 | メモリシステム |
US11973516B2 (en) * | 2022-07-06 | 2024-04-30 | Innogrit Technologies Co., Ltd. | Soft decoding correctable page assisted LLR estimation |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1855731A (zh) * | 2005-04-25 | 2006-11-01 | 索尼株式会社 | 解码装置及解码方法 |
JP2006304131A (ja) * | 2005-04-25 | 2006-11-02 | Sony Corp | 復号装置および復号方法 |
CN104283570A (zh) * | 2013-07-03 | 2015-01-14 | Lsi公司 | 低密度奇偶性检验(ldpc)解码器中的对数似然比(llr)阻尼 |
CN106997777A (zh) * | 2015-09-18 | 2017-08-01 | 爱思开海力士有限公司 | 具有改进的硬解码吞吐量的vss ldpc解码器 |
JP2017175457A (ja) * | 2016-03-24 | 2017-09-28 | 日本放送協会 | 復号装置、復号プログラム、及び半導体チップ |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7054279B2 (en) * | 2000-04-07 | 2006-05-30 | Broadcom Corporation | Method and apparatus for optimizing signal transformation in a frame-based communications network |
US20040134988A1 (en) * | 2003-01-09 | 2004-07-15 | Hand Held Products, Inc. | Analog-to-digital converter with automatic range and sensitivity adjustment |
US20050084032A1 (en) * | 2003-08-04 | 2005-04-21 | Lowell Rosen | Wideband holographic communications apparatus and methods |
US7502982B2 (en) | 2005-05-18 | 2009-03-10 | Seagate Technology Llc | Iterative detector with ECC in channel domain |
US8069397B2 (en) * | 2006-07-10 | 2011-11-29 | Broadcom Corporation | Use of ECC with iterative decoding for iterative and non-iterative decoding in a read channel for a disk drive |
US8074157B2 (en) * | 2008-01-22 | 2011-12-06 | Agere Systems Inc. | Methods and apparatus for reduced complexity soft-output viterbi detection |
KR101526317B1 (ko) | 2008-05-09 | 2015-06-11 | 삼성전자주식회사 | 계층적 디코딩 장치 |
JP2010009642A (ja) * | 2008-06-24 | 2010-01-14 | Toshiba Corp | 半導体記憶装置およびそのテスト方法 |
WO2012097046A1 (en) | 2011-01-14 | 2012-07-19 | Marvell World Trade Ltd. | Ldpc multi-decoder architectures |
US8854754B2 (en) | 2011-08-19 | 2014-10-07 | Lsi Corporation | Systems and methods for local iteration adjustment |
US9294132B1 (en) * | 2011-11-21 | 2016-03-22 | Proton Digital Systems, Inc. | Dual-stage data decoding for non-volatile memories |
US8656257B1 (en) | 2012-01-11 | 2014-02-18 | Pmc-Sierra Us, Inc. | Nonvolatile memory controller with concatenated error correction codes |
US9092353B1 (en) | 2013-01-29 | 2015-07-28 | Pmc-Sierra Us, Inc. | Apparatus and method based on LDPC codes for adjusting a correctable raw bit error rate limit in a memory system |
JP5794240B2 (ja) | 2013-02-05 | 2015-10-14 | ソニー株式会社 | 誤り検出訂正装置、誤り検出訂正方法、情報処理装置、および、プログラム |
US20140313610A1 (en) | 2013-04-22 | 2014-10-23 | Lsi Corporation | Systems and Methods Selective Complexity Data Decoding |
US9614548B1 (en) | 2013-07-08 | 2017-04-04 | Marvell International Ltd. | Systems and methods for hybrid message passing and bit flipping decoding of LDPC codes |
US10276247B2 (en) | 2013-12-20 | 2019-04-30 | Seagate Technology Llc | Read retry operations with estimation of written data based on syndrome weights |
US9621188B2 (en) * | 2014-03-17 | 2017-04-11 | Samsung Electronics Co., Ltd. | Soft and hard decision message-passing decoding |
US9842020B2 (en) * | 2014-11-26 | 2017-12-12 | Qualcomm Incorporated | Multi-wire symbol transition clocking symbol error correction |
US9565581B2 (en) | 2015-02-22 | 2017-02-07 | The Regents Of The University Of Michigan | Iterative detection-decoding system |
US9977713B2 (en) | 2015-03-20 | 2018-05-22 | SK Hynix Inc. | LDPC decoder, semiconductor memory system and operating method thereof |
KR20170068681A (ko) | 2015-12-09 | 2017-06-20 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
US10164656B2 (en) | 2016-03-30 | 2018-12-25 | Silicon Motion Inc. | Bit flipping algorithm for providing soft information during hard decision hard decoding |
US10291261B2 (en) | 2016-04-25 | 2019-05-14 | SK Hynix Inc. | Early selection decoding and automatic tuning |
TWI600024B (zh) | 2016-07-05 | 2017-09-21 | 大心電子(英屬維京群島)股份有限公司 | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 |
TWI670715B (zh) | 2017-04-06 | 2019-09-01 | 群聯電子股份有限公司 | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 |
US10511326B2 (en) | 2017-11-14 | 2019-12-17 | Nyquist Semiconductor Limited | Systems and methods for decoding error correcting codes |
-
2019
- 2019-03-15 US US16/355,296 patent/US10884858B2/en active Active
- 2019-03-18 CN CN201910204786.1A patent/CN110277999B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1855731A (zh) * | 2005-04-25 | 2006-11-01 | 索尼株式会社 | 解码装置及解码方法 |
JP2006304131A (ja) * | 2005-04-25 | 2006-11-02 | Sony Corp | 復号装置および復号方法 |
CN104283570A (zh) * | 2013-07-03 | 2015-01-14 | Lsi公司 | 低密度奇偶性检验(ldpc)解码器中的对数似然比(llr)阻尼 |
CN106997777A (zh) * | 2015-09-18 | 2017-08-01 | 爱思开海力士有限公司 | 具有改进的硬解码吞吐量的vss ldpc解码器 |
JP2017175457A (ja) * | 2016-03-24 | 2017-09-28 | 日本放送協会 | 復号装置、復号プログラム、及び半導体チップ |
Also Published As
Publication number | Publication date |
---|---|
CN110277999A (zh) | 2019-09-24 |
US10884858B2 (en) | 2021-01-05 |
US20190286522A1 (en) | 2019-09-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106997777B (zh) | 具有改进的硬解码吞吐量的vss ldpc解码器 | |
CN109616148B (zh) | 具有解码器的存储器系统、其操作方法和解码器 | |
CN109428606B (zh) | 具有ldpc解码器的存储器系统及其操作方法 | |
CN108073467B (zh) | 具有硬信道信息的位翻转ldpc解码算法 | |
US10484008B2 (en) | Memory system with on-the-fly error detection and termination and operating method thereof | |
US10846172B2 (en) | Encoding method and system for memory device including QLC cells | |
CN111540393B (zh) | 用于基于字线分组的读取操作的存储器系统和方法 | |
CN110673979A (zh) | 存储器控制器及其操作方法 | |
CN112241333A (zh) | 用于存储器系统的编码器及其方法 | |
CN110569143B (zh) | 用于存储器系统的解码器及其方法 | |
CN110277999B (zh) | Ldpc解码装置、包括其的存储器系统及其方法 | |
CN111049530A (zh) | 纠错电路及其操作方法 | |
CN114550785A (zh) | 使用元信息自适应地确定读取阈值电压的系统 | |
CN113936715A (zh) | 使用域变换的读取阈值优化系统和方法 | |
CN116954984A (zh) | Crc终止时的准确ber报告 | |
CN117707833A (zh) | 不规则ldpc码的动态缩放因子更改 | |
CN112216328B (zh) | 具有低复杂度解码的存储器系统及其操作方法 | |
CN110275844B (zh) | 利用自适应阈值解码的存储器系统及其操作方法 | |
CN114255807A (zh) | 以先前读取为条件的读取重试阈值优化系统和方法 | |
CN110928722A (zh) | 存储器系统以及存储器系统的操作方法 | |
US11973515B2 (en) | Hybrid precision MS decoder to reduce gate-count for long codes | |
US11621727B2 (en) | Decoding systems and methods for local reinforcement | |
US20240086101A1 (en) | System and method for history-based non-parametric channel information prediciton using a deep neural network | |
US11967970B2 (en) | Bit-flipping decoder and decoding method for irregular codes | |
US20240313803A1 (en) | Min-sum decoder for row-irregular low density parity check codes |
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 |