MLC快閃記憶體中基於雙層LDPC碼的編、解碼方法與流程
2023-07-12 14:31:31 2

本發明涉及存儲技術領域,特別涉及在mlc(multi-levelcell,多層單元快閃記憶體)快閃記憶體中基於雙層ldpc(lowdensityparitycheckcode,低密度奇偶校驗碼)的編、解碼方法。
背景技術:
大數據和雲存儲在帶來無限機遇的同時,也給信息領域帶來了諸多的風險和挑戰。傳統的存儲技術已不能適應當前高集成度低功耗快速集成電路技術的發展。非易失存儲(non-volatilememory,nvm)技術因其具有高集成度、低靜態功耗、高讀寫訪問速度、非易失、體積小等優良特性成為當前研究熱點。nandflash存儲器具有容量大,改寫速度快等優點,適用於大量數據的存儲,因而在業界得到了越來越廣泛的應用。
隨著半導體器件尺寸的不斷縮小和多層式存儲高密度技術的使用,急需解決nand快閃記憶體所面臨的可靠性降低、讀寫延時加長、p/e次數減少等主要問題。
存儲可靠性是mlc快閃記憶體的一個關鍵技術指標。高密度使存儲的可靠性降低,表現為較低的p/e循環耐久性,較短的數據保持,以及增加的對擾動和幹擾影響的敏感性。
ldpc碼憑藉其優異的糾錯性能和低解碼複雜度獲得了廣泛關注,並在眾多領域和標準中得到應用。因此基於ldpc碼的編碼技術來研究高密度低功耗快閃記憶體存儲可靠性問題對提升mlc快閃記憶體存儲器的綜合性能有著深遠意義。
當前的mlc快閃記憶體中,每個單元的2位比特信息被映射到2個不同的頁中,採用相同的編碼方案,沒有考慮mlc快閃記憶體信道的非對稱的特性,浪費了過多的冗餘,降低了系統的存儲效率和容量。隨著p/e循環次數增加,固定的糾錯碼方案無法糾正更多的隨機錯誤,導致解碼失敗,降低mlc快閃記憶體的存儲使用壽命。
技術實現要素:
本發明結合mlc存儲信道特性,提出一種mlc快閃記憶體中基於雙層ldpc碼的編、解碼方法,優化mlc存儲使用期內不同階段的系統性能,實現延遲控制,提高系統容量和存儲效率。
mlc快閃記憶體中基於雙層ldpc碼的編、解碼方法,包括對mlc快閃記憶體進行雙層ldpc碼的編碼,以及進行雙層ldpc碼的解碼。
其中編碼過程為:
步驟1-1、對mcl上頁數據進行編碼,使用雙層ldpc碼的下層校驗矩陣進行編碼,產生上頁冗餘1;
步驟1-2、對mcl上頁數據和上頁冗餘1進行二次編碼,使用雙層ldpc碼的上層校驗矩陣進行編碼,產生上頁冗餘2並存放在mcl下頁中;
步驟1-3、對mcl下頁數據和上頁冗餘2一起進行編碼,使用雙層ldpc碼的下層校驗矩陣的變種形式進行高碼率編碼,產生下頁冗餘;
步驟1-4、對mcl上、下頁產生的碼字進行mlc快閃記憶體編程。
解碼過程為:
步驟2-1、mlc讀取數據前先進行門限電壓感測,採用4比特低精度的電壓感測;
步驟2-2、根據進行mlc下頁解碼,若失敗則提高到6比特電壓感測精度,再解碼,直到達到預定精度;若成功,則在緩存中存儲mlc下頁中所包含的mlc上頁冗餘2信息;
步驟2-3、根據進行mlc上頁解碼,若成功,則解碼結束;否則進入步驟2-4;
步驟2-4、判斷是否二次讀取緩存中的額外冗餘:若是則提高電壓感測精度,繼續解碼,直到達到預定精度為止;否則進入步驟2-5;
步驟2-5、讀取緩存中mlc上頁冗餘2信息,進入步驟2-6;
步驟2-6、進行雙層ldpc碼解碼,若失敗返回步驟2-4;否則解碼成功。
本發明根據mlc快閃記憶體中不同頁之間的錯誤差異特性,實現ldpc碼的不等保護,並將雙層ldpc碼的上層額外檢驗比特存儲在糾錯性能較好的mlc下頁中,當糾錯性能較差的mlc上頁讀取失敗後,調用上層額外校驗比特信息,進行雙層ldpc碼解碼。
其有益效果是:首次提出mlc中雙層ldpc碼的概念,充分考慮mlc中不同頁之間錯誤特性不同的特點,實現不同頁面之間差異編碼方法,提高存儲系統容量;基於雙層ldpc碼的自適應方法,只在mlc上頁讀取失敗的情況下調用額外的比特信息進行雙層ldpc碼解碼,降低系統時延。
附圖說明
圖1為本發明實施例mlc中雙層ldpc碼tanner圖;
圖2為圖1實施例中基於雙層ldpc碼自適應方案的編碼流程圖;
圖3為圖1實施例中基於雙層ldpc碼自適應方案的解碼流程圖。
具體實施方式
為了使本發明的目的、技術方案及優點更加清楚明白,以下結合附圖及實施例,對本發明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發明,並不用於限定本發明。
圖1為雙層ldpc碼對用的雙層tanner圖,包括上層子圖和下層子圖。公式(1)中htwo為雙層ldpc碼的校驗矩陣,hup和hlow分別為上層子圖和下層子圖,n為雙層ldpc碼的碼長,k1和k2分別表示下層ldpc碼和上層ldpc碼的校驗比特長度。x為雙層ldpc碼的碼字,r為上層ldpc碼產生的額外比特信息。
其中,若為非奇異矩陣,則k1校驗比特信息可由公式(2)計算得出。
上層ldpc碼的額外比特信息r可根據公式(3)計算得出。
對進行行消去,可得到用於對mlc下頁要存儲的信息進行編碼,包括雙層ldpc碼的額外比特信息r。
以下結合圖2和圖3,對本實施例進行說明。
雙層ldpc碼的校驗矩陣無短環設計。定義圖1中虛線短環為雙層ldpc碼的短環,因此在構造雙層ldpc碼時,要確保雙層ldpc碼的htwo無短環無短停止距離,從而使以及也滿足無短環無短停止距離。
步驟1、對mcl上頁數據進行編碼,使用雙層ldpc碼的下層校驗矩陣進行編碼,產生上頁冗餘1:
步驟2、對mcl上頁數據和上頁冗餘1進行二次編碼,使用雙層ldpc碼的上層校驗矩陣進行編碼,產生上頁冗餘2:並存放在mcl下頁中。
步驟3、對mcl下頁數據和上頁冗餘2一起進行編碼,使用雙層ldpc碼的下層校驗矩陣的變種形式進行高碼率編碼,產生下頁冗餘。
步驟4、對mcl上、下頁產生的碼字進行mlc快閃記憶體編程。以上為mlc存儲中雙層ldpc碼編碼過程,如圖2所示。
以下是解碼過程:
步驟5、mlc讀取首先要進行門限電壓感測,為了降低讀取系統延遲,初期採用低精度的電壓感測。
步驟6、進行mlc下頁解碼,若失敗則提高感測精度再解碼,直到預定精度為止。若成功,則在緩存中存儲mlc下頁中所包含的mlc上頁冗餘2信息。
步驟7、進行mlc上頁解碼,若成功,解碼結束。若失敗進入步驟8。
步驟8、判斷是否二次讀取緩存中的額外冗餘。若是,則提高感測精度,繼續解碼,直到預定精度為止;否則進入步驟9。
步驟9、讀取緩存中mlc上頁冗餘2信息,進入步驟10。
步驟10、進行雙層ldpc碼解碼,若失敗進入步驟8;否則解碼成功。