用于乘積碼的組合糾錯和擦除解碼的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)存儲,并且更特別地涉及使用組合糾錯和擦除解碼提供改善的乘積碼解碼。
【背景技術(shù)】
[0002]存儲介質(zhì)和傳輸介質(zhì)(諸如磁帶、光存儲或光纖傳輸)使用乘積碼來對數(shù)據(jù)進(jìn)行編碼,該編碼的數(shù)據(jù)隨后必須被解碼以從所述介質(zhì)讀取數(shù)據(jù)。乘積碼也可用在存儲類和閃存存儲器中。乘積碼是兩級糾錯架構(gòu)的關(guān)鍵組成部分。磁帶驅(qū)動器中的糾錯通常基于使用第一級C1碼和第二級C2碼的乘積碼,該過程在本領(lǐng)域中是熟知的。乘積碼字可被表示為二維陣列,其中該陣列的行包括來自行代碼(C1碼)的碼字,并且該陣列的列由來自列代碼(C2碼)的碼字組成。
[0003]根據(jù)現(xiàn)有技術(shù),如圖1所示,每個數(shù)據(jù)集使用被組織成大小為Μ字節(jié)XN字節(jié)(MXN)的ECC編碼矩陣的交織的碼字集進(jìn)行編碼,且隨后被寫入磁帶。該矩陣150內(nèi)存在兩級編碼。第一級編碼利用矩陣行102。該矩陣的每個行102包含C1-ECC行奇偶校驗106,其向η字節(jié)的用戶數(shù)據(jù)添加Ρ字節(jié)的C1-ECC(例如,Ν = η+ρ字節(jié))。第二級編碼即C2-ECC列奇偶校驗108向每個矩陣列104添加q字節(jié)的C2-ECC。例如,如果q=12,則添加12字節(jié)的C2-ECC將會向矩陣150添加12行(例如,M=m+q字節(jié))。
[0004]在磁帶存儲中,用于乘積碼的解碼器被設(shè)計成減少非常長的錯誤事件諸如漏碼(drop-out)和同步滑移(sync slip)。在一些磁帶驅(qū)動器中,在邊讀邊寫期間也被使用的C1解碼器執(zhí)行糾錯解碼,并且C2解碼器執(zhí)行擦除解碼。這種特定解碼策略的缺陷是在短錯誤事件存在的情況下表現(xiàn)不良。此外,這種策略不允許使用迭代解碼來改善出錯率性能。
[0005]在其他通信信道諸如光纖傳輸信道中,糾錯解碼被用在非常短的獨立位錯誤存在的情況下。這種解碼策略的缺陷是,只要長錯誤事件是可忽略的,就能很好地工作。
[0006]然而,許多信道和存儲介質(zhì)諸如磁帶存儲通道既展現(xiàn)短錯誤事件又展現(xiàn)長錯誤事件。因此,需要一種在長和短錯誤事件都存在的情況下輸送改善的出錯率性能的改善的解碼調(diào)度/策略。
【發(fā)明內(nèi)容】
[0007]在一個實施例中,用于乘積碼的組合糾錯和擦除解碼的系統(tǒng)包括處理器以及與所述處理器集成和/或可由所述處理器執(zhí)行的邏輯,所述邏輯配置成:接收捕獲的數(shù)據(jù),為捕獲的數(shù)據(jù)生成擦除旗標(biāo)并將該擦除旗標(biāo)提供給C2解碼器,將停止參數(shù)設(shè)定成等于用于對捕獲的數(shù)據(jù)進(jìn)行編碼的碼字交織中的C1碼字的長度,以及在迭代過程中,選擇性地執(zhí)行后面跟隨著糾錯或擦除C2解碼的糾錯或擦除C1解碼,直到解碼成功或不成功。
[0008]在另一實施例中,用于乘積碼的組合糾錯和擦除解碼的方法包括:接收捕獲的數(shù)據(jù),為捕獲的數(shù)據(jù)生成擦除旗標(biāo)并將該擦除旗標(biāo)提供給C2解碼器,將停止參數(shù)設(shè)定成等于用于對捕獲的數(shù)據(jù)進(jìn)行編碼的碼字交織中的C1碼字的長度,以及在迭代過程中,選擇性地執(zhí)行后面跟隨著糾錯或擦除C2解碼的糾錯或擦除Cl解碼,直到解碼成功或不成功。
[0009]根據(jù)另一實施例,用于乘積碼的組合糾錯和擦除解碼的計算機(jī)程序產(chǎn)品包括其中體現(xiàn)有程序代碼的計算機(jī)只讀存儲介質(zhì),所述程序代碼可由處理器讀取/執(zhí)行以便:接收捕獲的數(shù)據(jù),為捕獲的數(shù)據(jù)生成擦除旗標(biāo)并將該擦除旗標(biāo)提供給C2解碼器,將停止參數(shù)設(shè)定成等于用于對捕獲的數(shù)據(jù)進(jìn)行編碼的碼字交織中的C1碼字的長度,以及在迭代過程中,選擇性地執(zhí)行后面跟隨著糾錯或擦除C2解碼的糾錯或擦除C1解碼,直到解碼成功或不成功。
[0010]根據(jù)下面的詳細(xì)描述,本發(fā)明的其他方面和實施例將變得明顯,所述詳細(xì)描述在結(jié)合附圖閱讀時借助示例示出本發(fā)明的原理。
【附圖說明】
[0011]圖1示出根據(jù)現(xiàn)有技術(shù)的數(shù)據(jù)集矩陣或陣列。
[0012]圖2示出根據(jù)一個實施例的網(wǎng)絡(luò)存儲系統(tǒng)。
[0013]圖3示出根據(jù)一個實施例的基于磁帶的數(shù)據(jù)存儲系統(tǒng)的簡化的磁帶驅(qū)動器。
[0014]圖4是根據(jù)一個實施例的方法的流程圖。
[0015]圖5是根據(jù)另一實施例的方法的流程圖。
[0016]圖6是根據(jù)又一實施例的方法的流程圖。
【具體實施方式】
[0017]下面的描述是為了說明本發(fā)明的一般原理,而并非意在限制本文要求保護(hù)的創(chuàng)造性構(gòu)思。此外,本文所述的特定特征可以與各種可能的組合和置換中的每種組合和置換中的其他所述特征結(jié)合使用。
[0018]除非本文另有特別限定,所有術(shù)語應(yīng)被給予它們最廣泛的可能解釋,包括從說明書中暗示的含義以及本領(lǐng)域技術(shù)人員所理解的和/或在字典、論文等中定義的含義。
[0019]還必須注意的是,如在本說明書和所附權(quán)利要求中使用的,單數(shù)形式的“一”和“該”包括復(fù)數(shù)形式,除非另外指明。
[0020]根據(jù)一個實施例,使用基于糾錯和擦除解碼的用于乘積碼的解碼策略,以便在存在短和長錯誤事件的情況下實現(xiàn)改善的出錯率性能。
[0021]在一個一般實施例中,用于乘積碼的組合糾錯和擦除解碼的系統(tǒng)包括處理器以及與處理器集成和/或可由處理器執(zhí)行的邏輯,該邏輯配置成接收捕獲的數(shù)據(jù),為捕獲的數(shù)據(jù)生成擦除旗標(biāo)并將該擦除旗標(biāo)提供給C2解碼器,將停止參數(shù)設(shè)定成等于用于對捕獲的數(shù)據(jù)進(jìn)行編碼的碼字交織中的C1碼字的長度,以及在迭代過程中選擇性地執(zhí)行后面跟隨著糾錯或擦除C2解碼的糾錯或擦除C1解碼,直到解碼成功或不成功。
[0022]在另一個一般實施例中,用于乘積碼的組合糾錯和擦除解碼的方法包括:接收捕獲的數(shù)據(jù),為捕獲的數(shù)據(jù)生成擦除旗標(biāo)并將該擦除旗標(biāo)提供給C2解碼器,將停止參數(shù)設(shè)定成等于用于對捕獲的數(shù)據(jù)進(jìn)行編碼的碼字交織中的C1碼字的長度,以及在迭代過程中選擇性地執(zhí)行后面跟隨著糾錯或擦除C2解碼的糾錯或擦除C1解碼,直到解碼成功或不成功。
[0023]根據(jù)另一個一般實施例,用于乘積碼的組合糾錯和擦除解碼的計算機(jī)程序產(chǎn)品包括其中體現(xiàn)有程序代碼的計算機(jī)可讀存儲介質(zhì),所述程序代碼可由處理器讀取/執(zhí)行以便:接收捕獲的數(shù)據(jù),為捕獲的數(shù)據(jù)生成擦除旗標(biāo)并將該擦除旗標(biāo)提供給C2解碼器,將停止參數(shù)設(shè)定成等于用于對捕獲的數(shù)據(jù)進(jìn)行編碼的碼字交織中的Cl碼字的長度,以及在迭代過程中選擇性地執(zhí)行后面跟隨著糾錯或擦除C2解碼的糾錯或擦除C1解碼,直到解碼成功或不成功。
[0024]如本領(lǐng)域技術(shù)人員將理解的是,本發(fā)明的各方面可以實施為系統(tǒng)、方法或計算機(jī)程序產(chǎn)品。因此,本發(fā)明的各方面可采取純硬件實施例、純軟件實施例(包括固件、駐留軟件、微代碼等)、或者將軟件和硬件方面進(jìn)行組合的實施例的形式,上述實施例可在本文中全部被一般地稱為“邏輯”、“電路”、“模塊”或“系統(tǒng)”。而且,本發(fā)明的各方面可采取在一個或多個計算機(jī)可讀介質(zhì)中實現(xiàn)的計算機(jī)程序產(chǎn)品的形式,所述一個或多個計算機(jī)可讀介質(zhì)在其上體現(xiàn)有計算機(jī)可讀程序代碼。
[0025]可以利用一個或多個計算機(jī)可讀介質(zhì)的任何組合。該計算機(jī)可讀介質(zhì)可以是計算機(jī)可讀信號介質(zhì)或計算機(jī)可讀存儲介質(zhì)。計算機(jī)可讀存儲介質(zhì)可以例如是但不限于電子、磁、光學(xué)、電磁、紅外或半導(dǎo)體系統(tǒng)、裝置或設(shè)備或上述的任何適合的組合。計算機(jī)可讀存儲介質(zhì)的更具體的示例(非無遺漏的列表)包括下述:便攜式計算機(jī)軟盤、硬盤、隨機(jī)存取存儲器(RAM)、只讀存儲器(R0M)、可擦除可編程只讀存儲器(EPR0M或閃存存儲器)、便攜式緊湊盤只讀存儲器(CD-ROM)、光存儲設(shè)備、磁存儲設(shè)備或上述的任何適合的組合。在本文檔的上下文中,計算機(jī)可讀存儲介質(zhì)可以是包含或存儲程序的任何有形介質(zhì),所述程序由指令執(zhí)行系統(tǒng)、裝置或設(shè)備使用或與其結(jié)合使用。
[0026]計算機(jī)可讀信號介質(zhì)可以包括例如在基帶中或者作為載波的一部分的其中體現(xiàn)有計算機(jī)可讀程序代碼的傳播的數(shù)據(jù)信號。這樣的傳播信號可采取各種形式(包括但不限于電磁、光學(xué)或上述的任何適合的組合,諸如具有一個或多個導(dǎo)線的電連接、光纖等)中的任一種。計算機(jī)可讀信號介質(zhì)可以是除計算機(jī)可讀存儲介質(zhì)以外的、并且可以傳送、傳播或傳輸程序的任何計算機(jī)可讀介質(zhì),所述程序由指令執(zhí)行系統(tǒng)、裝置或設(shè)備使用或者與其結(jié)合使用。
[0027]計算機(jī)可讀介質(zhì)上體現(xiàn)的程序代碼可以使用任何適當(dāng)?shù)慕橘|(zhì)傳輸,包括但不限于無線、有線、光纜、RF等等,或者上述的任意適合的組合。
[0028]可以以一種或多種程序設(shè)計語言的任意組合來編寫用于執(zhí)行本發(fā)明的各方面的操作的計算機(jī)程序代碼,所述程序設(shè)計語言包括面向?qū)ο蟮某绦蛟O(shè)計語言諸如Java、Smalltalk、C++等,還包括常規(guī)的過程式程序設(shè)計語言諸如“C”程序設(shè)計語言或類似的程序設(shè)計語言。程序代碼可以完全地在用戶計算機(jī)上執(zhí)行、部分地在用戶計算機(jī)上執(zhí)行、作為一個獨立的軟件包執(zhí)行、部分在用戶計算機(jī)上部分在遠(yuǎn)程計算機(jī)上執(zhí)行、或者完全在遠(yuǎn)程計算機(jī)或服務(wù)器上執(zhí)行。在涉及遠(yuǎn)程計算機(jī)的情形中,遠(yuǎn)程計算機(jī)可以通過任意種類的網(wǎng)絡(luò)一包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)—連接到用戶計算機(jī),或者可以連接到外部計算機(jī)(例如利用因特網(wǎng)服務(wù)提供商來通過因特網(wǎng)連接)。
[0029]下面將參照根據(jù)本發(fā)明實施例的方法、裝置(系統(tǒng))和計算機(jī)程序產(chǎn)品的流程圖和/或框圖描述本發(fā)明的各方面。將理解的是,流程圖和/或框圖的每個方框以及流程圖和/或框圖中各方框的組合,都可以由計算機(jī)程序指令實現(xiàn)。這些計算機(jī)程序指令可以提供給通用計算機(jī)、專用計算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器,從而生產(chǎn)出一種機(jī)器,使得這些計算機(jī)程序指令在通過計算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器執(zhí)行時,產(chǎn)生實現(xiàn)流程圖和/或框圖中的一個或多個方框中規(guī)定的功能/動作的裝置。
[0030]也可以把這些計算機(jī)程序指令存儲在計算機(jī)可讀介質(zhì)中,這些指令使得計算機(jī)、其它可編程數(shù)據(jù)處理裝置、或其他設(shè)備以特定方式工作,使得存儲在計算機(jī)可讀介質(zhì)中的指令產(chǎn)生包括實現(xiàn)流程圖和/或框圖中的一個或多個方框中規(guī)定的功能/動作的指令的制
4生口fe PR ο
[0031]計算機(jī)程序指令還可以加載到計算機(jī)、其它可編程數(shù)據(jù)處理裝置或其他設(shè)備上,以使一系列操作步驟在計算機(jī)、其它可編程裝置或其他設(shè)備上被執(zhí)行以產(chǎn)生計算機(jī)實現(xiàn)的過程,使得在計算機(jī)或其它可編程裝置上執(zhí)行的指令提供用于實現(xiàn)流程圖和/或框圖中的一個或多個方框中規(guī)定的功能/動作的處理。
[0032]附圖中的流程圖和框圖示出根據(jù)本發(fā)明的各種實施例的系統(tǒng)、方法和計算機(jī)程序產(chǎn)品的可能實現(xiàn)的架構(gòu)、功能和操作。在這點上,流程圖或框圖中的每個方框可以代表一個模塊、程序段或代碼的一部分,所述模塊、程序段或代碼的一部分包含一個或多個用于實現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。還應(yīng)注意的是,在有些替代實現(xiàn)中,方框中所標(biāo)注的功能可以以不同于附圖中所標(biāo)注的順序發(fā)生。例如,兩個連續(xù)示出的方框?qū)嶋H上可以基本并行地執(zhí)行,或者它們有時也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或動作的專用的基于硬件的系統(tǒng)來實現(xiàn),或者可以用專用硬件與計算機(jī)指令的組合來實現(xiàn)。
[0033]現(xiàn)在參考圖2,其示出根據(jù)一個實施例的網(wǎng)絡(luò)存儲系統(tǒng)10的示意圖。該網(wǎng)絡(luò)存儲系統(tǒng)10僅是適合的存儲系統(tǒng)的一個示例,而并非旨在暗示對本文所述的本發(fā)明的實施例的使用范圍或功能進(jìn)行任何限制。無論如何,網(wǎng)絡(luò)存儲系統(tǒng)10能夠被實現(xiàn)和/或執(zhí)行上文闡述的任何功能。
[0034]在網(wǎng)絡(luò)存儲系統(tǒng)10中,存在計算機(jī)系統(tǒng)/服務(wù)器12,其可以與許多其他通用或?qū)S?