读取操作和软解码时序的制作方法

文档序号:15163850发布日期:2018-08-14 17:11阅读:176来源:国知局

本主题技术一般涉及利用纠错编码(errorcorrectioncoding,ecc)的数据存储解决方案。



背景技术:

数据存储系统(例如,固态驱动器(solidstatedrive,ssd)、硬盘驱动器等等)可以使用低密度奇偶校验(lowdensityparitycheck,ldpc)以校正存储和读取或发送和接收信息时发生的错误。例如,对于ssd的正常读取操作,在ssd控制器将数据返回到主机之前从快闪存储器设备读取的原始数据要经过解码。如果解码失败,控制器调用错误校正子例程。错误校正子例程涉及使用不同的电压从快闪存储器设备读取,并尝试不同的对数似然比(loglikelihoodratio,llr)表用于ldpc解码。



技术实现要素:

本主题技术通过发出原始读取请求和在原始读取请求期间执行软解码来减少在快闪存储系统中的错误校正子例程期间的开销时间。

根据本主题技术的方面,提供了一种用于管理数据解码的方法。该方法包括接收硬解码失败指示,该指示是解码响应于使用第一电压组的第一读取命令从非易失性存储器读取的第一原始数据失败的指示。第一读取命令包括第一读取操作组。该方法包括向非易失性存储器发出使用第二电压组的对于数据的第二读取命令。第二读取命令包括第二读取操作组。该方法包括向解码器发出用于与第二读取命令并行处理的基于第一原始数据使用第一软信息的至少一个软解码请求。该方法包括从解码器接收成功解码的成功指示。

根据本主题技术的其它方面,提供了一种快闪存储系统。该快闪存储系统包括接收硬解码失败指示的装置,该指示是解码响应于使用第一电压组的第一读取命令从非易失性存储器读取的第一原始数据失败的指示。第一读取命令包括第一读取操作组。该快闪存储系统包括向非易失性存储器发出使用第二电压组的对于数据的第二读取命令的装置。第二读取命令包括第二读取操作组。该快闪存储系统包括向解码器发出用于与第二读取命令并行处理的基于第一原始数据使用第一软信息的至少一个软解码请求的装置。该快闪存储系统包括从解码器接收成功解码的成功指示的装置。

根据本主题技术的其它方面,提供了一种快闪存储系统。该快闪存储系统包括多个快闪存储设备、解码器和控制器。该控制器被配置为接收硬解码失败指示,该指示是解码响应于使用第一电压组的第一读取命令从非易失性存储器读取的第一原始数据失败的指示。第一读取命令包括第一读取操作组。该控制器被配置为向非易失性存储器发出使用第二电压组的对于数据的第二读取命令。第二读取命令包括第二读取操作组。该控制器被配置为向解码器发出用于与第二读取命令并行处理的基于第一原始数据使用第一软信息的至少一个软解码请求。该控制器被配置为从解码器接收成功解码的成功指示。

要理解,从下面的详细描述中,本主题技术的其它配置对于本领域技术人员来说将容易变得显而易见,其中通过例示的方式示出和描述了本主题技术的各种配置。如将认识到的,本主题技术能够具有其它不同的配置,并且在所有不脱离本主题技术的范围的情况下,其多个细节能够在各种其它方面进行修改。因此,附图和详细描述本质上将被认为是例示性的而不是限制性的。

附图说明

将参考附图进行详细的描述:

图1是示出根据本主题技术的方面的快闪存储系统的组件的框图。

图2是示出根据本主题技术的方面的用于快闪存储系统的错误校正例程的读取和解码操作的图。

图3a是示出图2的图的读取和解码操作时序的图。

图3b示出根据本主题技术的方面的读取和解码操作时序的图。

图4是示出根据本主题技术的方面的在用于快闪存储系统的错误校正例程中减少开销的方法的流程图。

具体实施方式

