亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

創(chuàng)建糾錯(cuò)編碼方案的方法和減少數(shù)據(jù)損失的設(shè)備的制作方法

文檔序號(hào):6561651閱讀:192來源:國知局
專利名稱:創(chuàng)建糾錯(cuò)編碼方案的方法和減少數(shù)據(jù)損失的設(shè)備的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種創(chuàng)建糾錯(cuò)編碼方案以減少數(shù)據(jù)損失的方法。它還涉及減少數(shù)據(jù)損失的方法、設(shè)備、計(jì)算機(jī)程序產(chǎn)品和計(jì)算機(jī)程序。它還涉及保護(hù)存儲(chǔ)在至少一個(gè)存儲(chǔ)單元處的數(shù)據(jù)以防不可糾正的介質(zhì)錯(cuò)誤的系統(tǒng)。
背景技術(shù)
存儲(chǔ)單元例如基于至少一個(gè)磁盤或光盤或固態(tài)存儲(chǔ)器作為存儲(chǔ)介質(zhì)。隨著單個(gè)存儲(chǔ)單元的存儲(chǔ)容量的增加,讀取存儲(chǔ)在存儲(chǔ)單元的至少一個(gè)存儲(chǔ)介質(zhì)上的數(shù)據(jù)時(shí)遇到至少一個(gè)介質(zhì)相關(guān)的錯(cuò)誤的可能性也在增加。當(dāng)不能通過重新讀取所述介質(zhì)的特定部分來糾正錯(cuò)誤時(shí),數(shù)據(jù)會(huì)受到損失。通過存儲(chǔ)分布到兩個(gè)或更多存儲(chǔ)單元的冗余數(shù)據(jù),可以提高包括所述兩個(gè)或更多存儲(chǔ)單元的系統(tǒng)的可靠性。這種系統(tǒng)被稱為獨(dú)立磁盤冗余陣列(RAID)。已配置RAID的系統(tǒng)主要減少因存儲(chǔ)單元的徹底失敗而帶來的數(shù)據(jù)損失。
US 2005/0108594 A1揭示了一種保護(hù)磁盤驅(qū)動(dòng)器上的數(shù)據(jù)以防不可糾正的介質(zhì)錯(cuò)誤的方法。通過其中將冗余信息扇區(qū)與數(shù)據(jù)信息扇區(qū)關(guān)聯(lián)的技術(shù),為已配置RAID的存儲(chǔ)系統(tǒng)提供了避免出現(xiàn)不可糾正的介質(zhì)錯(cuò)誤的保護(hù)。所述數(shù)據(jù)信息扇區(qū)和所述冗余信息扇區(qū)作為單個(gè)段被寫入單個(gè)存儲(chǔ)單元。所述冗余信息基于里德-所羅門代碼(一種基于異或的代碼)或一維奇偶校驗(yàn)。
因此,需要提供一種比先前提出的技術(shù)更為簡單的創(chuàng)建編碼方案以減少數(shù)據(jù)損失的方法。同樣,需要提供一種比先前提出的技術(shù)更為簡單的減少數(shù)據(jù)損失的方法、設(shè)備、計(jì)算機(jī)程序和計(jì)算機(jī)程序產(chǎn)品。還需要提供一個(gè)比先前提出的技術(shù)更為簡單和可靠的保護(hù)存儲(chǔ)在至少一個(gè)存儲(chǔ)單元上的數(shù)據(jù)以免出現(xiàn)不可糾正的介質(zhì)錯(cuò)誤的系統(tǒng)。

發(fā)明內(nèi)容
根據(jù)本發(fā)明的第一方面的實(shí)施例,提供了一種用于創(chuàng)建糾錯(cuò)編碼方案以減少數(shù)據(jù)損失的方法,所述數(shù)據(jù)包括與具有至少兩個(gè)數(shù)據(jù)信息實(shí)體的給定數(shù)據(jù)集關(guān)聯(lián)的具有至少兩個(gè)冗余信息實(shí)體的給定冗余集,根據(jù)所述數(shù)據(jù)集的信息內(nèi)容來計(jì)算所述冗余集的信息內(nèi)容,所述方法包括以下步驟基本選擇步驟,用于選擇由基本矩陣表示的基本編碼方案,其中每個(gè)冗余信息實(shí)體由行表示,而每個(gè)信息實(shí)體由列表示;以及矩陣設(shè)置步驟,用于設(shè)置具有所述基本矩陣的列的子集的目標(biāo)矩陣并且用于根據(jù)所述基本矩陣來改變列的順序,直至所述目標(biāo)矩陣在至少給定程度滿足非零元素的給定模式(pattern)。此功能允許構(gòu)建計(jì)算引擎以便計(jì)算所述冗余集的所述信息內(nèi)容,其比先前提出的技術(shù)中使用的計(jì)算引擎更簡單。所述非零元素的給定模式影響所述糾錯(cuò)編碼方案的復(fù)雜性,由此影響其在所述計(jì)算引擎中的實(shí)現(xiàn)。所述信息實(shí)體可以是一位或字節(jié)或存儲(chǔ)單元上的扇區(qū)或任何其他用于存儲(chǔ)或傳送或接收信息的適合實(shí)體。
根據(jù)本發(fā)明的第一方面的優(yōu)選實(shí)施例,所述非零元素的給定模式被選擇為包括所述目標(biāo)矩陣的正方形模式子矩陣的主對(duì)角線,所述主對(duì)角線具有主要為非零的元素,所述目標(biāo)矩陣具有的行數(shù)和列數(shù)等于所述冗余集中的冗余信息實(shí)體數(shù)。所述非零元素的給定模式因而更為簡單和規(guī)則并允許更為簡單地構(gòu)建計(jì)算引擎。
在此方面,所述非零元素的給定模式被選擇為還包括與所述目標(biāo)矩陣的所述正方形模式子矩陣的所述主對(duì)角線相鄰布置的鄰近對(duì)角線是有利的,所述鄰近對(duì)角線的元素被選擇成主要為非零。這允許構(gòu)建計(jì)算引擎,以便可以通過利用從所述主對(duì)角線的元素計(jì)算的中間結(jié)果來處理所述鄰近對(duì)角線的元素。所述計(jì)算引擎因而可以更為有效。
根據(jù)本發(fā)明的第一方面的其他優(yōu)選實(shí)施例,所述基本矩陣被選擇為對(duì)于所述基本編碼方案的給定漢明距離具有最少的非零元素?cái)?shù)、最少的所述數(shù)據(jù)集中的數(shù)據(jù)信息實(shí)體數(shù)以及最少的所述冗余集中的冗余信息實(shí)體數(shù)。這允許減少用于計(jì)算所述冗余集的信息內(nèi)容的操作數(shù)。
根據(jù)本發(fā)明的第一方面的其他優(yōu)選實(shí)施例,在所述矩陣設(shè)置步驟中,改變所述列的順序直至列數(shù)與所述冗余集中的冗余信息實(shí)體數(shù)相等的所述目標(biāo)矩陣的每個(gè)方格子矩陣的秩與所述冗余集中的冗余信息實(shí)體數(shù)相等。這允許恢復(fù)最多等于所述冗余集中的冗余信息實(shí)體數(shù)的連續(xù)不可讀數(shù)據(jù)信息實(shí)體,也稱為“刪除部分(erasures)”。由此,可以更加可靠地保護(hù)數(shù)據(jù)以防數(shù)據(jù)損失并降低數(shù)據(jù)損失的可能性。
根據(jù)本發(fā)明的第一方面的其他優(yōu)選實(shí)施例,所述創(chuàng)建的糾錯(cuò)方案基于分別計(jì)算由所述目標(biāo)矩陣每行中的非零元素表示的所有數(shù)據(jù)信息實(shí)體的信息內(nèi)容的異或。這允許更為簡單和性能更高的糾錯(cuò)編碼方案,同時(shí)降低了計(jì)算冗余集的開銷,并且與先前提出的技術(shù)相比更容易實(shí)現(xiàn)。
在此方面,所述基本編碼方案基于漢明碼或擴(kuò)展?jié)h明碼中的一種編碼是有利的。這使得所述糾錯(cuò)編碼方案更為可靠。
根據(jù)本發(fā)明的第二方面的實(shí)施例,提供了一種用于減少數(shù)據(jù)損失的方法,所述數(shù)據(jù)包括與具有至少兩個(gè)數(shù)據(jù)信息實(shí)體的給定數(shù)據(jù)集關(guān)聯(lián)的具有至少兩個(gè)冗余信息實(shí)體的給定冗余集,根據(jù)所述數(shù)據(jù)集的信息內(nèi)容通過應(yīng)用糾錯(cuò)編碼方案來計(jì)算所述冗余集的信息內(nèi)容,所述糾錯(cuò)編碼方案由奇偶校驗(yàn)矩陣表示,其中每個(gè)冗余信息實(shí)體由行表示,而所述數(shù)據(jù)的每個(gè)信息實(shí)體由列表示,并且所述奇偶校驗(yàn)矩陣的至少兩個(gè)正方形子矩陣具有元素主要為非零的對(duì)角線并具有與所述冗余集中的冗余信息實(shí)體數(shù)相等的行數(shù)和列數(shù),并且表示所述數(shù)據(jù)集的連續(xù)放置的數(shù)據(jù)信息實(shí)體,所述方法包括第一計(jì)算步驟,用于通過處理所述至少兩個(gè)主對(duì)角線上的所述數(shù)據(jù)信息實(shí)體來計(jì)算所述冗余信息實(shí)體的中間結(jié)果;以及第二計(jì)算步驟,用于根據(jù)所述中間結(jié)果來計(jì)算所述冗余信息實(shí)體的信息內(nèi)容。由于所述奇偶校驗(yàn)矩陣的所述至少兩個(gè)正方形子矩陣的主對(duì)角線具有主要為非零的元素,所以計(jì)算所述冗余集的信息內(nèi)容更為簡單。
根據(jù)本發(fā)明的第二方面的優(yōu)選實(shí)施例,所述主對(duì)角線的元素主要為非零的所述奇偶校驗(yàn)矩陣的至少一個(gè)正方形子矩陣還具有元素主要為非零的鄰近對(duì)角線,并且所述第二計(jì)算步驟包括利用所述中間結(jié)果來處理相應(yīng)鄰近對(duì)角線上的數(shù)據(jù)信息實(shí)體。這允許更有效地計(jì)算所述冗余集的信息內(nèi)容。
根據(jù)本發(fā)明的第二方面的其他優(yōu)選實(shí)施例,所述冗余集中的每個(gè)冗余信息實(shí)體的相應(yīng)信息內(nèi)容被計(jì)算為由所述奇偶校驗(yàn)矩陣的相應(yīng)行中的非零元素表示的所述數(shù)據(jù)集中的所有數(shù)據(jù)信息實(shí)體的相應(yīng)信息內(nèi)容的異或。這允許在計(jì)算所述冗余集的信息內(nèi)容時(shí)降低開銷,導(dǎo)致更高的性能。所述方法還更容易實(shí)現(xiàn)。
根據(jù)本發(fā)明的第三方面的實(shí)施例,提供了一種用于減少數(shù)據(jù)損失的設(shè)備。該設(shè)備對(duì)應(yīng)于本發(fā)明的第二方面的實(shí)施例及其優(yōu)點(diǎn)。
根據(jù)本發(fā)明的第四方面的實(shí)施例,提供了一種用于保護(hù)存儲(chǔ)在至少一個(gè)存儲(chǔ)單元上的數(shù)據(jù)以防不可糾正的介質(zhì)錯(cuò)誤的系統(tǒng)。所述系統(tǒng)包括包含本發(fā)明的第三方面的設(shè)備和至少一個(gè)存儲(chǔ)單元。每個(gè)信息實(shí)體表示所述至少一個(gè)存儲(chǔ)單元上的扇區(qū)。所述系統(tǒng)對(duì)應(yīng)于所述設(shè)備及其優(yōu)點(diǎn)。
根據(jù)本發(fā)明的第四方面的優(yōu)選實(shí)施例,所述系統(tǒng)配置為獨(dú)立存儲(chǔ)單元的冗余陣列。所述配置也稱為獨(dú)立磁盤冗余陣列(RAID)。這允許更高的可靠性,特別是在一個(gè)存儲(chǔ)單元完全失敗的情況下。由此通過獨(dú)立存儲(chǔ)單元的冗余陣列提供的盤間冗余以及冗余集提供的盤內(nèi)冗余減少了數(shù)據(jù)損失。本發(fā)明的第三方面的有利的實(shí)施例并不限于盤,也可以包括任何其他種類的存儲(chǔ)單元。
根據(jù)本發(fā)明的第五方面的實(shí)施例,提供了一種用于減少數(shù)據(jù)損失的計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)程序產(chǎn)品包括包含可由計(jì)算機(jī)執(zhí)行的程序指令的計(jì)算機(jī)可讀介質(zhì)。所述程序指令對(duì)應(yīng)于本發(fā)明的第二方面的實(shí)施例及其優(yōu)點(diǎn)。
根據(jù)本發(fā)明的第六方面的實(shí)施例,提供了一種包括程序指令的用于減少數(shù)據(jù)損失的計(jì)算機(jī)程序。所述程序指令對(duì)應(yīng)于本發(fā)明的第二方面的實(shí)施例及其優(yōu)點(diǎn)。


