Skip to main content
QUICK REVIEW

[论文解读] Exploiting the DRAM Microarchitecture to Increase Memory-Level Parallelism

Yoongu Kim, Vivek Seshadri|arXiv (Cornell University)|May 4, 2018
Parallel Computing and Optimization Techniques参考文献 46被引用 3
一句话总结

该论文提出了子阵列级并行机制——SALP-1、SALP-2 和 MASA,以利用 DRAM bank 内部的独立子阵列,减少内存请求的串行化。通过重叠子阵列之间的激活、访问和预充电延迟,这些技术在仅增加极小面积开销(<0.15%)的前提下,显著提升了内存级并行性,在多核系统中实现高达 20% 的性能提升,在单核系统中实现 17% 的性能提升,覆盖多种工作负载。

ABSTRACT

This paper summarizes the idea of Subarray-Level Parallelism (SALP) in DRAM, which was published in ISCA 2012, and examines the work's significance and future potential. Modern DRAMs have multiple banks to serve multiple memory requests in parallel. However, when two requests go to the same bank, they have to be served serially, exacerbating the high latency of on-chip memory. Adding more banks to the system to mitigate this problem incurs high system cost. Our goal in this work is to achieve the benefits of increasing the number of banks with a low-cost approach. To this end, we propose three new mechanisms, SALP-1, SALP-2, and MASA (Multitude of Activated Subarrays), to reduce the serialization of different requests that go to the same bank. The key observation exploited by our mechanisms is that a modern DRAM bank is implemented as a collection of subarrays that operate largely independently while sharing few global peripheral structures. Our three proposed mechanisms mitigate the negative impact of bank serialization by overlapping different components of the bank access latencies of multiple requests that go to different subarrays within the same bank. SALP-1 requires no changes to the existing DRAM structure, and needs to only reinterpret some of the existing DRAM timing parameters. SALP-2 and MASA require only modest changes (&lt; 0.15% area overhead) to the DRAM peripheral structures, which are much less design constrained than the DRAM core. Our evaluations show that SALP-1, SALP-2 and MASA significantly improve performance for both single-core systems (7%/13%/17%) and multi-core systems (15%/16%/20%), averaged across a wide range of workloads. We also demonstrate that our mechanisms can be combined with application-aware memory request scheduling in multicore systems to further improve performance and fairness.

研究动机与目标

  • 解决因多个请求访问同一 DRAM bank 而导致的性能下降问题,此类请求被串行化处理,增加了延迟并降低了带宽。
  • 克服单纯增加 bank 数量的局限性,因为这会带来高昂的系统成本,并且由于物理和设计限制,收益递减。
  • 利用现代 DRAM bank 中固有的子阵列级并行性——每个子阵列拥有独立的局部行缓冲——实现同一 bank 内不同子阵列的并发访问。
  • 通过允许多个子阵列同时被激活和访问,提升内存级并行性和行缓冲局部性,减少写恢复惩罚和行缓冲抖动。
  • 设计低开销、可扩展的机制,可无缝集成到现有 DRAM 架构中,无需重大重构,从而实现实际部署。

提出的方法

  • 提出 SALP-1,一种无需任何硬件更改的机制,通过重新解释现有 DRAM 时序参数,实现子阵列级并行性。
  • 引入 SALP-2,对 DRAM 外围结构(如行译码器和预充电逻辑)进行微小修改,以支持子阵列访问延迟的重叠。
  • 设计 MASA(多组激活子阵列),一种更先进的方案,可实现单个 bank 内多个子阵列的并行激活与访问,显著提升行缓冲利用率。
  • 利用激活和预充电操作在很大程度上局限于子阵列的特性,使这些操作即使在同一个 bank 内部,也能在不同子阵列之间重叠执行。
  • 通过聚焦于外围结构而非存储核心,最小化面积开销,确保面积增加低于 0.15%(SALP-2 和 MASA 均满足)。
  • 在多核系统中将 SALP 与应用感知内存调度相结合,进一步提升性能和公平性。

实验结果

研究问题

  • RQ1是否可以在不增加 bank 数量的前提下,利用子阵列级并行性来减少单个 DRAM bank 内部内存请求的串行化?
  • RQ2为实现同一 bank 内不同子阵列的并发访问,所需的最小架构修改是什么?同时需保持向后兼容性和低面积成本。
  • RQ3重叠子阵列访问延迟在多大程度上能够提升内存级并行性,减少写恢复惩罚和行缓冲抖动?
  • RQ4子阵列级并行性在单核和多核系统中对多样化工作负载的性能影响如何?
  • RQ5SALP 是否能与软件级内存调度有效结合,进一步提升共享内存环境中系统的性能和公平性?

主要发现

  • SALP-1、SALP-2 和 MASA 在多样化工作负载下,分别将单核系统性能平均提升 7%、13% 和 17%。
  • 在多核系统中,相同机制分别实现平均 15%、16% 和 20% 的性能提升,展现出强大的可扩展性。
  • 这些机制通过允许多个子阵列在同一个 bank 内并发访问,减轻了 bank 冲突的影响,有效提升了有效带宽并降低了延迟。
  • MASA 允许多个行缓冲在子阵列间同时保持激活状态,显著提高了行缓冲命中率,并减少了行缓冲抖动。
  • 由于更好的局部性和更低的串行化,这些技术减少了冗余的行激活和预充电操作,从而提升了内存能效。
  • SALP 与采用分层 bank 结构的未来内存技术兼容,并已获得工业界采纳与验证(如三星和英特尔)。

更好的研究,从现在开始

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

无需绑定信用卡

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