当前位置: 首页 > news >正文

深入理解DRAM刷新机制:异步刷新为何无需扣除刷新时间?

引言

在计算机组成原理和存储器系统的学习中,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

    • 不扣除刷新时间,因为:

      1. 刷新操作由控制器动态调度,可以在内存空闲时执行。

      2. 只要保证 2ms 内完成所有刷新,不严格要求每次刷新按时完成。


3. 为什么异步刷新可以“直接除”?

关键区别:刷新调度方式

刷新方式是否扣除刷新时间原因
集中刷新✔️ 扣除连续刷新,CPU完全停止访问
分散刷新✔️ 扣除每次刷新占用固定周期
异步刷新❌ 不扣除刷新操作由控制器动态调度
  • 异步刷新的优势

    • 刷新请求以固定间隔(62.5μs)发出,但实际刷新可以延迟执行

    • DRAM控制器会检查内存状态:

      • 如果内存忙(CPU正在读写),延迟刷新

      • 如果内存空闲,立即执行刷新。

    • 最终保证 2ms 内完成所有行刷新,但不严格要求每次刷新按时完成。

类比理解

  • 集中刷新:像“期末考试周”,所有复习(刷新)集中在几天,期间不干别的。

  • 分散刷新:像“每天复习1小时”,固定占用时间。

  • 异步刷新:像“设定复习提醒,但可以灵活安排”,只要在截止日期前完成即可。


4. 现代DRAM控制器如何优化刷新?

现代DRAM(如DDR4/DDR5)采用 异步刷新 + 智能调度

  1. 刷新请求 以固定间隔(如62.5μs)发出。

  2. DRAM控制器 动态管理刷新:

    • 如果内存正在被访问,推迟刷新

    • 如果内存空闲,立即执行刷新。

  3. 避免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的主流方案,而集中/分散刷新的计算方式则反映了早期硬件的限制。希望这篇文章能帮助大家彻底理解这个问题! 🚀

http://www.dtcms.com/a/107466.html

相关文章:

  • 风电行业预测性维护解决方案:给风机装上 “智能医生”,实现故障 “秒级预警”
  • HTMX构建无重载闪烁的交互式页面
  • Vue开发系列——npm镜像问题
  • Frida Hook Native:jobjectArray 参数解析
  • SQL Server 增删改查详解
  • 使用pytesseract和Cookie登录古诗文网~(python爬虫)
  • 从Hugging Face下载Qwen/Qwen2-Audio-7B-Instruct模型到本地运行,使用python实现一个音频转文字的助手
  • 树莓派超全系列教程文档--(21)用户配置
  • 芋道源码——Spring Cloud Bus RocketMQ 入门
  • 《全栈+双客户端Turnkey方案》架构设计图
  • 软件版本号递增应该遵循的规范
  • 分层防御:对称与非对称加密如何守护数字世界
  • 0402-对象和类(访问器 更改器 日期类)
  • 北方算网获邀在中关村论坛发言 解析人工智能+产业落地核心路径
  • 【数据库原理及安全实验】实验一 数据库安装与创建
  • openEuler24.03 LTS下安装HBase集群
  • YOLO学习笔记 | 基于YOLOv5的车辆行人重识别算法研究(附matlab代码)
  • Ubuntu 22.04 安装和运行 EDK2 超详细教程
  • 门控循环单元(GRU)基础学习与实例:电影评论情感分类
  • 微信小程序开发-01.介绍
  • Java 基础-29-final关键字-详解
  • 当网页受到DDOS网络攻击有哪些应对方法?
  • 【mysql 的安装及使用】
  • SuperMap GIS基础产品FAQ集锦(20250402)
  • 02_使用Docker在服务器上部署Jekins实现项目的自动化部署
  • Docker Registry 清理镜像最佳实践
  • 06-21-自考数据结构(20331)- 查找技术-动态查找例题分析
  • 02-Docker 使用
  • libevent 核心数据结构
  • AI 数字人短视频数字人源码部署揭秘:开启虚拟内容创作新纪元​