论文部分内容阅读
安全数字存储卡又名SD卡是新一代大容量移动存储设备,其具有读写速率快、体积小、数据安全等特性,目前被广泛应用到MP3、MP4和数码相机等电子产品中。绝大多数SD卡都是以NAND Flash作为存储介质的,而操作系统却无法直接访问NAND Flash,为了解决上面这个难题,在NAND Flash和操作系统中间增加了闪存转换层(FTL,Flash Translation Layer),从而让SD的IO读写操作跟普通磁盘一样。FTL算法是SD卡中的核心技术,它的优劣直接关系到产品的性能,本文在二级页地址映射算法——DFTL算法的基础上提出了一种基于二级缓存的改进算法。本文首先详细介绍了SD卡的结构、inic-2051[注释]控制芯片以及NAND Flash芯片,然后介绍了FTL算法的主要功能,并对比较常见的几种地址映射策略进行对比分析,最后在DFTL策略的基础上,提出了本文的改进FTL算法。本文主要完成了地址映射、垃圾回收、坏块管理以及上电恢复四个模块的设计,并以固件形式在SD卡中实现了算法代码。对于地址映射策略,设计了CMT、GMT和GTD三映射来表进行寻址,在内存中除了存放DFTL算法原有的映射表之外,本文提出在内存中增加二级缓存的策略。该二级缓存不仅可以用来存储从CMT中批量剔除的映射信息,减少了映射表的写回次数,而且可以用来进行寻址,提高了内存中映射表的寻址命中率;对于垃圾回收系统,提出了ERCT的概念,采用主动垃圾回收与被动垃圾回收相结合的方式,优先回收无效页最多的物理块,同时还保证了磨损均衡;对于坏块管理系统,采用出厂坏块扫描和使用坏块扫描相结合的方式,通过ECC校验以及偏移电压进行Read Retry操作来纠正原本错误的数据,从而变相延长了使用坏块的寿命;对于上电恢复系统,实现了在断电情况下,内存中映射表的精确恢复。针对异常断电情况下映射表的恢复问题,提出在NAND Flash中备份两份映射表的方式,其中一份映射表用来进行正常的读写操作,另一份专门用来进行上电恢复,从而确保了SD卡的稳定性与可靠性。最后将本文算法代码以固件形式写入到SD卡中,测试结果表明,SD卡数据读写稳定可靠,速度比较可观,具有一定的实用价值。