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