Skip to main content
QUICK REVIEW

[论文解读] Using ECC DRAM to Adaptively Increase Memory Capacity

Yixin Luo, Saugata Ghose|arXiv (Cornell University)|Jun 27, 2017
Parallel Computing and Optimization Techniques参考文献 28被引用 12
一句话总结

本文提出 CREAM,一种硬件机制,可在应用程序不需要强可靠性时,动态重用于 ECC DRAM 的保留纠错码空间以增加额外数据容量。通过支持从无纠错到多比特奇偶校验的多种可靠性级别,CREAM 在不牺牲关键工作负载的错误鲁棒性的情况下提升了可用 DRAM 容量,在数据库和网页搜索工作负载中分别实现了 23.0% 和 37.3% 的性能提升。

ABSTRACT

Modern DRAM modules are often equipped with hardware error correction capabilities, especially for DRAM deployed in large-scale data centers, as process technology scaling has increased the susceptibility of these devices to errors. To provide fast error detection and correction, error-correcting codes (ECC) are placed on an additional DRAM chip in a DRAM module. This additional chip expands the raw capacity of a DRAM module by 12.5%, but the applications are unable to use any of this extra capacity, as it is used exclusively to provide reliability for all data. In reality, there are a number of applications that do not need such strong reliability for all their data regions (e.g., some user batch jobs executing on a public cloud), and can instead benefit from using additional DRAM capacity to store extra data. Our goal in this work is to provide the additional capacity within an ECC DRAM module to applications when they do not need the high reliability of error correction. In this paper, we propose Capacity- and Reliability-Adaptive Memory (CREAM), a hardware mechanism that adapts error correcting DRAM modules to offer multiple levels of error protection, and provides the capacity saved from using weaker protection to applications. For regions of memory that do not require strong error correction, we either provide no ECC protection or provide error detection using multibit parity. We evaluate several layouts for arranging the data within ECC DRAM in these reduced-protection modes, taking into account the various trade-offs exposed from exploiting the extra chip. Our experiments show that the increased capacity provided by CREAM improves performance by 23.0% for a memory caching workload, and by 37.3% for a commercial web search workload executing production query traces. In addition, CREAM can increase bank-level parallelism within DRAM, offering further performance improvements.

研究动机与目标

  • 数据中心中的许多应用程序并不需要强纠错能力,但可从额外的 DRAM 容量中受益。
  • 当前的 ECC DRAM 模块将 12.5% 的容量专用于纠错,但对于不需要该功能的应用程序而言处于闲置状态。
  • 目标是动态调整 ECC DRAM,以提供可变的可靠性级别,并将释放的容量暴露给不需要完整纠错的应用程序。
  • 该机制必须在保持低性能开销的同时,支持可靠性与内存容量之间的灵活权衡。
  • 系统应同时支持关键工作负载的完整可靠性,以及对不太关键或更具容错能力的工作负载的低保护模式。

提出的方法

  • CREAM 重新组织 ECC DRAM 模块内的数据布局,当不需要纠错时,将原本用于 SECDED 码的空间重用于数据存储。
  • 它支持多种可靠性级别:完整 SECDED、轻量级多比特奇偶校验,以及无纠错,具体取决于应用程序需求。
  • 内存控制器和 DRAM 互连芯片经过修改,以在内存区域级别动态切换保护级别。
  • 评估了多种数据布局策略,以最小化性能下降,包括行缓冲局部性和跨 bank 并行性的权衡。
  • 系统通过硬件级控制实现保护模式切换,无需操作系统或 MMU 修改,确保开销极低。
  • CREAM 通过为需要它的区域保留完整纠错功能,与现有 ECC DRAM 保持向后兼容。

实验结果

研究问题

  • RQ1当应用程序不需要强纠错时,DRAM 模块中预留的 ECC 空间是否可以动态重用于数据存储?
  • RQ2在 DRAM 中使用减少或无纠错时的性能权衡是什么,特别是关于缓存争用和行缓冲局部性方面?
  • RQ3如何重构 ECC DRAM 中的数据布局,以在最小化性能下降的同时最大化可用容量?
  • RQ4SECDED 保护区域与无纠错区域的比例变化对整体系统性能有何影响?
  • RQ5能否设计一种硬件机制,在无需操作系统或 MMU 修改的情况下,支持灵活的可靠性与容量权衡?

主要发现

  • 对于数据库系统中的内存缓存工作负载,CREAM 通过增加可用 DRAM 容量,实现了 23.0% 的性能提升。
  • 对于使用真实查询追踪的商用网页搜索工作负载,CREAM 因内存容量增加而实现了 37.3% 的性能提升。
  • CREAM 的性能下降极小,在所有测试配置下最大仅下降 4.0%,即使在高内存强度下也如此。
  • 相比之下,虚拟化 ECC(VECC)在类似条件下性能下降高达 25.1%,凸显了 CREAM 的高效性。
  • CREAM 保持了较高的 bank 级并行性,并且在从 SECDED 切换到无纠错区域时,也未造成显著的行缓冲局部性损失。
  • 当不需要 ECC 保护时,CREAM 在 DRAM 模块中实现了 12.5% 的额外数据容量,且不损害关键工作负载的可靠性。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。