WO2024001876A1 - Rs译码硬件实现方法、电子设备及存储介质 - Google Patents

Rs译码硬件实现方法、电子设备及存储介质 Download PDF

Info

Publication number
WO2024001876A1
WO2024001876A1 PCT/CN2023/101427 CN2023101427W WO2024001876A1 WO 2024001876 A1 WO2024001876 A1 WO 2024001876A1 CN 2023101427 W CN2023101427 W CN 2023101427W WO 2024001876 A1 WO2024001876 A1 WO 2024001876A1
Authority
WO
WIPO (PCT)
Prior art keywords
matrix
blocks
check
coefficient matrix
data
Prior art date
Application number
PCT/CN2023/101427
Other languages
English (en)
French (fr)
Inventor
陈渲麒
夏世东
张德刚
Original Assignee
中兴通讯股份有限公司
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 中兴通讯股份有限公司 filed Critical 中兴通讯股份有限公司
Publication of WO2024001876A1 publication Critical patent/WO2024001876A1/zh

Links

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/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • 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
    • 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
    • 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/14Error detection or correction of the data by redundancy in operation
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1515Reed-Solomon codes

Definitions

  • the embodiments of the present application relate to the technical field of RS decoding, and in particular to an RS decoding hardware implementation method, electronic equipment, and storage media.
  • Embodiments of the present application provide an RS decoding hardware implementation method, electronic equipment, and storage media.
  • embodiments of the present application provide an RS decoding hardware implementation method.
  • the method includes: obtaining the lost A data block positions, the required A check block positions and the original coefficient matrix, where A Less than or equal to M, where M is the number of original check blocks; extract corresponding row and column coefficients from the original coefficient matrix according to the A data block positions and the A check block positions, and extract the corresponding row and column coefficients from the original coefficient matrix according to the row and column positions.
  • the coefficients generate an M-order coefficient matrix, and calculate the inverse matrix of the M-order coefficient matrix; generate new M check blocks according to the positions of the A check blocks, and generate new M check blocks according to the new M check blocks, the original M check blocks and the inverse matrix are used to recover the lost A data blocks.
  • an electronic device including: a memory, a processor, and a computer program stored on the memory and executable on the processor.
  • the processor executes the computer program, the above is implemented.
  • RS decoding hardware implementation method When the processor executes the computer program, the above is implemented.
  • a computer-readable storage medium which stores computer-executable instructions.
  • the computer-executable instructions are used to execute the above-mentioned RS decoding hardware implementation method.
  • Figure 1 is a schematic flow chart of an RS decoding hardware implementation method provided by an embodiment of the present application
  • Figure 2 is a schematic flowchart of generating an M-order coefficient matrix provided by an embodiment of the present application
  • FIG. 3 is a schematic flowchart of recovering A data blocks provided by an embodiment of the present application.
  • Figure 4 is a schematic flow chart of an RS decoding hardware implementation method provided by another embodiment of the present application.
  • Figure 5 is a schematic flowchart of recovering B check blocks provided by an embodiment of the present application.
  • Figure 6 is a flow chart of extracting a coefficient matrix provided by an embodiment of the present application.
  • Figure 7 is a flow chart of decoding data blocks provided by an embodiment of the present application.
  • Figure 8 is a flow chart of decoding a check block provided by an embodiment of the present application.
  • this application can determine the coefficients that need to be extracted from the M*N order original coefficient matrix by losing the data block position and using the verification block position, generate the M order coefficient matrix from the coefficients, and calculate the M order coefficient matrix. Inverse operation, and then perform finite field matrix multiplication between the difference between the old and new check codes and the inverse matrix of the M-order coefficient matrix, the lost data block can be recovered, and the original N-order inverse matrix solution is reduced to M-order. Inverse matrix solution greatly reduces the hardware implementation complexity.
  • the original data block and the restored data block can be spliced together to obtain the entire data block, and then the entire data block and the coefficient matrix of the missing check block can be subjected to finite field matrix multiplication to restore the Missing parity block.
  • This application can support simultaneous recovery of data blocks and check blocks.
  • one embodiment of the present application provides a hardware implementation method for RS (Reed-solomon) decoding. This method includes the following steps:
  • Step S101 Obtain the positions of the missing A data blocks, the required positions of the A check blocks and the original coefficient matrix, where A is less than or equal to M, and M is the number of original check blocks.
  • Step S102 Extract corresponding row and column coefficients from the original coefficient matrix according to A data block positions and A check block positions, generate an M-order coefficient matrix according to the row and column coefficients, and calculate the inverse matrix of the M-order coefficient matrix.
  • This method embodiment is suitable for a decoding architecture with original N data blocks and original M check blocks, where M is much smaller than N.
  • this method can effectively recover the A data block and greatly reduce the hardware implementation complexity during the recovery process.
  • step S101 it is known that the A data block positions lost from the original N data blocks, the A check block positions required among the original M check blocks and the original coefficient matrix of order M*N are known, where, The required A check block positions are pre-configured based on the lost A data block positions, which will not be described in detail here.
  • the original coefficient matrix of order M*N adopts a configurable original polynomial, for example, a Cauchy matrix or a Phantomon matrix (this embodiment uses the Cauchy matrix as an example), ensuring that any submatrix of the coefficient matrix All are invertible, and the expression of the Cauchy matrix is as follows:
  • x i and y i are both elements GF(2 w ) in the Galois field, that is, x i ⁇ GF(2 w ), y i ⁇ GF(2 w ) and x i ⁇ y i .
  • step S102 it can be determined directly through the location of the lost data block and the required verification block location that the corresponding coefficients need to be extracted from the original coefficient matrix, and the coefficients are generated into an M-order coefficient matrix, and the M-order coefficient matrix is Find the inverse operation.
  • step S102 extracts corresponding row and column coefficients from the original coefficient matrix according to A data block positions and A check block positions, and generates an M-order coefficient matrix according to the row and column coefficients, including:
  • Step S1021 Extract the corresponding coefficients of column A from the original coefficient matrix according to the positions of A data blocks.
  • Step S1023 When A equals M, generate an M-order coefficient matrix based on the A column coefficients and A row coefficients.
  • Step S1024 When A is less than M, generate an A-order coefficient matrix based on the A-column coefficients and A-row coefficients, and expand the A-order coefficient matrix into an M-order coefficient matrix.
  • step S1024 since A is smaller than M, the A-order coefficient matrix is expanded into an M-order coefficient matrix.
  • step S1024 expands the A-order coefficient matrix into an M-order coefficient matrix in the following manner:
  • Step S10241 Expand the A-order coefficient matrix to an M-order matrix, and determine the first blank position on the diagonal and the second blank position on the off-diagonal line in the M-order matrix.
  • Step S10242 Fill the first blank position with the first value, and fill the second blank position with the second value to obtain an M-order coefficient matrix; where the first value is 1 and the second value is 0.
  • the A-order coefficient matrix is expanded into an M-order coefficient matrix according to the rules of filling the blank positions on the diagonal of the matrix with 1 and filling the remaining blank positions with 0.
  • step S103 generating new M check blocks includes:
  • Step S1031 Obtain the original N data blocks.
  • Step S1033 Select an A*N order data matrix from the original coefficient matrix according to the A check block positions.
  • Step S1034 Complete the A*N order data matrix into an M*N order data matrix according to the rule of filling empty coefficients in matrix positions with 0s.
  • Step S1035 Multiply the N*1-order data matrix and the M*N-order data matrix to obtain new M check blocks.
  • step S1031 the original N data blocks are known items.
  • step S1032 since among the original N data blocks A data blocks have been lost, then the positions of the lost A data blocks need to be filled with 0 to obtain an N*1 order data matrix.
  • step S1033 it is determined according to the required A check block positions to extract the A row coefficients at the corresponding positions from the M*N order original coefficient matrix (the A row coefficients here are the extracted A*N order data matrix) .
  • step S1034 in the same way as the expansion of step S1024, zeros are directly added to the blank positions in the matrix, and the A*N order data matrix obtained in step S1033 is expanded into an M*N order data matrix.
  • step S1035 the N*1-order data matrix obtained in step S1032 and the M*N-order data matrix obtained in step S1034 are multiplied in a finite domain to obtain new M check blocks.
  • step S103 after M new check blocks are generated, the lost A data blocks are recovered based on the new M check blocks, the original M check blocks and the inverse matrix.
  • step S103 restores A data blocks in the following manner:
  • Step S1036 Calculate the new M check blocks and the original M check blocks (the original M check blocks here, when A is equal to M, are the original M check blocks, when A is less than M, according to The A check block position extracts A original check blocks from the original M check blocks, and the subsequent M-A check blocks are supplemented with 0s to form a difference matrix between the original M check blocks).
  • Step S1037 Multiply the difference matrix and the inverse matrix to recover the lost A data blocks.
  • step S1036 perform a finite field subtraction operation on the old and new M check blocks to obtain a difference matrix, and then perform matrix multiplication in the finite field on the difference matrix and the inverse matrix of the M-order coefficient matrix obtained in step S102. Operation, N data blocks are obtained, and the first A data blocks among these N data blocks are the decoded A data blocks (that is, the lost A data blocks are recovered).
  • This embodiment provides an RS decoding hardware implementation method, which is suitable for the decoding architecture of N data blocks and M check blocks.
  • the verification block position can be used to determine the coefficients that need to be extracted from the M*N-order original coefficient matrix, generate the M-order coefficient matrix from the coefficients, perform an inversion operation on the M-order coefficient matrix, and then compare the difference between the old and new check codes with
  • the lost data blocks can be recovered, reducing the original N-order inverse matrix solution to M-order inverse matrix solution, which greatly reduces the hardware implementation complexity.
  • one embodiment of the present application provides an RS decoding hardware implementation method. This method involves A data blocks among the original N data blocks and B among the original M check blocks. In the case where two check blocks are lost at the same time, this method includes the following steps:
  • Step S104 Obtain the positions of B missing check blocks, where the sum of A and B is less than or equal to M.
  • Step S105 Extract the corresponding check block coefficient matrix from the original coefficient matrix according to the B check block positions.
  • Step S106 According to the recovered A data blocks and the check block coefficient matrix, recover the lost B check blocks.
  • step S104 of this embodiment the positions of the B missing check blocks are known items.
  • step S105 In order to recover the lost B check blocks, first in step S105, according to the B The check block position extracts the corresponding check block coefficient matrix from the M*N order original coefficient matrix, and then in step S106, the lost B check blocks are restored based on the check block coefficient matrix and the recovered A data blocks. Check block.
  • step S106 includes the following steps:
  • Step S1061 Splice the restored A data blocks and the remaining N-A data blocks among the original N data blocks into complete N data blocks.
  • Step S1062 Multiply the check block coefficient matrix and the complete N data blocks to recover the lost B check blocks.
  • step S1061 firstly, since the original N data blocks have lost A data blocks, the data restored in step S103 is A data blocks and the remaining NA data blocks excluding the lost A data blocks from the original N data blocks are spliced into complete N data blocks, and then the check block coefficient matrix and the complete N data blocks are combined in the finite domain Perform matrix multiplication operation to obtain M check blocks, and the first B check blocks are the recovered B check blocks.
  • This embodiment makes further improvements based on the above method embodiment, adopting a structure of first restoring the lost data block (step S101 to step S103), and then restoring the lost check block (step S103 to step S106).
  • step S101 to step S103 By splicing the N-A data blocks retained in the original N data blocks with the restored A data blocks, the overall N data blocks are obtained.
  • the M*N order By performing finite field matrix multiplication on the check block coefficient matrix extracted from the original coefficient matrix, the lost check block can be obtained, thus achieving simultaneous recovery of the data block and the check block.
  • one embodiment of the present application provides a method for implementing RS decoding hardware. This method implements the decoding operation through the following process:
  • Step S201 Confirm parameters.
  • the coefficient matrix that needs to be extracted can be determined.
  • Step S203 Collect the data blocks and check blocks that need to be decoded (that is, the data blocks that are not lost among the original N data blocks (N-A) and the check blocks that are not lost among the original M check blocks (M-B)), and Output the N*1 order data matrix.
  • Step S205 Generate M new check blocks.
  • the N*1 order data matrix ⁇ in step S203 and the M*N order coefficient matrix in step S204 are matrix multiplied in a finite field to obtain the check block q ⁇ of the M*1 order matrix.
  • Step S206 Restore the data block.
  • the original M check blocks (the original M check blocks here, when A is equal to M, are the original M check blocks, and when A is less than M, according to the A check blocks Position A original check blocks are extracted from the original M check blocks, and the following M-A check blocks are supplemented with 0 to form the original M check blocks) and the newly generated M check blocks q ⁇ in step S205, Perform a finite field subtraction operation, and then perform matrix multiplication with the M*M-order inverse matrix calculated in step S202 to obtain an M*1-order data matrix, of which the first A are the data blocks that need to be restored.
  • the decoded A data blocks are spliced with the original N-A data blocks in step S201 to obtain complete N data blocks. Then perform finite field matrix multiplication with the coefficient matrix ⁇ ⁇ extracted in step S202 to obtain the missing B check blocks.
  • Step S208 Store.
  • the decoded A data blocks and the decoded B check blocks are stored for high-level reading.
  • A+B ⁇ M you only need to write A+B into the first few memories among the M memories, and write 0 values into the subsequent memories.
  • the storage here is a different memory from that in step S203.
  • This method adopts an architecture that restores the lost data blocks first and then restores the lost check blocks. By splicing the original data block and the restored data block, the overall data is obtained. After performing finite field matrix multiplication with the coefficient of the missing check block, the lost check block is obtained. This ensures that simultaneous recovery of data blocks and parity blocks can be supported.
  • the processor and memory may be connected via a bus or other means.
  • memory can be used to store non-transitory software programs and non-transitory computer executable programs.
  • the memory may include high-speed random access memory and may also include non-transitory memory, such as at least one magnetic disk storage device, flash memory device, or other non-transitory solid-state storage device.
  • the memory may include memory located remotely from the processor, and the remote memory may be connected to the processor via a network. device. Examples of the above-mentioned networks include but are not limited to the Internet, intranets, local area networks, mobile communication networks and combinations thereof.
  • the non-transient software programs and instructions required to implement the RS decoding hardware implementation method of the above embodiment are stored in the memory.
  • the RS decoding hardware implementation method in the above embodiment is executed. For example, execute the above Described method steps S101 to S103 in FIG. 1 , method steps S1021 to S1024 in FIG. 2 , method steps S1031 to S1037 in FIG. 3 , method steps S104 to S106 in FIG. 4 and steps S1061 to S1062 in FIG. 5 .
  • terminal embodiments described above are only illustrative, and the units described as separate components may or may not be physically separate, that is, they may be located in one place, or they may be distributed to multiple network units. Some or all of the modules can be selected according to actual needs to achieve the purpose of the solution of this embodiment.
  • one embodiment of the present application provides a computer-readable storage medium that stores computer-executable instructions, and the computer-executable instructions are executed by a processor or controller, for example, by the above-mentioned Execution by a processor in the terminal embodiment can cause the above processor to execute the RS decoding hardware implementation method in the above embodiment, for example, execute the above-described method steps S101 to S103 in Figure 1 and the method steps in Figure 2 S1021 to S1024, method steps S1031 to S1037 in FIG. 3 , method steps S104 to S106 in FIG. 4 and steps S1061 to S1062 in FIG. 5 .
  • the RS decoding hardware implementation method provided by the embodiment of the present application is suitable for the decoding architecture of N data blocks and M check blocks. There is no need to perform the inversion operation of the N-order coefficient matrix, but by losing the position of the data block. , use the verification block position to determine the coefficients that need to be extracted from the M*N-order original coefficient matrix, generate the M-order coefficient matrix from the coefficients, perform an inversion operation on the M-order coefficient matrix, and then use the old and new check codes and M-order The inverse matrix of the coefficient matrix recovers the lost data blocks.
  • This embodiment reduces the originally required N-order inverse matrix solution to M-order inverse matrix solution, which greatly reduces the hardware implementation complexity.
  • Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, Digital Versatile Disk (DVD) or other optical disk storage, magnetic cassettes, tapes, disk storage or other magnetic storage devices, or may Any other medium used to store the desired information and that can be accessed by a computer.
  • communication media typically embodies computer readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism, and may include any information delivery media .

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Algebra (AREA)
  • Pure & Applied Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Error Detection And Correction (AREA)

