论文部分内容阅读
近二十年来,闪存已经逐渐替代硬盘被广泛应用于各种存储设备,如数据库,计算机,移动设备等等。目前闪存的发展主要依赖于尺寸的缩小、存储密度的增加(单个闪存单元比特个数的增加)或堆叠更多闪存单元(3D闪存)的方式降低闪存价格。然而,在制作过程中,闪存单元的尺寸和厚度表现出了越来越明显的差异,称为制程差异现象。它的直观表现是闪存单元的性能和可靠性存在不同程度的差异。或快或慢,或强或弱的闪存为嵌入式系统的发展带来了机遇,也带来了挑战。站在系统优化的角度,表现优良的闪存单元是性能和可靠性优化的目标。然而,一方面,闪存的制程差异现象是未知的;另一方面,表现优良的闪存单元是有限的,不妥当的博弈可能导致性能和可靠性下降。本文从闪存性能和可靠性的深层次影响因素出发,开展制程差异感知的技术优化研究。相对之前的研究工作,本研究通过挖掘闪存的制程差异现象,充分利用优良闪存单元的特征,从根本上提升性能和可靠性。本文主要研究内容如下:(1)针对制程差异感知的闪存写性能优化的研究。写性能是闪存设备性能的关键问题。通过分析写速度和闪存块可靠性的关系,很多闪存块被发现可以使用更大的写速度,从而提升性能。本工作首先根据闪存的错误特征调制闪存块写速度感知制程差异现象;其次,通过分配关键数据到写速度快的闪存块上提升整体性能;最后,在闪存控制器端提出了一个几乎无开销的实现方案。(2)针对制程差异感知的保存时间导致的刷新优化的研究。刷新工作是冗余操作,对闪存的性能和寿命均不利。但是,一方面,制程差异表明不同闪存块可支持不同的刷新频率,现采用的统一刷新引入了很多不必要的刷新;另一方面,数据会更新将旧数据闪存页无效掉,而如果闪存块中没有有效数据,它的刷新可以省去。本工作提出首先确定闪存块实际可支持保存时间,进而确定其刷新频率;其次,根据数据的更新时间和闪存块的保存时间,对数据和闪存块做匹配,最小化刷新次数;最后,提出了一种开销很小的实现方案。(3)针对缩短数据优化低开销纠错码可靠性的研究。闪存逐渐降低的可靠性需要高纠错能力的纠错码(Error Correction Code,简称ECC)保护。但是高纠错能力的ECC开销高,并不适用于消费级闪存。本工作发现如果减少ECC的纠错单元中的实际数据,其纠错成功的可能性可以显著提高。以此,提出了数据缩短方案,不断提升闪存寿命。针对三种映射的闪存,本工作分别介绍了其实际操作方式,包括数据布局,映射方式以及读写流程。但是数据缩短会引入可用空间的减少,因此本工作又提出三个缓解空间减少的方案,包括制程差异下强块的缩短避免,多比特闪存中可靠比特的缩短避免,以及小尺寸数据的缩短忽略。本文还利用模拟器对制程差异感知的一系列优化方案做了验证实验。实验结果证实了各个方案的有效性。其中,写性能优化方案可以提升约为30%的写性能。刷新优化方案可以减少50%~90%的刷新操作,进而提升10%~40%的性能和160%+的寿命。而纠错码可靠性优化方案可以在最多引入12%的空间减少时提升300%+的数据写入量。通过感知制程差异现象可以有效提升闪存设备的性能和寿命,为闪存的发展奠定了基础,也推动了闪存作为嵌入式设备的物联网和人工智能的发展。