下面阐述的详细描述意图作为本主题技术的各种配置的描述,并且不意图代表可以实践本主题技术的唯一配置。附图在此并入并构成详细描述的一部分。详细描述包括用于提供对主题技术的透彻理解的目的具体细节。然而,对于本领域技术人员显而易见的是,可以在没有这些具体细节的情况下实践本主题技术。在一些实例中,以框图形式示出公知的结构和组件,以避免模糊本主题技术的概念。为了便于理解,类似的组件标有相同的元件编号。

通常,当数据被写入非易失性存储器(诸如快闪存储器设备)时被编码,并且要读取数据时,解码器对从快闪存储器设备读取的原始数据进行解码。例如,如果主机在读取命令中请求数据,或者控制器请求数据作为维护操作的一部分,则控制器向快闪存储器发送读取请求。快闪存储器读取与所请求的数据相对应的原始数据,并且解码器解码原始数据。控制器将解码的原始数据返回给主机。然而,如果解码失败,控制器调用错误校正例程。如将在下面更详细描述的,错误校正例程涉及从快闪存储器设备读取原始数据并且对读取的原始数据进行解码的阶段,对于每个连续的阶段使用不同的电压以用于读取。

根据本主题技术的方面,可以减少完成错误校正例程的时间。给定阶段的读取命令可以包括一组读取操作,每个读取操作使用不同的电压。快闪存储器设备可以针对每个不同的电压被重新编程,或者快闪存储器设备可以能够通过不同的电压循环。在用于错误校正例程的当前阶段的读取命令完成之后,发出对读取的原始数据的软解码请求。在当前阶段的软解码请求完成之前,发出用于下一阶段的读取命令,使得与软解码并行地执行读取命令。因此,如果当前阶段的软解码失败,则等待下一阶段的读取命令完成的时间被减少。

图1是示出根据本主题技术的方面的快闪存储系统110的组件的框图。如图1所描绘的,快闪存储系统110包括接口115、控制器120、存储器125、解码器160、编码器166和快闪存储器设备130。接口115便利了快闪存储系统110和主机150之间的数据、命令和/或信号的通信。控制器120根据从主机150接收的命令来控制快闪存储系统110的操作以在快闪存储器设备130中存储和检索数据。控制器120可以包括处理器。存储器125(其可以是随机存取存储器(randomaccessmemory,ram))为控制器120提供暂时的存储空间以处理命令并在主机150和快闪存储器设备130之间传送数据。解码器160,其可以包括存储器、寄存器、逻辑门、一个或多个处理器,并且解码器160可以与控制器120集成或从控制器120分离,以及解码原始数据。编码器166,其可以包括存储器、寄存器、逻辑门、一个或多个处理器,并且编码器166可以与控制器120集成或从控制器120分离,以及编码要被写入快闪存储器设备130的数据。下面将更详细地描述这些组件中的每一个的操作。

接口115提供主机150和快闪存储系统110之间的物理连接和电连接。接口115被配置为经由物理连接和电连接方便主机150和快闪存储系统110之间的数据、命令和/或控制信号的通信。与接口115的连接和通信可以基于诸如通用串行总线(universalserialbus,usb)、小型计算机系统接口(smallcomputersysteminterface,scsi)、串行高级技术附件(serialadvancedtechnologyattachment,sata)等的标准接口。可替换地,连接和/或通信可以基于专有接口,但是本主题技术不限于任何特定类型的接口。

主机150可以是计算设备,诸如计算机/服务器、智能手机或从快闪存储系统110读取数据和向快闪存储系统110写入数据的任何其它电子设备。主机150可以具有向快闪存储系统110发出读取和写入命令的操作系统或其它软件。快闪存储系统110可以与主机150集成或者可以在主机150的外部。快闪存储系统110可以无线地连接到主机150,或者可以物理地连接到主机150。

