CN112951313A - 用于纠错的存储控制器、包括其的存储设备及其操作方法 - Google Patents

用于纠错的存储控制器、包括其的存储设备及其操作方法 Download PDF

Info

Publication number
CN112951313A
CN112951313A CN202011457064.6A CN202011457064A CN112951313A CN 112951313 A CN112951313 A CN 112951313A CN 202011457064 A CN202011457064 A CN 202011457064A CN 112951313 A CN112951313 A CN 112951313A
Authority
CN
China
Prior art keywords
decoder
data
level decoder
syndrome weight
low level
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.)
Granted
Application number
CN202011457064.6A
Other languages
English (en)
Other versions
CN112951313B (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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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
Priority claimed from KR1020190164302A external-priority patent/KR20210074425A/ko
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN112951313A publication Critical patent/CN112951313A/zh
Application granted granted Critical
Publication of CN112951313B publication Critical patent/CN112951313B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

一种包括高级别解码器和低级别解码器的存储控制器的操作方法,所述方法包括生成作为对从非易失性存储器设备读取的初始数据进行解码的结果的第一数据,以及指示第一数据的错误级别的第一校正子权重。当第一校正子权重是特定值时,第一数据被输出到主机。当第一校正子权重超过参考值时,选择具有第一纠错能力的高级别解码器来解码第一数据,并且当第一校正子权重等于或小于参考值时,选择具有低于第一纠错能力的第二纠错能力的低级别解码器来解码第一数据。

Description

用于纠错的存储控制器、包括其的存储设备及其操作方法
相关申请的交叉引用
本申请要求在韩国知识产权局于2019年12月11日提交的韩国专利申请第10-2019-0164302号以及在USPTO于2020年6月30日提交的美国专利申请第16/917,101号的优先权,其公开内容通过引用整体并入本文。
技术领域
与本公开一致的装置、设备和方法涉及半导体存储器,更具体地,涉及用于纠错的存储控制器、包括该存储控制器的存储设备及其操作方法。
背景技术
半导体存储器支持用于存储数据的写操作和用于读取所存储的数据的读操作。当在半导体存储器中写入数据时,当在半导体存储器中存储数据时,或者当从半导体存储器中读取数据时,可能发生错误。可以通过单独的纠错设备来校正该错误。
在制造半导体器件之后不久的初始场景中,可能发生低级别的错误。可能需要用于以高速处理该低级别错误的错误处理设备。另一方面,在半导体器件被重复使用之后的稍后的场景中,可能发生高级别的错误。可能需要具有高纠错能力的错误处理设备来处理该高级别错误。然而,在为多个半导体存储器中的每一个实施多个错误处理设备以应对这两种场景的情况下,芯片面积可能增加,或者特定情况下的吞吐量可能降低。
发明内容
一个方面是提供一种存储控制器、包括其的存储设备及其操作方法,在该存储控制器中,基于数据的错误级别而选择的纠错设备校正错误。
另一方面是提供一种存储控制器、包括其的存储设备及其操作方法,该存储控制器用于通过组合具有低纠错力(error correction capacity)的纠错设备而像具有高纠错力的纠错设备那样来校正错误。
根据示例性实施例的一个方面,提供了一种包括高级别解码器和低级别解码器的存储控制器的操作方法,包括:生成作为对从非易失性存储器设备读取的初始数据进行解码的结果的第一数据,以及指示第一数据的错误级别的第一校正子权重,当第一校正子权重是特定值时将第一数据输出到主机,当第一校正子权重超过参考值时选择具有第一纠错能力的高级别解码器来解码第一数据,以及当第一校正子权重等于或小于参考值时选择具有低于第一纠错能力的第二纠错能力的低级别解码器来解码第一数据。
根据示例性实施例的另一方面,提供了一种存储控制器,包括:纠错码(errorcorrection code,ECC)核心设备,其包括与被配置为存储初始数据的非易失性存储器设备连接的解码器、具有第一纠错能力的高级别解码器和具有低于第一纠错能力的第二纠错能力的低级别解码器;以及ECC调度器,被配置为从解码器接收第一校正子权重,当第一校正子权重超过参考值时将用于请求解码第一数据的请求信号输出到高级别解码器,以及当第一校正子权重等于或小于参考值时将请求信号输出到低级别解码器,其中,解码器从非易失性存储器设备读取初始数据,生成作为解码所读取的初始数据的结果的第一数据,并且生成指示第一数据的错误级别的第一校正子权重,当第一校正子权重是特定值时将第一数据输出到主机,并且当第一校正子权重不是特定值时将第一数据输出到接收请求信号的高级别解码器或低级别解码器。
根据示例性实施例的又一方面,提供了一种存储设备,包括:第一级解码器,其具有第一纠错能力,并且被配置为生成作为对从非易失性存储器设备读取的初始数据进行解码的结果的第一数据,并且生成指示第一数据的错误级别的第一校正子权重;第二级解码器,其具有高于第一纠错能力的第二纠错能力;第三级解码器,其具有高于第二纠错能力的第三纠错能力;以及ECC调度器,被配置为接收第一校正子权重,当第一校正子权重超过参考值时将用于请求解码第一数据的请求信号输出到第三级解码器,并且当第一校正子权重等于或小于参考值时将请求信号输出到第二级解码器,其中,第一级解码器被配置为当第一校正子权重是特定值时将第一数据输出到主机,并且当第一校正子权重不是特定值时将第一数据输出到接收请求信号的第二级解码器或第三级解码器。
附图说明
通过参考附图详细描述其示例性实施例,上述方面和其他方面将变得显而易见,其中:
图1是示出根据示例性实施例的存储系统的框图;
图2是示出根据示例性实施例的图1的存储控制器的框图;
图3是示出根据示例性实施例的图1的存储设备的框图;
图4是示出根据示例性实施例的图1的存储控制器的操作方法的流程图;
图5A是示出根据示例性实施例的实施图4的操作方法的存储设备的框图;
图5B是示出根据示例性实施例的实施图4的操作方法的存储设备的框图;
图6是示出根据示例性实施例的图1的存储控制器的操作方法的流程图;
图7是示出根据示例性实施例的实施图6的操作方法的存储设备的框图;
图8A是示出根据相关技术的存储设备中的数据流的框图;
图8B是示出根据示例性实施例的存储设备中根据图6的操作方法的数据流的框图;
图9是示出根据示例性实施例的图1的存储控制器的操作方法的流程图;
图10是示出根据示例性实施例的实施图9的操作方法的存储设备的框图;
图11是示出根据示例性实施例的图1的存储控制器的操作方法的流程图;
图12是示出根据示例性实施例的实施图11的操作方法的存储设备的框图;
图13A是示出根据示例性实施例的图12的第一级解码器所执行的奇偶校验操作的示意图;
图13B是示出根据示例性实施例的图13A的奇偶校验矩阵的示意图;
图14是示出根据示例性实施例的图12的第一级核心解码器的框图;
图15是示出根据示例性实施例的图12的第一级子解码器的框图;
图16是示出根据示例性实施例的如何组合图12的第一级解码器的框图;
图17是示出根据示例性实施例的图16的组合的解码器存储器所处理的边沿值的示意图;
图18是示出根据示例性实施例的ECC核心设备所输出的校正子权重的曲线图;以及
图19是示出根据示例性实施例的存储设备的框图。
具体实施方式
下面,各种示例性实施例可以被详细且清楚地描述,以致于本领域普通技术人员可以容易地实施各种示例性实施例。在说明书中使用的术语“单元”、“模块”等可以以被配置为执行将在说明书中描述的各种功能的硬件、软件或其组合的形式来实施。
图1是示出根据示例性实施例的存储系统的框图。参考图1,存储系统100可以包括主机110和存储设备1000。在示例性实施例中,存储系统100可以是计算系统,其被配置为处理各种信息,诸如个人计算机(PC)、笔记本计算机、膝上型计算机、服务器、工作站、平板PC、智能手机、数码相机或黑盒子。
主机110可以控制存储系统100的整体操作。例如,主机110可以将数据存储到存储设备1000,或者可以读取存储在存储设备1000中的数据。在主机110的控制下,存储设备1000可以存储数据或者可以向主机110提供存储的数据。存储设备1000可以包括存储控制器1100和非易失性存储器设备1200。
存储控制器1100可以将数据存储到非易失性存储器设备1200,或者可以读取存储在非易失性存储器设备1200中的数据。非易失性存储器设备1200可以在存储控制器1100的控制下操作。
在示例性实施例中,非易失性存储器设备1200可以包括各自存储数据的例如多个NAND闪存,例如,第一个到第N个NAND闪存。也就是说,存储设备1000可以是具有多个NAND通道的存储设备。然而,示例性实施例不限于此。例如,非易失性存储器设备1200可以是即使在电源关闭时也保留存储在其中的数据的存储设备之一,诸如相变随机存取存储器(PRAM)、磁RAM(MRAM)、电阻RAM(RRAM)和铁电RAM(FRAM)。
存储控制器1100可以包括ECC调度器1110和ECC核心设备1120。ECC调度器1110可以取决于从非易失性存储器设备1200读取的数据的错误级别,来选择将会校正所读取的数据的错误的错误处理设备。例如,错误处理设备可以是校正从非易失性存储器设备1200读取的数据的错误的解码器。错误级别可以表示在所读取的数据中存在多少错误比特,其数量不满足错误检测规则。
ECC核心设备1120可以包括具有不同纠错力的多个错误处理设备。纠错力可以表示所读取的数据中错误处理设备能够校正的错误比特的数量。
在示例性实施例中,包括在ECC核心设备1120中的错误处理设备可以具有给定级别的纠错力。例如,在从非易失性存储器设备1200读取的数据的错误超过错误处理设备的纠错力的情况下,从非易失性存储器设备1200读取的数据的错误可能不会被该错误处理设备校正。
在示例性实施例中,ECC核心设备1120可以包括高级别解码器和低级别解码器。例如,高级别解码器可以是其特征在于纠错能力高、纠错速度慢并且硬件尺寸大的错误处理设备。低级别解码器可以是其特征在于纠错速度高、硬件尺寸小并且纠错能力低的错误处理设备。
在示例性实施例中,主要发生在半导体存储器被制造之后不久所应用的初始场景中的错误可能是低级别错误。另一方面,主要发生在半导体存储器被重复使用之后所应用的稍后场景中的错误可能是高级别的错误。
在相关技术中,低级别解码器和高级别解码器被分配给包括在非易失性存储器设备中的多个NAND闪存中的每个NAND闪存。这种配置导致存储设备的芯片面积增加。
根据示例性实施例,存储设备1000可以具有全共享结构,其中包括在ECC核心设备1120中的每个错误处理设备访问包括在非易失性存储器设备1200中的所有第一个到第N个NAND闪存。由于第一个到第N个NAND闪存共享错误处理设备,因此与相关技术相比,可以省略一些错误处理设备。相应地,存储设备1000的芯片面积可以减小。
图2是示出根据示例性实施例的图1的存储控制器1100的框图。参考图1和图2,存储控制器1100可以包括ECC调度器1110、ECC核心设备1120、处理器1130、静态RAM(SRAM)1140、只读存储器(ROM)1150、非易失性存储器接口电路1160以及主机接口电路1170。
ECC调度器1110可以从包括在ECC核心设备1120中的错误处理设备当中选择将会校正错误的错误处理设备。ECC核心设备1120可以包括多个错误处理设备。下面将参考附图更全面地描述包括在ECC核心设备1120中的错误处理设备的配置以及ECC调度器1110选择错误处理设备的方法。
处理器1130可以控制存储控制器1100的整体操作。处理器1130可以包括中央处理单元(CPU)、微处理器或应用处理器等。SRAM 1140可以用作存储控制器1100的缓冲存储器、高速缓存存储器或工作存储器。ROM 1150可以以固件的形式存储存储控制器1100进行操作所必需的各种信息。
在示例性实施例中,ECC调度器1110和ECC核心设备1120可以以软件、硬件或其组合的形式来实施。例如,ROM 1150可以存储ECC调度器1110的操作方法。SRAM 1140可以存储包括在ECC核心设备1120中的错误处理设备所输出的数据。处理器1130可以输出用于控制ECC调度器1110和ECC核心设备1120的命令。
存储控制器1100可以通过非易失性存储器接口电路1160与非易失性存储器设备1200通信。在示例性实施例中,非易失性存储器接口电路1160可以基于NAND接口来实施。
存储控制器1100可以通过主机接口电路1170与主机110通信。在示例性实施例中,主机接口电路1170可以基于各种接口中的至少一个来实施,诸如SATA(串行ATA)接口、PCIe(外围组件互连高速)接口、SAS(串行附接SCSI)接口、NVMe(非易失性存储器高速)接口和UFS(通用闪速存储)接口等。
图3是示出根据示例性实施例的图1的存储设备1000的框图。参考图1和图3,举例说明了ECC调度器1110、ECC核心设备1120、SRAM 1140和非易失性存储器设备1200。
ECC调度器1110可以选择ECC核心设备1120中的解码器,并且可以将用于请求解码的请求信号RQ输出到所选择的解码器。ECC调度器1110可以从ECC核心设备1120接收校正子权重(syndrome weight)SW。校正子权重SW可以指示从ECC核心设备1120中已对解码数据DATAd执行解码的所选择的解码器输出的解码数据DATAd的错误级别。
在示例性实施例中,ECC调度器1110可以输出请求解码初始数据DATAi的请求信号RQ。初始数据DATAi可以是存储在非易失性存储器设备1200中的并且尚未被解码的数据。在一些示例性实施例中,包括在第一级(Lv1)ECC核心设备1121中的第一级解码器可以被选择为将执行初始数据DATAi的解码的解码器,而不管校正子权重SW如何。
在示例性实施例中,ECC调度器1110可以基于接收到的校正子权重SW来选择具有与解码数据DATAd的错误级别相对应的纠错力的解码器。例如,ECC调度器1110可以接收指示错误级别为第二级别的校正子权重SW。ECC调度器1110可以选择包括在第二级(Lv2)ECC核心设备1122中的第二级解码器,并且可以将用于请求对解码数据DATAd进行附加解码的请求信号RQ输出到所选择的第二级解码器。
ECC核心设备1120可以从ECC调度器1110接收请求信号RQ。ECC核心设备1120可以基于接收到的请求信号RQ从SRAM 1140读取缓冲数据DATAb。ECC核心设备1120可以将通过解码所读取的缓冲数据DATAb而生成的解码数据DATAd输出到SRAM 1140。ECC核心设备1120可以将指示解码数据DATAd的错误级别的校正子权重SW输出到ECC调度器1110。
在示例性实施例中,ECC核心设备1120可以包括第一级(Lv1)ECC核心设备1121、第二级(Lv2)ECC核心设备1122和第三级(Lv3)ECC核心设备1123。第一级ECC核心设备1121可以包括“N”个第一级解码器。第二级ECC核心设备1122可以包括“M”个第二级解码器。第三级ECC核心设备1123可以包括“K”个第三级解码器。这里,“N”可以多于“M”,“M”可以多于“K”。
与第二级解码器相比,第一级解码器的特征可以在于尺寸更小,处理速度更高,并且纠错能力更低。与第三级解码器相比,第二级解码器的特征可以在于尺寸更小,处理速度更高,并且纠错能力更低。换句话说,第一级解码器在第一级解码器、第二级解码器和第三级解码器当中具有最小尺寸、最高处理速度和最低纠错能力,并且第三级解码器在第一级解码器、第二级解码器和第三级解码器当中具有最大尺寸、最低处理速度和最高纠错能力。
在示例性实施例中,不同于图3所示的示例,ECC核心设备1120可以直接从非易失性存储器设备1200接收初始数据DATAi。ECC核心设备1120可以将通过解码初始数据DATAi而生成的解码数据DATAd输出到SRAM 1140。
非易失性存储器设备1200可以存储初始数据DATAi。初始数据DATAi可以包括用户数据的一部分,诸如音乐、图像和视频。非易失性存储器设备1200可以在主机110的控制下将初始数据DATAi输出到SRAM 1140。
SRAM 1140可以从非易失性存储器设备1200接收初始数据DATAi。SRAM 1140可以将接收到的初始数据DATAi存储为缓冲数据DATAb。SRAM 1140可以将缓冲数据DATAb输出到ECC核心设备1120。SRAM 1140可以从ECC核心设备1120接收解码数据DATAd。SRAM 1140可以将接收到的解码数据DATAd存储为缓冲数据DATAb。也就是说,SRAM 1140可以用作缓冲存储器。
图4是示出图1的存储控制器的操作方法的流程图。参考图1和图4,举例说明了根据示例性实施例的存储设备的操作方法。
在操作S110中,存储控制器1100可以读取存储在非易失性存储器设备1200中的初始数据DATAi。初始数据DATAi可以是通过基于奇偶校验比特编码用户数据的一部分(例如,音乐、图像或视频)从而具有用于检测错误的错误检测规则而生成的数据。
在示例性实施例中,存储控制器1100可以基于所读取的初始数据DATAi生成指示初始数据DATAi的错误级别的初始校正子权重SWi。存储控制器1100可以基于初始校正子权重SWi确定用于选择与错误级别相对应的解码器的参考值REF。可替换地,参考值REF可以是用户在解码之前输入的值。
在操作S111中,存储控制器1100可以执行第一解码。例如,存储控制器1100可以对从非易失性存储器设备1200读取的初始数据DATAi进行解码。存储控制器1100可以生成第一数据DATA1和第一校正子权重SW1。第一数据DATA1可以是通过解码初始数据DATAi而生成的数据。第一校正子权重SW1可以指示第一数据DATA1的错误级别。
在操作S112中,可以通过确定第一校正子权重SW1是否为特定值来确定第一数据DATA1中是否存在错误。例如,可以在操作S111之后确定第一校正子权重SW1的值是否为“0”。第一校正子权重SW1的值为“0”可以意味着第一数据DATA1中不存在错误。在这种情况下,存储控制器1100可以将第一数据DATA1输出到主机110,并且可以终止操作。当第一校正子权重SW1的值不为“0”时,存储控制器1100可以执行操作S120。
在操作S120中,存储控制器1100可以将初始数据DATAi更新为第一数据DATA1。例如,存储控制器1100可能仍然在其中存储了在操作S110中读取的初始数据DATAi,并且因此存储控制器1100可以将第一数据DATA1重写在存储的初始数据DATAi上。
在操作S130中,存储控制器1100可以比较第一校正子权重SW1和参考值REF。当第一校正子权重SW1超过参考值REF时,可以执行操作S131。当第一校正子权重SW1等于或小于参考值REF时,可以执行操作S132。
在操作S131中,存储控制器1100可以选择第三级解码器。存储控制器1100可以输出用于请求所选择的第三级解码器解码第一数据DATA1的请求信号RQ。在这种情况下,第三级解码器可以是比第二级解码器具有相对更高的纠错能力的错误处理设备。
在操作S132中,存储控制器1100可以选择第二级解码器。存储控制器1100可以输出用于请求所选择的第二级解码器解码第一数据DATA1的请求信号RQ。在这种情况下,第二级解码器可以是比第三级解码器具有相对更低的纠错能力的错误处理设备。
在操作S140中,包括在存储控制器1100中的解码器可以响应于请求信号RQ而读取存储在存储控制器1100中的第一数据DATA1。在这种情况下,解码器可以是在操作S131中接收请求信号RQ的第三级解码器,或者是在操作S132中接收请求信号RQ的第二级解码器。
在操作S141中,存储控制器1100可以通过接收请求信号RQ的解码器来解码第一数据DATA1。存储控制器1100可以生成第二数据DATA2和第二校正子权重SW2。第二数据DATA2可以是通过解码第一数据DATA1而生成的数据。第二校正子权重SW2可以指示第二数据DATA2的错误级别。
图5A是示出根据示例性实施例的实施图4的操作方法的存储设备的框图。图5A示出了当第一校正子权重SW1超过参考值时选择第三级解码器来解码第一数据DATA1的存储设备作为示例。
非易失性存储器设备1200可以响应于从主机接收的读取命令而将初始数据DATAi输出到SRAM 1140。相比之下,在一些示例性实施例中,非易失性存储器设备1200可以直接将初始数据DATAi输出到第一级解码器1121a。
在一些示例性实施例中,存储设备还可以包括错误估计电路(未示出),该错误估计电路读取初始数据DATAi并且生成指示初始数据DATAi的错误级别的初始校正子权重SWi。错误估计电路可以基于初始校正子权重SWi确定参考值REF,并且可以将确定的参考值REF输出到ECC调度器1110。
SRAM 1140可以在(1)处从非易失性存储器设备1200接收初始数据DATAi。SRAM1140可以存储接收到的初始数据DATAi。SRAM 1140可以在(2)处将初始数据DATAi输出到第一级解码器1121a。也就是说,SRAM 1140可以是存储用于存储控制器的解码的临时数据的缓冲存储器。
第一级解码器1121a可以从SRAM 1140读取初始数据DATAi。第一级解码器1121a可以基于所读取的初始数据DATAi生成第一数据DATA1和第一校正子权重SW1。第一级解码器1121a可以在(3)处将第一数据DATA1输出到SRAM 1140。第一级解码器1121a可以在(4)处将第一校正子权重SW1输出到ECC调度器1110。当第一校正子权重SW1的值是特定值时,第一级解码器1121a可以将第一数据DATA1输出到主机,并且可以终止操作。第一级解码器1121a可以是包括在图3的第一级(Lv1)ECC核心设备1121中的第一级解码器之一。
ECC调度器1110可以在(4)处从第一级解码器1121a接收第一校正子权重SW1。ECC调度器1110可以比较第一校正子权重SW1和参考值REF。当第一校正子权重SW1超过参考值REF时,ECC调度器1110可以选择第三级解码器。ECC调度器1110可以在(5)处输出用于请求所选择的第三级解码器解码第一数据DATA1的请求信号RQ。
第三级解码器1123a可以在(5)处从ECC调度器1110接收请求信号RQ。第三级解码器1123a可以在(6)处基于接收到的请求信号RQ从SRAM 1140读取第一数据DATA1。第三级解码器1123a可以基于所读取的第一数据DATA1生成第二数据DATA2和第二校正子权重SW2。
图5B是示出根据示例性实施例的实施图4的操作方法的存储设备的框图。图5B示出了当第一校正子权重SW1等于或小于参考值时选择第二级解码器来解码第一数据DATA1的存储设备作为示例。非易失性存储器设备1200、SRAM 1140和第一级解码器1121a的特性类似于参考图5A描述的那些特性,并且因此,为了简明和避免冗余,将省略重复的描述。
ECC调度器1110可以在(4)处从第一级解码器1121a接收第一校正子权重SW1。ECC调度器1110可以比较第一校正子权重SW1和参考值REF。当第一校正子权重SW1等于或小于参考值REF时,ECC调度器1110可以选择第二级解码器。ECC调度器1110可以在(5)处输出用于请求所选择的第二级解码器解码第一数据DATA1的请求信号RQ。
第二级解码器1122a可以是比图5A的第三级解码器1123a具有更低纠错能力的错误处理设备。第二级解码器1122a可以是包括在图3的第二级(Lv2)ECC核心设备1122中的第二级解码器之一。
第二级解码器1122a可以在(5)处从ECC调度器1110接收请求信号RQ。第二级解码器1122a可以基于接收到的请求信号RQ从SRAM 1140读取第一数据DATA1。第二级解码器1122a可以基于所读取的第一数据DATA1生成第二数据DATA2和第二校正子权重SW2。也就是说,第二级解码器1122a可以是校正第一数据DATA1的错误的错误处理设备,该第一数据DATA 1的错误级别等于或小于参考值。
图6是示出根据示例性实施例的图1的存储控制器的操作方法的流程图。参考图1和图6,举例说明了根据示例性实施例的存储设备的操作方法。图6的操作S210、操作S211、操作S220、操作S240和操作S241可以类似于图4的操作S110、操作S111、操作S120、操作S140和操作S141,并且因此,为了简明和避免冗余,将省略重复的描述。
在操作S230中,存储控制器1100可以比较第一校正子权重SW1和参考值REF。当第一校正子权重SW1超过参考值时,存储控制器1100可以将用于请求解码第一数据DATA1的请求信号RQ输出到第三级解码器。当第一校正子权重SW1等于或小于参考值时,存储控制器1100可以将用于请求解码第一数据DATA1的请求信号RQ输出到第二级解码器。也就是说,在操作S230中,存储控制器1100可以类似于图4的操作S130、操作S131和操作S132进行操作。
在操作S250中,存储控制器1100可以通过确定第二校正子权重SW2的值是否为特定值来确定第二数据DATA2中是否存在错误。例如,存储控制器1100可以确定第二校正子权重SW2的值是否为“0”。当第二校正子权重SW2的值为“0”时,第二数据DATA2中可能不存在错误。当第二校正子权重SW2的值为“0”时,存储控制器1100可以将第二数据DATA2输出到主机110,并且可以终止操作。当第二校正子权重SW2的值不为“0”时,存储控制器1100可以执行操作S251。
在操作S251中,存储控制器1100可以比较第二校正子权重SW2和第一校正子权重SW1。当第二校正子权重SW2小于第一校正子权重SW1时,可以执行操作S252。当第二校正子权重SW2大于或等于第一校正子权重SW1时,可以执行操作S253。
在操作S252中,存储控制器1100可以将第一数据DATA1更新为第二数据DATA2。也就是说,存储控制器1100可以存储比第一数据DATA1具有更低错误级别的第二数据DATA2。
在操作S253中,存储控制器1100可以将第一校正子权重SW1更新为第二校正子权重SW2。不管操作S251中的确定结果如何,都可以执行操作S253。在操作S253之后,可以进一步执行选择解码器并请求解码的操作S230。也就是说,存储控制器1100的操作方法可以还包括基于在操作S241中执行的解码的结果来选择用于附加解码的解码器。
图7是示出根据示例性实施例的实施图6的操作方法的存储设备的框图。图7示出了存储在第一数据DATA1和通过解码第一数据DATA1而生成的第二数据DATA2当中具有较低错误级别的数据的存储装置作为示例。非易失性存储器设备1200和第一级解码器1121a的特性类似于参考图5A描述的那些特性,并且因此,为了简明和避免冗余,将省略重复的描述。
第二级解码器1122a可以在(5)处从ECC调度器1110接收请求信号RQ。第二级解码器1122a可以在(6)处基于请求信号RQ读取存储在SRAM 1140中的第一数据DATA1。第二级解码器1122a可以计算指示第一数据DATA1的错误级别的第一校正子权重SW1。第二级解码器1122a可以生成作为解码第一数据DATA1的结果的第二数据DATA2,并且可以生成指示第二数据DATA2的错误级别的第二校正子权重SW2。
第二级解码器1122a可以比较计算的第一校正子权重SW1和第二校正子权重SW2。当第二校正子权重SW2小于计算的第一校正子权重SW1时,第二级解码器1122a可以在(7)处将第二数据DATA2输出到SRAM 1140。在这种情况下,存储在SRAM 1140中的第一数据DATA1可以被更新为第二数据DATA2。
第二级解码器1122a可以在(8)处将第二校正子权重SW2输出到ECC调度器1110。ECC调度器1110可以基于这样接收的第二校正子权重SW2来选择用于附加解码的解码器。ECC调度器1110可以将用于请求附加解码的附加请求信号输出到所选择的解码器。
图8A是示出根据相关技术的存储设备中的数据流的框图。图8A示出了存储设备中的数据流作为示例。第一NAND闪存1210可以是包括在图1的非易失性存储器设备1200中的第一个到第N个NAND闪存之一。第一NAND闪存1210可以存储初始数据DATAi。第一NAND闪存1210可以取决于来自主机的读取命令而输出初始数据DATAi。
ECC核心设备1120可以与第一NAND闪存1210连接。ECC核心设备1120可以包括第一级(Lv1)解码器1121a、第二级(Lv2)1122a解码器和第三级(Lv3)解码器1123a。第三级解码器1123a的纠错能力可以高于第二级解码器1122a的纠错能力。第二级解码器1122a的纠错能力可以高于第一级解码器1121a的纠错能力。ECC核心设备1120可以对从第一NAND闪存1210接收的初始数据DATAi进行解码。
在相关技术存储设备中,具有不同纠错力的多个解码器1121a至1123a可以被分配给包括在非易失性存储器设备中的每个NAND闪存。在这种相关技术的情况下,第一级解码器1121a可以是不与不同于第一NAND闪存1210的NAND闪存(例如,第二NAND闪存)连接的解码器。也就是说,相关技术存储设备包括许多不必要的解码器,从而导致整个芯片尺寸增加。
图8B是示出根据示例性实施例的存储设备中根据图6的操作方法的数据流的框图。图8B示出了存储设备中根据图6的操作方法的数据流作为示例。
第一NAND闪存1210可以输出初始数据DATAi。ECC核心设备1120可以包括第一级解码器1121a和第三级解码器1123a。第一级解码器1121a可以接收初始数据DATAi。第一级解码器1121a可以输出作为对接收到的初始数据DATAi进行解码的结果的第一数据DATA1。第三级解码器1123a可以接收第一数据DATA1。第三级解码器1123a可以对接收到的第一数据DATA1进行解码。
在这种情况下,根据示例性实施例,包括在ECC核心设备1120中的每个解码器可以与多个NAND闪存连接。例如,第三级解码器1123a可以进一步对从第一级解码器1121b输出的数据DATA1x进行解码。第一级解码器1121b可以对从不同于第一NAND闪存1210的第二NAND闪存1220输出的数据DATAix进行解码。
如上所述,根据示例性实施例,NAND闪存可以共享解码器。此外,解码器可以接收由另一解码器解码的数据,并且可以进一步解码接收到的数据。这样,由于省略了不必要的解码器并且利用了由另一解码器解码的数据,所以可以提供具有提高的吞吐量的存储设备。
图9是示出根据示例性实施例的图1的存储控制器的操作方法的流程图。参考图1和图9,举例说明了根据示例性实施例的存储设备的操作方法。图9的操作S310类似于图6的操作S210和操作S211的组合,并且操作S340、操作S341、操作S350、操作S351、操作S352和操作S353类似于图6的操作S240、操作S241、操作S250、操作S251、操作S252和操作S253。因此,为了简明和避免冗余,将省略重复的描述。
在操作S330中,存储控制器1100可以基于第一校正子权重SW1选择将会解码第一数据DATA1的解码器。在示例性实施例中,存储控制器1100可以包括至少三个具有不同纠错能力的解码器。
例如,存储控制器1100可以包括第一级解码器、第二级解码器和第三级解码器。当第一校正子权重SW1等于或小于第一参考值时,存储控制器1100可以选择第一级解码器。当第一校正子权重SW1超过第一参考值并且等于或小于第二参考值时,存储控制器1100可以选择第二级解码器。当第一校正子权重SW1超过第二参考值时,存储控制器1100可以选择第三级解码器。
在操作S331中,存储控制器1100可以检查在操作S330中选择的解码器是否可用。当所选择的解码器可用时,存储控制器1100可以执行操作S333.当所选择的解码器不可用时,存储控制器1100可以执行操作S332。
在操作S332中,存储控制器1100可以选择比在操作S330中选择的解码器具有更高纠错能力的更高级别的解码器。在示例性实施例中,具有更高纠错能力的更高级别的解码器可以校正另一具有较低纠错能力的解码器所能够校正的错误。
例如,在第一数据DATA1具有与第二级别相对应的错误的情况下,第二级解码器可以校正第一数据DATA1的错误。比第二级解码器具有更高纠错能力的第三级解码器也可以校正第一数据DATA1的错误。在这种情况下,第三级解码器的处理时间可能比第二级解码器的处理时间更长。然而,第三级解码器的处理时间可能仍然比不可用的第二级解码器变得可用所花费的等待时间更短。
在操作S333中,用于请求解码第一数据DATA1的请求信号RQ可以被输出到所选择的解码器。在这种情况下,所选择的解码器可以是在操作S330中选择的解码器或者在操作S332中选择的更高级别的解码器。
图10是示出根据示例性实施例的实施图9的操作方法的存储设备的框图。图10示出了当所选择的解码器不可用时选择比所选择的解码器具有更高纠错能力的另一解码器来执行解码的存储设备作为示例。非易失性存储器设备1200、SRAM 1140和第一级解码器1121a的特性类似于参考图7描述的那些特性,并且因此,为了避免冗余,将省略重复的描述。
ECC调度器1110可以在(4)处从第一级解码器1121a接收第一校正子权重SW1。ECC调度器1110可以基于这样接收的第一校正子权重SW1选择第二级解码器1122a。ECC调度器1110可以包括指示第二级解码器1122a是否可用的可用信息AV。例如,当ECC调度器1110将另一请求信号输出到第二级解码器1122a并且没有接收到另一校正子权重时,ECC调度器1110可以确定第二级解码器1122a不可用。
ECC调度器1110可以基于可用信息AV确定第二级解码器1122a不可用。ECC调度器1110可以选择比第二级解码器1122a具有更高纠错能力的第三级解码器1123a。ECC调度器1110可以在(5)处将用于请求解码第一数据DATA1的请求信号RQ输出到第三级解码器1123a。
第三级解码器1123a可以在(5)处接收请求信号RQ。第三级解码器1123a可以在(6)处从SRAM 1140读取第一数据DATA1,并解码第一数据DATA1。第三级解码器1123a可以生成第二数据DATA2和第二校正子权重SW2。在这种情况下,第三级解码器1123a解码第一数据DATA1的速度可能比图7的第二级解码器1122a解码第一数据DATA1的速度更慢。然而,第三级解码器1123a解码第一数据DATA1所花费的时间可能仍然比等待不可用的第二级解码器1122a变得可用所花费的等待时间更短。
图11是示出根据示例性实施例的图1的存储控制器的操作方法的流程图。参考图1和图11,举例说明了根据示例性实施例的存储设备的操作方法。图11的操作S410类似于图6的操作S210和操作S211的组合,并且操作S440、操作S441、操作S450、操作S451、操作S452和操作S453类似于图6的操作S240、操作S241、操作S250、操作S251、操作S252和操作S253。因此,为了简明和避免冗余,将省略重复的描述。
在操作S430中,存储控制器1100可以基于第一校正子权重SW1选择将会解码第一数据DATA1的解码器。在操作S431中,存储控制器1100可以检查在操作S430中选择的解码器是否可用。当所选择的解码器可用时,存储控制器1100可以执行操作S432,在操作S432中请求信号RQ被输出到所选择的解码器。当所选择的解码器不可用时,存储控制器1100可以执行操作S433。
在操作S433中,存储控制器1100可以选择比在操作S430中选择的解码器具有更低纠错能力的多个更低级别的解码器。在示例性实施例中,存储控制器1100可以包括更高级别的解码器,并且多个更低级别的解码器可以通过多个更低级别的解码器的组合像更高级别的解码器一样操作。
在操作S434中,存储控制器1100可以将用于请求解码第一数据DATA1的请求信号RQ和用于组合所选择的更低级别的解码器的组合信号CB输出到所选择的更低级别的解码器。
在操作S435中,接收组合信号CB的更低级别的解码器可以被组合。当网络被激活时,组合的更低级别的解码器可以像一个更高级别的解码器一样操作。
在示例性实施例中,选择和组合更低级别的解码器所花费的时间可能比等待所选择的不可用的更高级别的解码器变得可用所花费的等待时间更短。
在操作S440中,包括在存储控制器1100中的解码器可以响应于请求信号RQ而读取存储在存储控制器1100中的第一数据DATA1。在这种情况下,解码器可以是在操作S430中选择的解码器,或者是在操作S433中选择并在操作S435中组合的更低级别的解码器。
图12是示出根据示例性实施例的实施图11的操作方法的存储设备的框图。图12示出了当所选择的解码器不可用时选择并组合比所选择的解码器具有更低纠错能力的其他解码器并且执行解码的存储设备作为示例。非易失性存储器设备1200、SRAM 1140和第一级解码器1121a的特性类似于参考图7描述的那些特性,并且因此,为了简明和避免冗余,将省略重复的描述。
ECC调度器1110可以在(4)处从第一级解码器1121a接收第一校正子权重SW1。ECC调度器1110可以基于这样接收的第一校正子权重SW1来选择第二级解码器1122a。ECC调度器1110可以包括指示第二级解码器1122a是否可用的可用信息。
ECC调度器1110可以基于可用信息AV确定第二级解码器1122a不可用。ECC调度器1110可以选择第一级核心解码器1121c和第一级子解码器1121d,它们的纠错能力低于第二级解码器1122a的纠错能力。ECC调度器1110可以在(5)处将请求信号RQ和组合信号CB输出到这样选择的第一级核心解码器1121c和第一级子解码器1121d。组合信号可以是用于请求第一级核心解码器1121c和第一级子解码器1121d的组合的信号。
在这种情况下,第一数据DATA1的错误可以是超过第一级核心解码器1121c和第一级子解码器1121d中的每一个各自的纠错力的错误。第一数据DATA1的错误可以是可由第二级解码器1122a校正的。
第一级核心解码器1121c和第一级子解码器1121d可以基于组合信号CB进行组合。这样组合的第一级核心解码器1121c和第一级子解码器1121d可以在(6)处从SRAM 1140读取第一数据DATA1,并且可以基于所读取的第一数据DATA1生成第二数据DATA2和第二校正子权重SW2。
在这种情况下,ECC调度器1110基于可用信息AV确定第二级解码器1122a是否可用所花费的时间和基于组合信号CB组合第一级核心解码器1121c和第一级子解码器1121d所花费的时间之和可以比等待不可用的第二级解码器1122a变得可用所花费的等待时间更短。
图13A是示出根据示例性实施例的图12的第一级解码器所执行的奇偶校验操作的示意图。将在图12和图13中作为示例描述图12的第一级解码器1121a检查初始数据DATAi的错误的方法。
在示例性实施例中,第一级解码器1121a可以包括多个可变节点V1至V6和多个校验节点C1至C3。图13A示出了这样的示例,第一级解码器1121a包括6个可变节点V1至V6和3个校验节点C1至C3,但是示例性实施例不限于此。例如,在第一级解码器1121a中,可变节点的数量和校验节点的数量可以增加或减少。
在示例性实施例中,第一级解码器1121a所读取的初始数据DATAi可以存储到可变节点V1至V6。基于奇偶校验矩阵“H”的信息,可变节点V1至V6可以与校验节点C1至C3连接。校验节点C1至C3可以检查存储在可变节点V1至V6中的比特是否满足错误检测规则。存储在可变节点的不满足错误检测规则的比特可以被翻转(flip)。比特翻转可以表示存储在可变节点的比特从“1”翻转到“0”或者从“0”翻转到“1”,以便满足错误检测规则。
例如,存储在可变节点V1至V6的比特信息可以是“101011”,如图13A所示。校验节点C1至C3中的每一个可以检查是否满足错误检测规则,该错误检测规则使得连接的可变节点的比特和(bit sum)为偶数。
第一校验节点C1可以与第一可变节点V1至第四可变节点V4连接。与第一校验节点C1连接的可变节点的比特和可以是偶数。第二校验节点C2可以与第三可变节点V3、第四可变节点V4和第六可变节点V6连接。与第二校验节点C2连接的可变节点的比特和可以是偶数。第三校验节点C3可以与第一可变节点V1、第四可变节点V4和第五可变节点V5连接。与第三校验节点C3连接的可变节点的比特和可以是偶数。
在这种情况下,第一级解码器1121a可以输出具有与初始数据DATAi相同的比特信息的第一数据。从第一级解码器1121a输出的第一校正子权重SW1的值可以是“0”。
在示例性实施例中,连接可变节点和校验节点的配置可以被表示为边沿。边沿值可以通过连接可变节点和校验节点的边沿而移动。在边沿传送一个比特的消息的情况下,边沿值可以包括边沿符号值。在边沿传送两个或更多个比特的消息的情况下,边沿值可以包括边沿符号值和边沿幅度值。
图13B是示出根据示例性实施例的图13A的奇偶校验矩阵的示意图。图13B以数值形式示出了图13A中的奇偶校验矩阵“H”。参考图13A和图13B,当可变节点和校验节点之间存在连接时,奇偶校验矩阵“H”中包括的每个元素的值可以为“1”,并且当可变节点和校验节点之间不存在连接时,每个元素的值可以为“0”。
例如,在奇偶校验矩阵“H”的第二行、第三列处的元素的值可以为“1”。在这种情况下,可以连接第二校验节点C2和第三可变节点V3。在奇偶校验矩阵“H”的第三行、第六列的元素的值可以为“0”。在这种情况下,第三校验节点C3和第六可变节点V6可以不连接。
在示例性实施例中,第一级解码器1121a可以基于奇偶校验矩阵“H”和包括可变节点V1至V6的比特信息的列向量的乘积来检查比特的错误。例如,可以通过将包括图13B所示的比特信息的奇偶校验矩阵“H”与包括比特信息“101011”的列向量一起相乘,来在校验节点C1至C3处计算出包括信息“222”的列向量。因为计算出的列向量中包括的所有元素都是偶数,所以可以检查出“101011”的比特信息为不存在错误。
图14是示出根据示例性实施例的图12的第一级核心解码器的框图。将参考图12和图14来描述解码任何缓冲数据以输出解码数据而不与第一级子解码器1121d组合的第一级核心解码器1121c作为示例。
第一级核心解码器1121c可以与ECC调度器1110和SRAM 1140连接。第一级核心解码器1121c可以包括LLR生成器1121c-1、可变节点缓冲器1121c-2、C2V计算器1121c-3、解码器存储器1121c-4、V2C计算器1121c-5、校验节点缓冲器1121c-6、校正子权重(SW)生成器1121c-7、校正子权重(SW)比较器1121c-8和CRC校验器1121c-9。
LLR生成器1121c-1可以从SRAM 1140接收缓冲数据。LLR生成器1121c-1可以基于接收到的缓冲数据计算对数似然比(log likelihood ratio,LLR)。LLR可以是特定比特的值为“0”的概率与特定比特的值为“1”的概率之比的对数的结果。
可变节点缓冲器1121c-2可以从LLR生成器1121c-1接收计算出的LLR。可变节点缓冲器1121c-2可以包括多个可变节点V1至VN。多个可变节点V1至VN可以存储缓冲数据的比特信息。
C2V计算器1121c-3可以与可变节点缓冲器1121c-2、解码器存储器1121c-4和校验节点缓冲器1121c-6连接。C2V计算器1121c-3可以使用从可变节点缓冲器1121c-2传送到校验节点缓冲器1121c-6的边沿值作为输入值。C2V计算器1121c-3可以使用从校验节点缓冲器1121c-6传送到可变节点缓冲器1121c-2的边沿值作为输出值。
在示例性实施例中,C2V计算器1121c-3可以包括XOR门。C2V计算器1121c-3可以对从可变节点缓冲器1121c-2传送到校验节点缓冲器1121c-6的边沿值执行XOR运算。C2V计算器1121c-3可以基于XOR运算的结果来判定从校验节点缓冲器1121c-6传送到可变节点缓冲器1121c-2的边沿值。所判定的边沿值可以存储到解码器存储器1121c-4。
在示例性实施例中,C2V计算器1121c-3可以还包括最小计算器(mincalculator)。最小计算器可以是计算包括在两个或更多个比特的边沿值中的边沿幅度值的设备。例如,在第一级核心解码器1121c通过与第一级子解码器1121d的组合来处理两个比特的边沿值的情况下,第一级核心解码器1121c可以通过最小计算器来计算边沿幅度值。
在示例性实施例中,C2V计算器1121c-3可以基于所判定的边沿值来修改可变节点缓冲器1121c-2的比特信息。C2V计算器1121c-3可以通过对修改存储在可变节点缓冲器1121c-2中的缓冲数据的一部分的过程进行迭代来解码缓冲数据。通过解码缓冲数据而生成的数据可以是解码数据。在修改缓冲数据的一部分的过程被迭代之后,存储在可变节点缓冲器1121c-2中的数据可以是解码数据。
解码器存储器1121c-4可以与C2V计算器1121c-3和V2C计算器1121c-5连接。解码器存储器1121c-4可以与C2V计算器1121c-3和V2C计算器1121c-5交换一个比特的边沿信息。解码器存储器1121c-4可以存储一个比特的边沿信息。例如,解码器存储器1121c-4可以交换一个比特的消息。解码器存储器1121c-4可以存储边沿符号值。
V2C计算器1121c-5可以与可变节点缓冲器1121c-2、解码器存储器1121c-4和校验节点缓冲器1121c-6连接。V2C计算器1121c-5可以使用从校验节点缓冲器1121c-6传送到可变节点缓冲器1121c-2的边沿值作为输入值。V2C计算器1121c-5可以使用从可变节点缓冲器1121c-2传送到校验节点缓冲器1121c-6的边沿值作为输出值。
在示例性实施例中,V2C计算器1121c-5可以包括加法器和量化器。包括在V2C计算器1121c-5中的加法器可以是处理在校验节点缓冲器1121c-6和可变节点缓冲器1121c-2之间交换的消息的设备。包括在V2C计算器1121c-5中的量化器可以是基于加法器的处理结果来判定从可变节点缓冲器1121c-2传送到校验节点缓冲器1121c-6的边沿的设备。
在示例性实施例中,包括在V2C计算器1121c-5中的量化器可以是高精度量化器,该量化器是考虑到在组合第一级核心解码器1121c和第一级子解码器1121d之后的纠错操作而制造的。例如,包括在V2C计算器1121c-5中的量化器可以处理两个比特的边沿值。
校验节点缓冲器1121c-6可以与C2V计算器1121c-3和V2C计算器1121c-5连接。校验节点缓冲器1121c-6可以基于交换的边沿值来检查存储在可变节点缓冲器1121c-2中的数据的错误级别。校验节点缓冲器1121c-6可以将与检查错误级别的结果相对应的信息输出到校正子权重生成器1121c-7。
在示例性实施例中,校验节点缓冲器1121c-6可以将与检查存储在可变节点缓冲器1121c-2中的缓冲数据的错误级别的结果相对应的信息输出到校正子权重生成器1121c-7。
在示例性实施例中,校验节点缓冲器1121c-6可以将与检查存储在可变节点缓冲器1121c-2中的解码数据的错误级别的结果相对应的信息输出到校正子权重生成器1121c-7。
校正子权重生成器1121c-7可以从校验节点缓冲器1121c-6接收与检查错误级别的结果相对应的信息。校正子权重生成器1121c-7可以基于接收到的信息生成校正子权重。校正子权重生成器1121c-7可以将生成的校正子权重输出到校正子权重比较器1121c-8和ECC调度器1110。
在示例性实施例中,校正子权重生成器1121c-7可以接收与检查缓冲数据的错误级别的结果相对应的信息。校正子权重生成器1121c-7可以生成指示缓冲数据的错误级别的校正子权重。校正子权重生成器1121c-7可以将缓冲数据的校正子权重输出到校正子权重比较器1121c-8和ECC调度器1110。
在示例性实施例中,校正子权重生成器1121c-7可以接收与检查解码数据的错误级别的结果相对应的信息。校正子权重生成器1121c-7可以生成指示解码数据的错误级别的校正子权重。校正子权重生成器1121c-7可以将解码数据的校正子权重输出到校正子权重比较器1121c-8和ECC调度器1110。
校正子权重比较器1121c-8可以从校正子权重生成器1121c-7接收校正子权重。校正子权重比较器1121c-8可以存储校正子权重。校正子权重比较器1121c-8可以取决于校正子权重来控制存储在可变节点缓冲器1121c-2中的数据的输出。
在示例性实施例中,校正子权重比较器1121c-8可以确定缓冲数据的校正子权重是否为“0”。当缓冲数据的校正子权重为“0”时,在校正子权重比较器1121c-8的控制下,存储在可变节点缓冲器1121c-2中的缓冲数据可以被输出到主机。
在示例性实施例中,校正子权重比较器1121c-8可以接收并存储缓冲数据的校正子权重。校正子权重比较器1121c-8可以存储解码数据的校正子权重。校正子权重比较器1121c-8可以比较所存储的缓冲数据的校正子权重和接收到的解码数据的校正子权重。
当解码数据的校正子权重小于缓冲数据的校正子权重时,在校正子权重比较器1121c-8的控制下,存储在可变节点缓冲器1121c-2中的解码数据可以被输出到SRAM 1140。这样,SRAM 1140可以存储缓冲数据和解码数据当中具有更低错误级别的数据。
CRC校验器1121c-9可以对从可变节点缓冲器1121c-2输出到SRAM 1140的解码数据执行循环冗余校验(CRC)。CRC校验器1121c-9可以将被执行循环冗余校验的解码数据输出到SRAM 1140。
图15是示出根据示例性实施例的图12的第一级子解码器的框图。将参考图12和图15来描述解码任何缓冲数据以输出解码数据而不与第一级核心解码器1121c组合的第一级子解码器1121d作为示例。
LLR生成器1121d-1、可变节点缓冲器1121d-2、解码器存储器1121d-4、校验节点缓冲器1121d-6、校正子权重生成器1121d-7、校正子权重比较器1121d-8和CRC校验器1121d-9的特性可以类似于图14的LLR生成器1121c-1、可变节点缓冲器1121c-2、解码器存储器1121c-4、校验节点缓冲器1121c-6、校正子权重生成器1121c-7、校正子权重比较器1121c-8和CRC校验器1121c-9的特性。因此,为了简明和避免冗余,将省略重复的描述。
C2V计算器1121d-3可以对从可变节点缓冲器1121d-2传送到校验节点缓冲器1121d-6的边沿值执行XOR运算。C2V计算器1121d-3可以基于XOR运算的结果来判定从校验节点缓冲器1121d-6传送到可变节点缓冲器1121d-2的边沿值。
在示例性实施例中,C2V计算器1121d-3可以省略最小计算器。第一级子解码器1121d可以是校正一个比特的错误的解码器。在与第一级核心解码器1121c组合之后,第一级子解码器1121d可以共享包括在第一级核心解码器1121c中的最小计算器。相应地,第一级子解码器1121d可以省略用于计算边沿幅度值的最小计算器。
V2C计算器1121d-5可以使用从校验节点缓冲器1121d-6传送到可变节点缓冲器1121d-2的边沿值作为输入值。V2C计算器1121d-5可以使用从可变节点缓冲器1121d-2传送到校验节点缓冲器1121d-6的边沿值作为输出值。
在示例性实施例中,V2C计算器1121d-5可以包括具有一个比特的精度的子量化器。在与第一级核心解码器1121c组合之后,第一级子解码器1121d可以共享具有两个比特的精度并且包括在第一级核心解码器1121c中的量化器。相应地,第一级子解码器1121d可以省略超过校正力(correction capacity)的具有两个比特的校正力的量化器。
图16是示出根据示例性实施例的如何组合图12的第一级解码器的框图。将参考图12和图16来描述基于从ECC调度器1110输出的组合信号CB组合第一级核心解码器1121c和第一级子解码器1121d作为示例。第一级核心解码器1121c的组件1121c-1至1121c-9和第一级子解码器1121d的组件1121d-1至1121d-9的特性类似于参考图14和图15描述的那些特性,并且因此,为了简明和避免冗余,将省略重复的描述。
网络激活电路1124可以与第一级核心解码器1121c和第一级子解码器1121d连接。网络激活电路1124可以从ECC调度器1110接收组合信号CB。网络激活电路1124可以响应于接收到的组合信号CB而激活第一级核心解码器1121c和第一级子解码器1121d之间的网络。通过激活的网络链接的第一级核心解码器1121c和第一级子解码器1121d可以类似于第二级解码器进行操作。
在示例性实施例中,网络激活电路1124可以激活第一级核心解码器1121c和第一级子解码器1121d的存储器共享。例如,第一级核心解码器1121c的解码器存储器1121c-4可以用作存储边沿符号值的存储器。第一级子解码器1121d的解码器存储器1121d-4可以用作存储边沿幅度值的存储器。组合的解码器1121c和1121d可以通过共享存储器来存储两个比特的边沿信息。
在示例性实施例中,网络激活电路1124可以激活第一级核心解码器1121c和第一级子解码器1121d的逻辑共享。其间的逻辑共享被激活的第一级核心解码器1121c和第一级子解码器1121d可以共享计算器。
例如,包括在第一级核心解码器1121c的V2C计算器1121c-5中的加法器和包括在第一级子解码器1121d的V2C计算器1121d-5中的加法器可以在逻辑上共享。解码器存储器1121c-4和1121d-4可以被共享。详细地,V2C计算器1121c-5和1121d-5中的每一个的加法器可以处理1比特消息。相应的V2C计算器1121c-5和1121d-5的加法器可以作为一个加法器进行操作,并且可以处理2比特消息。经处理的2比特消息可以被分发并存储到解码器存储器1121c-4和1121d-4中。
图16示出了这样的示例,其间的逻辑共享被激活的第一级核心解码器1121c和第一级子解码器1121d共享V2C计算器1121c-5和1121d-5,但是示例性实施例不限于此。例如,其间的逻辑共享被激活的第一级核心解码器1121c和第一级子解码器1121d可以共享C2V计算器1121c-3和1121d-3。可替换地,其间的逻辑共享被激活的第一级核心解码器1121c和第一级子解码器1121d可以共享量化器,或者可以还共享执行与纠错相对应的操作的任何其他逻辑(未示出)。
图17是示出根据示例性实施例的图16的组合的解码器存储器所处理的边沿值的示意图。图17示出了2比特边沿值作为示例。四个不同值中的一个可以由2比特边沿值来表示。2比特边沿值可以包括边沿符号值和边沿幅度值。
例如,边沿符号值为“1”可以指示边沿值的符号是正号。边沿符号值为“0”可以指示边沿值的符号是负号。边沿幅度值为“1”可以指示边沿值的幅度大。边沿幅度值为“0”可以指示边沿值的幅度小。
在示例性实施例中,与数字“1”相对应的2比特边沿值位可以由“10”来表示。在这种情况下,边沿符号值可以是“1”。边沿符号值可以指示数字“1”的符号是正号。边沿幅度值可以是“0”。边沿幅度值可以指示数字“1”的幅度小于另一数字(例如,数字“2”)。
图18是示出根据示例性实施例的ECC核心设备输出的校正子权重的图表。图18示出了在迭代间隔基础上执行解码的ECC核心设备所输出到ECC调度器的校正子权重SW作为示例。
第一场景S1是显示出当重复执行解码时校正子权重SW减小的情况的场景。第一场景S由实线示出。
第一场景S1可以包括第一迭代间隔I1至第三迭代间隔I3和关键迭代间隔Ic。在每个迭代间隔中,可以重复执行根据可变节点缓冲器和校验节点缓冲器之间的消息交换的操作。ECC核心设备可以基于重复执行的操作来执行解码。关键迭代间隔Ic可以表示不管解码是否成功都最终执行操作的间隔。示出了这样的示例,第一场景S1包括四个迭代间隔,但是示例性实施例不限于此。例如,第一场景S1中包括的迭代间隔的数量可以增加或减少。
第二场景S2是显示出当重复执行解码时校正子权重SW增加的情况的场景。第二场景S2由虚线表示。
校正子权重SW可以在第二场景S2的第一迭代间隔I1至第三迭代间隔I3中逐渐增加。ECC调度器可以在第二场景S2选择校正力在第一迭代间隔I1至第三迭代间隔I3中逐渐增加的解码器。校正子权重SW可以在第二场景S2的关键迭代间隔Ic中达到最大值。关键迭代间隔Ic的解码数据的错误级别可能高于第一迭代间隔I1的解码数据的错误级别。存储在作为缓冲存储器的SRAM中的数据可能不会被更新为关键迭代间隔Ic中的解码数据。
第三场景S3是显示出当重复执行解码时校正子权重SW增加或减少的情况的场景。第三场景S3由点划线(dash-single dotted line)表示。
校正子权重SW可以在第三场景S3的第一迭代间隔I1中从第一值X1增加到第二值X2。存储在缓冲存储器中并且与第一值X1的校正子权重SW相对应的数据可以不被更新为与第二值X2的校正子权重相对应的解码数据。
校正子权重SW可以在第三场景S3的第三迭代间隔I3中具有第三值X3。第三值X3的校正子权重可以是第三场景S3的迭代间隔I1、I2和I3的整体内的最小值。存储在缓冲存储器中的数据可以被更新为与第三值X3的校正子权重相对应的解码数据。
图19是示出根据示例性实施例的存储设备的框图。参考图19,举例说明了根据示例性实施例的存储设备2000。存储设备2000可以包括非易失性存储器设备2200、ECC调度器2110、ECC核心设备2120和附加的ECC核心设备2180。非易失性存储器设备2200、ECC调度器2110和ECC核心设备2120类似于图3的非易失性存储器设备1200、ECC调度器1110和ECC核心设备1120,并且因此,为了避免冗余,将省略重复的描述。
附加的ECC核心设备2180可以包括多个第一级(Lv1)解码器。多个第一级解码器可以分别与包括在非易失性存储器设备2200中的多个NAND闪存连接。多个第一级解码器中的每一个可以对存储在对应的NAND闪存中的数据进行解码,并且可以将解码数据的校正子权重输出到ECC调度器2110。
在示例性实施例中,可能需要解码来计算存储在非易失性存储器设备2200中的初始数据的校正子权重。可以选择将会解码初始数据的解码器,而不管校正子权重如何。由于与非易失性存储器设备2200连接的附加的ECC核心设备2180解码初始数据,因此,关于ECC调度器2110,可以减少选择将会解码初始数据的解码器的负担。相应地,可以提高存储设备2000读取数据的速度。
根据示例性实施例,由于多个半导体存储器共享具有不同纠错能力的错误处理设备,所以可以使用更少数量的错误处理设备来应对各种场景。相应地,可以提供一种具有减小的芯片面积的存储控制器、包括其的存储设备及其操作方法。
此外,由于通过组合,像具有高纠错力的纠错设备那样来利用低纠错力的纠错设备,所以可以进一步减小芯片面积,并且可以基于错误处理设备所处理的数据来执行下一个错误处理操作。相应地,可以提供一种具有提高的吞吐量的存储控制器、包括其的存储设备及其操作方法。
虽然已经描述了各种示例性实施例,但是对于本领域的普通技术人员来说显而易见的是,可以对其进行各种改变和修改,而不脱离如以下权利要求中阐述的本公开的精神和范围。

Claims (20)

1.一种包括高级别解码器和低级别解码器的存储控制器的操作方法,所述方法包括:
生成作为对从非易失性存储器设备读取的初始数据进行解码的结果的第一数据,以及指示所述第一数据的错误级别的第一校正子权重;
当所述第一校正子权重是特定值时,将所述第一数据输出到主机;
当所述第一校正子权重超过参考值时,选择具有第一纠错能力的所述高级别解码器来解码所述第一数据;和
当所述第一校正子权重等于或小于所述参考值时,选择具有低于所述第一纠错能力的第二纠错能力的所述低级别解码器来解码所述第一数据。
2.根据权利要求1所述的方法,还包括:
在所选择的高级别解码器或所选择的低级别解码器处,生成作为解码所述第一数据的结果的第二数据和指示所述第二数据的错误级别的第二校正子权重。
3.根据权利要求2所述的方法,还包括:
当所述第二校正子权重是所述特定值时,将所述第二数据输出到所述主机。
4.根据权利要求2所述的方法,还包括:
存储作为解码所述初始数据的结果的所述第一数据;以及
当所述第二校正子权重小于所述第一校正子权重时,将所述第一数据更新为所述第二数据。
5.根据权利要求2所述的方法,还包括:
当所述第二校正子权重超过所述参考值时,选择所述高级别解码器来解码所述第二数据;以及
当所述第二校正子权重等于或小于所述参考值时,选择所述低级别解码器来解码所述第二数据。
6.根据权利要求1所述的方法,其中,选择所述低级别解码器包括:
检查所述低级别解码器是否可用;以及
响应于所述低级别解码器不可用,选择所述高级别解码器而不是所述低级别解码器来解码所述第一数据。
7.根据权利要求1所述的方法,其中,选择所述高级别解码器来解码所述第一数据包括:
检查所述高级别解码器是否可用;以及
响应于所述高级别解码器不可用:
选择所述低级别解码器和不同于所述低级别解码器的另一低级别解码器,而不是所述高级别解码器;
将所选择的低级别解码器和所选择的另一低级别解码器组合成组合的低级别解码器;以及
选择所述组合的低级别解码器作为所述高级别解码器。
8.根据权利要求7所述的方法,其中,所述组合的低级别解码器共享包括在所选择的低级别解码器和所选择的另一低级别解码器中的每一个中的计算器。
9.根据权利要求7所述的方法,其中,所述组合的低级别解码器共享包括在所选择的低级别解码器和所选择的另一低级别解码器中的每一个中的解码器存储器。
10.一种存储控制器,包括:
纠错码ECC核心设备,包括与被配置为存储初始数据的非易失性存储器设备连接的解码器、具有第一纠错能力的高级别解码器、和具有低于所述第一纠错能力的第二纠错能力的低级别解码器;以及
ECC调度器,被配置为从所述解码器接收第一校正子权重,当所述第一校正子权重超过参考值时将用于请求解码作为对初始数据进行解码的结果的第一数据的请求信号输出到所述高级别解码器,以及当所述第一校正子权重等于或小于所述参考值时将所述请求信号输出到所述低级别解码器,
其中,所述解码器从所述非易失性存储器设备读取所述初始数据,生成所述第一数据,并且生成指示所述第一数据的错误级别的所述第一校正子权重,当所述第一校正子权重是特定值时将所述第一数据输出到主机,并且当所述第一校正子权重不是所述特定值时将所述第一数据输出到接收所述请求信号的所述高级别解码器或所述低级别解码器。
11.根据权利要求10所述的存储控制器,其中,所述ECC核心设备还被配置为从所述ECC调度器接收所述请求信号,并且基于接收到的请求信号输出作为解码所述第一数据的结果的第二数据和指示所述第二数据的错误级别的第二校正子权重。
12.根据权利要求11所述的存储控制器,还包括:
缓冲存储器,被配置为从所述解码器接收所述第一数据并且存储接收到的第一数据,
其中,所述ECC核心设备被配置为当所述第二校正子权重小于所述第一校正子权重时,将存储在所述缓冲存储器中的所述第一数据更新为所述第二数据。
13.根据权利要求10所述的存储控制器,其中,所述ECC调度器还被配置为当所述第一校正子权重等于或小于所述参考值时,检查所述低级别解码器是否可用,并且响应于所述低级别解码器不可用,将所述请求信号输出到所述高级别解码器而不是所述低级别解码器。
14.根据权利要求10所述的存储控制器,其中,所述ECC核心设备还包括具有所述第二纠错能力的另一低级别解码器,以及
其中,所述ECC调度器还被配置为当所述第一校正子权重超过所述参考值时,检查所述高级别解码器是否可用,并且响应于所述高级别解码器不可用,将所述请求信号输出到所述低级别解码器和所述另一低级别解码器,而不是所述高级别解码器。
15.根据权利要求14所述的存储控制器,其中,包括在所述低级别解码器和所述另一低级别解码器中的每一个中的计算器被共享。
16.根据权利要求14所述的存储控制器,其中,包括在所述低级别解码器和所述另一低级别解码器中的每一个中的解码器存储器被共享。
17.一种存储设备,包括:
第一级解码器,其具有第一纠错能力,并且被配置为生成作为对从非易失性存储器设备读取的初始数据进行解码的结果的第一数据,并且生成指示所述第一数据的错误级别的第一校正子权重;
第二级解码器,其具有高于所述第一纠错能力的第二纠错能力;
第三级解码器,其具有高于所述第二纠错能力的第三纠错能力;以及
ECC调度器,被配置为接收所述第一校正子权重,当所述第一校正子权重超过参考值时将用于请求解码所述第一数据的请求信号输出到所述第三级解码器,以及当所述第一校正子权重等于或小于所述参考值时将所述请求信号输出到所述第二级解码器,
其中,所述第一级解码器被配置为当所述第一校正子权重是特定值时将所述第一数据输出到主机,以及当所述第一校正子权重不是所述特定值时将所述第一数据输出到接收所述请求信号的所述第二级解码器或所述第三级解码器。
18.根据权利要求17所述的存储设备,其中,所述非易失性存储器设备包括存储所述初始数据的第一非易失性存储器和存储不同于所述初始数据的另一初始数据的第二非易失性存储器,
其中,所述第一级解码器还被配置为生成作为对从所述第二非易失性存储器读取的所述另一初始数据进行解码的结果的另一第一数据,并且生成指示所述另一第一数据的错误级别的另一第一校正子权重,以及
其中,所述ECC调度器还被配置为接收所述另一第一校正子权重,当所述另一第一校正子权重超过所述参考值时将用于请求解码所述另一第一数据的另一请求信号输出到所述第三级解码器,以及当所述另一第一校正子权重等于或小于所述参考值时将所述另一请求信号输出到所述第二级解码器。
19.根据权利要求17所述的存储设备,还包括多个第一级解码器,
其中,所述非易失性存储器设备包括多个非易失性存储器,所述多个非易失性存储器分别存储多个初始数据,并且所述多个初始数据分别由所述多个第一级解码器解码。
20.根据权利要求17所述的存储设备,还包括“N”个第一级解码器、“M”个第二级解码器和“K”个第三级解码器,其中,“K”是自然数,“M”是大于“K”的自然数,“N”是大于“M”的自然数。
CN202011457064.6A 2019-12-11 2020-12-11 用于纠错的存储控制器、包括其的存储设备及其操作方法 Active CN112951313B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR1020190164302A KR20210074425A (ko) 2019-12-11 2019-12-11 에러를 정정하는 스토리지 컨트롤러, 이를 포함하는 스토리지 장치, 및 이의 동작 방법
KR10-2019-0164302 2019-12-11
US16/917,101 2020-06-30
US16/917,101 US11184030B2 (en) 2019-12-11 2020-06-30 Storage controller for correcting error, storage device including the same, and operating method thereof

Publications (2)

Publication Number Publication Date
CN112951313A true CN112951313A (zh) 2021-06-11
CN112951313B CN112951313B (zh) 2024-08-13

Family

ID=73792955

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011457064.6A Active CN112951313B (zh) 2019-12-11 2020-12-11 用于纠错的存储控制器、包括其的存储设备及其操作方法

Country Status (2)

Country Link
EP (1) EP3835960A3 (zh)
CN (1) CN112951313B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI769001B (zh) * 2021-07-06 2022-06-21 睿寬智能科技有限公司 資料儲存系統選擇解碼策略之方法
TWI769002B (zh) * 2021-07-06 2022-06-21 睿寬智能科技有限公司 資料儲存系統選擇解碼策略之裝置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101211667A (zh) * 2006-12-29 2008-07-02 三星电子株式会社 降低误纠概率的纠错电路和方法和包括该电路的存储设备
US20180175882A1 (en) * 2016-12-19 2018-06-21 Kabushiki Kaisha Toshiba Low power error correcting code (ecc) system
US20190097653A1 (en) * 2017-09-22 2019-03-28 SK Hynix Memory Solutions America Inc. Memory system with decoders and method of operating such memory system and decoders
CN110008052A (zh) * 2017-12-14 2019-07-12 三星电子株式会社 纠错装置、纠错装置的操作方法以及包括纠错装置的控制器

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101211667A (zh) * 2006-12-29 2008-07-02 三星电子株式会社 降低误纠概率的纠错电路和方法和包括该电路的存储设备
US20180175882A1 (en) * 2016-12-19 2018-06-21 Kabushiki Kaisha Toshiba Low power error correcting code (ecc) system
US20190097653A1 (en) * 2017-09-22 2019-03-28 SK Hynix Memory Solutions America Inc. Memory system with decoders and method of operating such memory system and decoders
CN110008052A (zh) * 2017-12-14 2019-07-12 三星电子株式会社 纠错装置、纠错装置的操作方法以及包括纠错装置的控制器

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI769001B (zh) * 2021-07-06 2022-06-21 睿寬智能科技有限公司 資料儲存系統選擇解碼策略之方法
TWI769002B (zh) * 2021-07-06 2022-06-21 睿寬智能科技有限公司 資料儲存系統選擇解碼策略之裝置

Also Published As

Publication number Publication date
CN112951313B (zh) 2024-08-13
EP3835960A3 (en) 2021-09-01
EP3835960A2 (en) 2021-06-16

Similar Documents

Publication Publication Date Title
US11184030B2 (en) Storage controller for correcting error, storage device including the same, and operating method thereof
US10417087B2 (en) System and method for adaptive multiple read of NAND flash
CN113032178B (zh) 存储器控制器及快闪存储器的存取方法
US9529666B2 (en) Decoding method, memory storage device and memory controlling circuit unit
US9385754B2 (en) Controller, information processing system, method of controlling controller, and program
KR101678404B1 (ko) 사전 확률 정보를 사용하는 메모리 시스템 및 그것의 데이터 처리 방법
JP2012118979A (ja) Nandフラッシュ・メモリにおける確率論的多層エラー訂正のためのシステム、方法、およびコンピュータ・プログラム
KR102626162B1 (ko) 연산 복잡도를 감소시킬 수 있는 디코더의 동작 방법과 이를 포함하는 데이터 저장 장치의 동작 방법
CN112951313B (zh) 用于纠错的存储控制器、包括其的存储设备及其操作方法
US20170134049A1 (en) Decoding method, memory storage device and memory control circuit unit
JP2019054448A (ja) メモリシステム
JP6847796B2 (ja) メモリシステム
US20190286517A1 (en) Memory system and method of controlling non-volatile memory
US20190089384A1 (en) Memory system
CN110572164B (zh) Ldpc译码方法、装置、计算机设备及存储介质
US20150149856A1 (en) Decoding with log likelihood ratios stored in a controller
CN110535476B (zh) Ldpc软译码器软信息存储优化方法、装置、计算机设备及存储介质
CN113658618B (zh) 错误校正解码器、具有其的错误校正电路及操作其的方法
US8448048B2 (en) Flash memory device and related programming method
WO2023246473A1 (zh) 一种译码方法、芯片及相关装置
US12126361B2 (en) Techniques to improve latency of retry flow in memory controllers
US20220209794A1 (en) Techniques to improve latency of retry flow in memory controllers
TWI804359B (zh) 低密度奇偶校檢碼的解碼方法及裝置
US11204831B2 (en) Memory system
JP7419113B2 (ja) メモリシステム

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