使用错误校正方案的组合的数据恢复的制作方法

文档序号:31141802发布日期:2022-08-16 21:47阅读:61来源:国知局
使用错误校正方案的组合的数据恢复的制作方法

1.本公开大体上涉及数据恢复,且更确切地说,涉及使用错误校正方案的组合的概率数据恢复。


背景技术:

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


技术实现要素:

3.本公开的实施例提供一种方法,其包括:接收对数据片段的请求,其中所述所请求片段数据是跨越存储节点的冗余阵列分布的数据条带中的多个数据片段中的一个;检测对所述所请求数据片段进行解码的失败;读取所述条带中除所述所请求数据片段之外的所述多个片段中的每一个,其中读取每个片段包含读取原始编码数据及尝试对所述原始编码数据进行解码,读取每个片段的结果包含当解码成功时的解码数据及当解码失败时的所述原始编码数据;生成每一读取的组合结果,所述生成包含将解码成功的片段的解码数据及解码失败的片段的所述原始编码数据组合;使用所述组合结果更新所述所请求片段的统计模型;及使用所述更新的统计模型对所述所请求片段进行解码。
4.本公开的另一实施例提供一种非暂时性计算机可读存储媒体,其包括在由处理装置执行时使所述处理装置执行以下操作的指令:接收对数据片段的请求,其中所述所请求片段数据是跨越存储节点的冗余阵列分布的数据条带中的多个数据片段中的一个;检测对所述所请求数据片段进行解码的失败;读取所述条带中除所述所请求数据片段之外的所述多个片段中的每一个,其中读取每个片段包含读取原始编码数据及尝试对所述原始编码数据进行解码,读取每个片段的结果包含当解码成功时的解码数据及当解码失败时的所述原始编码数据;生成每一读取的组合结果,所述生成包含将解码成功的片段的解码数据及解码失败的片段的所述原始编码数据组合;使用所述组合结果更新所述所请求片段的统计模型;及使用所述更新的统计模型对所述所请求片段进行解码。
5.本公开的又一实施例提供一种系统,其包括:多个存储器装置;及处理装置,其以操作方式与所述多个存储器装置耦合以:接收对数据片段的请求,其中所述所请求片段数据是跨越存储节点的冗余阵列分布的数据条带中的多个数据片段中的一个;检测对所述所请求数据片段进行解码的失败;读取所述条带中除所述所请求数据片段之外的所述多个片段中的每一个,其中读取每个片段包含读取原始编码数据及尝试对所述原始编码数据进行解码,读取每个片段的结果包含当解码成功时的解码数据及当解码失败时的所述原始编码数据;生成每一读取的组合结果,所述生成包含将解码成功的片段的解码数据及解码失败的片段的所述原始编码数据组合;使用所述组合结果更新所述所请求片段的统计模型,其中所述统计模型包含所述原始编码数据基于用于读取所述原始编码数据的读取电压电平
正确的可能性;及使用所述更新的统计模型对所述所请求片段进行解码。
附图说明
6.根据下文给出的详细描述及本公开的各种实施例的附图,将更充分地理解本公开。然而,图式不应视为将本公开限制于具体实施例,而是仅用于解释和理解。
7.图1说明根据本公开的一些实施例的包含存储器子系统的实例计算系统。
8.图2是根据本公开的一些实施例的用于实施数据恢复的逻辑及存储器子系统组件的框图。
9.图3是根据本公开的一些实施例的用于实施数据恢复的逻辑及存储器子系统组件的使用的实例。
10.图4是根据本公开的一些实施例的用于实施数据恢复的逻辑及存储器子系统组件的使用的实例的延续。
11.图5是根据本公开的一些实施例的用于实施数据恢复的逻辑及存储器子系统组件的使用的实例的延续。
12.图6是根据本公开的一些实施例的用于实施数据恢复的逻辑及存储器子系统组件的使用的实例的延续。
13.图7是根据本公开的一些实施例的用于实施数据恢复的逻辑及存储器子系统组件的使用的实例的延续。
14.图8是根据本公开的一些实施例的用于实施数据恢复的逻辑及存储器子系统组件的使用的实例的延续。
15.图9是根据本公开的一些实施例的用于实施数据恢复的逻辑及存储器子系统组件的使用的实例的延续。
16.图10a是根据本公开的一些实施例的用于使用错误校正方案的组合恢复数据的实例方法的流程图。
17.图10b是根据本公开的一些实施例的用于使用错误校正方案的组合恢复数据的实例方法的流程图的延续。
18.图11是根据本公开的一些实施例的用于使用错误校正方案的组合恢复数据的另一实例方法的流程图。
19.图12是本公开的实施例可在其中操作的实例计算机系统的框图。
具体实施方式
20.本公开的各方面涉及存储器子系统中的概率数据恢复。存储器子系统可为存储装置、存储器模块,或存储装置与存储器模块的混合。下文结合图1描述存储装置及存储器模块的实例。一般来说,主机系统可利用包含一或多个组件(例如存储数据的存储器装置)的存储器子系统。主机系统可提供将存储在存储器子系统处的数据,且可请求将从存储器子系统检索的数据。
21.存储器装置可为非易失性存储器装置。非易失性存储器装置为一或多个裸片的封装。非易失性存储器装置的一个实例为与非(nand)存储器装置。下文结合图1描述非易失性存储器装置的其它实例。封装中的裸片可指派到一或多个信道以用于与存储器子系统控制
器通信。每一裸片可由一或多个平面组成。平面可分组为逻辑单元(lun)。对于一些类型的非易失性存储器装置(例如,nand存储器装置),每一平面由一组物理块组成,所述物理块是用于存储数据的存储器单元的群组。单元是存储信息的电子电路。
22.取决于单元类型,单元可存储一或多个二进制信息位,且具有与所存储的位数相关的各种逻辑状态。逻辑状态可由二进制值(例如,“0”及“1”)或此类值的组合表示。存在各种类型的单元,例如单层级单元(slc)、多层级单元(mlc)、三层级单元(tlc)及四层级单元(qlc)。举例来说,slc可存储一个信息位且具有两种逻辑状态。
23.存储器装置(例如,非易失性存储器)可能会在写入或保留存储在存储器装置内的位时出现错误。错误校正码(ecc)是校正存储器中的这些错误的机制。ecc使用称为奇偶校验数据的冗余数据,以使ecc过程能够恢复及校正正常数据中的错误。奇偶校验位结合正常数据位使用,它们都存储在存储器装置中,并且当奇偶校验位与其相关联数据不一致时,ecc过程将它们用于检测及校正所存储数据中的任何位错误。高效ecc过程可利用低密度奇偶校验码(ldpc)、bose、chaudhri及hocquenghem(bch)码、reed-solomon码及类似代码系统作为ecc过程的一部分。这些代码从存储在存储器装置中的数据导出,并且可用于校正发生错误的存储器数据。此类过程可使用例如对数似然比(llr)的统计模型来表示数据以校正错误。
24.存储器子系统可利用多个ecc过程来校正错误。举例来说,如果ldpc解码器无法恢复转换单元(tu)或其它数据片段,则存储器装置可使用从所述数据片段及其它数据片段导出的奇偶校验数据尝试恢复,所述数据片段及其它数据片段一起构成独立节点冗余阵列(rain)中的条带。如本文所用,节点是指存储装置(即,存储节点)、存储服务器等。在一个实施例中,rain是指独立nand的冗余阵列。奇偶校验tu可通过生成对条带中的所有用户数据tu应用异或(xor)的结果来形成。然而,使用rain奇偶校验数据(其中仅存在一个rain奇偶校验片段)的传统数据恢复限于单个故障的tu。包含额外的奇偶校验数据片段可提高数据恢复能力,但会导致存储开销的不合需要的增加。
25.本公开的方面通过使用错误校正方案的组合来解决上述及其它缺陷,使得当条带中的多个tu已遭受解码失败时,可使用rain奇偶校验数据来恢复数据,而不会增加由额外的条带奇偶校验数据导致的存储开销。具体来说,rain奇偶校验数据可用于修改例如ldpc的ecc过程的统计建模。因此,存储器子系统的数据恢复组件可恢复rain条带中多于一个故障的tu,从而实现更高的数据可靠性及/或更大的存储器装置制造变化容差。
26.图1说明根据本公开的一些实施例的包含存储器子系统110的实例计算环境100。存储器子系统110可包含介质,例如一或多个易失性存储器装置(例如,存储器装置140)、一或多个非易失性存储器装置(例如,存储器装置130),或这类的组合。
27.存储器子系统110可为存储装置、存储器模块,或存储装置与存储器模块的混合。存储装置的实例包含固态驱动器(ssd)、快闪驱动器、通用串行总线(usb)快闪驱动器、嵌入式多媒体控制器(emmc)驱动器、通用快闪存储(ufs)驱动器、安全数字(sd)卡及硬盘驱动器(hdd)。存储器模块的实例包含双列直插式存储器模块(dimm)、小外形dimm(so-dimm),及各种类型的非易失性双列直插式存储器模块(nvdimm)。
28.计算系统100可为计算装置,例如台式计算机、膝上型计算机、网络服务器、移动装置、运载工具(例如,飞机、无人机、火车、汽车或其它运输工具)、支持物联网(iot)的装置、
嵌入式计算机(例如,包含在运载工具、工业设备或联网市售装置中的计算机),或包含存储器及处理装置的此种计算装置。
29.计算系统100可包含耦合到一或多个存储器子系统110的主机系统120。在一些实施例中,主机系统120耦合到不同类型的存储器子系统110。图1说明耦合到一个存储器子系统110的主机系统120的一个实例。如本文所使用,“耦合到
……”
或“与
……
耦合”通常指代组件之间的连接,其可为间接通信连接或直接通信连接(例如,不具有中间组件),无论有线或无线,包含例如电连接、光学连接、磁性连接等连接。
30.主机系统120可包含处理器芯片组及由处理器芯片组执行的软件堆叠。处理器芯片组可包含一或多个核心、一或多个高速缓存器、存储器控制器(例如,nvdimm控制器),及存储协议控制器(例如,pcie控制器、sata控制器)。主机系统120使用存储器子系统110(例如)将数据写入到存储器子系统110且从存储器子系统110读取数据。
31.主机系统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可经由同一通信连接、多个单独通信连接及/或通信连接的组合存取多个存储器子系统。
32.存储器装置130、140可包含不同类型的非易失性存储器装置及/或易失性存储器装置的任何组合。易失性存储器装置(例如,存储器装置140)可为但不限于随机存取存储器(ram),例如动态随机存取存储器(dram)及同步动态随机存取存储器(sdram)。
33.非易失性存储器装置(例如,存储器装置130)的一些实例包含与非(nand)类型快闪存储器及就地写入存储器,例如三维交叉点(“3d交叉点”)存储器装置,其为非易失性存储器单元的交叉点阵列。非易失性存储器的交叉点阵列可结合可堆叠交叉网格化数据存取阵列而基于体电阻的改变来进行位存储。另外,与许多基于快闪的存储器对比,交叉点非易失性存储器可执行就地写入操作,其中可在不预先擦除非易失性存储器单元的情况下对非易失性存储器单元进行编程。nand类型快闪存储器包含例如二维nand(2d nand)及三维nand(3d nand)。
34.尽管描述例如nand类型存储器(例如,2d nand、3d nand)及3d交叉点非易失性存储器单元阵列的非易失性存储器装置,但是存储器装置130可基于任何其它类型的非易失性存储器,例如只读存储器(rom)、相变存储器(pcm)、自选存储器、其它基于硫属化物的存储器、铁电晶体管随机存取存储器(fetram)、铁电随机存取存储器(feram)、磁随机存取存储器(mram)、自旋转移力矩(stt)-mram、导电桥接ram(cbram)、电阻性随机存取存储器(rram)、基于氧化物的rram(oxram)、或非(nor)快闪存储器,及电可擦除可编程只读存储器(eeprom)。
35.存储器子系统控制器115(或为简单起见,控制器115)可与存储器装置130通信以执行操作,例如在存储器装置130处读取数据、写入数据或擦除数据及其它这类操作(例如,响应于由控制器115在命令总线上调度的命令)。存储器子系统控制器115可包含硬件,例如一或多个集成电路及/或离散组件、缓冲存储器,或其组合。硬件可包含具有专用(即,硬译码)逻辑的数字电路系统以执行本文所描述的操作。存储器子系统控制器115可为微控制器、专用逻辑电路系统(例如,现场可编程门阵列(fpga)、专用集成电路(asic)等),或另一合适的处理器。
36.存储器子系统控制器115可包含处理装置117(处理器),其经配置以执行存储于本地存储器119中的指令。在所说明的实例中,存储器子系统控制器115的本地存储器119包含嵌入式存储器,其经配置以存储指令以用于执行控制存储器子系统110的操作(包含处理存储器子系统110与主机系统120之间的通信)的各种过程、操作、逻辑流及例程。
37.在一些实施例中,本地存储器119可包含存储存储器指针、提取的数据等的存储器寄存器。本地存储器119还可包含用于存储微码的只读存储器(rom)。虽然图1中的实例存储器子系统110已说明为包含存储器子系统控制器115,但在本公开的另一实例中,存储器子系统110不包含存储器子系统控制器115,而是可依靠外部控制(例如,由外部主机或由与存储器子系统110分开的处理器或控制器提供)。
38.一般来说,存储器子系统控制器115可从主机系统120接收命令或操作,并且可将命令或操作转换成指令或适当的命令,以实现对存储器装置130及/或存储器装置140的所要存取。存储器子系统控制器115可负责其它操作,例如耗损均衡操作、垃圾收集操作、错误检测及错误校正码(ecc)操作、加密操作、高速缓存操作及与存储器装置130相关联的逻辑地址(例如,逻辑块地址(lba)、名字空间)与物理地址(例如,物理块地址)之间的地址转换。存储器子系统控制器115可进一步包含主机接口电路系统,以经由物理主机接口与主机系统120通信。主机接口电路系统可将从主机系统接收到的命令转换成命令指令以存取存储器装置130及/或存储器装置140,以及将与存储器装置130及/或存储器装置140相关联的响应转换成用于主机系统120的信息。
39.存储器子系统110还可包含未说明的额外电路系统或组件。在一些实施例中,存储器子系统110可包含高速缓存或缓冲器(例如,dram)及可从存储器子系统控制器115接收地址且解码所述地址以存取存储器装置130的地址电路系统(例如,行解码器及列解码器)。
40.在一些实施例中,存储器装置130包含本地媒体控制器135,其结合存储器子系统控制器115操作以对存储器装置130的一或多个存储器单元执行操作。外部控制器(例如,存储器子系统控制器115)可在外部管理存储器装置130(例如,对存储器装置130执行媒体管理操作)。在一些实施例中,存储器装置130是受管理存储器装置,其是与本地控制器(例如,本地控制器135)组合以在同一存储器装置封装内进行媒体管理的原始存储器装置。受管理存储器装置的实例是受管理nand(mnand)装置。
41.存储器子系统110包含可使用错误校正方案的组合实施概率数据恢复的数据恢复组件113。在一些实施例中,控制器115包含数据恢复组件113的至少一部分。举例来说,控制器115可包含处理器117(处理装置),其经配置以执行存储在本地存储器119中以用于执行本文中所描述的操作的指令。在一些实施例中,数据恢复组件113是主机系统120、应用程序或操作系统的部分。
42.数据恢复组件113可检测对所请求数据片段进行解码的失败,并使用同一数据条带的其它片段来更新所请求片段的统计模型。数据恢复组件113使用更新的统计模型对所请求片段进行解码。下文描述关于数据恢复组件113的操作的其它细节。
43.图2是根据本公开的一些实施例的用于实施数据恢复的逻辑及存储器子系统组件200的框图。逻辑及存储器子系统组件200中的一或多个可实施为数据恢复组件113及/或存储器子系统控制器115的一部分。逻辑及存储器子系统组件200包含非易失性存储器205及易失性存储器210,其可分别由存储器装置130及140实施。
44.非易失性存储器205存储用户数据及奇偶校验数据。举例来说,非易失性存储器205可经配置以将编码数据存储在rain条带中。在另一实施例中,非易失性存储器205将编码数据存储在raid(独立磁盘冗余阵列)条带中。
45.根据本公开的实施例,当从非易失性存储器读取原始编码数据、对原始编码数据进行解码或在数据恢复期间以其它方式使用原始编码数据时,易失性存储器210临时存储用户数据、奇偶校验数据、统计模型及其它数据。在一个实施例中,通过将解码数据临时地存储在易失性存储器210中且通过存储解码数据的易失性存储器210中的位置对来自主机系统120的读取请求作出响应,将解码数据提供给主机系统120。
46.概率生成器215生成统计模型,所述统计模型包含指示数据正确的可能性的值。由于漂移、读取干扰或其它寄生效应,存储器装置可能会在写入或保留存储在存储器装置内的位时出现错误。在一个实施例中,概率生成器215基于读取电压电平及阈值电压电平的比较而生成似然值。举例来说,多个感测级别可用于检测片段内的位的二进制值。在一个实施例中,读取片段包含在“硬读取”感测级别及一或多个“软读取”感测级别读取数据以生成似然值。在一个实施例中,概率生成器215基于这些感测级别生成llr值。
47.解码器220对从非易失性存储器205读取的原始编码数据进行解码。在一个实施例中,解码器220使用调整原始编码位的值的迭代过程,以便满足一或多个奇偶校验。举例来说,解码器220可使用llr或由概率生成器215提供的其它统计模型来迭代地调整编码位的值,以试图满足奇偶校验。在一个实施例中,当成功地对数据进行解码时,解码器220生成解码数据以及用于所述数据的统计模型。由220生成的统计模型可为另一llr、校正子权重或位值正确的可能性的另一个指示。在一个实施例中,当解码器220未能满足奇偶校验时,解码器220生成解码失败的指示以及输出向量、校正子权重或与对片段进行解码的尝试相关的其它数据或元数据。在一个实施例中,解码器220是ldpc解码器。
48.mux 225是多路复用器或类似装置,其允许在用于输出的不同输入之间进行选择。举例来说,解码器旁路230上的无效值可选择解码器220的输出,即解码的数据片段,并且解码器旁路230上的有效值可选择原始编码数据(即,具有翻转或嘈杂位的可能性的未解码数据/编码数据)。在一个实施例中,通过易失性存储器210将原始编码数据作为输入提供到mux 225。在另一实施例中,提供原始编码数据以及由概率生成器215提供的统计模型(同时仍绕过解码器220)。
49.在一个实施例中,响应于解码失败,解码器旁路230设置成活动状态(选择原始编码数据作为输出)。换句话说,解码器旁路230可在数据恢复过程的各个阶段设置成活动状态或非活动状态。举例来说,响应于在解码终止时或另外当解码器220确定解码失败时将片段的初始校正子权重及片段的校正子权重相比较,数据恢复组件113可将解码器旁路230设
置成活动状态。根据初始校正子权重,数据恢复组件113估计片段中存在多个错误位。基于最终校正子权重及由解码器翻转的位数,数据恢复组件113还可估计来自解码器的输出向量中存在多少错误位(即使解码器220未能对片段进行解码,仍存在输出向量)。校正子权重或翻转位中的一或多个可用于触发将解码器旁路230设置成活动状态。在一个实施例中,响应于初始校正子权重与满足阈值的位翻转次数的比率,数据恢复组件113将解码器旁路230设置成活动状态。举例来说,如果比率小于或等于阈值,则数据恢复组件113将解码器旁路230设置成活动状态。
50.mux 225的输出经历组合逻辑235且结果存储在缓冲器s240中。在一个实施例中,存储器子系统110从在将片段传递到组合逻辑235或作为组合逻辑235的一部分传递片段之前读取的片段的结果中压缩或移除统计模型数据。举例来说,压缩统计数据可包含对值进行舍入以允许使用更少的位来表示所述值。组合逻辑235可在固件、硬件,或其组合中实施。
51.在一个实施例中,组合逻辑235在缓冲器s240的当前内容与mux 225的输出之间提供简单的xor运算。举例来说,组合逻辑235可对数据片段的硬读取值进行xor。在一个实施例中,所述组合是最小操作,即在统计模型数据中选择最小的绝对值。在另一实施例中,组合包含基于校正子权重将不同的缩放因数应用于解码过程失败的片段的统计模型数据,并基于缩放的统计模型数据从查找表(lut)中选择组合值。在一个实施例中,查找表的条目/值通过使用例如爬山算法的技术的优化过程预定。在另一实施例中,组合逻辑235使用查找表及/或函数来将mux 225的输出与缓冲器s240的内容组合。举例来说,组合逻辑235可使用统计模型数据,例如在rain条带中的失败片段的数目、初始校正子权重、解码终止时的校正子权重、解码期间的位翻转次数或其它解码状态数据,及硬读取数据值,以从查找表中选择组合值或缩放因数。作为另一实例,组合逻辑235可通过生成查找表输出(lut_output),例如缩放因数及来自每次读取的统计模型数据的乘积来组合片段:
52.llr(c1)=lut_output
×

