A Real-Time Scratchpad-Centric OS for Multi-Core Embedded Systems

Multi-core processors have replaced single-core systems in almost every segment of the industry. Unfortunately, their increased complexity often causes a loss of temporal predictability which represents a key requirement for hard real-time systems. Major sources of unpredictability are the shared low level resources, such as the memory hierarchy and the I/O subsystem. In this paper, we approach the problem of shared resource arbitration at an OS-level and propose a novel scratchpad-centric OS design for multi-core platforms. In the proposed OS, the predictable usage of shared resources across multiple cores represents a central design-time goal. Hence, we show (i) how contention-free execution of real-time tasks can be achieved on scratchpad-based architectures, and (ii) how a separation of application logic and I/O perations in the time domain can be enforced. To validate the proposed design, we implemented the proposed OS using a commercial-off-the-shelf (COTS) platform. Experiments show that this novel design delivers predictable temporal behavior to hard real-time tasks, and it improves performance up to 2.1× compared to traditional approaches.

[1]  Tulika Mitra,et al.  Scratchpad allocation for concurrent embedded software , 2008, CODES+ISSS '08.

[2]  M. Gatti,et al.  Ensuring robust partitioning in multicore platforms for IMA systems , 2012, 2012 IEEE/AIAA 31st Digital Avionics Systems Conference (DASC).

[3]  Petru Eles,et al.  Time-Predictable Embedded Software on Multi-Core Platforms: Analysis and Optimization , 2014, Found. Trends Electron. Des. Autom..

[4]  Daniel Gracia Pérez,et al.  Predictable Flight Management System Implementation on a Multicore Processor , 2014 .

[5]  Sylvain Girbal,et al.  Deterministic platform software for hard real-time systems using multi-core COTS , 2015, 2015 IEEE/AIAA 34th Digital Avionics Systems Conference (DASC).

[6]  Robert I. Davis,et al.  Investigation of Scratchpad Memory for Preemptive Multitasking , 2012, 2012 IEEE 33rd Real-Time Systems Symposium.

[7]  Sascha Uhrig,et al.  RTOS Support for Parallel Execution of Hard Real-Time Applications on the MERASA Multi-core Processor , 2010, 2010 13th IEEE International Symposium on Object/Component/Service-Oriented Real-Time Distributed Computing.

[8]  Rodolfo Pellizzoni,et al.  A Dynamic Scratchpad Memory Unit for Predictable Real-Time Embedded Systems , 2013, 2013 25th Euromicro Conference on Real-Time Systems.

[9]  Hiroaki Takada,et al.  Partitioning and allocation of scratch-pad memory for priority-based preemptive multi-task systems , 2010, 2010 Design, Automation & Test in Europe Conference & Exhibition (DATE 2010).

[10]  Rodolfo Pellizzoni,et al.  PALLOC: DRAM bank-aware memory allocator for performance isolation on multicore platforms , 2014, 2014 IEEE 19th Real-Time and Embedded Technology and Applications Symposium (RTAS).

[11]  Edward A. Lee,et al.  Temporal isolation on multiprocessing architectures , 2011, 2011 48th ACM/EDAC/IEEE Design Automation Conference (DAC).

[12]  Heiko Falk,et al.  Optimal static WCET-aware scratchpad allocation of program code , 2009, 2009 46th ACM/IEEE Design Automation Conference.

[13]  Lui Sha,et al.  Real-Time I/O Management System with COTS Peripherals , 2013, IEEE Transactions on Computers.

[14]  D.S. Hardin,et al.  Invariant performance: a statement of task isolation useful for embedded application integration , 1999, Dependable Computing for Critical Applications 7.

[15]  Isabelle Puaut,et al.  Scratchpad memories vs locked caches in hard real-time systems: a quantitative comparison , 2007 .

[16]  Sascha Uhrig,et al.  A Dynamic Instruction Scratchpad Memory for Embedded Processors Managed by Hardware , 2011, ARCS.

[17]  Isabelle Puaut,et al.  Scratchpad memories vs locked caches in hard real-time systems: a quantitative comparison , 2007, 2007 Design, Automation & Test in Europe Conference & Exhibition.

[18]  Marco Caccamo,et al.  A Predictable Execution Model for COTS-Based Embedded Systems , 2011, 2011 17th IEEE Real-Time and Embedded Technology and Applications Symposium.

[19]  Paul Sebexen,et al.  Software Techniques for Scratchpad Memory Management , 2015, MEMSYS.

[20]  Lin Gao,et al.  Memory coloring: a compiler approach for scratchpad memory management , 2005, 14th International Conference on Parallel Architectures and Compilation Techniques (PACT'05).

[21]  Lui Sha,et al.  MemGuard: Memory bandwidth reservation system for efficient performance isolation in multi-core platforms , 2013, 2013 IEEE 19th Real-Time and Embedded Technology and Applications Symposium (RTAS).

[22]  Aviral Shrivastava,et al.  CMSM: An efficient and effective Code Management for Software Managed Multicores , 2013, 2013 International Conference on Hardware/Software Codesign and System Synthesis (CODES+ISSS).

[23]  Jean-François Deverge,et al.  WCET-Directed Dynamic Scratchpad Memory Allocation of Data , 2007, 19th Euromicro Conference on Real-Time Systems (ECRTS'07).

[24]  Marco Caccamo,et al.  Real-time cache management framework for multi-core architectures , 2013, 2013 IEEE 19th Real-Time and Embedded Technology and Applications Symposium (RTAS).

[25]  Robert I. Davis,et al.  Explicit Reservation of Local Memory in a Predictable, Preemptive Multitasking Real-Time System , 2012, 2012 IEEE 18th Real Time and Embedded Technology and Applications Symposium.

[26]  Aviral Shrivastava,et al.  SSDM: Smart Stack Data Management for software managed multicores (SMMs) , 2013, 2013 50th ACM/EDAC/IEEE Design Automation Conference (DAC).

[27]  Rodolfo Pellizzoni,et al.  Hiding memory latency using fixed priority scheduling , 2014, 2014 IEEE 19th Real-Time and Embedded Technology and Applications Symposium (RTAS).

[28]  Francisco J. Cazorla,et al.  Merasa: Multicore Execution of Hard Real-Time Applications Supporting Analyzability , 2010, IEEE Micro.

[29]  Lui Sha,et al.  WCET(m) Estimation in Multi-core Systems Using Single Core Equivalence , 2015, 2015 27th Euromicro Conference on Real-Time Systems.