郟宏鑫 郭銳
摘 要:TLC閃存存儲單元隨著擦寫次數(shù)不斷增加,錯誤概率快速增大?;赥LC閃存信道結(jié)構(gòu),利用原模圖LDPC碼字?jǐn)U展以及變量節(jié)點與TLC閃存存儲頁匹配關(guān)系,提出了一種速率兼容原模圖LDPC碼,所設(shè)計的速率兼容原模圖LDPC碼在保持信息位長度相同情況下,可實現(xiàn)可變碼率,能夠適應(yīng)TLC閃存擦除次數(shù)增多而導(dǎo)致的不同糾錯能力需求情況,編譯碼時只需一對LDPC編碼器/譯碼器即可靈活處理所有碼率,從而提高編碼器/譯碼器的硬件利用率。仿真結(jié)果表明,所提出的速率兼容原模圖LDPC碼優(yōu)于未經(jīng)過邏輯頁匹配的速率兼容原模圖LDPC碼,當(dāng)誤碼率為10-4、碼率分別為0.90、0.82、0.75時,所提出的速率兼容原模圖LDPC碼信噪比性能比基于PEG算法的非規(guī)則LDPC碼均提高0.2dB以上。
關(guān)鍵詞:TLC閃存;原模圖LDPC;速率兼容
DOI: 10. 11907/rjdk.191473
開放科學(xué)(資源服務(wù))標(biāo)識碼(OSID):
中圖分類號:TP393
文獻標(biāo)識碼:A
文章編號:1672-7800(2020)001-0242-06
0 引言
三層單元(Triple Level CeIl,TLC)閃存產(chǎn)品存儲容量大且價格便宜,在閃存市場應(yīng)用廣泛。但相比于高速且低錯誤率的NAND閃存產(chǎn)品如SLC、MLC閃存,其讀取速率較慢且擦寫壽命較短,性能主要受閃存單元中的錯誤制約。因此,設(shè)計有效的糾錯方案是提高數(shù)據(jù)存儲可靠性、延長閃存產(chǎn)品壽命的有效方法[1]。目前,TLC閃存糾錯碼主要使用低密度奇偶校驗碼,該碼被認為足以確保TLC閃存的數(shù)據(jù)可靠性[2]。而基于原模圖的低密度奇偶校驗碼( Proto-graph LDPC,P-LDPC)是準(zhǔn)循環(huán)的LDPC碼,擴展后校驗矩陣保持基礎(chǔ)原模圖特性,在加性高斯白噪聲( AdditiveWhite G aussian Noise,AWCN)信道和部分響應(yīng)信道中顯示出比普通LDPC碼更好的性能[3-4]。
基于原模圖LDPC的閃存糾錯技術(shù)越來越受到人們的關(guān)注。文獻[5]研究了TLC閃存錯誤模式和錯誤特征,分析了TLC閃存錯誤的狀態(tài)相關(guān)性和比特錯誤特性,但沒有提出有效的錯誤容忍方案解決閃存錯誤帶來的數(shù)據(jù)存儲可靠性問題;文獻[6]將原模圖LDPC碼用于TLC閃存糾錯,分析了TLC閃存結(jié)構(gòu),但由于閃存邏輯頁錯誤會隨著閃存使用次數(shù)增加而不斷增加,所提出的LDPC碼僅針對單一錯誤情況進行設(shè)計,碼率固定并且硬件利用率不高,從而導(dǎo)致一定的性能浪費;文獻[7-9]研究了速率兼容原模圖LDPC的實際應(yīng)用,但是這些碼的測試信道都不是TLC閃存信道。因此,本文通過分析TLC閃存信道存儲單元邏輯頁與原模圖變量節(jié)點度的對應(yīng)關(guān)系,使用P-EXIT和代碼擴展的方法為TLC閃存提出一種速率兼容原模圖LDPC碼,在分析TLC閃存工作錯誤原理的基礎(chǔ)上,設(shè)計一種基于TLC閃存邏輯頁匹配的速率兼容原模圖(Rate Com -patible Protograph LDPC,RCP-LDPC)碼,其碼率可變只需一對編碼器/解碼器即可完成編譯碼工作[10]。
1 TLC閃存信道分析
1.1 TLC閃存工作原理
TLC閃存通過絕緣層存儲二進制信息。當(dāng)數(shù)據(jù)被寫入或擦除時,TLC閃存芯片中的基本存儲單元電子會被不斷注入和去除。在絕緣層中的場效應(yīng)晶體管兩端加上強偏電壓,可以得到強電場從而產(chǎn)生電子隧道擊穿效應(yīng),這會影響閃存存儲單元中隧道氧化層的導(dǎo)電能力。隨著基本TLC存儲器單元中的數(shù)據(jù)被重復(fù)擦除和寫入,絕緣層的損失將累積,并且隧道氧化物層的絕緣性能將繼續(xù)惡化,這會導(dǎo)致電荷俘獲的發(fā)生并影響閃存單元的閾值電壓。當(dāng)閃存讀取數(shù)據(jù)時,將存儲單元的電壓與閾值電壓的相對值進行比較,以確定存儲的數(shù)據(jù)信息[11]。因此,在重寫新數(shù)據(jù)之前,TLC閃存必須擦除數(shù)據(jù)以進行初始化。TLC閃存的每一個存儲單元存在使用過程中為了滿足不同電壓狀態(tài)需要主控芯片施加不同的電壓,由于只有達到閾值電壓才算數(shù)據(jù)寫入完成,因此需要較長時間才能完成。而電子可能會在絕緣層產(chǎn)生滯留,因此隨著TLC的使用時間變長,每一次想達到閾值電壓都需要更長的時間和更高的電壓值。隨著擦除周期的加快,隧道氧化層中陷阱捕獲電荷的量將改變,并且損耗的逐漸累積最終導(dǎo)致讀取數(shù)據(jù)錯誤。當(dāng)閃存芯片的錯誤率超過TLC閃存錯誤糾正器的糾錯能力時,就達到其使用壽命。另外,如果基本存儲單元的門限電壓發(fā)生了變化,相鄰存儲單元的門限電壓也受到其寄生電容的影響,從而出現(xiàn)錯誤率增加的情況[12]。
1.2 TLC閃存信道分析
在TLC閃存中,每個閃存單元保存3個二進制位表示的8個符號之一。最左邊的位稱為最高有效位(Most Sig-nificant Bit.MSB),中間的位稱為中央有效位(Central Sig-nificant Bit,CSB),最右邊的位稱為最低有效位(Least Sig-nificant Bit,LSB)。MSB、CSB、LSB位在閃存操作中會將其視為3個邏輯頁(Logical Page)分別對應(yīng)MSB頁、CSB頁、LSB頁。這3個頁由同一個字線控制,如圖1所示。在閃存讀取操作時,會有7種閾值電壓,見圖1中的V1 - V7,其中V1到V7的電壓依次增加,特別地V0=-∞,V8=+∞。
圖1顯示,符號‘101一‘001存在可能引起MSB誤差的相鄰區(qū)域,在符號‘110一‘100、‘000一‘010存在可能引起CSB誤差的相鄰區(qū)域,在符號‘111一‘110、‘100一‘101、‘001一‘000、‘010一‘011存在可能引起LSB誤差的相鄰區(qū)域。文獻[2]指出相鄰的存儲單元狀態(tài)較容易發(fā)生轉(zhuǎn)移,跨越中間狀態(tài)轉(zhuǎn)移到其它狀態(tài)需要捕獲較多的額外電子較為因難;文獻[13]通過FPGA實驗平臺模擬了TLC閃存邏輯頁的錯誤情況如圖2所示。圖2說明了MSB、CSB、LSB錯誤會隨著閃存讀寫次數(shù)的增加而增加,并且MSB、CSB、LSB所在邏輯頁錯誤呈現(xiàn)不平衡分布,可以看到LSB的錯誤率顯然高于CSB和MSB.CSB的錯誤率高于MSB。由于閃存錯誤會使存儲單元的電子分布產(chǎn)生變化,具有較少電子的存儲單元狀態(tài)容易向具有較多電子的存儲單元狀態(tài)發(fā)生轉(zhuǎn)變,并且跨越中間狀態(tài)轉(zhuǎn)變要比轉(zhuǎn)變到相鄰存儲狀態(tài)轉(zhuǎn)變捕獲的額外電子多,轉(zhuǎn)變難度更大。出現(xiàn)MSB錯誤所需捕獲的電子數(shù)最多、電壓差最大,CSB錯誤其次,LSB錯誤所需的額外電子數(shù)目最少。因此,隨著讀寫次數(shù)的增加,LSB的錯誤數(shù)要比MSB、CSB增加很多,這也符合圖1描述中的符號電平分布規(guī)律。
2 基于TLC閃存信道的RCP-LDPC碼設(shè)計
2.1 原模圖變量節(jié)點與MSB、CSB、LSB對應(yīng)分析
其中,bij表示原模圖的變量節(jié)點連接到校驗節(jié)點的平行邊數(shù)目,原模圖基礎(chǔ)矩陣B可以通過n次擴展操作并且進行多重邊重分配得到原模圖LDPC碼的校驗矩陣%。生成的校驗矩陣可以享有基礎(chǔ)矩陣的優(yōu)異特性。經(jīng)過n次擴展置換后可以獲得長度為nP的編碼矩陣%,其變量節(jié)點可以按照長度n分成P個矩陣塊,每個矩陣塊中包含相同類型的變量節(jié)點。原模圖不同的置換方式將影響各矩陣分塊中變量節(jié)點度的分布,從而影響校驗矩陣H的性能。由于TLC閃存隨著擦寫次數(shù)增加,MSB、CSB、LSB存在不平衡的錯誤,而原模圖變量節(jié)點的度又反映了變量節(jié)點參與校驗方程的程度而影響到其糾錯能力,因此,找到合適的原模圖變量節(jié)點度與閃存邏輯頁的匹配將會改善TLC閃存的糾錯性能。
為了便于描述變量節(jié)點與TLC閃存邏輯頁之間的關(guān)系,引入群置換Q,群置換Q表示原模圖矩陣塊之間順序的交換,例如置換Q(654321)表示將原來下標(biāo)順序為123456對應(yīng)成下標(biāo)為654321所代表的值,例如式(1)中原模圖的置換。
由于LSB的出錯率大于CSB和MSB.且CSB要大于MSB,可以令原模圖變量節(jié)點構(gòu)成矩陣塊的左部分、中間部分、右部分依次對應(yīng)MSB、CSB、LSB,由于不同的置換群Q將影響原模圖變量節(jié)點度分布從而影響TLC閃存的糾錯性能,對應(yīng)過程表示成圖4所示,因此找到適合的置換方式十分重要。
2.2 RCP-LDPC碼設(shè)計
設(shè)計性能良好的原模圖碼需要具備以下兩個特征:①低迭代解碼閾值:原模圖變量節(jié)點度分布應(yīng)包含至少一個非常高度的變量節(jié)點和一定數(shù)量度為2的變量節(jié)點[14-15];②線性最小距離增長:具有大于或等于3變量節(jié)點度的原模圖自動具有這樣的屬性[16]。如果其結(jié)構(gòu)里包含了度數(shù)為2的節(jié)點,文獻[3]提出了一種解決方案,該解決方案要求原模圖中2度節(jié)點的最大數(shù)量要小于等于校驗節(jié)點總數(shù)的值減1,并且在這些2度變量節(jié)點之間既不應(yīng)有平行邊也不應(yīng)有短循環(huán)的存在[17],這樣就可以滿足線性最小距離增長。
為了設(shè)計適合于TLC閃存的速率兼容原模圖LDPC碼,可以先以碼率為0.5的基礎(chǔ)矩陣開始,這里以文獻[5]里的速率0.5矩陣為基礎(chǔ),由于其矩陣中存在2個相同的度為3的變量節(jié)點,置換表示存在重復(fù)可能,考慮原模線性最小距離增長特性,對原模圖矩陣變量進行修改,得到0.5碼率的原模圖基礎(chǔ)矩陣見式(5),該原模圖包含有兩個度為2的變量節(jié)點和一個度為8的高度變量節(jié)點,其中校驗節(jié)點的個數(shù)為3,滿足小于等于校驗節(jié)點數(shù)目減1的條件。由于LSB的錯誤率比MSB和CSB大,CSB的錯誤率比LSB大,且呈現(xiàn)一定程度的不平衡關(guān)系。且高度變量節(jié)點擴展后與校驗節(jié)點之間的關(guān)系復(fù)雜,糾錯能力強的可能性更高,因此首先讓未經(jīng)過匹配的原模圖分三塊排列,變量節(jié)點塊度高的矩陣塊對應(yīng)MSB、變量節(jié)點塊度低的矩陣塊對應(yīng)LSB,剩下的變量節(jié)點塊對應(yīng)CSB。通過不同的群置換Q匹配,其中Q匹配需要滿足一定的條件。最左側(cè)對應(yīng)原模圖變量節(jié)點度最大所在列2,最右側(cè)對應(yīng)原模圖變量節(jié)點度最小所在列,即Q (IXXXX6)形式,易知滿足這種形式的共有24種,例如隨機置換Q (132546)得到的用于速率兼容的基礎(chǔ)原模圖碼見式(6)。如果直接對這么多種置換形式分別進行代碼擴展,計算量將非常龐大,與傳統(tǒng)LDPC碼類似,原模圖LDPC碼的糾錯性能還可以通過分析其糾錯門限值預(yù)測糾錯性能。通常,門限值越低,糾錯性能越優(yōu)異,而原模圖LDPC門限值分析需要專門為原模圖設(shè)計的P_EXIT[18]方法。
用P-EXIT計算原模圖門限值過程如下:給定一個原模圖基礎(chǔ)矩陣為B=(bij),其中bij對應(yīng)第i行第j列的元素,首先明確原模圖中的5種互信息:IEv(i,j)表示變量節(jié)點j傳遞給校驗節(jié)點i的LLR信息與變量節(jié)點i之間的外
如果對于所有的j,均有IA。(j)=1,則此時的信噪比為該原模圖LDPC碼在此信道下的門限值,否則返回至第二步繼續(xù)迭代,當(dāng)達到之前設(shè)定的迭代次數(shù)時則增大信噪比,直到求出門限值為止。P-EXIT分析各種置換得到的門限表于表1中給出,由于置換數(shù)目眾多表1中只給出了幾個典型的匹配門限值。表中分析得到具有最低解碼門限值的原模圖見式(7),選擇該矩陣作為速率兼容原模圖母碼,相應(yīng)的置換為Q (142356)。
由于原模圖基于母碼擴展后仍可以保持原模圖母碼的特性。對于TLC閃存,通過將速率0.5原模圖母碼添加一定數(shù)目的列向量,即增加變量節(jié)點數(shù)目的方法將原模圖擴展到高碼率,新添加的變量節(jié)點度保證原模圖滿足線性最小距離增長和低迭代解碼閾值條件,得到的原模圖如式(8)所示。
此時原模圖的碼率為0.9。其中n M,nC,nL是分別對應(yīng)到MSB、CSB、LSB頁面添加的新變量節(jié)點的數(shù)量,速率擴展到0.9碼率的原模圖也具有原模圖母碼的線性最小距離增長和低迭代解碼閾值特性?;诖a率為0.9的原模圖,本文遵循文獻[20]的方法保持信息位長度相同,即變量節(jié)點數(shù)減去校驗節(jié)點的值相同,僅改變擴展后LDPC碼字的長度,通過添加相同數(shù)量的變量節(jié)點和校驗節(jié)點,可以得到一系列碼率低于0.9的原模圖,相應(yīng)的碼率為27/(30+N),其中N指新添加2種節(jié)點數(shù)量,通過添加不同的校驗節(jié)點和變量節(jié)點數(shù)目,可以得到一系列碼率低于0.9的速率自適應(yīng)原模圖。它們信息節(jié)點的長度都為27n(n為原模圖擴展次數(shù))。如構(gòu)建碼率為0.82的原模圖,可以在B0.9基礎(chǔ)上額外添加3個變量節(jié)點和校驗檢點,新添加的第1個變量節(jié)點對應(yīng)到MSB,第2個變量節(jié)點對應(yīng)到CSB,第3個變量節(jié)點對應(yīng)到LSB,限制最大平行邊數(shù)為2來簡化搜索過程,通過P-EXIT分析可得到碼率0.82原模圖的原模圖結(jié)構(gòu)為:
其中,添加的全零子矩陣和對角子矩陣確保速率0.82的原模圖碼的前導(dǎo)奇偶校驗位與速率0.9碼的前導(dǎo)奇偶校驗位相同。同樣,可以獲得速率為0.75的代碼。通過這種方式,得到速率為0.9、0.82、0.75的RCP-LDPC碼,它們具有相同的信息位長k=27n。矩陣最后幾列存在幾個度為1的變量節(jié)點,但這些變量節(jié)點沒有連接到同一個校驗節(jié)點構(gòu)成環(huán),因此它們能夠被可靠譯碼。此外,RCP-LDPC碼可以使用基于速率為0.75的編碼器和解碼器進行編碼和解碼,提高了硬件利用率。
3 RCP-LDPC仿真分析
對本文提出的RCP-LDPC碼進行仿真分析,主要分析碼字的誤碼性能。構(gòu)造出的RCP-LDPC碼率分別為0.90、0.82、0.75,信息位長分別設(shè)置為3 072和6 144,在TLC閃存信道(近似為AWCN信道)下進行3次仿真實驗以綜合評估性能。仿真幀率設(shè)置10 000,信息位碼長3 072的仿真結(jié)果如圖5所示。
由圖5可知,在誤碼率為10-4時,速率0.90、0.82、0.75對應(yīng)的信噪比分別為4.98dB、3.96dB、2.88dB。在信噪比為4dB時,碼率0.75的RCP-LDPC誤碼率約為1.5×10-7,碼率0.82的RCP-LDPC誤碼率約為1×10-4,而碼率0.9的RCP-LDPC誤碼率為1.7×10-3,在信噪比為6dB時,速率0.9 RCP-LDPC誤碼率達到1×10-6。
對于TLC閃存信道,由對應(yīng)式(6)隨機匹配的原模圖生成的RCP-LDPC碼和基于PEG算法的非規(guī)則LDPC碼以及對應(yīng)式(7)的原模圖生成的RCP-LDPC碼進行相應(yīng)碼率的對比仿真,信息位碼長3 072的仿真結(jié)果如圖6-圖8所示、信息位碼長6 144的仿真結(jié)果如圖9-圖11所示。
由以上仿真結(jié)果可以看出,對于不同信息位長,在TLC閃存信道中所提出的式(5)對應(yīng)的RCP-LDPC碼在碼率分別為0.90、0.82和0.75時均比式(6)對應(yīng)的隨機匹配RCP-LDPC碼和非規(guī)則LDPC碼獲得了更好誤碼率性能。信息位碼長3072、誤碼率為10-4時,本文RCP-LDPC碼相比于基于PEG算法的非規(guī)則LDPC碼獲得的增益統(tǒng)計如表2所示。
4 結(jié)語
本文基于碼字?jǐn)U展方法提出了適合TLC閃存信道的RCP-LDPC碼。所提出的原模圖碼信息字長相同且具有0.90、0.82、0.75等碼率,可以動態(tài)地適應(yīng)TLC閃存不同使用時段的出錯狀況。RCP-LDPC碼繼承了原模圖母碼低迭代解碼閾值和線性最小距離增長的優(yōu)點,同時有優(yōu)于基于PEG算法的非規(guī)則LDPC碼誤碼率性能和更快糾錯收斂速度。仿真結(jié)果表明,本文RCP-LDPC碼在誤碼率為10-4時,各碼率信噪比性能相比基于PEC算法的非規(guī)則LDPC碼均提高了0.2dB以上。
參考文獻:
[1]
WONG G.SSD market overvieW[Ml//Inside Solid State Drives (SS-Ds). Dordrecht: Springer, 2013.
[2]
NAKAMURA T,DECUCHI Y,TAKEUCHI K.AEP-LDPC ECC witherror dispersion coding for burst error reduction of 2D and 3D NANDflash memories[C].Monterey: 2017 IEEE International Memory Work-shop (IMW).2017.
[3]
FANGY,BI G,GUANY L,et al.A survey on protograph LDPC codesand their applications [J]. IEEE Communications Surveys&Tutori-als, 2015, 17(4):1989-2016.
[4]
VAN NGUYEN T. NOSRATINIA A . DIVSALAR D.Protograph-basedLDPC codes for partial response channels [ C ] . 2012 IEEE Internation-al Conference on Communications ( ICC ) , 2012 : 2166-2170.
[5] 陽小珊 .朱立谷 ,張猛 ,等 . NAND閃存編程干擾錯誤研究 [J] .中國傳媒大學(xué)學(xué)報 : 自然科學(xué)版 , 2018 ( 3 ) : 3.
[6]
YAAKOBI E , CRUPP L. SWANSON S, et al. Error-correcting codesfor TLC flash [D]. San Diego: University of California San Diego,2011.
[7]
ZHONC X.CAI K, CHEN P, et al. Rate-compatible protograph LDPCcodes for spin-torque transfer magnetic random access memory (STT-MRAM) [C]. 2018 Asia-Pacific Magnetic Recording Confer-ence.2018.
[8]
CHEN P, CAI K. ZHENC S. Rate-adaptive protograph LDPC codesfor Multi-Level-Cell NAND flash memory [ J] . IEEE CommunicationsLetters.2018.22( 6) : 1112-11 15.
[9]
CHEN C, WANG L. LIU S. The design of protograph LDPC codes assource codes in a JSCC system [J]. IEEE Communications Letters,2018,22(4) : 672-675.