闪存数据可靠性解决方案

闪存因自身特性存在不足,但作为存储的主力,需要对这些不足进行弥补:

  • ECC纠错。数据写入前进行ECC编码,读取数据时,通过ECC进行纠错。
  • 重读。当ECC无法纠正错误时,固件再读1次或若干次。重读时,需要改变控制极的参考电压来重读。但重读未必能恢复数据。
  • 刷新。ECC发现某闪存页或块数据出错位较多,提前将该页或块的数据搬移到其他的地方,避免因位反转过多导致ECC无法纠错。
  • RAID。SSD 一般采用RAID5。只能回复单个ECC不可纠错的数据,如果出现多个ECC不可纠错的错误数据,RAID也无能为力。同时RAID需要占用额外的闪存空间,且会影响读写性能。RAID需要软硬件共同实现。
    • 支持硬件异或功能,软件异或运算严重影响SSD写入性能
    • SSD固件需要利用控制器的RAID模块,综合闪存失效特征,RAM资源等因素,设计良好的RAID算法

你可能感兴趣的:(Embed,System,单片机)