Skip to content

2018年 408 计算机组成原理 第 17 题

计算机组成原理2018年选择题2分

题目

假定 DRAM 芯片中存储阵列的行数为 r、列数为 c,对于一个 2K×1 位的 DRAM 芯片,为保证其地址引脚数最少,并尽量减少刷新开销,则 r、c 的取值分别是( )。

错因

A

把"地址引脚最少"想成"行数最少",所以选 1 列。但 DRAM 用"行/列地址复用"——同一组引脚分时传行号和列号——引脚数 = ,由 r 和 c 中较大者决定。本选 r=2048、c=1,max = 2048 → 引脚 11 个,远不是最少;而且行数 2048 → 刷新 2048 次,开销大。

B

地址引脚数算对了 6 个(max(64, 32) = 64,log₂64 = 6),但行列方向选反——r=64 行 → 每个刷新周期要刷 64 行;选 r=32(即 C)只需刷 32 行,刷新开销减半。在引脚数相同的两个方案里,要选行数更少的。

D

只考虑刷新最少(行数 1,刷新只 1 次),但 c=2048 → 引脚要 11 个。题面是两个目标的复合优化,不能只优化一个。

总解析

第一步:理解 DRAM 地址引脚复用

DRAM 总容量 = (位)。由于行地址和列地址分时通过同一组引脚送入(先送行 RAS,再送列 CAS),地址引脚数:

要让引脚数最少 → max(r, c) 最小 → r 和 c 越接近越好(在 的约束下)。

第二步:列出所有合法的 (r, c) 组合

,且

rcmax(r,c)引脚数 ⌈log₂ max⌉
12048204811
21024102410
45125129
82562568
161281287
3264646 ← 最小
6432646 ← 最小
128161287
............
20481204811

引脚数最少的方案是 r=32, c=64r=64, c=32——两种 max 都等于 64,引脚数都是 6。

第三步:在引脚数相同的两个方案里选刷新少的

DRAM 刷新是按行刷新——每个刷新周期把所有行依次刷一遍。行数越少 → 一个刷新周期内要做的工作越少 → 刷新开销越小

方案引脚行数 r刷新开销
r=64, c=32664 行较大
r=32, c=64632 行较小 ← 选这个

最终答案是 C(r=32, c=64)

示意结构(32 行 × 64 列的存储阵列):

        列 0   列 1   列 2  ...  列 63
       ┌────┬────┬────┬────┬────┐
行 0   │ □  │ □  │ □  │... │ □  │
行 1   │ □  │ □  │ □  │... │ □  │
...    │... │... │... │... │... │
行 31  │ □  │ □  │ □  │... │ □  │
       └────┴────┴────┴────┴────┘

地址引脚复用:先送 5 位行号(log₂32=5),再送 6 位列号(log₂64=6)
        实际共用 6 根( max(5, 6)=6 )
刷新:32 行,每个刷新周期遍历 32 行即可

易错点速查

  1. DRAM 引脚数公式 = (行列复用),不是
  2. 引脚最少 → r 和 c 接近正方形(在面积 给定时 max 最小)
  3. 刷新按行,行越少刷新越省
  4. 两个目标排序:引脚数最少为主,刷新最少为辅(题面用"保证 X,并尽量 Y"明示了主次)

最后更新:

⚠️ 这道题暂未配可视化,欢迎在 CodeBrick 反馈区告诉我们你想看哪道题