3.3Sram和Dram

简介: 3.3Sram和Dram

一、引子

在上一个小节,我们了解了存储芯片的基本原理,学习了如何存储二进制的0和1,如何根据一个地址来访问存储字。

这一小节,会介绍两种特定的存储芯片SRAMDRAM

之前,我们知道了RAM--随机访问存储器:当我们指定某个存储单元的地址,这个存储单元的读取速度并不会因为存储单元的物理位置而改变。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nwxe4X8N-1674720862640)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230126095114830.png)]

接下来,将逐步介绍下面的内容:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JQwZkE6S-1674720862642)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230126095150279.png)]

二、存储元件

1.DRAM芯片

上一小节介绍的芯片,其实就是DRAM芯片。见下图:

(详情请戳:3.2主存储器的基本组成

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rlD9BzxJ-1674720862642)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230126095603492.png)]

DRAM芯片可以用于制作主存,上图右侧的内存条上就是DRAM芯片。

==DRAM芯片和SRAM芯片的核心区别就是:存储元件不一样。==

<1> DRAM芯片是用栅极电容(电容的充放电)来存储和读取信息。

<2> SRAM芯片是用双稳态触发器来存储信息的。

:point_right: 接下来,看一下这两种存储元件的区别。

(1)栅极电容

看一下下面这个存储元:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VwYIPlPw-1674720862643)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230126100224261.png)]

上一节说过,如果给这个字选择线(存储元件的左侧)加一个5V的电压(假设5V为阈值),就会使MOS管接通。如下图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XyM4vIr3-1674720862643)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230126100322548.png)]

如果此时数据线上也加了一个5V的高电平(也就是给了一个二进制的1),那么这个5V的高电平电压会加到电容上方的金属板上,而下方的金属板由于接地,所以下方金属板电压为0。如下图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UU8jdKDt-1674720862644)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230126100546771.png)]

1)存储

当电容的两块金属板产生压差的时候,就会导致正电荷在上面的金属板聚集,负电荷在下面的金属板聚集。如下图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ajrFx0sl-1674720862644)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230126100642023.png)]

这样就完成了二进制1的存储。

如果从数据线输入了一个低电平信号(0),由于电容的两块金属板之间没有电压差,此时电容不会存储电荷。

这样就完成了二进制0的存储。

如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wxe0Eu37-1674720862645)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230126102429181.png)]

2)读出

接下来看一下读出1和读出0如何实现。

<1> 如果此时电容里面存的是1,就是此时电容里面存储了电荷。

当字选择线接了高电平(比如5V)后,MOS管接通,这些电荷就会顺着图中蓝线从绿线(数据线)输出。

如果是二进制的1,那么数据线一端可以检测到电流信号。如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zX3req5a-1674720862645)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230126101620106.png)]

<2> 如果此时电容里面存储的是0,就是此时电容里面没有存储电荷。

当字选择线接了高电平(比如5V)后,MOS管接通,数据线一端也不会检测到电流的流出。如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OSqLJHEZ-1674720862645)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230126101847085.png)]

所以,用上述的方式就可以检测读出的是1还是0。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rF4MPzs1-1674720862646)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230126101939672.png)]

DRAM存储元用栅极电容来存储二进制0和1。

(2)物理特性

<1> 栅极电容里面,如果存储的是二进制的1,那么电容上面会存储一些电荷,接通MOS管读出数据的时候,电容里面存储的电荷就会被释放了(电容放电)。

那么电容放电之后,没有电荷了,数据就会由1变为了0。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EO9paF8A-1674720862647)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230126105115969.png)]

所以,读出栅极电容里面存储的信息之后,栅极电容里面存储的信息就会被改动,被破坏。就是所谓的破坏性读出。里面的信息会被损坏(1->0)。

为了解决这个问题,需要进行重写操作,又叫再生,就是给电容重新进行一次充电。

<2> 接下来解释一下刷新的概念。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WlbKpqk0-1674720862647)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230126112139948.png)]

对于栅极电容。虽然电容里面会存放电荷,但是电荷会慢慢流失,那么同样也会使电容里面的数据出现误差(1->0)。通常电容里的电荷只能维持2ms的时间,即使不断电,2ms后信息也会消失。

由于电容里面的电荷只能存在2ms,那么在2ms之内必须刷新一次(给电容充电)。

(3)DRAM刷新

那么DRAM如何进行刷新操作呢?

先来看一下几个问题。

<1> 多久需要刷新一次?

刷新周期:一般为2ms。

由于电容只能保持2ms的电荷,所以必须在2ms之内刷新一次电荷。

<2> 每次刷新多少存储单元?

以行为单位,每次刷新一行存储单元。

每个存储单元会由多个存储元构成,所以每次刷新存储单元的次数应该以为单位,每次刷新一行。

<3> 什么叫一行存储单元

