【STM32F4】六、SRAM和DRAM的区别

目录


看到STM32F4里用到了一块外接SRAM芯片——XM8A51216,所以查了一下SRAM和DRAM的区别,记录于此。

一、ROM、RAM、SRAM、DRAM

1. ROM、RAM之间的关系?

我们先来看一下百度官方给出的定义:

ROM和RAM指的都是半导体存储器,

ROM(Read-Only Memory)即只读内存,是一种只能读出事先所存数据的固态半导体存储器,在系统停止供电的时候仍然可以保持数据;

而RAM(random access memory)叫做随机存储内存,这种存储器在断电时将丢失其存储内容,故主要用于存储短时间使用的程序。

如果上述定义比较晦涩,那我们来看下面的定义:(来源:CSDN博主【7TribeZ】的博文:RAM和ROM的区别

RAM

RAM又被称作“随机存储器”,是与CPU直接交换数据的内部存储器,也叫主存(内存)。它可以随时读写,而且速度很快,通常作为操作系统或其他正在运行中的程序的临时数据存储媒介。当电源关闭时RAM不能保留数据(掉电数据消失哦)如果需要保存数据,就必须把它们写入一个长期的存储设备中(例如硬盘)。

ROM

ROM又被称为“只读存储器”,ROM所存数据,一般是装入整机前事先写好的,整机工作过程中只能读出,而不像随机存储器那样能快速地、方便地加以改写。ROM所存数据稳定,断电后所存数据也不会改变。

RAM和ROM相比,两者的最大区别是RAM在断电以后保存在上面的数据会自动消失,而ROM不会自动消失,可以长时间断电保存。

:大家可以简单得把RAM理解为电脑的内存,把ROM理解为电脑的硬盘,但是ROM和硬盘又有一点不同,即ROM中的内容是在装入整机前事先写好的,在整机工作过程中不可更改,是只读模式;而电脑的硬盘在整机工作过程中可以更改,只是速度没有内存那么快。

2. SRAM 和 DRAM 之间的关系?

首先,SRAM和DRAM都属于RAM,它们都是RAM的分支

SRAM和DRAM之间的区别只在于一个是静态一个是动态。由于SRAM不需要刷新电路就能够保存数据,所以具有静止存取数据的作用。而DRAM则需要不停地刷新电路,否则内部的数据将会消失。

二、SRAM 和 DRAM 的区别?

参考

首先放出SRAM和DRAM的硬件示意图如下:

【STM32F4】六、SRAM和DRAM的区别
【STM32F4】六、SRAM和DRAM的区别

如左图,SRAM存储一位需要花6个晶体管;而右图中的DRAM只需要花一个电容和一个晶体管。

SRAM通常用于缓存cache,因为cache追求的是速度;

而内存则追求容量所以选择能够在相同空间中存放更多内容并且造价相对低廉的DRAM。

SRAM靠什么存储信息?

半导体存储器SRAM是靠双稳态存储信息,而半导体存储器DRAM则是靠电容存储,半导体静态存储器SRAM的存储原理是依靠双稳态电路存储器中最小的存储单位就是一个双稳态半导体电路或一个CMOS晶体管或磁性材料的存储元,它可存储一个二进制代码.由若干个存储元组成一个存储单元,然后再由许多存储单元组成一个存储器,就用来存放程序和数据了。

我们姑且不去讨论关于SRAM是如何静态存储数据(触发器)的。为什么DRAM需要不断刷新呢?

DRAM的数据实际上是存在电容里的。而电容放久了,内部的电荷就会越来越少,对外就形成不了电位的变化。而且当对DRAM进行读操作的时候需要将电容与外界形成回路,通过检查是否有电荷流进或流出来判断该bit是1还是0。所以无论怎样,在读操作中我们都破坏了原来的数据。所以在读操作结束后需要将数据写回DRAM中。在整个读或者写操作的周期中,计算机都会进行DRAM的刷新,通常是刷新的周期是4ms-64ms。

关于SRAM和DRAM的寻址方式也有所不同。虽然通常我们都认为内存像一个长长的数组呈一维排列,但实际上内存是以一个二维数组的形式排列的,每个单元都有其行地址和列地址,当然cache也一样。而这两者的不同在于对于容量较小的SRAM,我们可以将行地址和列地址一次性传入到SRAM中,而如果我们对DRAM也这样做的话,则需要很多很多根地址线(容量越大,地址越长,地址位数越多)。所以我们选择分别传送行地址和列地址到DRAM中。先选中一整行,然后将整行数据存到一个锁存器中,等待列地址的传送然后选中所需要的数据。这也是为什么SRAM比DRAM快的原因之一。

三、STM32F4中的SRAM——XM8A51216

1. XM8A51216 中引脚的分类

XM8A51216的引脚、或者叫线路主要分为三部分

  • 地址线
  • 数据线
  • 使能线

XM8A51216的封装如下图所示:

【STM32F4】六、SRAM和DRAM的区别
图中A0 ~ 18为地址线,总共19根地址线(即2^19=512K,1K=1024);DQ0 ~ 15为数据线,总共16根数据线。CEn是芯片使能信号,低电平有效;OEn是输出使能信号,低电平有效;WEn是写使能信号,低电平有效;BLEn和BHEn分别是高字节控制和低字节控制信号;

2. 什么是地址线、数据线?

参考东方资讯的文章:什么是地址线和数据线,以及他们和计算机内存之间的关系?

1、地址线是用来传输地址信息用的。举个简单的例子:cpu在内存或硬盘里面寻找一个数据时,先通过地址线找到地址,然后再通过数据线将数据取出来。 如果有32根.就可以访问2的32次方的字节,也就是4GB。

2、数据线(data cable),其作用是来连接移动设备和电脑的,来达到数据传递或通信目的。通俗点说,就是连接电脑与移动设备用来传送视频、铃声、图片等文件的通路工具。现在,随着电子行业日新月异的发展,数据线已经成为了我们生活中不可或缺的部分。

上一篇:STM32F4跳转函数


下一篇:STM32f4日记2之pwm波输入捕获实验(可以接信号发生器,也可跟上一篇结合起来自己捕获自己)