【发明授权】软解码调度_西部数据技术公司_201711400066.X 

申请/专利权人:西部数据技术公司

申请日:2017-12-22

发明/设计人:陈娘助;陶俊

公开(公告)日:2021-02-19

代理机构:北京市柳沈律师事务所

公开(公告)号:CN108399109B

代理人:王珊珊

主分类号:G06F11/10(20060101)

地址:美国加利福尼亚州

分类号:G06F11/10(20060101);G11C29/04(20060101);G11C29/42(20060101)

优先权:["20170207 US 15/426,951"]

专利状态码:有效-授权

法律状态:2021.02.19#授权;2018.09.07#实质审查的生效;2018.08.14#公开

摘要:本主题技术在低密度奇偶校验解码操作中提供减少的开销。一种方法包括:从解码器接收硬解码失败指示,该解码器对响应于第一读取命令而使用第一电压集合从非易失性存储器读取的第一原始数据解码失败。该方法包括确定解码器的多个软解码器的可用软解码器的计数。该方法包括基于可用软解码器的计数和软解码请求的待定数量来确定要发出的软解码请求的数量。该方法包括向可用软解码器中的各个可用软解码器发出所确定数量的软解码请求,用于并行地软解码第一原始数据。该方法包括从解码器接收成功解码的成功指示。

主权项:1.一种用于管理数据解码的方法,包括:响应于由解码器接收第一硬解码失败指示,确定解码器的多个软解码器的可用软解码器的计数,其中当解码器的硬解码器对响应于第一读取命令而从非易失性存储器读取的第一原始数据硬解码失败时,所述硬解码器生成第一硬解码失败指示;基于所述可用软解码器的计数和软解码请求的待定数量来确定要发出的软解码请求的数量;向所述可用软解码器中的各个可用软解码器发出用于并行地软解码所述第一原始数据的、所确定的数量的软解码请求;以及从所述解码器接收由所述可用软解码器中的各个可用软解码器成功解码所述第一原始数据的成功指示。

