论文部分内容阅读
随着应用数据的不断增大,以及片上处理器核心数的不断增加,对内存容量的需求越来越大,内存容量的扩展成为必然趋势,使得内存子系统逐渐成为整个计算机系统功耗和性能的瓶颈。 DRAM是当前内存系统的主要技术。由于DRAM芯片用于存储数据的电容器会随时间推移泄电荷,所以需要定期地执行刷新操作来维护数据的正确性。随着DRAM容量的增加,每次刷新操作需要刷新的DRAM行数也增加,使得每次刷新操作的功耗和执行时间也随之增加。另外,执行刷新期间无法运行正常的访存操作,进而影响了系统访存延迟。 激活和预充电操作引入的功耗与被激活DRAM行包含的位线条数成正比。随着容量的增加,位线条数也随之增加,激活和预充电操作带来的功耗和延迟不断增加。 本文围绕DRAM系统刷新操作与激活和预充电操作的功耗和延迟开展研究。主要工作包括以下几个方面: 研究减少不必要的刷新操作。鉴于弱单元数量很少,本文提出了不再维护弱行(存在弱单元的DRAM行)正确性的DearDRAM机制,该机制以大部分普通DRAM单元的维持时间作为刷新窗口,减少了大量的刷新操作,同时不需要设计复杂的机制维持弱单元的正确性。本文基于该机制实现了缩放和扩展两种不同的刷新方案,实验结果表明,两种方案都能够有效地降低刷新功耗和总功耗,同时提升系统的性能。其中缩放方案节能明显,在常温模式和高温模式下分别减少了14.61%和23.86%的总功耗。扩展方案性能提升明显,常温模式提升了4.56%,高温模式下提升了10.57%。 研究针对DRAM单元的高电荷状态,提升能效的刷新机制。DRAM单元中剩余的电荷量越多,访问延迟就越小,反之亦然。本文根据DRAM单元高电荷的状态,首先提出了三种静态的刷新方案REF64、REF128和REF256,分别将刷新窗口设置为64ms、128ms和256ms。然后提出了动态调整刷新窗口的MulREF方案,该方案能够根据当前访存延迟的分布情况,动态调整下次刷新窗口的大小。实验结果表明,四种方案都有不同程度的性能提升,同时将系统功耗维持在较低的范围内。 研究减少单次刷新操作的执行时间。单次刷新操作的执行时间主要受限于刷新行的数量和DRAM单元恢复的电荷量。本文从这两个维度出发,提出2DO机制,增加每条刷新命令需要刷新的DRAM行数,同时减少DRAM单元需要恢复的电荷量,而不改变刷新窗口发出的刷新命令总条数。基于2DO机制实现了2DO-Half方案和2DO-Quarter方案,实验结果表明,它们能够有效降低刷新能耗和刷新操作对性能的影响。 研究减少激活和预充电操作引入的功耗和延迟。为了缓解DRAM行过度预取的问题,本文首先提出了CAP架构,通过复用字线驱动器,将每个MAT(DRAM芯片的最小阵列)完全切分为左部分和右部分,各自有独立的行解码器和列解码器,允许同时激活相同Bank中不同部分的两行,实现Bank内的请求并行。进一步提出S2CAP架构,实现Subarray(多个MAT组成的结构)中MAT的左右两部分共享彼此的读出放大器,将当前激活行的数据一直保存在读出放大器中,直到接下来两个访问该Bank的请求都不再访问该行的数据时,才允许该行数据所在的读出放大器中的内容被其它激活行的内容替换。再进一步提出S3CAP架构,挖掘Subarray间的并发性,允许位于Bank相同部分的多个Subarray同时被激活。实验结果表明,三种方案能够有效地降低激活和预充电功耗,同时提升访存并发性和系统整体性能。