糾錯碼技術(shù)比如低密度奇偶校驗碼早就有了,它存在的時間比大多數(shù)讀者的年齡還要長。原因是:沒有哪一種存儲或傳輸媒介是完美的,它們都存在某種程度的錯誤。 為了避免在每次出錯后重新讀數(shù)據(jù)或重新發(fā)送數(shù)據(jù),存儲和連網(wǎng)系統(tǒng)都配備了內(nèi)置糾錯碼技術(shù)。 所需的糾錯碼強度隨存儲或連網(wǎng)系統(tǒng)的原始誤碼率以及最終解決方案可接受的輸出誤碼率不同而不同。
本文介紹了低密度奇偶檢驗(LDPC)碼技術(shù),它是一種非常強大的糾錯碼技術(shù),在當(dāng)前最流行的存儲媒介NAND閃存上應(yīng)用得越來越多。
對固態(tài)硬盤糾錯的需求
NAND閃存是一種非易失性、固態(tài)存儲媒介,與旋轉(zhuǎn)磁場媒介比如硬盤相比,它有四項優(yōu)勢:性能更強、密度更高、可靠性更高和功耗更低。這些優(yōu)勢讓閃存特別適用于便攜式設(shè)備以及高性能固態(tài)硬盤和服務(wù)器端高速緩存系統(tǒng)。
但是NAND閃存也有其弱勢,它的存儲單元會因為每次程序?qū)憯?shù)據(jù)/刪數(shù)據(jù)而略有磨損。每當(dāng)存儲單元磨損時,它精確保持特定電荷狀態(tài)的能力就會減弱,從而導(dǎo)致讀數(shù)據(jù)誤碼率上升。 到一定程度之后,那些錯誤就不能被糾正了,存儲單元就不能用了。
糾錯能力越強,閃存單元的可用壽命就越長。換句話說,強大的糾錯碼技術(shù)會讓存儲單元變得更弱,而且讀數(shù)據(jù)的可靠性也會更強。 到目前為止,象Bose-Chaudhuri-Hocquenghem(BCH)和Reed-Solomon(RS)那樣的糾錯碼技術(shù)在固態(tài)存儲解決方案中的使用效果一直還不錯。但是隨著芯片制造工藝的改進,以及單級單元向雙級單元或三級單元進化導(dǎo)致存儲密度增加,那種情況肯定會發(fā)生變化。
在更小的單元中儲存更多的數(shù)據(jù)會讓更小尺寸的存儲設(shè)備具備更高的存儲空間,但是存儲單元尺寸變小以及密度的增加會使電量減少并導(dǎo)致存儲單元中儲存的數(shù)據(jù)的原始誤碼率上升。NAND閃存提供了固定數(shù)量的備用存儲空間,例如為每1K字節(jié)的用戶數(shù)據(jù)提供80字節(jié)的備用存儲空間。 鑒于那些固定存儲空間的存在,BCH和RS糾錯碼技術(shù)只能達(dá)到一定的原始誤碼率,當(dāng)存儲單元的變質(zhì)程度達(dá)到一定的水平之后,就會出現(xiàn)無法糾正的錯誤。能夠經(jīng)受住更高原始誤碼率的糾錯技術(shù)會讓存儲單元進一步變質(zhì),從而導(dǎo)致NAND閃存的P/E周期更長。
LDPC 101
低密度奇偶檢驗解碼是一種可追溯到上個世紀(jì)六十年代的強大糾錯算法。問題是:LDPC解碼對計算能力的依賴性很強,它花了多年的時間去等待處理器性能提高(包括從真空管向集成電路轉(zhuǎn)變), 以便讓算法能夠?qū)崟r運行。
LDPC 糾錯碼最早在十年前被應(yīng)用于電信行業(yè),主要用于糾正各種媒介上的傳輸錯誤碼。例如,它們現(xiàn)在被用于10GBase-T以太網(wǎng),以及作為高吞吐量PHY規(guī)范的一部分用于802.11n和802.11ac Wi-Fi標(biāo)準(zhǔn)。 最近,LDPC糾錯碼已經(jīng)被用于硬盤中的磁性媒介的糾錯。
LDPC糾錯碼技術(shù)的復(fù)活尚未引起固態(tài)存儲行業(yè)的注意。很多大學(xué)和廠商正在研究將LDPC糾錯碼用于下一代閃存控制器中的糾錯的最佳方案。這項工作已經(jīng)導(dǎo)致某些商業(yè)應(yīng)用的出現(xiàn),那些商業(yè)應(yīng)用不久將在固態(tài)硬盤和閃存高速緩存產(chǎn)品中出現(xiàn)。
包括LDPC糾錯碼技術(shù)在內(nèi)的所有糾錯碼技術(shù)都有可能在特定原始誤碼率條件下失效。 你可以用丟硬幣的方式來驗證這一點,結(jié)果可能連續(xù)丟出32個人頭。當(dāng)然這種情況出現(xiàn)的概率不高,但并非不可能。 固態(tài)硬盤糾錯碼技術(shù)的設(shè)計目標(biāo)可能只有10%到15%的概率在不高于某個限制的原始誤碼率的情況下遇到無法校正的錯誤,那個限制與NAND閃存的預(yù)期壽命有關(guān)。與BCH相比,LDPC糾錯碼能夠滿足相同的概率目標(biāo),因此它能從NAND閃存單元中獲得更多的P/E周期。
需要指出的是,某些企業(yè)級固態(tài)硬盤和閃存高速緩存解決方案包括了檢測或修補不能被糾錯碼檢測并糾正的任何錯誤的規(guī)定。其中有兩條規(guī)定是端到端循環(huán)冗余校驗(CRC)和類似于RAID的數(shù)據(jù)保護。 在性價比和可用容量上的輕微副作用會讓它適用于業(yè)務(wù)關(guān)鍵應(yīng)用。
使用LDPC糾錯碼技術(shù)時有兩類解碼方式,一種是硬件決定,一種是軟件決定。硬件決定型解碼技術(shù)的糾錯率堪比BCH糾錯碼技術(shù)。 硬件決定型解碼技術(shù)在兩個相鄰存儲狀態(tài)之間只使用一個量化電平,它實際上是每字節(jié)基礎(chǔ)上的二進位解碼技術(shù)。這會讓硬件決定型LDPC(HLDPC)解碼技術(shù)具備合理的性能。 但是與BCH糾錯碼技術(shù)相比,HLDPC解碼技術(shù)在糾錯率上并無絲毫改進。
與HLDPC解碼技術(shù)相比,軟件決定型LDPC(SLDPC)解碼技術(shù)使用的每字節(jié)量化水平更高。每字節(jié)并不僅僅是指一個0或者一個1,而是它是0或1的概率。 每字節(jié)的概率提供的更多信息是什么令SLDPC解碼技術(shù)有了這么高的糾錯性能。信息越多,糾錯能力就越強。
鑒于硬件決定型解碼技術(shù)是一種純二元技術(shù),軟件決定型解碼技術(shù)需要深入到相鄰存儲狀態(tài)之間的模擬電平之中。鑒于這個原因,很多機制需要使用相當(dāng)復(fù)雜的數(shù)字信號處理技術(shù),將從不同的參考電壓電平上的NAND閃存單元中讀出的數(shù)據(jù)轉(zhuǎn)換成概率,由SLDPC解碼技術(shù)處理。
在某些復(fù)雜的系統(tǒng)中,每當(dāng)硬件決定型解碼技術(shù)不能糾正錯誤時,軟件決定型LDPC解碼技術(shù)就會接手。各種軟件決定型機制都有可能,其中有些技術(shù)還可明顯改善糾錯性能。 這就是為什么軟件決定型解碼技術(shù)目前引領(lǐng)著最新型閃存糾錯碼技術(shù)。為了保護知識產(chǎn)權(quán),廠商們都不愿公布太多與它們使用的機制有關(guān)的信息,但它有可能提供一些洞察力。
正如可預(yù)期的那樣,軟件決定型解碼技術(shù)相對更強的糾錯能力是有代價的,那就是它的延遲時間會比較長。這主要有兩個原因。 其中一個原因是NAND閃存單元需要在各種參考電壓電平上執(zhí)行更多精確讀數(shù)據(jù)操作和/或搜集更多與NAND閃存單元的誤差特性有關(guān)的信息;另一個原因是需要對結(jié)果執(zhí)行更多復(fù)雜的數(shù)字信號處理和復(fù)雜的算法解碼。
有一種技術(shù)可以將延遲時間最小化同時保留SLDPC解碼技術(shù)的糾錯能力,那就是只有在需要修正錯誤時才逐步執(zhí)行越來越強的軟件決定型解碼技術(shù)。解決的辦法有一個,即在快速HDLPC解碼技術(shù)上建5個這種水平的SLDPC解碼系統(tǒng)。
圖 1:只有當(dāng)硬件決定型解碼技術(shù)失效時才逐步使用越來越強(同時也越來越慢)的軟件決定型解碼技術(shù)可以將LDPC解碼技術(shù)的延遲時間最小化。軟件決定型解碼技術(shù)的性能是可以通過使用高級數(shù)字信號處理技術(shù)和多處理器并行技術(shù)得到提高的。與具體應(yīng)用對應(yīng)的數(shù)字信號處理技術(shù)能夠更迅捷和精確地處理閃存單元電壓檢測,在更低的SLDPC解碼水平上修正錯誤,而并行處理技術(shù)是一種能夠在各個層次上加快解碼速度的常用技術(shù)。
提高性能的另一種做法是增加超額準(zhǔn)備的內(nèi)存數(shù)量,以備未來糾錯所用。當(dāng)NAND閃存芯片是全新的并且出錯率很低的時候,糾錯所需的存儲空間就很少。 當(dāng)存儲單元開始磨損,原始出錯率提高的時候,為糾錯分配更多存儲空間就有助于提高糾錯性能。使用這種自適應(yīng)的糾錯存儲空間分配技術(shù)的目標(biāo)是在容量和耐久性之間達(dá)到一種平衡。
還有另一種技術(shù)涉及到預(yù)期和減少原始誤碼的各種來源(例如P/E循環(huán)、留存、讀干擾等等)。 如果管理得當(dāng),這些錯誤來源就能通過硬件決定型LDPC解碼技術(shù)得到解決。 因此,找出出錯的原因以及減少這些錯誤來源的影響是避免性能受到影響的有效做法,否則就會造成利用速度相對較慢的軟件決定型LDPC解碼技術(shù)去修正那些錯誤來源。
結(jié)論
這在現(xiàn)實中意味著什么? 這意味著下一代固態(tài)存儲解決方案會有更高的閃存耐用性和更高的存儲容量。NAND閃存芯片在出現(xiàn)高得不可接受的誤碼率之前將指定擁有一定數(shù)量的P/E周期。 LDPC糾錯技術(shù)能夠利用更高的原始誤碼率滿足輸出誤碼率要求,因此可以極大地拓展NAND閃存的可用P/E周期。這些技術(shù)可以讓20納米以下的三級單元芯片能夠在高容量、高性能固態(tài)硬盤和閃存高速緩存解決方案中具備商業(yè)可行性。
當(dāng)然,LDPC糾錯碼和外形更小/存儲密度更高的芯片并非固態(tài)存儲技術(shù)的唯一進展。實際上,在提高耐用性、提高性能和可靠性以及降低能耗方面,還有更多其他的技術(shù)可用。 這些技術(shù)包括數(shù)據(jù)簡化來將寫數(shù)據(jù)、寫放大和磨損水平最小化,讓所有的單元的使用壽命跟主平板電腦、PC或服務(wù)器的使用壽命相當(dāng)。