CN112599180A - 用于存储器系统的解码器及其方法 - Google Patents

用于存储器系统的解码器及其方法 Download PDF

Info

Publication number
CN112599180A
CN112599180A CN201911294835.1A CN201911294835A CN112599180A CN 112599180 A CN112599180 A CN 112599180A CN 201911294835 A CN201911294835 A CN 201911294835A CN 112599180 A CN112599180 A CN 112599180A
Authority
CN
China
Prior art keywords
descrambling
sequence
syndrome weight
sequences
memory
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
Application number
CN201911294835.1A
Other languages
English (en)
Inventor
张帆
吕宣宣
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SK Hynix Inc
Original Assignee
SK Hynix Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by SK Hynix Inc filed Critical SK Hynix Inc
Publication of CN112599180A publication Critical patent/CN112599180A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/11Error 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/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1012Adding 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1575Direct decoding, e.g. by a direct determination of the error locator polynomial from syndromes and subsequent analysis or by matrix operations involving syndromes, e.g. for codes with a small minimum Hamming distance
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/31Coding, 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 coding for error detection or correction and efficient use of the spectrum
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3738Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with judging correct decoding

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • Algebra (AREA)
  • Pure & Applied Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

本公开提供一种用于存储器系统的解码器。该解码器包括:种子生成器,基于与来自主机的读取请求相对应的物理地址生成种子;解扰模块,从多个存储区域之中与该物理地址相对应的存储区域接收序列,并使用种子对序列解扰以生成多个解扰序列;以及选择器,基于解扰序列的校正子权重值选择解扰序列中的一个。

Description

