[转帖]DRAM刷新refresh相关知识归类-基础小知识(三)

dram,刷新,refresh,相关,知识,归类,基础 · 浏览次数 : 0

小编点评

**背景小知识** * DRAM是一种电容存储器。 * 由于电容电荷缓慢流失,导致数据丢失,所以需要定期刷新以保持数据的完整性。 * 刷新操作会阻碍正常访存的执行,造成性能上的开销。 **一、背景小知识** * **DRAM的层次结构:** * Top Level:内存控制器。 * Rank:存储芯片的层次结构。 * Chip:存储芯片的最小单元。 * Bank:存储芯片中的每个 Bank。 * Sub-array:每个 Bank 的子区域。 * MAT:内存区域。 * Cell:内存单元。 * **刷新要求:** * 每 64ms(高温下为 32ms)刷新一遍所有 DRAM 存储单元。 * 为了避免每 64ms出现一次大的停顿,刷新过程被分为 8192 个较小的刷新操作。 **二、刷新方式** * **集中式刷新:** * 对所有存储单元集中一段时间逐行刷新。 * 优点:速度高,缺点:死时间长。 * **分散式刷新:** * 对每行存储单元的刷新分散到每个存取周期内完成。 * 优点:速度快,缺点:刷新效率低。 * **异步式刷新:** * 将每一行分来来看,只要在 2ms 内对这一行刷新一次就行。 **三、刷新周期问题** * 刷新周期问题指的是在每个存储单元上刷新所需的最小时间。 * 对于不同的刷新方式,刷新周期有所不同。 * 异步式刷新具有最低刷新周期,但性能最差。

正文

https://www.likecs.com/show-204642182.html#sc=1621

 


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

 

一、背景小知识

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

1.1 DRAM的层次结构

DRAM刷新refresh相关知识归类-基础小知识(三)
从顶层到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 刷新要求

DRAM刷新refresh相关知识归类-基础小知识(三)
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%之间。此外,存储器芯片功耗是典型计算机功耗中的一大部分,并且大部分功耗都用于执行刷新。
DRAM刷新refresh相关知识归类-基础小知识(三)

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

1.3 DRAM存储芯片的读写时序

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

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相关知识归类-基础小知识(三)相似的内容:

[转帖]DRAM刷新refresh相关知识归类-基础小知识(三)

https://www.likecs.com/show-204642182.html#sc=1621 文章目录 一、背景小知识 1.1 DRAM的层次结构 1.2 刷新要求 1.3 DRAM存储芯片的读写时序 1.4 刷新方式分类 参考文献 RAM每一位数据都是通过芯片内的一个小电容充电(或低电平)

[转帖]计算机体系结构-(2)内存数据保持和刷新

https://zhuanlan.zhihu.com/p/433151653 本人lino,即将毕业的研究生,在此记录下学习过程。本次记录跟随是苏黎世邦理工大学的计算机体系结构课程。 当在memory中存储数据时,数据的保留是个问题,可能会丢失这个数据。因此本次内容围绕着DRAM进行深度探索,了解其

[转帖]报告称三星电子 DRAM 市场份额创 8 年来新低

https://www.ithome.com/0/652/399.htm IT之家 11 月 9 日消息,根据最新的报告,三星电子在全球 DRAM 市场的份额已跌至八年来的最低点。 据 Eugene Investment & Securities 11 月 8 日发布的报告,第三季度全球 DRAM

[转帖]深入内存/主存:解剖DRAM存储器

https://zhuanlan.zhihu.com/p/561501585 2022/9/9更新:经过和评论区大佬的交流,准备研读一下JEDEC标准,主要是加深自己对banking和访存加速的理解(对应本文的第五节,主要问题集中在提出banking是为了隐藏row缺失造成的损失还是为了隐藏CPU和

[转帖]深入内存/主存:解剖DRAM存储器

https://zhuanlan.zhihu.com/p/561501585 2022/9/9更新:经过和评论区大佬的交流,准备研读一下JEDEC标准,主要是加深自己对banking和访存加速的理解(对应本文的第五节,主要问题集中在提出banking是为了隐藏row缺失造成的损失还是为了隐藏CPU和

[转帖]磁盘缓存和内存缓存的区别

内存缓存 高速缓存(英语:cache,英语发音:/kæʃ/ kash [1][2][3],简称缓存),其原始意义是指访问速度比一般随机存取存储器(RAM)快的一种RAM,通常它不像系统主存那样使用DRAM技术,而使用昂贵但较快速的SRAM技术。 原理 Cache一词来源于1967年的一篇电子工程期刊

[转帖]《Linux性能优化实战》笔记(八)—— 内存是怎么工作的

一、 内存映射 我们通常所说的内存容量,指的是物理内存。物理内存也称为主存,大多数计算机用的主存都是动态随机访问内存(DRAM)。只有内核才可以直接访问物理内存。那么,进程要访问内存时,该怎么办呢? Linux 内核给每个进程都提供了一个独立的虚拟地址空间,并且这个地址空间是连续的。这样,进程就可以

[转帖]

Linux ubuntu20.04 网络配置(图文教程) 因为我是刚装好的最小系统,所以很多东西都没有,在开始配置之前需要做下准备 环境准备 系统:ubuntu20.04网卡:双网卡 网卡一:供连接互联网使用网卡二:供连接内网使用(看情况,如果一张网卡足够,没必要做第二张网卡) 工具: net-to

[转帖]

https://cloud.tencent.com/developer/article/2168105?areaSource=104001.13&traceId=zcVNsKTUApF9rNJSkcCbB 前言 Redis作为高性能的内存数据库,在大数据量的情况下也会遇到性能瓶颈,日常开发中只有时刻

[转帖]ISV 、OSV、 SIG 概念

ISV 、OSV、 SIG 概念 2022-10-14 12:29530原创大杂烩 本文链接:https://www.cndba.cn/dave/article/108699 1. ISV: Independent Software Vendors “独立软件开发商”,特指专门从事软件的开发、生产、