專利名稱:軟糾錯代數(shù)解碼器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)存儲領(lǐng)域,尤其涉及使用軟糾錯代數(shù)解碼器的系統(tǒng)和方法。特別是,根據(jù)本發(fā)明,通過Reed-Solomn解碼器以迭代方式,組合來自最大似然(ML)解碼器的字節(jié)可靠性系數(shù)和來自內(nèi)調(diào)制碼符號的奇偶校驗(yàn)成功/失敗,從而把錯誤擦除率最大化,其目的是把需要檢驗(yàn)的字節(jié)數(shù)最小化。
背景技術(shù):
早就確立了循環(huán)糾錯碼與存儲裝置中的數(shù)據(jù)存儲有關(guān)的使用,并且通常被認(rèn)為是存儲系統(tǒng)的可靠性要求。通常,糾錯處理包括校正子字節(jié)的處理,以確定每一個錯誤的位置和值。非零校正子字節(jié)源自在數(shù)據(jù)寫入在存儲介質(zhì)上時產(chǎn)生的錯誤字符的異或。
使用的糾錯碼(ECC)校驗(yàn)字符數(shù)取決于代碼的所需能力。作為一個例子,在許多當(dāng)前的與存儲裝置中的存儲8位字節(jié)一起使用的ECC系統(tǒng)中,把兩個校驗(yàn)字節(jié)用于具有最多255個字節(jié)位置長度的字代碼中的要被校正的每個錯誤。這樣,例如需要6個校驗(yàn)字節(jié)來校正具有249數(shù)據(jù)字節(jié)和6個校驗(yàn)字節(jié)的數(shù)據(jù)塊中的最多3個錯誤。因此在這種系統(tǒng)中產(chǎn)生6個不同的校正子字節(jié)。如果在包括從存儲裝置讀出的255個字節(jié)的數(shù)據(jù)字中沒有錯誤,那么6個校正子字節(jié)都是零模式。在這種情況下,不需要校正子處理并且可把數(shù)據(jù)字送到中央處理單元。但是,如果一個或多個校正子字節(jié)不為零,那么校正子處理包括識別錯誤字節(jié)的位置以及進(jìn)一步為每個錯誤位置標(biāo)識錯誤模式的處理。
下面的包括在正態(tài)校正子處理運(yùn)算中的校正子數(shù)學(xué)概念和運(yùn)算已經(jīng)在不同出版物中作了說明。這些運(yùn)算和數(shù)學(xué)解釋通常涉及首先使用“錯誤定位器多項(xiàng)式”來識別錯誤的位置。所涉及的使用錯誤定位器多項(xiàng)式的數(shù)學(xué)運(yùn)算的全部對象是要僅使用在系統(tǒng)中產(chǎn)生的校正子字節(jié)確定錯誤字節(jié)的位置。
錯誤定位器多項(xiàng)式通常用作數(shù)學(xué)分析的開始,以根據(jù)校正子表達(dá)錯誤位置,使得可把二進(jìn)制邏輯電路用來把校正子字節(jié)解碼為首先識別錯誤位置,以使得相關(guān)硬件識別出各個位置中的錯誤模式。而且,在存儲或通信系統(tǒng)中使用的繁忙(on-the-fly)ECC中的錯誤位置被計算為錯誤定位器多項(xiàng)式的根。
已經(jīng)使用幾種解碼技術(shù)來改善解碼性能。這種技術(shù)之一是最小距離解碼,其錯誤校正能力僅依賴于碼的代數(shù)冗余度。但是,最小距離解碼在碼的代數(shù)性能的基礎(chǔ)上確定最靠近接收到的字的代碼字,并且接收到的字的每一位的出錯可能性不構(gòu)成解碼的屬性。即,每一位的出錯可能性都視為相等的,并且在錯誤位數(shù)超出依賴于碼距離的糾錯能力所允許的值時,解碼會出錯。
另一個更有效的解碼技術(shù)是最大似然解碼,根據(jù)該方法,使用每一位的出錯可能性,計算與已經(jīng)被發(fā)送代碼字相關(guān)的可能性,并且?guī)в凶畲罂赡苄缘拇a字作為解碼結(jié)果被分送。這個最大似然解碼允許在數(shù)量上超出糾錯能力的糾錯。但是,最大似然解碼技術(shù)很復(fù)雜并且要求重要的資源來實(shí)施。另外,最大似然解碼技術(shù)的實(shí)施通常不考慮有價值的數(shù)據(jù),例如位可靠性信息。
然而,在傳統(tǒng)解碼方案中,ReeD-Solomon碼不被最優(yōu)化來對給定的可靠性/奇偶性信息生成最大數(shù)目的擦除,主要是由于這種信息大部分不可用于ReeD-Solomon解碼器這一事實(shí)。另外,不把傳統(tǒng)解碼器中實(shí)施的關(guān)鍵方程的解算器設(shè)計為解決有理插值問題。
這樣,仍需要一種解碼方法,降低似然解碼技術(shù)的復(fù)雜性和引起的等待時間,卻不明顯影響其性能,并且不丟失位可靠性信息。
提出了使這種解碼處理更有效的多次嘗試。參考1997年9月的IEEE Transaction on Information Theory的Vol.43,No.5的1477到1488頁的N.Kamiya的文章“On Acceptance Criterion forEfficient Sucessive Errors-and-Erasures Decoding of Reed-Solomon and BCH Codes”。但是,這樣的嘗試通常需要多次遞歸來計算錯誤定位器和評估器多項(xiàng)式,從而需要有價值存儲空間中的冗余度。此外,這樣的嘗試通常包括其功能被限制于有限域運(yùn)算的關(guān)鍵方程解算器,從而需要獨(dú)立的模塊來執(zhí)行有限精度的實(shí)際運(yùn)算,這增加解碼處理的實(shí)施成本。
因此,仍有一種尚未滿足的對更有效的解碼算法的需要,該算法從由完全廣義最小距離(GMD)解碼算法產(chǎn)生的一組候選擦除中提供最可能的擦除和錯誤定位器多項(xiàng)式,而不定位所有候選錯誤定位器多項(xiàng)式的根,而且其可用存儲空間中的最小冗余度來實(shí)施。
發(fā)明概述根據(jù)本發(fā)明,一種軟糾錯代數(shù)解碼器和相關(guān)的方法使用擦除可靠性系數(shù)來得到錯誤位置和值。尤其,來自最大似然(ML)解碼器的符號可靠性系數(shù)和來自內(nèi)調(diào)制碼符號的奇偶校驗(yàn)成功/失敗通過Reed-Solomon解碼器以迭代方式被組合,使得錯誤擦除的比率被最大化。
根據(jù)本發(fā)明的一個特征,通過依次計算這二個多項(xiàng)式,解碼器需要一次遞歸來計算錯誤定位器和評估器多項(xiàng)式,從而使得存儲空間的冗余度最小化。
本發(fā)明的上述和其他特征通過軟糾錯(ECC)代數(shù)解碼器和用于使用二進(jìn)制代碼和檢測器一側(cè)的信息來解碼Reed-Solomon碼的相關(guān)的方法實(shí)現(xiàn)。Reed-Solomon碼最適合于在擦除通道上使用。本發(fā)明的一個特征是使用能夠執(zhí)行有限域運(yùn)算和有限精度實(shí)際運(yùn)算以降低解碼處理的實(shí)施成本的關(guān)鍵方程解算器。
根據(jù)本發(fā)明的一個特征,閾值調(diào)節(jié)算法根據(jù)檢測器錯誤濾波器輸出和調(diào)制碼限制成功/失敗信息來考核候選擦除,尤其是作為盤驅(qū)動器應(yīng)用中的電流調(diào)制碼的奇偶校驗(yàn)或失敗使用奇偶校驗(yàn)。這個算法對Reed-Solomon解碼器生成固定的擦除輸入。
本發(fā)明的一種補(bǔ)充的軟解碼算法教導(dǎo)使用關(guān)鍵方程解算器算法,其計算作為以檢測器一側(cè)的信息給定的加權(quán)來解決加權(quán)有理插值問題所得到的錯誤模式。
附圖的簡要說明本發(fā)明的各種特征和實(shí)現(xiàn)方式將參考下面的說明、權(quán)利要求和附圖進(jìn)行更具體描述,其中,適當(dāng)?shù)牡胤皆俅问褂脜⒖夹蛱?,以表示參考?xiàng)之間的對應(yīng)性,其中
圖1是根據(jù)本發(fā)明實(shí)施繁忙代數(shù)糾錯碼(ECC)的數(shù)據(jù)存儲系統(tǒng),例如盤驅(qū)動器的簡圖;圖2是詳細(xì)表示包括根據(jù)本發(fā)明實(shí)施繁忙糾錯碼的繁忙(OTF)糾錯碼(ECC)系統(tǒng)的緩沖硬盤控制器的結(jié)構(gòu)的框圖;圖3是圖1的數(shù)據(jù)存儲系統(tǒng)的框圖,描述了沿著圖2的硬盤控制器的讀出通道和寫入通道的數(shù)據(jù)流,并且表示由ECC讀出處理器和ECC寫入處理器構(gòu)成的例示繁忙糾錯碼系統(tǒng);圖4是圖1的數(shù)據(jù)存儲系統(tǒng)的框圖,詳細(xì)描述了形成圖3的ECC讀出處理器和ECC寫入處理器的部件的糾錯碼模塊的主要組件;圖5A是表示通過使用在圖4的數(shù)據(jù)存儲系統(tǒng)中的軟糾錯解碼器裝置實(shí)施糾錯碼的一般方法的功能流程圖;圖5B是圖4的糾錯碼方法的特定例子的功能流程圖;圖5C是解釋計算在圖5A和5B的糾錯方法中使用的錯誤定位器多項(xiàng)式的步驟的流程圖;圖6表示在由圖4的軟糾錯解碼器處理的15字節(jié)位置處的由15個字節(jié)構(gòu)成的一個示例性質(zhì)的代碼字;圖7表示要由圖4的軟糾錯解碼器處理的用于圖6的代碼字的示例字節(jié)可靠性系數(shù);圖8表示要由圖4的軟糾錯解碼器處理的用于圖6的代碼字的示例性的候選擦除位置;圖9表示要由圖4的軟糾錯解碼器處理的用于圖6的代碼字的示例性的校正子;圖10表示在由圖4的軟糾錯解碼器以降序?qū)ζ溥M(jìn)行分類后的圖7的示例性的字節(jié)可靠性系數(shù);圖11表示在由圖4的軟糾錯解碼器根據(jù)它們的可靠性值對其進(jìn)行分類后的圖8的示例性的候選擦除位置。
發(fā)明的詳細(xì)說明圖1表示由頭堆疊組件12和繞公共軸16旋轉(zhuǎn)的一堆隔開的磁、光和/或MO數(shù)據(jù)存儲盤或介質(zhì)14構(gòu)成的盤驅(qū)動器10。頭堆疊組件12包括延伸到盤14之間的間隔中的若干致動臂20,為圖示簡單起見,僅示出一張盤14和一個致動臂20。盤驅(qū)動器10還包括預(yù)放大器44、包括字節(jié)可靠性發(fā)生器49的讀/寫通道48和包括本發(fā)明的軟糾錯代數(shù)解碼器200的硬盤控制器50。
頭堆疊組件12還包括E狀塊24和以徑向與致動臂20相反的位置附接于塊24的磁轉(zhuǎn)子26。磁轉(zhuǎn)子26與致動臂20的定子(未示出)配合在大致徑向上沿著箭頭A的方向上的弧形路徑旋轉(zhuǎn)。用直流以一個極性或相反極性對磁轉(zhuǎn)子26的線圈供能,使得頭堆疊組件12(包括致動臂20)圍繞軸P在盤14的大致徑向方向上旋轉(zhuǎn)。盤頭組件33由盤14和頭堆疊組件12構(gòu)成。
換能頭40安裝于各個致動臂20的自由端,以繞軸P樞軸移動。磁轉(zhuǎn)子26控制頭40在徑向的移動,以把頭40定位成與要跟蹤的數(shù)據(jù)信息道或數(shù)據(jù)柱體42對齊,并且訪問這些軌道42上的特定數(shù)據(jù)扇區(qū)。
在數(shù)據(jù)盤14的每個表面的磁介質(zhì)中,把大量軌道42排列成同心模式,每個軌道在一特定徑向位置。數(shù)據(jù)柱體包括用于堆疊盤14的數(shù)據(jù)表面的一組相應(yīng)的數(shù)據(jù)信息軌道42。數(shù)據(jù)信息軌道42包括多個分段或數(shù)據(jù)扇區(qū),每一個包含預(yù)定尺寸的各個組的數(shù)據(jù)記錄,這些數(shù)據(jù)記錄被保留用于后面的檢索和更新。數(shù)據(jù)信息軌道42可相對于伺服參考指數(shù)(index)被安置在預(yù)定位置。
圖2表示包括根據(jù)本發(fā)明的實(shí)施繁忙糾錯碼的繁忙(OTF)糾錯碼(ECC)系統(tǒng)100的緩沖硬盤控制器50的示例性結(jié)構(gòu)。應(yīng)明白本發(fā)明并不限制于這個特定的結(jié)構(gòu),而且能夠通過或與其它結(jié)構(gòu)結(jié)合在一起被實(shí)施。
硬盤驅(qū)動器控制器50包括對來自硬盤組件33的例如從8位到32位的數(shù)據(jù)進(jìn)行格式化的邏輯驅(qū)動電路105。FIFO寄存器110存儲格式化的數(shù)據(jù)并與扇區(qū)緩沖器120交換數(shù)據(jù)。ECC系統(tǒng)100從驅(qū)動邏輯電路105接收格式化的數(shù)據(jù)并執(zhí)行本發(fā)明的糾錯碼算法,如這里所述的那樣。
緩沖器管理器115控制在ECC系統(tǒng)100、扇區(qū)緩沖器(即隨機(jī)存取存儲器)120和微處理器125之間的數(shù)據(jù)通信。另一個FIFO寄存器130存儲數(shù)據(jù)并與扇區(qū)緩沖器120交換數(shù)據(jù)。序列控制器135連接在驅(qū)動邏輯電路105、微處理器125和主機(jī)接口140之間,以控制數(shù)據(jù)通信的序列操作和通過硬盤驅(qū)動器控制器50的各種命令。主機(jī)接口140提供在硬盤驅(qū)動器控制器50與主機(jī)60之間的接口。
圖3表示圖2的硬盤控制器50的框圖,其包括由ECC讀出處理器163和ECC寫入處理器167構(gòu)成的繁忙糾錯碼系統(tǒng)100。當(dāng)二進(jìn)制的數(shù)字?jǐn)?shù)據(jù)序列要被寫入盤14上時,將其暫時放置在緩沖器165中并且隨后沿著寫入路徑或通道(157,167和169)進(jìn)行處理和轉(zhuǎn)換。
首先,數(shù)據(jù)串中的預(yù)定數(shù)目的二進(jìn)制數(shù)據(jù)元素,也叫作字節(jié),從緩沖器165移動并且經(jīng)ECC寫入處理器167序列化。在ECC寫入處理器167中,數(shù)據(jù)字節(jié)被映射到從Reed-Solomom碼抽取的代碼字中。接著,在寫入路徑信號整形單元169中各個代碼字被映射為游程受限的或其它帶通或波譜整形的碼,并且被改變?yōu)闀r變信號。寫入路徑信號整形單元169包括用于如這里所述對信號編碼的編碼器202(圖4)。通過接口讀/寫換能器接口157,時變信號被應(yīng)用,并因此而被應(yīng)用于磁致電阻或其它合適的換能器頭40中的寫入元件用來轉(zhuǎn)換為磁通模式。
當(dāng)旋轉(zhuǎn)盤14在頭40下面通過時,從二進(jìn)制數(shù)據(jù)元素從緩沖器165的移動開始直到磁通模式被寫入在選擇的盤軌道42(圖1)上時的所有的測量是同步的且序列化。為了有效傳輸數(shù)據(jù),一次將數(shù)據(jù)從一個盤扇區(qū)不分級(destaged)(寫出)或分級(staged)(讀)。這樣,二進(jìn)制數(shù)據(jù)到Reed-Solomom代碼字的映射和向產(chǎn)生時變信號的通量的轉(zhuǎn)換必須都在確定在換能器下面移動的一個記錄軌道長度的單元的時間間隔內(nèi)完成。一般的記錄軌道長度的單元等于512字節(jié)的固定長度字節(jié)扇區(qū)。
當(dāng)磁通模式序列要從盤14讀出時,在讀出路徑或通道(157,159,161和163)中對其進(jìn)行處理并且被寫入到緩沖器165中。由換能器40感測到的時變信號通過讀、寫換能器接口157到達(dá)數(shù)字信號提取單元159。這里,信號被檢測并且決定是否將其分解為二進(jìn)制的1或0。當(dāng)這些1和0從信號提取單元159流出時,將其設(shè)置為格式化單元11中的代碼字。
由于讀出路徑正在評估前面記錄在盤14上的Reed-Solomom代碼字的序列,那么,沒有錯誤或擦除時,代碼字應(yīng)該是相同的。為測試是否為這種情況,每個代碼字經(jīng)來自格式化器161的路徑應(yīng)用于ECC讀出處理器163。而且,ECC讀出處理器163的輸出被寫入到緩沖器165中。讀出路徑也以同步數(shù)據(jù)流方式操作,使得任何檢測到的錯誤必須及時在代碼字中被定位和糾正,以便ECC讀出處理器163接收從盤軌道42讀出的下一個代碼字。緩沖器165和讀寫通道可由微處理器125監(jiān)視和控制(圖2),以確保參考模式可以規(guī)定不采用的路徑的有效,例如順序讀出參考。
已經(jīng)說明了本發(fā)明的ECC系統(tǒng)100操作的一般環(huán)境,現(xiàn)在說明構(gòu)成ECC系統(tǒng)100部分的糾錯代數(shù)解碼器(軟ECC解碼器)200。ECC讀出處理器163和ECC寫入處理器167的任何一個包括一個ECC解碼器200,它能夠在使用數(shù)字邏輯電路的硬件中執(zhí)行。軟ECC解碼器200的主要組件在圖4中表示。
ECC系統(tǒng)100(圖4)包括幾個功能部件,例如編碼器202、預(yù)放大器44、讀/寫通道48、校正子發(fā)生器205和包含本發(fā)明的軟ECC解碼器200的關(guān)鍵方程解算器。在操作中,字節(jié)可靠性發(fā)生器49計算代碼字的字節(jié)可靠性。如這里所使用的那樣,字節(jié)可靠性是代碼字的準(zhǔn)確度的指示,并且由兩個分量構(gòu)成字節(jié)可靠性系數(shù)410和候選擦除位置420。
參考圖4,讀/寫通道48包括產(chǎn)生指示位為“0”或“1”的概率的位對數(shù)似然比(LLR)的位對數(shù)似然比發(fā)生器50,該位對數(shù)似然比用下面公式表示 對數(shù)似然比發(fā)生器50確定字節(jié)中每位的LLR并把具有最小LLR的位標(biāo)識為字節(jié)可靠性。最小位LLR被設(shè)置為特定字節(jié)的字節(jié)可靠性系數(shù)(θi),錄下所示θi=最小值LLRi,j其中1≤j≤8通過字節(jié)可靠性計算裝置,優(yōu)化擦除候選位置的有效方法是選擇奇偶校驗(yàn)失敗條件下的局部最小可靠性字節(jié)位置。這假設(shè)在讀/寫通道48中使用內(nèi)奇偶校驗(yàn)碼。讀/寫通道48使用內(nèi)奇偶校驗(yàn)碼來提供奇偶校驗(yàn)標(biāo)記。在一個實(shí)施例中,奇偶校驗(yàn)標(biāo)記從一組字節(jié),例如每8個連續(xù)字節(jié)的一位奇偶校驗(yàn)得到。
字節(jié)可靠性發(fā)生器49使用奇偶校驗(yàn)來檢測候選擦除位置(ei)。如果字節(jié)可靠性發(fā)生器49確定該組字節(jié)的奇偶校驗(yàn)失敗,那么,字節(jié)可靠性發(fā)生器49選擇該組字節(jié)內(nèi)的具有最小θi的字節(jié)的候選擦除位置(ei)。
這個選擇規(guī)則可進(jìn)一步細(xì)化。根據(jù)另一個實(shí)施例,字節(jié)可靠性發(fā)生器49還計算可靠性比,即以上升值順序彼此相連的兩個字節(jié)可靠性系數(shù)(θi,θj)的比,如下所示可靠性比=θi/θj如果可靠性比小于可編程的預(yù)定閾值,那么,字節(jié)可靠性發(fā)生器49選擇對應(yīng)于該對字節(jié)可靠性系數(shù)(θi,θj)的字節(jié)的候選擦除位置(ei,ej)。
對于每個代碼字,字節(jié)可靠性發(fā)生器49計算一系列的可靠性系數(shù)(θn),用于每個字節(jié)并且還提供候選擦除的位置,即帶有最小可靠性的字節(jié)。校正子發(fā)生器205計算整個代碼字的校正子并將它們傳送到關(guān)鍵方程解算器的軟ECC解碼器200。
如這里解釋的那樣,軟ECC解碼器200使用字節(jié)可靠性系數(shù)410、候選擦除位置420和校正子發(fā)生器205產(chǎn)生的校正子來生成錯誤定位器和評估器多項(xiàng)式450。依次解出錯誤定位器和評估器多項(xiàng)式450,從而生成錯誤位置和值460,如Hassner等人的美國專利No.5,428,628中描述的那樣,該專利被轉(zhuǎn)讓給與本發(fā)明相同的受讓人,并且將其組合來作為參考。
現(xiàn)在,聯(lián)系圖5到11,考慮特定實(shí)施例,軟ECC解碼器200的操作被描述,這種描述是為了解釋的目的而不是為了限制。軟ECC解碼器200接收校正子405(圖9)、字節(jié)可靠性系數(shù)410(圖7)和候選擦除位置420(圖8)。在這個初始化階段,軟ECC解碼器200選擇(d-1)個最小可靠性位置并接著將其按降序排序(圖10),使得最可靠字節(jié)列于最前面。在這個例子中,在位置序號1處的字節(jié)具有最大值的可靠性系數(shù)并且被列在最前面,接著是在位置序號8處的字節(jié)等。
類似地,對應(yīng)的候選擦除的位置也以與字節(jié)可靠性系數(shù)410相同的順序被列出(圖11)。在這個例子中,在位置序號1處的具有最大值可靠性系數(shù)的字節(jié)具有伽羅依斯(Galois)域位置指數(shù)a1,接著是位置序號8處的帶有伽羅依斯域位置指數(shù)a8的字節(jié)等,其中“a”是伽羅依斯域素元。
對于t字節(jié)的軟ECC解碼器200,是能夠確定t個錯誤并具有漢明(Hamming)距離(d=2t+1)的解碼器,執(zhí)行本發(fā)明的解碼算法所需的盤存儲的總量是(12t+6),具體如下;輸入
●2t個寄存器用來存儲校正子(圖9);●2t個寄存器用來存儲分類的字節(jié)可靠性系數(shù)(圖10);和●2t個寄存器用來存儲分類的候選擦除位置(圖11)。
工作存儲器●2t個寄存器用來存儲錯誤評估器多項(xiàng)式的系數(shù);●2t個寄存器用來存儲輔助錯誤評估器多項(xiàng)式的系數(shù);●2t個寄存器用來存儲最佳方案的錯誤評估器多項(xiàng)式;和●6個寄存器用來存儲下面的參數(shù)(一個寄存器用于一個參數(shù))○δ控制這里描述的解碼算法的流程的控制變量;○θsum性能標(biāo)準(zhǔn);○θbest性能標(biāo)準(zhǔn)θsum的最佳值;○δmin控制變量δ的最小值;○γ在擦除位置處的錯誤評估器多項(xiàng)式的值;和○η在擦除位置處的輔助錯誤評估器多項(xiàng)式的值。
為了說明清楚的目的,在圖9-11的例子中,t=4并且圖5A和5B的解碼處理500所需的寄存器數(shù)目是48個寄存器(即,(12*4)+6)。
對于t字節(jié)的軟ECC解碼器200,完成解碼處理500所需的迭代總數(shù)(d-1)由下面的等式定義 其中k是從0到t范圍的指數(shù)。
圖5A和5B表示由本發(fā)明的軟ECC解碼器200執(zhí)行的解碼處理500。在步驟510,軟ECC解碼器200通過初始化兩個多項(xiàng)式V(x)和R(x)開始,其中V(x)是用下面的等式初始化的輔助評估器多項(xiàng)式V(x)=xd-1;及R(x)是用下面的等式初始化的錯誤評估器多項(xiàng)式R(x)=S(x).E(x)mod xd-1,其中,S(x)是由校正子值確定的校正子多項(xiàng)式,而E(x)是其根是候選擦除位置的擦除多項(xiàng)式。
另外,在步驟510處,軟ECC解碼器200把下面的參數(shù)初始化為預(yù)置基值,如下所示○δ=d-1,其中δ是錯誤的數(shù)目與當(dāng)前方案的擦除數(shù)目相加兩次的和,并通過把該值與碼的漢明距離d進(jìn)行比較來控制解碼方法500的流程。
○δmin=d,δmin是在當(dāng)前的計算塊中δ的最小值。
○θsum=0,其中θsum是當(dāng)前的計算塊的性能標(biāo)準(zhǔn)。
○θbest=0,其中θbest是計算塊中的θsum的當(dāng)前最佳的最大值。
○i=0,其中i是用方法500執(zhí)行的迭代次數(shù)。
○bestSol=Sol=[R(x),i],其中bestSol是與當(dāng)前θbest相關(guān)的方案,而Sol是最近計算。
現(xiàn)在要具體描述的步驟515,520和540的目標(biāo)是檢查正評估的候選擦除是否是真正的錯誤。這個目標(biāo)通過處理圖10的分類的字節(jié)可靠性系數(shù)和順序地一次一對{ei,θi}地以降序?qū)?yīng)圖11的分類的候選擦除位置來實(shí)現(xiàn),所謂降序是以最可靠的處理首先開始。
在步驟515,迭代次數(shù)i遞增1個單位(i=i+1),并且通過計算兩個對應(yīng)的多項(xiàng)式V(ei)和R(ei)來評估每一對{ei,θi},其中,ei表示候選擦除位置,而θi表示當(dāng)前分析的對應(yīng)字節(jié)可靠性系數(shù)。
而且在步驟515,軟ECC解碼器200評估下面的表達(dá)式γ=R(ei)η=V(ei)在步驟520,軟ECC解碼器200檢查γ的值,即在被分析的候選擦除位置(ei)處的錯誤評估器多項(xiàng)式是否為0。如果軟ECC解碼器200在步驟520確定γ的值為0,那么進(jìn)行到評估器縮減步驟530,這里,從進(jìn)一步考慮來看,放棄作為假錯誤的候選擦除。這通過評估下面的表達(dá)式來完成δ=δ-1δ<d→θsum=θsum+θiR(ei):=R(ei)x-ei;15]]>
δ<δmin→[δmin=δ;Sol=[R(x),i]]從上面的表達(dá)式R(ei)看到,通過進(jìn)一步考慮,把錯誤評估多項(xiàng)式R(ei)除以線性項(xiàng)(x-ei)減少(即去除)候選擦除。
然后,處理500在步驟535處詢問是否已經(jīng)考慮了所有分類的字節(jié)可靠性系數(shù)(圖10)和分類的候選擦除位置(圖11)。如果是的,那么,軟ECC解碼器200在步驟536處計算錯誤位置多項(xiàng)式,并生成最佳方案和當(dāng)前方案[bestSol,Sol],這將與圖5C一起在后面說明。
如果解碼方法500在步驟535處確定沒有考慮一些分類的字節(jié)可靠性系數(shù)和分類的候選擦除位置,那么,處理500進(jìn)行到步驟515,在那里其接受下一對候選擦除位置和字節(jié)可靠性系數(shù){ei,θi}。然后,新一對{ei,θi}如這里所述的那樣被處理。
返回到步驟520,如果解碼方法500確定在被分析的候選擦除位置(ei)處的錯誤評估器多項(xiàng)式R(ei)的值γ不是為0,那么,進(jìn)行到步驟540,在那里,詢問當(dāng)前正在分析的該對候選擦除位置和字節(jié)可靠性系數(shù){ei,θi}的輔助評估器多項(xiàng)式V(x)的值η是否為0,即V(ei)=0。而且,在步驟540,軟ECC解碼器200還檢查程度邊界(degreebound)δ是否小于漢明距離d。
如果不滿足步驟540的任何條件,即如果η不等于0并且δ不滿足邊界條件(即δ不小于漢明距離),那么處理500進(jìn)行到評估器更新步驟550,在那里把當(dāng)前候選擦除處理為實(shí)際錯誤,并更新最佳方案bestSol,如下面的表達(dá)式所示θsum>θbest→[θbest=θsum;bestSol=Sol]θsum=0;δ=δ-1;δmin=δ;δ<d→θsum=θsum+θi;R(x):=R(x)-γη·V(x)x-ei]]>Sol=[R(x),i]
然后方法500返回到步驟535并且如上所述那樣進(jìn)行詢問。
返回到步驟540,如果解碼方法500確定滿足兩個條件,即如果η等于0并且δ滿足邊界條件(即δ小于漢明距離),那么處理500進(jìn)行到輔助評估器更新步驟560,在那里更新輔助評估器多項(xiàng)式V(x)和最佳方案bestSol,如下面的表達(dá)式所示δ<d→θsum=θsum-θi;δ=δ+1;V(x):=V(x)-η/γ·R(x)x-ei]]>Sol=[R(x),i]然后方法500返回到步驟535并且如上所述進(jìn)行詢問。
轉(zhuǎn)到圖5C,知道了校正子S(x)、錯誤評估器多項(xiàng)式R(x)和指數(shù)i的解碼處理500,通過在步驟560評估下面的表達(dá)式,計算錯誤定位器多項(xiàng)式P(x)E(x):=Πj=i+1d-1(x-ej)]]>T(x)=S(x).E(x)(mod xd-1);P(x)=R(x)/T(x)(mod xd-1)其中,P(x):=Πi=0d-2Pi.xi,]]>R(x):=Πi=0d-2Ri.xi,]]>T(x):=Σi=0d-2Ti.xi,]]>然后,對于0≤i≤d-2,在步驟570處,迭代計算錯誤定位器多項(xiàng)式系數(shù)Pi,如下所示Pi:=Ri+Σj=1iTj.Pi-jT0]]>根據(jù)前面的解碼處理500,軟ECC解碼器200使用本領(lǐng)域可用的或公知的技術(shù)來最終產(chǎn)生最佳方案和當(dāng)前方案[bestSol,Sol]。
應(yīng)理解本發(fā)明所描述的特定實(shí)施例僅是本發(fā)明的原理的某些應(yīng)用的說明。在不背離本發(fā)明的精神和范圍的情況下,可對這里描述的糾錯系統(tǒng)和相關(guān)的方法作出多種修改。而且,盡管本發(fā)明為說明的目的僅相對于數(shù)據(jù)存儲系統(tǒng)作了描述,但應(yīng)清楚本發(fā)明可適用于各種通信和數(shù)據(jù)處理系統(tǒng)。
權(quán)利要求
1.一種糾錯碼系統(tǒng),包括一個字節(jié)可靠性發(fā)生器,計算代碼字的字節(jié)可靠性;一個校正子發(fā)生器,用于產(chǎn)生一個或多個代碼字的校正子;和一個關(guān)鍵方程解算器,包括解碼器用于迭代處理字節(jié)可靠性和校正子以產(chǎn)生廣義最小距離解碼錯誤定位器多項(xiàng)式和錯誤評估器多項(xiàng)式。
2.根據(jù)權(quán)利要求1的系統(tǒng),其中,字節(jié)可靠性由兩個分量構(gòu)成字節(jié)可靠性系數(shù)和候選擦除位置。
3.根據(jù)權(quán)利要求2的系統(tǒng),其中,字節(jié)可靠性發(fā)生器計算多個可靠性系數(shù),用于代碼字的每一個字節(jié),并且還提供帶有最小可靠性系數(shù)的候選擦除的位置。
4.根據(jù)權(quán)利要求3的系統(tǒng),其中,解碼器在初始化階段把多個參數(shù)初始化。
5.根據(jù)權(quán)利要求4的系統(tǒng),其中,在初始化階段,解碼器選擇(d-1)個最不可靠的字節(jié)并且對選擇的字節(jié)以降序來分類,使得最可靠字節(jié)首先被處理。
6.根據(jù)權(quán)利要求5的系統(tǒng),其中,在初始化階段,解碼器還把對應(yīng)于字節(jié)可靠性系數(shù)的候選擦除的位置分類。
7.根據(jù)權(quán)利要求4的系統(tǒng),其中,對于t字節(jié)解碼器,該解碼器執(zhí)行總數(shù)為(d-1)次迭代,其中d是漢明(Hamming)距離。
8.根據(jù)權(quán)利要求7的系統(tǒng),其中,解碼器具有用下面的等式確定的等待時間 其中k是從0到t的指數(shù)。
9.根據(jù)權(quán)利要求4的系統(tǒng),其中,解碼器初始化用下面的任何一個或多個輔助評估器多項(xiàng)式V(x)用下面的等式初始化V(x)=xd-1其中d是漢明(Hamming)距離;或錯誤評估器多項(xiàng)式用下面的等式初始化R(x)=S(x).E(x)mod xd-1,其中,S(x)是由校正子值確定的校正子多項(xiàng)式,E(x)是由候選擦除位置確定的擦除多項(xiàng)式。
10.根據(jù)權(quán)利要求9的系統(tǒng),其中,解碼器把下面的參數(shù)中的任何一個或多個初始化●δ=d-1;●δmin=d,其中δmin是在當(dāng)前的計算塊中的δ的最小值;●θsum=0,其中θsum是當(dāng)前的計算塊的量度;●θbest=0,其中θbest是計算塊中的θsum的當(dāng)前最佳的最大值;●i=0,其中i是由解碼器執(zhí)行的迭代次數(shù);或●bestSol=Sol=[R(x),i],其中bestSol是與當(dāng)前θbest相關(guān)的最佳方案,Sol最近計算的方案。
11.根據(jù)權(quán)利要求9的系統(tǒng),其中,解碼器還依次執(zhí)行候選擦除檢查來評估候選擦除是否為真正的錯誤,一次一個候選擦除。
12.根據(jù)權(quán)利要求11的系統(tǒng),其中解碼器評估下面的表達(dá)式γ= R(ei)η=V(ei)其中,ei是第i候選擦除位置的值;解碼器還詢問γ的值,即在被分析的候選擦除位置(ei)處的錯誤評估多項(xiàng)式是否為0;如果解碼器確定γ的值為0,則進(jìn)行到評估器縮減(reduction)階段,這里,從進(jìn)一步考慮來看,放棄作為假錯誤的候選擦除。
13.根據(jù)權(quán)利要求12的系統(tǒng),其中,如果解碼器確定在被分析的候選擦除位置(ei)處的錯誤評估器多項(xiàng)式R(ei)的值γ不為0,那么詢問當(dāng)前正在分析的候選擦除位置和字節(jié)可靠性系數(shù)處的輔助評估器多項(xiàng)式V(x)的值η是否為0(V(ei)=0),而且,還檢查δ是否滿足邊界條件從而程度邊界δ小于漢明距離d。
14.根據(jù)權(quán)利要求13的系統(tǒng),其中,如果解碼器確定η不等于0并且δ不滿足邊界條件,那么解碼器進(jìn)行到評估器更新階段,在那里解碼器把當(dāng)前的候選擦除處理為實(shí)際錯誤,并更新最佳方案(bestSol)。
15.根據(jù)權(quán)利要求14的系統(tǒng),其中,如果解碼器確定η等于0并且δ滿足邊界條件,那么解碼器進(jìn)行到輔助評估器更新階段,在那里更新輔助評估器多項(xiàng)式V(x)和最佳方案(bestSol)。
16.一種糾錯碼方法,包括計算代碼字的字節(jié)可靠性;產(chǎn)生一個或多個代碼字的校正子;和迭代處理字節(jié)可靠性和校正子,以產(chǎn)生廣義最小距離解碼錯誤定位器多項(xiàng)式和錯誤評估器多項(xiàng)式。
17.根據(jù)權(quán)利要求16的方法,其中,字節(jié)可靠性由兩個分量構(gòu)成字節(jié)可靠性系數(shù)和候選擦除位置;及其中計算代碼字的字節(jié)可靠性包括計算多個可靠性系數(shù),用于代碼字的每一個字節(jié),并且還提供具有最小可靠性系數(shù)的候選擦除的位置。
18.根據(jù)權(quán)利要求17的方法,其中,處理步驟包括在初始化階段把多個參數(shù)初始化。
19.根據(jù)權(quán)利要求17的方法,其中,初始化步驟包括對字節(jié)可靠性系數(shù)分類使得最不可靠的字節(jié)首先被處理,以及把對應(yīng)于字節(jié)可靠性系數(shù)的候選擦除的位置分類。
20.根據(jù)權(quán)利要求19的方法,其中,初始化步驟包括對下面的任何一個或多個初始化●輔助評估器多項(xiàng)式V(x)用下面的等式初始化V(x)=xd-1,其中d是漢明(Hamming)距離;●錯誤評估器多項(xiàng)式用下面的等式初始化R(x)=S(x).E(x)mod xd-1,其中,S(x)是由校正子值確定的校正子多項(xiàng)式,E(x)是由候選擦除位置確定的擦除多項(xiàng)式;●δ=d-1;●δmin=d,其中δmin是在當(dāng)前的計算塊中的δ的最小值;●θsum=0,其中θsum是當(dāng)前的計算塊的量度;●θbest=0,其中θbest是計算塊中的θsum的當(dāng)前最佳的最大值;●i=0,其中i是由解碼器執(zhí)行的迭代次數(shù);或●bestSol=Sol=[R(x),i],其中bestSol是與當(dāng)前θbest相關(guān)的最佳方案,Sol最近計算的方案。
21.根據(jù)權(quán)利要求18的方法,其中,處理步驟還包括依次執(zhí)行候選擦除檢查,以評估候選擦除是否為真正的錯誤。
22.根據(jù)權(quán)利要求21的方法,其中,執(zhí)行候選擦除檢查的步驟包括設(shè)置下面的表達(dá)式γ= R(ei);η= V(ei);其中,ei是第i候選擦除位置的值;和還詢問γ的值,即正在被分析的候選擦除位置(ei)處的錯誤評估器多項(xiàng)式是否為0;和如果確定γ的值為0,通過由進(jìn)一步考慮為假錯誤,而放棄候選擦除來執(zhí)行評估器縮減步驟。
23.根據(jù)權(quán)利要求22的方法,其中,如果在被分析的候選擦除位置(ei)處錯誤評估器多項(xiàng)式R(ei)的值γ不為0,則詢問當(dāng)前正在分析的候選擦除位置和字節(jié)可靠性系數(shù)處的輔助評估器多項(xiàng)式V(x)的值η是否為0(V(ei)=0)而且,還檢查δ是否滿足邊界條件,因此程度邊界δ小于漢明距離d;如果η不等于0并且δ不滿足邊界條件,那么通過把當(dāng)前候選擦除處理為實(shí)際錯誤并更新最佳方案(bestSol)來執(zhí)行評估器更新步驟;和如果η等于0并且δ滿足邊界條件,那么通過更新輔助評估器多項(xiàng)式V(x)和最佳方案(bestSol)來執(zhí)行輔助評估器更新步驟。
24.根據(jù)權(quán)利要求16的方法,其中,產(chǎn)生錯誤定位器多項(xiàng)式包括評估下面的表達(dá)式E(x):=Πj=i+1d-1(x-ej);]]>T(x)=S(x).E(x)(mod xd-1);P(x)=R(x)/T(x)(mod xd-1)其中,P(x):=Πi=0d-2Pi.xi,]]>R(x):=Πi=0d-2Ri.xi,]]>T(x):=Σi=1d-2Ti.xi,]]>Pi=Ri+Σj=1iTj.Pi-jT0]]>。
25.根據(jù)權(quán)利要求16的方法,其中,迭代處理字節(jié)可靠性包括在一次遞歸中對有限域和有限精度運(yùn)算進(jìn)行積分。
26.根據(jù)權(quán)利要求16的方法,其中,計算字節(jié)可靠性包括由位對數(shù)似然比產(chǎn)生字節(jié)可靠性。
27.根據(jù)權(quán)利要求26的方法,其中,計算字節(jié)可靠性包括選擇帶有最小位對數(shù)似然比的字節(jié)可靠性。
28.根據(jù)權(quán)利要求17的方法,其中,計算字節(jié)可靠性包括使用奇偶校驗(yàn)來檢測候選擦除位置。
29.根據(jù)權(quán)利要求27的方法,其中,計算字節(jié)可靠性包括使用奇偶校驗(yàn)來檢測候選擦除位置。
30.根據(jù)權(quán)利要求17的方法,其中,計算字節(jié)可靠性包括以降值順序計算兩個連續(xù)字節(jié)可靠性系數(shù)的可靠性比;和如果可靠性比小于預(yù)定閾值,那么選擇對應(yīng)于該對連續(xù)字節(jié)可靠性系數(shù)的字節(jié)的候選擦除位置。
全文摘要
一種軟糾錯代數(shù)解碼器和相關(guān)的方法使用擦除可靠性系數(shù)獲得錯誤位置和值。尤其是通過Reed-Solomon解碼器以迭代方式組合來自最大似然(ML)解碼器的符號可靠性系數(shù)和來自內(nèi)調(diào)制碼符號的奇偶校驗(yàn)成功/失敗,使得錯誤的擦除比被最大化。軟糾錯(ECC)代數(shù)解碼器和相關(guān)的方法,使用二進(jìn)制碼和檢測器一側(cè)的信息,對Reed-Solomon碼進(jìn)行解碼。Reed-Solomon碼最適合于用在擦除通道上。閾值調(diào)節(jié)算法根據(jù)檢測器錯誤濾波輸出和調(diào)制碼限制的成功/失敗信息來考核候選擦除,尤其是,作為在盤驅(qū)動器應(yīng)用中的當(dāng)前的調(diào)制碼的奇偶校驗(yàn)或失敗使用奇偶校驗(yàn)。這個算法對Reed-Solomon解碼器生成固定的擦除輸入。本發(fā)明的一種補(bǔ)充的軟解碼算法教導(dǎo)使用關(guān)鍵方程解算器算法,其計算作為以檢測器一側(cè)的信息給定的加權(quán)來解決加權(quán)有理插值問題所得到的錯誤模式。
文檔編號G11B20/18GK1340923SQ0112283
公開日2002年3月20日 申請日期2001年7月6日 優(yōu)先權(quán)日2000年7月7日
發(fā)明者M·A·哈斯內(nèi), R·M·H·內(nèi), A·M·帕特, 田村哲也, B·M·特拉格 申請人:國際商業(yè)機(jī)器公司