您的位置:首页 > 其它

基于BCH算法的ECC在MLC Nand Flash中的实现[zz]

2010-10-29 15:34 225 查看
摘要:
 
       目前的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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  flash 算法 存储 产品 byte c