来自YAFFS2来源(yaffs_ecc.c): “ECC可以纠正256字节数据页中的单个位错误。”
但有些闪存需要ECC代码,例如,每540字节必须纠正8位,或每528字节纠正4位等。
YAFFS的ECC算法可以纠正多于1个错误吗?请给我链接ECC算法实现,可以纠正1个以上的错误并且工作最快。
答案 0 :(得分:1)
YAFFS是基于Nand的文件系统。文件系统是根据nand闪存的体系结构设计的。
YAFFS的ECC算法可以纠正多于1个错误吗?
不能纠正超过1位的错误。
根据每个页面的nand架构,可以维护一个ECC,它可以处理最多1位错误。如果ECC显示超过2位错误,则其不可纠正的错误,并且页面被标记为坏块。
即使您尝试在yaffs中实现ECC算法,闪存也无法处理错误纠正。闪存中将保留备用区以存储ECC位,并且存储此数据的字节数有限。
要修改文件系统,您可以查看您尝试实施的闪存的数据表。大多数闪存都有内部ECC生成控制器,即硬件控制器。
每540字节可以校正8位吗?
实现这样的flash算法太复杂了。
以下是一些用于闪存的ECC算法
使用BCH算法可以纠正更多错误 算法主要在硬件控制器中实现