基於BCH算法的ECC在MLC Nand Flash中的實現[zz]

摘要:

 

       目前的Flash有nand和nor兩種,我們可以認爲flash是EEPROM的變種。intel在1988年開發出nor flash技術,徹底改變了EEPROM一統天下的局面。nand flash分爲MLC和SLC兩種,從前的SLC一般採用Hamming碼來實現ECC,能夠檢測2bit錯誤,自動糾正1bit錯誤。但對於MLC雖說具有存儲密度上的優勢,但也掩飾不了自身的缺陷。

1、讀寫次數較差

      MLC讀寫效能更差,SLC閃存約可以反覆讀寫10萬次左右,而MLC則大約只能讀寫1萬次左右,甚至有部分產品只能達到5000次左右。

2、讀寫速度較慢

      同條件下,MLC的讀寫速度要比SLC芯片慢,目前MLC芯片速度大約只有2M到3M左右。

3、能耗較高

     同條件下,MLC能耗比SLC高,要多15%左右的電流消耗。

4、出錯機率更大

      由於MLC的每個cell可以存儲2bit的數據,隨着技術的不斷進步,3bit、4bit、、都有可能。這樣對於讀寫頻繁的數碼產品(MP4,SD卡等),其出錯的機率將會更大,因此對主控芯片和ECC將要求更高。目前有的主控芯片通過純軟件校驗,這樣,無形當中加重了主控芯片的負擔。也有部分主控通過硬件的4bit ECC校驗和軟件校驗相結合,從而減輕了主控負擔,但是這只是在一定程度上減少出錯的機率,MLC的芯片寫入次數限制和傳輸速度等缺點是無法克服的。

   綜上所述,MLC需要多bit ECC,目前採用BCH和Reed Solomon算法的比較多,下面將詳細介紹本人採用的基於BCH算法的8b ECC(針對每個page 512byte的nand flash)。

   糾錯能力:8b/512byte

 

 

from: http://hi.baidu.com/rymonwang/blog/item/dca2ee8bb9339f17c8fc7ab8.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章