CN108762973B - 存储数据的方法和存储设备 - Google Patents

存储数据的方法和存储设备 Download PDF

Info

Publication number
CN108762973B
CN108762973B CN201810344936.4A CN201810344936A CN108762973B CN 108762973 B CN108762973 B CN 108762973B CN 201810344936 A CN201810344936 A CN 201810344936A CN 108762973 B CN108762973 B CN 108762973B
Authority
CN
China
Prior art keywords
syndrome
data
check
syndromes
nth
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.)
Active
Application number
CN201810344936.4A
Other languages
English (en)
Other versions
CN108762973A (zh
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.)
University of Science and Technology of China USTC
Huawei Technologies Co Ltd
Original Assignee
University of Science and Technology of China USTC
Huawei Technologies 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 University of Science and Technology of China USTC, Huawei Technologies Co Ltd filed Critical University of Science and Technology of China USTC
Priority to CN201810344936.4A priority Critical patent/CN108762973B/zh
Publication of CN108762973A publication Critical patent/CN108762973A/zh
Application granted granted Critical
Publication of CN108762973B publication Critical patent/CN108762973B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Detection And Correction Of Errors (AREA)
  • Error Detection And Correction (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本申请提供一种存储数据的方法和存储设备,该方法包括:获得K个数据块;生成该K个数据块的第一校验子和第二校验子;根据该第一校验子和该第二校验子,生成第一校验块和第二校验块;存储该K个数据块、该第一校验块和该第二校验块;其中,生成该K个数据块的第一校验子和第二校验子,包括:生成第n个中间校验子集合,该第n个中间校验子集合包括Mn个中间校验子;基于公共中间校验子和至少R个校验参数,生成该第一校验子中的第n个第一校验数据单位;基于该公共中间校验子和至少R个校验参数,生成该第二校验子中的第n个第二校验数据单位。上述技术方案可以降低生成校验子的复杂度,并且提高编码效率。

Description

存储数据的方法和存储设备
技术领域
本申请涉及信息技术领域,更具体地,涉及存储数据的方法和存储设备。
背景技术
纠删码(Erasure Code,EC)是数据存储中实现数据可靠性的关键技术。纠删码是通过对有效的数据块进行编码得到冗余的校验数据块。信息序列和校验序列共同组成了编码序列,其中,信息序列包含数据块,校验序列包含校验块。校验块是根据校验子生成的。EC编码在生成校验子的过程中所涉及的伽罗华域乘法运算次数较多,导致编码的计算复杂度随着校验序列的增加而增加,而伽罗华域乘法运算在设备的中央处理器(CentralProcessing Unit,CPU)中的计算时延比较高,是整个EC编码过程中的瓶颈所在,因此最终导致EC编码的计算性能随校验序列的增加而降低。
发明内容
本申请提供一种存储数据的方法和存储设备,可以降低生成校验子的复杂度。
第一方面,本申请实施例提供一种存储数据的方法,该方法由存储设备执行,包括:获得K个数据块,该K个数据块中的每个数据块的长度为N个数据单位;其中,K为大于或等于1的正整数,N为大于或等于1的正整数;生成该K个数据块的第一校验子和第二校验子;根据该第一校验子和该第二校验子,生成第一校验块和第二校验块;存储该K个数据块、该第一校验块和该第二校验块;其中,生成该K个数据块的第一校验子和第二校验子,包括:生成第n个中间校验子集合,该第n个中间校验子集合包括Mn个中间校验子,该Mn个中间校验子中的每个中间校验子为K个数据单位中的至少两个数据单位的异或,该K个数据单位分别为该K个数据块的第n个数据单位组成,Mn为大于或等于2的正整数,n=0,……,N-1;基于公共中间校验子和至少R个校验参数,生成该第一校验子中的第n个第一校验数据单位,其中,该第一校验子包括N个第一校验数据单位,该公共中间校验子包括该第n个中间校验子集合中的至少一个校验子,其中2R等于K;基于该公共中间校验子和至少R个校验参数,生成该第二校验子中的第n个第二校验数据单位,其中,该第二校验子包括N个第二校验数据单位。上述技术方案利用至少两个数据单位的异或结果构造了多个中间校验子。在生成校验子的过程中,至少两个校验子可以由相同的中间校验子生成。这样,可以降低生成校验子的复杂度,并且提高编码效率。
结合第一方面,在第一方面的第一种可能的实现方式中,该生成第n个中间校验子集合,包括:生成该Mn个中间校验子中的第m个中间校验子,该第m个中间校验子为该K个数据单位中的Km个数据单位的异或,其中Km为大于或等于2且小于或等于K的正整数,m=0,……,Mn-1。
结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,该Mn个中间校验子包括L1n个层1中间校验子和L2n个层2中间校验子,其中L1n为大于或等于1的正整数,L2n为大于或等于1的正整数,L1n和L2n的和为Mn;该生成该Mn个中间校验子中的第m个中间校验子,包括:生成该L1n个层1中间校验子,其中该Pn个层1中间校验子中的每个层1中间校验子为该K个数据单位中的两个数据单位的异或;生成该L2n个层2中间校验子,其中该L2n个层2中间校验子中的每个层2中间校验子为该L1n个层1中间校验子中的两个层1中间校验子的异或。
结合第一方面的第一种可能的实现方式或第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,
Figure BDA0001631779050000021
j=0,…,K-1,j的二进制值共包括R位,or为j的二进制值的第r位的取值,vr表示该R个校验参数中的第r个校验参数,ωj表示第j个参考校验参数,K的二进制共包括至少三位,该Mn个中间校验子中包括中间校验子md1、中间校验子md2、中间校验子md3,该中间校验子md1为Ck中k的二进制值最低位的取值为1的Ck的值的异或,其中Ck为该K个数据块中的第k个数据块的第n个数据字节,k=0,…,K-1;该中间校验子md2为Ck中k的二进制值中间位的取值为1的Ck的值的异或;该中间校验子md3为Ck中k的二进制值最高位的取值为1的Ck的值的异或。
结合第一方面的第一种可能的实现方式或第一方面的第二种可能的实现方式,在第一方面的第四种可能的实现方式中,
Figure BDA0001631779050000022
j=0,…,K-1,j的二进制值共包括R位,or为j的二进制值的第r位的取值的相反值,vr表示该R个校验参数中的第r个校验参数,ωj表示第j个参考校验参数,K的二进制共包括至少三位,该Mn个中间校验子中包括中间校验子md1、中间校验子md2、中间校验子md3,该中间校验子md1为Ck中k的二进制值最低位的取值为0的Ck的值的异或,其中Ck为该K个数据块中的第k个数据块的第n个数据字节,k=0,…,K-1;该中间校验子md2为Ck中k的二进制值中间位的取值为0的Ck的值的异或;该中间校验子md3为Ck中k的二进制值最高位的取值为0的Ck的值的异或。
结合第一方面或第一方面的上述任一种可能的实现方式,在第一方面的第五种可能的实现方式中,该基于公共中间校验子和R个校验参数,生成该第一校验子中的第n个第一校验数据单位,包括:根据以下公式生成该第n个第一校验数据单位
S1,n=P1,0·Q1,0+P1,1·Q1,1+......+P1,S-1·Q1,S-1,其中S1,n表示该第n个第一校验数据单位,P1,s表示S个第一目标中间校验子中的第s个第一目标中间校验子,Q1,s表示S个第一校验参数中的第s个第一校验参数,其中该S个第一目标中间校验子包括该公共中间校验子,该Mn个中间校验子包括该S个第一目标中间校验子,该R个校验参数包括该S个第一校验参数,S为大于或等于R的正整数,符号+表示伽罗华域异或,符号·表示伽罗华域乘法,s=0,……,S-1;该基于该公共中间校验子和至少R个校验参数,生成该第二校验子中的第n个第二校验数据单位,包括:根据以下公式生成该第n个第二校验数据单位
S2,n=P2,0·Q2,0+P2,1·Q2,1+......+P2,S-1·Q2,S-1,其中S2,n表示该第n个第二校验数据单位,P2,s表示S个第二目标中间校验子中的第s个第二目标中间校验子,Q2,s表示S个第二校验参数中的第s个第二校验参数,其中该S个第二目标中间校验子包括该公共中间校验子,该Mn个中间校验子包括该S个第二目标中间校验子,该至少R个校验参数包括该S个第二校验参数,S为大于或等于R的正整数,符号+表示伽罗华域异或,符号·表示伽罗华域乘法,s=0,……,S-1。
第二方面,本申请实施例提供一种存储数据的方法,该方法包括:获得K个数据块,该K个数据块中的每个数据块包括N个数据字节,其中,K为大于或等于1的正整数,N为大于或等于1的正整数;生成M个校验子;根据该M个校验子,生成M个校验块;存储该K个数据块和该M个校验块;其中生成该M个校验子中的任一个校验子包括的一个校验字节使用的伽罗华域乘法次数小于K+M,其中M为大于或等于2的正整数,符号+表示加法。
结合第二方面,在第二方面的第一种可能的实现方式中,该生成该M个校验子包括:生成第n个中间校验子集合,该第n个中间校验子集合包括Mn个中间校验子,该Mn个中间校验子中的每个中间校验子为K个数据单位中的至少两个数据单位的异或,该K个数据单位分别为该K个数据块的第n个数据单位组成,Mn为大于或等于2的正整数,
n=0,……,N-1;基于公共中间校验子和至少R个校验参数,生成第一校验子中的第n个第一校验数据单位,其中,该第一校验子包括N个第一校验数据单位,该公共中间校验子包括该第n个中间校验子集合中的至少一个校验子,其中2R等于K;基于该公共中间校验子和至少R个校验参数,生成第二校验子中的第n个第二校验数据单位,其中,该第二校验子包括N个第二校验数据单位,该第一校验子和该第二校验子是该M个校验子中的两个校验子。
结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,该生成第n个中间校验子集合,包括:生成该Mn个中间校验子中的第m个中间校验子,该第m个中间校验子为该K个数据单位中的Km个数据单位的异或,其中Km为大于或等于2且小于或等于K的正整数,m=0,……,Mn-1。
结合第二方面的第一种可能的实现方式,在第二方面的第三种可能的实现方式中,该Mn个中间校验子包括L1n个层1中间校验子和L2n个层2中间校验子,其中L1n为大于或等于1的正整数,L2n为大于或等于1的正整数,L1n和L2n的和为Mn;该生成该Mn个中间校验子中的第m个中间校验子,包括:生成该L1n个层1中间校验子,其中该Pn个层1中间校验子中的每个层1中间校验子为该K个数据单位中的两个数据单位的异或;生成该L2n个层2中间校验子,其中该L2n个层2中间校验子中的每个层2中间校验子为该L1n个层1中间校验子中的两个层1中间校验子的异或。
结合第二方面的第二种可能的实现方式或第二方面的第三种可能的实现方式,在第二方面的第四种可能的实现方式中,
Figure BDA0001631779050000031
j=0,…,K-1,j的二进制值共包括R位,or为j的二进制值的第r位的取值,vr表示该R个校验参数中的第r个校验参数,ωj表示第j个参考校验参数,K的二进制共包括至少三位,该Mn个中间校验子中包括中间校验子md1、中间校验子md2、中间校验子md3,该中间校验子md1为Ck中k的二进制值最低位的取值为1的Ck的值的异或,其中Ck为该K个数据块中的第k个数据块的第n个数据字节,k=0,…,K-1;该中间校验子md2为Ck中k的二进制值中间位的取值为1的Ck的值的异或;该中间校验子md3为Ck中k的二进制值最高位的取值为1的Ck的值的异或。
结合第二方面的第二种可能的实现方式或第二方面的第三种可能的实现方式,在第二方面的第五种可能的实现方式中,
Figure BDA0001631779050000032
j=0,…,K-1,j的二进制值共包括R位,or为j的二进制值的第r位的取值的相反值,vr表示该R个校验参数中的第r个校验参数,ωj表示第j个参考校验参数,K的二进制共包括至少三位,该Mn个中间校验子中包括中间校验子md1、中间校验子md2、中间校验子md3,该中间校验子md1为Ck中k的二进制值最低位的取值为0的Ck的值的异或,其中Ck为该K个数据块中的第k个数据块的第n个数据字节,k=0,…,K-1;该中间校验子md2为Ck中k的二进制值中间位的取值为0的Ck的值的异或;该中间校验子md3为Ck中k的二进制值最高位的取值为0的Ck的值的异或。
结合第二方面或第二方面的上述任一种可能的实现方式,在第二方面的第六种可能的实现方式中,该基于公共中间校验子和R个校验参数,生成该第一校验子中的第n个第一校验数据单位,包括:根据以下公式生成该第n个第一校验数据单位
S1,n=P1,0·Q1,0+P1,1·Q1,1+......+P1,S-1·Q1,S-1,其中S1,n表示该第n个第一校验数据单位,P1,s表示S个第一目标中间校验子中的第s个第一目标中间校验子,Q1,s表示S个第一校验参数中的第s个第一校验参数,其中该S个第一目标中间校验子包括该公共中间校验子,该Mn个中间校验子包括该S个第一目标中间校验子,该R个校验参数包括该S个第一校验参数,S为大于或等于R的正整数,符号+表示伽罗华域异或,符号·表示伽罗华域乘法,s=0,……,S-1;该基于该公共中间校验子和至少R个校验参数,生成该第二校验子中的第n个第二校验数据单位,包括:根据以下公式生成该第n个第二校验数据单位
S2,n=P2,0·Q2,0+P2,1·Q2,1+......+P2,S-1·Q2,S-1,其中S2,n表示该第n个第二校验数据单位,P2,s表示S个第二目标中间校验子中的第s个第二目标中间校验子,Q2,s表示S个第二校验参数中的第s个第二校验参数,其中该S个第二目标中间校验子包括该公共中间校验子,该Mn个中间校验子包括该S个第二目标中间校验子,该至少R个校验参数包括该S个第二校验参数,S为大于或等于R的正整数,符号+表示伽罗华域异或,符号·表示伽罗华域乘法,s=0,……,S-1。
第三方面,本申请实施例提供一种存储设备,该存储设备包括用于实现第一方面或第一方面的任一种可能的实现方式的单元。
第四方面,本申请实施例提供一种存储设备,该存储设备包括用于实现第二方面或第二方面的任一种可能的实现方式的单元。
第五方面,本申请实施例提供一种存储设备,该存储设备包括:存储器,用于存储程序;处理器,用于执行所述存储器存储的所述程序,当所述程序被执行时,所述处理器用于执行第一方面或第一方面的任一种可能的实现方式所述的方法。可选的,该存储设备为芯片或集成电路。
第六方面,本申请实施例提供一种存储设备,该存储设备包括:存储器,用于存储程序;处理器,用于执行所述存储器存储的所述程序,当所述程序被执行时,所述处理器用于执行第二方面或第二方面的任一种可能的实现方式所述的方法。可选的,该存储设备为芯片或集成电路。
第七方面,本申请实施例提供一种存储设备,该存储设备包括接口和处理器,该接口与该处理器通信;其中,该处理器用于执行第一方面或第一方面的任一种可能的实现方式所述的方法,其中K个数据块是通过该接口获得获得的。
第八方面,本申请实施例提供一种存储设备,该存储设备包括接口和处理器,该接口与该处理器通信;其中,该处理器用于执行第二方面或第二方面的任一种可能的实现方式所述的方法,其中K个数据块是通过该接口获得获得的。
第九方面,本申请实施例提供一种芯片用于执行第一方面或第一方面的任一种可能的实现方式所述的方法。
第十方面,本申请实施例提供一种芯片用于执行第二方面或第二方面的任一种可能的实现方式所述的方法。
第十一方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得计算机执行上述各个方面所述的方法。
第十二方面,本申请实施例提供了一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述各方面所述的方法。
附图说明
图1是存储设备的示意性结构框图。
图2是存储设备中的控制器的示意性结构框图。
图3是存储数据块的方法的示意图。
图4是分布式块存储系统的示意图。
图5是分布式块存储系统的服务器的示意性结构框图。
图6根据本申请实施例提供的存储数据的方法的示意性流程图。
图7是一种生成4个校验子的过程的示意性流程图。
图8是一种生成4个校验子的过程的示意性流程图。
图9是一种生成4个校验子的过程的示意性流程图。
图10是根据本申请实施例提供的存储设备的结构框图。
图11根据本申请实施例提供的一种芯片的结构框图。
具体实施方式
下面将结合附图,对本申请中的技术方案进行描述。
如图1所示,本发明实施例中的存储设备,可以为存储阵列(如
Figure BDA0001631779050000051
Figure BDA0001631779050000059
Figure BDA0001631779050000052
18000系列,
Figure BDA0001631779050000053
V3系列)。存储阵列包括存储控制器101和多块硬盘,其中,硬盘包含固态硬盘(Solid State Disk,SSD)、机械硬盘或者混合硬盘等。机械硬盘如HDD(Hard DiskDrive)。如图2所示,控制器101包含中央处理单元(Central Processing Unit,CPU)201、存储器202和接口203,存储器202中存储计算机指令,CPU201执行存储器202中的计算机指令对存储系统进行管理及数据访问操作。另外,为节省CPU201的计算资源,现场可编程门阵列(Field Programmable Gate Array,FPGA)或其他硬件也可以用于执行本发明实施例中CPU201全部操作,或者,FPGA或其他硬件与CPU201分别用于执行本发明实施例CPU的部分操作。为方便描述,本发明实施例统一用处理器来指CPU201和存储器202的组合,以及上述各种实现,处理器与接口203通信。
如图1和图2所描述的存储阵列,控制器101用于接收数据,将接收的数据进行划分获得数据块,使用EC编码得到校验数据块,如图3所示,将数据块和校验数据块存储到硬盘中。
进一步的,本发明实施例的存储设备还可以为分布式文件存储系统(如
Figure BDA0001631779050000054
Figure BDA0001631779050000055
9000系列),分布式块存储系统(如
Figure BDA0001631779050000056
Figure BDA0001631779050000057
系列)等。以
Figure BDA0001631779050000058
Figure BDA0001631779050000061
Figure BDA0001631779050000062
系列。示例性的如图4所示,分布式块存储系统包括多台服务器,如服务器1、服务器2、服务器3、服务器4、服务器5和服务器6,服务器间通过InfiniBand或以太网络等互相通信。在实际应用当中,分布式块存储系统中服务器的数量可以根据实际需求增加,本发明实施例对此不作限定。
分布式块存储系统的服务器中包含如图5所示的结构。如图5所示,分布式块存储系统中的每台服务器包含中央处理单元(Central Processing Unit,CPU)501、内存502、接口503、硬盘1、硬盘2和硬盘3,内存502中存储计算机指令,CPU501执行内存502中的程序指令执行相应的操作。接口503可以为硬件接口,如网络接口卡(Network Interface Card,NIC)或主机总线适配器(Host Bus Adaptor,HBA)等,也可以为程序接口模块等。硬盘包含固态硬盘(Solid State Disk,SSD)、机械硬盘或者混合硬盘。机械硬盘如HDD(Hard DiskDrive)。另外,为节省CPU401的计算资源,现场可编程门阵列(Field Programmable GateArray,FPGA)或其他硬件也可以代替CPU501执行上述相应的操作,或者,FPGA或其他硬件与CPU501共同执行上述相应的操作。为方便描述,本发明实施例将CPU501与内存502、FPGA及其他替代CPU501的硬件或FPGA及其他替代CPU501的硬件与CPU501的组合统称为处理器。
如图4和图5所描述的分布式块存储系统,服务器的处理器用于接收数据,将接收的数据进行划分获得数据块,使用EC编码得到校验数据块,参考图3,将数据块和校验数据块存储到分布式块存储系统的硬盘中。
图6基于本发明实施例提供的存储设备实施的存储数据的示意性流程图,包括:
601,获得K个数据块,该K个数据块中的每个数据块包括N个数据单位,其中,K为大于或等于1的正整数,N为大于或等于1的正整数。
本发明实施例中,存储设备接收数据,如主机发送的数据,将数据划分为数据块。其中,数据单位,即长度,可以为位(bit)、字节(Byte)、千字节(Kilo Byte,KB)、兆字节(Mega Byte,MB)等。本发明实施例中数据单位以字节数为例。
602,生成所述K个数据块的第一校验子和第二校验子。
603,根据该第一校验子和该第二校验子,生成第一校验块和第二校验块。
根据该第一校验子和该第二校验子生成该第一校验块和该第二校验块的方法可以与现有技术相同。校验子包括的校验数据单位与校验块包括的校验数据单位是相同的。校验数据单位,即校验数据长度,例如,校验子包括一个校验字节,即校验子为1个字节长度,对应于该校验子的校验块也包括一个字节。又如,校验子包括两个校验字节,对应于该校验子的校验块也包括两个校验字节。
例如,该根据该第一校验子和该第二校验子,生成第一校验块和第二校验块包括:将该第一校验子和该第二校验子与预设值相乘,得到该第一校验子和该第二校验子。该预设值保存在该存储设备中的,可以直接使用的值。
例如,假设校验子的数目为2,每个校验子包括一个校验字节,两个校验字节分别为S0至S1。可以根据以下公式生成该第一校验块和该第二校验块:
Figure BDA0001631779050000063
其中,Mt表示该预设值,P0和P1分别表示该第一校验块和该第二校验块,S0和S1分别表示该第一校验字节和该第二校验字节。
604,存储该K个数据块、该第一校验块和该第一校验块。
具体实现,可以将该K个数据块、该第一校验块和该第一校验块分别发送至K+2个存储装置,存储装置可以为硬盘,也可以为图4所示的以服务器为粒度的存储节点。
其中,步骤602包括:
6021,生成第n个中间校验子集合,该第n个中间校验子集合包括Mn个中间校验子,该Mn个中间校验子中的每个中间校验子为K个数据字节中的至少两个数据字节的异或,该K个数据字节分别为该K个数据块的第n个数据字节组成,Mn为大于或等于2的正整数,n=0,……,N-1。
6022,基于公共中间校验子和至少R个校验参数,生成第一校验子中的第n个第一校验字节,该第一校验子包括N个第一校验字节,其中该公共中间校验子包括该第n个中间校验子集合中的至少一个校验子,其中2R等于K。
6023,基于该公共中间校验子和至少R个校验参数,生成第二校验子中的第n个第二校验字节,该第二校验子包括N个第二校验字节。
根据图6所示的方法利用至少两个数据单位(如数据字节)的异或构造了多个中间校验子。在生成校验子的过程中,至少两个校验子可以由相同的中间校验子生成。这样,可以降低生成校验子的计算复杂度,从而提高编码效率。
可选的,在一些实施例中,该生成第n个中间校验子集合,包括:生成该Mn个中间校验子中的第m个中间校验子,该第m个中间校验子为该K个数据字节中的Km个数据字节的异或,其中Km为大于或等于2且小于或等于K的正整数,m=0,……,Mn-1。
例如,在一些实施例中,假设K等于8。N个中间校验子集合中的第n个中间校验子集合包括中间校验子m0和m1,另一个中间校验子集合包括中间校验子m1、m2和m3
m0=C0+C2+C4+C6,(公式1.2)
m1=C1+C3+C5+C7,(公式1.3)
m2=C2+C3+C6+C7,(公式1.4)
m3=C4+C5+C6+C7,(公式1.5)
其中C0表示8个数据块中的数据块0的数据字节n,C1表示8个数据块中的数据块1的数据字节n,C2表示8个数据块中的数据块2的数据字节n,依次类推。符号“+”表示异或运算。
又如,在另一些实施例中,假设K等于8。N个中间校验子集合中的一个中间校验子集合包括中间校验子m0和m1,另一个中间校验子集合包括中间校验子m1、m2和m3,另一个中间校验子集合包括中间校验子m1、m2、m3、m4、m5和m6。m0至m3可以参见公式1.2至公式1.5,m4至m6可以参见公式1.6至1.8。
m4=C3+C7,(公式1.6)
m5=C5+C7,(公式1.7)
m6=C6+C7,(公式1.8)
其中C3、C5、C6和C7的含义与公式1.1至1.4相同,符号“+”表示异或运算。
可选的,在一些实施例中,该Mn个中间校验子包括L1n个层1中间校验子和L2n个层2中间校验子,其中L1n为大于或等于1的正整数,L2n为大于或等于1的正整数,L1n和L2n的和为Mn。该生成该Mn个中间校验子中的第m个中间校验子,包括:生成该L1n个层1中间校验子,其中该Pn个层1中间校验子中的每个层1中间校验子为该K个数据字节中的两个数据字节的异或;生成该L2n个层2中间校验子,其中该L2n个层2中间校验子中的每个层2中间校验子为该L1n个层1中间校验子中的两个层1中间校验子的异或。
例如,在一些实施例中,假设K等于8。一个中间校验子集合包括的多个中间校验子可以包括四个层1中间校验子m1,0、m1,1、m1,2和m1,3。该中间校验子集合可以包括两个层2中间校验子m2,0和m2,1
m1,0=C0+C4,(公式1.9)
m1,1=C1+C5,(公式1.10)
m1,2=C2+C6,(公式1.11)
m1,3=C3+C7,(公式1.12)
m2,0=m1,0+m1,2,(公式1.13)
m2,1=m1,1+m1,3,(公式1.14)
其中C0至C7的含义与公式1.2至1.5相同,符号“+”表示异或运算。
另一个中间校验子集合包括的多个中间校验子可以包括五个层1中间校验子m1,1、m1,2、m1,3、m1,4和m1,5。该另一个中间校验子集合可以包括三个层2中间校验子m2,1、m2,2和m2,3
m1,4=C4+C6,(公式1.15)
m1,5=C5+C7,(公式1.16)
m2,2=m1,2+m1,3,(公式1.17)
m2,3=m1,4+m1,5,(公式1.18)
其中C4至C7的含义与公式1.2至1.5相同,符号“+”表示异或运算。
由公式1.8至公式1.12可知,每个层1中间校验子为两个数据字节的异或,每个层2中间校验子为两个层1中间校验子的异或。
可选的,在一些实施例中,
Figure BDA0001631779050000081
j=0,…,K-1,j的二进制值共包括R位,or为j的二进制值的第r位的取值,vr表示该至少一个校验参数中的一个校验参数,ωj表示第j个参考校验参数,K的二进制共包括至少三位,该Mn个中间校验子中包括中间校验子md1、中间校验子md2、中间校验子md3,该中间校验子md1为Ck中k的二进制值最低位的取值为1的Ck的值的异或,其中Ck为该K个数据块中的第k个数据块的第n个数据字节,k=0,…,K-1;该中间校验子md2为Ck中k的二进制值中间位的取值为1的Ck的值的异或;该中间校验子md3为Ck中k的二进制值最高位的取值为1的Ck的值的异或。
例如,假设R=3,在该实施例中,or、vr和ωj的关系可以如表1-1所示。
Figure BDA0001631779050000082
Figure BDA0001631779050000091
表1-1
以表1-1的第一行为例ω0=0·v0+0·v1+0·v2,以表1-1的第二行为例
ω1=1·v0+0·v1+0·v2,以表1-1的第三行为例ω2=0·v0+1·v1+0·v2,依次类推。
假设K等于8,则K的二进制值有三位。md1=C1+C3+C5+C7
md2=C2+C3+C6+C7,md3=C4+C5+C6+C7
可选的,在另一些实施例中,
Figure BDA0001631779050000092
j=0,…,K-1,j的二进制值共包括R位,or为j的二进制值的第r位的取值的相反值,vr表示该R个校验参数中的第r个校验参数,ωj表示第j个参考校验参数,K的二进制共包括至少三位,该Mn个中间校验子中包括中间校验子md1、中间校验子md2、中间校验子md3,该中间校验子md1为Ck中k的二进制值最低位的取值为0的Ck的值的异或,其中Ck为该K个数据块中的第k个数据块的第n个数据字节;该中间校验子md2为Ck中k的二进制值中间位的取值为0的Ck的值的异或;该中间校验子md3为Ck中k的二进制值最高位的取值为0的Ck的值的异或。
假设R=3,在该实施例中,or、vr和ωj的关系可以如表1-2所示。
v<sub>2</sub> v<sub>1</sub> v<sub>0</sub>
ω<sub>0</sub> 1 1 1
ω<sub>1</sub> 1 1 0
ω<sub>2</sub> 1 0 1
ω<sub>3</sub> 1 0 0
ω<sub>4</sub> 0 1 1
ω<sub>5</sub> 0 1 0
ω<sub>6</sub> 0 0 1
ω<sub>7</sub> 0 0 0
表1-2
以表1-2的第一行为例ω0=1·v0+1·v1+1·v2,以表1-1的第二行为例
ω1=0·v0+1·v1+1·v2,以表1-1的第三行为例ω2=1·v0+0·v1+1·v2,依次类推。
假设K等于8,则K的二进制值有三位。md1=C1+C3+C5+C7
md2=C2+C3+C6+C7,md3=C4+C5+C6+C7
上述实施例中,or为j的二进制值的第r位的取值或者第r位的取值的相反值。本领域技术人员可以理解,在另一些实施例中,or的取值也可以其他值。例如假设R=3,ωj对应的o0至o2的取值可以是r的取值向左移动一位并且左侧补0。例如ω7=1·v0+1·v1+0·v2,ω6=1·v0+0·v1+0·v2。根据ωj和or的取值的不同对应关系,可以获得不同的中间校验子的计算方法,在此就不必一一列举。
可选的,在一些实施例中,该根据公共中间校验子和至少R个校验参数,生成第一校验子中的第n个第一校验字节,包括:根据以下公式生成该第n个第一校验字节
S1,n=P1,0·Q1,0+P1,1·Q1,1+......+P1,S-1·Q1,S-1,(公式1.19)
其中S1,n表示该第n个第一校验字节,P1,s表示S个第一目标中间校验子中的第s个第一目标中间校验子,Q1,s表示S个第一校验参数中的第s个第一校验参数,其中该S个第一目标中间校验子包括该公共中间校验子,该Mn个中间校验子包括该S个第一目标中间校验子,该至少R个校验参数包括该S个第一校验参数,S为大于或等于R的正整数,符号+表示异或,符合·表示伽罗华域乘法,s=0,……,S-1。根据该公共中间校验子和该至少R个校验参数,生成第二校验子中的第n个第二校验字节,包括:根据以下公式生成该第n个第二校验字节
S2,n=P2,0·Q2,0+P2,1·Q2,1+......+P2,S-1·Q2,S-1,(公式1.20)
其中S2,n表示该第n个第二校验字节,P2,s表示S个第二目标中间校验子中的第s个第二目标中间校验子,Q2,s表示S个第二校验参数中的第s个第二校验参数,其中该S个第二目标中间校验子包括该公共中间校验子,该Mn个中间校验子包括该S个第二目标中间校验子,该至少R个校验参数包括该S个第二校验参数,S为大于或等于R的正整数,符号+表示异或和,符合·表示伽罗华域乘法,s=0,……,S-1。
为了帮助本领域技术人员更好地理解本申请的技术方案,下面将结合具体实施例对本申请进行进一步描述。
图7是一种生成4个校验子的过程的示意性流程图。
图7所示的实施例中,信息序列由8个数据块组成,每个数据块的数据单位为1个字节。该信息序列总共包括8个字节,分别为C0至C7。假设校验子的数目为4,每个校验子的校验数据单位为1字节,4个校验子分别为S0至S3。校验序列包括四个校验块,每个校验块的数据单位为1个字节。该校验序列共包括4个字节。该4个字节分别根据该4个校验子生成。
如图7所示,在生成4个校验子时共需要生成11个中间校验子,分别为m1,0、m1,1、m1,2、m1,3、m1,4、m1,5、m1,6、m2,0、m2,1、m2,2和m2,3。其中,m1,0、m1,1、m1,2、m1,3、m1,4、m1,5、m1,6为层1中间校验子,m2,0、m2,1、m2,2和m2,3为层2中间校验子。
m1,0=C0+C4,(公式2.1)
m1,1=C1+C5,(公式2.2)
m1,2=C2+C6,(公式2.3)
m1,3=C3+C7,(公式2.4)
m1,4=C4+C6,(公式2.5)
m1,5=C5+C7,(公式2.6)
m1,6=C6+C7,(公式2.7)
m2,0=m1,0+m1,2,(公式2.8)
m2,1=m1,1+m1,3,(公式2.9)
m2,2=m1,2+m1,3,(公式2.10)
m2,3=m1,4+m1,5,(公式2.11)。
S0=m2,0+m2,1,(公式2.12)
S1=v0·m2,1+v1·m2,2+v2·m2,3,(公式2.13)
S2=v0 2·m2,1+v1 2·m2,2+v2 2·m2,3,(公式2.14)
S3=v0 3·m2,1+v1 3·m2,2+v2 3·m2,3+(v1 2·v0+v1·v0 2)·m1,3+(v2 2·v0+v2·v0 2)·m1,5+(v2 2·v1+v2·v1 2)·m1,6,(公式2.15)
在生成了中间校验子后,可以根据公式2.12至公式2.15生成4个校验子S0至S3
公式2.1至公式2.15中的符号+表示异或,符号·表示伽罗华域乘法运算。
公式2.12至公式2.15中的v0、v1、v2、v0 2、v1 2、v2 2、v0 3、v1 3、v2 3、v1 2·v0+v1·v0 2、v2 2·v0+v2·v0 2、v2 2·v1+v2·v1 2为校验参数,上述校验参数的取值是预先计算好并保存在存储设备的。例如,可以保存在一个表中。在计算过程中可以通过查表得到上述校验参数的取值。
四个校验子S0至S3中的任意两个校验子可以是图7所示实施例中的第一校验子和第二校验子。假设S0和S1分别为第一校验子和第二校验子,m2,0和m2,1为第一目标中间校验子,m2,1、m2,2和m2,3为第二目标中间校验子。公式2.12中包括两个第一校验参数,该两个第一校验参数均为1。公式2.13中包括三个第二校验参数,该三个第二校验参数分别为v0、v1和v2
可以看出,将公式2.12和公式2.13和公式1.14和公式1.15进行对比,S0=S1,0,S1=S11,P1,0=m2,0,P1,1=m2,1,Q1,0=Q1,1=1,P2,0=m2,1,P2,1=m2,2,P2,3=M2,3,Q2,0=v0,Q2,1=v1,Q2,2=v2
类似的,S2和S3也可以分别认为图7所示实施例中的第一校验子和第二校验子。具体方式与S0和S1类似,在此就不必赘述。
可以看出,根据图7所示的方法,计算校验子S0至S3仅需要使用12次伽罗华域乘法运算和21次异或运算。
图8是一种生成4个校验子的过程的示意性流程图。
图8所示的实施例中,信息序列由8个数据块组成,每个数据块的数据单位,即数据块的长度为1个字节。该信息序列总共包括8个字节,分别为C0至C7。假设校验子的数目为4,每个校验子长度为1个字节,4个校验子分别为S0至S3。校验序列包括四个校验块,每个校验块的数据单位,即校验块的长度为1个字节。该校验序列共包括4个字节。该4个字节分别根据该4个校验子生成。
如图8所示,在生成4个校验子时共需要生成11个中间校验子,分别为m1,0、m1,1、m1,2、m1,3、m1,4、m1,5、m1,6、m2,0、m2,1、m2,2和m2,3。其中,m1,0、m1,1、m1,2、m1,3、m1,4、m1,5、m1,6为层1中间校验子,m2,0、m2,1、m2,2和m2,3为层2中间校验子。
m1,0=C0+C4,(公式3.1)
m1,1=C1+C5,(公式3.2)
m1,2=C2+C6,(公式3.3)
m1,3=C3+C7,(公式3.4)
m1,4=C4+C6,(公式3.5)
m1,5=C5+C7,(公式3.6)
m2,0=m1,0+m1,2,(公式3.7)
m2,1=m1,1+m1,3,(公式3.8)
m2,2=m1,2+m1,3,(公式3.9)
m2,3=m1,4+m1,5,(公式3.10)。
S0=m2,0+m2,1,(公式3.11)
S1=v0·m2,1+v1·m2,2+v2·m2,3,(公式3.12)
S2=v0 2·m2,1+v1 2·m2,2+v2 2·m2,3,(公式3.13)
S3=v0 4·m2,1+v1 4·m2,2+v2 4·m2,3,(公式3.14)
在生成了中间校验子后,可以根据公式3.11至公式3.14生成4个校验子S0至S3
公式3.1至公式3.14中的符号+表示异或,符号·表示伽罗华域乘法运算。
公式3.11至公式3.14中的v0、v1、v2、v0 2、v1 2、v2 2、v0 4、v1 4、v2 4为校验参数,上述校验参数的取值是预先计算好并保存在存储设备的。例如,可以保存在一个表中。在计算过程中可以通过查表得到上述校验参数的取值。
4个校验子S0至S3中的任意两个校验子可以是图8所示实施例中的第一校验子和第二校验子。假设S0和S1分别为第一校验子和第二校验子,m2,0和m2,1为第一目标中间校验子,m2,1、m2,2和m2,3为第二目标中间校验子。公式3.11中包括两个第一校验参数,该两个第一校验参数均为1。公式3.12中包括三个第二校验参数,该三个第二校验参数分别为v0、v1和v2
可以看出,若将公式3.11和公式3.12与公式1.14和公式1.15进行对比,S0=S1,0,S1=S1,1,P1,0=m2,0,P1,1=m2,1,Q1,0=Q1,1=1,P2,0=m2,1,P2,1=m2,2,P2,3=M2,3,Q2,0=v0,Q2,1=v1,Q2,2=v2
类似的,S2和S3也可以分别认为图8所示实施例中的第一校验子和第二校验子。具体方式与S0和S1类似,在此就不必赘述。
可以看出,根据图8所示的方法,生成校验字节S0至S3仅需要使用9次伽罗华域乘法运算和17次异或运算。
图7和图8所示的实施例中,在生成校验子的过程中,均生成了两层中间校验子。在另一实施例中,可以仅生成最终生成校验子时需要的中间校验子。例如,以图7为例,在生成校验子过程中,可以直接生成中间校验子m1,3、m1,5、m1,6、m2,0、m2,1、m2,2、m2,3
图9是一种生成4个校验子的过程的示意性流程图。
图9所示的实施例中,信息序列由8个数据块组成,每个数据块的长度为1个字节。该信息序列总共包括8个字节,分别为C0至C7。假设校验子的数目为4,每个校验子的长度为1个字节,4个校验子分别为S0至S3
校验子S0至S4可以根据以下公式生成:
Figure BDA0001631779050000121
Figure BDA0001631779050000122
Figure BDA0001631779050000131
Figure BDA0001631779050000132
其中ω可以称为参考校验参数,ωk为第k个参考校验参数。
可以看出,根据图9所示的方法,生成校验子S0至S3需要使用24次伽罗华域乘法运算和28次异或运算。
ω可以展开为多个v来表示。具体地,
Figure BDA0001631779050000133
j=0,…,K-1,j的二进制值共包括R位,or为j的二进制值的第r位的取值。
假设R=3,在该实施例中,or、vr和ωj的关系可以如表1-1所示。
根据表1-1可以得到如下结果:
ω0=0·v0+0·v1+0·v2
ω1=1·v0+0·v1+0·v2
ω2=0·v0+1·v1+0·v2
ω2=0·v0+1·v1+0·v2
ω3=0·v0+1·v1+1·v2
ω4=ω0+v2
ω5=ω1+v2
ω6=ω2+v2
ω7=ω3+v2
ω2=ω0+v1
ω3=ω1+v1
Figure BDA0001631779050000134
假设R=3,
Figure BDA0001631779050000135
Figure BDA0001631779050000136
的关系如表4-1所示。
V<sub>2</sub><sup>2</sup> V<sub>1</sub><sup>2</sup> V<sub>0</sub><sup>2</sup>
ω<sub>0</sub><sup>2</sup> 0 0 0
ω<sub>1</sub><sup>2</sup> 0 0 1
ω<sub>2</sub><sup>2</sup> 0 1 0
ω<sub>3</sub><sup>2</sup> 0 1 1
ω<sub>4</sub><sup>2</sup> 1 0 0
ω<sub>5</sub><sup>2</sup> 1 0 1
ω<sub>6</sub><sup>2</sup> 1 1 0
ω<sub>7</sub><sup>2</sup> 1 1 1
表4-1
Figure BDA0001631779050000141
假设R=3,
Figure BDA0001631779050000142
Figure BDA0001631779050000143
的关系如表4-2所示。
V<sub>2</sub><sup>4</sup> V<sub>1</sub><sup>4</sup> V<sub>0</sub><sup>4</sup>
ω<sub>0</sub><sup>4</sup> 0 0 0
ω<sub>1</sub><sup>4</sup> 0 0 1
ω<sub>2</sub><sup>4</sup> 0 1 0
ω<sub>3</sub><sup>4</sup> 0 1 1
ω<sub>4</sub><sup>4</sup> 1 0 0
ω<sub>5</sub><sup>4</sup> 1 0 1
ω<sub>6</sub><sup>4</sup> 1 1 0
ω<sub>7</sub><sup>4</sup> 1 1 1
表4-2
定义k+m的校验矩阵H为:
Figure BDA0001631779050000144
假设m=4,k=4。
将公式4.1展开后可以得到:
S0=C0+C1+C2+C3+C4+C5+C6+C7,(公式4.5)。
可以看出,公式4.5与公式2.12、公式3.11相同。
将公式4.2展开后可以得到:
S1=C1·v0+C2·v1+C3·(v0+v1)+C4·V2+C5·(v0+v2)+C6·(v1+v2)+C7·(v0+v1+v2),(公式4.6)。将公式4.6提出公因式,可以得到:
S1=v0·(C1+C3+C5+C7)+v1·(C2+C3+C6+C7)+v2·(C4+C5+C6+C7),(公式4.7)。
可以看出公式4.7与公式2.13、公式3.12相同。
采取同样的方法,根据表4-1可以得到:
S2=v0 2·(C1+C3+C5+C7)+v1 2·(C2+C3+C6+C7)+v2 2·(C4+C5+C6+C7),(公式4.8)。
可以看出,公式4.8与公式2.14、公式3.13相同。
针对S3的计算,由于
ω1 3=v0 3
ω2 3=v1 3
ω3 3=(v0+v1)3=v0 3+v1 3+v1 2·v0+v1·v0 2
ω4 3=v2 3
ω5 3=(v0+v2)3=v0 3+v2 3+v2 2·v0+v2·v0 2
ω6 3=(v1+v2)3=v1 3+v2 3+v2 2·v1+v2·v1 2
ω7 3=(v0+v1+v2)3=v0 3+v1 3+v2 3+v0 2·(v1+v2)+v1 2·(v0+v2)+v2 2·(v0+v1)。
根据上述公式将公式4.4展开可以得到:
S3=v0 3·(C1+C3+C5+C7)+v1 3·(C2+C3+C6+C7)+v2 3·(C4+C5+C6+C7)+(v1 2·v0+v1·v0 2)·(C3+C7)1,3+(v2 2·v0+v2·v0 2)·(C5+C7)+(v2 2·v1+v2·v1 2)·(C6+C7),(公式4.9)。
可以看出公式4.9与公式2.15相同。
由此可见,虽然图7所示的方法与图9所示的方法不同,但是图9所示的方法可以通过变形得到图7所示的结果。
图7与图9所示实施例中的校验子是基于上述校验矩阵H的前四行元素生成的。在另一些实施例中,校验子也可以是基于上述校验矩阵H的其他元素生成。例如,图8所示实施例中的校验子是基于上述校验矩阵H的第0行、第1行、第2行和第4行生成的。相应的,若采用与图9类似的方式生成校验子,则S0至S2的生成方式与公式4.1至4.3相同,S3可以根据以下公式生成:
Figure BDA0001631779050000151
根据表4-2可以得到:
S3=v0 4·(C1+C3+C5+C7)+v1 4·(C2+C3+C6+C7)+v2 4·(C4+C5+C6+C7),(公式4.11)。
可以看出,公式4.11与公式3.14相同。
通过上述证明可以看出,本发明实施例所示的方法可以大大减少伽罗华域乘法运算以及异或运算的次数。因此,可以降低生成校验子的复杂度,提升编码性能。
为了便于理解,图7至图9所示的实施例中,信息序列中的每个数据块的长度为1个字节。可以理解的是,若每个数据块包括多个字节,则每次处理方式可以参照图7和图8所示的方法。具体地,假设K个数据块中的每个数据块包括N个字节,第一次处理的是该K个数据块中每一个数据块的第0个字节(共K个数据字节),第二次处理的是该K个数据块中每一个数据块的第1个字节(共K个数据字节),第三次处理的是该K个数据块中每一个数据块的第2个字节(共K个数据字节),以此类推。同样的,每次处理得到的是校验子的一个校验字节。假设校验子的数目为4,每个校验子包括N个字节。第一次处理得到的是每个校验子的第0个字节,第二次处理得到的是每个校验子的第1个字节,以此类推。
图10是根据本申请实施例提供的存储设备的结构框图。如图10所示存储设备1000包括获取单元1001,处理单元1002和存储单元1003。
获取单元1001,用于获得K个数据块,该K个数据块中的每个数据块的长度为N个数据单位;其中,K为大于或等于1的正整数,N为大于或等于1的正整数。
处理单元1002,用于生成该K个数据块的第一校验子和第二校验子。
处理单元1002,还用于根据该第一校验子和该第二校验子,生成第一校验块和第二校验块。
存储单元1003,用于存储该K个数据块、该第一校验块和该第二校验块。
处理单元1002,具体用于:生成第n个中间校验子集合,该第n个中间校验子集合包括Mn个中间校验子,该Mn个中间校验子中的每个中间校验子为K个数据单位中的至少两个数据单位的异或,该K个数据单位分别为该K个数据块的第n个数据单位组成,Mn为大于或等于2的正整数,n=0,……,N-1;基于公共中间校验子和至少R个校验参数,生成该第一校验子中的第n个第一校验数据单位,其中,该第一校验子包括N个第一校验数据单位,该公共中间校验子包括该第n个中间校验子集合中的至少一个校验子,其中2R等于K;基于该公共中间校验子和至少R个校验参数,生成该第二校验子中的第n个第二校验数据单位,其中,该第二校验子包括N个第二校验数据单位。
获取单元1001,处理单元1002和存储单元1003的具体功能和有益效果,可以参见图6所示的实施例,在此就不必赘述。
图11是根据本申请实施例提供的一种芯片的结构框图。如图11所示的芯片1100包括通信接口1101和处理器1102。
处理器1102用于通过通信接口1101获得K个数据块,该K个数据块中的每个数据块的长度为N个数据单位;其中,K为大于或等于1的正整数,N为大于或等于1的正整数。具体的,处理器1101通过通信接口1101接收数据,获得K个数据块。
处理器1102,还用于生成该K个数据块的第一校验子和第二校验子。
处理器1102,还用于根据该第一校验子和该第二校验子,生成第一校验块和第二校验块。
处理器1102,还用于通过通信接口1101存储该K个数据块、该第一校验块和该第二校验块。
处理器1102,具体用于:生成第n个中间校验子集合,该第n个中间校验子集合包括Mn个中间校验子,该Mn个中间校验子中的每个中间校验子为K个数据单位中的至少两个数据单位的异或,该K个数据单位分别为该K个数据块的第n个数据单位组成,Mn为大于或等于2的正整数,n=0,……,N-1;基于公共中间校验子和至少R个校验参数,生成该第一校验子中的第n个第一校验数据单位,其中,该第一校验子包括N个第一校验数据单位,该公共中间校验子包括该第n个中间校验子集合中的至少一个校验子,其中2R等于K;基于该公共中间校验子和至少R个校验参数,生成该第二校验子中的第n个第二校验数据单位,其中,该第二校验子包括N个第二校验数据单位。
本申请的又一方面提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当该指令在计算机上运行时,使得计算机执行上述如图6所示的方法。
本申请的又一方面提供了一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行如图6所示的方法。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (20)

1.一种存储数据的方法,其特征在于,所述方法由存储设备执行,包括:
获得K个数据块,所述K个数据块中的每个数据块的长度为N个数据单位;其中,K为大于或等于1的正整数,N为大于或等于1的正整数;
生成所述K个数据块的第一校验子和第二校验子;
根据所述第一校验子和所述第二校验子,生成第一校验块和第二校验块;
存储所述K个数据块、所述第一校验块和所述第二校验块;
其中,生成所述K个数据块的第一校验子和第二校验子,包括:
生成第n个中间校验子集合,所述第n个中间校验子集合包括Mn个中间校验子,所述Mn个中间校验子中的每个中间校验子为K个数据单位中的至少两个数据单位的异或,所述K个数据单位分别为所述K个数据块的第n个数据单位组成,Mn为大于或等于2的正整数,n=0,……,N-1;
基于公共中间校验子和至少R个校验参数,根据以下公式生成所述第一校验子中的第n个第一校验数据单位,S1,n=P1,0·Q1,0+P1,1·Q1,1+......+P1,S-1·Q1,S-1,其中,所述第一校验子包括N个第一校验数据单位,所述公共中间校验子包括所述第n个中间校验子集合中的至少一个校验子,其中2R等于K,其中S1,n表示所述第n个第一校验数据单位,P1,s表示S个第一目标中间校验子中的第s个第一目标中间校验子,Q1,s表示S个第一校验参数中的第s个第一校验参数,其中所述S个第一目标中间校验子包括所述公共中间校验子,所述Mn个中间校验子包括所述S个第一目标中间校验子,所述R个校验参数包括所述S个第一校验参数,S为大于或等于R的正整数,符号+表示伽罗华域异或,符号·表示伽罗华域乘法,s=0,……,S-1;
基于所述公共中间校验子和至少R个校验参数,根据以下公式生成所述第二校验子中的第n个第二校验数据单位,S2,n=P2,0·Q2,0+P2,1·Q2,1+......+P2,S-1·Q2,S-1,其中,所述第二校验子包括N个第二校验数据单位,其中S2,n表示所述第n个第二校验数据单位,P2,s表示S个第二目标中间校验子中的第s个第二目标中间校验子,Q2,s表示S个第二校验参数中的第s个第二校验参数,其中所述S个第二目标中间校验子包括所述公共中间校验子,所述Mn个中间校验子包括所述S个第二目标中间校验子,所述至少R个校验参数包括所述S个第二校验参数,S为大于或等于R的正整数,符号+表示伽罗华域异或,符号·表示伽罗华域乘法,s=0,……,S-1。
2.如权利要求1所述的方法,其特征在于,所述生成第n个中间校验子集合,包括:
生成所述Mn个中间校验子中的第m个中间校验子,所述第m个中间校验子为所述K个数据单位中的Km个数据单位的异或,其中Km为大于或等于2且小于或等于K的正整数,m=0,……,Mn-1。
3.如权利要求2所述的方法,其特征在于,所述Mn个中间校验子包括L1n个层1中间校验子和L2n个层2中间校验子,其中L1n为大于或等于1的正整数,L2n为大于或等于1的正整数,L1n和L2n的和为Mn
所述生成所述Mn个中间校验子中的第m个中间校验子,包括:
生成所述L1n个层1中间校验子,其中Pn个层1中间校验子中的每个层1中间校验子为所述K个数据单位中的两个数据单位的异或;
生成所述L2n个层2中间校验子,其中所述L2n个层2中间校验子中的每个层2中间校验子为所述L1n个层1中间校验子中的两个层1中间校验子的异或。
4.如权利要求2或3所述的方法,其特征在于,
Figure FDA0002938749470000021
的二进制值共包括R位,or为j的二进制值的第r位的取值,vr表示所述R个校验参数中的第r个校验参数,ωj表示第j个参考校验参数,
K的二进制共包括至少三位,所述Mn个中间校验子中包括中间校验子md1、中间校验子md2、中间校验子md3
所述中间校验子md1为Ck中k的二进制值最低位的取值为1的Ck的值的异或,其中Ck为所述K个数据块中的第k个数据块的第n个数据字节,k=0,…,K-1;
所述中间校验子md2为Ck中k的二进制值中间位的取值为1的Ck的值的异或;
所述中间校验子md3为Ck中k的二进制值最高位的取值为1的Ck的值的异或。
5.如权利要求2或3所述的方法,其特征在于,
Figure FDA0002938749470000022
j的二进制值共包括R位,or为j的二进制值的第r位的取值的相反值,vr表示所述R个校验参数中的第r个校验参数,ωj表示第j个参考校验参数,
K的二进制共包括至少三位,所述Mn个中间校验子中包括中间校验子md1、中间校验子md2、中间校验子md3
所述中间校验子md1为Ck中k的二进制值最低位的取值为0的Ck的值的异或,其中Ck为所述K个数据块中的第k个数据块的第n个数据字节,k=0,…,K-1;
所述中间校验子md2为Ck中k的二进制值中间位的取值为0的Ck的值的异或;
所述中间校验子md3为Ck中k的二进制值最高位的取值为0的Ck的值的异或。
6.一种存储设备,其特征在于,所述存储设备包括:
获取单元,用于获得K个数据块,所述K个数据块中的每个数据块的长度为N个数据单位;其中,K为大于或等于1的正整数,N为大于或等于1的正整数;
处理单元,用于生成所述K个数据块的第一校验子和第二校验子;
所述处理单元,还用于根据所述第一校验子和所述第二校验子,生成第一校验块和第二校验块;
存储单元,用于存储所述K个数据块、所述第一校验块和所述第二校验块;
其中,所述处理单元,具体用于:
生成第n个中间校验子集合,所述第n个中间校验子集合包括Mn个中间校验子,所述Mn个中间校验子中的每个中间校验子为K个数据单位中的至少两个数据单位的异或,所述K个数据单位分别为所述K个数据块的第n个数据单位组成,Mn为大于或等于2的正整数,n=0,……,N-1;
基于公共中间校验子和至少R个校验参数,根据以下公式生成所述第一校验子中的第n个第一校验数据单位,S1,n=P1,0·Q1,0+P1,1·Q1,1+......+P1,S-1·Q1,S-1,其中,所述第一校验子包括N个第一校验数据单位,所述公共中间校验子包括所述第n个中间校验子集合中的至少一个校验子,其中2R等于K,其中S1,n表示所述第n个第一校验数据单位,P1,s表示S个第一目标中间校验子中的第s个第一目标中间校验子,Q1,s表示S个第一校验参数中的第s个第一校验参数,其中所述S个第一目标中间校验子包括所述公共中间校验子,所述Mn个中间校验子包括所述S个第一目标中间校验子,所述R个校验参数包括所述S个第一校验参数,S为大于或等于R的正整数,符号+表示伽罗华域异或,符号·表示伽罗华域乘法,s=0,……,S-1;
基于所述公共中间校验子和至少R个校验参数,根据以下公式生成所述第二校验子中的第n个第二校验数据单位,S2,n=P2,0·Q2,0+P2,1·Q2,1+......+P2,S-1·Q2,S-1,其中,所述第二校验子包括N个第二校验数据单位,其中S2,n表示所述第n个第二校验数据单位,P2,s表示S个第二目标中间校验子中的第s个第二目标中间校验子,Q2,s表示S个第二校验参数中的第s个第二校验参数,其中所述S个第二目标中间校验子包括所述公共中间校验子,所述Mn个中间校验子包括所述S个第二目标中间校验子,所述至少R个校验参数包括所述S个第二校验参数,S为大于或等于R的正整数,符号+表示伽罗华域异或,符号·表示伽罗华域乘法,s=0,……,S-1。
7.如权利要求6所述的存储设备,其特征在于,所述处理单元,具体用于:
生成所述Mn个中间校验子中的第m个中间校验子,所述第m个中间校验子为所述K个数据单位中的Km个数据单位的异或,其中Km为大于或等于2且小于或等于K的正整数,m=0,……,Mn-1。
8.如权利要求7所述的存储设备,其特征在于,所述Mn个中间校验子包括L1n个层1中间校验子和L2n个层2中间校验子,其中L1n为大于或等于1的正整数,L2n为大于或等于1的正整数,L1n和L2n的和为Mn
所述处理单元,具体用于:
生成所述L1n个层1中间校验子,其中Pn个层1中间校验子中的每个层1中间校验子为所述K个数据单位中的两个数据单位的异或;
生成所述L2n个层2中间校验子,其中所述L2n个层2中间校验子中的每个层2中间校验子为所述L1n个层1中间校验子中的两个层1中间校验子的异或。
9.如权利要求6或7所述的存储设备,其特征在于,
Figure FDA0002938749470000031
j的二进制值共包括R位,or为j的二进制值的第r位的取值,vr表示所述R个校验参数中的第r个校验参数,ωj表示第j个参考校验参数,
K的二进制共包括至少三位,所述Mn个中间校验子中包括中间校验子md1、中间校验子md2、中间校验子md3
所述中间校验子md1为Ck中k的二进制值最低位的取值为1的Ck的值的异或,其中Ck为所述K个数据块中的第k个数据块的第n个数据字节,k=0,…,K-1;
所述中间校验子md2为Ck中k的二进制值中间位的取值为1的Ck的值的异或;
所述中间校验子md3为Ck中k的二进制值最高位的取值为1的Ck的值的异或。
10.如权利要求6或7所述的存储设备,其特征在于,
Figure FDA0002938749470000032
j的二进制值共包括R位,or为j的二进制值的第r位的取值的相反值,vr表示所述R个校验参数中的第r个校验参数,ωj表示第j个参考校验参数,
K的二进制共包括至少三位,所述Mn个中间校验子中包括中间校验子md1、中间校验子md2、中间校验子md3
所述中间校验子md1为Ck中k的二进制值最低位的取值为0的Ck的值的异或,其中Ck为所述K个数据块中的第k个数据块的第n个数据字节,k=0,…,K-1;
所述中间校验子md2为Ck中k的二进制值中间位的取值为0的Ck的值的异或;
所述中间校验子md3为Ck中k的二进制值最高位的取值为0的Ck的值的异或。
11.一种存储设备,其特征在于,所述存储设备包括接口和处理器,所述接口与所述处理器通信;其中,所述处理器用于:
通过所述接口获得获得K个数据块,所述K个数据块中的每个数据块的长度为N个数据单位;其中,K为大于或等于1的正整数,N为大于或等于1的正整数;
生成所述K个数据块的第一校验子和第二校验子;
根据所述第一校验子和所述第二校验子,生成第一校验块和第二校验块;
存储所述K个数据块、所述第一校验块和所述第二校验块;
其中,生成所述K个数据块的第一校验子和第二校验子,包括:
生成第n个中间校验子集合,所述第n个中间校验子集合包括Mn个中间校验子,所述Mn个中间校验子中的每个中间校验子为K个数据单位中的至少两个数据单位的异或,所述K个数据单位分别为所述K个数据块的第n个数据单位组成,Mn为大于或等于2的正整数,n=0,……,N-1;
基于公共中间校验子和至少R个校验参数,根据以下公式生成所述第一校验子中的第n个第一校验数据单位,S1,n=P1,0·Q1,0+P1,1·Q1,1+......+P1,S-1·Q1,S-1,其中,所述第一校验子包括N个第一校验数据单位,所述公共中间校验子包括所述第n个中间校验子集合中的至少一个校验子,其中2R等于K,其中S1,n表示所述第n个第一校验数据单位,P1,s表示S个第一目标中间校验子中的第s个第一目标中间校验子,Q1,s表示S个第一校验参数中的第s个第一校验参数,其中所述S个第一目标中间校验子包括所述公共中间校验子,所述Mn个中间校验子包括所述S个第一目标中间校验子,所述R个校验参数包括所述S个第一校验参数,S为大于或等于R的正整数,符号+表示伽罗华域异或,符号·表示伽罗华域乘法,s=0,……,S-1;
基于所述公共中间校验子和至少R个校验参数,根据以下公式生成所述第二校验子中的第n个第二校验数据单位,S2,n=P2,0·Q2,0+P2,1·Q2,1+......+P2,S-1·Q2,S-1,其中,所述第二校验子包括N个第二校验数据单位,其中S2,n表示所述第n个第二校验数据单位,P2,s表示S个第二目标中间校验子中的第s个第二目标中间校验子,Q2,s表示S个第二校验参数中的第s个第二校验参数,其中所述S个第二目标中间校验子包括所述公共中间校验子,所述Mn个中间校验子包括所述S个第二目标中间校验子,所述至少R个校验参数包括所述S个第二校验参数,S为大于或等于R的正整数,符号+表示伽罗华域异或,符号·表示伽罗华域乘法,s=0,……,S-1。
12.如权利要求11所述的存储设备,其特征在于,所述处理器生成第n个中间校验子集合,包括:
生成所述Mn个中间校验子中的第m个中间校验子,所述第m个中间校验子为所述K个数据单位中的Km个数据单位的异或,其中Km为大于或等于2且小于或等于K的正整数,m=0,……,Mn-1。
13.如权利要求12所述的存储设备,其特征在于,所述Mn个中间校验子包括L1n个层1中间校验子和L2n个层2中间校验子,其中L1n为大于或等于1的正整数,L2n为大于或等于1的正整数,L1n和L2n的和为Mn
所述处理器生成所述Mn个中间校验子中的第m个中间校验子,包括:
生成所述L1n个层1中间校验子,其中Pn个层1中间校验子中的每个层1中间校验子为所述K个数据单位中的两个数据单位的异或;
生成所述L2n个层2中间校验子,其中所述L2n个层2中间校验子中的每个层2中间校验子为所述L1n个层1中间校验子中的两个层1中间校验子的异或。
14.如权利要求12或13所述的存储设备,其特征在于,
Figure FDA0002938749470000051
j的二进制值共包括R位,or为j的二进制值的第r位的取值,vr表示所述R个校验参数中的第r个校验参数,ωj表示第j个参考校验参数,
K的二进制共包括至少三位,所述Mn个中间校验子中包括中间校验子md1、中间校验子md2、中间校验子md3
所述中间校验子md1为Ck中k的二进制值最低位的取值为1的Ck的值的异或,其中Ck为所述K个数据块中的第k个数据块的第n个数据字节,k=0,…,K-1;
所述中间校验子md2为Ck中k的二进制值中间位的取值为1的Ck的值的异或;
所述中间校验子md3为Ck中k的二进制值最高位的取值为1的Ck的值的异或。
15.如权利要求12或13所述的存储设备,其特征在于,
Figure FDA0002938749470000052
j的二进制值共包括R位,or为j的二进制值的第r位的取值的相反值,vr表示所述R个校验参数中的第r个校验参数,ωj表示第j个参考校验参数,
K的二进制共包括至少三位,所述Mn个中间校验子中包括中间校验子md1、中间校验子md2、中间校验子md3
所述中间校验子md1为Ck中k的二进制值最低位的取值为0的Ck的值的异或,其中Ck为所述K个数据块中的第k个数据块的第n个数据字节,k=0,…,K-1;
所述中间校验子md2为Ck中k的二进制值中间位的取值为0的Ck的值的异或;
所述中间校验子md3为Ck中k的二进制值最高位的取值为0的Ck的值的异或。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储包含计算机指令,当所述计算机指令在计算机上运行时,执行以下步骤:
获得K个数据块,所述K个数据块中的每个数据块的长度为N个数据单位;其中,K为大于或等于1的正整数,N为大于或等于1的正整数;
生成所述K个数据块的第一校验子和第二校验子;
根据所述第一校验子和所述第二校验子,生成第一校验块和第二校验块;
存储所述K个数据块、所述第一校验块和所述第二校验块;
其中,生成所述K个数据块的第一校验子和第二校验子,包括:
生成第n个中间校验子集合,所述第n个中间校验子集合包括Mn个中间校验子,所述Mn个中间校验子中的每个中间校验子为K个数据单位中的至少两个数据单位的异或,所述K个数据单位分别为所述K个数据块的第n个数据单位组成,Mn为大于或等于2的正整数,n=0,……,N-1;
基于公共中间校验子和至少R个校验参数,根据以下公式生成所述第一校验子中的第n个第一校验数据单位,S1,n=P1,0·Q1,0+P1,1·Q1,1+......+P1,S-1·Q1,S-1,其中,所述第一校验子包括N个第一校验数据单位,所述公共中间校验子包括所述第n个中间校验子集合中的至少一个校验子,其中2R等于K,其中S1,n表示所述第n个第一校验数据单位,P1,s表示S个第一目标中间校验子中的第s个第一目标中间校验子,Q1,s表示S个第一校验参数中的第s个第一校验参数,其中所述S个第一目标中间校验子包括所述公共中间校验子,所述Mn个中间校验子包括所述S个第一目标中间校验子,所述R个校验参数包括所述S个第一校验参数,S为大于或等于R的正整数,符号+表示伽罗华域异或,符号·表示伽罗华域乘法,s=0,……,S-1;
基于所述公共中间校验子和至少R个校验参数,根据以下公式生成所述第二校验子中的第n个第二校验数据单位,S2,n=P2,0·Q2,0+P2,1·Q2,1+......+P2,S-1·Q2,S-1,其中,所述第二校验子包括N个第二校验数据单位,其中S2,n表示所述第n个第二校验数据单位,P2,s表示S个第二目标中间校验子中的第s个第二目标中间校验子,Q2,s表示S个第二校验参数中的第s个第二校验参数,其中所述S个第二目标中间校验子包括所述公共中间校验子,所述Mn个中间校验子包括所述S个第二目标中间校验子,所述至少R个校验参数包括所述S个第二校验参数,S为大于或等于R的正整数,符号+表示伽罗华域异或,符号·表示伽罗华域乘法,s=0,……,S-1。
17.如权利要求16所述的计算机可读存储介质,其特征在于,所述生成第n个中间校验子集合,包括:
生成所述Mn个中间校验子中的第m个中间校验子,所述第m个中间校验子为所述K个数据单位中的Km个数据单位的异或,其中Km为大于或等于2且小于或等于K的正整数,m=0,……,Mn-1。
18.如权利要求17所述的计算机可读存储介质,其特征在于,所述Mn个中间校验子包括L1n个层1中间校验子和L2n个层2中间校验子,其中L1n为大于或等于1的正整数,L2n为大于或等于1的正整数,L1n和L2n的和为Mn
所述生成所述Mn个中间校验子中的第m个中间校验子,包括:
生成所述L1n个层1中间校验子,其中Pn个层1中间校验子中的每个层1中间校验子为所述K个数据单位中的两个数据单位的异或;
生成所述L2n个层2中间校验子,其中所述L2n个层2中间校验子中的每个层2中间校验子为所述L1n个层1中间校验子中的两个层1中间校验子的异或。
19.如权利要求17或18所述的计算机可读存储介质,其特征在于,
Figure FDA0002938749470000061
Figure FDA0002938749470000062
j的二进制值共包括R位,or为j的二进制值的第r位的取值,vr表示所述R个校验参数中的第r个校验参数,ωj表示第j个参考校验参数,
K的二进制共包括至少三位,所述Mn个中间校验子中包括中间校验子md1、中间校验子md2、中间校验子md3
所述中间校验子md1为Ck中k的二进制值最低位的取值为1的Ck的值的异或,其中Ck为所述K个数据块中的第k个数据块的第n个数据字节,k=0,…,K-1;
所述中间校验子md2为Ck中k的二进制值中间位的取值为1的Ck的值的异或;
所述中间校验子md3为Ck中k的二进制值最高位的取值为1的Ck的值的异或。
20.如权利要求17或18所述的计算机可读存储介质,其特征在于,
Figure FDA0002938749470000063
Figure FDA0002938749470000064
j的二进制值共包括R位,or为j的二进制值的第r位的取值的相反值,vr表示所述R个校验参数中的第r个校验参数,ωj表示第j个参考校验参数,
K的二进制共包括至少三位,所述Mn个中间校验子中包括中间校验子md1、中间校验子md2、中间校验子md3
所述中间校验子md1为Ck中k的二进制值最低位的取值为0的Ck的值的异或,其中Ck为所述K个数据块中的第k个数据块的第n个数据字节,k=0,…,K-1;
所述中间校验子md2为Ck中k的二进制值中间位的取值为0的Ck的值的异或;
所述中间校验子md3为Ck中k的二进制值最高位的取值为0的Ck的值的异或。
CN201810344936.4A 2018-04-17 2018-04-17 存储数据的方法和存储设备 Active CN108762973B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810344936.4A CN108762973B (zh) 2018-04-17 2018-04-17 存储数据的方法和存储设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810344936.4A CN108762973B (zh) 2018-04-17 2018-04-17 存储数据的方法和存储设备

Publications (2)

Publication Number Publication Date
CN108762973A CN108762973A (zh) 2018-11-06
CN108762973B true CN108762973B (zh) 2021-05-14

Family

ID=64010811

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810344936.4A Active CN108762973B (zh) 2018-04-17 2018-04-17 存储数据的方法和存储设备

Country Status (1)

Country Link
CN (1) CN108762973B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110445583B (zh) * 2019-08-12 2022-05-17 珠海市伟高变频科技有限公司 数据传输的校验方法、校验系统及计算机可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104156283A (zh) * 2014-08-27 2014-11-19 华为技术有限公司 数据恢复方法、装置及存储系统
CN105528183A (zh) * 2016-01-26 2016-04-27 华为技术有限公司 一种存储数据的方法及存储设备

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8209577B2 (en) * 2007-12-20 2012-06-26 Microsoft Corporation Optimizing XOR-based codes
CN105335150B (zh) * 2014-08-13 2019-03-19 苏宁易购集团股份有限公司 纠删码数据的快速编解码方法和系统
CN104601179A (zh) * 2014-12-12 2015-05-06 北京麓柏科技有限公司 一种存储系统纠删码编码、解码电路及编解码电路
CN105518996B (zh) * 2014-12-16 2019-07-23 深圳赛思鹏科技发展有限公司 一种基于二进制域里德所罗门码的数据编解码方法
US10110258B2 (en) * 2016-03-30 2018-10-23 EMC IP Holding Company LLC Accelerated erasure coding for storage systems
CN106201433B (zh) * 2016-07-10 2019-01-11 北京工业大学 一种基于rs码的有限域乘法器
CN107193685B (zh) * 2017-06-13 2020-08-04 北京中航通用科技有限公司 基于闪存存储设备的纠删方法及装置
CN107544863B (zh) * 2017-06-26 2021-07-20 新华三技术有限公司 一种数据存储方法及装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104156283A (zh) * 2014-08-27 2014-11-19 华为技术有限公司 数据恢复方法、装置及存储系统
CN105528183A (zh) * 2016-01-26 2016-04-27 华为技术有限公司 一种存储数据的方法及存储设备

Also Published As

Publication number Publication date
CN108762973A (zh) 2018-11-06

Similar Documents

Publication Publication Date Title
US10146618B2 (en) Distributed data storage with reduced storage overhead using reduced-dependency erasure codes
US10291265B2 (en) Accelerated Galois field coding for storage systems
US10140172B2 (en) Network-aware storage repairs
US9356626B2 (en) Data encoding for data storage system based on generalized concatenated codes
US10248326B2 (en) Incremental erasure coding for storage systems
US20140331083A1 (en) Polar codes for efficient encoding and decoding in redundant disk arrays
US20170083603A1 (en) Co-derived data storage patterns for distributed storage systems
CN110089035B (zh) 存储控制器、数据处理芯片及数据处理方法
EP2854033B1 (en) Data recovery method, data recovery device, and distributed storage system
US11249846B2 (en) Erasure code-based data processing method and apparatus
WO2016058289A1 (zh) 一种能修复多个节点失效的mds纠删码
EP3182601B1 (en) Data processing method and system based on quasi-cyclic ldpc
CN111078460A (zh) 一种快速纠删码计算方法
WO2023151290A1 (zh) 一种数据编码方法、装置、设备及介质
US11681582B2 (en) Write lock conflicts in a storage network
Ferreira et al. The rank of random binary matrices and distributed storage applications
TW202001920A (zh) 在資料儲存系統中用於改善資料回復之方法及裝置
EP2920689A1 (en) Efficient high availability storage systems
CN108762973B (zh) 存储数据的方法和存储设备
US10110258B2 (en) Accelerated erasure coding for storage systems
US10784896B2 (en) High performance data redundancy and fault tolerance
US10409772B2 (en) Accessing serially stored data in a dispersed storage network
WO2017065628A1 (en) Optimizer for determining an optimal sequence of operations for matrix-vector multiplication
CN108347250A (zh) 适用于少量冗余里德-所罗门码的快速编码方法及设备
Yuan et al. A randomly expandable method for data layout of Raid Storage Systems

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
CB03 Change of inventor or designer information

Inventor after: Lin Xianzheng

Inventor after: Zeng Yanxing

Inventor after: Shen Jianqiang

Inventor after: Yu Leilei

Inventor before: Zeng Yanxing

Inventor before: Lin Xianzheng

Inventor before: Shen Jianqiang

Inventor before: Yu Leilei

CB03 Change of inventor or designer information
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant