论文部分内容阅读
Flash存储器是一种非易失性存储器,以其低成本、低功耗、高访问速度和高抗震性等优点,被广泛运用于便携式设备、消费电子等嵌入式系统的数据存储。不幸的是,和传统块设备不同,Flash存储器具有读、编程(写)和擦除三种基本操作,任何一次写数据之前必须先擦除所写物理擦除块。不仅如此,物理擦除块的有效擦除周期一般只有100,000次以内。
UBI(Unsorted Block Images)是一种类似于逻辑卷标管理器LVM的Flash存储器管理层。UBI实现了磨损平衡、坏块管理和逻辑块到物理块的映射等Flash芯片级管理功能,这使得基于UBI的Flash文件系统只需关注文件系统本身的设计。这种将Flash存储器管理和文件系统管理分层的设计概念,有利于简化Flash文件系统设计,易于系统测试和错误分析。
磨损平衡算法旨在通过将擦除操作平均分摊到Flash存储器的所有擦除块上,防止部分擦除块过早超过有效擦除周期而变成坏块,从而延长Flash存储器的预期寿命。
本文在UBI磨损平衡子系统的基础上,提出了一种基于物理擦除块年龄(擦除次数)和逻辑擦除块温度(写频率)的磨损平衡算法。在逻辑擦除块层,通过多维哈希方法预测逻辑擦除块温度并按温度高低划分为低温、中温和高温三类逻辑块;在物理擦除块层,将物理擦除块按年龄高低排序。通过空闲块的年龄分配策略和有效块的数据迁移策略将高温逻辑块映射到低龄物理块、中温逻辑块映射到中龄物理块以及低温逻辑块映射到高龄物理块,从而达到物理擦除块磨损均衡。同时,通过基于循环队列的新分配有效块保护策略防止磨损均衡过载。
对比实验表明,年龄温度磨损平衡算法从物理块年龄标准差和系统开销率两方面较大的改进了UBI磨损平衡子系统性能。