图1示出了多个快闪存储器设备130。快闪存储系统110可以包括一个或多个快闪存储器设备130,并不限于特定数量的快闪存储器设备130。快闪存储器设备130可以各自包括单个快闪存储器芯片或裸芯。快闪存储器设备130可以被组织在多个通道当中,通过该通道,由控制器120从快闪存储器设备130读取数据以及将数据写入到快闪存储器设备130,或者快闪存储器设备130可以耦合到单个通道。快闪存储器设备130可以使用nand快闪存储器被实现。快闪存储器设备130可以各自包括用于存储各个快闪存储器设备130的操作参数的一个或多个寄存器135。操作参数可以包括:诸如读取电压的读取操作参数;诸如初始脉冲值、增量脉冲值和脉冲宽度的写入操作参数;以及诸如初始脉冲值、增量脉冲值和脉冲宽度的擦除操作参数。

快闪存储器设备130包括分布到诸如快闪存储器块140的存储块中的多个存储器单元。快闪存储器设备130可以具有一个或更多个快闪存储器块140,且快闪存储器设备130可各自具有相同或不同数量的快闪存储器块140。快闪存储器块140可以被称为数据块或存储器块,并且可以由控制器120使用物理块地址来寻址。每个快闪存储器块140被进一步划分为可由控制器120使用物理页面地址或偏移量来寻址的多个数据段或页面,物理页面地址或偏移量来自包含被引用页面的存储块的物理块地址。页面可以存储扇区或其它主机数据单元。快闪存储器块140代表在单个擦除操作中在快闪存储器设备130内被擦除的数据的单元。页面代表在读取或写入操作中从快闪存储器设备设备130读取或写入到快闪存储器设备130的数据的单元。尽管是按照块和页面来描述快闪存储器设备130的,但是也可以使用其它术语来指代快闪存储设备中的这些数据单元。

本主题技术不限于任何特定容量的快闪存储器。例如,存储块可以各自包括32、64、128或512页,或者任何其它数量的页面。此外,页面可以各自包括例如512字节、2kb、4kb或32kb。扇区可以各自包括例如512字节、4kb或其它尺寸。每页可能有一个或多个扇区。

在图1中,存储器125代表在快闪存储系统110的操作期间耦合到控制器120并由控制器120使用的易失性存储器。控制器120可以将命令和/或数据缓冲在存储器125中。控制器120还可以使用存储器125来存储用于将由主机150使用的逻辑地址转换成与快闪存储器设备130的块和页面相对应的虚拟和/或物理地址的地址映射表或查找表。用于管理快闪存储器设备130的其它类型的表格、数据、状态指示符等也可以由控制器120存储在存储器125中。例如,llr表可以被存储在存储器125中。在不脱离本主题技术的范围的情况下,可以使用动态随机存取存储器(dynamicrandomaccessmemory,dram)、静态随机存取存储器(staticrandomaccessmemory,sram)或其它类型的易失性随机存取存储器来实现存储器125。控制器120可以周期性地将存储器125的内容存储到一个或多个指定的快闪存储器块140中,诸如在快闪存储系统110断电之前。

控制器120管理主机150和快闪存储器设备130之间的数据流。控制器120被配置为经由接口115从主机150接收命令和数据。例如,控制器120可以从主机150接收数据和写入命令以将数据写入快闪存储器设备130中。控制器120还被配置为经由接口115发送数据到主机150。例如,控制器120可以响应于读取命令从快闪存储器设备130读取数据并将数据发送到主机150。控制器120还被配置为基于可以从主机150接收到的内部控制算法或其它类型的命令来管理存储在快闪存储器设备130和存储器125中的数据。例如,控制器120被配置为执行诸如垃圾收集(garbagecollection,gc)、错误校正和损耗均衡的操作。本领域技术人员将会熟悉由快闪存储设备中的控制器所执行的其它操作,在本文中将不再具体描述。

