| 命令 | ↑ 沿锁存 | 动作 | 合法前提 |
|---|---|---|---|
| RAS ↑ / ACTIVATE | ADDR → 行地址寄存器 | WLr 拉高,整行 8 位 → 行缓冲,状态 IDLE → ACTIVE | 当前为 IDLE;跨行必须先 PRECHARGE |
| CAS ↑(读) | ADDR → 列地址寄存器;行缓冲[col] → Dout 的 D 触发器 | 输出 1 位,Q(t+1)=D @ ↑CAS | 必须已 ACTIVE |
| CAS ↑(写,WE=1) | ADDR → 列地址寄存器 | Din 写入选中单元并同步更新行缓冲 | 必须已 ACTIVE |
| PRECHARGE | — | 行缓冲回写阵列、位线预充、字线关闭 → IDLE | 已 ACTIVE |
| REFRESH | — | 逐行 ACTIVATE + PRECHARGE 回写,恢复电容电荷 | 仅 DRAM 衰减模式有效 |
行缓冲是「同时更新」的另一种形态:ACTIVATE 时整行 8 位被同时采样进灵敏放大器(等价于 8 个 D 触发器在同一 ↑ 沿取各自 D),
所以必须先用旧阵列值做快照再统一写入行缓冲,不能边读边改 —— 与「8 个 FF 共享 CLK」那一关是同一条物理约束。
和前两关的代价对照:串行挑战用 1 个 FF、64 个 ↑ 沿输出一句话;并联寄存器用 8 个 FF、8 个 ↑ 沿;
行列寻址用 64 个单元、64 次 CAS 但只需 8 次 ACTIVATE —— 同一行内 7 次是 Row Hit,不必重复激活。
真实 SDRAM 的 tRCD / tRP / CL 时序、Bank 交错、x8/x16 位宽组织都是在这套状态机上叠加的。
DRAM 电荷衰减模式是教学简化:每个周期内未被激活的行电荷 −1,归零后原本为 1 的位会掉成 0(标 ⚠);
ACTIVATE 会恢复该行电荷,REFRESH 批量恢复全阵列。已丢失的数据无法靠刷新找回 —— 这正是 DRAM 必须周期性刷新的原因。
SRAM 用 6 管锁存器(本质就是本系列一直在讲的 D 触发器/双稳态),只要供电就不需要刷新。