上一小节,我们给出的存储器模型中,给出n位地址后,译码器会将n位地址转换成其中某一条选通线的高电平信号。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-df0pPBib-1674720862648)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230126113028232.png)]

如果总共有n位地址,那么译码器的输出端会有2^n根选通线。

所以,按照之前的方案,如果有20位地址,那么选通线的数量就是2^20=1M

也就是说,译码器的输出端需要接1M根选通线,大概有一百万。在译码器端接一百万根线,显然工程量很大。

为了解决这个问题,可以把存储单元从一维排列转换为二维排列,也就是将它们变为由存储单元构成的矩阵。如下图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0jbTFg8W-1674720862648)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230126113720247.png)]

==n位地址会被拆成行地址和列地址,分别送给行地址译码器和列地址译码器。==

这样的话,每个译码器只需要处理n/2位地址信息。

原本译码器需要处理20位地址信息,对应2^20=1M根选通线。那么现在将20位地址信息分别拆分,一半行地址,一半列地址,那么每个译码器的选通线就是2^10=1K根选通线,1024根选通线在工程上很容易实现。

随着存储容量的增大,现在的存储器甚至还会有三维排列,原理类似。

所以用行列地址的目的就是减少选通线的数量,使电路变得更简单和清晰。


:question: 如何根据地址来选中某一个存储单元?

将上面的二维图示进行简单连线之后,得到下图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ru76W9r5-1674720862649)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230126114505112.png)]

如果此时要访问的地址是0000 0000。

①左边的译码器

译码器的输入端输入00000000,那么它的第0根选通线会被选通(选中0号存储单元)。

②右边的译码器

地址会被分为前半部分(0000)和后半部分(0000),前半部分作为行地址,送给行地址译码器;后半部分作为列地址,送给列地址译码器。

那么,行地址译码器的第0根选通线会被选通(右图蓝线),列地址译码器的第0根选通线也会被选通(右图红线)。

一个存储单元,只有行和列都被选通才能进行读和写。


<4>如何刷新

上面我们已经知道了什么叫一行存储单元。

只要我们给出一个行地址,那么行地址译码器就会选中一整行存储单元。

每一次刷新操作就会刷新一整行!

会有一个专门的刷新电路支持,刷新电路会直接读出一整行存储单元的信息,然后重新写入(重新给电容充电)。

由于刷新一整行本质上就是做了一次读操作,所以它的耗时与我们读写周期的耗时差不多。

所以,==进行一次刷新操作需要占用1个读/写周期,每次可以刷新一整行的存储单元。==

<5> 什么时候刷新

假设DRAM内部结构排列成128*128(128行、128列)的形式,读/写周期(存取周期)0.5us。

电容可以支持的最长时间是2ms,2ms对应4000个读写周期。

1ms=1000us

2ms=2000us

2000/0.5=4000

有128行需要刷新,每次刷新需要0.5us时间。可以有如下几种策略。

①第一种

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jT4e5RA7-1674720862650)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230126121819051.png)]

这种方式,2ms时间内,会有2000次刷新操作。(2ms/1us=2000)

这两千次刷新操作,足够在2ms内给128行的存储单元每一行都刷新很多次。

②第二种

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3AWCBGcd-1674720862652)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230126121842522.png)]

2ms可以分为4000个读写周期(2ms/0.5us=4000),前面3872个周期读写,后面128个周期分别刷新128行。

③第三种

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-El7P3K5Y-1674720862654)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230126121859520.png)]

将每一行的刷新分散到不同的时间段。

在实际应用中,可以利用CPU不需要访问存储器的这段时间进行刷新。比如CPU取得指令,并对它译码的阶段。

DRAM刷新是由存储器独立完成的,不需要CPU控制。

(4)DRAM地址线复用

上面我们已经知道了什么叫行地址,什么叫列地址。

行地址和列地址的信息会同时丢给行列译码器,即同时送出行列地址

地址有多少位,就需要涉及多少根的地址线。

DRAM的存储容量会比较大,有可能需要32维地址,也就是需要32根地址线。

为了让地址线对应的电路变得更加简单,DRAM一般会采用地址线复用技术

本来需要有n位地址线来传送行和列地址,但是采用地址线复用技术之后,可以把行地址和列地址通过前后两次分别进行传输。

也就是说,只需要2/n条地址线就可以。第一次将行地址送入行地址缓冲器,第二次将列地址送入列地址缓冲器里面。

然后在控制器的控制下,行地址和列地址再送给译码器进行译码处理。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dFlfiGf8-1674720862654)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230126124850495.png)]

原本需要n位引脚来接收n位地址,现在只需要n/2个引脚就可以,先接收行地址,再接收列地址。也就是分两次送行列地址

如果要考察DRAM芯片引脚个数的话,那么就要考虑DRAM芯片的地址线采用了复用技术,也就是和地址对应的引脚数目应该 减半

2.SRAM芯片

(1)双稳态触发器

SRAM芯片的存储元就是如下的双稳态触发器

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-53tp960u-1674720862655)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230126102502602.png)]

