[发明专利]一种面向可变粒度内存系统的二进制文件重写方法有效
| 申请号: | 201510082216.1 | 申请日: | 2015-02-15 | 
| 公开(公告)号: | CN104679477B | 公开(公告)日: | 2017-08-01 | 
| 发明(设计)人: | 吕方;王晨曦;黄磊;冯晓兵;崔慧敏;王蕾 | 申请(专利权)人: | 中国科学院计算技术研究所 | 
| 主分类号: | G06F9/30 | 分类号: | G06F9/30 | 
| 代理公司: | 北京泛华伟业知识产权代理有限公司11280 | 代理人: | 王勇 | 
| 地址: | 100190 北*** | 国省代码: | 北京;11 | 
| 权利要求书: | 查看更多 | 说明书: | 查看更多 | 
| 摘要: | |||
| 搜索关键词: | 一种 面向 可变 粒度 内存 系统 二进制文件 重写 方法 | ||
技术领域
本发明涉及编译器优化技术领域,更具体地,涉及一种面向可变粒度内存系统的二进制文件重写方法。
背景技术
计算机的内存系统是影响计算机体系结构和软件执行效率的重要因素。传统的内存访问的数据粒度是固定不变的,而且有增大的趋势。但是在真实程序中,实际每次数据访问的粒度是变化的,对于数据访问是无局部性且粒度很小的应用,每次访问采用固定的大数据粒度必然会造成浪费;而一些需要大量连续数据读写的应用,又需要将整个数据访问分割成多个内存事务进行,从而增加了协议上的开销。可见,固定粒度的访存模式无法有效利用访存带宽。随着云计算、大数据应用的兴起,程序对数据的访问带宽和容量要求越来越高,传统内存系统遇到延迟、带宽、效率、容量、功耗的挑战,从而出现了新型的内存系统,可变粒度内存系统是其一。可变粒度内存系统是能够支持不同粒度访存请求的内存系统,其合理地合并访存请求,能够减少访存总开销并提高有效带宽利用率。
对于可变粒度内存系统来说,新的结构特征往往涉及访存方式的一些变化。例如,需要显式地增加指令来移入/移出数据、合理合并访存请求,以减少访存次数及开销并提高有效带宽利用率。由于大量的面向传统内存系统的二进制形式的应用程序代码(下文简称二进制文件)不适用于可变粒度内存系统,因此如何将该二进制形式的应用程序代码平滑地移植到可变粒度内存系统上,同时无需应用程序的源码且无需修改编译器源码,是目前需要解决的问题。
发明内容
针对上述问题,根据本发明的一个实施例,提供一种面向可变粒度内存系统的二进制文件重写方法,包括:
步骤1)、在二进制文件的中间表示中找到热循环区域,其中,热循环区域是执行次数超过预定阈值的循环的代码区域;
步骤2)、对于访存行为符合可变粒度访存模式的热循环区域,合并该区域内的访存信息,并且在该区域之前插入头语句;其中,一个访存信息指示一条访存指令且包括访存所访问的地址信息,所述头语句用于实现从可变粒度内存系统读取的功能;
步骤3)、根据修改后的热循环区域生成目标机器代码。
上述方法中,在步骤2)中,合并访存行为符合可变粒度访存模式的热循环区域内的访存信息包括:
合并该区域内的访存信息,使得合并后的访存信息对应的效益大于构成该合并的每个访存信息对应的效益之和并且合并后该区域的访存行为符合可变粒度访存模式;其中,所述效益与资源占用率及性能相关联。
上述方法中,所述效益表示如下:
其中,FACTORS=3,factori表示effecti的意愿因子,取值在0到1之间,并且βi为参数;effect1=size(data)/time(data access),size(data)表示合并的访存信息的数据总长度,time(data access)表示合并的访存信息对应的可变粒度内存系统的访问次数与一次访问内存的开销之积;effect2=size(data)/size(transfer_data),size(transfer_data)表示合并的访存信息对应的可变粒度内存系统的访问操作的总数据传输量;effect3=size(data)/size(getin_data),size(getin_data)表示合并的访存信息对应的可变粒度内存系统访问操作所存入高速缓存的总数据量。
上述方法中,步骤1)之前还包括:选择动态地执行二进制文件重写或者静态地执行二进制文件重写。其中,人为选择二进制文件重写的动态或静态执行方式;或者如果不存在人为选择,则对于运行时间大于预定时间阈值且系统资源满足其资源需求的二进制文件,选择动态地执行二进制文件重写,否则选择静态地执行二进制文件重写。
上述方法中,步骤1)还包括:
如果静态地执行二进制文件重写,则将所述二进制文件翻译成中间表示;
如果动态地执行二进制文件重写,则将已执行的并且未翻译过的二进制文件代码翻译成中间表示。
上述方法中,步骤2)包括对于访存行为符合可变粒度访存模式的热循环区域执行以下步骤:
步骤21)、提取访存信息,按顺序记录该访存信息;其中,一个访存信息指示一条访存指令且包括访存所访问的地址信息;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院计算技术研究所,未经中国科学院计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510082216.1/2.html,转载请声明来源钻瓜专利网。





