[发明专利]并行化自动控制程序的方法及编译器有效
申请号: | 201080068889.7 | 申请日: | 2010-09-03 |
公开(公告)号: | CN103080900A | 公开(公告)日: | 2013-05-01 |
发明(设计)人: | 龙飞;介鸣;潘莉;迈克尔·维克佐雷克 | 申请(专利权)人: | 西门子公司 |
主分类号: | G06F9/38 | 分类号: | G06F9/38;G06F9/45 |
代理公司: | 北京康信知识产权代理有限责任公司 11240 | 代理人: | 李慧 |
地址: | 德国*** | 国省代码: | 德国;DE |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 并行 自动 控制程序 方法 编译器 | ||
1.一种并行化自动控制程序的方法,其特征在于,该方法应用于具有多个内核的多内核可编程逻辑控制器M-PLC中,该方法包括:
将所述M-PLC要执行的串行的自动控制程序划分为多个程序块;
利用所述多个程序块将所述自动控制程序映射为并行模型;
根据所述并行模型对所述多个程序块进行并行化调度,以将所述多个程序块分别分配给所述M-PLC中的各个内核;及,
分别将分配给各个内核的程序块转换为机器代码,并将转换后的机器代码下载到各个内核中,以供各个内核分别执行。
2.根据权利要求1所述的方法,其中,所述自动控制程序包括多个指令;依据指令之间的依赖性将所述自动控制程序划分为多个程序块,其中,一个程序块包括一组具有紧密依赖性的指令。
3.根据权利要求2所述的方法,其中,当所述自动控制程序基于梯形图LAD或功能块图FBD时,所述自动控制程序包括一个或多个网络Network,所述一个程序块包括一个网络或者一小于网络的指令集。
4.根据权利要求3所述的方法,其中,所述将所述M-PLC要执行的串行的自动控制程序划分为多个程序块,包括:
逐条扫描所述自动控制程序中的各个指令;及,
每当扫描到一条指令,则执行如下步骤:
如果当前扫描到的指令为一个网络中的第一条指令,则创建一个程序块,并将当前扫描到的指令分配到当前创建的程序块中;其中,如果当前扫描到的指令为网络间跳转指令,则进一步创建新的程序块;及
如果当前扫描到的指令并非一个网络中的第一条指令,则将当前扫描到的指令分配到最近创建的程序块中;其中,如果当前扫描到的指令为网络间跳转指令且非最后一条指令,则进一步创建新的程序块。
5.根据权利要求1所述的方法,其中,所述并行模型包括多个结点以及结点之间的依赖关系,其中,所述多个结点分别代表所述多个程序块,所述结点之间的依赖关系代表对应的程序块之间的依赖关系。
6.根据权利要求5所述的方法,其中,所述并行模型为程序依赖图PDG,其中,每一结点具有一个权重,一个结点的权重为该结点对应的程序块的执行代价,任意两个具有连接关系的结点对应这两个结点之间的执行代价。
7.根据权利要求6所述的方法,其中,所述根据所述并行模型对所述多个程序块进行并行化调度,包括:
根据各个结点的权重以及任意两个具有连接关系的结点之间的执行代价,搜索所述PDG中的关键路径并计算所有结点的优先级;及,
根据所述优先级逐个调度所述PDG中的各个结点,将各个结点逐个分配给各个内核,以将各个结点对应的各个程序块分别分配给各个内核。
8.根据权利要求7所述的方法,其中,所述优先级为尽可能晚ALAP参数;
所述计算所有结点的优先级,包括:
按反向拓扑顺序对所述PDG中的所有结点进行排序;
针对每一结点依次执行如下处理:
min_ft=CP_Length;其中,min_ft为以当前结点为终点的路径的最大执行代价,CP_Length为关键路径的执行代价;
如果当前结点有子结点,则针对当前结点的每一个子结点,如果alap(ny)-c(ni,ny)<min_ft,则使min_ft=alap(ny)-c(ni,ny);其中,alap(ny)为此子结点的ALAP参数,c(ni,ny)当前结点与此子结点之间的执行代价;
alap(ni)=min_ft-w(ni);其中,alap(ni)为当前结点的ALAP参数,w(ni)为当前结点的执行代价。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西门子公司,未经西门子公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201080068889.7/1.html,转载请声明来源钻瓜专利网。
- 上一篇:管道无损检测系统
- 下一篇:醋酸卡泊芬净组合物及其制备方法