CN112840324B - 存储器系统中的汇集式前线ecc解码器 - Google Patents

存储器系统中的汇集式前线ecc解码器 Download PDF

Info

Publication number
CN112840324B
CN112840324B CN201980066450.1A CN201980066450A CN112840324B CN 112840324 B CN112840324 B CN 112840324B CN 201980066450 A CN201980066450 A CN 201980066450A CN 112840324 B CN112840324 B CN 112840324B
Authority
CN
China
Prior art keywords
line ecc
ecc decoders
line
pooled
frame
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
Application number
CN201980066450.1A
Other languages
English (en)
Other versions
CN112840324A (zh
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.)
Kioxia Corp
Original Assignee
Kioxia Corp
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 Kioxia Corp filed Critical Kioxia Corp
Publication of CN112840324A publication Critical patent/CN112840324A/zh
Application granted granted Critical
Publication of CN112840324B publication Critical patent/CN112840324B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • 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/1048Adding 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 arrangements adapted for a specific error detection or correction feature
    • 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/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • 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
    • G11C2029/0409Online test
    • 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
    • G11C2029/0411Online error correction
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents

Abstract

本文描述的各种实施方案涉及用于校正来自例如固态驱动器SSD的多个非易失性存储器装置等存储器系统的数据的系统及方法,包含但不限于从所述多个非易失性存储器装置接收所述数据的帧,在汇集式前线错误校正码ECC解码器之间分配所述帧,由所述汇集式前线ECC解码器对所述帧进行解码以输出第一解码帧,并将所述第一解码帧返回到读取信道。

Description

