Appearance
多体交叉存储器
考情分析
多体交叉存储器的低位交叉方式和带宽计算常以选择题和计算题形式出现。重点理解低位交叉如何实现流水线访问。
大纲定位
考纲第三章(四)「主存储器」第 2 条:多模块存储器。
要求到什么程度:能判断高位/低位交叉的地址分布差异,能算连续访问的时间和带宽,能判两个地址是否落在同一个体。大题里常和 Cache 缺失、DMA 传送串在一起考。
基本概念
多体存储器由多个独立的存储模块(体)组成,每个体有自己的地址寄存器、数据寄存器和控制电路,可以并行工作。
设有
还有一个符号必须一开始就分清,否则后面所有公式都会代错:
| 符号 | 含义 | 别名 |
|---|---|---|
| 单个体完成一次存取所需时间 | 存储周期 | |
| 总线传送一个字的时间(一个总线周期/一拍) | 总线周期 |
流水线上"每隔多久启动下一个体",用的是总线拍
高位交叉(顺序存储)
地址的高位决定选择哪个存储体,低位是体内偏移。
地址分布(4 体,每体 4 个字):
| 地址 | 体号 | 体内地址 |
|---|---|---|
| 0~3 | 体0 | 0~3 |
| 4~7 | 体1 | 0~3 |
| 8~11 | 体2 | 0~3 |
| 12~15 | 体3 | 0~3 |
连续地址访问集中在同一个体,无法并行,与单体无异。适合按功能划分(如操作系统区/用户区分体存储)。
低位交叉(交叉存储)
地址的低位决定选择哪个存储体,高位是体内偏移。
地址分布(4 体):
| 地址 | 体号 | 体内地址 |
|---|---|---|
| 0 | 体0 | 0 |
| 1 | 体1 | 0 |
| 2 | 体2 | 0 |
| 3 | 体3 | 0 |
| 4 | 体0 | 1 |
| 5 | 体1 | 1 |
| ... | ... | ... |
相邻地址分布在不同的体,连续访问可以并行,形成流水线效果。

图 7.13 交叉编址的多模块存储器
判断两个地址在不在同一个体
选择题常给两个十六进制地址问是否冲突。动作固定:取地址的低
例:8 体低位交叉,问 0x1F40 和 0x1F48 是否同体。
同体,会冲突。(只需看十六进制末位:8 体取末位的低 3 位,4 体取低 2 位。)
编者注(易混):位宽扩展并联的
片芯片,若上层按字节编址而单片只出 1 字节,则字节地址的低 位就决定落在哪片——这与按字节交叉的 个体是同一个物理结构的两种说法。别因为"位扩展不需要片选译码"就认为不存在体号。
低位交叉的流水线访问
CPU 发出读连续
时序图(
| 时刻 | ||||||||
|---|---|---|---|---|---|---|---|---|
| 体 0 | 启动 | 忙 | 忙 | 忙 | 出 | |||
| 体 1 | 启动 | 忙 | 忙 | 忙 | 出 | |||
| 体 2 | 启动 | 忙 | 忙 | 忙 | 出 | |||
| 体 3 | 启动 | 忙 | 忙 | 忙 | 出 |
每个体自己都要占满

图 7.14 4 体交叉轮流访问方式
教材这张时序图更能说明问题:四个体的"单体访存周期"是互相重叠的,每个体自己仍然要花满一个
读取
单体存储读取
带宽计算:先判是哪一问
这里是本篇最容易翻车的地方——"最大带宽"和"读一组字的平均带宽"是两个不同的量,公式不同,差出的倍数还不小。拿到题先判问的是哪个。
模型一:稳态最大带宽(问"最大带宽"用这个)
流水线满载之后,每隔
也就是单体带宽的
例:4 体低位交叉,
单体只有
编者注(卷面):这一步的论证句要写出来——「
体低位交叉并行工作,最大带宽 字宽 存储周期」。真题判分维度点名要这句,只给数字会扣分。
模型二:读一组 个字的时间(含冷启动)
如果问的是"连续读
第一个字要等满一个
例:4 体,
单体读 4 个字要
模型三:题目给了"送首地址时间"的突发传送
有的题会把一次突发访问的三段全给出来,这时按三段直接相加,别套公式:
例:8 体低位交叉,送首地址 5 ns,存储周期 40 ns,总线一拍 5 ns,每字 4 B,读 32 B(8 个字)。
论证句同样要写:8 个体的准备是重叠的,只需等第一个体的 40 ns,不是
三个模型怎么选
| 题目问什么 | 用哪个 |
|---|---|
| 最大带宽 / 稳态带宽 / 峰值带宽 | 模型一 |
| 连续读 | 模型二 |
| 题干显式给了送首地址时间、问一次突发多久 | 模型三 三段相加 |
交互可视化
无冲突访问条件
低位交叉存储器流水线工作时,要求前一次对某体的访问在下一次访问该体之前完成。因此必须满足:
即存储周期
低位交叉的局限
- 连续地址访问效果好,随机访问没有优势
- 体数
一般取 2 的幂(便于硬件实现模 运算用位选择代替除法) - 如果多个体同时被访问(如指令流水线取指与数据访问冲突),仍然可能产生冲突
考点清单
- 低位交叉:体号 = 地址 mod
,相邻地址在不同体,支持流水线访问 - 高位交叉:体号 = 地址高位,相邻地址在同一体,无法并行
- 低位交叉读
个字的时间: ,而非 - 最大带宽
单体的 倍(稳态,问"最大带宽"用这条) - 读一组
字的平均带宽 ,含冷启动,倍数小于 ——两条别混用 - 卷面必须写论证句:「
体并行,最大带宽 字宽 存储周期」「只等第一个体的 ,不是 」 - 无冲突条件:
(体数必须足够多) - 体数
通常取 2 的幂,体号取地址低 位;判同体只看十六进制末位
教材出处
- 袁春风《计算机组成与系统结构(第 3 版)》§7.2.6 多模块存储器:图 7.13(p218)、图 7.14(p218)