用于迭代错误校正的动态位翻转顺序的制作方法

文档序号:32105568发布日期:2022-11-09 04:23阅读:37来源:国知局
用于迭代错误校正的动态位翻转顺序的制作方法

1.本公开大体上涉及存储器装置中的错误校正,且更具体来说,涉及用于迭代错误校正的动态位翻转顺序。


背景技术:

2.存储器子系统可包含存储数据的一或多个存储器装置。存储器装置可为例如非易失性存储器装置及易失性存储器装置。一般来说,主机系统可利用存储器子系统在存储器装置处存储数据及从所述存储器装置检索数据。


技术实现要素:

3.在一个方面中,本公开涉及一种方法,其包括:接收存储在存储器装置中的码字;针对第一数目的一或多个迭代对所述码字进行错误校正,其中在来自所述第一数目的迭代的第一迭代期间对所述码字进行所述错误校正包含:根据第一顺序遍历所述码字;及针对第二数目的一或多个迭代对所述码字进行错误校正,其中在来自所述第二数目的迭代的第二迭代期间对所述码字进行所述错误校正包含:根据不同于所述第一顺序的第二顺序遍历所述码字。
4.在另一方面中,本公开涉及一种非暂时性计算机可读存储媒体,其包括指令,所述指令当由处理装置执行时致使所述处理装置进行以下操作:接收存储在存储器装置中的码字;针对第一数目的一或多个迭代对所述码字进行错误校正,其中在来自所述第一数目的迭代的第一迭代期间对所述码字进行所述错误校正包含:根据第一顺序遍历所述码字;及针对第二数目的一或多个迭代对所述码字进行错误校正,其中在来自所述第二数目的迭代的第二迭代期间对所述码字进行所述错误校正包含:根据不同于所述第一顺序的第二顺序遍历所述码字。
5.在另一方面中,本公开涉及一种系统,其包括:存储器装置;及处理装置,其可操作地与所述存储器装置耦合以:接收存储在所述存储器装置中的码字;针对第一数目的一或多个迭代对所述码字进行错误校正,其中在来自所述第一数目的迭代的第一迭代期间对所述码字进行所述错误校正包含:根据第一顺序遍历所述码字;及响应于确定满足用于改变遍历所述码字的顺序的准则,针对第二数目的一或多个迭代对所述码字进行错误校正,其中在来自所述第二数目的迭代的第二迭代期间对所述码字进行所述错误校正包含:根据不同于所述第一顺序的第二顺序遍历所述码字。
附图说明
6.从下文给出的详细描述及从本公开的各个实施例的附图将更加完全地理解本公开。但是,图式不应理解为将本公开限于特定实施例,而仅是为了解释及理解。
7.图1说明根据本公开的一些实施例的包含存储器子系统的实例计算系统。
8.图2说明根据本公开的一些实施例的可根据多个顺序校正的码字的框图。
9.图3说明根据本公开的一些实施例的包含失速模式的示范性表的框图。
10.图4是根据本公开的一些实施例的提供用于迭代错误校正的动态位翻转顺序的实例方法的流程图。
11.图5是根据本公开的一些实施例的提供用于迭代错误校正的动态位翻转顺序的另一实例方法的流程图。
12.图6是根据本公开的一些实施例的用以根据基于易受假翻转影响的码字位定义的顺序对码字进行错误校正的另一实例方法的流程图。
13.图7是本公开的实施例可在其中操作的实例计算机系统的框图。
具体实施方式
14.本公开的方面涉及用于存储器子系统中的迭代错误校正的动态位翻转顺序。存储器子系统可为存储装置、存储器模块或存储装置与存储器模块的混合。下文结合图1描述存储装置及存储器模块的实例。一般来说,主机系统可利用包含例如存储数据的存储器装置的一或多个组件的存储器子系统。主机系统可提供待存储在存储子系统处的数据,并且可请求从存储子系统检索数据。
15.存储器装置可为非易失性存储器装置。非易失性存储器装置是一或多个裸片的封装。非易失性存储器装置的一个实例是“与非”(nand)存储器装置。下文结合图1描述非易失性存储器装置的其它实例。封装中的裸片可被分配给用于与存储器子系统控制器通信的一或多个通道。每一裸片可由一或多个平面组成。平面可被分组成逻辑单位(lun)。针对一些类型的非易失性存储器装置(例如,nand存储器装置),每一平面由一组物理块组成,所述物理块是用以存储数据的存储器单元群组。单元是存储信息的电子电路。
16.取决于单元类型,单元可存储一或多个二进制信息位,且具有与被存储的位的数目相关的各种逻辑状态。所述逻辑状态可由例如“0”及“1”或此类值的组合的二进制值表示。存在各种类型的单元,例如单电平单元(slc)、多电平单元(mlc)、三电平单元(tlc)及四电平单元(qlc)。例如,slc可存储一个信息位,并且具有两个逻辑状态。
17.低密度奇偶校验(ldpc)码通常用于实现存储器子系统中的错误校正。ldpc码是一类高效的线性块码,其包含单奇偶校验(spc)码。ldpc码具有较高的错误校正能力,且可提供接近通道容量的性能。作为置信传播算法的简化版本的最小和(minsum)算法(msa)可用于解码ldpc码。然而,基于msa的解码器使用相对高数量的每位能量(例如,每位皮焦耳)来解码码字,且因此不适用于能源敏感应用(例如移动应用)。已经引入位翻转(bf)解码器来解决这个问题。当与基于msa的解码器的错误校正能力相比时,bf解码器使用更少的每位能量,代价为提供更低的错误校正能力。较低的错误校正能力是部署bf解码器来取代基于msa的解码器的一个障碍。特定来说,bf解码器受到假翻转的影响。在假翻转中,bf解码器翻转已经正确的一个位。对于bf解码器,假翻转是有问题的,因为通过翻转失败奇偶校验中的错误位,奇偶校验得到满足,且因此导致奇偶校验失败的位变得更加可靠,并且在bf解码器的后续迭代中不太可能得到校正。
18.本公开的方面通过改进bf解码器的错误校正能力解决了上述及其它缺点。本文中提出的实施例允许bf解码器接近基于msa的解码器的错误校正能力。码字错误率(cwer)显著降低,其中cwer是指bf解码器不能校正错误并且触发一系列错误恢复步骤的比率(概
率)。
19.图1说明根据本公开的一些实施例的包含存储器子系统110的实例计算系统100。存储器子系统110可包含媒体,例如一或多个易失性存储器装置(例如存储器装置140)、一或多个非易失性存储器装置(例如存储器装置130)或此类装置的组合。
20.存储器子系统110可为存储装置、存储器模块或存储装置与存储器模块的混合。存储装置的实例包含固态驱动器(ssd)、快闪驱动器、通用串行总线(usb)快闪驱动器、嵌入式多媒体控制器(emmc)驱动器、通用快闪存储(ufs)驱动器、安全数字(sd)卡及硬盘驱动器(hdd)。存储器模块的实例包含双列直插式存储器模块(dimm)、小外形dimm(so-dimm)以及各种类型的非易失性双列直插式存储器模块(nvdimm)。
21.计算系统100可为例如桌上型计算机、膝上型计算机、网络服务器、移动装置、运载工具(例如飞机、无人机、火车、汽车或其它运输工具)、启用物联网(iot)的装置、嵌入式计算机(例如,包含于运载工具、工业设备或联网商用装置中的嵌入式计算机)或包含存储器及处理装置的此计算装置的计算装置。
22.计算系统100可包含耦合到一或多个存储器子系统110的主机系统120。在一些实施例中,主机系统120耦合到不同类型的存储器子系统110。图1说明耦合到一个存储器子系统110的主机系统120的一个实例。如本文中使用,“耦合到”或“与