全文数据:软解码调度技术领域[0001]本主题技术一般涉及利用纠错编码errorcorrectioncoding,ECC的数据存储解决方案。背景技术[0002]数据储存器系统例如,固态驱动器solidstatedrive,SSD、硬盘驱动器等可以使用低密度奇偶校验LowDensityParityCheck,LDPC来校正在存储和读取或发送和接收信息时发生的错误。例如,对于SSD的正常读取操作,从闪速存储器设备flashmemorydevice读取的原始数据在SSD控制器将该数据返回到主机之前经过解码。如果解码失败,则控制器调用纠错子例程。纠错子例程涉及使用不同电压从闪速存储器设备读取,并尝试不同的对数似然比LogLikelihoodRatio,LLR表用于LDPC解码。发明内容[0003]本主题技术通过调度要并行执行的软解码请求来减少闪速储存器系统(flashstoragesystem中的纠错子例程期间的开销时间。[0004]根据本主题技术的各方面,提供了一种用于管理数据解码的方法。该方法包括确定对解码器的多个软解码器的可用软解码器计数。该方法包括基于对可用软解码器的计数和软解码请求的待定数量来确定要发出的软解码请求的数量。该方法包括向可用软解码器中的各个可用软解码器发出确定数量的软解码请求,用于并行地软解码第一原始数据。该方法包括从解码器接收成功解码的成功指示。[0005]根据本主题技术的其他方面,提供了一种闪速储存器系统。该闪速储存器系统包括用于从解码器接收硬解码失败指示的装置,该解码器对响应于第一读取命令,使用第一电压集合从非易失性存储器读取的第一原始数据解码失败。第一读取命令包括第一读取操作集合。闪速储存器系统包括用于确定对解码器的多个软解码器的可用软解码器计数的装置。该闪速储存器系统包括用于基于可用软解码器的计数和软解码请求的待定数量来确定要发出的软解码请求的数量的装置。闪速储存器系统包括用于向可用软解码器中的各个可用软解码器发出确定数量的软解码请求,用于并行地软解码第一原始数据的装置。闪速储存器系统包括用于从解码器接收成功解码的成功指示的装置。[0006]根据本主题技术的其他方面,提供了一种闪速储存器系统。该闪速储存器系统包括多个闪速存储器设备、解码器和控制器。控制器被配置为从解码器接收硬解码失败指示,该解码器对响应于第一读取命令而使用第一电压集合从非易失性存储器读取的第一原始数据解码失败。第一读取命令包括第一读取操作集合。控制器被配置为确定解码器的多个软解码器的可用软解码器的计数。控制器被配置为基于可用软解码器的计数和软解码请求的待定数量来确定要发出的软解码请求的数量。控制器被配置为向可用软解码器中的各个可用软解码器发出确定数量的软解码请求,用于并行地软解码第一原始数据。控制器被配置为从解码器接收成功解码的成功指示。[0007]应该理解,根据下面的详细描述,本主题技术的其他配置对于本领域技术人员来说将变得显而易见,其中本主题技术的各种配置通过例示的方式来示出和描述。如将认识到的,本主题技术能够具有其他不同配置,并且其多个细节能够在各个其他方面进行修改,而均不脱离本主题技术的范围。因此,附图和详细描述在本质上被认为是示例性的而不是限制性的。附图说明[0008]将参考附图进行详细描述:[0009]图1是示出根据本主题技术的各方面的,闪速储存器系统的组件的框图。[0010]图2是示出根据本主题技术的各方面的,闪速储存器系统的纠错例程的读取和解码操作的图。[0011]图3A是示出图2中的图的读取和解码操作时序的图。[0012]图3B是示出根据本主题技术的各方面的,读取和解码操作时序的图。[0013]图4是示出根据本主题技术的各方面的,用于减少闪速储存器系统的纠错例程中的开销的方法的流程图。具体实施方式[0014]以下阐述的详细描述意图作为本主题技术的各种配置的描述,而不意图表示可实践本主题技术的唯一配置。附图在此并入详细描述并构成详细描述的一部分。该详细描述包括用于提供对主题技术的深入理解的具体细节。然而,对于本领域技术人员显而易见的是,可以在没有这些具体细节的情况下实践本主题技术。在一些实例中,以框图形式示出熟知的结构和组件,以避免模糊本主题技术的概念。为便于理解,相似的组件标有相同的元件标号。[0015]通常地,数据在被写入非易失性存储器诸如闪速存储器设备)时被编码,并且解码器解码从闪速存储器设备读取的原始数据以读取该数据。例如,如果主机在读取命令中请求数据,或者控制器请求数据作为维护操作的一部分,则控制器向闪速存储器发送读取请求。闪速存储器读取与所请求的数据相对应的原始数据,并且解码器解码原始数据。控制器将经解码的原始数据返回到主机。然而,如果解码失败,则控制器调用纠错例程。如下面将更详细描述的,纠错例程涉及从闪速存储器设备读取原始数据并且解码所读取的原始数据的阶段,每个后续阶段使用不同的电压来读取。[0016]根据本主题技术的各方面,可以减少完成纠错例程的时间。给定阶段的读取命令可以包括一组读取操作,每个读取操作使用不同的电压。闪速存储器设备可以针对每个不同的电压重新编程,或者闪速存储器设备可以有能力通过不同的电压来循环。在纠错例程的当前阶段的读取命令完成之后,发出对所读取的原始数据的软解码请求。可以实施为由控制器执行的逻辑的调度器可以并行地发出软解码请求以优化对可用软解码器的使用。因此,可以减少完成当前阶段的软解码的时间。[0017]图1是示出根据本主题技术的各方面的闪速储存器系统110的组件的框图。如图1所描绘,闪速储存器系统110包括接口115、控制器120、存储器125、解码器160、编码器166和闪速存储器设备130。接口115促进闪速储存器系统110和主机150之间的数据、命令和或控制信号的通信。控制器120控制对闪速储存器系统110的操作,以根据从主机150接收到的命令在闪速存储器设备130中存储和检索数据。控制器120可以包括处理器。存储器125其可以是随机存取存储器randomaccessmemory,RAM为控制器120提供临时存储空间以处理命令并在主机150和闪速存储器设备130之间传输数据。解码器160可以包括存储器、寄存器、逻辑门、一个或多个处理器,并且可以与控制器120集成或分离,解码原始数据。可以包括存储器、寄存器、逻辑门、一个或多个处理器,并且可以与控制器120集成或分离的编码器166对要写入闪速存储器设备130的数据进行编码。下面更详细地描述这些组件中的每一个的操作。[0018]接口115提供主机150和闪速储存器系统110之间的物理和电气连接。接口115被配置为经由物理和电气连接促进主机150和闪速储存器系统110之间的数据、命令和或控制信号的通信。与接口115的连接和通信可以基于诸如通用串行总线(UniversalSerialBus,USI3、小型计算机系统接口(SmallComputerSystemInterface,SCSI、串行高级技术附件(SerialAdvancedTechnologyAttachment,SATA等标准接口。可替换地,连接和或通信可以基于专有接口,但是主题技术不限于任何特定类型的接口。[0019]主机150可以是计算设备,诸如计算机服务器、智能电话、或从闪速储存器系统110读取数据和向闪速储存器系统110写入数据的任何其他电子设备。主机150可以具有操作系统或向闪速储存器系统110发出读取和写入命令的其他软件。闪速储存器系统110可以与主机150集成,或者可以在主机150的外部。闪速储存器系统110可以无线地连接到主机150,或者可以物理地连接到主机150。[0020]图1示出了多个闪速存储器设备130。闪速储存器系统110可以包括一个或多个闪速存储器设备130,并且不限于特定数量的闪速存储器设备130。闪速存储器设备130可以各自包括单一闪速存储器芯片或裸芯。闪速存储器设备130可以组织在多个通道当中或者耦合到单一通道,其中控制器120通过该通道从闪速存储器设备130读取数据和将数据写入闪速存储器设备130。闪速存储器设备130可以使用NAND闪速存储器来实施。闪速存储器设备130可以各自包括用于存储各个闪速存储器设备130的操作参数的一个或多个寄存器135。操作参数可以包括:读取操作参数诸如读取电压);写入操作参数诸如初始脉冲值、增量脉冲值、以及脉冲宽度);以及擦除操作参数诸如初始脉冲值、增量脉冲值、以及脉冲宽度。[0021]闪速存储器设备130包括分布到诸如闪速存储器块140的存储块中的多个存储器单元。闪速存储器设备130可以具有一个或多个闪速存储器块140,并且闪速存储器设备130可以各自具有相同或不同数量的闪速存储器块140。闪速存储器块140可以被称为数据块或存储器块,并且可以由控制器120使用物理块地址来寻址。每个闪速存储器块140被进一步划分为多个数据段或页面,其中控制器120可使用物理页面地址或偏移从包含所引用页面的存储块的物理块地址来寻址该多个数据段或页面。页面可以存储扇区或其他主机数据单元。闪速存储器块140表示在单一擦除操作中在闪速存储器设备130内被擦除的数据的单元。页面表示在读取或写入操作中从闪速存储器设备130读取的数据的单元或写入闪速存储器设备130的数据的单元。虽然闪速存储器设备130是按照块和页面来描述的,但是也可以使用其他术语来指代闪速存储器设备中的这些数据单元。[0022]本主题技术不限于任何特定容量的闪速存储器。例如,存储块可以各自包括32、64、128或512个页面,或者任何其他数量的页面。另外,例如,页面可以各自包括512字节、2KB、4KB或32KB。扇区可以各自包括例如512字节、4KB或其它大小。每页可能有一个或多个扇区。[0023]在图1中,存储器125表示在闪速储存器系统110的操作期间耦合到控制器120并被控制器120使用的易失性存储器。控制器120可以缓冲存储器1¾中的命令和或数据。控制器120还可以使用存储器125存储用于将主机150使用的逻辑地址转换成与闪速存储器设备130的块和页面相对应的虚拟和或物理地址的地址映射表或查找表。控制器120还可以将用来管理闪速存储器设备130的其他类型的表、数据、状态指示符等存储在存储器125中。例如,可以将LLR表存储在存储器125中。存储器125可以使用动态随机存取存储器dynamicrandomaccessmemory,DRAM、静态随机存取存储器(staticrandomaccessmemory,SRAM或其他类型的易失性随机存取存储器来实施,而不脱离本主题技术的范围。控制器120可以将存储器125的内容周期性地存储到一个或多个指定的闪速存储器块140中,诸如在闪速储存器系统11〇断电之前。[0024]控制器120管理主机150和闪速存储器设备130之间的数据流。控制器120被配置为经由接口115从主机150接收命令和数据。例如,控制器120可以从主机150接收数据和写入命令,以将数据写入闪速存储器130中。控制器120还被配置为经由接口115向主机150发送数据。例如,控制器120可以响应于读取命令从闪速存储器设备130读取数据并且将数据发送到主机150。控制器120还被配置为基于内部控制算法或可以从主机150接收的其他类型的命令来管理存储在闪速存储器设备130和存储器125中的数据。例如,控制器120被配置为执行诸如垃圾收集garbagecollection,GC、纠错和磨损均衡wearleveling的操作。本领域技术人员将会熟悉闪速存储器设备中的、由控制器执行的其他操作,本文将不再详细描述。[0025]控制器120可以用通用处理器、微控制器、数字信号处理器(digitalsignalprocessor,DSP、片上系统(system-〇n-a_chip,SoC、专用集成电路(applicationspecificintegratedcircuit,ASIC、现场可编程门阵列(fieldprogrammablegatearray,FPGA或其他可编程逻辑器件、离散门或者晶体管逻辑器件、离散硬件组件、或者被设计和配置为执行本文描述的操作和功能的它们的任何组合来实施。控制器120可以通过运行存储在机器计算机可读介质上的指令的一个或多个序列来执行本文描述的操作和功能。机器计算机可读介质可以是闪速存储器设备130、存储器125、或控制器120可以从其读取指令或代码的其他类型的介质。例如,闪速储存器系统110可以包括用固件软件编码的只读存储器readonlymemory,R0M诸如EPR0M或EEPR0M,该固件软件包括在闪速储存器系统110的操作期间由控制器12〇读取和运行的指令的一个或多个序列。[0026]解码器160可以用通用处理器、微控制器、数字信号处理器(digitalsignalprocessor,DSP、片上系统(system-on-a-chip,SoC、专用集成电路(applicationspecificintegratedcircuit,ASIC、现场可编程门阵列(fieldprogrammablegatearray,FPGA或其他可编程逻辑器件、分立门或晶体管逻辑器件、分立硬件组件、或被设计和配置为执行本文描述的操作和功能的它们的任何组合。解码器160可以与控制器120集成、或者可以是分离的。解码器16〇可以被配置为使用LDPC。解码器160可以被配置为使用另外的或替代的解码方案。解码器16〇包括一个或多个硬解码器162和一个或多个软解码器1M。硬解码器I62可以是保留用于硬解码的解码器。硬解码将读取比特值限制为“i”或“〇”。另一方面,软解码使用从LLR表中取得的值的范围,例如,以提供读取值正确的可靠性或置信度度量。LLR表允许基于读取结果来查找置信度值。软解码器164可以是保留用于软解码的解码器。在某些实施方式中,硬解码器162的数量和软解码器164的数量可以从可用解码器的池中动态保留。[0027]图2示出了读取操作和纠错例程的图2〇0。如果需要,读取操作201之后是第一纠错阶段202,随后是第二纠错阶段203。[0028]读取操作201从对数据(例如来自主机150或控制器120的数据)的请求开始。控制器120将读取命令211发送到存储所请求的数据的适当的闪速存储器设备130。闪速存储器设备13〇提供原始数据例如在缓冲器中的原始数据),解码器160将该原始数据解码用于硬解码操作212。更具体地,硬解码器I62可以解码该数据用于硬解码操作212。在完成硬解码操作212之后,解码器160将指示213返回到控制器120。如果指示213指示成功解码,则控制器120响应于对数据的请求将解码的数据返回到主机150。然而,如果指示213指示失败,则控制器120调用纠错例程。[0029]控制器通过向闪速存储器设备130发送读取命令221来开始第一纠错阶段202。读取命令221指示闪速存储器设备130使用第一阶段电压集合来读取,该第一阶段电压集合是与例如用于读取命令211的默认的电压集合不同的电压集合。第一阶段电压集合可以包括默认电压集合的子集,和或可以包括不在默认电压集合中的电压。第一阶段电压集合的电压可以对应于基本读取电平电压和来自基本读取电平电压的一个或多个偏移电压。读取命令221可以包括多个读取操作,每个读取操作使用来自第一阶段电压集合的电压中的一个。可以将第一阶段电压集合存储在例如存储器125或寄存器135中。控制器120可以对闪速存储器设备130编程例如通过在发出每个读取操作之前在寄存器135中设定值)以读取命令221的每个读取操作的各个电压。[0030]闪速存储器设备130提供使用第一阶段电压集合所读取的第一原始数据,解码器160可选择性解码该第一原始数据用于硬解码操作222。控制器120接收第一原始数据可用的指示223。在第一原始数据被硬解码的实施方式中,解码器160将指示223返回到控制器120。如果指示223指示成功解码,则控制器120提供经解码的数据。否则,如果指示223指示失败,则控制器120继续纠错例程。[0031]对于每个纠错阶段,如果硬解码失败,则控制器12〇可以发出一个或多个软解码请求。例如,可以发出三个软解码请求,但是在其它实施方式中,可以发出更多或更少的软解码请求。软解码请求还可以包括附加参数,例如LLR表,其可以在软解码请求当中不同。[0032]控制器120启动对第一原始数据的软解码。控制器丨2〇向解码器160发送软解码请求224。软解码请求224可以是与响应于读取命令221而读取的第一原始数据一起发送的软LDPC请求。软解码请求224包括可以从用于第一纠错阶段202的第一LLR表中获得的软信息。[0033]在LDPC编码方案中,例如,LLR可以包括比特为“〇”的概率或比特为“1”的概率之间的比率的对数。正LLR通常可以指示从闪速存储器单元读取的信号可能是〇比特,以及负LLR通常可以指示从闪速存储器单元读取的信号可能是1比特。每个分配的LLR可以对应于一个比特值。在一个示例中,具有等于五的分配的LLR的比特值可能比具有等于1的分配的LLR的比特更可能是〇。具有等于零的分配的LLR的比特可能等于1或〇。[0034]解码器160可以使用LLR表来解码第一原始数据。第一原始数据可以包括一个或多个比特值集合,每个集合已经使用电压集合的电压中一个来读取。对于每个比特,跨越比特值集合的对应的比特对应于LLR表中的对应的置信度值。对于更大数量的比特值集合,LLR表可能更大以说明更多的置信度值。LLR表提供解码器16〇可以用于软解码的软信息。解码器160在完成软解码之后将指示225返回到控制器120。如果指示225指示成功,则控制器120将经解码的数据提供给请求者,诸如主机150。否则,如果指示225指示失败,则控制器120继续纠错例程。[0035]控制器120向解码器160发出软解码请求226。软解码请求226可以是与第一原始数据一起发送的软LDPC请求。软解码请求22e还可以包括第二置信度值集合,诸如用于第一纠错阶段202的第二LLR表。第二LLR表可以包括具有与第一LLR表的置信度值不同的置信度值的置信度值。不同的置信度值可以基于用于计算置信度值的不同算法。[0036]解码器160在完成软解码之后将指示227返回到控制器120。如果指示227指示成功,则控制器120将经解码的数据提供给请求者,诸如主机150。否则,如果指示227指示失败,则控制器120继续纠错例程。[0037]控制器12〇向解码器160发出软解码请求228。软解码请求228可以是与第一原始数据一起发送的软LDPC请求。软解码请求228还可以包括第三置信度值集合,诸如用于第一纠错阶段202的第三LLR表。[0038]解码器ie〇在完成软解码之后将指示229返回到控制器120。如果指示229指示成功,则控制器120将经解码的数据提供给请求者,诸如主机150。否则,如果指示229指示失败,则控制器120继续纠错例程。[0039]纠错例程可以包括一个或多个阶段。例如,本文描述了两个阶段,但是纠错例程可以包括更多阶段,例如,八个阶段或十个阶段。每个阶段都以使用与该阶段对应的电压集合的读取命令来开始。例如,电压集合可以包括其他电压集合的一个或多个子集,和或可以包括不在其他电压集合中的电压。电压集合可以基于闪速存储器设备130的性能特征诸如编程擦除周期、错误计数等来确定,并且可以被存储在例如存储器125中。在闪速存储器设备130执行读取操作之前,可以将用于当前读取命令的电压集合编程到寄存器135中。[0040]每个阶段包括软解码请求。给定阶段的软解码请求可以包括从当前阶段读取的原始数据以及从先前阶段读取的原始数据。例如,可以将在每个阶段读取的原始数据存储在存储器125的缓冲器中,直到纠错例程结束。对于每个连续的阶段,软解码请求可以引用持有在当前阶段以及在先阶段所读取的原始数据的缓冲器。通过使用更多原始数据缓冲器,相关联的电压范围的粒度增加。使用先前阶段的原始数据缓冲器可以避免需要使用先前使用过的电压重新读取数据。例如,如果先前阶段使用1.0V读取数据,而当前阶段需要在1.0V和1.IV读取数据,则可以使用先前在1.0V读取的数据,而不使用1.0V重新读取数据。对应于用来读取数据的电压的数量的增加,电压范围的粒度的增加可能需要更大的LLR表,该LLR表持有电压范围的附加置信度值。每个阶段可以执行有限数量的软解码,诸如三个,但是也可以执行更多或更少的软解码,并且可以对应于每个阶段可用的LLR表的数量。每个阶段的每个软解码请求使用基于不同LLR表的软信息。因此,每个阶段可能存在例如三个不同的LLR表。[0041]在完成第一纠错阶段202的所有软解码请求例如,三个软解码请求之后,控制器继续到第二纠错阶段203。[0042]控制器通过将读取命令231发送到闪速存储器设备130来开始第二纠错阶段203。读取命令231指示闪速存储器设备130使用第二阶段电压集合来读取,该第二阶段电压集合是与默认的电压集合不同的集合,并且不同于第一阶段电压集合。第二阶段电压集合可以被存储在例如存储器125或寄存器135中,并且对应于第二纠错阶段203。闪速存储器设备13〇返回使用第二阶段电压集合所读取的第二原始数据,其中解码器160可以解码该第二原始数据用于硬解码操作232。控制器120接收第二原始数据可用的指示233。在解码第二原始数据的实施方式中,解码器160将指示233返回到控制器120。如果指示233指示成功解码,则控制器12〇提供经解码的数据。否则,如果指示233指示失败,则控制器120继续纠错例程。[0043]控制器12〇启动对第二原始数据的软解码。控制器120向解码器160发送软解码请求234。软解码请求2M可以是与第一原始数据和第二原始数据一起发送的软LDPC请求。软解码请求234还可以包括置信度值集合,例如用于第二纠错阶段203的第一LLR表。[0044]用于第二纠错阶段2〇3的LLR表可以各自是具有用于说明第一原始数据和第二原始数据的置信度值的矩阵。解码器16〇在完成软解码之后将指示235返回到控制器120。如果指示235指示成功,则控制器U0将经解码的数据提供给请求者,诸如主机150。否则,如果指示235指示失败,则控制器120继续纠错例程。[0045]控制器1加向解码器16〇发出软解码请求236。软解码请求236可以是与第一原始数据和第二原始数据一起发送的软LDPC请求。软解码请求236还可以包括第二置信度值集合,诸如用于第二纠错阶段203的第二LLR表。[0046]解码器ie〇在完成软解码之后将指示237返回到控制器120。如果指示237指示成功,则控制器120将经解码的数据返回到主机150。否则,如果指示237指示失败,则控制器120继续纠错例程。[0047]控制器120向解码器160发出软解码请求238。软解码请求238可以是与第一原始数据和第二原始数据一起发送的软LDPC请求。软解码请求238还可以包括第三置信度值集合,诸如用于第二纠错阶段203的第三LLR表。[0048]解码器160在完成软解码之后将指示239返回到控制器120。如果指示239指示成功,则控制器120将经解码的数据返回到主机150。否则,如果指示239指示失败,则控制器120继续纠错例程。[0049]控制器120可以继续附加的纠错阶段直到解码成功或者直到所有的纠错阶段已经被执行。当所有纠错阶段已经被执行时,控制器120可以指示读取失败。[0050]图3A示出了对应于图2中所示的纠错例程的时序图。控制器120发出用于第一纠错阶段的读取命令321。在完成读取命令321以及硬解码失败之后,控制器发出软解码请求324。如果软解码失败,则控制器发出软解码请求326。如果软解码失败,则控制器发出软解码请求328。如果软解码失败,则控制器开始第二纠错阶段并发出读取命令331。在完成读取命令331以及硬解码失败之后,控制器发出软解码请求334。如果软解码失败,则控制器发出软解码请求336。如果软解码失败,则控制器发出软解码请求338。如图3A中所示,在先前的请求失败之后,顺序地发出每个请求。[0051]虽然图3A没有按比例绘制,但是每条线的长度一般对应于时间长度。换句话说,从闪速存储器设备中的读取操作通常比软解码操作花费更多的时间。例如,从闪速存储器设备中的读取操作可能比三个软解码操作花费更多的时间来完成。[0052]图3B示出了根据本主题技术的各方面的,对应于纠错例程的时序图。在完成读取命令321以及指示失败之后,控制器120确定可用软解码器164的计数。控制器120还确定当前阶段的软解码请求的待定数量。例如,如果当前阶段的软解码请求的总数量是3,并且当前阶段还没有发出软解码请求,则待定数量是3。如果可用软解码器164的计数大于或等于待定数量,则控制器120发出待定数量的软解码请求。在图3B中,控制器120向并行的各个可用软解码器并行地发出软解码请求324、326和328。然而,如果可用软解码器的计数小于软解码请求的待定数量,则控制器120将向可用软解码器发出软解码请求。当软解码器变得可用时,控制器120将发出任何待定的软解码请求,直到当前阶段没有更多的待定软解码请求。[0053]在软解码请求324、326和328失败时,控制器120继续到下一阶段。控制器120使用与在先前读取命令中使用的电压集合不同的电压集合来发出下一读取请求,读取命令331。在完成读取命令331之后,控制器120并行地发出软解码请求334、336和338。[0054]以下参考图4进一步讨论图3B的纠错例程。图4示出了纠错例程的流程图400。主机150向闪速存储器设备130中的一个请求数据。可替换地,控制器120可以请求数据用于维护操作,诸如垃圾收集。控制器120向闪速存储器设备130发出初始读取命令,该初始读取命令可以基于与所请求的数据相关联的地址来选择。图4的过程从在初始读取命令返回失败例如,解码器160指示硬解码失败之后的第一纠错阶段开始。[0055]控制器120使用第一电压集合向闪速存储器设备130发出第一读取命令。第一电压集合对应于第一纠错阶段,并且不同于在初始读取命令中使用的电压集合。解码器160响应于第一读取命令解码来自闪速存储器设备130的第一原始数据。该解码可以是由硬解码器162解码的硬解码。硬解码器162可以从存储器125中的缓冲器访问第一原始数据。[0056]在410,控制器120从解码器160接收对第一原始数据解码失败的硬解码失败指示。在420,控制器120确定软解码器164的可用软解码器的计数。例如,解码器160可能具有四个硬解码器162和四个软解码器164,但是在其他实施方式中,可能存在更多或更少的硬解码器162和软解码器164。在430,控制器120基于可用软解码器的计数和软解码请求的待定数量来确定要发出的软解码请求的数量。如果可用软解码器的计数大于或等于待定数量,则要发出的软解码请求的数量是待定数量。如果可用软解码器的数量小于待定数量,则要发出的软解码请求的数量是计数。在纠错阶段开始时,待定数量是该阶段的软解码的总数。[0057]在440,控制器120分别向可用软解码器发出所确定的数量的软解码请求。软解码请求可以使用当前阶段读取的原始数据连同先前阶段的原始数据。如上所述,软解码请求可以各自包括置信度值集合,例如LLR表。因此,与存在的可用软解码器一样多的软解码请求可以并行处理。在发出软解码请求之后,控制器120例如,通过减去已发出的软解码请求的数量更新待定数量。如果待定数量大于零,则控制器120可以根据需要重复步骤420、430和440,直到待定数量为零。[0058]在450,控制器120从解码器160接收成功解码的成功指示。该成功指示可以来自成功的软解码,例如,响应于在450发出的至少一个软解码请求。成功指示可以来自成功的硬解码,例如,响应于与在当前阶段的所有软解码请求失败之后发出的下一阶段的第二读取命令相关联的硬解码。一旦所请求的数据被成功解码,控制器120将使解码的数据对于请求者例如,主机150或控制器120可用,而不管是纠错例程中的哪个请求得到成功。[0059]然而,在某些情况下,数据可能被成功解码不止一次。例如,当前纠错阶段的不止一个的软解码器可以成功返回。因为当前纠错阶段的软解码器正在并行处理,所以不止一个的软解码器可以在完成时返回成功,得到不止一个成功解码的数据集合,该数据集合可以是相同的结果数据。[0060]响应于成功指示,控制器120确定所请求的数据是否被成功提供。例如,控制器120可以维护存储在存储器125或寄存器135中的状态机。状态机可以跟踪对闪速存储器设备130的读取请求的状态。状态机可以具有每个读取请求的成功标志以指示先前己提供数据。当所请求的数据先前未提供给请求者时,控制器120将经解码的数据提供给请求者。例如,状态机可以指示未设置成功标志,因此先前未提供所请求的数据。在提供经解码的数据之后,控制器120例如,通过设置对应的成功标志更新状态机。如果控制器120接收到成功解码的另一成功指示,则控制器120将看到成功标志已被设置,并将丢弃经解码的数据。[0061]由于并行软解码操作,本文所描述的纠错例程可能增加功耗和资源使用。然而,降低开销的益处可以超过缺点,特别是在将近闪速储存器系统110的寿命周期结束时,其中高误比特率需要调用纠错例程。在某些实施方式中,控制器120可以限制并行软解码的最大数量,其可以小于可用软解码器的计数。[0062]本领域的技术人员将认识到,可以将本文描述的各种示例性块、模块、元件、组件、方法和算法实施为电子硬件、计算机软件或两者的组合。为了示例硬件和软件的这种可互换性,上面已经就其功能方面一般地描述了各种示例性块、模块、元件、组件、方法和算法。这样的功能是以硬件还是软件来实施取决于施加在整个系统上的特定应用和设计约束。熟练的技术人员可以针对每个特定的应用以不同的方式实施所描述的功能。各种组件和块可以被不同地布置例如,以不同的顺序布置,或以不同的方式分区),而不脱离本主题技术的范围。[0063]应该理解,已公开的过程中的步骤的特定顺序或层次是示例性方法的说明。可以理解的是,基于设计偏好可以重新布置过程中的步骤的特定顺序或层次。一些步骤可以同时执行。所附方法权利要求以样本顺序给出了各步骤的要素,但并不意味着限于所给出的特定顺序或层次。[0064]提供先前的描述是为了使本领域的任何技术人员能够实践本文描述的各个方面。先前的描述提供了本主题技术的各种示例,并且本主题技术不限于这些示例。这些方面的各种修改对于本领域技术人员来说将是显而易见的,并且本文定义的一般原理可以应用于其它方面。因此,权利要求并不意图限于本文所示的各方面,而是要符合与语言权利要求相一致的全部范围,其中除非特别如此声明,否则以单数形式引用元件并非意在表示“一个且仅一个”,而是意在表示“一个或多个”。除非另有特别声明,术语“一些”是指一个或多个。男性代词例如,他的包括女性和中性例如,她的和它的),反之亦然。标题和副标题如果有的话仅出于方便的目的而使用,并不限制本发明。[0065]诸如“方面”的短语并不暗示这样的方面对于主题技术是必不可少的,或者这样的方面应用于主题技术的所有配置。涉及一个方面的公开可以应用于所有配置或一个或多个配置。一个方面可以提供一个或多个示例。诸如方面的短语可以指一个或多个方面,反之亦然。诸如“实施例”的短语并不暗示这样的实施例对于本主题技术是必不可少的,或者这样的实施例应用于本主题技术的所有配置。与实施例相关的公开可以应用于所有实施例或一个或多个实施例。一个实施例可以提供一个或多个示例。诸如“实施例,,的短语可以指一个或多个实施例,反之亦然。诸如“配置”的短语并不暗示这样的配置对主题技术必不可少,或者这种配置应用于主题技术的所有配置。与配置相关的公开可以应用于所有配置或一个或多个配置。一个配置可以提供一个或多个示例。诸如“配置”的短语可以指一个或多个配置,反之亦然。[0066]本文使用词语“示例性”来表示“用作示例或例示”。本文中被描述为“示例性”的任何方面或设计不一定被解释为相对于其他方面或设计是优选的或有利的。[0067]本领域普通技术人员已知或本领域普通技术人员稍后会知道的贯穿本公开所描述的各个方面的元素的所有结构和功能的等同物通过引用被明确并入本文,并且意图被权利要求涵盖。而且,本文公开的任何内容都不意图献于公众,而不管这些公开是否在权利要求中明确记载。权利要求元素不得根据中国专利法第26条第4款的规定来解释,除非明确使用短语“用于......的装置”来记载该元素,或者在方法权利要求的情况下使用短语“用于......的步骤”来记载该元素。此外,就说明书或权利要求中使用的术语“包括”、“具有”等来说,与术语“包含,,作为传统词语在权利要求中采用时被解释为“包含”的方式类似,这样的术语也意味着包括性的。

权利要求:1.一种用于管理数据解码的方法,包括:确定解码器的多个软解码器的可用软解码器的计数;基于所述可用软解码器的计数和软解码请求的待定数量来确定要发出的软解码请求的数量;向所述可用软解码器中的各个可用软解码器发出所确定的数量的软解码请求,用于并行地软解码所述第一原始数据;以及从所述解码器接收成功解码的成功指示。2.如权利要求1所述的方法,其中使用所述第一原始数据的软解码请求还使用各个置信度值集合。3.如权利要求1所述的方法,还包括:在发出所确定的数量的软解码请求之后,更新所述可用软解码器的计数和所述软解码请求的待定数量;更新所述要发出的软解码请求的数量;基于更新后的可用软解码器的计数和更新后的软解码请求的待定数量来确定所述要发出的软解码请求的数量;以及向所述可用软解码器中的各个可用软解码器发出所确定的数量的软解码请求,用于并行地软解码所述第一原始数据。4.如权利要求1所述的方法,还包括:接收对于所发出的软解码请求中的每一个软解码请求的软解码失败指示;当所述软解码请求的待定数量为零时,发出使用第二电压集合的第二读取命令,所述第二读取命令包括第二读取操作集合。5.如权利要求4所述的方法,还包括:接收第二硬解码失败指示,所述第二硬解码失败指示是指对响应于所述第二读取命令而读取的第二原始数据解码失败;重置所述软解码请求的待定数量;确定所述多个软解码器的可用软解码器的计数;基于所述可用软解码器的计数和所述软解码请求的待定数量来确定所述要发出的软解码请求的数量;向所述可用软解码器中的各个可用软解码器发出所确定的数量的软解码请求,用于并行地软解码所述第二原始数据。6.如权利要求1所述的方法,还包括:响应于所述成功指示,确定是否已成功提供所请求的数据;以及当先前未提供所请求的数据时,提供经解码的数据。7.如权利要求6所述的方法,其中确定是否已成功提供所请求的数据包括确定是否设置了指示已成功提供所请求的数据的成功标志。8.—种闪速储存器系统,包括:用于从解码器接收硬解码失败指示的装置,所述解码器对响应于第一读取命令而使用第一电压集合从非易失性存储器读取的第一原始数据解码失败,所述第一读取命令包括第一读取操作集合;用于确定所述解码器的多个软解码器的可用软解码器的计数的装置;用于基于所述可用软解码器的计数和所述软解码请求的待定数量来确定要发出的软解码请求的数量的装置;用于向所述可用软解码器中的各个可用软解码器发出所确定的数量的软解码请求用于并行地软解码所述第一原始数据的装置;以及用于从所述解码器接收成功解码的成功指示的装置。9.如权利要求8所述的闪速储存器系统,其中使用所述第一原始数据的所述软解码请求还使用各个置信度值集合。10.如权利要求8所述的闪速储存器系统,还包括:用于在发出所确定的数量的软解码请求之后更新所述可用软解码器的计数和所述软解码请求的待定数量的装置;用于更新所述要发出的软解码请求的数量的装置;用于基于更新后的可用软解码器的计数和更新后的软解码请求的待定数量来确定所述要发出的软解码请求的数量的装置;以及用于向所述可用软解码器中的各个可用软解码器发出所确定的数量的软解码请求用于并行地软解码所述第一原始数据的装置。11.如权利要求8所述的闪速储存器系统,还包括:用于接收对于所发出的软解码请求中的每一个软解码请求的软解码失败指示的装置;用于当所述软解码请求的待定数量为零时,发出使用第二电压集合的第二读取命令的装置,所述第二读取命令包括第二读取操作集合。12.如权利要求8所述的闪速储存器系统,还包括:用于接收第二硬解码失败指示的装置,所述第二硬解码失败指示是指对响应于所述第二读取命令而读取的第二原始数据解码失败;用于重置所述软解码请求的待定数量的装置;用于确定所述多个软解码器的可用软解码器的计数的装置;用于基于所述可用软解码器的计数和所述软解码请求的待定数量来确定所述要发出的软解码请求的数量的装置;用于向所述可用软解码器中的各个可用软解码器发出所确定的数量的软解码请求用于并行地软解码所述第二原始数据的装置。13.如权利要求8所述的闪速储存器系统,还包括:用于响应于所述成功指示来确定是否已成功提供所请求的数据的装置;以及用于当先前未提供所请求的数据时,提供经解码的数据的装置。14.如权利要求13所述的闪速储存器系统,其中确定是否已成功提供所请求的数据包括确定是否设置了指示已成功提供所请求的数据的成功标志。15.—种闪速储存器系统,包括:多个闪速存储器设备;一个解码器;以及控制器,被配置为:_从解码器接收硬解码失败指示,所述解码器对响应于第一读取命令而使用第一电压集合从非易失性存储器读取的第一原始数据解码失败,所述第一读取命令包括第一读取操作集合;确定所述解码器的多个软解码器的可用软解码器的计数•,基于所述可用软解码器的计数和所述软解码请求的待定数量,确定要发出的软解码请求的数量;向所述可用软解码器中的各个可用软解码器发出所确定的数量的软解码请求,用于并行地软解码所述第一原始数据;以及从所述解码器接收成功解码的成功指示。16.如权利要求15所述的闪速储存器系统,其中使用所述第一原始数据的软解码请求还使用各个置信度值集合。17.如权利要求15所述的闪速储存器系统,其中所述控制器还被配置为:在发出所确定的数量的软解码请求之后,更新所述可用软解码器的计数和所述软解码请求的待定数量;更新所述要发出的软解码请求的数量;基于更新后的可用软解码器的计数和更新后的软解码请求的待定数量,确定所述要发出的软解码请求的数量;以及向所述可用软解码器中的各个可用软解码器发出所确定的数量的软解码请求,用于并行地软解码所述第一原始数据。18.如权利要求15所述的闪速储存器系统,其中所述控制器还被配置为:接收对于所发出的软解码请求中的每一个软解码请求的软解码失败指示;当所述软解码请求的待定数量为零时,发出使用第二电压集合的第二读取命令,所述第二读取命令包括第二读取操作集合。19.如权利要求18所述的闪速储存器系统,其中所述控制器还被配置为:接收第二硬解码失败指示,所述第二硬解码失败指示是指对响应于所述第二读取命令而读取的第二原始数据解码失败;重置所述软解码请求的待定数量;确定所述多个软解码器的可用软解码器的计数;基于所述可用软解码器的计数和所述软解码请求的待定数量,确定所述要发出的软解码请求的数量;向所述可用软解码器中的各个可用软解码器发出所确定的数量的软解码请求,用于并行地软解码所述第二原始数据。20.如权利要求I5所述的闪速储存器系统,其中所述控制器还被配置为:响应于成功指示,确定是否已成功提供所请求的数据;以及当先前未提供所请求的数据时,提供经解码的数据。21.如权利要求20所述的闪速储存器系统,其中确定是否已成功提供所请求的数据包括确定是否设置了指示已成功提供所请求的数据的成功标志。

百度查询: 西部数据技术公司 软解码调度