CN103902462A - 内存管理方法、内存管理装置及计算机 - Google Patents
内存管理方法、内存管理装置及计算机 Download PDFInfo
- Publication number
- CN103902462A CN103902462A CN201210578708.6A CN201210578708A CN103902462A CN 103902462 A CN103902462 A CN 103902462A CN 201210578708 A CN201210578708 A CN 201210578708A CN 103902462 A CN103902462 A CN 103902462A
- Authority
- CN
- China
- Prior art keywords
- internal memory
- concurrent operations
- operations unit
- memory
- visit information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Abstract
本发明实施例提供一种内存管理方法、内存管理装置及计算机。本发明内存管理方法,包括:当获取到物理内存页面分配请求时,根据各内存并发操作单元的历史访问信息,选择访问率低的内存并发操作单元,作为待分配的内存并发操作单元;从所述待分配的内存并发操作单元中分配空闲物理内存页面。本发明实施例提高了内存并发操作单元访问的均衡性,达到了优化计算机系统性能的效果。
Description
技术领域
本发明实施例涉及内存数据处理技术,尤其涉及一种内存管理方法、内存管理装置及计算机。
背景技术
随着计算机技术的发展,内存管理变得越来越重要,优化内存管理方法可以大大提升计算机的系统性能。
内存地址分为物理地址和虚拟地址,程序看到的是虚拟内存空间,访问时使用虚拟地址,而内存系统看到的是物理地址空间,访问时使用物理地址。操作系统对内存的管理是以页面为单位的,维护虚拟内存页面到物理内存页面的映射。程序申请内存时,操作系统先为其分配一系列虚拟内存页面,但是并不映射到任何物理内存页面;等到程序第一次访问虚拟内存页面时,就会产生缺页中断,由操作系统从空闲物理内存页面中挑选出一个,建立从虚拟内存页面到物理内存页面的映射;以后再访问该虚拟内存页面时,访存就会被自动映射到该物理内存页面。若该物理内存页面在设定时间内未被访问,或当前内存空间不足时,则已建立映射关系但未处于访问状态的物理内存页面可以再次被分配给其他虚拟内存页面,则当该程序再次访问虚拟内存页面时,仍然会产生缺页中断。
上述过程中,产生缺页中断时,挑选空闲物理内存页面,建立映射关系,称为内存页面分配。物理内存由内存并发操作单元(Bank)组成,每个内存并发操作单元可包括一组物理内存页面,系统中的多个内存并发操作单元上的物理内存页面可以被并行访问。现有内存管理的一种方法是将所有的空闲物理内存页面视为等同的,组织为一个空闲列表,操作系统分配物理内存页面时,从空闲物理内存页面列表的头部分配。另一种方法是将每个内存并发操作单元的空闲物理内存页面单独组织为空闲列表,分配内存时为每个程序指定一个或多个内存并发操作单元,该程序申请的内存只能从这些内存并发操作单元的空闲列表的头部分配。
上述两种方法都在一定程度上提高空闲物理内存页面分配的效率,但是第一种方法将所有空闲物理内存页面视为等同,忽略了物理内存的组织结构,如果集中于同一内存并发操作单元的空闲物理内存页面进行分配,就会造成内存并发操作单元之间访存不均衡,不能发挥其并行处理的优势。而第二种方法没有考虑物理内存的动态访问情况,比如有些物理内存页面访问比较频繁,而另一些物理内存页面基本没有访问,从而造成一组内存并发操作单元的访问很密集,而另一组内存并发操作单元基本空闲,浪费了物理内存系统提供的并发性。
发明内容
本发明实施例提供一种内存管理方法、内存管理装置及计算机,以解决内存并发操作单元访问不均衡的问题,以实现空闲物理内存页面的均匀分配,优化计算机系统性能。
第一方面,本发明实施例提供一种内存管理方法,包括:
当获取到物理内存页面分配请求时,根据各内存并发操作单元的历史访问信息,选择访问率低的内存并发操作单元,作为待分配的内存并发操作单元;
从所述待分配的内存并发操作单元中分配空闲物理内存页面。
在第一方面的第一种可能的实现方式中,所述内存管理方法还包括:
获取各内存并发操作单元的访问信息;
根据所述访问信息更新各内存并发操作单元的历史访问信息。
根据第一方面的第一种可能的实现方式,在第二种可能的实现方式中,获取各内存并发操作单元的访问信息包括:
通过内存控制器中的性能计数器,采集各内存并发操作单元的访问信息;或
通过反馈通路,获取监听内存控制器的监听卡采集到的各内存并发操作单元的访问信息。
根据第一方面的第一种可能的实现方式,在第三种可能的实现方式中,从所述待分配的内存并发操作单元中分配空闲物理内存页面之后,还包括:
判断当前调度周期是否结束;
若是,则返回执行所述获取各内存并发操作单元的访问信息的操作;
若否,则返回执行选择待分配的内存并发操作单元的操作。
在第一方面的第四种可能的实现方式中,根据各内存并发操作单元的历史访问信息,识别各内存并发操作单元的访问密集度;
当访问密集度低于第一门限值时,关闭处于打开状态的设定关闭数量的内存并发操作单元;
当访问密集度高于第二门限值时,打开处于关闭状态的设定打开数量的内存并发操作单元。
根据第一方面的第四种可能的实现方式,在第五种可能的实现方式中,所述设定关闭数量为当前打开状态的内存并发操作单元数量的二分之一;所述设定打开数量为当前打开状态的内存并发操作单元数量。
根据第一方面的第四种可能的实现方式,在第六种可能的实现方式中,所述访问信息至少包括内存并发操作单元的访问次数和命中次数,所述访问密集度为单位时间内所有内存并发操作单元的访问次数,或命中次数,或访问次数与命中次数之差的平均值。
第二方面,本发明实施例提供一种内存管理装置,包括:决策模块,用于当获取到物理内存页面分配请求时,根据各内存并发操作单元的历史访问信息,选择访问率低的内存并发操作单元,作为待分配的内存并发操作单元;页面分配模块,用于从所述待分配的内存并发操作单元中分配空闲物理内存页面。
在第二方面的第一种可能的实现方式中,还包括:获取模块,用于获取各内存并发操作单元的访问信息;维护模块,用于根据所述访问信息更新各内存并发操作单元的历史访问信息。
根据第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述获取模块包括:第一获取单元,用于通过内存控制器中的性能计数器,采集各内存并发操作单元的访问信息;或第二获取单元,用于通过反馈通路,获取监听内存控制器的监听卡采集到的各内存并发操作单元的访问信息。
根据第二方面的第一种可能的实现方式,在第三种可能的实现方式中,还包括:调度周期判断模块,用于判断当前调度周期是否结束;若是,则返回获取模块执行所述获取各内存并发操作单元的访问信息的操作;若否,则返回决策模块执行选择待分配的内存并发操作单元的操作。
在第二方面的第四种可能的实现方式中,还包括:识别模块,用于根据各内存并发操作单元的历史访问信息,识别各内存并发操作单元的访问密集度;第一控制模块,用于当访问密集度低于第一门限值时,关闭处于打开状态的设定关闭数量的内存并发操作单元;第二控制模块,用于当访问密集度高于第二门限值时,打开处于关闭状态的设定打开数量的内存并发操作单元。
根据第二方面的第四种可能的实现方式,在第五种可能的实现方式中,所述设定关闭数量为当前打开状态的内存并发操作单元数量的二分之一;所述设定打开数量为当前打开状态的内存并发操作单元数量。
根据第二方面的第四种可能的实现方式,在第六种可能的实现方式中,所述访问信息至少包括内存并发操作单元的访问次数和命中次数,所述访问密集度为一单位时间内所有内存并发操作单元的访问次数,或命中次数,或访问次数与命中次数之差的平均值。
第三方面本发明实施例提供一种计算机,包括中央处理器、内存、内存控制器和存储器,其中,还包括:本发明任意实施例所提供的内存管理装置,配置在所述中央处理器的操作系统之中;性能计数器,配置在内存控制器中,用于采集各内存并发操作单元的访问信息;或,监听卡,分别通过反馈通路与内存控制器和内存管理装置相连,用于通过反馈通路,从内存控制器中采集各内存并发操作单元的访问信息,并提供给所述内存管理装置。
本发明实施例内存管理方法、内存管理装置及计算机,通过物理内存系统所提供的内存并发操作单元的历史访问信息进行选择,优先从历史上访问较少的内存并发操作单元中分配空闲物理内存页面,实现内存并发操作单元的均衡访问,解决了现有技术对空闲物理内存页面分配不合理的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明内存管理方法实施例一的流程图;
图2为本发明内存管理方法实施例二的流程图;
图3为本发明内存管理方法实施例三的流程图;
图4为本发明内存管理方法实施例四的流程图;
图5为本发明内存管理方法实施例五的流程图;
图6为本发明内存管理装置实施例一的结构示意图;
图7为本发明内存管理装置实施例二的结构示意图;
图8a为本发明内存管理装置实施例三的结构示意图
图8b为本发明内存管理装置实施例三的另一结构示意图;
图9为本发明内存管理装置实施例四的结构示意图;
图10为本发明内存管理装置实施例五的结构示意图;
图11a为本发明计算机实施例的结构示意图;
图11b为本发明计算机实施例的另一结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
图1为本发明内存管理方法实施例一的流程图,所述方法适用于在程序访问内存时对物理内存系统的管理,尤其适用于对空闲物理内存页面的分配。该方法可以由内存管理装置执行,如图1所示,该方法包括如下步骤:
S101、当获取到物理内存页面分配请求时,根据各内存并发操作单元的历史访问信息,选择访问率低的内存并发操作单元,作为待分配的内存并发操作单元。
在程序申请内存,而没有与其虚拟内存页面对应的物理内存页面时,就会产生缺页中断,相当于物理内存页面分配请求。所述内存并发操作单元为物理内存中实体存在的可以并发操作的物理单元,如内存可并发操作的最小单元(bank)。各内存并发操作单元的历史访问信息可以包括在设定时间内统计的访问次数、命中次数等。访问率可通过历史访问信息体现,一般是指内存并发操作单元单位时间内的访问次数。访问率低具体可视为两种情况,第一种情况为在所有的内存并发操作单元中进行比较,访问率最低的内存并发操作单元视为访问率低,第二种情况为设置一个门限值,对于低于该门限值的一个或多个内存并发操作单元都视为访问率低,如果多个内存并发操作单元都满足访问率低时,则从多个内存并发操作单元中随机选择一个作为待分配的内存并发操作单元。
S102、从所述待分配的内存并发操作单元中分配空闲物理内存页面。
具体地,从选中的内存并发操作单元中选择空闲物理内存页面,此时被选择的空闲物理内存页面为历史上访问较少的,区分出了空闲物理内存页面的差别,而有别于现有技术的同等对待。
本实施例,对空闲物理内存页面的选择分两步执行,即先选择访问率低的内存并发操作单元,再从访问率低的内存并发操作单元中选择空闲物理内存页面,这样可以均衡各内存并发操作单元的负载,充分发挥内存并发操作单元的并发性。实现了内存并发操作单元的均衡访问,解决了现有技术对空闲物理内存页面分配不合理的问题。
实施例二
图2为本发明内存管理方法实施例二的流程图,本实施例对实施例一进行了进一步优化。如图2所示,本实施例的方法可以包括:
S201、获取各内存并发操作单元的访问信息。
S202、根据所述访问信息更新各内存并发操作单元的历史访问信息。
内存管理装置不断地更新记录历史访问信息,当新的各内存并发操作单元的访问信息被获取后,可以在更新时将历史访问信息中最早的各内存并发操作单元的访问信息删除,以保证历史访问信息的信息量固定,提高历史访问信息的可参考性。
S203、当获取到物理内存页面分配请求时,根据各内存并发操作单元的历史访问信息,选择访问率低的内存并发操作单元,作为待分配的内存并发操作单元。
S204、从所述待分配的内存并发操作单元中分配空闲物理内存页面。
上述步骤S201-S202的历史访问信息更新过程,以及S203-204的页面分配操作并不限于为先后执行,两者的执行顺序不限。
本实施例,通过在实施例一的基础上增加获取各内存并发操作单元的访问信息和更新各内存并发操作单元的历史访问信息的步骤,实现内存并发操作单元的历史访问信息的高参考性,增强了空闲物理内存页面选择依据的可靠性。
可选地,上述S201中获取各内存并发操作单元的访问信息可以有两种方式,第一种,可以通过内存控制器中的性能计数器,采集各内存并发操作单元的访问信息。
所述性能计数器设置于内存控制器中,可利用现有通道采集各内存并发操作单元的访问信息,并将所述访问信息发送给所述内存管理装置进行历史访问信息更新处理。
第二种,可以通过反馈通路,获取监听内存控制器的监听卡采集到的各内存并发操作单元的访问信息。
所述监听卡为独立设备,其监听到的各内存并发操作单元的访问信息通过特定的反馈通路,将所述访问信息发送给所述内存管理装置。
实施例三
图3为本发明内存管理方法实施例三的流程图。如图3所示,本实施例以上述各实施例为基础,提供了一完整的优选实施例,该方法可以包括:
S301、获取各内存并发操作单元的访问信息。
S302、根据所述访问信息更新各内存并发操作单元的历史访问信息。
S303、当获取到物理内存页面分配请求时,根据各内存并发操作单元的历史访问信息,选择访问率低的内存并发操作单元,作为待分配的内存并发操作单元。
S304、从所述待分配的内存并发操作单元中分配空闲物理内存页面。
S305、判断当前调度周期是否结束,若是,则返回执行S301,若否,则返回执行S303。
所述调度周期可以为一个固定长度的时间间隔,如操作系统的一个时间片。也可以是根据内存管理方法的设计要求而定,最小调度周期可以为上述实施例的内存管理方法执行一次的时间。所述调度周期的长短决定着内存管理方法的精确程度,调度周期越短,各内存并发操作单元的历史访问信息更新越快,分配内存并发操作单元的均衡性就越好,但对所述内存管理装置的处理能力要求就越高,计算成本就越大。所以在设计调度周期时需要综合考虑。
本实施例,通过增加S305,可根据实际需要设计调度周期,实现各内存并发操作单元的历史访问信息的合理更新,提高空闲物理内存页面选择的精确度和合理度。
实施例四
图4为本发明内存管理方法实施例四的流程图。本实施例在上述实施例的基础上,还包括如下步骤:
根据各内存并发操作单元的历史访问信息,识别各内存并发操作单元的访问密集度;
当访问密集度低于第一门限值时,关闭处于打开状态的设定关闭数量的内存并发操作单元;
当访问密集度高于第二门限值时,打开处于关闭状态的设定打开数量的内存并发操作单元。
如图4所示,上述方案优选按照如下流程操作:
S401、根据各内存并发操作单元的历史访问信息,识别各内存并发操作单元的访问密集度。
所述访问密集度由各内存并发操作单元的历史访问信息得出,作为各内存并发操作单元访问是否密集的判断标准,由此来决定对部分内存并发操作单元进行关闭或打开。
S402、判断访问密集度是否低于第一门限值,若是,则执行S403,若否,则执行S404。
所述第一门限值可以根据所述访问密集度的具体情况进行设定,若当前访问密集度低于所述第一门限值,则认为当前系统访存不是很密集。
S403、关闭处于打开状态的设定关闭数量的内存并发操作单元,并继续执行步骤S406;
具体地,关闭内存并发操作单元可以使将其状态标识设置为不可访问,被关闭的内存并发操作单元不再被选择,即被关闭的内存并发操作单元中的物理内存页面不再被分配,对于已经分配的物理内存页面,将其页面状态置为不可访问,当程序再次被访问时就会产生缺页中断,操作系统将为程序在处于打开状态的内存并发操作单元上分配新的页面,并进行数据迁移。所述设定关闭数量可根据实际需要进行设定。所述设定关闭数量优选为当前打开状态的内存并发操作单元数量的二分之一。
S404、判断访问密集度是否高于第二门限值,若是,则执行S405,若否,则执行S406。
所述第二门限值也是根据所述的访问密集度的具体情况进行设定,若当前访问密集度高于第二门限值,则认为当前系统访存很密集。
S405、打开处于关闭状态的设定打开数量的内存并发操作单元。
具体地,可以将内存并发操作单元的状态标识设置为可访问。被打开的内存并发操作单元中的物理内存页面可以被重新分配,对于已经分配的物理内存页面,将其页面状态设为可以访问。所述设定打开数量也同样可根据实际需要进行设定。所述设定打开数量优选为当前打开状态的内存并发操作单元数量。
S406、当获取到物理内存页面分配请求时,根据各内存并发操作单元的历史访问信息,选择访问率低的内存并发操作单元,作为待分配的内存并发操作单元。
S407、从所述待分配的内存并发操作单元中分配空闲物理内存页面。
可选地,在执行本实施例S403和S405时,可以选择以最小的功耗管理单元(Minimum Power Management Unit,MPMU)为单位对内存并发操作单元进行关闭或打开。所述MPMU可由一个或多个内存并发操作单元构成。
本实施例,通过以各内存并发操作单元的访问密集度作为判断标准,设置第一门限值和第二门限值对内存访问的密集与否进行判断,适时的关闭和打开一定量的内存并发操作单元,实现物理内存页面的有效利用,在保证性能的基础上降低内存功耗。
实施例五
本实施例在上述实施例的基础上,设置两种模式:性能优先模式和功耗优先模式,通过执行性能优先模式或功耗优先模式,以及执行性能优先模式和功耗优先模式的切换来提高内存管理效率,优化计算机系统性能。
图5为本发明内存管理方法实施例五的流程图。如图5所示,本实施例的方法可以包括:
S501、获取各内存并发操作单元的访问信息。
S502、根据所述访问信息更新各内存并发操作单元的历史访问信息。
S503、选择执行模式,若选择执行性能优先模式,则执行S508,若选择执行功耗优先模式,则执行S504。
具体地,内存管理装置根据工作要求选择执行性能模式,如果需要工作在性能优先模式下,则内存管理装置发出控制指令,执行S508,如果需要工作在功耗优先模式下,则内存管理装置发出控制指令,执行S504。其中,执行性能优先模式的步骤包括:S501、S502、S508、S509和S510,执行功耗优先模式的步骤则包括:S501、S502、S504、S505、S506、S507、S508、S509和S510。
S504、判断访问密集度是否低于第一门限值,若是,则执行S505,若否,则执行S506。
S505、关闭处于打开状态的设定关闭数量的内存并发操作单元。
S506、判断访问密集度是否高于第二门限值,若是,则执行S507,若否,则执行S508。
S507、打开处于关闭状态的设定打开数量的内存并发操作单元。
S508、当获取到物理内存页面分配请求时,根据各内存并发操作单元的历史访问信息,选择访问率低的内存并发操作单元,作为待分配的内存并发操作单元。
S509、从所述待分配的内存并发操作单元中分配空闲物理内存页面。
S510、判断当前调度周期是否结束,若是,则返回执行S501,若否,则返回执行S508。
优选地,在本实施例S504、S505、S506或S507中,如果需要将工作状态由功耗优先模式切换至性能优先模式时,则内存管理装置直接结束执行本步骤,直接跳转执行S508,实现功耗优先模式到性能优先模式的切换。
可选地,在上述实施例中,所述访问信息至少包括内存并发操作单元的访问次数和命中次数。其中,所述访问次数为程序访问一个内存并发操作单元的次数,所述命中次数为程序访问一个内存并发操作单元时,命中内存并发操作单元的同一行的次数。所述访问密集度为单位时间内所有内存并发操作单元的访问次数,或命中次数,或访问次数与命中次数之差的平均值。即所述访问密集度可以为所有内存并发操作单元的访问次数的平均值,也可为所有内存并发操作单元的命中次数的平均值,或也可为所有内存并发操作单元的命中次数与命中次数之差的平均值。同时,所述访问密集度也可采用其他能反映密集程度的指标。在本实施例中所述访问密集度以单位时间内所有内存并发操作单元的访问次数与命中次数之差的平均值(可称之为平均miss数量)为例。其中,第一门限值可以设置为20万次/ms,第二门限值可以设置为100万次/ms,但不以此为限;
本实施例,通过设置性能优先模式和功耗优先模式两种模式,根据实际需求对所述两种模式进行选择,同时也可以在所述两种模式下转换,优化了内存管理,实现了计算机系统性能的提高。
实施例六
图6为本发明内存管理装置实施例一的结构示意图,如图6所示,本实施例的装置可以包括:决策模块11和页面分配模块12,其中,所述决策模块11用于当获取到物理内存页面分配请求时,根据各内存并发操作单元的历史访问信息,选择访问率低的内存并发操作单元,作为待分配的内存并发操作单元,所述页面分配模块12用于从所述待分配的内存并发操作单元中分配空闲物理内存页面。
本实施例的装置,可以用于执行本发明实施例所提供的内存管理方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
实施例七
图7为本发明内存管理装置实施例二的结构示意图,如图7所示,本实施例的装置在图6所示装置结构的基础上,进一步地,还可以包括:获取模块21和维护模块22,其中,所述获取模块21用于获取各内存并发操作单元的访问信息,所述维护模块22用于根据所述访问信息更新各内存并发操作单元的历史访问信息。
本实施例的装置,可以用于执行本发明实施例所提供的内存管理方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
实施例八
图8a为本发明内存管理装置实施例三的结构示意图,如图8a所示,本实施例的装置在图7所示装置结构的基础上,进一步地,获取模块21可以包括:第一获取单元31,所述第一获取单元31用于通过内存控制器中的性能计数器,采集各内存并发操作单元的访问信息。
可选地,如图8b所示,图8b为本发明内存管理装置实施例三的另一结构示意图,获取模块21还可以包括:第二获取单元32,所述第二获取单元32用于通过反馈通路,获取监听内存控制器的监听卡采集到的各内存并发操作单元的访问信息。
本实施例的装置,可以用于执行本发明实施例所提供的内存管理方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
实施例九
图9为本发明内存管理装置实施例四的结构示意图,如图9所示,本实施例的装置在图7所示装置结构的基础上,进一步地,还可以包括:调度周期判断模块41,所述调度周期判断模块41用于判断当前调度周期是否结束;若是,则返回获取模块21执行所述获取各内存并发操作单元的访问信息的操作;若否,则返回决策模块11执行选择待分配的内存并发操作单元的操作。
本实施例的装置,可以用于执行本发明实施例所提供的内存管理方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
实施例十
图10为本发明内存管理装置实施例五的结构示意图,如图10所示,本实施例的装置在图6所示装置结构的基础上,进一步地,还可以包括:识别模块51、第一控制模块52和第二控制模块53,其中,所述识别模块51用于根据各内存并发操作单元的历史访问信息,识别各内存并发操作单元的访问密集度,所述第一控制模块52用于当访问密集度低于第一门限值时,关闭处于打开状态的设定关闭数量的内存并发操作单元,所述第二控制模块53用于当访问密集度高于第二门限值时,打开处于关闭状态的设定打开数量的内存并发操作单元。
本实施例的装置,可以用于执行本发明实施例所提供的内存管理方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
实施例十一
图11a为本发明计算机实施例的结构示意图,如图11a所示,本实施例的第一计算机69除包括中央处理器61、内存62、内存控制器63、存储器64外,还包括:内存管理装置65和性能计数器66,所述内存管理装置65配置在所述中央处理器的操作系统之中,可以采用本发明任意实施例所提供内存管理装置,其对应地,可以执行本发明任意实施例所提供的内存管理方法的技术方案,其实现原理和技术效果类似,此处不再赘述。所述性能计数器66可以执行图2中S201的技术方案,其实现原理和技术效果类似,此处不再赘述。
可选地,如图11b所示,图11b为为本发明计算机实施例的另一结构示意图。上述实施例的计算机还可以为第二计算机70,与所述第一计算机69不同之处在于,第二计算机70中将第一计算机69的性能计数器66替换为监听卡67。所述监听卡67通过独立反馈通路68传输至内存管理装置65,其相应地,可以执行图2中S201的技术方案,其实现原理和技术效果类似,此处不再赘述。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (15)
1.一种内存管理方法,其特征在于,包括:
当获取到物理内存页面分配请求时,根据各内存并发操作单元的历史访问信息,选择访问率低的内存并发操作单元,作为待分配的内存并发操作单元;
从所述待分配的内存并发操作单元中分配空闲物理内存页面。
2.根据权利要求1所述的内存管理方法,其特征在于,还包括:
获取各内存并发操作单元的访问信息;
根据所述访问信息更新各内存并发操作单元的历史访问信息。
3.根据权利要求2所述的内存管理方法,其特征在于,获取各内存并发操作单元的访问信息包括:
通过内存控制器中的性能计数器,采集各内存并发操作单元的访问信息;或
通过反馈通路,获取监听内存控制器的监听卡采集到的各内存并发操作单元的访问信息。
4.根据权利要求2所述的内存管理方法,其特征在于,从所述待分配的内存并发操作单元中分配空闲物理内存页面之后,还包括:
判断当前调度周期是否结束;
若是,则返回执行所述获取各内存并发操作单元的访问信息的操作;
若否,则返回执行选择待分配的内存并发操作单元的操作。
5.根据权利要求1所述的内存管理方法,其特征在于,还包括:
根据各内存并发操作单元的历史访问信息,识别各内存并发操作单元的访问密集度;
当访问密集度低于第一门限值时,关闭处于打开状态的设定关闭数量的内存并发操作单元;
当访问密集度高于第二门限值时,打开处于关闭状态的设定打开数量的内存并发操作单元。
6.根据权利要求5所述的内存管理方法,其特征在于:所述设定关闭数量为当前打开状态的内存并发操作单元数量的二分之一;所述设定打开数量为当前打开状态的内存并发操作单元数量。
7.根据权利要求5所述的内存管理方法,其特征在于:所述访问信息至少包括内存并发操作单元的访问次数和命中次数,所述访问密集度为单位时间内所有内存并发操作单元的访问次数,或命中次数,或访问次数与命中次数之差的平均值。
8.一种内存管理装置,其特征在于,包括:
决策模块,用于当获取到物理内存页面分配请求时,根据各内存并发操作单元的历史访问信息,选择访问率低的内存并发操作单元,作为待分配的内存并发操作单元;
页面分配模块,用于从所述待分配的内存并发操作单元中分配空闲物理内存页面。
9.根据权利要求8所述的内存管理装置,其特征在于,还包括:
获取模块,用于获取各内存并发操作单元的访问信息;
维护模块,用于根据所述访问信息更新各内存并发操作单元的历史访问信息。
10.根据权利要求9所述的内存管理装置,其特征在于,所述获取模块包括:
第一获取单元,用于通过内存控制器中的性能计数器,采集各内存并发操作单元的访问信息;或
第二获取单元,用于通过反馈通路,获取监听内存控制器的监听卡采集到的各内存并发操作单元的访问信息。
11.根据权利要求9所述的内存管理装置,其特征在于,还包括:
调度周期判断模块,用于判断当前调度周期是否结束;若是,则返回获取模块执行所述获取各内存并发操作单元的访问信息的操作;若否,则返回决策模块执行选择待分配的内存并发操作单元的操作。
12.根据权利要求8所述的内存管理装置,其特征在于,还包括:
识别模块,用于根据各内存并发操作单元的历史访问信息,识别各内存并发操作单元的访问密集度;
第一控制模块,用于当访问密集度低于第一门限值时,关闭处于打开状态的设定关闭数量的内存并发操作单元;
第二控制模块,用于当访问密集度高于第二门限值时,打开处于关闭状态的设定打开数量的内存并发操作单元。
13.根据权利要求12所述的内存管理装置,其特征在于:所述设定关闭数量为当前打开状态的内存并发操作单元数量的二分之一;所述设定打开数量为当前打开状态的内存并发操作单元数量。
14.根据权利要求12所述的内存管理装置,其特征在于:所述访问信息至少包括内存并发操作单元的访问次数和命中次数,所述访问密集度为一单位时间内所有内存并发操作单元的访问次数,或命中次数,或访问次数与命中次数之差的平均值。
15.一种计算机,包括中央处理器、内存、内存控制器和存储器,其特征在于,还包括:
权利要求8至14任一项权利要求所述内存管理装置,配置在所述中央处理器的操作系统之中;
性能计数器,配置在内存控制器中,用于采集各内存并发操作单元的访问信息;或,监听卡,分别通过反馈通路与内存控制器和内存管理装置相连,用于通过反馈通路,从内存控制器中采集各内存并发操作单元的访问信息,并提供给所述内存管理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210578708.6A CN103902462B (zh) | 2012-12-27 | 2012-12-27 | 内存管理方法、内存管理装置及计算机 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210578708.6A CN103902462B (zh) | 2012-12-27 | 2012-12-27 | 内存管理方法、内存管理装置及计算机 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103902462A true CN103902462A (zh) | 2014-07-02 |
CN103902462B CN103902462B (zh) | 2018-03-09 |
Family
ID=50993796
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210578708.6A Active CN103902462B (zh) | 2012-12-27 | 2012-12-27 | 内存管理方法、内存管理装置及计算机 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103902462B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108388498A (zh) * | 2018-02-12 | 2018-08-10 | 北京大学 | 内存中计算的功率建模方法及功率管理方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101387986A (zh) * | 2007-09-13 | 2009-03-18 | 索尼株式会社 | 集成器件、其布置方法和程序 |
US20090303807A1 (en) * | 2008-06-05 | 2009-12-10 | Samsung Electronics Co., Ltd. | Semiconductor device and semiconductor system having the same |
CN102084345A (zh) * | 2007-08-22 | 2011-06-01 | 先进微装置公司 | 侦测推测性预充电 |
CN102473140A (zh) * | 2009-07-17 | 2012-05-23 | 株式会社东芝 | 存储器管理装置 |
CN102662853A (zh) * | 2012-03-22 | 2012-09-12 | 北京北大众志微系统科技有限责任公司 | 实现使用存储级并行的内存管理方法及装置 |
-
2012
- 2012-12-27 CN CN201210578708.6A patent/CN103902462B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102084345A (zh) * | 2007-08-22 | 2011-06-01 | 先进微装置公司 | 侦测推测性预充电 |
CN101387986A (zh) * | 2007-09-13 | 2009-03-18 | 索尼株式会社 | 集成器件、其布置方法和程序 |
US20090303807A1 (en) * | 2008-06-05 | 2009-12-10 | Samsung Electronics Co., Ltd. | Semiconductor device and semiconductor system having the same |
CN102473140A (zh) * | 2009-07-17 | 2012-05-23 | 株式会社东芝 | 存储器管理装置 |
CN102662853A (zh) * | 2012-03-22 | 2012-09-12 | 北京北大众志微系统科技有限责任公司 | 实现使用存储级并行的内存管理方法及装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108388498A (zh) * | 2018-02-12 | 2018-08-10 | 北京大学 | 内存中计算的功率建模方法及功率管理方法 |
CN108388498B (zh) * | 2018-02-12 | 2020-09-08 | 北京大学 | 内存中计算的功率建模方法及功率管理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103902462B (zh) | 2018-03-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
El-Sayed et al. | KPart: A hybrid cache partitioning-sharing technique for commodity multicores | |
CN103023963B (zh) | 一种用于云存储资源优化分配的方法 | |
CN105068940B (zh) | 一种基于Bank划分的自适应页策略确定方法 | |
US9311013B2 (en) | Storage system and storage area allocation method having an automatic tier location function | |
CN104516471B (zh) | 一种管理存储器系统的电源的方法和装置 | |
CN102187323B (zh) | 多核存储器模块中的功率下降模式的动态利用 | |
CN109766182A (zh) | 系统资源动态扩缩容方法、装置、计算机设备及存储介质 | |
US20020199129A1 (en) | Data storage on a computer disk array | |
CN102103516A (zh) | 基于虚拟cpu的频率和电压调节 | |
Liu et al. | Going vertical in memory management: Handling multiplicity by multi-policy | |
US20110087843A1 (en) | Monitoring cache usage in a distributed shared cache | |
CN106506657A (zh) | 一种基于多目标的云计算虚拟机分配调整方法 | |
CN103229136B (zh) | 磁盘阵列刷盘方法及磁盘阵列刷盘装置 | |
CN106020714A (zh) | 用于云存储的高速缓存操作和分层操作 | |
CN110784502B (zh) | 存储协调策略的生成、验证及实施 | |
US20120203999A1 (en) | Implementing optimal storage tier configurations for a workload in a dynamic storage tiering system | |
CN102521052B (zh) | 虚拟化数据中心资源分配方法及虚拟机监控器 | |
CN101165635A (zh) | 用于计算机处理器系统的功率管理的系统和方法 | |
CN103136120B (zh) | 行缓冲管理策略确定方法和装置、bank划分方法和装置 | |
CN106484330A (zh) | 一种混合磁盘分层数据优化方法和装置 | |
CN109388337A (zh) | 存储设备,以及对存储设备中的多个固态驱动器之间的利用率进行平衡的方法 | |
CN108733308A (zh) | 用于管理盘池的方法和设备 | |
CN105022587A (zh) | 一种设计磁盘阵列的方法和存储装置 | |
CN103685542A (zh) | 云虚拟机迁移方法、装置和系统 | |
CN109857239A (zh) | 存储控制方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |