閃存的一個特性就是隨著閃存的使用以及數(shù)據(jù)存儲時間的變長,存儲在閃存里面的數(shù)據(jù)容易發(fā)生比特翻轉(zhuǎn),出現(xiàn)隨機(jī)性錯誤。這個問題隨著閃存制程的變小越發(fā)嚴(yán)重。因此使用閃存作為存儲介質(zhì)的固態(tài)硬盤,需要采用一些數(shù)據(jù)完整性的技術(shù)來確保用戶數(shù)據(jù)可靠不丟失。常見的技術(shù)有:
-
ECC 糾錯
-
RAID 數(shù)據(jù)恢復(fù)
-
重讀(Read Retry)
-
掃描重寫技術(shù)(Read Scrub)
-
數(shù)據(jù)隨機(jī)化
讀錯誤來源
閃存數(shù)據(jù)發(fā)生錯誤,主要有以下幾個原因:
1.擦寫次數(shù)增多 隨著閃存塊擦寫次數(shù)增多,氧化層逐漸老化,電子進(jìn)出存儲單元越來越容易,因此存儲在存儲單元的電荷容易發(fā)生異常,導(dǎo)致數(shù)據(jù)讀錯誤
2. 數(shù)據(jù)保留
隨著時間的推移,存儲在存儲單元的電子會流失,整個閾值電壓分布向左移動,導(dǎo)致讀數(shù)據(jù)的時候發(fā)生誤判
3.讀干擾
讀一個 Wordline 數(shù)據(jù)時,需要施加Vpass電壓在其他 Wordline上,導(dǎo)致其他閃存頁發(fā)生輕微寫。如果讀的次數(shù)過多,輕微寫累積起來就會使閾值電壓分布發(fā)生右移,導(dǎo)致讀數(shù)據(jù)時候發(fā)生誤判,即讀數(shù)據(jù)錯誤
4.存儲單元之間干擾
由于存儲電子的浮柵極是導(dǎo)體,兩個導(dǎo)體之間構(gòu)成電容,一個存儲單元電荷的變化會導(dǎo)致其他存儲單元電荷變化,而受影響最大的就是它與相鄰的存儲單元。周圍的單元是不同的狀態(tài)時,中心單元的閾值電壓是不一樣的。
5. 寫錯誤 寫錯誤一般發(fā)生在MLC或者TLC 2-Pass(先寫Lower Page,然后再寫Upper page)寫過程中。寫Upper page的時候,它是基于之前Lower page的狀態(tài),然后再寫每個存儲單元到目標(biāo)狀態(tài)。如果寫Upper page的時候,Lower page數(shù)據(jù)已經(jīng)出錯(注意寫Upper的時候,Lower Page的數(shù)據(jù)是不會經(jīng)過控制器ECC糾錯的,寫過程發(fā)生在閃存內(nèi)部),就會導(dǎo)致存儲單元寫到一個不期望的狀態(tài),即發(fā)生寫錯誤。
數(shù)據(jù)一開始就寫錯了,當(dāng)然就別指望讀對了。
TLC 1-Pass program則沒有這個問題,因?yàn)長ower Page和Upper page是一次性同時寫入,寫Upper page不依賴于Lower Page數(shù)據(jù)。當(dāng)然,如果一開始擦除狀態(tài)就不對,那么還是會發(fā)生寫錯誤。
注:本文來源于聯(lián)樂實(shí)業(yè)官網(wǎng)http://www.lattine.cn/,轉(zhuǎn)載請標(biāo)明出處