基于PDRAM混合内存架构的Linux内存管理算法
发布时间:2021-11-14 12:47
近些年来,相变存储器(PRAM)凭借其良好的特性极有可能替代动态存储器(DRAM),发展为下一代主流内存技术.由于PRAM在延时和寿命方面的性能退化,因而采用了位于Linux同一物理地址空间的一大块PRAM和一小块DRAM作为主内存.现有的Linux内核并不是针对混合内存架构而开发的,无法降低PDRAM的内存功耗,因而,采用了基于PDRAM混合内存架构的Linux内存管理算法,针对不同页帧进行管理,并根据虚拟地址空间页面的一般访问性质进行选择分配内存页帧,动态迁移内存页帧,将频繁读为主的数据存储在PRAM,频繁写为主的数据存储在DRAM,从而在只增加0.4%的内存延时情况下,降低50%左右的内存功耗,并且没有影响PRAM的寿命.
【文章来源】:微电子学与计算机. 2014,31(05)北大核心CSCD
【文章页数】:7 页
【部分图文】:
图1混合主内存体系架构内存管理算法
代码段开始和结束的虚拟内存地址分别通过start_code和end_code标记.参数address描述了当前进程产生缺页异常的虚拟空间地址.这样,当处理器产生按需调页、按需分配、页面交换或者写时复制的缺页异常时,通过比较产生缺页异常的虚拟空间地址address和内存描述符mm_struct中各个内存区的起止地址,就可以判断出这个虚拟地址是属于堆栈段还是其它段,并为其标志相应内存修饰符,从而分配PRAM页帧或DRAM页帧,其流程如图3所示.图3页帧选择分配算法流程图3.3页帧的动态迁移页帧选择分配算法是一种静态的算法,无法动态调度不符合虚拟地址空间页面的一般访问性质的页帧.例如,以频繁读为主的堆栈段数据仍然分配DRAM页帧,以频繁写为主的其他段数据仍然分配PRAM页帧.如果PRAM页帧频繁进行写操作,那么主内存的动态功耗和延时将会有显著的增加,而且过多的写操作势必会减少主内存的使用寿命.因此,本文提出的基于混合内存PDRAM的Linux内存管理动态迁移算法,流程图如图4所示,该算法基于著名的局部性原理[4]:最近不读(写)的页帧在未来也不会需要频繁进行读(写)操作;最近读(写)次数多的页帧在未来也会需要频繁进行读(写)操作.冷DRAM页帧迁移:通过传统的最近最少使用(LRU)算法,将最近最少读写的DRAM页帧迁移到PRAM存储空间,由于未来该页帧也不会频繁进行读写操作,因此,迁移后该页帧的访问行为不会大量增加PRAM的功耗.每个内存域包含了两个双向LRU链表:活动(act
作系统修改版32位Linux3.9.1写操作阈值1000读写比例阈值5:2表3DRAM和PRAM特性[6]DRAMPRAM读功率200mW80mW写功率200mW500mW读延时50ns50ns写延时50ns150nsDRAM同质内存架构、不包含选择分配和动态迁移内存管理算法的PDRAM混合内存架构、只包含选择分配内存管理算法的PDRAM混合内存架构、包含选择分配和动态迁移内存管理算法的PDRAM混合内存架构的归一化内存功耗如图5所示.图5归一化功耗当DRAM同质内存架构位于低地址空间的大部分物理内存被PRAM所取代时,尽管PRAM的写功耗高于DRAM的写功耗,但是由于PRAM的读功耗低于DRAM的读功耗,而且在此区域依旧呈现读操作次数多、写操作次数少的内存访问模式,因此不包含选择分配和动态迁移内存管理算法的PDRAM混合内存架构可以平均降低15%的内存功耗.其中,Bitcount测试程序发生在PRAM存储空间的读操作次数(305万次)很少,因而仅仅内存功耗降低了0.2%.相反的,StringSearch发生在PRAM存储空间的读操作次数(4864万次)很多、写操作次数(10万次)很少,因而内存功耗降低了46.0%.只包含选择分配内存管理算法的PDRAM混合内存架构,在不包含选择分配和动态迁移内存管理算法的PDRAM混合内存架构的基础上,大量增加了发生在PRAM存储空间的读操作次数(减少了发生在DRAM存储空间的读操作次数),因此比不包含选择分配和动态迁移内存
本文编号:3494665
【文章来源】:微电子学与计算机. 2014,31(05)北大核心CSCD
【文章页数】:7 页
【部分图文】:
图1混合主内存体系架构内存管理算法
代码段开始和结束的虚拟内存地址分别通过start_code和end_code标记.参数address描述了当前进程产生缺页异常的虚拟空间地址.这样,当处理器产生按需调页、按需分配、页面交换或者写时复制的缺页异常时,通过比较产生缺页异常的虚拟空间地址address和内存描述符mm_struct中各个内存区的起止地址,就可以判断出这个虚拟地址是属于堆栈段还是其它段,并为其标志相应内存修饰符,从而分配PRAM页帧或DRAM页帧,其流程如图3所示.图3页帧选择分配算法流程图3.3页帧的动态迁移页帧选择分配算法是一种静态的算法,无法动态调度不符合虚拟地址空间页面的一般访问性质的页帧.例如,以频繁读为主的堆栈段数据仍然分配DRAM页帧,以频繁写为主的其他段数据仍然分配PRAM页帧.如果PRAM页帧频繁进行写操作,那么主内存的动态功耗和延时将会有显著的增加,而且过多的写操作势必会减少主内存的使用寿命.因此,本文提出的基于混合内存PDRAM的Linux内存管理动态迁移算法,流程图如图4所示,该算法基于著名的局部性原理[4]:最近不读(写)的页帧在未来也不会需要频繁进行读(写)操作;最近读(写)次数多的页帧在未来也会需要频繁进行读(写)操作.冷DRAM页帧迁移:通过传统的最近最少使用(LRU)算法,将最近最少读写的DRAM页帧迁移到PRAM存储空间,由于未来该页帧也不会频繁进行读写操作,因此,迁移后该页帧的访问行为不会大量增加PRAM的功耗.每个内存域包含了两个双向LRU链表:活动(act
作系统修改版32位Linux3.9.1写操作阈值1000读写比例阈值5:2表3DRAM和PRAM特性[6]DRAMPRAM读功率200mW80mW写功率200mW500mW读延时50ns50ns写延时50ns150nsDRAM同质内存架构、不包含选择分配和动态迁移内存管理算法的PDRAM混合内存架构、只包含选择分配内存管理算法的PDRAM混合内存架构、包含选择分配和动态迁移内存管理算法的PDRAM混合内存架构的归一化内存功耗如图5所示.图5归一化功耗当DRAM同质内存架构位于低地址空间的大部分物理内存被PRAM所取代时,尽管PRAM的写功耗高于DRAM的写功耗,但是由于PRAM的读功耗低于DRAM的读功耗,而且在此区域依旧呈现读操作次数多、写操作次数少的内存访问模式,因此不包含选择分配和动态迁移内存管理算法的PDRAM混合内存架构可以平均降低15%的内存功耗.其中,Bitcount测试程序发生在PRAM存储空间的读操作次数(305万次)很少,因而仅仅内存功耗降低了0.2%.相反的,StringSearch发生在PRAM存储空间的读操作次数(4864万次)很多、写操作次数(10万次)很少,因而内存功耗降低了46.0%.只包含选择分配内存管理算法的PDRAM混合内存架构,在不包含选择分配和动态迁移内存管理算法的PDRAM混合内存架构的基础上,大量增加了发生在PRAM存储空间的读操作次数(减少了发生在DRAM存储空间的读操作次数),因此比不包含选择分配和动态迁移内存
本文编号:3494665
本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/3494665.html