專利名稱:用于存儲數(shù)據(jù)信號的編碼方式的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)信號的編碼,更具體地說涉及用于存儲的數(shù)據(jù)信號的編碼。
背景技術(shù):
數(shù)據(jù)信號在諸如硬盤、磁盤或磁盤陣列等輔助存儲介質(zhì)中的存儲與個人計算機(jī)(PC)或其他計算機(jī)的運算是相關(guān)的,這一點是普遍公知的。可以用冗余磁盤陣列來建立高可用性、高穩(wěn)定性的磁盤子系統(tǒng)。數(shù)據(jù)信號一般是由一些磁盤經(jīng)異或運算而得且將其保存在冗余磁盤上,這樣當(dāng)某個磁盤受損時,就可利用在現(xiàn)存磁盤和寫到備份磁盤上的數(shù)據(jù)將受損磁盤上的數(shù)據(jù)信號重建出來。但是,如果在重建完成之前又有一個磁盤受損,就可能造成數(shù)據(jù)信號的丟失。令人感到遺憾的是在一個以上的磁盤受損的情況下,利用傳統(tǒng)的磁盤陣列就無法防止數(shù)據(jù)丟失了。因此,人們就希望獲得一種即使在多個磁盤損壞的情況下仍不會丟失數(shù)據(jù)的技術(shù),同時,這項技術(shù)應(yīng)具有優(yōu)良的性能。
概述簡單地說,按照本發(fā)明中的一個實施例,用于編碼存儲的數(shù)據(jù)信號以對存儲介質(zhì)中的存儲單元進(jìn)行容錯的方法包含以下內(nèi)容有N+2個存儲單元,N是一個正整數(shù),又將每個存儲單元分成N個存儲塊,則由(N)(N)塊數(shù)據(jù)信號會產(chǎn)生出2N個奇偶校驗信號塊。將N(N+2)個奇偶校驗信號塊和數(shù)據(jù)信號塊分配在存儲介質(zhì)的N+2個存儲單元中,這樣就可使2N個奇偶校驗信號塊不是僅僅存儲在N+2個存儲單元中的其中兩個單元中。
簡單地說,按照本發(fā)明中的另一個實施例,一存儲介質(zhì)包含N+2個存儲二進(jìn)制數(shù)字信號的存儲單元,N是一個正整數(shù),又將每個存儲單元分成N個存儲塊,在N+2個存儲單元上存儲了2N個奇偶校驗信號塊和(N)(N)個數(shù)據(jù)信號塊,其中2N個奇偶校驗信號塊是以(N)(N)個數(shù)據(jù)信號為基礎(chǔ)的。將2N個奇偶校驗信號塊分配存儲在N+2個存儲單元中,這樣就可使2N個奇偶校驗信號塊不是僅僅存儲在N+2個存儲單元中的其中兩個單元中。
附圖的簡要說明盡管在說明書的結(jié)論部分,指出了本發(fā)明的發(fā)明主題和清晰的權(quán)利要求,仍舊相信當(dāng)結(jié)合下述附圖閱讀時參照其詳細(xì)說明將幫助大家更好的理解本發(fā)明所述主題內(nèi)容的操作方法和結(jié)構(gòu),目的,特征,和優(yōu)點。
圖1說明了按照本發(fā)明中所述的一種用于存儲的數(shù)據(jù)信號的編碼方法的應(yīng)用;圖2說明了現(xiàn)有技術(shù)中用于存儲的數(shù)據(jù)信號的編碼方法的應(yīng)用;圖3是一個用于說明按照本發(fā)明的一種對已經(jīng)編碼的用于存儲的數(shù)據(jù)信號進(jìn)行重建的方法的一個實施例中的一部分內(nèi)容的流程圖;圖4說明了按照圖1所示應(yīng)用更新用于存儲的已經(jīng)編碼的數(shù)據(jù)信號的處理的一個實施例。
發(fā)明的詳細(xì)描述為了全面的理解本發(fā)明,在以下的內(nèi)容中闡述了許多個實施例。但是不具備實施例中所述的各個具體細(xì)節(jié)也可以實施本發(fā)明,這對于本領(lǐng)域技術(shù)人員來說是可以理解的。為了不使本發(fā)明變得模糊,在他處對公知的方法、步驟,組成和線路進(jìn)行了詳細(xì)地描述。
圖2是用于說明采用現(xiàn)有技術(shù)來對要存儲的數(shù)據(jù)信號進(jìn)行編碼的方法的應(yīng)用的一個簡略示圖。這個方案稱為“EVENODD”方法,是在載于1995年2月出版的第44卷第2期的IEEE計算機(jī)報上的第192-202頁的題為"EVENODD:An efficient scheme for toleratingdouble disk failures in Raid architectures"文章中提出的,在圖2所示的這一具體實施例中,使用了很多的冗余磁盤來存儲以二進(jìn)制數(shù)字信號形式存在的奇偶校驗或冗余信息。也可參見于1996年11月授予Blaum,Brady,Bruck,Menon的題為"Methods and means forencoding and rebuilding data contents up to two unavailableDASDSs in a DASD array using simple non-recursive diagonal androw parity"的第5,579,475號美國專利。還可參見下述書籍PaulMassiglia,The RAID book,RAID Advisory Board,1997(在這本書的第6章描述了RAID Level 6)。方便地話,用于存儲數(shù)據(jù)信號的磁盤數(shù)N應(yīng)設(shè)定為一個質(zhì)數(shù)。但是,這并不會對上述方案造成任何限制,這是由于通過假定在某些磁盤上沒有容納任何信息,即在某些磁盤上所存儲的所有二進(jìn)制數(shù)字信號或字節(jié)都是零,這樣就可以處理存儲數(shù)據(jù)信號的任意磁盤數(shù)。因此,當(dāng)數(shù)據(jù)磁盤數(shù)不是質(zhì)數(shù)時,例如就可以對N值進(jìn)行選擇以使其為大于數(shù)據(jù)磁盤數(shù)的最近質(zhì)數(shù)。
如圖2所示,以5個數(shù)據(jù)磁盤為例來說明上述方案的實施過程。在標(biāo)有“冗余磁盤”的磁盤中存儲了奇偶校驗數(shù)據(jù)信息,上述磁盤標(biāo)志成下數(shù)據(jù)塊D(0,5),D(1,5),D(2,5),D(3,5),D(0,6),D(1,6),D(2,6),和D(3,6)。在這一實施例中,如圖2所示磁盤被分成了數(shù)據(jù)信號塊或奇偶校驗信號塊。奇偶校驗信號信息可按照下述等式進(jìn)行計算D(0,5)=D(0,0)_D(0,1)_D(0,2)_D(0,3)_D(0,4)D(1,5)=D(1,0)_D(1,1)_D(1,2)_D(1,3)_D(1,4)D(2,5)=D(2,0)_D(2,1)_ D(2,2)_D(2,3)_D(2,4)D(3,5)=D(3,0)_D(3,1)_ D(3,2)_D(3,3)_D(3,4)D(0,6)=S_(0,0)_D(3,2)_D(2,3)_D(1,4)D(1,6)=S_D(1,0)_D(0,1)_D(3,3)_D(2,4)D(2,6)=S_D(2,0)_D(1,1)_D(0,2)_D(3,4)D(3,6)=S_D(3,0)_D(2,1)_D(1,2)_D(0,3)S=D(3,1)_D(2,2)_D(1,3)_D(0,4)采用這種方法,對于一個帶有五個磁盤數(shù)據(jù)容量的磁盤陣列上的奇偶校驗信號信息進(jìn)行編碼的話,就需要執(zhí)行35次的異或運算(“XOR”)。在這個例子中,如果假定在數(shù)據(jù)存儲塊D(0,4),D(1,4),D(2,4),D(3,4)中存儲的均為零,則如果僅有四個數(shù)據(jù)磁盤的話,要對數(shù)據(jù)信號進(jìn)行編碼就需要執(zhí)行27次的異或運算(XOR)。
應(yīng)用已編碼的冗余信號信息的一個方面是在更新數(shù)據(jù)塊時執(zhí)行寫操作方法的效率。例如采用這種技術(shù)時,只要寫的數(shù)據(jù)塊不是圖2中所示的主對角線上的部分時,每次寫該技術(shù)應(yīng)用都需要執(zhí)行附加的兩個寫操作(“寫”)。如果要寫的數(shù)據(jù)塊是主對角線上的部分,則需要使用附加的5個寫操作??傊?,需要使用N次另外的寫操作。因此,如果都要以相同的概率訪問數(shù)據(jù)塊,則對于一個含有5個數(shù)據(jù)磁盤的陣列來說,進(jìn)行更新所需的附加寫操作的預(yù)期值為2.6。如果有四個數(shù)據(jù)磁盤,則每次更新所要進(jìn)行的附加寫操作的預(yù)期值為2.56??傊?,每次更新所進(jìn)行的附加寫操作的預(yù)期值為3-(1/N),因此對大值N越接近3。
如果兩個冗余磁盤都受到損壞,則采用上述的編碼步驟可以由數(shù)據(jù)磁盤或數(shù)據(jù)存儲單元中的存儲信息計算出所丟失的奇偶校驗信號信息。因此,重建的復(fù)雜性與編碼的復(fù)雜性是相等的。然而如果兩個數(shù)據(jù)磁盤受到損壞,則需要執(zhí)行44次異或(XOR)運算來重建所丟失的數(shù)據(jù)。例如,假設(shè)存儲單元或磁盤0和2受到了損壞,則所丟失的數(shù)據(jù)存儲塊D(0,0),D(1,0),D(2,0),D(3,0),D(0,2),D(1,2),D(2,2),和D(3,2)可采用下述的運算順序獲得S=D(0,5)_D(1,5)_D(2,5)_D(3,5)_D(0,6)_D(1,6)_D(2,6)_D(3,6)S(0)0=D(0,1)_D(0,3)_D(0,4)S(0)1=D(1,1)_D(1,3)_D(1,4)S(0)2=D(2,1)_D(2,3)_D(2,4)S(0)3=D(3,1)_D(3,3)_D(3,4)S(0)4=D(4,1)_D(4,3)_D(4,4)S(1)0=S_D(0,6)_D(4,1)_D(2,3)_D(1,4)S(1)1=S_D(1,6)_D(0,1)_D(3,3)_D(2,4)S(1)2=S_D(2,6)_D(1,1)_D(4,3)_D(3,4)S(1)3=S_D(3,3)_D(2,1)_D(0,3)_D(4,4)S(1)4=S_D(4,6)_D(3,1)_D(1,3)_D(0,4)D(2,2)=S(1)4D(2,0)=S(0)2_D(2,2)D(0,2)=S(1)2_D(2,0)D(0,0)=S(0)0_D(0,2)D(3,2)=S(1)0_D(0,0)D(3,0)=S(0)3_D(3,2)D(1,2)=S(1)3_D(3,0)D(1,0)=S(0)1_D(1,2)因此,執(zhí)行44次的XOR運算就可重建出包含在兩個受損壞的存儲單元中的數(shù)據(jù)信號。同樣,指示如果存儲單元的個數(shù)是4,則執(zhí)行34次XOR運算就可重建出所丟失的數(shù)據(jù)存儲塊。假設(shè)陣列中的所有數(shù)據(jù)存儲單元受到損壞的概率相同,則在四個存儲單元陣列中有兩個單元受到損壞的情況下重建數(shù)據(jù)所要執(zhí)行的XOR運算的預(yù)期次數(shù)為大約29.8。
圖1是說明了按照本發(fā)明中所述存儲數(shù)據(jù)編碼方法的一個實施例的應(yīng)用情況示意圖。在這個例子中,存儲陣列包含6個存儲單元,其中既有數(shù)據(jù)信號單元也有奇偶校驗信號存儲單元。因此,該存儲陣列具有匹配等效儲存能力的數(shù)據(jù)存儲單元數(shù)為N。在這個例子中,N=4。當(dāng)然,本發(fā)明并不局限于這一數(shù)據(jù)存儲容量也不局限于這一特定實施例。存儲總數(shù)據(jù)量是N個存儲單元的容量,在這一實施例中N為4,N個存儲單元中的每一個單元又被分成N個數(shù)據(jù)存儲塊。另外,從(N)(N)數(shù)據(jù)信號塊中產(chǎn)生了2N個奇偶校驗信號塊,在下面的內(nèi)容中將對此進(jìn)行更為詳細(xì)的描述。而且,在這一特定實施例中,N(N+2)個奇偶校驗和數(shù)據(jù)信號被分配在存儲介質(zhì)的N+2個存儲單元中,這樣便可使2N個奇偶校驗信號塊不是僅僅存儲在N+2個存儲單元中的其中兩個單元中,在這一點上與EVENODD方案是不相同的。
在這一實施例中,奇偶校驗信號既有水平奇偶校驗信號也有對角奇偶校驗信號。如圖1所示,在這一實施例中,對角奇偶校驗信號只存儲在N+2個存儲單元中的一個單元中。同樣,在這一實施例中,不同于EVENODD方案,水平奇偶校驗信號被分配存儲在N+2個存儲單元中的N個單元中。而且,如圖1所示在這一實施例中,N+2個存儲單元中的一個單元只存儲數(shù)據(jù)信號。
在這一實施例中,假設(shè)N+1是一個質(zhì)數(shù)。與EVENODD方案那樣,只要通過假設(shè)存儲單元中沒有存儲數(shù)據(jù)信號,因此在那些單元中的所有數(shù)據(jù)均為零,該技術(shù)就可處理任意的存儲單元數(shù)。為了簡單化,如圖1所示假定每個存儲單元有N個數(shù)據(jù)塊,在這一實施例中,N即為4。當(dāng)然,在這方面本發(fā)明并不局限于這一范圍。例如,通過分開進(jìn)行處理每個N個數(shù)據(jù)塊組就可以處理任意存儲單元容量。在這一方案中,一個數(shù)據(jù)塊也可以包含有任意位數(shù)。在這一例子中,奇偶校驗信號信息D(0,3),D(1,2),D(2,1),D(3,0),D(0,5),D(1,5),D(2,5),和D(3,5)可按照下列等式計算出
水平奇偶校驗D(0,3)=D(0,0)_D(0,1)_D(0,2)_D(0,4)D(1,2)=D(1,0)_D(1,1)_D(1,3)_D(1,4)D(2,1)=D(2,0)_D(2,2)_D(2,3)_D(2,4)D(3,0)=D(3,1)_D(3,2)_D(3,3)_D(3,4)對角奇偶校驗D(0,5)=D(3,4)_D(2,0)_D(1,1)_D(0,2)D(1,5)=D(3,3)_D(2,4)_D(1,0)_D(0,1)D(2,5)=D(3,2)_D(2,3)_D(1,4)_D(0,0)D(3,5)=D(3,1)_D(2,2)_D(1,3)_D(0,4)如這個例子所示,對于一個存儲容量相當(dāng)于由四個存儲單元所組成的存儲陣列中的奇偶校驗信號信息進(jìn)編碼要執(zhí)行24次XOR運算。而在前所述的EVENODD方案中,要對相等數(shù)據(jù)容量進(jìn)行編碼則需要執(zhí)行27次XOR運算。因此,由這一實施例便可看出按照本發(fā)明中所述的編碼方法進(jìn)行編碼儲存的數(shù)據(jù)信號的復(fù)雜性小于EVENODD方案中的編碼復(fù)雜性。總之,需執(zhí)行2N(N-1)次XOR運算。
在數(shù)據(jù)塊更新方面,所建議的技術(shù)僅采用執(zhí)行兩次額外的寫操作,與數(shù)據(jù)塊的位置無關(guān),這一點將在下面的內(nèi)容作詳細(xì)的描述。因此,本方案的更新性能也優(yōu)于EVENODD方案中的更新性能。
按照本發(fā)明中所述的編碼存儲數(shù)據(jù)信號方法的這一實施例在雙盤或受損存儲單元的恢復(fù)方面也提供更好的性能。設(shè)F1和F2為受到損壞的存儲單元。如果F1大于或等于零且小于或等于N,F2等于N+1,則使用水平奇偶校驗便可重建F1。在F1重建之后,由于可以獲得這些受損的所有數(shù)據(jù)塊,則使用編碼步驟便可直接重建出存儲在F2中的對角奇偶信號信息了。因此,在這種情況下,這一實施例執(zhí)行24次XOR運算就可重建存儲在兩個受損的存儲單元中的信號信息了。但是,如果F1小于F2且F1大于或等于零,F(xiàn)2小于或等于N,則兩個存儲單元含有數(shù)據(jù)信號信息或既有數(shù)據(jù)也有奇偶校驗信號信息。在這一例子中,即使在上述情況下,按照本發(fā)明所述的方法也僅需執(zhí)行24次XOR運算便可恢復(fù)丟失的數(shù)據(jù)和/或奇偶校驗信號信息。
通過下面的幾個例子可以說明本發(fā)明中所提出的編碼技術(shù)只需執(zhí)行24次XOR運算便可重建所丟失的數(shù)據(jù),而按照EVENODD方案則需執(zhí)行34次運算。在有兩個相獨立的受損存儲單元的實施例中,本發(fā)明中的所述方案總是正好執(zhí)行24次XOR運算以從保持完好的存儲單元中重建數(shù)據(jù)信號。而在EVENODD方案中則需執(zhí)行29.8次XOR運算才能恢復(fù)受損的兩個存儲單元。因此,本發(fā)明中編碼存儲的數(shù)據(jù)信號方法的這一實施例中的重建復(fù)雜性小于EVENODD方案中的重建復(fù)雜性。
例如,假設(shè)存儲單元1和4受到損壞,則在這一實施例中所對應(yīng)的丟失塊為D(0,1),D(1,1),D(2,1),D(3,1),D(0,4),D(1,4),D(2,4)和D(3,4)。采用這一本發(fā)明中編碼存儲的數(shù)據(jù)信號方法的具體實施例,一個對角奇偶校驗組不包含存儲單元1中的任何數(shù)據(jù)塊,另一對角校驗組不包含存儲單元4中的任何數(shù)據(jù)塊。因此,在這一實施中,兩者都可以作為起始點。在這一實施例中,我們先從不包含任何存儲單元1中的數(shù)據(jù)塊的那個對角奇偶校驗組開始,即D(3,2),D(2,3),D(1,4),D(0,0)。那么,可按以下等式來建立D(1,4)D(1,4)=D(3,2)_D(2,3)_D(0,0)_D(2,5)在這一例子中,使用水平奇偶校驗組D(1,0),D(1,2),D(1,3),D(1,4),按如下等式來建立D(1,1)D(1,1)=D(1,0)_D(1,2)_D(1,3)_D(1,4)使用含有D(1,1)的對角奇偶校驗組按如下等式來獲得D(3,4)D(3,4)=D(2,0)_D(1,1)_D(0,2)_D(0,5)使用水平奇偶校驗組D(3,1),D(3,2),D(3,3),D(3,4),按如下等式來建立D(3,1)D(3,1)=D(3,0)_D(3,2)_D(3,3)_D(3,4)然后,使用含有D(3,1)的對角奇偶校驗組按如下等式來獲得D(0,4)D(0,4)=D(3,1)_D(2,2)_D(1,3)_D(3,5)然后,使用下述的水平組來建立D(0,1)D(0,1)=D(0,0)_D(0,2)_D(0,3)_D(0,4)然后,使用含有D(0,1)的對角奇偶校驗組來獲得D(2,4)D(2,4)=D(3,3)_D(1,0)_D(0,1)_D(1,5)
然后,使用下述的水平組來建立D(2,1)D(2,1)=D(2,0)_D(2,2)_D(2,3)_D(2,4)在這一例子中,一個受損存儲單元4中只有數(shù)據(jù)塊。而用下一個例子來說明兩個受損的存儲單元只包含數(shù)據(jù)和奇偶校驗信號。
代之以,假設(shè)存儲單元0和2受到了損壞。在這個例子中,也就是意味著塊D(0,0),D(1,0),D(2,0),D(3,0),D(0,2),D(1,2),D(2,2)和D(3,2)丟失了。在這一例子中,對角奇偶校驗組D(3,1),D(2,2),D(1,3)和D(0,4)沒有包含存儲單元0的數(shù)據(jù)塊。因此,按如下等式來建立D(2,2)D(2,2)=D(3,1)_D(3,5)_D(1,3)_D(0,4)利用如下的水平奇偶校驗組來建立D(2,0)D(2,0)=D(2,1)_D(2,2)_D(2,3)_D(2,4)利用含有D(2,0)的對角奇偶校驗組來獲得D(0,2)D(0,2)=D(3,4)_D(2,0)_D(1,1)_D(0,5)利用如下的水平奇偶校驗組來建立D(0,0)D(0,0)=D(0,3)_D(0,1)_D(0,2)_D(0,4)利用含有D(0,0)的對角奇偶校驗組來獲得D(3,2)D(3,2)=D(2,5)_D(2,3)_D(1,4)_D(0,0)利用如下的水平奇偶校驗組來建立D(3,0)D(3,0)=D(3,1)_D(3,2)_D(3,3)_D(3,4)在這個例子中,D(3,0)是一個水平奇偶校塊。因此,為了從一個對角奇偶校驗組中獲得另一個塊,利用了不含存儲單元2的數(shù)據(jù)塊D(3,3),D(4,4),D(1,0),D(0,1)按下式來建立D(1,0)D(1,0)=D(3,3)_D(2,4)_D(1,5)_D(0,1)在這一例子中,通過利用如下的水平奇偶校驗組來獲得D(1,2)的重建工作就完成了D(1,2)=D(1,0)_D(1,1)_D(1,3)_D(1,4)總之,對于這一具體實施例,當(dāng)兩個存儲單元同時受損時,則重建過程需要執(zhí)行2N(N-1)次XOR運算,這與在這一實施例中對數(shù)據(jù)信號進(jìn)行編碼所需執(zhí)行的XOR運算次數(shù)是相等的。因此,由前述內(nèi)容可以看出當(dāng)兩個存儲單元受損時,本發(fā)明中編碼存儲的數(shù)據(jù)信號方法的具體實施例在編碼、更新以及在重建數(shù)據(jù)信號方面都具有比EVENODD方案更好的性能。
圖1闡明了一個具有四個數(shù)據(jù)存儲單元的具體實施例,下面將描述另一個實施例,其中數(shù)據(jù)存儲單元的個數(shù)可以是不確定的??紤]一個具有N+2個存儲單元的存儲陣列。在這個具體實施例中,與EVENODD方案相同使用兩個有存儲容量價值的存儲單元來存儲奇偶校驗信號信息。為了使這個實施例簡化,如果N-1是一個質(zhì)數(shù),則假設(shè)N+2個存儲單元每個單元都有N個存儲塊;在其他情況下,則假設(shè)有M個存儲塊,其中M+1為大于N-1的最小質(zhì)數(shù)。當(dāng)然,在另外的實施例中,通過考慮每個與一個存儲單元單獨相關(guān)的N個(如果N+1不是質(zhì)數(shù)則為M個)存儲塊,可以處理具有不同容量的存儲單元。如果一個存儲單元中的一個存儲塊含有奇偶校驗信號信息,則在這里將其稱為奇偶校驗塊。同樣,如果一個存儲單元中的一個存儲塊含有數(shù)據(jù)信號信息,則將其稱為數(shù)據(jù)塊。
考慮一個N(N+2)個數(shù)據(jù)塊陣列以使D(i,j)(其中i大于或等于零且小于或等于N-1,j大于或等于零且小于或等于N+1)為第j個存儲單元中的第i個數(shù)據(jù)塊。數(shù)據(jù)陣列中有(N)(N)個數(shù)據(jù)信號塊和2N個奇偶校驗信號塊。問題是如何獲得奇偶校驗信號并將其放在存儲陣列中的2N個奇偶校驗塊中,以使得任意兩個存儲單元都可以由陣列中的其他N個存儲單元的內(nèi)容建立起來。在這一實施例中,按照以下等式只需使用XOR運算便可生成奇偶校驗信號信息且可將其放在存儲陣列中D(i,N-1-i)=_D(i,j),其中j=0至N,j≠N-1-i,0≤i≤N-1(1)D(i,N+1)=_D(N-1-j,(N-i+j)mod(N+1)),其中j=0至N,0≤i≤N-1(2)等式(1)定義出了水平校驗信號的產(chǎn)生和放置。存儲單元塊D(0,N-1),D(1,N-2),…D(N-1,0)中包含了水平奇偶校驗信號信息。等式(2)定義出了奇偶校驗塊中產(chǎn)生的對角奇偶校驗信號。按照等式(2),奇偶校驗塊D(0,N+1),D(1,N+1),…D(N-1,N+1)中包含了對角奇偶校驗信號信息。所前所示,在這一實施例中,對角奇偶校驗信號信息只存儲在第N+1個存儲單元中。
如前所述,這一優(yōu)選實施例的一次更新操作中每次寫需執(zhí)行兩次附加的寫運算,這與要寫的塊無關(guān)。假設(shè)要寫對塊D(i,j)進(jìn)行寫操作,為了完成這一寫操作,就要對奇偶校驗塊D(i,N-1-i)(水平奇偶校驗)和D((2N-1-i-j)mod(N+1),N+1)(對角奇偶校驗)執(zhí)行附加的寫運算。利用上述的等式(1)和(2)就可獲得要寫的信號值。
圖4是一說明這個優(yōu)選實施例所執(zhí)行的一次更新過程的方框圖。如圖所示,由存儲單元發(fā)出了一個寫請求510。在這一實施例中,該請求繼發(fā)到存儲陣列管理軟件520,雖然在這一方面本發(fā)明并不局限于此。在這個實施例中,更新數(shù)據(jù)信號也涉及到更新相關(guān)的奇偶校驗信號。因此,如圖所示分別執(zhí)行了3個讀操作。在這一實施例中,設(shè)定與一次寫操作相比執(zhí)行一次讀操作的時間相對小一些,這歸因于超高速緩沖存儲器的存在;但是,在這一方面,本發(fā)明也并不局限于此。如圖所示,除了讀取要被更新的數(shù)據(jù)信號外,也讀取了相關(guān)的水平和對角奇偶校驗信號。在560和580,獲得了一個新的或更新過的水平和對角奇偶校驗信號。在這一優(yōu)選實施例中,這些新的信號是通過利用更新前的水平和對角奇偶校驗信號,要被更新的數(shù)據(jù)信號以及用于替代被更新數(shù)據(jù)信號的數(shù)據(jù)信號來獲得的。在570、590和610,對更新后的數(shù)據(jù)和奇偶校驗信號執(zhí)行了寫操作。當(dāng)然,本發(fā)明并不限止是以并行,順序或其他的方式來執(zhí)行上述這些操作,采取什么方式將取決于許多與如何實施本發(fā)明無關(guān)的其他因素。
在這一優(yōu)選實施例中,與編碼過程相同只需通過XOR運算就可完成解碼過程以使受損的一個或兩個存儲單元得到恢復(fù)。在這一實施例中,對這兩種損壞方式是分別進(jìn)行處理的。假設(shè)F1是損壞的存儲單元。如果F1大于或等于零且小于或等于N,則利用水平奇偶校驗信號編碼便可恢復(fù)所丟失的數(shù)據(jù)信號(當(dāng)F1等于N時)或數(shù)據(jù)和奇偶校驗信號(當(dāng)F1小于或等于N-1且大于或等于零時)。以F1替代上述等式(1)中的N-1-i得到D(i,F1)=_D(i,j),其中j=0至N,j≠F1,0≤i≤N-1(3)如果F1等于N+1(即對角奇偶校驗存儲單元已損壞),則按照等式(2)處理便可將其重建出來。
另外如果有兩個存儲單元被損壞。設(shè)F1和F2就是這兩個受損的存儲單元。一種情況下,假設(shè)F1大于或等于零且小于或等于N,而F2等于N+1。則在這種情況下,按照上述的等式(3)便可恢復(fù)F1。同樣,利用等式(2)和重建的存儲單元F1便可恢復(fù)F2。
在另一種情況下,F(xiàn)1可能小于F2且F1可能大于或等于零。同樣,F(xiàn)2也可能小于或等于N。在這種情況下,在兩個受損的存儲單元中都存儲著數(shù)據(jù)或數(shù)據(jù)和奇偶校驗信號信息。同樣,由于上述情況,F(xiàn)1大于或等于零且小于或等于N-1。因此,按照上述的等式(2),存儲單元F1含有(N-1)個數(shù)據(jù)塊和1個奇偶校驗塊。在這種情況下,則需采用如圖3中所示的一種較為復(fù)雜的方法。
當(dāng)然,可以理解到本發(fā)明并不局限于如圖3中所示的方法??梢圆捎闷渌绞角也捎闷渌绞揭矔玫綕M意的結(jié)果。對于這一實施例,如果F1小于或等于N-1且F2等于N,則在如圖3所示的第一環(huán)中,利用對角奇偶校驗便可獲得D(F1,N),然后使用水平奇偶校驗和D(F1,N)可獲得D(F1,F1)。然后,利用包含D(F1,F1)的對角奇偶校驗組使t得到更新以獲得D(t,N),這一過程進(jìn)行循環(huán)直到t=N-1-F1為止。由于在這一實施例中存儲單元N只含有數(shù)據(jù)塊且設(shè)定N+1為質(zhì)數(shù),則通過以“Z字”模式“來回穿過”數(shù)據(jù)塊的方法便可恢復(fù)丟失的塊。但是,如果F2不等于N,那么存儲單元中就既包含數(shù)據(jù)塊也包含奇偶校驗塊,這樣我們就不能采用前述的方法來恢復(fù)D(N-1-F1,N)塊了。對此為了完成重建,當(dāng)t=N-1-F1時,如圖3中的第二環(huán)所示使t復(fù)位。通過上文中結(jié)合圖2所詳細(xì)描述的前兩個重建例子也闡明了這一優(yōu)選的重建術(shù)。
尤其是在發(fā)生雙重?fù)p壞的情況下,上述實施例的一個缺點是如果丟失的數(shù)據(jù)被訪問,則只要有訪問請求數(shù)據(jù)就會被再次重建。在另一實施例中,存儲陣列可以包含備份的存儲空間。因此,當(dāng)數(shù)據(jù)被重建時就可將其存儲在備份空間中,這樣在以后訪問丟失數(shù)據(jù)時就不額外地重建了,至少對于已經(jīng)重建且保存過的數(shù)據(jù)信號可以做到這樣。同樣,也可采用其他分配備份存儲空間的其他方法,本發(fā)明并不局限于一種優(yōu)選方式。例如,為此可以在該陣列中提供兩個備份存儲單元。另外,也可以將兩塊備份存儲空間分配給各個存儲單元,以使分配備份存儲空間跨接不同的存儲單元。而且也可以對更少或更多的備份空間進(jìn)行分配。根據(jù)具體情況可以采用各種不同的方法。
盡管在這里已對本發(fā)明的某些特征進(jìn)行了描述,但對于本領(lǐng)域的技術(shù)人員來說,還可以由此進(jìn)行許多種變形,替代,改變和等效替換。因此,應(yīng)理解為希望通過所附的各項權(quán)利要求可以覆蓋具有本發(fā)明實質(zhì)內(nèi)容的各種變形和改變。
權(quán)利要求
1.一種對用于存儲的數(shù)據(jù)信號進(jìn)行編碼以對一種存儲介質(zhì)中的一個存儲單元進(jìn)行容錯的方法包括對于N+2個存儲單元,N是一個正整數(shù),又將每個存儲單元分成N個存儲塊,由(N)(N)個數(shù)據(jù)信號塊產(chǎn)生出2N個奇偶校驗信號塊;將N(N+2)個奇偶校驗信號塊和數(shù)據(jù)信號塊分配在存儲介質(zhì)的N+2個存儲單元中,以使2N個奇偶校驗信號塊不是僅僅存儲在N+2個存儲單元中的其中兩個單元上。
2.如權(quán)利要求1所述的方法,其特征在于所述的2N個奇偶校驗信號塊中包含水平奇偶校驗信號和對角奇偶校驗信號。
3.如權(quán)利要求2所述的方法,其特征在于對角奇偶校驗信號實質(zhì)上是按照下述等式產(chǎn)生的D(i,N-1-i)=_D(i,j),其中j=0至N,j≠N-1-i,0≤i≤N-1。
4.如權(quán)利要求2所述的方法,其特征在于水平奇偶校驗信號實質(zhì)上是按照下述等式產(chǎn)生的D(i,N+i)=_D(N-1-j,(N-i+j)mod(N+1)),其中j=0至N,0≤i≤N-1。
5.如權(quán)利要求2所述的方法,其特征在于對角奇偶校驗信號只存儲在N+2個存儲單元的其中一個單元中。
6.如權(quán)利要求5所述的方法,其特征在于水平奇偶校驗信號被分配存儲在N+2個存儲單元的其中N個單元中。
7.如權(quán)利要求6所述的方法,其特征在于N+2個存儲單元的其中1個單元中只存儲數(shù)據(jù)信號。
8.一種存儲介質(zhì)包含N+2個存儲二進(jìn)制數(shù)字信號的存儲單元,N是一個正整數(shù),又將每個存儲單元分成N個存儲塊,在所述的N+2個存儲單元上存儲了2N個奇偶校驗信號塊和(N)(N)個數(shù)據(jù)信號塊,其中2N個奇偶校驗信號塊是以(N)(N)個數(shù)據(jù)信號為基礎(chǔ)的;將所述的2N個奇偶校驗信號塊分配存儲在N+2個存儲單元中,以使2N個奇偶校驗信號塊不是僅僅存儲在N+2個存儲單元中的其中兩個單元上。
9.如權(quán)利要求8所述的存儲介質(zhì),其特征在于所述的2N個奇偶校驗信號塊中包含水平奇偶校驗信號和對角奇偶校驗信號。
10.如權(quán)利要求9所述的存儲介質(zhì),其特征在于對角奇偶校驗信號實質(zhì)上是按照下述等式產(chǎn)生的D(i,N-1-i)=_D(i,j),其中j=0至N,j≠N-1-i,0≤i≤N-1
11.如權(quán)利要求9所述的存儲介質(zhì),其特征在于水平奇偶校驗信號實質(zhì)上是按照下述等式產(chǎn)生的D(i,N+1)=_D(N-1-j,(N-i+j)mod(N+1)),其中j=0至N,0≤i≤N-1。
12.如權(quán)利要求9所述的存儲介質(zhì),其特征在于對角奇偶校驗信號只存儲在N+2個存儲單元的其中一個單元中。
13.如權(quán)利要求12所述的存儲介質(zhì),其特征在于水平奇偶校驗信號只被分配存儲跨接N+2個存儲單元的其中N個單元。
14.如權(quán)利要求13所述的方法,其特征在于N+2個存儲單元的其中1個單元中只存儲數(shù)據(jù)信號。
15.一種設(shè)備包括采用N+2個存儲單元來存儲二進(jìn)制數(shù)字信號,N是一個正整數(shù),又將所采用的每個存儲單元分成N個存儲塊,在所采用N+2個存儲單元中存儲著2N個奇偶校驗信號塊和(N)(N)個數(shù)據(jù)信號塊,其中2N個奇偶校驗信號塊是以(N)(N)個數(shù)據(jù)信號為基礎(chǔ)的;采用了所述的N+2個存儲單元以使2N個奇偶校驗信號塊不是僅僅存儲在N+2個存儲單元中的其中兩個單元上。
16.如權(quán)利要求15所述的設(shè)備,其特征在于所述的2N個奇偶校驗信號塊中將包含水平奇偶校驗信號和對角奇偶校驗信號。
17.如權(quán)利要求16所述的設(shè)備,其特征在于對角奇偶校驗信號實質(zhì)上將是按照下述等式產(chǎn)生的D(i,N-1-i)=_D(i,j),其中j=0至N,j≠N-1-i,0≤i≤N-1。
18.如權(quán)利要求16所述的設(shè)備,其特征在于水平奇偶校驗信號實質(zhì)上將是按照下述等式產(chǎn)生的D(i,N+1)=_D(N-1-j,(N-i+j)mod(N+1)),其中j=0至N,0≤i≤N-1。
19.如權(quán)利要求16所述的設(shè)備,其特征在于對角奇偶校驗信號將只存儲在N+2個存儲單元的其中一個單元中。
20.如權(quán)利要求19所述的設(shè)備,其特征在于水平奇偶校驗信號將只被分配存儲跨接N+2存儲單元的其中N個單元。
21.如權(quán)利要求20所述的設(shè)備,其特征在于N+2個存儲單元的其中1個單元中只存儲數(shù)據(jù)信號。
22.一種產(chǎn)品包含一種存儲介質(zhì),在所述的存儲介質(zhì)中已存儲著指令,該指令由一處理器來執(zhí)行,其結(jié)果為N+2個存儲二進(jìn)制數(shù)字信號的存儲單元,N是一個正整數(shù),又將每個存儲單元分成N個存儲塊,在所述的N+2個存儲單元上存儲了2N個奇偶校驗信號塊和(N)(N)個數(shù)據(jù)信號塊,其中2N個奇偶校驗信號塊是以(N)(N)個數(shù)據(jù)信號為基礎(chǔ)的;將所述的2N個奇偶校驗信號塊分配存儲在N+2個存儲單元中,以使2N個奇偶校驗信號塊不是僅僅存儲在N+2個存儲單元中的其中兩個單元上。
23.如權(quán)利要求22所述的產(chǎn)品,其特征在于所述的2N個奇偶校驗信號塊中包含水平奇偶校驗信號和對角奇偶校驗信號。
24.如權(quán)利要求23所述的產(chǎn)品,其特征在于對角奇偶校驗信號實質(zhì)上是按照下述等式產(chǎn)生的D(i,N-1-i)=_D(i,j),其中j=0至N,j≠N-1-i,0≤i≤N-1。
25.如權(quán)利要求23所述的方法,其特征在于水平奇偶校驗信號實質(zhì)上是按照下述等式產(chǎn)生的D(i,N+1)=_D(N-1-j,(N-i+j)mod(N+1)),其中j=0至N,0≤i≤N-1。
26.如權(quán)利要求22所述的產(chǎn)品,其特征在于N含有一個正質(zhì)數(shù)。
27.一種對用于儲存的已編碼的數(shù)據(jù)信號進(jìn)行重建以對一種存儲介質(zhì)中的一個存儲單元進(jìn)行容錯的方法包含有N+2個存儲單元,N是一個正整數(shù),又將每個存儲單元分成N個存儲塊,由(N)(N)個數(shù)據(jù)信號塊產(chǎn)生出2N個奇偶校驗信號塊,將N(N+2)個奇偶校驗信號塊和數(shù)據(jù)信號塊分配在存儲介質(zhì)的N+2個存儲單元中,以使2N個奇偶校驗信號塊不是僅僅存儲在N+2個存儲單元中的其中兩個單元上,所述方法包含在至少其中一個存儲單元受損后,利用選擇的數(shù)據(jù)和奇偶校驗信號來重建由于存儲單元受損而丟失的數(shù)據(jù)信號。
28.如權(quán)利要求27所述的方法,其特征在于所述的至少其中一個存儲單元包括兩個存儲單元。
29.一種對用于儲存的已編碼的數(shù)據(jù)信號進(jìn)行更新以對一種存儲介質(zhì)中的一個存儲單元進(jìn)行容錯的方法包含有N+2個存儲單元,N是一個正整數(shù),又將每個存儲單元分成N個存儲塊,由(N)(N)個數(shù)據(jù)信號塊產(chǎn)生出2N個奇偶校驗信號塊,將N(N+2)個奇偶校驗信號塊和數(shù)據(jù)信號塊分配在存儲介質(zhì)的N+2個存儲單元中,以使2N個奇偶校驗信號塊不是僅僅存儲在N+2個存儲單元中的其中兩個單元上,所述方法包含讀取要被更新的數(shù)據(jù)信號以及任何與之相關(guān)的奇偶校驗信號;處理要被更新的數(shù)據(jù)信號,任何與之相關(guān)的奇偶校驗信號,以及正在更新要被更新以產(chǎn)生已更新的奇偶校驗信號的數(shù)據(jù)信號;以及寫入正在更新要被更新的數(shù)據(jù)信號和已經(jīng)更新的奇偶校驗信號的數(shù)據(jù)信號,以取代要被更新的數(shù)據(jù)信號和任何與之相關(guān)的奇偶校驗信號。
30.如權(quán)利要求29所述的方法,其特征在于所述的任何相關(guān)的奇偶校驗信號包含與要被更新的數(shù)據(jù)信號相應(yīng)水平奇偶校驗信號和對角奇偶校驗信號;以及已更新的奇偶校驗信號包含一個已更新的水平奇偶校驗信號和一個已更新的對角奇偶校驗信號。
31.一種設(shè)備包含采用N+2個存儲單元來存儲二進(jìn)制數(shù)字信號,N是一個正整數(shù),又將所采用的每個存儲單元分成N個存儲塊,在所述的N+2個存儲單元中存儲著(N)(N)個數(shù)據(jù)信號塊和奇偶校驗信號塊,其中奇偶校驗信號塊是以數(shù)據(jù)信號塊為基礎(chǔ)的;采用了所述的N+2個存儲單元以使2N個奇偶校驗信號塊不是僅僅存儲在N+2個存儲單元中的其中兩個單元上;采用了所述的N+2個存儲單元以使所述塊中有2N個塊含有用于備份數(shù)據(jù)信號和奇偶校驗信號之中的任一種信號的備份存儲空間。
32.如權(quán)利要求31所述的設(shè)備,其特征在于2N個備份存儲空間塊只處在所述的N+2存儲單元的其中兩個單元中。
33.如權(quán)利要求31所述的設(shè)備,其特征在于2N個備份存儲空間塊被分配跨接所述的N+2個存儲單元。
34.一種存儲介質(zhì)包含N+2個存儲單元,儲存二進(jìn)制數(shù)字信號,N是一個正整數(shù),又將每個存儲單元分成N個存儲塊,在所述的N+2存儲單元上已存儲著(N)(N)個數(shù)據(jù)和奇偶校驗信號塊,奇偶校驗信號塊是以數(shù)據(jù)信號塊為基礎(chǔ)的;所述的奇偶校驗信號塊被分配存儲在所述的N+2個存儲單元中以使所述的奇偶校驗信號塊不是僅僅存儲在N+2個存儲單元中的其中兩個單元上;所述N+2個存儲單元中的所述2N個塊含有用于備份數(shù)據(jù)信號和奇偶校驗信號之中的任一種信號的備份存儲空間。
35.如權(quán)利要求34所述的方法,其特征在于2N個備份存儲空間塊只處在所述的N+2存儲單元的其中兩個存儲單元中。
36.如權(quán)利要求34所述的方法,其特征在于2N個備份存儲空間塊被分配跨接所述的N+2個存儲單元。
全文摘要
按照本發(fā)明中的一個實施例,一種用于編碼存儲的數(shù)據(jù)信號以對存儲介質(zhì)中的存儲單元進(jìn)行容錯的方法包含以下內(nèi)容:有N+2個存儲單元(110,120,130,140,150,160),N是一個正整數(shù),又將每個存儲單元分成N個存儲塊(D0,0…D3,0;D0,1…D3,1;D0,2…D3,2;D0,3…D3,3;D0,4…D3,4;D0,5…D3,5),則由(N)(N)塊數(shù)據(jù)信號會產(chǎn)生出2N個奇偶校驗信號塊。將2N個奇偶校驗信號塊分配存儲在N+2個存儲單元中,以使2N個奇偶校驗信號塊不是僅僅存儲在N+2個存儲單元的其中兩個單元中。
文檔編號G06F3/06GK1300433SQ99806126
公開日2001年6月20日 申請日期1999年4月27日 優(yōu)先權(quán)日1998年5月13日
發(fā)明者S·J·W·埃迪里索里雅 申請人:英特爾公司