存储器系统中的汇集式前线ECC解码器
技术领域
本公开大体上涉及用于改进存储器系统(例如固态驱动器(SSD))的数据完整性的系统及方法。
背景技术
传统的非易失性存储器控制器包含错误校正码(ECC)解码器,所述错误校正码解码器经配置以校正来自例如SSD的存储器系统中的非易失性存储器装置的数据。非易失性存储器的类型包含NAND快闪存储器、NOR快闪存储器、磁性RAM(MRAM)、电阻式RAM(RRAM)、相变存储器(PCM),及电池支持的易失性存储器。例如,具有N个存储器信道(例如,其中N可为4、8、16等)的多信道控制器通常具有N个信道ECC解码器,每一信道一个,以提供高带宽、独立的平行操作。多信道ECC解码器形成被称为“前线(frontline)”解码器的ECC解码器的第一层或第一线。前线解码器是来自非易失性存储器装置的数据遇到的第一错误校正解码器。在大多数情况下,“前线”解码器能够校正从非易失性存储器装置读取的数据帧,从而提供没有错误的帧。传统的控制器可具有在前线解码器未能校正所有错误的情况下使用的后续解码器(例如,“第二线(second-line)”解码器、“第三线(third-line)”解码器、“第四线(fourth-line)”解码器等)。考虑到后续解码器并非一直在使用中,后续解码器通常在用于将数据从非易失性存储器装置传达到主机的读取信道之间被共享。后续解码器位于读取信道外部且远离所述读取信道。另一方面,专用前线解码器被分配给每一读取信道,且被嵌入或以其它方式位于相应读取信道中。
这种传统的布置意味着,即使在所有情况下并非始终都充分采用高性能的ECC资源的错误校正能力,高性能的ECC资源仍必须被专用于并固定到每一读取信道。例如,在SSD中的非易失性存储器装置的生命周期的早期阶段,可能存在很少读取错误,而在生命周期的后期,可能存在更多数量级的错误。另一因素是错误率可能有很大的变化,例如在非易失性存储器中的存储器块的不同页的读取错误之间、单个装置中的存储器块之间,或存储器装置之间。由于温度变化、数据第一次被读取的时间与数据最初被写入的时间之间的时间长度(数据的保留期)、含有数据的块先前被擦除的次数(编程/擦除或P/E循环的次数),或由于与数据所在的存储器单元相邻的存储器单元上的读取/写入活动,错误率也可能有很大的变化。这些变化可经编译为个别装置或装置范围的错误特性及配置文件集合。具有应对这些变化的能力的专用前线解码器不一定会一直采用其全部能力,这是低效的。因此,在读取SSD中的不同非易失性存储器装置时,需要在所有情况下更有效地布置ECC解码器。
发明内容
在某些方面中,SSD装置的本实施方案涉及用于校正来自SSD装置的多个非易失性存储器装置的数据的系统及方法,包含但不限于:由仲裁器经由多个读取信道从所述多个非易失性存储器装置接收所述数据的帧,其中接收到的所有所述帧被编码;由所述仲裁器在多个汇集式前线错误校正码(ECC)解码器之间分配所述帧;由所述多个汇集式前线ECC解码器对所述帧进行解码以输出第一解码帧;及由所述多个汇集式前线ECC解码器将所述第一解码帧返回到所述读取信道。
附图说明
图1a展示根据一些实施方案的用于校正来自SSD装置的非易失性存储器装置的数据的系统的框图;
图lb展示根据一些实施方案的用于校正来自SSD装置的非易失性存储器装置的数据的系统的另一框图;
图2展示根据一些实施方案的用于校正来自SSD装置的非易失性存储器装置的数据的过程的流程图;及
图3展示根据一些实施方案的前线ECC解码器池的框图。
具体实施方式
如本文所提及,“前线”ECC解码器是指在来自非易失性存储器装置的数据流到另一类型的ECC解码器(例如“后续”ECC解码器)之前,所述数据首先流向的ECC解码器。即,前线ECC解码器是校正来自非易失性存储器装置的数据的帧的第一解码器。在一些实例中,数据的未校正或编码的帧在响应于确定前线ECC解码器未能校正帧中的所有错误而被发送到后续ECC解码器之前,首先被分配给前线ECC解码器中的一者。在一些情况下,当试图从非易失性存储器装置读取校正的数据时,总是考虑使用前线ECC解码器。传统上,在相应读取信道中提供前线ECC解码器,使得专用前线ECC解码器对给定读取信道的数据进行解码或校正。本文描述的布置涉及前线ECC解码器池,其被提供在读取信道外部或远离读取信道,使得可以所描述的方式共享前线ECC解码器。
“后续”ECC解码器(例如,“第二线”ECC解码器、“第三线”ECC解码器、“第四线”ECC解码器等)是指在前线ECC解码器未能校正数据中的所有错误之后这些数据流向的ECC解码器。如果前线解码器未能完全校正数据,那么依次使用第二线ECC解码器、第三线ECC解码器及第四线ECC解码器来校正数据。在数据流方面,前线ECC解码器位于非易失性存储器装置与后续ECC解码器之间。后续ECC解码器被提供在读取信道外部或远离读取信道。典型地,与后续解码器相比,前线ECC解码器可具有较弱的错误校正能力(例如,可校正较少数量的错误,或仅校正随机分布的错误而不是以群组或突发形式分布的错误)或比后续解码器更快地解码且因此可消耗较少的功率。后续解码器可采用较强的ECC能力或更慢地解码且因此消耗更多的功率,且通常在对数据进行解码及校正方面更好。在一些布置中,后续解码器可为前线解码器中的一者,但经配置以运行更长的时间段以获得更好的解码结果。
在其它方面中,申请人认识到,SSD装置的传统的控制器包含个别地嵌入在读取信道中且不被共享的信道ECC解码器(例如,前线ECC解码器)。在一些实例中,为了充分利用非易失性存储器装置,读取信道可能需要支持至少三个不同ECC强度,以用于读取由不同字线(WL)选择的存储器页。作为非限制性实例,可存在用于WL 0的一个码、用于WL 1-49的另一个码及用于WL50-95的又一个码。申请人进一步观察到,指派给在特定字线上读取特定页的解码器可能因其使用频率而变化,例如WL 0的解码器不像其它解码器那样频繁地使用。因此,在此特定例子中,在读取信道之间共享对应于WL 0的解码器将是有利的。一般来说,可在逐帧的基础上灵活地指派池中的任何解码器,以便对从任何读取信道读取的任何数据帧进行解码。单个帧也可分配给多个解码器,这些解码器可以协调的方式统一地解码。这样的实施方案可节省资源(例如,减少所需的解码器数量),从而减少占用空间及/或允许重新指派资源以加强其它解码器。
本文描述的布置涉及用于通过提供前线ECC解码器池并在所有NAND读取信道之间共享所述池而对来自非易失性存储器装置的数据进行校正及解码的系统、设备、方法及非暂时性计算机可读媒体。汇集式前线ECC解码器不在读取信道内。在一些实施方案中,仲裁器可指派汇集式前线ECC解码器中的一者来对数据进行解码或以其它方式校正。
在一些实施方案中,提供多个前线ECC解码器池。每一池包含具有相同解码能力的前线ECC解码器。解码功能可能因池而异。在此方面,每一池(包含具有相同解码能力的前线ECC解码器)可由所有读取信道共享。
在其它实施方案中,池的至少一些前线ECC解码器可具有与同一池的其它前线ECC解码器不同的解码能力。在此方面,所述池整体来说是多功能的,支持不同的解码功能,且可被称为“重叠”池。在多个此类重叠池的上下文中,每一池具有对来自任何读取信道的数据进行校正及解码所需的所有解码能力。因此,多个重叠池中的每一者都负责对不同读取信道群组的数据进行校正及解码(例如,来自读取信道群组的数据被发送到指派的重叠池)。
因此,如果前线ECC解码器池具有更多的共享资源(例如,共享的前线ECC解码器)用于对数据进行解码,那么与传统的单信道单解码器方法相比,本文所描述的布置可经配置以减少在对数据帧进行解码时读取信道的停顿。在前线ECC解码器池比传统的方法具有更少共享资源的另一种配置中,可交换资源节省,以换取因竞争存取更有限资源而造成的延迟。假设有足够的前线ECC解码器可用,那么汇集式前线ECC解码器也可以较慢的处理速率运行而不会延迟读取信道。此外,假设可在剩余的汇集式前线ECC解码器之间分配数据,那么可在不停止整个读取信道的情况下完成更新或重新配置汇集式前线ECC解码器,这将在以下详细描述。再者,由于前线ECC解码器的共享或汇集,可减少前线ECC解码器的总数。可针对具有广泛分布的错误特性或配置文件集的非易失性存储器装置来实施本文所描述的实施方案。本文所描述的实施方案是可扩展的。
为了帮助说明本发明的某些方面,图1a展示根据一些实施方案的用于校正来自非易失性存储器装置120a到120n的数据的系统100a的框图。系统100a对应于SSD装置的一部分。在一些布置中,SSD装置可为数据中心的一部分(为简洁起见而未展示)。
系统100a包含非易失性存储器装置120a到120n及控制器110。非易失性存储器装置120a到120n的实例包含但不限于NAND快闪存储器装置、NOR快闪存储器装置、磁性RAM(MRAM)、电阻式RAM(RRAM)、相变存储器(PCM),及电池支持的易失性存储器。非易失性存储器装置120a到120n形成SSD装置的非易失性存储装置。非易失性存储器装置120a到120n是快闪存储器,并包括一或多个个别非易失性裸片。因此,非易失性存储器装置120a到120n是指SSD装置内的多个非易失性存储器装置或裸片。非易失性存储器装置120a到120n可经由读取信道125a到125n传达存储在其中的数据。读取信道125a到125n是数据总线,其经配置以响应于读取命令(例如,来自主机)而将存储在非易失性存储器装置120a到120n中的数据传达到控制器110以进行处理。
控制器110可组合非易失性存储器装置120a到120n中的原始数据存储装置,使得那些非易失性存储器装置120a到120n的功能类似于单个存储装置。控制器110可包含微控制器、缓冲器、错误校正功能、FTL及快闪存储器接口模块、用于实施这种功能的软件及固件。
控制器110包含用于执行本文描述的功能的适合的处理及存储器能力。如所描述,控制器110管理非易失性存储器装置120a到120n的各种功能,包含但不限于I/O处理、读取、写入、擦除、监测、记录、错误处理、垃圾收集、损耗均衡、逻辑到物理地址映射等。因此,控制器110提供对非易失性存储器装置120a到120n及其相关联的FTL的可见度。
如所描述,控制器110提供错误处理能力。非易失性存储器装置120a到120n中存储的数据被编码以减少当数据被解码以供读取时的错误。特定来说,在控制器110中提供ECC解码器140a到140n及150,以响应于读取命令而对数据进行解码及校正。例如,控制器110包含由汇集式前线ECC解码器140a到140n所界定的前线ECC解码器池135。所属领域的一般技术人员可了解,可将任意数量的前线ECC解码器汇集在一起。汇集式前线ECC解码器140a到140n以使得汇集式前线ECC解码器140a到140n中的任何一者都不被提供于或专用于任何读取信道125a到125n的方式被聚合。汇集式前线ECC解码器140a到140n在读取信道125a到125n之间被共享。一般来说,可在逐帧的基础上灵活地指派池中的解码器140a到140n中的任何一者,以对从任何读取信道125a到125n读取的任何数据帧进行解码。单个帧也可分配给两个或多个解码器140a到140n,它们可以协调的方式一致地对所述帧进行解码。
控制器110包含仲裁器130,仲裁器130经配置以从非易失性存储器装置120a到120n接收数据,并分配或以其它方式指定汇集式前线ECC解码器140a到140n中的一者以对数据进行解码。仲裁器130包含用于执行本文描述的功能的适合的处理及存储器能力。例如,仲裁器130可为具有处理器及存储器的处理电路。在一些实施方案中,可用控制器110的处理能力来实施仲裁器130。在其它实施方案中,可用专用处理能力来实施仲裁器130。仲裁器130在操作上耦合到读取信道125a到125n以从非易失性存储器装置120a到120n接收数据(例如,数据帧)。
控制器110能够存取或在操作上耦合到动态随机存取存储器(DRAM)140,动态随机存取存储器(DRAM)140在操作上耦合到前线ECC解码器池135(例如,到汇集式前线ECC解码器140a到140n)及后续ECC解码器150。DRAM 160经配置以充当汇集式前线ECC解码器140a到140n未能解码及校正以供后续ECC解码器150存取的数据帧的缓冲器。
后续ECC解码器150包含第二线ECC解码器152、第三线ECC解码器154及第四线ECC解码器156。后续ECC解码器150可用固件来更新或配置。响应于确定前线ECC解码器140a到140n未能对帧进行解码及校正,将所述帧发送到第二线ECC解码器152以进行解码或校正。响应于确定第二线ECC解码器152未能对帧进行解码及校正,将所述帧发送到第三线ECC解码器154以进行解码或校正。响应于确定第三线ECC解码器154未能对帧进行解码及校正,将所述帧发送到第四线ECC解码器156以进行解码或校正。所属领域的一般技术人员可了解,可实施后续ECC解码器的任何数量的层或线。解码及校正的帧被缓冲在DRAM 160中,以供后续功能存取以处理解码及校正的帧(为清楚起见而未展示)。在一个实例中,未能由前线ECC解码器140a到140n解码的FJX帧被放在DRAM 160中。在此方面,后续ECC解码器150(例如,第二线ECC解码器152及/或第三线ECC解码器154)可用解码的帧覆写此类失败的帧。
在一些布置中,如图1b所展示,系统100b中的控制器110可提供一或多个额外前线ECC解码器池(例如,前线ECC解码器池137)用于SSD装置中的其它非易失性存储器装置。如所展示,非易失性存储器装置122a到122n可经由读取信道127a到127n将数据帧发送到仲裁器132。仲裁器132选择前线ECC解码器142a到142n中的一者以按照关于仲裁器130所描述的方式对帧进行解码及校正。不能以所描述方式由前线ECC解码器142a到142n校正的帧可被传递到(例如,存储并缓冲在)DRAM 160中,以供可对所述帧进行解码及校正的后续ECC解码器150存取。在一些布置中,实施控制器110的专用集成电路(ASIC)可受益于具有多个仲裁器及前线ECC解码器池,以使电路布局容易,并将仲裁器及前线ECC解码器池与快闪存储器装置信道群组的位置并置。这还可改善ASIC的布图规划布局及占用空间、功耗及空间效率。每一仲裁器可服务于数个附近的读取信道。例如,仲裁器130服务于读取信道125a到125n,其比其它仲裁器(例如,仲裁器132)及其它池(例如,前线ECC解码器池137)更靠近仲裁器130及前线ECC解码器池135。仲裁器132服务于读取信道127a到127n,其比其它仲裁器(例如,仲裁器130)及其它池(例如,前线ECC解码器池135)更靠近仲裁器132及前线ECC解码器池137。
图2展示根据一些实施方案的用于校正来自SSD装置的非易失性存储器装置的数据的过程200的流程图。参考图1到2,在210处,仲裁器130经由读取信道125到125n从非易失性存储器装置120a到120n接收数据帧。此时,接收到的所有帧尚未由任何ECC解码器解码或校正。
在220处,仲裁器130在汇集式前线ECC解码器140a到140n之间分配帧。即,仲裁器130为经由信道125a到125n接收的每一数据帧选择汇集式前线ECC解码器140a到140n中的一者。在一些布置中,仲裁器130基于汇集式前线ECC解码器140a到140n的可用性、要解码的帧的码数据的类型及由汇集式前线ECC解码器140a到140n支持的码的类型来分配帧。
如果汇集式前线ECC解码器处于联机状态,那么所述汇集式前线ECC解码器可用,否则由于维护、电力不足、故障或其类似原因,不会忙于对另一帧进行解码或不脱机。每一接收到的帧包含指示为所述帧界定的码数据类型的码元数据。每一汇集式前线ECC解码器140a到140n可支持至少一种类型的码。如果为帧界定的码数据类型与由汇集式前线ECC解码器支持的码类型匹配,那么汇集式前线ECC解码器可尝试对帧进行解码及校正。在此方面,对于给定的帧而言,仲裁器130选择可用且支持与为所述帧界定的码数据类型匹配的码类型的汇集式前线ECC解码器140a到140n中的一者。
在230处,汇集式前线ECC解码器140a到140n对帧进行解码。根据仲裁器130的分配,汇集式前线ECC解码器140a到140n中所选择的一者对数据帧进行解码及校正。
在240处,汇集式前线ECC解码器140a到140n确定帧是否被成功解码及校正。关于由汇集式前线ECC解码器140a到140n成功解码及校正的帧(240:是),在250处,将解码的帧存储并缓冲在DRAM中并标记为成功解码。汇集式前线ECC解码器140a到140n可输出解码及校正的帧,被称为第一解码帧。第一解码帧被缓冲在DRAM中,如此标记。
另一方面,对于不能由汇集式前线ECC解码器140a到140n解码或校正的帧(240:否),在260处,汇集式前线ECC解码器140a到140n将未解码的帧存储并缓冲在DRAM中,并标记为未解码,以供后续ECC解码器150存取。如所描述,后续ECC解码器150包括第二线解码器152、第三线解码器154及第四线解码器156中的一或多者。在270处,后续ECC解码器150对先前未解码及未校正的帧进行解码。在280处,后续ECC解码器150将与先前未解码及未校正的帧对应的解码及校正的帧返回到读取信道125a到125n。
关于260到280,响应于确定汇集式前线ECC解码器140a到140n未能对仲裁器130经由读取信道125a到125n接收的一些帧进行解码,汇集式前线ECC解码器140a到140n可将未解码及未校正的帧发送到DRAM 160。后续ECC解码器150可用解码的帧覆写失败的帧。DRAM160可将未解码及未校正的帧发送或以其它方式输入到第二线ECC解码器152。第二线ECC解码器152对先前未解码及未校正的帧进行解码及校正以输出第二解码帧。第二线ECC解码器152将第二解码帧存储并缓冲在DRAM中,以覆写任何先前的未解码及未校正的副本。第二解码帧被标记为被解码及校正,以通过功能进行后续处理以处理解码及校正的帧(为清楚起见而未展示)。替代地,可将先前未解码及未校正的帧放回到DRAM 160中,使得例如如果将DRAM 160视为读取信道125a到125n的一部分,那么固件可尝试对帧进行解码及校正。
如果一些帧仍未被汇集式前线ECC解码器140a到140n及第二线ECC解码器152解码及校正,那么第三线ECC解码器154可用于对那些帧进行解码及校正。例如,响应于确定汇集式前线ECC解码器140a到140n及第二线ECC解码器152未能对仲裁器130经由读取信道125a到125n接收的一些帧进行解码,第二线ECC解码器152DRAM 160可在DRAM 160中存储并缓冲或以其它方式将未解码及未校正的帧输入到第三线ECC解码器154。第三线ECC解码器154对先前未解码及未校正的帧进行解码及校正以输出第三解码帧。第三线ECC解码器154将第三解码帧存储并缓冲在DRAM中,以覆写任何先前未解码及未校正的副本。第三解码帧被标记为被解码及校正,以通过功能进行后续处理以处理解码及校正的帧(为清楚起见而未展示)。
如果一些帧仍未被汇集式前线ECC解码器140a到140n、第二线ECC解码器152及第三线ECC解码器154解码及校正,那么第四线ECC解码器156可用于对那些帧进行解码及校正。例如,响应于确定汇集式前线ECC解码器140a到140n、第二线ECC解码器152及第三线ECC解码器154未能对由仲裁器130经由读取信道125a到125n所接收的一些帧进行解码,第三线ECC解码器154或DRAM 160可将未解码及未校正的帧发送或以其它方式输入到第四线ECC解码器156。第四线ECC解码器154对先前未解码及未校正的帧进行解码及校正以输出第四解码帧。第四线ECC解码器156将第四解码帧存储并缓冲在DRAM中,以覆写任何先前的未解码及未校正的副本。第四解码帧被标记为被解码及校正,以通过功能进行后续处理以处理解码及校正的帧(为清楚起见而未展示)。
因此,前线ECC解码器135、第二线ECC解码器152、第三线ECC解码器154及第四线ECC解码器156的池对最初由仲裁器130通过信道125a到125n所接收的帧提供解码及校正的层。
在一些布置中,汇集式前线ECC解码器140a到140n的码可使用微编码硬件来实施ECC算法,所述微编码硬件可经配置以在运行时进行更改或重新编程。在这样的布置中,一或多个汇集式前线ECC解码器140a到140n可被脱机且微码被更改或更新而不会停顿任何读取信道125a到125n。这允许汇集式前线ECC解码器140a到140n被更改或更新而没有中断且性能损失最小。因此,可更改或更新汇集式前线ECC解码器140a到140n中的至少一者,同时其余的汇集式前线ECC解码器140a到140n对经由读取信道125a到125n接收的帧进行解码。仲裁器130已知悉汇集式前线ECC解码器140a到140n中的至少一者被切换成脱机以进行更新,且排除(不选择)汇集式前线ECC解码器140a到140n中的所述至少一者直到仲裁器130被通知汇集式前线ECC解码器中的至少一者重新联机为止。
在一些布置中,可汇集前线ECC解码器,使得可由给定的前线ECC解码器池支持多个ECC码。图3展示根据一些布置的前线ECC解码器池300的框图。前线ECC解码器池300包含前线ECC解码器310a到310f,在此实例中,每一前线ECC解码器310a到310f经配置以支持三个ECC码。此配置可适合的情况为,其中媒体解码器可能比强解码器及弱解码器更频繁地被使用,因此,提供比弱解码器及强解码器更多的媒体解码器。前线ECC解码器池300包含三个解码器310a到310c,每一者都支持强码320。前线ECC解码器池300包含三个解码器310d到310f,每一者都支持弱码320。前线ECC解码器310a到310f中的每一者支持两个中等强度码(例如,中等码A 330及中等码B340)。在这方面,即使每一个别前线ECC解码器支持三个ECC码,前线ECC解码器池300也可支持具有三个不同强度的四个不同的ECC码。在一些类型的解码器中,给定ECC解码器支持的ECC码越多,ECC解码器需要的存储器(例如,随机存取存储器(RAM))越多。额外存储器要求使ECC解码器更大。即,ECC解码器的大小通常随着ECC解码器支持的ECC码的数量而增加。因此,通过以所描述的方式将ECC解码器汇集在一起,可减小ECC解码器的合计的大小,从而节省控制器110的占据面积。
此外,ECC解码器的大小通常随着编码率的降低而增加。因此,如果所述池具有较少数量的解码器以支持最小编码率,那么可减小ECC解码器的大小。
在一些实例中,典型的Bose-Chaudhuri-Hocquenghem(BCH)解码器支持BCH 40(解码多达40个错误)、BCH 60(解码多达60个错误)及BCH 80(解码多达80个错误)。传统上,位于读取信道中的BCH解码器(例如,前线ECC解码器)将BCH 40、BCH 60及BCH 80组合在一起,产生大型解码器。很少需要BCH 80。传统上,使用一个支持BCH40、BCH 60及BCH 80的BCH解码器及七个仅支持BCH 40及BCH 60的BCH解码器来读取信道。根据非易失性存储器装置的配置文件,可取得其它组合。
关于乘积码,其中帧中的每一数据位可以多种方式被编码为多个帧的一部分(例如,二维位数组中的位可被两次编码为行位帧及列位帧的一部分),可汇集支持不同码的两个或多个ECC解码器,使得同一池中的不同ECC解码器可同时使用不同的码工作,而不管是否从同一读取信道接收到这些帧。例如,仲裁器130可从读取信道(例如,读取信道125a)接收两个数据帧。第一帧具有第一类型的码数据。可使用由第一前线ECC解码器支持的第一码对第一类型的码数据进行解码。第二帧具有不同于第一类型的第二类型的码数据。可使用第二前线ECC解码器支持的第二码对第二类型的码数据进行解码。如果第一前线ECC解码器可用,那么仲裁器130经配置以选择第一前线ECC解码器以对第一帧进行解码。如果第二前线ECC解码器可用,那么仲裁器130经配置以选择第二前线ECC解码器以对第二帧进行解码。这允许来自同一读取信道的帧可由两个不同的前线ECC解码器基于前线ECC解码器所支持的码类型进行解码,同时可改进操作效率,这是因为两个不同的前线ECC解码器可同时对两个帧进行解码。
在一些实例中,仲裁器130可从读取信道(例如,读取信道125a)接收两个数据帧。这两个帧具有相同类型的码数据。第一及第二前线ECC解码器支持用于对两个帧的码数据类型进行解码的码类型。如果第一前线ECC解码器可用,那么仲裁器130经配置以选择第一前线ECC解码器以对第一帧进行解码。如果第二前线ECC解码器可用,那么仲裁器130经配置以选择第二前线ECC解码器以对第二帧进行解码。因为两个帧可由两个不同的前线ECC解码器同时解码,所以这种配置改进操作效率。
传统上,有鉴于每一读取信道具有配置在其中的专用前线ECC解码器,因此特定读取信道上的所有裸片必须具有相同的类型。另一方面,对于汇集式前线ECC解码器,前线ECC解码器不专用于特定的读取信道,使得不同的裸片类型(例如,三级单元(TLC)及四级单元(QLC))可共享所述信道。此外,由特定字线(WL)寻址的QLC存储器单元有可能展现出高于正常的错误率(被称为“不良WL”),这可能超过前线ECC解码器的错误校正能力。在这种情况下,可以伪TLC(pTLC)模式操作这些单元以减少错误率,使得不良WL通常会需要不同级别的保护。因此,前线ECC解码器将需要支持QLC及pTLC操作模式,且每一模式都需要不同的ECC解码器,而前线ECC解码器池可更容易地支持这两种模式。
提供先前的描述以使所属领域的技术人员能够实施本文描述的各种方面。对这些方面的各种修改对于熟于所属领域的技术人员将是显而易见的,且本文界定的一般原理可应用到其它方面。因此,权利要求书不希望限于本文中所展示的方面,而是应被赋予与语言权利要求书一致的完整范围,其中除非特别提及,单数形式的组件并不希望表示“一个且仅一个”而是“一或多个”。除非另外特别说明,否则术语“一些”是指一或多个。与所属领域的技术人员已知或后来知悉的在先前说明中所描述的各个方面的组件的所有的结构及功能等同物,通过引用的方式明确并入本文中,且希望由权利要求书所涵盖。而且,无论在申请专利范围中是否明确叙述本文公开的内容,都不希望将其公开给公众。除非使用词组“用于…的手段”明确叙述所述元素,否则没有一个权利要求元素应被解释为手段功能用语。
应理解,所公开的固持中步骤的特定顺序或层次是说明的方法的实例。基于设计偏好,应理解,可重新布置过程中步骤的特定顺序或层次结构,而同时仍在先前描述的范围内。所附的权利要求书以实例顺序呈现各步骤的元素,并不希望限于所呈现的特定顺序或层次。
提供对所公开的实施方案的先前描述以使所属领域的技术人员能够制造或使用所公开的主题。对这些实施方案的各种修改对于所属领域的技术人员而言将是明显的,且在不脱离先前说明的精神或范围的情况下,本文中界定的一般原理可适用于其它实施方案。因此,先前的说明不希望局限于本文中所展示的实施方案,而是应被赋予与本文中所公开的原理及新颖特征一致的最广范围。
仅作为实例提供绘示及描述的各种实例,以说明权利要求书的各种特征。然而,关于任何给定实例展示及描述的特征不必局限于相关联的实例,且可与展示及描述的其它实例一起使用或组合。此外,权利要求书不希望受到任何一个实例的限制。
前述方法描述及过程流程图仅作为说明性实例而提供,并不希望要求或暗示各种实例的步骤必须以所呈现的顺序执行。如所属领域的技术人员将理解者,前述实例中的步骤顺序可以任何顺序执行。例如“之后”、“然后”、“下一个”等词语不希望限制步骤的顺序;这些单词仅用于透过方法的描述指导读者。此外,例如,使用冠词“一”、“一个”或“所述”以单数形式对权利要求元素的任何引用均不应被解释为将元素限制为单数形式。
结合本文公开的实例描述的各种说明性逻辑块、模块、电路及算法步骤可经实施为电子硬件、计算机软件或两者的组合。为清楚说明硬件与软件的此种可互换性,以上已大体上根据其功能描述各种说明性的组件、块、模块、电路及步骤。将此种功能性实施为硬件或是软件取决于特定的应用及施加在整个系统上的设计约束。技术人员可针对每一特定应用以变化的方式来实施所描述的功能,但这种实施方案决定不应被解释为导致脱离本发明的范围。
用于实施结合本文公开的实例描述的各种说明性逻辑、逻辑块、模块及电路的硬件可利用设计为执行本文描述的功能的通用处理器、DSP、ASIC、PGA或其它可编程逻辑装置、离散栅极或晶体管逻辑、离散硬件组件或其任意组合加以实施或执行。通用处理器可为微处理器,但可替代地,处理器可为任何常规处理器、控制器、微控制器或状态机。处理器还可经实施为计算装置的组合,例如,DSP及微处理器、多个微处理器、与DSP核心结合的一或多个微处理器,或任何其它这样的配置。替代地,一些步骤或方法可由特定于给定功能的电路执行。
在一些示范性实例中,可以硬件、软件、固件或其任意组合来实施所描述的功能。如果以软件实施,那么功能可作为一或多个指令或代码存储在非易失性计算机可读存储媒体或非易失性处理器可读存储媒体上。非易失性存储器的实例包含但不限于NAND快闪存储器、NOR快闪存储器、磁性MRAM、RRAM、PCM,及电池支持的易失性存储器。本文公开的方法或算法的步骤可体现在处理器可执行软件模块中,所述处理器可执行软件模块可驻留在非易失性计算机可读或处理器可读存储媒体上。非易失性计算机可读或处理器可读存储媒体可为可由计算机或处理器存取的任何存储媒体。通过实例而非限制,这种非易失性计算机可读或处理器可读存储媒体可包含RAM、ROM、EEPROM、EEPROM、快闪存储器、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置,或可用于以指令或数据结构形式存储所需程序代码且可由计算机存取的任何其它媒体。本文使用的磁盘及盘片包含光盘(CD)、激光光盘、光盘、数字多功能光盘(DVD)、软盘及蓝光光盘,其中,磁盘通常以磁性方式复制数据,而光盘则通过激光以光学方式复制数据。以上的组合也包含在非易失性计算机可读及处理器可读媒体的范畴内。另外,方法或算法的操作可作为码及/或指令的一个或任何组合或集合驻留在非易失性处理器可读存储媒体及/或计算机可读存储媒体上,其可被并入计算机程序产品中。
提供对所公开实例的前述描述以使任何所属领域的技术人员够制造或使用本发明。对这些实施方案的各种修改对于所属领域的技术人员而言将是明显的,且在不脱离先前说明的精神或范围的情况下,本文中界定的一般原理可适用于其它实施方案。因此,先前的说明不希望局限于本文中所展示的实施方案,而应被赋予与本文中所公开的原理及新颖特征一致的最广范围。

