文章

关于SRAM与DRAM及其容量扩展

简单介绍静态和动态的随机存取存储器,以及如何将其扩展成更大容量的存储器

关于SRAM与DRAM及其容量扩展

一、SRAM

内存分为RAM和ROM,RAM又分为SRAM和DRAM

1.1 SRAM的优缺点

  • 静态随机存取存储器(Static Random-Access Memory)中二进制数据使用传统的触发器(Flip Flop)逻辑门电路进行存储
    • 优点:存取速度快(静态的比动态的快,类比静态链接库.lib比动态链接库.dll快)
    • 缺点:集成度较低,相同容量的DRAM内存可以设计为较小的体积,但是SRAM却需要很大的体积,因此SRAM的成本也会更高(同样面积的硅片可以做出更大容量的DRAM)

1.2 SRAM单元

1.2.1 锁存器

  • 锁存器(Latch)在非写入时的四种状态如下所示

图灵完备锁存器.png

  • 锁存器的写,第二个输入信号即写入值信号,右侧与门即为锁存器存储的值(永远输出存储值)
    • 若写入值为1,则使得上方与门激活,从而激活右侧或门,从而激活右侧与门
    • 若写入值为0,则使得下方与门激活,从而通过其右侧非门使得右侧与门失活

图灵完备锁存器的写.png

1.2.2 SRAM单元一般实现

  • 下面是一个SRAM单元(Cell)的结构示意,每个该单元存储着一位数据的值(0/1)

SRAM单元电路示意.png

  • 下方两图展示了该SRAM单元格的值是如何被读取、写入的

SRAM单元值的读取.png

SRAM单元值的写入.png

1.2.3 SRAM单元的CMOS实现

  • CMOS实现的SRAM单元的能耗(Power Consumption)低
    • The power supply voltage is 5V in older CMOS SRAMs or 3.3V in new low-voltage versions
    • If power is interrupted and then it is restored, the latch will settle into a stable state, but it will not necessarily be the same state the cell was in before the interruption

SRAM单元的CMOS实现形式.png

1.3 SRAM芯片

1.3.1 多位存储器

  • 之前我们介绍了可以存储1bit数据的锁存器的原理,我们可以进一步利用8个锁存器来制造一个存储8bit数据的存储器(8位寄存器),以此类推

图灵完备存储8bit数据.png

1.3.2 多位解码器

  • 解码器(Decoder)就是通过传入的$n$位地址来锁定$2^n$个位置中的某一个的,1bit的数据可以代表两种状态,即两种地址

图灵完备1bit解码器.png

  • 3bit的解码器(3bit数据对应$2^3=8$种不同的地址)如下所示

图灵完备3bit解码器.png

1.3.3 统合解码器与存储器

  • 将存储器与解码器组合起来,就变成了内存芯片,下面我们以组合4个8bit寄存器为例
  • 我们需要4个地址来分别访问这四个字节的数据,也就是说我们需要一个2位解码器

图灵完备4x8bit储存芯片-2位解码器.png

  • 最终结合其它部分,我们就得到了一个

图灵完备4x8bit储存芯片.png

1.3.3 SRAM芯片组织结构

  • 16x8(字数x位数)位的SRAM芯片存储着16个字长为8比特(1字节)的字,也就是说每个字由8横着的个SRAM单元组成,每个字以竖向进行排列
    • 外界对这块SRAM芯片进行访问时,有16种块地址(字)可以选择
    • 下图左侧的一组$A_i$就是以4位二进制数的组合,表示$16=2^4$个字地址之一,以进行寻址
  • Word Line(共16根,用于遍历每行的比特)如下红线所示,其电压高低决定是否存在读写操作

SRAM芯片的组织结构之WordLine.png

  • Bit Line(共8对,用于遍历每列,即所有共16行字的每个比特数据)如下,用于直接反映或修改SRAM单元存储的比特值

SRAM芯片的组织结构之BitLine.png

  • Sense/Write电路(共8个)如下,其位于Bit Line末端,用于对b与b’两线的电压信号进行读取或传入,以间接读取或修改SRAM单元存储的比特值

SRAM芯片的组织结构之SWCircuit.png

  • 该16x8位的SRAM芯片的外部组织结构如下

SRAM芯片的组织结构之外部结构.png

  • 更大规模的SRAM芯片的组织结构如下,可以通过10位bit数组合(1K是单位,指1024而不是一千)对该SRAM芯片进行寻址

SRAM芯片的组织结构之更大的规模.png

SRAM芯片的组织结构之更大的规模的分析.png

二、DRAM

2.1 DRAM的优缺点

  • 动态随机存取存储器(Dynamic Random-Access Memory)与SRAM的优缺点相反互补
    • 密度高,成本低
    • 访问速度慢,不访问其还会漏电(电容漏电,所以需要周期性刷新)

