挑战408——组成原理(10)——SRAM与DRAM

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/redRnt/article/details/83445031

半导体随机存储器芯片内集成有记忆功能的存储矩阵,译码驱动电路和读/写电路等等。
在这里插入图片描述
下面介绍几个重要的概念:
读写电路:包括读出放大器和写入电路,用来完成读/写操作。
地址线:单向输入,其位数与芯片的容量有关
片选线:确定哪个芯片被选中(用来选择芯片)
数据线:双向输入,其位数与芯片可读出或者写入的位数有关,也与芯片容量有关。

存储容量

通常我们将存储容量表示为:
字数 X 位数,比如 64K X8位,其含义为,以8位构成一个字,一共有64个字。这个概念要相当熟悉,后面理解题目很有用。
下面我们来看一道例题:

一个64K x 8位的存储器,可以由()个16k x1位的存储芯片构成?

分析:64K x 8位,说明该存储器是以8位构成一个字,因此,每读出一个字,需要选中8片16k x1位的存储芯片,而一片能表示16k,因此一共需要64/16 = 4片,根据组合的原理,一共需要4x8 = 32片。
在这里插入图片描述
从图中我们可以看出,相当于把32个芯片分成了4组,每组8片(表示8位)。
于是我们得出这样的结论:
在这里插入图片描述

半导体随机存取器,习惯上多称为RAM,按其存储信息原理不同,可以分为静态RAM(SRAM)和动态RAM(DRAM)。

SRAM

SRAM存储原件所使用的mos管多,占用硅片面积大,集成度低,但是采用触发器工作原理存储信息,因此即使信息读出之后,它仍然保持原状,不需要再生,但是电源掉电时,原存有的信息就会消失,因此它属于易失性存储器。因为这个比较的简单,因此就简单介绍一下就好:
工作原理:触发器
优点:

  1. 能长久保存信息
  2. 速度快,工作稳定
  3. 无需刷新
  4. 无需读后再生

缺点:功耗大,集成度低,价格高。
典型应用:cache

DRAM(这个是重点)

与SDRAM相比,DRAM所用的mos管少,占硅面积小,因而功耗小,集成度高但是因为采用了电容存储电荷的原理来寄存信息,会发生漏电现象,所以要保持状态不变,需要定时刷新,因为读操作会使得状态发生改变,故需要读后再生。且速度比SRAM慢。但是由于其功耗小,集成度高,被广泛应用于计算机中。
典型应用:主存

存储记忆原理(了解)

在这里插入图片描述
定义:存“0”:C中没有电荷,存“1”:C中有电荷
读入的时候,T中的高电平使得T通导,如果此时C有电荷,那么数据线就会产生电流,视为读出1.否则视为读出0
写入的时候,若为高电平,则经过T对C充电,充电后有电荷,于是存1,若为低电平,C经过T时放电,C中没有电荷,于是存0.

DRAM的刷新

问:为什么要对DRAM进行刷新?如何进行刷新?
由于动态存储器的原理是容存储电荷的原理,且访问存储单元是随机的,有可能某些存储单元长期得不到访问,其存储单元内原信息就会慢慢消失(原因)。刷新的过程实质上是将原信息读出,再由刷新放大器形成原信息并重新写入的再生过程,称为读后再生
下面介绍一下刷新过程中要用到的名词。

  • 刷新周期:在规定的时间内,对DRAM全部基本单元进行一次刷新(即两次刷新之间的相隔时间),一般为ms级别,2ms。
  • 死时间:刷新时,某段时间需要暂停读写操作,这段时间由于外界不能对存储器进行操作,因此称为死时间。
  • 存取周期:DRAM完成一次读写操作所需要的最短时间
  • 死时间率
    在这里插入图片描述

DRAM常见的刷新方式有三种:集中刷新,分散刷新,异步刷新
刷新的过程为:以行为单位,读出一行中全部单元的数据吗,经过信号放大后,同时写回。读出时候一定断开存储器的输出

集中刷新

做法:在刷新周期内,对全部存储单元集中一段时间进行刷新(逐行进行),此时必须停止读写操作。
看看下面的例题:

设对128 x 128矩阵的存储芯片进行刷新,若存取周期为0.5us,刷新周期为2ms,采用集中刷新的方式,那么对128行集中刷新,一共需要()us?死时间率为()%?

分析:刷新一遍的时间 = 存取周期 x行数,于是可以求得刷新时间。在刷新时间内,不能进行读写操作,因此死时间就是刷新的那段时间,占用的存取周期数值上等于行数。利用计算公式算出死时间率为32.%。所以很容易得到:
在这里插入图片描述
但是这种做法有个极其不好的缺点:对于经常要进行读入读出的程序,要陷入大量的等待时间,CPU的工作效率不高。

分散刷新

做法:对每行存储单元的刷新分布到每个存取周期内完成,其中吧机器的存取周期(记为tc),分成两个部分,前半段的tm用来记录读写,后半段(tr)用来刷新,即tc = tm +tr。如图:
在这里插入图片描述

若读写周期 tc = 0.5us ,那么存取周期tc = (0.5+0.5)us = 1us
现在沿用上面的题目:

设对128 x 128矩阵的存储芯片进行刷新,若存取周期为1us,刷新周期为2ms,采用分散刷新的方式,那么对128行分散刷新,一共需要()us?死时间率为()%?

分析:因为在读写操作之后,立刻刷新,那么每读取操作一次,就会刷新一次,刷新128行就需要 1us x 128 = 128 us。由于刷新是在读写操作过后直接完成的,所以不存在死时间。也就是死时间率为0.
缺点:这样无异于加长了存取周期,会使系统运行速度降低,刷新操作也过于频繁。

异步刷新

做法:在刷新周期内对所有行各刷新一次,即每隔(刷新周期/总行数)us,刷新一次。这种方式是前面两种方式的结合,既能缩短死时间,又能充分利用刷新周期,提高刷新频率。
题目同上:

设对128 x 128矩阵的存储芯片进行刷新,若存取周期为0.5us,刷新周期为2ms,采用异步刷新的方式,那么对128行异步刷新,一共需要()us?死时间率为()%?

每隔(2ms/128) = 15.6us刷新一次,每一次刷新,死时间都是存取周期内的时间为0.5us,对于该行来说,下一次轮到它刷新还是间隔了2ms,所以死时间率为 1/4000.(2ms 里面有4000个存取周期)。所以;
1/4000 << 3.2%
若将DRAM的异步刷新安排在CPU对指令的译码阶段(此阶段CPU访问存储器),那么也就不存在死区。

猜你喜欢

转载自blog.csdn.net/redRnt/article/details/83445031