可以利用通用处理器、微控制器、数字信号处理器(digitalsignalprocessor,dsp)、片上系统(system-on-a-chip,soc)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(fieldprogrammablegatearray,fpga)或其它可编程逻辑器件、分立门或晶体管逻辑器件、分立硬件组件、或被设计和配置为执行本文描述的操作和功能的它们的任何组合来实现控制器120。控制器120可以通过运行存储在机器/计算机可读介质上的一个或多个指令序列来执行本文描述的操作和功能。机器/计算机可读介质可以是快闪存储器设备130、存储器125或控制器120能够从其读取指令或代码的其它类型的介质。例如,快闪存储系统110可以包括诸如eprom或eeprom的编码有固件/软件的只读存储器(read-onlymemory,rom),该固件/软件包括在快闪存储系统110的操作期间由控制器120读取和运行的一个或多个指令序列。

可以利用通用处理器、微控制器、数字信号处理器(dsp)、片上系统(soc)、专用集成电路(asic)、现场可编程门阵列(fpga)或其它可编程逻辑器件、分立门或晶体管逻辑器件、分立硬件组件、或被设计和配置为执行本文描述的操作和功能的它们的任何组合来实现解码器160。解码器160可以与控制器120集成或分离。解码器160可以被配置为使用ldpc。解码器160可以被配置为使用额外的或替换的解码方案。解码器160包括一个或多个硬解码器162和一个或多个软解码器164。硬解码器162可以是保留用于硬解码的解码器。硬解码将读取的比特值限制为“1”或“0”。另一方面,软解码使用例如从llr表中抽取的一系列值,以提供读取值正确的可靠性或置信度度量。llr表允许基于读取结果来查找置信度值。软解码器164可以是保留用于软解码的解码器。在某些实施方式中,硬解码器162的数量和软解码器164的数量可以从可用解码器池中动态地保留。

图2示出了读取操作和错误校正例程的图200。如果需要,读取操作201之后是第一错误校正阶段202,随后是第二错误校正阶段203。

读取操作201从例如来自主机150或控制器120的对数据的请求开始。控制器120将读取命令211发送到存储所请求的数据的适当的快闪存储器设备130。快闪存储器设备130例如在缓冲区中提供原始数据,对于硬解码操作212,解码器160解码该数据。更具体地,对于硬解码操作212,硬解码器162可以解码该数据。解码器160在完成硬解码操作212之后向控制器120返回指示213。如果指示213指示成功解码,则控制器120响应于对数据的请求将解码的数据返回到主机150。然而,如果指示213指示失败,则控制器120调用错误校正例程。

控制器通过将读取命令221发送到快闪存储器设备130来开始第一错误校正阶段202。读取命令221指示快闪存储器设备130使用第一阶段电压组来读取,该第一阶段电压组是与例如用于读取命令211的默认电压组不同的电压组。第一阶段电压组可以包括默认电压组中的一些或全部,和/或可以包括不在默认电压组中的电压。第一阶段电压组的电压可以对应于基本读取电平电压和来自基本读取电平电压的一个或多个偏移电压。读取命令221可以包括多个读取操作,每个读取操作使用来自第一阶段电压组的电压中的一个。第一阶段电压组可以被存储在例如存储器125或寄存器135中。控制器120可以例如通过在发出每个读取操作之前在寄存器135中设置值来对快闪存储器设备130进行编程,以针对读取命令221的每个读取操作以相应的电压读取。

快闪存储器设备130提供使用第一阶段电压组读取的第一原始数据,解码器160可以选择性地对于硬解码操作222解码该数据。控制器120接收第一原始数据可用的指示223。在第一原始数据被硬解码的实施方式中,解码器160向控制器120返回指示223。如果指示223指示成功解码,则控制器120提供解码的数据。否则,如果指示223指示失败,则控制器120继续错误校正例程。

对于每个错误校正阶段,如果硬解码失败,则控制器120可以发出一个或多个软解码请求。例如,可以发出三个软解码请求,虽然在其它实施方式中,可以发出更多或更少的软解码请求。软解码请求可以进一步包括额外的参数,诸如llr表,其可以在软解码请求当中不同。

控制器120发起第一原始数据的软解码。控制器120向解码器160发送软解码请求224。软解码请求224可以是与响应于读取命令221而读取的第一原始数据一起发送的软ldpc请求。软解码请求224包括可从用于第一错误校正阶段202的第一llr表中获得的软信息。

