胡海華,韓國(guó)軍,張孝誼
(廣東工業(yè)大學(xué) 信息工程學(xué)院,廣東 廣州 510000)
近年來(lái),NAND 閃存已成為主流存儲(chǔ)介質(zhì),在智能手機(jī)、個(gè)人電腦和大型數(shù)據(jù)中心中得到廣泛應(yīng)用[1-4]。隨著制造工藝的進(jìn)步,閃存單元的封裝尺寸逐漸縮小。一方面,閃存單元中存儲(chǔ)的比特?cái)?shù)成倍增加;另一方面,閃存內(nèi)部相鄰單元寄生耦合電容效應(yīng)變大,單元間干擾(cell-to-cell interference,CCI)增強(qiáng),導(dǎo)致數(shù)據(jù)存儲(chǔ)可靠性降低[5-6]。與此同時(shí),編程次數(shù)和保持時(shí)間的增加引發(fā)隨機(jī)電報(bào)噪聲(random telegraph noise)和可持久性噪聲(retention noise),降低了閃存的使用壽命。
關(guān)于以上噪聲帶來(lái)的信道檢測(cè)可靠性下降問(wèn)題,國(guó)內(nèi)外學(xué)者提出了一些解決方案[6-8]。針對(duì)單元間干擾,Peng 等[5]提出CSAD 和NIA-CSAD 檢測(cè)策略;Dong 等[7]分析了單元間干擾信道模型,并用熵函數(shù)來(lái)近似求出兩種狀態(tài)分布重疊區(qū)的讀取參考電壓。上述工作需要估計(jì)出最優(yōu)讀取參考電壓,該方法依賴閃存信道精準(zhǔn)的先驗(yàn)信息(相鄰單元先驗(yàn)信息、編程和擦除次數(shù)、保持時(shí)間等相關(guān)參數(shù))。為減少對(duì)信道先驗(yàn)信息的依賴,文獻(xiàn)[8]提出了循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network,RNN)檢測(cè)器。該檢測(cè)器在未知信道先驗(yàn)信息下能減少噪聲對(duì)信道可靠性的影響,但是該實(shí)驗(yàn)只分析了持久性噪聲,沒(méi)有考慮單元間干擾的影響,并且RNN 檢測(cè)器復(fù)雜度較高,被激活會(huì)占用大量的系統(tǒng)空閑時(shí)間。在實(shí)際場(chǎng)景中,閃存信道會(huì)同時(shí)存在隨機(jī)電報(bào)噪聲、可持久性噪聲和單元間干擾。信道噪聲隨保持時(shí)間變化,對(duì)閾值電壓分布扭曲的影響是很難預(yù)測(cè)的。當(dāng)前,深度學(xué)習(xí)技術(shù)迅速發(fā)展,在信道檢測(cè)與估計(jì)中都表現(xiàn)出優(yōu)越的性能[7-12]。本文提出的卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural networks,CNN)可以從良好的數(shù)據(jù)集中學(xué)習(xí)閃存信道難以預(yù)測(cè)的變化,并能有效檢測(cè)閃存單元狀態(tài)。與現(xiàn)有的大多數(shù)檢測(cè)技術(shù)相比,該方法不依賴于精確的信道模型。本文的貢獻(xiàn)主要分為3 個(gè)方面:
1)通過(guò)相關(guān)文獻(xiàn)對(duì)閃存信道特征的測(cè)試,可知相鄰單元會(huì)受到編程單元的干擾[7-9]?;陂W存相鄰單元間特征,本文先在二維坐標(biāo)下分析了相鄰單元編程后閾值電壓的相關(guān)性,這種相關(guān)性表現(xiàn)為相鄰單元閾值電壓和受干擾單元閾值電壓越大,受干擾單元閾值電壓越往右偏移。文獻(xiàn)[13]揭示了CNN 在相關(guān)噪聲信道中表現(xiàn)出較好的特征提取效果,所以本文挑選CNN 網(wǎng)絡(luò)來(lái)檢測(cè)NAND閃存單元狀態(tài)。
2)實(shí)驗(yàn)采用以隨機(jī)電報(bào)噪聲、可持久性噪聲和單元間干擾為主要噪聲源的閃存信道[9],生成受干擾單元和相鄰單元的閾值電壓序列,組成二維訓(xùn)練數(shù)據(jù)集。低密度奇偶校驗(yàn)(low-density parity-check,LDPC)解碼的單元狀態(tài)通過(guò)獨(dú)熱編碼數(shù)據(jù)預(yù)處理作為數(shù)據(jù)集標(biāo)簽。已訓(xùn)練好的CNN 檢測(cè)器在沒(méi)有任何信道先驗(yàn)信息下可以直接輸出閃存信道的硬判決信息(單元存儲(chǔ)狀態(tài))和軟判決信息(閃存單元屬于某種狀態(tài)的后驗(yàn)概率)。假設(shè)信道模型已知,熵函數(shù)求解出電壓分布相鄰狀態(tài)分布的重疊區(qū)間。在重疊區(qū)間中用窮舉搜索法找到的最優(yōu)閾值作為性能對(duì)比標(biāo)桿,下面稱之為最優(yōu)閾值檢測(cè)器(optimal threshold detector)。計(jì)算機(jī)仿真結(jié)果顯示:本文提出的CNN 檢測(cè)器與最優(yōu)閾值檢測(cè)器對(duì)比,在信道先驗(yàn)信息未知時(shí),能有效提升閃存信道的檢測(cè)性能。
3)與現(xiàn)有的RNN 檢測(cè)器[8]相比,分析了兩者的浮點(diǎn)運(yùn)算數(shù)(floating-point operations,FLOPs),單層CNN 網(wǎng)絡(luò)復(fù)雜度顯著小于單層RNN 網(wǎng)絡(luò)。因此,CNN 檢測(cè)器被激活所需的系統(tǒng)空閑時(shí)間比RNN 要少得多。
閃存信道系統(tǒng)模型如圖1 所示,數(shù)據(jù)先通過(guò)擦除與編程操作寫入閃存中,隨后經(jīng)過(guò)的干擾包括隨機(jī)電報(bào)噪聲、可持久性噪聲和單元間干擾。
圖1 MLC 閃存信道模型Fig.1 MLC flash channel model
在NAND 閃存中,字線(word-line)由擦除狀態(tài)單元和編程狀態(tài)單元組成[14]。對(duì)于MLC 型的閃存單元,可以存儲(chǔ)2 比特位,并將存儲(chǔ)類型表示為4 個(gè)不同的狀態(tài):11、10、01 和00。11 是擦除狀態(tài),其余的是編程狀態(tài)。
在編程之前,必須擦除閃存單元中的數(shù)據(jù)。擦除單元的閾值電壓符合高斯分布[8],該分布為
式中:σe和μe分別是被擦除單元閾值電壓分布的標(biāo)準(zhǔn)差和平均值。
在編程操作中,閃存控制器會(huì)向浮柵注入一定量的電荷。編程狀態(tài)的閾值電壓也服從高斯分布[14]:
式中:σp和μp分別是被編程單元閾值電壓分布的標(biāo)準(zhǔn)差和平均值。
編程和擦除次數(shù)會(huì)損壞浮柵晶體管隧道的氧化物,引起閃存單元閾值電壓隨機(jī)波動(dòng)。因此,隨機(jī)電報(bào)噪聲采用類高斯分布建模為
可持久性噪聲是由編程單元中電荷泄漏引起的閾值電壓分布偏移。可持久性噪聲遵循高斯分布[15]:
平均值μt和標(biāo)準(zhǔn)差σt由式(5)、(6)給出[16]:
式中:ΔVt為編程前后的閃存單元閾值電壓變化;T為保持時(shí)間;PE 為編程和擦除循環(huán)次數(shù);a0、at、At、Bt均為常數(shù)。
單元間干擾是閃存信道中主要噪聲之一[17]。編程單元閾值電壓的變化會(huì)影響相鄰單元的閾值電壓。由單元間干擾引起的受干擾單元的總閾值電壓影響強(qiáng)度計(jì)算公式為[17]
式中:ΔV(k)為第k個(gè)干擾單元的編程前后閾值電壓偏移。如圖2 所示,γ(k)干擾單元與干擾單元的耦合為受干擾單元與干擾單元的耦合比系數(shù),γy表示垂直方向電容耦合系數(shù),γxy表示對(duì)角線方向的電容耦合系數(shù)。對(duì)于不同的位線結(jié)構(gòu),用于計(jì)算F的干擾單元數(shù)目是不同的。為了簡(jiǎn)單起見(jiàn),本文只考慮全位線結(jié)構(gòu),這種結(jié)構(gòu)會(huì)降低被干擾單元受到的干擾強(qiáng)度。
圖2 多電平閃存的陣列結(jié)構(gòu)Fig.2 MLC flash memory array structure
根據(jù)文獻(xiàn)[17],pc(k)(x)為單元間干擾的閾值電壓分布。在隨機(jī)電報(bào)噪聲、單元間干擾和可持久性噪聲的干擾下,閾值電壓的條件概率分布函數(shù)為[18]:
式中:p(k)(x)表示k個(gè)狀態(tài)的閾值電壓分布,k∈{11,10,00,01}。為了統(tǒng)計(jì)出p(k)(x),需要知道式(5)中保持時(shí)間T的大小,然而在實(shí)際場(chǎng)景中閃存控制器沒(méi)有額外的存儲(chǔ)空間來(lái)記錄保持時(shí)間[19-20]。
參照文獻(xiàn)[8-14],MLC 閃存信道仿真參數(shù)的設(shè)置如下:μe=0.14,σe=0.25,at=0.62,a0=0.3,At=0.000035,Bt=0.000235,γy=0.08s,γxy=0.006s。s表示電容耦合強(qiáng)度。
閃存信道參數(shù)設(shè)置為:PE 次數(shù)為1000,保持時(shí)間1 年,電容耦合強(qiáng)度s分別為0、1.4、2.5。由圖3可以發(fā)現(xiàn)不同狀態(tài)的受干擾單元不是交錯(cuò)呈現(xiàn),而是與干擾單元的閾值電壓具有正相關(guān)關(guān)系,隨著耦合強(qiáng)度增大,受干擾單元的閾值電壓向右偏移越明顯。這現(xiàn)象顯示了單元間的閾值電壓具有相關(guān)性。當(dāng)觀測(cè)的干擾單元越多,這種相關(guān)性越明顯,但是這種現(xiàn)象難以精確建立數(shù)學(xué)模型。
圖3 閃存內(nèi)部閾值電壓相關(guān)性分析Fig.3 Schematic of the correlation analysis of the internal threshold voltage of flash memory
本文的主要工作是將受干擾單元字線和干擾單元字線的閾值電壓組成序列,輸入到CNN 中進(jìn)行提取特征,再輸出閃存單元用于硬判決信息(單元存儲(chǔ)狀態(tài))和軟判決信息(閃存單元屬于某種狀態(tài)的后驗(yàn)概率)。
假設(shè)每個(gè)輸入序列個(gè)數(shù)為M(字線長(zhǎng)度),每個(gè)向量為2 維,序列所有閾值電壓向量在矩陣V∈R2×M中。
卷積層:本文挑選是一維卷積神經(jīng)網(wǎng)絡(luò),輸入序列表示為[V1V2…VM]矩陣,然后使用卷積核做卷積運(yùn)算:
式中:I(1,j)是第一層CNN 第j個(gè)特征映射;k(1,j)為第j個(gè)卷積核;b(1,j)為網(wǎng)絡(luò)偏置值,挑選的激活函數(shù)為整流線性函數(shù)(rectified linear unit,RELU)。下一層的卷積操作的輸出為
式中:I(i,j)是第i層CNN 網(wǎng)絡(luò)第j個(gè)特征映射;k(i,j)是第i層CNN 網(wǎng)絡(luò)第j個(gè)卷積核。在本工作中卷積網(wǎng)絡(luò)池化層會(huì)丟棄一些重要的特征信息,所以本文的卷積網(wǎng)絡(luò)由過(guò)濾器和全連接組成,并且CNN 輸出長(zhǎng)度也為M。
假設(shè)有N個(gè)數(shù)據(jù)樣本,對(duì)于輸入樣本i,經(jīng)過(guò)CNN 網(wǎng)絡(luò)提取特征后,形成序列Zi=[Zi1Zi2…ZiM],希望輸出每個(gè)序列節(jié)點(diǎn)所屬某種類型的概率,即P(yim=j|Vim)。以MLC 為例,其有4 種狀態(tài),即j∈{VS11,VS10,VS00,VS01},m∈{1,2,…,M}。Softmax 函數(shù)可以適用于多分類,其輸出為
式中:k=4;θ1、θ2、θ3、θ4是Softmax 函數(shù)的權(quán)重參數(shù);θ=[θ1θ2θ3θ4]。對(duì)于樣本i中輸入序列元素Vim,屬于狀態(tài)標(biāo)簽類型j的概率為
設(shè)計(jì)好CNN 檢測(cè)器結(jié)構(gòu)后,要對(duì)CNN 網(wǎng)絡(luò)訓(xùn)練,則需要從本地獲得訓(xùn)練數(shù)據(jù)。本文采用均勻量化策略獲得閃存單元中的閾值電壓數(shù)據(jù)。量化數(shù)量越多檢測(cè)越精確,但是也會(huì)帶來(lái)讀取延遲。如表1,為了權(quán)衡閃存單元電壓讀取延遲和可靠性,選擇64-level 均勻感知量化,在閃存單元狀態(tài)的符號(hào)錯(cuò)誤率(symbol error rate,SER)為0.0033時(shí),讀取延遲和可靠性折中。閃存控制器最小的讀取單位是字線,則需要設(shè)置輸入網(wǎng)絡(luò)的序列長(zhǎng)度與字線長(zhǎng)度相當(dāng)。
表1 不同量化區(qū)間的SER 結(jié)果Table 1 Simulation of SER in different quantization intervals
實(shí)驗(yàn)需要采集閃存控制器中讀出閃存塊中每個(gè)單元的量化閾值電壓和LDPC 解碼得到的每個(gè)單元狀態(tài)信息。首先,感應(yīng)和解碼出若干組閃存塊。其次,獲得閾值電壓V和狀態(tài)標(biāo)簽x。其中,閃存單元的閾值電壓在區(qū)間中被惑知,是第i個(gè)參考電壓,則閃存單元的量化閾值電壓V表示為
對(duì)于MLC 閃存單元有4 種不同的狀態(tài){VS11,VS10,VS00,VS01},用獨(dú)熱編碼預(yù)處理后為
對(duì)于字線上的閃存單元k,簡(jiǎn)單來(lái)說(shuō),當(dāng)Softmax 函數(shù)輸出的硬信息yk=[1 0 0 0]T時(shí),單元k對(duì)應(yīng)VS11;以此類推,當(dāng)輸出yk=[0 0 0 1]T,對(duì)應(yīng)VS01。當(dāng)輸出軟信息時(shí),Softmax 函數(shù)輸出每個(gè)單元屬于各狀態(tài)的概率,CNN 檢測(cè)器能自適應(yīng)地估計(jì)出字線中閃存單元狀態(tài)概率,然后式(14)計(jì)算出對(duì)數(shù)似然比。閃存單元中的比特位bid對(duì)應(yīng)的對(duì)數(shù)似然比(log-likelihood ratio,LLR)值可以被計(jì)算為
式中:Sid代表第i個(gè)閃存單元中第d比特位為1 的狀態(tài)集。其中,S={VS11,VS10,VS00,VS01},S1={VS11,VS10},S2={VS11,VS01}。
實(shí)驗(yàn)仿真在Window 10 操作系統(tǒng)下進(jìn)行,采用Keras 深度學(xué)習(xí)框架。在訓(xùn)練網(wǎng)絡(luò)之前,假設(shè)在實(shí)驗(yàn)中信道的保持時(shí)間未知,就需要生成失配的驗(yàn)證集來(lái)測(cè)試已訓(xùn)練好CNN 檢測(cè)器的魯棒性。定義失配時(shí)間公式為ΔT=Ttest?Ttrain,Ttrain和Ttest分別代表訓(xùn)練集和驗(yàn)證集的保持時(shí)間。定義失配編程和擦除循環(huán)次數(shù)公式為 ΔPE=PEtest?PEtrain,PEtrain和PEtest分代表訓(xùn)練集和驗(yàn)證集的編程和擦除循環(huán)次數(shù)。訓(xùn)練CNN 檢測(cè)器步驟:
1)閃存控制器找到第i和第i+1 字線位置,即圖2 中的WLi和WLi+1。
2)式(13)量化WLi和WLi+1中每個(gè)單元的感應(yīng)電壓。
3)LDPC 解碼WLi中的信息,若解碼成功,將獨(dú)熱編碼預(yù)處理解碼后的狀態(tài)作為標(biāo)簽。若解碼不成功,跳到下一個(gè)字線。返回1),直到獲取數(shù)據(jù)集數(shù)量滿足實(shí)驗(yàn)要求。
4) 獲取的數(shù)據(jù)集將用于訓(xùn)練CNN 檢測(cè)器。為了提升訓(xùn)練效率,將數(shù)據(jù)集分成小批量數(shù)據(jù),分批訓(xùn)練CNN 檢測(cè)器。
CNN 結(jié)構(gòu)由卷積核和特征圖組成,可以表示為{L;f1,f2,…,fL;k1,k2,…,kL}。這里的L表示CNN 網(wǎng)絡(luò)層數(shù),f表示卷積核大小,k表示特征圖數(shù)量。在實(shí)驗(yàn)中,通過(guò)比較誤比特率(bit error rate,BER)和誤幀率(frame error rate,FER)來(lái)評(píng)估系統(tǒng)性能。先進(jìn)行單層CNN 和RNN 的復(fù)雜度分析,然后用表2 設(shè)置CNN 結(jié)構(gòu)來(lái)測(cè)試在原始數(shù)據(jù)和編碼數(shù)據(jù)下的系統(tǒng)性能。
表2 CNN 實(shí)驗(yàn)設(shè)置Table 2 CNN experimental setup
對(duì)于文獻(xiàn)[8]所提出的RNN 檢測(cè)器,在實(shí)際的訓(xùn)練過(guò)程中會(huì)占用大量的時(shí)間,計(jì)算復(fù)雜度高。在理想條件下,通過(guò)設(shè)置CNN 和RNN 超參數(shù)使兩者的復(fù)雜度相當(dāng),然后對(duì)比它們的性能。可是RNN 網(wǎng)絡(luò)要比CNN 網(wǎng)絡(luò)復(fù)雜多,在CNN 網(wǎng)絡(luò)中有加法和乘法等線性運(yùn)算,而RNN 網(wǎng)絡(luò)中有許多的tanh 和exp 等復(fù)雜的非線性運(yùn)算。為了方便比較,通過(guò)統(tǒng)計(jì)FLOPs 來(lái)衡量網(wǎng)絡(luò)模型的復(fù)雜度。FLOPs 計(jì)算網(wǎng)絡(luò)模型所有的加法和乘法次數(shù)。GRU 是RNN 網(wǎng)絡(luò)模型中復(fù)雜度最低的網(wǎng)絡(luò)模型。若設(shè)置一個(gè)層GRU 網(wǎng)絡(luò)的神經(jīng)元個(gè)數(shù)為L(zhǎng),輸入數(shù)據(jù)的維度為D,N表示層數(shù),序列為T。根據(jù)文獻(xiàn)[21],GRU 模型復(fù)雜度為
根據(jù)文獻(xiàn)[22],CNN 網(wǎng)絡(luò)模型復(fù)雜度為
式中:Ci表示第i層輸出數(shù)據(jù)的通道數(shù);Ki表示第i層的卷積核大小;Ti為第i層輸出的序列。在本文中C0=1,采用的二維閾值電壓數(shù)據(jù)作為輸入,則D1=2,K1=(D1,k);用一層CNN 網(wǎng)絡(luò)與一層GRU 網(wǎng)絡(luò)對(duì)比復(fù)雜度,則C1=1,k為第一層卷積核尺寸。Softmax 函數(shù)復(fù)雜度可以忽略不計(jì)。此時(shí),GRU 網(wǎng)絡(luò)模型復(fù)雜度為,CNN 網(wǎng)絡(luò)模型復(fù)雜度為O(4kT1)。如圖4,設(shè)置實(shí)驗(yàn)環(huán)境s∈{1.4,1.6},Ttrain=1 年,PEtrain=1000。圖4展示了訓(xùn)練周期對(duì)誤比特率的影響。CNN detector-1、CNN detector-2、RNN detector-1 和RNN detector-2 所標(biāo)記的曲線對(duì)應(yīng)參數(shù)k=1、k=2 和L1=1、L2=2 時(shí)的模型。隨著訓(xùn)練周期變化,CNN 檢測(cè)器和RNN 檢測(cè)器趨于穩(wěn)定。RNN 檢測(cè)器性能亦可接近于CNN 檢測(cè)器,式(15)中得到RNN 檢測(cè)器復(fù)雜度與L1平方成正比。式(16)中CNN 檢測(cè)器復(fù)雜度與K成正比。如果在有單元間干擾情況下要達(dá)到相同性能,CNN 檢測(cè)器復(fù)雜度小于RNN檢測(cè)器。
圖4 不同訓(xùn)練周期下RNN 檢測(cè)器和CNN 檢測(cè)器比特錯(cuò)誤率比較Fig.4 Comparison of the BERs of the RNN and CNN detectors under different training periods
為了避免GPU 等硬件帶來(lái)的功耗等問(wèn)題[8],實(shí)驗(yàn)在無(wú)GPU 環(huán)境中進(jìn)行。表3 是在無(wú)GPU 下參數(shù)FLOPs 和每個(gè)訓(xùn)練周期的耗時(shí)統(tǒng)計(jì)。隨著參數(shù)的增加,RNN 檢測(cè)器的FLOPs 接近倍數(shù)增加,帶來(lái)的計(jì)算消耗和復(fù)雜度特別大。從耗時(shí)上可以看出,CNN 檢測(cè)器訓(xùn)練周期相當(dāng)于RNN 檢測(cè)器訓(xùn)練周期的四分之一。MEI 提出在系統(tǒng)空閑時(shí)間時(shí)激活RNN 檢測(cè)器,但是RNN 檢測(cè)器訓(xùn)練耗時(shí)長(zhǎng)[8]。與RNN 檢測(cè)器相比,CNN 檢測(cè)器被激活占用的系統(tǒng)空閑時(shí)間較短。
表3 CNN 檢測(cè)器和RNN 檢測(cè)器參數(shù)個(gè)數(shù)及FLOPsTable 3 Parameters and FLOPs of the CNN and RNN detectors
為了更好驗(yàn)證模型檢測(cè)有效性,LDPC 譯碼器盡可能收集解碼后綜合值為0 的碼字?jǐn)?shù)據(jù)。實(shí)驗(yàn)中選擇最優(yōu)閾值為性能對(duì)比標(biāo)桿。最優(yōu)閾值檢測(cè)器通過(guò)熵函數(shù)得到兩種狀態(tài)分布的重疊區(qū)間,然后在重疊區(qū)間中找到最優(yōu)讀取參考電壓。本文的CNN 檢測(cè)器使用2 維數(shù)據(jù)輸入網(wǎng)絡(luò)。然后,測(cè)試了有無(wú)單元間干擾下兩種檢測(cè)器誤碼率對(duì)比,s=0 時(shí),表示沒(méi)有單元間干擾的信道;s=1.4 時(shí),表示3 種噪聲同時(shí)存在下的信道,并且單元干擾強(qiáng)度為1.4。
如圖5 所示,在實(shí)驗(yàn)環(huán)境中有單元間干擾情況下匹配和失配的測(cè)試集(ΔPE=2500、5000),Ttrain=1 年,CNN 檢測(cè)器都取得很好的性能。當(dāng)s=1.4 時(shí),CNN 檢測(cè)器跟最優(yōu)閾值檢測(cè)器比提升了閃存使用壽命。例如,在誤比特率約為0.01,CNN 檢測(cè)器可以將閃存編程和擦除循環(huán)次數(shù)提升大約11000 次,而最優(yōu)閾值檢測(cè)器僅在3000 次左右。在沒(méi)有單元間干擾下,采用CNN 檢測(cè)器性能增益較小,這時(shí)的噪聲分布是標(biāo)準(zhǔn)AWGN 閃存信道,也是理想條件下的信道。此時(shí),CNN 檢測(cè)器與最優(yōu)閾值檢測(cè)器性能相似。由此,可以得出在有單元間干擾下,CNN 檢測(cè)器能有效地提取出單元間干擾的特征來(lái)檢測(cè)閃存單元狀態(tài),并且提升了閃存使用壽命。此外,當(dāng)用到失配的測(cè)試集時(shí),仿真性能對(duì)比結(jié)果顯示,在失配編程和擦除循環(huán)次數(shù)小于5000 情況下,本文CNN 檢測(cè)器檢測(cè)性能也好于最優(yōu)閾值檢測(cè)器。
圖5 失配編程和擦除循環(huán)次數(shù)比較Fig.5 Programming and erase cycles by mismatching data
傳統(tǒng)保持低誤比特率的方法是動(dòng)態(tài)更新讀取參考電壓。然而在未知信道信息時(shí),閃存控制器很難記錄保持時(shí)間T。這時(shí)就很難通過(guò)傳統(tǒng)方法獲得新讀取參考電壓。前面的實(shí)驗(yàn)結(jié)果證明有單元干擾下,CNN 檢測(cè)器優(yōu)于最優(yōu)閾值檢測(cè)器,接下來(lái)實(shí)驗(yàn)通過(guò)對(duì)失配編程和擦除循環(huán)次數(shù)固定為ΔPE=1000,PEtrain=5000,測(cè)試CNN 檢測(cè)器在失配保持時(shí)間下的性能。如圖6,當(dāng)時(shí)間不匹配到1 個(gè)月時(shí),CNN 檢測(cè)器還是優(yōu)于最優(yōu)閾值檢測(cè)器的性能并且與保持時(shí)間匹配的數(shù)據(jù)接近。當(dāng)保持時(shí)間失配增加到1 年時(shí),初期CNN 檢測(cè)器與匹配數(shù)據(jù)的性能略有下降。初期需要短周期更新CNN檢測(cè)器適應(yīng)信道變化,后期則可以數(shù)年更新一次CNN 檢測(cè)器,就可以接近匹配數(shù)據(jù)的CNN 檢測(cè)器誤比特率性能,也證明了CNN 檢測(cè)器魯棒性強(qiáng)。
圖6 失配保持時(shí)間比較Fig.6 Retention time through mismatching data
為了分析CNN 檢測(cè)器輸出的軟信息,實(shí)驗(yàn)選擇了碼率約0.889(2 048,2304)的LDPC 碼寫入到閃存單元中。在數(shù)據(jù)集中設(shè)置耦合強(qiáng)度因子為s=1.4,保持時(shí)間Ttrain=1 年和讀寫次數(shù)PEtrain=2000。為了避免驗(yàn)證數(shù)產(chǎn)生的讀取延遲,實(shí)驗(yàn)減少了量化電壓的數(shù)量,采用16-level 和32-level 兩種均勻量化讀取方法。CNN 檢測(cè)器評(píng)估出閃存單元軟信息,然后通過(guò)式(14)計(jì)算出LLR 值。圖7 給出了本文提出方法與傳統(tǒng)方法計(jì)算LLR 的系統(tǒng)性能比較。首先,設(shè)置0~20 最大迭代次數(shù)不等。其次,將CNN 檢測(cè)器測(cè)試的失配保持時(shí)間ΔT=5月,失配編程和擦除循環(huán)次數(shù) ΔPE=2 000。本文提出方法比5 月之前的傳統(tǒng)方法計(jì)算LLR 收斂快。也就是說(shuō),CNN 檢測(cè)器評(píng)估的LLR 更可靠,有助于置信傳播(belief propagation,BP)算法[23-24]糾錯(cuò)性能的提升。
圖7 最大迭代次數(shù)比較Fig.7 Comparison of maximum iterations
針對(duì)NAND 閃存存儲(chǔ)數(shù)據(jù)可靠性下降的問(wèn)題,本文提出CNN 檢測(cè)器,該檢測(cè)器不依賴于信道先驗(yàn)信息,通過(guò)學(xué)習(xí)相鄰單元閾值電壓的相關(guān)特征,能有效檢測(cè)NAND 閃存單元狀態(tài)。CNN 檢測(cè)器具有訓(xùn)練周期短、魯棒性強(qiáng)等特點(diǎn),能占用較少的系統(tǒng)空閑時(shí)間來(lái)適應(yīng)信道變化。CNN 檢測(cè)器還能輸出更準(zhǔn)確的LLR 信息,提升BP 譯碼算法的糾錯(cuò)性能。閃存信道檢測(cè)在深度學(xué)習(xí)中可以看作分類問(wèn)題,因此本文提出的方法也可以應(yīng)用到TLC、QLC 閃存信道中。