目前在嵌入式应用中使用较多的flash主要有两种非易失闪存技术:nor和NAND。这里做一些简单比较。
nor是intel在98年提出的,而NAND是东芝提出的。
nor可以再芯片内执行:XIP(eXecute In Place),也即是在flash内部执行,可以不读到ram中。这个x86中类似于bios rom。nor的传输效率比较高,在低容量的情况下成本效益比较高。但是nor的写入和擦除速度很慢,这是个限制。
NAND可以达到很高的存储密度,写入和擦除速度比较快。大容量的选择nand比较好。
在选择flash的时候,还是要多考虑速度、成本、性能和需求的平衡。
1、 nor的读速度比NAND稍快一些。
2、NAND的写入速度比nor快很多。
3、NAND的4ms擦除速度远比nor的5s快。
4、NAND的擦除单元更小,相应的擦除电路更少。
软件支持方面:
当讨论软件支持的时候,应该区别基本的读/写/擦操作和高一级的用于磁盘仿真和闪存管理算法的软件,包括性能优化。
在nor器件上运行代码驱动支持,直接memory map过去就行,在NAND器件上进行同样操作时,通常需要驱动程序,也就是内存技术驱动程序(MTD),NAND和nor器件在进行写入和擦除操作时都需要MTD。
使用nor器件时所需要的MTD要相对少一些,许多厂商都提供用于nor器件的更高级软件,这其中包括M-System的TrueFFS驱动,该驱动被WindRiver System、Microsoft、QNX Software System、Symbian和Intel等厂商所采用