文章目录

  • 一、背景小知识
  • 1.1 DRAM的层次结构
  • 1.2 刷新要求
  • 1.3 DRAM存储芯片的读写时序
  • 1.4 刷新方式分类
  • 参考文献


RAM每一位数据都是通过芯片内的一个 小电容充电(或低电平)存储的。但随着时间的推移,电容逐渐失去电荷。为避免丢失存储的数据,必须 定期刷新以将电荷(如果存在)恢复到其原始级别。此刷新过程包括读取每个位的值,然后将其写回。在此“刷新”期间,内存被占用,无法执行加载或存储位等正常操作。知道了应该这么做,但怎么去做以及有什么办法更有效率去做,就是接下来要整理的内容。

一、背景小知识

动态随机存储器(DRAM)具有速度快、密度高、成本低的优势,被广泛应用于计算机的主存.DRAM采用电容作为存储单元,电容电荷的多少表示数字"0"或"1".由于存在漏电现象,电容里的电荷会缓慢流失,造成数据丢失.为保证数据正确性,DRAM采用周期性的刷新操作,在数据丢失前,把数据读出然后重新写入存储单元.刷新操作会阻碍正常访存的执行,造成性能上的开销;同时刷新操作会消耗额外的功耗,带来功耗上的开销.刷新的开销与DRAM密度相关。随着内存容量需求的增加,DRAM占系统整体功耗的比例可达40%。

1.1 DRAM的层次结构


从顶层到Rank,Chip,Bank,Sub-array,MAT,Cell。一个Chip内部包含有多个Bank,每个bank包含有独立的行地址译码器(row decoder)和感应放大器(sense amplifier)。一般认为,Bank 是DRAM完成独立操作的最小单元。继续往下划分又分为Sub-array,MAT,Cell,具体介绍可参加参考文献一。重点是知道每个存储单元由一个电容和一个晶体管组成,电容的电荷多少表示数字‘1’或‘0’,晶体管的栅极与字线(Wordline)相连,字线控制晶体管的导通,晶体管的漏极与位线(bitline)相连,导通时由位线表示单元里存储的数据。

1.2 刷新要求


JEDEC要求在常温下每64ms(高温下为32ms)刷新一遍所有DRAM存储单元。这是一项相当耗时的操作。为避免每64ms出现一次大的停顿,这一过程被分为8192个较小的刷新操作。在每个操作中,计算机的存储器控制器向DRAM芯片发送刷新命令。在接收到指令后,芯片将刷新其单元总数的1/8192。计算一下: 64ms / 8192 = 7812.5 ns或7.81μs。简化DRAM控制器设计,DRAM控制器只需要在每个刷新周期向每个Rank发送8192个刷新。根据自身密度决定刷新行数,DRAM控制器发送2个刷新命令之间的间隔为刷新周期的1/8192,定义为TREF1;DRAM芯片执行一个刷新命令的时间取决于DRAM芯片的密度,定义为TREC.因此每个间隔内需要刷新的行数增多,刷新所占的时间比例不断增大。以4Gb DDR3 DRAM 为例,要求在300ns内完成对64行(8个Bank,每个Bank刷新8行)的刷新操作。单行刷新的延迟大约为50ns,在300ns完成对64行的刷新操作,只能通过并行方式实现,并行单行刷新所消耗的叠加电流必须在DRAM容许范围内。

典型的内存芯片用于刷新的时间占其运行时间的很大一部分——介于0.4%到5%之间。此外,存储器芯片功耗是典型计算机功耗中的一大部分,并且大部分功耗都用于执行刷新。

一个bank内多行并行刷新,实现在TRFC刷新64行的操作。

1.3 DRAM存储芯片的读写时序

DRAM读周期:为了使芯片能正确地接收行、列地址并实现读操作,各信号的时间关系应符合下面的要求:行地址必须在RAS#信号有效之前送到芯片的地址输入端;CAS#信号应滞后RAS#一段时间,并滞后于列地址送到芯片地址输入端的时间;RAS#、CAS#应有足够的宽度;WE#信号为高,并在CAS#有效之前建立。

