关 闭

新闻中心

EEPW首页 > 工控自动化 > 设计应用 > 基于固态存储器的ECC算法分析及实现

基于固态存储器的ECC算法分析及实现

作者:时间:2009-11-27来源:网络收藏

列校验码生成用数学表达式表示为

本文引用地址:http://www.eepw.com.cn/article/202613.htm


行校验码生成用数学表达式表示为


这里xor表示异或操作。
因为发生错误的数据位在该数据块中的字节的偏移量为

发生错误的数据位在所处的字节中的位偏移量为P4_1,P2_1,P1_1
所以根据字节的偏移量和字节中的位的偏移量即可确定该页数据中哪一位发生了变化。
2.2 校验流程
当向NAND Flash的页中写入数据的时候,每2 048 bit生成4 bit的校验码,称之为写校验码,保存到每一页的空闲数据区中。
当从NAND Flash中读取数据的时候,每2 048 bit生成4 bit的ECC校验码,称之为读ECC校验码。校验的时候,根据上述ECC生成原理不难推断:将从页空闲区中读出的写ECC校验码和读ECC校验码按位异或,若结果为0,则表示不存在错;若4 bit的异或结果中存在14 bit为1,表示存在1 bit错误,且可纠正;若4个bit的异或结果中只存在1 bit为1,表示空闲区中的校验码出错;其他情况均表示出现了无法纠正的错误,校验流程图,如图2所示。

3 ECC算法的实现
3.1 C语言实现ECC算法
以一页数据2 048个字节作为测试数据产生ECC校验码,数据是0x00~0xFF,循环8次产生2048个数据,数据序列,如图3所示。



评论


相关推荐

技术专区

关闭