專利名稱:用于固態(tài)存儲(chǔ)器件的兩級(jí)bch碼的制作方法
用于固態(tài)存儲(chǔ)器件的兩級(jí)BCH碼本發(fā)明一般地涉及固態(tài)存儲(chǔ)器件(SSD)中的數(shù)據(jù)編碼。提供了用于對(duì)數(shù)據(jù)進(jìn)行編碼和在s級(jí)固態(tài)存儲(chǔ)器中記錄編碼數(shù)據(jù)的方法和裝置,其中s^2表示固態(tài)存儲(chǔ)器的基本存儲(chǔ)單位或“單元”可以采取的不同值或級(jí)別的數(shù)量。固態(tài)存儲(chǔ)器是通常在集成電路中使用電子電路存儲(chǔ)數(shù)據(jù)的存儲(chǔ)器,而不是盤和帶等常規(guī)磁或光介質(zhì)。目前,諸如閃存器件之類的固態(tài)存儲(chǔ)設(shè)備徹底改變了數(shù)據(jù)存儲(chǔ)的前景。這些設(shè)備比常規(guī)存儲(chǔ)設(shè)備更堅(jiān)固(因?yàn)闆](méi)有活動(dòng)部件)并提供極高的帶寬、顯著的功耗節(jié)省以及優(yōu)于硬盤驅(qū)動(dòng)器(HDD)幾個(gè)數(shù)量級(jí)的隨機(jī)I/O (輸入/輸出)性能。諸如HDD之類的常規(guī)存儲(chǔ)設(shè)備記錄二進(jìn)制數(shù)據(jù)。即,這些設(shè)備中的基本存儲(chǔ)單元僅保存I位信息。諸如DRAM (動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器)之類的易失性固態(tài)存儲(chǔ)器技術(shù)也記錄二進(jìn)制數(shù)據(jù),此類存儲(chǔ)器中的基本存儲(chǔ)單元僅能夠采取兩個(gè)級(jí)別(s=2),因此僅記錄二進(jìn)制值。然而,在其他類型的SSD中,存儲(chǔ)單元可以采取超過(guò)兩個(gè)級(jí)別(s>2)。例如,閃存和相變 存儲(chǔ)器(PCM)這兩種重要的非易失性存儲(chǔ)器技術(shù)允許多級(jí)記錄。例如,NOR閃存每個(gè)單元可以存儲(chǔ)4個(gè)級(jí)別,即2位。目前提供了使用43納米工藝技術(shù)的多級(jí)單元(MLC)NAND閃存芯片,每個(gè)閃存單元可以存儲(chǔ)4位數(shù)據(jù)。當(dāng)需要10納米以下的工藝技術(shù)時(shí),PCM技術(shù)預(yù)計(jì)將取代閃存技術(shù)。盡管商用PCM芯片目前每個(gè)單元僅存儲(chǔ)I位,但實(shí)驗(yàn)已經(jīng)證明,PCM芯片中的每個(gè)單元可存儲(chǔ)4位。由于諸如閃存和PCM之類的固態(tài)存儲(chǔ)器已成功用于數(shù)字照相機(jī)和音樂(lè)播放器之類的消費(fèi)產(chǎn)品中,因此目前考慮將這些存儲(chǔ)器技術(shù)用于企業(yè)存儲(chǔ)。將這些技術(shù)轉(zhuǎn)入企業(yè)空間時(shí),一直是數(shù)據(jù)存儲(chǔ)設(shè)備的主要問(wèn)題的誤碼性能變得越來(lái)越重要。盡管HDD等常規(guī)存儲(chǔ)設(shè)備具有約為10%至15%的ECC (錯(cuò)誤糾正代碼)開銷,但商用閃存中的ECC開銷僅約為
2.5%至5%。因此,效率對(duì)于這些設(shè)備中的EC編碼方案來(lái)說(shuō)至關(guān)重要。在SSD中,存儲(chǔ)器被組織成存儲(chǔ)區(qū)域或塊,每個(gè)存儲(chǔ)區(qū)域或塊包含可以將數(shù)據(jù)寫入其中的一組存儲(chǔ)位置。在SSD中,通過(guò)在寫入單元級(jí)別(S卩,在每個(gè)數(shù)據(jù)寫入位置中)添加冗余而執(zhí)行EC編碼。例如,閃存包含稱為“頁(yè)”的數(shù)據(jù)寫入位置。每個(gè)頁(yè)包含多個(gè)扇區(qū),但通常基于頁(yè)執(zhí)行寫入操作。針對(duì)寫入每個(gè)閃存頁(yè)或頁(yè)中的每個(gè)扇區(qū)的輸入數(shù)據(jù)計(jì)算EC碼,并將EC碼與輸入數(shù)據(jù)一起記錄在該頁(yè)或扇區(qū)中。此編碼允許從各個(gè)數(shù)據(jù)頁(yè)內(nèi)的錯(cuò)誤中恢復(fù)。已經(jīng)針對(duì)此所謂的“一級(jí)”EC編碼采用諸如RS (里德-所羅門)和BCH (博斯-喬赫里-霍克文黑姆)碼之類的線性碼。其中基于頁(yè)執(zhí)行編碼(即,每個(gè)頁(yè)一個(gè)碼字)的“長(zhǎng)”一級(jí)碼充分利用了可用頁(yè)冗余,因此提供最佳的誤碼性能,但這些方案的實(shí)施極其復(fù)雜,并且如果頁(yè)大小和所需的錯(cuò)誤糾正能力很大,則需要高功耗。與這些代碼關(guān)聯(lián)的復(fù)雜性取決于其中執(zhí)行編碼和解碼算術(shù)的有限域(伽羅瓦域(GF))的大小。(下文中,包含來(lái)自具有q個(gè)元素(通過(guò)GF (q)表示)的伽羅瓦域的元素的所有N元組的集合是通過(guò)GF (q)N表示的矢量空間)。例如,已經(jīng)設(shè)計(jì)了用于有效負(fù)載為2KiB和4KiB的兩個(gè)不同頁(yè)大小的長(zhǎng)一級(jí)碼。假設(shè)有效負(fù)載為2KiB和4KiB的長(zhǎng)一級(jí)碼的可用ECC開銷(冗余)分別為56字節(jié)和120字節(jié)。最佳的2KiB —級(jí)RS碼(其中2KiB是頁(yè)大小)可以糾正每個(gè)頁(yè)多達(dá)20個(gè)隨機(jī)選擇的11位符號(hào),但需要GF(2n)次運(yùn)算進(jìn)行編碼和解碼。最佳的4KiB—級(jí)RS碼可以在一個(gè)頁(yè)中糾正多達(dá)40個(gè)隨機(jī)選擇的12位符號(hào),但需要GF(212)次運(yùn)算進(jìn)行編碼和解碼。此外,可以糾正每個(gè)頁(yè)多達(dá)29個(gè)隨機(jī)選擇的位的最佳2KiB —級(jí)BCH碼需要GF (2)次運(yùn)算進(jìn)行編碼,但需要GF(215)次運(yùn)算進(jìn)行解碼??梢约m正每個(gè)頁(yè)多達(dá)60個(gè)隨機(jī)選擇的位的最佳4KiB—級(jí)BCH碼需要GF(2)次運(yùn)算進(jìn)行編碼,但需要GF(216)次運(yùn)算進(jìn)行解碼。由于這些長(zhǎng)代碼的過(guò)度復(fù)雜性,因此在實(shí)踐中使用“短”一級(jí)代碼,其中一個(gè)頁(yè)中包含多個(gè)較短的碼字,從而為了實(shí)施方式的實(shí)用性而犧牲誤碼性能。 美國(guó)專利第7,047,478B2號(hào)披露了一種用于多級(jí)單元存儲(chǔ)器的一級(jí)編碼系統(tǒng),其中操作模式可從使用所有可用存儲(chǔ)級(jí)別的模式切換到使用少于所有級(jí)別的模式。為了適應(yīng)這種情況,編碼方案采用q元字母(q-ary alphabet)(即,碼字由可以采取q個(gè)不同值的符號(hào)組成),其中q等于多級(jí)單元的可用級(jí)別s的數(shù)量。如在“Integrated Interleaving - A Novel ECC Architecture (集成交錯(cuò)-一種新穎 ECC 體系結(jié)構(gòu))” (M. Hassner 等人,IEEE Trans, on Magn.,第 37 卷第 2 期,第 773-775頁(yè),2001年3月)和美國(guó)專利第5,946,328,5,942,005和7,231,578B2號(hào)中描述的,已在HDD中采用使用交錯(cuò)RS碼的兩級(jí)編碼方案。這些系統(tǒng)基于例如在以下各項(xiàng)中描述的廣義級(jí)聯(lián)碼E. L. Blokh 和 V. V. Zyablov “Generalized concatenated codes (廣義級(jí)聯(lián)碼)”(Plenum Publishing Corporation,第 218-222 頁(yè),1976 年)(翻譯自 Problemy PeredachiInformatsii,第 10 卷第 3 期,第 45-50 頁(yè),1974 年 7 月-9 月);以及 J. Maucher 等人“On theEquivalence of Generalized Concatenated Codes and Generalized Error LocationCodes (有關(guān)廣義級(jí)聯(lián)碼和廣義錯(cuò)誤位置碼的等效性)”(IEEE Trans, on InformationTheory,第46卷第2期,2000年3月)。上面引用的Hassner等人的兩級(jí)RS編碼方案使用分別由Cl和C2表示的第一和第二 RS碼,其中第二 RS碼是第一 RS碼的子碼。生成M個(gè)第一(Cl)碼字的集合,使得這M個(gè)碼字的線性組合是第二(C2)碼字。具體地說(shuō),上述集合中的M個(gè)Cl碼字的B ^ I個(gè)加權(quán)和是第二 RS碼的相應(yīng)C2碼字。這些加權(quán)和的加權(quán)系數(shù)由范德蒙矩陣定義。此外,編碼方案受M < q的限制,即上述集合中Cl碼字的數(shù)量M小于伽羅瓦域元素的總數(shù)q。例如,在GF(q=2)上的二進(jìn)制線性碼的情況下,條件M〈2適用于集成交錯(cuò)碼,即M=l,因此由Hassner等人定義的集成交錯(cuò)代碼系列不包含二進(jìn)制兩級(jí)碼。在此方案中,使用多個(gè)在扇區(qū)上交錯(cuò)的RS碼字將增加對(duì)HDD通道中突發(fā)錯(cuò)誤的魯棒性。RS碼非常適合于這種情況,并且通常廣受青睞。這可能部分地由于可輕松進(jìn)行性能評(píng)估,因?yàn)镽S碼的權(quán)重分布已知。實(shí)施方式復(fù)雜性與如上所示的BCH碼相比也是有利的,具體地說(shuō),RS碼的解碼復(fù)雜性顯著減少。還針對(duì)DRAM 米用了兩級(jí) RS 編碼,如在 “Reliable Memories with SublineAccesses (使用子行訪問(wèn)的可靠存儲(chǔ)器)” (Junsheng Han等人,ISIT2007,法國(guó),尼斯,6月24日-6月29日,第2531-2535頁(yè))和美國(guó)專利申請(qǐng)第2008/0168329A1號(hào)中討論的那樣。兩級(jí)RS編碼基于上面引用的Hassner等人的集成交錯(cuò)方案,然而未指定代碼設(shè)計(jì)細(xì)節(jié)和解
碼算法。本發(fā)明的一個(gè)方面的一個(gè)實(shí)施例提供了一種用于在固態(tài)存儲(chǔ)器件的s級(jí)存儲(chǔ)器中記錄輸入數(shù)據(jù)的方法,其中s ^ 2。所述方法包括根據(jù)第一和第二 BCH碼對(duì)包含M個(gè)輸入數(shù)據(jù)字的組中的輸入數(shù)據(jù)字進(jìn)行編碼,以針對(duì)每個(gè)組產(chǎn)生所述第一 BCH碼的M個(gè)第一碼字的一個(gè)集合,使得所述M個(gè)第一碼字的預(yù)定線性組合產(chǎn)生所述第二 BCH碼的第二碼字,其中所述第二 BCH碼是所述第一 BCH碼的子碼;以及在所述s級(jí)存儲(chǔ)器中記錄M個(gè)第一碼字的各集合。與確定使用上面討論的RS碼相比,體現(xiàn)本發(fā)明的方法采用BCH碼在s級(jí)固態(tài)存儲(chǔ)器件中進(jìn)行兩級(jí)編碼。本發(fā)明的各實(shí)施例部分地基于認(rèn)識(shí)到BCH碼特別適合于在SSD存儲(chǔ)通道中糾正錯(cuò)誤模式。此外,通過(guò)采用兩級(jí)BCH編碼方案,在最小化解碼器復(fù)雜性的影響的同時(shí),可以利用誤碼性能優(yōu)勢(shì)。實(shí)際上,可以就實(shí)施方式復(fù)雜性而言以最低損失實(shí)現(xiàn)良好的誤碼率性能。不管感知的缺點(diǎn)為何,通過(guò)使用BCH碼在SSD中進(jìn)行兩級(jí)編碼,可以實(shí)現(xiàn)高效錯(cuò)誤糾正方案,并具有低實(shí)施方式復(fù)雜性和低功耗。此外,如下面進(jìn)一步討論的,可以很容易地調(diào)整BCH碼特性以適合SSD單元的級(jí)別數(shù)s和 SSD通道的錯(cuò)誤結(jié)構(gòu)。因此,總體上,體現(xiàn)本發(fā)明的記錄方法可以提供實(shí)用且高效的系統(tǒng)以在s級(jí)固態(tài)存儲(chǔ)器中可靠地存儲(chǔ)信息。通常,待編碼的輸入數(shù)據(jù)字可以包括多個(gè)數(shù)據(jù)符號(hào),其中數(shù)據(jù)符號(hào)可以是一位(gp二進(jìn)制)符號(hào)或多位符號(hào)。在本發(fā)明的各優(yōu)選實(shí)施例中,所述第一和第二碼字均包括多個(gè)(由N表示)q元符號(hào),其中q=pk,k是正整數(shù)而P是素?cái)?shù)。此外,在特別優(yōu)選的實(shí)施例中,根據(jù)固態(tài)存儲(chǔ)器的級(jí)別數(shù)s調(diào)整兩級(jí)BCH碼的q元字母以實(shí)現(xiàn)特別高效的操作。這通過(guò)使用q和s分別是公共基數(shù)r的u和V次冪的代碼實(shí)現(xiàn),其中u和V是正整數(shù)而k彡U。這確保根據(jù)條件P(k/U)v=s使q元碼字母與s元存儲(chǔ)器“匹配”。通過(guò)確保代碼滿足此“匹配字母”約束,可以簡(jiǎn)單且高效地將q元碼字符號(hào)轉(zhuǎn)換成s元字母以便記錄在s級(jí)存儲(chǔ)器中、提供高效操作以及代碼選擇的靈活性。具體地說(shuō),盡管在某些情況下q和s可能相同,但下面將詳述其中q古s的優(yōu)選實(shí)施例。此外,盡管體現(xiàn)本發(fā)明的方法可應(yīng)用于二進(jìn)制(s=2)固態(tài)存儲(chǔ)器,但優(yōu)選實(shí)施例為多級(jí)固態(tài)存儲(chǔ)器(s > 2)提供了靈活且高效的操作。在特別優(yōu)選的實(shí)施例中,在固態(tài)存儲(chǔ)器的相應(yīng)寫入位置中記錄M個(gè)第一碼字的每個(gè)集合。例如,在閃存中,每個(gè)頁(yè)將包含一個(gè)包括M個(gè)第一碼字的集合。然而,在某些實(shí)施例中可能需要在每個(gè)寫入位置中記錄M個(gè)第一碼字的多個(gè)集合,例如閃存頁(yè)的每個(gè)扇區(qū)一個(gè)集合。還可以設(shè)想其中在固態(tài)存儲(chǔ)器的多個(gè)寫入位置中記錄M個(gè)第一碼字的每個(gè)集合的實(shí)施例。根據(jù)本發(fā)明的另一方面的一個(gè)實(shí)施例,提供了一種包括程序代碼裝置的計(jì)算機(jī)程序,所述程序代碼裝置用于導(dǎo)致計(jì)算機(jī)執(zhí)行根據(jù)本發(fā)明的第一方面的方法。將理解,術(shù)語(yǔ)“計(jì)算機(jī)”用于最一般的意義,并且包括任何具有用于實(shí)現(xiàn)計(jì)算機(jī)程序的數(shù)據(jù)處理能力的設(shè)備、組件和系統(tǒng)。此外,體現(xiàn)本發(fā)明的計(jì)算機(jī)程序可以組成獨(dú)立程序或可以是較大程序的元素,并且可以例如包含在諸如盤或電子傳輸之類的計(jì)算機(jī)可讀介質(zhì)中以便載入計(jì)算機(jī)。所述計(jì)算機(jī)程序的程序代碼裝置可以包括一組指令的以任何語(yǔ)言、代碼或符號(hào)表示的任何表達(dá),旨在導(dǎo)致計(jì)算機(jī)直接執(zhí)行所述方法,或者在以下之一或兩者后執(zhí)行所述方法(a)轉(zhuǎn)換成另一種語(yǔ)言、代碼或符號(hào),和(b)以不同的材料形式再現(xiàn)。本發(fā)明的第三方面的一個(gè)實(shí)施例提供了一種固態(tài)存儲(chǔ)器件,包括s級(jí)固態(tài)存儲(chǔ)器,其中s彡2 ;以及兩級(jí)BCH編碼器,其用于根據(jù)第一和第二 BCH碼對(duì)包含M個(gè)輸入數(shù)據(jù)字的組中的輸入數(shù)據(jù)字進(jìn)行編碼,以針對(duì)每個(gè)組產(chǎn)生所述第一 BCH碼的M個(gè)第一碼字的一個(gè)集合,使得所述M個(gè)第一碼字的預(yù)定線性組合產(chǎn)生所述第二 BCH碼的第二碼字,其中所述第二 BCH碼是所述第一 BCH碼的子碼;其中所述器件適于在所述s級(jí)存儲(chǔ)器中記錄M個(gè)第一碼字的各集合。本發(fā)明的第四方面的一個(gè)實(shí)施例提供了一種編碼器裝置,其用于對(duì)要記錄在固態(tài)存儲(chǔ)器件的s級(jí)存儲(chǔ)器中的輸入數(shù)據(jù)進(jìn)行編碼,其中s ^ 2。所述編碼器裝置包括兩級(jí)BCH編碼器,其用于根據(jù)第一和第二 BCH碼對(duì)包含M個(gè)輸入數(shù)據(jù)字的組中的輸入數(shù)據(jù)字進(jìn)行編碼,以針對(duì)每個(gè)組產(chǎn)生所述第一 BCH碼的M個(gè)第一碼字的一個(gè)集合,使得所述M個(gè)第一碼字的預(yù)定線性組合產(chǎn)生所述第二 BCH碼的第二碼字,其中所述第二 BCH碼是所述第一 BCH碼的子碼,其中所述第一和第二碼字均包括N個(gè)q元符號(hào),其中q古s,q=pk,k是正整數(shù)并且P是素?cái)?shù),并且其中q和s分別是公共基數(shù)r的u和V次冪,其中u和V是正整數(shù)并且k彡U,由此p(k/u)v=s ;以及符號(hào)轉(zhuǎn)換器,其用于將每個(gè)第一碼字的所述q元符號(hào)轉(zhuǎn)換成s元字母以便記錄在 所述s級(jí)存儲(chǔ)器中。通常,如果在此參考本發(fā)明的一個(gè)方面的一個(gè)實(shí)施例描述特性,則可以在本發(fā)明的另一個(gè)方面的各實(shí)施例中提供對(duì)應(yīng)的特性?,F(xiàn)在將通過(guò)實(shí)例的方式參考附圖
描述本發(fā)明的優(yōu)選實(shí)施例,這些附圖是圖I是體現(xiàn)本發(fā)明的s級(jí)固態(tài)存儲(chǔ)器件的示意方塊圖;圖2示出了在圖I的器件中使用的第一種兩級(jí)編碼方案;以及圖3示出了在圖I的器件中使用的第二種兩級(jí)編碼方案。圖I是固態(tài)存儲(chǔ)器件的簡(jiǎn)化示意圖,在此將描述示出了編碼系統(tǒng)中包含的主要元件的閃存器件I。器件I包括用于在閃存單元的集成陣列中存儲(chǔ)數(shù)據(jù)的S級(jí)閃存2,其中每個(gè)單元可以采取s >2個(gè)不同存儲(chǔ)級(jí)別。盡管在圖中被示為一個(gè)塊,但通常閃存2可以包括任何所需的閃存存儲(chǔ)單元配置,例如范圍從單個(gè)芯片或裸片(die)到多個(gè)存儲(chǔ)庫(kù)(storagebank),每個(gè)存儲(chǔ)庫(kù)包含多個(gè)存儲(chǔ)芯片封裝。器件I具有編碼器裝置,其以廣義形式被示為包括兩級(jí)BCH編碼器3和符號(hào)轉(zhuǎn)換器4,符號(hào)轉(zhuǎn)換器4在圖中以虛線為邊界。符號(hào)轉(zhuǎn)換器4包括q元到r元轉(zhuǎn)換器5和通道映射單元6。器件I的對(duì)應(yīng)解碼器裝置通常在圖中被指示為解碼器7。通常,BCH編碼器3、符號(hào)轉(zhuǎn)換器4和解碼器7的功能可以在硬件、軟件或其組合中實(shí)現(xiàn)。例如,BCH編碼器3中的編碼操作可以全部或部分地通過(guò)軟件執(zhí)行,所述軟件配置所述編碼器裝置的處理器以實(shí)現(xiàn)下面詳述的編碼方案。通過(guò)此處描述,適合的軟件對(duì)于本領(lǐng)域的技術(shù)人員來(lái)說(shuō)是顯而易見的。然而,由于操作速度的原因,通常盡可能首選使用硬連線邏輯電路以實(shí)現(xiàn)功能。此外,編碼過(guò)程通常可以通過(guò)系統(tǒng)編碼(其中編碼不改變編碼過(guò)程的輸入數(shù)據(jù),但將奇偶碼添加到未編碼符號(hào)以獲得輸出碼字)或通過(guò)非系統(tǒng)編碼(其中編碼將編碼過(guò)程的輸入數(shù)據(jù)嵌入輸出碼字中)實(shí)現(xiàn)。然而,為了編碼器(和對(duì)應(yīng)的解碼器)實(shí)施方式的簡(jiǎn)單性,首選系統(tǒng)編碼。通過(guò)此處描述,器件I的編碼器和解碼器裝置的適合實(shí)施方式對(duì)于本領(lǐng)域的技術(shù)人員來(lái)說(shuō)很容易地顯而易見。在器件I的操作中,將在閃存2中記錄的輸入數(shù)據(jù)提供給BCH編碼器3。輸入數(shù)據(jù)包括一系列輸入數(shù)據(jù)字,BCH編碼器3根據(jù)下面詳細(xì)描述的兩級(jí)BCH編碼方案在包含M個(gè)輸入數(shù)據(jù)字的組中對(duì)這些輸入數(shù)據(jù)字進(jìn)行編碼。對(duì)于包含M個(gè)輸入數(shù)據(jù)字(可以包括具有不同數(shù)量的數(shù)據(jù)符號(hào)的字,如下面解釋的那樣)的每個(gè)組,BCH編碼器3輸出一個(gè)包含M個(gè)q元符號(hào)碼字(即,這些碼字的一個(gè)符號(hào)可以具有q個(gè)可能值)的集合,其中q=pk,k是正整數(shù)而P是素?cái)?shù)。根據(jù)q和s之間的關(guān)系,符號(hào)轉(zhuǎn)換器4按照下面進(jìn)一步討論的那樣操作,以將q元符號(hào)碼字轉(zhuǎn)換成s元字母以便記錄。然后在閃存2中記錄s元符號(hào)碼字,由此每個(gè)閃存單元存儲(chǔ)碼字的一個(gè)s元符號(hào)。在此實(shí)施例中,閃存的每個(gè)頁(yè)為包含M個(gè)s元碼字的一個(gè)集合提供足夠的存儲(chǔ),由此在相應(yīng)閃存頁(yè)中存儲(chǔ)M個(gè)s元碼字的每個(gè)集合。隨后從閃存2讀取頁(yè)時(shí),解碼器7執(zhí)行與編碼器裝置3、4相反的處理以對(duì)s元碼字進(jìn)行解碼,并以通常公知的方式實(shí)現(xiàn)錯(cuò)誤檢測(cè)和恢復(fù)操作。由此恢復(fù)并提供原始輸入數(shù)據(jù)字作為來(lái)自解碼器7的輸出數(shù)據(jù)?,F(xiàn)在,將更詳細(xì)解釋BCH編碼器3的操作。提供給編碼器3的M個(gè)輸入數(shù)據(jù)字的每個(gè)組都包括來(lái)自矢量空間GF (q) \的(M-P)個(gè)K1符號(hào)數(shù)據(jù)字和來(lái)自矢量空間GF (q) k2的P個(gè)K2符號(hào)數(shù)據(jù)字。編碼器3根據(jù)第一 BCH碼將(M-P)個(gè)K1符號(hào)數(shù)據(jù)字映射到相應(yīng)的N符號(hào)第一碼字。此第一 BCH碼包括來(lái)自矢量空間預(yù)定義N元組集合。因此,所述代碼一對(duì)一地將輸入q元符號(hào)數(shù)據(jù)字映射到q元符號(hào)第一碼字,其中(M-P)個(gè)第一碼字的每一個(gè)中的N-K1個(gè)奇偶符號(hào)提供ECC過(guò)程必需的冗余的第一部分。此外,編碼器3根據(jù)第二 BCH碼將剩余P個(gè)K2符號(hào)數(shù)據(jù)字映射到相應(yīng)的N符號(hào)第二碼字。此第二 BCH碼包括來(lái)自矢量空間GF(q)1^另一個(gè)預(yù)定義N元組集合,并且是所述第一BCH碼的子碼,即包含所有第二碼字的集合是包含所有第一碼字的集合的子集。因此,所述第二代碼一對(duì)一地將輸入q元符號(hào)數(shù)據(jù)字映射到q元符號(hào)第二碼字(其也是第一碼字),其中P個(gè)碼字的每一個(gè)中的N-K2個(gè)奇偶符號(hào)提供ECC過(guò)程必需的冗余的第二部分。因此,所述編碼器生成M個(gè)碼字的初始集合。然后,通過(guò)以P個(gè)已修改(第一)碼字替換所述初始集合中的P個(gè)第二碼字來(lái)獲得M個(gè)碼字的最終集合,其中每個(gè)已修改碼字的第i個(gè)符號(hào)(其中i=l至N)是所述初始集合中M個(gè)碼字的第i個(gè)符號(hào)的特定線性組合。生成這些已修改碼字以便通過(guò)所述第二 BCH碼約束M個(gè)第一碼字的最終集合。具體地說(shuō),M個(gè)第一碼字的所述集合的至少一個(gè)預(yù)定線性組合是所述第二 BCH碼的碼字。因此,當(dāng)根據(jù)一個(gè)或多個(gè)預(yù)定線性組合進(jìn)行組合時(shí),M個(gè)第一碼字的結(jié)果集合將產(chǎn)生所述第二 BCH碼的一個(gè)或多個(gè)第二碼字。盡管上面描述了編碼器3中的兩級(jí)編碼方案的示例性實(shí)施方式,但可以設(shè)想各種兩級(jí)代碼結(jié)構(gòu)。根據(jù)本發(fā)明的各實(shí)施例,根據(jù)第一和第二 BCH碼對(duì)包含M個(gè)輸入數(shù)據(jù)字的每個(gè)組進(jìn)行編碼以產(chǎn)生一個(gè)包含所述第一 BCH碼的M個(gè)第一碼字的集合,以便所述M個(gè)第一碼字的預(yù)定線性組合產(chǎn)生所述第二 BCH碼的第二碼字,此第二代碼是所述第一 BCH碼的子碼。圖2中示意性地示出了一個(gè)簡(jiǎn)單實(shí)例。所述第一和第二碼字通過(guò)圖的頂部的兩個(gè)不同矩形塊表示。與第一碼字類似,第二碼字均包括N個(gè)q元符號(hào),如指示的那樣。對(duì)于包含M個(gè)輸入數(shù)據(jù)字的給定組,當(dāng)以定義的順序級(jí)聯(lián)(concatenate)時(shí),包含M個(gè)第一碼字的結(jié)果集合將有效地形成整體兩級(jí)BCH碼的兩級(jí)碼字,如圖的中心中所示。此兩級(jí)碼字滿足在圖底部示出的條件。即,M個(gè)第一碼字的和(逐個(gè)符號(hào))產(chǎn)生所述第二 BCH碼的碼字。圖3中示出了另一個(gè)示例性兩級(jí)編碼方案。在此情況下,M個(gè)第一碼字的多個(gè)線性組合中的每一個(gè)都產(chǎn)生第二 BCH碼的碼字。具體地說(shuō),對(duì)于定義的級(jí)聯(lián)順序,M個(gè)第一碼字的多個(gè)加權(quán)和中的每一個(gè)都是相應(yīng)的第二碼字。這通過(guò)圖底部的條件以廣義形式示出,其中“ ”表示乘法。具體地說(shuō),從M個(gè)碼字的P個(gè)加權(quán)和獲得第二碼字,其中這些加權(quán)和的加權(quán)系數(shù)由與第三線性碼對(duì)應(yīng)的奇偶校驗(yàn)矩陣定義,如下面解釋的那樣。
有限域GF(q)上的此類兩級(jí)BCH碼C基于有限域GF(q)上的三個(gè)代碼C1' C2和C*的定義,其中q是素?cái)?shù)的冪。代碼C1是由(N-K1) XN奇偶校驗(yàn)矩陣H1定義的具有最小距離d (C1)的第一 BCH碼[N, K1, d (C1)]。第二代碼C2是具有最小距離d (C2)的第二 BCH碼
[N,K2,d(C2)]。這是第一代碼C1的子碼并由(N-K2) XN奇偶校驗(yàn)矩陣
權(quán)利要求
1.一種用于在固態(tài)存儲(chǔ)器件(I)的S級(jí)存儲(chǔ)器(2 )中記錄輸入數(shù)據(jù)的方法,其中S > 2,所述方法包括 根據(jù)第一和第二 BCH碼對(duì)包含M個(gè)輸入數(shù)據(jù)字的組中的輸入數(shù)據(jù)字進(jìn)行編碼,以針對(duì)每個(gè)組產(chǎn)生所述第一 BCH碼的M個(gè)第一碼字的一個(gè)集合,使得所述M個(gè)第一碼字的預(yù)定線性組合產(chǎn)生所述第二 BCH碼的第二碼字,其中所述第二 BCH碼是所述第一 BCH碼的子碼;以及 在所述s級(jí)存儲(chǔ)器(2)中記錄M個(gè)第一碼字的各集合。
2.根據(jù)權(quán)利要求I所述的方法,其中所述集合中的所述M個(gè)第一碼字的和是所述第二碼字。
3.根據(jù)權(quán)利要求I或2所述的方法,其中所述集合中的所述M個(gè)第一碼字的多個(gè)加權(quán)和中的每一個(gè)加權(quán)和均是相應(yīng)第二碼字,并且其中由與第三線性碼對(duì)應(yīng)的奇偶校驗(yàn)矩陣定義所述多個(gè)加權(quán)和的加權(quán)系數(shù)。
4.根據(jù)任一上述權(quán)利要求所述的方法,其中 所述第一和第二碼字均包括N個(gè)q元符號(hào),其中q=pk,k是正整數(shù)并且P是素?cái)?shù);以及 q和s分別是公共基數(shù)r的u和V次冪,其中u和V是正整數(shù)并且k彡U,由此p(k/u)v=s。
5.根據(jù)權(quán)利要求4所述的方法,其中s古q。
6.根據(jù)權(quán)利要求5所述的方法,所述方法包括在所述s級(jí)存儲(chǔ)器(2)中記錄之前,將每個(gè)q元第一碼字轉(zhuǎn)換成r元第一碼字。
7.根據(jù)權(quán)利要求6所述的方法,其中rΦ S,所述方法包括根據(jù)預(yù)定映射方案將每個(gè)r元第一碼字的V個(gè)r元符號(hào)的連續(xù)集合映射到所述s級(jí)存儲(chǔ)器(2)的相應(yīng)對(duì)應(yīng)級(jí)別,并且在所述s級(jí)存儲(chǔ)器(2)中作為所述對(duì)應(yīng)級(jí)別而記錄V個(gè)r元符號(hào)的每個(gè)集合。
8.根據(jù)權(quán)利要求5所述的方法,其中q=rΦ S,所述方法包括根據(jù)預(yù)定映射方案將每個(gè)q元第一碼字的V個(gè)q元符號(hào)的連續(xù)集合映射到所述s級(jí)存儲(chǔ)器(2)的相應(yīng)對(duì)應(yīng)級(jí)別,并且在所述s級(jí)存儲(chǔ)器(2)中作為所述對(duì)應(yīng)級(jí)別而記錄V個(gè)q元符號(hào)的每個(gè)集合。
9.根據(jù)權(quán)利要求I至6中的任一權(quán)利要求所述的方法,其中r=s>2。
10.根據(jù)權(quán)利要求I至8中的任一權(quán)利要求所述的方法,其中r=2并且k=u。
11.根據(jù)任一上述權(quán)利要求所述的方法,其中s>2。
12.根據(jù)任一上述權(quán)利要求所述的方法,包括將M個(gè)第一碼字的每個(gè)所述集合記錄在所述固態(tài)存儲(chǔ)器(2)的相應(yīng)寫入位置中。
13.—種包括程序代碼裝置的計(jì)算機(jī)程序,所述程序代碼裝置用于導(dǎo)致計(jì)算機(jī)執(zhí)行根據(jù)任一上述權(quán)利要求所述的方法。
14.一種用于對(duì)要記錄在固態(tài)存儲(chǔ)器件(I)的s級(jí)存儲(chǔ)器(2)中的輸入數(shù)據(jù)進(jìn)行編碼的編碼器裝置,其中s ^ 2,所述編碼器裝置包括 兩級(jí)BCH編碼器(3 ),其用于根據(jù)第一和第二 BCH碼對(duì)包含M個(gè)輸入數(shù)據(jù)字的組中的輸入數(shù)據(jù)字進(jìn)行編碼,以針對(duì)每個(gè)組產(chǎn)生所述第一 BCH碼的M個(gè)第一碼字的一個(gè)集合,使得所述M個(gè)第一碼字的預(yù)定線性組合產(chǎn)生所述第二 BCH碼的第二碼字,其中所述第二 BCH碼是所述第一 BCH碼的子碼,其中所述第一和第二碼字均包括N個(gè)q元符號(hào),其中q古s,q=pk,k是正整數(shù)并且P是素?cái)?shù),并且其中q和s分別是公共基數(shù)r的u和V次冪,其中u和V是正整數(shù)并且k≥U,由此P (k/u)v=s ;以及符號(hào)轉(zhuǎn)換器(4 ),其用于將每個(gè)第一碼字的所述q元符號(hào)轉(zhuǎn)換成s元字母以便記錄在所述s級(jí)存儲(chǔ)器(2)中。
15.—種固態(tài)存儲(chǔ)器件(I),包括 s級(jí)固態(tài)存儲(chǔ)器(2),其中s彡2 ;以及 兩級(jí)BCH編碼器(3 ),其用于根據(jù)第一和第二 BCH碼對(duì)包含M個(gè)輸入數(shù)據(jù)字的組中的輸入數(shù)據(jù)字進(jìn)行編碼,以針對(duì)每個(gè)組產(chǎn)生所述第一 BCH碼的M個(gè)第一碼字的一個(gè)集合,使得所述M個(gè)第一碼字的預(yù)定線性組合產(chǎn)生所述第二 BCH碼的第二碼字,其中所述第二 BCH碼是所述第一 BCH碼的子碼; 其中所述器件(I)適于在所述s級(jí)存儲(chǔ)器(2 )中記錄M個(gè)第一碼字的各集合。
全文摘要
提供了用于對(duì)輸入數(shù)據(jù)進(jìn)行編碼以記錄在固態(tài)存儲(chǔ)器件(1)的s級(jí)存儲(chǔ)器(2)中的方法和裝置,其中s≥2。根據(jù)第一和第二BCH碼在包含M個(gè)輸入數(shù)據(jù)字的組中對(duì)輸入數(shù)據(jù)字進(jìn)行編碼,以針對(duì)每個(gè)組產(chǎn)生所述第一BCH碼的M個(gè)第一碼字的一個(gè)集合。產(chǎn)生M個(gè)第一碼字的所述集合,使得所述M個(gè)第一碼字的至少一個(gè)預(yù)定線性組合產(chǎn)生所述第二BCH碼的第二碼字,此第二BCH碼是所述第一BCH碼的子碼。然后在所述s級(jí)存儲(chǔ)器(2)中記錄M個(gè)第一碼字的各集合。如果所述第一和第二碼字均包括N個(gè)q元符號(hào),其中q=pk,k是正整數(shù)并且p是素?cái)?shù),則通過(guò)確保q和s分別是公共基數(shù)r的u和v次冪,可以使q元碼字母與所述s元存儲(chǔ)器(2)匹配,其中u和v是正整數(shù)并且k≥u,由此p(k/u)v=s。
文檔編號(hào)H03M13/15GK102823141SQ201180016566
公開日2012年12月12日 申請(qǐng)日期2011年3月23日 優(yōu)先權(quán)日2010年3月30日
發(fā)明者R·D·西德哲揚(yáng), E·S·埃萊夫特里烏, T·米特爾霍爾澤 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司