CN113986147A - 一种raid 6硬件加速电路结构和raid 6硬件加速实现方法 - Google Patents
一种raid 6硬件加速电路结构和raid 6硬件加速实现方法 Download PDFInfo
- Publication number
- CN113986147A CN113986147A CN202111597723.0A CN202111597723A CN113986147A CN 113986147 A CN113986147 A CN 113986147A CN 202111597723 A CN202111597723 A CN 202111597723A CN 113986147 A CN113986147 A CN 113986147A
- Authority
- CN
- China
- Prior art keywords
- disk
- data
- module
- intermediate value
- raid6
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 37
- 230000001133 acceleration Effects 0.000 title claims abstract description 34
- 238000004364 calculation method Methods 0.000 claims abstract description 18
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 15
- 238000004458 analytical method Methods 0.000 claims abstract description 9
- 230000004044 response Effects 0.000 claims description 9
- 238000012545 processing Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 238000004590 computer program Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000011084 recovery Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 229910002056 binary alloy Inorganic materials 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
- G06F3/0676—Magnetic disk device
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
本发明公开了一种RAID 6硬件加速电路结构,包括:参数解析模块,配置用于获取RAID 6算法的参数系数,并基于参数系数计算运算系数;数据缓存模块,配置用于存储磁盘数据;有限域运算模块,配置用于依次获取当前盘对应的运算系数和磁盘数据,并基于当前盘对应的运算系数和磁盘数据进行有限域乘法运算以得到当前盘的中间值;其中,有限域运算模块进一步配置用于将计算得到的第一个盘的中间值缓存到中间值存储模块,将计算得到的其他盘的中间值与中间值存储模块中的值进行异或运算,并将运算结果缓存到中间值存储模块,若是当前盘为最后一个盘,则将中间值存储模块中的值作为最终结果输出。本发明还公开了RAID 6硬件加速实现方法。
Description
技术领域
本发明涉及硬件电路技术领域,尤其涉及一种RAID 6硬件加速电路结构和RAID 6硬件加速实现方法。
背景技术
RAID 5是一种存储性能、数据安全和存储成本兼顾的存储解决方案。RAID 5可以理解为是RAID 0和RAID 1的折中方案。RAID 5可以为系统提供数据安全保障,但保障程度要比RAID 1低而磁盘空间利用率要比RAID 1高。RAID 5具有和RAID 0相近似的数据读取速度,只是多了一个奇偶校验信息,写入数据的速度比对单个磁盘进行写入操作稍慢。同时由于多个数据对应一个奇偶校验信息,RAID 5的磁盘空间利用率要比RAID 1高,存储成本相对较低,是运用较多的一种解决方案。
RAID 6技术是在RAID 5基础上,为了进一步加强数据保护而设计的一种RAID方式,实际上是一种扩展RAID 5等级。它的工作模式与RAID 5有异曲同工之妙,不同的是RAID5将校验码写入到一个驱动器里面,而RAID 6将校验码写入到两个驱动器里面,这样就增强了磁盘的容错能力,同时RAID 6阵列中允许出现故障的磁盘也就达到了两个,但相应的阵列磁盘数量最少也要四个。
RAID硬件部分主要实现RAID中数据之间的运算部分功能,RAID 6的实现算法有很多种,例如RDP、RS-RAID、EVENODD、X-star等RAID 6算法,这些种类的RAID 6的编解码都不涉及参数,只涉及异或运算,运算较为简单,但需要考虑数据为二维的矩阵数据,调度需要考虑列上其他部分的数据调度,对固件调度要求较高。
现有技术RAID 6的硬件实现基于不同的算法会有不同的策略,通常RAID系统以软件实现为主,软件的性能较差,效率较低。
发明内容
有鉴于此,本发明实施例的目的在于提出一种RAID 6硬件加速电路结构和RAID 6硬件加速实现方法,通过硬件结构实现RAID 6的运算,相比软件实现,在运算出口速度上和吞吐率上得到提升,也降低了RAID系统中的CPU占用率,另外,可以通过参数灵活适配不同的运算需求。
基于上述目的,本发明实施例的一方面提供了一种RAID 6硬件加速电路结构,包括:参数解析模块,配置用于获取RAID 6算法的参数系数,并基于所述参数系数计算运算系数;数据缓存模块,配置用于存储磁盘数据;有限域运算模块,配置用于依次获取当前盘对应的所述运算系数和所述磁盘数据,并基于当前盘对应的所述运算系数和所述磁盘数据进行有限域乘法运算以得到当前盘的中间值;其中,所述有限域运算模块进一步配置用于将计算得到的第一个盘的中间值缓存到中间值存储模块,将计算得到的其他盘的中间值与所述中间值存储模块中的值进行异或运算,并将运算结果缓存到所述中间值存储模块,若是所述当前盘为最后一个盘,则将所述中间值存储模块中的值作为最终结果输出。
在一些实施方式中,所述最终结果为校验数据。
在一些实施方式中,所述有限域运算模块包括第一有限域运算模块和第二有限域运算模块,所述中间值存储模块包括第一中间值存储模块和第二中间值存储模块;所述校验数据包括第一校验数据和第二校验数据。
在一些实施方式中,所述参数解析模块进一步配置用于:基于如下公式计算运算系数:Ap x=(ax+aq)/(ap+aq),Aq x=(ap+ax)/(ap+aq),其中,Ap x为计算第一校验数据的第x个盘的运算系数,Aq x为计算第二校验数据的第x个盘的运算系数,ax为第x个盘的参数系数,ap为第一校验数据的参数系数,aq为第二校验数据的参数系数。
在一些实施方式中,参数解析模块进一步配置用于:与硬件管理系统进行交互,并解析RAID运算的数据信息;响应于接收到磁盘数据更新的消息,则由所述数据缓存模块接收更新的磁盘数据,并将所述更新的磁盘数据发送至所述有限域运算模块。
在一些实施方式中,所述有限域运算模块进一步配置用于:响应于检测到所述数据缓存模块中的磁盘数据有更新,则基于所述更新的磁盘数据重新计算校验数据。
在一些实施方式中,参数解析模块进一步配置用于:响应于接收到两个磁盘数据/两个校验数据/一个磁盘数据一个校验数据损坏的消息,则由所述数据缓存模块更新未损坏的磁盘数据/校验数据。
在一些实施方式中,所述有限域运算模块进一步配置用于:基于未损坏的磁盘数据/校验数据进行计算,以得到所述损坏的两个磁盘数据/两个校验数据/一个磁盘数据一个校验数据。
在一些实施方式中,所述有限域运算模块进一步配置用于:判断所述当前盘是否为第一个盘,若是所述当前盘为第一个盘,则将所述第一个盘的中间值缓存到中间值存储模块;若是所述当前盘不为第一个盘,则将计算得到的中间值与所述中间值存储模块中的值进行异或运算,并将运算结果缓存到所述中间值存储模块;判断所述当前盘是否为最后一个盘,若是所述当前盘为最后一个盘,则将所述中间值存储模块中的值作为最终结果输出。
本发明实施例的另一方面,还提供了一种RAID 6硬件加速实现方法,所述实现方法应用于上述所述的电路结构,所述实现方法包括以下步骤:由参数解析模块获取RAID 6算法的参数系数,并基于所述参数系数计算运算系数;由有限域运算模块依次获取当前盘对应的所述运算系数和磁盘数据,并基于当前盘对应的所述运算系数和所述磁盘数据进行有限域乘法运算以得到当前盘的中间值;将计算得到的第一个盘的中间值缓存到中间值存储模块,将计算得到的其他盘的中间值与所述中间值存储模块中的值进行异或运算,并将运算结果缓存到所述中间值存储模块;以及若是当前盘为最后一个盘,则将所述中间值存储模块中的值作为最终结果输出。
本发明至少具有以下有益技术效果:通过硬件结构实现RAID 6的运算,相比软件实现,在运算出口速度上和吞吐率上得到提升,也降低了RAID系统中的CPU占用率,另外,可以通过参数灵活适配不同的运算需求。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
图1为本发明提供的RAID 6硬件加速电路结构的实施例的示意图;
图2为本发明提供的RAID 6硬件加速电路结构的实施例的示意图;
图3为本发明提供的RAID 6硬件加速实现方法的实施例的示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
基于上述目的,本发明实施例的第一个方面,提出了RAID 6硬件加速电路结构。图1示出的是本发明提供的RAID 6硬件加速电路结构的实施例的示意图。如图1所示,本发明实施例的RAID 6硬件加速电路结构包括:
参数解析模块100,配置用于获取RAID 6算法的参数系数,并基于参数系数计算运算系数;
数据缓存模块200,配置用于存储磁盘数据;
有限域运算模块300,配置用于依次获取当前盘对应的运算系数和磁盘数据,并基于当前盘对应的运算系数和磁盘数据进行有限域乘法运算以得到当前盘的中间值;
其中,有限域运算模块300进一步配置用于将计算得到的第一个盘的中间值缓存到中间值存储模块400,将计算得到的其他盘的中间值与中间值存储模块400中的值进行异或运算,并将运算结果缓存到中间值存储模块400,若是当前盘为最后一个盘,则将中间值存储模块400中的值作为最终结果输出。
在本发明的一些实施例中,最终结果为校验数据。
在本发明的一些实施例中,有限域运算模块包括第一有限域运算模块和第二有限域运算模块,中间值存储模块包括第一中间值存储模块和第二中间值存储模块;校验数据包括第一校验数据和第二校验数据。
在本发明的一些实施例中,参数解析模块进一步配置用于:基于如下公式计算运算系数:Ap x=(ax+aq)/(ap+aq),Aq x=(ap+ax)/(ap+aq),其中,Ap x为计算第一校验数据的第x个盘的运算系数,Aq x为计算第二校验数据的第x个盘的运算系数,ax为第x个盘的参数系数,ap为第一校验数据的参数系数,aq为第二校验数据的参数系数。
在本发明的一些实施例中,参数解析模块进一步配置用于:与硬件管理系统进行交互,并解析RAID运算的数据信息;响应于接收到磁盘数据更新的消息,则由数据缓存模块接收更新的磁盘数据,并将更新的磁盘数据发送至有限域运算模块。
在本实施例中,RAID 6对应的磁盘数据操作一般有六种基本的操作,即对应六种配置:
1、一个数据盘损坏
当一个硬盘损坏,可以用剩余的有效数据和校验数据来恢复损坏的数据,运算方式按照RAID 5运算,所有其他的数据进行异或即可;
2、写操作更新数据
当要更新磁盘x的数据时,此时不仅要写入磁盘x的数据,还要重新计算第一校验数据dP和第二校验数据dQ,然后更新磁盘x数据、第一校验数据dP和第二校验数据dQ;
3、重建第一校验数据dP
当第一校验数据dP损坏时,利用数据盘上数据将其重建,此时数据的运算方式十分类似RAID 5(将第二校验数据dQ当作数据盘);
4、第二校验数据dQ
同上,利用数据盘数据,类似于RAID 5;
5、第一校验数据dP和第二校验数据dQ
运算过程为标准的RAID 6运算,即根据RAID编码公式来计算,配置每个盘的系数,读出每个盘的数据,先乘以系数之后再逐个相加即可以算出第一校验数据dP和第二校验数据dQ。
6、任意两盘(包括第一校验数据dP和第二校验数据dQ)数据损坏恢复
包括了两个数据盘恢复和一个数据盘和任意一个校验盘数据恢复等情况,当将校验数据与普通数据等同后,则处理方式与重建第一校验数据dP和第二校验数据dQ相类似。
以上即六种RAID6的基本数据处理情况,通过归纳可以看出,六种情况下都会用到的RAID运算的处理。
在本发明的一些实施例中,有限域运算模块进一步配置用于:响应于检测到数据缓存模块中的磁盘数据有更新,则基于更新的磁盘数据重新计算校验数据。
在本发明的一些实施例中,参数解析模块进一步配置用于:响应于接收到两个磁盘数据/两个校验数据/一个磁盘数据一个校验数据损坏的消息,则由数据缓存模块更新未损坏的磁盘数据/校验数据。
在本发明的一些实施例中,有限域运算模块进一步配置用于:基于未损坏的磁盘数据/校验数据进行计算,以得到损坏的两个磁盘数据/两个校验数据/一个磁盘数据一个校验数据。
在本发明的一些实施例中,有限域运算模块进一步配置用于:判断当前盘是否为第一个盘,若是当前盘为第一个盘,则将第一个盘的中间值缓存到中间值存储模块;若是当前盘不为第一个盘,则将计算得到的中间值与中间值存储模块中的值进行异或运算,并将运算结果缓存到中间值存储模块;判断当前盘是否为最后一个盘,若是当前盘为最后一个盘,则将中间值存储模块中的值作为最终结果输出。
下面根据具体实施例进一步阐述本发明的具体实施方式。图2示出的是本发明提供的RAID 6硬件加速电路结构的实施例的示意图。参考图2,为了满足RAID 6两个校验数据同时计算,设计了两个并行的数据处理结构,通过配置的改变来实现RAID 6运算,即在运算中,配置两组的RAID有限域乘法运算的系数分别为第一校验数据和第二校验数据的系数,即可同时进行第一校验数据和第二校验数据的运算。
由参数解析模块配置有限域运算的系数,由数据缓存模块接收磁盘数据;将第一个盘的数据分别发送至第一有限域运算模块和第二有限域运算模块,分别与对应的系数进行有限域乘法运算,计算出当前盘的中间值,并分别缓存到第一中间值存储模块和第二中间值存储模块中;继续下一个盘的运算,得到的中间值与之前盘对应的中间值进行有限域的加法,即异或,并将结果分别更新到第一中间值存储模块和第二中间值存储模块中;重复上一步骤,直到所有盘的数据都运算完成,最后一个盘的运算结果就是最终结果。
在本实施例中,RS-RAID采用的Reed-Solomon编码算法,是一种基于伽罗华域运算的编码算法。伽罗华域运算的特点是域内任意的两个元素的四则运算结果仍然是该域内的元素,其中伽罗华域加法和减法通过异或运算来实现,伽罗华域乘法和除法的实现一般采用查表法实现。相较其他的算法,实现起来能降低对于固件的处理需求,提升系统整体的处理速率。RS-RAID6原理公式为:
d0⊕d1⊕…⊕dn⊕dp⊕dq=0
a0d0⊕a1d1⊕…⊕andn⊕apdp⊕aqdq=0
为满足RS特性,这里选择的是范德蒙公式,因此对计算系数的扩充需要满足范德蒙特性,并且有限域采用GF(2^8)。其中,d0、d1、……、dn表示磁盘数据,dp和dq表示校验数据,a0、a1、……、an、ap、aq、表示RAID 6算法的参数系数,第一个公式为RAID 5的计算公式,因此,本实施例不仅可以实现RAID 6的处理过程,也能够通过配置的变化实现RAID 5的计算过程。
根据上述公式通过运算可以得到校验数据的计算公式为:
其中,dx为第x个盘的磁盘数据。
恢复磁盘数据的计算公式为:
从上述公式可以看出,不论是计算校验数据还是恢复磁盘数据局,运算规则都是通过其他数据及其对应系数和需要计算的数据的系数之间进行加、乘法、除法运算来得到所需的数据的过程。因此将系数与数据分开处理,并由外部产生系数部分总体的值,即运算系数,则可以将运算系数和磁盘数据的乘法运算通过有限域运算进行处理,从而大大的简化运算的复杂度,为硬件实现提供便利。
在本实施例中,参数解析模块主要与硬件的管理系统交互,负责解析本次RAID运算的数据信息。RAID硬件的参数包括两大部分,一部分是运算相关的数据的获取信息,通过这些信息来对接收的数据进行存储管理;一部分是每个盘进行有限域运算的系数的获取,每个盘的有限域的运算乘法系数将会在RAID运算的时候与数据一起进入运算模块进行处理。另外,还要负责依据本次RAID运算的流程控制参数的配置,包括计算出需要的运算的模式、次数以及输出的选择。
有限域计算模块主要负责每个盘的数据与系数之间的有限域运算,主要根据控制信息的调度,依据运算的盘的个数及顺序,以及完成前后两个盘的数据之间的异或运算,该步骤需要从中间值存储模块中获取之前的运算结果,运算完成后,新的结果会更新之前的中间值存储中的结果,当所有盘运算完成后,中间值存储中更新的最后的结果就是本次的RAID6运算的最终结果。
RAID运算使用的乘法和加法为有限域乘法加法运算,有限域乘法运算的实现可以通过查表的方式实现,即通过存储好的有限域与二进制之间映射的表格,查找对应的值来获取最终结果的一种方式,通过查表的方式来完成有限域的乘法计算直观简洁,逻辑上不需要太复杂,每次运算需要进行两次查表(正表和反表),相较于其他的使用组合逻辑直接运算得到结果的方式,查表的处理时延会更低,同时满足GF(2^8)的伽罗华域转换的正反表占据存储空间较小,相较于复杂的运算逻辑占据的资源也更少。
伽罗华域查表法的处理步骤包括:输入的数据先查正表得到伽罗华域对应值;相乘之后模255得到伽罗华域结果;由伽罗华域结果查反表得到二进制对应值。在硬件处理有限域乘法运算时,需要将计算的两个乘法因子进行查表,相乘再取模后在进行一次查表才能得到最终结果。这个过程中,每运算一次乘法,需要查两次正表和一次反表,并进行了一次取模运算。
数据缓存模块和中间值存储模块均为数据存储,主要存储需要运算的数据以及运算之后的中间值数据。数据缓存存储根据配置的参数得到的需要进行有限域运算的数据,中间值存储主要负责经过有限域运算后的数据。
以上所揭露的仅为本发明一种实施例而已,当然不能以此来限定本之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于本发明所涵盖的范围。
基于上述目的,本发明实施例的第二个方面,提出了一种RAID 6硬件加速实现方法。图3示出的是本发明提供的RAID 6硬件加速实现方法的实施例的示意图。如图3所示,本发明实施例的RAID 6硬件加速实现方法包括:S01、由参数解析模块获取RAID 6算法的参数系数,并基于参数系数计算运算系数;S02、由有限域运算模块依次获取当前盘对应的运算系数和磁盘数据,并基于当前盘对应的运算系数和磁盘数据进行有限域乘法运算以得到当前盘的中间值;S03、将计算得到的第一个盘的中间值缓存到中间值存储模块,将计算得到的其他盘的中间值与中间值存储模块中的值进行异或运算,并将运算结果缓存到中间值存储模块;以及;S04、若是当前盘为最后一个盘,则将中间值存储模块中的值作为最终结果输出。
需要特别指出的是,上述RAID 6硬件加速实现方法的各个实施例中的各个步骤均可以相互交叉、替换、增加、删减,因此,这些合理的排列组合变换之于RAID 6硬件加速实现方法也应当属于本发明的保护范围,并且不应将本发明的保护范围局限在实施例之上。
最后需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,RAID 6硬件加速实现方法的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,程序的存储介质可为磁碟、光盘、只读存储记忆体(ROM)或随机存储记忆体(RAM)等。上述计算机程序的实施例,可以达到与之对应的前述任意方法实施例相同或者相类似的效果。
此外,根据本发明实施例公开的方法还可以被实现为由处理器执行的计算机程序,该计算机程序可以存储在计算机可读存储介质中。在该计算机程序被处理器执行时,执行本发明实施例公开的方法中限定的上述功能。
此外,上述方法步骤以及系统单元也可以利用控制器以及用于存储使得控制器实现上述步骤或单元功能的计算机程序的计算机可读存储介质实现。
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个系统的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现的功能,但是这种实现决定不应被解释为导致脱离本发明实施例公开的范围。
在一个或多个示例性设计中,功能可以在硬件、软件、固件或其任意组合中实现。如果在软件中实现,则可以将功能作为一个或多个指令或代码存储在计算机可读介质上或通过计算机可读介质来传送。计算机可读介质包括计算机存储介质和通信介质,该通信介质包括有助于将计算机程序从一个位置传送到另一个位置的任何介质。存储介质可以是能够被通用或专用计算机访问的任何可用介质。作为例子而非限制性的,该计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储设备、磁盘存储设备或其它磁性存储设备,或者是可以用于携带或存储形式为指令或数据结构的所需程序代码并且能够被通用或专用计算机或者通用或专用处理器访问的任何其它介质。此外,任何连接都可以适当地称为计算机可读介质。例如,如果使用同轴线缆、光纤线缆、双绞线、数字用户线路(DSL)或诸如红外线、无线电和微波的无线技术来从网站、服务器或其它远程源发送软件,则上述同轴线缆、光纤线缆、双绞线、DSL或诸如红外线、无线电和微波的无线技术均包括在介质的定义。如这里所使用的,磁盘和光盘包括压缩盘(CD)、激光盘、光盘、数字多功能盘(DVD)、软盘、蓝光盘,其中磁盘通常磁性地再现数据,而光盘利用激光光学地再现数据。上述内容的组合也应当包括在计算机可读介质的范围内。
以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。
上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。
Claims (10)
1.一种RAID 6硬件加速电路结构,其特征在于,包括:
参数解析模块,配置用于获取RAID 6算法的参数系数,并基于所述参数系数计算运算系数;
数据缓存模块,配置用于存储磁盘数据;
有限域运算模块,配置用于依次获取当前盘对应的所述运算系数和所述磁盘数据,并基于当前盘对应的所述运算系数和所述磁盘数据进行有限域乘法运算以得到当前盘的中间值;
其中,所述有限域运算模块进一步配置用于将计算得到的第一个盘的中间值缓存到中间值存储模块,将计算得到的其他盘的中间值与所述中间值存储模块中的值进行异或运算,并将运算结果缓存到所述中间值存储模块,若是所述当前盘为最后一个盘,则将所述中间值存储模块中的值作为最终结果输出。
2.根据权利要求1所述的RAID 6硬件加速电路结构,其特征在于,所述最终结果为校验数据。
3.根据权利要求2所述的RAID 6硬件加速电路结构,其特征在于,所述有限域运算模块包括第一有限域运算模块和第二有限域运算模块,所述中间值存储模块包括第一中间值存储模块和第二中间值存储模块;所述校验数据包括第一校验数据和第二校验数据。
4.根据权利要求3所述的RAID 6硬件加速电路结构,其特征在于,所述参数解析模块进一步配置用于:
基于如下公式计算运算系数:
Ap x=(ax+aq)/(ap+aq),Aq x=(ap+ax)/(ap+aq),
其中,Ap x为计算第一校验数据的第x个盘的运算系数,Aq x为计算第二校验数据的第x个盘的运算系数,ax为第x个盘的参数系数,ap为第一校验数据的参数系数,aq为第二校验数据的参数系数。
5.根据权利要求1所述的RAID 6硬件加速电路结构,其特征在于,所述参数解析模块进一步配置用于:
与硬件管理系统进行交互,并解析RAID 6运算的数据信息;
响应于接收到磁盘数据更新的消息,则由所述数据缓存模块接收更新的磁盘数据,并将所述更新的磁盘数据发送至所述有限域运算模块。
6.根据权利要求5所述的RAID 6硬件加速电路结构,其特征在于,所述有限域运算模块进一步配置用于:
响应于检测到所述数据缓存模块中的磁盘数据有更新,则基于所述更新的磁盘数据重新计算校验数据。
7.根据权利要求5所述的RAID 6硬件加速电路结构,其特征在于,所述参数解析模块进一步配置用于:
响应于接收到两个磁盘数据/两个校验数据/一个磁盘数据和一个校验数据损坏的消息,则由所述数据缓存模块更新未损坏的磁盘数据/校验数据。
8.根据权利要求7所述的RAID 6硬件加速电路结构,其特征在于,所述有限域运算模块进一步配置用于:
基于未损坏的磁盘数据/校验数据进行计算,以得到所述损坏的两个磁盘数据/两个校验数据/一个磁盘数据和一个校验数据。
9.根据权利要求1所述的RAID 6硬件加速电路结构,其特征在于,所述有限域运算模块进一步配置用于:
判断所述当前盘是否为第一个盘,若是所述当前盘为第一个盘,则将所述第一个盘的中间值缓存到中间值存储模块;
若是所述当前盘不为第一个盘,则将计算得到的中间值与所述中间值存储模块中的值进行异或运算,并将运算结果缓存到所述中间值存储模块;
判断所述当前盘是否为最后一个盘,若是所述当前盘为最后一个盘,则将所述中间值存储模块中的值作为最终结果输出。
10.一种RAID 6硬件加速实现方法,其特征在于,所述实现方法应用于权利要求1-9任意一项所述的电路结构,所述实现方法包括以下步骤:
由参数解析模块获取RAID 6算法的参数系数,并基于所述参数系数计算运算系数;
由有限域运算模块依次获取当前盘对应的所述运算系数和磁盘数据,并基于当前盘对应的所述运算系数和所述磁盘数据进行有限域乘法运算以得到当前盘的中间值;
将计算得到的第一个盘的中间值缓存到中间值存储模块,将计算得到的其他盘的中间值与所述中间值存储模块中的值进行异或运算,并将运算结果缓存到所述中间值存储模块;以及
若是当前盘为最后一个盘,则将所述中间值存储模块中的值作为最终结果输出。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111597723.0A CN113986147A (zh) | 2021-12-24 | 2021-12-24 | 一种raid 6硬件加速电路结构和raid 6硬件加速实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111597723.0A CN113986147A (zh) | 2021-12-24 | 2021-12-24 | 一种raid 6硬件加速电路结构和raid 6硬件加速实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113986147A true CN113986147A (zh) | 2022-01-28 |
Family
ID=79734275
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111597723.0A Pending CN113986147A (zh) | 2021-12-24 | 2021-12-24 | 一种raid 6硬件加速电路结构和raid 6硬件加速实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113986147A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114416424A (zh) * | 2022-03-30 | 2022-04-29 | 苏州浪潮智能科技有限公司 | 一种raid编解码方法、装置、设备及可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112732192A (zh) * | 2021-01-09 | 2021-04-30 | 苏州浪潮智能科技有限公司 | 一种磁盘分布信息裁剪方法、系统、设备以及介质 |
CN113297000A (zh) * | 2021-05-20 | 2021-08-24 | 山东云海国创云计算装备产业创新中心有限公司 | 一种raid编码电路及编码方法 |
-
2021
- 2021-12-24 CN CN202111597723.0A patent/CN113986147A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112732192A (zh) * | 2021-01-09 | 2021-04-30 | 苏州浪潮智能科技有限公司 | 一种磁盘分布信息裁剪方法、系统、设备以及介质 |
CN113297000A (zh) * | 2021-05-20 | 2021-08-24 | 山东云海国创云计算装备产业创新中心有限公司 | 一种raid编码电路及编码方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114416424A (zh) * | 2022-03-30 | 2022-04-29 | 苏州浪潮智能科技有限公司 | 一种raid编解码方法、装置、设备及可读存储介质 |
CN114416424B (zh) * | 2022-03-30 | 2022-06-17 | 苏州浪潮智能科技有限公司 | 一种raid编解码方法、装置、设备及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101270815B1 (ko) | 다양한 클래스의 코드들을 인코딩 및 디코딩하는 애플리케이션을 갖는 인-플레이스 변환 | |
EP1506621B1 (en) | Decoding of chain reaction codes through inactivation of recovered symbols | |
US7581156B2 (en) | Systems and methods for providing improved encoding and reconstruction of data | |
Gad et al. | Repair-optimal MDS array codes over GF (2) | |
KR20040044590A (ko) | Ldpc 코드를 이용한 부호화기 및 부호화 방법 | |
JPH08330975A (ja) | 誤り訂正符号復号化方法およびこの方法を用いる回路 | |
CN101814922A (zh) | 基于bch码的多位错纠错方法和装置以及存储系统 | |
JP2011514743A (ja) | 受信したシンボル列におけるフェーズドバーストエラー、消失、シンボルエラー、及び、ビットエラーを検出及び訂正するための方法及びシステム | |
CN112000512B (zh) | 一种数据修复方法及相关装置 | |
Hou et al. | A new design of binary MDS array codes with asymptotically weak-optimal repair | |
WO2023151290A1 (zh) | 一种数据编码方法、装置、设备及介质 | |
TW202011189A (zh) | 分散式存儲系統、方法和裝置 | |
CN113505019A (zh) | 一种纠删码数据及校验恢复方法、装置、设备及可读介质 | |
TW202001920A (zh) | 在資料儲存系統中用於改善資料回復之方法及裝置 | |
CN113986147A (zh) | 一种raid 6硬件加速电路结构和raid 6硬件加速实现方法 | |
JP7116374B2 (ja) | 短縮レイテンシ誤り訂正復号 | |
CN114895842A (zh) | 一种tp-raid编解码方法、系统、设备及存储介质 | |
WO2020029418A1 (zh) | 一种修复二进制码生成矩阵构造方法及修复方法 | |
CN114510368A (zh) | 一种基于rs纠删码的编解码加速方法及系统 | |
JP7429223B2 (ja) | ターボ積符号の復号方法、装置、デコーダー及びコンピュータ記憶媒体 | |
CN115061640B (zh) | 一种容错分布存储系统、方法、电子设备及介质 | |
CN109257049B (zh) | 一种修复二进制阵列码校验矩阵的构造方法及修复方法 | |
CN112000509B (zh) | 一种基于向量指令的纠删码编码方法、系统及装置 | |
WO2019102450A1 (en) | Low latency sequential list decoding of polar codes cross-references to related applications | |
CN109245775A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20220128 |
|
RJ01 | Rejection of invention patent application after publication |