存储器芯片发展历史上,
有sram, ddr等内存产品
有nor flash, nand flash等非易失性存储介质。
nor flash相对容量较小, 但可随机存取, 故可片上运行。之前2009年左右做过一些mtk6223 功能手机采用的就nor flash作为主存。
容量可能也就64MB, 128MB左右。
nand flash容量较大, 但不能随机存取, 故只能作为存储, 无法片上运行。
速度方面
属性 | NOR | NAND |
读取速度 | 很快 | 快 |
写入速度 | 慢 | 快 |
擦除速度 | 很慢 | 快 |
可擦除次数 | 10,000 - 100,000 | 100,000 - 1000,000 |
nor, nand flash有个共同特点, 即写只能将1变成0, 不能将0变成1。
故写之前, 基本都要做擦除操作, 该擦除过程是个充电过程, 以扇区, Bank或整块flash为单位进行擦除。将擦除区域都变成0xFF。
mmc, sd, emmc
mmc 卡 全称Mutlimedia Card即多媒体卡 是1997年由SanDisk和Siemens发明的, 基于Nand Flash。
sd 卡全称SecureDigital Card, 1999年发明, 相比mmc卡多些其他功能, 如安全方面。
emmc 即embedded mmc, 是一种统一的封装, 即将Nand Flash统一加上emmc接口芯片, 封装为emmc存储介质。
这样数据的读写等操作就统一了。 不像以前每一个品牌的Nand Flash都需要特定的驱动。
mmc 三个层次,
MMC interface, 即mmc标准的接口, 和主机进行通信。
FTL (Flash Translation Layer)
Storage Area (Nand颗粒, 有SLC, MLC, TLC等类型等)
其中, FLT is a small controller running a firmware.its main purpose is to transform logical sector addressing into Nand addressing. 即扇区地址转换为Nand地址。
另外, 它还完成以下三个工作:
* Wear-leveling (磨损均衡技术 - 即保证擦除的块比较平均, 延长Nand寿命)
* Bad block management (坏块管理, Nand Flash天生就会有一定坏块概率, 故需要管理)
* Garbage Collection
非易失存储介质一般分为两种类型:
1. Block Devices, 块设备, 如磁盘, 是以扇区方式寻址。只有读、写操作。
2. Memory Technology Devices: 内存技术设备, 如nor, nand flash设备。 以sector / subpage / page等方式寻址。相比磁盘, 除了读写, 多一个擦除操作。其他就每页后面都有对应的ecc校验码。 保证1~3位以内的位翻转问题可以自己解决。此外肯定有相应地方存储着坏块表。
文件系统,
emmc存储介质通常使用的文件系统有:
fat, ext4,
其他日志系统如, jffs2, yaffs2, ubifs等。
关于文件系统, 后续再研究。