范正勤,韓國軍
廣東工業(yè)大學(xué) 信息工程學(xué)院,廣東 廣州 510000
隨著半導(dǎo)體制程工藝的進一步縮小、多電平存儲技術(shù)的使用,存儲單元成本大幅下降,NAND固態(tài)數(shù)據(jù)存儲已廣泛應(yīng)用于各種消費類電子產(chǎn)品及部分?jǐn)?shù)據(jù)中心。對于NAND閃存器件,存儲密度提升的同時,存儲單元受到的噪聲干擾進一步加劇,導(dǎo)致數(shù)據(jù)存儲可靠性降低[1]。一般數(shù)據(jù)存儲誤碼率要求必須低于10-15。相較于使用硬判決譯碼方法的Bose-Chaudhuri-Hocquenghem (BCH)糾錯碼,低密度奇偶校驗(low-density parity-check,LDPC)糾錯碼使用軟判決譯碼方法,能極大地降低誤碼率[2]。多種噪聲引起閾值電壓偏移而產(chǎn)生誤讀數(shù)據(jù),單元間干擾[3]和持久性噪聲[4]是制約NAND閃存數(shù)據(jù)存儲可靠性的主要噪聲。目前,為了補償噪聲對閾值電壓的影響,閃存采用重讀機制[5-8]。動態(tài)優(yōu)化讀參考電壓[7-11]以適應(yīng)閾值電壓的偏移,采用優(yōu)化的讀參考電壓可以獲得最低的原始誤碼率,從而達到改善存儲可靠性的目的。在讀電壓檢測范圍內(nèi),Cai等[7]提出等間隔降低讀參考電壓操作,該方案可以降低閾值電壓檢測的范圍。
針對閾值電壓檢測時讀操作帶來的時延問題,通過對重疊區(qū)的原始誤碼率分析,本文提出了非均勻迭代更新讀電壓優(yōu)化方案,該方案有效地降低了讀操作的次數(shù)。
數(shù)據(jù)閃存系統(tǒng)模型如圖1所示,數(shù)據(jù)經(jīng)過LDPC編碼后通過編程和擦除操作寫入閃存單元;經(jīng)過信道噪聲干擾后(單元間干擾和持久性噪聲),單元閾值電壓產(chǎn)生偏移造成數(shù)據(jù)誤讀,需要進行信道檢測優(yōu)化;讀操作得到單元對應(yīng)的對數(shù)似然比信息,再通過LDPC譯碼算法進行糾錯處理[1-2,12]。

圖1 系統(tǒng)模型
1)擦除操作:數(shù)據(jù)寫入單元前必須要先擦除。擦除狀態(tài)的閾值電壓服從高斯分布。擦除狀態(tài)的閾值電壓概率密度函數(shù)如下:

式中μe和σe分別表示擦除狀態(tài)的均值和方差。
2)編程操作:ISPP技術(shù)應(yīng)用于寫入數(shù)據(jù)。擦除狀態(tài)的閾值電壓服從均勻分布。第k個編程狀態(tài)的閾值電壓概率密度函數(shù)如下:

3)單元間干擾(cell-to-cell interference, CCI):相鄰單元間干擾是由于寄生電容耦合效應(yīng)引起的,會使閾值電壓向右偏移。

4)持久性噪聲(retention noise):持久性噪聲是由于氧化層電荷泄露引起的,會使閾值電壓向左偏移。持久性噪聲服從高斯分布,概率密度函數(shù)建模如下:


式中:x0,At,Bt, αi和 αo都是常數(shù);T表示持久性噪聲時間;p表示編程擦除次數(shù)。
對于MLC型NAND閃存,每個單元寫入2 bit信息,閾值電壓被劃分為4種存儲狀態(tài)(11,10,00,01)。如圖2所示,Ⅰ表示經(jīng)過編程和擦除操作后的閾值電壓分布,進行數(shù)據(jù)寫操作;Ⅱ表示經(jīng)過單元間干擾,單元間干擾使閾值電壓向右偏移,根據(jù)文獻[3]進行對數(shù)似然比(log-likelihood-ratio, LLR)計算;Ⅲ表示經(jīng)過持久性噪聲,持久性噪聲使閾值電壓向左偏移,因此在電壓重疊區(qū)上,傳統(tǒng)的固定讀參考電壓Vread會引起數(shù)據(jù)誤讀。為了克服噪聲對信道的影響,通過動態(tài)調(diào)整讀參考電壓進行補償。最后,通過最優(yōu)讀參考電壓Vopt讀取單元閾值電壓對應(yīng)的LLR值,再通過LDPC譯碼算法進行解碼。

圖2 讀電壓優(yōu)化
當(dāng)讀取數(shù)據(jù)時,重讀(read-retry)機制產(chǎn)生的全部時延[7]為:

為了彌補噪聲對信道的影響,選取低時延的ROR讀電壓優(yōu)化技術(shù)[7],即原始誤碼率最低點作為優(yōu)化讀參考電壓,算法流程如圖3所示。Vs表示每個塊中最后編程頁的 優(yōu)化讀電壓作為閾值電壓檢測的上限。V1和V2表示每一次需要更新的讀參考電壓。ROR技術(shù)需要向左等間隔偏移Δ去搜索最優(yōu)讀參考電壓,直到原始誤碼率開始增加就立即停止檢測,具體步驟如算法1所示。其中,NERR(Vi)表示讀參考電壓為Vi時的原始比特錯誤數(shù)目,算法1全部讀操作次數(shù)為

