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开发板的启动过程推测来的,是否正确还有待考究)