耦合”一般指代组件之间的连接,其可为间接通信连接或直接通信连接(例如,不具有中介组件),无论是有线还是无线,包含例如电连接、光学连接、磁性连接等的连接。
23.主机系统120可包含处理器芯片组及由处理器芯片组执行的软件堆叠。处理器芯片组可包含一或多个核心、一或多个高速缓存、存储器控制器(例如nvdimm控制器)及存储协议控制器(例如pcie控制器、sata控制器)。主机系统120使用存储器子系统110(例如)将数据写入到存储器子系统110及从存储器子系统110读取数据。
24.主机系统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可经由相同的通信连接、多个单独的通信连接和/或通信连接的组合来存取多个存储器子系统。
25.存储器装置130、140可包含不同类型的非易失性存储器装置及/或易失性存储器装置的任何组合。易失性存储器装置(例如存储器装置140)可为(但不限于)随机存取存储器(ram),例如动态随机存取存储器(dram)及同步动态随机存取存储器(sdram)。
26.非易失性存储器装置的一些实例(例如存储器装置130)包含“与非”(nand)型快闪存储器及原位写入存储器,例如三维交叉点(“3d交叉点”)存储器装置,其是非易失性存储器单元的交叉点阵列。非易失性存储器的交叉点阵列可基于体电阻变化连同可堆叠交叉栅
格式数据存取阵列执行位存储。此外,与许多基于快闪的存储器形成对比,交叉点非易失性存储器可执行原位写入操作,其中可在先前未擦除非易失性存储器单元的情况下对所述非易失性存储器单元进行编程。nand型快闪存储器包含(例如)二维nand(2d nand)及三维nand(3d nand)。
27.尽管描述了例如nand型存储器(例如2d nand、3d nand)及非易失性存储器单元的3d交叉点阵列的非易失性存储器装置,但存储器装置130可基于任何其它类型的非易失性存储器,例如只读存储器(rom)、相变存储器(pcm)、自选择存储器、其它基于硫属化物的存储器、铁电晶体管随机存取存储器(fetram)、铁电随机存取存储器(feram)、磁随机存取存储器(mram)、自旋力矩(stt)-mram、导电桥接ram(cbram)、电阻式随机存取存储器(rram)、基于氧化物的rram(oxram)、或非(nor)快闪存储器及电可擦除可编程只读存储器(eeprom)。
28.存储器子系统控制器115(或为了简化起见,称为控制器115)可与存储器装置130通信以执行操作,操作例如在存储器装置130处读取数据、写入数据或擦除数据及其它此类操作(例如,响应于由控制器115在命令总线上调度的命令)。存储器子系统控制器115可包含例如一或多个集成电路及/或离散组件、缓冲存储器或其组合的硬件。硬件可包含具有用于执行本文中描述的操作的专用(即,硬编码)逻辑的数字电路系统。存储器子系统控制器115可为微控制器、专用逻辑电路系统(例如,现场可编程门阵列(fpga)、专用集成电路(asic)等)或另一合适的处理器。
29.存储器子系统控制器115可包含经配置以执行存储在本地存储器119中的指令的处理装置117(处理器)。在所说明实例中,存储器子系统控制器115的本地存储器119包含经配置以存储用于执行控制存储器子系统110的操作(包含处置存储器子系统110与主机系统120之间的通信)的各种过程、操作、逻辑流程及例程的指令的嵌入式存储器。
30.在一些实施例中,本地存储器119可包含存储存储器指针、提取的数据等的存储器寄存器。本地存储器119还可包含用于存储微代码的只读存储器(rom)。虽然已将图1中的实例存储器子系统110说明为包含存储器子系统控制器115,但在本公开的另一实施例中,存储器子系统110不包含存储器子系统控制器115,且可代替地依赖于外部控制(例如,由外部主机提供、或由与存储器子系统110分离的处理器或控制器提供)。
31.一般来说,存储器子系统控制器115可从主机系统120接收命令或操作且可将所述命令或操作转换成指令或适当命令以实现对存储器装置130及/或存储器装置140的所期望存取。存储器子系统控制器115可负责其它操作,例如磨损均衡操作、废料收集操作、错误检测及错误校正码(ecc)操作、加密操作、高速缓存操作及与存储器装置130相关联的逻辑地址(例如逻辑块地址(lba)、命名空间)与物理地址(例如物理块地址)之间的地址转译。存储器子系统控制器115可进一步包含主机接口电路系统以经由物理主机接口与主机系统120通信。所述主机接口电路系统可将从主机系统接收的命令转换成命令指令以存取存储器装置130及/或存储器装置140,且还将与存储器装置130及/或存储器装置140相关联的响应转换成用于主机系统120的信息。
32.存储器子系统110还可包含未说明的额外电路系统或组件。在一些实施例中,存储器子系统110可包含高速缓存或缓冲器(例如dram)及地址电路系统(例如行解码器及列解码器),其可从存储器子系统控制器115接收地址且解码所述地址以存取存储器装置130。
33.在一些实施例中,存储器装置130包含本地媒体控制器135,其连同存储器子系统控制器115操作以对存储器装置130的一或多个存储器单元执行操作。外部控制器(例如存储器子系统控制器115)可在外部管理存储器装置130(例如,对存储器装置130执行媒体管理操作)。在一些实施例中,存储器装置130是受管理存储器装置,其是与用于同一存储器装置封装内的媒体管理的本地控制器(例如本地控制器135)组合的原始存储器装置。受管理存储器装置的实例是受管理nand(mnand)装置。
34.存储器子系统110包含错误校正器113,当对码字进行错误校正时,错误校正器113可动态地改变位翻转顺序。在一些实施例中,控制器115包含错误校正器113的至少一部分。举例来说,控制器115可包含处理器117(处理装置),其经配置以执行存储在本地存储器119中的用于执行本文所描述的操作的指令。在一些实施例中,错误校正器113是主机系统110、应用程序或操作系统的部分。
35.错误校正器113可在迭代之间修改位翻转顺序。在一个实施例中,错误校正器113接收存储在存储器装置中的码字。错误校正器113在一组迭代中对码字进行错误校正,例如,通过基于奇偶校验和通道信息翻转一或多个迭代的位。在第一组迭代期间对码字的错误校正包含根据给定顺序遍历码字的位。错误校正器113可操作以翻转码字中的位以用于另一组一或多个迭代。在第二组迭代期间对码字的错误校正包含根据与前一组迭代的顺序不同的顺序遍历码字。下文描述关于错误校正器113的操作的另外细节。
36.尽管说明为单个组件,但是错误校正组件113可提供为单独的编码组件(例如,用于将待存储在存储器装置110中的数据编码为码字)和单独的解码组件(例如,用于解码存储在存储器装置110中的数据)。
37.图2说明根据本公开的一些实施例的可根据多个顺序校正的码字的框图。数据位经编码(例如,由错误校正器113)为码字200以存储在存储器装置中。码字存储在存储器装置(例如存储器装置130或存储器装置140)中。在一些实施例中,根据ldpc码对位进行编码。码字200包含多个数据位201a到n。码字可包含数据位201a到n以及奇偶校验位(例如奇偶校验位220)。奇偶校验位220与位201b及位201f相关。在此实例中,奇偶校验位220是不满足的,指示位201b及201f中的一者是错误的。在此实例中,201b是正确的位,而201f是错误的位。虽然说明单个奇偶校验220,但应理解,码字200包含用于多个位的多个奇偶校验位。从存储器装置读取码字200。所读取的码字可包含一或多个错误位,所述错误位可在被传输到主机(例如主机系统120)之前由错误校正器113进行校正。错误校正器113可操作以在一或多个迭代中根据给定顺序及在一或多个后续迭代中根据不同于给定顺序的另一顺序对码字200进行错误校正。在一些实施例中,错误校正器113可操作以针对n个迭代从位201a向位201n遍历码字,其中n为一或一以上。此顺序可称为前向顺序230a。错误校正器113可操作以针对m个迭代从位201n向位201a遍历码字200,其中m为一或一以上。此顺序可称为后向顺序230b。在一些实施例中,错误校正器113可在一或多个迭代中以后向顺序230b遍历码字200,然后在一或多个后续迭代中将所述顺序改变为前向顺序230a。
38.图4是根据本公开的一些实施例的用以动态修改用于迭代错误校正的位翻转顺序的实例方法400的流程图。方法400可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法400由图1的错误校正器
113执行。尽管以特定序列或顺序展示,除非另有指定,否则可修改过程的顺序。因此,所说明的实施例应仅被理解为实例,并且所说明的过程可以不同顺序执行,且一些过程可并行执行。此外,在各种实施例中可省略一或多个过程。因此,并非在每一个实施例中都需要所有过程。其它过程流程是可能的。
39.在操作405,处理装置从存储器装置接收码字(例如,码字200)。在一些实施例中,接收码字作为来自主机系统120的读取操作的结果。码字可包含数据位与奇偶校验位的组合。奇偶校验位与数据位一起存储在存储器装置中。
40.在操作410,处理装置通过针对数个迭代根据给定顺序对码字内的位执行错误校正来解码码字。例如,处理装置可针对一个或多个迭代根据前向顺序对码字200进行校正,如上文所述。码字200的错误校正包含以给定顺序遍历码字200。继续以上实例,处理装置从位201a到位201n遍历码字200,并且当满足位的位翻转准则时翻转所述位。在一些实施例中,给定顺序是默认顺序,当与另一顺序的cwer相比时,所述默认顺序允许更低的码字错误率(cwer)。在一些实施例中,所述顺序可为根据易受假翻转影响的位定义的顺序,如参考图6进一步详细描述。
41.在一些实施例中,处理装置基于位翻转准则和位的能量函数来确定是否翻转所述位。码字位的能量函数可视为所述码字位的可靠性信息的指示。码字位的能量函数可基于每个码字位的奇偶校验违规数目(例如,较高的奇偶校验违规数目是可靠性较低的位的标志)和通道信息来确定。基于位的当前状态对比从存储器装置读取的位的状态来确定通道信息。当位的当前状态(在一或多个迭代之后)与从存储器装置读取的位一致时,所述位被视为更可靠。在一些实施例中,位的能量函数可通过将位的奇偶校验违规数目与位的通道信息相加来确定,所述通道信息可被定义为位的当前状态与从存储器装置读取的位的异或。在非限制性实例中,可根据方程式(2)确定能量函数:
42.e(bit)=numbersatisfiedparities(bit)+channel information(bit)
ꢀꢀꢀꢀꢀ
(2)
43.其中较高的e(bit)是指较不可靠的位。在一些实施例中,位翻转准则是位翻转阈值。当码字位的能量函数满足位翻转阈值时,处理装置确定翻转所述码字位。例如,当能量函数大于位翻转阈值时,处理装置可确定翻转码字位。在图2的实例中,针对一或多个迭代根据前向顺序遍历码字。位201b与未满足的奇偶校验220相关联。这会导致所述位被翻转。当所述位被翻转时,对于两个位(位201b和201f),奇偶校验位220变成被满足,并且位201f的能量函数减小,从而导致位201f不被翻转。但是,在这个迭代中,正确的(位201b)是假翻转。操作流程移动到任选操作415。在一些实施例中,跳过操作415,且方法400继续进行到操作420。
44.在操作415,处理装置确定是否满足用于改变错误校正顺序的准则。在一些实施例中,处理装置通过确定已经达到阈值迭代数目来确定满足所述准则。换句话说,处理装置确定针对阈值数目的迭代,是否根据给定顺序(例如,默认顺序)对码字进行了错误校正。阈值数目的迭代可为1个迭代、两个迭代或n个迭代。在一些实施例中,处理装置确定当其在所执行的迭代中检测到失速条件时满足所述准则。当处理装置在多个状态之间振荡(即,针对若干连续的迭代,处理装置以一个迭代周期从一个状态移动到另一状态)时检测到失速条件。
45.图3说明包含由处理装置检测到且触发错误校正顺序的改变的失速模式的示范性表的框图。例如,图3的表展示码字的错误校正的迭代开始和结束时的校正子数目。对于此
实例,处理装置在迭代12开始振荡,并且振荡周期为4。第二次重复失速模式302(从迭代16到迭代19)。此失速模式可针对多个迭代连续重复。处理装置在源自在连续迭代中对码字的错误校正的校正子中检测失速模式(例如失速模式302)。例如,处理装置可存储在对码字的错误校正的迭代期间产生的多个连续校正子,且比较这些校正子的连续组以识别在多个迭代组内重复的失速模式。在图3的实例中,处理装置可将失速模式302识别为迭代12到15与迭代16到19之间的重复模式。在一些实施例中,处理装置可通过对源自在多个迭代中对码字的错误校正的多个校正子进行散列,并将所述散列值与源自对源自在其它迭代中对码字的错误校正的其它校正子进行散列的散列值进行比较而检测多个迭代中的失速条件。例如,处理装置可从迭代12到15的校正子产生散列值,并且从迭代16到19的校正子产生另一散列值。处理装置比较两个散列值以确定迭代12到15和迭代16到19具有重复的相似模式。
46.当满足用于改变错误校正顺序的准则时,操作流程移动到操作420。当不满足用于改变错误校正顺序的准则时,操作流程移动到操作430。
47.在操作420,处理装置针对一或多个迭代根据另一顺序继续对码字的错误校正。码字200的错误校正包含以与在操作410处使用的给定顺序不同的此另一顺序遍历码字200。例如,处理装置可针对一个或多个迭代根据后向顺序对码字200进行校正。处理装置从位201n到位201a遍历码字200,并且当满足位的位翻转准则时翻转所述位。在一些实施例中,所述顺序可为根据易受假翻转影响的位定义的顺序。此顺序可如参考图6的操作610进一步详细描述那样来确定。例如,处理装置可针对一个或多个迭代根据此顺序对码字200进行校正。当识别出位201g到201j的区域比码字的其它位更容易受到假位影响时,处理装置可从位201a到201f向前遍历码字,从210n到201k向后遍历码字,且最后从201g到201j向前遍历码字。在一些实施例中,处理装置基于位翻转准则和位的能量函数来确定是否翻转所述位。在一些实施例中,位翻转准则是位翻转阈值。当码字位的能量函数满足位翻转阈值时,处理装置确定翻转所述码字位。例如,当能量函数大于位翻转阈值时,处理装置翻转位。返回到图2的实例,如果根据后向顺序遍历码字,那么从位201n开始到位201a。位201f与未满足的奇偶校验220相关联。这会导致所述位被翻转。当位被翻转时,奇偶校验位220对于两个位(位201b和201f)变成被满足,并且位201b不再需要被翻转。在此迭代中,错误的位201f被翻转(真翻转),并且维持正确的位201b。在码字200的错误校正中不再存在假翻转。通过修改翻转位的顺序来修改码字的错误校正顺序,使处理装置能够减少假翻转的数目和/或避免假翻转,并导致码字错误率降低。
48.在操作425,处理装置确定是否满足用于改变错误校正顺序的准则。在一些实施例中,跳过操作425。可如参考操作415所描述那样执行是否满足用于改变错误校正顺序的准则的确定。
49.当满足用于改变错误校正顺序的准则时,操作流程移动到操作410。在操作410,处理装置继续在一或多个迭代中根据更新的顺序对码字进行错误校正。在一些实施例中,此更新的顺序可为初始顺序。在一些实施例中,更新的顺序可为不同的顺序(不同于操作420的顺序并且不同于初始顺序)。
50.当不满足用于改变错误校正顺序的准则时,操作流程移动到操作430。在操作430,处理装置确定是否满足停止准则。停止准则可包含未检测到码字的错误的指示。在一些实施例中,停止准则可包含零校正子,所述零校正子指示码字不再包含错误位。在一些实施例
中,停止准则可包含最大迭代数目或最大时间量。例如,处理装置可操作以执行最大数目的迭代(例如,30个迭代、40个迭代、100个迭代等),并且当执行此数目的迭代时,输出所得经校正的码字。当满足停止准则时,操作流程移动到操作435。在操作435,处理装置输出经校正的码字(或,如果处理装置无法对码字进行解码,那么输出失败的指示)。例如,处理装置可将经校正的码字传输到主机120。
51.或者,当不满足停止准则时,操作流程移动到操作410。在操作410,处理装置继续在一或多个迭代中根据更新的顺序对码字进行错误校正。在一些实施例中,此更新的顺序可为初始顺序。在一些实施例中,更新的顺序可为不同的顺序(不同于操作420的顺序并且不同于初始顺序)。
52.在一个实施例中,处理装置针对n个迭代根据默认顺序对码字进行错误校正,并且随后针对n+1到m个迭代根据不同顺序对码字进行错误校正。在此实施例中,处理装置使用两个错误校正顺序。在一个实施例中,处理装置可在两个或多于两个顺序之间周期性地切换,使得根据初始顺序执行第一数目的迭代,根据第二顺序执行第二数目(其可等于或不同于第一迭代数目)的迭代,以及根据第三顺序执行第三数目的迭代等。第三顺序可与初始顺序相同或不同。在一些实施例中,处理装置可在每一迭代处交替顺序。例如,根据前向顺序执行第一迭代,根据后向顺序执行下一迭代,根据前向顺序执行下一迭代等。在不脱离本公开的实施例的范围的情况下,可考虑动态修改用于在多个迭代中对码字进行错误校正的顺序的多个场景。
53.图5是根据本公开的一些实施例的用以修改错误校正顺序的另一实例方法500的流程图。方法500可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法500由图1的错误校正器113执行。尽管以特定序列或顺序展示,除非另有指定,否则可修改过程的顺序。因此,所说明的实施例应仅被理解为实例,并且所说明的过程可以不同顺序执行,且一些过程可并行执行。此外,在各种实施例中可省略一或多个过程。因此,并非在每一个实施例中都需要所有过程。其它过程流程是可能的。
54.在操作505,处理装置从存储器装置接收码字(例如,码字200)。在一些实施例中,接收码字作为来自主机系统120的读取操作的结果。码字可包含数据位与奇偶校验位的组合。奇偶校验位针对数据位存储在存储器装置中。操作流程移动到操作510。
55.在操作510,处理装置针对第一数目的多个迭代对码字进行错误校正。在来自第一数目的迭代的迭代处对码字进行错误校正包含:根据第一顺序遍历码字。在一些实施例中,在第一迭代处对码字进行错误校正包含确定码字中满足位翻转准则的一或多个位的位置,并翻转这些位以获得更新的码字。可根据如上文描述的位翻转准则来执行位翻转。处理装置可根据第一顺序执行若干迭代。后续的迭代可基于来自先前迭代的更新的码字来校正错误。操作流程移动到操作515。
56.在操作515,处理装置针对第二数目的多个迭代根据第二顺序对码字进行错误校正。在来自第二数目的多个迭代的第二迭代处对码字进行错误校正包含根据不同于第一顺序的第二顺序遍历码字。在一些实施例中,以第二迭代对码字进行错误校正包含确定码字中满足位翻转准则的一或多个位的位置,并翻转这些位以获得更新的码字。可根据如上文
描述的位翻转准则来执行位翻转。处理装置可根据第二顺序执行若干迭代。后续的迭代可基于来自先前迭代的更新的码字来校正错误。
57.图6是根据本公开的一些实施例的用以根据基于易受假翻转影响的码字位定义的顺序对码字进行错误校正的另一实例方法600的流程图。方法600可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法600由图1的错误校正器113执行。尽管以特定序列或顺序展示,除非另有指定,否则可修改过程的顺序。因此,所说明的实施例应仅被理解为实例,并且所说明的过程可以不同顺序执行,且一些过程可并行执行。此外,在各种实施例中可省略一或多个过程。因此,并非在每一个实施例中都需要所有过程。其它过程流程是可能的。
58.在操作605,处理装置从存储器装置接收码字(例如,码字200)。在一些实施例中,接收码字作为来自主机系统120的读取操作的结果。码字可包含数据位与奇偶校验位的组合。奇偶校验位针对数据位存储在存储器装置中。操作流程移动到操作610。
59.在操作610,处理装置识别易受假翻转影响的一或多个码字位。在一些实施例中,归因于ldpc码中的潜在问题,一些位可更容易受到假翻转影响。在一些实施例中,可基于用于编码码字的代码类型来执行易受影响的码字位的识别。在一些实施例中,易受影响的码字位的识别包含对错误校正码(ecc)的奇偶校验矩阵执行先验分析。在奇偶校验矩阵的分析期间,处理装置探索码字位与奇偶校验之间的连接,以识别设陷集、停止集或循环。处理装置可基于所识别的设陷集、停止集和/或循环来确定码字的哪些区域(即,位)更容易受到失速条件的影响。作为非限制性实例,如果在码字的区域中存在许多循环,那么处理装置可确定所述区域更容易受到失速条件的影响。
60.在一些实施例中,可通过分析随时间在多个码字中发生的错误并识别假翻转更频繁发生的位区域来执行易受影响的码字位的识别。所识别的位可为相邻的位,例如,位201a和位201b可被识别为容易发生假翻转的位。在一些实施例中,所识别的位可定位于码字的不同区域中,并且可彼此不相邻,例如,位201a和位201e。
61.在操作615,处理装置针对若干迭代根据基于所识别的位定义的顺序对码字进行校正。例如,当处理装置将位201a和201e识别为容易发生假翻转的位时,处理装置可通过以码字的其它位开始错误校正并以位201a和201e结束错误校正来遍历码字而针对一个或多个迭代对码字200进行校正。处理装置遍历码字200,其中位201a和位201e是翻转顺序中的最后一个,并且当满足位的位翻转准则时翻转所述位。在一些实施例中,处理装置基于位翻转准则和位的能量函数来确定是否翻转所述位。如上文描述,当码字位的能量函数满足位翻转阈值时,处理装置确定翻转所述码字位。在一些实施例中,处理装置可针对多个迭代重复对码字的错误校正。在一些实施例中,根据相同的顺序执行多个迭代。在其它实施例中,处理装置可操作以如上文所描述那样在一或多个迭代之后修改码字的错误校正顺序。
62.图7说明计算机系统700的实例机器,可在所述系统内执行用于致使机器执行本文论述的方法论中的任一或多者的一组指令。在一些实施例中,计算机系统700可对应于主机系统(例如,图1的主机系统120),其包含、耦合到或利用存储器子系统(例如,图1的存储器子系统110),或可用以执行控制器的操作(例如,执行操作系统以执行对应于图1的错误校正器113的操作)。在替代实施例中,所述机器可连接(例如,联网)到lan、内联网、外联网及/
或因特网中的其它机器。机器可在客户端-服务器网络环境中以服务器或客户端机器的身份操作,在对等(或分布式)网络环境中作为对等机器操作,或在云端计算基础设施或环境中作为服务器或客户端机器操作。
63.机器可为个人计算机(pc)、平板pc、机顶盒(stb)、个人数字助理(pda)、蜂窝电话、网络设备、服务器、网络路由器、交换机或网桥或能够(循序或以其它方式)执行指定由所述机器所采取的动作的一组指令的任何机器。此外,虽然说明单个机器,但是术语“机器”也应被认为包含个别地或共同地执行一组(或多组)指令以执行本文所论述的方法中的任一者或多者的机器的任何集合。
64.实例计算机系统700包含处理装置702、主存储器704(例如,只读存储器(rom)、快闪存储器、动态随机存取存储器(dram),例如同步dram(sdram)或rambus dram(rdram)等)、静态存储器706(例如,快闪存储器、静态随机存取存储器(sram)等)及数据存储器装置718,其经由总线730彼此通信。
65.处理装置702表示一或多个通用处理装置,例如微处理器、中央处理单元或类似物。更特定来说,处理装置可为复杂指令集计算(cisc)微处理器、精简指令集计算(risc)微处理器、超长指令字(vliw)微处理器或实施其它指令集的一个处理器或实施指令集组合的多个处理器。处理装置702也可为一或多个专用处理装置,例如专用集成电路(asic)、现场可编程门阵列(fpga)、数字信号处理器(dsp)、网络处理器或类似物。处理装置702经配置以执行用于执行本文所论述的操作及步骤的指令726。计算机系统700可进一步包含网络接口装置708以通过网络720通信。
66.数据存储系统718可包含其上存储一或多组指令726或体现本文中描述的方法论或功能中的任一或多者的软件的机器可读存储媒体724(也称为计算机可读媒体)。指令726在其由计算机系统700执行期间也可完全或至少部分驻存于主存储器704内及/或处理装置702内,主存储器704及处理装置702也构成机器可读存储媒体。机器可读存储媒体724、数据存储系统718及/或主存储器704可对应于图1的存储器子系统110。
67.在一个实施例中,指令726包含用以实施对应于错误校正器(例如,图1的错误校正器113)的功能性的指令。尽管在实例实施例中将机器可读存储媒体724展示为单个媒体,但是术语“机器可读存储媒体”应被认为包含存储一或多组指令的单个媒体或多个媒体。术语“机器可读存储媒体”也应被认为包含能够存储或编码一组指令以供机器执行并且致使机器执行本公开的方法中的任一者或多者的任何媒体。因此,术语“机器可读存储媒体”应被认为包含(但不限于)固态存储器、光学媒体及磁性媒体。
68.已经根据对计算机存储器内的数据位的操作的算法及符号表示来呈现前述详细描述的某些部分。这些算法描述及表示是数据处理领域的技术人员用来最有效地向所属领域的其它技术人员传达其工作实质的方式。此处,算法通常被视为导致所需结果的自洽操作序列。所述操作是需要对物理量进行物理操纵的操作。通常但不是必须的,这些量采用能够被存储、组合、比较及以其它方式操纵的电或磁信号的形式。已被证明是方便的是,有时出于习惯用法的原因,原则上将这些信号指代为位、值、元素、符号、字符、项、数字或类似物。
69.然而,应牢记,所有这些及类似术语均应与适当物理量相关联且仅为应用于这些量的方便标签。本公开可涉及计算机系统或类似电子计算装置的动作及过程,其将表示为
计算机系统的寄存器及存储器内的物理(电子)数的数据操纵及变换为类似地表示为计算机系统存储器或寄存器或其它此类信息存储系统内的物理量。
70.本公开还涉及用于执行本文中的操作的设备。此设备可经专门构造用于预期目的,或者其可包含由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。例如,计算机系统或例如控制器115的其它数据处理系统可响应于其处理器执行包含在存储器或其它非暂时性机器可读存储媒体中的计算机程序(例如,指令序列)来执行计算机实施方法400、500和600。此计算机程序可存储在计算机可读存储媒体中,例如(但不限于)任何类型的磁盘,包含软盘、光盘、cd-rom及磁光盘、只读存储器(rom)、随机存取存储器(ram)、eprom、eeprom、磁卡或光卡或适用于存储电子指令的任何类型的媒体,其各自耦合到计算机系统总线。
71.本文中呈现的算法及显示器并不固有地与任何特定计算机或其它设备相关。各种通用系统可与根据本文的教示的程序一起使用,或者可证明构造更专用设备来执行所述方法是方便的。用于各种这些系统的结构将如下文描述中陈述那样出现。此外,本公开并非是参考任何特定编程语言进行描述。将了解,可使用各种编程语言来实施如本文所描述的本公开的教示。
72.本公开可被提供为计算机程序产品或软件,其可包含其上存储有指令的机器可读媒体,所述指令可用于对计算机系统(或其它电子装置)进行编程以执行根据本公开的过程。机器可读媒体包含用于以机器可读的形式存储信息的任何机构。在一些实施例中,机器可读(例如计算机可读)媒体包含机器(例如计算机)可读存储媒体,例如只读存储器(“rom”)、随机存取存储器(“ram”)、磁盘存储媒体、光学存储媒体、快闪存储器组件等。
73.在前述说明书中,已参考本公开的特定实例实施例描述了其实施例。应明白,在不背离如所附权利要求书中所陈述的本公开的实施例的更宽精神及范围的情况下,可对其做出各种修改。因此,说明书及图式应以说明性意义而非限制性意义来看待。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1