论文部分内容阅读
为了获得更高的存储密度,闪存的工艺尺寸进一步缩小。然而,闪存中出现比特错误的概率也在增加,单纯通过纠错码来保证固态硬盘的可靠性已愈发艰难。本文针对固态硬盘中的比特错误、潜在的扇区错误以及固态阵列中的盘老化问题展开研究,并分别在比特级别、扇区级别和盘级别提出加固方法,主要工作如下:第二章提出一种基于丢数概率的固态硬盘个体可靠性评价方法和一种固态硬盘剩余寿命预测方法。闪存的可靠性随着使用时间的增加不断降低,固态硬盘的可靠性也相应降低。本章对闪存出错特性进行了详细地测试与分析,明确了擦写次数和保存时间是决定闪存页误码率的主要因素,并建立了闪存比特错误模型,为固态硬盘可靠性分析打下基础。本章基于页误码率分布模型对固态硬盘丢数概率进行精确地计算,基于页误码率的增长模型对固态硬盘的剩余寿命进行实时地估计。仿真验证表明丢数概率与剩余寿命能够精确反映单块固态硬盘的可靠性。第三章提出一种基于闪存页寿命感知的比特错误清理方法。本章分析了比特错误随着保存时间增加而累积增长的规律,周期性地利用纠错码对比特错误进行清理,降低固态硬盘的丢数风险。为了降低比特错误清理时间开销,本方法只对丢数概率较大的页块进行比特错误清理。根据闪存块保存数据的热度采取不同的比特错误清理策略,通过缩短纠错码来提升热块的纠错能力,通过比特错误日志来保证冷块中数据的安全。仿真验证表明本文提出的比特错误清理方法能够在非常小的时间开销下,对丢数概率较大的闪存页进行有效的风险控制,显著提升固态硬盘的可靠性并延长其使用寿命。第四章提出一种基于自适应Reed-Solomon(RS)码的盘内冗余加固方法。潜在的扇区错误和盘故障是固态阵列的主要错误模式,本章结合盘内冗余机制与RAID技术来同时纠正扇区错误和盘故障。为了降低盘内冗余空间的开销,本章构造了一种可感知闪存磨损的自适应RS码,其冗余的比重随着闪存的老化不断的增加。本章结合闪存特殊的结构与编程方式,采用一种基于闪存块的纵向物理条带结构,有效地消除校验更新开销。仿真验证表明本章提出的盘内冗余方法以较小的性能损耗与冗余空间开销,保证了固态硬盘与阵列的可靠性,并显著延长了固态硬盘与阵列的使用寿命。第五章提出一种基于级差老化机制的固态阵列加固方法。固态阵列中所有的盘同时老化后产生非常大的丢数风险。本章提出一种通过容量级差来形成老化级差的机制,使阵列中的所有固态硬盘形成新老更替的循环。在RAID的冗余机制下,通过年轻盘来保护老化盘,从而减少可靠性的波动。仿真验证表明本文提出的方法相比基于校验的级差老化阵列级差形成时间和重构时间显著减少且读写性能更强。本文通过研究闪存中比特错误的特性并结合其特殊的操作方式,通过不同层级的加固方法,以非常小的性能损耗与空间开销,化解了固态硬盘中不断增长的比特错误、潜在的扇区错误和固态阵列中固态硬盘老化带来的威胁。