NAND Flash : Bitflip and Read only
關於發生NAND Flash bitflip and ECC Error會把區塊變成Read only, 造成位元翻轉過多無法修正之問題, 這邊推測可能是因為外界干擾而導致。
在運作時若是在較為惡劣的電磁環境,資料在SOC到NAND傳輸時容易發生bitflip,因而讓NAND收到的資料就是錯誤的或bitflip偏高的。
假設如果有多個NAND Flash都出現, 可以先進行以下幾項檢視:
- 統計ECC fail的address分佈,是否集中在特定邏輯分區,如果集中在特定邏輯分區,那麼附近的區域,即使ECC pass, bitflip count也會比較高
- 選取一片做測試分析,並Scan錯誤地址的Vt,建議先確認對應的address
- 同步檢視”ECC data”與”正確data”之間的差異
Bitflip
可能發生的原因有以下幾項 :
- 寫入時正確,寫入時或寫入後發生bitflip時,去做測試分析,錯誤的資料Vt上可以看到異常,且錯誤在NAND上會比較隨機分佈
- 資料在寫入時收到干擾,NAND接收到了錯誤數據,測試分析時會發現Vt是正常的,而且錯誤會集中分佈在特定的邏輯分區,例如data或log等頻繁寫入的分區。這時,去scan整個邏輯分區,會發現很多bitflip偏高但是ECC pass的現象。
Read only
這問題有可能是因為NAND Flash內的空間已被寫滿未清潔導致或是長時間資料存放然後日積月累地被寫滿未定期清潔而導致。
對於即將被寫滿的空間, 在已被寫滿的情境下或是存放已久且不使用的File, User端需確認有沒有相關管理機制對NAND Flash做空間釋放或空間清潔。
(GC機制 : 在計算機概論中,指的是一種自動的記憶體管理機制。當某個程式占用的一部分記憶體空間不再被這個程式存取時,這個程式會藉助GC演算法向作業系統歸還這部分記憶體空間。)