一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于对利用提前硬解码退出的存储器设备进行解码的存储器控制器和方法与流程

2022-03-01 21:44:08 来源:中国专利 TAG:

用于对利用提前硬解码退出的存储器设备进行解码的存储器控制器和方法


背景技术:

1.存储器控制器诸如闪存存储器控制器使用纠错编码来实现可接受的不可纠正的误码率(uber)。“fec块”是连续的信息块,其包含数字用户信息或“数据”以及用于保护原始数据以避免误码的相关奇偶校验信息。
2.用于解码用纠错码编码的数据的各种算法在本领域中是已知的。硬解码算法仅需要单个值作为原始前向纠错(fec)块的每个位的输入,并且仅需要存储的fec块的单个读取。
3.当读取错误地址时或当数据被高度损坏时,可能导致严重失效。在一些解码过程中,使用校验节点处理的第一层中的错误数量来识别严重失效。更具体地讲,当在硬解码算法的第一层的处理结束时观察到极高数量的错误时,确定已经发生了严重失效。当检测到严重失效时,中止解码。当解码过程中止时,解码过程停止并且向主机报告错误。此时,可使用错误恢复过程诸如独立磁盘冗余阵列(raid)来尝试恢复所存储的数据。
4.随着闪存存储器设备老化,原始误码率(rber)增加。当硬解码算法用于解码时,在某一时刻rber增大到解码器成为系统瓶颈的程度,从而降低系统的输出速率。更具体地讲,硬解码过程达到最大迭代次数并失败所需的操作的时间和数量、重新读取数据并执行软解码所需的时间变得如此显著以至于闪存控制器的吞吐量减小。虽然这已相对于闪存存储器设备和闪存存储器控制器进行了描述,但该问题与表现出增大的rber的任何存储器系统相关。
5.因此,需要一种将允许解码的方法和装置,该方法和装置将减少由增大的rber引起的负面影响,以便防止或延迟由硬解码失败引起的降低的吞吐量的发生。


技术实现要素:

