错误校正码结构

文档序号:1926648 发布日期:2021-12-03 浏览:15次 >En<

阅读说明:本技术 错误校正码结构 (Error correction code structure ) 是由 艾维·史坦纳 哈能·温加顿 梅尔·纳丹-奥列格诺维奇 奥菲尔·肯特 阿米尔·纳西 于 2020-03-13 设计创作,主要内容包括:本文描述的各种实施方案涉及用于对具有待存储在非易失性存储装置中的输入位的数据进行编码的系统及方法,其包含:将所述输入位映射到错误校正码(ECC)的多个分量码;及将所述输入位编码为所述多个分量码,其中由所述多个分量码中的任一者编码的所述输入位中的第一输入位由所述多个分量码中的每隔一个分量码以非重叠方式编码。(Various implementations described herein relate to systems and methods for encoding data having input bits to be stored in a non-volatile storage device, including: mapping the input bits to a plurality of component codes of an Error Correction Code (ECC); and encoding the input bits into the plurality of component codes, wherein a first input bit of the input bits encoded by any one of the plurality of component codes is encoded by every other one of the plurality of component codes in a non-overlapping manner.)

错误校正码结构

技术领域

本公开大体上涉及用于快闪存储器装置的错误校正码(ECC)结构的系统及方法。

背景技术

快闪存储器装置(例如,NAND快闪存储器装置)基于快闪存储器装置的电压阈值启用页面读取。由于编程及读取期间的不同噪声(例如,NAND噪声)及干扰源,有关存储在快闪存储器装置中的信息位的错误可发生。此类错误可归因于编程错误、用非最优阈值读取、保留/读取干扰应力等中的一或多者。强大的ECC可允许在高应力条件下及/或用低复杂度数字信号处理(DSP)进行快速编程(可能具有高编程错误)及读取。

码率由码字的信息内容(称为“有效载荷”)与码字的总大小的比率来定义。举例来说,对于含有k位及r冗余位的码,码率Rc定义。常规编码方法不太适合于支持针对硬解码及软解码两者都具有高码率的码。举例来说,具有高码率(例如,0.9)的常规低密度奇偶校验(LDPC)码具有相当长的码长度,从而导致复杂且昂贵的实施方案。

发明内容

在某些方面中,本实施方案涉及使用具有多个分量码的ECC结构来对将要非易失性存储器装置(例如,快闪存储器装置)中编程的输入有效载荷进行编码。

附图说明

图1展示根据一些实施方案的非易失性存储装置的实例的框图;

图2是说明根据一些实施方案的实例编码方法的过程流程图;

图3是说明根据各种实施方案的使用HFPC结构的编码过程中的映射的图;

图4是说明根据各种实施方案的使用不规则HFPC结构的编码过程中的映射的图;及

图5是说明根据各种实施方案的使用群组HFPC结构的编码过程中的映射的图。

具体实施方式

本文公开的布置涉及用于提供具有改进耐久性及平均读取性能的快闪存储器装置(例如,NAND快闪存储器装置)的系统、设备、方法及非暂时性计算机可读媒体。本公开涉及一种能够以高性能校正高原始位错误率(RBER)的ECC结构。在一些布置中,ECC结构包含经修改半乘积码,称为半折叠乘积码(HFPC)。如本文描述,实施HFPC的ECC结构实现快闪存储器装置的高码率。在一些实例中,执行本文描述的ECC结构的ECC编码器/解码器可在控制器硬件及/或固件上实施。在一些实例中,可在主机软件上实施执行本文描述的ECC结构的ECC编码器/解码器。可在ECC编码器/解码器上实施低复杂度处理。

实施HFPC的ECC结构及执行ECC结构的ECC编码器/解码器以各种方式改进常规ECC结构及ECC编码器/解码器。举例来说,ECC结构提供高读取性能(例如,高读取吞吐量)。在一些布置中,如本文描述的码构造是基于可有效实施的简单分量码(例如但不限于Bose-Chaudhuri-Hocquenghem(BCH)分量)。分量码实施迭代解码。因此,与具有复杂且昂贵实施方案的常规码(例如,LDPC码)相比,码构造具有更具成本效益的实施方案。这允许码结构适合于快闪存储器装置(例如,NAND快闪存储器装置及其控制器)的存储应用。

