[Quick Read] 借助AI工具泛读笔记 (by txyz.ai
)
[Title] Adaptive-Latency DRAM: Optimizing DRAM Timing for the Common-Case
[Author] Donghyuk Lee, Yoongu Kim, Gennady Pekhimenko,Samira Khan, Vivek Seshadri, Kevin Chang, Onur Mutlu (CMU)
[评价] 没硬件的话有点难做,思想很不错很实际可借鉴
摘要指出,当前系统中,对DRAM芯片的内存访问必须遵守DRAM标准规定的一组最小延迟限制。这些时间参数存在是为了保证可靠性操作。在决定时间参数时,DRAM制造商会考虑到两种最坏情况,并在时间参数中加入很大的余量。首先,由于工艺变化,一些异常芯片比其他芯片慢得多,无法以更快的速度运行。其次,芯片在较高温度下变慢,所有芯片都需要在最高支持的(即最坏情况)DRAM温度(85摄氏度)下可靠运行。作者展示了在典型温度下(例如55摄氏度)运行的典型DRAM芯片能够提供更小的访问延迟,但仍然被迫以最坏情况的最大延迟运行。他们的目标是利用内置在DRAM时间参数中的额外余量来提高性能。通过基于FPGA的测试平台,他们首先对来自三家主要制造商的115个DRAM模块的额外余量进行了表征。结果表明,在55摄氏度下,可以将四个最关键的时间参数最小/最大降低17.3%/54.8%,而不会牺牲正确性。基于这一表征,他们提出了自适应延迟DRAM(AL-DRAM),一种根据当前运行条件自适应减少DRAM模块时间参数的机制。AL-DRAM不需要对DRAM芯片或其接口进行任何更改。他们在一个允许在运行时重新配置时间参数的真实系统上评估了AL-DRAM。他们展示了AL-DRAM将内存密集型工作负载的性能平均提高了14%,而不会引入任何错误。他们讨论并展示了为什么AL-DRAM不会损害可靠性。他们得出结论,动态优化DRAM时间参数可以可靠地提高系统性能。
在Introduction中,DRAM芯片由基于电容器的单元组成,以电荷形式表示数据。为了在单元中存储数据,需要注入电荷,而为了从单元中检索数据,需要提取电荷。电荷的移动不仅是DRAM操作的核心,也是DRAM延迟的瓶颈。这是由于两个基本原因。
首先,在向单元注入电荷时,通过传递电荷的位线阻碍了电荷的流动。由于位线的大电阻和大电容,单元经历了较大的RC延迟,这增加了单元完全充电所需的时间。
其次,在从单元中提取电荷时,单元无法将大量电荷强劲地流出自身并进入位线。受其小电容器中存储的有限电荷量的限制,单元具有固有的弱电荷驱动力,随着单元将更多电荷输送到位线而进一步减弱。因此,单元无法快速(甚至完全)为位线充电。当访问DRAM芯片时,需要一定时间,足够的电荷才能移动到单元(或位线)中,以便数据能够可靠存储(或检索)。为了保证这种行为,DRAM制造商对DRAM访问施加了一组最小延迟限制,称为时序参数。
理想情况下,时序参数应该提供足够的时间让DRAM芯片正确运行。然而,在实践中,DRAM制造商在时间参数中悲观地加入了很大的余量,以确保在最坏情况下的正确操作。这是因为两个主要原因。
首先,由于工艺变化,一些异常单元比其他单元具有更大的RC延迟,需要更多时间来充电。
其次,由于温度依赖性,所有单元在高温下具有较弱的电荷驱动力,需要更多时间来为位线充电。DRAM单元本质上是漏电的,即使在未被访问时也会失去一些电荷。在高温下,这种泄漏呈指数增长,使得单元在被访问时剩余的电荷更少,从而增加了位线充电所需的时间。
因此,DRAM制造商规定的时序参数是由最坏情况下(即最慢的单元)在最坏情况下(最高温度85摄氏度)运行所决定的。DRAM制造商的这种悲观态度是出于希望(i)提高芯片产量和(ii)减少芯片测试时间的动机。制造商受到DRAM市场极度成本敏感的特性驱使,鼓励他们采用悲观的时间参数,而不是(i)丢弃具有最慢单元的芯片或(ii)在较低温度下测试芯片。最终,悲观态度的负担转嫁给最终用户,他们被迫忍受比在常见情况下实际需要的更大的延迟。
关于DRAM的详细描述可以参见博客首页Tutorial部分PIM/NDP模块的内容。
以下是对Tutorial部分的补充:
DRAM单元在每次访问期间经历的五种不同状态,包括预充电状态、激活状态、电荷共享状态、感应放大器启用状态和预充电状态。在激活命令下,DRAM会增加字线电压,将单元连接到位线,然后单元将其电荷驱动到位线,直到它们的电压相等。这些状态和操作过程揭示了DRAM的工作原理和命令执行过程。
本节介绍了DRAM单元的操作受到电荷数量和电荷移动延迟之间的重要关系的影响。电荷数量和延迟之间存在密切关联,二者相互影响。具体来说,电荷移动的速度会影响延迟的长短,而延迟的变化也会影响电荷的移动速度。在该章节中,通过图示展示了DRAM单元和位线在不同状态下的电压变化情况,包括预充电状态、电荷共享状态、感放大状态、恢复状态等。这些状态中电压变化缓慢的时期也是电荷移动缓慢的时期。作者提出了三个观察结果:
在感放大阶段开始时,位线电压越高,感放大器启动得越快。当感放大器开始注入更多电荷到位线时,形成正反馈循环,使位线电压迅速增加,从而加快了感放大器的启动速度
感放大器开始检测到在前一阶段电荷共享时位线电压的增加,然后开始向位线注入更多电荷,进一步增加电压,从而触发了一个正反馈循环,使位线电压迅速增加
当位线电压增加时,正反馈循环会加速位线电压的上升速度,使位线电压在感放大阶段的初始部分迅速攀升。因此,如果在感放大阶段开始时位线电压较高,那么正反馈循环会使位线电压更快地上升,从而加快了整个过程的进行。
这些观察结果为优化DRAM的时序参数提供了理论基础和实践指导。
在本章节中,作者详细解释了典型情况和最坏情况之间的电荷差距对DRAM时序参数的影响。首先,作者指出,根据三个观察结果,如果DRAM单元具有足够的电荷,那么时序参数可以被缩短。特别是在典型温度下,典型单元通常具有更多的电荷,这为缩短时序参数提供了机会。
在Process Variation节中,作者详细解释了处理变异对DRAM单元电荷接收和保持能力的影响。处理变动是一个众所周知的现象,会导致芯片的设计与实际实现之间存在偏差。DRAM单元受处理变异的影响主要体现在两个方面:电容和电阻。一些异常的单元可能无法按照设计要求制造,其中最坏情况的单元与典型单元相比,电荷较少。这是由于最坏情况单元的电阻较大,无法快速允许电荷流入;同时,由于其电容较小,即使充满电荷,也无法存储太多电荷。为了适应这种最坏情况单元,现有的时序参数被设置为较大的值。然而,最坏情况的单元相对较少,大多数系统实际上具有比所需更多的电荷,这为缩短时序参数提供了机会。
在Temperature Dependence节中,作者讨论了温度依赖性对DRAM单元的影响。温度依赖性是一个众所周知的现象,即随着温度每增加10°C,单元泄漏电荷的速率几乎翻倍。在典型温度和最坏情况温度下,单元泄漏电荷的速率都更快。因此,最坏情况单元不仅起始电荷较少,而且由于在更快的速率下泄漏电荷,最终剩余电荷也更少。为了适应处理变异和温度依赖性的综合影响,现有的时序参数被设置为非常大的值。然而,大多数系统并不在85°C的最坏情况温度下运行,因此大多数DRAM模块实际上具有比所需更多的电荷,这为缩短时序参数提供了机会。
Reliable Operation with Shortened Timing节主要讨论了DRAM单元的电荷间隙问题。根据前文的三个观察结果,我们了解到如果单元具有足够的电荷,那么时序参数可以被缩短。在典型温度下,典型单元通常具有更多的电荷。这是因为处理变异和温度依赖性会影响DRAM单元接收和保持电荷的能力。处理变异会导致一些异常单元无法按照设计要求制造,这些最坏情况的单元电荷较少。而温度依赖性会导致单元在较高温度下泄漏电荷的速率增加,使得最坏情况单元不仅起始电荷较少,而且泄漏电荷速率更快。因此,现有的时序参数被设置为较大的值以适应这些情况。然而,大多数系统实际上不会在最坏情况的85°C温度下运行,而是在更低的温度下运行,这为缩短时序参数提供了机会
Adaptive-Latency DRAM(AL-DRAM)是一种实用机制,旨在利用以下观察结果。其关键思想是根据每个模块的延迟特性和温度动态调整DRAM的时序参数,以便根据当前的操作条件动态优化时序参数。AL-DRAM的硬件成本非常低,无需对DRAM进行任何更改。通过在真实系统上评估AL-DRAM,可以动态重新配置时序参数。对于各种内存密集型工作负载,AL-DRAM将系统性能提高了平均14.0%,最高可达20.5%,而不会引入错误。AL-DRAM的提出旨在利用DRAM的额外时序参数裕度,以提高性能。AL-DRAM的实施不会影响可靠性,并且可以在运行时可靠地优化DRAM的时序参数,从而提高系统性能。
AL-DRAM,允许内存控制器通过为每个DIMM/温度组合使用定制的(积极的)定时参数,利用不同工作温度下的DRAM模块(DIMM)之间的延迟变化。我们的机制包括两个步骤:
识别每个DIMM/温度的最佳定时参数
执行,其中内存控制器动态提取每个DIMM的工作温度,并为每个DIMM/温度组合使用最佳定时参数。
在"Identifying the Best Timing Parameters"章节中,提出了一种挑战性的方法,即在不同温度下为每个DIMM识别最佳时序参数。研究建议DRAM制造商在测试阶段为每个DRAM芯片在不同温度下确定最佳时序参数,并将这些信息与DIMM一起以简单的表格形式提供。由于该提议仅涉及更改四个时序参数(tRCD、tRAS、tWR和tRP),因此,表格的大小较小,可以潜在地嵌入到每个DIMM中的Serial Presence Detect电路中。这种方法的成本预计较低,因为DRAM制造商已经拥有一个详尽的测试机制来识别有缺陷的DIMM。另一种执行此分析步骤的替代方法是在最终用户系统中使用在线测试,在系统运行时进行。研究留待未来工作探索这种在线测试机制。这种动态强制执行最佳时序参数的方法在内存控制器中相对简单。内存控制器为所有连接到控制器的DIMM填充一个硬件表,其中包含不同温度下每个DIMM的最佳时序参数。内存控制器将时间分成规则间隔(例如256毫秒)。在每个间隔的开始,它提取每个DIMM的温度。然后,在整个间隔期间,它使用与每个DIMM温度相对应的最佳时序参数来执行所有访问。这种方法在实践中应该能够很好地工作,因为在真实系统中温度变化不会非常频繁。此外,现有的DRAM设计(例如LPDDR3和最近宣布的DDR4)已经具有内置的DRAM温度传感器,以最小化自刷新能量。通过在自动刷新期间(通常每7.8微秒执行一次)访问DRAM温度传感器的温度值,我们的机制可以监测DRAM温度,而无需任何性能惩罚,并且足够频繁以侦测即使是急剧的温度变化。
在"Enforcing Dynamic Timing Parameters"章节中,提到了内存控制器如何动态强制执行最佳时序参数。具体来说,内存控制器会为连接到控制器的所有DIMM填充一个硬件表,其中包含不同温度下每个DIMM的最佳时序参数。在每个时间间隔的开始,内存控制器会提取每个DIMM的温度,并在接下来的时间间隔内使用与每个DIMM温度相对应的最佳时序参数来执行所有访问。这种方法在实践中应该能够很好地工作,因为在真实系统中温度变化不会非常频繁。现有的DRAM设计已经具有内置的DRAM温度传感器,以最小化自刷新能量,并且我们的机制可以在自动刷新期间访问DRAM温度传感器的温度值,以监测DRAM温度,而无需任何性能惩罚,并且足够频繁以侦测即使是急剧的温度变化。
在"DRAM Latency Profiling Methodology"章节中,描述了作者们建立了一个基于FPGA的DRAM性能测试基础设施,并介绍了用于表征DRAM模块访问延迟变化的方法论。该基础设施包括使用Xilinx ML605板卡连接到主机机器的FPGA,具有DDR3 DRAM内存控制器。作者们定制了内存控制器,以便在运行时从主机机器更改DRAM时序参数。为了在不同操作温度下测试DRAM模块,他们建立了一个包括热封闭器、加热器和温度控制器的加热室,其中包含热电偶传感器。在测试过程中,加热室内的温度保持在目标温度的±0.5°C范围内。作者们展示了对来自三家不同DRAM制造商在过去5年(2010年至2014年)生产的115个DRAM模块的结果。大多数模块是DDR3-1600 SO-DIMM,具有标准的时序参数。他们的性能测试实验的目标是确定不同时序参数可以减少的量而不会引起任何错误。测试包括读操作和写操作两种类型,分别用于探索不同时序参数的减少。读测试旨在探索tRCD、tRAS和tRP的减少,而写测试旨在探索tWR的减少。测试设计精心,以在电路组件之间产生合理的耦合噪声,并生成功率噪声。读测试和写测试的步骤都经过详细描述,包括测试地址、测试数据模式和目标时序参数。通过这些测试,作者们展示了他们的提议在耦合和功率噪声方面接近最坏情况,以强调其可靠性。
在"DRAM Latency Profiling Results and Analysis"章节中,作者们展示了对115个DRAM模块进行的性能测试实验结果和分析。通过使用基于FPGA的测试平台,他们对这些模块进行了详细的特性分析,揭示了DRAM访问延迟的变化情况。在测试过程中,作者们设计了读操作和写操作两种类型的测试,以探索不同时序参数的减少。读测试旨在探索tRCD、tRAS和tRP的减少,而写测试旨在探索tWR的减少。测试设计精心,以在电路组件之间产生合理的耦合噪声,并生成功率噪声。通过这些测试,作者们展示了可以在不引起任何错误的情况下,将四个最关键的时序参数在55°C下平均减少17.3%、37.7%、54.8%和35.2%。这些结果表明,通过利用DRAM时序参数中内置的额外裕度,可以提高性能而不牺牲可靠性。这一研究结果为提出的Adaptive-Latency DRAM(AL-DRAM)机制提供了支持,该机制可以根据当前操作条件动态优化DRAM模块的时序参数,从而提高内存密集型工作负载的性能。AL-DRAM的实验结果显示,平均可以提高14%的系统性能,同时不引入错误,从而证明了动态优化DRAM时序参数可以可靠地提高系统性能3