2.2 DRAM单元的一般实现

  • 动态随机存取存储器(Dynamic Random-Access Memory)中,数据中的每一位(bit)的值使用电容的带电与否来表示,带电表示1,不带电表示0

DRAMcell.png

  • DRAM单元进行读取操作

DRAMcell读操作.png

  • DRAM单元的写入、信息保持、周期性刷新(读一遍即可刷新,0不变,1被读完后就会)

DRAMcell写操作.png

2.3 普通DRAM芯片

  • 参考下图中的文字注释

DRAM芯片.png

  • 关于引脚的复用

关于DRAM芯片的引脚数.png

2.4 SDRAM

2.4.1 SDRAM原理

  • 同步DRAM(Synchronous DRAM)简称为SDRAM,其操作基于时钟信号(Clock Signal)同步

SDRAM芯片结构.png

  • Burst Operation
    • SDRAMs have several different modes of operation, which can be selected by writing control information into a mode register
    • The burst operations use the block transfer capability
    • The mode register holds a 12-bit value that the SDRAM looks at in order to determine how many columns it should BURST and in what order it should BURST them

4LengthBurstRead.png

  • 衡量SDRAM性能的两个参数
    • 带宽(BandWidth):每秒可以处理的数据,即可以并行(In Parallel)访问数据的速度,单位是比特每秒;存储器的带宽就是总线的带宽,即总线速度乘上其条数宽度(Effective Bandwidth = Bus Speed × Bus Width)
    • 延迟(Latency):读写一个字需要的时间(In block transfers, latency is used to denote the time before it takes to transfer the first word of data)

SDRAM的延迟示意.png

2.4.2 DDR-SDRAM

  • 各版本的DDR-SDRAM(Double-Data-Rate SDRAM)及其版本差异

DDR-SDRAM.png

DDR版本差异.png

2.4.3 相关例题

Chap8T1.png

Chap8AnsT1.png

三、大容量内存

3.1 静态内存系统

Static Memory System

3.1.1 位扩展

  • 如果单元芯片的每个存储单元的位数小于存储器字长,则需进行位扩展

位扩展.png

3.1.2 字扩展

  • 若芯片每个存储单元的位数等于存储器字长,但容量(字数)不够, 则需进行字扩展

字扩展.png

3.1.3 字位同时扩展

  • 若单片芯片的字数和位数均小于主存的容量要求,则需同时进行字、位的扩展
  • 下图中

字位扩展.png

3.1.4 总结三种方法

  • 假设基本内存单元的容量为$(M×N)$比特,要用其组成$(X×Y)$比特容量的芯片则需要用到的基本内存单元的个数为$(\frac{M}{X}×\frac{N}{Y})$,其中两个除号向上取整

3.2 动态内存系统

Dynamic Memory System,其组织小容量存储器的方法和静态的大差不差,也是字、位的扩展;下面介绍两种Memory Module类型,这是一种插在电脑插槽上的内存板子

3.2.1 SIMM

Single In-line Memory Modules

  • SIMM是一种打包DRAM的方法类型,适应大多数旧系统
  • SIMM可以是单列的(Single-Sided,即RAM芯片只排列在一端,对称的两端引脚Connector传输信息不同),也可以是双列的(Double-Sided,即RAM芯片排列在两端,对称的两端引脚传输信息相同),下面是常见的SIMM类型(pin是引脚数)
    • 30-pin SIMM:1~16MB,8bits,单端,plus 1bit for parity
    • 72-pin SIMM:1、4、16MB,单端;2、8、32MB,双端;32bits,plus 4bits for parity/ECC
  • SIMM的示意图如下

SIMM示意图.png

3.2.2 DIMM

Dual In-line Memory Modules

  • DIMM是当前的标准内存包装方法
  • DIMM能够单次传播64bits数据
  • 常见的DIMM类型如下

常见DIMM类型.png

  • DIMM的示意图如下

DIMM示意图.png

3.3 字位扩展例题

  • 第一题:字数除以字数
  • 第二题:字数除以字数,乘上位数除以位数

大型内存组织T1T2.png

  • 第三题:目标是组成$2^{20}$x64(通过20算出字数,位数已知)的存储器

大型内存组织T3.png

  • 第四题:通过四个128Kx8bit和两个512Kx4bit芯片组成一个512Kx16bit芯片,其中译码器是对左侧19根地址导线的数据进行翻译的($512K=2^9\cdot2^{10}=2^{19}$)

大型内存组织T4.png

  • 下面这道大题同理,不多赘述

Chap8T2.png

Chap8AnsT2.png

本文由作者按照 CC BY-NC-SA 4.0 进行授权