[发明专利]用于样本驱动简档引导优化的方法、电子设备及电子系统有效
申请号: | 201780034584.6 | 申请日: | 2017-05-17 |
公开(公告)号: | CN109863473B | 公开(公告)日: | 2022-05-17 |
发明(设计)人: | 何文垒;T·岑;P·J·昌达尔 | 申请(专利权)人: | 微软技术许可有限责任公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41;G06F11/34 |
代理公司: | 北京市金杜律师事务所 11256 | 代理人: | 王茂华 |
地址: | 美国华*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 样本 驱动 引导 优化 方法 电子设备 电子 系统 | ||
1.一种电子设备,包括:
至少一个处理器和存储器;
其中所述至少一个处理器被配置为:
针对程序在代码优化之前的至少一个函数生成控制流表示,所述控制流表示包括用于至少一个基本块的相关数据,所述相关数据包括一系列相对虚拟地址和块计数,所述一系列相对虚拟地址与作为所述至少一个基本块的部分的指令相关联,所述一系列相对虚拟地址相对于所述程序的链接镜像;
获取包括相对虚拟地址和计数的硬件指令样本,其中所述硬件指令样本基于所述程序在代码优化之后的版本;
基于匹配的相对虚拟地址找到与所述硬件指令样本相对应的基本块,其中所述基本块不具有重新定位指令;
利用所述计数来更新与匹配的所述基本块相关联的块计数;以及
基于所述块计数来优化所述程序。
2.根据权利要求1所述的设备,
其中匹配的所述基本块的所述控制流表示包括内联函数的控制流表示,并且
其中匹配的所述基本块是与所述内联函数相关联的基本块。
3.根据权利要求1所述的设备,其中所述函数的所述控制流表示基于中间代码表示。
4.根据权利要求1所述的设备,其中所述相对虚拟地址相对于所述函数在所述程序的链接镜像中的起始。
5.根据权利要求1所述的设备,其中所述至少一个处理器还被配置为:编辑所述程序,并且使用所述控制流表示来重新优化所述程序。
6.根据权利要求1所述的设备,还包括性能监测单元,并且
其中所述硬件指令样本从所述性能监测单元被获取。
7.一种电子系统,包括:
至少一个处理器和存储器;
其中所述存储器包括可执行指令,所述可执行指令当在所述至少一个处理器上被执行时执行以下动作:
针对程序生成相关数据,所述相关数据包括所述程序在代码优化之前的控制流表示,所述程序包括一个或多个基本块,至少一个基本块与所述程序的至少一个函数相关联,所述至少一个基本块包括与所述至少一个基本块的指令相对应的一系列相对虚拟地址RVA,相对虚拟地址基于所述程序的镜像文件;
从所述程序的执行版本中获取样本跟踪数据,所述样本跟踪数据包括已执行指令的RVA和计数,所述计数表示与对应的RVA相关联的已执行指令的执行的频率,其中所述程序的所述执行版本包含优化的指令;
使用所述样本跟踪数据生成用于程序的样本简档数据SPD,所述样本简档数据包括所述相关数据和所述相关数据中的每个基本块的块计数,所述块计数包括基于基本块内与所述样本跟踪数据中的RVA匹配的RVA的、来自所述样本跟踪数据的计数,其中所述基本块不具有重新定位指令;以及
使用所述SPD来优化所述程序。
8.根据权利要求7所述的系统,其中所述存储器包括另外的指令,所述另外的指令当在所述至少一个处理器上被执行时执行以下动作:
在所述程序的第一编译期间,针对所述至少一个基本块生成块到偏移映射,所述块到偏移映射包括所述至少一个基本块中的每个指令相对于与所述基本块相关联的所述函数的起始的偏移。
9.根据权利要求8所述的系统,其中所述存储器包括另外的指令,所述另外的指令当在所述至少一个处理器上被执行时执行以下动作:
利用由链接器得到的对应的RVA来替换所述块到偏移映射中的所述偏移。
10.根据权利要求7所述的系统,其中所述存储器包括另外的指令,所述另外的指令当在所述至少一个处理器上被执行时执行以下动作:
从附加样本运行中获取新样本数据,并且将来自所述新样本数据的计数合并到与基本块相关联的现有块计数中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于微软技术许可有限责任公司,未经微软技术许可有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201780034584.6/1.html,转载请声明来源钻瓜专利网。
- 上一篇:机器人控制装置的编码方法、程序及机器人控制装置
- 下一篇:更新迁移系统和方法