nand和nor的区别
0.nor是随机存储介质,支持随机写(字节单位),可以片内运行程序,而nand连续存储介质,支持按块读写,需要把程序搬到其他存储介质运行(比如ram)
1.NAND Flash一般地址线和数据线共用;而NOR Flash闪存数据线和地址线分开。nor有专门的sram接口,属于地址总线。nand flash用复杂的I/O口来传送控制、地址和数据信息,一般CPU最好集成NAND控制器。
2.容量和价格:NorFlash的容量要小,一般在1~16MByte。nandflash 用过128M 256M
3.可靠性:NOR型闪存的接口简单,数据操作少,位交换操作少,因此可靠性高,极少出现坏区块,NAND需要驱动必须对坏块进行管理。nand的bitflip比nand概率高很多,需要ECC。Nand的ECC和坏块标记都需要主控CPU来做,
4.在NAND闪存中每个块的最大擦写次数是一百万次,而NOR的擦写次数是十万次。
5.读写速度:nor读取速度快一些,nand写和擦除速度快一些。
写操作:任何flash器件的写入操作都只能在空或已擦除的单元内进行。NAND器件执行擦除操作是十分简单的,而NOR则要求在进行擦除前先要将目标块内所有的位都写为1。擦除NOR器件时是以64~128KB的块进行的,执行一个擦除/写入操作的时间约为5s。擦除NAND器件是以8~32KB的块进行的,执行一个擦除/写入操作最多只需要4ms。
读操作:NOR的读速度比NAND快。
emmc和nand eMMC=NAND闪存+闪存控制芯片+标准接口封装
接口电路:EMMC的引脚比Nand也更少,体积也更小, BGA封装方式封装成统一的EMMC标准的接口,EMMC芯片在内部内置了一个控制器(你可以理解为内部有个CPU且跑了一段固件代码),解决了Nand的时序、坏块和ECC问题,对外的接口和协议和sd卡一样,走的mmc协议。Emmc是MLC Nand,而nand大多数是ELC nand。
价格:EMMC便宜的一大原因就是因为标准化
坏块:emmc有坏块管理,ECC
读写性能:eMMC通过使用Cache、Memory Array 等技术,优于nand(50-100M)
字符设备: 以字节为基本单位,在Linux中,字符设备实现的比较简单,不需要缓冲区即可直接读写,内核例程和用户态API一一对应,用户层的Read函数直接对应了内核中的Read例程,这种映射关系由字符设备的file_operations维护
块设备: 以块为单位接受输入和返回输出,对这种设备的读写是按块进行的,其接口相对于字符设备复杂,没有直接到块设备层,而是直接到文件系统层,然后再由文件系统层发起读写请求