Claims (17)

1.一种用于校正数据的方法,所述数据是从存储器系统的多个非易失性存储器装置读取并存储在存储器缓冲器中,所述方法包括:
由仲裁器经由多个读取信道从所述多个非易失性存储器装置接收所述数据的帧,其中接收到的所有所述帧被编码;
由所述仲裁器在多个汇集式前线ECC解码器之间分配所述帧;
由所述多个汇集式前线ECC解码器对所述帧进行解码以输出第一解码帧;及
由所述多个汇集式前线ECC解码器将所述第一解码帧存储到所述存储器缓冲器中。
2.根据权利要求1所述的方法,其进一步包括:
确定所述多个汇集式前线ECC解码器未能对一些所述帧进行解码;
将所述一些所述帧存储到所述存储器缓冲器中以供多个第二线ECC解码器存取;
由所述多个第二线ECC解码器对所述一些所述帧进行解码以输出第二解码帧;及
由所述多个第二线ECC解码器将所述第二解码帧存储到所述存储器缓冲器中。
3.根据权利要求1所述的方法,其进一步包括:
确定所述多个汇集式前线ECC解码器及多个第二线ECC解码器未能对一些所述帧进行解码;
将所述一些所述帧存储到多个第三线ECC解码器中;
由所述多个第三线ECC解码器对所述一些所述帧进行解码以输出第三解码帧;及
由所述多个第三线ECC解码器将所述第三解码帧存储到所述存储器缓冲器中。
4.根据权利要求1所述的方法,其中所述多个汇集式前线ECC解码器在所述多个读取信道外部。
5.根据权利要求1所述的方法,其进一步包括在所述多个汇集式前线ECC解码器中的其它者正在对所述帧进行解码时,更新所述多个汇集式前线ECC解码器中的至少一者。
6.根据权利要求1所述的方法,其中基于所述汇集式前线ECC解码器的可用性、所述帧的码数据的类型及由所述汇集式前线ECC解码器支持的码的类型,在所述多个汇集式前线ECC解码器之间分配所述帧。
7.根据权利要求6所述的方法,其中
所述帧中的第一帧具有与由第一汇集式前线ECC解码器支持的码的类型对应的码数据的类型;
所述第一汇集式前线ECC解码器可用;且
所述第一帧经分配以由所述第一汇集式前线ECC解码器解码。
8.根据权利要求1所述的方法,其中
所述帧包括从所述多个读取信道中的同一读取信道接收的第一帧及第二帧;且
在所述多个汇集式前线ECC解码器之间分配所述帧包括将所述第一帧分配给所述多个汇集式前线ECC解码器中的第一者及将所述第二帧分配给所述多个汇集式前线ECC解码器中的第二者。
9.根据权利要求8所述的方法,其中所述多个汇集式前线ECC解码器中的所述第一者与所述多个汇集式前线ECC解码器中的所述第二者支持不同的码。
10.根据权利要求8所述的方法,其中所述多个汇集式前线ECC解码器中的所述第一者与所述多个汇集式前线ECC解码器中的所述第二者支持相同的码。
11.一种存储器系统的存储器控制器,其包括:
多个汇集式前线ECC解码器,其经配置以对从多个非易失性存储器装置读取的数据进行解码;
多个后续ECC解码器,其经配置以对未能由所述多个汇集式前线ECC解码器解码的数据进行解码;以及
在操作上耦合到多个读取信道的仲裁器,其中所述仲裁器经配置以:
经由所述多个读取信道从所述多个非易失性存储器装置接收所述数据的帧;及
在所述多个汇集式前线ECC解码器之间分配所述帧。
12.根据权利要求11所述的存储器控制器,其中所述多个汇集式前线ECC解码器在多个读取信道外部。
13.根据权利要求11所述的存储器控制器,其中所述仲裁器基于所述汇集式前线ECC解码器的可用性、所述帧的码数据的类型及由所述汇集式前线ECC解码器支持的码的类型而在所述多个汇集式前线ECC解码器之间分配所述帧。
14.根据权利要求11所述的存储器控制器,其中
所述多个汇集式前线ECC解码器中的至少一者在所述多个汇集式前线ECC解码器中的其它者正在对所述帧进行解码时被更新。
15.一种存储器系统,其包括:
第一多个非易失性存储器装置;
存储器控制器,其包括:
第一多个汇集式前线ECC解码器,其经配置以对由所述第一多个非易失性存储器装置存储的数据进行解码;
多个后续ECC解码器,其经配置以对未能由所述第一多个汇集式前线ECC解码器解码的数据进行解码;及
在操作上耦合到第一多个读取信道的第一仲裁器,其中所述第一仲裁器经配置以:
经由所述第一多个读取信道从所述第一多个非易失性存储器装置接收所述数据的第一帧;及
在所述第一多个汇集式前线ECC解码器之间分配所述第一帧;及
所述第一多个读取信道,其在操作上耦合到所述第一多个非易失性存储器装置及所述存储器控制器。
16.根据权利要求15所述的存储器系统,其进一步包括:
第二多个非易失性存储器装置;
第二多个读取信道,其在操作上耦合到所述第二多个非易失性存储器装置及所述存储器控制器,其中
所述存储器控制器进一步包括第二多个汇集式前线ECC解码器,其经配置以对由所述第二多个非易失性存储器装置存储的数据进行解码。
17.根据权利要求16所述的存储器系统,其中所述存储器控制器进一步包括在操作上耦合到所述第二多个读取信道的第二仲裁器,其中所述第二仲裁器经配置以:
经由所述第二多个读取信道从所述第二多个非易失性存储器装置接收所述数据的第二帧;及
在所述第二多个汇集式前线ECC解码器之间分配所述第二帧。
CN201980066450.1A 2018-09-07 2019-09-05 存储器系统中的汇集式前线ecc解码器 Active CN112840324B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/125,283 2018-09-07
US16/125,283 US10747613B2 (en) 2018-09-07 2018-09-07 Pooled frontline ECC decoders in memory systems
PCT/IB2019/057495 WO2020049500A1 (en) 2018-09-07 2019-09-05 Pooled frontline ecc decoders in memory systems

