SRAM的存储原理

RAM的存储原理

ram的主要作用是存储数据和代码供cpu调用。但这些数据并不像是装大米一样很简单的就装进去,我们在装进去的同时还要保证可以在需要的时候拿出来。可以类比图书馆的书籍管理,假如每本书编号都由两部分组成,一个行编号+一个列编号,已知一本书的编号是34,则我们锁定在第3行和第4列,这样就找到了这本书了。在RAM存储器中也利用了相似的原理。

现在让我们回到ram存储器上,对于ram来说,其数据总线是用来输入数据和输出数据的,如果像我们刚才所说,ram存储数据也是利用了一定的存储规律来的话,那么地址总线担任的作用就是来定位存储位置。对于cpu来说,ram就像是一条由很多空格的长线,每个空格都对应唯一一个地址,如果cpu想要调用其中一个地址中的数据,则需要给地址总线发送该数据所在位置所对应的地址数据,然后经过若干个周期,数据总线就会把数据传给cpu。
SRAM的存储原理
如上图所示,每一个小圆点代表一个空间,每一个都有唯一一个地址与其相连。 当地址解码器收到地址总线的数据时,找到cpu想要调用的那个数据的所在地址,然后数据总线会把其中的数据传输到cpu。
bit是位的单位,通常将8个bit等于一个字节Byte。 但在实际中,cpu每次会调用64bit的数据,那么数据总线就有64位,cpu一次会存取个8个字节的数据,如果每次还是存取1个字节的话,就没什么优势了。
这也是为什么我们要将存储单元排列成矩阵的样子了。 比如当我们存储1024bit(2102^{10})数据时,如果用线性的话,就需要1024根数据线,但是210=25×25=32×322^{10}=2^5\times 2^5=32\times 32
只需要32×3232\times 32矩阵就好了,更节省空间。
SRAM的存储原理
更形象一点,ram一条线性直线就好比书店只有一条非常非常长的书架,其坐标为(1,1),(1,2)…(1,n),ram矩阵就好比是书店很多书架并排放置,其坐标(1,1),(1,2)…(2,1),(2,2)…

存储字节的过程: 当内存条上只有一片ram时,他通过地址总线发出一个只有22位二进制的地址编码,其中11位是行编码,11位是列编码,行地址解析器会确定行地址,列地址解析器会确定列地址,这样就能确定唯一存储数据的地址了。

SRAM存储原理

sram(static ram),是一个静态的存储器,即存进去的数据是不变的,除非没电了或是重新存入了新的数据。相比dram(dynamic),后者需要定时刷新才能保证数据不变。
sram 存取速度很快,类比编程语言中的python语言和c语言,前者是动态的语言后者是静态的,python的运行时间呢要比c慢。
存取一个bit,sram需要4-6个晶体管,这样的成本太高(dram存取一个bit只要1给晶体管就能实现)

SRAM芯片
SRAM的存储原理
A0-A14是地址输入信号的引脚,CS是一个芯片的选择引脚,因为在一个实际的系统中会有很多的sram芯片,WE是写入启用引脚,OE是读取启用的引脚,CS,WE,OE都是低电平有效。

SRAM的读取和存储流程

读取1bit数据的步骤:

  1. 通过地址总线把要读取的bit地址传送到读取地址引脚
  2. **CS选择该SRAM芯片
  3. **OE引脚让SRAM知道这是读取操作
  4. 将该地址对应的数据通过数据总线传输出去

存储1bit数据的步骤:

  1. 通过地址总线确定要写入信息的位置
  2. 通过数据总线将要写入的数据传输
  3. **CS选择芯片
  4. **WE让SRAM知道是写入操作
    最后需要写入的数据就放在了需要写入的地方。

参考:https://blog.****.net/qq_30866297/article/details/51198224