本發(fā)明涉及信道編碼技術領域,具體涉及一種應用于NAND閃存上的極化碼糾錯方案。
背景技術:
在當今數字技術飛速發(fā)展的時代,快閃存儲器(NAND閃存)因其非易失性和可擦除性,加之小體積,高速寫入/擦除的性能以及更加低廉的每比特價格備受歡迎。目前存儲市場上極為火爆的固態(tài)硬盤即采用NAND閃存作為存儲介質。通過在每個閃存單元中存儲多個比特信息,每單元多層型(MLC)NAND閃存因為其極具吸引力的存儲密度統(tǒng)治了全球市場。然而密度上的擴大導致該類型閃存受到存儲可靠性問題的限制日益加深。因此我們需要選取合適的糾錯碼(ECC)來解決這一問題。
傳統(tǒng)的ECC方案采用的是BCH編碼、低密度奇偶校驗碼(LDPC)或兩者混合的編碼方案。它們是存在局限性的。BCH碼受限于其線性性質與判決特點,糾錯能力較弱,尤其在低信噪比情況下無法滿足實際應用需求;LDPC碼的性能十分優(yōu)良,但是其較長的譯碼延遲在目前追求高速吞吐性能的存儲領域是不合時宜的。
技術實現要素:
為了滿足實際應用需求,并減少譯碼延遲,本發(fā)明提出了一種基于極化碼(Polar Code)的高效多方案ECC技術,我們稱之為“預檢測方案”。該技術可以通過對當前NAND閃存的電壓擴散情況做出判斷,針對不同的電壓分布狀態(tài),選取相應的極化碼譯碼器(硬判決譯碼器、量化軟判決譯碼器和純軟判決譯碼器)來達到譯碼速度和性能需求上的平衡。
技術方案:
一種應用于NAND閃存上的極化碼糾錯方案,包括步驟:
1)對用戶數據進行預處理:用戶數據經過文件系統(tǒng),編碼器和映射三步轉化為電壓信息儲存在NAND閃存當中;
2)電壓探測器判斷當前閃存的電壓擴散情況,并依據電壓擴散情況決定使用對應的譯碼器譯碼;譯碼器包括硬判決譯碼器、量化軟判決譯碼器以及純軟判決譯碼器。
所述用戶數據進行預處理具體為:用戶數據首先經過文件系統(tǒng)轉換為不同格式的二進制比特流,之后通過極化碼編碼器轉變?yōu)橄鄳拇a字,再將二進制比特流通過格雷碼映射到對應的目標電壓上。
所述步驟2)具體為:
所述硬判決譯碼器采用兩次電壓比較獲取電壓所在區(qū)間,得到對于所存儲比特的觀測值,產生對數似然比的符號位;并根據對數似然比的符號位信息進行位運算產生譯碼結果;所述兩次電壓比較具體為:第一次先判斷最低有效位LSB,在此基礎上進行第二次判斷得到最高有效位MSB;
所述量化軟判決譯碼器先行計算重疊區(qū)域的邊界值,在硬判決比較的基礎上,增加電壓比較次數,獲得電壓值所在區(qū)間信息,計算得到重疊區(qū)域對應的對數似然比;并根據對數似然比進行迭代計算得到譯碼結果;
所述純軟判決譯碼器根據電壓信息通過概率分布密度函數的估計值計算得到對數似然比;并根據對數似然比進行迭代計算得到譯碼結果。
采用所述硬判決譯碼器時首先將感知到的電壓信息和閾值電壓V1做比較,得到最低有效位LSB的結果;若LSB=0則與V0比較;若LSB=1則與V2比較,得到最高有效位MSB的結果。
所述量化軟判決譯碼器根據不同的性能需求,對重疊區(qū)域進行進一步的劃分,對電壓進行多次比較。
有益效果:本發(fā)明針對于傳統(tǒng)譯碼方案中的單一形式作出了改進。當前方案中,大多數均采用“量化軟判決方案”。我們提出的硬判決方案和純軟判決方案解決了單一方案在速度和性能上不能兼顧的問題。硬判決方案碼字的每一個比特的觀測量中所包含的信息量僅為1bit。采用這些1bit信息來產生硬判決譯碼器所需要LLR的符號位,使譯碼器在二進制狀態(tài)下通過位運算來進行譯碼,極大地提升譯碼速度;純軟判決方案采用信息量最大的LLR作為譯碼器輸入,保證了惡劣情況下仍有合理的比特錯誤率,延長了閃存使用壽命。
附圖說明
圖1展示了整個系統(tǒng)的功能框圖和提出的多策略ECC方案。
圖2展示了2-比特NAND閃存中的目標電壓與實際電壓分布。虛線所示為目標電壓,即存儲對應信息的理論電壓值。由于電荷流失、單元間干擾等多種原因,閃存中實際的電壓分布呈現高斯分布的態(tài)勢。
圖3展示了在采用格雷碼映射和直接映射方案的對比。
圖4展示在硬判決方案下如何將存儲的電壓信息轉化為對碼字的估計。
圖5展示量化軟判決譯碼器中對于電壓區(qū)間的劃分。
具體實施方式
下面結合附圖對本發(fā)明作更進一步的說明。
本發(fā)明包括步驟:
1)用戶數據存儲階段預處理
不同用戶在不同操作系統(tǒng)中的數據在最終存儲前,都會在其文件系統(tǒng)中轉換為不同格式的二進制數字信息。為了保證這些被存儲的信息可以被完整地恢復,我們向其中添加冗余信息來抗干擾。因此文件系統(tǒng)輸出的二進制比特將在被分段后首先通過極化碼編碼器(Polar Encoder)轉變?yōu)橄鄳拇a字。
對于2-比特/單元的MLC閃存而言,比特流c將被兩比特一組映射到對應的目標電壓上(詳見圖3)。具體的映射方式采用格雷碼(Gray Code),其相鄰碼字間的漢明距離(Hamming Distance)為1;而電壓判斷出錯也只發(fā)生在相鄰狀態(tài)。故采用這種映射方式可以獲得最大的編碼增益。
至此,原始的用戶信息經過文件系統(tǒng)、編碼器和映射三步后已經轉化為電信息儲存在了NAND閃存當中,預處理工作完成。
2)電壓感知與原始電信號處理
電壓探測器將首先判斷當前閃存的電壓擴散情況,從而決定使用對應的譯碼器。對于硬判決譯碼器,采用類似于牛頓二分法利用格雷碼(Gray Code)映射相鄰兩狀態(tài)僅一個比特位有區(qū)別的特性,通過兩次電壓比較,第一次先判斷最低有效位(LSB),在此基礎上進行第二次判斷得到最高有效位(MSB),得到的MSB與LSB值即為所存儲比特的觀測值(詳見圖4),產生對數似然比(LLR)的符號位;對于量化軟判決譯碼器,需要先行計算重疊區(qū)域的邊界值,在硬判決比較的基礎上,增加電壓比較次數,獲得電壓值所在區(qū)間信息后,計算該區(qū)域對應的LLR;對于純軟判決譯碼器,在得到電壓信息后,
直接通過對于概率分布密度函數(PDF)的估計值進行計算來獲取需要的LLR。
3)處理得到的似然比信息送入對應譯碼器譯碼
譯碼器得到對應的LLR后,會進行相應的迭代計算。硬判決譯碼器僅需要LLR的符號位信息在二進制域內進行位運算產生譯碼結果,速度最快,性能最低;量化軟判決與純軟判決譯碼器的構造上并沒有區(qū)別,其性能區(qū)別在于輸入譯碼器的LLR與原始信息的匹配程度。
針對用戶數據存儲階段預處理,參照圖1的上半部分。我們假設原始信息(即文件系統(tǒng)輸出的二進制比特流)為x,被分為n段,則有:
每段信息通過編碼器后變?yōu)榇a字ci,則編碼器輸出的二進制比特流為:
如圖4,采用硬判決譯碼器時將首先將感知到的電壓和閾值電壓V1做比較,得到LSB的結果。若LSB=0則與V0比較;若LSB=1則與V2比較,得到MSB結果;將模擬信息轉化為數字信息。其中,LSB(Least Significant Bit)為最低有效位,MSB(Most Significant Bit)為最高有效位;V0和V1分別為MSB在LSB為0和1時的判決門限。
即:三個門限將電壓分布分為4個區(qū)域,分別對應四種不同的存儲信息;逐比特來看:
V1為LSB門限,即感知電壓<V1,LSB=0;感知電壓>V1,LSB=1;
V0、V2為MSB門限;
LSB=0時感知電壓<V0,MSB=0,感知電壓>V0,MSB=1;
LSB=1時感知電壓<V2,MSB=1,感知電壓>V2,MSB=0。
可以看到,硬判決方案中,碼字的每一個比特的觀測量中所包含的信息量也僅為1bit。我們采用這些1bit信息來產生硬判決譯碼器所需要LLR的符號位,使譯碼器在二進制狀態(tài)下通過位運算來進行譯碼。
如圖5,隨著使用時間增長,電壓分布逐漸“擴散”,兩個相鄰的電壓狀態(tài)會發(fā)生重疊,此時硬判決方案會帶來較大的偏差。我們需要增加電壓比較的次數來增加輸入譯碼器的信息量。
我們首先根據量化軟判決譯碼器重疊邊界計算方程計算出三組重疊邊界的邊界電壓。根據不同的性能需求,我們可以對重疊區(qū)域進行進一步的劃分,對電壓進行多次比較,獲得更加準確的信息。
量化軟判決譯碼器重疊邊界計算方程
其中,和μk分別為高斯分布p(k)的方差和均值;Bl(k)和Br(k)是重疊區(qū)域的下界和上界。
經過之前兩個步驟,我們已經將整個電壓分布劃分為n個不同的區(qū)間[R1,R2,…,Rn],并且已知讀取到的電壓位于某一個區(qū)間Ri中,則我們可以通過量化軟判決譯碼器對應區(qū)域LLR計算方程來分別計算出兩個比特的LLR。
量化軟判決譯碼器對應區(qū)域LLR計算方程
對于純軟判決譯碼器,我們不再對電壓區(qū)間進行劃分。為了得到最高的輸入信息量,我們直接在感知到的電壓x處分別求出四個概率密度,即p(0)(x),p(1)(x),p(2)(x),p(3)(x),根據純軟判決譯碼器在讀取電壓為x時的LLR計算方程計算LLR。
純軟判決譯碼器在讀取電壓為x時的LLR計算方程
通過對接收到的碼字觀測量中的每一個比特求LLR,我們得到了譯碼器的輸入信息。將這些信息輸入譯碼器,即可得到對存儲信息的估計:
在比特錯誤率(Bit Error Rate,BER)允許的情況下,我們可以認為:
本發(fā)明首次在NAND閃存中采用極化碼作為糾錯碼(ECC),并且針對不同的使用階段提供了三種不同的譯碼方案來滿足性能需要。在本發(fā)明中譯碼器并不局限于極化碼,只要是采用軟信息作為輸入的譯碼器均適用。針對不同電壓分布狀態(tài)產生的是信息量不同的LLR,因為輸入信息量不同,所以才會有不同的譯碼增益;采用LLR的符號位譯碼(硬判決譯碼器)無法通用,需要特別設計;量化軟判據和純軟判決采用的是LLR,是可以適配其它譯碼器。
在本發(fā)明中,選擇哪個譯碼器需要根據具體情況來分析;三種譯碼器能夠提供不同的譯碼性能,相對應的電壓擴散情況要看具體應用中對于性能的不同要求,在仿真環(huán)境下,一般采用信噪比作為判決條件;但是實際應用過程中只要能夠達到性能要求,則會盡量采用架構最簡單的譯碼器。
本發(fā)明具有很強的通用性,對于市場上的SLC,MLC以及TLC產品均可作為解決方案使用。映射過程中仍采用格雷碼,比特分組長度對應于1-bit,2-bit與3-bit。電壓讀取邏輯仍可MLC的方式進行相應的縮減與擴展,以滿足SLC于TLC產品的要求。
以上所述僅是本發(fā)明的優(yōu)選實施方式,應當指出:對于本技術領域的普通技術人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應視為本發(fā)明的保護范圍。