对于到解码器的硬输入或软输入两者,简单码分量可以低实施复杂度实现改进编码/解码吞吐量及效率。也就是说,本文描述的ECC结构可为硬解码及软解码两者提供高错误校正能力。举例来说,ECC结构可用对解码器的硬输入(硬解码)实现高RBER错误校正,并且可以低实施复杂度提供高吞吐量。这鉴于存储系统通常实施单个读取操作而改进存储系统的错误校正能力。因此,可贯穿存储装置的使用寿命实现存储装置的读取操作的高性能。另外,ECC结构可用对解码器的软输入(软解码)实现高RBER错误校正,从而在高程序擦除(P/E)循环计数及困难的保留条件下提供高可靠性,因为存储系统通常需要非常小的不可校正位错误率(UBER)(例如,1E-15)。

另外,ECC结构例如通过具有低功耗而允许高效硬件实施。此外,ECC结构可经配置以支持多个码率而不损害可靠性,同时近似于多个码率的理论界限。因此,ECC结构可提供低错误下限。ECC结构实现高耐久性及保留及对读取干扰应力的改进恢复力。

在一些实施方案中,可为每一应用配置ECC结构的码率。举例来说,单个引擎可(用固件)配置码参数,以按照所描述方式确定ECC的有效载荷大小及冗余大小。这允许对不同类型的页面使用不同的码,例如根据页面的RBER特性。替代地,可以优化性能与可靠性之间的权衡的方式来确定有效载荷大小。

为辅助说明本实施方案,图1展示根据一些实施方案的非易失性存储装置100的框图。在一些实例中,非易失性存储装置100位于数据中心(为简洁起见未展示)中。数据中心可包含一或多个平台,其中的每一者支持一或多个存储装置(例如但不限于非易失性存储装置100)。在一些实施方案中,平台内的存储装置连接到架顶(TOR)交换机,并且可经由TOR交换机或另一合适的平台内通信机制彼此通信。在一些实施方案中,至少一个路由器可促进不同平台、机架或机柜中的非易失性存储装置当中的通信。非易失性存储装置100的实例包含(但不限于)固态硬盘(SSD)、非易失性双列直插式存储器模块(NVDIMM)、通用快闪存储装置(UFS)、安全数字(SD)装置等。

非易失性存储装置100包含至少控制器110及存储器阵列120。为简洁起见,未展示非易失性存储装置100的其它组件。如所展示,存储器阵列120包含NAND快闪存储器装置130a到130n。NAND快闪存储器装置130a到130n中的每一者包含一或多个个别NAND快闪裸片,所述一或多个个别NAND快闪裸片为能够在不具有电力的情况下保留数据的非易失性存储器(NVM)。因此,NAND快闪存储器装置130a到130n指快闪存储器装置100内的多个NAND快闪存储器装置或裸片。NAND快闪存储器装置130a到130n中的每一者包含具有一或多个平面的裸片。每一平面有多个块,且每一块具有多个页面。

尽管NAND快闪存储器装置130a到130n被展示为存储器阵列120的实例,但用于实施存储器阵列120的非易失性存储器技术的其它实例包含(但不限于)磁随机存取存储器(MRAM)、相变存储器(PCM)、铁电RAM(FeRAM)或类似者。本文描述的ECC结构同样可在使用此类存储器技术的存储器系统上实施。

控制器110的实例包含(但不限于)SSD控制器(例如,客户端SSD控制器、数据中心SSD控制器、企业SSD控制器等)、UFS控制器或SD控制器等。

控制器110可组合多个NAND快闪存储器装置130a到130n中的原始数据存储,使得所述NAND快闪存储器装置130a到130n用作单个存储装置。控制器110可包含微控制器、缓冲器、错误校正系统、快闪存储器转译层(FTL)及快闪存储器接口模块。此类功能可在硬件、软件及固件或其任何组合中实施。在一些布置中,控制器110的软件/固件可存储在非易失性存储装置120或任何其它合适计算机可读存储媒体中。

除其它功能外,控制器110包含用于执行本文描述的功能的合适处理及存储器功能。如所描述,控制器110管理NAND快闪存储器装置130a到130n的各种特征,其包含(但不限于)I/O处置、读取、写入/编程、擦除、监测、日志记录、错误处置、垃圾收集、损耗均衡、逻辑到物理地址映射、数据保护(加密/解密)及类似者。因此,控制器110提供对NAND快闪存储器装置130a到130n的可见性。

控制器110的错误校正系统可包含或以其它方式实施一或多个ECC编码器及一或多个ECC解码器。ECC编码器经配置以使用本文描述的ECC结构对待编程到非易失性存储装置120(例如,到NAND快闪存储器装置130a到130n)的数据(例如,输入有效载荷)进行编码。ECC解码器经配置以对经编码数据进行解码以校正编程错误、由用非最优阈值的读取引起的错误、由保留/读取干扰应力引起的错误等。