現(xiàn)在通過實(shí)例的方式參考附圖,這些附圖是圖1示意地示出了一個(gè)系統(tǒng);圖2是圖1中所示的系統(tǒng)的方塊圖;圖3是包括五個(gè)存儲(chǔ)單元的配置了RAID級(jí)別5的系統(tǒng)中的數(shù)據(jù)組織的概要圖;圖4是包括八個(gè)存儲(chǔ)單元的配置了RAID級(jí)別5的系統(tǒng)中的一個(gè)段的數(shù)據(jù)組織的概要圖;圖5示出了表示交織奇偶校驗(yàn)碼的奇偶校驗(yàn)矩陣;圖6A示出了表示已知的擴(kuò)展?jié)h明碼的奇偶校驗(yàn)矩陣;圖6B示出了稀疏擴(kuò)展?jié)h明碼的奇偶校驗(yàn)矩陣;圖6C示出了稀疏漢明碼的奇偶校驗(yàn)矩陣;圖7示出了用于自動(dòng)創(chuàng)建糾錯(cuò)編碼方案的方法的流程圖;圖8示出了表示基于圖6C示出的奇偶校驗(yàn)矩陣的自動(dòng)創(chuàng)建的糾錯(cuò)編碼方案的奇偶校驗(yàn)矩陣;圖9示出了用于減少數(shù)據(jù)損失的方法的流程圖;以及圖10示出了顯示分別基于圖5、6B、6C和8所示的奇偶校驗(yàn)矩陣的糾錯(cuò)編碼方案的屬性的表。
具體實(shí)施例方式
圖1示出了用于獲得對(duì)本發(fā)明的實(shí)施例的理解的系統(tǒng)。該系統(tǒng)包括至少一個(gè)存儲(chǔ)單元100,在本實(shí)施例中,存儲(chǔ)單元100由包括至少一個(gè)磁盤101作為存儲(chǔ)介質(zhì)和讀/寫頭102的硬盤驅(qū)動(dòng)器表示。讀/寫頭102可以放置在所述至少一個(gè)磁盤101的選定磁道上。通過使用讀/寫頭102在磁盤101上的選定數(shù)據(jù)區(qū)中有選擇地確定磁性的方向來將二進(jìn)制數(shù)據(jù)存儲(chǔ)在磁盤101上。所述系統(tǒng)還包括用于減少數(shù)據(jù)損失的設(shè)備103。所述至少一個(gè)存儲(chǔ)單元100與設(shè)備103相連。
圖2示出了圖1所示的系統(tǒng)的方塊圖。設(shè)備103包括用于連接主機(jī)(例如,計(jì)算機(jī)系統(tǒng))的主機(jī)接口104,用于控制所述至少一個(gè)存儲(chǔ)單元100的控制器105,包括內(nèi)部存儲(chǔ)器107的計(jì)算引擎106和連接到計(jì)算引擎106的外部存儲(chǔ)器108。所述主機(jī)接口104、控制器105和計(jì)算引擎106被連接以便數(shù)據(jù)可以通過所述至少一個(gè)存儲(chǔ)單元100請求主機(jī)接口104或相反以及在主機(jī)接口104與計(jì)算引擎106之間或在控制器105與計(jì)算引擎106之間傳送。
圖3示出了配置了RAID級(jí)別5的系統(tǒng)中的數(shù)據(jù)組織的概要圖,所述系統(tǒng)包括五個(gè)存儲(chǔ)單元100的陣列200,所述五個(gè)存儲(chǔ)單元被標(biāo)記為第一存儲(chǔ)單元HDD1、第二存儲(chǔ)單元HDD2、第三存儲(chǔ)單元HDD3、第四存儲(chǔ)單元HDD4和第五存儲(chǔ)單元HDD5。所述五個(gè)存儲(chǔ)單元100分別與設(shè)備103連接。數(shù)據(jù)被組織在條帶202中。條帶202跨越所有五個(gè)存儲(chǔ)單元100。對(duì)于每個(gè)條帶202,系統(tǒng)的每個(gè)獨(dú)立存儲(chǔ)單元100都包括一個(gè)條帶203。每個(gè)條帶203包括四個(gè)段204,而每個(gè)段204包括十六個(gè)數(shù)據(jù)塊,每個(gè)數(shù)據(jù)塊包括八個(gè)扇區(qū)。因此每個(gè)段204包括128個(gè)扇區(qū)。
在配置了RAID級(jí)別5的系統(tǒng)中,每個(gè)條帶203帶有用戶數(shù)據(jù)E或RAID奇偶校驗(yàn)數(shù)據(jù)P。RAID奇偶校驗(yàn)數(shù)據(jù)P被計(jì)算為同一條帶202中所有用戶數(shù)據(jù)E的模2和(也稱為異或或XOR)。RAID奇偶校驗(yàn)數(shù)據(jù)P的位置分別從一個(gè)存儲(chǔ)單元100輪換到相繼條帶中的陣列200中的某一其他存儲(chǔ)單元100。如果某一存儲(chǔ)單元100失敗,則從存儲(chǔ)在仍然工作的其他存儲(chǔ)單元100上的同一條帶202中的其他用戶數(shù)據(jù)E和RAID奇偶校驗(yàn)數(shù)據(jù)P,可以恢復(fù)存儲(chǔ)在失敗的存儲(chǔ)單元100上的相應(yīng)用戶數(shù)據(jù)E和RAID奇偶校驗(yàn)數(shù)據(jù)P。配置了RAID級(jí)別5的系統(tǒng)允許通過恢復(fù)受損數(shù)據(jù)并將其寫入系統(tǒng)中包括的備用存儲(chǔ)單元100來重建某一失敗的存儲(chǔ)單元100的信息內(nèi)容。
在完成重建之前,如果第二存儲(chǔ)單元100失敗或某一其他存儲(chǔ)單元100上出現(xiàn)介質(zhì)錯(cuò)誤,則在配置了RAID級(jí)別5的系統(tǒng)中會(huì)出現(xiàn)數(shù)據(jù)損失。隨著單個(gè)存儲(chǔ)單元100的存儲(chǔ)容量的增加,在重建操作期間讀取的總字節(jié)數(shù)變得更多。這增加了遇到不可糾正的介質(zhì)錯(cuò)誤(通常導(dǎo)致一個(gè)或多個(gè)扇區(qū)變得不可讀)的可能性。當(dāng)不可糾正的介質(zhì)錯(cuò)誤和系統(tǒng)中一個(gè)存儲(chǔ)單元100的失敗同時(shí)發(fā)生時(shí),問題尤其嚴(yán)重。例如,如果配置了RAID級(jí)別5的系統(tǒng)中的一個(gè)存儲(chǔ)單元100失敗,則重建過程會(huì)讀取其余存儲(chǔ)單元100上的所有數(shù)據(jù)以便在備用的存儲(chǔ)單元100上重建受損的數(shù)據(jù)。在此階段,在陣列200中的任何仍然工作的存儲(chǔ)單元100上的不可糾正的介質(zhì)錯(cuò)誤會(huì)導(dǎo)致數(shù)據(jù)損失,因?yàn)闆]有方法來重建不可糾正的扇區(qū)的信息內(nèi)容。在此易出問題的階段中,數(shù)據(jù)損失的風(fēng)險(xiǎn)變得更大,因?yàn)榇疟P容量持續(xù)快速增長而磁盤帶寬和磁盤可靠性的增加要慢得多。理論和實(shí)踐結(jié)果表明配置了RAID級(jí)別5的系統(tǒng)中的數(shù)據(jù)損失的主要來源在于重建期間的介質(zhì)相關(guān)的故障。
通過提供盤內(nèi)冗余(也稱為通過盤內(nèi)冗余的扇區(qū)保護(hù)(SPIDRE)),可以降低由于一個(gè)或多個(gè)介質(zhì)錯(cuò)誤帶來數(shù)據(jù)損失的風(fēng)險(xiǎn)。圖4為其他配置了RAID級(jí)別5的系統(tǒng)的一個(gè)段204的數(shù)據(jù)組織的概要圖,所述系統(tǒng)包括八個(gè)存儲(chǔ)單元100,分別標(biāo)記為第一存儲(chǔ)單元HDD1、第二存儲(chǔ)單元HDD2、第三存儲(chǔ)單元HDD3、第四存儲(chǔ)單元HDD4、第五存儲(chǔ)單元HDD5、第六存儲(chǔ)單元HDD6、第七存儲(chǔ)單元HDD7和第八存儲(chǔ)單元HDD8。段204在每個(gè)存儲(chǔ)單元100上包括十六個(gè)數(shù)據(jù)塊,它們帶有用戶數(shù)據(jù)E、RAID奇偶校驗(yàn)數(shù)據(jù)P或盤內(nèi)冗余數(shù)據(jù)S。每個(gè)存儲(chǔ)單元100上的每個(gè)段204都有一個(gè)帶有盤內(nèi)冗余數(shù)據(jù)S的數(shù)據(jù)塊。盤內(nèi)冗余數(shù)據(jù)S分別與同一存儲(chǔ)單元100上的段204的用戶數(shù)據(jù)E或RAID奇偶校驗(yàn)數(shù)據(jù)P關(guān)聯(lián)。當(dāng)用戶數(shù)據(jù)E和RAID奇偶校驗(yàn)數(shù)據(jù)P分別被寫入段204或在段204中被更新時(shí),設(shè)備103中的計(jì)算引擎106可用于計(jì)算和提供從段204的用戶數(shù)據(jù)E和RAID奇偶校驗(yàn)數(shù)據(jù)P計(jì)算的盤內(nèi)冗余數(shù)據(jù)S的信息內(nèi)容。計(jì)算引擎106還可用于分別從其他用戶數(shù)據(jù)E和RAID奇偶校驗(yàn)數(shù)據(jù)P的信息內(nèi)容以及存儲(chǔ)在同一存儲(chǔ)單元100的同一段204的盤內(nèi)冗余數(shù)據(jù)S來分別恢復(fù)不可讀扇區(qū)的用戶數(shù)據(jù)E和RAID奇偶校驗(yàn)數(shù)據(jù)P的信息內(nèi)容。
盤內(nèi)冗余的概念可應(yīng)用于任何現(xiàn)有的RAID體系結(jié)構(gòu)或級(jí)別,例如,RAID級(jí)別5、級(jí)別51、級(jí)別6或級(jí)別N+3。由RAID冗余數(shù)據(jù)S提供的RAID冗余主要減少因某一完整存儲(chǔ)單元100的失敗而造成的存儲(chǔ)在陣列200上的數(shù)據(jù)的損失。盤內(nèi)冗余減少了因不可糾正的介質(zhì)錯(cuò)誤帶來的存儲(chǔ)在每個(gè)單獨(dú)存儲(chǔ)單元100上的數(shù)據(jù)的損失??梢岳斫?,盤內(nèi)冗余的概念也可應(yīng)用于僅包括單個(gè)存儲(chǔ)單元100的系統(tǒng)。
對(duì)段204中的用戶數(shù)據(jù)E的每個(gè)修改(例如,第二存儲(chǔ)單元HDD2上的段204的第四個(gè)數(shù)據(jù)塊)都應(yīng)伴隨對(duì)與同一段204中已修改的用戶數(shù)據(jù)E關(guān)聯(lián)的盤內(nèi)冗余數(shù)據(jù)S的更新(例如,第二存儲(chǔ)單元HDD2上的段204的第九個(gè)數(shù)據(jù)塊)。進(jìn)而,與已修改的用戶數(shù)據(jù)E對(duì)應(yīng)的RAID奇偶校驗(yàn)數(shù)據(jù)P也應(yīng)被更新(例如,第八存儲(chǔ)單元HDD8上的段204的第四個(gè)數(shù)據(jù)塊)。由于RAID奇偶校驗(yàn)數(shù)據(jù)P的更新,與已更新的RAID奇偶校驗(yàn)數(shù)據(jù)P關(guān)聯(lián)的盤內(nèi)冗余數(shù)據(jù)S也應(yīng)被更新(例如,第八存儲(chǔ)單元HDD8上的段204的第九個(gè)數(shù)據(jù)塊)。單獨(dú)寫入這四個(gè)數(shù)據(jù)塊會(huì)導(dǎo)致四個(gè)請求。通過將盤內(nèi)冗余數(shù)據(jù)S與用戶數(shù)據(jù)E相繼存儲(chǔ)在同一段204中,僅使用第一請求205和第二請求206來更新用戶數(shù)據(jù)E的塊,RAID奇偶校驗(yàn)數(shù)據(jù)P的塊和盤內(nèi)冗余數(shù)據(jù)S的相應(yīng)塊。
在正常操作中(即,任何存儲(chǔ)單元100都沒有出現(xiàn)故障),可以從至少一個(gè)存儲(chǔ)單元100讀取用戶數(shù)據(jù)E,而無需同時(shí)讀取相應(yīng)的RAID奇偶校驗(yàn)數(shù)據(jù)P。相應(yīng)地,可以從至少一個(gè)存儲(chǔ)單元100讀取用戶數(shù)據(jù)E,而無需同時(shí)讀取盤內(nèi)冗余數(shù)據(jù)S,只要在讀取用戶數(shù)據(jù)E期間沒有出現(xiàn)介質(zhì)錯(cuò)誤。有利地使用單個(gè)請求來完成讀取若干塊連續(xù)的用戶數(shù)據(jù)E。此請求也可以包括讀取盤內(nèi)冗余數(shù)據(jù)S,如果它位于由請求所包括的用戶數(shù)據(jù)E的各塊之間??梢岳斫?,在此情況下,可以忽略盤內(nèi)冗余數(shù)據(jù)S的信息內(nèi)容。
每個(gè)更新用戶數(shù)據(jù)E的請求使用讀取和寫入至少兩個(gè)存儲(chǔ)單元100上的至少兩個(gè)數(shù)據(jù)塊分別為已修改的用戶數(shù)據(jù)E和RAID奇偶校驗(yàn)數(shù)據(jù)P,及相應(yīng)的盤內(nèi)冗余數(shù)據(jù)S。使用單獨(dú)的請求來讀取和寫入四個(gè)數(shù)據(jù)塊中的每個(gè)數(shù)據(jù)塊將為用戶數(shù)據(jù)E的每次更新使用四個(gè)讀取請求加四個(gè)寫入請求。通過應(yīng)用第一請求205和第二請求206,僅使用兩個(gè)讀取請求加兩個(gè)寫入請求便可以實(shí)現(xiàn)用戶數(shù)據(jù)E的更新??梢允褂猛徽埱蠓謩e讀取和寫入邏輯地置于已修改的用戶數(shù)據(jù)E的塊或RAID奇偶校驗(yàn)數(shù)據(jù)P和盤內(nèi)冗余數(shù)據(jù)S的相應(yīng)塊之間的一個(gè)或多個(gè)其他數(shù)據(jù)塊(特別是用戶數(shù)據(jù)E或RAID奇偶校驗(yàn)數(shù)據(jù)P)。每個(gè)請求所請求的數(shù)據(jù)塊數(shù)因此取決于已修改的用戶數(shù)據(jù)E的塊或RAID奇偶校驗(yàn)數(shù)據(jù)P和盤內(nèi)冗余數(shù)據(jù)S的相應(yīng)塊之間的距離。與將盤內(nèi)冗余數(shù)據(jù)S置于段204的開始和結(jié)束處相比,通過將盤內(nèi)冗余數(shù)據(jù)S大約放置在段204的中間,可以減少所有讀取和/或?qū)懭胝埱蟮钠骄鶖?shù)據(jù)塊數(shù)。在本實(shí)施例中,每個(gè)請求讀取和/或?qū)懭氲钠骄鶖?shù)據(jù)塊數(shù)約為5.27。每個(gè)請求的尋道時(shí)間與用于讀取一個(gè)例如4KB的數(shù)據(jù)塊的時(shí)間的通常比率約為50比1。與使用單獨(dú)的請求來訪問以上實(shí)例的四個(gè)數(shù)據(jù)塊中的每個(gè)數(shù)據(jù)塊以便更新用戶數(shù)據(jù)E、RAID奇偶校驗(yàn)數(shù)據(jù)P和盤內(nèi)冗余數(shù)據(jù)S相比,使用每個(gè)請求讀取和/或?qū)懭攵鄠€(gè)數(shù)據(jù)塊對(duì)整體讀/寫性能的影響(特別是更新用戶數(shù)據(jù)E時(shí))因此更小。
作為一個(gè)實(shí)例,每個(gè)數(shù)據(jù)塊的大小為4KB。段204有128個(gè)扇區(qū)。每個(gè)數(shù)據(jù)塊被分為八個(gè)扇區(qū)。帶有盤內(nèi)冗余數(shù)據(jù)S的數(shù)據(jù)塊被看作冗余信息扇區(qū)R的冗余集。冗余信息扇區(qū)R的數(shù)量r為8。用戶數(shù)據(jù)E的每個(gè)塊有八個(gè)數(shù)據(jù)信息扇區(qū)D。段204中有十五個(gè)用戶數(shù)據(jù)E的塊。因此,帶有用戶數(shù)據(jù)E的數(shù)據(jù)信息扇區(qū)D的數(shù)量n為120。段204的用戶數(shù)據(jù)E的所有塊的所有120個(gè)數(shù)據(jù)信息扇區(qū)D被著作一個(gè)數(shù)據(jù)集。所述冗余集與段204中的數(shù)據(jù)集相關(guān)聯(lián)。根據(jù)所述數(shù)據(jù)集的信息內(nèi)容來計(jì)算所述冗余集的信息內(nèi)容。具體地說,所述冗余集中的每個(gè)冗余信息扇區(qū)R都被看作根據(jù)所述數(shù)據(jù)集的相應(yīng)關(guān)聯(lián)子集計(jì)算的奇偶校驗(yàn),即,作為是所述數(shù)據(jù)集的子集的數(shù)據(jù)信息扇區(qū)D的相應(yīng)關(guān)聯(lián)集合的奇偶校驗(yàn)來計(jì)算每個(gè)冗余信息扇區(qū)R。
在不能從存儲(chǔ)單元100正確讀取用戶數(shù)據(jù)E的塊時(shí),該用戶數(shù)據(jù)E的塊被標(biāo)記為所謂的“刪除部分”。在某些情況下,可以使用同一存儲(chǔ)單元100上的同一段204的用戶數(shù)據(jù)E的其他塊和盤內(nèi)冗余數(shù)據(jù)S的信息內(nèi)容來恢復(fù)所述刪除部分的信息內(nèi)容。通過提供與段204中的數(shù)據(jù)集關(guān)聯(lián)的冗余集實(shí)現(xiàn)的糾錯(cuò)能力(或更準(zhǔn)確地說,刪除恢復(fù)能力)取決于用于計(jì)算相應(yīng)的冗余信息扇區(qū)R的數(shù)據(jù)信息扇區(qū)D的相應(yīng)選擇。使用盡可能少的計(jì)算操作來計(jì)算冗余集的信息內(nèi)容以便減少使用復(fù)雜的計(jì)算引擎106的需要是所希望的。
圖5示出了奇偶校驗(yàn)矩陣H,它表示所謂的交織奇偶校驗(yàn)編碼(IPC編碼),具體地說IPC-8(128、120)編碼,它用于本發(fā)明的一個(gè)實(shí)施例并在此后稱為第一類型的奇偶校驗(yàn)矩陣。奇偶校驗(yàn)矩陣H有8行,每行對(duì)應(yīng)冗余集中的每個(gè)冗余信息扇區(qū)R。奇偶校驗(yàn)矩陣H還有128列,每列對(duì)應(yīng)段204的每個(gè)扇區(qū)。奇偶校驗(yàn)矩陣H中的非零元素示為點(diǎn)。對(duì)于每個(gè)數(shù)據(jù)塊,交織奇偶校驗(yàn)編碼有八個(gè)非零元素。非零元素被放置在表示一個(gè)數(shù)據(jù)塊的每個(gè)不同的8×8子矩陣的對(duì)角線上。奇偶校驗(yàn)矩陣H的每行中的所有非零元素標(biāo)記了形成用于計(jì)算相應(yīng)的冗余信息扇區(qū)R的數(shù)據(jù)集的相應(yīng)關(guān)聯(lián)子集的所有扇區(qū)。通過計(jì)算奇偶校驗(yàn)矩陣H的相應(yīng)行中標(biāo)記的所有數(shù)據(jù)信息扇區(qū)D的異或來計(jì)算相應(yīng)的冗余信息扇區(qū)R。應(yīng)用所述交織奇偶校驗(yàn)編碼,存在數(shù)量nz為128的非零元素,即,應(yīng)執(zhí)行128次異或運(yùn)算來計(jì)算冗余集的信息內(nèi)容,即,段204的盤內(nèi)冗余數(shù)據(jù)S。交織奇偶校驗(yàn)編碼的最小漢明距離dmin為2。IPC-8(128、120)編碼具有最多糾正數(shù)量為r的冗余信息扇區(qū)R的特性,即,最多8個(gè)具有段204中的介質(zhì)錯(cuò)誤和任何單個(gè)扇區(qū)介質(zhì)錯(cuò)誤的連續(xù)扇區(qū)。
圖6A到6C分別示出了用于本發(fā)明的一個(gè)實(shí)施例中的第二、第三和第四類型的奇偶校驗(yàn)矩陣H。圖6A中所示的第二類型的奇偶校驗(yàn)矩陣H為最小漢明距離dmin是4的公知擴(kuò)展?jié)h明碼。在此奇偶校驗(yàn)矩陣H中非零元素的數(shù)量nz為576。圖6B所示的第三類型的奇偶校驗(yàn)矩陣H為擴(kuò)展?jié)h明碼,且奇偶校驗(yàn)矩陣H是稀疏的,即,非零元素的數(shù)量nz減少到512。最小漢明距離dmin為4。在圖6C所示的第四類型的奇偶校驗(yàn)矩陣H中,進(jìn)一步減少了非零元素的數(shù)量nz。圖6C示出了奇偶校驗(yàn)矩陣H是稀疏的并且最小漢明距離dmin為3的漢明碼。非零元素的數(shù)量nz為376。
分別對(duì)于給定的最小漢明距離dmin為4或3、冗余信息扇區(qū)R的數(shù)量r為8以及數(shù)據(jù)信息扇區(qū)D的數(shù)量n為120,第三和第四類型的奇偶校驗(yàn)矩陣H都具有最小的非零元素?cái)?shù)量nz。
在最小漢明距離dmin為3時(shí),可以確保奇偶校驗(yàn)矩陣H有最少的非零元素?cái)?shù)nz,因?yàn)楸硎緷h明碼的奇偶校驗(yàn)矩陣H的列從二進(jìn)制元組集形成,且冗余信息扇區(qū)R元素的數(shù)量r表示所有非零數(shù),最高到2的冗余信息扇區(qū)R的數(shù)量r次冪減1。可以對(duì)奇偶校驗(yàn)矩陣H的列排序以使列的非零元素?cái)?shù)nz從左到右增加。如果使用少于2的冗余信息扇區(qū)R的數(shù)量r次冪減1的列來表示段204的所有扇區(qū),則可以通過選擇最左側(cè)的列來保證非零元素的最少數(shù)量nz。最小漢明距離dmin大于3時(shí),不能以相同的方式來保證非零元素的最小數(shù)量。
還修改了第三和第四類型的奇偶校驗(yàn)矩陣H,以便在最多糾正數(shù)量為r的冗余信息扇區(qū)R(即,最多8個(gè)具有介質(zhì)錯(cuò)誤的連續(xù)扇區(qū))的糾錯(cuò)能力方面,它們體現(xiàn)與交織奇偶校驗(yàn)編碼相同的特性。與交織奇偶校驗(yàn)編碼相比,擴(kuò)展?jié)h明碼具有更好的糾錯(cuò)能力,這是因?yàn)樽钚h明距離dmin分別為4或3。這額外地允許分別糾正段204中的任何三個(gè)和兩個(gè)扇區(qū)介質(zhì)錯(cuò)誤。通常,可以在段204中糾正最小漢明距離dmin減1的單個(gè)介質(zhì)錯(cuò)誤。使用擴(kuò)展?jié)h明碼因此導(dǎo)致對(duì)存儲(chǔ)單元100的改進(jìn)的保護(hù),并且因此提高了存儲(chǔ)單元100的可靠性,而且還增加了計(jì)算引擎106的計(jì)算能力以便執(zhí)行更多數(shù)量的異或運(yùn)算,這是因?yàn)榕c交織奇偶校驗(yàn)編碼相比,奇偶校驗(yàn)矩陣H中的非零元素?cái)?shù)nz更多。交織奇偶校驗(yàn)編碼的糾錯(cuò)能力可應(yīng)用于多數(shù)高端存儲(chǔ)單元100,特別是多數(shù)高端硬盤驅(qū)動(dòng)器(例如,結(jié)合了小型計(jì)算機(jī)系統(tǒng)接口,SCSI)。與交織奇偶校驗(yàn)編碼相比具有更高糾錯(cuò)能力的擴(kuò)展?jié)h明碼之一可被考慮用于低端存儲(chǔ)單元100,特別是低端硬盤驅(qū)動(dòng)器(例如,結(jié)合高級(jí)技術(shù)附件系統(tǒng),ATA或串行高級(jí)技術(shù)附件系統(tǒng),SATA)。
為了降低使用復(fù)雜的計(jì)算引擎106的需要和保證數(shù)據(jù)保護(hù)的某些特性,例如,最多糾正因介質(zhì)錯(cuò)誤引起的冗余信息扇區(qū)R的數(shù)量r個(gè)連續(xù)不可讀扇區(qū)的糾錯(cuò)能力,可以改進(jìn)奇偶校驗(yàn)矩陣H。引入了兩個(gè)度量來更好地比較基于不同奇偶校驗(yàn)矩陣H的不同糾錯(cuò)編碼方案。
第一個(gè)度量為XORO,或XOR開銷。XORO是對(duì)編程XOR引擎以完成給定任務(wù)的所有異或運(yùn)算(例如,計(jì)算冗余集的信息內(nèi)容)的計(jì)算成本的測量。XOR引擎由計(jì)算引擎106表示。對(duì)于具有k個(gè)操作數(shù)的單個(gè)異或運(yùn)算,XORO被定義為XORO(k)=k+1。XORO并不說明操作數(shù)的大小。
給定的任務(wù)由于子任務(wù)而消耗存儲(chǔ)器帶寬,所述子任務(wù)例如在存儲(chǔ)單元100與外部存儲(chǔ)器108之間移動(dòng)數(shù)據(jù)或奇偶校驗(yàn),通過主機(jī)接口104從外部存儲(chǔ)器108將用戶數(shù)據(jù)E發(fā)送到主機(jī)(例如,計(jì)算機(jī)系統(tǒng)),或者將數(shù)據(jù)或奇偶校驗(yàn)移入或移出XOR引擎(即,計(jì)算引擎106)。由名為MBWC的第二個(gè)度量來量化存儲(chǔ)器帶寬的消耗。例如,如果給定的任務(wù)是計(jì)算從主機(jī)接收的給定數(shù)量的數(shù)據(jù)塊(例如,用戶數(shù)據(jù)E或RAID奇偶校驗(yàn)數(shù)據(jù)P)的異或并將這些數(shù)據(jù)塊與計(jì)算結(jié)果(例如,盤內(nèi)冗余數(shù)據(jù)S)一起寫入至少一個(gè)存儲(chǔ)單元100,則完成此給定任務(wù)的存儲(chǔ)器帶寬消耗MBWC包括若干部分。在第一部分中,從主機(jī)接收的給定數(shù)量的數(shù)據(jù)塊被寫入外部存儲(chǔ)器108。在第二部分中,從外部存儲(chǔ)器108將所述給定數(shù)量的數(shù)據(jù)塊讀取到計(jì)算引擎106中。在第三部分中,將計(jì)算結(jié)果寫回外部存儲(chǔ)器108。在第四部分中,將給定數(shù)量的塊和計(jì)算結(jié)果寫入至少一個(gè)存儲(chǔ)單元100。因此,傳輸?shù)胶蛡鬏斪酝獠看鎯?chǔ)器的數(shù)據(jù)塊的總數(shù)為給定數(shù)量的數(shù)據(jù)塊的三倍加計(jì)算結(jié)果的兩倍。在本實(shí)例中,所有數(shù)據(jù)塊都具有相同的大小,例如,4KB。
使用IPC-8(128、120)編碼進(jìn)一步說明了XORO的計(jì)算。每個(gè)冗余信息扇區(qū)R都是段204的總共120個(gè)數(shù)據(jù)信息扇區(qū)D中的十五個(gè)不同數(shù)據(jù)信息扇區(qū)D的異或運(yùn)算的結(jié)果。在8×128奇偶校驗(yàn)矩陣H中捕獲冗余信息扇區(qū)R對(duì)數(shù)據(jù)信息扇區(qū)D的交織相關(guān)性,所述奇偶校驗(yàn)矩陣H具有規(guī)則的模式,所述模式包括十六個(gè)不同的8×8模式的子矩陣,所述子矩陣在相應(yīng)的主對(duì)角線上具有非零的元素。每個(gè)8×8模式子矩陣的所有其他元素均為零。如果段204的所有120個(gè)數(shù)據(jù)信息扇區(qū)D都存儲(chǔ)在外部存儲(chǔ)器108中,則可以使用具有十五個(gè)源操作數(shù)(即,數(shù)據(jù)信息扇區(qū)D)和一個(gè)目標(biāo)操作數(shù)(即,冗余信息扇區(qū)R)的異或運(yùn)算來計(jì)算八個(gè)冗余信息扇區(qū)R中的每個(gè)冗余信息扇區(qū)R。因此,計(jì)算每個(gè)冗余信息扇區(qū)R的XORO值等于十六,而計(jì)算所有八個(gè)冗余信息扇區(qū)R的XORO值是128。在這種情況下,可以逐扇區(qū)地計(jì)算每個(gè)冗余信息扇區(qū)R。
考慮120個(gè)數(shù)據(jù)信息扇區(qū)D被連續(xù)存儲(chǔ)在外部存儲(chǔ)器108的連續(xù)位置中,可以降低計(jì)算引擎的復(fù)雜性。然后可以使用具有十五個(gè)源操作數(shù)和一個(gè)目標(biāo)操作數(shù)的單個(gè)異或運(yùn)算來計(jì)算所有八個(gè)冗余信息扇區(qū)R。但是,在這種情況下,每個(gè)操作數(shù)跨越八個(gè)連續(xù)的扇區(qū)。已計(jì)算的冗余信息扇區(qū)R也被連續(xù)存儲(chǔ)在外部存儲(chǔ)器108中。因此,計(jì)算所有八個(gè)冗余信息扇區(qū)R的XORO值為16。MBWC的值由于冗余信息扇區(qū)R的不同計(jì)算而保持不變并等于47個(gè)數(shù)據(jù)塊。與上述情況相反,在當(dāng)前情況下,每個(gè)冗余信息扇區(qū)R的計(jì)算是逐塊地完成的。
圖7示出了用于自動(dòng)創(chuàng)建糾錯(cuò)編碼方案以便減少數(shù)據(jù)損失的方法的流程圖。所創(chuàng)建的糾錯(cuò)編碼方案在降低計(jì)算引擎106的復(fù)雜性和存儲(chǔ)器帶寬消耗(即,XORO值和MBWC值)方面提供了平衡。在基本選擇步驟中,奇偶校驗(yàn)矩陣H(例如,第四類型的奇偶校驗(yàn)矩陣H)被選為基本矩陣。在矩陣設(shè)置步驟中,修改所選擇的基本矩陣以便其顯示非零元素的給定模式(例如,類似于根據(jù)IPC-8(128、120)的模式子矩陣的規(guī)則模式)。但是,給定模式可以根據(jù)要求而不同。
所述方法以步驟S1作為入口點(diǎn)開始。在步驟S2,執(zhí)行所述基本選擇步驟。另外,設(shè)置冗余信息扇區(qū)R的數(shù)量r和段204中的扇區(qū)數(shù)L。例如,冗余信息扇區(qū)R的數(shù)量r為8,段204中的扇區(qū)數(shù)L為128,同時(shí)包括八個(gè)冗余信息扇區(qū)R和120個(gè)數(shù)據(jù)信息扇區(qū)D。在步驟S3中,設(shè)置目標(biāo)矩陣H′。在此實(shí)例中,將目標(biāo)矩陣H′設(shè)置為行數(shù)和列數(shù)等于冗余信息扇區(qū)R的數(shù)量r的正方形單位矩陣。所述單位矩陣表示冗余信息扇區(qū)R。進(jìn)而,通過隨機(jī)更改所選擇的基本矩陣(即,所選擇的奇偶校驗(yàn)矩陣H)的列的順序來設(shè)置隨機(jī)化的基本矩陣H1,去除最初r個(gè)(冗余信息扇區(qū)R的數(shù)量)列,如果這些列已表示單位矩陣(在將第四類型的奇偶校驗(yàn)矩陣H選擇為基本矩陣時(shí)是這種情況)。另外,設(shè)置對(duì)于段204中的每個(gè)扇區(qū)都包括一個(gè)元素的矢量I,即,矢量I的元素?cái)?shù)與扇區(qū)數(shù)L相等。將矢量I的最初r個(gè)(冗余信息扇區(qū)R的數(shù)量)元素設(shè)置為1,其他元素設(shè)置為0。在矢量I中,所有同樣出現(xiàn)在目標(biāo)矩陣H′中的隨機(jī)化的基本矩陣H1的列被標(biāo)記為1。
在步驟S4,將第一變量i的值設(shè)置為冗余信息扇區(qū)R的數(shù)量r加1。相應(yīng)地,在步驟S5,將第二變量j的值設(shè)置為冗余信息扇區(qū)R的數(shù)量r加1。第一變量i表示目標(biāo)矩陣H′中的當(dāng)前列的下標(biāo)。第二變量j表示隨機(jī)化的基本矩陣H1中的當(dāng)前列的下標(biāo)。在步驟S6,檢查第二變量j指向的矢量I的元素是否等于0。如果是,即,隨機(jī)化的基本矩陣H1的相應(yīng)列尚未出現(xiàn)在目標(biāo)矩陣H′中,則在步驟S7中,將由第二變量j指向的隨機(jī)化的基本矩陣H1的列附加到目標(biāo)矩陣H′中由第一變量i指向的位置。
在步驟S8,檢查目標(biāo)矩陣H′是否滿足預(yù)定條件的給定集合。所述預(yù)定條件取決于對(duì)結(jié)果糾錯(cuò)編碼方案的要求。此預(yù)定條件的給定集合可以例如包括顯示非零元素的給定模式的目標(biāo)矩陣H′,例如,相應(yīng)模式子矩陣的主對(duì)角線上的元素主要為非零。通過例如屏蔽相應(yīng)元素并對(duì)屏蔽所覆蓋的非零元素?cái)?shù)計(jì)數(shù),可以容易地對(duì)此進(jìn)行檢查。如果所計(jì)數(shù)的每個(gè)模式子矩陣的非零元素?cái)?shù)超過給定的閾值,則所述模式可被視為在目標(biāo)矩陣H′的相應(yīng)模式子矩陣中存在。
所述預(yù)定條件的集合還可以包括顯示有關(guān)結(jié)果糾錯(cuò)編碼方案的糾錯(cuò)能力的給定特性的目標(biāo)矩陣H′。例如,要實(shí)現(xiàn)最多糾正段204中r個(gè)(冗余信息扇區(qū)R的數(shù)量)連續(xù)不可讀的扇區(qū)的能力,則列數(shù)等于冗余信息扇區(qū)R的數(shù)量r的目標(biāo)矩陣H′的每個(gè)正方形子矩陣應(yīng)具有等于冗余信息扇區(qū)R的數(shù)量r的秩。
如果目標(biāo)矩陣H′在給定程度上滿足所述預(yù)定條件的給定集合中的所有預(yù)定條件,則在步驟S9中,保留附加到目標(biāo)矩陣H′的列并將矢量I的當(dāng)前元素設(shè)置為1。在給定程度上滿足預(yù)定條件是指,例如,并非目標(biāo)矩陣H′的所有不同正方形子矩陣都應(yīng)顯示給定的模式,但至少給定數(shù)量或百分比的子矩陣顯示給定的模式。在步驟S10,將第一變量i的值增加1。在步驟S11,檢查第一變量i的值是否等于段204中的扇區(qū)數(shù)L。如果是,則所述方法在步驟S12結(jié)束。否則,所述方法在步驟S5中繼續(xù)。
如果在步驟S8中,目標(biāo)矩陣H′沒有在給定程度上滿足所述預(yù)定條件的給定集合中的所有預(yù)定條件,則在步驟S13中刪除附加到目標(biāo)矩陣H′的列。然后在步驟S14中增加第二變量j的值以嘗試隨機(jī)化的基本矩陣H1的下一列。在步驟S15,檢查第二變量j的值是否等于段204中的扇區(qū)數(shù)L。如果否,則所述方法在步驟S6繼續(xù)。否則,沒有更多可供嘗試的列。在這種情況下,所述方法在步驟S3繼續(xù),即,重置目標(biāo)矩陣H′和矢量I并通過隨機(jī)重新排序所選擇的基本矩陣的列來從基本矩陣創(chuàng)建新的隨機(jī)化的基本矩陣H1。如果矢量I的當(dāng)前元素在步驟S6中不等于0,則所述方法還在步驟S14繼續(xù)。
圖8示出了根據(jù)圖7所示的方法得出為結(jié)果目標(biāo)矩陣H′的第五類型的奇偶校驗(yàn)矩陣H。此奇偶校驗(yàn)矩陣H滿足每個(gè)正方形模式子矩陣的主對(duì)角線上的元素主要為非零以及在應(yīng)用為糾錯(cuò)編碼方案時(shí)具有最多可糾正段204中八個(gè)連續(xù)不可讀扇區(qū)的能力的條件。此外,其他預(yù)定條件是使(如果可能)每個(gè)模式子矩陣中相應(yīng)的相鄰對(duì)角線的元素主要為非零。第五類型的奇偶校驗(yàn)矩陣H的十二個(gè)模式子矩陣滿足此預(yù)定條件。
通過使計(jì)算引擎106能夠?qū)Υ鎯?chǔ)在內(nèi)部存儲(chǔ)器107中的中間結(jié)果執(zhí)行運(yùn)算并用計(jì)算結(jié)果或中間結(jié)果T覆蓋源操作數(shù),以及利用給定模式的非零元素(包括模式子矩陣的主要為非零的所述主對(duì)角線和相鄰對(duì)角線),可以進(jìn)一步減小XORO值和MBWC值。僅對(duì)存儲(chǔ)在內(nèi)部存儲(chǔ)器107中的數(shù)據(jù)執(zhí)行的運(yùn)算不影響MBWC值,因?yàn)樵谟?jì)算引擎106與外部存儲(chǔ)器108之間沒有使用數(shù)據(jù)移動(dòng)。這些運(yùn)算對(duì)XORO值的貢獻(xiàn)為2。因此,通過使用存儲(chǔ)在計(jì)算引擎106的內(nèi)部存儲(chǔ)器107中的中間結(jié)果T來計(jì)算冗余信息扇區(qū)R是有利的。
對(duì)于圖8所示的實(shí)例,可以執(zhí)行以下計(jì)算。處理與相應(yīng)模式子矩陣的主對(duì)角線的元素對(duì)應(yīng)的數(shù)據(jù)信息扇區(qū)D的相應(yīng)信息內(nèi)容,得出第一、第二、第三、第四、第五、第六、第七和第八中間結(jié)果T1、T2、T3、T4、T5、T6、T7、T8,它們共同形成了存儲(chǔ)在內(nèi)部存儲(chǔ)器107中的中間結(jié)果T。這些結(jié)果可以使用如上所述的操作數(shù)大小為八個(gè)扇區(qū)的單個(gè)異或運(yùn)算來計(jì)算。這可以寫為T=[T1,T2,T3,T4,T5,T6,T7,T8]=XOR(C9,C17,…C97),其中每個(gè)操作數(shù)的大小為8,或?qū)憺門1=C9*C17*…*C97T2=C10*C18*…*C98T3=C11*C19*…*C99T4=C12*C20*…*C100T5=C13*C21*…*C101T6=C14*C22*…*C102T7=C15*C23*…*C103T8=C16*C24*…*C104對(duì)于第二到第十三主對(duì)角線,Cx表示段204的第x個(gè)扇區(qū)中的數(shù)據(jù)信息扇區(qū)D的信息內(nèi)容,而“*”表示異或運(yùn)算。對(duì)于此異或運(yùn)算,XORO值為12,MBWC值為12×8扇區(qū)(即,96個(gè)扇區(qū))?,F(xiàn)在可以使用中間結(jié)果T來處理相應(yīng)的相鄰對(duì)角線上的元素T1=XOR(T1,T2)T2=XOR(T2,T3)T3=XOR(T3,T4)T4=XOR(T4,T5)T5=XOR(T5,T6)T6=XOR(T6,T7)T7=XOR(T7,T8)其中每個(gè)操作數(shù)大小為1,或?qū)憺門1=T1*T2=C9*C10*C17*C18*…*C97*C98T2=T2*T3=C10*C11*C18*C19*…*C98*C99T3=T3*T4=C11*C12*C19*C20*…*C99*C100T4=T4*T5=C12*C13*C20*C21*…*C100*C101T5=T5*T6=C13*C14*C21*C22*…*C101*C102
T6=T6*T7=C14*C15*C22*C23*…*C102*C103T7=T7*T8=C15*C16*C23*C24*…*C103*C104。
對(duì)于此步驟,得到XORO值為7×2(即,14),以及MBWC值為0。如下處理第十四、十五和十六主對(duì)角線T=[T1,T2,T3,T4,T5,T6,T7,T8]=XOR(T1,C105,C113,C121)其中,每個(gè)操作數(shù)的大小為8,或?qū)憺門1=T1*C105*C113*C121T2=T2*C106*C114*C122T3=T3*C107*C115*C123T4=T4*C108*C116*C124T5=T5*C109*C117*C125T6=T6*C110*C118*C126T7=T7*C111*C119*C127T8=T8*C112*C120*C128。
對(duì)于此步驟,XORO值為3,MBWC值為3×8(即,24)。此步驟之后的總XORO值為30,總MBWC值為128扇區(qū)或十六個(gè)數(shù)據(jù)塊。
然后可逐扇區(qū)地單獨(dú)處理奇偶校驗(yàn)矩陣H的其余非零元素。在該奇偶校驗(yàn)矩陣H中有164個(gè)非零元素不在主對(duì)角線之一或相鄰對(duì)角線之一上。另外,在主對(duì)角線或相鄰對(duì)角線上有八個(gè)元素為零。它們總共需要另外172個(gè)操作數(shù)大小為一個(gè)扇區(qū)的異或運(yùn)算。這得到額外的XORO值為172并且MBWC值為172個(gè)扇區(qū)。因此,對(duì)于計(jì)算冗余集的信息內(nèi)容,總XORO值為202,MBWC值為300個(gè)扇區(qū)或37.5個(gè)數(shù)據(jù)塊。由于從主機(jī)將十五個(gè)用戶數(shù)據(jù)E的塊移動(dòng)到外部存儲(chǔ)器108并將十五個(gè)用戶數(shù)據(jù)E的塊和作為結(jié)果的所計(jì)算的盤內(nèi)冗余數(shù)據(jù)S移動(dòng)到至少一個(gè)存儲(chǔ)單元100,額外的十五加十六個(gè)數(shù)據(jù)塊對(duì)MBWC值做出了貢獻(xiàn)。因而總的MBWC值約為69個(gè)數(shù)據(jù)塊。
為了如上所述地將冗余信息扇區(qū)R大約放置在段204的中間,可以循環(huán)地移位奇偶校驗(yàn)矩陣H的列。例如,奇偶校驗(yàn)矩陣H的實(shí)施例的初始列C1到C64變成列C65到C128,而初始列C65到C128則變成列C1到C64。通過這種方式,將冗余信息扇區(qū)R從列C1到C8移動(dòng)至列C65到C72。對(duì)于所述奇偶校驗(yàn)矩陣H的實(shí)施例,可以驗(yàn)證此列的循環(huán)移位不會(huì)改變最多糾正段204中八個(gè)連續(xù)不可讀扇區(qū)的能力。
圖9示出了可以在設(shè)備103中的硬件內(nèi)實(shí)現(xiàn)的用于減少數(shù)據(jù)損失的方法的流程圖。所述方法也可以被實(shí)現(xiàn)為包括可由計(jì)算機(jī)執(zhí)行的程序指令的計(jì)算機(jī)程序。設(shè)備103可以包括用于執(zhí)行所述計(jì)算機(jī)程序的程序指令的計(jì)算機(jī)。替代地,所述計(jì)算機(jī)程序可以是計(jì)算機(jī)系統(tǒng)的操作系統(tǒng)或基本輸入/輸出系統(tǒng)的一部分。可以提供包含可由設(shè)備103或計(jì)算機(jī)系統(tǒng)執(zhí)行的程序指令的計(jì)算機(jī)可讀介質(zhì)。所述計(jì)算機(jī)可讀介質(zhì)例如可以是CD-ROM、閃存卡、硬盤或任何其他適合的計(jì)算機(jī)可讀介質(zhì)。
圖9所示的方法利用了由圖7所示的方法創(chuàng)建的糾錯(cuò)編碼方案并執(zhí)行以上為圖8說明的計(jì)算。所述方法開始于步驟S20。在步驟S21中,通過如上所述地處理模式子矩陣的主對(duì)角線上的數(shù)據(jù)信息扇區(qū)D的信息內(nèi)容,以計(jì)算冗余信息扇區(qū)R的中間結(jié)果T來執(zhí)行第一計(jì)算步驟。在步驟S22中,如上所述地,利用中間結(jié)果T覆蓋先前計(jì)算的中間結(jié)果T來處理模式子矩陣的相鄰對(duì)角線上的數(shù)據(jù)信息扇區(qū)D的信息內(nèi)容。在步驟S23中,根據(jù)中間結(jié)果T(例如,通過如上所述地處理奇偶校驗(yàn)矩陣H的其余非零元素)來計(jì)算冗余信息扇區(qū)R的信息內(nèi)容。所述方法在步驟S24結(jié)束。
圖10示出了具有最小漢明距離dmin、突發(fā)刪除恢復(fù)(即,糾正連續(xù)不可讀扇區(qū)的糾錯(cuò)能力)、奇偶校驗(yàn)矩陣H中的非零元素?cái)?shù)nz、奇偶校驗(yàn)矩陣H的第三、第四、第五和第一類型的相應(yīng)XORO值和MBWC值的表。在所述表中,第三類型的奇偶校驗(yàn)矩陣H標(biāo)為“擴(kuò)展?jié)h明碼”,第四類型標(biāo)為“SD3”(最稀疏距離3),第五類型標(biāo)為“OSD3”(優(yōu)化的最稀疏距離3),以及第一類型標(biāo)為“IPC-8”。
以上說明的實(shí)施例基于作為信息實(shí)體的扇區(qū)??商娲?,信息實(shí)體也可以表示位、字節(jié)或任何其他適合的信息實(shí)體。所述冗余信息扇區(qū)R和數(shù)據(jù)信息扇區(qū)D表示特定的實(shí)施例,并且可以分別更為一般地看作冗余信息實(shí)體R和數(shù)據(jù)信息實(shí)體D。此外,減少因存儲(chǔ)單元100上的介質(zhì)錯(cuò)誤引起的數(shù)據(jù)損失只是眾多應(yīng)用中的一種應(yīng)用。例如,通過應(yīng)用以上提供的糾錯(cuò)編碼方案,同樣可以減少通過無線電信道或電纜傳送或接收的數(shù)據(jù)的損失。
可以理解,僅通過實(shí)例的方式描述了本發(fā)明,并且可以在本發(fā)明的范圍內(nèi)做出細(xì)節(jié)上的修改。
可以獨(dú)立地或以任何適當(dāng)?shù)慕M合來提供在說明書和(如果適合)權(quán)利要求書以及附圖中披露的每個(gè)特征。
標(biāo)號(hào)100存儲(chǔ)單元101磁盤102讀/寫頭103設(shè)備104主機(jī)接口105控制器106計(jì)算引擎107內(nèi)部存儲(chǔ)器108外部存儲(chǔ)器200陣列202條帶203條204段205第一請求206第二請求D數(shù)據(jù)信息扇區(qū)/實(shí)體dmin最小漢明距離E用戶數(shù)據(jù)
H奇偶校驗(yàn)矩陣H′目標(biāo)矩陣H1隨機(jī)化的基本矩陣HDD硬盤驅(qū)動(dòng)器I矢量i第一變量j第二變量L段中的扇區(qū)數(shù)n數(shù)據(jù)信息扇區(qū)數(shù)nz非零元素?cái)?shù)P RAID奇偶校驗(yàn)數(shù)據(jù)r冗余信息扇區(qū)數(shù)R冗余信息扇區(qū)/實(shí)體S盤內(nèi)冗余數(shù)據(jù)Sx步驟T中間結(jié)果Tx中間結(jié)果
權(quán)利要求
1.一種用于創(chuàng)建糾錯(cuò)編碼方案以減少數(shù)據(jù)損失的方法,所述數(shù)據(jù)包括與具有至少兩個(gè)數(shù)據(jù)信息實(shí)體(D)的給定數(shù)據(jù)集關(guān)聯(lián)的具有至少兩個(gè)冗余信息實(shí)體(R)的給定冗余集,根據(jù)所述數(shù)據(jù)集的信息內(nèi)容來計(jì)算所述冗余集的信息內(nèi)容,所述方法包括以下步驟基本選擇步驟(S2),用于選擇由基本矩陣表示的基本編碼方案,其中每個(gè)冗余信息實(shí)體(R)由行表示,而每個(gè)信息實(shí)體由列表示;以及矩陣設(shè)置步驟(S3),用于設(shè)置具有所述基本矩陣的列的子集的目標(biāo)矩陣(H′)并且用于根據(jù)所述基本矩陣來改變列的順序,直至所述目標(biāo)矩陣(H′)在至少給定程度上滿足非零元素的給定模式。
2.如權(quán)利要求1中所述的方法,其中所述非零元素的給定模式被選擇為包括所述目標(biāo)矩陣(H′)的正方形模式子矩陣的主對(duì)角線,所述主對(duì)角線具有主要為非零的元素,所述目標(biāo)矩陣(H′)具有的行數(shù)和列數(shù)等于所述冗余集中的冗余信息實(shí)體(R)的數(shù)量(r)。
3.如權(quán)利要求2中所述的方法,其中所述非零元素的給定模式被選擇為還包括與所述目標(biāo)矩陣(H′)的所述正方形模式子矩陣的所述主對(duì)角線相鄰布置的鄰近對(duì)角線,所述鄰近對(duì)角線的元素被選擇成主要為非零。
4.如任一上述權(quán)利要求中所述的方法,其中所述基本矩陣被選擇為對(duì)于所述基本編碼方案的給定漢明距離(dmin)具有最少的非零元素?cái)?shù)(nz)、最少的所述數(shù)據(jù)集中的數(shù)據(jù)信息實(shí)體(D)數(shù)(n)以及最少的所述冗余集中的冗余信息實(shí)體(R)數(shù)(r)。
5.如任一上述權(quán)利要求中所述的方法,其中,在所述矩陣設(shè)置步驟(S3)中,改變所述列的順序直至列數(shù)與所述冗余集中的冗余信息實(shí)體(R)數(shù)(r)相等的所述目標(biāo)矩陣(H′)的每個(gè)方格子矩陣的秩與所述冗余集中的冗余信息實(shí)體(R)數(shù)(r)相等。
6.如任一上述權(quán)利要求中所述的方法,其中所述創(chuàng)建的糾錯(cuò)方案基于分別計(jì)算由所述目標(biāo)矩陣(H′)每行中的非零元素表示的所有數(shù)據(jù)信息實(shí)體(D)的信息內(nèi)容的異或。
7.如權(quán)利要求6中所述的方法,其中所述基本編碼方案基于以下項(xiàng)中的一項(xiàng)漢明碼或擴(kuò)展?jié)h明碼。
8.一種用于減少數(shù)據(jù)損失的方法,所述數(shù)據(jù)包括與具有至少兩個(gè)數(shù)據(jù)信息實(shí)體(D)的給定數(shù)據(jù)集關(guān)聯(lián)的具有至少兩個(gè)冗余信息實(shí)體(R)的給定冗余集,根據(jù)所述數(shù)據(jù)集的信息內(nèi)容通過應(yīng)用糾錯(cuò)編碼方案來計(jì)算所述冗余集的信息內(nèi)容,所述糾錯(cuò)編碼方案由奇偶校驗(yàn)矩陣(H)表示,其中每個(gè)冗余信息實(shí)體(R)由行表示,而所述數(shù)據(jù)的每個(gè)信息實(shí)體由列表示,并且所述奇偶校驗(yàn)矩陣(H)的至少兩個(gè)正方形子矩陣具有元素主要為非零的對(duì)角線并具有與所述冗余集中的冗余信息實(shí)體(R)數(shù)(r)相等的行數(shù)和列數(shù),并且表示所述數(shù)據(jù)集的連續(xù)放置的數(shù)據(jù)信息實(shí)體(D),所述方法包括第一計(jì)算步驟,用于通過處理所述至少兩個(gè)主對(duì)角線上的所述數(shù)據(jù)信息實(shí)體(D)來計(jì)算所述冗余信息實(shí)體(R)的中間結(jié)果(T);以及第二計(jì)算步驟,用于根據(jù)所述中間結(jié)果(T)來計(jì)算所述冗余信息實(shí)體(R)的信息內(nèi)容。
9.如權(quán)利要求8中所述的方法,其中所述主對(duì)角線的元素主要為非零的所述奇偶校驗(yàn)矩陣(H)的至少一個(gè)正方形子矩陣還具有元素主要為非零的鄰近對(duì)角線,并且所述第二計(jì)算步驟包括利用所述中間結(jié)果(T)來處理相應(yīng)鄰近對(duì)角線上的數(shù)據(jù)信息實(shí)體(D)。
10.如權(quán)利要求8或9中的任一權(quán)利要求所述的方法,其中所述冗余集中的每個(gè)冗余信息實(shí)體(R)的相應(yīng)信息內(nèi)容被計(jì)算為由所述奇偶校驗(yàn)矩陣(H)的相應(yīng)行中的非零元素表示的所述數(shù)據(jù)集中的所有數(shù)據(jù)信息實(shí)體(D)的相應(yīng)信息內(nèi)容的異或。
11.一種用于減少數(shù)據(jù)損失的裝置,所述數(shù)據(jù)包括與具有至少兩個(gè)數(shù)據(jù)信息實(shí)體(D)的給定數(shù)據(jù)集關(guān)聯(lián)的具有至少兩個(gè)冗余信息實(shí)體(R)的給定冗余集,根據(jù)所述數(shù)據(jù)集的信息內(nèi)容通過應(yīng)用糾錯(cuò)編碼方案來計(jì)算所述冗余集的信息內(nèi)容,所述糾錯(cuò)編碼方案由奇偶校驗(yàn)矩陣(H)表示,其中每個(gè)冗余信息實(shí)體(R)由行表示,而所述數(shù)據(jù)的每個(gè)信息實(shí)體由列表示,并且所述奇偶校驗(yàn)矩陣(H)的至少兩個(gè)正方形子矩陣具有元素主要為非零的對(duì)角線并具有與所述冗余集中的冗余信息實(shí)體(R)數(shù)(r)相等的行數(shù)和列數(shù),并且表示所述數(shù)據(jù)集的連續(xù)放置的數(shù)據(jù)信息實(shí)體(D),所述裝置可執(zhí)行以下操作通過處理所述至少兩個(gè)主對(duì)角線上的所述數(shù)據(jù)信息實(shí)體(D)來計(jì)算所述冗余信息實(shí)體(R)的中間結(jié)果(T);以及根據(jù)所述中間結(jié)果(T)來計(jì)算所述冗余信息實(shí)體(R)的信息內(nèi)容。
12.一種保護(hù)存儲(chǔ)在至少一個(gè)存儲(chǔ)單元(100)上的數(shù)據(jù)以防不可糾正的介質(zhì)錯(cuò)誤的系統(tǒng),所述系統(tǒng)包括如權(quán)利要求11中所述的裝置(103);至少一個(gè)存儲(chǔ)單元(100);以及每個(gè)信息實(shí)體表示所述至少一個(gè)存儲(chǔ)單元(100)上的扇區(qū)。
13.如權(quán)利要求12中所述的系統(tǒng),所述系統(tǒng)被配置為獨(dú)立存儲(chǔ)單元(100)的冗余陣列。
全文摘要
本發(fā)明涉及一種用于減少數(shù)據(jù)損失的方法,所述方法包括第一計(jì)算步驟,用于通過分別處理表示糾錯(cuò)編碼方案的奇偶校驗(yàn)矩陣的至少兩個(gè)主對(duì)角線上的給定數(shù)據(jù)集的關(guān)聯(lián)數(shù)據(jù)信息實(shí)體(D)來計(jì)算冗余集的每個(gè)冗余信息實(shí)體(R)的中間結(jié)果(T)。所述方法還包括第二計(jì)算步驟,用于根據(jù)相應(yīng)的中間結(jié)果(T)來計(jì)算相應(yīng)冗余信息實(shí)體(R)的信息內(nèi)容。
文檔編號(hào)G06F11/10GK1959648SQ20061012658
公開日2007年5月9日 申請日期2006年8月29日 優(yōu)先權(quán)日2005年10月31日
發(fā)明者A·多拉基亞, 胡曉宇, I·伊利亞迪斯, E·S·埃萊夫特里烏 申請人:國際商業(yè)機(jī)器公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1