CN110928722A - 存储器***以及存储器***的操作方法 - Google Patents
存储器***以及存储器***的操作方法 Download PDFInfo
- Publication number
- CN110928722A CN110928722A CN201910888255.9A CN201910888255A CN110928722A CN 110928722 A CN110928722 A CN 110928722A CN 201910888255 A CN201910888255 A CN 201910888255A CN 110928722 A CN110928722 A CN 110928722A
- Authority
- CN
- China
- Prior art keywords
- memory
- function
- decoding
- failing
- word lines
- 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
- 230000015654 memory Effects 0.000 title claims abstract description 151
- 238000000034 method Methods 0.000 title claims abstract description 32
- 230000006870 function Effects 0.000 claims description 38
- 230000002452 interceptive effect Effects 0.000 claims 2
- 230000000644 propagated effect Effects 0.000 claims 2
- 239000000872 buffer Substances 0.000 abstract description 24
- 239000004065 semiconductor Substances 0.000 description 16
- 230000008569 process Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 8
- 230000004044 response Effects 0.000 description 8
- 238000012937 correction Methods 0.000 description 7
- 101001016186 Homo sapiens Dystonin Proteins 0.000 description 5
- 101000832669 Rattus norvegicus Probable alcohol sulfotransferase Proteins 0.000 description 5
- 230000008901 benefit Effects 0.000 description 5
- 238000013500 data storage Methods 0.000 description 5
- 230000002093 peripheral effect Effects 0.000 description 5
- 238000011084 recovery Methods 0.000 description 4
- 238000013507 mapping Methods 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
- 239000004557 technical material Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/408—Address circuits
- G11C11/4085—Word line control circuits, e.g. word line drivers, - boosters, - pull-up, - pull-down, - precharge
-
- 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/1068—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 in sector programmable memories, e.g. flash disk
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/08—Address circuits; Decoders; Word-line control circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/409—Read-write [R-W] circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- 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/25—Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM]
- H03M13/255—Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM] with Low Density Parity Check [LDPC] codes
-
- 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/45—Soft decoding, i.e. using symbol reliability information
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/65—Purpose and implementation aspects
- H03M13/6577—Representation or format of variables, register sizes or word-lengths and quantization
- H03M13/658—Scaling by multiplication or division
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0411—Online error correction
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- 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
- G11C2029/1202—Word line control
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/10—Decoders
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明提供一种通过利用软解码失败的字线(失败字线)之间的差异来执行解码的***、存储器控制器、解码器和方法。这种解码方案能够处理相对大数量的失败字线而不会使缓冲器和查找表的大小成比例增加。该方案可以在片上***(SoC)上实施。
Description
相关申请的交叉引用
本申请要求于2018年9月19日提交的申请号为62/733,402的美国临时申请的权益,该美国临时申请的全部内容通过引用并入本文。本申请涉及于2019年2月13日提交的申请号为16/274,981的美国申请,该美国申请的全部内容通过引用并入本文。
技术领域
本公开的实施例涉及一种具有自适应地传播信息以使用有限的存储量来提高解码的方案的存储器***,以及操作这种存储器***的方法。
背景技术
计算机环境范例已经转变成可被随时随地使用的普适计算***。因此,诸如移动电话、数码相机和笔记本计算机的便携式电子装置的使用已经迅速增加。这些便携式电子装置通常使用具有存储器装置的存储器***,即数据存储装置。数据存储装置用作便携式电子装置的主存储器装置或辅助存储器装置。
由于使用存储器装置的数据存储装置不具有移动部件,因此它们提供优异的稳定性、耐用性、高信息访问速度和低功耗。具有这些优点的数据存储装置的示例包括通用串行总线(USB)存储器装置、具有各种接口的存储卡以及固态驱动器(SSD)。
SSD可以包括闪速存储器组件和控制器,该控制器包括将闪速存储器组件桥接至SSD输入/输出(I/O)接口的电子器件。SSD控制器可以包括运行诸如固件的功能组件的嵌入式处理器。SSD功能组件通常是装置特定的,并且在大多数情况下可被更新。
两种主要类型的闪速存储器以NAND逻辑门和NOR逻辑门命名。各个闪速存储器单元表现出与其相应栅极的内部特性类似的内部特性。NAND型闪速存储器可以通常远小于整个存储器空间的块(或页面)而被写入和读取。NOR型闪速存储器允许单个机器字(字节)被独立写入到擦除位置或被独立读取。NAND型闪速存储器主要用于存储卡、USB闪存驱动器、固态驱动器(SSD)和类似产品中,以用于一般的数据存储和传输。
例如NAND型的闪速存储器可以应用各种错误校正码中的任意一种来校正数据中的错误。一种这样的错误校正码是低密度奇偶校验码(LDPC),该LDPC是用于恢复数据中相对大量错误的高级错误码。在LDPC解码进程期间生成软信息。在此背景下产生本发明的实施例。
发明内容
本发明的各方面包括存储器***及其诸如存储器控制器和解码器的组件。
在一方面,本发明涉及一种包括存储器装置和存储器控制器的存储器***,该存储器装置包括具有字线的超级块。存储器控制器被配置成对超级块中的字线的码字执行软解码,以生成字线中的每一个字线的软信息;当阈值数量或更多数量的字线的码字的解码失败时,基于第一函数的递归应用生成更新的软信息,并且存储每次应用第一函数时的第一函数的输出;计算成功解码的码字的逻辑函数信息,直到超级块中的所***字被解码;基于使用逻辑函数信息的第二函数、第一函数的最后输出和第一失败字线的对数似然比(LLR),来估计目标失败字线的LLR;并且利用估计的LLR解码失败字线的码字。
在另一方面,一种存储器控制器包括低密度奇偶校验(LDPC)解码器,LDPC解码器被配置成对超级块中的字线的码字执行软解码以生成字线中的每一个字线的软信息,其中至少两个字线的码字的软解码失败。存储器控制器进一步包括存储器,该存储器包括具有第一函数的第一查找表(LUT)以及具有第二函数的第二LUT,该第一函数被递归地应用以最初根据失败字线中的两个失败字线的软信息,然后根据紧接之前应用第一函数的输出和失败字线中的另一个失败字线的软信息来生成更新的软信息;该第二函数被配置成基于最后应用第一函数的输出、成功解码的字线的逻辑函数信息和目标失败字线的对数似然比(LLR)来生成目标失败字线的估计的LLR。
本发明的另一方面包括可以由存储器控制器及其诸如解码器的组件执行的方法,特别是解码方法。就这方面而言,本发明的另一方面涉及一种解码方法。
从以下描述,本发明的其它方面将变得显而易见。
附图说明
图1是示出根据本发明的实施例的存储器***的框图。
图2是示出根据本发明的实施例的存储器***的框图。
图3是示出根据本发明的实施例的存储器***的存储器装置的存储块的电路图。
图4是示出根据本发明的实施例的存储器***的示图。
图5示出使用其它失败字线的对数似然比(LLR)来估计失败字线的LLR的查找表(LUT)实施方式。
图6是示出根据本发明的实施例的使用其它失败字线的LLR来估计失败字线的LLR的LUT实施方式。
图7是示出根据本发明的实施例的当多个字线失败时超级芯片猎杀(chip-kill)恢复的步骤的流程图。
具体实施方式
下面参照附图更详细地描述各个实施例。然而,本发明可以不同的形式来实现并且因此不应被解释为限于本文阐述的实施例。而是,提供这些实施例使得本公开是彻底的且完整的,并且向本领域技术人员充分传达本发明的范围。此外,本文对“实施例”、“另一实施例”等的参考不一定仅针对一个实施例,并且对任意这些短语的不同参考不一定针对相同的实施例。在整个公开中,相同的附图标记在本发明的附图和实施例中表示相同的部件。
本发明可以包括作为下列的多种方式来实施:进程;设备;***;物质的组成;在计算机可读存储介质上实现的计算机程序产品;和/或处理器,诸如适于运行存储在联接至处理器的存储器上和/或由联接至处理器的存储器提供的指令的处理器。在本说明书中,这些实施例或本发明可以采用的任意其它形式可以被称为技术方案。通常,可以在本发明的范围内改变所公开的进程的步骤的顺序。除非另有说明,否则被描述为适于执行任务的、诸如处理器或存储器的组件可以被实施为临时配置为在给定时间执行任务的通用组件或者被制造为执行任务的专用组件。如本文所使用的,术语“处理器”等指适于处理诸如计算机程序指令的数据的一个或多个装置、电路和/或处理内核。
以下一起提供与示出本发明的方面的附图和本发明的实施例的详细描述。结合这些实施例来描述本发明,但是本发明不限于任何实施例。本发明的范围仅由权利要求限定。本发明涵盖在权利要求范围内的许多替换方案、修改方案和等同方案。在以下描述中阐述了许多具体细节,以便提供对本发明的透彻理解。提供这些细节是为了示例的目的;在没有一些或全部这些具体细节的情况下,本发明可以根据权利要求来实践。为清楚起见,没有详细描述本发明相关的技术领域中已知的技术材料,以免不必要地模糊本发明。
图1是示意性地示出根据本发明的实施例的存储器***的框图。
参照图1,存储器***10可以包括存储器控制器100和半导体存储器装置200,半导体存储器装置200可以表示一个以上的这种装置。半导体存储器装置200可以是闪速存储器装置,特别是NAND型闪速存储器装置。存储器控制器100和半导体存储器装置200有时可以分别被简称为控制器100和存储器装置200。
存储器控制器100可以控制半导体存储器装置200的全部操作。
半导体存储器装置200可以在存储器控制器100的控制下执行一个或多个擦除操作、编程操作和读取操作。半导体存储器装置200可以通过输入/输出(I/O)线接收命令CMD、地址ADDR和数据DATA。半导体存储器装置200可以通过电源线接收电力PWR,并且通过控制线接收控制信号CTRL。控制信号CTRL可以包括命令锁存使能(CLE)信号、地址锁存使能(ALE)信号、芯片使能(CE)信号、写入使能(WE)信号、读取使能(RE)信号等。
存储器控制器100和半导体存储器装置200可以被集成到诸如固态驱动器(SSD)的单个半导体装置中。SSD可以包括用于将数据存储在其中的存储装置。当半导体存储器***10用于SSD中时,联接至存储器***10的主机(未示出)的操作速度可显著提高。
存储器控制器100和半导体存储器装置200可以被集成在诸如存储卡的单个半导体装置中。例如,存储器控制器100和半导体存储器装置200可以被如此集成以配置:个人计算机存储卡国际协会(PCMCIA)的PC卡、紧凑式闪存(CF)卡、智能媒体(SM)卡、记忆棒、多媒体卡(MMC)、尺寸减小的多媒体卡(RS-MMC)、微型版本的MMC(微型MMC)、安全数字(SD)卡、迷你安全数字(迷你SD)卡、微型安全数字(微型SD)卡、安全数字高容量(SDHC)和/或通用闪存(UFS)。
在另一实施例中,存储器***10可以被设置为诸如下列的电子装置中的各种组件中的一种:计算机、超移动PC(UMPC)、工作站、上网本计算机、个人数字助理(PDA)、便携式计算机、网络平板PC、无线电话、移动电话、智能电话、电子书阅读器、便携式多媒体播放器(PMP)、便携式游戏装置、导航装置、黑盒、数码相机、数字多媒体广播(DMB)播放器、三维电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、数字视频记录器、数字视频播放器、数据中心的存储装置、能够在无线环境中接收和发送信息的装置、射频识别(RFID)装置、以及家庭网络的各种电子装置中的一种、计算机网络的各种电子装置中的一种、远程信息处理网络的电子装置中的一种或计算***的各种组件中的一种。
图2是示出根据本发明的实施例的存储器***的详细框图。例如,图2的存储器***可以描绘图1中所示的存储器***10。
参照图2,存储器***10可以包括存储器控制器100和半导体存储器装置200。存储器***10可以响应于来自主机装置的请求而操作,特别地,存储待由主机装置访问的数据。
主机装置可以利用各种电子装置中的任意一种来实施。在一些实施例中,主机装置可以包括诸如下列的电子装置:台式计算机、工作站、三维(3D)电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器和/或数字视频记录器和数字视频播放器。在一些实施例中,主机装置可以包括诸如下列的便携式电子装置:移动电话、智能电话、电子书、MP3播放器、便携式多媒体播放器(PMP)和/或便携式游戏机。
存储器装置200可以存储待由主机装置访问的数据。
存储器装置200可以利用诸如动态随机存取存储器(DRAM)和/或静态随机存取存储器(SRAM)的易失性存储器装置或者诸如只读存储器(ROM)、掩模ROM(MROM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、铁电随机存取存储器(FRAM)、相变RAM(PRAM)、磁阻RAM(MRAM)和/或电阻式RAM(RRAM)的非易失性存储器装置来实施。
存储器控制器10可以控制将数据存储在存储器装置200中。例如,存储器控制器100可以响应于来自主机装置的请求来控制存储器装置200。存储器控制器100可以将从存储器装置200读取的数据提供至主机装置,并且可以将从主机装置提供的数据存储至存储器装置200中。
存储器控制器100可以包括通过总线160联接的存储装置110、控制组件120、错误校正码(ECC)组件130、主机接口(I/F)140和存储器接口(I/F)150,控制组件120可被实施为诸如中央处理单元(CPU)的处理器。
存储装置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可以包括用于合适错误校正操作的所有电路、***或装置。
特别地,ECC组件130可以包括编码器和解码器135,例如LDPC解码器,且更特别地为LDPC芯片猎杀解码器。包括解码器135的ECC组件130被配置成在失败字线中传播软信息,并且提供包含迭代和未满足校验(USC)信息的开销(metric)以在每次迭代时生成外部信息。
主机接口140可以通过诸如下列的各种接口协议中的一种或多种与主机装置通信:通用串行总线(USB)、多媒体卡(MMC)、高速***组件互连(PCI-E)、小型计算机***接口(SCSI)、串列SCSI(SAS)、串行高级技术附件(SATA)、并行高级技术附件(PATA)、增强型小型磁盘接口(ESDI)和电子集成驱动器(IDE)。
存储器接口150可以提供存储器控制器100和存储器装置200之间的接口,以允许控制器100响应于来自主机装置的请求来控制存储器装置200。存储器接口150可以在CPU120的控制下生成用于存储器装置200的控制信号并且处理数据。当存储器装置200是诸如NAND闪速存储器的闪速存储器时,存储器接口150可以在CPU 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生成的行地址RADD在多个存储块211之中选择至少一个存储块,并且将从电压生成电路230提供的操作电压传输至所选择存储块。
页面缓冲器250可以通过位线BL(图3中示出)与存储器单元阵列210电通信。页面缓冲器250可以响应于由控制电路220生成的页面缓冲器控制信号,利用正电压对位线BL预充电,在编程操作中将数据传输至所选择存储块并且在读取操作中从所选择存储块接收数据,或临时存储传输的数据。
列解码器260可以将数据传输至页面缓冲器250并且从页面缓冲器250接收数据,并且还可以与输入/输出电路270交换数据。
输入/输出电路270可以通过输入/输出电路270,将从外部装置(例如,存储器控制器100)接收的命令和地址传输至控制电路220,将来自外部装置的数据传输至列解码器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之间。存储器单元中的每一个可以形成为存储多位数据信息的多层单元(MLC)。
每个单元串中的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闪速存储器。
参照图4,示意性地示出存储器***40的一般示例。存储器***40可以包括易失性存储器400(例如DRAM)、非易失性存储器(NVM)402(例如NAND)、诸如本文所述的控制组件或控制逻辑404、诸如本文所述的错误校正码(ECC)模块406以及总线408,存储器***40的这些组件通过总线408进行通信。易失性存储器400可以包括用于映射位的物理到逻辑地址的逻辑位地址(LBA)表410。NVM 402可以包括多个存储块以及用于主机写入的开放块430和用于垃圾收集(GC)的开放块440,多个存储块可以被分组成超级存储块。多个存储块可以被一起分组为用于某些功能目的的超级块。
ECC模块406可以包括解码器406A,例如LDPC解码器,且更特别地为LDPC芯片猎杀解码器。包括其解码器406A的ECC模块406可以用于执行本发明的各方面。根据本公开内容,本领域技术人员将理解可以与存储器***一起使用以实现本发明的额外/替代组件。
申请号为16/274,981的相关申请('981申请)提供一种使用超级块级别芯片猎杀来处理多个字线失败的错误恢复方案。根据该方案的各方面,使用关于其它失败字线的信息来判断地生成失败字线的软信息。与LDPC软解码相比,这种方案有利地提供显著的性能增益。
然而,在某些情况下,在片上***(SoC)上实施该方案方面,存在硬件限制。该方案使用存储器缓冲器和查找表(LUT),LUT的大小直接与失败字线的数量成正比。随着失败字线的数量增加并且达到某个上限,该方案不能在SoC上实施。
本发明的各方面提出并解决了这个问题。本发明的实施例提供了一种可以在存储器缓冲器和LUT所需的存储量固定的同时处理多个字线失败的方案。也就是说,存储量与失败字线的数量不成比例。有利地,与先前的方案相比,本发明的方案可以在SoC上实施,且复杂度很低。
根据本发明的实施例,该方案能够使用SoC上固定的存储量来处理多个字线失败。在先前的方案中,在恢复所有成功解码的XOR数据之前,可以将关于所有失败字线的数据存储在共享存储器缓冲器上。然后,失败字线的软数据和成功解码的XOR数据可以用于生成主机所需的失败字线的对数似然比(LLR)。LUT可以用于生成经过LDPC解码器的LLR。在本发明的实施例中,每当观察到字线失败时,更新所请求的主机数据的估计的LLR信息。因此,随着失败字线的数量增加,存储器使用不会增加。此外,因为可以在所有字线失败中使用相同的表,所以LLR表的大小显著减小,也优化了LUT大小。
结合描述本发明的实施例,使用以下符号。Nl表示LLR位宽度。Ncw表示LDPC码的长度。Nf表示失败字线的数量。
基于失败字线的LLR的第k位的估计的LLR如下:
通过比较的方式,在先前方案中使用的共享缓冲器上的存储器的量可以给出如下:
Nf*Nl*Ncw+Ncw (1)
在等式(1)中,一项用于失败字线数据,且另一项用于超级块中成功解码的字线的XOR数据。从等式(1)可以理解的是,所需的缓冲存储器的量与Nf成线性比例。
另一个需要考虑的方面是LUT所需的条目数量,如下所示:
从等式(2)可以看出,LUT的大小随Nf呈指数增长。
最佳LUT搜索可以表述如下:
其中I( )表示交互信息,即在失败字线中传播的软信息。
由等式(2)表示的上述公式提供了最佳性能。但是,实际上,硬件实施方式是不可行的。对于先前的方案,图5中示出基于失败字线的LLR和其它失败字线的LLR以及XOR数据来生成第一失败字线的估计的LLR,图5还表示针对这种方案的LUT的实施方式。
本发明的实施例提供了两步优化,一旦求解了以下优化公式,该两步优化容易地在硬件上实施:
其中I( )表示交互信息。
图6示出根据本发明的实施例的上述递归的实施方式。与图5中所示的先前方案相比较,根据图6的实施例的递归提供了较低的复杂性和缓冲存储器需求。
本发明的方案所需的缓冲存储器的数量是2*Nl*Ncw+Ncw。
有利地,根据本发明的实施例,该方案中的缓冲存储器不与失败字线的数量成比例,并且LUT大小也不会随着失败字线的数量呈指数增加。
图7中所示的流程图700中示出根据实施例的解码流程。解码可以分别由ECC组件130或ECC模块406内的LDPC解码器135或406A执行,并且可以结合存储器控制器100的其它组件操作。
参照图7,结合其它附图,LDPC解码器135/406A接收第一(或目标)失败字线的码字,即使用LDPC软解码未成功解码的数据。在步骤701中,利用LDPC解码器135/406A解码超级块中的所有字线。在步骤702中,确定发生了多少字线失败。如果发生少于阈值数量的这种失败,则进程进行至步骤703,在步骤703中使用成功解码的字线的XOR数据恢复失败数据,之后进程结束。阈值可以设置为3,在这种情况下,当存在两个或更少的字线失败时,进程进行至步骤703。因为随着失败字线的数量增加,本发明相比先前方案的优势更大,所以可以将阈值设置得更大。
假设阈值设置为3,如果在步骤702作出的确定结果是发生三个或更多个字线失败,则进程进行至步骤704,在步骤704中基于函数更新软信息并且存储的输出。如图6所示,这是一个递归操作。最初,将应用于两个失败字线的软信息,例如LLR。然后,一起输入该的初始应用的输出与另一个失败字线的软信息,例如LLR,以生成的第二输出。这个递归过程一直持续到所有失败字线都被处理。
在步骤705中,该进程涉及计算成功解码的码字的XOR,直到超级块的所***字都被解码。在步骤706中,执行图6中所示的最后阶段的进程。也就是说,使用在步骤705中计算的XOR信息以及的最后输出和第一失败字线的LLR,以生成第一失败字线的估计的LLR。然后,将第一失败字线的估计的LLR传输到LDPC解码器135/406A以进一步解码。
接下来,在步骤707中,确定LDPC解码器135/406A的解码是否成功。如果是,则恢复数据并且进程结束(步骤708)。如果不是,则进程由于恢复失败而结束(步骤709)。
流程图700中示出的步骤是示例性的。本领域技术人员将理解的是,可以执行附加和/或替代步骤,或者可以在不脱离本文公开的发明构思的情况下改变步骤的顺序以实施本发明的各方面。流程图700的步骤可以由存储器控制器100或其合适的组件,例如LDPC解码器135/406A执行,存储器控制器100或其合适的组件中的任意一个可以利用适当的硬件、软件、固件或其组合来实施。如上所述,LUT的实施方式可以在硬件中完成。
如前所述,本发明的实施例提供了一种以芯片猎杀恢复的方式处理相对大数量的失败字线而不会增加所需存储量和表大小的技术。这些技术利用了'981申请中描述的方案的许多方面和优点,但没有增加开销。有利的是,这些技术可容易地在硬件例如SoC中实施。
虽然出于清楚和理解的目的,已经在一些细节上描述了前述实施例,但是本发明不限于所提供的细节。本领域技术人员根据前述公开内容将理解的是,存在许多实施本发明的替代方式。因此,所公开的实施例是说明性的而非限制性的。
Claims (17)
1.一种存储器***,包括:
存储器装置,所述存储器装置包括具有字线的超级块;以及
存储器控制器:
对所述超级块中的字线的码字执行软解码以生成所述字线中的每一个字线的软信息;
当阈值数量或更多数量的字线的码字的解码失败时,基于第一函数的递归应用生成更新的软信息,并且存储每次应用所述第一函数时的所述第一函数的输出;
计算成功解码的码字的逻辑函数信息,直到所述超级块中的所***字被解码;
基于使用所述逻辑函数信息的第二函数、所述第一函数的最后输出和第一失败字线的对数似然比,即LLR,来估计目标失败字线的LLR;并且
利用估计的LLR解码失败字线的码字。
2.根据权利要求1所述的存储器***,其中所述码字的软解码是低密度奇偶校验解码,即LDPC解码。
3.根据权利要求1所述的存储器***,其中所述失败字线的码字使用低密度奇偶校验解码,即LDPC解码被解码。
4.根据权利要求1所述的存储器***,其中所述阈值数量是3。
5.根据权利要求1所述的存储器***,其中所述逻辑函数信息是XOR数据。
6.根据权利要求1所述的存储器***,其中所述第二函数基于在所述失败字线中的至少一些失败字线中传播的交互软信息。
7.一种存储器控制器,包括:
低密度奇偶校验解码器,即LDPC解码器,对超级块中的字线的码字执行软解码以生成所述字线中的每一个字线的软信息,其中所述字线中的至少两个字线的码字的软解码失败;
存储器,包括
具有第一函数的第一查找表,即第一LUT,所述第一函数被递归地应用以最初根据所述失败字线中的两个失败字线的所述软信息,然后根据紧接之前应用所述第一函数的输出和所述失败字线中的另一个失败字线的软信息来生成更新的软信息,直到所有失败字线被处理;以及
具有第二函数的第二LUT,所述第二函数基于最后应用所述第一函数的输出、成功解码的字线的逻辑函数信息和目标失败字线的对数似然比,即LLR,来生成所述目标失败字线的估计的LLR。
8.根据权利要求7所述的存储器控制器,其中所述成功解码的字线的逻辑函数信息是所述成功解码的字线的XOR数据。
9.根据权利要求7所述的存储器控制器,其中所述存储器的大小基于LDPC码的长度和LLR位宽度。
10.根据权利要求7所述的存储器控制器,其中所述第一LUT和所述第二LUT中的每一个的大小基于LLR位宽度。
11.根据权利要求7所述的存储器控制器,其中所述第一LUT和所述第二LUT在硬件中实现。
12.一种解码方法,包括:
对存储器装置的超级块中的字线的码字执行软解码以生成所述字线中的每一个字线的软信息;
当阈值数量或更多数量的字线的码字的解码失败时,基于第一函数的递归应用生成更新的软信息,并且存储每次应用所述第一函数时的所述第一函数的输出;
计算成功解码的码字的逻辑函数信息,直到所述超级块中的所***字被解码;
基于使用所述逻辑函数信息的第二函数、所述第一函数的最后输出和第一失败字线的对数似然比,即LLR,来估计目标失败字线的LLR;并且
利用估计的LLR解码失败字线的码字。
13.根据权利要求12所述的方法,其中所述码字的软解码是低密度奇偶校验解码,LDPC解码。
14.根据权利要求12所述的方法,其中所述失败字线的码字使用低密度奇偶校验解码,即LDPC解码被解码。
15.根据权利要求12所述的方法,其中所述阈值数量是3。
16.根据权利要求12所述的方法,其中所述逻辑函数信息是XOR数据。
17.根据权利要求12所述的方法,其中所述第二函数基于在所述失败字线中的至少一些失败字线中传播的交互软信息。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862733402P | 2018-09-19 | 2018-09-19 | |
US62/733,402 | 2018-09-19 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110928722A true CN110928722A (zh) | 2020-03-27 |
Family
ID=69774319
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910888255.9A Pending CN110928722A (zh) | 2018-09-19 | 2019-09-19 | 存储器***以及存储器***的操作方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11062758B2 (zh) |
CN (1) | CN110928722A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11481271B2 (en) * | 2021-03-16 | 2022-10-25 | Western Digital Technologies, Inc. | Storage system and method for using subcodes and convolutional-based LDPC interleaved coding schemes with read threshold calibration support |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102449969A (zh) * | 2009-03-02 | 2012-05-09 | 三菱电机研究实验室股份有限公司 | 用于软逻辑函数的电路 |
CN102820064A (zh) * | 2011-06-07 | 2012-12-12 | 马维尔国际贸易有限公司 | 识别和减轻存储器***中的硬错误 |
US8495479B1 (en) * | 2010-11-22 | 2013-07-23 | Marvell International Ltd. | Defect detection and correction via monitoring of syndromes and bit flips in decoder |
CN106997777A (zh) * | 2015-09-18 | 2017-08-01 | 爱思开海力士有限公司 | 具有改进的硬解码吞吐量的vss ldpc解码器 |
CN107408069A (zh) * | 2015-03-27 | 2017-11-28 | 英特尔公司 | 用于检测和缓解闪速存储器中的位线开路的装置和方法 |
CN108053862A (zh) * | 2014-09-26 | 2018-05-18 | 英特尔公司 | 使用来自多个存储单元和奇偶校验存储单元的可靠性信息为一个失效存储单元恢复数据 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8352340B2 (en) | 2004-02-06 | 2013-01-08 | Ubs Ag | Methods and systems for exercising stock options |
US8739009B1 (en) | 2007-12-27 | 2014-05-27 | Marvell International Ltd. | Methods and apparatus for defect detection and correction via iterative decoding algorithms |
US8769380B1 (en) | 2010-11-02 | 2014-07-01 | Marvell International Ltd. | Methods and apparatus for error recovery in memory systems employing iterative codes |
US8756478B2 (en) | 2011-09-07 | 2014-06-17 | Lsi Corporation | Multi-level LDPC layer decoder |
KR101926608B1 (ko) | 2012-08-27 | 2018-12-07 | 삼성전자 주식회사 | 경 판정 디코딩 방법 및 이를 이용한 저밀도 패리티 체크 디코더 |
US9191256B2 (en) | 2012-12-03 | 2015-11-17 | Digital PowerRadio, LLC | Systems and methods for advanced iterative decoding and channel estimation of concatenated coding systems |
US9184767B2 (en) | 2013-09-19 | 2015-11-10 | SanDisk Technologies, Inc. | Scoring variable nodes for low density parity check code decoding |
US9509342B2 (en) | 2014-06-02 | 2016-11-29 | Sandisk Technologies Llc | Error correcting code decoder |
KR102609130B1 (ko) * | 2016-02-17 | 2023-12-05 | 삼성전자주식회사 | 읽기 전압 서치 유닛을 포함하는 데이터 저장 장치 |
JP2018045387A (ja) * | 2016-09-13 | 2018-03-22 | 東芝メモリ株式会社 | メモリシステム |
US10691540B2 (en) | 2017-11-21 | 2020-06-23 | SK Hynix Inc. | Soft chip-kill recovery for multiple wordlines failure |
KR102451163B1 (ko) * | 2018-02-01 | 2022-10-06 | 삼성전자주식회사 | 반도체 메모리 장치 및 그것의 리페어 방법 |
US11182243B2 (en) | 2018-02-15 | 2021-11-23 | SK Hynix Inc. | Memory system with adaptive information propagation and method of operating such memory |
TWI685850B (zh) * | 2018-08-22 | 2020-02-21 | 大陸商深圳大心電子科技有限公司 | 記憶體管理方法以及儲存控制器 |
-
2019
- 2019-09-18 US US16/575,224 patent/US11062758B2/en active Active
- 2019-09-19 CN CN201910888255.9A patent/CN110928722A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102449969A (zh) * | 2009-03-02 | 2012-05-09 | 三菱电机研究实验室股份有限公司 | 用于软逻辑函数的电路 |
US8495479B1 (en) * | 2010-11-22 | 2013-07-23 | Marvell International Ltd. | Defect detection and correction via monitoring of syndromes and bit flips in decoder |
CN102820064A (zh) * | 2011-06-07 | 2012-12-12 | 马维尔国际贸易有限公司 | 识别和减轻存储器***中的硬错误 |
US20150220391A1 (en) * | 2011-06-07 | 2015-08-06 | Marvell World Trade Ltd. | Identification and mitigation of hard errors in memory systems |
CN108053862A (zh) * | 2014-09-26 | 2018-05-18 | 英特尔公司 | 使用来自多个存储单元和奇偶校验存储单元的可靠性信息为一个失效存储单元恢复数据 |
CN107408069A (zh) * | 2015-03-27 | 2017-11-28 | 英特尔公司 | 用于检测和缓解闪速存储器中的位线开路的装置和方法 |
CN106997777A (zh) * | 2015-09-18 | 2017-08-01 | 爱思开海力士有限公司 | 具有改进的硬解码吞吐量的vss ldpc解码器 |
Non-Patent Citations (2)
Title |
---|
PENG,JL 等: "Dynamic LLR scheme based on EM algorithm for LDPC decoding in NAND flash memory" * |
钱良,罗汉文,宋文涛: "FPGA实现WCDMA***中Turbo码解码方法" * |
Also Published As
Publication number | Publication date |
---|---|
US11062758B2 (en) | 2021-07-13 |
US20200090731A1 (en) | 2020-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109616148B (zh) | 具有解码器的存储器***、其操作方法和解码器 | |
CN110444246B (zh) | 用于存储器***的相邻辅助校正错误恢复及其方法 | |
CN108073467B (zh) | 具有硬信道信息的位翻转ldpc解码算法 | |
CN109671465B (zh) | 具有自适应读取阈值方案的存储器***及其操作方法 | |
CN109428606B (zh) | 具有ldpc解码器的存储器***及其操作方法 | |
US11681554B2 (en) | Logical address distribution in multicore memory system | |
CN110275796B (zh) | 具有混合解码方案的存储器***及其操作方法 | |
CN110444242B (zh) | 有基于深度学习的干扰校正能力的存储器***及操作方法 | |
US11182243B2 (en) | Memory system with adaptive information propagation and method of operating such memory | |
CN110277124B (zh) | 具有混合解码方案的存储器***及其操作方法 | |
CN112687323B (zh) | 具有用于解码的错误减少方案的存储器***及其操作方法 | |
CN110569143B (zh) | 用于存储器***的解码器及其方法 | |
CN112416298A (zh) | 闪速存储器的基于原始读取的物理不可克隆功能 | |
CN112216328B (zh) | 具有低复杂度解码的存储器***及其操作方法 | |
US11062758B2 (en) | Memory system to process multiple word line failures with limited storage and method of operating such memory system | |
CN110275844B (zh) | 利用自适应阈值解码的存储器***及其操作方法 | |
CN110941567B (zh) | 存储器控制器及其操作方法 | |
CN110444245B (zh) | 具有混合迭代解码能力的存储器***及其操作方法 | |
CN110047554B (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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20200327 |
|
WD01 | Invention patent application deemed withdrawn after publication |