Publications (2)

Publication Number Publication Date
CN112840324A CN112840324A (zh) 2021-05-25
CN112840324B true CN112840324B (zh) 2024-03-15

Family

ID=69720796

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980066450.1A Active CN112840324B (zh) 2018-09-07 2019-09-05 存储器系统中的汇集式前线ecc解码器

Country Status (4)

Country Link
US (1) US10747613B2 (zh)
CN (1) CN112840324B (zh)
TW (1) TWI803693B (zh)
WO (1) WO2020049500A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200034420A (ko) * 2018-09-21 2020-03-31 삼성전자주식회사 복수의 에러 정정 기능을 갖는 메모리 장치 및 메모리 시스템과 그 동작 방법
US11556420B2 (en) * 2021-04-06 2023-01-17 Macronix International Co., Ltd. Managing error correction coding in memory systems
US11556274B1 (en) 2021-09-01 2023-01-17 Western Digital Technologies, Inc. Endurance groups ECC allocation
US11640267B2 (en) 2021-09-09 2023-05-02 Western Digital Technologies, Inc. Method and system for maintenance allocation between NVM groups

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101681281A (zh) * 2007-06-07 2010-03-24 美光科技公司 检测出现的坏块
CN101868830A (zh) * 2007-11-21 2010-10-20 美光科技公司 容错非易失性集成电路存储器
JP2012137994A (ja) * 2010-12-27 2012-07-19 Toshiba Corp メモリシステムおよびその制御方法
CN103329103A (zh) * 2010-10-27 2013-09-25 Lsi公司 用于基于闪存的数据存储的自适应ecc技术

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8892980B2 (en) 2010-06-15 2014-11-18 Fusion-Io, Inc. Apparatus, system, and method for providing error correction
US8595415B2 (en) 2011-02-02 2013-11-26 Micron Technology, Inc. At least semi-autonomous modules in a memory system and methods
US8990640B2 (en) * 2012-11-16 2015-03-24 International Business Machines Corporation Selective posted data error detection based on request type
US9881656B2 (en) * 2014-01-09 2018-01-30 Qualcomm Incorporated Dynamic random access memory (DRAM) backchannel communication systems and methods
US9208863B1 (en) * 2014-05-19 2015-12-08 Kabushiki Kaisha Toshiba Memory system and method of controlling memory system
US9407294B2 (en) * 2014-07-07 2016-08-02 Kabushi Kaisha Toshiba. Non-volatile memory controller with error correction (ECC) tuning via error statistics collection
US10089175B2 (en) * 2015-12-11 2018-10-02 Marvell World Trade Ltd. Queuing of decoding tasks according to priority in NAND flash controller
KR20170076350A (ko) * 2015-12-24 2017-07-04 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
TWI628660B (zh) * 2017-09-19 2018-07-01 群聯電子股份有限公司 解碼方法、記憶體控制電路單元以及記憶體儲存裝置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101681281A (zh) * 2007-06-07 2010-03-24 美光科技公司 检测出现的坏块
CN101868830A (zh) * 2007-11-21 2010-10-20 美光科技公司 容错非易失性集成电路存储器
CN103329103A (zh) * 2010-10-27 2013-09-25 Lsi公司 用于基于闪存的数据存储的自适应ecc技术
JP2012137994A (ja) * 2010-12-27 2012-07-19 Toshiba Corp メモリシステムおよびその制御方法

