内存:用来运行程序的,RAM(DRAM,SRAM,DDR)
SRAM 静态内存 容量小,价格高,不需要软件初始化,直接上电就可以用,单片机比较适合(内容需求量小,开发希望简单,适合全部用SRAM)
嵌入式系统:内存需求量大,而且没有NorFlash等可启动介质
DRAM 动态内存 容量大,价格低,上电后需要软件初始化,不能上电直接使用 ,内存需求量大,而且软件复杂,不在乎DRAM初始化开销,适合全部用DRAM
外存:用来存储的,ROM(硬盘 flash(Nand iNand 。。。U盘,SSD))
CPU可以通过数据总线&地址总线来总线式访问内存,而外存通过CPU外存接口链接的。
SOC常用外存:
NorFlash 可以总线式访问,接到开发板的SROM bank,一般用来启动(BIOS)
NandFlash 分为SLC和MLC SLC容量小,价格贵,但是可靠。MLC容量大,价格便宜,容易有坏块,需要校验算法。需要CPU初始化软件,然后通过时序接口读写。
eMMC/iNand/moviNand (内部集成)eMMC(embeded MMC)内部有电路,可以对坏块进行管理,减轻了CPU任务。eMMC是一种标准,iNand是sanDisk公司出产的eMMC,moviNand是三星公司出产的eMMC。两者并无多大区别。现在较为流行
oneNand 是三星公司出的一种Nand,是三星自己的标准,用的不多。
SDK卡/TF卡/MMC卡 以前的外部可插入式的,内部有电路,可对坏快进行管理。
eSSD 固态硬盘,里面的MLC的NandFlash,跟eMMC很相似,只是对坏块的检测原理不一样。
SATA硬盘 (机械式访问、磁存储原理、SATA是接口)
一般PC都是:很小容量的BIOS(NorFlash)+很大容量的硬盘(类似NandFlash)+大容量的DRAM
一般的单片机:很小容量的NorFlash+很小容量的SRAM
一般的嵌入式:因为NorFlash很贵,直接用Nand+DRAM+SOC内置SRAM