这篇是发表在2016年MemSys的论文《DReAM: Dynamic Re-arrangement of Address Mapping to Improve the Performance of DRAMs》,作者是曼彻斯特大学的Mohsen Ghasempour,导师是Mikel Lujan,参与者还有Nvidia研究院。
文章提出了对Address Mapping进行动态重排的方法,统计每个bit的flip ratio,并根据flip ratio调整bit的顺序。另外为了online做re-arrangement,作者提出了一种动态migrate的方法。
方法
Offline
- 将flip ratio大的bit放在col
- 将flip ratio小的bit放在row
Online
- 不动col的bits
- 只把flip ratio小的bit放在row
- 250K个Memory访问的窗口大小
- bit交换超过7%才进行替换
动态migrate
- 为所有的row增加两个bit的metadata
- Migration Table:是否被migrate了
- Swap Table:是否被swap了
- 同时保存两种映射策略
- 原来的映射策略PAMS(Predefined Address-Mapping Scheme)
- 使用的映射策略EAMS(Estimated)
- 访问的时候,根据row数据在哪里一步步讨论
- 如果数据在当前位置,直接取。
- 如果数据在原来位置,取出来,并交换现在的数据和原来的row数据,将当前位置的swap bit设为1,将migrate bit设为1
- 如果原来的位置已经被swap过了,那么通过PAMS EAMS反推位置在哪,如果被多次swap,这个过程迭代做多次直到找到数据
硬件设计
- 使用Mutlu论文中的MASA实现多行active来进行Inner Bank的row数据交换
- 使用I/O bus把所有的bank连起来,传输一个row需要64 DRAM clock/512个CPU clock(有引用)
- MT和ST两个表使用2MB的存储(64GB内存),可以放在DRAM或者Controller上
实验
- 用了USIMM和DDR3在CPU上做了实验
- 数据集为SPEC PARSEC HPC COMMERCIAL BIOBENCH,和20个他们的混合benchmark
- 发现数据集分为两种
- 对Mapping敏感
- 原本有flip ratio比较大的bit被map到了row
- 对Mapping不敏感
- 对Mapping敏感
- offline减少平均5%的execution time
- online减少平均4.5%的execution time
总结
第一次提出了动态对mapping进行调整的策略,取得的还不错的结果。但这个策略比较heuristic,还有提升空间。