论文部分内容阅读
由于NandFlash具有体积小、大容量、省电、非挥发性和耐震性等特性,使得他才刚刚问世几年便成为了嵌入式计算机系统中存储器的主流之一。
但是NandFlash具有以下几个方面的特性:区块中包含一定数量的坏区块;区块的抹除次数有限且必须以区块为单位进行抹除;还有对非空闲资料页进行写入操作前必须先抹除区块。这些特性决定了不能像使用硬盘一样使用NandFlash,因此建立一个闪存管理层来达到消除这些障碍是非常有必要的。
在闪存管理层中建立一个逻辑区块地址空间,这个地址空间向上提供连续的资料页存储地址,向下映射物理区块地址。逻辑区块地址空间映射到物理区块采用的是全相连映射,因此可以通过改变映射关系达到均匀抹除区块和避免坏区块被写入数据的效果。对非空闲资料页进行写入操作必须先抹除区块,由于抹除区块十分耗时,所以必须分离写入和抹除操作。为此在逻辑区块地址空间中开辟出一定数量的区块用来专门存放这些资料页。
通过上述安排之后还需要解决如下这些问题:如何不使坏块映射到逻辑地址空间;怎么达到均匀抹除的效果;区块分配的策略和空间回收的策略。
在NandFlash管理中单元抹除成本和均匀抹除是两个相互矛盾议题,当过度重视单元抹除成本时区块之间的抹除次数就会过度倾斜,就会减少闪存寿命和降低数据的安全性。当过度重视均匀抹除会给系统造成沉重负担。为了在这两个矛盾的议题中寻找到一个平衡点,文中引用了Kim和lee所给出的清除索引公式以及后人给出的修正公式。
在区块分配的策略中采取了分区分层的分配方法。首先根据不同区域的区块属性而分配相关特性的物理区块,对属性不明确的逻辑区块采取折中的分配方法,当此逻辑区块需要再次分配物理区块的时候,根据其更新情况来分配相关特性的物理区块。
空间回收采取定期定量的回收策略。定期回收就是当存储空间不够而由系统唤醒回收机制,回收无效资料占用的空间;定量回收是指当区块中包含的无效资料页数目达到某一数值时就启动回收机制。