Appearance
题目
某同步总线的时钟频率为 100MHz,宽度为 32 位,地址/数据线复用,每传输一个地址或数据占用一个时钟周期。若该总线支持突发(猝发)传输方式,则一次"主存写"总线事务传输 128 位数据所需要的时间至少是( )。
错因
A
把整个 128 位数据当成"总线一次传完"——1 个地址周期 + 1 个数据周期 = 2 周期 = 20 ns。这是没看懂"宽度 32 位"——总线一次只能搬 32 位,128 位需要拆成 4 次才能传完。
B
漏掉了地址周期——只算 128 位 / 32 位 = 4 个数据周期 × 10 ns = 40 ns。但一次主存写事务至少要先发出地址告诉内存"这一串数据写到哪里",地址周期不能省。
D
误以为"地址/数据线复用"意味着每个数据都要单独配一个地址周期——4 个数据 × 2 周期(地址 + 数据) = 8 周期 = 80 ns。这是把"突发传输"理解成了"每次都重发地址",没看到突发模式的核心优势就是只发一次起始地址、后续数据自动顺序写入。
总解析
第一步:算时钟周期
第二步:算需要几次"32 位传输"
第三步:理解"突发传输"的拍数构成
突发传输 = 1 次起始地址 + N 次连续数据:
| 周期 | 用途 |
|---|---|
| 1 | 发起始地址 |
| 2 | 发数据 1(自动写入起始地址处) |
| 3 | 发数据 2(自动写入下一个地址) |
| 4 | 发数据 3 |
| 5 | 发数据 4 |
总共 1 + 4 = 5 个时钟周期。
最终答案是 C(50 ns)。
为什么"突发"能省时间?
- 普通传输:每次都要 "发地址 + 发数据" 一对一对来 → 4 个数据需要 8 周期
- 突发传输:只发 1 次起始地址,地址自动递增 → 4 个数据只需 1 + 4 = 5 周期
突发传输的前提:
- 数据在主存中连续存放(地址自动递增才有效)
- 总线主从设备都支持突发协议(双方约定突发长度)
- 常用于 Cache 行装填——一次性把整个 Cache 行(如 64 字节)从主存读到 Cache,特别适合突发模式
判定要点:
| 题目特征 | 该用的算法 |
|---|---|
| "突发传输" / "猝发传输" | 1 地址 + N 数据 = 1 + N 周期 |
| 没说突发 / 普通同步总线 | N 个 (地址 + 数据) = 2N 周期 |
| 异步总线 | 还要加握手等待时间 |