内存分配方法、内存分配装置及服务器制造方法及图纸

技术编号:14335184 阅读:138 留言:0更新日期:2017-01-04 08:56
本发明专利技术提供一种内存分配方法、内存分配装置及服务器。本发明专利技术提供的内存分配方法,包括:接收应用程序的页面请求,所述页面请求中携带所述应用程序的标识;确定所述应用程序的标识对应的访存特征;根据所述应用程序的访存特征确定管理策略,并将所述应用程序的页面请求分配至所述管理策略对应的地址空间中。本发明专利技术提供的内存分配方法,可以针对应用程序的访存特征采取差异化的管理策略,解决了多线程访存多样性问题,并提升了存储系统的存储效率,缓解了存储墙问题。

【技术实现步骤摘要】

本专利技术涉及微处理器设计领域,尤其涉及一种内存分配方法、内存分配装置及服务器
技术介绍
存储系统是指计算机中由存放程序和数据的各种存储设备、控制部件以及管理信息调度的硬件和软件所组成的系统。现代计算机采用由多级存储设备组成的存储体系,包括高速缓冲存储器cache、主存储器、外存储器三级,其中,主存储器又称主存、内存,普遍采用动态随机存取存储器(DynamicRandomAccessMemory,简称DRAM)。计算机中,存储系统的存储容量应确保各种应用程序的需要,存储系统的存储速度应尽量与中央处理器(CentralProcessingUnit,简称CPU)的处理速度相匹配。但是,由于CPU性能提升的速度远大于DRAM性能提升的速度,因此,形成了CPU计算性能和存储性能之间的速度差,称为存储墙问题。为了提高存储系统的存储性能,提出了各种各样的管理策略,例如预取策略。所谓预取策略,是指存储系统根据CPU发出的地址历史信息,预测CPU将要访问的地址,提前将该预测的地址从下级存储设备中取到上级存储设备中(比如,从内存预取到cache中),加快了应用程序的执行速度。图1为现有的存储系统的结构示意图,如图1所示,内存空间配置统一的管理策略,当应用程序发出页面请求时,操作系统将页面请求分配到配置了管理策略的内存空间中。但是,随着处理器性能的提升,处理器可以同时执行多个线程,不同的线程具有不同的访存需求和访存特点,例如:计算密集型的应用对访存延迟比较敏感,而图像和视频应用则对访存带宽比较敏感。由于应用程序不同的访存需求和访存特点,对存储系统的管理策略提出了不同的要求,尤其是当这些线程交织在一起,内存控制器面对的访存请求具有非常大的不规则性和不可预测性,从而使得存储系统的存储性能受到了严重影响。而且,随着多核处理器的发展,多线程访存行为更加复杂。图2为多核处理器的结构示意图,如图2所示,多核处理器一般包含几个对称的处理器核,它们各自拥有私有的一级/二级缓存,通过互连总线访问共享的最后一级缓存和内存控制器。由于多个处理器核同时访问共享的内存控制器,更加加剧了对内存资源的竞争,使得多线程访存多样性问题和存储墙问题变得更为突出。现有技术中,针对多线程的访存多样性问题,可以采用线程分簇的内存调度,将线程分为延迟敏感型和带宽敏感型两类,内存控制器在进行命令调度时,优先调度延迟敏感型的线程,对于带宽敏感型的线程,通过周期性地重排线程的优先级来保证线程间的公平性。但是,线程分簇调度可以平衡存储系统的吞吐率和公平性问题,却不能发挥DRAM的最大性能,影响了存储系统的存储效率,加剧了存储墙问题。
技术实现思路
本专利技术提供一种内存分配方法、内存分配装置及服务器,可以针对应用程序的访存特征采取差异化的管理策略,解决了多线程访存多样性问题,并提升了存储系统的存储效率,缓解了存储墙问题。第一方面,本专利技术提供一种内存分配方法,包括:接收应用程序的页面请求,所述页面请求中携带所述应用程序的标识;确定所述应用程序的标识对应的访存特征;根据所述应用程序的访存特征确定管理策略,并将所述应用程序的页面请求分配至所述管理策略对应的地址空间中。结合第一方面,在第一方面的第一种可能的实现方式中,所述确定所述应用程序的标识对应的访存特征,包括:在应用程序特征表中查询是否存在所述应用程序的标识,所述应用程序特征表中包括多个应用程序的标识及对应的访存特征;若存在,则获得所述应用程序的标识对应的访存特征;若不存在,则通过自学习过程或者调用所述应用程序的预设应用程序编程接口API,获得所述应用程序的访存特征,并将所述应用程序的标识及对应的访存特征存储在所述应用程序特征表中。结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述通过自学习过程获得所述应用程序的访存特征,包括:将所述应用程序的连续N次页面请求分配至一个管理策略对应的地址空间中,统计所述管理策略对应的地址空间与所述应用程序之间的亲和度;N为大于等于1的整数;判断所述亲和度是否大于预设阈值;若是,则根据所述亲和度获得所述应用程序的访存特征;若否,则重新分配一个管理策略对应的地址空间,直至管理策略对应的地址空间与所述应用程序之间的亲和度大于预设阈值;或者,直至不存在其他管理策略对应的地址空间,则学习过程结束,根据亲和度获得所述应用程序的访存特征。结合第一方面、第一方面的第一或第二种任一种可能的实现方式,在第一方面的第三种可能的实现方式中,所述管理策略包括:流式预取策略、基于内容的预取策略,以及不预取策略。结合第一方面、第一方面的第一或第二种任一种可能的实现方式,在第一方面的第四种可能的实现方式中,所述应用程序的访存特征包括:应用程序的空间局部性和应用程序的时间局部性。第二方面,本专利技术提供一种内存分配装置,包括:接收模块,用于接收应用程序的页面请求,所述页面请求中携带所述应用程序的标识;处理模块,用于确定所述应用程序的标识对应的访存特征;分配模块,用于根据所述应用程序的访存特征确定管理策略,并将所述应用程序的页面请求分配至所述管理策略对应的地址空间中。结合第二方面,在第二方面的第一种可能的实现方式中,所述处理模块还包括查询模块、第一获取模块、第二获取模块和第三获取模块;所述查询模块用于,在应用程序特征表中查询是否存在所述应用程序的标识,所述应用程序特征表中包括多个应用程序的标识及对应的访存特征;所述第一获取模块用于,若所述应用程序特征表中存在所述应用程序的标识,则获得所述应用程序的标识对应的访存特征;所述第二获取模块用于,若所述应用程序特征表中不存在所述应用程序的标识,则通过自学习过程获得所述应用程序的访存特征,并将所述应用程序的标识及对应的访存特征存储在所述应用程序特征表中;所述第三获取模块用于,若所述应用程序特征表中不存在所述应用程序的标识,则调用所述应用程序的预设API,获得所述应用程序的访存特征,并将所述应用程序的标识及对应的访存特征存储在所述应用程序特征表中。结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述第二获取模块具体用于:将所述应用程序的连续N次页面请求分配至一个管理策略对应的地址空间中,统计所述管理策略对应的地址空间与所述应用程序之间的亲和度;N为大于等于1的整数;判断所述亲和度是否大于预设阈值;若是,则根据所述亲和度获得所述应用程序的访存特征;若否,则重新分配一个管理策略对应的地址空间,直至管理策略对应的地址空间与所述应用程序之间的亲和度大于预设阈值;或者,直至不存在其他管理策略对应的地址空间,则学习过程结束,根据亲和度获得所述应用程序的访存特征。结合第二方面、第二方面的第一或第二种任一种可能的实现方式,在第二方面的第三种可能的实现方式中,所述管理策略包括:流式预取策略、基于内容的预取策略,以及不预取策略。结合第二方面、第二方面的第一或第二种任一种可能的实现方式,在第二方面的第四种可能的实现方式中,所述应用程序的访存特征包括:应用程序的空间局部性和应用程序的时间局部性。第三方面,本专利技术提供一种服务器,包括:内存控制器,内存,外存储器,处理器;所述内存控制器用于将所述内存划分为多个地址空间,并为所述地址空本文档来自技高网
...
内存分配方法、内存分配装置及服务器