在一些实例中,控制器110经配置以依伪三角矩阵形式布置输入有效载荷,并对每一个分量码执行折叠编码(例如,折叠BCH编码)。在一些实例中,有效载荷中的每一个位(例如,每一个信息位)可由(至少)两个分量码(也称为“码分量”)编码,并且每一分量码与所有其它分量码相交。也就是说,针对对信息位进行编码的分量码,执行编码过程,使得每一个分量码的系统位也由所有其它分量码编码。分量码一起使用分量码为每一个信息位提供编码。

在一些布置中,ECC结构使用多维编码。在多维编码中,数据流通过一组多分量编码器(由控制器110实施或以其它方式包含)传递,所述分量编码器一起将完整有效载荷编码为单个码字。可通过将码的系统数据传递通过控制器110的移位寄存器来执行BCH编码。因此,当移位寄存器前进时,系统数据可简单地传递通过控制器110的分量编码器而不被修改。在系统数据被完全传递通过移位寄存器之后,移位寄存器的内容是码的冗余,并被附到数据流。相同特性适用于所有尺寸的所有分量编码器。多维编码可用乘积码或对称乘积码获得,并可提供改进能力。此类结构创建分量码的乘积以获得完整码字。因而,解码过程可包含分量码的迭代解码。

图2是说明根据一些实施方案的编码方法200的实例的过程流程图。参考图1到2,方法200对输入有效载荷进行编码以获得如本文描述的对应ECC。输入有效载荷包含信息位。

在210处,控制器110产生针对输入有效载荷的签名。所述签名可在解码期间用于检查解码是否成功。在一些实例中,签名可通过将信息位传递通过散列函数来产生。在一些实例中,签名包含从信息位产生的循环冗余校验和(CRC)。在一些实例中,除CRC之外,签名还可包含从输入有效载荷产生的其它指示。可产生具有指定长度的CRC。CRC的长度可基于例如但不限于码字解码的目标误检测概率、解码过程的误检测概率(仅在没有CRC的情况下)等因素来确定。码字解码的误检测概率是指尽管存在解码错误,但发出“解码成功”信号的概率。解码过程的误检测概率(仅在没有CRC的情况下)是指尽管不存在解码错误,但发出“解码失败”信号的概率。可使用分量码零校验子来提供针对解码的一定置信水平,在一些情况下,其可能足以允许零长度CRC。否则,CRC可用于组合误检测决策。例如,CRC的较长长度对应于码字解码的低误检测概率。另一方面,CRC的较短长度对应于码字解码的高目标误检测概率。

在220,控制器110将输入有效载荷的每一信息位映射到两个或更多个分量码。在一些实例中,对应于签名的位(例如,CRC位)也可被编码(例如,每一CRC位可被映射到其中ECC是规则HFPC的布置中的一或多个分量码)。也就是说,控制器110实施用ECC的对应分量码映射输入有效载荷的每一信息位的映射函数。在其中ECC为规则HFPC的布置中(例如,图3),每一信息位可映射到两个分量码(例如,i1及i2)。在其中ECC是不规则HFPC的布置中(例如,图4),至少一个信息位可映射到三个或更多个分量码,因此创建不规则编码过程。

在一些实例中,框210及220可同时或并行实施。在其它实例中,框210及220可以任何合适顺序循序实施。

ECC码结构由多个分量码组成。举例来说,每一分量码可为BCH码。可通过每一分量码的校正能力及码率来确定数个分量码n。举例来说,给定每分量码的最小距离Dmin,每一分量码的校正能力t可由以下表示:

t=(Dmin-1)/2 (1)。

其中线性块码的Dmin被定义为所述码中任何一对码向量之间的最小汉明距离。冗余位r的数目可由以下表示:

r=Q·(Dmin-1)/2 (2);

其中Q是在GF(2Q)上定义的BCH分量码的伽罗瓦域参数。给定码率R及有效载荷长度K位,所需的分量码的数目可通过以下来确定:

在230,控制器110用额外信息位更新用于每一分量码的编码的校验子。因此,取决于在220执行的映射函数,每一个分量码对输入有效载荷的一部分进行编码。在按照框210到230对所有有效载荷位(包含信息位及签名位)进行编码之后,产生对应于分量码的一组冗余位。

在240,控制器110(在额外编码过程中)以一些布置对冗余位进行编码。也就是说,冗余位可映射到额外码分量。举例来说,可通过一组类似的分量码来获得编码。举例来说,为更高码率,所述一组分量码可为比一组有效载荷编码组更小的组。每一个冗余编码分量可接收单独冗余输入位用于编码。因而,产生奇偶校验编码的奇偶校验。

