知识预备

  • DRAM 采用了电容作为存储元,使得主存每次进行读写时需要耗费一定的时间来刷新/恢复数据
  • 假设 CPU 存取时间为 τ\tau, 存取周期为 TT, 其中主存读取后的数据恢复时间为 TτT - \tau

目的

  • 弥补 CPU 和主存直接的速度差异

优化方式

  1. 主存底层技术优化,减少主存数据恢复时间
  2. 采用多端口存储器
  3. 采用多体交叉存储技术
  4. 在 CPU 和主存之间插入高速缓冲存储器(Cache)

在此简要介绍 2 和 3

多端口存储器

以双端口存储器为例

  • 特点
    • 同一个存储器具体两组独立的读写控制电路,允许两个 CPU 异步访问存储单元
    • 存储数据共享
    • 当两个端口存取的地址不相同时,同时进行读写操作
    • 当两个端口存取的地址相同,只要有一方写入,即发生读写冲突
      • 发生冲突时,暂时关闭一个端口(置BUSY信号)

多体交叉存储

主存由多个存储模块组成,每个存储模块容量和存取速度相同,有单独的地址寄存器,数据寄存器,读写控制器和驱动电路

自我感觉和 主存扩展 结构相似

  • 编址方式
    • 顺序编址
      • 仅扩容,不能提高速度
      • 地址划分为: 模块号 | 模块内地址
    • 交叉编址
      • 连续访问时,在多个模块内切换,提高吞吐率
      • 地址划分为: 模块内地址 | 模块号

交叉编址

  • CPU 同时送出 m 个地址,若地址分别属于 m 个存储体,访问就不会冲突;交叉编址适合采用流水线方式并行存取
  • 例: 预设总线传输时间为 τ\tau, 存储周期为 TT, 模块数为 mm, 字长为 ww
    • 存取时间: 当 mTτm \ge \frac{T}{\tau} 时,连续存取 mm 个字的最短时间 t=T+(m1)τt = T + (m - 1)\tau (单体顺序编址存取时间 t=mTt = mT)
    • 带宽: B=mwT+(m1)τB = \frac{mw}{T + (m - 1)\tau} (单体顺序编址带宽 B=wTB = \frac{w}{T})

参考

双端口RAM和多模块存储器