一 简介
说道NAND flash,首先提一下发明时间比较早的Nor-flash,Nor-flash相对于Nand-flash的特点是提供地址和数据引脚,可以像内存一样进行数据访问。
两种flash的主要差别:
norVSnand.jpg
从上图的比较可以看出,nand可以做更大的容量,同时擦写速度高于nor,随着nand的可靠性增加,越来越大的容量,后面的flash存储都是以nand为主。Nor-flash由于可以像内存一样读,可以将相关地址映射到CPU的地址空间进行XIP,由于物理特性Nor-flash存储程序比nand-flash更可靠,所以早期的嵌入式设备大部分使用Nor-flash作为程序存储和执行开启点。
二 EMMC和UFS
从外部引脚看,主要差异emmc使用并行接口,ufs使用高效的串行接口,并且可以同时支持读和写。
2 eMMC-UFS.jpg
从两者的读写速度看,ufs更快。
3 emmc_ufs.jpg
三 文件系统
由于nand flash的特点,块擦写,page读,有循环回收算法,因此早期的nand flash驱动上面有MTD层,向上提供的是raw flash不带flash管理的,因此在上面挂在的文件系统需要进行坏块管理以及循环使用算法等,比较常见的有yaffs2 jffs2 ubifs等。
FTL原名“Flash Translation Layer”,工作在nand-flash和文件系统中间,模拟nand-flash为普通的块设备,文件系统挂在同硬盘一样,无需担心底层是什么硬件介质。因此,对于FTL一般集成了坏块管理,动态均衡算法,线性地址映射等算法。FTL一般作为software运行在cpu侧,随着mmc emmc ufs SD等标准的出现,硬件存储设备集成FTL算法,因此操作系统可以直接挂在ext4 ext3 FAT32等PC的文件系统。
像ext3 ext4 fat32等是给硬盘设计的文件系统,对flash的特性没有考虑。f2fs就是基于给nand-flash特性设计的,减少ftl的负担,对于nand-falsh来说优先选择。
网友评论