CN1959648B - Method for establishing error encoding scheme and equipment for reducing data loss - Google Patents
Method for establishing error encoding scheme and equipment for reducing data loss Download PDFInfo
- Publication number
- CN1959648B CN1959648B CN2006101265838A CN200610126583A CN1959648B CN 1959648 B CN1959648 B CN 1959648B CN 2006101265838 A CN2006101265838 A CN 2006101265838A CN 200610126583 A CN200610126583 A CN 200610126583A CN 1959648 B CN1959648 B CN 1959648B
- Authority
- CN
- China
- Prior art keywords
- data
- information
- redundant
- matrix
- given
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 51
- 239000011159 matrix material Substances 0.000 claims description 135
- 238000004364 calculation method Methods 0.000 claims description 24
- 238000013500 data storage Methods 0.000 claims 3
- 230000001419 dependent effect Effects 0.000 abstract description 2
- 238000004590 computer program Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 5
- 230000008520 organization Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 3
- 238000011084 recovery Methods 0.000 description 3
- 101100284507 Schizosaccharomyces pombe (strain 972 / ATCC 24843) hdd1 gene Proteins 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000001747 exhibiting effect Effects 0.000 description 1
- 230000005389 magnetism Effects 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
Description
技术领域technical field
本发明涉及一种创建纠错编码方案以减少数据损失的方法。它还涉及减少数据损失的方法、设备、计算机程序产品和计算机程序。它还涉及保护存储在至少一个存储单元处的数据以防不可纠正的介质错误的系统。The present invention relates to a method of creating an error correction coding scheme to reduce data loss. It also relates to methods, apparatus, computer program products and computer programs for reducing data loss. It also relates to a system for protecting data stored at at least one storage unit against uncorrectable media errors.
背景技术Background technique
存储单元例如基于至少一个磁盘或光盘或固态存储器作为存储介质。随着单个存储单元的存储容量的增加,读取存储在存储单元的至少一个存储介质上的数据时遇到至少一个介质相关的错误的可能性也在增加。当不能通过重新读取所述介质的特定部分来纠正错误时,数据会受到损失。通过存储分布到两个或更多存储单元的冗余数据,可以提高包括所述两个或更多存储单元的系统的可靠性。这种系统被称为独立磁盘冗余阵列(RAID)。已配置RAID的系统主要减少因存储单元的彻底失败而带来的数据损失。The storage unit is eg based on at least one magnetic or optical disk or solid state memory as storage medium. As the storage capacity of a single storage unit increases, the probability of encountering at least one medium-dependent error when reading data stored on at least one storage medium of the storage unit also increases. Data is lost when errors cannot be corrected by re-reading certain portions of the medium. By storing redundant data distributed to two or more storage units, the reliability of a system comprising the two or more storage units can be increased. Such a system is known as a Redundant Array of Independent Disks (RAID). A RAID-configured system primarily reduces data loss due to a complete failure of a storage unit.
US 2005/0108594 A1揭示了一种保护磁盘驱动器上的数据以防不可纠正的介质错误的方法。通过其中将冗余信息扇区与数据信息扇区关联的技术,为已配置RAID的存储系统提供了避免出现不可纠正的介质错误的保护。所述数据信息扇区和所述冗余信息扇区作为单个段被写入单个存储单元。所述冗余信息基于里德-所罗门代码(一种基于异或的代码)或一维奇偶校验。US 2005/0108594 A1 discloses a method of protecting data on a disk drive against uncorrectable media errors. A RAID configured storage system is provided with protection against uncorrectable media errors by a technique in which redundant information sectors are associated with data information sectors. The data information sector and the redundant information sector are written as a single segment into a single storage unit. The redundant information is based on a Reed-Solomon code (an XOR-based code) or an even-odd parity check.
因此,需要提供一种比先前提出的技术更为简单的创建编码方案以减少数据损失的方法。同样,需要提供一种比先前提出的技术更为简单的减少数据损失的方法、设备、计算机程序和计算机程序产品。还需要提供一个比先前提出的技术更为简单和可靠的保护存储在至少一个存储单元上的数据以免出现不可纠正的介质错误的系统。Therefore, there is a need to provide a simpler method of creating encoding schemes to reduce data loss than previously proposed techniques. Also, there is a need to provide a method, apparatus, computer program and computer program product for reducing data loss that is simpler than previously proposed techniques. There is also a need to provide a system for protecting data stored on at least one storage unit from uncorrectable media errors that is simpler and more reliable than previously proposed techniques.
发明内容Contents of the invention
根据本发明的第一方面的实施例,提供了一种用于创建纠错编码方案以减少数据损失的方法,所述数据包括与具有至少两个数据信息实体的给定数据集关联的具有至少两个冗余信息实体的给定冗余集,根据所述数据集的信息内容来计算所述冗余集的信息内容,所述方法包括以下步骤:基本选择步骤,用于选择由基本矩阵表示的基本编码方案,其中每个冗余信息实体由行表示,而每个信息实体由列表示;以及矩阵设置步骤,用于设置具有所述基本矩阵的列的子集的目标矩阵并且用于根据所述基本矩阵来改变列的顺序,直至所述目标矩阵在至少给定程度满足非零元素的给定模式(pattern)。此功能允许构建计算引擎以便计算所述冗余集的所述信息内容,其比先前提出的技术中使用的计算引擎更简单。所述非零元素的给定模式影响所述纠错编码方案的复杂性,由此影响其在所述计算引擎中的实现。所述信息实体可以是一位或字节或存储单元上的扇区或任何其他用于存储或传送或接收信息的适合实体。According to an embodiment of the first aspect of the present invention there is provided a method for creating an error correction coding scheme to reduce loss of data comprising at least two data information entities associated with a given data set having at least two data information entities Given a redundant set of two redundant information entities, the information content of said redundant set is calculated from the information content of said data set, said method comprising the following steps: a basic selection step for selecting represented by a basic matrix A basic coding scheme of wherein each redundant information entity is represented by a row and each information entity is represented by a column; and a matrix setting step for setting a target matrix having a subset of the columns of the basic matrix and for The base matrix changes the order of columns until the target matrix satisfies a given pattern of nonzero elements to at least a given degree. This functionality allows building a computation engine for computing the information content of the redundancy set that is simpler than the computation engines used in previously proposed techniques. The given pattern of the non-zero elements affects the complexity of the error correction coding scheme and thus its implementation in the computation engine. The information entity may be a bit or a byte or a sector on a storage unit or any other suitable entity for storing or transmitting or receiving information.
根据本发明的第一方面的优选实施例,所述非零元素的给定模式被选择为包括所述目标矩阵的正方形模式子矩阵的主对角线,所述主对角线具有主要为非零的元素,所述目标矩阵具有的行数和列数等于所述冗余集中的冗余信息实体数。所述非零元素的给定模式因而更为简单和规则并允许更为简单地构建计算引擎。According to a preferred embodiment of the first aspect of the present invention, said given pattern of nonzero elements is chosen to comprise the main diagonal of a square pattern submatrix of said target matrix, said main diagonal having mainly nonzero elements zero elements, the target matrix has a number of rows and columns equal to the number of redundant information entities in the redundancy set. The given pattern of said non-zero elements is thus simpler and regular and allows simpler construction of calculation engines.
在此方面,所述非零元素的给定模式被选择为还包括与所述目标矩阵的所述正方形模式子矩阵的所述主对角线相邻布置的邻近对角线是有利的,所述邻近对角线的元素被选择成主要为非零。这允许构建计算引擎,以便可以通过利用从所述主对角线的元素计算的中间结果来处理所述邻近对角线的元素。所述计算引擎因而可以更为有效。In this respect, it is advantageous that said given pattern of non-zero elements is chosen to also comprise adjacent diagonals arranged adjacent to said main diagonal of said square pattern sub-matrix of said target matrix, so The elements adjacent to the diagonal are chosen to be predominantly nonzero. This allows the calculation engine to be built so that elements of the adjacent diagonal can be processed by utilizing intermediate results calculated from elements of the main diagonal. The calculation engine can thus be more efficient.
根据本发明的第一方面的其他优选实施例,所述基本矩阵被选择为对于所述基本编码方案的给定汉明距离具有最少的非零元素数、最少的所述数据集中的数据信息实体数以及最少的所述冗余集中的冗余信息实体数。这允许减少用于计算所述冗余集的信息内容的操作数。According to a further preferred embodiment of the first aspect of the present invention, said fundamental matrix is selected to have a minimum number of non-zero elements, a minimum number of data information entities in said data set for a given Hamming distance of said basic coding scheme number and the minimum number of redundant information entities in the redundancy set. This allows reducing the number of operations for computing the information content of said redundancy set.
根据本发明的第一方面的其他优选实施例,在所述矩阵设置步骤中,改变所述列的顺序直至列数与所述冗余集中的冗余信息实体数相等的所述目标矩阵的每个方格子矩阵的秩与所述冗余集中的冗余信息实体数相等。这允许恢复最多等于所述冗余集中的冗余信息实体数的连续不可读数据信息实体,也称为“删除部分(erasures)”。由此,可以更加可靠地保护数据以防数据损失并降低数据损失的可能性。According to other preferred embodiments of the first aspect of the present invention, in the matrix setting step, the order of the columns is changed until each of the target matrix whose number of columns is equal to the number of redundant information entities in the redundancy set The rank of the square lattice matrix is equal to the number of redundant information entities in the redundant set. This allows recovery of consecutive unreadable data information entities at most equal to the number of redundant information entities in said redundancy set, also called "erasures". Thereby, data can be more reliably protected against data loss and the possibility of data loss can be reduced.
根据本发明的第一方面的其他优选实施例,所述创建的纠错方案基于分别计算由所述目标矩阵每行中的非零元素表示的所有数据信息实体的信息内容的异或。这允许更为简单和性能更高的纠错编码方案,同时降低了计算冗余集的开销,并且与先前提出的技术相比更容易实现。According to a further preferred embodiment of the first aspect of the present invention, said created error correction scheme is based on calculating the exclusive OR of the information content of all data information entities represented by non-zero elements in each row of said target matrix, respectively. This allows for simpler and higher-performing error-correcting coding schemes, while reducing the overhead of computing the redundancy set, and is easier to implement than previously proposed techniques.
在此方面,所述基本编码方案基于汉明码或扩展汉明码中的一种编码是有利的。这使得所述纠错编码方案更为可靠。In this respect it is advantageous if the basic coding scheme is based on one of Hamming codes or extended Hamming codes. This makes the error correction coding scheme more reliable.
根据本发明的第二方面的实施例,提供了一种用于减少数据损失的方法,所述数据包括与具有至少两个数据信息实体的给定数据集关联的具有至少两个冗余信息实体的给定冗余集,根据所述数据集的信息内容通过应用纠错编码方案来计算所述冗余集的信息内容,所述纠错编码方案由奇偶校验矩阵表示,其中每个冗余信息实体由行表示,而所述数据的每个信息实体由列表示,并且所述奇偶校验矩阵的至少两个正方形子矩阵具有元素主要为非零的对角线并具有与所述冗余集中的冗余信息实体数相等的行数和列数,并且表示所述数据集的连续放置的数据信息实体,所述方法包括:第一计算步骤,用于通过处理所述至少两个主对角线上的所述数据信息实体来计算所述冗余信息实体的中间结果;以及第二计算步骤,用于根据所述中间结果来计算所述冗余信息实体的信息内容。由于所述奇偶校验矩阵的所述至少两个正方形子矩阵的主对角线具有主要为非零的元素,所以计算所述冗余集的信息内容更为简单。According to an embodiment of the second aspect of the present invention, there is provided a method for reducing the loss of data comprising at least two redundant information entities associated with a given data set having at least two data information entities Given a redundancy set of , the information content of the redundancy set is calculated from the information content of the data set by applying an error correction coding scheme represented by a parity check matrix, where each redundancy information entities are represented by rows, and each information entity of said data is represented by a column, and at least two square sub-matrices of said parity-check matrix have diagonals with predominantly non-zero elements and have the same redundancy as said The number of redundant information entities in the set is equal to the number of rows and columns and represents consecutively placed data information entities of said data set, said method comprising: a first calculation step for processing said at least two primary pairs calculating an intermediate result of the redundant information entity based on the data information entity on the diagonal line; and a second calculation step for calculating the information content of the redundant information entity according to the intermediate result. Computing the information content of the redundancy set is simpler since the main diagonals of the at least two square sub-matrices of the parity-check matrix have predominantly non-zero elements.
根据本发明的第二方面的优选实施例,所述主对角线的元素主要为非零的所述奇偶校验矩阵的至少一个正方形子矩阵还具有元素主要为非零的邻近对角线,并且所述第二计算步骤包括利用所述中间结果来处理相应邻近对角线上的数据信息实体。这允许更有效地计算所述冗余集的信息内容。According to a preferred embodiment of the second aspect of the present invention, at least one square sub-matrix of said parity-check matrix whose elements on said main diagonal are predominantly non-zero also has adjacent diagonals whose elements are predominantly non-zero, And said second calculating step comprises using said intermediate result to process data information entities on the corresponding adjacent diagonal. This allows more efficient computation of the information content of the redundant set.
根据本发明的第二方面的其他优选实施例,所述冗余集中的每个冗余信息实体的相应信息内容被计算为由所述奇偶校验矩阵的相应行中的非零元素表示的所述数据集中的所有数据信息实体的相应信息内容的异或。这允许在计算所述冗余集的信息内容时降低开销,导致更高的性能。所述方法还更容易实现。According to other preferred embodiments of the second aspect of the present invention, the corresponding information content of each redundant information entity in said redundancy set is calculated as all Exclusive OR of the corresponding information content of all data information entities in the above data set. This allows to reduce overhead when computing the information content of the redundancy set, resulting in higher performance. The method is also easier to implement.
根据本发明的第三方面的实施例,提供了一种用于减少数据损失的设备。该设备对应于本发明的第二方面的实施例及其优点。According to an embodiment of the third aspect of the present invention, an apparatus for reducing data loss is provided. The device corresponds to an embodiment of the second aspect of the invention and its advantages.
根据本发明的第四方面的实施例,提供了一种用于保护存储在至少一个存储单元上的数据以防不可纠正的介质错误的系统。所述系统包括包含本发明的第三方面的设备和至少一个存储单元。每个信息实体表示所述至少一个存储单元上的扇区。所述系统对应于所述设备及其优点。According to an embodiment of the fourth aspect of the present invention there is provided a system for protecting data stored on at least one storage unit against uncorrectable media errors. The system comprises an apparatus comprising the third aspect of the invention and at least one storage unit. Each information entity represents a sector on said at least one storage unit. The system corresponds to the device and its advantages.
根据本发明的第四方面的优选实施例,所述系统配置为独立存储单元的冗余阵列。所述配置也称为独立磁盘冗余阵列(RAID)。这允许更高的可靠性,特别是在一个存储单元完全失败的情况下。由此通过独立存储单元的冗余阵列提供的盘间冗余以及冗余集提供的盘内冗余减少了数据损失。本发明的第三方面的有利的实施例并不限于盘,也可以包括任何其他种类的存储单元。According to a preferred embodiment of the fourth aspect of the present invention, the system is configured as a redundant array of independent storage units. This configuration is also known as Redundant Array of Independent Disks (RAID). This allows for greater reliability, especially in the event of a complete failure of a storage unit. Data loss is thus reduced by inter-disk redundancy provided by redundant arrays of independent storage units and by intra-disk redundancy provided by redundant sets. Advantageous embodiments of the third aspect of the invention are not limited to disks, but may also include any other kind of storage unit.
根据本发明的第五方面的实施例,提供了一种用于减少数据损失的计算机程序产品,所述计算机程序产品包括包含可由计算机执行的程序指令的计算机可读介质。所述程序指令对应于本发明的第二方面的实施例及其优点。According to an embodiment of the fifth aspect of the present invention there is provided a computer program product for reducing data loss, the computer program product comprising a computer readable medium containing program instructions executable by a computer. Said program instructions correspond to embodiments of the second aspect of the invention and its advantages.
根据本发明的第六方面的实施例,提供了一种包括程序指令的用于减少数据损失的计算机程序。所述程序指令对应于本发明的第二方面的实施例及其优点。According to an embodiment of the sixth aspect of the invention there is provided a computer program comprising program instructions for reducing data loss. Said program instructions correspond to embodiments of the second aspect of the invention and its advantages.
附图说明Description of drawings
现在通过实例的方式参考附图,这些附图是:Referring now by way of example to the accompanying drawings, these drawings are:
图1示意地示出了一个系统;Figure 1 schematically shows a system;
图2是图1中所示的系统的方块图;Figure 2 is a block diagram of the system shown in Figure 1;
图3是包括五个存储单元的配置了RAID级别5的系统中的数据组织的概要图;3 is a schematic diagram of data organization in a system configured with
图4是包括八个存储单元的配置了RAID级别5的系统中的一个段的数据组织的概要图;Figure 4 is a schematic diagram of the data organization of a segment in a system comprising eight storage units configured with
图5示出了表示交织奇偶校验码的奇偶校验矩阵;Figure 5 shows a parity check matrix representing an interleaved parity check code;
图6A示出了表示已知的扩展汉明码的奇偶校验矩阵;Figure 6A shows a parity check matrix representing a known extended Hamming code;
图6B示出了稀疏扩展汉明码的奇偶校验矩阵;Figure 6B shows a parity check matrix of a sparse extended Hamming code;
图6C示出了稀疏汉明码的奇偶校验矩阵;Figure 6C shows a parity check matrix of a sparse Hamming code;
图7示出了用于自动创建纠错编码方案的方法的流程图;Figure 7 shows a flowchart of a method for automatically creating an error correction coding scheme;
图8示出了表示基于图6C示出的奇偶校验矩阵的自动创建的纠错编码方案的奇偶校验矩阵;Figure 8 shows a parity check matrix representing an automatically created error correction coding scheme based on the parity check matrix shown in Figure 6C;
图9示出了用于减少数据损失的方法的流程图;以及Figure 9 shows a flowchart of a method for reducing data loss; and
图10示出了显示分别基于图5、6B、6C和8所示的奇偶校验矩阵的纠错编码方案的属性的表。Fig. 10 shows a table showing properties of error correction coding schemes based on the parity check matrices shown in Figs. 5, 6B, 6C and 8, respectively.
具体实施方式Detailed ways
图1示出了用于获得对本发明的实施例的理解的系统。该系统包括至少一个存储单元100,在本实施例中,存储单元100由包括至少一个磁盘101作为存储介质和读/写头102的硬盘驱动器表示。读/写头102可以放置在所述至少一个磁盘101的选定磁道上。通过使用读/写头102在磁盘101上的选定数据区中有选择地确定磁性的方向来将二进制数据存储在磁盘101上。所述系统还包括用于减少数据损失的设备103。所述至少一个存储单元100与设备103相连。Figure 1 illustrates a system for gaining an understanding of an embodiment of the invention. The system comprises at least one
图2示出了图1所示的系统的方块图。设备103包括用于连接主机(例如,计算机系统)的主机接口104,用于控制所述至少一个存储单元100的控制器105,包括内部存储器107的计算引擎106和连接到计算引擎106的外部存储器108。所述主机接口104、控制器105和计算引擎106被连接以便数据可以通过所述至少一个存储单元100请求主机接口104或相反以及在主机接口104与计算引擎106之间或在控制器105与计算引擎106之间传送。FIG. 2 shows a block diagram of the system shown in FIG. 1 . The
图3示出了配置了RAID级别5的系统中的数据组织的概要图,所述系统包括五个存储单元100的阵列200,所述五个存储单元被标记为第一存储单元HDD1、第二存储单元HDD2、第三存储单元HDD3、第四存储单元HDD4和第五存储单元HDD5。所述五个存储单元100分别与设备103连接。数据被组织在条带202中。条带202跨越所有五个存储单元100。对于每个条带202,系统的每个独立存储单元100都包括一个条带203。每个条带203包括四个段204,而每个段204包括十六个数据块,每个数据块包括八个扇区。因此每个段204包括128个扇区。Figure 3 shows an overview of data organization in a system configured with
在配置了RAID级别5的系统中,每个条带203带有用户数据E或RAID奇偶校验数据P。RAID奇偶校验数据P被计算为同一条带202中所有用户数据E的模2和(也称为异或或XOR)。RAID奇偶校验数据P的位置分别从一个存储单元100轮换到相继条带中的阵列200中的某一其他存储单元100。如果某一存储单元100失败,则从存储在仍然工作的其他存储单元100上的同一条带202中的其他用户数据E和RAID奇偶校验数据P,可以恢复存储在失败的存储单元100上的相应用户数据E和RAID奇偶校验数据P。配置了RAID级别5的系统允许通过恢复受损数据并将其写入系统中包括的备用存储单元100来重建某一失败的存储单元100的信息内容。In a system configured with
在完成重建之前,如果第二存储单元100失败或某一其他存储单元100上出现介质错误,则在配置了RAID级别5的系统中会出现数据损失。随着单个存储单元100的存储容量的增加,在重建操作期间读取的总字节数变得更多。这增加了遇到不可纠正的介质错误(通常导致一个或多个扇区变得不可读)的可能性。当不可纠正的介质错误和系统中一个存储单元100的失败同时发生时,问题尤其严重。例如,如果配置了RAID级别5的系统中的一个存储单元100失败,则重建过程会读取其余存储单元100上的所有数据以便在备用的存储单元100上重建受损的数据。在此阶段,在阵列200中的任何仍然工作的存储单元100上的不可纠正的介质错误会导致数据损失,因为没有方法来重建不可纠正的扇区的信息内容。在此易出问题的阶段中,数据损失的风险变得更大,因为磁盘容量持续快速增长而磁盘带宽和磁盘可靠性的增加要慢得多。理论和实践结果表明配置了RAID级别5的系统中的数据损失的主要来源在于重建期间的介质相关的故障。If the
通过提供盘内冗余(也称为通过盘内冗余的扇区保护(SPIDRE)),可以降低由于一个或多个介质错误带来数据损失的风险。图4为其他配置了RAID级别5的系统的一个段204的数据组织的概要图,所述系统包括八个存储单元100,分别标记为第一存储单元HDD1、第二存储单元HDD2、第三存储单元HDD3、第四存储单元HDD4、第五存储单元HDD5、第六存储单元HDD6、第七存储单元HDD7和第八存储单元HDD8。段204在每个存储单元100上包括十六个数据块,它们带有用户数据E、RAID奇偶校验数据P或盘内冗余数据S。每个存储单元100上的每个段204都有一个带有盘内冗余数据S的数据块。盘内冗余数据S分别与同一存储单元100上的段204的用户数据E或RAID奇偶校验数据P关联。当用户数据E和RAID奇偶校验数据P分别被写入段204或在段204中被更新时,设备103中的计算引擎106可用于计算和提供从段204的用户数据E和RAID奇偶校验数据P计算的盘内冗余数据S的信息内容。计算引擎106还可用于分别从其他用户数据E和RAID奇偶校验数据P的信息内容以及存储在同一存储单元100的同一段204的盘内冗余数据S来分别恢复不可读扇区的用户数据E和RAID奇偶校验数据P的信息内容。By providing in-disk redundancy, also known as sector protection through in-disk redundancy (SPIDRE), the risk of data loss due to one or more media errors can be reduced. 4 is an overview diagram of the data organization of a
盘内冗余的概念可应用于任何现有的RAID体系结构或级别,例如,RAID级别5、级别51、级别6或级别N+3。由RAID冗余数据S提供的RAID冗余主要减少因某一完整存储单元100的失败而造成的存储在阵列200上的数据的损失。盘内冗余减少了因不可纠正的介质错误带来的存储在每个单独存储单元100上的数据的损失。可以理解,盘内冗余的概念也可应用于仅包括单个存储单元100的系统。The concept of intra-disk redundancy can be applied to any existing RAID architecture or level, for example,
对段204中的用户数据E的每个修改(例如,第二存储单元HDD2上的段204的第四个数据块)都应伴随对与同一段204中已修改的用户数据E关联的盘内冗余数据S的更新(例如,第二存储单元HDD2上的段204的第九个数据块)。进而,与已修改的用户数据E对应的RAID奇偶校验数据P也应被更新(例如,第八存储单元HDD8上的段204的第四个数据块)。由于RAID奇偶校验数据P的更新,与已更新的RAID奇偶校验数据P关联的盘内冗余数据S也应被更新(例如,第八存储单元HDD8上的段204的第九个数据块)。单独写入这四个数据块会导致四个请求。通过将盘内冗余数据S与用户数据E相继存储在同一段204中,仅使用第一请求205和第二请求206来更新用户数据E的块,RAID奇偶校验数据P的块和盘内冗余数据S的相应块。Each modification to user data E in a segment 204 (for example, the fourth block of
在正常操作中(即,任何存储单元100都没有出现故障),可以从至少一个存储单元100读取用户数据E,而无需同时读取相应的RAID奇偶校验数据P。相应地,可以从至少一个存储单元100读取用户数据E,而无需同时读取盘内冗余数据S,只要在读取用户数据E期间没有出现介质错误。有利地使用单个请求来完成读取若干块连续的用户数据E。此请求也可以包括读取盘内冗余数据S,如果它位于由请求所包括的用户数据E的各块之间。可以理解,在此情况下,可以忽略盘内冗余数据S的信息内容。In normal operation (ie, no failure of any storage unit 100 ), user data E can be read from at least one
每个更新用户数据E的请求使用读取和写入至少两个存储单元100上的至少两个数据块:分别为已修改的用户数据E和RAID奇偶校验数据P,及相应的盘内冗余数据S。使用单独的请求来读取和写入四个数据块中的每个数据块将为用户数据E的每次更新使用四个读取请求加四个写入请求。通过应用第一请求205和第二请求206,仅使用两个读取请求加两个写入请求便可以实现用户数据E的更新。可以使用同一请求分别读取和写入逻辑地置于已修改的用户数据E的块或RAID奇偶校验数据P和盘内冗余数据S的相应块之间的一个或多个其他数据块(特别是用户数据E或RAID奇偶校验数据P)。每个请求所请求的数据块数因此取决于已修改的用户数据E的块或RAID奇偶校验数据P和盘内冗余数据S的相应块之间的距离。与将盘内冗余数据S置于段204的开始和结束处相比,通过将盘内冗余数据S大约放置在段204的中间,可以减少所有读取和/或写入请求的平均数据块数。在本实施例中,每个请求读取和/或写入的平均数据块数约为5.27。每个请求的寻道时间与用于读取一个例如4KB的数据块的时间的通常比率约为50比1。与使用单独的请求来访问以上实例的四个数据块中的每个数据块以便更新用户数据E、RAID奇偶校验数据P和盘内冗余数据S相比,使用每个请求读取和/或写入多个数据块对整体读/写性能的影响(特别是更新用户数据E时)因此更小。Each request to update user data E uses reading and writing at least two data blocks on at least two storage units 100: respectively modified user data E and RAID parity data P, and corresponding on-disk redundancy The remaining data S. Using separate requests to read and write each of the four data blocks would use four read requests plus four write requests for each update of user data E. By applying the
作为一个实例,每个数据块的大小为4KB。段204有128个扇区。每个数据块被分为八个扇区。带有盘内冗余数据S的数据块被看作冗余信息扇区R的冗余集。冗余信息扇区R的数量r为8。用户数据E的每个块有八个数据信息扇区D。段204中有十五个用户数据E的块。因此,带有用户数据E的数据信息扇区D的数量n为120。段204的用户数据E的所有块的所有120个数据信息扇区D被看作一个数据集。所述冗余集与段204中的数据集相关联。根据所述数据集的信息内容来计算所述冗余集的信息内容。具体地说,所述冗余集中的每个冗余信息扇区R都被看作根据所述数据集的相应关联子集计算的奇偶校验,即,作为是所述数据集的子集的数据信息扇区D的相应关联集合的奇偶校验来计算每个冗余信息扇区R。As an example, each data block is 4KB in size.
在不能从存储单元100正确读取用户数据E的块时,该用户数据E的块被标记为所谓的“删除部分”。在某些情况下,可以使用同一存储单元100上的同一段204的用户数据E的其他块和盘内冗余数据S的信息内容来恢复所述删除部分的信息内容。通过提供与段204中的数据集关联的冗余集实现的纠错能力(或更准确地说,删除恢复能力)取决于用于计算相应的冗余信息扇区R的数据信息扇区D的相应选择。使用尽可能少的计算操作来计算冗余集的信息内容以便减少使用复杂的计算引擎106的需要是所希望的。When a block of user data E cannot be correctly read from the
图5示出了奇偶校验矩阵H,它表示所谓的交织奇偶校验编码(IPC编码),具体地说IPC-8(128、120)编码,它用于本发明的一个实施例并在此后称为第一类型的奇偶校验矩阵。奇偶校验矩阵H有8行,每行对应冗余集中的每个冗余信息扇区R。奇偶校验矩阵H还有128列,每列对应段204的每个扇区。奇偶校验矩阵H中的非零元素示为点。对于每个数据块,交织奇偶校验编码有八个非零元素。非零元素被放置在表示一个数据块的每个不同的8×8子矩阵的对角线上。奇偶校验矩阵H的每行中的所有非零元素标记了形成用于计算相应的冗余信息扇区R的数据集的相应关联子集的所有扇区。通过计算奇偶校验矩阵H的相应行中标记的所有数据信息扇区D的异或来计算相应的冗余信息扇区R。应用所述交织奇偶校验编码,存在数量nz为128的非零元素,即,应执行128次异或运算来计算冗余集的信息内容,即,段204的盘内冗余数据S。交织奇偶校验编码的最小汉明距离dmin为2。IPC-8(128、120)编码具有最多纠正数量为r的冗余信息扇区R的特性,即,最多8个具有段204中的介质错误和任何单个扇区介质错误的连续扇区。Fig. 5 shows a parity check matrix H, which represents a so-called interleaved parity-check code (IPC code), specifically an IPC-8 (128, 120) code, which is used in one embodiment of the present invention and hereinafter It is called the first type of parity check matrix. The parity check matrix H has 8 rows, and each row corresponds to each redundant information sector R in the redundancy set. The parity check matrix H also has 128 columns, and each column corresponds to each sector of the
图6A到6C分别示出了用于本发明的一个实施例中的第二、第三和第四类型的奇偶校验矩阵H。图6A中所示的第二类型的奇偶校验矩阵H为最小汉明距离dmin是4的公知扩展汉明码。在此奇偶校验矩阵H中非零元素的数量nz为576。图6B所示的第三类型的奇偶校验矩阵H为扩展汉明码,且奇偶校验矩阵H是稀疏的,即,非零元素的数量nz减少到512。最小汉明距离dmin为4。在图6C所示的第四类型的奇偶校验矩阵H中,进一步减少了非零元素的数量nz。图6C示出了奇偶校验矩阵H是稀疏的并且最小汉明距离dmin为3的汉明码。非零元素的数量nz为376。6A to 6C respectively show the second, third and fourth types of parity check matrix H used in one embodiment of the present invention. The second type of parity check matrix H shown in FIG. 6A is a known extended Hamming code whose minimum Hamming distance dmin is 4. The number nz of nonzero elements in this parity check matrix H is 576. The third type of parity check matrix H shown in FIG. 6B is an extended Hamming code, and the parity check matrix H is sparse, that is, the number of non-zero elements nz is reduced to 512. The minimum Hamming distance dmin is 4. In the fourth type of parity check matrix H shown in FIG. 6C , the number nz of nonzero elements is further reduced. FIG. 6C shows a Hamming code in which the parity check matrix H is sparse and the minimum Hamming distance dmin is 3. FIG. The number nz of non-zero elements is 376.
分别对于给定的最小汉明距离dmin为4或3、冗余信息扇区R的数量r为8以及数据信息扇区D的数量n为120,第三和第四类型的奇偶校验矩阵H都具有最小的非零元素数量nz。For a given minimum Hamming distance dmin of 4 or 3, the number r of redundant information sectors R being 8, and the number n of data information sectors D being 120, the third and fourth types of parity check matrices H have the smallest number of non-zero elements nz.
在最小汉明距离dmin为3时,可以确保奇偶校验矩阵H有最少的非零元素数nz,因为表示汉明码的奇偶校验矩阵H的列从二进制元组集形成,且冗余信息扇区R元素的数量r表示所有非零数,最高到2的冗余信息扇区R的数量r次幂减1。可以对奇偶校验矩阵H的列排序以使列的非零元素数nz从左到右增加。如果使用少于2的冗余信息扇区R的数量r次幂减1的列来表示段204的所有扇区,则可以通过选择最左侧的列来保证非零元素的最少数量nz。最小汉明距离dmin大于3时,不能以相同的方式来保证非零元素的最小数量。When the minimum Hamming distance dmin is 3, it can ensure that the parity check matrix H has the least number of non-zero elements nz, because the columns of the parity check matrix H representing the Hamming code are formed from the set of binary tuples, and the redundant information fan The number r of elements of the region R represents all non-zero numbers up to 2 minus 1 to the r power of the number of redundant information sectors R. The columns of the parity-check matrix H may be sorted such that the number of nonzero elements nz of the columns increases from left to right. If all sectors of the
还修改了第三和第四类型的奇偶校验矩阵H,以便在最多纠正数量为r的冗余信息扇区R(即,最多8个具有介质错误的连续扇区)的纠错能力方面,它们体现与交织奇偶校验编码相同的特性。与交织奇偶校验编码相比,扩展汉明码具有更好的纠错能力,这是因为最小汉明距离dmin分别为4或3。这额外地允许分别纠正段204中的任何三个和两个扇区介质错误。通常,可以在段204中纠正最小汉明距离dmin减1的单个介质错误。使用扩展汉明码因此导致对存储单元100的改进的保护,并且因此提高了存储单元100的可靠性,而且还增加了计算引擎106的计算能力以便执行更多数量的异或运算,这是因为与交织奇偶校验编码相比,奇偶校验矩阵H中的非零元素数nz更多。交织奇偶校验编码的纠错能力可应用于多数高端存储单元100,特别是多数高端硬盘驱动器(例如,结合了小型计算机系统接口,SCSI)。与交织奇偶校验编码相比具有更高纠错能力的扩展汉明码之一可被考虑用于低端存储单元100,特别是低端硬盘驱动器(例如,结合高级技术附件系统,ATA或串行高级技术附件系统,SATA)。The third and fourth types of parity-check matrices H are also modified so that, in terms of error correction capabilities for correcting at most r redundant information sectors R (i.e., at most 8 consecutive sectors with medium errors), They exhibit the same properties as interleaved parity codes. Compared with interleaved parity-check codes, extended Hamming codes have better error correction capability because the minimum Hamming distance dmin is 4 or 3, respectively. This additionally allows any three and two sector media errors in
为了降低使用复杂的计算引擎106的需要和保证数据保护的某些特性,例如,最多纠正因介质错误引起的冗余信息扇区R的数量r个连续不可读扇区的纠错能力,可以改进奇偶校验矩阵H。引入了两个度量来更好地比较基于不同奇偶校验矩阵H的不同纠错编码方案。In order to reduce the need to use a
第一个度量为XORO,或XOR开销。XORO是对编程XOR引擎以完成给定任务的所有异或运算(例如,计算冗余集的信息内容)的计算成本的测量。XOR引擎由计算引擎106表示。对于具有k个操作数的单个异或运算,XORO被定义为XORO(k)=k+1。XORO并不说明操作数的大小。The first metric is XORO, or XOR overhead. XORO is a measure of the computational cost of programming an XOR engine to complete all the XOR operations for a given task (eg, computing the information content of a redundant set). The XOR engine is represented by
给定的任务由于子任务而消耗存储器带宽,所述子任务例如在存储单元100与外部存储器108之间移动数据或奇偶校验,通过主机接口104从外部存储器108将用户数据E发送到主机(例如,计算机系统),或者将数据或奇偶校验移入或移出XOR引擎(即,计算引擎106)。由名为MBWC的第二个度量来量化存储器带宽的消耗。例如,如果给定的任务是计算从主机接收的给定数量的数据块(例如,用户数据E或RAID奇偶校验数据P)的异或并将这些数据块与计算结果(例如,盘内冗余数据S)一起写入至少一个存储单元100,则完成此给定任务的存储器带宽消耗MBWC包括若干部分。在第一部分中,从主机接收的给定数量的数据块被写入外部存储器108。在第二部分中,从外部存储器108将所述给定数量的数据块读取到计算引擎106中。在第三部分中,将计算结果写回外部存储器108。在第四部分中,将给定数量的块和计算结果写入至少一个存储单元100。因此,传输到和传输自外部存储器的数据块的总数为给定数量的数据块的三倍加计算结果的两倍。在本实例中,所有数据块都具有相同的大小,例如,4KB。A given task consumes memory bandwidth due to subtasks such as moving data or parity between the
使用IPC-8(128、120)编码进一步说明了XORO的计算。每个冗余信息扇区R都是段204的总共120个数据信息扇区D中的十五个不同数据信息扇区D的异或运算的结果。在8×128奇偶校验矩阵H中捕获冗余信息扇区R对数据信息扇区D的交织相关性,所述奇偶校验矩阵H具有规则的模式,所述模式包括十六个不同的8×8模式的子矩阵,所述子矩阵在相应的主对角线上具有非零的元素。每个8×8模式子矩阵的所有其他元素均为零。如果段204的所有120个数据信息扇区D都存储在外部存储器108中,则可以使用具有十五个源操作数(即,数据信息扇区D)和一个目标操作数(即,冗余信息扇区R)的异或运算来计算八个冗余信息扇区R中的每个冗余信息扇区R。因此,计算每个冗余信息扇区R的XORO值等于十六,而计算所有八个冗余信息扇区R的XORO值是128。在这种情况下,可以逐扇区地计算每个冗余信息扇区R。The calculation of XORO is further illustrated using IPC-8 (128, 120) encoding. Each redundant information sector R is the result of an exclusive OR operation of fifteen different data information sectors D out of a total of 120 data information sectors D of
考虑120个数据信息扇区D被连续存储在外部存储器108的连续位置中,可以降低计算引擎的复杂性。然后可以使用具有十五个源操作数和一个目标操作数的单个异或运算来计算所有八个冗余信息扇区R。但是,在这种情况下,每个操作数跨越八个连续的扇区。已计算的冗余信息扇区R也被连续存储在外部存储器108中。因此,计算所有八个冗余信息扇区R的XORO值为16。MBWC的值由于冗余信息扇区R的不同计算而保持不变并等于47个数据块。与上述情况相反,在当前情况下,每个冗余信息扇区R的计算是逐块地完成的。Considering that 120 data information sectors D are stored consecutively in consecutive locations of the
图7示出了用于自动创建纠错编码方案以便减少数据损失的方法的流程图。所创建的纠错编码方案在降低计算引擎106的复杂性和存储器带宽消耗(即,XORO值和MBWC值)方面提供了平衡。在基本选择步骤中,奇偶校验矩阵H(例如,第四类型的奇偶校验矩阵H)被选为基本矩阵。在矩阵设置步骤中,修改所选择的基本矩阵以便其显示非零元素的给定模式(例如,类似于根据IPC-8(128、120)的模式子矩阵的规则模式)。但是,给定模式可以根据要求而不同。Fig. 7 shows a flowchart of a method for automatically creating an error correction coding scheme in order to reduce data loss. The error correction coding scheme created provides a balance between reducing the complexity of the
所述方法以步骤S1作为入口点开始。在步骤S2,执行所述基本选择步骤。另外,设置冗余信息扇区R的数量r和段204中的扇区数L。例如,冗余信息扇区R的数量r为8,段204中的扇区数L为128,同时包括八个冗余信息扇区R和120个数据信息扇区D。在步骤S3中,设置目标矩阵H′。在此实例中,将目标矩阵H′设置为行数和列数等于冗余信息扇区R的数量r的正方形单位矩阵。所述单位矩阵表示冗余信息扇区R。进而,通过随机更改所选择的基本矩阵(即,所选择的奇偶校验矩阵H)的列的顺序来设置随机化的基本矩阵H1,去除最初r个(冗余信息扇区R的数量)列,如果这些列已表示单位矩阵(在将第四类型的奇偶校验矩阵H选择为基本矩阵时是这种情况)。另外,设置对于段204中的每个扇区都包括一个元素的矢量I,即,矢量I的元素数与扇区数L相等。将矢量I的最初r个(冗余信息扇区R的数量)元素设置为1,其他元素设置为0。在矢量I中,所有同样出现在目标矩阵H′中的随机化的基本矩阵H1的列被标记为1。The method starts with step S1 as entry point. In step S2, said basic selection step is performed. In addition, the number r of redundant information sectors R and the number L of sectors in the
在步骤S4,将第一变量i的值设置为冗余信息扇区R的数量r加1。相应地,在步骤S5,将第二变量j的值设置为冗余信息扇区R的数量r加1。第一变量i表示目标矩阵H′中的当前列的下标。第二变量j表示随机化的基本矩阵H1中的当前列的下标。在步骤S6,检查第二变量j指向的矢量I的元素是否等于0。如果是,即,随机化的基本矩阵H1的相应列尚未出现在目标矩阵H′中,则在步骤S7中,将由第二变量j指向的随机化的基本矩阵H1的列附加到目标矩阵H′中由第一变量i指向的位置。In step S4, the value of the first variable i is set to the number r of redundant information
在步骤S8,检查目标矩阵H′是否满足预定条件的给定集合。所述预定条件取决于对结果纠错编码方案的要求。此预定条件的给定集合可以例如包括显示非零元素的给定模式的目标矩阵H′,例如,相应模式子矩阵的主对角线上的元素主要为非零。通过例如屏蔽相应元素并对屏蔽所覆盖的非零元素数计数,可以容易地对此进行检查。如果所计数的每个模式子矩阵的非零元素数超过给定的阈值,则所述模式可被视为在目标矩阵H′的相应模式子矩阵中存在。In step S8, it is checked whether the target matrix H' satisfies a given set of predetermined conditions. The predetermined conditions depend on the requirements for the resulting error correction coding scheme. This given set of predetermined conditions may eg comprise a target matrix H' exhibiting a given pattern of non-zero elements, eg elements on the main diagonal of the corresponding pattern sub-matrix are predominantly non-zero. This can be easily checked by eg masking the corresponding element and counting the number of non-zero elements covered by the mask. If the counted number of non-zero elements of each pattern sub-matrix exceeds a given threshold, the pattern may be considered to be present in the corresponding pattern sub-matrix of the target matrix H'.
所述预定条件的集合还可以包括显示有关结果纠错编码方案的纠错能力的给定特性的目标矩阵H′。例如,要实现最多纠正段204中r个(冗余信息扇区R的数量)连续不可读的扇区的能力,则列数等于冗余信息扇区R的数量r的目标矩阵H′的每个正方形子矩阵应具有等于冗余信息扇区R的数量r的秩。Said set of predetermined conditions may also comprise a target matrix H' showing a given characteristic with respect to the error correction capability of the resulting error correction coding scheme. For example, to realize the ability to correct at most r (the number of redundant information sectors R) consecutive unreadable sectors in the
如果目标矩阵H′在给定程度上满足所述预定条件的给定集合中的所有预定条件,则在步骤S9中,保留附加到目标矩阵H′的列并将矢量I的当前元素设置为1。在给定程度上满足预定条件是指,例如,并非目标矩阵H′的所有不同正方形子矩阵都应显示给定的模式,但至少给定数量或百分比的子矩阵显示给定的模式。在步骤S10,将第一变量i的值增加1。在步骤S11,检查第一变量i的值是否等于段204中的扇区数L。如果是,则所述方法在步骤S12结束。否则,所述方法在步骤S5中继续。If the target matrix H' satisfies all predetermined conditions in a given set of said predetermined conditions to a given extent, then in step S9, keep the column appended to the target matrix H' and set the current element of the vector I to 1 . Satisfying the predetermined condition to a given extent means, for example, that not all the different square sub-matrices of the target matrix H' should exhibit the given pattern, but at least a given number or percentage of the sub-matrices should exhibit the given pattern. In step S10, the value of the first variable i is incremented by 1. In step S11, it is checked whether the value of the first variable i is equal to the number L of sectors in the
如果在步骤S8中,目标矩阵H′没有在给定程度上满足所述预定条件的给定集合中的所有预定条件,则在步骤S13中删除附加到目标矩阵H′的列。然后在步骤S14中增加第二变量j的值以尝试随机化的基本矩阵H1的下一列。在步骤S15,检查第二变量j的值是否等于段204中的扇区数L。如果否,则所述方法在步骤S6继续。否则,没有更多可供尝试的列。在这种情况下,所述方法在步骤S3继续,即,重置目标矩阵H′和矢量I并通过随机重新排序所选择的基本矩阵的列来从基本矩阵创建新的随机化的基本矩阵H1。如果矢量I的当前元素在步骤S6中不等于0,则所述方法还在步骤S14继续。If in step S8 the target matrix H' does not satisfy all predetermined conditions in the given set of said predetermined conditions to a given extent, the columns appended to the target matrix H' are deleted in step S13. Then in step S14 the value of the second variable j is increased to try to randomize the next column of the basic matrix H1. In step S15, it is checked whether the value of the second variable j is equal to the number L of sectors in the
图8示出了根据图7所示的方法得出为结果目标矩阵H′的第五类型的奇偶校验矩阵H。此奇偶校验矩阵H满足每个正方形模式子矩阵的主对角线上的元素主要为非零以及在应用为纠错编码方案时具有最多可纠正段204中八个连续不可读扇区的能力的条件。此外,其他预定条件是使(如果可能)每个模式子矩阵中相应的相邻对角线的元素主要为非零。第五类型的奇偶校验矩阵H的十二个模式子矩阵满足此预定条件。FIG. 8 shows a fifth type of parity check matrix H obtained as a resultant target matrix H' according to the method shown in FIG. 7 . This parity-check matrix H is such that the elements on the main diagonal of each square pattern sub-matrix are predominantly non-zero and has the ability to correct up to eight consecutive unreadable sectors in
通过使计算引擎106能够对存储在内部存储器107中的中间结果执行运算并用计算结果或中间结果T覆盖源操作数,以及利用给定模式的非零元素(包括模式子矩阵的主要为非零的所述主对角线和相邻对角线),可以进一步减小XORO值和MBWC值。仅对存储在内部存储器107中的数据执行的运算不影响MBWC值,因为在计算引擎106与外部存储器108之间没有使用数据移动。这些运算对XORO值的贡献为2。因此,通过使用存储在计算引擎106的内部存储器107中的中间结果T来计算冗余信息扇区R是有利的。By enabling the
对于图8所示的实例,可以执行以下计算。处理与相应模式子矩阵的主对角线的元素对应的数据信息扇区D的相应信息内容,得出第一、第二、第三、第四、第五、第六、第七和第八中间结果T1、T2、T3、T4、T5、T6、T7、T8,它们共同形成了存储在内部存储器107中的中间结果T。这些结果可以使用如上所述的操作数大小为八个扇区的单个异或运算来计算。这可以写为T=[T1,T2,T3,T4,T5,T6,T7,T8]=XOR(C9,C17,...C97),其中每个操作数的大小为8,或写为For the example shown in Figure 8, the following calculations can be performed. processing the corresponding information content of the data information sector D corresponding to the elements of the main diagonal of the corresponding pattern sub-matrix to obtain the first, second, third, fourth, fifth, sixth, seventh and eighth The intermediate results T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 together form the intermediate result T stored in the
T1=C9*C17*...*C97T1=C9*C17*...*C97
T2=C10*C18*...*C98T2=C10*C18*...*C98
T3=C11*C19*...*C99T3=C11*C19*...*C99
T4=C12*C20*...*C100T4=C12*C20*...*C100
T5=C13*C21*...*C101T5=C13*C21*...*C101
T6=C14*C22*...*C102T6=C14*C22*...*C102
T7=C15*C23*...*C103T7=C15*C23*...*C103
T8=C16*C24*...*C104T8=C16*C24*...*C104
对于第二到第十三主对角线,Cx表示段204的第x个扇区中的数据信息扇区D的信息内容,而“*”表示异或运算。对于此异或运算,XORO值为12,MBWC值为12×8扇区(即,96个扇区)。现在可以使用中间结果T来处理相应的相邻对角线上的元素:For the second to thirteenth main diagonals, Cx represents the information content of the data information sector D in the xth sector of the
T1=XOR(T1,T2)T1 = XOR(T1, T2)
T2=XOR(T2,T3)T2 = XOR(T2, T3)
T3=XOR(T3,T4)T3 = XOR(T3, T4)
T4=XOR(T4,T5)T4=XOR(T4, T5)
T5=XOR(T5,T6)T5 = XOR(T5, T6)
T6=XOR(T6,T7)T6=XOR(T6, T7)
T7=XOR(T7,T8)T7 = XOR(T7, T8)
其中每个操作数大小为1,或写为where each operand has
T1=T1*T2=C9*C10*C17*C18*...*C97*C98T1=T1*T2=C9*C10*C17*C18*...*C97*C98
T2=T2*T3=C10*C11*C18*C19*...*C98*C99T2=T2*T3=C10*C11*C18*C19*...*C98*C99
T3=T3*T4=C11*C12*C19*C20*...*C99*C100T3=T3*T4=C11*C12*C19*C20*...*C99*C100
T4=T4*T5=C12*C13*C20*C21*...*C100*C101T4=T4*T5=C12*C13*C20*C21*...*C100*C101
T5=T5*T6=C13*C14*C21*C22*...*C101*C102T5=T5*T6=C13*C14*C21*C22*...*C101*C102
T6=T6*T7=C14*C15*C22*C23*...*C102*C103T6=T6*T7=C14*C15*C22*C23*...*C102*C103
T7=T7*T8=C15*C16*C23*C24*...*C103*C104。T7=T7*T8=C15*C16*C23*C24*...*C103*C104.
对于此步骤,得到XORO值为7×2(即,14),以及MBWC值为0。如For this step, an XORO value of 7x2 (ie, 14) is obtained, and a MBWC value of 0. like
下处理第十四、十五和十六主对角线:The following deals with the fourteenth, fifteenth and sixteenth main diagonals:
T=[T1,T2,T3,T4,T5,T6,T7,T8]=XOR(T1,C105,C113,C121)T=[T1, T2, T3, T4, T5, T6, T7, T8]=XOR(T1, C105, C113, C121)
其中,每个操作数的大小为8,或写为where each operand has
T1=T1*C105*C113*C121T1=T1*C105*C113*C121
T2=T2*C106*C114*C122T2=T2*C106*C114*C122
T3=T3*C107*C115*C123T3=T3*C107*C115*C123
T4=T4*C108*C116*C124T4=T4*C108*C116*C124
T5=T5*C109*C117*C125T5=T5*C109*C117*C125
T6=T6*C110*C118*C126T6=T6*C110*C118*C126
T7=T7*C111*C119*C127T7=T7*C111*C119*C127
T8=T8*C112*C120*C128。T8=T8*C112*C120*C128.
对于此步骤,XORO值为3,MBWC值为3×8(即,24)。此步骤之后的总XORO值为30,总MBWC值为128扇区或十六个数据块。For this step, the XORO value is 3 and the MBWC value is 3x8 (ie, 24). The total XORO value after this step is 30 and the total MBWC value is 128 sectors or sixteen data blocks.
然后可逐扇区地单独处理奇偶校验矩阵H的其余非零元素。在该奇偶校验矩阵H中有164个非零元素不在主对角线之一或相邻对角线之一上。The remaining non-zero elements of the parity-check matrix H can then be processed individually on a sector-by-sector basis. There are 164 non-zero elements in the parity check matrix H that are not on one of the main diagonals or one of the adjacent diagonals.
另外,在主对角线或相邻对角线上有八个元素为零。它们总共需要另外172个操作数大小为一个扇区的异或运算。这得到额外的XORO值为172并且MBWC值为172个扇区。因此,对于计算冗余集的信息内容,总XORO值为202,MBWC值为300个扇区或37.5个数据块。由于从主机将十五个用户数据E的块移动到外部存储器108并将十五个用户数据E的块和作为结果的所计算的盘内冗余数据S移动到至少一个存储单元100,额外的十五加十六个数据块对MBWC值做出了贡献。因而总的MBWC值约为69个数据块。Also, there are eight elements that are zero on the main or adjacent diagonals. In total they require another 172 XOR's with operands the size of one sector. This results in an additional XORO value of 172 and an MBWC value of 172 sectors. Therefore, for computing the information content of the redundancy set, the total XORO value is 202 and the MBWC value is 300 sectors or 37.5 data blocks. Since the fifteen blocks of user data E are moved from the host to the
为了如上所述地将冗余信息扇区R大约放置在段204的中间,可以循环地移位奇偶校验矩阵H的列。例如,奇偶校验矩阵H的实施例的初始列C1到C64变成列C65到C128,而初始列C65到C128则变成列C1到C64。To place redundant information sector R approximately in the middle of
通过这种方式,将冗余信息扇区R从列C1到C8移动至列C65到C72。In this way, the redundant information sector R is moved from columns C1 to C8 to columns C65 to C72.
对于所述奇偶校验矩阵H的实施例,可以验证此列的循环移位不会改变最多纠正段204中八个连续不可读扇区的能力。For the parity-check matrix H embodiment described, it can be verified that cyclic shifting of this column does not change the ability to correct up to eight consecutive unreadable sectors in
图9示出了可以在设备103中的硬件内实现的用于减少数据损失的方法的流程图。所述方法也可以被实现为包括可由计算机执行的程序指令的计算机程序。设备103可以包括用于执行所述计算机程序的程序指令的计算机。替代地,所述计算机程序可以是计算机系统的操作系统或基本输入/输出系统的一部分。可以提供包含可由设备103或计算机系统执行的程序指令的计算机可读介质。所述计算机可读介质例如可以是CD-ROM、闪存卡、硬盘或任何其他适合的计算机可读介质。FIG. 9 shows a flowchart of a method for reducing data loss that may be implemented within hardware in
图9所示的方法利用了由图7所示的方法创建的纠错编码方案并执行以上为图8说明的计算。所述方法开始于步骤S20。在步骤S21中,通过如上所述地处理模式子矩阵的主对角线上的数据信息扇区D的信息内容,以计算冗余信息扇区R的中间结果T来执行第一计算步骤。在步骤S22中,如上所述地,利用中间结果T覆盖先前计算的中间结果T来处理模式子矩阵的相邻对角线上的数据信息扇区D的信息内容。在步骤S23中,根据中间结果T(例如,通过如上所述地处理奇偶校验矩阵H的其余非零元素)来计算冗余信息扇区R的信息内容。所述方法在步骤S24结束。The method shown in FIG. 9 utilizes the error correction coding scheme created by the method shown in FIG. 7 and performs the calculations described above for FIG. 8 . The method starts at step S20. In step S21, a first calculation step is performed by processing the information content of the data information sector D on the main diagonal of the pattern sub-matrix as described above to calculate the intermediate result T of the redundant information sector R. In step S22, as described above, the information content of the data information sector D on the adjacent diagonal of the pattern sub-matrix is processed by using the intermediate result T to overwrite the previously calculated intermediate result T. In step S23, the information content of the redundant information sector R is calculated from the intermediate result T (eg, by processing the remaining non-zero elements of the parity check matrix H as described above). The method ends at step S24.
图10示出了具有最小汉明距离dmin、突发删除恢复(即,纠正连续不可读扇区的纠错能力)、奇偶校验矩阵H中的非零元素数nz、奇偶校验矩阵H的第三、第四、第五和第一类型的相应XORO值和MBWC值的表。在所述表中,第三类型的奇偶校验矩阵H标为“扩展汉明码”,第四类型标为“SD3”(最稀疏距离3),第五类型标为“OSD3”(优化的最稀疏距离3),以及第一类型标为“IPC-8”。Fig. 10 shows a graph with minimum Hamming distance dmin, burst erasure recovery (i.e., error correction capability to correct consecutive unreadable sectors), number of non-zero elements nz in parity check matrix H, parity check matrix H Table of corresponding XORO values and MBWC values for third, fourth, fifth and first types. In the table, the third type of parity-check matrix H is labeled "Extended Hamming code", the fourth type is labeled "SD3" (most sparse distance 3), and the fifth type is labeled "OSD3" (optimized minimum distance 3). Sparse distance 3), and the first type is labeled "IPC-8".
以上说明的实施例基于作为信息实体的扇区。可替代地,信息实体也可以表示位、字节或任何其他适合的信息实体。所述冗余信息扇区R和数据信息扇区D表示特定的实施例,并且可以分别更为一般地看作冗余信息实体R和数据信息实体D。此外,减少因存储单元100上的介质错误引起的数据损失只是众多应用中的一种应用。例如,通过应用以上提供的纠错编码方案,同样可以减少通过无线电信道或电缆传送或接收的数据的损失。The embodiments explained above are based on sectors as information entities. Alternatively, an information entity may also represent bits, bytes or any other suitable information entity. Said redundant information sector R and data information sector D represent specific embodiments and can be seen more generally as redundant information entity R and data information entity D respectively. Furthermore, reducing data loss due to media errors on
可以理解,仅通过实例的方式描述了本发明,并且可以在本发明的范围内做出细节上的修改。It will be understood that the present invention has been described by way of example only and that modifications of detail may be made within the scope of the invention.
可以独立地或以任何适当的组合来提供在说明书和(如果适合)权利要求书以及附图中披露的每个特征。Each feature disclosed in the description and (where appropriate) claims and drawings may be provided independently or in any appropriate combination.
标号label
100存储单元100 storage units
101磁盘101 disk
102读/写头102 read/write heads
103设备103 equipment
104主机接口104 host interface
105控制器105 controller
106计算引擎106 computing engine
107内部存储器107 internal memory
108外部存储器108 external memory
200阵列200 array
202条带202 strips
203条203 articles
204段204 paragraphs
205第一请求205 first request
206第二请求206 second request
D数据信息扇区/实体D data information sector/entity
dmin最小汉明距离dmin minimum Hamming distance
E用户数据User data
H奇偶校验矩阵H parity check matrix
H′目标矩阵H' target matrix
H1随机化的基本矩阵Fundamental matrix for H1 randomization
HDD硬盘驱动器HDD hard disk drive
I矢量I vector
i第一变量i first variable
j第二变量j second variable
L段中的扇区数The number of sectors in the L segment
n数据信息扇区数n data information sector number
nz非零元素数nzNumber of non-zero elements
PRAID奇偶校验数据PRAID parity data
r冗余信息扇区数r Number of redundant information sectors
R冗余信息扇区/实体R redundant information sector/entity
S盘内冗余数据Redundant data in S disk
Sx步骤Sx steps
T中间结果T intermediate result
Tx中间结果Tx intermediate results
Claims (13)
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP05023797.3 | 2005-10-31 | ||
EP05023797 | 2005-10-31 | ||
EP05110718.3 | 2005-11-13 | ||
EP05110718 | 2005-11-14 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1959648A CN1959648A (en) | 2007-05-09 |
CN1959648B true CN1959648B (en) | 2010-11-03 |
Family
ID=43028975
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006101265838A Expired - Fee Related CN1959648B (en) | 2005-10-31 | 2006-08-29 | Method for establishing error encoding scheme and equipment for reducing data loss |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1959648B (en) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103034458B (en) * | 2012-12-25 | 2015-11-25 | 华为技术有限公司 | Method and the device of Redundant Array of Independent Disks (RAID) is realized in solid state hard disc |
CN104156174A (en) * | 2014-07-31 | 2014-11-19 | 记忆科技(深圳)有限公司 | Strip based solid-state drive RAID (redundant array of independent disks) realizing method and device |
US9448887B1 (en) * | 2015-08-22 | 2016-09-20 | Weka.IO Ltd. | Distributed erasure coded virtual file system |
WO2019232721A1 (en) * | 2018-06-06 | 2019-12-12 | 深圳先进技术研究院 | Method and apparatus for correcting memory data reading error, and device and medium |
CN108897637B (en) * | 2018-06-06 | 2019-10-29 | 深圳先进技术研究院 | The error correction method, device of reading data, equipment and medium in memory |
CN109032833B (en) * | 2018-06-06 | 2023-11-03 | 深圳先进技术研究院 | Correcting method, device, equipment and storage medium for multi-bit error data |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3542756A (en) * | 1968-02-07 | 1970-11-24 | Codex Corp | Error correcting |
US4295218A (en) * | 1979-06-25 | 1981-10-13 | Regents Of The University Of California | Error-correcting coding system |
US6789227B2 (en) * | 2001-07-05 | 2004-09-07 | International Business Machines Corporation | System and method for generating low density parity check codes using bit-filling |
CN1540871A (en) * | 2003-04-24 | 2004-10-27 | 北京邮电大学 | LDPC Iterative Coding Method Based on Improved Tanner Graph |
-
2006
- 2006-08-29 CN CN2006101265838A patent/CN1959648B/en not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3542756A (en) * | 1968-02-07 | 1970-11-24 | Codex Corp | Error correcting |
US4295218A (en) * | 1979-06-25 | 1981-10-13 | Regents Of The University Of California | Error-correcting coding system |
US6789227B2 (en) * | 2001-07-05 | 2004-09-07 | International Business Machines Corporation | System and method for generating low density parity check codes using bit-filling |
CN1540871A (en) * | 2003-04-24 | 2004-10-27 | 北京邮电大学 | LDPC Iterative Coding Method Based on Improved Tanner Graph |
Non-Patent Citations (4)
Title |
---|
张进坡.光传输系统中的super-FEC技术.光通信技术2003年 第9期.2003,2003年(第9期),11-14. |
张进坡.光传输系统中的super-FEC技术.光通信技术2003年 第9期.2003,2003年(第9期),11-14. * |
曾蓉.低密度校验(LDPC)码的构造及编码.重庆邮电学院学报17 3.2005,17(3),316-319. |
曾蓉.低密度校验(LDPC)码的构造及编码.重庆邮电学院学报17 3.2005,17(3),316-319. * |
Also Published As
Publication number | Publication date |
---|---|
CN1959648A (en) | 2007-05-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8321762B2 (en) | Method for creating an error correction coding scheme | |
CN103392172B (en) | Correct the erasing in storage array | |
US9417963B2 (en) | Enabling efficient recovery from multiple failures together with one latent error in a storage array | |
US6928578B2 (en) | System, method, and computer program for selectable or programmable data consistency checking methodology | |
JP4709485B2 (en) | On-drive integrated sector format RAID error correction code system and method | |
US6993701B2 (en) | Row-diagonal parity technique for enabling efficient recovery from double failures in a storage array | |
US5351246A (en) | Method and means for coding and rebuilding that data contents of unavailable DASDs or rebuilding the contents of DASDs in error in the presence of reduced number of unavailable DASDs in a DASD array | |
US8145941B2 (en) | Detection and correction of block-level data corruption in fault-tolerant data-storage systems | |
JP6153541B2 (en) | Method, system and program for storing data in storage array using erasure error correction code | |
US20150333773A1 (en) | Systems and methods for adaptive error-correction coding | |
US9009569B2 (en) | Detection and correction of silent data corruption | |
CN1959648B (en) | Method for establishing error encoding scheme and equipment for reducing data loss | |
US20070124648A1 (en) | Data protection method | |
CN109358980B (en) | A RAID6 encoding method friendly to data update and single-disk error repair | |
CN114550806B (en) | Double-layer error correction method applied to SSD | |
US9400715B1 (en) | System and method for interconnecting storage elements | |
WO2017158430A1 (en) | Coding technique | |
US7848441B2 (en) | Apparatus and method to generate convolution encoded data | |
US20230053467A1 (en) | Encoding for data recovery in storage systems | |
Malluhi et al. | Ragged-Edge Array Coding for Reliable and Efficient Storage Arrays |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20171107 Address after: Grand Cayman, Cayman Islands Patentee after: GLOBALFOUNDRIES INC. Address before: American New York Patentee before: Core USA second LLC Effective date of registration: 20171107 Address after: American New York Patentee after: Core USA second LLC Address before: American New York Patentee before: International Business Machines Corp. |
|
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20101103 Termination date: 20180829 |