在学习嵌入式系统发现有很多存储空间是不了解的,在这里做出总结:
对于RAM, ROM以及FLASH的区别,简单地说,在计算机中,RAM 、ROM都是数据存储器。RAM 是随机存取存储器,它的特点是易挥发性,即掉电失忆(意思就是断电后,写进去的数据会丢失)。ROM 通常指固化存储器(一次写入,反复读取),它的特点与RAM 相反,数据写入后断电也不会丢失。
Flash 存储器(FLASH EEPROM)又称闪存,快闪。它是EEPROM的一种。它结合了ROM和RAM的长处。不仅具备电子可擦除可编辑(EEPROM)的性能,还不会断电丢失数据同时可以快速读取数据。它于EEPROM的最大区别是,
FLASH按扇区(block)操作,而EEPROM按照字节操作。FLASH的电路结构较简单,同样容量占芯片面积较小,成本自然比EEPROM低,因此适合用于做程序存储器
。
具体分析请参考:https://blog.csdn.net/weixin_42653531/article/details/90745042
如上图所示:从上至下传输速度依次变慢,价格依次降低
寄存器
:一个典型的CPU由寄存器、运算器核控制器组成,其中运算器做运算,控制器做控制,寄存器做存储,内部靠内部总线相连。
其中寄存器又包括:通用寄存器、控制寄存器、指令寄存器、段寄存器、程序计数器、地址寄存器、数据寄存器、累加寄存器、程序状态字寄存器等
缓存
:主要是为了应对CPU和内存传输速度不匹配的问题,缓存的工作原理是当CPU要读取一个数据时,首先从CPU缓存中查找,找到就立即读取并送给CPU处理;没有找到,就从速率相对较慢的内存中读取并送给CPU处理,同时把这个数据所在的数据块调入缓存中
SRAM
:读写速度快,生产成本高,集成度低,多用于容量较小的高速缓冲存储器(cache就属于SRAM)。
DRAM
:读写速度较慢,集成度高,生产成本低,多用于容量较大的主存储器。
SDRAM
:属于DRAM的一种,加入了同步时钟,时钟的频率就是数据传输的频率。同步动态随机存储器。同步是指其时钟频率和CPU前端总线的系统时钟相同,并且内部命令的发送与数据的传输都以它为基准;动态是指存储阵列需要不断的刷新来保证数据不丢失;随机是指数据不是线性依次存储,而是自由指定地址进行数据的读写。
DDRAM
:属于SDRAM的一种,在时钟的上下沿都允许输入输出,所以是DOUBLE RATE
对于ROM,其实就是只读存储器,就是只能读,不能写的意思。具体介绍参考上面的链接,NVM的出现是由于flash规划中需要一片读写粒度更小的区域,于是设计出来的,并不是单独的一块存储区域
外部存储器比较有代表性的就是SD卡,磁盘等
Flash
分为NOR Flash和NAND Flash两种
Nor Flash的成本相对高,容量相对小,比如常见的只有128KB,256KB,1MB,2MB等等,优点是读写数据时候,不容易出错。所以在应用领域方面,Nor Flash比较适合应用于存储少量的代码。
Nand flash成本相对低,说白了就是便宜,缺点是使用中数据读写容易出错,所以一般都需要有对应的软件或者硬件的数据校验算法,统称为ECC。但优点是,相对来说容量比较大,现在常见的Nand Flash都是1GB,2GB,更大的8GB的都有了,相对来说,价格便宜,因此适合用来存储大量的数据。其在嵌入式系统中的作用,相当于PC上的硬盘,用于存储大量数据。