LDPC碼不適合工業(yè)存儲?這是為何?
工業(yè)領(lǐng)域都熟知LDPC碼,它是麻省理工學(xué)院Robert Gallager于1963年在博士論文中提出的一種具有稀疏校驗(yàn)矩陣的分組糾錯(cuò)碼。幾乎適用于所有的信道,因此成為編碼界近年來的研究熱點(diǎn)。它的性能逼近香農(nóng)限,且描述和實(shí)現(xiàn)簡單,易于進(jìn)行理論分析和研究,譯碼簡單且可實(shí)行并行操作,適合硬件實(shí)現(xiàn)。
LDPC碼被認(rèn)為是當(dāng)今 3D TLC 和 QLC 存儲器中提高錯(cuò)誤率的解決方案。然而它們并不適合每個(gè)市場。
低密度奇偶校驗(yàn)(LDPC)碼是一種糾錯(cuò)碼,漸增性用于需要通過信道進(jìn)行高效信息傳輸?shù)膽?yīng)用,存在來自衛(wèi)星或地球發(fā)射機(jī)的視頻廣播等破壞性噪聲。在過去十年中,LDPC 碼在閃存領(lǐng)域也越來越受到關(guān)注。廣泛用于 SLC 和 MLC 閃存技術(shù)的 BCH 代碼無法提供令人滿意的性能,因?yàn)楫?dāng)今的 3D TLC 和 3D QLC 閃存的備用區(qū)域有限,因而被其他具有使用軟解碼能力的代碼取代,例如 LDPC 碼。盡管這些代碼適用于某些應(yīng)用,但它們卻有兩個(gè)主要缺點(diǎn)。
圖 1:目前可用的不同類型的閃存
每個(gè)單元存儲的位越多,數(shù)據(jù)保留越低,故障位的數(shù)量越多。雖然 SLC 和 MLC 主要采用平面閃存技術(shù)制造,但 TLC 和 QLC 采用 3D 技術(shù)制造。
LDPC 在某些領(lǐng)域的表現(xiàn)很好,但在其他領(lǐng)域只有平均水平
LDPC 碼對于具有高錯(cuò)誤率的輸入數(shù)據(jù)表現(xiàn)出優(yōu)異的性能。很少有其他代碼達(dá)到這種性能水平,因?yàn)樗踔两咏碚撟畲笾迪戕r(nóng)極限(Shannon limit)。另一方面,它們的性能對于輸入數(shù)據(jù)來說很普通,幾乎沒有錯(cuò)誤。對于少數(shù)輸入錯(cuò)誤,失敗的錯(cuò)誤糾正非常頻繁 - 其他代碼在這方面達(dá)到明顯更好的結(jié)果。因此,LDPC 碼用于在低輸入錯(cuò)誤率的情況下偶然錯(cuò)誤是可接受的情況,但是需要高錯(cuò)誤率的高性能,例如,地面數(shù)字視頻廣播標(biāo)準(zhǔn) DVB-T。在這種情況下,失敗的校正將導(dǎo)致視頻流中幾個(gè)像素的錯(cuò)誤顏色 - 這是可接受的。對于另一種情況 - 輸入數(shù)據(jù)中的大量錯(cuò)誤 - 視頻流將盡可能長時(shí)間保持不間斷(例如黑屏)。
這種利弊關(guān)系解釋 NAND 閃存控制器中 LDPC 碼的出現(xiàn)。最新的 NAND 閃存技術(shù)顯示出非常高的錯(cuò)誤率 - 尤其是針對消費(fèi)者市場的錯(cuò)誤率。 LDPC 碼接近滿足這些要求的理想條件。然而,還有其他市場偶爾的錯(cuò)誤對于錯(cuò)誤率低的輸入數(shù)據(jù)是不可接受的。工業(yè)市場就是其中之一。系統(tǒng)級可靠性的一個(gè)共同標(biāo)準(zhǔn)是 JEDEC 企業(yè)規(guī)范:它要求整個(gè)工作壽命的速率小于 10-16 幀錯(cuò)誤。令人印象深刻的是,LDPC 碼的性能接近 NAND 閃存的使用壽命,但它在內(nèi)存的生命周期內(nèi)并沒有達(dá)到此要求,即閃存作為錯(cuò)誤糾正輸入的變化誤碼率 - 在開始時(shí)低,在生命結(jié)束時(shí)高。
LDPC 性能只能估算
為了應(yīng)對 JEDEC 的這種苛刻的規(guī)范,康斯坦茨應(yīng)用科學(xué)大學(xué)和 Hyperstone 已經(jīng)基于廣義級聯(lián)碼(GCC)開發(fā)了不同的糾錯(cuò)碼。在高輸入錯(cuò)誤率方面,它的性能不會(huì)超過 LDPC 代碼。但是,它確實(shí)顯示出低和中錯(cuò)誤率明顯更好的性能。主要優(yōu)點(diǎn)是可以計(jì)算性能,因此可以保證所有輸入錯(cuò)誤率,而 LDPC 性能只能針對低和中錯(cuò)誤率進(jìn)行估算。有關(guān)這方面的詳細(xì)說明,請參閱我們可免費(fèi)下載的可靠閃存存儲基礎(chǔ)白皮書“錯(cuò)誤糾正代碼”。這意味著除了顯示低至中的輸入錯(cuò)誤率的普通性能外,目前還不清楚 LDPC 將提供什么樣確切的水平性能。這一事實(shí)完全使其無法在工業(yè)和企業(yè)存儲市場中使用。
圖 2. Hyperstone 最新的 SSD 控制器可以滿足最高要求的應(yīng)用可靠性
最高要求的糾錯(cuò)功能
在 Hyperstone 最新閃存控制器中基于 GCC 的糾錯(cuò)功能與稱為校準(zhǔn)的機(jī)制密切配合。該機(jī)制確保閃存單元的讀出電壓始終處于最佳位置,從而在閃存整個(gè)生命周期內(nèi)產(chǎn)生低至中等位的誤碼率。因此,糾錯(cuò)單元輸入端的數(shù)據(jù)錯(cuò)誤量保持在最佳輸入條件下 - GCC 糾錯(cuò)明顯優(yōu)于基于 LDPC 的糾錯(cuò)條件。雖然校準(zhǔn)結(jié)合 GCC 改善了系統(tǒng)級性能,但它不會(huì)提升基于 LDPC 的誤差校正,因?yàn)樗鼘⑤斎胝`差率從有利范圍移到對 LDPC 較不有利的范圍。
LDPC 碼是閃存控制器的糾錯(cuò)中的普遍代碼。它們非常適合可接受偶發(fā)錯(cuò)誤的消費(fèi)性產(chǎn)品使用。在對可靠性要求很高的工業(yè)市場中,它們根本不適合。 GCC 與先進(jìn)的校準(zhǔn)相結(jié)合,能夠輕松滿足工業(yè)市場的苛刻要求。