[发明专利]实现使用存储级并行的内存管理方法及装置无效
申请号: | 201210078070.X | 申请日: | 2012-03-22 |
公开(公告)号: | CN102662853A | 公开(公告)日: | 2012-09-12 |
发明(设计)人: | 程旭;钟祺;管雪涛;王晶 | 申请(专利权)人: | 北京北大众志微系统科技有限责任公司 |
主分类号: | G06F12/06 | 分类号: | G06F12/06 |
代理公司: | 常州市维益专利事务所 32211 | 代理人: | 路接洲 |
地址: | 100080 北京市海淀区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 实现 使用 存储 并行 内存 管理 方法 装置 | ||
技术领域
本发明涉及到计算机系统的内存管理方法,尤其涉及实现使用存储级并行的内存管理方法及装置。
背景技术
处理器和主存之间存在较大的性能差距。Cache能减少处理器访问主存的次数,但大容量Cache难以在片上集成,并且Cache单一的替换策略也难以满足应用访存行为的多样性。处理器仍会耗费大量的时间用于访问主存,因此需要主存更加快速地响应处理器的访存请求。
访存地址中包含了行地址和列地址,用于定位存储阵列中的存储单元。当前主存采用高位交叉的方式来构造,使得行选和列选复用地址线和译码器,以节省成本。但单个存储阵列的数据宽度有限,为了与数据总线的宽度匹配,内存控制器会同时选中一组存储阵列,并且各个存储阵列来自不同的DRAM芯片。同时被选中的存储阵列成为bank。这就是内存芯片寻址的基本原理。
RAM被称为随机存储器,但从当前存储器的设计来看,每条指令访问存储器的延迟并不一致。从主存的组成来看,访问主存需要选中对应的存储体(bank),使连续多条访存指令分别访问不同的bank,是保证存储级并行的重要手段。数据在主存中的分布决定着并行度的高低。如果分配给程序的页帧都来自不同的bank,则前后两次访存定位到不同的bank。在等待第一个访存请求的结果时,就可以开始响应第二个访存请求。前后两次访存的过程相叠加,进而提高访存的性能。因此,数据在主存中的布局越分散,则更容易发挥多bank结构提供的并行访问能力,这里的分散是指数据分布在不同的bank中。特别是随着主存的集成度不断提高,主存的生产成本逐步降低,bank数与主存的容量同步增长。一旦数据聚簇在主存的部分bank中,应用执行时只会有部分bank处于工作状态,从而限制了大容量主存潜在的性能。
因此,针对目前使用大容量主存的内存管理所存在的一系列问题,需要提供一种改进的内存管理方法,根据应用的访存行为充分利用bank资源,同时兼顾优化方法的灵活性和通用性,从而实现对系统性能的优化。
发明内容
本发明要解决的技术问题是:提出一种实现使用存储级并行的内存管理方法及装置,能够减少应用数据聚簇在主存的部分bank中,导致主存潜在的性能被低估。
本发明所采用的技术方案为:一种实现使用存储级并行的内存管理方法,以所述的bank组为单位分配内存,并确定划分的bank组与数据间的映射关系。并为应用的数据分配符合所述bank组的映射条件的物理页帧。
本发明以所述应用的数据为单位划分使用主存的bank,并确定划分的bank的映射条件,具体包括:将与所述主存的高位片选地址对主存的bank进行划分,并以所述划分的bank组号作为所述数据的染色条件。
为冲突开销较大的数据分配来自不同bank组的物理页帧,具体包括:当所述应用申请物理内存时,根据数据间的冲突开销将数据散步到不同的bank组。确保冲突开销较大的数据使用不同的bank资源;判断新申请的内存与已申请内存之间的开销,如果开销较大,则为新申请的内存染色,保证最大的前n个内存区域被着以不同的颜色;如果开销较小,则将新的内存区域着以第n个内存区域的颜色。
同时,本发明还提供了一种使用大容量高速缓存的内存管理装置,包括bank分组模块,数据染色模块和内存分配模块,其中:
Bank分组模块,用于将bank的概念引入内存分配器。通过bank分组建立地址与bank间的关联,使分配器能根据地址范围标识不同的bank;Bank的分组信息输出给数据染色模块和内存分配模块。
数据染色模块,用于判断变量间的冲突开销;变量占用的存储单元越多,越难在Cache中驻留;当处理器同时操作多个变量时,使用变量大小的乘积表示变量间的冲突开销;冲突的开销越大,则需要将这些数据散布到不同的bank组;数据的染色结果输出给内存分配模块;
内存分配模块,用于为被染色的数据分配对应的物理页帧。
具体的说,本发明所述数据染色模块包括静态数据染色单元和动态数据染色单元,其中:
静态数据染色单元,在应用申请BSS段时,将符号表中的变量描述作为染色依据,并将染色结果输出给动态数据染色单元;
动态数据染色单元,用于将操作系统捕获的内存分配请求,将符合染色条件的动态内存插入链表,根据用户的输入动态调整染色结果;
而所述内存分配模块包括依次连接的染色数据判断单元和页帧分配单元,其中:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京北大众志微系统科技有限责任公司,未经北京北大众志微系统科技有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210078070.X/2.html,转载请声明来源钻瓜专利网。