[go: up one dir, main page]

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 PDF

Info

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
Application number
CN2006101265838A
Other languages
Chinese (zh)
Other versions
CN1959648A (en
Inventor
A·多拉基亚
胡晓宇
I·伊利亚迪斯
E·S·埃莱夫特里乌
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.)
Core Usa Second LLC
GlobalFoundries Inc
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1959648A publication Critical patent/CN1959648A/en
Application granted granted Critical
Publication of CN1959648B publication Critical patent/CN1959648B/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements 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

One embodiment disclosed is method for protecting data stored on at least one storage unit against uncorrectable media errors. The method includes associating a given redundancy set of at least one redundancy information sector (R) with a given data set of at least two data information sectors (D). The information content of the redundancy set is computed dependent on the information content of the data set. A storing operation stores the information content of the redundancy set consecutively with the information content of the data set forming a segment such that the redundancy set is placed logically in between a first part and a second part of the data set, and accessing at least one data information sector (D) in the data set by reading and/or writing the information content of the at least one data information sector (D) and at least one redundancy information sector (R) in the redundancy set with a single request.

Description

创建纠错编码方案的方法和减少数据损失的设备 Method for creating an error-correcting coding scheme and apparatus for reducing data loss

技术领域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 RAID level 5 including five storage units;

图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 RAID level 5;

图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 storage unit 100 represented in this embodiment by a hard disk drive comprising at least one magnetic disk 101 as storage medium and a read/write head 102 . A read/write head 102 may be placed on a selected track of the at least one magnetic disk 101 . Binary data is stored on the magnetic disk 101 by selectively orienting the magnetism in selected data areas on the magnetic disk 101 using the read/write head 102 . The system also includes means 103 for reducing data loss. The at least one storage unit 100 is connected to a device 103 .

图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 device 103 comprises a host interface 104 for connecting to a host (e.g. a computer system), a controller 105 for controlling the at least one storage unit 100, a computing engine 106 comprising an internal memory 107 and an external memory connected to the computing engine 106 108. The host interface 104, the controller 105 and the computing engine 106 are connected so that data can be requested through the at least one storage unit 100 to the host interface 104 or vice versa and between the host interface 104 and the computing engine 106 or between the controller 105 and the computing engine 106 to send.

图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 level 5 comprising an array 200 of five storage units 100 labeled as first storage unit HDD1, second Storage unit HDD2, third storage unit HDD3, fourth storage unit HDD4, and fifth storage unit HDD5. The five storage units 100 are respectively connected to the device 103 . Data is organized in stripes 202 . Stripe 202 spans all five storage units 100 . For each stripe 202 , each individual storage unit 100 of the system includes a stripe 203 . Each stripe 203 includes four segments 204, and each segment 204 includes sixteen data blocks, each data block including eight sectors. Each segment 204 therefore includes 128 sectors.

在配置了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 RAID level 5, each stripe 203 carries user data E or RAID parity data P. The RAID parity data P is calculated as the modulo-2 sum (also called exclusive OR or XOR) of all user data E in the same stripe 202 . The location of the RAID parity data P is rotated from one storage unit 100 to some other storage unit 100 in the array 200 in successive stripes, respectively. If a certain storage unit 100 fails, then from other user data E and RAID parity data P stored in the same stripe 202 on other storage units 100 that are still working, the data stored on the failed storage unit 100 can be recovered. Corresponding user data E and RAID parity data P. A system configured with RAID level 5 allows rebuilding the information content of a failed storage unit 100 by recovering damaged data and writing it to a spare storage unit 100 included in the system.

在完成重建之前,如果第二存储单元100失败或某一其他存储单元100上出现介质错误,则在配置了RAID级别5的系统中会出现数据损失。随着单个存储单元100的存储容量的增加,在重建操作期间读取的总字节数变得更多。这增加了遇到不可纠正的介质错误(通常导致一个或多个扇区变得不可读)的可能性。当不可纠正的介质错误和系统中一个存储单元100的失败同时发生时,问题尤其严重。例如,如果配置了RAID级别5的系统中的一个存储单元100失败,则重建过程会读取其余存储单元100上的所有数据以便在备用的存储单元100上重建受损的数据。在此阶段,在阵列200中的任何仍然工作的存储单元100上的不可纠正的介质错误会导致数据损失,因为没有方法来重建不可纠正的扇区的信息内容。在此易出问题的阶段中,数据损失的风险变得更大,因为磁盘容量持续快速增长而磁盘带宽和磁盘可靠性的增加要慢得多。理论和实践结果表明配置了RAID级别5的系统中的数据损失的主要来源在于重建期间的介质相关的故障。If the second storage unit 100 fails or a media error occurs on some other storage unit 100 before the rebuild is complete, data loss can occur in a system configured with RAID level 5. As the storage capacity of a single storage unit 100 increases, the total number of bytes read during the reconstruction operation becomes larger. This increases the possibility of encountering uncorrectable media errors (usually causing one or more sectors to become unreadable). This is especially problematic when uncorrectable media errors coincide with the failure of one storage unit 100 in the system. For example, if one storage unit 100 fails in a system configured with RAID level 5, the reconstruction process will read all the data on the remaining storage units 100 to rebuild the damaged data on the spare storage unit 100 . At this stage, an uncorrectable media error on any surviving memory unit 100 in the array 200 would result in data loss because there is no way to reconstruct the information content of the uncorrectable sector. During this problematic phase, the risk of data loss becomes greater as disk capacity continues to grow rapidly while disk bandwidth and disk reliability increase much more slowly. Theoretical and practical results indicate that the major source of data loss in systems configured with RAID level 5 is media-related failures during rebuilds.

通过提供盘内冗余(也称为通过盘内冗余的扇区保护(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 segment 204 of another system configured with RAID level 5, said system including eight storage units 100, respectively labeled as the first storage unit HDD1, the second storage unit HDD2, the third storage unit unit HDD3, fourth storage unit HDD4, fifth storage unit HDD5, sixth storage unit HDD6, seventh storage unit HDD7, and eighth storage unit HDD8. Segment 204 includes sixteen data blocks on each storage unit 100 with user data E, RAID parity data P or on-disk redundancy data S. Each segment 204 on each storage unit 100 has a data block with on-disk redundant data S. The on-disk redundant data S is respectively associated with the user data E or the RAID parity data P of the segment 204 on the same storage unit 100 . When user data E and RAID parity data P are respectively written into segment 204 or updated in segment 204, calculation engine 106 in device 103 can be used to calculate and provide user data E and RAID parity from segment 204 Data P calculates the information content of redundant data S on the disk. The computing engine 106 can also be used to restore the user data of unreadable sectors respectively from the information content of other user data E and RAID parity data P and the on-disk redundant data S stored in the same segment 204 of the same storage unit 100 E and the information content of the RAID parity data P.

盘内冗余的概念可应用于任何现有的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, RAID level 5, level 51, level 6 or level N+3. The RAID redundancy provided by the RAID redundancy data S mainly reduces the loss of data stored on the array 200 caused by the failure of a certain complete storage unit 100 . On-disk redundancy reduces the loss of data stored on each individual storage unit 100 due to uncorrectable media errors. It can be understood that the concept of intra-disk redundancy can also be applied to a system including only a single storage unit 100 .

对段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 segment 204 on the second storage unit HDD2) should be accompanied by an update to the on-disk data associated with the modified user data E in the same segment 204. Update of redundant data S (for example, the ninth data block of segment 204 on the second storage unit HDD2). Furthermore, the RAID parity data P corresponding to the modified user data E should also be updated (for example, the fourth data block of the segment 204 on the eighth storage unit HDD8). Due to the update of the RAID parity data P, the redundant data S on the disk associated with the updated RAID parity data P should also be updated (for example, the ninth data block of the segment 204 on the eighth storage unit HDD8 ). Writing these four data blocks individually results in four requests. By sequentially storing the on-disk redundant data S and the user data E in the same segment 204, only the first request 205 and the second request 206 are used to update the block of the user data E, the block of the RAID parity data P and the on-disk The corresponding block of redundant data S.

在正常操作中(即,任何存储单元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 storage unit 100 without simultaneously reading the corresponding RAID parity data P. Correspondingly, the user data E can be read from at least one storage unit 100 without simultaneously reading the on-disk redundant data S, as long as no medium error occurs during the reading of the user data E. Reading several blocks of contiguous user data E is advantageously done using a single request. This request may also include the reading of on-disk redundant data S if it is located between the blocks of user data E included by the request. It can be understood that in this case, the information content of the redundant data S on the disc can be ignored.

每个更新用户数据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 first request 205 and the second request 206, updating of the user data E can be achieved using only two read requests plus two write requests. One or more other data blocks ( In particular user data E or RAID parity data P). The number of data blocks requested per request thus depends on the distance between the modified block of user data E or RAID parity data P and the corresponding block of on-disk redundant data S. By placing the on-disk redundant data S approximately in the middle of the segment 204, the average data for all read and/or write requests can be reduced compared to placing the on-disk redundant data S at the beginning and end of the segment 204 number of blocks. In this embodiment, the average number of data blocks read and/or written per request is approximately 5.27. A typical ratio of seek time per request to time to read a block of data, say 4KB, is about 50 to 1. Using each request to read and/or Or the impact of writing multiple data blocks on overall read/write performance (especially when updating user data E) is therefore smaller.

作为一个实例,每个数据块的大小为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. Segment 204 has 128 sectors. Each data block is divided into eight sectors. A data block with on-disk redundant data S is regarded as a redundant set of redundant information sectors R. The number r of redundant information sectors R is eight. Each block of user data E has eight data information sectors D. There are fifteen blocks of user data E in section 204 . Therefore, the number n of data information sectors D with user data E is 120. All 120 data information sectors D of all blocks of user data E of segment 204 are regarded as one data set. The redundancy set is associated with the data set in segment 204 . The information content of the redundant set is calculated from the information content of the data set. Specifically, each sector of redundant information R in the redundant set is considered as a parity calculated from a corresponding associated subset of the data set, i.e. as a parity check that is a subset of the data set Each redundant information sector R is calculated from the parity of the corresponding associated set of data information sectors D.

在不能从存储单元100正确读取用户数据E的块时,该用户数据E的块被标记为所谓的“删除部分”。在某些情况下,可以使用同一存储单元100上的同一段204的用户数据E的其他块和盘内冗余数据S的信息内容来恢复所述删除部分的信息内容。通过提供与段204中的数据集关联的冗余集实现的纠错能力(或更准确地说,删除恢复能力)取决于用于计算相应的冗余信息扇区R的数据信息扇区D的相应选择。使用尽可能少的计算操作来计算冗余集的信息内容以便减少使用复杂的计算引擎106的需要是所希望的。When a block of user data E cannot be correctly read from the storage unit 100, the block of user data E is marked as a so-called "deleted portion". In some cases, the information content of the deleted part can be restored by using other blocks of user data E of the same segment 204 on the same storage unit 100 and information content of on-disk redundant data S. The error correction capability (or more precisely, the erasure recovery capability) achieved by providing the redundancy set associated with the data set in the segment 204 depends on the data information sector D used to calculate the corresponding redundant information sector R Select accordingly. It is desirable to compute the information content of the redundant set using as few computational operations as possible in order to reduce the need to use complex computation engines 106 .

图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 segment 204 . The non-zero elements in the parity check matrix H are shown as dots. For each data block, the interleaved parity code has eight non-zero elements. Non-zero elements are placed on the diagonal of each distinct 8×8 sub-matrix representing a block of data. All non-zero elements in each row of the parity-check matrix H mark all sectors that form the corresponding associated subset of the data set used to compute the corresponding sector R of redundancy information. The corresponding redundant information sector R is calculated by calculating the exclusive-or of all data information sectors D marked in the corresponding row of the parity-check matrix H. Applying the interleaved parity code, there are 128 non-zero elements in the number nz, ie 128 XOR operations should be performed to calculate the information content of the redundancy set, ie the on-disk redundant data S of the segment 204 . The minimum Hamming distance dmin of the interleaved parity code is 2. IPC-8 (128, 120) encoding has the property of correcting at most r number of redundant information sectors R, ie at most 8 consecutive sectors with media errors in segment 204 and any single sector media error.

图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 segment 204 are represented by columns less than 2 to the power r of the number of redundant information sectors R minus 1, the minimum number nz of non-zero elements can be guaranteed by selecting the leftmost column. The minimum number of non-zero elements cannot be guaranteed in the same way when the minimum Hamming distance dmin is greater than 3.

还修改了第三和第四类型的奇偶校验矩阵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 segment 204 to be corrected, respectively. Typically, a single media error of the minimum Hamming distance dmin minus 1 can be corrected in section 204 . The use of extended Hamming codes thus results in improved protection of the storage unit 100, and thus increases the reliability of the storage unit 100, but also increases the computing power of the computing engine 106 to perform a greater number of XOR operations, because with Compared with the interleaved parity-check code, the number nz of non-zero elements in the parity-check matrix H is larger. The error correction capability of the interleaved parity code is applicable to most high-end storage units 100, especially most high-end hard disk drives (eg, incorporating Small Computer System Interface, SCSI). One of the extended Hamming codes, which have higher error correction capabilities than interleaved parity codes, can be considered for low-end storage units 100, especially low-end hard drives (e.g., in combination with Advanced Technology Attachment System, ATA or Serial Advanced Technology Attachment System, SATA).

为了降低使用复杂的计算引擎106的需要和保证数据保护的某些特性,例如,最多纠正因介质错误引起的冗余信息扇区R的数量r个连续不可读扇区的纠错能力,可以改进奇偶校验矩阵H。引入了两个度量来更好地比较基于不同奇偶校验矩阵H的不同纠错编码方案。In order to reduce the need to use a complex calculation engine 106 and to ensure certain characteristics of data protection, for example, the error correction capability of at most r consecutive unreadable sectors that corrects the number of redundant information sectors R caused by media errors can be improved Parity check matrix H. Two metrics are introduced to better compare different error correction coding schemes based on different parity-check matrices H.

第一个度量为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 calculation engine 106 . For a single XOR operation with k operands, XORO is defined as XORO(k)=k+1. XORO does not state the size of the operands.

给定的任务由于子任务而消耗存储器带宽,所述子任务例如在存储单元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 storage unit 100 and the external memory 108, sending user data E from the external memory 108 to the host through the host interface 104 ( e.g., computer system), or move data or parity into and out of an XOR engine (ie, compute engine 106). Memory bandwidth consumption is quantified by a second metric named MBWC. For example, if a given task is to compute the XOR of a given number of data blocks (e.g., user data E or RAID parity data P) received from the host and combine these blocks with the calculation result (e.g., on-disk redundancy If the remaining data S) are written together in at least one memory cell 100, then the memory bandwidth consumption MBWC to complete this given task consists of several parts. In the first part, a given number of data blocks received from the host are written to the external memory 108 . In the second part, the given number of data blocks are read from the external memory 108 into the computing engine 106 . In the third part, the calculation result is written back to the external memory 108 . In the fourth part, a given number of blocks and calculation results are written to at least one storage unit 100 . Therefore, the total number of data blocks transferred to and from the external memory is three times the given number of data blocks plus twice the calculated result. In this example, all data blocks have the same size, eg, 4KB.

使用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 segment 204 . The interleaved correlation of redundant information sectors R to data information sectors D is captured in an 8×128 parity-check matrix H with a regular pattern comprising sixteen different 8 A sub-matrix of the x8 pattern, the sub-matrix having non-zero elements on the corresponding main diagonal. All other elements of each 8x8 pattern sub-matrix are zero. If all 120 data information sectors D of the segment 204 are stored in the external memory 108, then it is possible to use sector R) to calculate each redundant information sector R in the eight redundant information sectors R. Therefore, the calculated XORO value of each redundant information sector R is equal to sixteen, while the calculated XORO value of all eight redundant information sectors R is 128. In this case, each redundant information sector R can be calculated sector by sector.

考虑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 external memory 108, the complexity of the calculation engine can be reduced. All eight redundant information sectors R can then be calculated using a single XOR operation with fifteen source operands and one destination operand. However, in this case, each operand spans eight consecutive sectors. The calculated redundancy information sector R is also stored in the external memory 108 consecutively. Therefore, the XORO value of all eight redundant information sectors R is calculated to be 16. The value of MBWC remains the same due to the different calculation of the redundant information sector R and is equal to 47 data blocks. Contrary to the above case, in the present case the calculation of each redundant information sector R is done block by block.

图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 computation engine 106 and memory bandwidth consumption (ie, XORO value and MBWC value). In the basic selection step, a parity check matrix H (for example, a parity check matrix H of the fourth type) is selected as a basic matrix. In the matrix setup step, the selected base matrix is modified so that it exhibits a given pattern of non-zero elements (eg, a regular pattern similar to a pattern sub-matrix according to IPC-8 (128, 120)). However, the given mode can be different according to requirements.

所述方法以步骤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 section 204 are set. For example, the number r of redundant information sectors R is 8, and the number L of sectors in section 204 is 128, including eight redundant information sectors R and 120 data information sectors D. In step S3, the target matrix H' is set. In this instance, the target matrix H' is set as a square identity matrix having the number of rows and columns equal to the number r of redundant information sectors R. The identity matrix represents a sector R of redundant information. Furthermore, the randomized basic matrix H1 is set by randomly changing the order of the columns of the selected basic matrix (i.e., the selected parity check matrix H), and the first r (the number of redundant information sectors R) columns are removed , if the columns already represent the identity matrix (this is the case when the parity check matrix H of the fourth type is chosen as the fundamental matrix). In addition, a vector I including one element for each sector in the section 204 is set, ie, the number of elements of the vector I is equal to the number L of sectors. Set the first r elements of the vector I (the number of redundant information sectors R) to 1, and set the other elements to 0. In the vector I, all columns of the randomized basic matrix H1 that also appear in the target matrix H' are marked with 1.

在步骤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 sectors R plus 1. Correspondingly, in step S5, the value of the second variable j is set as the number r of redundant information sectors R plus 1. The first variable i represents the index of the current column in the target matrix H'. The second variable j represents the index of the current column in the randomized fundamental matrix H1. In step S6, it is checked whether the element of the vector I pointed to by the second variable j is equal to zero. If yes, i.e., the corresponding column of the randomized fundamental matrix H1 is not yet present in the target matrix H', then in step S7 the column of the randomized fundamental matrix H1 pointed to by the second variable j is appended to the target matrix H' The position pointed to by the first variable i in .

在步骤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 segment 204, each column of the target matrix H' with the number of columns equal to the number r of redundant information sectors R The square sub-matrices should have a rank equal to the number r of redundant information sectors R.

如果目标矩阵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 segment 204 or not. If yes, the method ends at step S12. Otherwise, the method continues in step S5.

如果在步骤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 segment 204 or not. If not, the method continues at step S6. Otherwise, there are no more columns to try. In this case, the method continues at step S3, i.e. the target matrix H' and the vector I are reset and a new randomized fundamental matrix H1 is created from the fundamental matrix by randomly reordering the columns of the selected fundamental matrix . If the current element of vector I is not equal to 0 in step S6, the method also continues with step S14.

图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 segment 204 when applied as an error-correcting coding scheme conditions of. In addition, other predetermined conditions are such that (if possible) the elements of the corresponding adjacent diagonal in each pattern sub-matrix are predominantly non-zero. The twelve pattern sub-matrices of the fifth type of parity check matrix H satisfy this predetermined condition.

通过使计算引擎106能够对存储在内部存储器107中的中间结果执行运算并用计算结果或中间结果T覆盖源操作数,以及利用给定模式的非零元素(包括模式子矩阵的主要为非零的所述主对角线和相邻对角线),可以进一步减小XORO值和MBWC值。仅对存储在内部存储器107中的数据执行的运算不影响MBWC值,因为在计算引擎106与外部存储器108之间没有使用数据移动。这些运算对XORO值的贡献为2。因此,通过使用存储在计算引擎106的内部存储器107中的中间结果T来计算冗余信息扇区R是有利的。By enabling the calculation engine 106 to perform operations on intermediate results stored in the internal memory 107 and overwriting the source operands with the calculation or intermediate results T, and by utilizing the non-zero elements of a given pattern (including the predominantly non-zero elements of the pattern sub-matrix) The main diagonal and adjacent diagonals), can further reduce the XORO value and MBWC value. Operations performed only on data stored in the internal memory 107 do not affect the MBWC value, since no data movement is used between the calculation engine 106 and the external memory 108 . These operations contribute 2 to the XORO value. Therefore, it is advantageous to calculate the redundant information sector R by using the intermediate result T stored in the internal memory 107 of the calculation engine 106 .

对于图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 internal memory 107 . These results can be computed using a single XOR operation with an operand size of eight sectors as described above. This can be written as T = [T1, T2, T3, T4, T5, T6, T7, T8] = XOR(C9, C17, ... C97) where each operand has size 8, or as

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 segment 204, and "*" represents an exclusive OR operation. For this XOR operation, the XORO value is 12 and the MBWC value is 12x8 sectors (ie, 96 sectors). The intermediate result T can now be used to process elements on the corresponding adjacent diagonal:

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 size 1, or written as

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 size 8, or written as

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 external memory 108 and the fifteen blocks of user data E and the resulting calculated on-disk redundancy data S are moved to at least one storage unit 100, additional Fifteen plus sixteen data blocks contributed to the MBWC value. The total MBWC value is thus approximately 69 data blocks.

为了如上所述地将冗余信息扇区R大约放置在段204的中间,可以循环地移位奇偶校验矩阵H的列。例如,奇偶校验矩阵H的实施例的初始列C1到C64变成列C65到C128,而初始列C65到C128则变成列C1到C64。To place redundant information sector R approximately in the middle of segment 204 as described above, the columns of parity check matrix H may be cyclically shifted. For example, the original columns C1 through C64 of an embodiment of the parity check matrix H become columns C65 through C128, and the original columns C65 through C128 become columns C1 through C64.

通过这种方式,将冗余信息扇区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 segment 204 .

图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 device 103 . The method can also be implemented as a computer program including program instructions executable by a computer. The device 103 may comprise a computer for executing program instructions of said computer program. Alternatively, the computer program may be part of the computer system's operating system or basic input/output system. A computer-readable medium containing program instructions executable by the device 103 or a computer system may be provided. The computer readable medium may be, for example, a CD-ROM, a flash memory card, a hard disk, or any other suitable computer readable medium.

图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 storage unit 100 is only one application among many. Losses of data transmitted or received over a radio channel or cable may likewise be reduced, for example, by applying the error correction coding scheme provided above.

可以理解,仅通过实例的方式描述了本发明,并且可以在本发明的范围内做出细节上的修改。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)

1.一种用于创建纠错编码方案以减少在数据存储中数据损失的方法,所述数据包括与具有至少两个数据信息实体(D)的给定数据集关联的具有至少两个冗余信息实体(R)的给定冗余集,根据所述数据集的信息内容来计算所述冗余集的信息内容,所述方法包括以下步骤:1. A method for creating an error correction coding scheme to reduce data loss in data storage, said data comprising at least two redundancies associated with a given data set having at least two data information entities (D) Given a redundant set of information entities (R), the information content of said redundant set is calculated from the information content of said data set, said method comprising the steps of: 基本选择步骤(S2),用于选择由基本矩阵表示的基本编码方案,其中每个冗余信息实体(R)由行表示,而每个信息实体由列表示;以及a basic selection step (S2) for selecting a basic coding scheme represented by a basic matrix, wherein each redundant information entity (R) is represented by a row, and each information entity is represented by a column; and 矩阵设置步骤(S3),用于设置具有所述基本矩阵的列的子集的目标矩阵(H′)并且用于根据所述基本矩阵来改变列的顺序,直至所述目标矩阵(H′)的给定数量或给定百分比的子矩阵满足非零元素的给定模式。a matrix setting step (S3) for setting a target matrix (H') having a subset of the columns of the basic matrix and for changing the order of columns according to the basic matrix until the target matrix (H') The given number or given percentage of submatrices satisfy the given pattern of nonzero elements. 2.如权利要求1中所述的方法,其中所述非零元素的给定模式被选择为包括所述目标矩阵(H′)的正方形模式子矩阵的主对角线,所述主对角线具有主要为非零的元素,所述目标矩阵(H′)具有的行数和列数等于所述冗余集中的冗余信息实体(R)的数量(r)。2. A method as claimed in claim 1, wherein said given pattern of non-zero elements is chosen to comprise the main diagonal of a square pattern sub-matrix of said target matrix (H'), said main diagonal Lines have predominantly non-zero elements, said target matrix (H') has a number of rows and columns equal to the number (r) of redundant information entities (R) in said redundancy set. 3.如权利要求2中所述的方法,其中所述非零元素的给定模式被选择为还包括与所述目标矩阵(H′)的所述正方形模式子矩阵的所述主对角线相邻布置的邻近对角线,所述邻近对角线的元素被选择成主要为非零。3. A method as claimed in claim 2, wherein said given pattern of non-zero elements is selected to also include said main diagonal with said square pattern submatrix of said target matrix (H') adjacently arranged adjacent diagonals, the elements of which are chosen to be predominantly non-zero. 4.如任一上述权利要求中所述的方法,其中所述基本矩阵被选择为对于所述基本编码方案的给定汉明距离(dmin)、所述数据集中的数据信息实体(D)数(n)以及所述冗余集中的冗余信息实体(R)数(r),具有最少的非零元素数(nz)。4. A method as claimed in any preceding claim, wherein the fundamental matrix is selected as the number of data information entities (D) in the data set for a given Hamming distance (dmin) of the basic coding scheme (n) and the number (r) of redundant information entities (R) in said redundant set, having the least number of non-zero elements (nz). 5.如权利要求1-3中任一项所述的方法,其中,在所述矩阵设置步骤(S3)中,改变所述列的顺序直至列数与所述冗余集中的冗余信息实体(R)数(r)相等的所述目标矩阵(H′)的每个行数为所述冗余集中的冗余信息实体数(r)的正方形子矩阵的秩与所述冗余集中的冗余信息实体(R)数(r)相等。5. The method according to any one of claims 1-3, wherein, in the matrix setting step (S3), the order of the columns is changed until the number of columns matches the redundant information entity in the redundant set (R) each row number of the said target matrix (H ') that number (r) is equal is the rank of the square submatrix of the redundant information entity number (r) in said redundant set and said redundant set The number (r) of redundant information entities (R) is equal. 6.如权利要求1-3中任一项所述的方法,其中所述创建的纠错编码方案基于分别计算由所述目标矩阵(H′)每行中的非零元素表示的所有数据信息实体(D)的信息内容的异或。6. The method according to any one of claims 1-3, wherein the error correction coding scheme created is based on calculating respectively all data information represented by non-zero elements in each row of the target matrix (H') XOR of the information content of entity (D). 7.如权利要求6中所述的方法,其中所述基本编码方案基于以下项中的一项:汉明码或扩展汉明码。7. A method as claimed in claim 6, wherein the basic encoding scheme is based on one of: Hamming codes or extended Hamming codes. 8.一种用于减少在数据存储中数据损失的方法,所述数据包括与具有至少两个数据信息实体(D)的给定数据集关联的具有至少两个冗余信息实体(R)的给定冗余集,根据所述数据集的信息内容通过应用纠错编码方案来计算所述冗余集的信息内容,所述纠错编码方案由奇偶校验矩阵(H)表示,其中每个冗余信息实体(R)由行表示,而所述数据的每个信息实体由列表示,并且所述奇偶校验矩阵(H)的至少两个正方形子矩阵具有元素主要为非零的对角线并具有与所述冗余集中的冗余信息实体(R)数(r)相等的行数和列数,并且表示所述数据集的连续放置的数据信息实体(D),所述方法包括:8. A method for reducing data loss in data storage comprising at least two redundant information entities (R) associated with a given data set having at least two data information entities (D) Given a redundant set, the information content of the redundant set is computed from the information content of the data set by applying an error correction coding scheme represented by a parity check matrix (H), where each A redundant information entity (R) is represented by a row, and each information entity of said data is represented by a column, and at least two square sub-matrices of said parity-check matrix (H) have diagonal elements with predominantly non-zero elements line and have the number of rows and columns equal to the number (r) of redundant information entities (R) in said redundancy set, and represent consecutively placed data information entities (D) of said data set, said method comprising : 第一计算步骤,用于通过处理所述至少两个主对角线上的所述数据信息实体(D)来计算所述冗余信息实体(R)的中间结果(T);以及a first calculation step for calculating an intermediate result (T) of said redundant information entities (R) by processing said data information entities (D) on said at least two main diagonals; and 第二计算步骤,用于根据所述中间结果(T)来计算所述冗余信息实体(R)的信息内容。A second calculation step for calculating the information content of said redundant information entity (R) based on said intermediate result (T). 9.如权利要求8中所述的方法,其中所述主对角线的元素主要为非零的所述奇偶校验矩阵(H)的至少一个正方形子矩阵还具有元素主要为非零的邻近对角线,并且所述第二计算步骤包括利用所述中间结果(T)来处理相应邻近对角线上的数据信息实体(D)。9. A method as claimed in claim 8, wherein at least one square sub-matrix of said parity-check matrix (H) whose elements on said main diagonal are predominantly non-zero also has adjacent elements whose elements are predominantly non-zero diagonal, and said second computing step includes processing data information entities (D) on corresponding adjacent diagonals with said intermediate result (T). 10.如权利要求8或9中的任一权利要求所述的方法,其中所述冗余集中的每个冗余信息实体(R)的信息内容被计算为由所述奇偶校验矩阵(H)的、与所述冗余信息实体相对应的行中的非零元素表示的所述数据集中的所有数据信息实体(D)的信息内容的异或。10. The method according to any one of claims 8 or 9, wherein the information content of each redundant information entity (R) in the redundancy set is calculated as defined by the parity check matrix (H ), the non-zero elements in the row corresponding to the redundant information entity represent the exclusive OR of the information content of all data information entities (D) in the data set. 11.一种用于减少在数据存储中数据损失的装置,所述数据包括与具有至少两个数据信息实体(D)的给定数据集关联的具有至少两个冗余信息实体(R)的给定冗余集,根据所述数据集的信息内容通过应用纠错编码方案来计算所述冗余集的信息内容,所述纠错编码方案由奇偶校验矩阵(H)表示,其中每个冗余信息实体(R)由行表示,而所述数据的每个信息实体由列表示,并且所述奇偶校验矩阵(H)的至少两个正方形子矩阵具有元素主要为非零的对角线并具有与所述冗余集中的冗余信息实体(R)数(r)相等的行数和列数,并且表示所述数据集的连续放置的数据信息实体(D),所述装置执行以下操作:11. An apparatus for reducing data loss in data storage comprising at least two redundant information entities (R) associated with a given data set having at least two data information entities (D) Given a redundant set, the information content of the redundant set is computed from the information content of the data set by applying an error correction coding scheme represented by a parity check matrix (H), where each A redundant information entity (R) is represented by a row, and each information entity of said data is represented by a column, and at least two square sub-matrices of said parity-check matrix (H) have diagonal elements with predominantly non-zero elements line and have the number of rows and columns equal to the number (r) of redundant information entities (R) in the redundancy set, and represent the continuously placed data information entities (D) of the data set, the device executes Do the following: 通过处理所述至少两个主对角线上的所述数据信息实体(D)来计算所述冗余信息实体(R)的中间结果(T);以及computing intermediate results (T) of said redundant information entities (R) by processing said data information entities (D) on said at least two main diagonals; and 根据所述中间结果(T)来计算所述冗余信息实体(R)的信息内容。The information content of said redundant information entity (R) is calculated from said intermediate result (T). 12.一种保护存储在至少一个存储单元(100)上的数据以防不可纠正的介质错误的系统,所述系统包括:12. A system for protecting data stored on at least one storage unit (100) against uncorrectable media errors, said system comprising: 如权利要求11中所述的装置(103);A device (103) as claimed in claim 11; 至少一个存储单元(100);以及at least one storage unit (100); and 每个信息实体表示所述至少一个存储单元(100)上的扇区。Each information entity represents a sector on said at least one storage unit (100). 13.如权利要求12中所述的系统,所述系统被配置为独立存储单元(100)的冗余阵列。13. The system as claimed in claim 12, said system configured as a redundant array of independent storage units (100).
CN2006101265838A 2005-10-31 2006-08-29 Method for establishing error encoding scheme and equipment for reducing data loss Expired - Fee Related CN1959648B (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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