Also Published As

Publication number Publication date
TW202034167A (zh) 2020-09-16
CN112840324A (zh) 2021-05-25
WO2020049500A1 (en) 2020-03-12
US20200081773A1 (en) 2020-03-12
US10747613B2 (en) 2020-08-18
TWI803693B (zh) 2023-06-01

Similar Documents

Publication Publication Date Title
CN112840324B (zh) 存储器系统中的汇集式前线ecc解码器
US9753653B2 (en) High-priority NAND operations management
CN111831469A (zh) 错误恢复方法、非暂时性计算机存储媒体及存储器子系统
US8902671B2 (en) Memory storage device, memory controller thereof, and method for programming data thereof
US8694748B2 (en) Data merging method for non-volatile memory module, and memory controller and memory storage device using the same
US10838638B2 (en) Flash memory controller, method for managing flash memory module and associated electronic device
CN113539342A (zh) 主动读取干扰缓解
CN112771492A (zh) 支持非确定性命令的存储器子系统
CN112053733A (zh) 故障敏感存储器页面的选择性加速取样
JP2022553791A (ja) 目的ブロックの動的オーバープロビジョニング割り当て
KR20220049027A (ko) 가비지 수집을 위한 메모리 컴포넌트에 대한 에러 제어 동작 수행
US20200133585A1 (en) Relocating data to low latency memory
US8533549B2 (en) Memory system and computer system
US11269645B2 (en) Storage system and method for implementing an encoder, decoder, and/or buffer using a field programmable gate array
US11360885B2 (en) Wear leveling based on sub-group write counts in a memory sub-system
CN112346901A (zh) 具有时变错误率的存储器中的抢先式读取刷新
CN112699064A (zh) 存储器系统、存储器控制器及其操作方法
CN113454601B (zh) 用于n维错误校正码的高效解码的系统及方法
US9208863B1 (en) Memory system and method of controlling memory system
CN112328508A (zh) 多层存储器中的层交错
JP2009199242A (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
US11853617B2 (en) Managing write disturb based on identification of frequently-written memory units
CN117435519A (zh) 用于减少块转移损失的缓冲器分配
CN117457053A (zh) 使用缺陷率信息的存储器块编程
WO2023014739A1 (en) Managing write disturb for units of a memory device using weighted write disturb counts

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