在ldpc编码方案中,例如,llr可以包括比特为“0”或“1”的概率之间的比率的对数。正llr通常可以指示从快闪存储器单元读取的信号可能是0比特,并且负llr通常可以指示从存储器单元读取的信号可能是1比特。每个分配的llr可以对应于比特值。在一个示例中,具有等于5的分配的llr的比特值可能比具有等于1的分配的llr的比特更可能是0。具有等于零的分配的llr的比特可能是1或可能是0的概率相同。

解码器160可以使用llr表来解码第一原始数据。第一原始数据可以包括一组或多组比特值,每组已经使用一组电压中的一个电压被读取。对于每个比特,跨越比特值组的相应比特对应于llr表中的相应置信度值。对于更多数量的比特值组,llr表可能更大以说明更多的置信度值。llr表提供解码器160可用于软解码的软信息。解码器160在完成软解码之后向控制器120返回指示225。如果指示225指示成功,则控制器120将解码的数据提供给请求者,诸如主机150。否则,如果指示225指示失败,则控制器120继续错误校正例程。

控制器120向解码器160发出软解码请求226。软解码请求226可以是与第一原始数据一起发送的软ldpc请求。软解码请求226可以进一步包括第二组置信度值,诸如用于第一错误校正阶段202的第二llr表。第二llr表可以包括具有与第一llr表的置信度值不同的置信度值的置信度值。不同的置信度值可以基于用于计算置信度值的不同算法。

解码器160在完成软解码之后向控制器120返回指示227。如果指示227指示成功,则控制器120将解码的数据提供给请求者,诸如主机150。否则,如果指示227指示失败,则控制器120继续错误校正例程。

控制器120向解码器160发出软解码请求228。软解码请求228可以是与第一原始数据一起发送的软ldpc请求。软解码请求228可以进一步包括第三置信度值组,诸如用于第一错误校正阶段202的第三llr表。

解码器160在完成软解码之后向控制器120返回指示229。如果指示229指示成功,则控制器120将解码的数据提供给请求者,诸如主机150。否则,如果指示229指示失败,则控制器120继续错误校正例程。

错误校正例程可以包括一个或多个阶段。例如,这里描述了两个阶段,但是错误校正例程可以包括更多阶段,例如八个阶段或十个阶段。每个阶段都从使用与该阶段对应的电压组的读取命令开始。例如,电压组可以包括其它电压组的一个或多个子集,和/或可以包括不在其它电压组中的电压。可以基于快闪存储器设备130的性能特性(诸如编程/擦除周期,错误计数等)来确定电压组,并且电压组可以存储在例如存储器125中。在快闪存储器设备130执行读取操作之前,用于当前读取命令的电压组可以被编程到寄存器135中。

每个阶段包括软解码请求。对于给定阶段的软解码请求可以包括从当前阶段读取的原始数据以及从先前阶段读取的原始数据。例如,可以将每个阶段读取的原始数据存储在存储器125的缓冲区中,直到错误校正例程结束。对于每个连续的阶段,软解码请求可以引用保存当前阶段以及先前阶段读取的原始数据的缓冲区。通过使用更多的原始数据缓冲区,相关联的电压范围的间隔尺寸(granularity)增加。使用先前阶段的原始数据缓冲区可以避免使用先前使用的电压重新读取数据的需要。例如,如果先前阶段使用1.0v读取数据,并且当前阶段需要以1.0v和1.1v读取数据,则可以使用先前以1.0v读取的数据,而不用使用1.0v重新读取数据。与增加的用于读取数据的电压数量相对应的增加的电压范围的间隔尺寸,可能需要更大的llr表,其保存对于电压范围的额外置信度值。虽然可以执行更多或更少的软解码,每个阶段可以执行有限数量的软解码,诸如三个,并且可以对应于每个阶段可用的llr表的数量。每个阶段的每个软解码请求使用基于不同llr表的软信息。因此,对于每个阶段可能存在例如三个不同的llr表。

