论文部分内容阅读
自当今社会进入互联网、大数据时代以来,对大容量存储技术提出了巨大需求。NAND Flash特别是一个存储单元存储2位数据的MLC NAND Flash,由于其具有功耗小、大容量、体积小、随机读写性能好、高性价比等优点得到了极大应用。但因为NAND Flash块擦除、页读写操作逻辑造成的和当前文件系统不匹配、存储数据错误率高和有坏块的问题,使得当前对扇区自由访存的磁盘管理方法不再适用,就需要采用专门的NAND Flash管理算法实施管理。坏块管理问题就是必须要解决的内容之一。本文在广泛研究了NAND Flash常用坏块管理方法(Bad Block Management,BBM)的基础上,提出了一种新型坏块管理方案。该方案在块替换策略上使用坏块保留区替换策略;在坏块信息存储方式上使用了坏块位标记表和块保留映射表相结合的方式;在管理流程上应用了静态坏块和动态坏块分开管理的方式。在硬件适应层,用静态坏块管理模块实现静态坏块的管理,设计了静态坏块管理总体框架,包括坏块管理初始化、坏块管理信息表、坏块管理控制器、滞后回写等模块,用FPGA逻辑时序的方式保证了在实现完整坏块管理功能的同时,与上层地址映射层(Flash Translation Layer,FTL)算法透明适配;在FTL层,设计并实现了页粒度管理策略(Page Granularity Management Strategy,PGMS)对动态坏块进行管理,将原有粗粒度的坏块管理方式转变为细粒度页的管理模式,充分考虑块内页抵抗错误率增长存在的巨大差异,以充分挖掘块内所有页的寿命潜能。本文在自行研制的基于Zynq的NAND Flash软硬件协同验证平台上对本文所研究的坏块管理算法进行了实现。其中在Zynq的PL部分(Programmable Logic,PL)实现了硬件适应层的静态坏块管理模块,经实验表明该模块具有实现可靠、管理效率高、容量损耗小(4 KB坏块信息表能够管理16G容量)的优点。在Zynq的PS部分(Processing System,PS)实现了嵌入动态坏块页粒度管理策略的页映射FTL算法。实验结果表明动态坏块页粒度管理策略能大大提高Flash使用寿命,对于制程为3x-nm的MLC NAND Flash,在不考虑存储容量减小的情况下最高能提高35倍左右的寿命,而对写性能带来最大约9.5%的速率缩减,对读性能影响可以忽略不计。