论文摘要
基于NAND Flash的固态盘凭借其低能耗、低故障率、高性能等优势,正逐步应用到企业级服务器和高性能计算领域。为保持主机对固态盘的访问接口与磁盘兼容,并有效解决NAND Flash的重写前擦除和擦除次数有限等固有特性引起的各类问题,提高固态盘的整体性能,固态盘在文件系统和NAND Flash之间引入闪存转换层,以处理地址映射、垃圾回收和磨损均衡等问题。其中,地址映射将请求的逻辑地址映射为固态盘内物理地址,根据映射粒度的不同可分为页映射、块映射和混合映射。页映射方式存在映射表过大的问题,限制了其在固态盘中的实际应用。当前主流的DFTL算法在页映射的基础上选择性地缓存最近常用的页映射关系,一定程度上缓解了页映射表过大的问题,但因映射信息未命中缓存而产生的额外开销严重影响了固态盘的整体性能。针对上述问题,本文提出了一种有效利用负载时空局部性的地址映射方法ECAM,ECAM将多个物理页号和逻辑页号均连续的页映射关系用一条带有SIZE域的地址映射关系表示,并在对页映射信息的缓存管理策略中赋予SIZE值较大的地址映射信息更高的优先级。ECAM根据负载的局部性原理对缓存内地址映射信息进行管理,在缓存空间一定的情况下缓存更多有用的地址映射信息,提高缓存命中率,减少缓存失效产生的额外读写操作,提高固态盘整体性能。同时,针对NAND Flash读写性能与负载特性相关的特点,本文在ECAM基础上提出了一种基于负载预测的自适应闪存转换层算法WAPFTL。WAPFTL通过对负载特征的预测动态调整缓存管理策略,避免缓存随机写请求的地址映射信息时造成的空间浪费,在各类负载下提高有限空间缓存的命中率,进一步提高固态盘整体性能。测试结果表明本文提出的ECAM和WAPFTL可以有效提高地址映射信息的缓存命中率,减少缓存未命中而产生的额外开销,有效提高固态盘的整体性能。