The rigid interface of current DRAM chips places the memory controller completely in charge of DRAM control. Even DRAM maintenance operations, which are used to ensure correct operation (e.g., refresh) and combat reliability/security issues of DRAM (e.g., RowHammer), are managed by the memory controller. Thus, implementing new maintenance operations or modifying the existing ones often require difficult-to-realize changes in the DRAM interface, memory controller, and potentially other system components (e.g., system software), leading to slow progress in DRAM-based systems. In this paper, our goal is to 1) ease the process of enabling new DRAM maintenance operations and 2) enable more efficient in-DRAM maintenance operations. Our idea is to set the memory controller free from managing DRAM maintenance. To this end, we propose Self-Managing DRAM (SMD), a new low-cost DRAM architecture that enables implementing new in-DRAM maintenance mechanisms (or modifying old ones) with no further changes in the DRAM interface, memory controller, or other system components. We use SMD to implement new in-DRAM maintenance mechanisms for three use cases: 1) periodic refresh, 2) RowHammer protection, and 3) memory scrubbing. Our evaluations show that SMD-based maintenance operations significantly improve the system performance and energy efficiency while providing higher reliability compared to conventional DDR4 DRAM. A combination of SMD-based maintenance mechanisms that perform refresh, RowHammer protection, and memory scrubbing achieve 7.6% speedup and consume 5.2% less DRAM energy on average across 20 memory-intensive four-core workloads.
翻译:目前的 DRAM 芯片的僵硬界面使目前的 DRAM 芯片的记忆控制器完全负责 DRAM 控制。 甚至DRAM 维护操作(用于确保DRAM的正确操作(例如,刷新)和打击可靠性/安全问题(例如,RowHammer),也由存储控制器管理。因此,实施新的维护操作或修改现有的维护操作往往需要难以实现DRAM 接口、记忆控制器和潜在的其他系统部件(例如,系统软件)的改变,导致DRAM 系统的进展缓慢。本文的目标是:(1) 简化新的DRAM 维护操作程序,使新的DRAM 维护操作程序(例如,刷新) 能够使DRAM 的正确操作(例如,刷新) 和 使DRAM 维护操作更高效。 我们的想法是让存储控制器控制器不受管理 DRAM (SM), 定期更新, 更新SRAM (或修改旧机制) 。我们使用新的DRRM 运行系统 运行系统 更新, 升级 升级 升级 升级 升级 升级 升级 升级 运行 升级 升级 升级 运行 升级 升级 升级 升级 升级 升级 升级 运行 升级 升级 升级 升级 升级 升级 运行 升级 升级 升级 升级 运行 运行 升级 升级 升级 升级 升级 升级 升级 升级 升级 运行 运行 运行 运行 运行 运行 升级 升级 升级 升级 升级 升级 升级 升级 升级 升级 升级 升级 升级 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 升级 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行