Many applications require both high performance and predictable timing. High-performance can be provided by COTS Multi-Core System on Chips (MPSoC), however, as cores in these systems share main memory, they are susceptible to interference from each other, which is a problem for timing predictability. We achieve predictability on multi-cores by employing the predictable execution model (PREM), which splits execution into a sequence of memory and compute phases, and schedules these such that only a single core is executing a memory phase at a time.We present a toolchain consisting of a compiler and a scheduling tool. Our compiler uses region and loop based analysis and performs tiling to transform application code into PREM-compliant binaries. In addition to enabling predictable execution, the compiler transformation optimizes accesses to the shared main memory.The scheduling tool uses a state-of-the-art heuristic algorithm and is able to schedule industrial-size instances. For smaller instances, we compare the results of the algorithm with optimal solutions found by solving an Integer Linear Programming model. Furthermore, we solve the problem of scheduling execution on multiple cores while preventing interference of memory phases.We evaluate our toolchain on Advanced Driver Assistance System (ADAS) application workloads running on an NVIDIA Tegra X1 embedded system-on-chip (SoC). The results show that our approach maintains similar average performance to the original (unmodified) program code and execution, while reducing variance of completion times by a factor of 9 with the identified optimal solutions and by a factor of 5 with schedules generated by our heuristic scheduler.
Management, allocation and scheduling of heterogeneous resources for complex distributed real-time applications is a challenging problem. Timing constraints of applications may be fulfilled by a proper use of real-time scheduling policies, admission control and enforcement of timing constraints. However, it is not easy to design basic infrastructure services that allow for an easy access to the allocation of multiple heterogeneous resources in a distributed environment.In this paper, we present a middleware for providing distributed soft real-time applications with a uniform API for reserving heterogeneous resources with real-time scheduling capabilities in a distributed environment. The architecture relies on standard POSIX OS facilities, such as time management and standard TCP/IP networking services, and it is designed around CORBA, in order to facilitate modularity, flexibility and portability of the applications using it. However, real-time scheduling is supported by proper extensions at the kernel-level, plugged within the framework by means of dedicated resource managers. Our current implementation on Linux supports reservation of CPU, disk and network bandwidth. However, additional resource managers supporting alternative real-time schedulers for these resources, as well as additional types of resources, may be easily added.We present experimental results gathered on both synthetic applications and a real multimedia video streaming case study, showing advantages deriving from the use of the proposed middleware. Finally, overhead figures are reported, showing sustainability of the approach for a wide class of complex, distributed, soft real-time applications.
The advent of commercial-of-the-shelf (COTS) heterogeneous\ud
many-core platforms is opening up a series of opportunities\ud
in the embedded computing market. Integrating multiple\ud
computing elements running at smaller frequencies allows obtaining\ud
impressive performance capabilities at a reduced power\ud
consumption. These platforms can be successfully adopted to\ud
build the next-generation of self-driving vehicles, where Advanced\ud
Driver Assistance Systems (ADAS) need to process unprecedently\ud
higher computing workloads at low power budgets. Unfortunately,\ud
the current methodologies for providing real-time guarantees\ud
are uneffective when applied to the complex architectures\ud
of modern many-cores. Having impressive average performances\ud
with no guaranteed bounds on the response times of the critical\ud
computing activities is of little if no use to these applications.\ud
Project HERCULES will provide the required technological\ud
infrastructure to obtain an order-of-magnitude improvement in\ud
the cost and power consumption of next generation automotive\ud
systems. This paper presents the integrated software framework\ud
of the project, which allows achieving predictable performance\ud
on top of cutting-edge heterogeneous COTS platforms. The\ud
proposed software stack will let both real-time and non real-time\ud
application coexist on next-generation, power-efficient embedded\ud
platform, with preserved timing guarantees
This paper presents a Matlab based Scheduling toolbox TORSCHE (Time Optimization of Resources, SCHEduling). The toolbox offers a collection of data structures that allow the user to formalize various off-line and online scheduling problems. Algorithms are simply implemented as Matlab functions with fixed structure allowing users to implement new algorithms. A more complex problem can be formulated as an Integer Linear Programming problem or satisfiability of boolean expression problem. The toolbox is intended mainly as a research tool to handle control and scheduling co-design problems. Therefore, we provide an interfaces to a real-time Matlab/Simulik based simulator TrueTime and a code generator allowing to generate parallel code for FPGA.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.