YAFFS文件系统是否支持每256字节页面超过1位的ECC?

时间:2015-09-29 13:56:21

标签: c algorithm flash-memory

来自YAFFS2来源(yaffs_ecc.c): “ECC可以纠正256字节数据页中的单个位错误。”

但有些闪存需要ECC代码,例如,每540字节必须纠正8位,或每528字节纠正4位等。

YAFFS的ECC算法可以纠正多于1个错误吗?请给我链接ECC算法实现,可以纠正1个以上的错误并且工作最快。

1 个答案:

答案 0 :(得分:1)

YAFFS是基于Nand的文件系统。文件系统是根据nand闪存的体系结构设计的。

YAFFS的ECC算法可以纠正多于1个错误吗?

不能纠正超过1位的错误。

根据每个页面的nand架构,可以维护一个ECC,它可以处理最多1位错误。如果ECC显示超过2位错误,则其不可纠正的错误,并且页面被标记为坏块。

即使您尝试在yaffs中实现ECC算法,闪存也无法处理错误纠正。闪存中将保留备用区以存储ECC位,并且存储此数据的字节数有限。

要修改文件系统,您可以查看您尝试实施的闪存的数据表。大多数闪存都有内部ECC生成控制器,即硬件控制器。

每540字节可以校正8位吗?

实现这样的flash算法太复杂了。

以下是一些用于闪存的ECC算法

  1. 汉明算法
  2. 里德 - 所罗门算法
  3. Bose-Chaudhuri-Hocquenghem(BCH)算法
  4.   

    使用BCH算法可以纠正更多错误   算法主要在硬件控制器中实现