摘要:
目前的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