计算机组成:主存

正文索引 [隐藏]

主存储器

一、性能指标

存储容量

  • 字:存储单元个数 × 存储字长,例:1024 * 32 b
  • 字节:字节数,例:1024 B

存取速度

  • 存取时间:启动一次存储器操作到操作完成所需时间
  • 存取周期:存储器连续两次独立操作所需最小时间间隔,存取周期 = 存取时间 + 恢复时间
  • 存储器带宽:存取频率,就是存取周期的倒数

image-20200101094151603

注意,存储容量中 1M = 1024 1024, 存取速率中 1 M = 1000 1000

二、存储芯片

image-20200101094404064

SRAM

全称 Static Random Access Memory,特点是速度快,不需要刷新电路,但是集成度低,成本高,常作为小容量主存或者 cache

image-20200101094810685

  • WE:读写控制指令,H(读),L(写)
  • CS:片选信号,低有效(选中)

DRAM

全称 Dynamic Random Access Memory,特点是集成度高,成本低,但是必须进行定时刷新,常作为大容量主存

image-20200101102508811

  • CAS:Column Address Select
  • RAS:Row Address Select

DRAM 采用的是电容保存数据的值,所以每次读取数据的时候都是破坏性读出(因为电容上电荷跑光了),因此必须要有再生过程(将读出的数据在写回存储元)。

另外,由于电容的特性,电荷总在不断流失,需要刷新来补充电荷,为提升效率,每次刷新都会刷新存储阵列中的一行存储单元,而保证数据不因电荷流逝的最大时间间隔称为最大刷新间隔

  • 集中式刷新:最大刷新间隔中,集中安排一段时间,但是刷新时无法访存,形成“死时间”

    image-20200101101905170

  • 分散式刷新:每个读写周期后,紧跟着一个刷新周期,但是浪费时间

    image-20200101101946334

  • 异步式刷新:逐行轮流刷新

    image-20200101102006697

ROM

正常工作时,只读不写,写入操作需通过特殊手段完 成,其它特点同RAM。 非电易失,可靠性高,常用于主存的系统程序区和各种固件

image-20200101103205791

三、地址译码

在上一个部分可以看到,无论 RAM 还是 ROM,都是将地址信号经过译码后进行数据存取的,下面来看一下地址译码的两种方式:

线选法(单译码结构)

image-20200101104138385

直观地说就是地址只有 1 维,戳到哪拿哪的数据,有点速度快,缺点很明显,费驱动:

image-20200101104440519

重合法(双译码结构)

image-20200101104449261

这个就是 DRAM 中最常用的 2 维地址咯,只取 X 地址,Y 地址交叉点的值

四、片间连接

下面看一看存储芯片是怎么组成完整存储器的,以 SRAM 为例:

比如说现在需要一个 4 k 16 b 的存储器,但是手头上只有 1k 4 b 的 SRAM,那么就需要进行字位扩展:

  • 字扩展,将 SRAM 拼出所需存储器字长的亚子,所需存储器字长 16 b,手上的 SRAM 字长 4b,那么就需要 4 片芯片组成(不需要片选,因为一旦选中就全部输出)
  • 位扩展,将 SRAM 拼出所需存储器位长的亚子,所需存储器位长 4 k,SRAM 位长 1 k,所以需要 4 片芯片组成,通过片选信号来控制究竟选择哪一片
  • 字位扩展,4 * 4 = 16,共需要 16 个 SRAM,如下图

image-20200101105558883

如果使用 ROM ,则方法基本上一直,不过注意 ROM 是没有 WE 信号的(因为 ROM 只读不写)

image-20200101110632550

至于 DRAM,稍微比较复杂一些:

image-20200101111029530

  • Ai 需要分行、列两组地址,由多路选择器分时送入芯片
  • 片选译码器
    • 加入 RAS 信号,使片选译码输出时间与 RAS 一致
    • 加入 REF (刷新定时信号),在刷新的时候强迫译码输出全部有效
  • 采用 唯 RAS 有效刷新时,CAS 可按片并联

五、CPU-主存连接

image-20200101112838772

  • MDR:Memory Data Register,用于暂存 CPU 和主存间交换的数据
  • MAR:Memory Address Register,用于暂存 CPU 正在访问的存储单元地址

SRAM 连接方法

image-20200101113558747

  • 地址线:低位直接与个存储芯片地址引脚相连,高位与片选译码器相连
  • 数据线:数据总线连入存储器数据引出端
  • 读写控制线:控制总线中读写命令线连入存储器 WE 端
  • 片选时间控制:控制总线中的 MREQ(访存请求)信号与片选译码器使能输入端连接

ROM 连接方法:和 SRAM 一样,唯一不同在于 ROM 没有 WE 端

DRAM 连接方法

image-20200101113838738

  • 刷新地址计数器:刷新时向 DRAM 提供刷新行地址,并自动顺序计数到下一行地址
  • 地址多路选择器:在行、列、刷新地址三者间选一路送给 DRAM
  • 定时刷新器:根据所选用的刷新定时方式控制刷新时间,当需要刷新时及时发出刷新请求信号
  • 仲裁电路:在 CPU(I/O) 访存请求、刷新请求中仲裁出一种执行访存的操作
  • 定时发生器:产生一系列 DRAM 工作时所需要的时间控制信号(RAS, CSA, WE 等)