MemScale: Active Low-Power Modes for Main Memory(2011 ASPLOS)
来源:互联网 发布:linux系统编程 编辑:程序博客网 时间:2024/06/05 00:49
MemScale: Active Low-Power Modes for Main Memory
MemScale:是根据当前memory的带宽,由操作系统来决定memory subsystem的DVFS/DFS模式的能耗节省策略,它会使应用性能的降低在它所能接受的范围内。其中memory controller使用DVFS,memory channels和memory devices使用DFS
面临的问题:以前的时候在datacenter中能耗差不多与操作者和环境有很大的关系,所以人们就致力于研究datacenter的基础架构,这样导致现在的设备有80%以上的能耗是服务器自身消耗的。当时的processor在服务器能耗中占有很大的比例,但是随着人们对processor的进一步研究,现在processor在能耗中占得比重已经不是那么的多了,相对来说因为多核的产生对memory的带宽和容量的要求越来越高memory占有的比重就变得越来越多(差不多可以达到整个能耗的40%,等于甚至超过processor的比例),在此之前的研究都是集中在DRAM的low-power states上,但是lower-power states都idle period有很高的要求,即使是在lightly load的时候也很难达到要求,因为能耗管理都是基于粗粒度的,deep idle lower-power states很难在不大量降低性能的前提下起作用。
解决的方案:正是面临上面的问题,所以提出了MemScale,在满足应用的性能的要求的前提下,一系列的low-power modes 硬件机制和软件策略来节约能耗。
现在的memory subsystem:
传统的memory subsystem在三种不同负载的能耗图:
其中将memory subsystem的能耗分为三个主要部分:MC、DRAM、register/PLL,其中DRAM又可以分为四个方面:backgroud、activation/pre-charge、read/write、terminate。
从上面的能耗比例图可以得出结论:
1.background在能耗中占有重要的比例
2.Act/Pre和W/R只是在MEM中占的比重大
3.通常的时候Register/PLL会被研究者忽略,但是这方面的能耗也是占有很大比例的
4.MC在以前的研究中也没有考虑过但是他也是占有很大比例的
实现机制:
1.硬件和软件机制:能够动态的改变MC、DIMM的频率;目前商业的DIMM都能够支持不同的频率,现在只有在重启的时候才能改变频率,将会制作出在precharge或者是自我刷新的时候就可以改变频率,我们跟倾向于在precharge powerdown的时候就对频率进行在校验,因为这会比在自我刷新的时候花费更少的时间。对于性能的分析是基于各种参数的计数,如TIC(Total Instruction Commited)、TTM(Total LLC Miss)、BTO(Bank Transaction outstanding)、BTC(Bank Transaction Counter)、CTO、CTC、RBHC(Row Buffer Hit Counter)、OBMC(Open Buffer Miss Counter)、CBMC(Closed Buffer Miss Counter)、EPDC(Exit PowerDown Counter),以及用在Power modeling中的PTC(Precharge Time Counter)、PTCKEL(Precharge Time With CKE Low)、POCC(Page Open/Closed Counter)。在这些参数中只有CTO、BTO、PTC、PTCKEL、POCC这些是不能得到的。
能耗管理策略:
实验:因为现在的memory device还不能改变frequency,而且需要的一些counter的参数还不能直接获得,所以实验方面使用的是模拟实验。模拟实验分为两步,第一,使用M5对workload进行追踪,第二,用自己的更加detail的memory subsystem模拟器对追踪的数据进行replay来观察结果
实验结果对比:
Fast-PD:当一个rank中的所有的bank都关闭的时候就迅速的将状态转换到fast-exit precharge powerdown state;
Slow-PD:将rank转换到slow-exit precharge powerdown state;
Decoupled:是一种decoupled DIMM方法,将低频率的memory device与高频率的memory device结合在一起;
Static:在workload开始之前就静态的选定memory subsystem中的各种组件的频率;
MemScale(MemEnergy):在决定频率的时候只考虑memory的能耗而不考虑整个系统的能耗;
MemScale+Fast-PD:将MemScale与Fast-PD的策略结合起来一起考虑;
结果:
论文的三个创新点:
1.第一次提出了基于main memory active low-power mode;
2.第一次在分析main memory的时候将memory controller 考虑到范围里面;
3.第一次使用OS来控制整个过程;
- MemScale: Active Low-Power Modes for Main Memory(2011 ASPLOS)
- 组队赛(一)F - Low Power
- Compiler Optimization on VLIW Instruction Scheduling for Low Power
- Optimizing Linux Memory Management for Low-latency / High-throughput Databases
- Android Low memory killer(上)
- Android Low memory killer(下)
- low power 流程
- low power listense
- Uvalive 6398 Low Power
- Device Low-Power States
- Low Power Design Framework
- BZOJ3969 [WF2013]Low Power
- LA 6398 Low Power
- Kattis-Low Power【二分】
- linux high memory/ low memory
- Android Low memory killer
- low memory killer
- (Android) Low Memory Killer
- Linux进程实践(2) --僵尸进程与文件共享
- 匈牙利命名法
- Android中Textview显示带html文本一-------【HTML标签】
- [LeetCode-58] Length of Last Word(最后一个单词长度)
- 垃圾收集器
- MemScale: Active Low-Power Modes for Main Memory(2011 ASPLOS)
- 软件测试技术第一次实验
- ArcGIS教程:用矩形提取 (空间分析)
- MAC终端命令大全
- Virtual BOX 下Ubuntu无线上网设置
- 黑马程序员--集合
- JAVA对象的加载和对象的初始化
- cocos2dx 2.0 的屏幕旋转如果实现
- 深入浅出 React Native:使用 JavaScript 构建原生应用