内存
SRAM:静态内存 特点:容量小、价格高,优点是不需要软件初始化直接上电就能用
DRAM:动态内存 特点:容量大、价格低,缺点就是上电后不能直接使用,需要软件初始化后才可以使用。
外存
NorFlash:特点是容量小,价格高,优点是可以和CPU直接总线式相连,CPU上电后可以直接读取(这个特点和SRAM一样),所以一般用作启动介质。
NandFlash(跟硬盘一样):特点是容量大,价格低,缺点是不能总线式访问,也就是说不能上电CPU直接读取,需要CPU先运行一些初始化软件,然后通过时序接口读写。
内存和外存在不同的系统中的运用
单片机中:很小容量的NorFlash + 很小容量的SRAM
内存需求量小,而且希望开发尽量简单,适合全部用SRAM,单片机一上电便从NorFlash上开始执行代码,不需要初始化内存,不需要初始化Nand, 所以在单片机的开发过程中,我们并没有写BootLoader,并没有关心单片机如何启动。
嵌入式系统:
因为NorFlash很贵,所以现在很多嵌入式系统倾向于不用NorFlash,直接用:
外接的大容量Nand + 外接大容量DRAM + SoC内置SRAM + SoC内置IROM(类似于NorFlash)
在嵌入式的运用中,内存需求量大,所以需要用到DRAM,不可能全部用SRAM,也需要很大的容量的存储(大容量的NandFlash),DRAM需要初始化,而NandFlash需要通过时序接口去访问,所以便涉及到启动的问题。
一般的思路是:通过IROM里的代码(上电便可执行的)和内置的SRAM想办法初始化Nand和DRAM,再将Nand中的代码读取到DRAM中去执行,即完成了启动。
PC机:
很小容量的BIOS(NorFlash)+ 很大容量的硬盘(类似于NandFlash)+ 大容量的DRAM
内存需求量大,而且软件复杂,不在乎DRAM的初始化开销,适合全部用DRAM。
参考内容:朱有鹏老师视频教程课件&网友文章
http://blog.csdn.net/langeldep/article/details/8788119