[发明专利]用于使用控制依赖图来将控制流程序转换成数据流程序的技术在审
申请号: | 201810394327.X | 申请日: | 2018-04-27 |
公开(公告)号: | CN108984210A | 公开(公告)日: | 2018-12-11 |
发明(设计)人: | Y·张 | 申请(专利权)人: | 英特尔公司 |
主分类号: | G06F9/30 | 分类号: | G06F9/30;G06F9/38;G06F8/41 |
代理公司: | 永新专利商标代理有限公司 72002 | 代理人: | 刘瑜;王英 |
地址: | 美国加*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据流程序 控制流 自动生成 翻译器 依赖图 机器可读介质 数据处理系统 数据流图 程序转换 非暂时性 开关指令 使用控制 自动转换 存储 场景 响应 | ||
1.一种利用用于将控制流程序自动转换成数据流程序的技术的数据处理系统,所述数据处理系统包括:
处理器;
非暂时性机器可读介质,其响应于所述处理器;以及
翻译器,其存储在所述机器可读介质中,其中,所述翻译器当由所述数据处理系统执行时使所述数据处理系统能够:
自动生成控制流程序的控制依赖图;
至少部分地基于所述控制依赖图,自动生成数据流图;以及
至少部分地基于所述数据流图,自动生成数据流程序。
2.根据权利要求1所述的数据处理系统,其中,所述翻译器当被执行时使所述数据处理系统能够:
自动将所述控制流程序中的变量与不同控制依赖区域相关联;
针对所述控制流程序中的至少一个特定变量,自动确定是否所述变量在一个控制依赖区域中被定义并且在不同的控制依赖区域中被使用;以及
响应于确定所述变量在一个控制依赖区域中被定义并且在不同的控制依赖区域中被使用,自动将开关指令插入到所述数据流程序中。
3.根据权利要求2所述的数据处理系统,其中:
所述开关指令命名(i)用于接收控制值的控制信道、(ii)用于接收输入值的输入信道、以及(iii)至少两个输出信道;并且
所述开关指令被设计为当被执行时执行以下操作:
至少部分地基于所述控制值来选择所述输出信道中的一个;以及
在所选择的输出信道上产生所述输入值。
4.根据权利要求3所述的数据处理系统,其中,所述开关指令还被设计为当被执行时消费所述控制值和所述输入值。
5.根据权利要求1所述的数据处理系统,其中,所述翻译器当被执行时使所述数据处理系统能够:
自动标识基本块之间的控制依赖,其中,每个控制依赖涉及控制依赖基本块和父基本块;
自动确定基本块的执行频率;以及
至少部分地基于对以下的确定(a)基本块序列中的每个基本块是否直接控制依赖于相同的父基本块以及(b)所述序列中的每个基本块是否具有相同的执行频率,自动生成控制依赖区域的列表。
6.根据权利要求1所述的数据处理系统,其中:
所述控制流程序至少具有两个点(A,B)以及结束;并且
自动生成所述控制依赖图的所述操作包括:
确定是否存在多于一条从点A到所述结束的路径;
如果存在多于一条从点A到所述结束的路径,则确定是否所述路径中的一条经过点B,并且所述路径中的另一条不经过点B;
响应于确定(a)存在多于一条从点A到所述结束的路径以及(b)所述路径中的一条经过B并且所述路径中的另一条不经过点B,将点B标记为控制依赖于点A;以及
当且仅当点B控制依赖于点A时,在所述控制依赖图中包括从点A到点B的边。
7.根据权利要求6所述的数据处理系统,其中,点A和点B中的每一者包括来自由以下各项构成的组的至少一项:
来自所述控制流程序的指令;
来自所述控制流程序的指令的、循环中的实例;
来自所述控制流程序的基本块;以及
来自所述控制流程序的基本块的、循环中的实例。
8.根据权利要求1所述的数据处理系统,其中,所述翻译器包括编译器。
9.根据权利要求1所述的数据处理系统,其中:
所述处理器包括控制流处理器;
所述数据处理系统还包括数据流处理器;
所述翻译器包括要由所述控制流处理器执行的控制流指令;
所述翻译器当由所述控制流处理器执行时使所述数据处理系统能够将所述数据流程序存储在所述机器可读介质中;
所述控制流程序包括源程序的控制流版本;
所述数据流程序包括所述源程序的数据流版本;并且
所述数据流程序使所述数据处理系统能够在所述数据流处理器上执行所述源程序的数据流版本。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于英特尔公司,未经英特尔公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810394327.X/1.html,转载请声明来源钻瓜专利网。