在第一错误校正阶段202的所有软解码请求(例如三个软解码请求)完成之后,控制器继续到第二错误校正阶段203。

控制器通过将读取命令231发送到快闪存储器设备130来开始第二错误校正阶段203。读取命令231指示快闪存储器设备130使用第二阶段电压组来读取,该第二阶段电压组是与默认电压组不同且与第一阶段电压组不同的电压组。第二阶段电压组可以被存储在例如存储器125或寄存器135中,并且对应于第二错误校正阶段203。快闪存储器设备130返回使用第二阶段电压组读取的第二原始数据,解码器160可以对于硬解码操作232解码该数据。控制器120接收第二原始数据可用的指示233。在第二原始数据被解码的实施方式中,解码器160向控制器120返回指示233。如果指示233指示成功解码,则控制器120提供解码的数据。否则,如果指示233指示失败,则控制器120继续错误校正例程。

控制器120发起第二原始数据的软解码。控制器120向解码器160发送软解码请求234。软解码请求234可以是与第一原始数据和第二原始数据一起发送的软ldpc请求。软解码请求234可以进一步包括一组置信度值,诸如用于第二错误校正阶段203的第一llr表。

用于第二错误校正阶段203的llr表可以各自是具有说明第一原始数据和第二原始数据的置信度值的矩阵。解码器160在完成软解码之后向控制器120返回指示235。如果指示235指示成功,则控制器120将解码的数据提供给请求者,诸如主机150。否则,如果指示235指示失败,则控制器120继续错误校正例程。

控制器120向解码器160发出软解码请求236。软解码请求236可以是与第一原始数据和第二原始数据一起发送的软ldpc请求。软解码请求236可以进一步包括第二置信度值组,诸如用于第二错误校正阶段203的第二llr表。

解码器160在完成软解码之后向控制器120返回指示237。如果指示237指示成功,则控制器120将解码的数据返回给主机150。否则,如果指示237指示失败,则控制器120继续错误校正例程。

控制器120向解码器160发出软解码请求238。软解码请求238可以是与第一原始数据和第二原始数据一起发送的软ldpc请求。软解码请求238可以进一步包括第三置信度值组,诸如用于第二错误校正阶段203的第三llr表。

解码器160在完成软解码之后向控制器120返回指示239。如果指示239指示成功,则控制器120将解码的数据返回给主机150。否则,如果指示239指示失败,则控制器120继续错误校正例程。

控制器120可以继续额外的错误校正阶段直到解码成功,或者直到所有的错误校正阶段已经被执行。当所有错误校正阶段已经被执行时,控制器120可以指示读取失败。

图3a示出与图2中所示的错误校正例程相对应的时序图。控制器120发出用于第一错误校正阶段的读取命令321。在读取命令321完成(以及硬解码失败)之后,控制器发出软解码请求324。如果软解码失败,则控制器发出软解码请求326。如果软解码失败,则控制器发出软解码请求328。如果软解码失败,则控制器开始第二错误校正阶段并发出读取命令331。在读取命令331完成(以及硬解码失败)之后,控制器发出软解码请求334。如果软解码失败,则控制器发出软解码请求336。如果软解码失败,则控制器发出软解码请求338。如图3a中所示,在先前的请求失败之后,每个请求被顺序地发出。

虽然图3a没有按比例绘制,但每条线的长度大致对应于时间长度。换句话说,从快闪存储器设备的读取操作大致比软解码操作花费更多的时间。例如,完成从快闪存储器设备的读取操作可以比完成三个软解码操作花费更多的时间。