用于存储器系统的解码器及其方法
技术领域
本公开的实施例涉及用于存储器系统的编码和解码方案。
背景技术
计算机环境范例已经转变为可以被随时随地使用的的普适计算系统。因此,诸如移动电话、数码相机和笔记本计算机的便携式电子装置的使用已迅速增加。这些便携式电子装置通常使用具有存储器装置的存储器系统,即数据存储装置。数据存储装置被用作便携式电子装置的主存储器装置或辅助存储器装置。
因为使用存储器装置的存储器系统不具有移动部件,因此它们具有优异的稳定性、耐用性、高信息访问速度和低功耗。具有这些优点的存储器系统的示例包括通用串行总线(USB)存储器装置、诸如通用闪存(UFS)的具有各种接口的存储卡以及固态驱动器(SSD)。存储器系统可以使用各种种类的编码器和解码器。
发明内容
本发明的各个方面包括一种用于在存储器系统中的引导加扰的快速解码方案。
在一个方面,一种存储器系统包括:存储器装置,包括多个存储区域;以及控制器,包括解码器。解码器包括:种子生成器,根据与来自主机的读取请求相对应的物理地址来生成多个种子;解扰模块,从多个存储区域之中与物理地址相对应的存储区域接收序列、并使用多个种子对序列解扰以生成多个解扰序列;以及选择器,根据与多个解扰序列相对应的多个校正子权重值在多个解扰序列之中来选择解扰序列。
在另一方面,一种用于操作存储器系统的方法,该存储器系统包括存储器装置,该存储器装置包括多个存储区域。该方法包括:根据与来自主机的读取请求相对应的物理地址生成多个种子;使用多个种子,对来自多个存储器区域之中与物理地址相对应的存储区域的序列解扰,以生成多个解扰序列;并且根据与多个解扰序列相对应的多个校正子权重值,在多个解扰序列之中选择解扰序列。
本发明的附加方面将从以下描述变得显而易见。
附图说明
图1是示出根据本发明的实施例的数据处理系统的框图。
图2是示出根据本发明的实施例的存储器系统的框图。
图3是示出根据本发明的实施例的存储器装置的存储块的电路图。
图4是示出存储器装置的单元的状态分布的示图。
图5A和5B是示出存储器装置中不同块的不同页面的位错误率的分布的示图。
图6是示出根据本发明的实施例的存储器系统的示图。
图7A是示出根据本发明的实施例的编码器的示图。
图7B是示出根据本发明的实施例的加扰(scrambling)模块的示图。
图8是示出根据本发明的实施例的加扰组件的示图。
图9是示出根据本发明的实施例的选择器的示图。
图10是示出根据本发明的实施例的解码器的示图。
图11A是示出根据本发明的实施例的解扰(descrambling)模块的示图。
图11B是示出根据本发明的实施例的解扰组件的示图。
图12是示出根据本发明的实施例的校正子(syndrome)计算器的示图。
图13A是示出根据本发明的实施例的选择器的示图。
图13B是示出根据本发明的实施例的选择器的示图。
图14是示出根据本发明的实施例的解码器中的校正子权重分布的曲线图。
具体实施方式
以下参照附图更详细地描述各个实施例。然而,本发明可以以不同的形式来实现,并且因此不应被解释为限于本文所阐述的实施例。相反,提供这些实施例以使本公开是彻底和完整的,并将本发明的范围充分传达给本领域技术人员。此外,本文对“实施例”、“另一个实施例”等的参考不一定仅针对一个实施例,并且对任何此类短语的不同参考不一定针对相同实施例。在整个本公开中,相同的附图标记在本发明的附图和实施例中指代相同的部件。
本发明可以以多种方式实施,包括:作为过程;设备;系统;实现在计算机可读存储介质上的计算机程序产品;和/或处理器,诸如适于运行存储在联接到处理器的存储器上或由联接到处理器的存储器提供的指令的处理器。在本说明书中,这些实施方式或本发明可以采取的任意其它形式可被称为技术。通常,可以在本发明范围内改变所公开进程的步骤的顺序。除非另有说明,否则诸如被描述为适于执行任务的处理器或存储器的组件可以被实施为被临时配置为在给定时间执行任务的通用组件或被制造以执行任务的特定组件。如本文所使用的,“处理器”等术语指适于处理诸如计算机编程指令的数据的一个或多个装置、电路和/或处理内核。
下面提供本发明实施例的详细描述以及示出本发明各方面的附图。结合这些实施例来描述本发明,但本发明不限于任何实施例。本发明的范围仅受权利要求的限制。本发明包含权利要求范围内的许多替代、修改和等效方案。下面的描述中阐述大量的具体细节,以便提供对本发明的全面了解。提供这些细节是为了示例的目的;可以在没有一些或全部这些具体细节的情况下根据权利要求来实践本发明。为清楚起见,没有详细描述在与本发明有关的技术领域中公知的技术资料,以免不必要地模糊本发明。
图1示出根据本发明的实施例的数据处理系统2的框图。
参照图1,数据处理系统2可以包括主机装置5和存储器系统10。存储器系统10可以接收来自主机装置5的请求,并相应于所接收的请求来操作。例如,存储器系统10可以存储待由主机装置5访问的数据。
主机装置5可以利用各种种类的电子装置来实施。在各个实施例中,主机装置5可以包括诸如以下的电子装置:台式计算机、工作站、三维(3D)电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、和/或数字视频记录器和数字视频播放器。在各个实施例中,主机装置5可以包括便携式电子装置,诸如移动电话、智能电话、电子书、MP3播放器、便携式多媒体播放器(PMP)和/或便携式游戏播放器。
存储器系统10可以利用诸如固态驱动器(SSD)和存储卡的各种种类的存储装置中的任何一种来实现。在各个实施例中,存储器系统10可以被设置为诸如以下的电子装置中的各种组件中的一种:计算机、超移动个人计算机(PC)(UMPC)、工作站、笔记本计算机、个人数字助理(PDA)、便携式计算机、web平板PC、无线电话、移动电话、智能电话、电子书阅读器、便携式多媒体播放器(PMP)、便携式游戏装置、导航装置、黑盒、数码相机、数字多媒体广播(DMB)播放机、3维电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、数字视频记录器、数字视频播放器、数据中心的存储装置、能够在无线环境中接收和传送信息的装置、射频识别(RFID)装置、以及家庭网络的各种电子装置之一、计算机网络的各种电子装置之一、远程信息处理网络的电子装置之一、或计算系统的各种组件之一。
存储器系统10可以包括存储器控制器100和半导体存储器装置200。存储器控制器100可以控制半导体存储器装置200的全部操作。
半导体存储器装置200可以在存储器控制器100的控制下执行一个或多个擦除操作、编程操作和读取操作。半导体存储器装置200可以通过输入/输出线来接收命令CMD、地址ADDR和数据DATA。半导体存储器装置200可以通过电源线接收电力PWR,并通过控制线接收控制信号CTRL。控制信号CTRL根据存储器系统10的设计和配置,可以包括命令锁存使能信号、地址锁存使能信号、芯片使能信号、写入使能信号、读取使能信号以及其它操作信号。
存储器控制器100和半导体存储器装置200可以集成在诸如固态驱动器(SSD)的单个半导体装置中。SSD可以包括用于在其中存储数据的存储装置。当半导体存储器系统10用在SSD中时,联接到存储器系统10的主机装置(例如,图1的主机装置5)的操作速度可以显著提高。
存储器控制器100和半导体存储器装置200可以集成在诸如存储卡的单个半导体装置中。例如,存储器控制器100和半导体存储器装置200可以被如此集成以配置个人计算机存储卡国际协会(PCMCIA)的个人计算机(PC)卡、紧凑型闪存(CF)卡、智能媒体(SM)卡、记忆棒、多媒体卡(MMC)、尺寸减小的多媒体卡(RS-MMC)、微型版MMC(微型MMC)、安全数字(SD)卡、迷你安全数字(迷你SD)卡、微型安全数字(微型SD)卡、安全数字高容量(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可以包括存储器单元阵列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,输入/输出电路270可以向控制电路220传送从外部装置(例如,图1的存储器控制器100)接收的命令和地址,将来自外部装置数据传送到列解码器260,或者将来自列解码器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闪存。
诸如闪速存储器(例如NAND闪速存储器)的存储器装置可以包括多个存储块(例如,数百到数千个存储块)。每个块通常可以包括多个字线(例如,数百个字线)。联接到每个字线的每个单元可以包括多个逻辑页面。存储器装置可以包括多个存储器单元,并且通过编程操作将单元调制成不同的状态或编程电压(PV)电平,以使存储每个单元存储多个位。
图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可以根据设置的编码方法来编程或存储2位数据。TLC可以包括八种状态P0至P7。在这些状态之中,P0可以指示擦除状态,并且P1至P7可指示编程状态。由于TLC可以设置为八种不同状态中的一种,因此每个TLC可以根据设置的编码方法来编程或存储3位数据。QLC可以包括16种状态P0至P15。在这些状态之中,P0可以指示擦除状态,并且P1至P15可以指示编程状态。由于QLC可设置为16种不同状态中的一种,因此每个QLC可以根据设置的编码方法来编程或存储4位数据。
因此,对于包括TLC的存储器装置,具有8种状态或PV电平,并且每个电平对应于唯一的3位元组(tuple)。单元的第一、第二和第三位分别被一起分组为最低有效位(LSB)页面、中心有效位(CSB)页面和最高有效位(MSB)页面。如图5A和5B所示,不同的PV电平通常具有不同的噪声方差,从而导致每个逻辑页面、每个字线和每个块的1→0错误的概率(即p1→0)不同于0→1错误的概率(即p0→1)。p1→0可以表示在具有逻辑高值的位(即,位-1)存储在相应页面中时的位错误率,并且p0→1可以表示在具有逻辑低值的位(即,位-0)存储在相应页面中时的位错误率。当位-1被错误地读取为位-0时可能发生p1→0,并且当位-0被错误地读取为位-1时可能发生p0→1
图5A和5B是示出例如三层单元(TLC)NAND型闪速存储器装置的存储器装置中不同块的不同逻辑页面的位错误率的分布的示图。
在图5A和5B中,x轴表示逻辑页面LSB、CSB或MSB,y轴表示原始位错误率(或错误概率)。在图5A中,对于块0的逻辑页面LSB、CSB或MSB中的每一个,p0→1与p1→0不同。在图5B中,对于块1的逻辑页面LSB、CSB或MSB中的每一个,p0→1与p1→0不同。此外,对于相同的逻辑页面LSB、CSB或MSB,块0的p0→1与块1的p0→1不同,并且块0的p1→0与块1的p1→0不同。换句话说,TLC-NAND型闪速存储器装置的错误概率可取决于所存储的位值(“0”或“1”)及其位置(或存储区域)。位置可以是关于待被存储在存储器装置中的数据的逻辑页面、字线和块中的任意一个。
因此,有必要提供一种方案来降低诸如TLC-NAND型闪速存储器装置的存储器装置中的位错误率。
图6是示出根据本发明的实施例的存储器系统的示图。
参照图6,存储器系统可以包括控制器100和存储器装置200。存储器装置200可以包括NAND型闪速存储器装置,NAND型闪速存储器装置具有诸如单层单元(SLC)、多层单元(MLC)、三层单元(TLC)或四层单元(QLC)的存储器单元。在各个实施例中,存储器装置200可以包括具有QLC存储器单元(即QLC)的NAND型闪速存储器装置。
控制器100可以从主机接收命令,并向存储器装置200提供所接收的命令。例如,控制器100接收写入命令和与写入命令相对应的写入数据,并控制存储器装置200对写入数据执行编程操作。例如,控制器100接收读取命令,并控制存储器装置200对与读取命令相对应的数据执行读取操作。控制器100向主机传送与读取命令相对应的读取数据。
控制器100可以包括编码器600A和解码器600B。在编程操作期间,编码器600A可以基于设置的编码方案对写入数据执行编码操作。在读取操作期间,解码器600B可基于设置的与编码方案相对应的解码方案,对读取数据执行解码操作。下面将参照图7A至图9来描述编码方案。下面将参照图10至图14来描述解码方案。控制器100和存储器装置200可以执行在图1和图2中描述的操作。在实施例中,编码器600A和解码器600B可实现在图2所示的控制器100的ECC组件130中。如下所述,也可以采用其它合适的布置。一般而言,编码器600A和解码器600B可通过硬件、软件、固件或其任意合适组合来实施。
在各个实施例中,编码器600A可以在编程操作之前使用多个加扰(即引导加扰)来执行编码操作,以降低诸如TLC NAND型闪速存储器装置的存储器装置200中的位错误率。也就是说,编码器600A可以用作引导加扰编码器。解码器600B可以使用与编码器600A的编码操作相对应的多个解扰来执行解码操作。
图7A是示出根据本发明的实施例的编码器的示图。例如,图7A的编码器可以描绘图6中所示的编码器600A。
参照图7A,编码器可以包括编码器模块710、加扰模块720、种子生成器725和选择器730。编码器模块710可以从主机接收数据(例如,用户数据)、对数据进行编码并输出经编码的数据。在各个实施例中,编码器模块710可以使用低密度奇偶校验(LDPC)码对数据进行编码。
种子生成器725可以接收关于与所接收的数据相对应的物理地址的信息,并且生成多个种子(例如,n个种子)。例如,n可以是8或16。在各个实施例中,信息可以指示存储器装置(例如,图6的存储器装置200)的多个存储区域之中待存储数据的存储区域的物理地址。例如,信息可以包括关于与存储区域相关联的块、字线和/或逻辑页面的信息(例如,块索引、字线索引和逻辑页面索引)。
加扰模块720可以接收经编码的数据,并使用多个种子对经编码的数据进行加扰以生成多个加扰序列。
图7B是示出根据本发明的实施例的加扰模块的示图。例如,图7B的加扰模块可以描绘图7A所示的加扰模块720。
参照图7B,加扰模块720可以包括多个加扰组件,例如,第一加扰组件720_1、第二加扰组件720_2和第n加扰组件720_n。
图8是示出根据本发明的实施例的加扰组件的示图。例如,图8的加扰组件可以描绘图7B所示的加扰组件720_1至720_n中的一个。
参照图8,在加扰组件720_1至7210_n之中,代表性加扰组件720_1可以包括随机发生器722、加扰器724和计数器726。随机发生器722可以基于种子生成随机序列。在各个实施例中,随机发生器722可以生成伪随机序列。加扰器724可以使用随机序列对数据进行加扰以生成加扰序列。在各个实施例中,加扰器724可以通过对具有随机序列的数据执行异或(XOR)操作来对数据进行加扰。计数器726可以对加扰序列中某个逻辑值(“0”或“1”)的出现数量进行计数,来生成计数值以输出。
重新参照图7A,选择器730可以接收多个加扰序列,并在多个加扰序列之中选择加扰序列。在各个实施例中,选择器730可以选择具有最少数量的逻辑高值“1”或逻辑低值“0”的加扰序列,具有最少数量的逻辑高值“1”或逻辑低值“0”的加扰序列中的任一个代表多个加扰序列之中的最小加扰序列。选择器730可以向存储器装置(例如,图6的存储器装置200)提供所选择的加扰序列,以被存储在存储器装置200的相应存储区域中。
如上所述,在存储器系统的写入路径中的编码器600A中,首先由诸如LDPC编码器的编码器模块710对数据(例如用户数据)进行如下编码:c=E(u),其中u表示用户数据且c表示经编码的数据。
其次,由加扰模块720的n个不同的加扰组件720_1至720_n使用n个不同种子对经编码的数据进行如下加扰:si=Si(c),其中s表示使用n个不同种子的加扰序列(i=1,2,…n,)。为了使1的数量充分减少,n可以选择为8或16。注意的是,种子是根据数据的物理地址以伪随机的方式生成的,因而无需存储种子。
再次,在n个加扰序列之中选择具有最少数量的1的加扰序列,即最小加扰序列。在各个实施例中,如图9所示,为了节省实现写入路径所需的存储器,选择器730可以具有第一选择组件730A和第二选择组件730B,第一选择组件730A和第二选择组件730B中的每一个具有2个槽而不是n个槽,以接收来自n个加扰组件720_1至720_n的n个加扰序列或n个计数值。第一选择组件730A的一个槽(Slot1)可用于存储当前计数值,而第一选择组件730A的另一个槽(Slot2)可用于保持所有先前计数值的优胜者。第二选择组件730B的一个槽(Slot1)可用于存储当前序列,而第二选择组件730B的另一个槽(Slot2)可用于保持所有先前序列中的优胜者,即所有先前序列之中的最小加扰序列。
最后,所选择的加扰序列被写入存储器装置200(例如,NAND型闪速存储器)。
相反,为了实现存储器系统的读取路径,解码器600B必须尝试所有不同的解扰器(例如,8或16),所有不同的解扰器中一个将给出正确的解码结果。当使用相同的解扰器时,这将导致额外延迟(8x或16x)或额外区域(8x或16x)。因此,期望提供一种方案以在没有额外延迟或区域开销的情况下挑选正确的解扰器。在各个实施例中,解码器600B计算校正子权重,并且然后使用校正子权重来选择正确的解扰器。
图10示出根据本发明的实施例的解码器的示图。例如,图10的解码器可以描绘图6所示的解码器600B。
参照图10,解码器可以包括解扰模块1010、种子生成器1015、校正子计算器1020、选择器1030和解码器1040。根据与来自主机的读取请求相对应的物理地址,种子生成器1015可以生成多个种子(例如,n个种子)。物理地址可以指示存储器装置(例如,图6的存储器装置200)中的多个存储区域之中的存储区域。
解扰模块1010可以从与物理地址相对应的存储区域接收序列(例如,编码序列),并且使用多个种子对序列解扰以生成多个解扰序列。
图11A是示出根据本发明的实施例的解扰模块1010的示图。例如,图11A的解扰模块可以描绘图10所示的解扰模块1010。
参照图11A,解扰模块1010可以包括对应于n个种子的多个解扰组件1011至1019。多个解扰组件1011至1019中的每一个可以接收编码序列,并使用多个种子之中的相应种子来对编码序列解扰,以生成相应的解扰序列。换句话说,第一解扰组件1011可以使用相应的种子1来对编码序列解扰以生成第一解扰序列。第二解扰组件1012可以使用相应的种子2来对编码序列解扰以生成第二解扰序列。第n解扰组件1019可以使用相应的种子n来对编码序列解扰以生成第n解扰序列。
图11B是示出根据本发明的实施例的解扰组件1011的示图。例如,图11B的解扰组件可以描绘图11A所示的解扰组件1011至1019中的一个。
参照图11B,解扰组件1011至1019之中的代表性解扰组件1011可以包括解扰器1011_1和随机发生器1011_2。随机发生器1011_2可以根据多个种子之中的相应种子(例如,种子1)生成随机数。解扰器1011_1可接收编码序列,并使用随机数来对编码序列解扰以生成第一解扰序列。
图12是示出根据本发明的实施例的校正子计算器1020的示图。例如,图12的校正子计算器可以描绘图10所示的校正子计算器1020。
参照图12,校正子计算器1020可以接收多个解扰序列,并计算多个解扰序列的多个校正子权重值。校正子计算器1020可以包括多个校正子权重计算器,校正子权重计算器包括第一校正子权重计算器1020_1至第n校正子权重计算器1020_n。第一校正子权重计算器1020_1可以接收第一解扰序列并计算第一解扰序列的第一校正子权重值。第二校正子权重计算器1020_2可以接收第二解扰序列并计算第二解扰序列的第二校正子权重值。第n校正子权重计算器1020_n可以接收第n解扰序列并计算第n解扰序列的第n校正子权重值。
重新参照图10,选择器1030可以接收多个序列,并在多个解扰序列之中选择解扰序列。在各个实施例中,选择器1030可基于其校正子权重值在多个解扰序列之中选择解扰序列。
图13A是示出根据本发明的实施例的选择器1030的示图。例如,图13A的选择器可以描绘图10所示的选择器1030。
参照图13A,选择器1030可以包括比较器1030A。比较器1030A可以平行地接收与多个解扰序列相对应的多个校正子权重值。比较器1030A可对多个校正子权重值进行排序,并基于比较结果输出多个校正子权重值之中的最小或最低校正子权重值。选择器1030可以选择具有最小校正子权重值的解扰序列。
图13B是示出根据本发明的实施例的选择器1030的示图。例如,图13B的选择器可以描绘图10所示的选择器1030。
参照图13B,选择器1030可以包括比较器1030B。比较器1030B可顺序地接收分别对应于多个解扰序列的多个校正子权重值。比较器1030B可以将所接收的每个校正子权重值与阈值进行比较。当接收到小于阈值的第一校正子权重值时,选择器1030可以选择并输出多个解扰序列之中与该校正子权重值相对应的解扰序列。注意的是,具有如此低的校正子权重的错误序列的可能性极低。因此,图13B的方案可以节省延迟并且与图13A的方案同样地工作。
图14是示出根据本发明的实施例的解码器中的校正子权重分布的曲线图。在图14中,x轴表示校正子权重值,并且y轴表示种子的概率。监测到的是,对应于正确种子的校正子权重值可低于对应于错误种子的校正子权重值。
参照图10,解码器1040可以从选择器1030接收所选择的解扰序列。解码器1040可以对所选择的解扰序列进行解码,并将解码序列输出为经解码数据。在各个实施例中,解码器1040可使用低密度奇偶校验(LDPC)码来对所选择的解扰序列进行解码。
如上所述,在存储器系统的读取路径中,基于数据的物理地址生成n个种子。由每个种子对读取数据解扰,并计算校正子权重。注意的是,每个码字的校正子计算约为8ns。因此,解码器可以在没有额外延迟或区域开销的情况下选择正确的加扰器,从而提高存储器系统的性能。
尽管为了清楚和理解的目的,已经相当详细地示出和描述前述实施例,但是本发明不限于所提供的细节。如本领域技术人员根据上述公开将理解的,存在实施本发明的许多可选方法。因此,所公开的实施例是说明性的,而不是限制性的。本发明旨在包含落入权利要求范围内的所有修改和可选方案。

Claims (16)

1.一种系统,包括:
存储器装置,包括多个存储区域;以及
解码器,包括:
种子生成器,基于与来自主机的读取请求相对应的物理地址生成多个种子;
解扰模块,从所述多个存储区域之中与所述物理地址相对应的存储区域接收序列,并使用所述多个种子来对所述序列解扰以生成多个解扰序列;以及
选择器,基于与所述多个解扰序列相对应的多个校正子权重值,在所述多个解扰序列之中选择解扰序列。
2.根据权利要求1所述的系统,其中所述解码器进一步包括:多个校正子权重计算器,分别接收所述多个解扰序列并分别计算所述多个解扰序列的多个校正子权重值。
3.根据权利要求2所述的系统,其中所述选择器在所述多个解扰序列之中选择具有最小校正子权重值的解扰序列。
4.根据权利要求3所述的系统,其中所述选择器包括比较器,所述比较器平行接收所述多个校正子权重值、比较所述多个校正子权重值、并输出与所述最小校正子权重值相对应的所选择的解扰序列。
5.根据权利要求2所述的系统,其中由所述选择器选择的解扰序列具有小于阈值的校正子权重值。
6.根据权利要求5所述的系统,其中所述选择器包括比较器,所述比较器顺序接收所述多个校正子权重值、将所接收的校正子权重值中的每一个与阈值进行比较、识别顺序接收的多个校正子权重值中小于所述阈值的第一校正子权重值并输出与所述第一校正子权重值相对应的解扰序列作为所选择的校正子权重值。
7.根据权利要求2所述的系统,其中所述解扰模块包括多个解扰组件,
其中所述多个解扰组件中的每一个包括:
随机发生器,根据所述多个种子之中的相应种子生成随机数;以及
解扰器,使用所述随机数对所述序列解扰,以生成所述多个解扰序列之中的相应解扰序列。
8.根据权利要求1所述的系统,进一步包括:
解码器,所述解码器接收所选择的解扰序列,对所选择的解扰序列进行解码,并输出经解码的序列作为经解码的数据。
9.一种操作系统的方法,所述系统包括存储器装置,所述存储器装置包括多个存储区域,所述方法包括:
根据与来自主机的读取请求相对应的物理地址生成多个种子;
使用所述多个种子对来自所述多个存储区域之中与所述物理地址相对应的存储区域的序列解扰,以生成多个解扰序列;并且
根据与所述多个解扰序列相对应的多个校正子权重值,在所述多个解扰序列之中选择解扰序列。
10.根据权利要求9所述的方法,进一步包括:
分别计算所述多个解扰序列的所述多个校正子权重值。
11.根据权利要求10所述的方法,其中选择解扰序列包括在所述多个解扰序列之中选择具有最小校正子权重值的解扰序列。
12.根据权利要求11所述的方法,其中选择解扰序列包括:
平行接收所述多个校正子权重值,比较所述多个校正子权重值;并且
输出与所述最小校正子权重值相对应的所选择的解扰序列。
13.根据权利要求10所述的方法,其中选择解扰序列包括选择校正子权重值小于阈值的解扰序列。
14.根据权利要求13所述的方法,其中选择解扰序列包括:
顺序接收所述多个校正子权重值;
将所接收的校正子权重值与所述阈值进行比较;
识别顺序接收的多个校正子权重值中小于所述阈值的第一校正子权重值;并且
输出与所述第一校正子权重值相对应的解扰序列作为所选择的校正子权重值。
15.根据权利要求10所述的方法,其中对所述序列解扰包括:
根据所述多个种子之中的相应种子生成随机数;并且
使用所述随机数对所述序列解扰,以生成所述多个解扰序列之中的相应解扰序列。
16.根据权利要求9所述的方法,进一步包括:
对所选择的解扰序列进行解码并输出经解码的序列作为经解码的数据。
CN201911294835.1A 2019-10-02 2019-12-16 用于存储器系统的解码器及其方法 Pending CN112599180A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/591,065 2019-10-02
US16/591,065 US11150985B2 (en) 2019-10-02 2019-10-02 Decoder for memory system and method thereof

Publications (1)

Publication Number Publication Date
CN112599180A true CN112599180A (zh) 2021-04-02

Family

ID=75180233

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911294835.1A Pending CN112599180A (zh) 2019-10-02 2019-12-16 用于存储器系统的解码器及其方法

Country Status (2)

Country Link
US (1) US11150985B2 (zh)
CN (1) CN112599180A (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004082184A2 (en) * 2003-03-06 2004-09-23 Arraycomm, Inc. Data randomization in a wireless communication system
US20040193997A1 (en) * 2003-01-30 2004-09-30 International Business Machines Corporation Forward error correction scheme compatible with the bit error spreading of a scrambler
CN101176288A (zh) * 2005-05-19 2008-05-07 佳能株式会社 通信设备、所述设备中的接收方法、编解码器、解码器、通信模块、通信单元以及解码方法
US8261159B1 (en) * 2008-10-30 2012-09-04 Apple, Inc. Data scrambling schemes for memory devices
WO2014154288A1 (en) * 2013-03-28 2014-10-02 Irdeto B.V. Processing digital content
US20150085573A1 (en) * 2013-05-31 2015-03-26 Sandisk Technologies Inc. Updating read voltages
US20170329667A1 (en) * 2016-05-12 2017-11-16 Samsung Electronics Co., Ltd. Nonvolatile memory device and read and copy-back methods thereof
CN108255464A (zh) * 2016-12-28 2018-07-06 北京忆恒创源科技有限公司 数据加扰方法、解扰方法及其装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6986094B2 (en) * 2001-03-29 2006-01-10 Intel Corporation Device and method for selecting opcode values with maximum hamming distance to minimize latency and buffering requirements
KR20130080203A (ko) 2012-01-04 2013-07-12 삼성전자주식회사 셀 상태들의 비대칭 특성을 고려한 프로그램 데이터를 생성하는 방법 및 그것을 이용한 메모리 시스템
US9966972B1 (en) 2014-09-02 2018-05-08 Marvell International Ltd. Systems and methods for dynamic iteration control in a low-density parity-check (LDPC) decoder
KR102452621B1 (ko) * 2018-06-04 2022-10-07 삼성전자주식회사 선형 피드백 쉬프트 레지스터를 이용하여 데이터를 복구하는 장치 및 이를 포함하는 데이터 송수신 시스템

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040193997A1 (en) * 2003-01-30 2004-09-30 International Business Machines Corporation Forward error correction scheme compatible with the bit error spreading of a scrambler
WO2004082184A2 (en) * 2003-03-06 2004-09-23 Arraycomm, Inc. Data randomization in a wireless communication system
CN101176288A (zh) * 2005-05-19 2008-05-07 佳能株式会社 通信设备、所述设备中的接收方法、编解码器、解码器、通信模块、通信单元以及解码方法
US8261159B1 (en) * 2008-10-30 2012-09-04 Apple, Inc. Data scrambling schemes for memory devices
WO2014154288A1 (en) * 2013-03-28 2014-10-02 Irdeto B.V. Processing digital content
US20150085573A1 (en) * 2013-05-31 2015-03-26 Sandisk Technologies Inc. Updating read voltages
US20170329667A1 (en) * 2016-05-12 2017-11-16 Samsung Electronics Co., Ltd. Nonvolatile memory device and read and copy-back methods thereof
CN108255464A (zh) * 2016-12-28 2018-07-06 北京忆恒创源科技有限公司 数据加扰方法、解扰方法及其装置

Also Published As

Publication number Publication date
US20210103494A1 (en) 2021-04-08
US11150985B2 (en) 2021-10-19

Similar Documents

Publication Publication Date Title
US10997017B2 (en) Neighbor assisted correction error recovery for memory system and method thereof
CN109428606B (zh) 具有ldpc解码器的存储器系统及其操作方法
CN110444240B (zh) 存储器系统的编码器和解码器及其方法
US10148293B2 (en) Incremental LLR generation for flash memories
US10846172B2 (en) Encoding method and system for memory device including QLC cells
US10991409B2 (en) Encoder for memory system and method thereof
US20200142744A1 (en) Logical address distribution in multicore memory system
CN111540393B (zh) 用于基于字线分组的读取操作的存储器系统和方法
US10938419B2 (en) Encoding method and system for memory device including QLC cells
US11854629B2 (en) System and method for non-parametric optimal read threshold estimation using deep neural network
US11907571B2 (en) Read threshold optimization systems and methods using domain transformation
CN114464241A (zh) 用于读取错误恢复的系统和方法
US11036579B2 (en) Decoder for memory system and method thereof
US20210055912A1 (en) Raw read based physically unclonable function for flash memory
US20210303715A1 (en) Data scrambler for memory systems and method thereof
US11210008B2 (en) Memory system for multi-clustering read thresholds and method thereof
US20210249080A1 (en) Memory system with single decoder, multiple memory sets and method for decoding multiple codewords from memory sets using the single decoder
CN114550785A (zh) 使用元信息自适应地确定读取阈值电压的系统
US11150985B2 (en) Decoder for memory system and method thereof
CN112216328A (zh) 具有低复杂度解码的存储器系统及其操作方法
US11502703B2 (en) Descrambler for memory systems and method thereof
US11621727B2 (en) Decoding systems and methods for local reinforcement
CN115708164A (zh) 一种测试预处理生成的系统及方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination