CN115686926A - 硬件实现方法、终端及存储介质 - Google Patents

硬件实现方法、终端及存储介质 Download PDF

Info

Publication number
CN115686926A
CN115686926A CN202211318733.0A CN202211318733A CN115686926A CN 115686926 A CN115686926 A CN 115686926A CN 202211318733 A CN202211318733 A CN 202211318733A CN 115686926 A CN115686926 A CN 115686926A
Authority
CN
China
Prior art keywords
matrix
lambda
error
coefficients
hardware
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202211318733.0A
Other languages
English (en)
Inventor
陈静静
吴睿振
王凛
孙华锦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shandong Yunhai Guochuang Cloud Computing Equipment Industry Innovation Center Co Ltd
Original Assignee
Shandong Yunhai Guochuang Cloud Computing Equipment Industry Innovation Center Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shandong Yunhai Guochuang Cloud Computing Equipment Industry Innovation Center Co Ltd filed Critical Shandong Yunhai Guochuang Cloud Computing Equipment Industry Innovation Center Co Ltd
Priority to CN202211318733.0A priority Critical patent/CN115686926A/zh
Publication of CN115686926A publication Critical patent/CN115686926A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Error Detection And Correction (AREA)

Abstract

本发明涉及计算机技术领域,具体涉及硬件实现方法、终端及存储介质。该方法,对编码矩阵A遍历其所有错误形;针对每种错误形式,从原始的(k+r)*k的编码矩阵A得到k*k维的方阵B;基于Cayley‑Hamilton定理对方阵B进行矩阵求逆,得到对应的λkk‑1,…λ各个次幂的系数及常数项;将对应的λkk‑1,…λ各个次幂的系数及常数项的进行保存。本发明提出的基于Cayley‑Hamilton定理进行矩阵求逆的实现方法,提高了算法运算的并行度;算法模式易于复用,适用于硬件电路的实现。

Description

硬件实现方法、终端及存储介质
技术领域
本发明涉及计算机技术领域,尤其涉及硬件实现方法、终端及存储介质。
背景技术
面对海量数据的存储要求,分布式存储以其成本低廉,可扩展性好等优势逐渐取代了统一存储的主导地位,在理论研究和实际应用方面得到了越来越多的关注。分布式存储系统多以廉价的磁盘作为存储节点,每个存储节点的可靠性往往不会很高,另一方面,一个分布式存储系统通常包含很多的节点,由于软硬件故障,人为失误等原因,系统常常发生节点失效的情况。为了提高分布式存储系统的数据可靠性,保证数据收集节点能以很高的概率实现原始文件的重构,需要在存储原始数据的基础上,额外存储一定数量的冗余,使得在出现部分节点失效的情况下,系统仍然可以正常运行,数据收集节点仍然可以对原始文件实现解码恢复。同时,为了维持系统的可靠性,需要对失效的节点及时进行修复,因此,设计一个良好的节点修复机制十分重要。
纠删码(Erasure Code)属于编码理论中的一种前向纠错技术,最早应用于通信领域以解决数据传输中的丢失与损耗这类问题。由于纠删码技术在防止数据丢失取得了较好的效果,因此被引入存储领域。纠删码可以在保证相同可靠性的前提下有效地降低存储开销,因此纠删码技术被广泛地应用于各大存储系统以及数据中心例如微软的Azure、Facebook的F4等。
纠删码的种类众多,在实际存储系统中较常见的有应用在分布式环境下的RS码(Reed-Solomon Code)。RS码与两个参数k和r相关。给定两个正整数k和r,RS码将k个数据块编码为r个额外的校验块。而r个校验块基于范德蒙矩阵或柯西矩阵进行编码的方式就称为利用范德蒙矩阵或柯西矩阵编码的RS纠删码,基于范德蒙矩阵的RS纠删码编码过程如下所示:
Figure BDA0003910492540000021
基于柯西矩阵的RS纠删码编码过程如下所示:
Figure BDA0003910492540000022
上部分的k*k矩阵对应的就是k个原始数据块,下部分的r*k矩阵对应的就是编码矩阵,通过与原始数据D1到Dk相乘,得到新添加的P1到Pr就是编码所得到的r个校验数据。当其中任意做多r个数据在传输中出错或丢失,需要纠错时,即用剩余数据对应矩阵的逆矩阵与数据相乘,即会得到原始数据块D1到Dk(推导过程不在赘述)。
以D1到Dr数据丢失,进行解码为例,过程如下所示:
Figure BDA0003910492540000023
可知纠删码的核心概念是构建一个可逆的编码矩阵用以产生校验数据,其逆矩阵可经过计算恢复原始数据。常见的RS纠删码使用的是上面介绍的柯西矩阵或范德蒙矩阵,这样的优势是所得到的矩阵肯定可逆,其任意子矩阵也都可逆,并且矩阵的大小扩充简单。
常见的RS纠删码逆矩阵的计算采用的是高斯消元法,这种通用解法适用于任何可逆矩阵的求逆,但是使用高斯消元法进行矩阵求逆在硬件实现过程中无法并行实现,时间复杂度为O(k+r)3,才能得到所需要的逆矩阵,然后恢复相应的数据块。
发明内容
为了解决上述现有技术中存在的技术问题,本发明提供了一种硬件实现方法、终端及存储介质,矩阵求逆在硬件实现过程中可以并行实现。
为实现上述目的,本发明实施例提供了如下的技术方案:
第一方面,在本发明提供的一个实施例中,提供了硬件实现方法,该方法包括以下步骤:
对编码矩阵A遍历其所有错误形;
针对每种错误形式,从原始的(k+r)*k的编码矩阵A得到k*k维的方阵B;
基于Cayley-Hamilton定理对方阵B进行矩阵求逆,得到对应的λkk-1,…λ各个次幂的系数及常数项;
将对应的λkk-1,…λ各个次幂的系数及常数项的进行保存。
作为本发明的进一步方案,对于(k+r)*k维的编码矩阵A,最多可以容忍r个数据块的错误,首先需要遍历所有错误形式,共有
Figure BDA0003910492540000031
种错误形式。
作为本发明的进一步方案,针对每种错误形式,确定错误数据块的位置l1,…lm(m≤r),从编码矩阵A中将l1,…lm(m≤r)对应的行删掉,得到(k+r-m)*k维的矩阵B';取矩阵B'的前k列,得到k*k维的方阵B,对方阵B求逆就可以得到解码矩阵B-1
作为本发明的进一步方案,对于所有错误形式对应的方阵B,通过计算所有的λE-B矩阵的行列式,得到对应的λkk-1,…λ各个次幂的系数及常数项。
作为本发明的进一步方案,若有数据块发生错误时:
确定错误发生的数量及位置l1,…lm(m≤r);
从编码矩阵A中将l1,…lm(m≤r)对应的行删掉,得到(k+r-m)*k维的矩阵B';取矩阵B'的前k列,得到k*k维的方阵B,对方阵B求逆就可以得到解码矩阵B-1
获取该错误得到对应的λkk-1,…λ各个次幂的系数及常数项;同时通过硬件计算Bk-1,Bk-2,…B2
Bk-1,Bk-2,…B2与对应的λkk-1,…λ各个次幂的系数及常数项进行乘加运算得到解码矩阵B-1
作为本发明的进一步方案,该方法包括:
第一步:确定矩阵A丢失数据块的数量为2,数据块对应的位置为3,4;
第二步:将矩阵A的第3,4行去掉之后得到矩阵A'。
作为本发明的进一步方案,该方法包括:
第三步:取矩阵A'的前4行,此时得到4*4维的矩阵B如下所示,我们就是要通过Cayley-Hamilton定理对矩阵B进行求逆B-1
Figure BDA0003910492540000051
第四步:计算|λE-B|
Figure BDA0003910492540000052
作为本发明的进一步方案,该方法包括:
第五步:由Cayley-Hamilton定理有B4-11B3+23B2-17B+4E=0,即
Figure BDA0003910492540000053
Figure BDA0003910492540000054
第六步:计算B3,B2;B3,B2是矩阵的幂计算,可以并行实现;
第七步:B3,B2,B,E与对应的系数
Figure BDA0003910492540000055
进行乘加运算即可得到B-1
第二方面,在本发明提供的又一个实施例中,提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器加载并执行所述计算机程序时实现硬件实现方法的步骤。
第三方面,在本发明提供的再一个实施例中,提供了一种存储介质,存储有计算机程序,所述计算机程序被处理器加载并执行时实现所述硬件实现方法的步骤。
本发明提供的技术方案,具有如下有益效果:
本发明提供的硬件实现方法、终端及存储介质,对于编码矩阵A,首先遍历所有错误形式,从原始的(k+r)*k的编码矩阵A得到k*k维的方阵B,计算对应的λE-B矩阵的行列式,将对应λ各个次幂的系数的进行保存;当有数据块发生错误时,读取相应的系数,同时计算矩阵B的各个次幂,与对应的系数进行乘加运算即可。遍历所有的错误形式,并需要计算λ各个次幂的系数的进行保存,但是在进行解码的时候只需要计算矩阵B的各个次幂,同时读取对应的系数进行乘加运算即可;矩阵B的各个次幂的计算之间没有相互依赖关系,可以并行进行实现,提高了算法并行度。相比传统高斯消元法进行矩阵求逆,本发明提出的基于Cayley-Hamilton定理进行矩阵求逆的实现方法,提高了算法运算的并行度;算法模式易于复用,适用于硬件电路的实现。
本发明的这些方面或其他方面在以下实施例的描述中会更加简明易懂。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
图1为本发明一个实施例的硬件实现方法的流程图;
图2为本发明一个实施例的终端的结构示意图。
图中:处理器-501、通信接口-502、存储器-503、通信总线-504。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
附图中所示的流程图仅是示例说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解、组合或部分合并,因此实际执行的顺序有可能根据实际情况改变。
应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
具体地,下面结合附图,对本发明实施例作进一步阐述。
请参阅图1,图1是本发明实施例提供的一种硬件实现方法的流程图,如图1所示,该硬件实现方法包括步骤S10至步骤S40。
S10、对编码矩阵A遍历其所有错误形式。
在本发明的实施例中,对于(k+r)*k维的编码矩阵A,最多可以容忍r个数据块的错误,首先需要遍历所有错误形式,共有
Figure BDA0003910492540000071
种错误形式。
S20、针对每种错误形式,从原始的(k+r)*k的编码矩阵A得到k*k维的方阵B;
在本发明的实施例中,针对每种错误形式,确定错误数据块的位置l1,…lm(m≤r),从编码矩阵A中将l1,…lm(m≤r)对应的行删掉,得到(k+r-m)*k维的矩阵B';取矩阵B'的前k列,得到k*k维的方阵B,对方阵B求逆就可以得到解码矩阵B-1
S30、基于Cayley-Hamilton定理对方阵B进行矩阵求逆,得到对应的λkk-1,…λ各个次幂的系数及常数项。
在本发明的实施例中,对于所有错误形式对应的方阵B,通过计算所有的λE-B矩阵的行列式,得到对应的λkk-1,…λ各个次幂的系数及常数项。
S40、将对应的λkk-1,…λ各个次幂的系数及常数项的进行保存。
在本发明的实施例中,所述硬件实现方法,还包括:
若有数据块发生错误时:
步骤一、确定错误发生的数量及位置l1,…lm(m≤r);
步骤二、从编码矩阵A中将l1,…lm(m≤r)对应的行删掉,得到(k+r-m)*k维的矩阵B';取矩阵B'的前k列,得到k*k维的方阵B,对方阵B求逆就可以得到解码矩阵B-1
步骤三、获取该错误得到对应的λkk-1,…λ各个次幂的系数及常数项;同时通过硬件计算Bk-1,Bk-2,…B2
步骤四、Bk-1,Bk-2,…B2与对应的λkk-1,…λ各个次幂的系数及常数项进行乘加运算得到解码矩阵B-1
示例性的,为说明利用Cayley-Hamilton定理进行矩阵求逆的方法,我们以一个RS(k=4,r=2)为例介绍当出现数据损失时,用伴随矩阵的方法进行矩阵求逆的过程,假设编码矩阵如下所示:
Figure BDA0003910492540000081
假设有2个损坏的数据块,假设第3,4这两个数据块损坏了,本发明算法的具体实现过程如下:
第一步:确定矩阵A丢失数据块的数量为2,数据块对应的位置为3,4;
第二步:将矩阵A的第3,4行去掉之后得到矩阵A';
第三步:取矩阵A'的前4行,此时得到4*4维的矩阵B如下所示,我们就是要通过Cayley-Hamilton定理对矩阵B进行求逆B-1
Figure BDA0003910492540000091
第四步:计算λE-B
Figure BDA0003910492540000092
第五步:由Cayley-Hamilton定理有B4-11B3+23B2-17B+4E=0,即
Figure BDA0003910492540000093
Figure BDA0003910492540000094
第六步:计算B3,B2;B3,B2是矩阵的幂计算,可以并行实现;
第七步:B3,B2,B,E与对应的系数
Figure BDA0003910492540000095
进行乘加运算即可得到B-1
从上面的计算过程可以看出使用Cayley-Hamilton定理进行矩阵求逆,对于k*k维的方阵B,首先需要计算λE-B矩阵的行列式,获取行列式中λkk-1,…λ的系数及常数项;然后计算矩阵B的各个次幂Bk-1,Bk-2,…B2;随后Bk-1,Bk-2,…B2与对应的λkk-1,…λ各个次幂的系数及常数项进行乘加运算即可得到解码矩阵B-1
本发明对于编码矩阵A,首先遍历所有错误形式,从原始的(k+r)*k的编码矩阵A得到k*k维的方阵B,计算对应的λE-B矩阵的行列式,将对应λ各个次幂的系数的进行保存;当有数据块发生错误时,读取相应的系数,同时计算矩阵B的各个次幂,与对应的系数进行乘加运算即可。遍历所有的错误形式,并需要计算λ各个次幂的系数的进行保存,但是在进行解码的时候只需要计算矩阵B的各个次幂,同时读取对应的系数进行乘加运算即可;矩阵B的各个次幂的计算之间没有相互依赖关系,可以并行进行实现,提高了算法并行度。相比传统高斯消元法进行矩阵求逆,本发明提出的基于Cayley-Hamilton定理进行矩阵求逆的实现方法,提高了算法运算的并行度;算法模式易于复用,适用于硬件电路的实现。
应该理解的是,上述虽然是按照某一顺序描述的,但是这些步骤并不是必然按照上述顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,本实施例的一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,参见图2所示,在本发明的实施例中还提供了一种计算机设备,包括处理器501、通信接口502、存储器503和通信总线504,其中,处理器501,通信接口502,存储器503通过通信总线504完成相互间的通信。
存储器503,用于存放计算机程序;
处理器501,用于执行存储器503上所存放的计算机程序时,执行所述的硬件实现方法,该处理器执行指令时实现上述方法实施例中的步骤:
S10、对编码矩阵A遍历其所有错误形式。
在本发明的实施例中,对于(k+r)*k维的编码矩阵A,最多可以容忍r个数据块的错误,首先需要遍历所有错误形式,共有
Figure BDA0003910492540000101
种错误形式。
S20、针对每种错误形式,从原始的(k+r)…k的编码矩阵A得到k…k维的方阵B;
在本发明的实施例中,针对每种错误形式,确定错误数据块的位置l1,…lm(m≤r),从编码矩阵A中将l1,…lm(m≤r)对应的行删掉,得到(k+r-m)…k维的矩阵B';取矩阵B'的前k列,得到k…k维的方阵B,对方阵B求逆就可以得到解码矩阵B-1
S30、基于Cayley-Hamilton定理对方阵B进行矩阵求逆,得到对应的λkk-1,…λ各个次幂的系数及常数项。
在本发明的实施例中,对于所有错误形式对应的方阵B,通过计算所有的λE-B矩阵的行列式,得到对应的λkk-1,…λ各个次幂的系数及常数项。
S40、将对应的λkk-1,…λ各个次幂的系数及常数项的进行保存。
在本发明的实施例中,所述硬件实现方法,还包括:
若有数据块发生错误时:
步骤一、确定错误发生的数量及位置l1,…lm(m≤r);
步骤二、从编码矩阵A中将l1,…lm(m≤r)对应的行删掉,得到(k+r-m)*k维的矩阵B';取矩阵B'的前k列,得到k*k维的方阵B,对方阵B求逆就可以得到解码矩阵B-1
步骤三、获取该错误得到对应的λkk-1,…λ各个次幂的系数及常数项;同时通过硬件计算Bk-1,Bk-2,…B2
步骤四、Bk-1,Bk-2,…B2与对应的λkk-1,…λ各个次幂的系数及常数项进行乘加运算得到解码矩阵B-1
示例性的,为说明利用Cayley-Hamilton定理进行矩阵求逆的方法,我们以一个RS(k=4,r=2)为例介绍当出现数据损失时,用伴随矩阵的方法进行矩阵求逆的过程,假设编码矩阵如下所示:
Figure BDA0003910492540000121
假设有2个损坏的数据块,假设第3,4这两个数据块损坏了,本发明算法的具体实现过程如下:
第一步:确定矩阵A丢失数据块的数量为2,数据块对应的位置为3,4;
第二步:将矩阵A的第3,4行去掉之后得到矩阵A';
第三步:取矩阵A'的前4行,此时得到4*4维的矩阵B如下所示,我们就是要通过Cayley-Hamilton定理对矩阵B进行求逆B-1
Figure BDA0003910492540000122
第四步:计算λE-B
Figure BDA0003910492540000123
第五步:由Cayley-Hamilton定理有B4-11B3+23B2-17B+4E=0,即
Figure BDA0003910492540000124
Figure BDA0003910492540000125
第六步:计算B3,B2;B3,B2是矩阵的幂计算,可以并行实现;
第七步:B3,B2,B,E与对应的系数
Figure BDA0003910492540000126
进行乘加运算即可得到B-1
从上面的计算过程可以看出使用Cayley-Hamilton定理进行矩阵求逆,对于k*k维的方阵B,首先需要计算λE-B矩阵的行列式,获取行列式中λkk-1,…λ的系数及常数项;然后计算矩阵B的各个次幂Bk-1,Bk-2,…B2;随后Bk-1,Bk-2,…B2与对应的λkk-1,…λ各个次幂的系数及常数项进行乘加运算即可得到解码矩阵B-1
本发明对于编码矩阵A,首先遍历所有错误形式,从原始的(k+r)*k的编码矩阵A得到k*k维的方阵B,计算对应的λE-B矩阵的行列式,将对应λ各个次幂的系数的进行保存;当有数据块发生错误时,读取相应的系数,同时计算矩阵B的各个次幂,与对应的系数进行乘加运算即可。遍历所有的错误形式,并需要计算λ各个次幂的系数的进行保存,但是在进行解码的时候只需要计算矩阵B的各个次幂,同时读取对应的系数进行乘加运算即可;矩阵B的各个次幂的计算之间没有相互依赖关系,可以并行进行实现,提高了算法并行度。相比传统高斯消元法进行矩阵求逆,本发明提出的基于Cayley-Hamilton定理进行矩阵求逆的实现方法,提高了算法运算的并行度;算法模式易于复用,适用于硬件电路的实现。
上述终端提到的通信总线可以是外设部件互连标准(PeripheralComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended IndustryStandardArchitecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述终端与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(ApplicationSpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-ProgrammableGate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
所述计算机设备包括用户设备与网络设备。其中,所述用户设备包括但不限于电脑、智能手机、PDA等;所述网络设备包括但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(Cloud Computing)的由大量计算机或网络服务器构成的云,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。其中,所述计算机设备可单独运行来实现本发明,也可接入网络并通过与网络中的其他计算机设备的交互操作来实现本发明。其中,所述计算机设备所处的网络包括但不限于互联网、广域网、城域网、局域网、VPN网络等。
所述计算机设备包括用户设备与网络设备。其中,所述用户设备包括但不限于电脑、智能手机、PDA等;所述网络设备包括但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(Cloud Computing)的由大量计算机或网络服务器构成的云,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。其中,所述计算机设备可单独运行来实现本发明,也可接入网络并通过与网络中的其他计算机设备的交互操作来实现本发明。其中,所述计算机设备所处的网络包括但不限于互联网、广域网、城域网、局域网、VPN网络等。
还应当进理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
在本发明的一个实施例中还提供了一种存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法实施例中的步骤:
S10、对编码矩阵A遍历其所有错误形式。
在本发明的实施例中,对于(k+r)*k维的编码矩阵A,最多可以容忍r个数据块的错误,首先需要遍历所有错误形式,共有
Figure BDA0003910492540000151
种错误形式。
S20、针对每种错误形式,从原始的(k+r)*k的编码矩阵A得到k*k维的方阵B;
在本发明的实施例中,针对每种错误形式,确定错误数据块的位置l1,…lm(m≤r),从编码矩阵A中将l1,…lm(m≤r)对应的行删掉,得到(k+r-m)*k维的矩阵B';取矩阵B'的前k列,得到k*k维的方阵B,对方阵B求逆就可以得到解码矩阵B-1
S30、基于Cayley-Hamilton定理对方阵B进行矩阵求逆,得到对应的λkk-1,…λ各个次幂的系数及常数项。
在本发明的实施例中,对于所有错误形式对应的方阵B,通过计算所有的λE-B矩阵的行列式,得到对应的λkk-1,…λ各个次幂的系数及常数项。
S40、将对应的λkk-1,…λ各个次幂的系数及常数项的进行保存。
在本发明的实施例中,所述硬件实现方法,还包括:
若有数据块发生错误时:
步骤一、确定错误发生的数量及位置l1,…lm(m≤r);
步骤二、从编码矩阵A中将l1,…lm(m≤r)对应的行删掉,得到(k+r-m)*k维的矩阵B';取矩阵B'的前k列,得到k*k维的方阵B,对方阵B求逆就可以得到解码矩阵B-1
步骤三、获取该错误得到对应的λkk-1,...λ各个次幂的系数及常数项;同时通过硬件计算Bk-1,Bk-2,…B2
步骤四、Bk-1,Bk-2,...B2与对应的λkk-1,...λ各个次幂的系数及常数项进行乘加运算得到解码矩阵B-1
示例性的,为说明利用Cayley-Hamilton定理进行矩阵求逆的方法,我们以一个RS(k=4,r=2)为例介绍当出现数据损失时,用伴随矩阵的方法进行矩阵求逆的过程,假设编码矩阵如下所示:
Figure BDA0003910492540000161
假设有2个损坏的数据块,假设第3,4这两个数据块损坏了,本发明算法的具体实现过程如下:
第一步:确定矩阵A丢失数据块的数量为2,数据块对应的位置为3,4;
第二步:将矩阵A的第3,4行去掉之后得到矩阵A';
第三步:取矩阵A'的前4行,此时得到4*4维的矩阵B如下所示,我们就是要通过Cayley-Hamilton定理对矩阵B进行求逆B-1
Figure BDA0003910492540000162
第四步:计算|λE-B|
Figure BDA0003910492540000163
第五步:由Cayley-Hamilton定理有B4-11B3+23B2-17B+4E=0,即
Figure BDA0003910492540000171
Figure BDA0003910492540000172
第六步:计算B3,B2;B3,B2是矩阵的幂计算,可以并行实现;
第七步:B3,B2,B,E与对应的系数
Figure BDA0003910492540000173
进行乘加运算即可得到B-1
从上面的计算过程可以看出使用Cayley-Hamilton定理进行矩阵求逆,对于k*k维的方阵B,首先需要计算λE-B矩阵的行列式,获取行列式中λkk-1,...λ的系数及常数项;然后计算矩阵B的各个次幂Bk-1,Bk-2,…B2;随后Bk-1,Bk-2,…B2与对应的λkk-1,...λ各个次幂的系数及常数项进行乘加运算即可得到解码矩阵B-1
本发明对于编码矩阵A,首先遍历所有错误形式,从原始的(k+r)*k的编码矩阵A得到k*k维的方阵B,计算对应的λE-B矩阵的行列式,将对应λ各个次幂的系数的进行保存;当有数据块发生错误时,读取相应的系数,同时计算矩阵B的各个次幂,与对应的系数进行乘加运算即可。遍历所有的错误形式,并需要计算λ各个次幂的系数的进行保存,但是在进行解码的时候只需要计算矩阵B的各个次幂,同时读取对应的系数进行乘加运算即可;矩阵B的各个次幂的计算之间没有相互依赖关系,可以并行进行实现,提高了算法并行度。相比传统高斯消元法进行矩阵求逆,本发明提出的基于Cayley-Hamilton定理进行矩阵求逆的实现方法,提高了算法运算的并行度;算法模式易于复用,适用于硬件电路的实现。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述方法的实施例的流程。其中,本发明所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。
应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。

Claims (10)

1.一种硬件实现方法,其特征在于,该方法包括:
对编码矩阵A遍历其所有错误形;
针对每种错误形式,从原始的(k+r)*k的编码矩阵A得到k*k维的方阵B;
基于Cayley-Hamilton定理对方阵B进行矩阵求逆,得到对应的λkk-1,...λ各个次幂的系数及常数项;
将对应的λkk-1,…λ各个次幂的系数及常数项的进行保存。
2.如权利要求1所述的硬件实现方法,其特征在于,对于(k+r)*k维的编码矩阵A,最多可容忍r个数据块的错误,首先需要遍历所有错误形式,共有
Figure FDA0003910492530000011
种错误形式。
3.如权利要求1所述的硬件实现方法,其特征在于,针对每种错误形式,确定错误数据块的位置l1,…lm(m≤r),从编码矩阵A中将l1,…lm(m≤r)对应的行删掉,得到(k+r-m)*k维的矩阵B';取矩阵B'的前k列,得到k*k维的方阵B,对方阵B求逆就可以得到解码矩阵B-1
4.如权利要求1所述的硬件实现方法,其特征在于,对于所有错误形式对应的方阵B,通过计算所有的λE-B矩阵的行列式,得到对应的λkk-1,…λ各个次幂的系数及常数项。
5.如权利要求1所述的硬件实现方法,其特征在于,若有数据块发生错误时:
确定错误发生的数量及位置l1,…lm(m≤r);
从编码矩阵A中将l1,…lm(m≤r)对应的行删掉,得到(k+r-m)*k维的矩阵B';取矩阵B'的前k列,得到k*k维的方阵B,对方阵B求逆就可以得到解码矩阵B-1
获取该错误得到对应的λkk-1,…λ各个次幂的系数及常数项;同时通过硬件计算Bk-1,Bk-2,...B2
Bk-1,Bk-2,...B2与对应的λkk-1,...λ各个次幂的系数及常数项进行乘加运算得到解码矩阵B-1
6.如权利要求1所述的硬件实现方法,其特征在于,该方法包括:
第一步:确定矩阵A丢失数据块的数量为2,数据块对应的位置为3,4;
第二步:将矩阵A的第3,4行去掉之后得到矩阵A'。
7.如权利要求6所述的硬件实现方法,其特征在于,该方法包括:
第三步:取矩阵A'的前4行,此时得到4*4维的矩阵B如下所示,我们就是要通过Cayley-Hamilton定理对矩阵B进行求逆B-1
Figure FDA0003910492530000021
第四步:计算|λE-B|
Figure FDA0003910492530000022
8.如权利要求7所述的硬件实现方法,其特征在于,该方法包括:
第五步:由Cayley-Hamilton定理有B4-11B3+23B2-17B+4E=0,即
Figure FDA0003910492530000023
Figure FDA0003910492530000024
第六步:计算B3,B2;B3,B2是矩阵的幂计算,可以并行实现;
第七步:B3,B2,B,E与对应的系数
Figure FDA0003910492530000025
进行乘加运算即可得到B-1
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器加载并执行所述计算机程序时实现如权利要求1-8任一项所述的硬件实现方法的步骤。
10.一种存储介质,存储有计算机程序,所述计算机程序被处理器加载并执行时实现如权利要求1-8任一项所述的硬件实现方法的步骤。
CN202211318733.0A 2022-10-26 2022-10-26 硬件实现方法、终端及存储介质 Pending CN115686926A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211318733.0A CN115686926A (zh) 2022-10-26 2022-10-26 硬件实现方法、终端及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211318733.0A CN115686926A (zh) 2022-10-26 2022-10-26 硬件实现方法、终端及存储介质

Publications (1)

Publication Number Publication Date
CN115686926A true CN115686926A (zh) 2023-02-03

Family

ID=85099394

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211318733.0A Pending CN115686926A (zh) 2022-10-26 2022-10-26 硬件实现方法、终端及存储介质

Country Status (1)

Country Link
CN (1) CN115686926A (zh)

Similar Documents

Publication Publication Date Title
TWI697000B (zh) 記憶體控制器及快閃記憶體的存取方法
TW201319800A (zh) 使用置換子矩陣之總和的總和檢查碼
CN104052576B (zh) 一种云存储下基于纠错码的数据恢复方法
CN112860475B (zh) 基于rs纠删码的校验块恢复方法、装置、系统及介质
CN107852176A (zh) Ldpc码编码器和译码器
CN111682874B (zh) 一种数据恢复的方法、系统、设备及可读存储介质
CN111858169B (zh) 一种数据恢复方法、系统及相关组件
CN112000512B (zh) 一种数据修复方法及相关装置
CN112799875B (zh) 基于高斯消元进行校验恢复的方法、系统、设备及介质
WO2018072294A1 (zh) 一种校验矩阵的构造方法及水平阵列纠删码的构造方法
CN111858142A (zh) 一种数据处理方法、装置及电子设备和存储介质
EP2695300A2 (en) Encoding and decoding techniques using low-density parity check codes
CN107086870A (zh) 修复多节点失效的mds阵列码编码以及解码方法
WO2023151290A1 (zh) 一种数据编码方法、装置、设备及介质
CN115454712B (zh) 一种校验码恢复方法、系统、电子设备及存储介质
CN116266148A (zh) 用于存储器内计算/邻存储器计算的端到端数据保护
Ivanichkina et al. Mathematical methods and models of improving data storage reliability including those based on finite field theory
Berent et al. Software tools for decoding quantum low-density parity-check codes
TWI718060B (zh) 記憶體控制器及快閃記憶體的存取方法
CN115113816A (zh) 一种纠删码数据处理系统、方法、计算机设备及介质
CN115686926A (zh) 硬件实现方法、终端及存储介质
CN107665152B (zh) 一类纠删码的译码方法
Schindelhauer et al. Maximum distance separable codes based on circulant cauchy matrices
CN108847851B (zh) 一种二元bch码伴随式矩阵的实现方法
CN116302665A (zh) 硬件实现方法、终端模块、控制系统及计算机处理系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination