CN101084486B - 用于校验子生成以及数据恢复的方法和系统 - Google Patents

用于校验子生成以及数据恢复的方法和系统 Download PDF

Info

Publication number
CN101084486B
CN101084486B CN2005800440903A CN200580044090A CN101084486B CN 101084486 B CN101084486 B CN 101084486B CN 2005800440903 A CN2005800440903 A CN 2005800440903A CN 200580044090 A CN200580044090 A CN 200580044090A CN 101084486 B CN101084486 B CN 101084486B
Authority
CN
China
Prior art keywords
parity check
check code
circleplus
comparer
code factor
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
CN2005800440903A
Other languages
English (en)
Other versions
CN101084486A (zh
Inventor
S·埃迪里苏里亚
G·特西
M·施密瑟尔
R·谢菲尔德
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of CN101084486A publication Critical patent/CN101084486A/zh
Application granted granted Critical
Publication of CN101084486B publication Critical patent/CN101084486B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1004Adaptive RAID, i.e. RAID system adapts to changing circumstances, e.g. RAID1 becomes RAID5 as disks fill up
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1057Parity-multiple bits-RAID6, i.e. RAID 6 implementations

Landscapes

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

Abstract

描述了一种用于校验子生成和数据恢复的方法和系统。该系统包括奇偶校验码生成器,其耦接到一个或多个存储设备,用于生成奇偶校验码以进行数据恢复。所述奇偶校验码生成器包括:第一比较器,用于基于所述一个或多个存储设备中的数据,生成第一奇偶校验码因子;乘法器,用于将来自所述一个或多个存储设备的数据乘以乘法因子,以生成乘积;第二比较器,其耦接到所述乘法器,用于至少部分地基于所述乘积,生成第二奇偶校验码因子;以及选择器,用于在所述第一奇偶校验码因子和所述第二奇偶校验码因子之间进行选择。

Description

用于校验子生成以及数据恢复的方法和系统
技术领域
本发明的实施例涉及校验子(syndrome)生成和数据恢复,更具体地,涉及PQ RAID校验子生成和数据恢复。
背景技术
随着大规模存储系统(例如光纤信道和吉比特以太网系统)的使用的增多,这些系统受到多个磁盘故障的影响也在增大。磁盘容量的迅速增长也延长了在磁盘故障情况下的磁盘恢复时间。在重建故障磁盘中存储的用户数据和奇偶校验码(parity)信息期间,所述延长的恢复时间增加了随后出现磁盘故障的可能性。另外,在导致数据丢失的磁盘故障后,由长时间未读取的数据所引起的潜在扇区故障可能阻碍数据恢复。在需要高度数据集成的阵列中使用较便宜的磁盘,例如ATA(高级技术配件)磁盘,也增加了出现这种磁盘故障的可能性。
人们已经开发出了可以从磁盘故障中恢复的RAID(独立磁盘冗余阵列)结构。典型地,在冗余磁盘上保持来自多个磁盘的数据的XOR(异或)。在磁盘故障的情况下,通过对未发生故障的磁盘上的数据进行XOR来重建故障磁盘上的数据。将重建的数据写入备用磁盘。然而,如果在重建完成前第二个磁盘出现故障,则数据将会丢失。最多能防止一个磁盘的数据丢失的传统磁盘阵列在数据恢复方面是有欠缺的,尤其是对于大规模存储系统而言更是如此。
附图说明
在附图中示例性地而非限制性地示出了本发明,其中,相同的参考标号指示相同的单元。
图1是示出可以从多个磁盘故障中恢复的系统的框图。
图2是迦罗华域(Galois Field)的示例性值的表格。
图3是示出根据本发明的实施例的系统的框图。
图4是示出根据本发明的实施例的方法的流程图。
具体实施方式
描述了用于校验子生成和数据恢复的系统和方法的实施例。在以下描述中,阐述了多个具体细节。然而,应当清楚,本发明的实施例可以在没有这些具体细节的情况下实现。在其它示例中,没有详细示出公知的电路、结构和技术,以免混淆对本文描述的理解。
在本说明书中,所涉及的“一个实施例”或“实施例”表示结合该实施例所描述的特定的特征、结构或特性包括在本发明的至少一个实施例中。因此,在本说明书的多处地方中出现的短语“一个实施例”或“实施例”不必都涉及相同的实施例。此外,特定的特征、结构和特性可以在一个或多个实施例中以适当的方式组合。
参考图1,其中的框图示出了可以从多个磁盘故障中恢复的系统100。系统100包括一个或多个用于存储数据的存储块(例如102-124)以及两个或多个用于存储奇偶校验码或校验子信息的存储块(例如130-144)。在一个实施例中,系统100是RAID(独立磁盘冗余阵列)系统。在一个实施例中,生成和存储了两个校验子:P校验子和Q校验子。通过对于条带(stripe)计算奇偶校验码来生成P校验子。通过使用迦罗华域乘法来生成Q校验子。用于数据恢复的再生方案同时使用了迦罗华域乘法和除法。
以下是用于为具有n个数据磁盘和两个校验磁盘的存储阵列生成P和Q的方程:
P = D 0 ⊕ D 1 ⊕ D 2 . . . . . . ⊕ D n - 1 (方程1)
Q = g 0 * D 0 ⊕ g 1 * D 1 ⊕ g 2 * D 2 . . . . . . ⊕ g n - 1 * D n - 1 (方程2)
P是使用
Figure S05844090320070625D000023
(XOR)运算对于条带所计算出的数据(D)的简单奇偶校验码。Q需要使用迦罗华域乘法器(g)进行的乘法(*)。
以下方程示出当更新数据块Da时P和Q的生成:
Figure S05844090320070625D000031
有四种多个磁盘故障的情况需要恢复。在第一种情况下,P和Q出现故障。在这种情况下,可以使用如上所示的方程1和2来再生P和Q。
在第二种情况下,Q和数据磁盘(Da)出现故障。在这种情况下,可以经由方程1,使用P和剩余的数据磁盘来再生Da。然后,可以使用方程2来再生Q。
在第三种情况下,P和数据磁盘(Da)出现故障。在这种情况下,可以使用Q、剩余的数据磁盘和以下方程来再生Da
D a = ( Q ⊕ Q a ) * g - a = ( Q ⊕ Q a ) * g 255 - a ,其中
Q a = g 0 D 0 ⊕ g 1 D 1 ⊕ . . . ⊕ g a - 1 D a - 1 ⊕ g a + 1 D a + 1 . . . ⊕ g n - 1 D n - 1
在再生Da之后,可以使用方程1来再生P。
在第四种情况下,两个数据磁盘(Da和Db)出现故障。在这种情况下,可以使用P和Q、剩余的数据磁盘和以下方程来再生Da和Db
D a = ( g - a * ( Q ⊕ Q ab ) ⊕ g b - a * ( P ⊕ P ab ) ) / ( g b - a ⊕ 0000 0001 )
D a = D a ⊕ ( P ⊕ P ab ) ,其中
P ab = D 0 ⊕ D 1 ⊕ . . . ⊕ D a - 1 ⊕ D a + 1 . . . ⊕ D b - 1 ⊕ D b + 1 . . . ⊕ D n - 1
Q ab = g 0 D 0 ⊕ g 1 D 1 ⊕ . . . ⊕ g a - 1 D a - 1 ⊕ g a + 1 D a + 1 . . . ⊕ g b - 1 D b - 1 ⊕ g b + 1 D b + 1 . . .
⊕ g n - 1 D n - 1
以下是在上述情况下从磁盘故障中恢复的实例。在以下实例中,假设数据路径的宽度为一字节或8比特。因此,使用迦罗华域GF(28)。可以对于宽度多于或少于一字节的数据路径来实现本发明,并且可以使用更大或更小的迦罗华域。
可以用以下方程来对两个8比特元素(b和c)进行相乘,以产生8比特乘积(a)。
b=[b7 b6 b5 b4 b3 b2 b1 b0]且c=[c7 c6 c5 c4 c3 c2 c1 c0]
a 0 = b 0 . c 0 ⊕ b 7 . c 1 ⊕ b 6 . c 2 ⊕ b 5 . c 3 ⊕ b 4 . c 4 ⊕ b 3 . c 5 ⊕ b 7 . c 5 ⊕ b 2 . c 6
⊕ b 7 . c 6 ⊕ b 6 . c 6 ⊕ b 1 . c 7 ⊕ b 7 . c 7 ⊕ b 6 . c 7 ⊕ b 5 . c 7
a 1 = b 1 . c 0 ⊕ b 0 . c 1 ⊕ b 7 . c 2 ⊕ b 6 . c 3 ⊕ b 5 . c 4 ⊕ b 4 . c 5 ⊕ b 3 . c 6 ⊕ b 7 . c 6
⊕ b 2 . c 7 ⊕ b 7 . c 7 ⊕ b 6 . c 7
a 2 = b 2 . c 0 ⊕ b 1 . c 1 ⊕ b 7 . c 1 ⊕ b 0 . c 2 ⊕ b 6 . c 2 ⊕ b 7 . c 3 ⊕ b 5 . c 3 ⊕ b 6 . c 4
⊕ b 4 . c 4 ⊕ b 5 . c 5 ⊕ b 3 . c 5 ⊕ b 7 . c 5 ⊕ b 2 . c 6 ⊕ b 7 . c 6 ⊕ b 6 . c 6 ⊕
b 4 . c 6 ⊕ b 1 . c 7 ⊕ b 3 . c 7 ⊕ b 6 . c 7 ⊕ b 5 . c 7
a 3 = b 3 . c 0 ⊕ b 2 . c 1 ⊕ b 7 . c 1 ⊕ b 1 . c 2 ⊕ b 7 . c 2 ⊕ b 6 . c 2 ⊕ b 0 . c 3 ⊕ b 6 . c 3
⊕ b 5 . c 3 ⊕ b 7 . c 4 ⊕ b 5 . c 4 ⊕ b 4 . c 4 ⊕ b 6 . c 5 ⊕ b 4 . c 5 ⊕ b 3 . c 5 ⊕
b 7 . c 5 ⊕ b 2 . c 6 ⊕ b 6 . c 6 ⊕ b 5 . c 6 ⊕ b 3 . c 6 ⊕ b 2 . c 7 ⊕ b 4 . c 7 ⊕ b 1 . c 7
⊕ b 5 . c 7
a 4 = b 4 . c 0 ⊕ b 3 . c 1 ⊕ b 7 . c 1 ⊕ b 2 . c 2 ⊕ b 7 . c 2 ⊕ b 6 . c 2 ⊕ b 1 . c 3 ⊕ b 7 . c 3
⊕ b 6 . c 3 ⊕ b 5 . c 3 ⊕ b 0 . c 4 ⊕ b 6 . c 4 ⊕ b 5 . c 4 ⊕ b 4 . c 4 ⊕ b 5 . c 5 ⊕
b 4 . c 5 ⊕ b 3 . c 5 ⊕ b 2 . c 6 ⊕ b 4 . c 6 ⊕ b 3 . c 6 ⊕ b 1 . c 7 ⊕ b 7 . c 7 ⊕ b 2 . c 7
⊕ b 3 . c 7
a 5 = b 5 . c 0 ⊕ b 4 . c 1 ⊕ b 3 . c 2 ⊕ b 7 . c 2 ⊕ b 2 . c 3 ⊕ b 7 . c 3 ⊕ b 6 . c 3 ⊕ b 1 . c 4
⊕ b 7 . c 4 ⊕ b 6 . c 4 ⊕ b 5 . c 4 ⊕ b 0 . c 5 ⊕ b 6 . c 5 ⊕ b 5 . c 5 ⊕ b 4 . c 5 ⊕
b 5 . c 6 ⊕ b 4 . c 6 ⊕ b 3 . c 6 ⊕ b 2 . c 7 ⊕ b 4 . c 7 ⊕ b 3 . c 7
a 6 = b 6 . c 0 ⊕ b 5 . c 1 ⊕ b 4 . c 2 ⊕ b 3 . c 3 ⊕ b 7 . c 3 ⊕ b 2 . c 4 ⊕ b 7 . c 4 ⊕ b 6 . c 4
⊕ b 1 . c 5 ⊕ b 7 . c 5 ⊕ b 6 . c 5 ⊕ b 5 . c 5 ⊕ b 0 . c 6 ⊕ b 6 . c 6 ⊕ b 5 . c 6 ⊕
b 4 . c 6 ⊕ b 5 . c 7 ⊕ b 4 . c 7 ⊕ b 3 . c 7
a 7 = b 7 . c 0 ⊕ b 6 . c 1 ⊕ b 5 . c 2 ⊕ b 4 . c 3 ⊕ b 3 . c 4 ⊕ b 7 . c 4 ⊕ b 2 . c 5 ⊕ b 7 . c 5
⊕ b 6 . c 5 ⊕ b 1 . c 6 ⊕ b 7 . c 6 ⊕ b 6 . c 6 ⊕ b 5 . c 6 ⊕ b 0 . c 7 ⊕ b 6 . c 7 ⊕
b 5 . c 7 ⊕ b 4 . c 7
图2示出表格200,其提供了迦罗华域乘法器ga的示例性值,其中g=0000 0010。用于GF(28)的生成器的负乘方可以使用以下方程来计算:
g-a=g255-a
以下实例示出了对于具有四个数据磁盘和两个奇偶校验码磁盘的磁盘阵列如何生成P和Q奇偶校验码。假设每个数据块包含一个数据字节。用Di表示磁盘I(i=0、1、2、3)中所包含的数据。考虑以下数据条带:
D0=1011 0100,D1=0010 1100,D2=1100 0110且D3=1101 0101。
从而,可以使用方程1生成P,如下:
P = D 0 ⊕ D 1 ⊕ D 2 ⊕ D 3
= 10110100 ⊕ 00101100 ⊕ 11000110 ⊕ 11010101
=1000 1011
可以使用方程2生成Q,如下:
Q = g 0 D 0 ⊕ g 1 D 1 ⊕ g 2 D 2 ⊕ g 3 D 3
根据图2中的表格,g0=0000 0001,g1=0000 0010,g2=0000 0100且g3=0000 1000。
因此, Q = 00000001 * 10110100 ⊕ 00000010 * 00101100 ⊕
00000100 * 11000110 ⊕ 00001000 * 11010101
= 10110100 ⊕ 01011000 ⊕ 00111111 ⊕ 11100110
=0011 0101
以下实例示出了如何使用以上生成的阵列从两个磁盘故障中恢复。在第一种情况下,P和Q出现故障。在这种情况下,使用以上所示的方程1和2来再生P和Q。在第二种情况下,Q和数据磁盘(Da)出现故障。在这种情况下,可以经由方程1,使用P和剩余的数据磁盘再生Da。然后,可以使用方程2再生Q。在第三种情况下,P和数据磁盘(Da)出现故障。在这种情况下,可以使用Q、剩余的数据磁盘和以下方程来再生Da
D a = ( Q ⊕ Q a ) * g - a = ( Q ⊕ Q a ) * g 255 - a ,其中
Q a = g 0 D 0 ⊕ g 1 D 1 ⊕ . . . ⊕ g a - 1 D a - 1 ⊕ g a + 1 D a + 1 . . . ⊕ g n - 1 D n - 1
例如,假设磁盘2出现故障。那么,
D 2 = ( Q ⊕ Q 2 ) · g 253 = ( Q ⊕ g 0 D 0 ⊕ g 1 D 1 ⊕ g 3 D 3 ) · g 253
= ( 00110101 ⊕ 00000001 * 10110100 ⊕ 00000010 *
00101100 ⊕ 00001000 ) * g 253
使用图2中的表格,g253=0100 0111。因此,
D 2 = ( 00110101 ⊕ 10110100 ⊕ 01011000 ⊕ 11100110 ) * 01000111
=00111111*0100 0111
=1100 0110
因为此时所有数据块都可用,所以可以使用方程1来再生P。
在第四种情况下,两个数据磁盘(Da和Db)出现故障。在这种情况下,可以使用P和Q、剩余的数据磁盘和以下方程来再生Da和Db
D a = ( g - a * ( Q ⊕ Q ab ) ⊕ g b - a * ( P ⊕ P ab ) ) / ( g b - a ⊕ 00000001 )
D b = D a ⊕ ( P ⊕ P ab ) ,其中
P ab = D 0 ⊕ D 1 ⊕ . . . ⊕ D a - 1 ⊕ D a + 1 . . . ⊕ D b - 1 ⊕ D b + 1 . . . ⊕ D n - 1
Q ab = g 0 D 0 ⊕ g 1 D 1 ⊕ . . . ⊕ g a - 1 D a - 1 ⊕ g a + 1 D a + 1 . . . g b - 1 D b - 1 ⊕ g b + 1 D b + 1 . . .
⊕ g n - 1 D n - 1
例如,假设磁盘1和3出现故障。那么,
D 1 ( g - 1 · ( Q ⊕ Q 13 ) ⊕ g 3 - 1 * ( P ⊕ P 13 ) ) / ( g 3 - 1 ⊕ 00000001 )
= ( g 254 * ( Q ⊕ Q 13 ) ⊕ g 2 ( P ⊕ P 13 ) ) / ( g 2 ⊕ 00000001 )
Q ⊕ Q 13 = 00110101 ⊕ 00000001 * 10110100 ⊕ 00000100
*1100 0110
= 00110101 ⊕ 10110100 ⊕ 00111111 = 10111110
P ⊕ P 13 = 10001011 ⊕ 10110100 ⊕ 11000110 = 11111001
根据图2中的表格,g254=1000 1110且g2=0000 0100。因此,
D 1 = ( ( 10001110 * 10111110 ) ⊕ ( 00000100 * 11111001 ) ) /
( 00000100 ⊕ 00000001 )
= ( 01011111 ⊕ 11000011 ) / ( 00000101 )
=(1011 1100)/(0000 0101)
=0010 1100
D 3 = D 1 ⊕ ( P ⊕ P 13 )
= 00101100 ⊕ 11111001
=1101 0101
图3是根据本发明的实施例的系统300的框图。系统300包括乘法器302以及一个或多个比较器,例如304和306。在一个实施例中,一个或多个比较器是XOR(异或)门。系统300还可以包括一个或多个缓冲器,例如308和310。缓冲器308存储比较器306的输出。比较器306将从图1所示的存储块中读取的数据320与缓冲器308的输出进行比较。由此,比较器306可以用来计算上述的P校验子,其为对于条带的奇偶校验码。
乘法器302将被乘数330与从图1所示的存储块中读取的数据320相乘。在一个实施例中,被乘数330是例如图2的表格200所示的迦罗华域。由比较器304将乘法器302的输出与缓冲器310的输出进行比较。由此,可以执行迦罗华域乘法,并且可以计算Q校验子。乘法器302还可以用于对以上针对多个磁盘故障的四种情况描述的方程执行各种乘法运算。可以通过将被乘数330设置为等于一,来允许数据通过乘法器。可以用选择器312在乘法器302的输出和比较器304的输出之间进行选择。在一个实施例中,选择器312是多路复用器(MUX)。
系统300还可以包括除法器314,其用于对以上针对多个磁盘故障的四种情况描述的方程执行除法运算。例如,在第四种情况中,用于再生Da的计算包括除法运算,其可以由除法器314执行。可以通过将除数340设置为等于1,来允许数据通过除法器314。当不需要执行除法运算时,可能希望进行这种设置。
如图3所示,系统300并行执行P和Q校验子的生成。系统300还可以执行其它所需要的乘法和除法运算。可以使用选择器316来选择所需要的系统输出。在一个实施例中,选择器316是多路复用器(MUX)。
图4示出根据本发明的一个实施例的用于生成奇偶校验码的方法,所述奇偶校验码用于协助一个或多个存储块中的数据恢复。在400处,基于对来自一个或多个存储块的数据的比较,计算第一奇偶校验码因子。在402处,将来自一个或多个存储块的所述数据与乘法因子相乘,以生成乘积。在404处,至少部分地基于所述乘积,计算第二奇偶校验码因子。在406处,在第一奇偶校验码因子和第二奇偶校验码因子之间进行选择。在一个实施例中,如上所述,第一奇偶校验码因子是P校验子,第二奇偶校验码因子是Q校验子。在一个实施例中,进一步将第二奇偶校验码因子除以除数。在一个实施例中,对第一奇偶校验码因子和第二奇偶校验码因子进行缓存。在一个实施例中,并行计算第一奇偶校验码因子和第二奇偶校验码因子。
虽然基于若干实施例对本发明进行了描述,但是本领域普通技术人员将会认识到本发明并不限于所描述的实施例,而是可以在所附权利要求的精神和范围内,通过进行修改和替换来实现本发明。因此,本说明书应被视为是示例性的而非限制性的。

Claims (22)

1.一种用于校验子生成和数据恢复的装置,包括:
第一比较器,用于基于来自一个或多个存储块的数据,生成第一奇偶校验码因子;
乘法器,用于将来自所述一个或多个存储块的所述数据乘以乘法因子,以生成乘积;
第二比较器,其耦接到所述乘法器,用于至少部分地基于所述乘积,生成第二奇偶校验码因子;以及
选择器,其耦接到所述第一比较器和所述第二比较器,用于在所述第一奇偶校验码因子和所述第二奇偶校验码因子之间进行选择,
其中,所述第一比较器生成所述第一奇偶校验码因子的操作和所述第二比较器生成所述第二奇偶校验码因子的操作是并行执行的。
2.如权利要求1所述的装置,还包括除法器,其耦接到所述第二比较器,用于对所述第二奇偶校验码因子执行除法运算。
3.如权利要求1所述的装置,还包括第一缓冲器,其耦接到所述第一比较器,用于存储所述第一奇偶校验码因子。
4.如权利要求1所述的装置,还包括第二缓冲器,其耦接到所述第二比较器,用于存储所述第二奇偶校验码因子。
5.如权利要求1所述的装置,其中,所述第一比较器是异或门。
6.如权利要求1所述的装置,其中,所述第二比较器是异或门。
7.如权利要求1所述的装置,其中,所述乘法器执行伽罗华域乘法。
8.如权利要求1所述的装置,其中,所述第一比较器基于来自所述一个或多个存储块的数据,生成RAID(独立磁盘冗余阵列)校验子以作为所述第一奇偶校验码因子。
9.如权利要求8所述的装置,其中,所述第二比较器使用所述乘积,生成RAID(独立磁盘冗余阵列)校验子以作为所述第二奇偶校验码因子。
10.如权利要求9所述的装置,其中,所述第一比较器生成RAIDP-校验子以作为所述第一奇偶校验码因子,并且所述第二比较器生成RAID Q-校验子以作为所述第二奇偶校验码因子。
11.一种用于校验子生成和数据恢复的方法,包括:
基于对来自一个或多个存储块的数据的比较,利用第一比较器计算第一奇偶校验码因子;
将来自所述一个或多个存储块的所述数据乘以乘法因子,以生成乘积;
至少部分地基于所述乘积,与所述第一奇偶校验码因子的计算相并行地计算第二奇偶校验码因子,其中利用被耦接为接收所述乘积的第二比较器计算所述第二奇偶校验码因子;以及
利用被耦接为接收所述第一奇偶校验码因子和所述第二奇偶校验码因子的选择器来选择性地输出所述第一奇偶校验码因子或所述第二奇偶校验码因子。
12.如权利要求11所述的方法,其中,计算第一奇偶校验码因子的步骤包括:
基于来自所述一个或多个存储块的数据,计算RAID(独立磁盘冗余阵列)校验子以作为所述第一奇偶校验码因子。
13.如权利要求11所述的方法,其中,计算第二奇偶校验码因子的步骤包括:
至少部分地基于所述乘积,计算RAID(独立磁盘冗余阵列)Q-校验子以作为所述第二奇偶校验码因子。
14.如权利要求13所述的方法,其中,至少部分地基于所述乘积计算RAID Q-校验子的步骤包括:
至少部分地基于来自所述一个或多个存储块的所述数据与伽罗华域被乘数的乘积来计算RAID Q-校验子。
15.如权利要求11所述的方法,还包括:
将所述第二奇偶校验码因子除以除数。
16.如权利要求11所述的方法,还包括:
将所述第一奇偶校验码因子存储到第一缓冲器中。
17.如权利要求11所述的方法,还包括:
将所述第二奇偶校验码因子存储到第二缓冲器中。
18.一种用于校验子生成和数据恢复的系统,包括:
一个或多个存储设备,用于存储数据;以及
奇偶校验码生成器,其耦接到所述一个或多个存储设备,用于生成奇偶校验码以进行数据恢复,所述奇偶校验码生成器包括:
第一比较器,用于基于所述一个或多个存储设备中的数据,生成第一奇偶校验码因子;
乘法器,用于将来自所述一个或多个存储设备的数据乘以乘法因子,以生成乘积;
第二比较器,其耦接到所述乘法器,用于至少部分地基于所述乘积,生成第二奇偶校验码因子;以及
选择器,其耦接到所述第一比较器和所述第二比较器,用于在所述第一奇偶校验码因子和所述第二奇偶校验码因子之间进行选择,
其中,所述第一比较器生成所述第一奇偶校验码因子的操作和所述第二比较器生成所述第二奇偶校验码因子的操作是并行执行的。
19.如权利要求18所述的系统,还包括除法器,其耦接到所述第二比较器,用于对所述第二奇偶校验码因子执行除法运算。
20.如权利要求18所述的系统,其中,所述乘法器执行伽罗华域乘法。
21.如权利要求18所述的系统,其中,所述第一比较器基于来自所述一个或多个存储设备的数据,生成RAID(独立磁盘冗余阵列)校验子以作为所述第一奇偶校验码因子。
22.如权利要求18所述的系统,其中,所述第二比较器至少部分地基于所述乘积,生成RAID(独立磁盘冗余阵列)校验子以作为所述第二奇偶校验码因子。
CN2005800440903A 2004-12-23 2005-12-21 用于校验子生成以及数据恢复的方法和系统 Expired - Fee Related CN101084486B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/021,708 US7343546B2 (en) 2004-12-23 2004-12-23 Method and system for syndrome generation and data recovery
US11/021,708 2004-12-23
PCT/US2005/046996 WO2006071837A2 (en) 2004-12-23 2005-12-21 Method and system for syndrome generation and data recovery

Publications (2)

Publication Number Publication Date
CN101084486A CN101084486A (zh) 2007-12-05
CN101084486B true CN101084486B (zh) 2010-12-29

Family

ID=36282817

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2005800440903A Expired - Fee Related CN101084486B (zh) 2004-12-23 2005-12-21 用于校验子生成以及数据恢复的方法和系统

Country Status (8)

Country Link
US (2) US7343546B2 (zh)
EP (1) EP1828899B1 (zh)
JP (1) JP4664988B2 (zh)
CN (1) CN101084486B (zh)
AT (1) ATE407395T1 (zh)
DE (1) DE602005009577D1 (zh)
TW (1) TWI322348B (zh)
WO (1) WO2006071837A2 (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7343546B2 (en) 2004-12-23 2008-03-11 Intel Corporation Method and system for syndrome generation and data recovery
KR100652399B1 (ko) * 2005-02-02 2006-12-01 삼성전자주식회사 하드디스크 드라이브의 디펙트 처리 방법, 이에 적합한하드디스크 드라이브 및 기록 매체
TWI285313B (en) * 2005-06-22 2007-08-11 Accusys Inc XOR circuit, RAID device capable of recover a plurality of failures and method thereof
US7607068B2 (en) * 2006-08-31 2009-10-20 Intel Corporation Apparatus and method for generating a Galois-field syndrome
US7738657B2 (en) 2006-08-31 2010-06-15 Intel Corporation System and method for multi-precision division
US8145941B2 (en) 2006-10-31 2012-03-27 Hewlett-Packard Development Company, L.P. Detection and correction of block-level data corruption in fault-tolerant data-storage systems
US7664915B2 (en) * 2006-12-19 2010-02-16 Intel Corporation High performance raid-6 system architecture with pattern matching
US7797612B2 (en) * 2006-12-29 2010-09-14 Intel Corporation Storage accelerator
JP4905161B2 (ja) * 2007-01-31 2012-03-28 富士通株式会社 Raid装置及びガロア体を用いたデータ復元装置
US8261124B2 (en) * 2007-12-21 2012-09-04 Spansion Llc System and method for optimized error correction in flash memory arrays
US8150031B2 (en) * 2008-12-19 2012-04-03 Intel Corporation Method and apparatus to perform redundant array of independent disks (RAID) operations
US8239625B2 (en) * 2010-01-24 2012-08-07 Freescale Semiconductor, Inc. Parity generator for redundant array of independent discs type memory
RU2448361C2 (ru) * 2010-07-01 2012-04-20 Андрей Рюрикович Федоров Способ восстановления записей в запоминающем устройстве, система для его осуществления и машиночитаемый носитель
US9037564B2 (en) 2011-04-29 2015-05-19 Stephen Lesavich Method and system for electronic content storage and retrieval with galois fields on cloud computing networks
US9137250B2 (en) 2011-04-29 2015-09-15 Stephen Lesavich Method and system for electronic content storage and retrieval using galois fields and information entropy on cloud computing networks
US9361479B2 (en) 2011-04-29 2016-06-07 Stephen Lesavich Method and system for electronic content storage and retrieval using Galois fields and geometric shapes on cloud computing networks
US9569771B2 (en) 2011-04-29 2017-02-14 Stephen Lesavich Method and system for storage and retrieval of blockchain blocks using galois fields
CN103034559B (zh) * 2012-12-18 2016-06-08 无锡众志和达数据计算股份有限公司 基于rdma架构设计的pq检验模块及检验方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5099484A (en) * 1989-06-09 1992-03-24 Digital Equipment Corporation Multiple bit error detection and correction system employing a modified Reed-Solomon code incorporating address parity and catastrophic failure detection
US5499253A (en) * 1994-01-05 1996-03-12 Digital Equipment Corporation System and method for calculating RAID 6 check codes
CN1118503A (zh) * 1994-05-05 1996-03-13 国际商业机器公司 带有空闲块奇偶校验高速缓存的第五级raid

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62253228A (ja) * 1986-04-25 1987-11-05 Ricoh Co Ltd パリテイあるいはシンドロ−ム生成回路
US5148432A (en) * 1988-11-14 1992-09-15 Array Technology Corporation Arrayed disk drive system and method
US5140592A (en) * 1990-03-02 1992-08-18 Sf2 Corporation Disk array system
US5226043A (en) * 1990-12-27 1993-07-06 Raytheon Company Apparatus and method for data error detection and correction and address error detection in a memory system
US5271012A (en) 1991-02-11 1993-12-14 International Business Machines Corporation Method and means for encoding and rebuilding data contents of up to two unavailable DASDs in an array of DASDs
US5579475A (en) 1991-02-11 1996-11-26 International Business Machines Corporation Method and means for encoding and rebuilding the data contents of up to two unavailable DASDS in a DASD array using simple non-recursive diagonal and row parity
US6041431A (en) * 1997-09-19 2000-03-21 Adapter, Inc. Method and apparatus for performing error correction code operations
JPH11168392A (ja) * 1997-12-04 1999-06-22 Toshiba Corp データ誤り訂正装置及びデータ誤り訂正方法
US6247157B1 (en) 1998-05-13 2001-06-12 Intel Corporation Method of encoding data signals for storage
US6567891B2 (en) * 2001-03-14 2003-05-20 Hewlett-Packard Development Company, L.P. Methods and arrangements for improved stripe-based processing
JP3954803B2 (ja) * 2001-03-22 2007-08-08 三洋電機株式会社 エラー訂正装置
US6993701B2 (en) * 2001-12-28 2006-01-31 Network Appliance, Inc. Row-diagonal parity technique for enabling efficient recovery from double failures in a storage array
US7698625B2 (en) * 2003-08-26 2010-04-13 Adaptec, Inc. System for improving parity generation and rebuild performance
JP4288486B2 (ja) * 2003-11-17 2009-07-01 日本電気株式会社 ディスクアレイ装置,raid用パリティデータ生成回路およびガロア体乗算回路
US7290199B2 (en) * 2004-11-19 2007-10-30 International Business Machines Corporation Method and system for improved buffer utilization for disk array parity updates
US7343546B2 (en) 2004-12-23 2008-03-11 Intel Corporation Method and system for syndrome generation and data recovery

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5099484A (en) * 1989-06-09 1992-03-24 Digital Equipment Corporation Multiple bit error detection and correction system employing a modified Reed-Solomon code incorporating address parity and catastrophic failure detection
US5499253A (en) * 1994-01-05 1996-03-12 Digital Equipment Corporation System and method for calculating RAID 6 check codes
CN1118503A (zh) * 1994-05-05 1996-03-13 国际商业机器公司 带有空闲块奇偶校验高速缓存的第五级raid

Also Published As

Publication number Publication date
EP1828899A2 (en) 2007-09-05
US7343546B2 (en) 2008-03-11
DE602005009577D1 (de) 2008-10-16
TW200634744A (en) 2006-10-01
WO2006071837A2 (en) 2006-07-06
ATE407395T1 (de) 2008-09-15
EP1828899B1 (en) 2008-09-03
US20080126907A1 (en) 2008-05-29
TWI322348B (en) 2010-03-21
WO2006071837A3 (en) 2006-12-28
CN101084486A (zh) 2007-12-05
JP4664988B2 (ja) 2011-04-06
JP2008525898A (ja) 2008-07-17
US8156406B2 (en) 2012-04-10
US20060156211A1 (en) 2006-07-13

Similar Documents

Publication Publication Date Title
CN101084486B (zh) 用于校验子生成以及数据恢复的方法和系统
CN101236517B (zh) Raid系统和使用伽罗瓦域的数据恢复装置
CN101625652B (zh) 多磁盘容错系统及生成校验块、恢复数据块的方法
CN101611376B (zh) 具有模式匹配的高性能raid-6系统体系结构
EP0503417A2 (en) Method and means for verification of write data
CN112860475B (zh) 基于rs纠删码的校验块恢复方法、装置、系统及介质
CN101604267B (zh) 独立磁盘冗余阵列系统
US7350126B2 (en) Method for constructing erasure correcting codes whose implementation requires only exclusive ORs
CN105353974B (zh) 一种适用于磁盘阵列及分布式存储系统的二容错编码方法
CN105808170A (zh) 一种能够以最小磁盘读写修复单磁盘错误的raid6编码方法
CN109358980A (zh) 一种对数据更新和单磁盘错误修复友好的raid6编码方法
CN102609221A (zh) 一种硬件raid5/6存储系统的架构及数据处理方法
CN104156276B (zh) 一种防两块磁盘损坏的raid方法
CN103809919A (zh) 高效容多错的快速恢复编码方法及其验证矩阵生成方法
CN104932836A (zh) 一种提高单写性能的三盘容错编码和解码方法
US9400715B1 (en) System and method for interconnecting storage elements
Wu et al. A High-Speed Parallel Decoding Algorithm for Erasure Codes in the Distributed Storage System
CN117149065A (zh) 一种FPGA实现的raid6方法
US20130086319A1 (en) Disk array device, disk array control method, and recording medium
CN116249969A (zh) 具有内置冗余的数据存储系统以及恢复和存储数据的方法
Song et al. An area-efficient architecture of reed-solomon codec for advanced raid systems
Na et al. TSHOVER: A novel coding scheme for tolerating triple disk failures in RAID/DRAID
Mousavicheshmehkaboodi A Delayed Parity Generation Code for Accelerating Data Write in Erasure Coded Storage Systems
CN116931821A (zh) 一种raid多校验精简方法
TW200602851A (en) System and method for a plurality of disks fault tolerance efficienctly

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20101229

Termination date: 20191221

CF01 Termination of patent right due to non-payment of annual fee