對于閃存來說,就沒有電子穿越不了的全緣材料。絕緣氧化層把存儲在浮柵極的電子關在里面,可是,隨著時間的轉移,有許多電子會從里面跑出來。如果跑出來的電子達到一定數量時,必然會使存儲單元的比特發生翻轉:
Agrade閃存產品
0→1(注意,RD是使1翻轉為0),如果出錯比特數超出ECC的糾錯能力,那么數據即將丟失。這就可以解釋為什么你的固態硬盤如果很長時間不用,可能就啟動不了亦或啟動很慢(因為固件需要處理由于RD引起的數據錯誤)的現象了。
那么問題來了,為什么SSD長久不用數據就會丟失,而經常使用卻不會呢?原因是FW或者FTL起了作用了。針對DR這個問題,稍微好一點的SSD,FTL都會有正確的處理。如何處理呢?FTL在SSD上電或者平時運行時,每隔一段時間對閃存空間進行掃描,當發現比特翻轉超出一定閾值時,跟RD處理一樣,進行數據刷新,這樣就能避免數據徹底丟失。
假如SSD一直不上電,FTL根本就沒有機會去執行這些操作,只能眼巴巴地看著電子流失而無能為力。