从电容放电到纳秒级信号完整性:DDR内存的四十年技术演进
当我们按下电源键,计算机在数秒内完成启动,屏幕上的像素开始闪烁。这背后,每秒钟有数十亿次数据传输在内存条与处理器之间发生。一根普通的DDR4内存条,每秒钟能传输超过20GB的数据——相当于在一秒钟内传输5部高清电影。这种惊人的性能并非一蹴而就,而是四十年持续技术演进的结果。
一个晶体管与一个电容的精密舞蹈
DRAM(动态随机存取存储器)的基本存储单元结构堪称工程设计中"简约而不简单"的典范:一个晶体管和一个电容(1T1C)。这种结构决定了DRAM的所有特性,也埋下了它所有技术挑战的种子。
graph LR
subgraph "DRAM存储单元"
WL[字线 Word Line] --> TG[晶体管]
TG --> C[电容]
BL[位线 Bit Line] --> TG
C --> GND[接地]
end
当字线(Word Line)被激活时,晶体管导通,电容与位线相连。如果电容存储了电荷(逻辑1),电荷会流向位线;如果电容没有电荷(逻辑0),位线上的电荷会流向电容。这个看似简单的过程,实际上隐藏着一个关键问题:电容的电荷会随时间泄漏。
为什么DRAM需要刷新
电容的物理特性决定了它无法长期保存电荷。在室温下,DRAM单元中的电荷通常会在几十毫秒内泄漏到无法区分逻辑状态的程度。这就是DRAM被称为"动态"的原因——它需要持续不断的刷新操作来维持数据。
刷新操作的本质是:读取每个存储单元的内容,然后重新写入。标准DDR内存需要在64毫秒内完成所有行的刷新(在高温环境下这个时间会缩短到32毫秒)。这意味着控制器必须周期性地中断正常读写操作,执行刷新命令。
刷新带来的性能开销是可观的。以一个8Gb的DDR4芯片为例,它有8192行需要刷新。每隔 $\frac{64ms}{8192} \approx 7.8\mu s$ 就需要执行一次刷新,每次刷新持续约 $tRFC$ 时间(DDR4-2400约为350ns)。在高负载场景下,刷新操作可能导致5-10%的性能损失。
gantt
title DRAM刷新时序示意图
dateFormat X
axisFormat %s
section 正常操作
读写操作1 :0, 100
读写操作2 :150, 250
读写操作3 :400, 500
section 刷新周期
刷新命令1 :crit, 300, 350
刷新命令2 :crit, 550, 600
银行、行、列:地址空间的层次化组织
DDR内存的地址空间不是简单的线性结构,而是采用了精巧的层次化组织。理解这个结构对于优化内存性能至关重要。
graph TB
subgraph "DDR地址结构"
Rank[Rank/通道] --> Bank0[Bank 0]
Rank --> Bank1[Bank 1]
Rank --> BankN[Bank N]
Bank0 --> Row0[Row 0]
Bank0 --> Row1[Row 1]
Bank0 --> RowN[Row N]
Row0 --> Col0[Column 0]
Row0 --> Col1[Column 1]
Row0 --> ColN[Column N]
end
Bank的并行性设计
一个DDR芯片内部包含多个Bank(DDR4有16个Bank,分为4个Bank Group)。每个Bank是一个相对独立的存储阵列,拥有自己的行缓冲区(Row Buffer)。这种设计的妙处在于:当访问一个Bank时,其他Bank可以进行预充电或激活操作,从而实现流水线化的访问。
当一个Bank的某一行被激活(Activate)后,这行的数据被复制到行缓冲区。后续对同一行的访问(Row Hit)可以直接从行缓冲区进行,延迟极低(约 $tCL$ 时间)。但如果需要访问不同行(Row Conflict),则必须先将当前行写回(Precharge),再激活新行,这个过程的延迟可达 $tRCD + tRP + tCL$ 甚至更长。
行缓冲区命中率是影响内存性能的关键因素。对于顺序访问模式,命中率可以达到90%以上;而对于随机访问,命中率可能降至50%以下。这就是为什么同样的内存条,在不同工作负载下性能差异巨大的原因。
地址解码的复杂性
DDR的地址引脚数量是有限的(DDR4有17个地址引脚),但需要寻址的空间却很大。解决方案是时分复用:行地址和列地址共用同一组引脚。
一个典型的DDR4地址解码过程如下:
- ACTIVATE命令:发送行地址,激活目标行
- READ/WRITE命令:发送列地址,读写目标列
- PRECHARGE命令:关闭当前行,准备激活新行
这种复用机制虽然节省了引脚,但也带来了访问延迟——每次行切换都需要两个命令周期。
时序参数:性能与稳定的精密平衡
DDR内存的时序参数是工程师与物理定律博弈的结果。每个参数都代表了特定操作所需的最小时间,是保证数据正确性的底线。
CL(CAS Latency):列地址选通延迟
CL是最广为人知的时序参数,它定义了从读命令发出到数据出现在数据总线上的时间。但CL只是一个"峰值"指标——它只在行缓冲区命中的情况下适用。
$$CL = \frac{tCL}{tCK}$$其中 $tCK$ 是时钟周期。DDR4-3200 CL16 的含义是:在3200 MT/s的数据传输率下,读取延迟为16个时钟周期。换算成绝对时间:
$$tCL = 16 \times \frac{1}{1600MHz} = 10ns$$有趣的是,随着频率提升,虽然CL周期数增加了,但绝对延迟反而略有下降。DDR4-3200 CL16的延迟比DDR3-1600 CL10更短。
tRCD:行地址到列地址延迟
tRCD(RAS to CAS Delay)定义了ACTIVATE命令之后,必须等待多久才能发出READ或WRITE命令。这个时间用于等待字线电压稳定,确保存储单元正确连接到位线。
$$tRCD_{min} \approx t_{WL\_ramp} + t_{sense\_amp}$$其中 $t_{WL\_ramp}$ 是字线电压上升时间,$t_{sense\_amp}$ 是敏感放大器的响应时间。
tRP:行预充电时间
tRP定义了PRECHARGE命令之后,必须等待多久才能激活新行。预充电的本质是将位线电压恢复到参考电平,为下一次感应做准备。
$$tRP_{min} \approx \frac{C_{BL} \times V_{BL}}{I_{precharge}}$$其中 $C_{BL}$ 是位线电容,$V_{BL}$ 是位线电压摆幅,$I_{precharge}$ 是预充电电流。
tRAS:行激活时间
tRAS定义了ACTIVATE命令之后,必须等待多久才能发出PRECHARGE命令。这个时间用于确保数据被正确恢复到存储电容中。
$$tRAS_{min} = tRCD + tRTP + tWR$$其中 tRTP 是读取到预充电的时间,tWR 是写恢复时间。这个公式揭示了时序参数之间的内在关联。
tRC:行周期时间
tRC是两个连续ACTIVATE命令到同一Bank的最小间隔时间:
$$tRC = tRAS + tRP$$这是单Bank场景下的最坏情况访问延迟。对于DDR4-3200,tRC通常在45ns左右。
tREFI:刷新间隔
tREFI定义了两次刷新命令之间的平均间隔时间。在正常温度下,tREFI = 7.8μs;在高温模式下(85°C以上),tREFI减半至3.9μs。
控制器可以通过发送多条刷新命令来"预刷新",从而在某些时段获得更长的无刷新窗口。但刷新命令的总数必须在规定时间内完成。
tWR:写恢复时间
tWR定义了写操作完成后,必须等待多久才能发出PRECHARGE命令。这个时间确保数据被正确写入存储电容。
写入操作比读取更复杂,因为需要将外部数据放大到足够驱动存储电容的电平。tWR通常比CL更长,这也是为什么写操作的吞吐量往往低于读操作的原因。
Command Rate:命令速率
Command Rate(CR)定义了连续命令之间的最小间隔。CR=1T意味着每个时钟周期可以发出一个命令;CR=2T则意味着需要等待两个周期。
Command Rate主要影响命令总线的利用率。在高负载场景下,CR=2T可能成为性能瓶颈;但在信号完整性较差的情况下(如多Rank配置),CR=2T可以提高稳定性。
从DDR1到DDR5:预取架构的持续进化
DDR技术的每一代演进,核心都是如何在保持(或降低)延迟的同时提升带宽。预取(Prefetch)架构是实现这一目标的关键技术。
预取的基本原理
预取是指在每个时钟周期内,从存储阵列读取多于一位的数据。DDR的"双倍数据率"指的是在时钟的上升沿和下降沿都传输数据,而预取则进一步提升了内部数据宽度。
graph LR
subgraph "DDR预取架构演进"
DDR1[DDR1: 2n预取] --> DDR2[DDR2: 4n预取]
DDR2 --> DDR3[DDR3: 8n预取]
DDR3 --> DDR4[DDR4: 8n预取 + Bank Group]
DDR4 --> DDR5[DDR5: 16n预取]
end
DDR1:开创性的双倍数据率
DDR1采用2n预取架构,每个内部时钟周期读取2位数据。核心频率与I/O频率相同,但在时钟的两个边沿都传输数据,实现了相比SDRAM翻倍的带宽。
DDR1的工作电压为2.5V,最高频率达到400 MT/s(兆传输/秒)。在今天看来,这些数字显得相当原始,但DDR1奠定了后续所有技术演进的基础。
DDR2:四倍预取与电压降低
DDR2将预取宽度提升到4n,核心频率翻倍,I/O频率达到核心频率的两倍。这种设计使得在不显著提高存储阵列速度的情况下,实现了带宽的翻倍。
DDR2的工作电压降至1.8V,最高频率达到1066 MT/s。电压降低不仅减少了功耗,也降低了信号摆幅,为更高频率铺平了道路。
DDR2还引入了posted CAS命令和可选的片上终结(ODT)技术。posted CAS允许在ACTIVATE命令之后立即发送READ/WRITE命令(命令在内部等待tRCD时间),提高了命令总线的效率。
DDR3:八倍预取与更低电压
DDR3将预取宽度进一步提升到8n,工作电压降至1.5V。最高频率达到2133 MT/s,是DDR2的两倍。
DDR3的一个重要改进是引入了异步复位功能,简化了初始化过程。同时,DDR3将芯片密度从DDR2的最大4Gb提升到8Gb,为更大容量内存条铺平了道路。
DDR4:Bank Group与性能跃升
DDR4在DDR3的8n预取基础上,引入了Bank Group架构。每个Bank Group可以独立操作,实现了更高的内部并行性。
graph TB
subgraph "DDR4 Bank Group架构"
BG0[Bank Group 0] --> B0[Bank 0]
BG0 --> B1[Bank 1]
BG0 --> B2[Bank 2]
BG0 --> B3[Bank 3]
BG1[Bank Group 1] --> B4[Bank 4]
BG1 --> B5[Bank 5]
BG1 --> B6[Bank 6]
BG1 --> B7[Bank 7]
end
Bank Group的妙处在于:不同Bank Group之间可以更快速地切换。tCCD_L(同一Bank Group内连续命令的最小间隔)比tCCD_S(不同Bank Group之间)更长。例如,DDR4-3200的tCCD_L为4个时钟周期,而tCCD_S仅为4个时钟周期(但可以在更短的时间内切换)。
DDR4的工作电压进一步降至1.2V,最高频率达到3200 MT/s。同时引入了DBI(Data Bus Inversion)技术,通过在数据线中传输更多0来降低功耗和改善信号完整性。
DDR5:十六倍预取与架构重构
DDR5带来了革命性的变化。预取宽度提升到16n,工作电压降至1.1V,最高频率达到6400 MT/s(JEDEC标准),未来可能达到8400 MT/s。
更重要的是,DDR5将电源管理从主板移到了内存条上(PMIC),允许更精确的电压控制。单条内存条的带宽从DDR4的最大25.6 GB/s提升到DDR5的51.2 GB/s。
DDR5还引入了决策反馈均衡(DFE)技术,显著改善了信号完整性。同时,DDR5将单芯片密度提升到64Gb,使得单条内存条的容量可以达到128GB甚至更高。
Bank Group:并行性的新维度
DDR4引入的Bank Group架构是内存并行设计的重要里程碑。理解Bank Group的工作原理,对于优化高性能应用的内存访问模式至关重要。
Bank Group的时序特性
同一Bank Group内的Bank共享某些资源,因此切换Bank需要额外的延迟。不同Bank Group之间的Bank则完全独立,可以实现更高的并发度。
| 时序参数 | 含义 | 典型值(DDR4-3200) |
|---|---|---|
| tCCD_L | 同一Bank Group内连续CAS命令间隔 | 4-6 tCK |
| tCCD_S | 不同Bank Group间连续CAS命令间隔 | 4 tCK |
| tRCD_L | 同一Bank Group的tRCD | 与标准tRCD相同 |
| tRCD_S | 不同Bank Group的tRCD | 与标准tRCD相同 |
| tRP_L | 同一Bank Group的tRP | 与标准tRP相同 |
| tRP_S | 不同Bank Group的tRP | 与标准tRP相同 |
Bank Group与访问模式优化
Bank Group架构对内存访问模式提出了新的优化方向。理想情况下,连续访问应该尽可能分布在不同Bank Group中,以最小化tCCD_L的影响。
对于顺序访问,DDR4的Bank Group架构可以提供接近峰值的带宽。但对于随机访问,Bank Group的调度效率会显著下降。现代内存控制器通过复杂的调度算法(如First-Ready、FR-FCFS)来优化Bank Group的利用率。
信号完整性:高速信号的物理学
当数据传输率达到每秒数十亿次时,每一条信号线都变成了一个复杂的传输线。信号完整性问题成为制约DDR性能提升的关键因素。
飞越式拓扑(Fly-by Topology)
DDR3引入的Fly-by拓扑是解决信号完整性问题的重要创新。在传统的T型拓扑中,时钟和地址信号同时到达每个芯片;而在Fly-by拓扑中,信号依次经过每个芯片,形成菊花链结构。
graph LR
Controller[内存控制器] --> C1[芯片1]
C1 --> C2[芯片2]
C2 --> C3[芯片3]
C3 --> C4[芯片4]
Fly-by拓扑的优势在于减少了信号反射和驻波,但代价是不同芯片接收信号的时间不同。DDR3/4/5通过写均衡(Write Leveling)技术来补偿这种时间差异。
眼图与信号质量
眼图是评估高速信号质量的标准工具。一个理想的信号眼图应该有大的"眼睛"——宽的开眼时间意味着更大的时序裕量,高的开眼幅度意味着更大的电压裕量。
信号完整性问题会导致眼图闭合:
- 抖动(Jitter):减小水平开眼
- 噪声(Noise):减小垂直开眼
- 码间干扰(ISI):两者都影响
DDR5引入的眼图训练(Eye Training)技术可以在运行时自动调整采样点,以获得最佳信号质量。
决策反馈均衡(DFE)
DDR5引入的DFE技术是信号完整性领域的重要突破。DFE通过反馈回路来消除前一个符号对当前符号的影响,有效减少了码间干扰。
$$y[n] = x[n] - \sum_{k=1}^{N} h_k \cdot \hat{x}[n-k]$$其中 $x[n]$ 是接收到的信号,$h_k$ 是反馈滤波器的系数,$\hat{x}[n-k]$ 是已判决的符号。
DFE的代价是增加了复杂性和功耗,但对于6400 MT/s及以上的信号传输率,这已成为必要的技术手段。
内存训练:系统启动的精密校准
每当系统启动时,内存控制器都会执行一系列复杂的训练和校准操作,以确保信号时序的精确对齐。这个过程决定了内存系统能否稳定工作在标称频率。
ZQ校准:阻抗的精确匹配
ZQ校准用于调整DRAM芯片的输出驱动阻抗和片上终结(ODT)阻抗,使其与PCB走线的特征阻抗匹配。现代DDR芯片内部有精密的校准电路,通过测量外部精密电阻(通常为240Ω)来校准内部阻抗。
ZQ校准分为两种:
- 长校准(ZQCL):复位后或长时间未校准时执行,耗时较长
- 短校准(ZQCS):周期性执行,校准增量变化
阻抗匹配的重要性可以用信号反射来解释。当信号遇到阻抗不连续点时,部分能量会被反射。反射信号会叠加在原始信号上,造成波形畸变。阻抗匹配越好,反射越小,信号质量越高。
写均衡:补偿Fly-by延迟
写均衡用于确定每个DRAM芯片相对于控制器的写时钟延迟。由于Fly-by拓扑导致不同芯片接收时钟信号的时间不同,控制器需要为每个芯片调整数据发送时间,以确保数据与时钟在DRAM端正确对齐。
写均衡的过程是一个迭代的反馈循环:
- 控制器发送写均衡训练命令
- DRAM返回DQS(数据选通)信号
- 控制器调整DQS延迟,直到DQS边沿与时钟边沿对齐
- 保存延迟值,用于后续写操作
读/写中心化:优化采样点
读中心化训练用于确定读取数据时的最佳采样点。控制器通过不断调整读取延迟,找到数据眼图的中心位置,最大化时序裕量。
写中心化训练则用于调整写数据相对于写时钟的延迟,确保DRAM能够在最佳时序接收数据。
这些训练过程需要数百次甚至数千次的迭代,每次迭代都涉及实际的读写操作。DDR5甚至引入了片上眼图训练功能,可以持续监测信号质量并进行动态调整。
功耗管理:性能与能效的权衡
内存功耗在系统总功耗中占有相当比例,在服务器系统中甚至可能超过处理器功耗。DDR技术的每一代演进都在努力降低功耗,同时提供更强的性能。
低功耗模式
DDR内存支持多种低功耗模式,从浅度睡眠到深度断电:
| 模式 | 描述 | 唤醒时间 | 功耗降低 |
|---|---|---|---|
| Active | 正常工作状态 | - | 基准 |
| Precharge Power-down | 行关闭后的掉电 | 数个时钟周期 | ~40% |
| Active Power-down | 行打开时的掉电 | 数个时钟周期 | ~30% |
| Self-refresh | 自刷新模式 | 数百纳秒 | ~90% |
| Deep Power-down | 深度断电 | 数毫秒 | >99% |
自刷新模式下,DRAM芯片内部生成自己的刷新时钟,控制器可以完全关闭。这对于笔记本电脑等移动设备的续航至关重要。
电压与频率缩放
DDR4和DDR5支持运行时电压调整。通过降低电压和频率,可以显著减少功耗,代价是性能下降。
功耗与电压的关系是非线性的:
$$P_{dynamic} \propto C \times V^2 \times f$$其中 $C$ 是电容,$V$ 是电压,$f$ 是频率。电压降低10%,动态功耗可降低约19%。
温度感知功耗管理
DRAM芯片内部有温度传感器,控制器可以根据温度调整刷新率和操作参数。在高温环境下,刷新频率自动加倍(tREFI减半),以防止数据丢失。某些系统还会在高温时降低频率,以减少发热。
实际性能:超越规格表的数据
内存条规格表上标注的时序参数(如CL16-18-18-38)只是冰山一角。实际性能受到众多因素的影响,理解这些因素对于系统设计和性能优化至关重要。
带宽计算
理论峰值带宽的计算公式是:
$$BW_{peak} = \frac{Transfer\ Rate \times Channel\ Width \times Channels}{8}$$例如,DDR4-3200双通道配置的理论带宽为:
$$BW_{peak} = \frac{3200 \times 10^6 \times 64 \times 2}{8} = 51.2\ GB/s$$但实际有效带宽通常只有理论值的50-80%。造成差距的原因包括:
- 时序参数引入的延迟
- 刷新操作的中断
- 访问模式的影响(随机vs顺序)
- 控制器调度的效率
- 信号完整性裕量
多通道架构的影响
现代处理器通常支持双通道甚至四通道内存。多通道架构通过增加总数据宽度来提升带宽,而不是提高单通道频率。
多通道配置的优势不仅在于带宽,还在于更好的行缓冲区命中率。当数据分布在多个通道时,每个通道的行冲突概率降低,平均延迟减少。
但多通道也有代价:
- 更复杂的主板布线
- 更高的功耗
- 更严格的时序匹配要求
Rank交织
Rank是指一组可以同时访问的DRAM芯片。一个内存条可以有单Rank、双Rank或四Rank配置。
Rank交织是一种性能优化技术,它将连续数据分布在不同Rank中,使得当一个Rank在执行预充电或激活操作时,另一个Rank可以进行读写操作。这种流水线化可以显著提升顺序访问的吞吐量。
Rank切换延迟(tRTW、tWTR等)会影响Rank交织的效率。双Rank配置通常比单Rank配置有更好的性能,但Rank数量过多会增加控制器复杂度和切换开销。
未来趋势:三维堆叠与带宽革命
DDR技术在过去二十年里不断提升频率和带宽,但物理定律的约束越来越明显。当信号在PCB走线上传输时,每毫米的延迟都在累积,每一段阻抗不连续都在反射能量。三维堆叠技术代表了突破这一困境的方向。
HBM:高带宽内存
高带宽内存(HBM)通过硅通孔(TSV)技术将多层DRAM芯片垂直堆叠,直接与处理器封装在一起。这种设计大大缩短了信号路径,实现了远超传统DDR的带宽。
HBM3的带宽可达每堆栈819 GB/s,是DDR5的16倍。代价是极高的成本和复杂的制造工艺。HBM目前主要用于高性能计算和人工智能加速器,不适合消费级应用。
3D DRAM:单片三维集成
传统的DRAM制造工艺限制了一颗芯片的容量。3D DRAM通过在单一芯片上垂直堆叠存储单元,突破了这一限制。
3D DRAM的关键技术包括:
- 垂直晶体管:存储单元沿垂直方向排列
- 层间互连:实现层与层之间的高速数据传输
- 热管理:解决堆叠带来的散热问题
业界预计3D DRAM将在未来五年内开始量产,容量密度有望提升4-8倍。
近内存计算
当内存带宽成为瓶颈时,一种激进的思路是:把计算搬到内存里。近内存计算(Near-Memory Computing)和存内计算(Processing-in-Memory)将处理单元直接集成到内存芯片中。
这种架构可以消除数据传输延迟,特别适合需要大规模数据并行处理的场景,如神经网络推理、图计算等。但编程模型的复杂性限制了它的广泛应用。
光互连的前景
光信号具有更高的带宽和更低的衰减。光互连技术有望在未来取代电信号,实现处理器与内存之间的超高速通信。
光互连的挑战在于:
- 光电转换的功耗和延迟
- 光器件的尺寸和成本
- 与现有CMOS工艺的兼容性
虽然短期内光互连还无法进入消费级产品,但在数据中心领域,已经开始出现光互连技术的商用部署。
timeline
title DDR技术演进时间线
section 早期时代
2000 : DDR1 : 2.5V, 2n预取, 400 MT/s
section 快速发展
2004 : DDR2 : 1.8V, 4n预取, 1066 MT/s
2007 : DDR3 : 1.5V, 8n预取, 2133 MT/s
section 现代架构
2014 : DDR4 : 1.2V, Bank Group, 3200 MT/s
2020 : DDR5 : 1.1V, 16n预取, PMIC, 6400 MT/s
section 未来方向
2025+ : HBM3 : 堆叠架构, 819 GB/s
2027+ : 3D DRAM : 垂直存储单元
四十年前,DRAM的访问延迟约为100纳秒,带宽约为每秒几兆字节。今天,DDR5的延迟仍然在10-20纳秒量级,带宽却已达到每秒数十吉字节。带宽提升了数千倍,延迟却只改善了几倍。这种不对称的发展轨迹,揭示了计算系统的一个基本矛盾:存储与处理之间的速度差距。
DDR技术的演进史,是一部与物理极限抗争的历史。从简单的电容存储到复杂的三维堆叠,从单端信号到差分时钟,从T型拓扑到Fly-by架构,每一项创新都是为了在信号完整性和带宽之间寻找新的平衡点。
理解DDR内存的技术原理,不仅有助于我们设计更高性能的系统,更能让我们对计算机系统有更深入的认识。在这个数据驱动的时代,内存技术的每一次进步,都在拓展着计算的边界。
参考资料
-
JEDEC Standard No. 21-C, “DDR4 SDRAM Standard”, JESD79-4, JEDEC Solid State Technology Association, 2020.
-
JEDEC Standard No. 21-C, “DDR5 SDRAM Standard”, JESD79-5, JEDEC Solid State Technology Association, 2020.
-
Jacob, B., Ng, S. W., & Wang, D. T. (2010). Memory Systems: Cache, DRAM, Disk. Morgan Kaufmann.
-
Lee, J., et al. (2015). “Design and Analysis of a 40nm 2Gb DDR4 SDRAM with硅集成技术”, IEEE Journal of Solid-State Circuits.
-
Kim, Y., et al. (2014). “Flipping Bits in Memory Without Accessing Them: An Experimental Study of DRAM Disturbance Errors”, ISCA 2014.
-
Mutlu, O., & Kim, J. S. (2019). “RowHammer: A Retrospective”, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.
-
Lee, D., et al. (2017). “Design-Induced Latency Variation in Modern DRAM Chips: Characterization, Analysis, and Latency Reduction Mechanisms”, MICRO 2017.
-
Chang, K., et al. (2016). “Understanding Latency Variation in Modern DRAM Chips: Experimental Characterization and Analysis”, SIGMETRICS 2016.
-
Hassan, H., et al. (2021). “A Case for Transparent Reliability in DRAM Systems”, ISCA 2021.
-
Kim, J., et al. (2018). “D-RaNGe: Using DRAM Decay for True Random Number Generation”, ISCA 2018.