CN117746952A - 校验子解码系统 - Google Patents

校验子解码系统 Download PDF

Info

Publication number
CN117746952A
CN117746952A CN202311132429.1A CN202311132429A CN117746952A CN 117746952 A CN117746952 A CN 117746952A CN 202311132429 A CN202311132429 A CN 202311132429A CN 117746952 A CN117746952 A CN 117746952A
Authority
CN
China
Prior art keywords
errors
syndromes
circuitry
bit string
decoding
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202311132429.1A
Other languages
English (en)
Inventor
L·兹洛特尼科
E·恩·加德
F·周
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.)
Micron Technology Inc
Original Assignee
Micron Technology Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Micron Technology Inc filed Critical Micron Technology Inc
Publication of CN117746952A publication Critical patent/CN117746952A/zh
Pending legal-status Critical Current

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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/076Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/50Adding; Subtracting
    • G06F7/501Half or full adders, i.e. basic adder cells for one denomination
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Optimization (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

本公开涉及一种校验子解码系统。方法包含基于位串内具有逻辑值一的位数量来确定所述位串的错误数量,及将对应于所述位串的所述错误数量的指示写入到存储器单元阵列。所述方法可进一步包含确定所述位串的所述错误数量已达到阈值错误数量,及响应于确定所述位串的所述错误数量已达到所述阈值错误数量而避免执行用以确定所述位串的所述错误数量的后续操作。

Description

校验子解码系统
技术领域
本公开的实施例大体上涉及数字逻辑电路,且更具体来说,涉及校验子解码系统。
背景技术
存储子系统可包含存储数据的一或多个存储器装置。存储器装置可为例如非易失性存储器装置及易失性存储器装置。存储器子系统可包含用以促进存储器子系统的操作的一或多个模拟及/或数字电路。通常,主机系统可利用存储器子系统来将数据存储在存储器装置处及从存储器装置检索数据。
发明内容
本公开的实施例提供一种用于校验子解码的方法,其包括:基于位串内具有逻辑值一或逻辑值零或两者的位数量来确定所述位串的错误数量;将对应于所述位串的所述错误数量的指示写入到存储器单元阵列;确定所述位串的所述错误数量已达到阈值错误数量;及响应于确定所述位串的所述错误数量已达到所述阈值错误数量而避免执行用以确定或校正所述位串的所述错误数量或既确定又校正所述位串的所述错误数量的后续操作。
本公开的另一实施例提供一种用于校验子解码的设备,其包括:第一存储器单元阵列,其经配置以存储各自包括多个数据位的多个校验子;第一电路系统,其耦合到所述第一阵列且经配置以基于所述校验子中的每一者内具有逻辑值一的位数量来确定所述校验子中的所述每一者内含有的错误数量;第二电路系统,其耦合到所述第一电路系统,其中所述第二电路系统经配置以对于所述校验子中的每一者:将对应于所述校验子中的所述每一者内具有所述逻辑值一的所述位数量的指示写入到第二存储器单元阵列;确定所述校验子中的至少一者的所述错误数量已达到阈值错误数量;及响应于所述确定所述校验子中的所述至少一者内含有的所述错误数量已达到所述错误数量阈而避免执行用以确定所述校验子中的所述至少一者内含有的所述错误数量的后续操作。
本公开的又一实施例提供一种用于校验子解码的系统,其包括:第一存储器单元阵列,其经配置以存储各自包括多个数据位的多个校验子;移位电路系统,其经配置以对于所述多个校验子中的每一者,将所述校验子中的每一者的所述多个数据位传送到耦合到所述移位电路系统的决策电路系统,其中所述决策电路系统经配置以基于所述校验子中的每一者内具有逻辑值一的位数量来确定所述校验子中的所述每一者内含有的错误数量;加法器电路系统,其耦合到所述决策电路系统,其中所述加法器电路系统经配置以:对所述校验子中的所述每一者内具有逻辑值一的所述位数量求和以产生所述校验子中的每一者的解码完成指示;且将所述校验子中的每一者的所述解码完成指示写入到第二存储器单元阵列;基于所述解码完成指示,确定所述校验子中的至少一者的所述错误数量已达到阈值错误数量,且其中所述决策电路系统经配置以响应于所述确定所述校验子中的所述至少一者含有的所述错误数量已达到所述阈值错误数量而避免执行用以确定所述校验子中的所述至少一者含有的所述错误数量的后续操作。
附图说明
从下文所给出的详细描述及从本公开的各种实施例的附图,将更全面地理解本公开。
图1说明根据本公开的一些实施例的包含存储器子系统的实例计算系统。
图2说明根据本公开的一些实施例的校验子解码系统的实例。
图3说明根据本公开的一些实施例的校验子解码系统的另一实例。
图4是根据本公开的一些实施例的对应于用于校验子解码系统的方法的流程图。
图5是本公开的实施例可在其中操作的实例计算机系统的框图。
具体实施方式
本公开的方面涉及校验子解码系统,且特定来说,涉及包含校验子解码系统的存储器子系统。存储器子系统可为存储系统、存储装置、存储器模块或其组合。存储器子系统的实例是例如固态驱动器(SSD)的存储系统。下文结合图1等描述存储装置及存储器模块的实例。一般来说,主机系统可利用包含一或多个组件(例如存储数据的存储器装置)的存储器子系统。主机系统可提供待存储在存储器子系统处的数据且可请求待从存储器子系统检索的数据。
在存储器子系统的操作期间,将数据写入到一或多个存储器装置且由其存储数据。数据(例如,可对应于例如用户数据的一或多个码字)可在被传送到(若干)存储器装置之前及/或在被写入到(若干)存储器装置(例如,由其存储)之前进行编码。在检索数据后,通常对数据进行解码。存在许多用于码字的解码的技术,所述技术的一些非限制性实例包含最大似然解码、最小距离解码(例如,寻求最小化与码字相关联的汉明距离的解码技术)、列表解码及/或信息集解码等等。
如将明白,可在存储器子系统中采用此类解码技术以基于确定与数据(例如,码字)相关联的位具有不正确的状态(例如,应为“0”时为“1”,且反之亦然)来检测所述数据中的位错误。在存储器子系统的背景下采用的一些更常见的解码技术包含汉明码、里德-所罗门(RS)码、博斯-乔赫里-霍克文黑姆(BCH)码、循环冗余校验(CRC)码、戈莱码、雷德密勒码、戈帕码、邻居单元辅助错误校正码、低密度奇偶校验(LDPC)错误校正码、丹尼斯顿码及校验子解码等等。虽然这些解码技术中的每一者享有它们自身的益处,但它们也可能经历各种缺点。例如,更准确的解码技术倾向于消耗更多的功率及/或时间,而不太准确的解码技术可更快地执行且可消耗更少的功率。为了清晰起见,将根据线性码(例如LDPC码及/或校验子解码)来描述本公开,在给定本公开的上下文的情况下所述线性码在本文中通常被称为“解码技术”;然而,将明白,本文中所描述的技术也适用于其它解码技术。
在一些方法中,借助于通过一系列触发器(其可包含数千个触发器)处理位串及/或校验子且对位串及/或校验子应用逻辑运算(例如,逻辑OR运算)来实现位串及/或校验子的解码。在此类方法中,逻辑运算的输入数量通常等于用来处理位串及/或校验子的触发器数量。如果逻辑运算的执行返回特定值(例如,在逻辑OR运算的情况下逻辑值“0”),那么认为位串及/或校验子被解码。
例如,一些方法可利用约5,000到10,000个触发器来对一组位串及/或校验子进行解码。在此类方法中,需要具有约5,000到10,000个输入的逻辑门来执行涉及位串及/或校验子的逻辑运算以确定逻辑运算的结果是否返回特定值。如果逻辑运算未能返回特定值,那么通过触发器阵列反馈所有位串及/或校验子且再次执行逻辑运算。在给定触发器数量、逻辑门上的输入数目以及在此类方法下执行解码操作的重复性质的情况下,很明显,可在对一组位串及/或校验子进行解码时消耗大量计算资源(例如,功率、时间等)。此外,因为此类方法通常迭代地处理所有位串及/或校验子直到逻辑运算的结果返回特定值为止,所以对于至少一些迭代,可能存在被完全解码但仍被馈送通过触发器阵列及逻辑的完全解码的位串及/或校验子。
此外,在一些方法中,例如,如果确定位串及/或校验子含有太多不可校正的错误以致逻辑运算始终无法产生特定值及/或如果确定解码操作将花费比阈值时间段更长的时间来完成,那么可能难以提前中止解码操作。作为实例,一些方法需要使用加法器装置,所述加法器装置可具有与触发器及/或逻辑门的输入约一样多的输入以便确定解码操作是否应被中止。在此类方法中,可由加法器对所有位串及/或校验子求和以确定解码操作应被中止。如上文所提及,由于在此类方法下执行解码操作的重复性质以及在此类方法中利用的触发器及逻辑门输入的数量,这不仅给系统增加额外的大电路系统,而且可能消耗超越已消耗的计算资源的额外计算资源。
为了解决当前方法的这些及其它缺陷,本公开的实施例允许在解码操作期间跟踪及校验个别位串及/或校验子以确定位串及/或校验子是否已被成功解码。在一些实施例中,这个校验在将位串及/或校验子写回到存储器单元阵列(例如,触发器阵列)之前执行,在位串及/或校验子未被完全解码的情况下从所述存储器单元阵列检索及/或重写位串及/或校验子。
所述校验可包含执行用以对非零(即,含有错误位)的位串及/或校验子中的所有数字求和以确定所述位串及/或校验子中的每一者中剩余多少错误位的操作。另外,本文中所描述的实施例提供额外存储器单元阵列(或触发器阵列等),所述额外存储器单元阵列可在位串及/或校验子中的数字接近全零(这指示位串及/或校验子被成功解码)时存储及/或跟踪位串及/或校验子中的每一者的非零位的和。
一旦特定位串及/或校验子中含有的数字达到零(例如,一旦所述位串及/或校验子被成功解码),“跟踪和”值零就可与所述位串及/或校验子相关联。接着,将这个跟踪和值存储在存储及/或跟踪位串及/或校验子中的每一者的非零位的和的额外存储器单元阵列(或触发器阵列等)中。对于具有与其相关联的跟踪和值零的位串及/或校验子,这些位串及/或校验子不再被选择用于后续解码操作中的处理。例如,在一些实施例中,可取消选择到选择待从存储器单元阵列(例如,触发器阵列)读取的位串及/或校验子的多路复用器的输入使得具有跟踪和值零的位串及/或校验子不再作为解码操作的部分从所述阵列读取,在位串及/或校验子未被完全解码的情况下从所述存储器单元阵列检索及/或重写位串及/或校验子。
相比之下,不具有跟踪和值零的位串及/或校验子经受解码操作的进一步迭代,且在解码操作的每次迭代的执行之后确定新跟踪和值,直到位串及/或校验子的跟踪和值已达到零为止。另外,本文中的实施例规定简单地通过确定位串及/或校验子中的一或多者的跟踪和值及/或与所有位串及/或校验子相关联的跟踪和值超过阈值跟踪和值来中止解码操作。
通过消除对所有位串及/或校验子进行迭代解码直至所有位串及/或校验子已被解码为止的先前方法中展现的要求,本公开的实施例可减少在此类解码操作的执行中消耗的功率。例如,至少因为不重新处理已被成功解码的位串及/或校验子,所以与先前方法相比,本文中的实施例减少在对位串及/或校验子进行解码时消耗的功率量及花费的时间量,由此改进本公开的实施例在其中操作的计算系统的性能。此外,通过提供用以中止解码操作的简化方法(例如,基于简单阈值的方法),本公开的实施例可允许可能永远不会收敛的解码操作(例如,由于存在大量不可校正的错误而可能永远不会被完全解码的解码操作、可能花费比阈值时间段更长的时间来完成的解码操作等)被有效且及时地中止,由此减少在可能永远不会收敛的位串及/或校验子的解码中消耗的功率量及花费的时间量,且因此改进本公开的实施例在其中操作的计算系统的性能。
此外,本公开的实施例可减少在此类解码操作的执行中消耗的时间。例如,至少因为不重新处理已被成功解码的位串及/或校验子,所以与先前方法相比,可加快解码操作的执行。即,因为一旦各种校验子具有值零(例如,校验子不再含有错误指示)就可暂缓对应于所述校验子的数据路径及/或逻辑,所以可处理后续非零校验子,同时避免处理具有值零的校验子。除减少在解码操作期间消耗的动态功率及泄漏功率之外,这还可允许比先前方法更快地处理(例如,解码)非零校验子。
图1说明根据本公开的一些实施例的包含存储器子系统110的实例计算系统100。存储器子系统110可包含媒体,例如一或多个易失性存储器装置(例如,存储器装置140)、一或多个非易失性存储器装置(例如,存储器装置130)或其组合。
存储器子系统110可为存储装置、存储器模块或存储装置与存储器模块的混合体。存储装置的实例包含固态驱动器(SSD)、快闪驱动器、通用串行总线(USB)快闪驱动器、嵌入式多媒体控制器(eMMC)驱动器、通用快闪存储(UFS)驱动器、安全数字(SD)卡及硬盘驱动器(HDD)。存储器模块的实例包含双列直插式存储器模块(DIMM)、小外形DIMM(SO-DIMM)及各种类型的非易失性双列直插式存储器模块(NVDIMM)。
计算系统100可为计算装置,例如台式计算机、膝上型计算机、服务器、网络服务器、移动装置、交通工具(例如,飞机、无人机、火车、汽车或其它运输工具)、具有物联网(IoT)能力的装置、嵌入式计算机(例如,包含在交通工具、工业装备或联网商业装置中的计算机),或包含存储器及处理装置的此类计算装置。
在其它实施例中,计算系统100可部署在计算装置上或以其它方式包含在计算装置中,所述计算装置例如台式计算机、膝上型计算机、服务器、网络服务器、移动计算装置、交通工具(例如,飞机、无人机、火车、汽车或其它运输工具)、具备物联网(IoT)能力的装置、嵌入式计算机(例如,包含在交通工具、工业装备或联网商业装置中的计算机)或包含存储器及处理装置的此类计算装置。如本文中所使用,术语“移动计算装置”通常是指具有平板计算机或平板手机形状因子的手持计算装置。一般来说,平板计算机形状因子可包含在近似3英寸与5.2英寸(对角测量)之间的显示屏,而平板手机形状因子可包含在近似5.2英寸与7英寸(对角测量)之间的显示屏。然而,“移动计算装置”的实例不限于此,且在一些实施例中,“移动计算装置”可指IoT装置以及其它类型的边缘计算装置。
计算系统100可包含耦合到一或多个存储器子系统110的主机系统120。在一些实施例中,主机系统120耦合到不同类型的存储器子系统110。图1说明耦合到一个存储器子系统110的主机系统120的一个实例。如本文中所使用,“耦合到”或“与…耦合”通常是指组件之间的连接,其可为间接通信连接或直接通信连接(例如,没有中介组件),无论是有线的还是无线的,包含例如电连接、光学连接、磁性连接等连接。
主机系统120可包含处理器芯片组及由处理器芯片组执行的软件堆栈。处理器芯片组可包含一或多个核心、一或多个高速缓存器、存储器控制器(例如,SSD控制器)及存储协议控制器(例如,PCIe控制器、SATA控制器)。主机系统120使用存储器子系统110例如来将数据写入到存储器子系统110及从存储器子系统110读取数据。
主机系统120包含处理单元121。处理单元121可为经配置以执行操作系统的中央处理单元(CPU)。在一些实施例中,处理单元121包括复杂指令集计算机架构,例如x86或适于用作主机系统120的CPU的其它架构。
主机系统120可经由物理主机接口耦合到存储器子系统110。物理主机接口的实例包含但不限于串行高级技术附件(SATA)接口、外围组件互连快速(PCIe)接口、通用串行总线(USB)接口、光纤通道、串行附接SCSI(SAS)、小型计算机系统接口(SCSI)、双倍数据速率(DDR)存储器总线、双列直插式存储器模块(DIMM)接口(例如,支持双倍数据速率(DDR)的DIMM插槽接口)、开放式NAND快闪接口(ONFI)、双倍数据速率(DDR)接口、低功率双倍数据速率(LPDDR)接口或任何其它接口。物理主机接口可被用来在主机系统120与存储器子系统110之间传输数据。当存储器子系统110通过PCIe接口与主机系统120耦合时,主机系统120可进一步利用NVM快速(NVMe)接口来存取组件(例如,存储器装置130)。物理主机接口可提供用于在存储器子系统110与主机系统120之间传递控制、地址、数据及其它信号的接口。图1作为实例说明存储器子系统110。一般来说,主机系统120可经由同一通信连接、多个单独通信连接及/或通信连接组合存取多个存储器子系统。
存储器装置130、140可包含不同类型的非易失性存储器装置及/或易失性存储器装置的任何组合。易失性存储器装置(例如,存储器装置140)可为但不限于随机存取存储器(RAM),例如动态随机存取存储器(DRAM)及同步动态随机存取存储器(SDRAM)。
非易失性存储器装置(例如,存储器装置130)的一些实例包含与非(NAND)型快闪存储器及原位写入存储器,例如三维交叉点(“3D交叉点”)存储器装置,其是非易失性存储器单元的交叉点阵列。非易失性存储器的交叉点阵列可结合可堆叠交叉网格数据存取阵列基于体电阻的变化来执行位存储。另外,与许多基于快闪的存储器相比,交叉点非易失性存储器可执行原位写入操作,其中可在不预先擦除非易失性存储器单元的情况下对非易失性存储器单元进行编程。NAND型快闪存储器包含例如二维NAND(2D NAND)及三维NAND(3DNAND)。
存储器装置130、140中的每一者可包含一或多个存储器单元阵列。一种类型的存储器单元(例如,单电平单元(SLC))可每单元存储一个位。其它类型的存储器单元(例如多电平单元(MLC)、三电平单元(TLC)、四电平单元(QLC)及五电平单元(PLC))可每单元存储多个位。在一些实施例中,存储器装置130中的每一者可包含一或多个存储器单元(例如SLC、MLC、TLC、QLC、PLC或其任何组合)阵列。在一些实施例中,特定存储器装置可包含存储器单元的SLC部分、MLC部分、TLC部分、QLC部分或PLC部分。存储器装置130的存储器单元可被分组为页面,其可指用来存储数据的存储器装置的逻辑单位。对于一些类型的存储器(例如,NAND),可对页面进行分组以形成块。
尽管描述例如非易失性存储器单元的三维交叉点阵列及NAND型存储器(例如,2DNAND、3D NAND)的非易失性存储器组件,但存储器装置130可基于任何其它类型的非易失性存储器或存储装置,例如只读存储器(ROM)、相变存储器(PCM)、自选择存储器、其它基于硫属化物的存储器、铁电晶体管随机存取存储器(FeTRAM)、铁电随机存取存储器(FeRAM)、磁随机存取存储器(MRAM)、自旋转移力矩(STT)-MRAM、导电桥接RAM(CBRAM)、电阻式随机存取存储器(RRAM)、基于氧化物的RRAM(OxRAM)、或非(NOR)快闪存储器及电可擦除可编程只读存储器(EEPROM)。
存储器子系统控制器115(或简称为控制器115)可与存储器装置130通信,以执行例如在存储器装置130处读取数据、写入数据或擦除数据的操作及其它此类操作。存储器子系统控制器115可包含硬件,例如一或多个集成电路及/或离散组件、缓冲存储器或者其组合。硬件可包含具有专用(即,硬编码)逻辑以执行本文中所描述的操作的数字电路系统。存储器子系统控制器115可为微控制器、专用逻辑电路系统(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)或其它合适处理器。
存储器子系统控制器115可包含经配置以执行存储在本地存储器119中的指令的处理器117(例如,处理装置)。在所说明实例中,存储器子系统控制器115的本地存储器119包含嵌入式存储器,所述嵌入式存储器经配置以存储用于执行控制存储器子系统110的操作(包含处置存储器子系统110与主机系统120之间的通信)的各种过程、操作、逻辑流程及例程的指令。
在一些实施例中,本地存储器119可包含存储存储器指针、所提取数据等的存储器寄存器。本地存储器119还可包含用于存储微码的只读存储器(ROM)。虽然图1中的实例存储器子系统110已被说明为包含存储器子系统控制器115,但在本公开的另一实施例中,存储器子系统110不包含存储器子系统控制器115,而是可依赖于外部控制(例如,由外部主机,或者由与存储器子系统分离的处理器或控制器提供)。
一般来说,存储器子系统控制器115可从主机系统120接收命令或操作且将命令或操作转换成用以实现对存储器装置130及/或存储器装置140的所期望存取的指令或适当命令。存储器子系统控制器115可负责与存储器装置130相关联的其它操作,例如损耗均衡操作、废弃项目收集操作、错误检测及错误校正码(ECC)操作、加密操作、高速缓存操作及逻辑地址(例如,逻辑块地址(LBA)、命名空间)与物理地址(例如,物理块地址、物理媒体位置等)之间的地址转译。存储器子系统控制器115可进一步包含用以经由物理主机接口与主机系统120通信的主机接口电路系统。主机接口电路系统可将从主机系统接收的命令转换成用以存取存储器装置130及/或存储器装置140的命令指令,并且将与存储器装置130及/或存储器装置140相关联的响应转换成用于主机系统120的信息。
存储器子系统110还可包含未说明的额外电路系统或组件。在一些实施例中,存储器子系统110可包含高速缓存或缓冲器(例如,DRAM)及地址电路系统(例如,行解码器及列解码器),所述地址电路系统可从存储器子系统控制器115接收地址且对所述地址进行解码以存取存储器装置130及/或存储器装置140。
在一些实施例中,存储器装置130包含结合存储器子系统控制器115操作以对存储器装置130的一或多个存储器单元执行操作的本地媒体控制器135。外部控制器(例如,存储器子系统控制器115)可从外部管理存储器装置130(例如,对存储器装置130执行媒体管理操作)。在一些实施例中,存储器装置130是受管理存储器装置,其是与用于同一存储器装置封装内的媒体管理的本地控制器(例如,本地控制器135)组合的原始存储器装置。受管理存储器装置的实例是受管理NAND(MNAND)装置。
存储器子系统110可包含解码电路系统113。尽管未在图1中展示以免混淆附图,但解码电路系统113可包含用以促进本文中所描述的本公开的方面的各种电路系统。在一些实施例中,根据本公开,解码电路系统113可包含呈ASIC、FPGA、状态机、硬件处理装置及/或其它逻辑电路系统的形式的专用电路系统,其可允许解码电路系统113协调及/或执行操作以提供特别是关于芯片上系统的位串及/或校验子解码。本文中结合图2及图3更详细地论述解码电路系统113。
在一些实施例中,存储器子系统控制器115包含解码电路系统113的至少一部分。例如,存储器子系统控制器115可包含经配置以执行存储在本地存储器119中用于执行本文中所描述的操作的指令的处理器117(处理装置)。在一些实施例中,解码电路系统113是主机系统110、应用程序或操作系统的部分。解码电路系统113可驻留在存储器子系统110及/或存储器子系统控制器115上。如本文中所使用,术语“驻留在…上”是指某物物理上位于特定组件上。例如,解码电路系统113“驻留在存储器子系统110上”例如是指其中包括解码电路系统113的硬件电路系统物理上位于存储器子系统110上的状况。术语“驻留在…上”在本文中可与例如“部署在…上”或“位于…上”的其它术语互换地使用。
图2说明根据本公开的一些实施例的校验子解码系统201的实例。校验子解码系统201包含图1中所说明的解码电路系统113的至少一部分。实例系统201(其在替代方案中可被称为“设备”)包含阵列212(例如,“第一”阵列),所述阵列212可包含经配置以存储位串及/或校验子214-1、214-2到214-N(其可被统称为位串及/或校验子214)的装置。在一些实施例中,位串及/或校验子214包括由存储器子系统110利用的码字。如本文中所使用,术语“码字”通常是指具有所指定大小(例如,4KB等)的数据字,所述码字经编码使得所述码字可由某种错误编码及/或解码方案个别地保护。例如,“码字”可指可被个别编码及/或解码的一组位(例如,位串及/或校验子)。一般来说,对于NAND型存储器装置,“码字”可表示可由与系统201相关联的存储器装置、主机装置或其它计算装置读取的最小单位(例如,一组位)。尽管在图2中未明确地展示,但所说明组件中的一或多者可为多个此类组件中的一者。例如,决策电路系统218可为任何数量的决策电路218中的单个决策电路218(例如,可存在八、十、十二等个决策电路218,八、十、十二等个移位电路216等,但实施例不限于这个特定数量)。
阵列212可为存储器单元阵列及/或触发器及/或锁存器阵列等。如图2中所展示,阵列212耦合到多路复用器(或“MUX”)205,所述多路复用器205经配置以选择性地将位串及/或校验子214中的一或多者传送到移位电路系统216。在一些实施例中,移位电路系统216可包括经配置以使位串及/或校验子214移位达所指定数目个位的桶形移位器。即,在一些实施例中,移位电路系统216可使用纯组合逻辑使位串及/或校验子214移位达所指定数目个位。然而,实施例不限于此,且在本公开内考虑,移位电路系统216可经配置以利用其它组合逻辑技术(例如,循环移位等)及/或循序逻辑技术执行涉及位串及/或校验子214的移位操作。
移位电路系统216耦合到决策电路系统218。决策电路系统218包含经配置以校正位串及/或校验子214中的错误位(例如,位翻转错误)的硬件电路系统。在一些实施例中,决策电路系统218可基于位串及/或校验子214中的一或多个位有错误的经确定概率来致使此类位被翻转。位串及/或校验子214中的一或多个位待被翻转的概率可使用各种线性码(例如校验子解码码、LDPC码等)来确定。然而,实施例不限于其中决策电路系统218基于位串及/或校验子214中的一或多个位有错误的经确定概率(例如,通过使用线性解码技术)来致使此类位被翻转的情况,且在一些实施例中,决策电路系统218可基于数学推理算法、机器学习算法及/或用于确定位串及/或校验子214的哪些位有错误的其它合适技术来确定位串及/或校验子214的哪些位是错误的。
在出于说明性目的而提供的简化实例中,以含有以下位模式的校验子214为例:[10 0 1 0 1 1 0],决策电路系统218可确定第二位(从右边开始)可能是错误的且因此可处理校验子214以翻转第二位,由此产生以下新校验子[1 0 0 1 0 1 0 0]。此位翻转使解码器更接近码字(其中所有校验子位均为零)。然而,实施例不限于其中决策电路系统218作为对校验子214进行解码的部分仅致使单个位被翻转的场景。例如,使用上文所给出的相同初始校验子[1 0 0 1 0 1 1 0],决策电路系统218可确定第二位、第三位及第八位可能是错误的且因此可处理校验子214以翻转第二位、第三位及第八位,由此产生以下新校验子[00 0 1 0 0 0]。应注意,这些说明性的非限制性实例可为迭代解码过程的部分,其中由决策电路系统218多次处理校验子214以试图对此类校验子214进行解码。因此,上文所给出的说明性的非限制性实例可表示由决策电路系统218在解码过程的第一次迭代时或在解码过程的任何后续迭代时执行的操作。
一旦决策电路系统218已尝试校正位串及/或校验子214中的一或多个错误位,就可将位串及/或校验子214传送到逻辑门221的输入。在一些实施例中,当位串的一或多个位被校正时,可更新对应校验子(其可反映对应于位串的错误状态)以反映所述校验子的当前错误状态。尽管在一些实施例中,被(例如,由多路复用器205、移位电路系统216、决策电路系统218、逻辑门221等)处理的是校验子,但以下非限制性实例引用位串及/或校验子两者以便说明本公开的各个方面。如图2中所展示,逻辑门221是XOR门,但实施例不限于利用XOR门。在其中逻辑门221包括XOR门的实施例中,由决策电路系统218处理的位串及/或校验子214作为输入被逻辑门221接收且对其执行逻辑XOR运算。如将明白,如果逻辑XOR运算的结果返回值零,那么位串及/或校验子214已被成功解码。响应于确定位串及/或校验子214已被成功解码,设置已被成功解码的位串及/或校验子214被写入到阵列225及多路分用器209的指示,使得避免对那个位串及/或校验子214的进一步处理(例如,从阵列212检索、通过电路系统216移位、由决策电路系统218处理等)。将明白,一般来说,已被解码的是位串,因为如上文所提及,校验子通常反映与位串内含有的数据相关联的当前错误状态,且一旦校验子的值已达到零,就暗示着位串已被解码;然而,与本公开中所概述的惯例一致,利用对位串及/或校验子两者的引用以便说明本公开的各个方面。
由加法器电路系统223对未成功解码的位串及/或校验子214、在通过逻辑门221后未返回零值的位数量求和,且将对应于未返回零值的位数量的和的数值(例如,“跟踪和值”)写入到阵列225。一般来说,加法器电路系统223包含经配置以执行加法运算以对特定值(例如,与具有与其相关联的逻辑值“1”及/或逻辑值“0”的一或多个位串及/或校验子的相关联的位数量)求和的硬件及/或逻辑电路系统。
在一些实施例中,阵列212经配置以对于解码操作的每一层及/或迭代存储每位串及/或校验子214的一个跟踪和值。这些位串及/或校验子214经由多路分用器209写回到阵列212,且执行解码操作的后续迭代,如上文所描述。应注意,与其中所有位串及/或校验子214参与解码操作的后续迭代的先前方法相比,本文中的实施例规定至少一些位串及/或校验子214不参与解码过程的每次后续迭代,由此减少由系统201在执行解码操作时消耗的功率。例如,至少因为本文中的实施例不激发阵列212的每个行(因为不进一步处理已被成功解码的一些位串及/或校验子214),所以经消耗功率量由于以下原因而减小:(1)随着解码操作的迭代数量增加而激发阵列212的更少行;(2)随着解码操作的迭代数量增加而避免操作对应于已被成功解码的位串及/或校验子214的移位电路系统216;及(3)随着解码操作的迭代数量增加而避免操作用于已被成功解码的位串及/或校验子214的决策电路系统218。
随着解码操作的迭代被执行,一般来说,加法器电路系统223将处理越来越多的已被成功解码的位串及/或校验子214,且因此将处理具有等于零的位和(在经过逻辑门221处理之后)的更多位串及/或校验子214。在发生这种情况时,加法器电路223将写入(或在位串及/或校验子214具有来自解码操作的先前迭代的不等于零的先前位和的情况下覆写)越来越多的等于零的跟踪和值。一旦位串及/或校验子214已全部被成功解码,就可在块226处确定阵列225中的所有跟踪和值的和等于零,由此指示已对所有位串及/或校验子214成功执行解码操作。
然而,如果位串及/或校验子214的跟踪和值看起来可能不会收敛于零(例如,至少在阈值数量的位串及/或校验子214中存在太多不可校正的错误),那么可在块228处确定解码操作可能未成功结束。即,如果在块228处确定写入到阵列212的跟踪和值的和大于位串及/或校验子214的阈值错误数量值,那么解码操作可能未无法完成,且解码操作可被中止。
如上文所提及,与其中大加法器电路在解码操作的一或多次迭代之后对与所有位串及/或校验子214中的位相关联的值求和以确定解码操作是否应被中止的方法相比,本文中的实施例允许简单地通过以下步骤来中止解码操作:校验写入到阵列212的所有跟踪和值的和是否满足或超过阈值;及响应于确定写入到阵列212的所有跟踪和值的和满足或超过阈值,中止解码操作。与先前方法相比较,这个特征可允许被确定为不可能收敛的解码操作的简化中止(例如,以实现位串及/或校验子214的成功解码),由此最小化在执行可能失败的解码操作的迭代时消耗的功率量。
如图2中所展示,额外多路复用器227可耦合到阵列225。多路复用器227接收已写入到阵列225的位串及/或校验子214的跟踪和值作为输入。对于指示位串及/或校验子214已被成功解码的对应于位串及/或校验子214的跟踪和值(例如,对于等于零的跟踪和值),可将输出信号传送到多路复用器229以致使多路复用器229取消选择多路复用器229的对应于已被成功解码的位串及/或校验子214的输出。
对于指示位串及/或校验子214未被成功解码的对应于位串及/或校验子214的跟踪和值(例如,对于不等于零的跟踪和值),可将输出信号传送到多路复用器229以选择多路复用器229的对应于当前层及/或迭代及/或先前层及/或迭代的输出。另外,可将对应于“当前层”与“先前层”之间的选择的输出信号传送到多路复用器229。一般来说,当校验子具有值零时,选择先前层以便有效地暂缓数据路径,由此减少由系统201消耗的功率量。相比之下,如果校验子不等于零,那么可选择当前层使得作为解码操作的部分进一步处理校验子。以这种方式,可例如在逐层、逐迭代及/或逐位串/校验子串的基础上确定哪些位串及/或校验子214经受后续解码操作以及哪些位串及/或校验子214不经受后续解码操作,以最小化系统201在执行本文中所描述的解码操作时的功耗。
在非限制性实例中,设备(例如,图1中所说明的计算系统100、图1中所说明的解码电路系统113、图2及图3中所说明的校验子解码系统201/301及/或其组件)包含存储器单元(或其它存储位置,例如触发器等)的第一阵列212,所述第一阵列212经配置以存储各自包括多个数据位的多个位串及/或校验子214(在这个非限制性实例中被简称为“校验子”214)。在一些实例中,多个数据位可对应于用户数据,或写入存储器子系统(例如图1中所说明的存储器子系统110)的其它数据。所述设备可进一步包含耦合到第一阵列212的第一电路系统(例如,决策电路系统218),所述第一电路系统经配置以基于校验子214中的每一者内具有逻辑值一(“1”)的位数量来确定校验子214中的每一者内含有的错误数量。
在一些实施例中,第二电路系统(例如,加法器电路系统223)可耦合到第一电路系统。第二电路系统可经配置以对于校验子214中的每一者,将对应于校验子214中的每一者内具有逻辑值一的位数量的指示写入到第二存储器单元阵列(例如,阵列225)。第二电路系统可进一步确定校验子214中的至少一者的错误数量已达到阈值错误数量,且响应于确定校验子214中的至少一者内含有的错误数量已达到阈值错误数量而避免执行用以确定校验子214中的至少一者内含有的错误数量的后续操作。
例如,可由第二电路系统确定校验子214中的一或多者内未被成功解码的位的经求和数量,且可将对应于错误位的这个经求和数量的指示(例如,“跟踪和值”)写入到阵列225。实施例不限于此,且所述设备的个别组件中的一或多者可协同操作以确定校验子214中的一或多者内未被成功解码的位的经求和数量及/或可致使对应于此类位的跟踪和值被写入到阵列225。
继续这个实例,第二电路系统(例如,加法器电路系统223及/或耦合到其的组件)可确定校验子214中的至少第二者的错误数量已达到阈值错误数量,且响应于确定校验子214中的至少第二者内含有的错误数量已达到阈值错误数量而避免执行用以确定所述校验子中的至少第二者内含有的错误数量的后续操作。即,因为本文中所描述的解码操作可为迭代解码操作,所以第二电路系统可确定后续解码的校验子214的错误数量已达到相应阈值错误数量,且响应于此确定,可致使对已基于与其相关联的跟踪和值被确定为成功解码的校验子214执行进一步解码操作(例如,解码操作的后续迭代)。
如所提及,第一电路系统可包含决策电路系统218。然而,实施例不限于此,且第一电路系统可进一步包含移位电路系统216、多路复用器205等。此外,如所提及,第二电路系统可包含加法器电路系统223。然而,实施例不限于此,且第二电路系统可进一步包含逻辑电路系统221、多路分用器209、操作块226及/或228的电路系统、多路复用器227及/或多路复用器229等。在一些实施例中,加法器电路系统223可包括逻辑NAND门,例如本文在图3中所说明的NAND门332。
在一些实施例中,第二电路系统经配置以避免执行后续操作(例如,后续解码操作)以便减少在计算系统(例如,本文中所说明的系统201及/或系统100)的操作中消耗的功率量,所述计算系统包括第一电路系统、第二电路系统、第一存储器单元阵列及第二存储器单元阵列。在其中第一电路系统、第二电路系统、第一存储器单元阵列及/或第二存储器单元阵列包括芯片上系统的实施例中,第二电路系统可经配置以避免执行后续操作(例如,后续解码操作)以便减少由芯片上系统消耗的功率量。
继续这个实例,第一电路系统可经配置以作为用以对与校验子214中的每一者相关的数据进行解码的操作的执行的部分而确定校验子214中的每一者内含有的错误数量,且第二电路系统可经配置以作为用以对与校验子214中的每一者相关的数据进行解码的操作的执行的部分而确定校验子214中的至少一者的错误数量已达到阈值错误数量。如上文所提及,用以对校验子214进行解码的操作可包含用以校正校验子214内含有的错误位的操作。
在一些实施例中,第二电路系统可经配置以在校验子214中的至少一者的位数量当中的每一位具有逻辑值零时确定所述校验子中的至少一者的错误数量已达到阈值错误数量,如块226处所说明。然而,如果确定校验子214可能无法被成功解码,那么第二电路系统可经配置以在确定校验子214中的至少一者无法被成功解码时确定所述校验子中的至少一者的错误数量已达到阈值错误数量,如块228处所说明。
在另一非限制性实例中,系统(例如,系统201及/或图3的系统301)包含经配置以存储各自包括多个数据位的多个校验子214的第一存储器单元阵列212。系统201进一步包含移位电路系统216,所述移位电路系统216经配置以对于多个校验子214中的每一者,将校验子214中的每一者的多个数据位传送到耦合到移位电路系统216的决策电路系统218。在一些实施例中,决策电路系统218经配置以基于校验子214中的每一者内具有逻辑值一的位数量来确定校验子214中的每一者内含有的错误数量。
在这个实例中,系统201可进一步包含耦合到决策电路系统218的加法器电路系统223(及/或图3的逻辑门332)。加法器电路系统223可对所述校验子中的每一者内具有逻辑值一的位数量求和以产生校验子214中的每一者的解码完成指示(例如,跟踪和值),将所述校验子中的每一者的解码完成指示写入到第二存储器单元阵列225,且基于解码完成指示来确定校验子214中的至少一者的错误数量已达到阈值错误数量。如本文中所描述,决策电路系统218接着可响应于确定校验子214中的至少一者内含有的错误数量已达到阈值错误数量而避免执行用以确定校验子214中的至少一者内含有的错误数量的后续操作。
如本文中所提及,移位电路系统216可包含多个移位电路系统且决策电路系统218可包含多个决策电路系统。在此类实施例中,移位电路系统216及决策电路系统218经配置以并发地处理多个校验子214。即,可提供多个移位电路系统及/或决策电路系统来并行地并发处理多个校验子214。
在一些实施例中,系统201可包含耦合到第二存储器单元阵列225的解码完成电路系统(例如,块226/228及/或图3的逻辑门334)。解码完成电路系统可响应于确定校验子214中的至少一者内含有的错误数量已达到阈值错误数量而确定涉及校验子214中的至少一者的解码操作已完成(例如,在块226处),如上文所论述。然而,实施例不限于此,且在一些实施例中,解码完成电路系统可响应于确定所述校验子中的至少一者内含有的错误数量已达到阈值错误数量而确定涉及所述校验子中的至少一者的解码操作已失败(例如,在块228处)。
继续这个非限制性实例,决策电路系统218可通过移除供应到存储校验子214中的至少一者的第一存储器阵列212的一部分的功率来避免执行用以确定校验子214中的至少一者内含有的错误数量的后续操作,及/或通过移除供应到与校验子214中的至少一者相关联的移位电路系统216的一部分的功率来避免执行用以确定校验子214中的至少一者含有的错误数量的后续操作。此外,如本文中所描述,决策电路系统218可经配置以避免执行后续操作以便减少在计算系统(例如,图1的计算系统100、图2及图3的校验子解码系统201/301等)的操作中消耗的功率量,所述计算系统包含第一存储器单元阵列212、第二存储器单元阵列225、决策电路系统218或加法器电路系统223或其任何组合。
图3说明根据本公开的一些实施例的校验子解码系统301的另一实例。系统301可大体上类似于图2的系统201。例如,阵列312、位串/校验子314-1、314-2到314-N、多路复用器305、移位电路系统316、决策电路系统318、逻辑电路系统321、多路复用器309、阵列325、多路复用器327及多路复用器329可类似于上文结合图2所说明及所论述的阵列212、位串/校验子214-1、214-2到214-N、多路复用器205、移位电路系统216、决策电路系统218、逻辑电路系统221、多路复用器209、阵列225、多路复用器227及多路复用器229。
与图2中所展示的实施例相比,图3的实施例包含代替图2的加法器电路系统221的逻辑门332以及代替图2的块226及228的另一逻辑门334。整个系统301以与图2的系统201相同的方式操作且因此,省略对涉及位串/校验子314的解码操作的操作及执行的细节的冗余论述。代替地,下文论述逻辑门332及逻辑门334的使用。
如图3中所展示,根据本公开的实施例,可使用逻辑门332代替图2的加法器电路系统221。例如,NAND逻辑门(以及其它类型的逻辑门)可替换图2的加法器电路系统221。在其中NAND门被用于逻辑门332的实施例中,逻辑门332可接收已经受解码操作的一或多次迭代的位串/校验子314(例如,已由移位电路系统316、决策电路系统318及/或逻辑电路系统321处理的位串/校验子314)作为输入。逻辑门332可经配置以输出对应于一或多个校验子314内未被成功解码的位数量的指示(或对应于一或多个校验子314内已被成功解码的位数量的指示)。在一些实施例中,所述指示可简单到指示(若干)校验子中存在一或多个错误的逻辑值“1”或指示(若干)校验子中不存在错误的逻辑值“0”。所述指示可类似于上文所论述的“跟踪和值”且可被写入到阵列325,如上文结合图2所论述。
逻辑门334可接收写入到阵列325的跟踪和值作为输入以确定解码操作是否完成。在一些实施例中,跟踪和值可为布尔逻辑值(例如,逻辑“1”或逻辑“0”)。可使用逻辑门334代替上文结合图2所说明及所论述的块226及228。在一些实施例中,逻辑门334可包括NAND逻辑门(以及其它类型的逻辑门)。在其中逻辑门334包括NAND逻辑门的实施例中,NAND逻辑门可接收对应于位串及/或校验子314中的每一者的跟踪和值,且执行用以确定解码操作是否完成的逻辑运算。如果确定解码操作未完成,那么可对未被成功解码的位串/校验子314执行额外解码操作,如上文所论述。如果基于由逻辑门334执行的逻辑运算的结果来确定解码操作已完成,那么可将解码操作已完成的指示传送到系统301外部的电路系统。
图4是根据本公开的一些实施例的对应于用于校验子解码系统的方法450的流程图。方法450可由处理逻辑来执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法450由图1的解码电路系统113来执行。尽管以特定顺序或次序进行展示,但除非另有指定,否则可修改过程的次序。因此,所说明实施例应被理解为仅是实例,且所说明过程可以不同次序执行,且一些过程可并行执行。另外,可在各种实施例中省略一或多个过程。因此,并非每个实施例均需要所有过程。其它过程流程是可能的。
在操作451处,方法450包含基于位串内具有逻辑值一的位数量来确定位串的错误数量。位串可为上文结合图2及图3所论述的位串及/或校验子214/314中的一或多者。此外,如上文所描述,逻辑值(例如,逻辑值“1”)可通过在如上文所描述的解码操作的执行期间处理位串来确定。在一些实施例中,方法450可包含通过操作加法器电路系统(例如,图2的加法器电路系统223及/或图3的逻辑门332)来确定位串的错误数量,所述加法器电路系统经配置以对位串内具有逻辑值一的位数量求和。
如上文所论述,方法450可进一步包含作为用以校正位串内的一或多个位翻转错误的解码操作的部分而确定位串的错误数量。例如,位串可包括校验子且方法450可包含作为确定位串的错误数量的部分而对校验子执行解码操作。在一些实施例中,方法450可包含使用决策电路系统(例如,本文在图2及图3中所说明的决策电路系统218/318)确定位串内具有逻辑值一的位数量。
在操作453处,方法450包含将对应于位串的错误数量的指示写入到存储器单元阵列。在一些实施例中,对应于位串的错误数量的指示可为写入到本文在图2及图3中所说明的阵列225/325的跟踪和值。
在操作455处,方法450包含确定位串的错误数量已达到阈值错误数量。在一些实施例中,确定位串的错误数量已达到阈值错误数量可由图2中所说明的块226及/或228及/或图3中所说明的逻辑门334来执行。
在操作457处,方法450包含响应于确定位串的错误数量已达到阈值错误数量而避免执行用以确定位串的错误数量的后续操作。例如,如上文所描述,一旦特定位串已被成功解码(例如,与所述位串相关联的经确定跟踪和值返回指示位串中不含有错误位的零串),那么可不对所述位串执行后续解码操作。在一些实施例中,方法450可包含避免执行后续操作以便减少在其中处理位串的计算系统(例如,图1的计算系统100、图2及图3中所说明的校验子解码系统201/301等)的操作中消耗的功率量及/或提高在所述计算系统内执行解码操作的速度。
在一些实施例中,位串是并行处理的多个位串中的一者。在此类实施例中,方法450可包含基于多个位串中的每一者的具有逻辑值一的位数量来确定多个位串中的每一者的错误数量,及将对应于多个位串中的每一者的错误数量的指示写入到存储器单元阵列。方法450可进一步包含确定多个位串中的至少一者的错误数量已达到阈值错误数量,及响应于确定所述至少一个位串的错误数量已达到阈值错误数量而避免执行用以确定所述位串的错误数量的后续操作。
图5是本公开的实施例可在其中操作的实例计算机系统的框图。例如,图5说明计算机系统500的实例机器,可在所述机器内执行用于致使所述机器执行本文中所描述的任何一或多种方法的一组指令。在一些实施例中,计算机系统500可对应于包含、耦合到或利用存储器子系统(例如,图1的存储器子系统110)的主机系统(例如,图1的主机系统120),或可用来执行控制器的操作(例如,执行操作系统以执行对应于图1的解码电路系统113的操作)。在替代实施例中,机器可连接(例如,联网)到LAN、内联网、外联网及/或因特网中的其它机器。所述机器可在客户端-服务器网络环境中以服务器或客户端机器的身份操作,在对等(或分布式)网络环境中作为对等机器操作或者在云计算基础结构或环境中作为服务器或客户端机器操作。
所述机器可为个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、网络设施、服务器、网络路由器、交换机或网桥,或者能够执行一组指令(循序或以其它方式)的任何机器,所述指令指定待由那个机器采取的动作。此外,虽然说明单个机器,但术语“机器”也应被理解为包含个别地或联合地执行一组(或多组)指令以执行本文中所论述的任何一或多种方法的任何机器集合。
实例计算机系统500包含处理装置502、主存储器504(例如,只读存储器(ROM)、快闪存储器、动态随机存取存储器(DRAM),例如同步DRAM(SDRAM)或Rambus DRAM(RDRAM)等)、静态存储器506(例如,快闪存储器、静态随机存取存储器(SRAM)等)及数据存储系统518,其经由总线530彼此通信。
处理装置502表示一或多个通用处理装置,例如微处理器、中央处理单元或类似者。更特定来说,所述处理装置可为复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器、或实施其它指令集的处理器、或实施指令集组合的处理器。处理装置502还可为一或多个专用处理装置,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器或类似者。处理装置502经配置以执行用于执行本文中所论述的操作及步骤的指令526。计算机系统500可进一步包含用以通过网络520进行通信的网络接口装置508。
数据存储系统518可包含机器可读存储媒体524(也被称为计算机可读媒体),其上存储有体现本文中所描述的任何一或多种方法或功能的一或多组指令526或软件。指令526在由计算机系统500执行期间也可完全或至少部分地驻留在主存储器504及/或处理装置502内,主存储器504及处理装置502也构成机器可读存储媒体。机器可读存储媒体524、数据存储系统518及/或主存储器504可对应于图1的存储器子系统110。
在一个实施例中,指令526包含用以实施对应于校验子解码电路系统(例如,图1的解码电路系统113)的功能性的指令。虽然机器可读存储媒体524在实例实施例中被展示为单个媒体,但术语“机器可读存储媒体”应被理解为包含存储一或多组指令的单个媒体或多个媒体。术语“机器可读存储媒体”也应被理解为包含能够存储或编码用于由机器执行的一组指令且致使机器执行本公开的任何一或多种方法的任何媒体。因此,术语“机器可读存储媒体”应被理解为包含但不限于固态存储器、光学媒体及磁性媒体。
已根据对计算机存储器内的数据位的操作的算法及符号表示呈现前述详细描述的一些部分。这些算法描述及表示是数据处理领域的技术人员用来最有效地向所属领域的其他技术人员传达他们工作的实质的方式。算法在本文且通常被视为导致所期望结果的自洽操作序列。所述操作是需要对物理量进行物理操纵的操作。通常,尽管不是必需的,但这些量采取能够被存储、组合、比较及以其它方式操纵的电或磁性信号的形式。主要出于通用的原因,将这些信号称为位、值、元素、符号、字符、项目、数字或类似者有时被证明是方便的。
然而,应记住,所有这些及类似术语均与适当物理量相关联且仅仅是应用于这些量的方便标签。本公开可涉及计算机系统或类似电子计算装置的动作及过程,其将在计算机系统寄存器及存储器内表示为物理(电子)量的数据操纵及转换成在计算机系统存储器或寄存器或其它此类信息存储系统内类似地表示为物理量的其它数据。
本公开还涉及一种用于执行本文中的操作的设备。这个设备可出于预期目的而专门构建,或其可包含由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此计算机程序可存储在计算机可读存储媒体中,例如但不限于任何类型的磁盘,包含软盘、光盘、CD-ROM及磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡,或者适于存储电子指令的任何类型的媒体,其各自耦合到计算机系统总线。
本文中所呈现的算法及显示并非固有地与任何特定计算机或其它设备相关。各种通用系统可与根据本文中的教示的程序一起使用,或可证明构建更专门的设备来执行所述方法是方便的。多种这些系统的结构将如下文描述中所阐述那样出现。另外,本公开未参考任何特定编程语言进行描述。将明白,可使用多种编程语言来实施如本文中所描述的本公开的教示。
本公开可作为可包含其上存储有指令的机器可读媒体的计算机程序产品或软件提供,所述指令可用来对计算机系统(或其它电子装置)进行编程以执行根据本公开的过程。机器可读媒体包含用于以机器(例如,计算机)可读的形式存储信息的任何机构。在一些实施例中,机器可读(例如,计算机可读)媒体包含机器(例如,计算机)可读存储媒体,例如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储媒体、光学存储媒体、快闪存储器装置等。
在前述说明书中,本公开的实施例已参考其特定实例实施例进行描述。将显而易见的是,可在不脱离如所附权利要求书中所阐述的本公开的实施例的更广泛精神及范围的情况下对本公开进行各种修改。因此,说明书及附图应被视为具有说明性意义而非限制性意义。

Claims (15)

1.一种用于校验子解码的方法,其包括:
基于位串(214)内具有逻辑值一或逻辑值零或两者的位数量来确定所述位串的错误数量;
将对应于所述位串的所述错误数量的指示写入到存储器单元阵列(212、225);
确定所述位串的所述错误数量已达到阈值错误数量;及
响应于确定所述位串的所述错误数量已达到所述阈值错误数量而避免执行用以确定或校正所述位串的所述错误数量或既确定又校正所述位串的所述错误数量的后续操作。
2.根据权利要求1所述的方法,其进一步包括作为用以校正所述位串内的一或多个位翻转错误的解码操作的部分,通过操作加法器电路系统(223)来确定所述位串的所述错误数量,所述加法器电路系统经配置以对所述位串内具有所述逻辑值一的所述位数量求和。
3.根据权利要求1所述的方法,其中所述位串是并行处理的多个位串中的一者,且其中所述方法进一步包括:
基于所述多个位串中的每一者具有逻辑值一的位数量来确定所述多个位串中的每一者的错误数量;
将对应于所述多个位串中的每一者的所述错误数量的指示写入到存储器单元阵列(212、225);
确定所述多个位串中的至少一者的所述错误数量已达到阈值错误数量;及
响应于确定所述至少一个位串的所述错误数量已达到所述阈值错误数量而避免执行用以确定所述位串的所述错误数量的后续操作,以便减少在其中处理所述位串的计算系统的操作中消耗的功率量或提高在所述计算系统内执行解码操作的速度或既减少所述功率量又提高所述速度。
4.根据权利要求1所述的方法,其中在基于所述位串内具有逻辑值一的所述位数量来确定所述位串的所述错误数量之前,所述方法包括使用决策电路系统(218)确定所述位串内具有所述逻辑值一的所述位数量,此外其中,所述位串包括校验子,且所述方法进一步包括作为确定所述位串的所述错误数量的部分而对所述校验子执行解码操作。
5.一种用于校验子解码的设备(100),其包括:
第一存储器单元阵列(212),其经配置以存储各自包括多个数据位的多个校验子(214);
第一电路系统,其耦合到所述第一阵列且经配置以基于所述校验子中的每一者内具有逻辑值一的位数量来确定所述校验子中的所述每一者内含有的错误数量;
第二电路系统,其耦合到所述第一电路系统,其中所述第二电路系统经配置以对于所述校验子中的每一者:
将对应于所述校验子中的所述每一者内具有所述逻辑值一的所述位数量的指示写入到第二存储器单元阵列(225);
确定所述校验子中的至少一者的所述错误数量已达到阈值错误数量;及
响应于所述确定所述校验子中的所述至少一者内含有的所述错误数量已达到所述阈值错误数量而避免执行用以确定所述校验子中的所述至少一者内含有的所述错误数量的后续操作。
6.根据权利要求5所述的设备,其中所述第二电路系统耦合到所述第一电路系统,且其中所述第二电路系统经配置以能够:
确定所述校验子中的至少第二者的错误数量已达到阈值错误数量;及
响应于所述确定所述校验子中的所述至少第二者内含有的所述错误数量已达到所述阈值错误数量而避免执行用以确定所述校验子中的所述至少第二者内含有的所述错误数量的后续操作。
7.根据权利要求5所述的设备,其中所述第一电路系统至少包括决策电路系统(218)且其中所述第二电路系统至少包括加法器电路系统(223),所述加法器电路系统包括逻辑NAND门(332)。
8.根据权利要求5所述的设备,其中所述第二电路系统耦合到所述第一电路系统,其中所述第二电路系统经配置以避免执行所述后续操作,以便减少在包括所述第一电路系统、所述第二电路系统、所述第一存储器单元阵列及所述第二存储器单元阵列的计算系统(100、201)的操作中消耗的功率量。
9.根据权利要求5所述的设备,其中:
所述第一电路系统经配置以作为用以对与所述校验子中的每一者相关联的数据进行解码的操作的执行的部分而确定所述校验子中的每一者内含有的所述错误数量,且
所述第二电路系统经配置以作为用以对与所述校验子中的每一者相关联的数据进行解码的操作的执行的部分而确定所述校验子中的所述至少一者的所述错误数量已达到所述阈值错误数量。
10.根据权利要求5所述的设备,其中所述第二电路系统经配置以在以下情况下确定所述校验子中的所述至少一者的所述错误数量已达到所述阈值错误数量:
所述校验子中的所述至少一者的所述位数量当中的每一位具有逻辑值零;或
确定所述校验子中的所述至少一者无法被成功解码。
11.一种用于校验子解码的系统(100),其包括:
第一存储器单元阵列(212),其经配置以存储各自包括多个数据位的多个校验子(214);
移位电路系统(216),其经配置以对于所述多个校验子中的每一者,将所述校验子中的每一者的所述多个数据位传送到耦合到所述移位电路系统的决策电路系统(218),其中所述决策电路系统经配置以基于所述校验子中的每一者内具有逻辑值一的位数量来确定所述校验子中的所述每一者内含有的错误数量;
加法器电路系统(223),其耦合到所述决策电路系统,其中所述加法器电路系统经配置以:
对所述校验子中的所述每一者内具有所述逻辑值一的所述位数量求和以产生所述校验子中的每一者的解码完成指示;且
将所述校验子中的每一者的所述解码完成指示写入到第二存储器单元阵列(225);
基于所述解码完成指示,确定所述校验子中的至少一者的所述错误数量已达到阈值错误数量,且其中
所述决策电路系统经配置以响应于所述确定所述校验子中的所述至少一者含有的所述错误数量已达到所述阈值错误数量而避免执行用以确定所述校验子中的所述至少一者含有的所述错误数量的后续操作。
12.根据权利要求11所述的系统,其中所述加法器电路系统包括逻辑NAND门,所述移位电路系统包括多个移位电路系统,
所述决策电路系统包括多个决策电路系统,且
所述移位电路系统及所述决策电路系统经配置以并发地处理所述多个校验子。
13.根据权利要求11所述的系统,其进一步包括耦合到所述第二存储器单元阵列的解码完成电路系统(226、228、334),其中所述解码完成电路系统经配置以响应于所述确定所述校验子中的所述至少一者内含有的所述错误数量已达到所述阈值错误数量而确定涉及所述校验子中的所述至少一者的解码操作已完成。
14.根据权利要求11所述的系统,其进一步包括耦合到所述第二存储器单元阵列的解码完成电路系统(226、228、334),其中所述解码完成电路系统经配置以响应于所述确定所述校验子中的所述至少一者内含有的所述错误数量已达到所述阈值错误数量而确定涉及所述校验子中的所述至少一者的解码操作已失败。
15.根据权利要求11所述的系统,其中所述决策电路系统经配置以:
通过移除供应到存储所述校验子中的所述至少一者的所述第一存储器阵列的一部分的功率来避免执行用以确定所述校验子中的所述至少一者内含有的所述错误数量的所述后续操作,或
通过移除供应到与所述校验子中的所述至少一者相关联的所述移位电路系统的一部分的功率来避免执行用以确定所述校验子中的所述至少一者内含有的所述错误数量的所述后续操作,或上述两者。
CN202311132429.1A 2022-09-21 2023-09-04 校验子解码系统 Pending CN117746952A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/949,655 US20240095123A1 (en) 2022-09-21 2022-09-21 Syndrome decoding system
US17/949,655 2022-09-21

Publications (1)

Publication Number Publication Date
CN117746952A true CN117746952A (zh) 2024-03-22

Family

ID=90244872

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311132429.1A Pending CN117746952A (zh) 2022-09-21 2023-09-04 校验子解码系统

Country Status (2)

Country Link
US (1) US20240095123A1 (zh)
CN (1) CN117746952A (zh)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8869000B2 (en) * 2011-01-31 2014-10-21 Marvell World Trade Ltd. Methods and systems for efficient decoding of concatenated error correction codes
US10498362B2 (en) * 2016-12-19 2019-12-03 Kabushiki Kaisha Toshiba Low power error correcting code (ECC) system
US10187086B2 (en) * 2017-03-15 2019-01-22 SK Hynix Inc. State-based decoding of product codes
KR20220106621A (ko) * 2021-01-22 2022-07-29 삼성전자주식회사 전 가산기 집적 회로 및 이에 기초한 4-2 압축기 집적 회로
US11949429B2 (en) * 2022-07-19 2024-04-02 Macronix International Co., Ltd. Memory device, error correction device and error correction method thereof

Also Published As

Publication number Publication date
US20240095123A1 (en) 2024-03-21

Similar Documents

Publication Publication Date Title
CN109616148B (zh) 具有解码器的存储器系统、其操作方法和解码器
US9875035B2 (en) Memory system having a read and copy-back operation and method for the same
CN108073467B (zh) 具有硬信道信息的位翻转ldpc解码算法
US10693496B2 (en) Memory system with LDPC decoder and method of operating such memory system and LDPC decoder
US11349498B2 (en) Bit flipping low-density parity-check decoders with low error floor
CN110275796B (zh) 具有混合解码方案的存储器系统及其操作方法
CN113345513A (zh) 使用来自先前迭代的准则配置迭代性错误校正参数
CN113971103A (zh) 数据存储中针对极端温度使用条件改进的数据可靠性
WO2023014482A1 (en) Managing defective bitline locations in a bit flipping decoder
US11005503B2 (en) Memory system with hybrid decoding scheme and method of operating such memory system
CN112687323A (zh) 具有用于解码的错误减少方案的存储器系统及其操作方法
CN113498580A (zh) 用于存储器子系统的元数据辅助的编码和解码
US11830545B2 (en) Data programming techniques to store multiple bits of data per memory cell with high reliability
US20220164107A1 (en) Using bad blocks for system data in memory
CN115309573A (zh) 用于迭代错误校正的动态位翻转顺序
CN110275844B (zh) 利用自适应阈值解码的存储器系统及其操作方法
CN114627952A (zh) 用于存储器装置的数据恢复系统
CN113342568A (zh) 阈值数目个迭代之后利用可调整参数的迭代性错误校正
US20240095123A1 (en) Syndrome decoding system
US20240185898A1 (en) Syndrome decoding system
US20240097707A1 (en) Bit mask for syndrome decoding operations
US20240154625A1 (en) Bypassing iterations in a bit flipping decoder using a least reliable bit energy function
US11921581B1 (en) Read recovery including low-density parity-check decoding
US20240168847A1 (en) Efficient memory use to support soft information in bit flipping decoders
US11394403B1 (en) Error correction based on rate adaptive low density parity check (LDPC) codes with flexible column weights in the parity check matrices

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication