CPU连接内存和外存的连接方式不同,内存RAM(DRAM、SRAM、SDRAM)需要直接地址访问,所以是通过地址总线和数据总线的总线式访问方式连接的(好处是直接访问、随机访问;坏处是占用CPU的地址空间,大小受限);外存ROM(硬盘、flash(Nand、inand······U盘、SSD)、光盘)是通过CPU的外存接口来连接的(好处是不占用CPU的地址空间,坏处是访问速度没有总线式快、访问时序复杂)。
flash分为nandflash和norflash
NorFlash | 总线式访问,接到SROM bank,优点是可以直接总线访问,也就是说可以原地运行,不用到内存中去运行,一般用来启动。(贵) |
| 但是现在Nandflash也可以用来启动。(性价比高) |
NandFlash | 分为SLC和MLC |
eMMC/iNand/moviNand | eMMC(embeded MMC) iNand是SanDisk公司出产的eMMC,moviNand是三星公司出产的eMMC |
oneNAND | oneNand是三星公司出的一种Nand |
SD卡/TF卡/MMC卡 | |
eSSD | |
总结:
•1、现代SoC支持多种外部存储器
•2、外部存储器主要用来存储程序(可执行代码),相当于电脑的硬盘。
•3、各种不同外部存储器原理不同,大小、性价比不同,一般产品厂家根据需要选择适合自己产品的外存使用。
•4、外部存储器和CPU连接一般不是通过地址&数据总线直接相连,因为地址空间不够用。一般都是通过专门的接口来连
内存 | | |
SRAM | 静态内存 | 特点是容量小、价格高,优点是不需要软件初始化直接上电就能用。 |
DRAM | 动态内存 | 特点是容量大、价格低,缺点是上电后不能直接使用,需要软件初始化后才可以使用。 |
外存 | | |
NorFlash | | 特点是容量小、价格高,优点是可以和CPU直接总线式相连,CPU上电后可以直接读取,所以一般用作启动介质。 |
NandFlash | 和硬盘一样 | 特点是容量大、价格低,缺点是不能总线式访问,也就是说CPU上电后不可以直接读取,需要CPU运行一些初始化软件,然后通过时序接口读写。 |
单片机中:内存需求量少,且希望开发尽量简单,适合全部使用SRAM;
嵌入式中:内存需求量大,适合使用DRAM,在没有NorFlash等启动介质的情况下,还需要使用少量的SRAM;
PC机中:内存需求量大,而且软件复杂,不在乎DRAM初始化的开销,适合全部用DRAM。
PC机一般都是:很小容量的BIOS(NorFlash)+很大容量的硬盘(类似于NandFlash)+很大容量的DRAM;
一般的单片机:很小容量的NorFlash+很小容量的SRAM
嵌入式系统:因为NorFlash很贵,所以现在很多嵌入式系统不倾向于使用NorFlash,而是采用内置小容量SRAM+外接大容量的NandFlash+外接大容量的DRAM(我个人觉得还是内置了很小容量的NorFlash来初始化外接的NandFlash,并从NandFlash来获得初始化DRAM的代码,因为NandFlash的种类并不多,而DRAM的种类很多,当然了,这只是我从s5pv210开发板的启动过程推测来的,是否正确还有待考究)