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