專(zhuān)利名稱(chēng):檢測(cè)不準(zhǔn)確數(shù)據(jù)的設(shè)備和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及檢測(cè)例如由數(shù)據(jù)被寫(xiě)入存儲(chǔ)器設(shè)備中的地址的錯(cuò)誤而產(chǎn)生的不準(zhǔn)確數(shù)據(jù)的單元。
背景技術(shù):
存儲(chǔ)子系統(tǒng)響應(yīng)讀命令向主機(jī)系統(tǒng)返回不準(zhǔn)確數(shù)據(jù)的問(wèn)題不僅導(dǎo)致用戶(hù)數(shù)據(jù)的損失,而且導(dǎo)致例如系統(tǒng)故障的嚴(yán)重故障。為此,通常存儲(chǔ)子系統(tǒng)通過(guò)向每個(gè)數(shù)據(jù)增加例如奇偶檢驗(yàn),ECC(糾錯(cuò)編碼)和CRC(循環(huán)冗余檢查)編碼的冗余數(shù)據(jù)并且在讀取每個(gè)數(shù)據(jù)時(shí)檢查冗余數(shù)據(jù),來(lái)避免把不準(zhǔn)確數(shù)據(jù)返回到主機(jī)系統(tǒng)的問(wèn)題。
例如,當(dāng)中間范圍或高級(jí)RAID子系統(tǒng)向512字節(jié)的扇區(qū)數(shù)據(jù)增加8到16字節(jié)冗余編碼時(shí),其中512字節(jié)是在從高速緩存向盤(pán)驅(qū)動(dòng)器寫(xiě)入(降級(jí))時(shí)用戶(hù)數(shù)據(jù)的最小單元。接著,在從盤(pán)驅(qū)動(dòng)器向高速緩存讀取(升級(jí))時(shí)檢查這個(gè)冗余編碼。通過(guò)這種方式,在RAID控制器的后端接口之后的數(shù)據(jù)路徑中執(zhí)行檢錯(cuò)。附帶地,在這種情況下,冗余編碼是由512字節(jié)的扇區(qū)數(shù)據(jù)唯一計(jì)算的數(shù)據(jù),并且通常使用基于LRC(縱向冗余校驗(yàn)),CRC(循環(huán)冗余校驗(yàn))等等的編碼。
同時(shí),在數(shù)據(jù)被寫(xiě)入實(shí)際盤(pán)驅(qū)動(dòng)器時(shí),在某些情況下,由于例如振動(dòng)的外部原因,在頭定位期間出現(xiàn)臨時(shí)異常事件。數(shù)據(jù)可能被寫(xiě)入不同于寫(xiě)入請(qǐng)求所指定的LBA的LBA(邏輯塊地址)。然而,在這種情況下,有時(shí)出現(xiàn)在存儲(chǔ)子系統(tǒng)端不能通過(guò)上面描述的冗余編碼檢測(cè)的寫(xiě)入位置錯(cuò)誤。
參照?qǐng)D8具體解釋此情況。如該附圖所示,假定扇區(qū)數(shù)據(jù)1(512字節(jié))和LRC1(對(duì)應(yīng)于扇區(qū)數(shù)據(jù)1的冗余編碼)被存儲(chǔ)在LBA1中,并且扇區(qū)數(shù)據(jù)2(512字節(jié))和LRC2(對(duì)應(yīng)于扇區(qū)數(shù)據(jù)2的冗余編碼)被存儲(chǔ)在LBA2中。在這個(gè)條件下,在過(guò)程1從LBA1讀取扇區(qū)數(shù)據(jù)1和LRC1,并且在過(guò)程2校驗(yàn)LRC1。結(jié)果,如果扇區(qū)數(shù)據(jù)1與LRC1一致,則在過(guò)程3修改扇區(qū)數(shù)據(jù)1,在過(guò)程4計(jì)算新LRC(LRC1′),并且在過(guò)程5把校正的扇區(qū)數(shù)據(jù)1′和LRC1′寫(xiě)入LBA1。
然而,如該附圖所示,假定要寫(xiě)入LBA1的數(shù)據(jù)被寫(xiě)入LBA2。換言之,最初應(yīng)當(dāng)在過(guò)程5重寫(xiě)的扇區(qū)數(shù)據(jù)1和LRC1仍然在LBA1中存儲(chǔ)。
在這個(gè)條件下,如果在過(guò)程6從LBA1讀取扇區(qū)數(shù)據(jù)1和LRC1并且在過(guò)程7校驗(yàn)LRC1,則判斷扇區(qū)數(shù)據(jù)1與LRC1一致。即,雖然在過(guò)程6返回最初不應(yīng)當(dāng)返回的不準(zhǔn)確數(shù)據(jù),然而在過(guò)程7不能檢測(cè)它們。此外,在這個(gè)條件下,盡管附圖中未示出,但是假定從LBA2讀取扇區(qū)數(shù)據(jù)1′和LRC1′。在這種情況下,讀取最初要寫(xiě)入LBA1的數(shù)據(jù),并且此外,由于扇區(qū)數(shù)據(jù)1′與LRC1′一致,所以不可能檢測(cè)寫(xiě)入位置的錯(cuò)誤。
通過(guò)這種方式,出現(xiàn)存儲(chǔ)子系統(tǒng)響應(yīng)讀取命令而向主機(jī)系統(tǒng)返回不準(zhǔn)確數(shù)據(jù)的問(wèn)題(此后被稱(chēng)作(問(wèn)題))。
因此,在某些情況下,針對(duì)該問(wèn)題,通過(guò)把LBA信息引入到冗余編碼中,能夠檢測(cè)到驅(qū)動(dòng)器從錯(cuò)誤地址讀取數(shù)據(jù)。通過(guò)采用這個(gè)方法,可以在要寫(xiě)入的LBA和實(shí)際寫(xiě)入的LBA之間存在差異的情況下檢測(cè)錯(cuò)誤。把圖8作為一個(gè)例子進(jìn)行解釋?zhuān)鼘?duì)應(yīng)于過(guò)程5之后從LBA2讀取數(shù)據(jù)的情況。
然而,即使采用了這種方法,由于LBA1信息被包含在對(duì)應(yīng)于在過(guò)程5應(yīng)當(dāng)已經(jīng)改寫(xiě)但是實(shí)際沒(méi)有改寫(xiě)的數(shù)據(jù)的冗余編碼中,所以在過(guò)程5之后從LBA1讀取數(shù)據(jù)的情況下不可能檢測(cè)錯(cuò)誤。因此,即使在這種方法被采用的情況下,仍然有該問(wèn)題出現(xiàn)的可能性。
作為檢測(cè)問(wèn)題的出現(xiàn)的現(xiàn)有技術(shù),存在如下文中所描述的方法。盤(pán)驅(qū)動(dòng)單元或主機(jī)系統(tǒng)當(dāng)寫(xiě)入數(shù)據(jù)時(shí)在數(shù)據(jù)內(nèi)并且在盤(pán)內(nèi)的不同位置存儲(chǔ)寫(xiě)入歷史信息,并且當(dāng)讀取數(shù)據(jù)時(shí)比較和驗(yàn)證這些分別存儲(chǔ)的寫(xiě)入歷史信息(例如,參考日本專(zhuān)利待審公開(kāi)Tokkai 2001-338468(5-6頁(yè),圖5-6))。
然而,日本專(zhuān)利待審公開(kāi)Tokkai 2001-338468(5-6頁(yè),圖5-6)的發(fā)明存在的問(wèn)題是,寫(xiě)入歷史被存儲(chǔ)在與扇區(qū)數(shù)據(jù)沒(méi)有關(guān)系的區(qū)域,并且驅(qū)動(dòng)器的容量被消耗。此外,還具有由于需要與扇區(qū)數(shù)據(jù)不同地讀取寫(xiě)入歷史,所以影響讀取性能的問(wèn)題。
發(fā)明內(nèi)容
提出本發(fā)明以解決上述技術(shù)問(wèn)題。本發(fā)明的一個(gè)目的是避免存儲(chǔ)子系統(tǒng)把不準(zhǔn)確數(shù)據(jù)返回到主機(jī)系統(tǒng)的問(wèn)題,而無(wú)需消耗驅(qū)動(dòng)器的容量。此外,本發(fā)明的另一個(gè)目的是避免存儲(chǔ)子系統(tǒng)把不準(zhǔn)確數(shù)據(jù)返回到主機(jī)系統(tǒng)的問(wèn)題,而無(wú)需影響從驅(qū)動(dòng)器讀取的性能。
為了實(shí)現(xiàn)這些目的,基于本發(fā)明,關(guān)于某扇區(qū)數(shù)據(jù)的寫(xiě)入歷史被加入到不同扇區(qū)數(shù)據(jù)中,并且在讀取時(shí)被驗(yàn)證。換言之,本發(fā)明的單元是用于檢測(cè)存儲(chǔ)器中不準(zhǔn)確數(shù)據(jù)的單元,包含添加單元,用于把結(jié)合要存儲(chǔ)在存儲(chǔ)器的第一扇區(qū)中的數(shù)據(jù)的更新而更新的歷史信息加入到該數(shù)據(jù)上,并且加入到要存儲(chǔ)在存儲(chǔ)器的第二扇區(qū)中的數(shù)據(jù)上;以及驗(yàn)證單元,用于通過(guò)在已經(jīng)被加到第一扇區(qū)中存儲(chǔ)的該數(shù)據(jù)上的歷史信息和已經(jīng)被加到第二扇區(qū)中存儲(chǔ)的該數(shù)據(jù)上的歷史信息之間進(jìn)行比較,來(lái)驗(yàn)證第一扇區(qū)中存儲(chǔ)的該數(shù)據(jù)和第二扇區(qū)中存儲(chǔ)的該數(shù)據(jù)。
此外,本發(fā)明也可以被視作在讀取已經(jīng)被加到不同扇區(qū)數(shù)據(jù)的某扇區(qū)數(shù)據(jù)的寫(xiě)入歷史時(shí)對(duì)其進(jìn)行驗(yàn)證的方法。在這種情況下,本發(fā)明的方法是一種用于在存儲(chǔ)以分布方式同步處理的多個(gè)數(shù)據(jù)的多個(gè)存儲(chǔ)器中檢測(cè)不準(zhǔn)確數(shù)據(jù)的方法,包括添加步驟,把結(jié)合多個(gè)數(shù)據(jù)中的一個(gè)數(shù)據(jù)的更新而更新的歷史信息加入到該一個(gè)數(shù)據(jù)上,并且加入到該多個(gè)數(shù)據(jù)中的另一個(gè)數(shù)據(jù)上;寫(xiě)入步驟,把該一個(gè)數(shù)據(jù)寫(xiě)入到存儲(chǔ)器的第一扇區(qū),并且把該另一個(gè)數(shù)據(jù)寫(xiě)入到存儲(chǔ)器的第二扇區(qū);讀取步驟,讀取第一扇區(qū)中存儲(chǔ)的數(shù)據(jù)和第二扇區(qū)中存儲(chǔ)的數(shù)據(jù);以及驗(yàn)證步驟,通過(guò)比較分別加入到兩個(gè)讀取數(shù)據(jù)的歷史信息來(lái)驗(yàn)證該兩個(gè)數(shù)據(jù)。
同時(shí),本發(fā)明也可以被視作允許計(jì)算機(jī)實(shí)現(xiàn)預(yù)定功能的程序。在這種情況下,本發(fā)明的程序允許連接到存儲(chǔ)器的計(jì)算機(jī)實(shí)現(xiàn)從第一數(shù)據(jù)中獲得結(jié)合要存儲(chǔ)在存儲(chǔ)器的第一扇區(qū)的第一數(shù)據(jù)的更新而更新的第一歷史信息,以及從第二數(shù)據(jù)中獲得結(jié)合要存儲(chǔ)在存儲(chǔ)器的第二扇區(qū)的第二數(shù)據(jù)的更新而更新的第二歷史信息的功能;以及通過(guò)比較第一歷史信息和第二歷史信息,驗(yàn)證第一數(shù)據(jù)或第二數(shù)據(jù)的功能。
為了更全面地理解本發(fā)明及其優(yōu)點(diǎn),現(xiàn)在參照下面結(jié)合附圖的描述。
圖1是基于本發(fā)明的實(shí)施例示出了用戶(hù)數(shù)據(jù),奇偶檢驗(yàn)數(shù)據(jù)和DC值的排列的第一個(gè)例子的圖例。
圖2是基于本發(fā)明的實(shí)施例示出了用戶(hù)數(shù)據(jù),奇偶檢驗(yàn)數(shù)據(jù)和DC值的排列的第二個(gè)例子的圖例。
圖3是基于本發(fā)明的實(shí)施例示出了冗余編碼的DC值的存儲(chǔ)方法的例子的圖例。
圖4是基于本發(fā)明的實(shí)施例示出了實(shí)現(xiàn)存儲(chǔ)子系統(tǒng)的計(jì)算機(jī)的硬件結(jié)構(gòu)的模塊圖。
圖5是基于本發(fā)明的實(shí)施例示出了存儲(chǔ)子系統(tǒng)的功能結(jié)構(gòu)的模塊圖。
圖6是基于本發(fā)明的實(shí)施例示出了升級(jí)(staging)處理操作的例子的流程圖。
圖7-1是基于本發(fā)明的實(shí)施例示出了降級(jí)(destaging)處理的操作的例子的流程圖。
圖7-2是基于本發(fā)明的實(shí)施例示出了降級(jí)處理的操作的例子的流程圖。
圖8是解釋現(xiàn)有技術(shù)的問(wèn)題的圖例。
具體實(shí)施例方式
此后,將參照附圖詳細(xì)描述本發(fā)明的實(shí)施例的最優(yōu)方面(此后,被稱(chēng)作″實(shí)施例的方面″)。這個(gè)實(shí)施例的一個(gè)方面是本發(fā)明被應(yīng)用于通過(guò)例如RAID5的奇偶檢驗(yàn)的使用而執(zhí)行數(shù)據(jù)保護(hù)的盤(pán)陣列系統(tǒng)。在類(lèi)似這個(gè)的盤(pán)陣列系統(tǒng)中,通過(guò)把從主機(jī)系統(tǒng)發(fā)送的數(shù)據(jù)按扇區(qū)大小分區(qū)而獲得的多個(gè)扇區(qū)數(shù)據(jù)(此后被稱(chēng)作″用戶(hù)數(shù)據(jù)″)和用于檢測(cè)不準(zhǔn)確用戶(hù)數(shù)據(jù)并且恢復(fù)它的扇區(qū)數(shù)據(jù)(此后被稱(chēng)作″奇偶校驗(yàn)數(shù)據(jù)″)被以分布方式存儲(chǔ)在多個(gè)盤(pán)中。此外,在存儲(chǔ)用戶(hù)數(shù)據(jù)的扇區(qū)(此后被稱(chēng)作″數(shù)據(jù)扇區(qū)″)中,伴隨提供了存儲(chǔ)用于校驗(yàn)用戶(hù)數(shù)據(jù)的有效性的冗余編碼的區(qū)域,并且在存儲(chǔ)奇偶檢驗(yàn)數(shù)據(jù)的扇區(qū)(此后被稱(chēng)作″奇偶檢驗(yàn)扇區(qū)″)中,伴隨提供了存儲(chǔ)用于校驗(yàn)奇偶檢驗(yàn)數(shù)據(jù)的有效性的冗余編碼的區(qū)域。
基于本發(fā)明的實(shí)施例,通過(guò)注意盤(pán)陣列系統(tǒng)的這種結(jié)構(gòu),在存儲(chǔ)用戶(hù)數(shù)據(jù)的數(shù)據(jù)扇區(qū)的冗余編碼區(qū)域中,和在存儲(chǔ)用戶(hù)數(shù)據(jù)的奇偶檢驗(yàn)數(shù)據(jù)的奇偶檢驗(yàn)扇區(qū)的冗余編碼區(qū)域中,提供要結(jié)合用戶(hù)數(shù)據(jù)的更新而更新的寫(xiě)入歷史信息。
這里,作為寫(xiě)入歷史信息,可以采用任何種類(lèi)的信息,而在實(shí)施例的一個(gè)方面,采用在更新用戶(hù)數(shù)據(jù)時(shí)將要加1的計(jì)數(shù)器。在這種情況下,由于寫(xiě)入歷史信息能夠作為計(jì)數(shù)器而被得到,以顯示用戶(hù)數(shù)據(jù)的降級(jí)的數(shù)量,所以這種計(jì)數(shù)器被稱(chēng)作DC(降級(jí)計(jì)數(shù)器),并且針對(duì)DC設(shè)置的值此后被稱(chēng)作DC值。
接著,參照?qǐng)D1和2詳細(xì)描述在實(shí)施例的該方面假定的RAID的結(jié)構(gòu)中的用戶(hù)數(shù)據(jù),奇偶檢驗(yàn)數(shù)據(jù),DC值等等的排列。
注意,在實(shí)施例的該方面,為了方便著想,數(shù)據(jù)扇區(qū)的冗余編碼區(qū)域中提供的DC被稱(chēng)作DDC(數(shù)據(jù)DC),并且對(duì)DDC設(shè)置的值被稱(chēng)作DDC值。
此外,在與所注意的用戶(hù)數(shù)據(jù)相關(guān)的奇偶檢驗(yàn)數(shù)據(jù)中,確定第一優(yōu)先奇偶檢驗(yàn)數(shù)據(jù)(主奇偶檢驗(yàn)數(shù)據(jù))和第二優(yōu)先奇偶檢驗(yàn)數(shù)據(jù)(次奇偶檢驗(yàn)數(shù)據(jù))。接著,存儲(chǔ)主奇偶檢驗(yàn)數(shù)據(jù)的奇偶檢驗(yàn)扇區(qū)的冗余編碼區(qū)域中提供的DC被稱(chēng)作PDC(主DC),并且對(duì)PDC設(shè)置的值被稱(chēng)作PDC值。而且,存儲(chǔ)次奇偶檢驗(yàn)數(shù)據(jù)的奇偶檢驗(yàn)扇區(qū)(次奇偶檢驗(yàn)扇區(qū))的冗余編碼區(qū)域中提供的DC被稱(chēng)作SDC(次DC),并且對(duì)SDC設(shè)置的值被稱(chēng)作SDC值。
例如,在RAID5等等的情況下,與存儲(chǔ)所述用戶(hù)數(shù)據(jù)的數(shù)據(jù)扇區(qū)存在于相同片段(slice)的奇偶檢驗(yàn)扇區(qū)被設(shè)置成主奇偶檢驗(yàn)扇區(qū),并且在扇區(qū)的冗余編碼區(qū)域中維護(hù)的DC被設(shè)置成PDC。此外,假定與存儲(chǔ)所述用戶(hù)數(shù)據(jù)的數(shù)據(jù)扇區(qū)存在于不同片段的奇偶檢驗(yàn)扇區(qū)被設(shè)置成次奇偶檢驗(yàn)扇區(qū),并且在扇區(qū)的冗余編碼區(qū)域中維護(hù)的DC被設(shè)置成SDC。
此外,在RAID50等等的情況下,存在于鏡像片段之一中的奇偶檢驗(yàn)扇區(qū)被設(shè)置成主奇偶檢驗(yàn)扇區(qū),并且在扇區(qū)的冗余編碼區(qū)域中維護(hù)的DC被設(shè)置成PDC。接著,假定存在于鏡像片段的其它片段中的奇偶檢驗(yàn)扇區(qū)被設(shè)置成次奇偶檢驗(yàn)扇區(qū),并且在扇區(qū)的冗余編碼區(qū)域中維護(hù)的DC被設(shè)置成SDC。
圖1是示出了RAID5的結(jié)構(gòu)的圖例。在圖1中,準(zhǔn)備了3個(gè)盤(pán),并且在每個(gè)盤(pán)中提供512字節(jié)的扇區(qū)數(shù)據(jù)的區(qū)域和4到16字節(jié)的冗余編碼的區(qū)域。此外,在兩個(gè)任意選擇的片段中,如附圖所示,維護(hù)用戶(hù)數(shù)據(jù)(在附圖中指示為″數(shù)據(jù)″),奇偶檢驗(yàn)數(shù)據(jù)(指示為″奇偶檢驗(yàn)″),DDC值(指示為″DDC″),PDC值(指示為″PDC″),及SDC值(指示為″SDC″)。換言之,在存儲(chǔ)用戶(hù)數(shù)據(jù)1-1,1-2,2-1及2-2的數(shù)據(jù)扇區(qū)的冗余編碼區(qū)域中,DDC 1-1,1-2,2-1及2-2被分別維護(hù)為每個(gè)用戶(hù)數(shù)據(jù)的DC值。此外,奇偶檢驗(yàn)數(shù)據(jù)1是用戶(hù)數(shù)據(jù)1-1及1-2的主奇偶檢驗(yàn)數(shù)據(jù),以及用戶(hù)數(shù)據(jù)2-1和2-2的次奇偶檢驗(yàn)數(shù)據(jù)。因此,在存儲(chǔ)奇偶檢驗(yàn)數(shù)據(jù)1的奇偶檢驗(yàn)扇區(qū)的冗余編碼區(qū)域中,維護(hù)對(duì)應(yīng)于DDC 1-1和1-2的PDC 1-1和1-2,同時(shí)維護(hù)對(duì)應(yīng)于DDC 2-1和2-2的SDC 2-1和2-2。并且,奇偶檢驗(yàn)數(shù)據(jù)2是用戶(hù)數(shù)據(jù)2-1和2-2的主奇偶檢驗(yàn)數(shù)據(jù),以及用戶(hù)數(shù)據(jù)1-1和1-2的次奇偶檢驗(yàn)數(shù)據(jù)。因此,在存儲(chǔ)奇偶檢驗(yàn)數(shù)據(jù)2的奇偶檢驗(yàn)扇區(qū)的冗余編碼區(qū)域中,存儲(chǔ)對(duì)應(yīng)于DDC 2-1和2-2的PDC 2-1和2-2,同時(shí)維護(hù)對(duì)應(yīng)于DDC 1-1和1-2的SDC 1-1和1-2。
此外,圖2是示出了RAID50的結(jié)構(gòu)的圖例。類(lèi)似于圖1,在圖2中,準(zhǔn)備了3個(gè)盤(pán)并且盡管未圖解,在每個(gè)盤(pán)中提供了512字節(jié)的扇區(qū)數(shù)據(jù)區(qū)域和4到16字節(jié)的冗余編碼區(qū)域。此外,這個(gè)RAID50結(jié)構(gòu)是鏡像的RAID5的結(jié)構(gòu),并且盤(pán)1到3中存儲(chǔ)的數(shù)據(jù)也被分別存儲(chǔ)在盤(pán)4到6。此外,在這些鏡像的片段中,如附圖所示,維護(hù)用戶(hù)數(shù)據(jù)(在附圖中指示為″數(shù)據(jù)″),奇偶檢驗(yàn)數(shù)據(jù)(指示為″奇偶檢驗(yàn)″),DDC值(指示為″DDC″),PDC值(指示為″PDC″)及SDC值(指示為″SDC″)。換言之,在存儲(chǔ)用戶(hù)數(shù)據(jù)1和2的數(shù)據(jù)扇區(qū)的冗余編碼區(qū)域中,DDC 1和2被維護(hù)為每個(gè)用戶(hù)數(shù)據(jù)的DC值。此外,由于要存儲(chǔ)在盤(pán)3的奇偶檢驗(yàn)數(shù)據(jù)是用戶(hù)1和2的主奇偶檢驗(yàn)數(shù)據(jù),所以在存儲(chǔ)這個(gè)奇偶檢驗(yàn)數(shù)據(jù)的奇偶檢驗(yàn)扇區(qū)的冗余編碼區(qū)域中,維護(hù)對(duì)應(yīng)于DDC 1和2的PDC 1和2。并且,由于要存儲(chǔ)在盤(pán)6的奇偶檢驗(yàn)數(shù)據(jù)是用戶(hù)1和2的次奇偶檢驗(yàn)數(shù)據(jù),所以在存儲(chǔ)這個(gè)奇偶檢驗(yàn)數(shù)據(jù)的奇偶檢驗(yàn)扇區(qū)的冗余編碼區(qū)域中,維護(hù)對(duì)應(yīng)于DDC 1和2的SDC 1和2。
接著,參照?qǐng)D3,描述存儲(chǔ)DC值到冗余編碼區(qū)域的方法。注意,圖3示出了在圖1的RAID5的結(jié)構(gòu)中DC值的存儲(chǔ)方法。
如上所述,每個(gè)用戶(hù)數(shù)據(jù)的DC值在每個(gè)扇區(qū)的冗余編碼區(qū)域被存儲(chǔ)為用戶(hù)數(shù)據(jù)的冗余編碼(RCx),以及對(duì)應(yīng)于用戶(hù)數(shù)據(jù)的奇偶檢驗(yàn)數(shù)據(jù)的冗余編碼(RCpx)。具體地,首先,RCG(冗余編碼生成器)通過(guò)使用常規(guī)方法產(chǎn)生每個(gè)扇區(qū)數(shù)據(jù)的冗余編碼。接著,通過(guò)如此產(chǎn)生的冗余編碼和要存儲(chǔ)的DC值的XOR操作獲得的新冗余編碼被存儲(chǔ)在每個(gè)扇區(qū)的冗余編碼區(qū)域中。
例如,在DC值被存儲(chǔ)在用戶(hù)數(shù)據(jù)2-1的冗余編碼RC 2-1中的情況下,存儲(chǔ)方法如下。
首先,RCG通過(guò)使用常規(guī)方法產(chǎn)生用戶(hù)數(shù)據(jù)2-1的冗余編碼RC2-1。接著,XOR操作器執(zhí)行RC 2-1-和DC 2-1的XOR操作,從而獲得新冗余編碼RC 2-1。這個(gè)新冗余編碼被存儲(chǔ)在冗余編碼區(qū)域中。
此外,在DC值被存儲(chǔ)在奇偶檢驗(yàn)數(shù)據(jù)2的冗余編碼RCp2中的情況下,存儲(chǔ)方法如下。
首先,RCG通過(guò)使用常規(guī)方法產(chǎn)生奇偶檢驗(yàn)數(shù)據(jù)2的冗余編碼RCp2。接著,XOR操作器執(zhí)行RCp2-和DC 2-1,2-2,1-1和1-2所形成的位序列的XOR操作,從而獲得新冗余編碼RCp2。這個(gè)新冗余編碼被存儲(chǔ)在冗余編碼區(qū)域中。
此外,類(lèi)似于用戶(hù)數(shù)據(jù)2-1的情況,DC值被存儲(chǔ)到用戶(hù)數(shù)據(jù)2-2的冗余編碼R C2-2中。
接著,詳細(xì)描述產(chǎn)生和驗(yàn)證包含這種DC值的冗余編碼的存儲(chǔ)子系統(tǒng)的結(jié)構(gòu)和操作的例子。
圖4是示意性示出最好用作這種存儲(chǔ)子系統(tǒng)的計(jì)算機(jī)的硬件結(jié)構(gòu)的例子的圖例。
圖4中示出的計(jì)算機(jī)包含作為操作裝置的CPU(中央處理單元)10a;主存儲(chǔ)器10c,也通過(guò)M/B(母板)芯片組10b和CPU總線連接到CPU 10a;視頻卡10d,通過(guò)M/B芯片組10b和AGP(圖形加速端口)連接到CPU 10a;及顯示器10j。計(jì)算機(jī)還包含磁盤(pán)驅(qū)動(dòng)器(HDD)10e,通過(guò)PCI(外設(shè)部件互連)總線及網(wǎng)絡(luò)接口10g連接到M/B芯片組10b。計(jì)算機(jī)此外還包含軟盤(pán)驅(qū)動(dòng)器10h,通過(guò)橋電路10f及例如ISA(工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu))總線的低速總線從PCI總線連接到M/B芯片組10b;及鍵盤(pán)/鼠標(biāo)10i。
注意,圖4僅僅示出了實(shí)現(xiàn)實(shí)施例的該方面的計(jì)算機(jī)的硬件結(jié)構(gòu)的例子,并且就能夠應(yīng)用的本實(shí)施例的該方面而言,能夠采用各種不同結(jié)構(gòu)。例如,可以用這樣的方式配置計(jì)算機(jī),其中不是提供視頻卡10d,而是只安裝視頻存儲(chǔ)器,并且可通過(guò)CPU 10a處理圖像數(shù)據(jù)。可以用這樣的方式配置計(jì)算機(jī),其中通過(guò)例如ATA(AT附件)和SCSI(小型計(jì)算機(jī)系統(tǒng)接口)接口提供CD-R(可記錄光盤(pán))或DVD-RAM(數(shù)字化視頻光盤(pán)隨機(jī)訪問(wèn)存儲(chǔ)器)的驅(qū)動(dòng)器以作為外部存儲(chǔ)器設(shè)備。
圖5是示出實(shí)施例的該方面的存儲(chǔ)子系統(tǒng)的結(jié)構(gòu)的圖例。這個(gè)存儲(chǔ)子系統(tǒng)包含控制器11;前端接口單元12(此后被稱(chēng)作″前端I/F單元″);數(shù)據(jù)路徑控制器13;后端接口單元14(此后被稱(chēng)作″后端I/F單元″);高速緩存單元15;及盤(pán)驅(qū)動(dòng)器161,162,---,16n。控制器11控制整個(gè)存儲(chǔ)子系統(tǒng)。附帶地,控制器11也具有根據(jù)從數(shù)據(jù)路徑控制器13傳遞的信息指定在數(shù)據(jù)扇區(qū),主奇偶檢驗(yàn)扇區(qū)和次奇偶檢驗(yàn)扇區(qū)中出現(xiàn)問(wèn)題的扇區(qū)的功能。這個(gè)功能能夠被作為″指定裝置″。前端I/F單元12充當(dāng)主機(jī)系統(tǒng)和存儲(chǔ)子系統(tǒng)之間的接口。
此外,數(shù)據(jù)路徑控制器13控制后端I/F單元14和高速緩存單元15之間的數(shù)據(jù)路徑,并且還包含冗余編碼生成器13a,冗余編碼驗(yàn)證器13b,DDC存儲(chǔ)器區(qū)域13c,SDC存儲(chǔ)器區(qū)域13d和舊數(shù)據(jù)存儲(chǔ)器區(qū)域13e。附帶地,數(shù)據(jù)路徑控制器13也具有把冗余編碼生成器13a產(chǎn)生的冗余編碼加入到數(shù)據(jù)中的功能。這個(gè)功能能夠被作為″添加裝置″。并且,冗余編碼驗(yàn)證器13b能夠被作為″驗(yàn)證裝置″。后端I/F單元14充當(dāng)存儲(chǔ)子系統(tǒng)和盤(pán)驅(qū)動(dòng)器161,162,…,16n之間的接口。
另外,高速緩存單元15高速緩存從盤(pán)驅(qū)動(dòng)器161,162,---,16n讀取的用戶(hù)數(shù)據(jù),奇偶檢驗(yàn)數(shù)據(jù)和DC值,并且還包含高速緩存控制器15a,用戶(hù)數(shù)據(jù)存儲(chǔ)器區(qū)域15b,奇偶檢驗(yàn)數(shù)據(jù)存儲(chǔ)器區(qū)域和DC緩沖器15d。
盤(pán)驅(qū)動(dòng)器161,162,---,16n是存儲(chǔ)變成存儲(chǔ)子系統(tǒng)要處理的對(duì)象的用戶(hù)數(shù)據(jù)和奇偶檢驗(yàn)數(shù)據(jù)的存儲(chǔ)器,并且對(duì)應(yīng)于圖1中的盤(pán)1到3以及圖2中的盤(pán)1到6。
接著,描述數(shù)據(jù)路徑控制器13的內(nèi)部結(jié)構(gòu)。冗余編碼生成器13a具有當(dāng)響應(yīng)對(duì)驅(qū)動(dòng)器的寫(xiě)入請(qǐng)求用戶(hù)數(shù)據(jù)被從高速緩存單元15傳送到后端I/F單元14時(shí)計(jì)算冗余編碼的功能。以讀取DC緩沖器15d中的對(duì)應(yīng)DC值,并且執(zhí)行通過(guò)使用常規(guī)方法獲得的冗余編碼和如此讀取的DC值的XOR操作的方式計(jì)算冗余編碼。
此外,冗余編碼驗(yàn)證器13b具有當(dāng)響應(yīng)驅(qū)動(dòng)器的讀取請(qǐng)求而將用戶(hù)數(shù)據(jù)從后端I/F單元14傳送到高速緩存單元15時(shí)驗(yàn)證冗余編碼的功能。以這種方式驗(yàn)證冗余編碼,其中通過(guò)執(zhí)行使用常規(guī)方法從用戶(hù)數(shù)據(jù)獲得的冗余編碼和從驅(qū)動(dòng)器讀取的冗余編碼的XOR操作來(lái)獲得DC值,并且把如此所獲得的DC值與DC緩沖器15d中存儲(chǔ)的DC值比較。
DDC存儲(chǔ)器區(qū)域13c是臨時(shí)存儲(chǔ)從用戶(hù)數(shù)據(jù)的冗余編碼獲得的DDC值的區(qū)域,而SDC存儲(chǔ)器區(qū)域13d是臨時(shí)存儲(chǔ)從次奇偶檢驗(yàn)數(shù)據(jù)的冗余編碼獲得的SDC值的區(qū)域。舊數(shù)據(jù)存儲(chǔ)器區(qū)域13e是臨時(shí)存儲(chǔ)在降級(jí)之前已經(jīng)讀取的變化之前的數(shù)據(jù)(此后被稱(chēng)作″舊數(shù)據(jù)″)的區(qū)域。
注意,與軟件資源及硬件資源協(xié)作地實(shí)現(xiàn)這些功能。具體地,實(shí)現(xiàn)存儲(chǔ)子系統(tǒng)的CPU 10a把實(shí)現(xiàn)冗余編碼生成器13a及冗余編碼驗(yàn)證器13b的功能的程序從外部存儲(chǔ)設(shè)備讀到主存儲(chǔ)器10c中,并且根據(jù)必要性,在訪問(wèn)主存儲(chǔ)器10c中的DDC存儲(chǔ)器區(qū)域13c,SDC存儲(chǔ)器區(qū)域13d及舊數(shù)據(jù)存儲(chǔ)器區(qū)域13e中存儲(chǔ)的信息的同時(shí)執(zhí)行處理。
接著,描述高速緩存單元15的內(nèi)部結(jié)構(gòu)。高速緩存控制器15a具有控制針對(duì)用戶(hù)數(shù)據(jù)存儲(chǔ)器區(qū)域15b,奇偶檢驗(yàn)存儲(chǔ)器區(qū)域15c及DC緩沖器15d的信息的讀/寫(xiě)的功能。例如,高速緩存控制器15a控制哪些種類(lèi)的信息被存儲(chǔ)在用戶(hù)數(shù)據(jù)存儲(chǔ)器區(qū)域15b,奇偶檢驗(yàn)數(shù)據(jù)存儲(chǔ)器區(qū)域15c及DC緩沖器15d中,以及控制DC緩沖器15d中存儲(chǔ)的DC值是否已經(jīng)被驗(yàn)證。
用戶(hù)數(shù)據(jù)存儲(chǔ)器區(qū)域15b是存儲(chǔ)從盤(pán)驅(qū)動(dòng)器161,162,---,16n讀取的用戶(hù)數(shù)據(jù)的區(qū)域,而奇偶檢驗(yàn)數(shù)據(jù)存儲(chǔ)器區(qū)域15c是存儲(chǔ)從盤(pán)驅(qū)動(dòng)器161,162,---,16n讀取的奇偶檢驗(yàn)數(shù)據(jù)的區(qū)域。
DC緩沖器15d是存儲(chǔ)從主奇偶檢驗(yàn)數(shù)據(jù)的冗余編碼獲得的、作為從用戶(hù)數(shù)據(jù)的冗余編碼獲得的DC值的比較對(duì)象的DC數(shù)據(jù)的區(qū)域。附帶地,在RAID5等的情況下,在DC緩沖器15d中能夠維護(hù)的DC值是在用戶(hù)數(shù)據(jù)存儲(chǔ)器區(qū)域15b中能夠維護(hù)的用戶(hù)數(shù)據(jù)的用戶(hù)數(shù)據(jù)塊的數(shù)量的兩倍,并且在RAID50等的情況下,等于在用戶(hù)數(shù)據(jù)存儲(chǔ)器區(qū)域15b中能夠維護(hù)的用戶(hù)數(shù)據(jù)塊的數(shù)量。此外,當(dāng)在高速緩存單元15中分配用戶(hù)數(shù)據(jù)存儲(chǔ)器區(qū)域15b時(shí),響應(yīng)來(lái)自控制器11的請(qǐng)求,由高速緩存控制器15a設(shè)置DC緩沖器15d。
接著,描述基于實(shí)施例的該方面的存儲(chǔ)子系統(tǒng)的操作。當(dāng)從盤(pán)驅(qū)動(dòng)器161,162,---,16n讀取扇區(qū)數(shù)據(jù)到高速緩存單元15(升級(jí))時(shí),以及當(dāng)從高速緩存單元15寫(xiě)扇區(qū)數(shù)據(jù)到盤(pán)驅(qū)動(dòng)器161,162,---,16n(降級(jí))時(shí),執(zhí)行存儲(chǔ)子系統(tǒng)中的DC值的操作。因此,如下分別描述升級(jí)操作和降級(jí)操作。
首先,參照?qǐng)D6,描述升級(jí)操作。注意,圖6示出當(dāng)執(zhí)行一個(gè)用戶(hù)數(shù)據(jù)的升級(jí)時(shí)的操作。通常,響應(yīng)來(lái)自主機(jī)系統(tǒng)的讀命令,返回至少一個(gè)片段中包含的多個(gè)用戶(hù)數(shù)據(jù)。然而,在這種情況下,可以認(rèn)為是對(duì)多個(gè)用戶(hù)數(shù)據(jù)的每個(gè)用戶(hù)數(shù)據(jù)執(zhí)行圖6的操作。此外,由于奇偶檢驗(yàn)數(shù)據(jù)保持成為由用戶(hù)數(shù)據(jù)保持的DC值的核對(duì)對(duì)象的DC值,所以不對(duì)奇偶檢驗(yàn)數(shù)據(jù)執(zhí)行圖6的操作。
首先,控制器11檢查要執(zhí)行升級(jí)的用戶(hù)數(shù)據(jù)的DC值是否存在于DC緩沖器15d中(步驟101)。由于過(guò)去從主奇偶檢驗(yàn)數(shù)據(jù)獲得的DC值被存儲(chǔ)在DC緩沖器15d中,所以檢查此時(shí)必須比較的DC值是否存在。結(jié)果,當(dāng)判斷DC值存在于DC緩沖器15d中時(shí),處理前進(jìn)到步驟104。反之,當(dāng)判斷DC值不存在于DC緩沖器15d中時(shí),控制器11指示后端I/F單元14讀取對(duì)應(yīng)于這個(gè)用戶(hù)數(shù)據(jù)的主奇偶檢驗(yàn)數(shù)據(jù)。在此之后,后端I/F單元14對(duì)驅(qū)動(dòng)器執(zhí)行主奇偶檢驗(yàn)數(shù)據(jù)的讀取請(qǐng)求。接著,如此讀取的主奇偶檢驗(yàn)數(shù)據(jù)通過(guò)數(shù)據(jù)路徑控制器13被傳送到高速緩存單元15的奇偶檢驗(yàn)數(shù)據(jù)存儲(chǔ)器區(qū)域15c(步驟102)。在這個(gè)數(shù)據(jù)傳送時(shí),冗余編碼驗(yàn)證器13b從讀取的主奇偶檢驗(yàn)數(shù)據(jù)產(chǎn)生冗余編碼。接著,通過(guò)執(zhí)行如此產(chǎn)生的冗余編碼和加入主奇偶檢驗(yàn)數(shù)據(jù)中的冗余編碼的XOR操作來(lái)獲得PDC值。這個(gè)PDC值被傳送到DC緩沖器15d(步驟103)。注意,此時(shí)PDC值未被定義為已驗(yàn)證。
接著,控制器11指示后端I/F單元14讀取執(zhí)行升級(jí)的用戶(hù)數(shù)據(jù)。在此之后,后端I/F單元14對(duì)驅(qū)動(dòng)器執(zhí)行用戶(hù)數(shù)據(jù)的讀取請(qǐng)求。接著,如此讀取的用戶(hù)數(shù)據(jù)通過(guò)數(shù)據(jù)路徑控制器13被傳送到高速緩存單元15的用戶(hù)數(shù)據(jù)存儲(chǔ)器區(qū)域15b(步驟104)。在這個(gè)數(shù)據(jù)傳送時(shí),冗余編碼驗(yàn)證器13b從如此讀取的用戶(hù)數(shù)據(jù)產(chǎn)生冗余編碼。接著,通過(guò)執(zhí)行如此產(chǎn)生的冗余編碼和加入用戶(hù)數(shù)據(jù)中的冗余編碼的XOR操作來(lái)獲得DDC值。把這個(gè)DDC值與DC緩沖器15d中的PDC值比較(步驟105)。
結(jié)果,當(dāng)PDC值與DDC值一致時(shí),PDC值被定義成已驗(yàn)證(步驟106)。即,指示高速緩存控制器15a以便進(jìn)行控制,使得DC緩沖器15d中存儲(chǔ)的PDC值作為第二次和后續(xù)的DDC值的比較對(duì)象是可靠的。在這種情況下,無(wú)需處理地完成升級(jí)過(guò)程。另一方面,當(dāng)PDC值與DDC值不一致時(shí),冗余編碼驗(yàn)證器13b在DDC存儲(chǔ)器區(qū)域13c中臨時(shí)存儲(chǔ)如此獲得的DDC值,并且通知控制器11出現(xiàn)DC值的不一致。
在這之后,控制器11檢查PDC值是否已經(jīng)被驗(yàn)證(步驟109)。結(jié)果,當(dāng)PDC值已經(jīng)被驗(yàn)證時(shí),控制器11檢測(cè)存儲(chǔ)在步驟104讀取的用戶(hù)數(shù)據(jù)的數(shù)據(jù)扇區(qū)中出現(xiàn)的問(wèn)題,并且通過(guò)前端I/F單元12向主機(jī)系統(tǒng)通知問(wèn)題的出現(xiàn)(步驟110)。注意,然后自主地或通過(guò)來(lái)自主機(jī)系統(tǒng)的指令執(zhí)行恢復(fù)處理。然而,由于過(guò)程類(lèi)似于普通RAID系統(tǒng)的過(guò)程,所以不在這里描述。
另一方面,如果PDC值仍沒(méi)有被驗(yàn)證,則控制器11指示后端I/F單元14讀取次奇偶檢驗(yàn)數(shù)據(jù)。在此之后,后端I/F單元14對(duì)驅(qū)動(dòng)器執(zhí)行次奇偶檢驗(yàn)數(shù)據(jù)的讀取請(qǐng)求。接著,如此讀取的次奇偶檢驗(yàn)數(shù)據(jù)被傳送到數(shù)據(jù)路徑控制器13(步驟111)。當(dāng)這個(gè)數(shù)據(jù)傳送時(shí),冗余編碼驗(yàn)證器13b從如此讀取的次奇偶檢驗(yàn)數(shù)據(jù)產(chǎn)生冗余編碼。接著,通過(guò)執(zhí)行如此產(chǎn)生的冗余編碼和加入次奇偶檢驗(yàn)數(shù)據(jù)中的冗余編碼的XOR操作來(lái)獲得SDC值。這個(gè)SDC值被臨時(shí)存儲(chǔ)在SDC存儲(chǔ)器區(qū)域13d中,同時(shí)SDC值與DC緩沖器15d中的PDC值比較(步驟112)。
結(jié)果,當(dāng)PDC值與SDC值一致時(shí),冗余編碼驗(yàn)證器13b定義PDC值為已驗(yàn)證(步驟113)。接著,冗余編碼驗(yàn)證器13b檢測(cè)存儲(chǔ)在步驟104讀取的用戶(hù)數(shù)據(jù)的數(shù)據(jù)扇區(qū)中出現(xiàn)的問(wèn)題,并且通過(guò)前端I/F單元12向主機(jī)系統(tǒng)通知問(wèn)題的出現(xiàn)(步驟110)。注意,然后自主地或通過(guò)來(lái)自主機(jī)系統(tǒng)的指令執(zhí)行恢復(fù)處理,然而,由于過(guò)程類(lèi)似于普通RAID系統(tǒng)的過(guò)程,所以不在這里描述。另一方面,當(dāng)PDC值與SDC值不一致時(shí),SDC存儲(chǔ)器區(qū)域13d中臨時(shí)存儲(chǔ)的SDC值與DDC存儲(chǔ)器區(qū)域13c中臨時(shí)存儲(chǔ)的DDC值比較(步驟114)。
結(jié)果,當(dāng)SDC值與DDC值一致時(shí),冗余編碼驗(yàn)證器13b用DDC存儲(chǔ)器區(qū)域13c中臨時(shí)存儲(chǔ)的DDC值改寫(xiě)DC緩沖器15d中的PDC值,并且定義PDC值為已驗(yàn)證(步驟115)。接著,冗余編碼驗(yàn)證器13b檢測(cè)出現(xiàn)在主奇偶檢驗(yàn)扇區(qū)中的問(wèn)題,并且通過(guò)前端I/F單元12向主機(jī)系統(tǒng)通知問(wèn)題的出現(xiàn)(步驟116)。注意,然后自主地或通過(guò)來(lái)自主機(jī)系統(tǒng)的指令執(zhí)行恢復(fù)處理,然而,由于過(guò)程類(lèi)似于普通RAID系統(tǒng)的過(guò)程,所以不在這里描述。另一方面,當(dāng)SDC值與DDC值不一致時(shí),控制器11從DC緩沖器15d中刪除PDC值(步驟117)。接著,控制器11檢測(cè)雙重故障的出現(xiàn),并且通過(guò)前端I/F單元12向主機(jī)系統(tǒng)通知故障的出現(xiàn)(步驟118)。注意,然后自主地或通過(guò)來(lái)自主機(jī)系統(tǒng)的指令執(zhí)行恢復(fù)處理,然而,由于過(guò)程類(lèi)似于普通RAID系統(tǒng)的過(guò)程,所以不在這里描述。
接著,參照?qǐng)D7-1和7-2,描述降級(jí)的操作。注意,圖7-1和7-2示出每個(gè)片段執(zhí)行的降級(jí)操作。例如,即使在多個(gè)用戶(hù)數(shù)據(jù)中只有一部分發(fā)生變化時(shí),奇偶檢驗(yàn)數(shù)據(jù)也根據(jù)這個(gè)變化而變化。因此,需要每個(gè)片段地執(zhí)行處理。
首先,控制器11檢查在作為降級(jí)對(duì)象的片段中存在的主奇偶檢驗(yàn)數(shù)據(jù)是否存在于高速緩存單元15的奇偶檢驗(yàn)數(shù)據(jù)存儲(chǔ)器區(qū)域15c中(步驟201)。結(jié)果,當(dāng)判斷主奇偶檢驗(yàn)數(shù)據(jù)存在于奇偶檢驗(yàn)數(shù)據(jù)存儲(chǔ)器區(qū)域15c時(shí),處理前進(jìn)到步驟211。
反之,當(dāng)判斷主奇偶檢驗(yàn)數(shù)據(jù)不存在于奇偶檢驗(yàn)數(shù)據(jù)存儲(chǔ)器區(qū)域15c時(shí),控制器11指示后端I/F單元14讀取主奇偶檢驗(yàn)數(shù)據(jù)。在此之后,后端I/F單元14指示驅(qū)動(dòng)器執(zhí)行主奇偶檢驗(yàn)數(shù)據(jù)的讀取請(qǐng)求。接著,如此讀取的主奇偶檢驗(yàn)數(shù)據(jù)通過(guò)數(shù)據(jù)路徑控制器13被傳送到高速緩存單元15的奇偶檢驗(yàn)數(shù)據(jù)存儲(chǔ)器區(qū)域15c(步驟202)。
當(dāng)這個(gè)數(shù)據(jù)傳送時(shí),冗余編碼驗(yàn)證器13b從如此讀取的主奇偶檢驗(yàn)數(shù)據(jù)產(chǎn)生冗余編碼。接著,通過(guò)執(zhí)行如此產(chǎn)生的冗余編碼和加入主奇偶檢驗(yàn)數(shù)據(jù)中的冗余編碼的XOR操作來(lái)獲得PDC值(步驟203)。
接著,控制器11檢查存儲(chǔ)這個(gè)主奇偶檢驗(yàn)數(shù)據(jù)的主奇偶檢驗(yàn)扇區(qū)的冗余編碼區(qū)域中保持的PDC值是否已經(jīng)存在于DC緩沖器15d中(步驟204)。這里,如果在冗余編碼區(qū)域中保持多個(gè)PDC值,則所有它們以集中方式被當(dāng)作判斷對(duì)象來(lái)處理。例如,在圖1的奇偶檢驗(yàn)數(shù)據(jù)1的情況下,PDC 1-1和1-2集中地被當(dāng)作判斷對(duì)象。
附帶地,盡管在步驟201判斷奇偶檢驗(yàn)數(shù)據(jù)不存在,但是在步驟204判斷PDC值存在的情況限于RAID5等等的情況。這種情況不出現(xiàn)于RAID50等等的情況下。這是由于,在RAID5等的情況下,用戶(hù)數(shù)據(jù)的DC值也存在于不同片段的奇偶檢驗(yàn)扇區(qū)的冗余編碼區(qū)域中,而在RAID50等的情況下,用戶(hù)數(shù)據(jù)的DC值只存在于相同片段的奇偶檢驗(yàn)扇區(qū)的冗余編碼區(qū)域中。
當(dāng)在步驟204判斷PDC值不存在時(shí),在步驟203獲得的PDC值被簡(jiǎn)單地傳送到DC緩沖器15d(步驟205),并且處理前進(jìn)到步驟211。此時(shí),PDC值沒(méi)有被定義為已驗(yàn)證。
并且,當(dāng)判斷PDC值存在時(shí),在步驟203獲得的PDC值與DC緩沖器15d中對(duì)應(yīng)的PDC值比較(步驟206)。
結(jié)果,當(dāng)在步驟203獲得的PDC值與DC緩沖器15d中的PDC值一致時(shí),PDC值被定義成已驗(yàn)證(步驟207),并且處理前進(jìn)到步驟211。另一方面,當(dāng)在步驟203獲得的PDC值與DC緩沖器15d中的PDC值不一致時(shí),檢查PDC值是否被定義成已驗(yàn)證(步驟208)。
結(jié)果,當(dāng)發(fā)現(xiàn)PDC值被驗(yàn)證時(shí),檢測(cè)到主奇偶檢驗(yàn)扇區(qū)中問(wèn)題的出現(xiàn),并且通過(guò)前端I/F單元12把此情況通知主機(jī)系統(tǒng)(步驟210),并且處理結(jié)束。注意,然后自主地或通過(guò)來(lái)自主機(jī)系統(tǒng)的指令執(zhí)行恢復(fù)處理,然而,由于過(guò)程類(lèi)似于普通RAID系統(tǒng)的過(guò)程,所以不在這里描述。
并且,當(dāng)PDC值沒(méi)有被定義為已驗(yàn)證時(shí),用在步驟203獲得的PDC值改寫(xiě)DC緩沖器15d中的PDC值(步驟209),并且處理前進(jìn)到步驟211。此時(shí),PDC值沒(méi)有被定義為已驗(yàn)證。
接著,控制器11指示后端I/F單元14讀取要降級(jí)的用戶(hù)數(shù)據(jù)。在此之后,后端I/F單元14對(duì)驅(qū)動(dòng)器執(zhí)行用戶(hù)數(shù)據(jù)的讀取請(qǐng)求。接著,如此讀取的用戶(hù)數(shù)據(jù)被傳送到數(shù)據(jù)路徑控制器13的舊數(shù)據(jù)存儲(chǔ)器區(qū)域13e(步驟211)。在這個(gè)數(shù)據(jù)傳送時(shí),冗余編碼驗(yàn)證器13b從如此讀取的用戶(hù)數(shù)據(jù)產(chǎn)生冗余編碼。接著,通過(guò)執(zhí)行如此產(chǎn)生的冗余編碼和加入用戶(hù)數(shù)據(jù)中的冗余編碼的XOR操作來(lái)獲得DDC值。把這個(gè)DDC值與DC緩沖器15d中的PDC值比較(步驟221)。結(jié)果,當(dāng)PDC值與DDC值不一致時(shí),冗余編碼驗(yàn)證器13b在DDC存儲(chǔ)器區(qū)域13c中臨時(shí)存儲(chǔ)如此獲得的DDC值(步驟228),并且通知控制器11存在DC值的不一致。
在這之后,控制器11檢查PDC值是否被定義成已驗(yàn)證(步驟229)。結(jié)果,當(dāng)PDC值被定義成已驗(yàn)證時(shí),控制器11檢測(cè)到在存儲(chǔ)步驟104所讀取的用戶(hù)數(shù)據(jù)的數(shù)據(jù)扇區(qū)中出現(xiàn)問(wèn)題,并且通過(guò)前端I/F單元12向主機(jī)系統(tǒng)通知問(wèn)題的出現(xiàn)(步驟230)。注意,然后自主地或通過(guò)來(lái)自主機(jī)系統(tǒng)的指令執(zhí)行恢復(fù)處理,然而,由于過(guò)程類(lèi)似于普通RAID系統(tǒng)的過(guò)程,所以不在這里描述。
反之,當(dāng)PDC值沒(méi)有被定義為已驗(yàn)證時(shí),控制器11指示后端I/F單元14讀取次奇偶檢驗(yàn)數(shù)據(jù)。在此之后,后端I/F單元14對(duì)驅(qū)動(dòng)器執(zhí)行次奇偶檢驗(yàn)數(shù)據(jù)的讀取請(qǐng)求。接著,如此讀取的次奇偶檢驗(yàn)數(shù)據(jù)被傳送到數(shù)據(jù)路徑控制器13(步驟231)。
在這個(gè)數(shù)據(jù)傳送時(shí),冗余編碼驗(yàn)證器13b從如此讀取的次奇偶檢驗(yàn)數(shù)據(jù)產(chǎn)生冗余編碼。接著,通過(guò)執(zhí)行如此產(chǎn)生的冗余編碼和加入次奇偶檢驗(yàn)數(shù)據(jù)中的冗余編碼的XOR操作來(lái)獲得SDC值。這個(gè)SDC值被臨時(shí)存儲(chǔ)在SDC存儲(chǔ)器區(qū)域13d中,并且與DC緩沖器15d中的PDC值比較(步驟232)。
結(jié)果,當(dāng)PDC值與SDC值一致時(shí),冗余編碼驗(yàn)證器13b定義PDC值為已驗(yàn)證(步驟233)。接著,冗余編碼驗(yàn)證器13b檢測(cè)到在存儲(chǔ)步驟211所讀取的用戶(hù)數(shù)據(jù)的數(shù)據(jù)扇區(qū)中出現(xiàn)問(wèn)題,并且通過(guò)前端I/F單元12向主機(jī)系統(tǒng)通知問(wèn)題的出現(xiàn)(步驟230)。注意,然后自主地或通過(guò)來(lái)自主機(jī)系統(tǒng)的指令執(zhí)行恢復(fù)處理,然而,由于過(guò)程類(lèi)似于普通RAID系統(tǒng)的過(guò)程,所以不在這里描述。
并且,當(dāng)PDC值與SDC值不一致時(shí),SDC存儲(chǔ)器區(qū)域13d中臨時(shí)存儲(chǔ)的SDC值與DDC存儲(chǔ)器區(qū)域13c中臨時(shí)存儲(chǔ)的DDC值比較(步驟234)。
結(jié)果,當(dāng)SDC值與DDC值一致時(shí),冗余編碼驗(yàn)證器13b用DDC存儲(chǔ)器區(qū)域13c中臨時(shí)存儲(chǔ)的DDC值改寫(xiě)DC緩沖器15d中的PDC值,并且定義PDC值為已驗(yàn)證(步驟235)。接著,冗余編碼驗(yàn)證器13b檢測(cè)到在主奇偶檢驗(yàn)扇區(qū)中出現(xiàn)問(wèn)題,并且通過(guò)前端I/F單元12向主機(jī)系統(tǒng)通知問(wèn)題的出現(xiàn)(步驟236)。注意,然后自主地或通過(guò)來(lái)自主機(jī)系統(tǒng)的指令執(zhí)行恢復(fù)處理,然而,由于過(guò)程類(lèi)似于普通RAID系統(tǒng)的過(guò)程,所以不在這里描述。
并且,當(dāng)SDC值與DDC值不一致時(shí),控制器11從DC緩沖器15d刪除PDC值(步驟237)。接著,控制器11檢測(cè)到存在雙重故障的問(wèn)題,并且通過(guò)前端I/F單元12向主機(jī)系統(tǒng)通知問(wèn)題的出現(xiàn)(步驟238)。注意,然后自主地或通過(guò)來(lái)自主機(jī)系統(tǒng)的指令執(zhí)行恢復(fù)處理,然而,由于過(guò)程類(lèi)似于普通RAID系統(tǒng)的過(guò)程,所以不在這里描述。
此外,當(dāng)在步驟221PDC值與DDC值一致時(shí),數(shù)據(jù)路徑控制器13執(zhí)行舊數(shù)據(jù)存儲(chǔ)器區(qū)域13e中存儲(chǔ)的舊數(shù)據(jù),奇偶檢驗(yàn)數(shù)據(jù)存儲(chǔ)器區(qū)域15c中存儲(chǔ)的奇偶檢驗(yàn)數(shù)據(jù)和新用戶(hù)數(shù)據(jù)的XOR操作,從而計(jì)算新奇偶檢驗(yàn)數(shù)據(jù)(步驟222)。注意,新奇偶檢驗(yàn)數(shù)據(jù)可以通過(guò)在從驅(qū)動(dòng)器讀取數(shù)據(jù)時(shí)的數(shù)據(jù)傳送期間的XOR操作來(lái)計(jì)算(運(yùn)行時(shí)XOR)。接著,數(shù)據(jù)路徑控制器13把DC緩沖器15d中的用戶(hù)數(shù)據(jù)的DC值加1(步驟223)。此后,檢查執(zhí)行降級(jí)的另一個(gè)用戶(hù)數(shù)據(jù)是否存在(步驟224)。
結(jié)果,在判斷存在執(zhí)行降級(jí)的另一個(gè)用戶(hù)數(shù)據(jù)的情況下,處理返回到步驟211并且對(duì)執(zhí)行降級(jí)的所有用戶(hù)數(shù)據(jù)執(zhí)行相同處理。另一方面,當(dāng)判斷不存在其它用戶(hù)數(shù)據(jù)時(shí),控制器11指示后端I/F單元14把新用戶(hù)數(shù)據(jù)和新奇偶檢驗(yàn)數(shù)據(jù)寫(xiě)入到驅(qū)動(dòng)器。在此之后,后端I/F單元14對(duì)驅(qū)動(dòng)器執(zhí)行寫(xiě)入請(qǐng)求。接著,新用戶(hù)數(shù)據(jù)和新奇偶檢驗(yàn)數(shù)據(jù)通過(guò)數(shù)據(jù)路徑控制器13被傳送到驅(qū)動(dòng)器。
在這個(gè)數(shù)據(jù)傳送時(shí),冗余編碼生成器13a從用戶(hù)數(shù)據(jù)和奇偶檢驗(yàn)數(shù)據(jù)產(chǎn)生用戶(hù)數(shù)據(jù)和奇偶檢驗(yàn)數(shù)據(jù)的每個(gè)的冗余編碼。接著,通過(guò)執(zhí)行從用戶(hù)數(shù)據(jù)產(chǎn)生的冗余編碼和DC緩沖器15d中的DC值的XOR操作而獲得的值被作為新冗余編碼加到用戶(hù)數(shù)據(jù)上,而通過(guò)執(zhí)行從奇偶檢驗(yàn)數(shù)據(jù)產(chǎn)生的冗余編碼和DC緩沖器15d中的DC值的XOR操作而獲得的值被作為新冗余編碼加到奇偶檢驗(yàn)數(shù)據(jù)上(步驟225)。附帶地,當(dāng)產(chǎn)生要加到用戶(hù)數(shù)據(jù)上的冗余編碼時(shí),只參考用戶(hù)數(shù)據(jù)的DC值,并且當(dāng)產(chǎn)生要加到奇偶檢驗(yàn)數(shù)據(jù)上的冗余編碼時(shí),參考對(duì)應(yīng)于奇偶檢驗(yàn)數(shù)據(jù)的所有用戶(hù)數(shù)據(jù)的DC值。
如上所述完成實(shí)施例的該方面的操作。附帶地,基于實(shí)施例的該方面,逐個(gè)扇區(qū)地執(zhí)行升級(jí)處理,并且逐個(gè)片段地執(zhí)行降級(jí)處理。然而,也可以按照由相同盤(pán)中多個(gè)扇區(qū)構(gòu)成的條(strip)來(lái)執(zhí)行升級(jí)處理,并且按照作為多個(gè)片段的集合的條來(lái)執(zhí)行降級(jí)處理。
此外,基于實(shí)施例的該方面,通過(guò)執(zhí)行冗余編碼和DC值的XOR操作把DC值加到扇區(qū)數(shù)據(jù)上。然而,DC值能夠通過(guò)嵌入除了冗余編碼之外的部分中而被加到扇區(qū)數(shù)據(jù)上。另外,作為嵌入DC值的方法,也可以采用各種方法,而不是限于XOR操作。此外,基于實(shí)施例的該方面,用戶(hù)數(shù)據(jù)的DC值被加到對(duì)應(yīng)于用戶(hù)數(shù)據(jù)的奇偶檢驗(yàn)數(shù)據(jù)上。然而,不必限于這個(gè)方面,并且例如可以采用加入到其它用戶(hù)數(shù)據(jù)上的方面。
此外,基于實(shí)施例的該方面,當(dāng)PDC值與DDC值不一致時(shí),則檢查PDC值是否與SDC值一致。然而,當(dāng)PDC值與DDC值不一致時(shí),可以作為下一步驟來(lái)檢查SDC值是否與DDC值一致。在這種情況下,當(dāng)SDC值與DDC值一致時(shí),能夠判斷在主奇偶檢驗(yàn)扇區(qū)中出現(xiàn)問(wèn)題,并且當(dāng)SDC值與DDC值不一致時(shí),能夠判斷在數(shù)據(jù)扇區(qū)中出現(xiàn)問(wèn)題。
此外,基于實(shí)施例的該方面,當(dāng)PDC值與DDC值一致時(shí),在假定任何地方均沒(méi)有出現(xiàn)問(wèn)題的情況下執(zhí)行處理。然而,在這種情況下,可以驗(yàn)證次奇偶檢驗(yàn)扇區(qū)中是否出現(xiàn)問(wèn)題。具體地,這是在步驟221判斷PDC值與DDC值一致,在步驟206判斷DC緩沖器15d中的PDC值與從主奇偶檢驗(yàn)扇區(qū)讀取的PDC值不一致,及在步驟208判斷PDC值未驗(yàn)證的情況。在這種情況下,也可以通過(guò)讀取次奇偶檢驗(yàn)數(shù)據(jù)并且比較從次奇偶檢驗(yàn)數(shù)據(jù)獲得的SDC值與DC緩沖器15d中的PDC值來(lái)檢測(cè)問(wèn)題的出現(xiàn)。此外,也可以在檢測(cè)到問(wèn)題出現(xiàn)時(shí)執(zhí)行恢復(fù)處理。
此外,也可以采用同時(shí)比較PDC值,SDC值和DDC值的方面。在這種情況下,當(dāng)3個(gè)值中只有一個(gè)值不同于其余兩個(gè)值時(shí),可以判斷獲得該值的扇區(qū)出現(xiàn)問(wèn)題。
如上所述,基于實(shí)施例的該方面,要結(jié)合用戶(hù)數(shù)據(jù)的更新而被更新的DC被加到用戶(hù)數(shù)據(jù)上,并且作為比較對(duì)象的DC值被加到在存儲(chǔ)用戶(hù)數(shù)據(jù)時(shí)有必要存儲(chǔ)的數(shù)據(jù)(例如,用戶(hù)數(shù)據(jù)的奇偶檢驗(yàn)數(shù)據(jù))上。通過(guò)采用這種結(jié)構(gòu),無(wú)需消耗驅(qū)動(dòng)器容量便可避免存儲(chǔ)子系統(tǒng)返回不準(zhǔn)確數(shù)據(jù)到主機(jī)系統(tǒng)的問(wèn)題。
此外,作為比較對(duì)象的DC值被加到數(shù)據(jù)(例如,用戶(hù)數(shù)據(jù)的奇偶檢驗(yàn)數(shù)據(jù))上,并且與用戶(hù)數(shù)據(jù)的寫(xiě)/讀同步地執(zhí)行其寫(xiě)/讀。通過(guò)采用這種結(jié)構(gòu),不影響從驅(qū)動(dòng)器讀取的性能便可避免存儲(chǔ)子系統(tǒng)返回不準(zhǔn)確數(shù)據(jù)到主機(jī)系統(tǒng)的問(wèn)題。
基于本發(fā)明,無(wú)需消耗驅(qū)動(dòng)器的容量便可以避免存儲(chǔ)子系統(tǒng)把不準(zhǔn)確數(shù)據(jù)返回到主機(jī)系統(tǒng)的問(wèn)題。
雖然已經(jīng)詳細(xì)描述了本發(fā)明的優(yōu)選實(shí)施例,但應(yīng)當(dāng)理解,在不偏離本發(fā)明如所附權(quán)利要求書(shū)定義的宗旨和范圍的前提下,可以對(duì)其進(jìn)行各種變化,替換和轉(zhuǎn)換。
權(quán)利要求
1.一種用于檢測(cè)存儲(chǔ)器中的任何差錯(cuò)數(shù)據(jù)的設(shè)備,包括添加單元,用于把結(jié)合要存儲(chǔ)在存儲(chǔ)器的第一扇區(qū)中的數(shù)據(jù)的更新而更新的歷史信息加入到該數(shù)據(jù)上,并且加入到要存儲(chǔ)在存儲(chǔ)器的第二扇區(qū)中的數(shù)據(jù)上;以及驗(yàn)證單元,用于通過(guò)在已經(jīng)被加到第一扇區(qū)中存儲(chǔ)的該數(shù)據(jù)上的歷史信息和已經(jīng)被加到第二扇區(qū)中存儲(chǔ)的該數(shù)據(jù)上的歷史信息之間進(jìn)行比較,來(lái)驗(yàn)證第一扇區(qū)中存儲(chǔ)的該數(shù)據(jù)和第二扇區(qū)中存儲(chǔ)的該數(shù)據(jù)。
2.如權(quán)利要求1所述的單元,其中添加單元把根據(jù)要存儲(chǔ)在第一扇區(qū)的數(shù)據(jù)的更新而更新的歷史信息嵌入檢測(cè)數(shù)據(jù)的錯(cuò)誤的冗余編碼中,并且嵌入檢測(cè)要存儲(chǔ)在第二扇區(qū)的數(shù)據(jù)的錯(cuò)誤的冗余編碼中。
3.如權(quán)利要求1所述的單元,其中根據(jù)對(duì)第一扇區(qū)的訪問(wèn)執(zhí)行對(duì)第二扇區(qū)的訪問(wèn)。
4.如權(quán)利要求1所述的單元,其中檢測(cè)要存儲(chǔ)在第一扇區(qū)的數(shù)據(jù)的錯(cuò)誤的奇偶檢驗(yàn)被存儲(chǔ)在第二扇區(qū)中。
5.如權(quán)利要求1所述的單元,其中添加單元把根據(jù)要存儲(chǔ)在第一扇區(qū)的數(shù)據(jù)的更新而更新的歷史信息加入到要存儲(chǔ)在存儲(chǔ)器的第三扇區(qū)的數(shù)據(jù)上;并且驗(yàn)證單元通過(guò)比較加入到分別存儲(chǔ)在第一扇區(qū),第二扇區(qū)和第三扇區(qū)的數(shù)據(jù)上的每個(gè)歷史信息,驗(yàn)證分別被存儲(chǔ)在第一扇區(qū),第二扇區(qū)和第三扇區(qū)中的數(shù)據(jù)。
6.如權(quán)利要求5所述的單元,還包括指定單元,用于將被加到第一扇區(qū),第二扇區(qū)和第三扇區(qū)中分別存儲(chǔ)的數(shù)據(jù)上的歷史信息中唯一一個(gè)不同于其它歷史信息的歷史信息所被加入到的數(shù)據(jù),指定為不準(zhǔn)確數(shù)據(jù)。
7.一種用于在存儲(chǔ)以分布方式同步處理的多個(gè)數(shù)據(jù)的多個(gè)存儲(chǔ)器中檢測(cè)不準(zhǔn)確數(shù)據(jù)的方法,包括步驟把結(jié)合多個(gè)數(shù)據(jù)中的一個(gè)數(shù)據(jù)的更新而更新的歷史信息加入到該一個(gè)數(shù)據(jù)上,并且加入到該多個(gè)數(shù)據(jù)中的另一個(gè)數(shù)據(jù)上;把該一個(gè)數(shù)據(jù)寫(xiě)入到存儲(chǔ)器的第一扇區(qū),并且把該另一個(gè)數(shù)據(jù)寫(xiě)入到存儲(chǔ)器的第二扇區(qū);讀取第一扇區(qū)中存儲(chǔ)的數(shù)據(jù)和第二扇區(qū)中存儲(chǔ)的數(shù)據(jù);以及通過(guò)比較分別加入到兩個(gè)讀取數(shù)據(jù)的歷史信息來(lái)驗(yàn)證該兩個(gè)數(shù)據(jù)。
8.如權(quán)利要求7所述的方法,其中在加入步驟中,將根據(jù)要存儲(chǔ)在第一扇區(qū)的數(shù)據(jù)的更新而更新的歷史信息嵌入檢測(cè)該一個(gè)數(shù)據(jù)的錯(cuò)誤的冗余編碼中,并且嵌入檢測(cè)該另一個(gè)數(shù)據(jù)的錯(cuò)誤的冗余編碼。
9.如權(quán)利要求7所述的方法,其中檢測(cè)要存儲(chǔ)在第一扇區(qū)的數(shù)據(jù)的錯(cuò)誤的奇偶檢驗(yàn)被存儲(chǔ)在第二扇區(qū)中。
10.如權(quán)利要求7所述的方法,其中在加入步驟,歷史信息被加到該多個(gè)數(shù)據(jù)中的又一個(gè)數(shù)據(jù)上;在寫(xiě)入步驟,該又一個(gè)數(shù)據(jù)被寫(xiě)入存儲(chǔ)器的第三扇區(qū)中;以及在讀取步驟,讀取被存儲(chǔ)在第三扇區(qū)的數(shù)據(jù);當(dāng)加入到第一扇區(qū)中存儲(chǔ)的數(shù)據(jù)上的歷史信息與加入到第二扇區(qū)中存儲(chǔ)的數(shù)據(jù)上的歷史信息不一致時(shí),通過(guò)比較加入到第一和第二扇區(qū)中存儲(chǔ)的數(shù)據(jù)上的任何一個(gè)歷史信息和加入到第三扇區(qū)中存儲(chǔ)的數(shù)據(jù)上的歷史信息,驗(yàn)證分別被存儲(chǔ)在第一扇區(qū),第二扇區(qū)和第三扇區(qū)中的數(shù)據(jù)。
11.一種程序產(chǎn)品,用于允許連接到存儲(chǔ)器的計(jì)算機(jī)實(shí)現(xiàn)從第一數(shù)據(jù)中獲得結(jié)合要存儲(chǔ)在存儲(chǔ)器的第一扇區(qū)的第一數(shù)據(jù)的更新而更新的第一歷史信息,以及從第二數(shù)據(jù)中獲得結(jié)合要存儲(chǔ)在存儲(chǔ)器的第二扇區(qū)的第二數(shù)據(jù)的更新而更新的第二歷史信息的功能;以及通過(guò)比較第一歷史信息和第二歷史信息,驗(yàn)證第一數(shù)據(jù)或第二數(shù)據(jù)的功能。
12.如權(quán)利要求11所述的程序產(chǎn)品,用于允許計(jì)算機(jī)進(jìn)一步實(shí)現(xiàn)當(dāng)?shù)谝粩?shù)據(jù)或第二數(shù)據(jù)被更新時(shí),如果第一歷史信息與第二歷史信息一致,則更新第一歷史信息并且把它加入到第一數(shù)據(jù)的功能,以及更新第二歷史信息并且把它加入到第二數(shù)據(jù)的功能。
13.如權(quán)利要求11所述的程序產(chǎn)品,其中通過(guò)獲得第一歷史信息的功能,從檢測(cè)第一數(shù)據(jù)的錯(cuò)誤的冗余編碼中獲得第一歷史信息;并且通過(guò)獲得第二歷史信息的功能,從檢測(cè)第二數(shù)據(jù)的錯(cuò)誤的冗余編碼中獲得第二歷史信息。
14.如權(quán)利要求11所述的程序產(chǎn)品,其中第二數(shù)據(jù)是檢測(cè)第一數(shù)據(jù)的錯(cuò)誤的奇偶檢驗(yàn)。
15.如權(quán)利要求11所述的程序產(chǎn)品,用于允許計(jì)算機(jī)進(jìn)一步實(shí)現(xiàn)從第三數(shù)據(jù)中獲得根據(jù)存儲(chǔ)器的第三扇區(qū)中存儲(chǔ)的第三數(shù)據(jù)的更新而更新的第三歷史信息的功能;以及當(dāng)?shù)谝粴v史信息與第二歷史信息不一致時(shí),通過(guò)比較第一歷史信息或第二歷史信息和第三歷史信息,驗(yàn)證第一數(shù)據(jù),第二數(shù)據(jù)和第三數(shù)據(jù)的功能。
全文摘要
當(dāng)數(shù)據(jù)通過(guò)后端I/F單元從盤(pán)驅(qū)動(dòng)器傳送到一個(gè)高速緩存時(shí),數(shù)據(jù)路徑控制器的冗余編碼驗(yàn)證器比較嵌入數(shù)據(jù)的冗余編碼的寫(xiě)入歷史信息(DC值)和嵌入對(duì)應(yīng)奇偶檢驗(yàn)的冗余編碼的DC值,從而驗(yàn)證數(shù)據(jù)是否不準(zhǔn)確。另外,在數(shù)據(jù)被更新的情況下,冗余編碼驗(yàn)證器在要用于產(chǎn)生奇偶檢驗(yàn)的舊數(shù)據(jù)被讀取時(shí)進(jìn)行類(lèi)似驗(yàn)證。當(dāng)數(shù)據(jù)不是不準(zhǔn)確時(shí),數(shù)據(jù)路徑控制器的冗余編碼生成器向新數(shù)據(jù)和奇偶檢驗(yàn)加入已經(jīng)嵌入新DC值的冗余編碼。并且,當(dāng)數(shù)據(jù)不準(zhǔn)確時(shí),控制器通過(guò)前端I/F單元向主機(jī)系統(tǒng)通知問(wèn)題的出現(xiàn)。
文檔編號(hào)G06F11/00GK1808611SQ200510127040
公開(kāi)日2006年7月26日 申請(qǐng)日期2005年11月29日 優(yōu)先權(quán)日2004年12月2日
發(fā)明者寺下善彥, 住吉徹, 三好浩之 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司