扫码加入

  • 正文
  • 相关推荐
申请入驻 产业图谱

DRAM刷新原因以及机制详解

2025/11/07
3567
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

欢迎各位朋友关注“郝旭帅电子设计团队”公众号,本公众号会定时更新相关技术类资料、软件等等,感兴趣的朋友可以浏览一下本公众号的其他“模块”,希望各位朋友都能在本公众号获得一些自己想要的“东西”。

本篇主要是DRAM刷新原因以及机制详解

用一句话概括:  DRAM需要刷新是因为它利用电容来存储数据,而电容会漏电。

DRAM的存储原理:电容

可以想象DRAM中的每一个存储单元(存储一个比特0或1)就像一个小小的水桶。

存储“1”:给这个“水桶”(电容)充电,让它里面有水(电荷)。

存储“0”:把这个“水桶”放空,里面没有水(电荷)。

这个设计非常简单,因此DRAM的结构可以做得非常小,集成度很高,所以才能用较低的成本制造出容量巨大的内存条。

问题的根源:电容漏电

现在问题来了:这些“水桶”(电容)并不是完全密封的,它们会漏电。

无论这个“水桶”里是有水(代表“1”)还是空的(代表“0”),在经过一小段时间(通常是64ms)后,由于物理上的漏电,电荷都会慢慢流失。

如果放任不管,一个原本存储着“1”(有水)的单元,会因为电荷漏光而变成“0”(空桶),数据就丢失了。

解决方案:定时刷新

为了解决漏电导致的数据丢失问题,工程师设计了一个非常简单直接的方案:在数据还没完全丢失之前,重新把它写一遍。

这个过程就是 “刷新”。

继续用水桶的比喻:  有一个管理员,它会定期(比如每64毫秒一次)检查所有的水桶。如果看到一个水桶里有水(“1”),它就赶紧往里再加点水,让它恢复到满的状态。如果看到一个水桶是空的(“0”),它就确认一下它是空的,然后离开。这样,就能保证每个水桶里的状态(数据)始终是正确的。

在技术上,刷新操作并不是真正去“读取”数据再“写入”。它是由内存控制器发起一个仅行地址有效的命令。当DRAM芯片收到刷新命令后,它会选中某一行,内部的感应放大器会将该行所有电容的电压恢复到初始的满值(“1”)或确认的空值(“0”),从而完成数据的重写。

刷新带来的影响(副作用)

性能开销:在刷新过程中,被刷新的那一行(或整个Bank)是不可访问的。如果CPU恰好在这个时候需要读取或写入正在被刷新的内存地址,它就必须等待刷新完成。这会带来微小的延迟。

功耗:刷新操作需要不断地激活电路,对电容进行充电,这会消耗额外的电能。

为什么不用不需要刷新的内存?

你可能会问,有没有不用刷新的内存?有,比如SRAM。

SRAM使用晶体管来构成一个稳定的电路(触发器)来存储数据,只要通电,数据就会一直保持,不需要刷新。

优点:速度极快(CPU的高速缓存就是用SRAM做的),没有刷新开销。

缺点:结构复杂,一个SRAM单元需要6个晶体管,而一个DRAM单元只需要1个晶体管+1个电容。这意味着SRAM的成本高、密度低、功耗大。

权衡的结果是:为了制造出容量大、价格便宜的主内存,我们选择了DRAM,并接受了它需要“刷新”这个小小的代价。

总结


所以,“刷新”是DRAM为了达成高容量、低成本目标而采用电容存储技术所必须付出的代价,是它工作原理中不可或缺的一部分。

本篇内容中有部分资源来源于网络,如有侵权,请联系作者。

如果您觉得本公众号还不错的话,可以推给身边的朋友们,感谢并祝好!

相关推荐