776 字
4 分钟
多模块存储器与存储器拓展

存储器拓展#

把多个存储芯片组装成一根内存条

位扩展#

扩宽存储字的宽度

  • 地址线、片选线和读写控制线并联
  • 数据线依次连接数据总线的一部分

字拓展#

扩宽存储字的数量

  • 数据线、读写控制线和地址线并联
  • 使用剩下的地址线连接片选线,选择当前访问的芯片
    • 线选法:直接将地址线与片选线连接,一根地址线对应一根片选线,要求用于片选的地址线是独热码格式,否则出错,同时chip之间的地址空间也不是连续排列的
    • 片选法:把于片选的地址信号用译码器翻译成独热码的格式,电路比较复杂,chip地址空间排列是连续的

字位同时拓展#

多模块存储器#

一体多字#

  • 特点 一体多字寄存器的存储单元是m个字,要求数据总线宽度是m字
  • 优点 对于连续访问的指令或者是数据,存取速度的提升是可观的
  • 缺点 对于跳转语句或者是数据的随机访问,提升效果差

多体并行#

高位交叉#

  • 特点 Bank自己的地址空间连续地分布在地址空间不同区域
  • 缺点 连续访问大概率都落在同一个Bank,各个Bank实际上没有并行工作

(低位)交叉(interleave)#

  • 特点 Bank自己的地址空间交叉地分布在整个地址空间
  • 改进了高位交叉并行度差的问题
两种启动方式#
  • 轮流启动 流水线
    • 设单个模块的存取周期为TT,总线周期为rr,为了实现轮流启动不停顿那么模块数量要大于等于mmm=T/rm = T / r
    • 连续读取m个字的时间为t=T+(n1)rt = T + (n-1)*r
    • 访问冲突。理想情况下m体交叉存储器每1/m个存取周期(一个总线周期)内能存取一个数据,如果相邻的m次访问内如果落在同一个存储器会发生访存冲突造成流水线停顿
      • 设模块数为4,访问模块的顺序为 0 1 0 1,那么第3次访存会与第1次访存冲突,造成流水线停顿,但是第2次与第4次不会造成停顿,因为在第3次访存后会发生停顿,到停顿结束时1号存储器已经空闲下来了。也可以把访存序列理解为0、1、气泡、气泡、0、1给发生访存冲突的访存操作前插入气泡使其刚好不发生访存冲突,插入起跑后原第二次访存与第四次访存相差的周期数刚好为模块数故不发生冲突
  • 同时启动 如果总线宽度为m个字,那么可以同时启动所有模块读写

其他#

空间并行技术

多模块存储器与存储器拓展
https://blog.pipago360.site/posts/计算机组成原理/存储/多模块存储器与存储器拓展/
作者
Ashenye
发布于
2024-08-01
许可协议
CC BY-NC-SA 4.0