i=2,3,

,n sign(llr(ci))
53.由组合逻辑235生成的结果(如以连续方式应用于每个片段)存储在缓冲器s240中。当已经组合条带的所有其它片段时,存储于缓冲器s240中的所得组合值用于修改解码失败且正在恢复的片段的统计模型。举例来说,类似于上文所描述的组合过程,由组合逻辑235生成的结果可用于存取查找表中的值以选择缩放因数,以应用于解码失败且正在恢复的片段的llr或其它统计模型。更新的统计模型随后可用于所请求片段的软解码过程中。
54.进一步参考图3到9描述使用逻辑及存储器子系统组件200的数据恢复。
55.图3到9说明根据本公开的一些实施例的用于实施数据恢复的逻辑及存储器子系统组件200的使用的实例。在图3中,存储器子系统110将编码片段305从非易失性存储器205读取到易失性存储器210中。举例来说,存储器子系统110可响应于来自片段tu3的主机系统120的请求而执行读取。如本文所用,在片段上包含条表示未解码数据,并且片段上没有条表示解码数据。
56.概率生成器215基于读取生成统计模型(例如,llr)且将编码片段305及统计模型提供到解码器220。解码器220尝试对片段305进行解码,但失败310。响应于解码失败,数据恢复组件113使用错误校正方案的组合起始概率数据恢复。
57.在图4中,响应于编码片段305的解码失败,数据恢复组件113使用错误校正方
案的组合起始概率数据恢复。数据恢复组件113触发同一条带中与编码片段305相同的其它片段的读取。表400说明对每个片段的初始解码尝试可能以成功或失败告终。每个片段的解码的所确定成功或失败将触发如何使用每个片段来恢复所请求的数据(如下文进一步描述)。如所说明,表400表示含有多个片段的条带,所述多个片段的解码过程失败且因此无法单独使用例如传统的rain条带奇偶校验数据来恢复。
58.存储器子系统110将编码片段405从非易失性存储器205读取到易失性存储器210中。概率生成器215基于读取生成统计模型(例如,llr)且将编码片段405及统计模型提供到解码器220。解码器220对片段405成功地进行解码,从而产生解码片段tu
0 410。假设解码器220成功,则解码器旁路230保持不活动并且解码片段tu0410(仅硬读取数据或硬读取数据及软读取数据组合)由mux 225传递到组合逻辑235。缓冲器s240当前是空的,因此所得组合导致缓冲器s240存储解码片段tu
0 410(或解码片段tu
0 410与初始/默认值组合)。
59.在图5中,存储器子系统110将编码片段505从非易失性存储器205读取到易失性存储器210中。概率生成器215基于读取生成统计模型(例如,llr)且将编码片段505及统计模型提供到解码器220。解码器220对片段505成功地进行解码,从而产生解码片段tu
1 510。假设解码器220成功,则解码器旁路230保持不活动并且解码片段tu
1 510(仅硬读取数据或硬读取数据及软读取数据组合)由mux 225传递到组合逻辑235。缓冲器s240当前存储解码片段tu
0 410,因此所得组合产生存储解码片段tu
0 410及解码片段tu
1 510的组合(例如,解码片段tu
0 410及解码片段tu
1 510的xor的结果)的缓冲器s240。
60.在图6中,存储器子系统110将编码片段605从非易失性存储器205读取到易失性存储器210中。概率生成器215基于读取生成统计模型(例如,llr)且将编码片段605及统计模型提供到解码器220。解码器220尝试对片段605进行解码,但指示失败610。
61.在图7中,响应于未能对片段605进行解码,数据恢复组件113激活解码器旁路230且将编码片段605从易失性存储器210传递到mux 225(如果不再存在,则存储器子系统110可再次从非易失性存储器205读取片段605)。mux 225将编码片段605传递到组合逻辑235且编码片段605与缓冲器s240的当前内容组合。举例来说,缓冲器s240现在可表示解码片段tu
0 410 xor解码片段tu
1 510 xor编码片段605的结果。
62.图8说明继续读取其它片段tu4到tun中的每一个的结果。每个片段(基于解码器220失败或成功进行编码或解码)与缓冲器s240的内容组合。考虑到此过程用于恢复片段tu3,从缓冲器s240中的读取结果的组合中省略片段tu3。由于解码失败而组合编码片段由于解码成功而组合解码片段tu5等。
63.在图9中,数据恢复组件113使用来自缓冲器s240的组合片段数据s905重试对片段305进行解码。举例来说,数据恢复组件113可将s905添加到由概率生成器215确定的片段305的软读取数据。在一个实施例中,概率生成器215使用查找表及/或函数来组合
s905及通过片段305的读取确定的llr或其它统计模型数据。举例来说,概率生成器215可从查找表选择缩放因数且确定缩放因数及通过片段305的读取确定的llr或其它统计模型数据的乘积。作为另一实例,概率生成器215可使用查找表值,以另外增加、减小或以其它方式更新通过片段305的读取确定的llr或其它统计模型数据。尽管图9说明从非易失性存储器205读取片段305,但是在一个实施例中,存储器子系统110在第一解码失败(例如,在易失性存储器210中)之后保留片段305以用于后续解码尝试。
64.解码器220使用更新的统计模型数据来重新尝试片段305的解码。当更新的统计模型数据足以克服先前失败时,解码器220产生解码片段tu
3 910。在解码器旁路230不活动的情况下,mux 225可响应于读取请求而将解码片段tu
3 910传递到主机120。举例来说,数据恢复组件113可在特定地址或位置处将解码片段tu
3 910存储在易失性存储器210中,并且将所述地址或位置提供到主机120以检索所请求数据。
65.图10(说明为图10a到10b)是根据本公开的一些实施例的用于使用错误校正方案的组合恢复数据的实例方法1000的流程图。方法1000可通过处理逻辑来执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令),或其组合。在一些实施例中,方法1000由图1的数据恢复组件113执行。虽然以特定顺序或次序来展示,但是除非另有指定,否则可修改过程的次序。因此,应理解,所说明实施例应仅理解为实例,且所说明过程可以不同次序进行,且一些过程可并行地进行。另外,在各个实施例中可省略一或多个过程。因此,在每个实施例中并不需要所有过程。其它过程流程也是可能的。
66.在操作1005处,处理装置起始所请求片段的读取。举例来说,主机系统可请求将由存储器子系统读取的片段数据。处理装置从非易失性存储器读取原始编码数据且生成如上文所述的统计模型。处理装置可例如根据ldpc或另一ecc算法使用统计模型来尝试对片段进行解码。
67.在操作1010处,处理装置确定所请求片段的解码成功还是失败。当解码器不能够根据ecc算法满足奇偶校验时,片段的解码失败。
68.如果解码成功,则在操作1015处,处理装置返回解码数据。举例来说,处理装置可响应于读取请求而警告主机系统关于存储解码数据的易失性存储器位置。
69.如果解码失败,则在操作1020处,处理装置起始所请求片段的条带中的另一片段的读取。举例来说,为了恢复所请求的数据,处理装置将读取含有所请求片段的条带中的其它片段中的每一个。处理装置又将每个片段视为“当前片段”。
70.在操作1025处,处理装置确定当前片段的解码成功还是失败。如果解码成功,则在操作1030处,处理装置将解码片段与片段缓冲器的当前内容(如果存在)组合。如上文所述,组合过程可为简单的xor运算,或使用查找表及/或公式来生成更新的组合值的更复杂组合。
71.在操作1035处,处理装置确定条带中的另一片段是否保持待处理。如果存在另一片段,则所述片段变成当前片段且方法1000返回到操作1020以起始当前片段的读取。如果条带中不存在其余片段,则方法1000前进到操作1045。
72.如果解码失败,则在操作1040处,处理装置将原始编码片段与片段缓冲器的当前内容(如果存在)组合。同样,组合过程可为简单的xor运算,或使用查找表及/或公式来生成更新的组合值的更复杂组合。
73.在操作1045处,在组合条带中的其它片段的读取结果之后,处理装置累积所请求片段的硬读取值及一或多个软读取值,以及表示条带中的其它片段的读取组合的缓冲器内容。举例来说,编码的所请求片段的读取可产生硬读取值及两个软读取值。由条带中的其它片段的读取产生的组合值可视为所请求片段的统计模型的另一软读取值或另一组件。
74.在操作1050处,处理装置使用缓冲器内容更新软读取值。如上文所描述,处理装置可从查找表选择缩放因数,且确定缩放因数及由所请求片段的读取确定的统计模型数据的乘积以生成更新的统计模型。
75.在操作1055处,处理装置使用更新的统计模型(例如,更新的软读取值)重新尝试对所请求片段的解码。由于针对软解码过程使用不同的输入,对所请求数据进行解码的这种更新尝试可能会产生不同的结果。
76.在操作1060处,处理装置确定解码是否成功。如果解码成功,则在操作1015处,处理装置返回解码数据。如果解码失败,则方法1000经由页间连接符a进行到操作1065。
77.在操作1065处,处理装置起始条带中的另一片段的恢复操作。举例来说,选择条带中在解码过程期间失败的另一片段,且使用最新选择的片段作为恢复过程的焦点重复操作1020到1060。在一个实施例中,处理装置基于在恢复所述片段的数据时成功的可能性而选择用于恢复的另一片段。此成功的可能性的指示符包含例如校正子权重、翻转位的次数、具有一或多个存储装置的片段数据的物理存储位置、当读取片段时生成的统计模型数据(llr)等中的一或多个。
78.在操作1070处,处理装置确定恢复是否成功。举例来说,如果最新选择的片段的恢复导致解码的片段数据返回(在操作1010处),则恢复成功。如果最新选择的片段的恢复不会导致解码的片段数据返回,则代替从操作1060前进到操作1065,方法1000前进到操作1085。
79.如果恢复成功,则在操作1075处,处理装置使用解码的片段数据校正所选择片段的存储值。在操作1080处,处理装置使用所选择语句的恢复值重新尝试恢复所请求片段。同样,可如参考操作1020到1060所描述进行对所请求数据进行解码的这种更新尝试。
80.如果恢复不成功,则在操作1085处,处理装置确定是否已满足恢复阈值。举例来说,当恢复当前条带中的片段的尝试次数达到或超过阈值,或尝试恢复一或多个片段的时间量达到或超过阈值时间量时,可满足恢复阈值。如果尚不满足恢复阈值,则方法1000前进到操作1065以起始条带中的另一片段的恢复。
81.如果已满足恢复阈值,则在操作1090处,处理装置生成恢复失败的指示。
82.图11是根据本公开的一些实施例的用于使用错误校正方案的组合恢复数据的另一实例方法1100的流程图。方法1000可通过处理逻辑来执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令),或其组合。在一些实施例中,方法1000由图1的数据恢复组件113执行。虽然以特定顺序或次序来展示,但是除非另有指定,否则可修改过程的次序。因此,应理解,所说明实施例应仅理解为实例,且所说明过程可以不同次序进行,且一
些过程可并行地进行。另外,在各个实施例中可省略一或多个过程。因此,在每个实施例中并不需要所有过程。其它过程流程也是可能的。
83.在操作1105处,处理装置接收对数据片段的读取请求。数据片段是数据条带的多个数据片段中的一个。举例来说,数据片段可构成rain条带。
84.在操作1110处,处理装置检测对所请求片段进行解码的失败。举例来说,ldpc或其它ecc解码器可迭代地尝试对如上文所述的数据片段进行解码且随后无法对所述数据片段进行解码。
85.在操作1115处,处理装置读取条带中的其它片段中的每一个。如上文所描述,每一读取包含对当前片段进行解码的尝试。
86.在操作1120处,处理装置生成每一读取的组合结果。组合结果的生成包含将解码成功的片段的解码数据及解码失败的片段的原始编码数据组合。如上文所描述,读取结果的组合可包含在每个片段的结果缓冲器内容与硬读取数据之间应用xor函数,每次用所得值更新缓冲器内容。在另一实施例中,查找表及/或另一函数可用于组合如上文所描述的读取结果。
87.在操作1125处,处理装置使用读取条带中的其它片段的组合结果更新所请求片段的统计模型。如上文所描述,处理装置可使用来自其它片段的读取结果从查找表中选择缩放因数,或以其它方式应用查找表及/或公式以更新所请求片段的llr、软读取值,或其它统计模型数据。
88.在操作1130处,处理装置使用更新的统计模型对所请求片段进行解码。如上文所描述,解码器的更新输入的使用可导致软解码过程成功地对片段进行解码。可响应于所属请求而返回解码数据。
89.图12说明计算机系统1200的实例机器,在所述计算机系统内可执行用于使机器执行本文中所论述的方法中的任何一或多种的指令集。在一些实施例中,计算机系统1200可对应于主机系统(例如,图1的主机系统120),其包含、耦合到或使用存储器子系统(例如,图1的存储器子系统110)或可用于执行控制器的操作(例如,以执行操作系统来执行对应于图1的数据恢复组件113的操作)。在替代实施例中,机器可连接(例如联网)到lan、内联网、外联网及/或因特网中的其它机器。机器可作为对等(或分布式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器而以客户端-服务器网络环境中的服务器或客户端机器的容量进行操作。
90.所述机器可为个人计算机(pc)、平板pc、机顶盒(stb)、个人数字助理(pda)、蜂窝电话、网络器具、服务器、网络路由器、交换机或桥接器,或能够执行(依序或以其它方式)指定将由所述机器采取的动作的指令集的任何机器。另外,尽管说明单个机器,但还应认为术语“机器”包含机器的任何集合,所述集合单独地或共同地执行一(或多)个指令集以进行本文中所论述的方法中的任何一或多种。
91.实例计算机系统1200包含处理装置1202、主存储器1204(例如,只读存储器(rom)、快闪存储器、动态随机存取存储器(dram),例如同步dram(sdram)或rambus dram(rdram)等)、静态存储器1206(例如,快闪存储器、静态随机存取存储器(sram)等),及数据存储系统1218,其经由总线1230彼此通信。
92.处理装置1202表示一或多个通用处理装置,例如微处理器、中央处理单元等。更特
定来说,处理装置可为复杂指令集计算(cisc)微处理器、精简指令集计算(risc)微处理器、超长指令字(vliw)微处理器或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置1202也可为一或多个专用处理装置,例如专用集成电路(asic)、现场可编程门阵列(fpga)、数字信号处理器(dsp)、网络处理器等。处理装置1202经配置以执行指令1226以用于执行本文中所论述的操作及步骤。计算机系统1200可进一步包含网络接口装置1208,以通过网络1220进行通信。
93.数据存储系统1218可包含机器可读存储媒体1224(也称为计算机可读媒体),其上存储有体现本文中所描述的任何一或多种方法或功能的指令1226或软件的一或多个集合。指令1226还可在其由计算机系统1200执行期间完全地或至少部分地驻存在主存储器1204内及/或处理装置1202内,主存储器1204及处理装置1202也构成机器可读存储媒体。机器可读存储媒体1224、数据存储系统1218,及/或主存储器1204可对应于图1的存储器子系统110。
94.在一个实施例中,指令1226包含用于实施对应于数据恢复组件(例如,图1的数据恢复组件113)的功能的指令。尽管在实例实施例中机器可读存储媒体1224展示为单个媒体,但是应认为术语“机器可读存储媒体”包含存储一或多个指令集的单个媒体或多个媒体。术语“机器可读存储媒体”还应被认为包含能够存储或编码供机器执行的指令集合且致使机器执行本公开的方法中的任何一或多种的任何媒体。因此,术语“机器可读存储媒体”应被认为包含但不限于固态存储器、光学媒体及磁性媒体。
95.已在针对计算机存储器内的数据位的操作的算法及符号表示方面呈现了先前详细描述的一些部分。这些算法描述及表示是数据处理领域的技术人员用于将其工作的主旨最有效地传达给所属领域的其他技术人员的方式。在本文中,且一般将算法构想为产生所要结果的操作的自洽序列。操作是要求对物理量进行物理操纵的操作。通常(但未必),这些量采用能够存储、组合、比较及以其它方式操纵的电或磁信号的形式。已经证实,主要出于常用的原因,将这些信号称为位、值、元素、符号、字符、项、编号等等有时是便利的。
96.然而,应牢记,所有这些及类似术语将与适当物理量相关联,且仅仅为应用于这些量的便利标记。本公开可以指控制及变换计算机系统的寄存器及存储器内的表示为物理(电子)数量的数据为计算机系统存储器或寄存器或其它这类信息存储系统内的类似地表示为物理量的其它数据的计算机系统或类似电子计算装置的动作及过程。
97.本公开还涉及用于执行本文中的操作的设备。此设备可专门构造用于预期目的,或其可包含通过存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。举例来说,计算机系统或其它数据处理系统(例如控制器115)可响应于其处理器执行存储器或其它非暂时性机器可读存储媒体中所含的计算机程序(例如,指令序列)而执行计算机实施的方法1000及1100。这种计算机程序可存储在计算机可读存储媒体中,例如但不限于任何类型的盘,包含软盘、光盘、cd-rom以及磁性光盘、只读存储器(rom)、随机存取存储器(ram)、eprom、eeprom、磁卡或光卡,或适合于存储电子指令的任何类型的媒体,其各自耦合到计算机系统总线。
98.本文中呈现的算法及显示器在本质上并不与任何特定计算机或其它设备相关。各种通用系统可根据本文中的教示与程序一起使用,或其可证明为便于构造更专用设备以执行所述方法。将如下文描述中所阐述的那样来呈现各种这些系统的结构。另外,未参考任何
特定编程语言来描述本公开。应了解,可使用各种编程语言来实施如本文中所描述的本公开的教示内容。
99.本公开可提供为计算机程序产品或软件,其可包含在其上存储有可用于编程计算机系统(或其它电子装置)以进行根据本公开的过程的指令的机器可读媒体。机器可读媒体包含用于以机器(例如,计算机)可读的形式存储信息的任何机制。在一些实施例中,机器可读(例如,计算机可读)媒体包含机器(例如,计算机)可读存储媒体,例如只读存储器(“rom”)、随机存取存储器(“ram”)、磁盘存储媒体、光学存储媒体、快闪存储器组件等。
100.在前述说明书中,本公开的实施例已经参照其特定实例实施例进行描述。将显而易见的是,可在不脱离如所附权利要求书中阐述的本公开的实施例的更广精神及范围的情况下对本公开进行各种修改。因此,应在说明性意义上而非限制性意义上看待说明书及图式。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1