DRAM写周期:1、WE#信号为低,并在信号CAS#有效之前建立。2、数据必须在CAS#有效之前出现在DIN端。

1.4 刷新方式分类

  • 集中式刷新:在规定的一个刷新周期,对所有存储单元集中一段时间逐行刷新。

例如:对64✖64的矩阵刷新,存取周期是0.5us,刷新1行的时间为0.5μs(刷新时间是等于存取周期的。因为刷新的过程与一次存取相同,只是没有在总线上输入输出。存取周期>真正用于存取的时间,因为存取周期内、存取操作结束后仍然需要一些时间来更改状态。刷新周期为2ms(占4000个存取周期)。则集中刷新共需0.5✖64=32us(占64个存取周期),在这段时间内存只用来刷新,阻塞一切存取操作,其余3968个存取周期用来读/写或维持信息。

这64个存取周期称为“死时间”,所占的比率64/4000*100%=1.6%称为死时间率。

这种方式的优点是速度高,缺点是死时间长。

  • 分散式刷新:指对每行存储单元的刷新分散到每个存取周期内完成。其中,把机器的存取周期分成两段,前半段用来读/写或维持信息,后半段用来刷新。

例如:对64*64的矩阵刷新,存取周期是0.5us,则读写周为0.5us。

刷新周期为:64*1us=64us<2ms , 在2ms丢失电荷前就会及时补充。

优点是没有死时间了,缺点是速度慢。无异于加长了存取周期,会使系统运行速度降低,刷新操作也过于频繁。

  • 异步式刷新:指不规定一个固定的刷新周期,将每一行分来来看,只要在2ms内对这一行刷新一遍就行。

例如:对64*64的矩阵刷新,存取周期为0.5us。

要使每行能在2ms内刷新一次,即每隔 (2ms/64us) 刷新一行,也就是对这一行来说,下一次对它进行刷新的间隔,期间要经过64次内存刷新周期才又轮得到它。

每行刷新的时间仍为0.5us,刷新一行只停止一个存取周期,但对每行来说,刷新间隔在2ms以内,死时间缩短为0.5us。

参考文献

【1】崔泽汉, 陈明宇. 大容量DRAM的刷新开销问题及优化技术综述[J]. 计算机研究与发展, 2016, 53(2):416-430.

【2】JEDEC:Joint Electron Device Engineering Council. http://www.jedec.org 固态技术学会

【3】你的计算机内存每7.8微秒会有一个小停顿

【4】DRAM(动态)存储器

【5】刷新周期

【6】DRAM的三种刷新方式的刷新周期问题

【7】挑战408——组成原理(10)——SRAM与DRAM

DRAM刷新refresh相关知识归类-基础小知识(三)相关推荐

  1. 计算机编程的基础小知识

    一.编程基础小知识 1.内存条中一个元器件称为1Bit(位),大数据处理时可能会用到PB和EB 1Byte = 8 Bit 1KB = 1024Byte = 210Byte 1MB = 1024KB ...

  2. 笔记本计算机的清洁保养知识,笔记本电脑保养小知识

    笔记本电脑保养小知识 想要延长笔记本电脑的使用寿命,那么就要好好保养笔记本电脑,下面小编为大家介绍关于笔记本电脑的保养小知识,欢迎大家阅读! 笔记本电脑保养小知识1 屏幕保护 长时间不使用电脑时,可透 ...

  3. 计算机小知识140,电脑小知识140个小技巧(7)

    你做不知道的超级技巧 电脑小知识140个小技巧(7) 121.IE快捷键: Ctrl+W关闭窗口 F4打开地址拦的下拉选择网址 F6或ALT+D选择地址拦 空格键可以下翻页,Shift+空格则可以上翻 ...

  4. 二级计算机小知识,【学习小知识】--计算机二级office如何考优秀?

    原标题:[学习小知识]--计算机二级office如何考优秀? 计算机二级的学习已经过半,不知道大家都学习的怎么样呢?今天小编想向大家渗透一下如何考优秀? 1 1.Word 1. 文件保存时,文件名一定 ...

  5. 网页制作代码模板_科普:关于网页设计的4个基础小知识

    网站是企业展示形象.引流营销的重要互联网窗口,因此一定要设计得足够吸睛美观,引起顾客兴趣.今天就来教大家如何做好网页设计与制作. 提到网页设计,可能很多小白都要问了:网页设计用什么软件做?网页设计需要 ...

  6. 小程序执行运行过程原理_PLC的基础小知识!不用把PLC想的太难

    PLC实质上是工业计算机,是计算机技术与传统继电接触器控制器技术相结合的产物,只不过比一般的计算机具有更强的与工业过程相连接的接口和更直接的适用于工业控制要求的编程语言. 一.PLC的结构 从硬件结构 ...

  7. Java的一些基础小知识之JVM与GC (转)

    一.JVM是什么 Java虚拟机(英语:Java Virtual Machine,缩写为JVM),又名爪哇虚拟器,一种能够运行Java bytecode的虚拟机,以堆栈结构机器来进行实做.最早由太阳微 ...

  8. java程序员要知道的500个基础小知识

    目录 问题1:什么是注解(Annotation)?为什么在开发时候用注解? 细聊注解? 问题2:什么是反射? 做什么用的呢? 问题3:什么是泛型? 做什么用的呢? 问题4:为什么封装用包装类型不用基本 ...

  9. AD怎么输入坐标_CAD入门基础小知识(二)捕捉栅格绘制直线amp;使用坐标绘图...

    捕捉栅格绘制直线 摘要:直线是CAD设计图纸中最重要的组成元素,因此,本教程将以直线的绘制引导读者快速入门.栅格捕捉虽然不常用,确实精确定位尺寸最简单的方式,我们先从这种方式开始. 画直线之前,我们先 ...

最新文章

  1. 春天来了,苹果M2芯片3月面世!全线换新,单核性能远超M1 Max
  2. 【机器学习基础】前置知识(一):数学符号及希腊字母
  3. R语言paste函数
  4. 计算机无法使用光驱启动,电脑BIOS怎么设置光盘启动 三种类型BIOS设置光驱启动的图文详解教程...
  5. ArcGIS中栅格数据的金字塔详解
  6. 近期的技术问题让云供应商进行预设加密
  7. 6月14号=》136页-145页
  8. vue 事件调用 传参_高效开发小程序,Vue 和微信小程序的区别你该了解一下
  9. moxa串口卡Linux驱动,moxa多串口驱动下载
  10. 使用组策略为域用户配置IE使用代理服务器
  11. python允许无止境的循环_ParisGabriel:Python无止境 day07
  12. 电脑磁盘数据错误(循环冗余检查)的原因以及解决办法
  13. 【Failure while executing; `/bin/launchctl bootstrap gui/501 /Users/hml/Library/LaunchAgents/homebre】
  14. 2020-12-28 微信支付二面
  15. 做专业领域领航者 佳能正式推出了Professional Print Layout打印软件
  16. 苹果新专利曝光 背后有何暗示?
  17. 《模型轻量化-剪枝蒸馏量化系列》YOLOv5无损剪枝(附源码)
  18. 消除代码中的 if-else/switch-case的正确姿势
  19. 狼羊菜过河问题c语言算法,算法系列之十四:狼、羊、菜和农夫过河问题
  20. c语言整数编年历系统,作为程序员必须知道的编程语言编年史

热门文章

  1. [导入]人本是人,不必刻意去做人;世本是世,无须精心去处世
  2. 搭建Redis单机版
  3. tomcat的原理及作用
  4. su切换用户无需输入密码
  5. 3DMax基础骨架绑定教程
  6. 张尧学获奖申报材料,读后有感
  7. 2020哈工大计算机考研大纲,2020年哈尔滨工业大学854计算机基础硕士研究生入学考试科目大纲...
  8. 哈尔滨工业大学2021计算机考研大纲,哈尔滨工业大学土木工程学院2021年硕士研究生入学考试大纲...
  9. VS2012安装或更新NuGet插件
  10. WPS里如何去掉英文引号自动转换为中文引号?