Flash memory vs Block device
Flash常用的有NOR Flash和NAND Flash 两种,三星推出的ONE NAND 更先进一些,不过没有机会用到。
1、块设备有两总操作,read和write;而FLASH则有三种操作read、write和erase(擦写)。
2、当Flash处于干净的状态的时候,每一位均为逻辑1。写操作是将指定位设置为0,但是不能将指定位设置为1。将FLASH状态位为0设置为1即擦写。擦写不能以Byte为单位,而是以擦写块(erase block)为单位,常见的如64K Bytes等。
3、块设备的读写均以块(eg:512Byte)为单位,FLASH则有所不同。由于FLASH寻址能够具体到字节,因此读操作可以精确到字节。NOR的写操作可以以Byte为单位,NAND Flash则以页(page)为最小写单位。
4、Flash的寿命由擦写块的最大擦写次数决定。一般NOR Flash的最大擦写次数在10万次左右,NANDFlash的擦写次数在百万次左右。
5、NAND Flash的坏块是一种常态的存在。
FlashTranslation Layer
有一种简洁的方法将块设备的文件系统(ext3,FAT)直接用到Flash memory上。即采用一个FTL(FlashTranslation Layer)将Flash模拟成512K Bytes扇区大小的块设备。将块操