触发器相关的知识在数字电路那门课学习的,这里只做简单的了解。

这个双稳态触发器总共有6个MOS管,图中用M1、M2、M3、M4、M5、M6表示。

这个触发器的存储元可以呈现出两种稳定的状态:

<1> A点高电平,B点低电平--->对应二进制的1

<2> A点低电平,B点高电平--->对应二进制的0

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eTAJ4kLt-1674720862655)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230126102907997.png)]

1)存储

写入数据很简单,比如现在想要写入0。

那么只需要给左边的绿线(BL)加上一个低电平信号,右边的绿线(BLX)加上一个高电平信号,这样就可以使得触发器A是低电平,B是高电平。

这个状态对应的就是二进制的0。如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mn6V4TyA-1674720862655)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230126104328019.png)]

写入二进制的1也是类似。

2)读出

双稳态触发器需要有两根数据线来读出0和1。

如果此时双稳态触发器里面存的是二进制的1,当我们给自选择线接通之后(给了一个高电平电压)。右边的绿线(BLX)就会输出一个低电平信号。

如果存储的是二进制的0,会由左边的线(BL)输出低电平信号,而右边的线不会输出任何电信号。

那么,可以根据左右两条数据线哪一条输出了低电平信号,来判断触发器里面原本存的是二进制的0还是1。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mjPCAbcO-1674720862656)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230126104530251.png)]

(2)物理特性

<1> 双稳定触发器有两种稳定的状态,当我们读出数据之后,触发器的状态还是非常稳定的。

所以它的读操作是非破坏性读出,不需要进行重写操作。

<2> 对于双稳态触发器,只要给触发器(VDD)不断供电,只要不断电,触发器的状态就不会被改变。保存的0或1是不会消失的。所以双稳态触发器不需要刷新操作。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AoscCEU5-1674720862656)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230126112025121.png)]


3.对比

将栅极电容和双稳态触发器对比一下,会有不同的地方。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tr2PtuY4-1674720862657)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230126110905435.png)]

<1> 栅极电容的数据线(绿色线)只有一根;双稳态触发器的数据线有两根

<2> 栅极电容放电信息会被破坏,就是破坏性读出,读出后应有重写(再生)操作;双稳态触发器读出数据,触发器状态保持稳定,是非破坏性读出,无需重写。

<3> 栅极电容读写速度更慢;双稳态触发器读写速度更快

<4> 栅极电容只需要一个电容和一个MOS管即可,所以它的每个存储元 制造成本更低,集成度更高,功耗低(电路简单);双稳态触发器需要六个MOS管,所以它的每个存储元制造成本更高,集成度更低,功耗大(电路复杂)

如果一块芯片面积固定不变,栅极电容的数量会比双稳态触发器分布更多更密集,就是集成度更高。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jhYqS8s6-1674720862657)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230126110930337.png)]

两者都是易失性存储器(断电后消失),不要和破坏性读出弄混淆!

SRAM集成度低,存储容量更小,对应的行列地址位数也会更小。所以对于SRAM这种容量小的芯片,通常会把行列地址同时送过去

DRAM芯片其实已经过时了,目前主存储器主要使用SDRAM芯片。(比如DDR3、DDR4)

请添加图片描述

相关文章
|
2月前
|
存储 内存技术
|
5月前
|
存储 缓存 程序员
MCS-51存储器的特点
MCS-51存储器的特点
127 1
|
5月前
|
存储 C语言 内存技术
SRAM
SRAM
76 4
|
5月前
|
芯片 内存技术
什么是内存颗粒?内存条的构成!
什么是内存颗粒?内存条的构成!
291 0
什么是内存颗粒?内存条的构成!
|
12月前
|
存储 内存技术
SRAM 和 DRAM 的区别
SRAM 和 DRAM 的区别
|
异构计算 SoC 内存技术
深入理解AMBA总线(九)AHB2SRAM设计
深入理解AMBA总线(九)AHB2SRAM设计
685 0
|
缓存 内存技术
硬件 - CPU 缓存 SRAM 与内存 DRAM 的区别
硬件 - CPU 缓存 SRAM 与内存 DRAM 的区别
306 0
|
存储 芯片 块存储
3.2主存储器的基本组成
3.2主存储器的基本组成
140 0
3.2主存储器的基本组成
|
存储 安全 算法
3.7磁盘存储器
3.7磁盘存储器
88 0
|
存储 内存技术
第五次笔记:SRAM和DRAM 栅极电容 双稳态触发器 DRAM和SRAM比较 DRAM刷新 DRAM地址复用技术
第五次笔记:SRAM和DRAM 栅极电容 双稳态触发器 DRAM和SRAM比较 DRAM刷新 DRAM地址复用技术
460 0
第五次笔记:SRAM和DRAM 栅极电容 双稳态触发器 DRAM和SRAM比较 DRAM刷新 DRAM地址复用技术