[发明专利]内存管理方法、内存管理装置及计算机有效
申请号: | 201210578708.6 | 申请日: | 2012-12-27 |
公开(公告)号: | CN103902462B | 公开(公告)日: | 2018-03-09 |
发明(设计)人: | 崔泽汉;陈明宇;陈荔城;黄永兵 | 申请(专利权)人: | 华为技术有限公司;中国科学院计算技术研究所 |
主分类号: | G06F12/02 | 分类号: | G06F12/02 |
代理公司: | 北京同立钧成知识产权代理有限公司11205 | 代理人: | 谭磊 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 内存 管理 方法 装置 计算机 | ||
技术领域
本发明实施例涉及内存数据处理技术,尤其涉及一种内存管理方法、内存管理装置及计算机。
背景技术
随着计算机技术的发展,内存管理变得越来越重要,优化内存管理方法可以大大提升计算机的系统性能。
内存地址分为物理地址和虚拟地址,程序看到的是虚拟内存空间,访问时使用虚拟地址,而内存系统看到的是物理地址空间,访问时使用物理地址。操作系统对内存的管理是以页面为单位的,维护虚拟内存页面到物理内存页面的映射。程序申请内存时,操作系统先为其分配一系列虚拟内存页面,但是并不映射到任何物理内存页面;等到程序第一次访问虚拟内存页面时,就会产生缺页中断,由操作系统从空闲物理内存页面中挑选出一个,建立从虚拟内存页面到物理内存页面的映射;以后再访问该虚拟内存页面时,访存就会被自动映射到该物理内存页面。若该物理内存页面在设定时间内未被访问,或当前内存空间不足时,则已建立映射关系但未处于访问状态的物理内存页面可以再次被分配给其他虚拟内存页面,则当该程序再次访问虚拟内存页面时,仍然会产生缺页中断。
上述过程中,产生缺页中断时,挑选空闲物理内存页面,建立映射关系,称为内存页面分配。物理内存由内存并发操作单元(Bank)组成,每个内存并发操作单元可包括一组物理内存页面,系统中的多个内存并发操作单元上的物理内存页面可以被并行访问。现有内存管理的一种方法是将所有的空闲物理内存页面视为等同的,组织为一个空闲列表,操作系统分配物理内存页面时,从空闲物理内存页面列表的头部分配。另一种方法是将每个内存并发操作单元的空闲物理内存页面单独组织为空闲列表,分配内存时为每个程序指定一个或多个内存并发操作单元,该程序申请的内存只能从这些内存并发操作单元的空闲列表的头部分配。
上述两种方法都在一定程度上提高空闲物理内存页面分配的效率,但是第一种方法将所有空闲物理内存页面视为等同,忽略了物理内存的组织结构,如果集中于同一内存并发操作单元的空闲物理内存页面进行分配,就会造成内存并发操作单元之间访存不均衡,不能发挥其并行处理的优势。而第二种方法没有考虑物理内存的动态访问情况,比如有些物理内存页面访问比较频繁,而另一些物理内存页面基本没有访问,从而造成一组内存并发操作单元的访问很密集,而另一组内存并发操作单元基本空闲,浪费了物理内存系统提供的并发性。
发明内容
本发明实施例提供一种内存管理方法、内存管理装置及计算机,以解决内存并发操作单元访问不均衡的问题,以实现空闲物理内存页面的均匀分配,优化计算机系统性能。
第一方面,本发明实施例提供一种内存管理方法,包括:
当获取到物理内存页面分配请求时,根据各内存并发操作单元的历史访问信息,选择访问率低的内存并发操作单元,作为待分配的内存并发操作单元;
从所述待分配的内存并发操作单元中分配空闲物理内存页面。
在第一方面的第一种可能的实现方式中,所述内存管理方法还包括:
获取各内存并发操作单元的访问信息;
根据所述访问信息更新各内存并发操作单元的历史访问信息。
根据第一方面的第一种可能的实现方式,在第二种可能的实现方式中,获取各内存并发操作单元的访问信息包括:
通过内存控制器中的性能计数器,采集各内存并发操作单元的访问信息;或
通过反馈通路,获取监听内存控制器的监听卡采集到的各内存并发操作单元的访问信息。
根据第一方面的第一种可能的实现方式,在第三种可能的实现方式中,从所述待分配的内存并发操作单元中分配空闲物理内存页面之后,还包括:
判断当前调度周期是否结束;
若是,则返回执行所述获取各内存并发操作单元的访问信息的操作;
若否,则返回执行选择待分配的内存并发操作单元的操作。
在第一方面的第四种可能的实现方式中,根据各内存并发操作单元的历史访问信息,识别各内存并发操作单元的访问密集度;
当访问密集度低于第一门限值时,关闭处于打开状态的设定关闭数量的内存并发操作单元;
当访问密集度高于第二门限值时,打开处于关闭状态的设定打开数量的内存并发操作单元。
根据第一方面的第四种可能的实现方式,在第五种可能的实现方式中,所述设定关闭数量为当前打开状态的内存并发操作单元数量的二分之一;所述设定打开数量为当前打开状态的内存并发操作单元数量。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司;中国科学院计算技术研究所,未经华为技术有限公司;中国科学院计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210578708.6/2.html,转载请声明来源钻瓜专利网。