一种同步语言多线程代码自动生成工具  被引量:13

Multi-threaded Code Generation Tool for Synchronous Language

在线阅读下载全文

作  者:杨志斌[1,2] 袁胜浩 谢健 周勇[1] 陈哲[1] 薛垒[3] Jean-Paul BODEVEIX Mamoun FILALI YANG Zhi-Bin;YUAN Sheng-Hao;XIE Jian;ZHOU Yong;CHEN Zhe;XUE Lei(School of Computer Science and Technology, Nanjing University of Aeronautics and Astronautics, Nanjing 211106, China;Collaborative Innovation Center of Novel Software Technology and Industrialization, Nanjing 210093, China;Shanghai Aerospace Electronic Technology Institute, Shanghai 201109, China)

机构地区:[1]南京航空航天大学计算机科学与技术学院,江苏南京211106 [2]软件新技术与产业化协同创新中心,江苏南京210093 [3]上海航天电子技术研究所,上海201109 [4]IRIT-University of Toulouse,Toulouse 31062,France

出  处:《软件学报》2019年第7期1980-2002,共23页Journal of Software

基  金:国家自然科学基金(61502231);国家重点研发计划(2016YFB1000802);GF基础科研重点项目(JCKY2016203B011);江苏省自然科学基金(BK20150753);中央高校基本科研业务费专项资金(NP2017205);国家自然科学基金委员会-中国民航局民航联合研究基金(U1533130);南京航空航天大学研究生创新基地(实验室)开放基金(kfjj20181603)~~

摘  要:随着安全关键系统对计算性能要求的日趋提高,能够提供更强计算能力而又减少电子设备的体积、重量和功耗的多核处理器将在安全关键领域得到广泛应用。同步语言能够表达确定性并发行为且具有精确时间语义等特性,适用于安全关键软件的建模和验证。目前,同步语言SIGNAL编译器主要支持串行代码生成,较少关注多线程代码生成。提出一种同步语言SIGNAL多线程代码生成工具。首先将SIGNAL程序转换为经过时钟演算的S-CGA中间程序;之后将S-CGA中间程序转换为时钟数据依赖图以分析依赖关系;然后对时钟数据依赖图进行拓扑排序划分,并针对划分结果提出优化算法和基于流水线方式的任务划分方法;最后将划分结果转换为虚拟多线程结构并进一步生成可执行多线程C/Java代码。通过在多核处理器上的实验,验证了所提方法的有效性。Multi-core processors are being widely used in safety-critical systems,due to the demands of higher computation performance when designing these systems,and strengths of multi-core processors,such as faster computation and SWaP(size,weight,and power)properties.Synchronous languages are suitable for modeling and verification of safety-critical software due to their abilities,e.g.the description of concurrency behaviors and precise timing semantics.At present,the SIGNAL compiler supports to generate the sequential code from synchronous specification.The existing studies pay a little attention to the generation of parallel code from SIGNAL specification.The paper presents a multi-threaded code generation tool for synchronous language.Firstly,the SIGNAL specification is transformed into the intermediate program S-CGA and is carried out the clock calculus.After that,the S-CGA program is transformed into CDDG(clock data dependency graph).Then,the CDDG is partitioned by topological sort,after which an optimized algorithm and a partition algorithm are respectively proposed based on pipeline-style.Finally,the partition results are transformed to VMT(virtual multi-threaded)code which is then transformed into executable multi-threaded C/Java program.The experiment running on multi-core CPUs is given to verify the effectiveness of the proposed methodology.

关 键 词:同步语言 同步多时钟卫式动作 多线程代码生成 

分 类 号:TP311[自动化与计算机技术—计算机软件与理论]

 

参考文献:

正在载入数据...

 

二级参考文献:

正在载入数据...

 

耦合文献:

正在载入数据...

 

引证文献:

正在载入数据...

 

二级引证文献:

正在载入数据...

 

同被引文献:

正在载入数据...

 

相关期刊文献:

正在载入数据...

相关的主题
相关的作者对象
相关的机构对象