MemScale: Active Low-Power Modes for Main Memory(2011 ASPLOS)
2015-10-15 14:03
661 查看
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:是根据当前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来控制整个过程;
相关文章推荐
- asp.net mvc areas
- web配置问题
- ASP.NET MVC Framework
- ASP.NET MVC 3实现访问统计系统
- 为ASP.NET MVC及WebApi添加路由优先级
- chat.asp聊天程序的编写方法
- ASP基础入门第九篇(Global.asa文件的使用)
- ASP.NET MVC 5 Web编程5 -- 页面传值的方式
- 通过.net reflector了解asp.net站点的请求与响应过程
- [ASP.NET] 下一代ASP.NET开发规范:OWIN
- Win10 兼容性 Visual studio web应用程序 ASP.NET 4.0 尚未在 Web 服务器上注册
- org.aspectj.lang.JoinPoint-中文简要API
- ASP.NET入门 - 错误和异常处理
- 为ASP.NET MVC及WebApi添加路由优先级
- ASP.NET MVC 3实现访问统计系统
- asp.net中如何批量导出access某表内容到word文档
- Asp.NET Visible属性与HTML display:none
- 树莓派(raspberry)启用root账户
- ROS(11):莓派Raspberry Pi 小车组装,安装电机和超声波
- Cross-compiling Qt Embedded 5.5 for Raspberry Pi 2