圖3 重讀機制算法流程
算法1 重讀機制
輸入:信道電壓檢測的上限Vs, 電壓偏移Δ
輸出:優(yōu)化后的讀參考電壓Vopt;

相鄰存儲狀態(tài)重疊區(qū)的原始誤碼率分布情況如圖4所示,Vs和Ve是信道閾值電壓檢測的上下限,Vl和Vr是閾值電壓檢測范圍的三等分點。首先,根據(jù)噪聲特性,電壓重疊區(qū)上原始誤碼率呈凹函數(shù)分布。其次,三分法求凹函數(shù)極值思想應(yīng)用于讀電壓優(yōu)化中,逐步縮小電壓檢測范圍。最后,為進一步減少讀操作次數(shù),改進三分法,下一次迭代利用上一次迭代原始誤碼率較低的讀電壓,再更新讀參考電壓,則每一次縮小電壓檢測范圍只需要更新一次讀電壓。算法流程圖見圖5,優(yōu)化方案算法2所示。

圖4 原始誤碼率分布情況

算法2 改進的重讀機制
輸入:信道電壓檢測的上限Vs、 下限Ve,最小檢測距離 Δ;

Step1 判斷 |Vs-Ve|是否小于Δ。若是,轉(zhuǎn)Step7;若否,轉(zhuǎn)Step2;

判斷Vmin是 否大于Vmid。若否,轉(zhuǎn)Step5;若是,轉(zhuǎn) Step6;

判斷Vmin是否大于若否,轉(zhuǎn)Step5;若是,轉(zhuǎn) Step6;


Step7 判斷NERR(Vl)是否小于若是,Vopt=Vl;若否,
其中,Step0初始化需要執(zhí)行2次讀操作;Step3表示如果信道閾值電壓檢測范圍縮小為再更新或Step4表示如果信道閾值電壓檢測范圍縮小為再更新或Step5和Step6表示每一次迭代需要執(zhí)行1次讀操作。
基于MATLAB平臺對閃存信道建模仿真,參數(shù)如下:重疊區(qū)上信道檢測范圍
圖6、7表示仿真不同的噪聲環(huán)境下,所提出方案的可靠性。在單元間干擾下,圖6表示不同的耦合強度因子s下原始誤碼率(raw bit error rate,RBER)受的影響;在數(shù)據(jù)保持噪聲干擾下,圖7表示不同的持久性噪聲時間T下原始誤碼率受Δ的影響。
仿真結(jié)果顯示:1)信道檢測精度越高,誤碼率越低,數(shù)據(jù)存儲可靠性越高;2)與算法1相比,在相同的檢測精度下,改進的重讀機制有更好的糾錯性能。

圖6 單元間耦合因子s不同時的誤碼率


圖7 持久性時間T不同時的誤碼率
信道閾值電壓檢測精度越高,誤碼率越低,糾錯性能越好,檢測精度 Δ =0.01。信道仿真環(huán)境如下:LDPC碼率為0.901 4,采用最小和譯碼算法,最大迭代次數(shù)為30,單元間耦合強度因子為1.4。
圖8是在閃存信道下不同檢測算法的誤碼率比較。仿真結(jié)果顯示:1)相對于傳統(tǒng)方案,采用閾值電壓檢測能有效地提升數(shù)據(jù)存儲的可靠性;2)在高精度檢測下,改進的重讀機制不會有性能損失。

圖8 誤碼率性能比較
閾值電壓檢測雖然帶來了糾錯性能的提升,但會產(chǎn)生較大的時延。讀時延與讀操作次數(shù)成正比,讀操作次數(shù)越小,讀時延越低。單元間耦合強度因子為1.4。相對于目前的重讀機制,圖9是在閃存信道中改進重讀機制的時延降低率。

圖9 讀時延性能比較
仿真結(jié)果顯示:1)相對于目前的重讀機制,改進的重讀機制具有更低的時延;2)隨著噪聲的增加,改進的重讀機制具有更高的時延降低率;3)在高精度、大噪聲閃存信道中,改進的重讀機制具有更好的性能。
基于重疊區(qū)錯誤比特的分布特性,本文提出了一種低時延重讀機制優(yōu)化方案。該優(yōu)化機制在保證數(shù)據(jù)可靠性的前提下,可以有效降低讀操作次數(shù),具有可行性。另一方面來說,閃存控制器需要執(zhí)行較多的比較操作,會產(chǎn)生少量延時,但該操作不會對閃存芯片產(chǎn)生影響。通過上述的理論分析及數(shù)據(jù)仿真,得出以下結(jié)論:1)對比現(xiàn)有的重讀機制,該優(yōu)化方案可以有效地提高數(shù)據(jù)存儲的可靠性;2)對比現(xiàn)有的重讀機制,該優(yōu)化方案可以降低大量時延;3)在實際應(yīng)用方面,該方案具有一定的可行性。