图3b示出根据本主题技术的方面的与错误校正例程相对应的时序图。在读取命令321完成(并且指示失败)之后,控制器120发出读取命令331。在控制器120发出读取命令321之后,并且在读取命令321正在被处理的同时,控制器120发出软解码请求324。在某些实施方式中,控制器120可以替换性地在读取命令321完成之后发出软解码请求324,并且之后发出读取命令331。换句话说,读取命令331和软解码请求324被并行处理而不管发出的顺序如何。当软解码请求324失败时,控制器120发出软解码请求326。当软解码请求326失败时,控制器120发出软解码请求328。当前阶段的软解码请求被发出并且可以在用于下一阶段的读取命令完成之前完成。换句话说,用于下一错误校正阶段的读取操作可以与当前错误校正阶段的软解码操作并行和同时地被处理。因此,完成当前阶段的软解码和读取用于下一阶段的原始数据之间的等待减少。如果读取命令331返回失败,则控制器120可以发出下一读取请求,即使用与先前的读取命令中使用的电压组不同的电压组的读取命令341。

下面参考图4进一步讨论图3b的错误校正例程。图4示出了错误校正例程的流程图400。主机150从快闪存储器设备130中的一个请求数据。可替换地,控制器120可以请求数据以用于诸如垃圾收集的维护操作。控制器120向快闪存储器设备130发出初始读取命令,快闪存储器设备130可以基于与所请求的数据相关联的地址来选择。图4的过程以初始读取命令返回失败(例如解码器160指示硬解码的失败)之后的第一错误校正阶段开始。

控制器120向快闪存储器设备130发出使用第一电压组的第一读取命令。第一电压组对应于第一错误校正阶段,并且不同于初始读取命令中使用的电压组。解码器160响应于第一读取命令解码来自快闪存储器设备130的第一原始数据。该解码可以是由硬解码器162解码的硬解码。硬解码器162可以从存储器125中的缓冲区访问第一原始数据。

在410处,控制器120从解码器160接收解码第一原始数据失败的硬解码失败指示。在420处,响应于硬解码失败指示,控制器120向快闪存储器设备130发出使用第二电压组的对于数据的第二读取命令。在发出用于第一错误校正阶段的软解码之前,控制器120可以在用于第一错误校正阶段的读取失败之后立即发出用于第二错误校正阶段的读取。这允许在用于第一错误校正阶段过程的软解码的同时处理用于第二错误校正阶段的读取,因为完成从快闪存储器的读取的时间大于完成一个或多个软解码的时间。

在430处,控制器120在第二读取命令完成之前向解码器160发出至少一个使用第一原始数据的软解码请求。软解码器164可以接收并处理至少一个软解码请求。在第二读取操作期间,控制器120可以最终发出多于一个软解码请求,例如用于当前错误校正阶段的所有软解码请求。如上所述,软解码请求可以各自包括一组置信度值,例如llr表。

在440处,控制器120从解码器160接收成功解码的成功指示。成功指示可以来自例如响应于在430处发出的至少一个软解码请求的成功的软解码,或者可以来自例如响应于与在420处发出的第二读取命令相关联的硬解码的成功的硬解码。一旦所请求的数据被成功解码,控制器120将使解码的数据可用于请求者,例如主机150或控制器120,而不管错误校正例程的哪个请求导致成功。

然而,在某些情况下,数据可能被成功解码多次。例如,当前错误校正阶段的软解码之一可以成功地返回。因为用于下一错误校正阶段的读取操作被并行处理,所以用于下一错误校正阶段的读取操作也可能在完成时返回成功,导致两个成功解码的数据组,其可能是相同的结果数据。

响应于成功指示,控制器120确定所请求的数据是否被成功地提供。例如,控制器120可以维持可以存储在存储器125或寄存器135中的状态机。该状态机可以跟踪对快闪存储器设备130的读取请求的状态。状态机可以具有针对每个读取请求的成功标志,以指示该数据是先前被提供的。当所请求的数据先前未被提供给请求者时,控制器120将解码的数据提供给请求者。例如,状态机可以指示成功标志未被设置,因此所请求的数据先前未被提供。在提供解码的数据时,控制器120例如通过设置相应的成功标志来更新状态机。如果控制器120接收到成功解码的另一成功指示,则控制器120将看到成功标志已被设置,并将丢弃解码的数据。

