找回密码
 赶紧注册吧

QQ登录

只需一步,快速开始

查看: 9966|回复: 0
打印 上一主题 下一主题

Hanming,RS,BCH ―― NAND Flash中常用的纠错方法 [复制链接]

注意:1、各网友务必提高交友安全意识,不要轻易参加非天府交友网官方举办的见面交友活动,以防酒托,饭托或引发其他危险;请详细阅读《天府交友网服务条款》和《免责申明》!

Rank: 3Rank: 3

升级  88.67%

跳转到指定楼层
楼主
发表于 2011-10-24 02:52:33 |只看该作者 |倒序浏览
对于BCH算法
校验数据长度就是13×t,或者14×tbit
所以平均1024+32Byte的MLC 大多提议使用8bit/512Byte ECC
目前通常以512Byte或者1024Byte为单位处理,因为BCH按位处置数据,所以是4096bit或者8192bit,这里的4096/8192bit是原始数据,BCH需要生成必定的校验数据。下面扼要先容下原理
因为闪存中会有犯错的可能,如果没有使用ECC模块,读出的数据和写入的数据会有不匹配的可能,兴许一个文件中只有一两个bit不匹配,这也是不能容忍的。绝对来说SLC中出错概率比拟低,所以使用一个纠错能力不强的Hanming码就可以了,在MLC中Hanming码就显得力不从心了,需要纠错能力更强的RS或者BCH纠错方式了。
Hanming码原理算法都不算庞杂,网上应当都能找到hdl代码。
RS(Reed-Solomon)利用也十分普遍,按多位的组合编码,而BCH按位编码,比方在NAND Flash中某个字节应该是0x00,然而从NAND Flash读出却是0xf0; RS只以为涌现了一个毛病,而BCH却认为呈现了4个错误。RS方式有着不错的突发随机错误跟随机错误的才能,算是两者的折中。BCH擅优点理随机过错,因为NAND Flash本身的特色,出现随机错误的概率更大一些,所以在MLC中目前运用最多的仍是BCH方法。
如果选用4096bit的原始数据长度,则模式为BCH(8191,8191-13×t,t,13)
大家晓得即便是校验错误如奇偶校验或者CRC校验都需要在原始信息数据的基本上增添一些额外的数据。可能改正错误的ECC需要额外的数据空间保留纠错码天生的校验数据。所以在NAND Flash中Page的1K数据并不是1024Byte,大多数是1024+32Byte, 有的是更多的额外空间;额外空间越多象征着能够使用纠错能力越强的ECC,由于对统一ECC算法纠错能力越强需要的额定空间越大。
设最大纠错能力为t
假如选用8192bit的原始数据长度,则模式为BCH(16383,16383-14×t,t,14)
以8bit/512Byte BCH方式的ECC为例,把持器写数据到NAND Flash时,每512Byte数据经过BCH模块就会生成13Byte的校验数据(当然剩下的16-13=3Byte也可以作为某种用处的数据,可以任意使用0-3Byte而不会转变ECC的使用),这些数据一起写入到NAND Flash中。节制器从NAND Flash中读取数据的时候需要将原始数据和校验数据一起读出经由BCH模块,BCH模块盘算随同矩阵首先可以断定出是否出现了错误,如果出现了错误需要计算错误位置多项式,而后解多项式,得到错误地位(目前重要使用Chien-search方式),因为是位错误,找到错误的位置以后取反当前就是准确的数据。只有是错误个数小于即是8,BCH都可以找到错误的位置,但是如果错误个数超过了8,对于BCH来说已经不措施纠正错误了,只能讲演出现了不可以纠正的情形。
均匀1024+45Byte的MLC大多倡议应用24Bit/1024Byte ECC, 此时须要14×24bit=42Byte的测验数据空间
分享到: QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏0

使用道具 举报

※为保护您的个人隐私,防止被恶意盗用,在论坛中不得留下手机、QQ、邮箱等联系方式,否则将被屏蔽!,若有需要,请发送站内消息
您需要登录后才可以回帖 登录 | 赶紧注册吧

关于我们|网站地图|帮助中心|商务合作|法律声明|诚聘英才|联系我们| 时尚 娱乐 成都婚庆公司 网站制作天府星空
Copyright © 2010-2011 天府交友(Www.Tflove.Com)版权所有