图3是说明根据各种实施方案的在使用HFPC结构的编码过程中的映射300的图。参考图1到3,映射300对应于HFPC编码方案并且是框220的实例实施方案。控制器110可包含或可以其它方式实施HFPC交织器,所述HFPC交织器经配置以将输入位301组织(例如,交织或映射)成伪三角矩阵310的形式。在一些实例中,输入位301包含输入有效载荷302及(若干)签名位D1 303。输入有效载荷302包含信息位。如所描述,D1303的实例是额外的CRC位。鉴于CRC编码可被视为外部编码过程,D1 303的位也可被称为“外部奇偶校验位”。从输入位301到伪三角矩阵310的映射由控制器110维持。

如所展示,伪三角矩阵310具有上三角形式,其具有行321到325(为清晰起见省略行323与324之间的行)及列331到335(为清晰起见省略列333与334之间的列)。伪三角矩阵310被展示为具有多个块。伪三角矩阵310中的每一块包含或以其它方式表示输入位301的两个或更多个位。对于伪三角矩阵310的所有块,每一块的输入位的数目可预先确定并相等。因此,通过允许任一对分量码编码(例如,相交于)多于一位来获得HFPC。常规地,任一对分量HFPC仅通过一个共同(相交)位相交。所公开实施方案允许任一对分量码的两个或更多个共同位的相交。鉴于每一行具有比紧靠所述行下方的行多两个或更多个的位(例如,块),并且每一列具有比紧靠其左侧的列多两个或更多个的位(例如,块),伪三角矩阵310是“伪”的。因此,伪三角矩阵的每一行或列与邻近行或列相差两个或更多个位。

在一些实施方案中,输入位301连续地(按任何合适顺序)映射到伪三角矩阵310中的块。举例来说,行321到325可按所述顺序或相反顺序由输入位301逐块连续填充,从行的最左侧块到行的最右侧块,反之亦可。在另一实例中,列331到335可按所述顺序或相反顺序由输入位301逐块连续填充,从列的最顶部块到行的最底部块,反之亦可。在一些实施方案中,输入位301被伪随机地映射到伪三角矩阵310。在其它实施方案中,可使用另一合适映射机制将输入位301映射到伪三角矩阵310。在一个实施例中,映射是一对一映射,其中输入位301中的每一位被映射到伪三角矩阵310的一个位,并且伪三角矩阵310中的位的总数目等于输入位301的数目。在另一实施例中,映射可为一对多,其中输入位301中的每一位被映射到伪三角矩阵310的一或多个位,并且伪三角矩阵310中的位的总数目大于输入位301的数目。

如所展示,上三角形式具有相同数目个列及相同数目个行。在上三角形式中,行321在伪三角矩阵310中所有行中含有最多位。行322具有比行321少一个的块。行323具有比行322少一个的块,依此类推。行324具有两个块,并且作为最下行的行325具有一个块。换句话说,伪三角矩阵310中的任何行(除行321外)具有比正上方的行少一个的块。类似地,在上三角形形式中,作为最左侧列的列331具有一个块。列332具有比列331多一个的块。列333具有比列332多一个的块,依此类推。作为最右侧列的列335在伪三角矩阵310中的列中具有最多块。换句话说,伪三角矩阵310中的任何列(除列335外)具有比紧靠右侧的列少一个的块。

以伪三角矩阵310的上三角形式组织或映射输入位301(其包含输入有效载荷302的位及(若干)签名位D1 303)允许每一个分量码以所描述方式与具有相同大小或几乎相同大小的行及列中的位相关联。举例来说,R1 341表示对应于第一分量码的冗余位。R1341冗余位通过对第一行中的输入位301(例如,行321中的位)进行编码(例如,折叠分量编码)来获得。R2 342冗余位通过对第一列(例如,列331中的位)及第二行(例如,行322中的位)中的输入位301进行编码(例如,经由折叠分量编码)来获得。由R2 342编码的总位的数目(例如,列331中的位加上行322中的位)与由R1 341编码的总位的数目(例如,行321中的位)相同。R3 343冗余位通过对第二列(例如,列332中的位)及第三行(例如,行323中的位)中的输入位301进行编码(例如,经由折叠分量编码)来获得。由R3 343编码的总位的数目(例如,列332中的位加上行323中的位)与由R2 342编码的总位的数目(以及与由R1 341编码的总位的数目)相同。所述过程继续获得最后冗余位Rn 345,所述最后冗余位Rn 345对最后列中的输入位301(例如,列335中的位)进行编码(例如,经由折叠分量编码)。因此,每一分量码对伪三角矩阵310中的行及列进行编码,从而提供折叠分量编码。折叠分量编码的实例是折叠BCH编码。

换句话说,根据映射300,输入位301经映射到ECC的分量码并且经编码为经映射分量码。举例来说,编码过程将输入位301组织或映射为矩阵(例如,伪三角矩阵形式),并对每一个分量码执行折叠BCH编码。输入位301中的每一者由两个分量码编码。每一分量码与所有其它分量码相交。对于对输入位301进行编码的分量码,执行编码过程,使得每一个分量码的系统位也由所有其它分量码编码。由分量码中的任一者编码的输入位也由ECC中的每隔一个分量码以非重叠方式编码。举例来说,由对应于R3 343冗余位的分量码编码的位也由对应于R1 341、R2 342及R4到Rn 345的其它分量码编码。在行321及列332的相交处的位也由对应于R1 341的分量码编码;在行322及列332的相交处的位也由对应于R2 342的分量码编码;在行323及列334的相交处的位也由对应于Rn-1 344的分量码编码;在行323及列335的相交处的位也由对应于Rn 345的分量码编码。由分量码中的任一者(例如,对应于R3343的分量码)编码的位的每一块由所述分量码(例如,对应于R3 343的分量码)及至多分量码中的另一者,因此以非重叠方式编码。因而,每一个分量码都相互依赖于所有其它分量码。分量码一起使用两个分量码提供输入位301中的每一者的编码。鉴于每一分量码对相同数目个位进行编码,分量码具有相同码率。

在一些实施方案中,奇偶校验位可经由奇偶校验编码产生。举例来说,折叠奇偶校验编码可用于将R1 341到Rn 345中的每一者的至少一部分编码成另一分量码(例如,折叠乘积码350,其为一组数据包)。折叠乘积码350由奇偶校验位组成。产生奇偶校验位的此方法可有效地用于获得HFPC的简单硬件编码实施方案,因为所述方法可使用硬或软解码的各种方法进行迭代解码。

在一些实例中,为提供有效结构,对R1 341到Rn 345中每一者的不完整部分(例如,非整体)进行编码以获得折叠乘积码350。这是因为仅需要解码输入位301(例如,输入有效载荷302)的经编码版本,即解码所有冗余位R1 341到Rn 345可延长解码时间。

在一些配置中,通过利用不规则半折叠乘积码编码,一些信息位的保护度可大于2。举例来说,除如参考图3描述对常规半折叠乘积码进行编码之外,还可通过用一组不同的分量码对输入位301中的一些进行编码来对所述位应用额外的编码过程。在一些实例中,编码过程的不规则性由输入位301中的一些由两个以上的分量码编码而输入位301中的其它位由两个分量码编码引起,从而对码字内的位产生不平等的错误保护并导致改进校正能力(如适用于迭代解码)。在所述方面,图4是说明根据各种实施方案的使用不规则HFPC结构的编码过程中的映射400的图。

参考图1到4,映射400对应于不规则HFPC编码方案,并且是框220的实例实施方案。控制器110可包含或可以其它方式实施HFPC交织器,所述HFPC交织器经配置以将输入位301组织(例如,交织或映射)成伪三角矩阵310,如结合图4描述。冗余位R1 341’、R2 342’、R3343’、…、Rn-m-1 344’及Rn-m 345’以类似于按照图3产生R1 341到Rn 345所依的方式的方式产生。举例来说,最后冗余位Rn-m 345’,其对最后列中的输入位301(例如,列335中的位)进行编码(例如,经由折叠分量编码)。

在一些实例中,输入位301包含受保护部分401(“3D受保护有效载荷部分”)。受保护部分401含有一或多个位,可为可能需要额外错误校正保护的输入位301的任何部分(例如,已知受保护部分401容易出错)。

从关于图3描述的HFPC编码过程产生的冗余位R1 341’到Rn-m 345’可由单独另一组的分量码来编码,所述单独另一组的分量码用于通过另一组码分量对这些冗余位的全部或子集进行编码。受保护部分401可使用单独一组分量码进行编码(除如所描述的基于伪三角矩阵310进行编码之外)。如所展示,可使用与伪三角矩阵310的HFPC映射不同的映射410来创建位411、412、…、413(为简洁起见,省略412与413之间的位)而对受保护部分401进行编码。映射410创建m组冗余位P1 421、P2 422、…、Pm 423。

因此,受保护部分401中的位可由三个分量码保护,即两个基于伪三角矩阵310的HFPC映射,且另一个基于映射过程410。此额外映射过程410因此提供受保护部分401的额外保护,提供迭代解码过程的改进起始能力,导致更高解码能力,并导致低复杂度编码过程。

在一些实施方案中,奇偶校验位(例如,折叠乘积码430)可经由奇偶校验编码产生。举例来说,折叠奇偶校验编码可用于将R1 341’到Rn-m 345’中的每一者的至少一部分及P1 421到Pm 423中的每一者的至少一部分编码为另一分量码(例如,折叠乘积码430,其为一组数据包)。举例来说,通过使用R1 341’到Rn-m 345’中每一者的至少一部分的折叠奇偶校验编码获得的分量码可被添加到通过使用R1 341’到Rn-m 345’中每一者的至少一部分的折叠奇偶校验编码获得的分量码,以产生折叠乘积码430。

如所展示,在对应于映射300及400的ECC结构中解码期间,针对每一分量码的位取决于针对另一分量码的位。在其它实施方案中,多个分量码可被分组在一起,并且根据HFPC结构像单个元素一样起作用,使得分量码的每一群组内的分量码的位当中不存在相依性。鉴于此编码方案是通过定义群组而获得的低复杂度编码及解码码结构(其中每一群组包含独立分量),所述编码方案减少HFPC结构的相依性,并且在硬件中实现更快解码实施方案。

在所述方面,图5是说明根据各种实施方案的使用群组HFPC结构的编码过程中的映射500的图。参考图1到5,映射500对应于群组HFPC编码方案,并且是框220的实例实施方案。控制器110的HFPC交织器经配置以将输入位501组织(例如,交织)成伪三角矩阵510的形式。在一些实例中,输入位501包含输入有效载荷502及(若干)签名位D1 503。输入有效载荷502包含信息位。如所描述,D1 503的实例是额外CRC位(外部奇偶校验位)。从输入位501到伪三角矩阵510的映射由控制器110维持。

如所展示,伪三角矩阵510具有上三角形式,所述上三角形式具有行521到536(为清晰起见省略行532与533之间的行)及列541到556(为清晰起见省略列552及553之间的列)。伪三角矩阵510被展示为具有多个块。伪三角矩阵510中的每一块包含或以其它方式表示输入位501的两个或更多个位。对于伪三角矩阵510的所有块,每一块的输入位的数目可预先确定并相等。所公开实施方案允许任一对分量码的两个或更多个共同位的相交。

在一些实施方案中,输入位501连续地(按任何合适顺序)映射到伪三角矩阵510中的块。举例来说,行521到536可按所述顺序或相反顺序由输入位501逐块连续填充,从行的最左侧块到行的最右侧块,反之亦可。在另一实例中,列541到556可按所述顺序或相反顺序由输入位501逐块连续填充,从列的最顶部块到行的最底部块,反之亦可。在一些实施方案中,输入位501被伪随机地映射到伪三角矩阵510。在其它实施方案中,可使用另一合适映射机制将输入位501映射到伪三角矩阵510。

伪三角矩阵510中的块、行及列可被分组在一起。举例来说,伪三角矩阵510包含第一群组的列541到544、第二群组的列545到548、第三群组的列549到552、…、及另一群组的列553到556。伪三角矩阵510包含第一群组的行521到524、第二群组的行525到528、第三群组的行529到532、…、及另一群组的行533到536。因此,HFPC结构被划分为4个分量码的群组。每4个分量码根据HFPC指南进行编码。尽管图5中展示4个分量码群组(例如,4行/列),但任何数目(例如,2、3、6、8、10、12、16等)个分量码可被分组在一起。

如所展示,上三角形式具有相同数目个列及相同数目个行。同一分量码群组中的行(例如,行521到524)或列(例如,列541到544)具有相同数目个块且因此具有相同数目个位。在上三角形式中,行521到524在伪三角矩阵510中的所有行中含有最多位。行525到528中的每一者具有比行521到524中的任一者少一个群组的块(4个块,对应于列541到544的群组)。行529到532中的每一者具有比行525到528中的任一者少一个群组的块(4个块,对应于列545到548的群组),以此类推。作为最下行的行533到536中的每一者具有一个群组的块(例如,4个块)。换句话说,伪三角矩阵510中的任何行(除行521到524之外)具有比正上方的群组的行少4个的块。类似地,在上三角形形式中,作为最左侧列中的一者的列541到544中的每一者具有一个群组的块(例如,4个块)。列545到548中的每一者比列541到544中的任一者多一个群组的块(4个块,对应于行525到528的群组)。列549到552中的每一者比列545到548中的任一者多一群组的块(4个块,对应于行529到532的群组),以此类推。作为最右侧列的列553到556中的每一者具有最多数目个块。换句话说,伪三角矩阵510中的任何列(除列553到556之外)具有比紧靠右侧的群组的列少4个的块。

以伪三角矩阵510的上三角形式组织或映射输入位501允许每一个分量码以所描述方式与具有相同大小或几乎相同大小的行及列中的位相关联。同一群组内的分量码对单独组的输入位501进行编码并且彼此独立。