例如当用于当前错误校正阶段的软解码之一在用于下一错误校正阶段的读取操作期间返回成功时,这里描述的错误校正例程可能导致额外的读取操作。然而,减少的开销的益处可以超过额外读取操作的缺点,特别是在快闪存储系统110的生命周期结束附近,其中高误码率需要调用错误校正例程。

本领域技术人员将理解,可以将这里描述的各种例示性块、模块、元件、组件、方法和算法实现为电子硬件、计算机软件或两者的组合。为了示出硬件和软件的这种可互换性,上面已经根据其功能一般地描述了各种说明性块、模块、元件、组件、方法和算法。这样的功能是实现为硬件还是软件取决于施加在整个系统上的特定应用和设计约束。熟练的技术人员可以针对每个特定的应用以不同的方式实现所描述的功能。在所有不偏离本主题技术的范围的情况下,各种组件和块可以被不同地布置(例如,以不同的顺序被布置,或者以不同的方式被分区)。

要理解,所公开的过程中的步骤的特定顺序或层次是示例性方法的例示。基于设计偏好,要理解,可以重新布置过程中步骤的特定顺序或层次。一些步骤可以被同时执行。所附方法权利要求以示例顺序给出了各种步骤的元素,并不意味着限于所给出的特定顺序或层次。

提供之前的描述是为了使得本领域的任何技术人员能够实践在此描述的各个方面。先前的描述提供了本主题技术的各种示例,并且本主题技术不限于这些示例。这些方面的各种修改对于本领域技术人员来说将是显而易见的,并且这里定义的一般原理可以应用于其它方面。因此,权利要求不意图限于这里所示的方面,而是要符合与语言权利要求一致的全部范围,除非具体地如此陈述,其中引用单数形式的元件并不意图意味着“一个且仅一个”,而是意味着“一个或多个”。除非具体地陈述,否则术语“一些”是指一个或多个。男性代词(例如他的)包括女性和中性(例如她和它的),反之亦然。标题和副标题(如果有的话)仅用于方便,并不限制本发明。

诸如“方面”的短语并不暗示这样的方面对于本主题技术是必不可少的或者这样的方面应用于本主题技术的所有配置。涉及一个方面的公开可以应用于所有配置或者一个或多个配置。一个方面可以提供一个或多个示例。诸如方面的短语可以是指一个或多个方面,反之亦然。诸如“实施例”的短语并不暗示这样的实施例对于本主题技术是必不可少的或者这样的实施例应用于本主题技术的所有配置。涉及一个实施例的公开可以应用于所有实施例或者一个或多个实施例。一个实施例可以提供一个或多个示例。诸如“实施例”的短语可以是指一个或多个实施例,反之亦然。诸如“配置”的短语并不暗示这样的配置对于本主题技术是必不可少的或者这样的配置应用于本主题技术的所有配置。涉及一个配置的公开可以应用于所有配置或者一个或多个配置。一个配置可以提供一个或多个示例。诸如“配置”的短语可以是指一个或多个配置,反之亦然。

词语“示例性”在这里被使用意味着“用作示例或例示”。这里描述为“示例性”的任何方面或设计不一定被解释为比其它方面或设计优选或有利。

本领域普通技术人员已知的或以后将会知道的贯穿本公开所描述的各个方面的元素的所有结构和功能的等同物明确地通过引用并入本文,并且意图由权利要求涵盖。而且,在这里公开的任何内容都不意图专用于公众,不管这些公开是否在权利要求中明确记载。任何权利要求元素不得根据35u.s.c.§112第六段的规定解释,除非使用短语“用于...的装置”明确地记载该元素,或者在方法权利要求的情况下,使用短语“用于...的步骤”记载该元素。另外,就在说明书或权利要求中使用术语“包括”、“具有”等而言,当被用作权利要求中的过渡词时,这样的术语意图以与术语“包含”类似的方式作为包含性的,如“包含”被解释的那样。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1