Skip to content

多体交叉存储器

考情分析

多体交叉存储器的低位交叉方式和带宽计算是 408 高频考点,常以选择题和计算题形式出现。重点理解低位交叉如何实现流水线访问。

基本概念

多体存储器由多个独立的存储模块(体)组成,每个体有自己的地址寄存器、数据寄存器和控制电路,可以并行工作。

设有 m 个存储体,每体存储周期为 T,系统总线传输一个字的时间为 τ(通常 τ=T/m)。

高位交叉(顺序存储)

地址的高位决定选择哪个存储体,低位是体内偏移。

体号=地址/体大小=地址高位

地址分布(4 体,每体 4 个字):

地址体号体内地址
0~3体00~3
4~7体10~3
8~11体20~3
12~15体30~3

连续地址访问集中在同一个体,无法并行,与单体无异。适合按功能划分(如操作系统区/用户区分体存储)。

低位交叉(交叉存储)

地址的低位决定选择哪个存储体,高位是体内偏移。

体号=地址modm=地址低位

地址分布(4 体):

地址体号体内地址
0体00
1体10
2体20
3体30
4体01
5体11
.........

相邻地址分布在不同的体,连续访问可以并行,形成流水线效果。

低位交叉的流水线访问

CPU 发出读连续 m 个字的请求,每隔 τ 启动下一个体,m 个体的读操作流水进行。

时序图(m=4T=4τ):

时刻:     0    τ    2τ   3τ   4τ   5τ   6τ   7τ
体0启动:  ← T=4τ →
体1启动:       ← T=4τ →
体2启动:            ← T=4τ →
体3启动:                 ← T=4τ →
数据输出:            d0   d1   d2   d3

读取 m 个字的总时间:T+(m1)τ(第一个字需要 T,后续每字只需 τ)。

单体存储读取 m 个字需要 mT

带宽计算

低位交叉存储器的最大带宽

B=mWT+(m1)τ

其中 W 是每次传输的数据宽度(字节),m 是体数,T 是存储周期,τ 是总线传输时间。

在理想条件 τ=T/m 时:

B=mWT+(m1)T/m=mWT(1+m1m)=m2WT(2m1)

m 很大时,BmW/(2T),最大带宽约是单体的 m/2 倍。

单体存储器带宽

B0=WT

交互可视化

加载可视化中...

例题

:4 体低位交叉存储器,存储周期 T=200 ns,总线周期 τ=50 ns(=T/m),数据总线宽 32 位(4 B)。求连续读 4 个字的时间和带宽。

总时间:T+(m1)τ=200+3×50=350 ns

带宽:B=4×4 B350 ns45.7 MB/s

单体带宽:B0=4 B200 ns=20 MB/s

低位交叉带宽约是单体的 2.3 倍(因为 m 不够大,加速比约 $m/(1 + (m-1)/m \cdot 1) = $ 见公式)。

无冲突访问条件

低位交叉存储器流水线工作时,要求前一次对某体的访问在下一次访问该体之前完成。因此必须满足:

Tmτ

即存储周期 T 不能超过 m 倍的总线传输时间 τ。若 T>mτ,当 CPU 再次访问同一体时该体尚未完成上次操作,产生访问冲突,需要等待。

低位交叉的局限

  • 连续地址访问效果好,随机访问没有优势
  • 体数 m 一般取 2 的幂(便于硬件实现模 m 运算用位选择代替除法)
  • 如果多个体同时被访问(如指令流水线取指与数据访问冲突),仍然可能产生冲突

考点清单

  • 低位交叉:体号 = 地址 mod m,相邻地址在不同体,支持流水线访问
  • 高位交叉:体号 = 地址高位,相邻地址在同一体,无法并行
  • 低位交叉读 m 个字的时间:T+(m1)τ,而非 mT
  • 带宽公式:B=mW/[T+(m1)τ]
  • 无冲突条件:Tmτ(体数必须足够多)
  • 体数 m 通常取 2 的幂,体号取地址低 log2m

真题练习

相关真题(5题)

2026Q15选择题2分

多体交叉编址中芯片地址判断

2017Q13选择题2分

交叉编址存储器中跨体读取的存储周期计算

2015Q18选择题2分

多体交叉编址中访存冲突的判断

2013Q43综合题9分

多体交叉存储与总线突发传送综合题

2012Q43综合题10分

Cache缺失损失与总线传输综合题