Title: A Two-Layer Component-Based Allocation for Embedded Systems with GPUs,
Abstract: Component-based development is a software engineering paradigm that can
facilitate the construction of embedded systems and tackle its complexities.
The modern embedded systems have more and more demanding requirements. One way
to cope with such versatile and growing set of requirements is to employ
heterogeneous processing power, i.e., CPU-GPU architectures. The new CPU-GPU
embedded boards deliver an increased performance but also introduce additional
complexity and challenges. In this work, we address the component-to-hardware
allocation for CPU-GPU embedded systems. The allocation for such systems is
much complex due to the increased amount of GPU-related information. For
example, while in traditional embedded systems the allocation mechanism may
consider only the CPU memory usage of components to find an appropriate
allocation scheme, in heterogeneous systems, the GPU memory usage needs also to
be taken into account in the allocation process. This paper aims at decreasing
the component-to-hardware allocation complexity by introducing a 2-layer
component-based architecture for heterogeneous embedded systems. The detailed
CPU-GPU information of the system is abstracted at a high-layer by compacting
connected components into single units that behave as regular components. The
allocator, based on the compacted information received from the high-level
layer, computes, with a decreased complexity, feasible allocation schemes. In
the last part of the paper, the 2-layer allocation method is evaluated using an
existing embedded system demonstrator; namely, an underwater robot.