- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ECC算法详解及硬件实现
ECC算法详解及硬件实现 ECC 的全称是 Error Checking and Correction,是一种用于 Nand 的差错检测和修正算法。如果操作时序和电路稳定性不存在问题的话, NAND Flash 出错的时候一般不会造成整个 Block 或是 Page 不能读取 或是全部出错,而是整个 Page(例如 512Bytes)中只有一个或几个 bit 出错。ECC 能纠正 1 个比特错误和检测 2 个比特错误,而且计算速 度很快,但对 1 比特以上的错误无法纠正,对 2 比特以上的错误不保 证能检测。 校验码生成算法:ECC 校验每次对 256 字节的数据进行操作,包含列 校验和行校验。对每个待校验的 Bit 位求异或,若结果为 0,则表明含 有偶数个 1;若结果为 1,则表明含有奇数个 1。列校验规则如表 1 所 示。256 字节数据形成 256 行、8 列的矩阵,矩阵每个元素表示一个 Bit 位。 其中 CP0 ~ CP5 为六个 Bit 位,表示 Column Parity(列极性), CP0 为第 0、2、4、6 列的极性,CP1 为第 1、3、5、7 列的极性, CP2 为第 0、1、4、5 列的极性,CP3 为第 2、3、6、7 列的极性, CP4 为第 0、1、2、3 列的极性,CP5 为第 4、5、6、7 列的极性。 用公式表示就是: CP0=Bit0^Bit2^Bit4^Bit6,表示第 0 列内部 256 个 Bit 位异或之后再跟第 2 列 256 个 Bit 位异或,再跟第 4 列、第 6 列的每个 Bit 位异或,这样,CP0 其实是 256*4=1024 个 Bit 位异或 的结果。CP1 ~ CP5 依此类推。 行校验如下图所示 其中 RP0 ~ RP15 为十六个 Bit 位,表示 Row Parity(行极性), RP0 为第 0、2、4、6、….252、254 个字节的极性 RP11、3、5、7……253、255 RP20、1、4、5、8、9…..252、253 (处理 2 个 Byte,跳过 2 个 Byte) RP3 2、3、6、7、10、11…..254、255 (跳过 2 个 Byte,处 理 2 个 Byte) RP4 处理 4 个 Byte,跳过 4 个 Byte; RP5 跳过 4 个 Byte,处理 4 个 Byte; RP6 处理 8 个 Byte,跳过 8 个 Byte RP7 跳过 8 个 Byte,处理 8 个 Byte; RP8 处理 16 个 Byte,跳过 16 个 Byte RP9 跳过 16 个 Byte,处理 16 个 Byte; RP10处理 32 个 Byte,跳过 32 个 Byte RP11跳过 32 个 Byte,处理 32 个 Byte; RP12处理 64 个 Byte,跳过 64 个 Byte RP13跳过 64 个 Byte,处理 64 个 Byte; RP14处理 128 个 Byte,跳过 128 个 Byte RP15跳过 128 个 Byte,处理 128 个 Byte; 可见,RP0 ~ RP15 每个 Bit 位都是 128 个字节(也就是 128 行)即 128*8=1024 个 Bit 位求异或的结果。 综上所述,对 256 字节的数据共生成了 6 个 Bit 的列校验结果,16 个 Bit 的行校验结果, 22 个 Bit。 Nand 中使用 3 个字节存放校验结 共 在 果,多余的两个 Bit 位置 1。存放次序如下表所示: 以 K9F1208 为例, 每个 Page 页包含 512 字节的数据区和 16 字节的 OOB 区。前 256 字节数据生成 3 字节 ECC 校验码,后 256 字节数据 生成 3 字节 ECC 校验码,共 6 字节 ECC 校验码存放在 OOB 区中,存 放的位置为 OOB 区的第 0、1、2 和 3、6、7 字节。 校验码生成算法的 C 语言实现 在 Linux 内核中 ECC 校验算法所在的文件为 drivers/mtd/nand/nand_ecc.c,其实现有新、旧两种,在 ,其实现有新、旧两种, 2.6.27 及更早的内核中使用的程序,从 2.6.28 开始已经不再使用, 及更早的内核中使用的程序, 开始已经不再使用, 而换成了效率更高的程序。 而换成了效率更高的程序。可以在 Documentation/mtd/nand_ecc.txt 文件中找到对新程序的 详细介绍。 详细介绍。 首先分析一下 2.6.27 内核中的 ECC 实现,源代码见: http://lxr.linux.n
您可能关注的文档
- 动车组基础知识汇总.doc
- 《产品语义设计》图片二.doc
- 制造KPI基础数据及算法.ppt
- 博客营销方法及应用.ppt
- 北京市通州区2010高三4月模拟考试--数学(文).doc
- 中国传媒大学考博英语2009.doc
- 北京2011理科立体几何模拟试题学生综合版.doc
- 历史会考之必修一.ppt
- 力(第一课时).ppt
- 各大银行题型.doc
- 浙江衢州市卫生健康委员会衢州市直公立医院高层次紧缺人才招聘11人笔试模拟试题参考答案详解.docx
- 浙江温州泰顺县退役军人事务局招聘编外工作人员笔试备考题库及参考答案详解一套.docx
- 江苏靖江市数据局公开招聘编外工作人员笔试模拟试题及参考答案详解.docx
- 广东茂名市公安局电白分局招聘警务辅助人员40人笔试模拟试题带答案详解.docx
- 江苏盐城市大丰区住房和城乡建设局招聘劳务派遣工作人员4人笔试模拟试题带答案详解.docx
- 浙江舟山岱山县东沙镇人民政府招聘笔试模拟试题及参考答案详解1套.docx
- 最高人民检察院直属事业单位2025年度公开招聘工作人员笔试模拟试题含答案详解.docx
- 浙江金华市委宣传部、中共金华市委网信办所属事业单位选调工作人员笔试备考题库及答案详解1套.docx
- 广东深圳市党建组织员招聘40人笔试模拟试题及答案详解1套.docx
- 江苏南京水利科学研究院招聘非在编工作人员4人笔试模拟试题及参考答案详解.docx
最近下载
- 《中国结核病预防控制工作技术规范(2020年版)》.PDF VIP
- 2023年北京市中考英语真题(含答案) .pdf VIP
- 南通大学2023-2024学年《病理学》期末考试试卷(A卷)附参考答案.docx
- 胸部损伤-教学课件.ppt VIP
- 某银行数据中心搬迁整体实施方案.pdf VIP
- 麦肯锡中国银行业CEO季刊(2020年秋)-麦肯锡-224页正式版.pdf VIP
- 国家公务员录用考试体检标准.doc VIP
- 入党申请书时事政治精选五篇.docx VIP
- 农村公路安全生命防护工程监理规划49943.doc VIP
- 高中英语3500词【打印版】乱序版3500词汇(带音标120页).pdf VIP
文档评论(0)