R1 561到R4 564是基于同一群组的分量码确定的冗余位。R1 561表示对应于第一分量码的冗余位并且通过对第一行中的输入位501(例如,行521中的位)进行编码(例如,折叠分量编码)来获得。R2 562、R3 563及R4 564表示对应于额外分量码的冗余位,并且分别通过对行522、523及523中的位中的输入位501进行编码(例如,折叠分量编码)来获得。用于确定R1 561到R4 564中的每一者的位不重叠,且因此R1 561到R4 564被独立确定。

R5 565、R6 566、R7 567及R8 568表示对应于额外分量码的冗余位并且分别通过对列544及行525、列543及行526、列542及行527以及列541及行528中的位中的输入位501进行编码(例如,折叠分量编码)来获得。用于确定R5 565到R8 568中的每一者的位不重叠,且因此R5 565到R8 568被独立确定。

R9 569、R10 570、R11 571及R12 572表示对应于额外分量码的冗余位并且分别通过对列548及行529、列547及行530、列546及行531以及列545及行532中的位中的输入位501进行编码(例如,折叠分量编码)来获得。用于确定R9 569到R12 572中的每一者的位不重叠,且因此R9 569到R12 572被独立确定。

此过程继续直到Rn-3 573、Rn-2 574、Rn-1 575及Rn 576被确定为止。Rn-3 573、Rn-2 574、Rn-1 575及Rn 576表示对应于额外分量码的冗余位并且分别通过对列556、列555、列554以及列553中的位中的输入位501进行编码(例如,折叠分量编码)来获得。用于确定Rn-3 573、Rn-2 574、Rn-1 575及Rn 576中的每一者的位不重叠,且因此Rn-3 573、Rn-2574、Rn-1 575及Rn 576被独立确定。折叠分量编码的实例是折叠BCH编码。

在分量码被划分为两个群组的独立分量码的特殊情况下,所得译码方案退化为折叠乘积码。

换句话说,根据映射500,输入位501经映射到ECC的分量码并且经编码为经映射分量码。举例来说,编码过程将输入位501组织或映射为矩阵(例如,伪三角矩阵形式),并对每一个分量码执行折叠BCH编码。输入位501中的每一者由不同分量码群组的两个分量码编码。因此,任何分量码与处于与所述分量码所属的群组相同的群组中的所有其它分量码相交。对于对输入位501进行编码的分量码,执行编码过程,使得每一个分量码的系统位也由属于不同群组的所有其它分量码编码,其中消除分量码群组内的相依性。由分量码的给定分量码编码的输入位也以非重叠方式由每隔一个分量码(其与所述分量码不在同一群组中)编码。举例来说,由对应于R9 569冗余位的分量码编码的位也由对应于R1 561到R8 568及R11到Rn 576的其它分量码编码,所述其它分量码不在对应于R9 569冗余位的分量码所属的群组中。由分量码中的任一者(例如,对应于R9 569的分量码)编码的位的每一块由所述分量码(例如,对应于R9 569的分量码)及至多分量码中的另一者,因此以非重叠方式编码。因而,每一个分量码相互依赖于不在同一群组内的所有其它分量码。分量码一起使用两个分量码提供每一输入位501的编码。

在一些实施方案中,奇偶校验位可经由奇偶校验编码产生。举例来说,折叠奇偶校验编码可用于将R1 561到Rn 576中的每一者的至少一部分编码成另一分量码(例如,折叠乘积码580,其为一组数据包)。折叠乘积码580(例如,具有Rp1到Rp3)是奇偶校验位。产生奇偶校验位的此方法可有效地获得HFPC的简单硬件编码实施方案,因为所述方法可使用硬或软解码的各种方法进行迭代解码。

关于基于本文描述的ECC结构的解码的进一步公开在申请于[XXXX]的标题为“错误校正码解码器(Error Correction Code Decoder)”的代理人案卷号117441-0125中描述,其全部内容特此以引用的方式的并入。

提供前述描述以使所属领域的技术人员能够实践本文所描述的各个方面。对这些方面的各种修改对于所属领域的技术人员来说将是显而易见的,且本文中所定义的一般原理可应用于其它方面。因此,权利要求不旨在限于本文所展示的方面,而是被赋予与语言权利要求一致的完整范围,其中对单数元件的引用并不旨在意味着“一个且仅一个”(除非特别如此陈述),而是“一或多个”。除非另有特别陈述,否则术语“一些”指一或多个。所属领域的一般技术人员已知或随后了解的与先前描述通篇描述的各个方面的元件的所有结构及功能等效物通过引用的方式明确地并入本文,且旨在被权利要求所涵盖。此外,本文所公开的任何内容不旨在贡献给社会大众,无论权利要求中是否明确引述此类公开。将不把任何权利要求元素解释为手段加功能,除非使用短语“用于……的手段”来明确引述所述元素。

