NAND Flash ECC演算法長度計算

2021-09-06 08:57:25 字數 990 閱讀 7076

nand flash中常用的糾錯方式

因為快閃儲存器中會有出錯的可能,如果沒有使用ecc模組,讀出的資料和寫入的資料會有不匹配的可能,也許乙個檔案中只有一兩個bit不匹配,這也是不能容忍 的。相對來說slc中出錯概率比較低,所以使用乙個糾錯能力不強的hanming碼就可以了,在mlc中hanming碼就顯得力不從心了,需要糾錯能力 更強的rs或者bch糾錯方式了。

bch擅長處理隨機錯誤,由於nand flash自身的特點,出現隨機錯誤的概率更大一些,所以在mlc中目前應用最多的還是bch方式。

ecc校驗都需要在增加一些額外的空間來存放ecc效驗碼。所以常用的在nand flash中4k page的並不是4096byte,而是1024+128byte之類的, 有時候會有更多的額外空間218b;額外空間越多意味著可以使用糾錯能力越強的ecc,因為對於同一ecc演算法糾錯能力越強需要的額外空間越大。

對於bch演算法

目前通常以512byte或者1024byte為單位處理,因為bch按位處理資料,所以是4096bit或者8192bit,這裡的4096/8192bit是原始資料,bch需要生成一定的校驗資料。下面簡要介紹下原理

設最大糾錯能力為t

如果選用512b的原始資料長度,則模式為bch(8191,8191-13×t,t,13)

如果選用1024b的原始資料長度,則模式為bch(16383,16383-14×t,t,14)

校驗資料長度就是13×t,或者14×tbit

舉例:按照4bit的ecc來計算,每512byte會產生13*4=52,52/8=7,所以需要7b的空間。在wince bsp中4bit ecc是按照8b來儲存,是為了方便對齊,最後乙個byte是填充00。

按照8bit的ecc來計算,每512byte會產生13b的空間。

所以平均1024+32byte的mlc 大多建議使用8bit/512byte ecc

平均1024+45byte的mlc大多建議使用24bit/1024byte ecc, 此時需要14×24bit=42byte的檢驗資料空間

NAND Flash ECC演算法長度計算

nand flash中常用的糾錯方式 因為快閃儲存器中會有出錯的可能,如果沒有使用ecc模組,讀出的資料和寫入的資料會有不匹配的可能,也許乙個檔案中只有一兩個bit不匹配,這也是不能容忍的。相對來說slc中出錯概率比較低,所以使用乙個糾錯能力不強的hanming碼就可以了,在mlc中hanming碼...

NAND Flash ECC 校驗原理與實現

參考文件 nandflashecc校驗原理與實現 ecc簡介 由於nandflash的工藝不能保證nand的memoryarray在其生命周 期中保持效能的可靠,因此,在nand的生產中及使用過程中會產生壞塊。為了檢測資料的可靠性,在應用nandflash的系統中一般都會採用一定的壞 區管理策略,而...

BFS演算法 藍橋杯長草問題

小明有一塊空地,他將這塊空地劃分為 nn 行 mm 列的小塊,每行和每列的長度都為 1。小明選了其中的一些小塊空地,種上了草,其他小塊仍然保持是空地。這些草長得很快,每個月,草都會向外長出一些,如果乙個小塊種了草,則它將向自己的上 下 左 右四小塊空地擴充套件,這四小塊空地都將變為有草的小塊。請告訴...