当前位置: X-MOL 学术Sci. Comput. Program. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Multi-task Ada code generation from synchronous dataflow programs on multi-core: Approach and industrial study
Science of Computer Programming ( IF 1.5 ) Pub Date : 2021-03-23 , DOI: 10.1016/j.scico.2021.102644
Zhibin Yang , Shenghao Yuan , Jean-Paul Bodeveix , Mamoun Filali , Tiexin Wang , Yong Zhou

The growing trend to use multi-core processors to get more performance is increasingly present in safety-critical systems. Synchronous dataflow programming is naturally well-suited to parallel execution, thanks to the fact that all data dependencies are always explicit. MiniSIGNAL is a multi-task code generation tool for the synchronous dataflow language SIGNAL. The existing MiniSIGNAL code generation strategies mainly consider coarse-grained parallelism based on Ada multi-task model. However, when we applied it to industrial case studies, this code generation scheme has revealed inefficient: architecture aspects of the target platform have to be taken into account to achieve fine-grained parallelism. To generate more efficient target code from industrial cases, this paper presents a new multi-task code generation method for MiniSIGNAL. Starting at the level of synchronous clocked guarded actions (S-CGA) which is an intermediate language for the compilation process of MiniSIGNAL, the transformation consists of two parts: at the platform-independent level, transforming the S-CGA representation to an abstract multi-task structure (called Virtual Multi-Tasks, VMT); at the platform-dependent level, adopting the thread pool pattern concurrent JobQueue to support fine-grained parallel Ada code generation from the VMT structure. Moreover, the formal syntax and the operational semantics of VMT are mechanized in the proof assistant Coq. Finally, the effectiveness of our approach is illustrated by an application of the real-world Guidance, Navigation and Control system.



中文翻译:

从多核上的同步数据流程序生成多任务Ada代码:方法和工业研究

在安全关键型系统中,越来越多的趋势使用多核处理器来获得更高的性能。由于所有数据依赖项始终都是显式的,因此同步数据流编程自然很适合并行执行。MiniSIGNAL是用于同步数据流语言SIGNAL的多任务代码生成工具。现有的MiniSIGNAL代码生成策略主要考虑基于Ada多任务模型的粗粒度并行性。但是,当我们将其应用于工业案例研究时,此代码生成方案显示效率低下:必须考虑目标平台的体系结构方面,才能实现细粒度的并行性。为了从工业案例中生成更有效的目标代码,本文提出了一种用于MiniSIGNAL的新的多任务代码生成方法。从同步时钟保护行为(S-CGA)级别开始,它是MiniSIGNAL编译过程的中间语言,转换包括两部分:在平台无关的级别,将S-CGA表示转换为抽象的任务结构(称为虚拟多任务,VMT);在依赖平台的级别上,采用线程池模式并发JobQueue来支持从VMT结构生成细粒度的并行Ada代码。此外,VMT的形式语法和操作语义在证明助手Coq中得以机械化。最后,通过实际的制导,导航和控制系统的应用说明了我们方法的有效性。

更新日期:2021-03-29
down
wechat
bug