目录

概述

一、ROM

1. 介绍

2. 硬件结构

二、RAM

1. 介绍

2. 硬件结构

三、DRAM

四、SRAM

五、DRAM与SRAM的区别

SRAM

DRAM

六、SDRAM

七、FLASH


概述

ROM、RAM是可读与可读可写存储器的一种框架,DRAM、SRAM、SDRAM是基于RAM框架的一种实现

一、ROM

1. 介绍

ROM全拼是Read Only Memory(只读存储器),它是只读的,一旦出厂不能在写,在出厂之前会预设好它的数据,并且它是掉电不丢失的,又称为固定存储器,它使用一些特定材料存储数据,这里以磁盘为列简单说一下原理:磁盘里面使用一些磁材料存储数据,当对内部导体进行导通时会导致内部磁场发生变化,会让内部的磁极根据电流的方向而产生改变,发生的改变不会因为没有电流而消失,这个改变是永久的,当下次来读时只需要将上次的变化转化成对应的电流变化,这个过程较为复杂,涉及到一些磁信号到电信号的转换,速度相对于较慢,同时如果受到一些磁场较大的一些设备影响会导致里面的磁信号混乱,也就是数据混乱。

2. 硬件结构

以下是ROM的结构图

RAM架构和苹果自研架构的区别 ram框架_RAM架构和苹果自研架构的区别

 其实从图中可以看到并没有可写方面的结构,并且它是以字(1字=2字节)为单位读写,可以看到里面有一个CS线,这个线是接到外部CPU上的,CPU通过CS线来告诉内存单元开始工作了,然后通过地址总线将地址发送过去,然后通过控制总线发送控制命令,在通过数据总线接收数据,ROM内部有一个小型的控制芯片用于处理CPU传递过来的控制指令,它在出厂时设置的代码就不支持写操作,同时也可以看到上面输出线路时没有设计输入线路

RAM架构和苹果自研架构的区别 ram框架_存储器_02

 下图结构为译码过程,同时可以看到没有输入缓冲器也没有输入接口,所以它只支持输出

RAM架构和苹果自研架构的区别 ram框架_ram_03

 上面的NxM的意思是有N行,每行有M个单元,需要注意的是可以看到译码过程中前面的A0A1A2是地址的意思,内存里是以二维数组为布局,A0A1为列,A2为行号,后面的W0W1..是译码后的地址,它就相当于指向了一个二维地址的实际地址,如有一个二维数组:

short a[10][10];

实际上它在内存中是连续的

RAM架构和苹果自研架构的区别 ram框架_stm32_04

只是将连续的地址抽象化的进行了分列,这样方便管理,当我们访问a[1][0]时实际上就是对地址进行了偏移递增的处理,这样只是让我们更加方便的管理,ap[1][2]和a[12]没有区别,所以在给ROM地址时ROM要求高多少位是列,低多少位是行,最后它会进行译码成一个实际的地址,ROM会对内部的单元生成一个二位的数组存储这些地址,当解析出行与列之后直接以这个为下标索引就可以取出内存单元的实际地址,然后对这个分配在这个地址上的引脚进行操作。

它的每个单元以字为单位,也就是两个字节代表位宽是16位的,那么要求数据总线与地址总线最低16位,当然这个看ROM的设计,有的ROM可能以字节为单位。

二、RAM

1. 介绍

RAM全拼是Random Access Memory(随机存取存储器),它可读可写,它是掉电丢失的,它里面的数据是非初始化的,使用之前需要对它进行一次初始化,因为上电后无法确定RAM里的数据是什么,为了防止使用时出现随机数的情况需要对其进行初始化为0,它是使用电容作为存储单位,电容存储的电荷会随时间的流逝还消失,存储器需要每隔一段时间给存储器内部的电容器进行一行充电或者一直保持充电状态,会根据电容的电平值以及当前使用的电平标准来提升电容的电荷,它的访问速度较快,因为它只需要读取电容里的电荷值然后转化成对应的数字电路就可以了,其实当断电的一瞬间其实里面还是有数据的,只不过随着时间的流逝没有芯片给这些电容器充电了会导致里面的电荷随之流逝。

2. 硬件结构

RAM架构和苹果自研架构的区别 ram框架_RAM架构和苹果自研架构的区别_05

可以看到结构与ROM类似,只不过多了一个输入的接口电路,其次它是掉电丢失的,它的存储单元在介绍里说过是以电容存储的,需要充电。

三、DRAM

DRAM全拼Dynamic Random Access Memory(动态随机存储器),它是基于RAM框架,有了上面的RAM框架的介绍,DRAM就比较容易理解了,DRAM使用MOS(金属氧化物半导体)电容存储电荷来储存信息,因此必须通过不停的给电容充电来维持信息,DRAM只是RAM的一种实现手段,所谓的动态就是指周期性的动态给里面的电容充一次电,它需要在更新前获取每个电容的电平信号是1还是0然后根据电路进行对每个电容的刷新,上面说过RAM是电容来存储数据的,DRAM保存电容的方式就是动态更新,当控制信号来时若此时正在更新电荷则等待电荷更新完成去处理控制信号

四、SRAM

SRAM全拼Static Random Access Memory(静态随机存储器),SRAM与DRAM类似,它不会动态式的充电,它使用晶体管的特性来存储数据,晶体管是可以根据电流来控制自身开合,利用这一特性可以通过外接线来获取晶体管状态来返回对应数字信号,这样就不需要实时更新只需要一直向它发送特定的电流就可以了

五、DRAM与SRAM的区别

SRAM

SRAM成本要高,尺寸要求较大,因为SRAM需要更多的引脚来存储数据,一个引脚用来接VDD电流控制晶体管开合,一个引脚来取状态并转化对应的数字信号等,但是它不需要动态时的刷新对时钟以及实时性没有太大的要求,所以功耗较低,其次它速度要快于DRAM因为它不需要动态刷新,在动态刷新期间DRAM是不能存取数据的,所以平时见到的CPU一级与二级缓存,用的就是它,它可以随时存取,价格较贵

DRAM

DRAM对尺寸要求较小,对引脚要求较小,几乎一根线就可以了,一根线用于取以及更新电荷,它需要动态刷新,也就是需要时钟来定时中断,对实时性有要求,功耗较高,价格较为便宜

六、SDRAM

SDRAM全拼Synchronous Dynamic Random Access Memory(同步动态随机存储器),注意它不是SRAM与DRAM的结合,它是同步的,基于DRAM结构的,DRAM的输入输出不是同步的,是异步的,DRAM提供了一个异步接口,用于DRAM响应工作,读写等,SDRAM则提供了一个同步接口,用这个接口来完成同步操作

七、FLASH

FLASH全拼是Flash Memory(闪存)、是一种非易失闪存技术,可以随机读写,同时也能掉电不丢失,至于具体如何保存数据需要看不同厂商对FLASH的设计,若使用了磁铁来存储数据就需要注意一些不要将存储器带到可能对磁信号产生影响的一些地方