Domain-Specific Programming Environment for Heterogeneous Multicore Embedded Systems

Domain-Specific Programming Environment for Heterogeneous Multicore Embedded Systems

Alexey Syschikov (Saint Petersburg State University of Aerospace Instrumentation, Saint Petersburg, Russia), Yuriy Sheynin (Saint Petersburg State University of Aerospace Instrumentation, Saint Petersburg, Russia), Boris Sedov (Saint Petersburg State University of Aerospace Instrumentation, Saint Petersburg, Russia) and Vera Ivanova (Saint Petersburg State University of Aerospace Instrumentation, Saint Petersburg, Russia)
DOI: 10.4018/IJERTCS.2014100101
OnDemand PDF Download:
$30.00
List Price: $37.50

Abstract

Nowadays embedded systems are used in a broad range of domains such as avionics, space, automotive, mobile, domestic appliances etc. Sophisticated software determines the quality of embedded systems and requires high-qualified experts for software development. Software becomes the main assert of embedded systems that is valuable to retain in changing computing platforms in embedded systems evolution. Computing platforms for embedded systems became multicore processors and SoC, they can change in the embedded system lifetime that could be long (dozen of years for an automobile and airplane). It requires software porting to new platforms as a regular process. Many tools and approaches allow developing of software for domain area experts, but mainly for general-purpose computing systems. In this paper the authors present the complex technology and tools that allows involving domain experts in software development for embedded systems. The proposed technology has various aspects and abilities that can be used to build verifiable and portable software for a wide range of embedded platforms.
Article Preview

2. The Problem Statement: From Domain To Multicore Platforms

In contrast to general-purpose computing systems, most embedded systems are domain-oriented. This means that in embedded world a single system solves just one or several tasks within the single application domain.

Early embedded systems were limited in hardware and thus solve quite observable tasks, mainly in the control domain. The primary skill for software developer was a programmer’s skill, and there was no need in deep domain and task understanding.

Nowadays the complexity of tasks running on embedded systems is increasing rapidly dew to rapid growth of hardware performance. There is a transition from simple control systems to high-performance systems for signal, image, video processing (Joachim Keinert, Jürgen Teich, 2011; Sedcole N. P., Cheung P. Y. K., & Luk W., 2003) and even for decision making (Song Z1, Ji Z, & Faust O, 2011). An algorithmic and a programming workload of such tasks also increase fast. Embedded system programmers are no longer able solving such complex tasks alone. It should be a “two-in-one” developer: skilled domain expert, who can develop algorithms for task solution, and a skilled programmer, who can implement such algorithm efficiently. For heterogeneous multicore embedded platforms, such developer additionally should have a deep understanding in parallel programming and in programming for specific heterogeneous systems.

If we look on all stages of embedded software development (Figure 1), we can see that there are a set of gaps in interaction between domain experts, programmers and hardware experts.

Figure 1.

The structure of the embedded software development process

We need to go deeper in details of these gaps and the ways to fill them.

Complete Article List

Search this Journal:
Reset
Open Access Articles: Forthcoming
Volume 9: 2 Issues (2018): 1 Released, 1 Forthcoming
Volume 8: 2 Issues (2017)
Volume 7: 2 Issues (2016)
Volume 6: 2 Issues (2015)
Volume 5: 4 Issues (2014)
Volume 4: 4 Issues (2013)
Volume 3: 4 Issues (2012)
Volume 2: 4 Issues (2011)
Volume 1: 4 Issues (2010)
View Complete Journal Contents Listing