Abstract

本申请实施例公开了一种RS译码硬件实现方法、电子设备及存储介质,包括获取丢失的A个数据块位置、所需的A个校验块位置和原始系数矩阵,其中,A小于或等于M,M是原始校验块的数量(S101);根据A个数据块位置和A个校验块位置从原始系数矩阵中提取对应的行列系数,根据行列系数生成M阶系数矩阵,并计算M阶系数矩阵的逆矩阵(S102);根据A个校验块位置生成新的M个校验块,并根据新的M个校验块、原始M个校验块和逆矩阵,恢复得到丢失的A个数据块(S103)。

Description

RS译码硬件实现方法、电子设备及存储介质
相关申请的交叉引用
本申请基于申请号为202210750147.7、申请日为2022年06月29日的中国专利申请提出,并要求该中国专利申请的优先权,该中国专利申请的全部内容在此引入本申请作为参考。
技术领域
本申请实施例涉及RS译码技术领域,特别涉及一种RS译码硬件实现方法、电子设备及存储介质。
背景技术
随着云存储的发展和普及,需要存储和处理的数据量呈现爆炸式的增长。为了保证数据的安全性,现用的数据存储技术主要有多备份技术和纠删技术。其中,多备份技术是将相同的数据进行多次备份,常用3备份技术,其缺点就是磁盘利用率低,需要的磁盘容量直接翻3倍,成本较高。纠删技术则是通过增加部分磁盘,来达到数据备份的效果,纠删的磁盘利用率可以达到1.x(小于2),纠删存储通过对N个数据块,增加M个校验块,生成N+M个数据块,当N+M数据块中有小于等于M个数据块丢失时,就可以恢复出丢失数据块。当数据块丢失A个(A<=M),需要恢复时,需要对N-A(数据块)+A(校验块)进行逆矩阵求解,才能得出丢失的数据块,当丢失A个的块数较大时,需要求解的矩阵阶数也很大(通常直接求解N阶矩阵),硬件复杂度也很大。
发明内容
本申请实施例提供了一种RS译码硬件实现方法、电子设备及存储介质。
第一方面,本申请实施例提供了一种RS译码硬件实现方法,所述方法包括:获取丢失的A个数据块位置、所需的A个校验块位置和原始系数矩阵,其中,A小于或等于M,所述M是原始校验块的数量;根据所述A个数据块位置和所述A个校验块位置从所述原始系数矩阵中提取对应的行列系数,根据所述行列系数生成M阶系数矩阵,并计算所述M阶系数矩阵的逆矩阵;根据所述A个校验块位置生成新的M个校验块,并根据所述新的M个校验块、原始M个校验块和所述逆矩阵,恢复得到丢失的A个数据块。
第二方面,提供了一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述的RS译码硬件实现方法。
第三方面,提供了一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行如上述的RS译码硬件实现方法。
本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本申请技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本申请的技术方案,并不构成对本申请技术方案的限制。
图1为本申请一个实施例提供的一种RS译码硬件实现方法的流程示意图;
图2为本申请一个实施例提供的生成M阶系数矩阵的流程示意图;
图3为本申请一个实施例提供的恢复A个数据块的流程示意图;
图4为本申请另一个实施例提供的一种RS译码硬件实现方法的流程示意图;
图5为本申请一个实施例提供的恢复B个校验块的流程示意图;
图6为本申请一个实施例提供的提取系数矩阵的流程框图;
图7为本申请一个实施例提供的译码出数据块的流程框图;
图8为本申请一个实施例提供的译码出校验块的流程框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
需要说明的是,虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置中的模块划分,或流程图中的顺序执行所示出或描述的步骤。说明书、权利要求书或上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
随着云存储的发展和普及,需要存储和处理的数据量呈现爆炸式的增长。为了保证数据的安全性,现用的数据存储技术主要有多备份技术和纠删技术。其中,多备份技术是将相同的数据进行多次备份,常用3备份技术,其缺点就是磁盘利用率低,需要的磁盘容量直接翻3倍,成本较高。纠删技术则是通过增加部分磁盘,来达到数据备份的效果,纠删的磁盘利用率可以达到1.x(小于2),纠删存储通过对N个数据块,增加M个校验块,生成N+M个数据块,当N+M数据块中有小于等于M个数据块丢失时,就可以恢复出丢失数据块。当数据块丢失A个(A<=M),需要恢复时,需要对N-A(数据块)+A(校验块)进行逆矩阵求解,才能得出丢失的数据块,当丢失A个的块数较大时,需要求解的矩阵阶数也很大(通常直接求解N阶矩阵),硬件复杂度也很大。
为了解决上述缺陷,本申请通过丢失数据块位置、使用验证块位置便可以确定需要从M*N阶原始系数矩阵中提取的系数,将系数生成M阶系数矩阵,对此M阶系数矩阵进行求逆运算,再将新旧校验码的差值与M阶系数矩阵的逆矩阵进行有限域矩阵乘法,便可以恢复出丢失的数据块,将原本需要N阶的逆矩阵求解,降低到了M阶的逆矩阵求解,极大的降低了硬件的实现复杂度。
而且通过本申请还可通过将原始数据块与恢复的数据块进行拼接,便得到了整体的数据块,再将整体的数据块与丢失校验块的系数矩阵进行有限域的矩阵乘法,恢复得到丢失的校验块。本申请可支持数据块和校验块的同时恢复。
本申请一个实施例提供的RS译码硬件实现方法可以在一种电子设备中执行。电子设备可 以为移动电子设备、非移动电子设备和服务器。移动电子设备可以为手机、平板电脑、笔记本电脑、掌上电脑、车载电子设备、可穿戴设备、超级移动个人计算机、上网本、个人数字助理等;非移动电子设备可以为个人计算机、电视机、柜员机或者自助机等;本申请实施方案不作具体限定。电子设备可以包括处理器,外部存储器接口,内部存储器,通用串行总线(universal serial bus,USB)接口,充电管理模块,电源管理模块,电池,天线,移动通信模块,无线通信模块,音频模块,扬声器,受话器,麦克风,耳机接口,传感器模块,按键,马达,指示器,摄像头,显示屏,以及用户标识模块(Subscriber Identification Module,SIM)卡接口等。服务器可以是独立的服务器,也可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content-Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
下面结合附图,对本申请实施例作进一步阐述。
参照图1,本申请的一个实施例,提供了一种RS(Reed-solomon,里所码)译码硬件实现方法,本方法包括如下步骤:
步骤S101、获取丢失的A个数据块位置、所需的A个校验块位置和原始系数矩阵,其中,A小于或等于M,M是原始校验块的数量。
步骤S102、根据A个数据块位置和A个校验块位置从原始系数矩阵中提取对应的行列系数,根据行列系数生成M阶系数矩阵,并计算M阶系数矩阵的逆矩阵。
步骤S103、根据A个校验块位置生成新的M个校验块,并根据新的M个校验块、原始M个校验块和逆矩阵,恢复得到丢失的A个数据块。
本方法实施例适用于具有原始N个数据块和原始M个校验块的译码架构,其中M远小于N。当原始N个数据块中丢失A个数据块之后,通过本方法能够有效恢复出这A个数据块且在恢复过程中能够大幅度降低硬件的实现复杂度。
在步骤S101中,已知从原始N个数据块中丢失的A个数据块位置、原始M个校验块中所需的A个校验块位置和M*N阶的原始系数矩阵,其中,所需的A个校验块位置是根据丢失的A个数据块位置来预先配置,此处不再细述。在一些实施例中,M*N阶的原始系数矩阵采用可配置的本源多项式,例如,柯西矩阵或范特蒙矩阵(本实施例以柯西矩阵作为示例),保证系数矩阵的任意子矩阵都可逆,柯西矩阵的表达式如下所示:
其中,xi和yi都是伽罗华域中的元素GF(2w),即xi∈GF(2w)、yi∈GF(2w)且xi≠yi
以下介绍本方法实施例的思路:
假设有n个数据块W=(w1,w2,...,wn),m*n的系数矩阵β=(β1,1,...,βm,n),数据块与系数矩阵在有限域内进行矩阵乘法后,得到m个校验块Q=(q1,q2,...,qm)。
当n个数据块中存在k个数据块丢失时,则将这k个位置所对应的数据块补成0值,得到W'=(w'1,w'2,...,w'n),再将补0的n个数据块与m*n的系数矩阵β=(β1,1,...,βm,n)进行有限域的矩阵乘法,便得到了新的校验块Q'=(q'1,q'2,...,q'm)。
通过原始m个校验块与新的m个校验块进行有限域的减法操作Q-Q’。
通过丢失数据块的位置可从m*n的系数矩阵中,选取对应的系数当k<M值时,需要将其补齐到M阶,才开启β矩阵的求逆运算,只在对角线上补1,其余位置补0,将k*k矩阵,补齐到M*M阶系数矩阵之后再对提取出来的系数矩阵进行求逆运算得到
将求解的逆矩阵和校验块相减后的值Q-Q’进行有限域的矩阵乘法,得到丢失的数据块这m个数据块中的前k个数据块为丢失的数据块。
因此,在步骤S102中,直接通过丢失的数据块位置和所需的验证块位置便可确定需要从原始系数矩阵中提取对应的系数,将系数生成M阶系数矩阵,对此M阶系数矩阵进行求逆运算。
参照图2,在一些实施例中,步骤S102中的根据A个数据块位置和A个校验块位置从原始系数矩阵中提取对应的行列系数,根据行列系数生成M阶系数矩阵,包括:
步骤S1021、根据A个数据块位置从原始系数矩阵中提取对应的A列系数。
步骤S1022、根据A个校验块位置从原始系数矩阵中提取对应的A行系数。
步骤S1023、当A等于M,根据A列系数和A行系数生成M阶系数矩阵。
步骤S1024、当A小于M,根据A列系数和A行系数生成A阶系数矩阵,将A阶系数矩阵扩展为M阶系数矩阵。
在步骤S1024中,因A小于M,所以将A阶系数矩阵扩展成M阶系数矩阵。在一些实施例中,步骤S1024通过如下方式将A阶系数矩阵扩展成M阶系数矩阵:
步骤S10241、将A阶系数矩阵扩展至M阶矩阵,并确定M阶矩阵中对角线上的第一空白位置和非对角线上的第二空白位置。
步骤S10242、在第一空白位置填充第一数值,并在第二空白位置上填充第二数值,以得到M阶系数矩阵;其中,第一数值为1,第二数值为0。
在步骤S10241和S10242中,扩展按照将矩阵对角线上的空白位置补1和矩阵其余的空白位置补0的规则,将A阶系数矩阵补齐为M阶系数矩阵。
参照图3,在步骤S103中,生成新的M个校验块包括:
步骤S1031、获取原始N个数据块。
步骤S1032、将原始N个数据块中的A个数据块位置补0,生成N*1阶数据矩阵。
步骤S1033、根据A个校验块位置从原始系数矩阵中选取出A*N阶数据矩阵。
步骤S1034、按照矩阵位置空系数补0的规则,将A*N阶数据矩阵补齐为M*N阶数据矩阵。
步骤S1035、将N*1阶数据矩阵和M*N阶数据矩阵相乘,得到新的M个校验块。
在步骤S1031中,原始N个数据块为已知项。在步骤S1032中,由于原始N个数据块中 已丢失A个数据块,那么需要将丢失的A个数据块位置补0,得到N*1阶数据矩阵。在步骤S1033中,根据所需的A个校验块位置确定从M*N阶的原始系数矩阵中提取对应位置的A行系数(这里的A行系数即为提取的A*N阶数据矩阵)。在步骤S1034中,与步骤S1024的扩展同理,直接在矩阵中的空白位置上补0,将步骤S1033得到的A*N阶数据矩阵扩展为M*N阶数据矩阵。在步骤S1035中,将步骤S1032得到的N*1阶数据矩阵和步骤S1034得到的M*N阶数据矩阵在有限域内相乘,得到新的M个校验块。
在步骤S103中,当生成新的M个校验块之后,根据新的M个校验块、原始M个校验块和逆矩阵,恢复得到丢失的A个数据块。参照图3,在一实施例中,步骤S103通过如下方式恢复A个数据块:
步骤S1036、计算新的M个校验块与原始M个校验块(这里的原始M个校验块,当A等于M时,即为原始M个校验块,当A小于M时,根据A个校验块位置从原始M个校验块中提取出A个原始校验块,后面M-A个校验块补0,组成原始M个校验块)之间的差值矩阵。
步骤S1037、将差值矩阵和逆矩阵相乘,恢复得到丢失的A个数据块。
在步骤S1036中,将新旧的M个校验块进行有限域的减法操作,得到一个差值矩阵,然后将差值矩阵与上述步骤S102得到的M阶系数矩阵的逆矩阵在有限域内执行矩阵乘法操作,得到N个数据块,这N个数据块中的前A个数据块就是译码出的A个数据块(即恢复了丢失的A个数据块)。
本实施例提供的一种RS译码硬件实现方法,适用于N个数据块和M个校验块的译码架构,无需进行N阶系数矩阵的求逆操作,而是通过丢失数据块位置、使用验证块位置便可以确定需要从M*N阶原始系数矩阵中提取的系数,将系数生成M阶系数矩阵,对此M阶系数矩阵进行求逆运算,再将新旧校验码的差值与逆矩阵进行有限域矩阵乘法,便可以恢复出丢失的数据块,将原本需要N阶的逆矩阵求解,降低到了M阶的逆矩阵求解,极大的降低了硬件的实现复杂度。
在上述实施例中,主要涉及原始N个数据块中的A个数据块丢失的情况。基于上述实施例,参照图4,本申请的一个实施例,提供一种RS译码硬件实现方法,本方法涉及原始N个数据块中的A个数据块和原始M个校验块中的B个校验块同时丢失的情况,本方法包括如下步骤:
步骤S104、获取丢失的B个校验块位置,其中,A与B之和小于或等于M。
步骤S105、根据B个校验块位置从原始系数矩阵中提取对应的校验块系数矩阵。
步骤S106、根据恢复得到的A个数据块和校验块系数矩阵,恢复得到丢失的B个校验块。
基于上述步骤S101至步骤S103,在本实施例的步骤S104中,丢失的B个校验块位置为已知项,为了恢复出该丢失的B个校验块,首先在步骤S105中根据B个校验块位置从M*N阶的原始系数矩阵中提取对应的校验块系数矩阵,然后在步骤S106中,根据校验块系数矩阵与恢复得到的A个数据块恢复得到丢失的B个校验块。
参照图5,在一些实施例中,步骤S106包括如下步骤:
步骤S1061、将恢复得到的A个数据块和原始N个数据块中剩余的N-A个数据块拼接成完整N个数据块。
步骤S1062、将校验块系数矩阵与完整N个数据块相乘,恢复得到丢失的B个校验块。
在步骤S1061中,首先由于原始N个数据块已丢失A个数据块,因此将步骤S103恢复的 A个数据块和原始N个数据块中除去已丢失的A个数据块所剩余的N-A个数据块拼接成完整N个数据块,然后将校验块系数矩阵与完整N个数据块在有限域内进行矩阵相乘操作,得到M个校验块,前B个校验块即为恢复的B个校验块。
本实施例在上述方法实施例的基础上做出进一步改进,采用先还原丢失的数据块(步骤S101至步骤S103),再还原丢失校验块的架构(步骤S103至步骤S106)。通过将原始N个数据块中保留的N-A个数据块与恢复出的A个数据块拼接,便得到了整体的N个数据块,在与根据丢失校验块的位置而从M*N阶的原始系数矩阵中提取的校验块系数矩阵进行有限域的矩阵乘法,即可得到丢失的校验块,如此便实现数据块和校验块的同时恢复。
参照图6至图8,本申请的一个实施例,提供了一种RS译码硬件实现方法,本方法通过如下流程实现译码的操作:
步骤S201、确认参数。
在一实施例中,在原始N个数据块和原始M个校验块中,有A个数据块丢失,且A∈(0,M],有B个校验块丢失,且B∈[0,M],且A+B<=M。已知丢失的数据块位置丢失的校验块位置以及所需使用的校验块位置这三位位置由高层配置。
步骤S202、计算M阶系数矩阵的逆矩阵以及选取输出校验块系数。
在一实施例中,根据A个丢失的数据块位置可以确定M*N的原始系数矩阵中需要提取A列位置,即第列;根据所需使用的A个校验块位置可以确定M*N系数矩阵中需要提取A行位置,第行。
通过确认行列系数位置,可确定需要提取的系数矩阵
当A<M时,需要将A*A阶的系数矩阵扩展成M*M阶的系数矩阵,扩展方式是在矩阵对角线位置上补1,其余位置补0,将A*A阶的系数矩阵,补齐到M*M阶的系数矩阵;扩展后再进行M*M阶的系数矩阵的求逆运算,得到逆矩阵β`。
当A=M时,可直接进行M*M阶的系数矩阵的求逆运算,得到逆矩阵β`。
根据原始M个校验块中的B个丢失的校验块位置可以确定从M*N阶的系数矩阵中需要提取的系数行位置因此便可确定需要提取的系数
步骤S203、收集需要译码的数据块和校验块(即原始N个数据块中没有丢失的数据块(N-A)和原始M个校验块中没有丢失的校验块(M-B)),并输出N*1阶数据矩阵。
在一实施例中,需要使用M+N个存储器,对需要译码的数据块和校验块进行存储,在存储的过程中,根据高层配置的数据块与校验块丢失指示,将已经丢失的数据块与已经丢失的校验块对应的存储器直接写0清空。当数据块和校验块收齐完成后,同步输出N*1的数据矩阵。需要注意的是,由于步骤S201中的原始N个数据块中存在A个数据块丢失,需要将这A个丢失数据块的位置补0,得到N*1的数据矩阵。
步骤S204、提取并输出M*N系数矩阵。
在一实施例中,根据所需使用的A个校验块位置确定在M*N系数矩阵中 提取对应位置的A行系数之后将提取的A*N矩阵扩展成M*N矩阵(补0)。
步骤S205、生成新的M个校验块。
在一实施例中,将步骤S203的N*1阶数据矩阵β`与步骤S204的M*N阶系数矩阵在有限域内做矩阵乘法,得到M*1阶矩阵的校验块q`。
步骤S206、恢复数据块。
在一实施例中,将原始M个校验块(这里的原始M个校验块,当A等于M时,即为原始M个校验块,当A小于M时,根据A个校验块位置从原始M个校验块中提取出A个原始校验块,后面M-A个校验块补0,组成原始M个校验块)与步骤S205的新生成的M个校验块q`,进行有限域的减法操作,之后再与步骤S202计算的M*M阶的逆矩阵进行矩阵乘法,便可以得到M*1阶数据矩阵,其中前A个便是需要恢复的数据块。
步骤S207、恢复校验块。
在一实施例中,将译码出的A个数据块,与步骤S201的原始N-A个数据块拼接,得到完整的N个数据块。再与步骤S202中提取的系数矩阵β``进行有限域的矩阵乘法,即可得到丢失的B个校验块。
步骤S208、存储。
在一实施例中,将译码出A个数据块与译码出的B个校验块进行存储,用以高层读取。当A+B<M时,只需将A+B写入M个存储器中前面几个存储器中即可,后面存储器写0值。需要注意的是,这里的存储与步骤S203中是不同的存储器。
本方法实施例具有如下有益效果:
1)支持数据块和校验块同时丢失的译码恢复;
本方法采用先还原丢失数据块,再还原丢失校验块的架构。通过将原始数据块与还原数据块进行拼接,便得到了整体的数据,在与丢失校验块的系数进行有限域的矩阵乘法,得到丢失的校验块。如此便可以保证能够支持数据块和校验块的同时恢复。
2)M阶的矩阵的逆矩阵;
本方法对译码过程进行了优化,当有A(A<=M)阶数据丢失时,只需要对A阶系数矩阵求逆,便可以进行译码操作,而无需进行N阶系数矩阵的求逆操作。通过丢失数据位置、使用验证码位置便可以确定需要提取的系数矩阵,对此系数矩阵进行求逆运算,在与新旧校验块的差值进行有限域矩阵乘法,便可以得到需要译码的数据。在硬件实现过程中,为了兼容A值,可能最大需要M种可能的场景,不同的场景便占用不同的硬件资源,为了能够最大可能的节省硬件开销。本方法将小于M阶的矩阵(A阶)进行合并,统一采用M阶矩阵进行求逆运算,减小了硬件资源的开销。
本申请的一个实施例,提供了一种电子设备,该电子设备包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序。
处理器和存储器可以通过总线或者其他方式连接。
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至该处理 器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
实现上述实施例的RS译码硬件实现方法所需的非暂态软件程序以及指令存储在存储器中,当被处理器执行时,执行上述实施例中的RS译码硬件实现方法,例如,执行以上描述的图1中的方法步骤S101至S103、图2中的方法步骤S1021至S1024、图3中的方法步骤S1031至S1037、图4中的方法步骤S104至S106和图5中的步骤S1061至S1062。
以上所描述的终端实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
此外,本申请的一个实施例,提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个处理器或控制器执行,例如,被上述终端实施例中的一个处理器执行,可使得上述处理器执行上述实施例中的RS译码硬件实现方法,例如,执行以上描述的图1中的方法步骤S101至S103、图2中的方法步骤S1021至S1024、图3中的方法步骤S1031至S1037、图4中的方法步骤S104至S106和图5中的步骤S1061至S1062。
本申请实施例提供的一种RS译码硬件实现方法,适用于N个数据块和M个校验块的译码架构,无需进行N阶系数矩阵的求逆操作,而是通过丢失数据块位置、使用验证块位置便可以确定需要从M*N阶原始系数矩阵中提取的系数,将系数生成M阶系数矩阵,对此M阶系数矩阵进行求逆运算,再利用新旧校验码和M阶系数矩阵的逆矩阵恢复出丢失的数据块,本实施例将原本需要N阶的逆矩阵求解,降低到了M阶的逆矩阵求解,极大的降低了硬件的实现复杂度。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统可以被实施为软件、固件、硬件及其适当的组合。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示意性实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
以上是对本申请的若干实施进行了具体说明,但本申请并不局限于上述实施方式,熟悉本领域的技术人员在不违背本申请本质的共享条件下还可作出种种等同的变形或替换,这些 等同的变形或替换均包括在本申请权利要求所限定的范围内。

Claims (11)

  1. 一种RS译码硬件实现方法,包括:
    获取丢失的A个数据块位置、所需的A个校验块位置和原始系数矩阵,其中,A小于或等于M,M是原始校验块的数量;
    根据所述A个数据块位置和所述A个校验块位置从所述原始系数矩阵中提取对应的行列系数,根据所述行列系数生成M阶系数矩阵,并计算所述M阶系数矩阵的逆矩阵;
    根据所述A个校验块位置生成新的M个校验块,并根据所述新的M个校验块、原始M个校验块和所述逆矩阵,恢复得到丢失的A个数据块。
  2. 根据权利要求1所述的RS译码硬件实现方法,其中,所述根据所述A个数据块位置和所述A个校验块位置从所述原始系数矩阵中提取对应的行列系数,根据所述行列系数生成M阶系数矩阵,包括:
    根据所述A个数据块位置从所述原始系数矩阵中提取对应的A列系数;
    根据所述A个校验块位置从所述原始系数矩阵中提取对应的A行系数;
    当A等于M,根据所述A列系数和所述A行系数生成M阶系数矩阵;
    当A小于M,根据所述A列系数和所述A行系数生成A阶系数矩阵,将所述A阶系数矩阵扩展为M阶系数矩阵。
  3. 根据权利要求2所述的RS译码硬件实现方法,其中,所述将所述A阶系数矩阵扩展为M阶系数矩阵,包括:
    将所述A阶系数矩阵扩展至M阶矩阵,并确定所述M阶矩阵中对角线上的第一空白位置和非对角线上的第二空白位置;
    在所述第一空白位置填充第一数值,并在所述第二空白位置上填充第二数值,以得到M阶系数矩阵;其中,所述第一数值为1,所述第二数值为0。
  4. 根据权利要求2所述的RS译码硬件实现方法,其中,所述根据所述A个校验块位置生成新的M个校验块,包括:
    获取原始N个数据块;
    将所述原始N个数据块中的所述A个数据块位置补0,生成N*1阶数据矩阵;
    根据所述A个校验块位置从所述原始系数矩阵中选取出A*N阶数据矩阵;
    按照矩阵位置空系数补0的规则,将所述A*N阶数据矩阵补齐为M*N阶数据矩阵;
    将所述N*1阶数据矩阵和所述M*N阶数据矩阵相乘,得到新的M个校验块。
  5. 根据权利要求4所述的RS译码硬件实现方法,其中,所述根据所述新的M个校验块、原始M个校验块和所述逆矩阵,恢复得到丢失的A个数据块,包括:
    计算所述新的M个校验块与所述原始M个校验块之间的差值矩阵;
    将所述差值矩阵和所述逆矩阵相乘,恢复得到丢失的A个数据块。
  6. 根据权利要求5所述的RS译码硬件实现方法,还包括:
    获取丢失的B个校验块位置,其中,A与B之和小于或等于M;
    根据所述B个校验块位置从所述原始系数矩阵中提取对应的校验块系数矩阵;
    根据恢复得到的所述A个数据块和所述校验块系数矩阵,恢复得到丢失的B个校验块。
  7. 根据权利要求6所述的RS译码硬件实现方法,其中,所述根据恢复得到的所述A个数 据块和所述校验块系数矩阵,恢复得到丢失的B个校验块,包括:
    将恢复得到的所述A个数据块和所述原始N个数据块中剩余的N-A个数据块拼接成完整N个数据块;
    将所述校验块系数矩阵与所述完整N个数据块相乘,恢复得到丢失的B个校验块。
  8. 根据权利要求7所述的RS译码硬件实现方法,其中,在所述恢复得到丢失的B个校验块之后,所述方法还包括:
    将恢复得到的所述A个校验块和恢复得到的所述B个校验块写入存储器中。
  9. 根据权利要求1至8任一项所述的RS译码硬件实现方法,其中,所述原始系数矩阵为柯西矩阵或范特蒙矩阵。
  10. 一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至9任一项所述的RS译码硬件实现方法。
  11. 一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行如权利要求1至9任一项所述的RS译码硬件实现方法。
PCT/CN2023/101427 2022-06-29 2023-06-20 Rs译码硬件实现方法、电子设备及存储介质 WO2024001876A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202210750147.7A CN117349074A (zh) 2022-06-29 2022-06-29 Rs译码硬件实现方法、电子设备及存储介质
CN202210750147.7 2022-06-29

Publications (1)

Publication Number Publication Date
WO2024001876A1 true WO2024001876A1 (zh) 2024-01-04

Family

ID=89367825

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2023/101427 WO2024001876A1 (zh) 2022-06-29 2023-06-20 Rs译码硬件实现方法、电子设备及存储介质

Country Status (2)

Country Link
CN (1) CN117349074A (zh)
WO (1) WO2024001876A1 (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102833040A (zh) * 2012-08-03 2012-12-19 中兴通讯股份有限公司 解码处理方法、装置及编解码系统
US20130124776A1 (en) * 2011-11-15 2013-05-16 XtremlO Ltd. Secure data storage in raid memory devices
US20160026527A1 (en) * 2014-07-23 2016-01-28 Raidix Corporation Systems and methods for error correction coding
CN111404554A (zh) * 2019-09-29 2020-07-10 杭州海康威视系统技术有限公司 一种纠删码的编码矩阵生成方法、装置及电子设备
CN111858157A (zh) * 2020-06-12 2020-10-30 苏州浪潮智能科技有限公司 基于纠删码的丢失数据恢复方法、系统、终端及存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130124776A1 (en) * 2011-11-15 2013-05-16 XtremlO Ltd. Secure data storage in raid memory devices
CN102833040A (zh) * 2012-08-03 2012-12-19 中兴通讯股份有限公司 解码处理方法、装置及编解码系统
US20160026527A1 (en) * 2014-07-23 2016-01-28 Raidix Corporation Systems and methods for error correction coding
CN111404554A (zh) * 2019-09-29 2020-07-10 杭州海康威视系统技术有限公司 一种纠删码的编码矩阵生成方法、装置及电子设备
CN111858157A (zh) * 2020-06-12 2020-10-30 苏州浪潮智能科技有限公司 基于纠删码的丢失数据恢复方法、系统、终端及存储介质

Also Published As

Publication number Publication date
CN117349074A (zh) 2024-01-05

Similar Documents

Publication Publication Date Title
US20180181324A1 (en) Data protection with erasure coding and xor
US9552382B2 (en) Reference counter integrity checking
US8281093B1 (en) Systems and methods for creating consolidated backups of snapshot hierarchies
CN109359091B (zh) 文件管理方法、装置、终端及计算机可读存储介质
CN109783014B (zh) 一种存储数据的方法及装置
EP3258458B1 (en) Share recovery system, share recovery apparatus, share recovery method, and program
CN111782152A (zh) 数据存储方法、数据恢复方法、装置、服务器及存储介质
WO2018107792A1 (zh) 数据的增量恢复方法和装置
CN111274503B (zh) 数据处理的方法、装置、电子设备及计算机可读介质
CN113468118B (zh) 一种基于区块链的文件增量存储方法、装置及存储介质
WO2017189597A1 (en) Fault-tolerant enterprise object storage system for small objects
WO2024001876A1 (zh) Rs译码硬件实现方法、电子设备及存储介质
US10402262B1 (en) Fencing for zipheader corruption for inline compression feature system and method
WO2017177752A1 (zh) 一种文件存储方法及装置
CN112486848A (zh) 一种测试数据的生成方法、装置、芯片及存储介质
CN112511612A (zh) 云存储数据存储方法、装置、系统、设备及存储介质
CN116865766A (zh) 一种波形数据压缩方法、系统、设备及介质
CN111737057A (zh) 一种apfs文件系统数据恢复方法、装置及电子设备
CN111273862A (zh) 数据存储方法及其装置、可读介质和系统
US20230128077A1 (en) System and Method for Aggregation of Write Commits To Control Written Block Size
CN106648844B (zh) 一种提高数据迁移速度的方法及终端
CN115080305A (zh) 一种基于重复读取的数据恢复方法、系统及电子设备
CN114691414A (zh) 一种校验块生成方法及一种数据恢复方法
CN111625500A (zh) 文件快照方法及装置、电子设备和存储介质
CN111930696A (zh) 一种基于小程序的文件传输处理方法及系统

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 23830055

Country of ref document: EP

Kind code of ref document: A1