CN1975681A - 磁碟阵列中资料的乘法运算的方法及其控制器 - Google Patents
磁碟阵列中资料的乘法运算的方法及其控制器 Download PDFInfo
- Publication number
- CN1975681A CN1975681A CNA2006101033099A CN200610103309A CN1975681A CN 1975681 A CN1975681 A CN 1975681A CN A2006101033099 A CNA2006101033099 A CN A2006101033099A CN 200610103309 A CN200610103309 A CN 200610103309A CN 1975681 A CN1975681 A CN 1975681A
- Authority
- CN
- China
- Prior art keywords
- multiplying
- data
- centerdot
- unit
- raid
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 81
- 238000012545 processing Methods 0.000 title claims abstract description 49
- 238000004364 calculation method Methods 0.000 claims abstract description 17
- 230000007717 exclusion Effects 0.000 claims description 76
- 239000011159 matrix material Substances 0.000 claims description 52
- 238000003860 storage Methods 0.000 claims description 22
- 230000015654 memory Effects 0.000 claims description 19
- 230000003139 buffering effect Effects 0.000 claims description 6
- 238000013507 mapping Methods 0.000 claims description 4
- 238000006243 chemical reaction Methods 0.000 claims description 3
- 238000005520 cutting process Methods 0.000 claims description 2
- 238000005516 engineering process Methods 0.000 description 25
- 239000000047 product Substances 0.000 description 15
- 235000012431 wafers Nutrition 0.000 description 11
- 238000004422 calculation algorithm Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 7
- 230000008901 benefit Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 238000005070 sampling Methods 0.000 description 6
- 238000013461 design Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 3
- 230000002950 deficient Effects 0.000 description 3
- 238000009795 derivation Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 239000012467 final product Substances 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000007789 sealing Methods 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/52—Multiplying; Dividing
- G06F7/523—Multiplying only
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
- G06F7/72—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
- G06F7/724—Finite field arithmetic
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/18—Error detection or correction; Testing, e.g. of drop-outs
- G11B20/1833—Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/09—Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
- H03M13/158—Finite field arithmetic processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/10—Indexing scheme relating to G06F11/10
- G06F2211/1002—Indexing scheme relating to G06F11/1076
- G06F2211/1057—Parity-multiple bits-RAID6, i.e. RAID 6 implementations
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Physics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- General Engineering & Computer Science (AREA)
- Probability & Statistics with Applications (AREA)
- Computing Systems (AREA)
- Algebra (AREA)
- Quality & Reliability (AREA)
- Signal Processing (AREA)
- Error Detection And Correction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Detection And Correction Of Errors (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明是有关于一种磁碟阵列中资料的乘法运算的方法及其控制器,其是产生一场域(field)中所有数值所对应的乘法运算表(MapTable),选择一XOR运算单元的长度为任意适当的w位元(例如:32位元或64位元),而一个或复数个XOR运算单元组成一个乘法运算单元的资料区段;在线上运算时,对于该磁碟阵列中一磁碟的资料,针对乘法运算单元,并根据乘法运算表(Map Table),以XOR运算单元为单位,进行互斥或(XOR)运算,以求得乘法运算的乘积。运用本发明方法所建置的磁碟阵列***,不论计算同位资料或回复损毁的使用者资料,皆只需XOR运算,且一次可同时进行多组计算,因此可有效提升磁碟阵列***的效能。
Description
技术领域
本发明涉及一种磁碟阵列(RAID)中资料的乘法运算的方法及其控制器,特别是涉及一种可同时进行大量磁碟阵列中资料的乘法运算的方法及其控制器(Method And Controller For Processing Data MultiplicationIn RAID System)。
背景技术
冗余磁碟阵列(Redundant Array of Independent Disk,RAID)是一种磁碟子***,其目的在于增进效能、提供容错能力或是同时提供以上两者的优点。冗余磁碟阵列借由磁碟机平行储存(disk striping)技术提升存取效能,其将资料依位元组(bytes)或位元组群(groups of bytes)交错储存于多个磁碟机中,使得读、写输出入需求可以同时在多个磁碟机平行进行;另一方面,借由磁碟机映射储存(mirroring)技术或具备分布式同位元检测资料(parity,以下简称同位资料)的磁碟机平行储存(diskstriping)技术,提供容错能力。
容错能力的大小与RAID***储存同位资料(parity)的数目有关。以RAID5为例,其设计为除了使用者资料(user data)外再多储存一组同位资料(parity),通常称为“P值”,也有称为“互斥或同位资料”(XORParity),因为其是为所有对应的使用者资料经互斥或(XOR)运算的结果,其运算公式如下:
P=D0+D1+D2+...+Dn-1...............................(1)
其中,“+”代表互斥或(XOR)运算,P代表同位资料序列的总称,D0,D1,D2,...,Dn-1代表使用者资料序列的总称,其中n表示使用者资料碟的数目。因RAID5只储存一组同位资料,因此在同一时间内只能容许一个使用者资料碟发生错误(损毁或故障)。发生错误的使用者资料碟上的资料,是利用其对应的“P值”与其他正常的使用者资料碟上的对应资料,运用同样的互斥或(XOR)运算恢复而得。举例来说,若D1发生错误,则D1可利用下式计算得知:
D1=D0+D2+...+Dn-1+P
上式中的“+”亦代表XOR运算。
考虑到两个以上资料碟的容错需求,有些***设计为储存有多组同位资料(multi-parity)。此类RAID***多半运用“Reed-Solomon Codes”的方式建置,可容许任意两个以上的磁碟发生错误。RAID6即属此类***,它具有至少两组同位资料,可容许两个以上的磁碟同时发生错误。
以具有两组同位资料的RAID6***为例,一般习称其同位资料为P与Q。P值的计算方式与RAID5相同,Q值则利用下式计算而得:
Q=g0·D0+g1·D1+g2·D2+...+gn-1·Dn-1..........................(2)
若有两资料碟Dx、Dy损毁,经由适当推导,可得:
Dx=A·(P+Pxy)+B·(Q+Qxy).......................................(3)
Dy=(P+Pxy)+Dx..................................................(4)
其中A、B为仅与x,y有关的常数:
A=gy-x·(gy-x+1)-1.............................................(5)
B=g-x·(gy-x+1)-1..............................................(6)
且Pxy、Qxy为当Dx,Dy皆为0时的P与Q值,即:
Pxy+Dx+Dy=P....................................................(7)
Qxy+gx·Dx+gy·Dy=Q............................................(8)
(2)式至(8)式中的代数运算,除幂次方“y-x”为一般减法外,其余皆为Galois Field的代数运算。又g为此一Galois Field的产生元素(generator),通常选择g=2。
Galois Field的加法运算实际上为XOR运算,而乘法运算与其场域(field)GF(2a)有关,其定义、特性及运算法则可参阅以下的参考文献:(1)“The mathematics of RAID6”,H.Peter Anvin,December,2004;(2)“ATutorial on Reed-Solomon Coding for Fault-Tolerance in RAID-likeSystems”,James S.Plank,Software-Practice & Experience,27(9),pp995-1012,September,1997。上文中的(1)式至(8)式即出自于参考文献(1)。
因Galois Field为一封闭场域(closed field),且对任意数X,皆存在一数r,满足X=2r,故现有技术中处理Galois Field乘法运算的代表性作法为查表法,请参阅参考文献(2)。以GF(2a)为例,欲求任意两数X,Y的乘积,方法如下:
1.查对数表(log table)得出r、s,满足X=2r,Y=2s。故X·Y=2r+s=2t
2.若t≥2a-1,则t=t-(2a-1)
3.再查反对数表(inverse log table)得出2t的值
由(2)式及(3)式可以看出,不论计算Q值或回复毁损的Dx值皆需大量的Galois Field乘法运算,尤其是一常数与大量不同数值的乘法运算。以现有的查表方式而言,***必须以1位元组(byte)为单位,逐一计算,而每一Galois Field乘法运算需要3次查表,1次加(或减)法,1次测试及余数(modulo)运算。对照目前储存媒体动辄数十Giga Byte或数百GigaByte的容量,此种计算速度极缺乏效率,易成为***瓶颈。因此,如何改善及/或简化及/或加速磁碟阵列中资料的乘法运算,成为一个业界急需解决的课题。
由此可见,上述现有的磁碟阵列中资料的乘法运算的方法及其控制器在方法、产品结构及使用上,显然仍存在有不便与缺陷,而亟待加以进一步改进。为了解决磁碟阵列中资料的乘法运算的方法及其控制器存在的问题,相关厂商莫不费尽心思来谋求解决之道,但长久以来一直未见适用的设计被发展完成,而一般方法及产品又没有适切的方法及结构能够解决上述问题,此显然是相关业者急欲解决的问题。因此如何能创设一种新的磁碟阵列中资料的乘法运算的方法及其控制器,便成了当前业界极需改进的目标。
有鉴于上述现有的磁碟阵列中资料的乘法运算的方法及其控制器存在的缺陷,本发明人基于从事此类产品设计制造多年丰富的实务经验及专业知识,并配合学理的运用,积极加以研究创新,以期创设一种新的磁碟阵列中资料的乘法运算的方法及其控制器,能够改进一般现有的磁碟阵列中资料的乘法运算的方法及其控制器,使其更具有实用性。经过不断的研究、设计,并经反复试作及改进后,终于创设出确具实用价值的本发明。
发明内容
本发明的主要目的在于,克服现有的磁碟阵列中资料的乘法运算的方法及其控制器存在的缺陷,而提供一种新的磁碟阵列中资料的乘法运算的方法及其控制器,所要解决的技术问题是使其可同时进行大量资料的乘法运算,进而改善磁碟阵列***运算的效能,从而更加适于实用。
本发明的目的及解决其技术问题是采用以下技术方案来实现的。依据本发明提出的一种磁碟阵列中资料的乘法运算的方法,其包括以下步骤:产生一场域中至少一数值所对应的至少一乘法运算表;选择一互斥或运算单元的长度,复数个该互斥或运算单元形成一乘法运算单元;以及针对该乘法运算单元,并根据该至少一乘法运算表中的一乘法运算表,以该互斥或运算单元为单位,对一资料来源提供的资料进行至少一互斥或运算,并进行复数个该互斥或运算以求得该乘法运算的结果。
本发明的目的及解决其技术问题还可采用以下技术措施进一步实现。
前述的磁碟阵列中资料的乘法运算的方法及其控制器,其中所述的复数个该乘法运算的结果再经至少一互斥或运算后,可得一同位资料或一使用者资料。
前述的磁碟阵列中资料的乘法运算的方法及其控制器,其中所述的同位资料是依照下列公式计算而得:
Q=g0·D0+g1·D1+g2·D2+...+gn-1·Dn-1
其中,g为加罗瓦场的产生元素,令g=2;D0,D2,...,Dn-1分别代表n个该复数个使用者资料碟的使用者资料序列的总称;″+″代表一互斥或运算;″·″代表加罗瓦场乘法运算。
前述的磁碟阵列中资料的乘法运算的方法及其控制器,其中所述的使用者资料是依照下列公式计算而得:
Dx=A·(P+Pxy)+B·(Q+Qxy)
Dy=(P+Pxy)+Dx
其中,x、y为发生错误的两资料碟序号;Dx、Dy为两资料碟x、y所对应的使用者资料;A、B为仅与x,y有关的常数:
A=gy-x·(gy-x+1)-1
B=g-x·(gy-x+1)-1
Pxy、Qxy为当Dx,Dy皆为0时的P值与Q值,即:
Pxy+Dx+Dy=P
Qxy+gx·Dx+gy·Dy=Q
以上“+”皆代表一互斥或运算;“·”代表加罗瓦场乘法运算。
前述的磁碟阵列中资料的乘法运算的方法及其控制器,其中所述的场域是为一加罗瓦场场域。
前述的磁碟阵列中资料的乘法运算的方法及其控制器,其中所述的乘法运算表是在该加罗瓦场场域、依据一演算规则而产生。
前述的磁碟阵列中资料的乘法运算的方法及其控制器,其中所述的演算规则是根据一加罗瓦场代数规则而产生。
前述的磁碟阵列中资料的乘法运算的方法及其控制器,其中所述的当该加罗瓦场场域为GF(28),该演算规则为:
m′0,j=m7,j ,0≤j≤7
m′1,j=m0,j ,0≤j≤7
m′2,j=m1,j+m7,j ,0≤j≤7
m′3,j=m2,j+m7,j ,0≤j≤7
m′4,j=m3,j+m7,j ,0≤j≤7
m′5,j=m4,j ,0≤j≤7
m′6,j=m5,j ,0≤j≤7
m′7,j=m6,j ,0≤j≤7
其中,m0,j~m7,j以及m′0,j~m′7,j,0≤j≤7,分别为矩阵MK与MK′的元素,MK为一对应于K的已知矩阵,MK′为K′的对应矩阵,K′=2·K,K≠0。
前述的磁碟阵列中资料的乘法运算的方法及其控制器,其中所述的当K=0时,该矩阵M0为一零矩阵;当K=20=1时,该矩阵M1为一单位矩阵。
前述的磁碟阵列中资料的乘法运算的方法及其控制器,其中所述的至少一互斥或运算,是根据以下公式:
亦即,
其中,MK为一矩阵,代表该至少一数值中的一数值K所对应的该乘法运算表;mi,j表示为该矩阵MK中的元素,0≤i,j≤a-1,且:
mi,j·xj=xj,若mi,j=1
mi,j·xj=0,若mi,j=0
其中,x0、x1、x2、...、xa-1分别为长度是该互斥或运算单元的资料,X代表该乘法运算单元的资料;Y表示由该数值K乘以X计算所得的结果。
前述的磁碟阵列中资料的乘法运算的方法及其控制器,其中所述的根据该复数个乘法运算表所做的互斥或运算,是为选择该矩阵M中同一行元素为1所对应的该互斥或运算单元的资料做互斥或运算。
前述的磁碟阵列中资料的乘法运算的方法及其控制器,其中所述的该互斥或运算单元的长度是依据该磁碟阵列的一中央处理器或一专用互斥或运算单元的处理单位而定。
前述的磁碟阵列中资料的乘法运算的方法及其控制器,其中所述的该互斥或运算单元的长度是为32位元或64位元;该乘法运算单元的长度是为32位元组或64位元组。
前述的磁碟阵列中资料的乘法运算的方法及其控制器,其中所述的该互斥或运算单元的长度大于1位元。
前述的磁碟阵列中资料的乘法运算的方法及其控制器,其中所述的资料来源是为一实体储存装置阵列或一电脑主机。
本发明的目的及解决其技术问题还采用以下技术方案来实现。依据本发明提出的一种磁碟阵列控制器,其可应用于处理资料的乘法运算,是包括:一记忆体,暂存一资料来源所提供的目标资料;以及一中央处理电路,产生一场域中至少一数值所对应的至少一乘法运算表,针对一乘法运算单元,并根据该至少一乘法运算表中的一乘法运算表,以一互斥或运算单元为单位,对该记忆体中的该目标资料进行至少一互斥或运算,并进行复数个该互斥或运算以求得该乘法运算的结果。
本发明的目的及解决其技术问题还可采用以下技术措施进一步实现。
前述的磁碟阵列中资料的乘法运算的方法及其控制器,其中所述的中央处理电路进行该乘法运算前,已知该互斥或运算单元的长度,复数个该互斥或运算单元形成该乘法运算单元。
前述的磁碟阵列中资料的乘法运算的方法及其控制器,其中所述的中央处理电路更包括一中央处理器晶片组,该中央处理器晶片组更包括一同位引擎、一中央处理器,一唯读记忆体及一非挥发性随机存取记忆体。
前述的磁碟阵列中资料的乘法运算的方法及其控制器,其中所述的资料来源是为一实体储存装置阵列或一电脑主机,以提供该目标资料做乘法运算。
前述的磁碟阵列中资料的乘法运算的方法及其控制器,其更包括一装置端输出入装置连结控制器,连接于该实体储存装置阵列与该中央处理电路之间,用来作为一缓冲介面,以接收由该中央处理电路传入的一输出入请求及相关资料,并将其映射及/或传送至该实体储存装置阵列。
前述的磁碟阵列中资料的乘法运算的方法及其控制器,其更包括一主机端输出入装置连结控制器,连接于该主机与该中央处理电路之间,用来作为一缓冲介面,接收由该主机传来的一输出入请求和相关资料,并且将其转换及/或映射至该中央处理电路。
前述的磁碟阵列中资料的乘法运算的方法及其控制器,其中所述的场域是为一加罗瓦场场域,且该乘法运算表是在该加罗瓦场场域、依据一演算规则而产生。
前述的磁碟阵列中资料的乘法运算的方法及其控制器,其中所述的当该加罗瓦场场域为GF(28),该演算规则为:
m′0,j=m7,j ,0≤j≤7
m′1,j=m0,j ,0≤j≤7
m′2,j=m1,j+m7,j ,0≤j≤7
m′3,j=m2,j+m7,j ,0≤j≤7
m′4,j=m3,j+m7,j ,0≤j≤7
m′5,j=m4,j ,0≤j≤7
m′6,j=m5,j ,0≤j≤7
m′7,j=m6,j ,0≤j≤7
其中,m0,j~m7,j以及m′0,j~m′7,j,0≤j≤7,分别为矩阵MK与MK′的元素,MK为一对应于K的已知矩阵,MK′为K′的对应矩阵,K′=2·K,K≠0。
前述的磁碟阵列中资料的乘法运算的方法及其控制器,其中所述的当K=0时,该矩阵M0为一零矩阵;当K=20=1时,该矩阵M1为一单位矩阵。
前述的磁碟阵列中资料的乘法运算的方法及其控制器,其中所述的至少一互斥或运算,是根据以下公式:
亦即,
其中,MK为一矩阵,代表该至少一数值中的一数值K所对应的该乘法运算表;mi,j表示为该矩阵MK中的元素,0≤i,j≤a-1,且:
mi,j·xj=xj,若mi,j=1
mi,j·xj=0,若mi,j=0
其中,x0、x1、x2、...、xa-1分别为长度是该互斥或运算单元的资料,X代表该乘法运算单元的资料;Y表示由该数值K乘以X计算所得的结果。
前述的磁碟阵列中资料的乘法运算的方法及其控制器,其中所述的互斥或运算单元的长度是依据该磁碟阵列的一中央处理器或一专用互斥或运算单元的处理单位而定。
前述的磁碟阵列中资料的乘法运算的方法及其控制器,其中所述的互斥或运算单元的长度是为32位元或64位元;该乘法运算单元的长度是为32位元组或64位元组。
前述的磁碟阵列中资料的乘法运算的方法及其控制器,其中所述的互斥或运算单元的长度大于1位元。
本发明的目的及解决其技术问题另外还采用以下技术方案来实现。依据本发明提出的一种磁碟阵列中资料的乘法运算的方法,其用以计算一数K与一资料序列X的乘法运算,是包括:产生该数K所对应的一乘法运算表;选择一互斥或运算单元的长度,复数个该互斥或运算单元形成一乘法运算单元;分割该资料序列X为至少一该乘法运算单元;针对该乘法运算单元,及该数K所对应的该乘法运算表,根据该乘法运算表的规则,以该互斥或运算单元为单位,进行至少一互斥或运算;以及对所有组成该资料序列X的该乘法运算单元进行上一步骤的乘法运算,当所有该乘法运算皆完成时,即为该数K与该资料序列X的乘法运算结果。
借由上述技术方案,本发明磁碟阵列中资料的乘法运算的方法及其控制器至少具有下列优点:运用本发明方法所建置的磁碟阵列***,不论计算同位资料或回复损毁的使用者资料,皆只需XOR运算,且一次可同时进行多组计算,因此可有效提升磁碟阵列***的效能。
综上所述,本发明新颖的磁碟阵列中资料的乘法运算的方法及其控制器,可同时进行大量资料的乘法运算,进而改善磁碟阵列***运算的效能。本发明具有上述诸多优点及实用价值,其不论在方法、产品结构或功能上皆有较大的改进,在技术上有显著的进步,并产生了好用及实用的效果,且较现有的磁碟阵列中资料的乘法运算的方法及其控制器具有增进的功效,从而更加适于实用,诚为一新颖、进步、实用的新设计。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其他目的、特征和优点能够更明显易懂,以下特举较佳实施例,并配合附图,详细说明如下。
附图说明
图1是本发明技术的主流程图。
图2是本发明中产生乘法运算表(Map Table)的流程图。
图3是依据本发明精神做资料采样的示意图。
图4是依据现有技术做资料采样的示意图。
图5是应用本发明方法的磁碟子***的一实施例示意图。
10 电脑主机(Host)
100 储存虚拟化控制器(SVC)
120 主机端输出入装置连结控制器
140 中央处理电路
142 中央处理器(CPU)
144 CPU晶片组
146 唯读记忆体(ROM)
148 非挥发性随机存取记忆体(NVRAM)
160 同位引擎
180 记忆体
500 装置端输出入装置连结控制器
550 LCD模组
560 箱体管理服务电路
600 实体储存装置阵列(PSD阵列)
具体实施方式
为更进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明提出的磁碟阵列中资料的乘法运算的方法及其控制器其具体实施方式、方法、步骤、结构、特征及其功效,详细说明如后。
本发明的技术重点在于,适当定义磁碟阵列中资料的运算规则,以利于磁碟阵列中资料的运算。由于目前实务上,磁碟阵列中资料的运算规则多利用加罗瓦场(Galois Field)的代数规则为之,故本发明以下的实施例亦是以加罗瓦场(Galois Field)的代数规则为之。本发明的一实施例的技术是建立在加罗瓦场(Galois Field)的场域GF(2a)与其相关代数规则之上,由于目前实务上以a=8为较佳选择,因此以下有关本发明实施例的说明大多假设其Galois Field场域为GF(28),即所涵盖的数为0至255。此因28恰为电脑记忆体的基本单位1位元组(byte)的量,且据此所建置出来的RAID***,最多可容纳255个使用者资料碟,已足以应付一般RAID***之用。虽然本发明的说明皆以GF(28)为前题,然不代表本发明只能应用在此假设下。在其他实施例中,本发明的技术亦可能应用在不同的GaloisField场域。又,虽然本发明的实施例是以在Galois Field场域中的运算为例,但本发明亦可应用于其他场域或数系中的运算,只要能在该场域或数系中找到适合的运算规则即可。
此外,本发明以下的举例大多以具有两组同位资料的RAID6***为例,但不代表本发明只能应用在此假设下,其他具有两组以上同位资料的RAID6***,亦可能利用本发明技术。在本发明中引用到的现有计算公式罗列如下:
P=D0+D1+D2+...+Dn-1........................................(1)
Q=g0·D0+g1·D1+g2·D2+...+gn-1·Dn-1......................(2)
Dx=A·(P+Pxy)+B·(Q+Qxy)...................................(3)
Dy=(P+Pxy)+Dx..............................................(4)
A=gy-x·(gy-x+1)-1.........................................(5)
B=g-x·(gy-x+1)-1..........................................(6)
其中,P、Q为RAID6***中的两个同位资料;x、y为发生错误的两资料碟序号,Dx、Dy为两资料碟x、y所对应的使用者资料;A、B为仅与x、y有关的常数; Pxy、Qxy为当Dx、Dy皆为0时的P值与Q值,即:
Pxy+Dx+Dy=P................................................(7)
Qxy+gx·Dx+gy·Dy=Q........................................(8)
(1)式至(8)式中的代数运算,除幂次方“y-x”为一般减法外,其余皆为Galois Field的代数运算,又g为加罗瓦场(Galois Field)的产生元素(generator),通常选择g=2。
■ 乘法运算表的定义
乘法运算表(Map Table)为本发明的重要关键,本发明将其定义如下:
设Y、X、K皆为GF(2a)中的数,即Y、X、K皆由a个位元(bit)组成。若yi,xi分别表示Y,X的第i个位元,则Y,X可以向量(vector)表示为:
令Y=K·X,即Y为K与任意数X的Galois Field乘法运算结果,K为已知常数,则K的乘法运算表(Map Table)定义为一a×a的矩阵MK,其元素mi,j(0<=i,j<=a-1)的值为0或1,且满足下式:
亦即,
0≤i≤a-1。.................................(10)
其中,
mi,j·xj=xj,若mi,j=1
mi,j·xj=0,若mi,j=0
运算中的加法定义为互斥或(XOR)运算。因矩阵MK的元素非0即1,故亦可将上述yi计算过程视为:选择矩阵MK中同一行(row)的元素mi,j为1所对应的资料单元xj做互斥或(XOR)运算。
■ 乘法运算表的产生
乘法运算表(Map Table)的产生方法与Galois Field的代数法则息息相关。以GF(28)为例,若任意数X与2的乘积为X′,则X′可由下式得到(“+”表互斥或(XOR)运算):
假设K的乘法运算表(Map Table)为已知的矩阵MK,K′=2·K的Map Table为矩阵MK′,由上式出发,可推导得出,由矩阵MK产生MK′的演算规则A,表示如表1所示:
表1m′0,j=m7,j ,0<=j<=7m′1,j=m0,j ,0<=j<=7m′2,j=m1,j+m7,j ,0<=j<=7m′3,j=m2,j+m7,j ,0<=j<=7m′4,j=m3,j+m7,j ,0<=j<=7m′5,j=m4,j ,0<=j<=7m′6,j=m5,j ,0<=j<=7m′7,j=m6,j ,0<=j<=7 |
Galois Field的代数特性之一是:若从K=1开始,依次将K值乘以2,所得的新K值在涵盖Galois Field场域的所有数目前,不会重复。以GF(28)为例,若从K=1开始,纪录K值,并依次将K值乘以2,经过255次纪录后,所得的K值将涵盖所有GF(28)之数(0为例外)。
依据上述Galois Field代数特性与演算规则A,便能产生所有乘法运算表(Map Table),亦即矩阵MK。请参考第1图,依据本发明的一实施例,产生乘法运算表(步骤200)为本发明的第一关键部分,以下将先叙述其实施内容。
请参阅图2所示,开始产生Map Table时(步骤201),需先依照选定的Galois Field场域GF(2a)及其代数法则,得出由矩阵MK产生矩阵MK′的演算规则A(步骤202),其中MK表示某一常数K所对应的Map Table,MK′表示2·K所对应的Map Table。当K=0时,定义其Map Table为零矩阵(步骤203)。当K=1时,定义其Map Table为单位矩阵(步骤204)。所产生的MapTable可储存于***的记忆体中,此时须将已产生Map Table的K值纪录为“计算完成”(步骤205)。接着由K=1起始,依次将K值乘以2(步骤206),然后检查K值是否已被纪录为“计算完成”(步骤207)。若是,则结束此一流程(步骤209);若否,则根据演算规则A,产生新K值的Map Table矩阵MK(步骤208)。然后回到步骤205,纪录K为“计算完成”,继续产生下一个新K值(步骤206),如此一直重复步骤205~208,直到出现重复的K值后结束此一流程(步骤209)。
以下列出数个GF(28)中的Map Table作为参考:
K=0 K=20=1
K=227=12
K=255=160
■ 乘法运算表的运用
乘法运算表(Map Table)运用于Galois Field的乘法,其优点是可免去移位或查对数表/反对数表的运算,仅需要互斥或(XOR)运算。
以GF(28)为例,若欲求常数20与任意数X的乘积Y,即Y=20·X。且已知20所对应的乘法运算表(矩阵M20)如下:
则依据定义可得:
例如X=83,则Y=8,如下所示:
若以现有的查对数表/反对数表的技术算Y值,则:
Y=20·83=2206·252=2206+52=2258=2258-255=23=8
与本发明技术的计算结果相同。
■ 演算法说明
本发明所提出的演算法,可允许大量Galois Field乘法运算同时进行,尤其是一常数与大量不同数值的乘法运算,进而加速磁碟阵列(RAID)***运算的速度。
请参阅图1所示,依照本发明的一实施例,本发明技术包括三步骤:第一、选定Galois Field的场域GF(2a),并根据Galois Field的代数原理,产生GF(2a)中所有数值所对应的乘法运算表,将之储存在记忆体中(步骤200);第二、将互斥或(XOR)运算单元扩大为适当的w位元,而乘法运算单元则因此扩大为w·a位元(步骤300);第三、***线上计算Galois Field乘法时,依据所储存的乘法运算表及其运算规则,在以乘法运算单元为单位的资料区段中以w位元为XOR运算单位进行互斥或(XOR)运算(步骤400)。其中,第一步骤中的乘法运算表亦可在资料运算过程中临时产生,并不限于一定要在***开机后即全部产生。***开机后产生全部的乘法运算表,较方便于后续的计算作业;但若需产生的乘法运算表太多,而不适于一次产生并储存,则运算过程中即时产生是一可行的实施例。
如何产生乘法运算表的部分(步骤200),已在前文中叙述。
至于扩大XOR运算单元为w位元的部分(步骤300),说明如下。
回顾乘法运算表的定义,即(9)式,其中yi、xi分别表示Y、X的第i个位元,而Y、X皆为GF(2a)中之数。亦即,利用乘法运算表做现有运算时,XOR运算单元为1位元(bit),乘法运算单元为一GF(2a)中之数。本发明技术在此将XOR运算单元扩大为w位元,乘法运算单元则因此扩大为w·a位元。以GF(28)为例,若设定w=32,则运用本发明技术时,XOR运算单元为32位元,乘法运算单元为32·8=256位元=32位元组(byte),即32个GF(28)数值的集合。
选择XOR运算单元的长度w时,***硬体环境为主要考虑因素之一。例如CPU或专用XOR运算单元的运算单位,或资料汇流排(data bus)的宽度。若CPU或专用XOR运算单元的运算单位为32位元,则w=32为一合适的选择;若CPU或专用XOR运算单元的运算单位为64位元,则可设定w=64。当然,w的选择并不限于一定要与CPU或专用XOR运算单元的运算单位相同,在本发明的其他实施例中,亦可视需要选择不一样的w值。
另一影响设定w值的考虑因素为,磁碟的基本储存单位(sector)最好是乘法运算单元的整倍数。以GF(28)为例,若设定w=20,则乘法运算单元为20·8=160位元=20位元组,而磁碟的基本储存单位通常为512位元组,因512不为20的整倍数,故在进行Galois Field乘法运算时,将遇到乘法运算单元不完整的状况,而需额外处理。
设定w值之后,***便可依据乘法运算表进行线上Galois Field乘法运算(步骤400),此乘法运算可能是为计算同位资料或已遗失的使用者资料。其运算规则仍依据(9)式,惟此时XOR运算单元扩大为适当的w位元,而乘法运算单元扩大为w·a位元,亦即yi、xi皆为w位元,而Y、X皆为w·a位元。
以下举一实例说明本发明技术。在GF(28)中欲计算Y=20·X的乘积,X为一32位元组的资料区段,以16进制表示如下:
B0 B4 B8 B12
X=|25 2a 1b 33|52 6a 11 90|80 46 7c ab|6e 21 5b 44|
B16 B20 B24 B28
|a5 42 78 03|77 25 19 64|01 92 47 86|22 55 9a 76|
其中,X的第0位元组以B0表示、第1位元组以B1表示、第2位元组以B2表示,以此类推直到B31。
运用本发明揭露的技术,在RAID***启动时,会计算并储存所有乘法运算表,故20的乘法运算表为已知。假设***CPU为32位元,故设定w=32。此时将Y、X视为由8个单元所组成的资料序列,如下:
Y=y0 y1 y2 y3 y4 y5 y6 y7
X=x0 x1 x2 x3 x4 x5 x6 x7
yi、xi代表32位元(4位元组)组成的一个运算单元,0≤i≤7。
x0 x1 x2 x3
设X=|25 2a 1b 33|52 6a 11 90|80 46 7c ab|6e 21 5b 44|
x4 x5 x6 x7
|a5 42 78 03|77 25 19 64|01 92 47 86|22 55 9a 76|
已知常数20的乘法运算表如(11)式,故依据(9)及(12)式可得(以16进制表示):
y0=x4+x6=(a5 42 78 03)+(01 92 47 86)=(a4 d0 3f 85)
y1=x5+x7=(77 25 19 64)+(22 55 9a 76)=(55 70 83 12)
y2=x0+x4=(25 2a 1b 33)+(a5 42 78 03)=(80 68 63 30)
y3=x1+x4+x5+x6=(52 6a 11 90)+(a5 42 78 03)+(77 25 1964)+(01 92 47 86)=(81 9f 37 71)
y4=x0+x2+x4+x5+x7=(25 2a 1b 33)+(80 46 7c ab)+(a542 78 03)+(77 25 19 64)+(01 92 47 86)=(55 5e 9c 89)
y5=x1+x3+x5+x6=(52 6a 11 90)+(6e 21 5b 44)+(77 25 1964)+(01 92 47 86)=(4a fc 14 36)
y6=x2+x4+x6+x7=(80 46 7c ab)+(a5 42 78 03)+(01 92 4786)+(22 55 9a 76)=(06 c3 d9 58)
y7=x3+x5+x7=(6e 21 5b 44)+(77 25 19 64)+(22 55 9a 76)=(3b 51 d8 56)
故Y=|a4 d0 3f 85|55 70 83 12|80 68 63 30|81 9f 37 71|
|55 5e 9c 89|4a fc 14 36|06 c3 d9 58|3b 51 d8 56|
上例为X长度等于32位元组(byte)的情形,若X长度大于32位元组,只需将X分割,每32位元组为一乘法运算单元,重复上述运算,即可求得最后的乘积Y。
■ 演算法特点
以本发明所揭露的演算法运用在RAID***,所得出的同位资料(Parity)与现有技术计算所得的结果不同,但其运用方式与效果完全一致。
举例来说,假设D0、D1、D2,为三个储存使用者资料的磁碟,其内容各为32位元组的资料序列,如下(以16进制表示):
B0 B4 B8 B12
D0=|2a 16 10 36|50 14 18 66|5c 01 06 12|35 7e 46 0a|
B16 B20 B24 B28
|1a 39 6f 17|59 75 48 5d|2a 07 57 39|0f 30 21 30|
B0 B4 B8 B12
D1=|19 38 25 26|0c 49 57 51|6a 35 27 65|23 09 62 28|
B16 B20 B24 B28
|58 7f 5d 7e|12 15 5d 7a|3d 48 4c 6b|5b 40 74 4c|
B0 B4 B8 B12
D2=|7c 1c 5d 22|3d 61 7d 3c|75 2b 3e 70|14 4e 42 18|
B16 B20 B24 B28
|6d 0d 6e 05|31 55 78 47|3b 72 67 70|1f 0b 14 3e|
其中B0表示第0位元组,B1表示第1位元组,以此类推直到B31。以此三个使用者资料磁碟所构成的RAID6,须要额外二个同位资料碟储存同位资料P及Q。根据(1)式与(2)式,其产生公式如下:
P=D0+D1+D2
Q=20·D0+21·D1+22·D2
以现有技术求解,在GF(28)下,P及Q的值如下:
B0 B4 B8 B12
P=|4f 32 68 32|61 3c 32 0b|43 1f 1f 07|02 39 66 3a|
B16 B20 B24 B28
|2f 4b 5c 6c|7a 35 6d 60|2c 3d 7c 22|4b 7b 41 42|
B0 B4 B8 B12
Q=|f5 16 33 f2|bc 1f 5f 34|41 c7 b0 05|23 49 97 3a|
B16 B20 B24 B28
|03 f3 70 ff|b9 16 0f a8|bc 42 4e 32|c5 9c 99 50|
以本发明技术求解,P值不变,Q值如下(假设w=32):
B0 B4 B8 B12
Q=|4a 24 03 0a|56 27 29 7e|4c 66 1f 5d|1d 13 1b 51|
B16 B20 B24 B28
|33 22 34 4d|0a 4f 43 05|55 1f 64 46|03 2d 15 1c|
今若D0及D2的资料损毁,可借由D1、P及Q回复。依据(3)、(4)、(5)、(6)、(7)、及(8)式,推导得出:
x=0,y=2,A=166,B=167;
D0=166·P+167·Q+245·D1
D2=P+D1+D0..................................................(13)
1.以现有技术,每个位元组逐一计算的方式,求解:
166·P=|fe 9a d2 9a|2d 30 9a ae|05 be be 55|51 34 78 c3|
|75 5c bb 70|31 cf d6 8b|82 96 c2 28|5c 97 54 a3|
167·Q=|31 57 0f 63|75 a1 13 5d|15 99 82 01|ad 44 89 f9|
|f4 c4 49 33|74 57 03 71|75 e1 16 a8|ca 2c 2d 10|
245·D1=|e5 db cd cf|08 85 91 95|4c 26 3a 46|c9 0e b7 30|
|9b a1 9d 54|1c ed 9d a7|dd 70 83 b9|99 8b 58 83|
故,
D0=|2a 16 10 36|50 14 18 66|5c 01 06 12|35 7e 46 0a|
|1a 39 6f 17|59 75 48 5d|2a 07 57 39|0f 30 21 30|
将D0代入(13)式,即可求得D2。
2.以本发明技术求解:
166·P=|52 4b 78 13|0f 5b 57 7b|4f 32 68 32|33 77 4a 18|
|51 3d 58 5d|3e 15 7b 59|7e 76 04 31|44 20 16 39|
167·Q=|08 72 67 3c|36 58 65 22|06 42 1c 57|09 62 56 19|
|17 49 00 70|63 52 59 40|42 56 64 36|60 7f 4c 5c|
245·D1=|70 2f 0f 19|69 17 2a 3f|15 71 72 77|0f 6b 5a 0b|
|5c 4d 37 3a|04 32 6a 44|16 27 37 3e|2b 6f 7b 55|
故,
D0=|2a 16 10 36|50 14 18 66|5c 01 06 12|35 7e 46 0a|
|1a 39 6f 17|59 75 48 5d|2a 07 57 39|0f 30 21 30|
同样将D0代入(13)式,可求得D2。
上例显示利用本发明计算所得的Q值,虽与现有技术计算所得的Q值不同;但保护与回复使用者资料的功能,则毫无二致。
■ 演算法的正确性及数学上的意涵
以GF(28)为例,假设Y、X皆由8个XOR运算单元所组成,每个XOR运算单元长度为w位元,w为适当的数,如前例的32。则以向量表示:
yi、xi皆为w位元的数,0≤i≤7。
令Y=K·X;K为常数,其Map Table为矩阵MK,则:
即,
因yi、xi皆为w位元,若以yi,j、xi,j分别表示yi与xi中第j位元,0≤i≤7,0≤j≤w-1,上式可拆解为:
分析(14)至(21)式,可发现:
亦即,(y0,0 y1,0...y7,0)与(x0,0 x1,0...x7,0)满足(9)式乘法运算表的定义,故前者即为K与后者的Galois Field乘积。同理,对所有j,0≤j≤w-1,(y0,j y1,j...y7,j)所构成的数,为K与(x0,j x1,j...x7,j)所构成的数的乘积。
上述分析提供本发明技术一数学上的意涵,说明如下:请参阅图3所示,以GF(28)为例,以本发明技术计算得出的Galois Field乘积,“等同于”以下述步骤所得的结果:
1.读取长度为(w·8)位元的资料区段,w为一适当值,如前所述。
2.在资料区段中,由位元i启始,每隔w位元取一位元,直到构成一GF(28)的数xi,0≤i≤7。
3.以现有技术,求得yi=K·xi,0≤i≤7。
4.将yi置回存放最终乘积的记忆体,各个位元的位置须对应于原xi的位置,0≤i≤7。
从上述”等效做法”的观点审视,本发明技术仍遵循Galois Field代数原理,惟在资料取样方式与现有技术有别。亦即,可视本发明技术“等效于”在资料区段中每隔w位元取一位元,直到构成一GF(2a)之数。
举例来说,请参阅图3所示,若一个XOR运算单元为w位元的资料长度,且8个XOR运算单元组成一乘法运算单元,本发明的一实施例可视为“等效于”以下步骤的乘法运算结果:Step1,取每个XOR运算单元的第一位元形成一个8位元的数(b0b1b2b3b4b5b6b7),将K乘以(b0b1b2b3b4b5b6b7),得到(b0’b1’b2’b3’b4’b5’b6’b7’),然后将(b0’b1’b2’b3’b4’b5’b6’b7’)中的每一位元放回原(b0b1b2b3b4b5b6b7)对应之处;Step2,以同样的K对每个XOR运算单元的第二个位元所组成的数(c0c1c2c3c4c5c6c7)运算,得到(c0’c1’c2’c3’c4’c5’c6’c7’)并将之分别置回原(c0c1c2c3c4c5c6c7)对应之处;以下以此类推,直到w·8位元皆计算完毕。
反观现有技术,请参阅图4所示,则是顺序取样,须逐次计算每个位元组与K的乘积,因此难以扩大计算的资料量而加快运算速度。
从上述等效观点来看,本发明技术此种有别于现有技术的取样方式,并不影响(2)式至(8)式的正确性,故保护与回复资料的功能不变。
上述”等效做法”仅为说明本发明技术之用,实务上,本发明技术可同时进行多组Galois Field乘积的计算,进而加速RAID***运算速度,而此优势亦是源自“等效做法”中的特殊资料取样方式。
■ 应用本演算法的***架构
本发明方法,在一实施例,是应用于冗余磁碟阵列(Redundant Arrayof Independent Disk,以下简称RAID)子***中。请参阅图5所示,是为应用本发明方法的磁碟子***的一实施例示意图。对于此由多个磁碟机所组成的实体储存装置阵列(Physical Storage Device Array,以下简称PSD阵列)600,电脑主机(Host)10在存取此PSD阵列600时,仅视为一个单一逻辑磁碟机。储存虚拟化控制器(storage virtualization controller,以下简称SVC)100的主要目的是将磁碟机的各区段的组合映射(map)形成此主机***可见的逻辑磁碟机。由该主机***发出的输出入(IO)请求于控制器100接收之后会先被剖析并解译,且相关的操作及资料会被编译成磁碟机的输出入请求。
此实施例中,SVC100包括有一主机端输出入装置连结控制器120、一中央处理电路(CPC、central processing circuit)140、一记忆体180以及一装置端输出入装置连结控制器500。此处虽以分开的功能方块描述,但在实际应用时,部份甚至全部的功能方块(functional block)皆可整合在一单一晶片上。
主机端输出入装置连结控制器120连接至主机10及中央处理电路140,用来作为储存虚拟化控制器100及主机10之间的介面及缓冲,其可接收由主机10传来的输出入请求和相关资料,并且将其转换及/或映射至中央处理电路140。
记忆体180是连接于中央处理电路140,其作为一缓冲器,用来缓冲传送于主机10及PSD阵列600之间通过中央处理电路140的资料。
装置端输出入装置连结控制器500是为介于中央处理电路140及PSD阵列600间,用来作为储存虚拟化控制器100及PSD阵列600间的介面及缓冲。装置端输出入装置连结控制器500接收由中央处理电路140传入的输出入请求及相关资料,并将其映射及/或传送至PSD阵列600。
中央处理电路140是包括有中央处理器晶片组(CPU chipset,以下简称为“CPU晶片组”)144,内合同位引擎(parity engine)160,一中央处理器142(CPU),一唯读记忆体146(ROM、read only memory)及一非挥发性随机存取记忆体148(NVRAM、non-volatile random access memory)。其中该CPU 142可为,例如,一Power PC CPU,而ROM146可为一快闪记忆体,用来储存基本输入/输出***(BIOS)及/或其他程式。中央处理器142是透过CPU晶片组144才得以与其他电子元件(如记忆体180等)相耦接。NVRAM148用来储存该实体储存装置阵列输出入操作执行状态的相关资讯,以备输出入操作尚未做完前发生不正常电源关闭时,作检验使用。ROM 146、NVRAM148、LCD模组550及箱体管理服务电路560皆经由一X-汇流排(X-bus)连结至CPU晶片组144。又,该NVRAM 148是为可选择项目,亦可省略不设。且CPU晶片组144此处虽以整合有同位引擎160的功能方块描述,但在实际应用时,CPU晶片组144与同位引擎160可分开设置于不同的晶片上。
本发明的一实施例中,所处理的乘法运算的目标资料,可能来自PSD阵列600或主机10;乘法运算的结果可能储存在记忆体180、PSD阵列600的磁碟、或者是同位引擎160或中央处理器本身内建的缓冲区(buffer)中(图中没有标示)。本发明的演算法是以程式编码的方式实现,可将该程式储存于ROM 146中或记忆体180中,以供中央处理电路140执行。换言之,中央处理电路140需负责,开机时或线上即时,产生一场域(如GF(28))中的数值所对应的乘法运算表(Map Table),产生的乘法运算表可储存在记忆体180中。在本发明的另一实施例,亦有可能事先将所有需要的乘法运算表计算出来,并储存于ROM 146或记忆体180中,如此一来,开机后中央处理电路140只需要存取已存在的乘法运算表即可。在线上即时运算时,针对已知的乘法运算单元,根据乘法运算表(Map Table),以一XOR运算单元为单位,对暂存于记忆体中的目标资料进行互斥或(XOR)运算,并进行复数个该互斥或(XOR)运算以求得该乘法运算的结果。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容作出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。
Claims (29)
1、一种磁碟阵列中资料的乘法运算的方法,其特征在于其包括以下步骤:
产生一场域中至少一数值所对应的至少一乘法运算表;
选择一互斥或运算单元的长度,复数个该互斥或运算单元形成一乘法运算单元;以及
针对该乘法运算单元,并根据该至少一乘法运算表中的一乘法运算表,以该互斥或运算单元为单位,对一资料来源提供的资料进行至少一互斥或运算,并进行复数个该互斥或运算以求得该乘法运算的结果。
2、根据权利要求1所述的磁碟阵列中资料的乘法运算的方法,其特征在于其中所述的复数个该乘法运算的结果再经至少一互斥或运算后,可得一同位资料或一使用者资料。
3、根据权利要求2所述的磁碟阵列中资料的乘法运算的方法,其特征在于其中所述的同位资料是依照下列公式计算而得:
Q=g0·D0+g1·D1+g2·D2+…+gn-1·Dn-1
其中,g为加罗瓦场的产生元素,令g=2;D0,D2,…,Dn-1分别代表n个该复数个使用者资料碟的使用者资料序列的总称;″+″代表一互斥或运算;″·″代表加罗瓦场乘法运算。
4、根据权利要求2所述的磁碟阵列中资料的乘法运算的方法,其特征在于其中所述的使用者资料是依照下列公式计算而得:
Dx=A·(P+Pxy)+B·(Q+Qxy)
Dy=(P+Pxy)+Dx
其中,x、y为发生错误的两资料碟序号;Dx、Dy为两资料碟x、y所对应的使用者资料;A、B为仅与x,y有关的常数:
A=gy-x·(gy-x+1)-1
B=g-x·(gy-x+1)-1
Pxy、Qxy为当Dx,Dy皆为0时的P值与Q值,即:
Pxy+Dx+Dy=P
Qxy+gx·Dx+gy·Dy=Q
以上″+″皆代表一互斥或运算;″·″代表加罗瓦场乘法运算。
5、根据权利要求1所述的磁碟阵列中资料的乘法运算的方法,其特征在于其中所述的场域是为一加罗瓦场场域。
6、根据权利要求5所述的磁碟阵列中资料的乘法运算的方法,其特征在于其中所述的乘法运算表是在该加罗瓦场场域、依据一演算规则而产生。
7、根据权利要求6所述的磁碟阵列中资料的乘法运算的方法,其特征在于其中所述的演算规则是根据一加罗瓦场代数规则而产生。
8、根据权利要求6所述的磁碟阵列中资料的乘法运算的方法,其特征在于其中所述的当该加罗瓦场场域为GF(28),该演算规则为:
m′0,j=m7,j ,0≤j≤7
m′1,j=m0,j ,0≤j≤7
m′2,j=m1,j+m7,j ,0≤j≤7
m′3,j=m2,j+m7,j ,0≤j≤7
m′4,j=m3,j+m7,j ,0≤j≤7
m′5,j=m4,j ,0≤j≤7
m′6,j=m5,j ,0≤j≤7
m′7,j=m6,j ,0≤j≤7
其中,m0,j~m7,j以及m′0,j~m′7,j,0≤j≤7,分别为矩阵MK与MK′的元素,MK为一对应于K的已知矩阵,MK′为K′的对应矩阵,K′=2·K,K≠0。
9、根据权利要求8所述的磁碟阵列中资料的乘法运算的方法,其特征在于其中所述的当K=0时,该矩阵M0为一零矩阵;当K=20=1时,该矩阵M1为一单位矩阵。
10、根据权利要求1所述的磁碟阵列中资料的乘法运算的方法,其特征在于其中所述的至少一互斥或运算,是根据以下公式:
亦即,
其中,MK为一矩阵,代表该至少一数值中的一数值K所对应的该乘法运算表;mi,j表示为该矩阵MK中的元素,0≤i,j≤a-1,且:
mi,j·xj=xj,若mi,j=1
mi,j·xj=0,若mi,j=0
其中,x0、x1、x2、…、xa-1分别为长度是该互斥或运算单元的资料,X代表该乘法运算单元的资料;Y表示由该数值K乘以X计算所得的结果。
11、根据权利要求8所述的磁碟阵列中资料的乘法运算的方法,其特征在于其中所述的根据该复数个乘法运算表所做的互斥或运算,是为选择该矩阵M中同一行元素为1所对应的该互斥或运算单元的资料做互斥或运算。
12、根据权利要求1所述的磁碟阵列中资料的乘法运算的方法,其特征在于其中所述的该互斥或运算单元的长度是依据该磁碟阵列的一中央处理器或一专用互斥或运算单元的处理单位而定。
13、根据权利要求1所述的磁碟阵列中资料的乘法运算的方法,其特征在于其中所述的该互斥或运算单元的长度是为32位元或64位元;该乘法运算单元的长度是为32位元组或64位元组。
14、根据权利要求1所述的磁碟阵列中资料的乘法运算的方法,其特征在于其中所述的该互斥或运算单元的长度大于1位元。
15、根据权利要求1所述的磁碟阵列中资料的乘法运算的方法,其特征在于其中所述的资料来源是为一实体储存装置阵列或一电脑主机。
16、一种磁碟阵列控制器,其特征在于其可应用于处理资料的乘法运算,是包括:
一记忆体,暂存一资料来源所提供的目标资料;以及
一中央处理电路,产生一场域中至少一数值所对应的至少一乘法运算表,针对一乘法运算单元,并根据该至少一乘法运算表中的一乘法运算表,以一互斥或运算单元为单位,对该记忆体中的该目标资料进行至少一互斥或运算,并进行复数个该互斥或运算以求得该乘法运算的结果。
17、根据权利要求16所述的磁碟阵列控制器,其特征在于其中所述的中央处理电路进行该乘法运算前,已知该互斥或运算单元的长度,复数个该互斥或运算单元形成该乘法运算单元。
18、根据权利要求16所述的磁碟阵列控制器,其特征在于其中所述的中央处理电路更包括一中央处理器晶片组,该中央处理器晶片组更包括一同位引擎、一中央处理器,一唯读记忆体及一非挥发性随机存取记忆体。
19、根据权利要求16所述的磁碟阵列控制器,其特征在于其中所述的资料来源是为一实体储存装置阵列或一电脑主机,以提供该目标资料做乘法运算。
20、根据权利要求19所述的磁碟阵列控制器,其特征在于其更包括一装置端输出入装置连结控制器,连接于该实体储存装置阵列与该中央处理电路之间,用来作为一缓冲介面,以接收由该中央处理电路传入的一输出入请求及相关资料,并将其映射及/或传送至该实体储存装置阵列。
21、根据权利要求19所述的磁碟阵列控制器,其特征在于其更包括一主机端输出入装置连结控制器,连接于该主机与该中央处理电路之间,用来作为一缓冲介面,接收由该主机传来的一输出入请求和相关资料,并且将其转换及/或映射至该中央处理电路。
22、根据权利要求16所述的磁碟阵列控制器,其特征在于其中所述的场域是为一加罗瓦场场域,且该乘法运算表是在该加罗瓦场场域、依据一演算规则而产生。
23、根据权利要求22所述的磁碟阵列控制器,其特征在于其中所述的当该加罗瓦场场域为GF(28),该演算规则为:
m′0,j=m7,j ,0≤j≤7
m′1,j=m0,j ,0≤j≤7
m′2,j=m1,j+m7,j ,0≤j≤7
m′3,j=m2,j+m7,j ,0≤j≤7
m′4,j=m3,j+m7,j ,0≤j≤7
m′5,j=m4,j ,0≤j≤7
m′6,j=m5,j ,0≤j≤7
m′7,j=m6,j ,0≤j≤7
其中,m0,j~m7,j以及m′0,j~m′7,j,0≤j≤7,分别为矩阵MK与MK′的元素,MK为一对应于K的已知矩阵,MK′为K′的对应矩阵,K′=2·K,K≠0。
24、根据权利要求23所述的磁碟阵列控制器,其特征在于其中所述的当K=0时,该矩阵M0为一零矩阵;当K=20=1时,该矩阵M1为一单位矩阵。
25、根据权利要求16所述的磁碟阵列控制器,其特征在于其中所述的至少一互斥或运算,是根据以下公式:
亦即,
其中,MK为一矩阵,代表该至少一数值中的一数值K所对应的该乘法运算表;mi,j表示为该矩阵MK中的元素,0≤i,j≤a-1,且:
mi,j·xj=xj,若mi,j=1
mi,j·xj=0,若mi,j=0
其中,x0、x1、x2、…、xa-1分别为长度是该互斥或运算单元的资料,X代表该乘法运算单元的资料;Y表示由该数值K乘以X计算所得的结果。
26、根据权利要求16所述的磁碟阵列控制器,其特征在于其中所述的互斥或运算单元的长度是依据该磁碟阵列的一中央处理器或一专用互斥或运算单元的处理单位而定。
27、根据权利要求16所述的磁碟阵列控制器,其特征在于其中所述的互斥或运算单元的长度是为32位元或64位元;该乘法运算单元的长度是为32位元组或64位元组。
28、根据权利要求16所述的磁碟阵列控制器,其特征在于其中所述的互斥或运算单元的长度大于1位元。
29、一种磁碟阵列中资料的乘法运算的方法,其特征在于用以计算一数K与一资料序列X的乘法运算,是包括:
产生该数K所对应的一乘法运算表;
选择一互斥或运算单元的长度,复数个该互斥或运算单元形成一乘法运算单元;
分割该资料序列X为至少一该乘法运算单元;
针对该乘法运算单元,及该数K所对应的该乘法运算表,根据该乘法运算表的规则,以该互斥或运算单元为单位,进行至少一互斥或运算;以及
对所有组成该资料序列X的该乘法运算单元进行上一步骤的乘法运算,当所有该乘法运算皆完成时,即为该数K与该资料序列X的乘法运算结果。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US59614205P | 2005-09-02 | 2005-09-02 | |
US60/596,142 | 2005-09-02 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1975681A true CN1975681A (zh) | 2007-06-06 |
CN100470489C CN100470489C (zh) | 2009-03-18 |
Family
ID=37137227
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006101033099A Active CN100470489C (zh) | 2005-09-02 | 2006-07-18 | 磁碟阵列中处理资料运算的方法及其控制器 |
Country Status (4)
Country | Link |
---|---|
US (2) | US8782113B2 (zh) |
CN (1) | CN100470489C (zh) |
GB (1) | GB2429809B (zh) |
TW (1) | TWI309364B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10217539B2 (en) | 2013-03-22 | 2019-02-26 | Deutsches Krebsforschungszentrum | Contour collimator for radiotherapy |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9135115B2 (en) * | 2010-02-27 | 2015-09-15 | Cleversafe, Inc. | Storing data in multiple formats including a dispersed storage format |
US9960917B2 (en) | 2011-12-22 | 2018-05-01 | Intel Corporation | Matrix multiply accumulate instruction |
US8914706B2 (en) | 2011-12-30 | 2014-12-16 | Streamscale, Inc. | Using parity data for concurrent data authentication, correction, compression, and encryption |
US8683296B2 (en) | 2011-12-30 | 2014-03-25 | Streamscale, Inc. | Accelerated erasure coding system and method |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4037093A (en) * | 1975-12-29 | 1977-07-19 | Honeywell Information Systems, Inc. | Matrix multiplier in GF(2m) |
US4584686A (en) * | 1983-12-22 | 1986-04-22 | Optical Storage International | Reed-Solomon error correction apparatus |
US5499253A (en) * | 1994-01-05 | 1996-03-12 | Digital Equipment Corporation | System and method for calculating RAID 6 check codes |
US6912687B1 (en) * | 2000-05-11 | 2005-06-28 | Lsi Logic Corporation | Disk array storage subsystem with parity assist circuit that uses scatter-gather list |
US6823425B2 (en) * | 2001-10-23 | 2004-11-23 | Ivivity, Inc. | System and method for implementing advanced RAID using a set of unique matrices as coefficients |
JP4288486B2 (ja) * | 2003-11-17 | 2009-07-01 | 日本電気株式会社 | ディスクアレイ装置,raid用パリティデータ生成回路およびガロア体乗算回路 |
TWI253011B (en) * | 2004-10-13 | 2006-04-11 | Promise Technology Inc | Galois field multiplier and multiplication method thereof |
US7219289B2 (en) * | 2005-03-15 | 2007-05-15 | Tandberg Data Corporation | Multiply redundant raid system and XOR-efficient method and apparatus for implementing the same |
-
2006
- 2006-05-10 TW TW095116619A patent/TWI309364B/zh active
- 2006-07-18 CN CNB2006101033099A patent/CN100470489C/zh active Active
- 2006-08-31 US US11/513,385 patent/US8782113B2/en active Active
- 2006-09-01 GB GB0617296A patent/GB2429809B/en active Active
-
2014
- 2014-05-30 US US14/291,271 patent/US9594631B2/en active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10217539B2 (en) | 2013-03-22 | 2019-02-26 | Deutsches Krebsforschungszentrum | Contour collimator for radiotherapy |
Also Published As
Publication number | Publication date |
---|---|
GB2429809B (en) | 2008-10-15 |
US9594631B2 (en) | 2017-03-14 |
US20140281799A1 (en) | 2014-09-18 |
US20070067697A1 (en) | 2007-03-22 |
CN100470489C (zh) | 2009-03-18 |
GB2429809A (en) | 2007-03-07 |
TW200710679A (en) | 2007-03-16 |
TWI309364B (en) | 2009-05-01 |
GB0617296D0 (en) | 2006-10-11 |
US8782113B2 (en) | 2014-07-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1186714C (zh) | 高基除法器及方法 | |
CN1924785A (zh) | 存储虚拟化控制器的同位引擎及同位引擎产生数据的方法 | |
CN1206657C (zh) | 快闪存储器 | |
CN1205538C (zh) | 用于多精度整数算术运算的装置 | |
CN101042682A (zh) | 访问控制装置、***和方法,处理器 | |
CN1235343C (zh) | 交织方法、交织装置以及存储交织模式产生程序的媒体 | |
CN1199177C (zh) | 可抑制电路规模能进行高速纠错的纠错装置和解码装置 | |
CN101040306A (zh) | 伪随机数生成装置 | |
CN1312630A (zh) | 基于分块加密方式的加密装置与方法及译码装置与方法 | |
CN1726669A (zh) | 数据分割方法和使用异或运算的装置 | |
CN1193783A (zh) | 存储器卡 | |
CN1130731C (zh) | 半导体只读存储器 | |
CN1501259A (zh) | 便于具有通用读/写模式的存储器数据存取的装置和方法 | |
CN101047390A (zh) | 解码设备、控制方法及程序 | |
CN101061526A (zh) | 密码处理运算装置 | |
CN1922643A (zh) | 加密***、加密装置、解密装置、程序和集成电路 | |
CN1975681A (zh) | 磁碟阵列中资料的乘法运算的方法及其控制器 | |
CN1991801A (zh) | 访问控制设备、方法和存储器访问控制设备、方法 | |
CN1439130A (zh) | 并行处理方法中的作业分配方法及并行处理方法 | |
CN1956368A (zh) | 基于单位阵及其循环移位阵的ldpc码向量译码装置和方法 | |
CN1102260C (zh) | 求乘数和被乘数之积的方法、***、装置和乘法器 | |
CN1280726A (zh) | 优化椭圆曲线密码计算的变换方法 | |
CN1637713A (zh) | 用于双重错误修正和三重错误检测的(18,9)错误修正码 | |
CN1778066A (zh) | 参数生成设备,加密***,解密***,加密设备,解密设备,加密方法,解密方法,及其程序 | |
CN1472745A (zh) | 铁电体存储装置及其读出方法 |
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 |