一种同步语言多线程代码自动生成工具
作者:
作者单位:

作者简介:

杨志斌(1982-),男,江西吉安人,博士,副教授,CCF专业会员,主要研究领域为安全关键嵌入式软件,形式化方法;陈哲(1981-),男,博士,副教授,CCF专业会员,主要研究领域为形式化方法,软件工程,软件验证;袁胜浩(1994-),男,学士,CCF学生会员,主要研究领域为形式化方法,软件工程;薛垒(1982-),男,高级工程师,主要研究领域为嵌入式软件设计验证;谢健(1988-),男,硕士生,CCF专业会员,主要研究领域为形式化方法,系统安全性分析,服务计算;Bodeveix Jean-Paul(1963-),男,博士,教授,博士生导师,主要研究领域为实时系统,形式化方法;周勇(1975-),男,博士,副教授,CCF专业会员,主要研究领域为形式化方法,软件工程;Filali Mamoun(1957-),男,博士,高级研究员,博士生导师,主要研究领域为实时系统,形式化方法.

通讯作者:

杨志斌,E-mail:yangzhibin168@163.com

中图分类号:

TP311

基金项目:

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


Multi-threaded Code Generation Tool for Synchronous Language
Author:
Affiliation:

Fund Project:

National Natural Science Foundation of China (61502231); National Key Research and Development Program of China (2016YFB1000802); National Defense Basic Scientific Research Project under Grant of China (JCKY2016203B011); Natural Science Foundation of Jiangsu Province, China (BK20150753); Fundamental Research Funds for the Central Universities (NP2017205); Joint Research Funds of National Natural Science Foundation of China and Civil Aviation Administration of China (U1533130); Foundation of Graduate Innovation Center in NUAA (kfjj20181603)

  • 摘要
  • |
  • 图/表
  • |
  • 访问统计
  • |
  • 参考文献
  • |
  • 相似文献
  • |
  • 引证文献
  • |
  • 资源附件
  • |
  • 文章评论
    摘要:

    随着安全关键系统对计算性能要求的日趋提高,能够提供更强计算能力而又减少电子设备的体积、重量和功耗的多核处理器将在安全关键领域得到广泛应用.同步语言能够表达确定性并发行为且具有精确时间语义等特性,适用于安全关键软件的建模和验证.目前,同步语言SIGNAL编译器主要支持串行代码生成,较少关注多线程代码生成.提出一种同步语言SIGNAL多线程代码生成工具.首先将SIGNAL程序转换为经过时钟演算的S-CGA中间程序;之后将S-CGA中间程序转换为时钟数据依赖图以分析依赖关系;然后对时钟数据依赖图进行拓扑排序划分,并针对划分结果提出优化算法和基于流水线方式的任务划分方法;最后将划分结果转换为虚拟多线程结构并进一步生成可执行多线程C/Java代码.通过在多核处理器上的实验,验证了所提方法的有效性.

    Abstract:

    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.

    参考文献
    相似文献
    引证文献
引用本文

杨志斌,袁胜浩,谢健,周勇,陈哲,薛垒,Jean-Paul BODEVIX, Mamoun FILALI.一种同步语言多线程代码自动生成工具.软件学报,2019,30(7):1980-2002

复制
分享
文章指标
  • 点击次数:
  • 下载次数:
  • HTML阅读次数:
  • 引用次数:
历史
  • 收稿日期:2018-07-15
  • 最后修改日期:2018-09-28
  • 录用日期:
  • 在线发布日期: 2019-04-03
  • 出版日期:
您是第位访问者
版权所有:中国科学院软件研究所 京ICP备05046678号-3
地址:北京市海淀区中关村南四街4号,邮政编码:100190
电话:010-62562563 传真:010-62562533 Email:jos@iscas.ac.cn
技术支持:北京勤云科技发展有限公司

京公网安备 11040202500063号