引言
在计算机组成原理和存储器系统的学习中,DRAM(动态随机存取存储器)的刷新机制是一个关键问题。许多同学在学习时会遇到一个疑问:
“为什么异步刷新的刷新信号周期可以直接用
总时间/行数
计算(如2ms/32=62.5μs
),而集中刷新和分散刷新却需要考虑刷新操作占用的时间?”
这篇文章将系统性地分析 三种DRAM刷新方式(集中刷新、分散刷新、异步刷新),解释为什么异步刷新可以“直接除”,而其他方式不行,并探讨现代DRAM控制器如何优化刷新调度。
1. DRAM为什么需要刷新?
DRAM存储数据的方式是利用 电容电荷,但电荷会随时间泄漏,因此必须定期刷新(重新写入)以保持数据。
刷新关键参数:
-
刷新间隔(Refresh Interval, tREFI):通常为 2ms(所有存储单元必须在2ms内刷新一次)。
-
刷新一行的时间(tRC/tRFC):约 50-100ns(不同DRAM标准不同)。
-
行数(Rows):例如,32×32结构的DRAM有32行。
2. 三种DRAM刷新方式
(1) 集中刷新(Burst Refresh)
-
方式:在
2ms
的末尾,集中连续刷新所有行,期间CPU无法访问内存(产生“死时间”)。 -
计算:
-
总刷新时间 = 行数 × 每行刷新时间(
t_RC
)。 -
例如:32行 × 100ns = 3.2μs 的“死时间”。
-
必须扣除刷新时间,否则CPU会在这3.2μs内完全停止。
-
(2) 分散刷新(Distributed Refresh)
-
方式:在每个正常读写周期后插入一个刷新周期,均匀分布刷新操作。
-
计算:
-
刷新周期 = 一个正常读写周期+一个刷新周期。
-
必须扣除刷新时间,因为刷新操作会占用总线周期。
-
(3) 异步刷新(Asynchronous Refresh)
-
方式:由DRAM控制器管理刷新,刷新请求以固定间隔(如62.5μs)发出,但实际刷新操作可以“排队”执行。
-
计算:
-
刷新信号周期 =
2ms / 32 = 62.5μs
。 -
不扣除刷新时间,因为:
-
刷新操作由控制器动态调度,可以在内存空闲时执行。
-
只要保证
2ms
内完成所有刷新,不严格要求每次刷新按时完成。
-
-
3. 为什么异步刷新可以“直接除”?
关键区别:刷新调度方式
刷新方式 | 是否扣除刷新时间 | 原因 |
---|---|---|
集中刷新 | ✔️ 扣除 | 连续刷新,CPU完全停止访问 |
分散刷新 | ✔️ 扣除 | 每次刷新占用固定周期 |
异步刷新 | ❌ 不扣除 | 刷新操作由控制器动态调度 |
-
异步刷新的优势:
-
刷新请求以固定间隔(62.5μs)发出,但实际刷新可以延迟执行。
-
DRAM控制器会检查内存状态:
-
如果内存忙(CPU正在读写),延迟刷新。
-
如果内存空闲,立即执行刷新。
-
-
最终保证
2ms
内完成所有行刷新,但不严格要求每次刷新按时完成。
-
类比理解
-
集中刷新:像“期末考试周”,所有复习(刷新)集中在几天,期间不干别的。
-
分散刷新:像“每天复习1小时”,固定占用时间。
-
异步刷新:像“设定复习提醒,但可以灵活安排”,只要在截止日期前完成即可。
4. 现代DRAM控制器如何优化刷新?
现代DRAM(如DDR4/DDR5)采用 异步刷新 + 智能调度:
-
刷新请求 以固定间隔(如62.5μs)发出。
-
DRAM控制器 动态管理刷新:
-
如果内存正在被访问,推迟刷新。
-
如果内存空闲,立即执行刷新。
-
-
避免CPU停顿,提高系统性能。
5. 为什么书本上不同刷新方式计算方式不同?
-
集中/分散刷新 是早期DRAM的实现方式,刷新操作严格占用时间,必须扣除。
-
异步刷新 是现代DRAM的主流方式,刷新由控制器优化,不严格占用周期,因此可以“直接除”。
6. 总结
刷新方式 | 计算方式 | 是否扣除刷新时间 | 适用场景 |
---|---|---|---|
集中刷新 | 总刷新时间 = 行数 × t_RC | ✔️ 扣除 | 早期DRAM |
分散刷新 | 刷新周期 = (总时间/行数) - t_RC | ✔️ 扣除 | 低性能系统 |
异步刷新 | 刷新周期 = 总时间/行数 | ❌ 不扣除 | 现代DRAM |
关键结论:
-
异步刷新 的刷新信号周期可以“直接除”(如
2ms/32=62.5μs
),因为刷新操作由控制器动态调度,不占用固定时间。 -
集中/分散刷新 必须扣除刷新时间,因为刷新操作会固定占用周期。
7. 延伸思考
-
如果刷新操作时间很长(如高温下
t_RC
增加),异步刷新是否仍然有效?-
是的,但需要更智能的调度策略,避免刷新堆积。
-
-
DDR5如何进一步优化刷新?
-
采用 Same-Bank Refresh,允许部分Bank刷新,其余Bank仍可访问。
-
结语
DRAM刷新机制是计算机体系结构中的重要话题,理解不同刷新方式的区别有助于优化内存性能。异步刷新凭借其灵活性成为现代DRAM的主流方案,而集中/分散刷新的计算方式则反映了早期硬件的限制。希望这篇文章能帮助大家彻底理解这个问题! 🚀