6.公开了一种用于解码的方法,该方法包括在硬输入解码电路处接收读取值的第一前向纠错(fec)块(其中读取值的第一fec块的每个位表示存储的fec块的对应位);以及开始硬解码过程。硬解码过程包括对读取值的第一fec块的可变节点处理和校验节点处理,以识别校验节点失效的数量。在硬解码过程期间,将所识别的校验节点失效的数量与解码阈值进行比较。当所识别的校验节点失效的数量不大于解码阈值时,继续硬解码过程。当所识别的校验节点失效的数量大于解码阈值时,该方法还包括:在完成硬解码过程之前停止硬解码过程;生成指示需要附加读取的输出;在映射器处接收读取值的第一fec块和读取值的一个或多个附加fec块(其中读取值的一个或多个fec块中的每个fec块的每个位表示存储的fec块的对应位);将读取值的第一fec块和读取值的附加fec块映射到软输入值;以及对软输入值执行软解码过程以识别解码的fec块。
7.本发明公开了一种存储器控制器,该存储器控制器包括输入和输出电路;编码器,该编码器被配置为将在该输入和输出电路处接收的数据编码到fec块中;以及写入电路,该写入电路耦接到该编码器。写入电路被配置用于将fec块存储在存储器设备上。读取电路被
配置为读取存储的fec块。硬输入解码电路被配置为接收读取值的第一fec块(其中读取值的第一fec块的每个位表示存储的fec块的对应位)并开始硬解码过程。硬解码过程包括对读取值的第一fec块的可变节点处理和校验节点处理,以识别校验节点失效的数量。解码控制器耦接到硬输入解码电路,并且被配置为在硬解码过程期间将所识别的校验节点失效的数量与解码阈值进行比较。当所识别的校验节点失效的数量大于解码阈值时,解码控制器可操作以生成指示硬输入解码电路将停止纠错码的处理的输出,并且生成指示需要附加读取的输出。响应于指示硬输入解码电路将停止纠错码的处理的输出,硬输入解码电路可操作以在完成硬解码过程之前停止硬解码过程。存储器控制器还包括映射器,该映射器被配置为接收读取值的第一fec块和读取值的附加fec块(响应于生成的指示需要附加读取的输出),并且将读取值的第一fec块和读取值的附加fec块映射到软输入值中。软输入解码电路耦接到映射器,并且被配置为对软输入值执行软解码过程以识别解码的fec块。
8.本发明公开了一种解码器,该解码器包括硬输入解码电路,该硬输入解码电路被配置为接收读取值的第一fec块(其中读取值的第一fec块的每个位表示存储的fec块的对应位)并开始硬解码过程。硬解码过程包括对读取值的第一fec块的可变节点处理和校验节点处理,以识别校验节点失效的数量。解码控制器耦接到硬输入解码电路,并且被配置为在硬解码过程期间将所识别的校验节点失效的数量与解码阈值进行比较。当所识别的校验节点失效的数量大于解码阈值时,解码控制器可操作为生成指示硬输入解码电路将停止纠错码的处理的输出,并且生成指示需要附加读取的输出。硬输入解码电路可操作(响应于指示硬输入解码电路将停止纠错码的处理的输出)以在完成硬解码过程之前停止硬解码过程。解码器还包括映射器,该映射器被配置为接收读取值的第一fec块和读取值的附加fec块(响应于生成的指示需要附加读取的输出),并且将读取值的第一fec块和读取值的附加fec块映射到软输入值中。软输入解码电路耦接到映射器,并且被配置为对软输入值执行软解码过程以识别解码的fec块。
9.因此,本发明的方法和装置提供提前硬解码退出,该提前硬解码退出在完成硬解码过程之前将处理移出硬输入解码电路,从而释放硬输入解码电路以用于对其他fec块执行解码操作。因此,用于解码的工作负荷被转移到软输入解码电路,从而允许工作负荷基于校验节点失效的数量而平衡。因此,随着rber增加,软输入解码器的利用率增加。因此,本发明的方法和装置减少了由rber增加引起的负面影响,从而延迟了由硬解码失败引起的吞吐量减小的发生。
附图说明
10.下面将参考各个示例和附图更详细地解释本发明,附图中示出。
11.图1是示出根据本发明的示例的耦接到主机设备的固态驱动器(ssd)的框图。
12.图2示出了根据本发明的示例的用于解码fec块的方法。
13.图3是示出典型现有技术ssd的有效吞吐量特征图以及可通过本发明的方法和装置实现的理论最大有效吞吐量改善的图示。
14.图4是示出根据本发明的示例的接收用于控制码率和解码阈值的用户输入的方法的图示。
15.图5是示出根据本发明的示例的示例性硬输入解码电路、解码控制器和代码信息
处理器的图示。
16.图6是示出垂直轴上的帧错误率和水平轴上的在解码器处接收的帧的误码率(berin)的曲线图,其示出了根据本发明的示例的示例性ssd的性能。
17.图7是示出垂直轴上的平均迭代和水平轴上的在解码器处接收的帧的误码率(berin)的曲线图,其示出了根据本发明的示例的示例性ssd的性能。
具体实施方式
18.本领域普通技术人员将认识到,以下描述仅是例示性的而非以任何方式进行限制。本领域的技术人员将易于想到其他示例。
19.图1示出了包括闪存存储器控制器10和闪存存储器设备12的固态驱动器(ssd)20。闪存存储器控制器10包括耦接到编码器3的输入和输出(i/o)电路2。编码器3耦接到写入电路4。解码器11耦接到数据存储装置6和读取电路5,解码器11包括硬输入解码电路7、软输入解码电路8、解码控制器9和映射器13。解码控制器9耦接到硬输入解码电路7中的每个硬输入解码电路、软输入解码电路8中的每个软输入解码电路、i/o电路2和映射器13。映射器13还耦接到读取电路5、数据存储装置6、软输入解码电路8中的每个软输入解码电路、以及存储软读取值的解码器11的寄存器。
20.当在i/o电路2处从主机设备16接收到具有待写入的相关联数据的写入指令时,编码器3使用具有码率的纠错码将所接收的相关联数据编码到fec块中。码率(cr)=数据(数据 奇偶校验),其中数据是fec块内的以位为单位的用户数据量,并且奇偶校验是添加到fec块的奇偶校验位量。
21.写入电路4被配置用于将从编码器3接收的fec块存储在闪存存储器设备12上。闪存存储器设备12可以是任何类型的非易失性存储装置。在本示例中,闪存存储器设备12是nand设备(例如单级单元(slc)、多级单元(mlc)、三级单元(tlc)、四级单元(qlc)或更高级的技术。然而,另选地,闪存存储器设备12可以是nor设备。读取电路5响应于从主机16接收的读取命令,通过向闪存存储器设备12发送指示要执行的读取的类型以及要读取的信息的地址的命令,对闪存存储器设备12执行读取操作,并且接收读取结果。读取电路5将来自读取操作的结果发送到解码器11。读取结果可存储在解码器11内的寄存器(例如,一个或多个硬输入解码电路7中的寄存器)或数据存储装置6中。
22.存储的fec块的单次读取(通常称为“硬读取”)产生通常称为“硬读取值”的结果(例如,来自常规“读取”指令的结果),并且结果可以fec块的形式存储在解码器11的相应寄存器中,其中硬读取值的单个位(例如,“0”或“1”)表示存储的fec块的对应位。
23.硬输入解码电路7被配置为对硬读取值执行纠错码算法的处理,并且软输入解码电路8被配置为对软输入值执行纠错码算法的处理,如下文将进一步描述的。
24.当硬输入解码电路7或软输入解码电路8的迭代处理成功时(即,在不存在任何校验节点失效的情况下),解码控制器9被配置为识别存储的fec块,移除奇偶校验位以获得初始存储的数据并将初始存储的数据发送到i/o电路2以输出到主机设备16。
25.校验节点是在多个二进制输入值上验证奇偶校验状态的处理元件。正确的节点将报告输入值的奇偶校验具有偶数奇偶校验,而不正确的节点将报告奇数奇偶校验。纠错码诸如例如低密度奇偶校验(ldpc)纠错码由多个校验节点组成,并且解码过程操作以迫使所
有校验节点处于偶数状态。因此,ldpc解码器内的失效(奇数奇偶校验)校验节点的数量指示必须校正的错误位的数量。
26.在一个示例中,每个硬输入解码电路7以图5所示的方式耦接到解码控制器9,并且包括:第一输入,该第一输入被耦接以接收读取值的fec块;第二输入,该第二输入耦接到解码控制器9以用于接收提前终止信号;第一输出,该第一输出耦接到解码控制器9的对应输入以用于输出指示在当前硬解码过程中处理的迭代数量和/或层数的迭代(层)数信号;以及第二输出,该第二输出用于输出指示解码操作中的校验节点失效的数量的失效校验节点计数信号。
27.映射器13包括电路和处理逻辑,该电路和处理逻辑被配置为将数据从读取电路5传输到解码器11内的寄存器(例如,一个或多个软输入解码电路8中的寄存器),同时将数据转换为软输入解码电路8所需的格式。软输入解码电路8各自被配置为对软输入值执行软解码过程以识别解码的fec块。
28.在一些示例中,硬输入解码电路7与软输入解码电路8相同,唯一的区别是馈送到解码电路中的输入的类型。在其他示例中,软输入解码电路8使用比由硬输入解码电路7执行的计算更高数量的有效数字来执行计算。在另一个实施方案中,硬输入解码电路7基于对数似然比(llr)值来执行计算,并且在纠错码的第一层或迭代的处理之前,为硬读取值中的每个硬读取值分配-8(例如,对于位值“1”)或 8(例如,对于位值“0”)的值。
29.图2示出了根据本发明的示例的用于解码fec块的方法100。方法100可由图1的装置执行。当接收到(101)读取指令时,执行(102)存储在存储器中(诸如在ssd 20的闪存存储器设备12上)的fec块的第一读取。在硬输入解码电路处接收(103)读取值的第一前向纠错(fec)块,其中读取值的第一fec块的每个位表示存储的fec块的对应位。
30.开始硬解码过程(104),该硬解码过程包括对读取值的第一fec块的可变节点处理和校验节点处理,以识别校验节点失效的数量。在本发明的一个示例中,每个硬输入解码电路7被配置用于接收读取值的fec块(其中读取值的第一fec块的每个位表示存储的fec块的对应位)并开始硬解码过程,该硬解码过程包括对读取值的第一fec块的可变节点处理和校验节点处理以识别校验节点失效的数量。
31.在硬解码过程期间,将所识别的校验节点失效的数量与解码阈值进行比较(105)。在一个示例中,硬输入解码电路7包括指示解码过程中错误的累积数量的寄存器,并且硬输入解码电路7可输出失效校验节点计数信号,如上文关于图5所述,指示错误的累积数量。解码控制器9被配置为在硬解码过程期间将所识别的校验节点失效的数量与解码阈值进行比较。
32.在纠错码是单层纠错码的示例中,解码控制器9被配置为将单层纠错码的第一迭代中所识别的校验节点失效的数量与解码阈值进行比较(105),并且被配置为当纠错码的第一迭代中识别的校验节点失效的数量大于解码阈值时生成指示硬输入解码电路将停止纠错码的处理的输出。
33.在纠错码是多层代码的示例中,解码控制器9被配置为将多层纠错码的第一迭代中所识别的校验节点失效的数量(例如,第一迭代的所有层中的错误的累积数量)与解码阈值进行比较(105),并且被配置为当多层纠错码的第一迭代中识别的校验节点失效的数量大于解码阈值时生成指示硬输入解码电路将停止纠错码的处理的输出。
34.在其中纠错码是多层代码的另一个示例中,解码控制器9被配置为将第一迭代的第一层中所识别的校验节点失效的数量与解码阈值进行比较(105),并且被配置为当纠错码的第一迭代的第一层中的所识别的校验节点失效的数量大于解码阈值时生成指示硬输入解码电路将停止纠错码的处理的输出。替代地,可在步骤105中比较后续迭代的层或特定后续迭代的所有层。
35.当所识别的校验节点失效的数量不大于解码阈值(106,107)时,继续硬解码过程(107)。硬解码过程继续进行,直到其成功(119,117)或直到其失败。当达到最大迭代次数并且尚未识别到存储的fec块时,该过程通常失败。当硬解码过程失败时,获得软信息并使用软信息执行解码(110-115),如下文更详细所述。
36.解码阈值可在不同时间改变(120)。在一个示例中,通过存储闪存存储器设备12的寿命中的各个点的一组预定解码阈值并且选择与闪存存储器设备12的寿命中的当前点相对应的预定解码阈值来改变解码阈值。例如,可对示例性闪存存储器设备(例如,具有相同设计、制造等的nand设备)进行建模以获得一组预先确定的解码阈值。预定解码阈值可存储在数据存储装置6的查找表(lut)14中,该数据存储装置被访问以识别与正在使用的闪存存储器设备12的类型和闪存存储器设备12的寿命中的当前点相对应的预定解码阈值(例如,在一定数量的编程/擦除周期下使用)。在一个示例中,闪存存储器控制器10的固件(未示出)跟踪编程和擦除周期的数量。
37.任选地,当确定硬输入解码电路7已满时(120,121),解码阈值改变(120)。解码控制器9被配置为监测硬输入解码电路7的操作,以用于确定硬输入解码电路7何时已满。在一个示例中,解码阈值以足够高的速率开始,使得没有硬解码过程停止(图2的步骤106、108),并且每当确定硬输入解码电路7已满时,解码控制器11减小解码阈值(例如,可以是例如以增量1减小的增量减小)。
38.当所识别的校验节点失效的数量大于解码阈值(106)时,在完成(108)之前(例如,在达到最大迭代次数或成功识别存储的fec块之前)停止硬解码过程,并且使用软信息(步骤110-115)识别存储的fec块(117)。解码器-控制器9被配置用于当所识别的校验节点失效的数量大于解码阈值时,生成指示硬输入解码电路将停止纠错码的处理的输出。作为响应,相应的硬输入解码电路7在完成硬解码过程之前停止硬解码过程,并且不执行纠错码的后续迭代。
39.在一个示例中,解码控制器9被配置为将提前终止信号发送到硬输入解码电路7,如图5所示。响应于接收到提前终止信号,硬输入解码电路7被配置为立即或在完成正在处理的层或迭代之后停止硬解码过程。
40.当所识别的校验节点失效的数量大于解码阈值时,生成(110)指示需要附加读取的输出。解码器-控制器9被配置为当所识别的校验节点失效的数量大于解码阈值时生成指示需要附加读取的输出(例如,到读取电路5的一个或多个信号)。
41.响应于指示需要附加读取的输出,执行一个或多个附加读取(111)以获得读取值的一个或多个附加fec块。步骤111的附加读取是闪存存储器设备12内与fec块存储在其中的存储器单元相关的位置的读取。其中获得与先前已读取的值相关的更多信息的读取通常被称为“软读取”,并且从此类读取获得的所获得信息被称为“软读取值”,并且有时被称为“软信息”。因此,步骤111的附加读取是“软读取”,并且它们产生“软读取值”。
42.在一个示例中,读取电路5被配置为执行闪存存储器设备12中在步骤102中读取的相同地址的附加读取(例如,使用常规读取指令)。
43.在一个示例中,通过发送指示负阈值电压偏移的第一阈值电压偏移读取命令来执行对存储的fec块的第一附加读取以获得软读取值的第一附加fec块,并且通过发送指示正阈值电压偏移的第二阈值电压偏移读取命令来执行第二附加读取以获得软读取值的第二附加fec块。另外,可以使用重新读取指令来获得存储的fec块的软读取。在又一个示例中,闪存存储器设备12响应于重新读取指令而执行对存储的fec块(vt ,vt-)的两次读取,并且两次读取的结果被异或在一起以提供由闪存存储器设备12输出的单组软读取值。
44.在另一个示例中,以完全相同的方式读取每个位3次。表决方案然后将识别“强”输入(所有3次读取均同意)和弱输入,其中2次读取是一个符号,并且第三次读取是相反的符号。读取值和标识符被输出为由闪存存储器设备12输出的软读取值。
45.在映射器13处接收读取值的第一fec块和读取值的一个或多个附加fec块(112),其中读取值的一个或多个附加fec块中的每个附加fec块的每个位表示存储的fec块的对应位。读取值的第一fec块(例如,硬读取值)和读取值的附加fec块(例如,软读取值)被映射(113)到软输入值中。映射器13被配置为响应于所生成的指示需要附加读取的输出而接收读取值的第一fec块和读取值的附加fec块,并且被配置用于将读取值的第一fec块和读取值的附加fec块映射到软输入值中。
46.在一个示例中,映射过程将给定信息位的多次读取组合成被称为“软输入值”的单个解码器输入值。软输入值指示概率(例如,输入信号为1或0的概率)。在图1所示的示例中,映射器13识别软输入值并将所识别的软输入值提供给相应的软输入解码器电路8。
47.表1示出了每个读取条件的不同概率值pn_m的示例,其中n是读取条件(在这种情况下,是从3次读取返回的二进制值),并且m是0或1,表示实数位为0或1,其中pn_0 pn_1=1.0。
48.表1:软映射表
49.读取软位1读取软位2读取软位3概率为0概率为1llr000p0_0p0_1llr_0001p1_0p1_1llr_1010p2_0p2_1llr_2011p3_0p3_1llr_3100p4_0p4_1llr_4101p5_0p5_1llr_5110p6_0p6_1llr_6111p7_0p7_1llr_7
50.可在设备的表征期间收集概率数据(例如,pn_m),其中写入已知序列,然后使用3次读取回读。这3次读取通常略有不同,即每种情况下读取电压的阈值电压偏移。应当理解,在将设备交付给客户之前,在测试实验室中使用类似的设备(例如,相同类型的设备、设备的设计以及在制造设施中运行的可能相同的生产)来执行表征过程。
51.在一个示例中,所识别的概率数据用于使用以下等式来计算单个llr值(pn):llrn=log(pn_0/pn_1)。
52.在一个示例中,lut 14包括llr映射表,该llr映射表包括表示读取结果的一个或多个值(例如,表1的列1-3)和对应的概率值(例如,llr值,诸如表1所示的llr_n值)。
53.在另一个示例中,软映射操作包括通过索引存储的llr映射表来识别对应于读取结果的概率值,使用读取值的第一fec块和读取值的附加块将对应llr值识别为软输入值。
54.对软输入值执行(114)软解码过程以识别解码的fec块。相应的软输入解码电路8被配置为对软输入值执行软解码过程以识别解码的fec块。硬解码过程和软解码过程可各自执行允许软数据输入和处理的任何纠错码,诸如例如viterbi码、软输出viterbi算法(sova)码、turbo码或低密度奇偶校验(ldpc)码。
55.在步骤110-114的软解码过程失败的情况下(115),可以采用进一步努力(未示出)来帮助恢复fec块(116)。接下来的步骤可以是例如执行附加的软读取并组合更多的读取信息,然后再次重复软解码过程(114),以尝试对软读取的不同映射或作为最后手段转到raid。
56.本发明的利用提前硬解码退出的硬读取/硬解码和软读取/软解码过程在硬解码过程早期(在硬解码过程已达到最大迭代次数之前)将可能难以解码的块的处理移出硬输入解码电路7,因此减少解码迭代的数量并释放硬输入解码电路7以用于对其他fec块执行解码操作。
57.图3的线31表示ssd驱动器的有效吞吐量分布,其中x轴表示ssd寿命,即固态驱动器20在读/写周期中测量的年龄,并且y轴表示有效吞吐量,a-b与b-c之间的线段31表示示例性现有技术的ssd驱动器,虚线32表示本发明的方法和装置,其中有效吞吐量是从驱动器读取并传递给操作系统的信息量。在固态驱动器20的寿命开始时,获得最大全带宽(fb)g字节/s,这是闪存存储器设备12的最大读取带宽减去用于纠错码奇偶校验信息的一些开销。随着固态驱动器老化,其最终到达点a,在该点处达到硬输入解码电路7的硬解码吞吐量极限。随着rber由于老化而进一步增加,现有技术ssd的有效吞吐量趋势遵循从点a向下到点b的实轨线,其中系统的有效吞吐量达到fb/3(在该示例中,对于所存储信息的每个位,使用来自闪存存储器设备12的3次读取来执行软解码)。从b开始,现有技术ssd的硬解码引擎被完全占用,并且在闪存处读取的带宽也在fb/3。ssd的过量可用2fb/3带宽(bw)对于示例性现有技术系统不再可用。在点b之后的某个时间点,现有技术ssd将吞吐量保持在fb/3需要所有软解码。点c表示在本实施方案中仅使用软解码并且硬输入解码停止的示例性点。
58.从a延伸到c的虚线32是本发明的方法和装置的目标有效吞吐量,其理论上可通过调整方法100的解码阈值以平衡硬解码操作和软解码操作的数量来获得,使得在ssd 20的寿命期间遇到的每个误码率下获得最大有效吞吐量。虚线32和实线31之间的竖直距离表示与常规现有技术ssd相比,本发明的方法和装置的理论最大改善的有效吞吐量。
59.在本发明的一个示例中,在ssd 20的寿命开始时,解码阈值被设置为高值,使得使用标准硬输入解码(例如,由线31从寿命开始到点a表示)来执行所有解码。随着输入ber增大,硬解码引擎的吞吐量继续减小,在某个点处,硬解码吞吐量不足以完全使用来自闪存存储器的所有可用读取带宽,从而导致闪存bw的利用率下降。另外,此时解码器11发出硬解码器满信号,指示硬解码器已经成为系统的吞吐量瓶颈(块准备好解码但不能被处理),并且没有利用来自存储器的完全可用读取闪存bw。当发生这种情况时,解码阈值减小一,使得更困难的fec块将提前放弃并且将使用软解码过程114解码(保持有效吞吐量尽可能接近线
32)。该过程继续,直到解码阈值达到最小值(例如,点b、点c之间并且延伸超过c的水平线)。随着解码阈值减小,使用更多闪存bw,与现有技术ssd相比增加有效吞吐量,直到达到点c,这表示本发明的方法和装置移动到全软解码的点(因为没有点继续进行图1的步骤101-107的硬解码处理和比较,因为所有要解码的块将具有足够高的rber,使得它们将需要步骤110至115(图1)的软解码,并且通过仅进行软解码处理(步骤110至115)来获得效率。
60.图4示出了接收(201)初始用户输入码率值和初始阈值控制值的方法(200)。使用在步骤(201)中接收的码率值和阈值控制值(或使用默认值)来识别(202)解码阈值。在一个示例中,使用不同的码率值在大量闪存存储器设备上运行模拟,以获得每个码率的解码阈值基础值(dtn)和缩放值(scn)。解码阈值基础值被选择为使得它们在每个码率下提供类似的结果(例如,大致相同数量的解码操作被传输给软解码器)。在本示例中,每个码率的缩放值是不同的,其中在模拟过程期间确定每个码率的缩放值,使得在由用户选择的每个码率值下,由阈值控制值的减小引起的改变量是类似的。在一个示例性示例中,用户能够选择一至十的阈值控制值(u),并且使用以下等式计算对应的解码阈值(dt):dt=dtn-u*scn。
61.图5示出了包括硬输入解码电路57、解码控制器59和代码信息处理器58的示例性解码器的一部分。解码控制器59耦接到代码信息处理器58和硬输入解码电路57。代码信息处理器58包括用于将输入码率转换成dtn和scn的逻辑和/或专用电路。在一个实施方案中,代码信息处理器58可操作以接收步骤201的用户输入码率,并且针对所接收的码率输出dtn和scn。解码控制器59可操作以用于接收输入u、dtn和scn并识别步骤202的对应解码阈值。
62.硬输入解码电路57包括耦接以接收读取值的fec块的第一输入和耦接到解码控制器59以用于从解码控制器59接收提前终止信号的第二输入。硬输入解码电路57还输出块状态信号(例如,解码失败或成功、所需迭代次数以及校正统计值(fec块的校正零和校正一))。硬输入解码电路57包括耦接到解码控制器59的对应输入的第一输出,以用于输出指示在当前硬解码过程中处理的迭代数量和/或层数的迭代(层)数信号。第二输出耦接到解码控制器59的对应输入,以用于输出指示解码操作中的校验节点失效的累积数量的失效校验节点计数信号。
63.现在参见图4,当所有硬输入解码电路7均已满时,向用户提供指示(203)。在这种情况下可以是闪存存储器控制器10的购买者的用户可以设计他们自己的ssd,该ssd包括闪存存储器控制器10、闪存存储器12以及用于控制ssd的操作的电路和/或逻辑。
64.在一个示例中,基于来自硬输入解码电路7的传入解码请求和块状态信号,解码控制器9可操作为识别硬输入解码电路7何时已满(例如,何时其处于满容量并且不能处理附加的硬输入fec块)。当确定解码器的硬输入解码容量已满时(例如,当所有硬输入解码电路7繁忙时),解码控制器9可操作为生成指示硬输入解码电路已满(例如,硬解码器满信号)的到i/o电路2的输出。i/o电路2然后生成指示硬输入解码电路已满的到主机16的对应输出。在一个示例中,当接收到用于解码硬读取值的新fec块的请求并且解码控制器9确定所有硬输入解码电路7都繁忙时,其可操作以生成硬解码器满信号。
65.在接收到包括新阈值控制值的新用户输入(204)的情况下,通过识别对应于新阈值控制值的解码阈值来更新(202)解码阈值。在一个示例中,允许用户从超过100种不同的码率中进行选择。每当接收到新的码率值时(205),解码阈值被更新(202)。然后将新的解码阈值存储在数据存储装置6中的一个或多个中、解码器11中的寄存器中以及硬输入解码电
路57中。
66.在一个示例中,在寿命开始时,解码阈值被设置为高值,使得使用硬输入解码过程执行所有解码。用户监视存储器设备有效吞吐量,并且当有效吞吐量下降到fb以下、即下降到全带宽以下时,则u增加一个设置。在不超出本发明的范围的情况下,不要求增加一个设置,并且在一些实施方案中,增加可多于一。这将降低解码阈值,使得困难fec块将提前放弃,然后将使用软输入解码过程进行解码。
67.当从主机设备16接收(206)读取指令时,执行(207)方法100的利用提前硬解码退出的硬读取/硬解码和软读取/软解码过程,如上文关于方法100所述,以识别解码的fec块。一旦经解码的fec块被识别(207),就从经解码的fec块中移除奇偶校验位以获得初始存储的数据(208),该初始存储的数据随后被发送到输入和输出电路2,该输入和输出电路可操作以将初始存储的数据输出到主机设备16。
68.方法200允许用户使用所有硬输入解码电路7已满的指示(203)以及用户可获得的关于性能的其他信息来平衡软输入解码和硬输入解码之间的操作。用户还可允许解码器的默认自动控制功能来控制阈值控制值的选择(在这种情况下,阈值控制值最初被设置为高值并且每次所有硬输入解码电路7已满时都减小),如方法100中关于步骤120、121所述。
69.图6示出了在三种不同码率cr1、cr2和cr3下的纠错码的帧错误率(fer)相对于在解码器处接收的示例性帧的ber(berin),其中cr1》cr2》cr3。在该示例中,曲线60-62示出了cr1处的性能,曲线63-65示出了cr2处的性能,并且曲线66-68示出了cr3处的性能。在该示例中,cr1、cr2和cr3是n行ldpc纠错码,其中cr1中的行数小于cr2中的行数,并且代码cr2中的行数小于cr3中的行数。针对现有技术情况(等同于解码阈值设置得如此高以至于不存在提前退出,示出为“标准”)示出了所指示的码率中的每个所指示的码率下的结果,以dtnm形式示出示例性“低解码阈值”和示例性“高解码阈值”,其中n对于“低”为l,或者对于“高”为h,并且n为介于1和3之间的码率编号。更具体地讲,曲线60、63和66示出了解码阈值设置得如此高以至于不存在提前解码退出(dt=非常高)的情况,曲线62、65和68示出了高解码阈值处的fer,并且曲线61、64和67示出了低解码阈值处的fer(其中dt非常高》dt高》dt低。
70.现有技术解码操作具有最佳fer性能,因为本发明的每个提前退出被视为帧误差。解码阈值的高值意味着大多数fec块将被允许继续硬解码,因为失效的校验节点的数量将趋于降至高解码阈值以下。随着解码阈值(dt)减小,我们开始降低fer曲线性能。这样做的目的是通过选择性地丢弃困难的硬解码fec块并将其转换成软解码fec块使得其可容易地解码来改善ssd读取性能。
71.在一个示例中,阈值控制值u是从零开始的4位值,其将图6中cr1的帧错误率相对于ber从曲线60的位置朝曲线62的位置缓慢移动,然后随着u的增加而移动到最高设置处曲线61的位置。类似地,对于cr2,增大u将帧错误率相对于ber从曲线63的位置朝曲线65的位置缓慢移动,然后移动到曲线64的位置。此外,对于cr3,改变u将帧错误率相对于ber从曲线66的位置朝曲线68的位置缓慢移动,然后移动到曲线67的位置。
72.图7示出了图6所示的代码和码率的平均迭代相对于berin。更具体地讲,曲线70、73和76示出了解码阈值被设置为如此高以至于不存在提前解码退出(等同于现有技术系统)的情况,曲线72、75和78示出了高解码阈值处的fer,并且曲线71、74和77示出了低解码阈值处的fer。在闪存存储器设备12的寿命的早期阶段,实现了低berin,其中berin随着闪
存存储器设备12老化而增加。最初,硬解码过程(104)成功解码所有输入帧,而不进行过量的解码迭代。然而,在没有提前硬解码退出的情况下,如曲线70、73、76所示,随着berin增加(例如,随着闪存存储器设备12老化)越来越多的硬解码过程失败,从而显著增加解码迭代的总数。曲线72、75和78示出了本发明的方法和装置如何在高解码阈值下减少迭代次数。曲线71、74和77示出了本发明的方法和装置如何在低解码阈值下减少迭代次数(例如,硬解码的较少迭代,导致较少总体迭代)。
73.任何h-矩阵和码率中的校验节点的数量取决于多个因素,包括但不限于码率、fec块尺寸和块的h-矩阵。在图6至图7所示的示例中,cr1=0.95,cr2=0.9,并且cr3=0.8。代码cr1在代码中具有最少数量的校验方程,并且低解码阈值(dtl1)是校验节点总数的16%,而高解码阈值(dth1)是校验节点的20%,并且极高解码阈值(dtstandard)被设置为在cr1处使用的校验节点的100%。对于cr2,dtl2是代码中校验节点的19%;高解码阈值(dth2)是代码中校验节点的23%;并且极高解码阈值(dtstandard)是代码中校验节点的100%,对于cr3,dtl3是代码中校验节点的23%;高解码阈值(dth3)是代码中校验节点的27%;并且极高解码阈值(dtstandard)是代码中校验节点的100%。
74.在一个示例中,为了计算物理阈值,我们可以将推荐的百分比乘以h-矩阵中的校验节点的数量。例如,对于cr1,在h-矩阵中我们可具有2048个校验节点,并且对于dtl1,我们具有16%的阈值,因此dt1=2048*0.16=327。
75.在一个示例中,闪存存储器控制器10在集成电路中实现为单个半导体管芯。另选地,集成电路可包括电耦合在一起的多个半导体管芯,诸如封装在单个集成电路封装中的多芯片模块。
76.在各种示例中,解码器11和/或闪存存储器控制器10的部分可在现场可编程门阵列(fpga)或专用集成电路(asic)中实现。本领域技术人员应当理解,电路元件的各种功能也可被实现为软件程序中的处理步骤。此类软件可用于例如数字信号处理器、网络处理器、微控制器或通用计算机中。
77.虽然已经示出和描述了本发明的示例和应用,但是对于本领域的技术人员来说显而易见的是,在不脱离本文的发明构思的情况下,可能进行比上述更多的修改。因此,除了所附权利要求的实质之外,本发明不受限制。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献