2 Flash的特点及存储管理的作用
由K9F6408U0C的基本结构可以知道,它的基本单位有块、页、字节等。 Nand Flash 芯片具有如下特点:
Flash写:通过写命令将每个字节存储单元中的1变为0;写操作不能把0变为1。
Flash擦除:擦除命令是Flash中存储单元0变为1的唯一途径,一旦对某一块中的某一位 写0,要再改变成1,则必须执行擦除命令。
通常,对于容量较小的Flash块的操作过程是:先把整个块的数据读到RAM中,在RAM中 修改数据内容,再擦除整个块,最后写入修改后的数据。显然,这样频繁复杂的读-擦除- 写操作,对于Flash的使用寿命以及系统性能是很不利的,而且微处理器中通常RAM大小有限。 因此在硬件条件苛刻的嵌入式系统中就迫切需要一种合理的存储管理方式以便有效地均衡 Flash各个存储块的擦写次数,提高Flash的使用寿命,从而提高数据存储的安全性。
3 存储管理系统的设计
3.1建立坏块管理表
Nand Flash由于生产工艺的问题,不可避免的会存在一些坏块,这些坏块在芯片出厂前 都已被标识好。根据Nand Flash数据手册中的介绍,在每一块的第一页与第二页的Spare area 的第六个字节(也就是该页的第517字节)即是出厂时的坏块标识位,如果某块的该两页的 第517字节内容不同时为0xFF,则代表该块为厂家标识坏块。这种坏块的检测必须在对芯 片进行擦除前进行,因为厂家坏块有可能也能够被进行擦除操作,如使用这种块将对数据安 全留下一定的隐患。
Nand Flash在出厂前会保证每块芯片的第一块与第二块是完好的,所以在本文的设计中,采用的方式是将坏块管理表存放在第一块的第一页的前128个字节中,每个字节的一位代表芯片的一块,如该位为1刚表明该块是好的,为0则表示对应块为坏块。坏块管理表的建立是必需的,而且最好是在芯片进行其它擦写操作前进行。
|