In aerospace, automation, and automotive technologies, smart electronic computer systems have to meet a number of security and real-time requirements. In case of critical incidents, for instance, the software’s response time has to be very short. Programming of the corresponding applications is time- and cost-consuming. Partners of industry and research therefore developed a tool chain for efficient, standardized, and real-time-capable programming under the EU project consortium ARGO. Development is based on the open source software Scilab.
More and more safety-critical embedded electronic solutions are based on rapid, energy-efficient multi-core processors. Increased performance in real time systems and further reduction of costs without adversely affecting functional safety are two of the most important requirements of future applications in that area. This requires on the one hand real time capable multi-core processors to provide the required performance and on the other hand a holistic tool support to efficiently program such hardware. Multi-core systems are characterized by the accommodation of several processor cores on one chip. The cores work in parallel and, hence, reach a higher speed and performance. Programming of such heterogeneous multi-core processors is very complex. Moreover, the programs have to be tailored precisely to the target hardware and to fulfill the additional real-time requirements. The ARGO EU research project, named after the very quick vessel in Greek mythology, aimed at significantly facilitating programming by automatic parallelization of model-based applications and code generation. So far, a programmer had to adapt his code, i.e. the instructions for the computer, to the hardware architecture, which is associated with a high expenditure and prevents the code from being transferred to other architectures.
Under ARGO, a novel tool chain for programmers has been developed. Even without precise knowledge of the complex parallel processor hardware, the programmers can control the process of automatic parallelization in accordance with the requirements. This results in a significant improvement of performance and a reduction of costs. The ARGO tool chain can be used to manage the complexity of parallelization and adaptation to the target hardware in a largely automated manner with a small expenditure. Under the project, real-time-critical applications in the areas of real-time flight dynamics simulation and real-time image processing have been and evaluated by way of example.
At the end of the projects, the ARGO tool chain has been successfully demonstrated using two time critical applications from the aerospace and the industrial image-processing domain. As target hardware platforms for the tool chain, the consortium studied three different architectures and showed the extensibility towards additional platforms. The final ARGO demonstrators illustrate that both the development productivity and the real-time application performance can be improved using the ARGO tools in conjunction with model-based design principles and multi-core processing platforms.