【技术实现步骤摘要】
用于使用控制依赖图来将控制流程序转换成数据流程序的技术
概括而言,本公开内容涉及用于将计算机程序从一种架构转换成另一种架构的技术。具体而言,本公开内容涉及使用控制依赖图来将控制流程序自动转换成数据流程序的方法和装置。
技术介绍
数据处理系统(DPS)可以包括硬件和软件组件。硬件组件可以包括处理器、随机存取存储器(RAM)和非易失性存储装置(NVS)。软件组件可以包括许多不同种类的计算机程序。DPS可以通过将软件组件从NVS复制到RAM然后在处理器上执行他们来运行软件组件。处理器可以依据其设计架构以及依据其指令集架构(ISA)来描述。常规的处理器通常遵循冯诺依曼架构、哈佛架构、修改的哈佛架构、或类似的架构。根据任何这样的架构,用于处理器或处理单元的设计架构可以包括算术逻辑单元和控制单元,其中,控制单元包含程序计数器。为开始执行程序,该程序中第一指令的地址被加载到程序计数器中。处理器然后在该地址处提取指令、执行该指令,并递增程序计数器以指向程序中的下一顺序指令。处理器可以重复该提取循环,直到程序的最后指令已被执行。然而,程序可以使用控制转移指令(例如,分支指令)来改变执行序列。控制转移指令还可以被称为“控制流指令”。例如,分支指令(或另一控制流指令)可以使处理器利用除了下一顺序指令之外的指令的地址替换程序计数器的内容。另外,控制流指令可以以某个断言(例如,分支如果指定寄存器的内容不等于零(branchifthecontentofaspecifiedregisterdoesnotequalzero))的真实性为条件来对程序计数器进行修改。因此,程序可以在不同的条 ...
【技术保护点】
1.一种利用用于将控制流程序自动转换成数据流程序的技术的数据处理系统,所述数据处理系统包括:处理器;非暂时性机器可读介质,其响应于所述处理器;以及翻译器,其存储在所述机器可读介质中,其中,所述翻译器当由所述数据处理系统执行时使所述数据处理系统能够:自动生成控制流程序的控制依赖图;至少部分地基于所述控制依赖图,自动生成数据流图;以及至少部分地基于所述数据流图,自动生成数据流程序。
【技术特征摘要】
2017.05.31 US 15/609,5831.一种利用用于将控制流程序自动转换成数据流程序的技术的数据处理系统,所述数据处理系统包括:处理器;非暂时性机器可读介质,其响应于所述处理器;以及翻译器,其存储在所述机器可读介质中,其中,所述翻译器当由所述数据处理系统执行时使所述数据处理系统能够:自动生成控制流程序的控制依赖图;至少部分地基于所述控制依赖图,自动生成数据流图;以及至少部分地基于所述数据流图,自动生成数据流程序。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所述的数据处理系统,其中:所述处理器包括控制流处理器;所述数据处理系统还包括数据流处理器;所述翻译器包括要由所述控制流处理器执行的控制流指令;所述翻译器当由所述控制流处理器执行时使所述数据处理系统能够将所述数据流程序存储在所述机器可读介质中;所述控制流程序包括源程序的控制流版本;所述数据流程序包括所述源程序的数据流版本;并且所述数据流程序使所述数据处理系统能够在所述数据流处理器上执行所述源程序的数据流版本。10.一种用于将控制流程序自动转换成数据流程序的方法,所述方法包括:使用在数据处理系统中执行的翻译器来自动生成控制流程序的控制依赖图;使用在所述数据处理系统中执...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。