Dynamic loading and task migration for streaming applications on a composable system-on-chip

More Info
expand_more

Abstract

MPSoCs offer more and more processing capability to embedded systems. As a result, an increasing number of applications run on one system, sharing MPSoC resources. Some of these applications are streaming applications and may have real-time demands, e.g., guaranteed throughput, hence their temporal behavior has to be verified at design-time. Moreover, applications may start and stop at run-time, creating a set of use-cases. The interference at shared resources introduces fluctuations in the temporal behavior of applications that may invalidate the results of the design-time verification. The CompSoC platform eliminates this interference by virtualizing shared resources, enabling independent, per-application design and verification. However, currently CompSoC requires that the entire source code to be compiled and linked into one executable. This code may belong to different applications and the developers of these applications have to hence share their source code, which is not always possible due to IP protection issues. Furthermore, resources may be wasted because a core's memory must be sufficient for all applications that ever run there and not only for the most demanding use-case. In this thesis we augment CompSoC with dynamic loading and task migration mechanisms that allow separation of executables per application, enable memory reuse between use-cases, and, in general, increase flexibility, making possible, e.g., workload balancing. We implement this mechanism at application level, hence in a separate system application. This ensures that loading and migration do not interfere with running applications. More precisely, applications have independent temporal behavior from the moment they start until they are paused or stopped. Moreover, the dynamic loading and task migration processes execute in bounded time, thus are predictable, which makes them suitable for streaming applications. We implemented the dynamic loading and task migration on an FPGA prototype of CompSoC. Experiments indicate that that the temporal behavior of a running application is not influenced by dynamic loading and task migration of other applications. We investigate the performance of the dynamic loading process for a jpeg decoder and an image rotation application and we detail the performance overhead involved in task migration. Furthermore, our implementation does not affect the critical operating system execution and the memory footprint overhead is only 4KB.

Files