存储器概述

1个字节8位,一个字一般2两个或4个字节

性能描述

存取时间TAT_A:指读或写操作的时间:

  • 随机访问存储器:从给定地址到完成读写操作的时间
  • 其他类型:将读写机构定位到目标位置所用的时间

存取周期TCT_C:对于RAM,指两次访问存储单元之间的最小时间间隔

  • 第一次访问(读/写)-> 第二次访问(读/写)

TC>TAT_C>T_A

带宽:单位时间内存取的数据量

  • 一般的随机访问存储器:1/Cycle time1/\text{Cycle time}
  • 其他类型:TN=TA+N/RT_N=T_A+N/RTNT_N指读写N bits所需的平均时间

层次描述

image-20231014103544818

分类

半导体存储器从访问方式上区分:

  • RAM:随机存取存储器

    • SRAM static:静态:用作Cache
    • DRAM dynamic:动态:用作主存
    • 静态相对而言集成度低
  • ROM:只读存储器

    • 不可在线改写内容的ROM
    • 快擦除存储器

存储单元电路

存储单元电路用来存储一位二进制信息。拥有两种稳定状态,来表示二进制的0或1。可以实现状态写入或读出。

SRAM存储单元电路

image-20231014103915743
  • 对于MOS管,当控制端为高电平时,控制MOS管导通。
  • 读出操作:
    • 输入条件:字选线高电平
    • 此时T5和T6导通,如果存储单元原来保存信息是1,则D线则读出A处电平为1,内部状态为1,否则为0。
  • 写入操作:
    • 写1:D 线高电平,字选线高电平, T5 和 T6 导通, T1 截止,T2 导通,写入 1 。
    • 写0:D 线低电平,字选线高电平, T5 和 T6 导通, T2 截止,T1 导通,写入 0 。

DRAM

image-20231014105159053

刷新:在保存二进制信息“ 1 ”的状态下,Cs有电荷,但Cs存在漏电流,Cs上的电荷会逐渐消失,状态不能长久保持,在电荷泄漏威胁到所保存的数据性质之前,需要补充所泄漏的电荷,以保持数据性质不变。

读出时:根据数据线上电流的方向保存的是1还是0

  • D 线先预充电到 Vpre=2.5V,字选线高电平, T 导通
  • 若电路保存信息1,Vcs=3.5V电流方向从单元电路内部向外;
  • 若电路保存信息0,Vcs=0.0V电流方向从外向单元电路内部;
  • 读出过程实际上是 Cs 与 Cd 上的电荷重新分配的过程,也是 Cs 与 Cd 上的电压重新调整的过程。 Cd 上的电压,即是 D 线上的电压。

写入操作:对Cs的充电过程

  • D 线加高电平1或低电平0,字选择线置高电平,T 导通;
  • 写 1 时, D 线高电平,对 Cs 充电;
  • 写 0 时, D 线低电平, Cs 放电;

ROM

image-20231014105602307

存储单元电路

存储单元电路的简化表示

image-20231014105704303

存储单元电路(存储位元)→存储芯片→存储器

存储芯片结构

结构

将存储芯片抽象为2nm2^n*m的形式,即总共有2n2^n个字,每个字需要m个存储单元

地址线的本质是控制读写的开关,通过译码器实现了对每个存储单元的单独控制。同一个字中的m个存储单元地址相同,由相同的地址线控制读写。每一个字的地址都是唯一的。

对于二维结构,分为行地址和列地址,和一位索引时有所不同,译码器译码后一次打开一行所有存储单元的开关,通过列地址索引实现对值读取的控制:一行中一次只有一个字的读可以导通到数据线D0D1D2D3

image-20231014131920272

对于DRAM,选取行地址数和列地址数相等,但存储单元数不等;对于SRAM,行存储单元数等于列存储单元数

扩展

存储芯片2nm2^n*m的形式,m、n都有可能不够:

  • n不够时将高位的地址作为调控(进制数的性质)
  • m不够时将输出信号线接到不同的位上

思路为:

  • 同一字空间的芯片CS信号(片选输入管脚)连在一起,高位地址用译码器生成对应的片选信号。
  • 同一位空间的数据线连在一起,并连接到对应的数据总线上。
  • 根据每个芯片的地址空间范围,设计芯片所需的片选信号逻辑,CS逻辑电路的输入一定是地址总线中,没有连接到芯片地址管脚上的那部分地址线。

DRAM的刷新

为什么刷新

对DRAM的读出操作是一种破坏性操作:读1时,Cs放电;读0时,Cs充电;所以读出操作后,原保存在Cs上的数据(电荷)被破坏,应该立即进行恢复(重写或刷新)。

image-20231014141555792

Cs和Cd两个电容是变脸,Cd>>Cs,对Cs上的电压变化起到了放大效果,在D端能读取到放到后的电压变化,正变化为读出1,负变化为读出0。

尽管Cd有了一定的放大效果,但还是只有100mV左右,太小了,还需要放大

由于读出过程D线电压变化量较小,需要对变化量进行放大,才能得到有效的数据,因此,单管存储单元电路中,D线上必须增加传感放大器(Sense Amplifier)。

  • 刷新由传感放大器在读出过程中同时完成。
  • 在D线上增加了传感放大器后,读过程实际上就是一次刷新过程
  • 事实上,DRAM的刷新,就是通过这样的读操作来实现的。

image-20231014141725934

刷新方式

读过程就是一次刷新过程。使用刷新计数器:生成行地址,按行刷新

减少刷新使劲按是渴望的,但是刷新是必需的

image-20231014143233750

集中刷新方式

将刷新周期分成两部分:在一个时间段内,刷新存储器所有行,此时 CPU 停止访问内存;另一个时间段内,CPU 可以访问内存,刷新电路不工作。

集中刷新间隔= 刷新周期

存在不能进行读写操作的死区时间(刷新时间),很少使用

image-20231014142312125

分散刷新方式

CPU与刷新电路交替访问内存,一个存储周期刷新 1 行,下一个存储周期刷新另一行,直至最后 1 行后,又开始刷新第 1 行。

同1行两次被刷新的时间间隔可能小于刷新周期。

分散刷新间隔= 刷新行数 X 存储周期 <= 刷新周期

分散式刷新使系统速度降低,但不存在停止读写操作的死时间

image-20231014142758587

分布式(异步)刷新方式

保证在一个刷新周期内将存储芯片内的所有行刷新一遍,可能等时间间距,也可能不等。

异步刷新间隔= 刷新周期

是前两种方式的结合,可减少死时间,同时保证性能

image-20231014143159966