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