应理解,所公开的过程中的步骤的特定顺序或层次结构是说明性方法的实例。应理解,在保持在先前描述的范围内的同时,基于设计偏好,过程中的步骤的特定顺序或层次可被重新布置。所附方法权利要求以样本顺序呈现各种步骤的元素,并不意味着限于所呈现的特定顺序或层次结构。

提供对所公开实施方式的先前描述以使所属领域的技术人员能够制作或使用所公开的标的物。对这些实施方案的各种修改对于所属领域的技术人员来说将是显而易见的,且本文中所界定的一般原理可应用于其它实施方案而不脱离先前描述的精神或范围。因此,先前的描述不旨在限于本文所展示的实施方案,而是被赋予与本文所公开的原理及新颖特征一致的最宽范围。

所说明及描述的各种实例仅作为实例被提供来说明权利要求的各种特征。然而,关于任何给定实例所展示及描述的特征不一定限于相关联的实例,且可与所展示及描述的其它实例一起使用或组合。进一步来说,权利要求不旨在受任一个实例的限制。

前述方法描述及工艺流程图仅作为说明性实例提供,且不旨在要求或暗示必须按照所呈现的顺序执行各种实例的步骤。如所属领域的技术人员将理解,前述实例中的步骤顺序可以任何顺序执行。例如“此后”、“然后”、“接下来”等词语不旨在限制步骤的顺序;这些词语简单用来引导读者阅读方法的描述。进一步来说,例如,使用冠词“一”、“一个”或“所述”等单数形式对权利要求元素的任何引用不得被解释为将元素限制为单数形式。

结合本文所公开的实例描述的各种说明性逻辑块、模块、电路及算法步骤可经实施为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件与软件的这种可互换性,上文就其功能性大体上描述各种说明性组件、块、模块、电路及步骤。此类功能是作为硬件还是软件实施取决于强加在整体系统上的特定应用及设计约束。所属领域的技术人员可针对每一特定应用以不同的方式实施所描述的功能,但这种实施方案决策不应被解释为导致偏离本公开的范围。

用于实施结合本文所公开的实例描述的各种说明性逻辑、逻辑块、模块及电路的硬件可使用通用处理器、DSP、ASIC、FPGA或其它可编程逻辑装置、离散栅极或晶体管逻辑、离散硬件组件或经设计以执行本文所描述的功能的其任何组合来实施或执行。通用处理器可为微处理器,但在替代方案中,处理器可为任何常规处理器、控制器、微控制器或状态机。处理器还可经实施为计算装置的组合,例如,DSP与微处理器的组合、多个微处理器、一或多个微处理器与DSP核心的结合、或任何其它此类配置。替代地,一些步骤或方法可由特定于给定功能的电路系统执行。

在一些示范性实例中,所描述的功能可在硬件、软件、固件或其任何组合中实施。如果在软件中实施,那么功能可作为一或多个指令或代码存储在非暂时性计算机可读存储媒体或非暂时性处理器可读存储媒体上。本文所公开的方法或算法的步骤可体现在处理器可执行软件模块中,所述处理器可执行软件模块可驻留在非暂时性计算机可读或处理器可读存储媒体上。非暂时性计算机可读或处理器可读存储媒体可为可由计算机或处理器存取的任何存储媒体。以实例的方式但非限制,此类非暂时性计算机可读或处理器可读存储媒体可包含RAM、ROM、EEPROM、快闪存储器、CD-ROM或其它光盘存储器、磁盘存储器或其它磁存储器,或可用于以指令或数据结构的形式存储期望程序代码,并可由计算机存取的任何其它媒体。本文所使用的磁盘及光盘包含光盘(CD)、激光光盘、光学盘、数字多功能光盘(DVD)、软盘及蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘用激光以光学方式再现数据。上述组合也包含在非暂时性计算机可读媒体及处理器可读媒体的范围内。此外,方法或算法的操作可作为代码及/或指令的一个或任意组合或集合驻留在可并入计算机程序产品的非暂时性处理器可读存储媒体及/或计算机可读存储媒体上。

提供所公开实例的前述描述以使所属领域的技术人员能够制作或使用本公开。对这些实例的各种修改对于所属领域的技术人员来说将是显而易见的,且本文中所定义的一般原理可应用于一些实例,而不脱离本公开的精神或范围。因此,本公开不旨在限于本文所展示的实例,而是被赋予与以下权利要求以及本文所揭示的原理及新颖特征一致的最宽范围。

18页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:处理器/端点通信耦合件配置系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!