【技术保护点】
一种内存分配方法,其特征在于,包括:接收应用程序的页面请求,所述页面请求中携带所述应用程序的标识;确定所述应用程序的标识对应的访存特征;根据所述应用程序的访存特征确定管理策略,并将所述应用程序的页面请求分配至所述管理策略对应的地址空间中。

【技术特征摘要】
1.一种内存分配方法,其特征在于,包括:接收应用程序的页面请求,所述页面请求中携带所述应用程序的标识;确定所述应用程序的标识对应的访存特征;根据所述应用程序的访存特征确定管理策略,并将所述应用程序的页面请求分配至所述管理策略对应的地址空间中。2.根据权利要求1所述的方法,其特征在于,所述确定所述应用程序的标识对应的访存特征,包括:在应用程序特征表中查询是否存在所述应用程序的标识,所述应用程序特征表中包括多个应用程序的标识及对应的访存特征;若存在,则获得所述应用程序的标识对应的访存特征;若不存在,则通过自学习过程或者调用所述应用程序的预设应用程序编程接口API,获得所述应用程序的访存特征,并将所述应用程序的标识及对应的访存特征存储在所述应用程序特征表中。3.根据权利要求2所述的方法,其特征在于,所述通过自学习过程获得所述应用程序的访存特征,包括:将所述应用程序的连续N次页面请求分配至一个管理策略对应的地址空间中,统计所述管理策略对应的地址空间与所述应用程序之间的亲和度;N为大于等于1的整数;判断所述亲和度是否大于预设阈值;若是,则根据所述亲和度获得所述应用程序的访存特征;若否,则重新分配一个管理策略对应的地址空间,直至管理策略对应的地址空间与所述应用程序之间的亲和度大于预设阈值;或者,直至不存在其他管理策略对应的地址空间,则学习过程结束,根据亲和度获得所述应用程序的访存特征。4.根据权利要求1-3任一项所述的方法,其特征在于,所述管理策略包括:流式预取策略、基于内容的预取策略,以及不预取策略。5.根据权利要求1-3任一项所述的方法,其特征在于,所述应用程序的访存特征包括:应用程序的空间局部性和应用程序的时间局部性。6.一种内存分配装置,其特征在于,包括:接收模块,用于接收应用程序的页面请求,所述页面请求中携带所述应用程序的标识;处理模块,用于确定所述应用程序的标识对应的访存特征;分配模块,用于根据所述应用程序的访存特征确定管理策略,并将所述应用程序的页面请求分配至所述管理策略对应的地址空间...

【专利技术属性】
技术研发人员:陈新科
申请(专利权)人:龙芯中科技术有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1