OSEK-V: application-specific RTOS instantiation in hardware

The employment of a real-time operating system (RTOS) in an embedded control systems is often an all-or-nothing decision: While the RTOS-abstractions provide for easier software composition and development, the price in terms of event latencies and memory costs are high. Especially in HW/SW codesign settings, system developers try to avoid the employment of a full-blown RTOS as far as possible. In OSEK-V, we mitigate this trade-off by a very aggressive tailoring of the concrete RTOS instance into the hardware. Instead of implementing generic OS components as custom hardware devices, we capture the actually possible application-kernel interactions as a finite-state machine and integrate the tailored RTOS semantics directly into the processor pipeline. In our experimental results with an OSEK-based implementation of a quadrotor flight controller into the Rocket/RISC-V softcore, we thereby can significantly reduce event latencies, interrupt lock times, and memory footprint at moderate costs in terms of FPGA resources.

[1]  Tiziano Villa,et al.  NOVA: State Assignment of Finite State Machines for Optimal Two-Level Logic Implementations , 1989, 26th ACM/IEEE Design Automation Conference.

[2]  E. A. Trachtenberg,et al.  A fast algorithm for the optimal state assignment of large finite state machines , 1988, [1988] IEEE International Conference on Computer-Aided Design (ICCAD-89) Digest of Technical Papers.

[3]  Christian Dietrich,et al.  Cross-Kernel Control-Flow--Graph Analysis for Event-Driven Real-Time Systems , 2015, LCTES.

[4]  Hiroaki Takada,et al.  μITRON for small-scale embedded systems , 1995, IEEE Micro.

[5]  Marco Platzner,et al.  ReconOS: Multithreaded programming for reconfigurable computers , 2009, TECS.

[6]  Ramesh Govindan,et al.  Deriving State Machines from TinyOS Programs Using Symbolic Execution , 2008, 2008 International Conference on Information Processing in Sensor Networks (ipsn 2008).

[7]  John E. Hopcroft,et al.  An n log n algorithm for minimizing states in a finite automaton , 1971 .

[8]  Jim Stevens,et al.  Run-Time Services for Hybrid CPU/FPGA Systems on Chip , 2006, 2006 27th IEEE International Real-Time Systems Symposium (RTSS'06).

[9]  Calton Pu,et al.  Threads and input/output in the synthesis kernal , 1989, SOSP '89.

[10]  Yunsup Lee,et al.  A 45nm 1.3GHz 16.7 double-precision GFLOPS/W RISC-V processor with vector accelerators , 2014, ESSCIRC 2014 - 40th European Solid State Circuits Conference (ESSCIRC).

[11]  Andrew Waterman,et al.  The RISC-V Instruction Set Manual. Volume 1: User-Level ISA, Version 2.0 , 2014 .

[12]  David Broman,et al.  FlexPRET: A processor platform for mixed-criticality systems , 2014, 2014 IEEE 19th Real-Time and Embedded Technology and Applications Symposium (RTAS).

[13]  Christian Harkort,et al.  I4Copter: an adaptable and modular quadrotor platform , 2011, SAC '11.

[14]  Wolfgang Schröder-Preikschat,et al.  Sloth: Threads as Interrupts , 2009, 2009 30th IEEE Real-Time Systems Symposium.

[15]  Herbert Hanselmann,et al.  Challenges in automotive software engineering , 2008, ICSE Companion '08.

[16]  Christian Dietrich,et al.  Back to the Roots: Implementing the RTOS as a Specialized State Machine , 2015 .

[17]  Andrew S. Tanenbaum,et al.  Structured Computer Organization , 1976 .

[18]  Bruce Jacob,et al.  Hardware support for real-time operating systems , 2003, First IEEE/ACM/IFIP International Conference on Hardware/ Software Codesign and Systems Synthesis (IEEE Cat. No.03TH8721).

[19]  Calton Pu,et al.  Specialization tools and techniques for systematic optimization of system software , 2001, TOCS.

[20]  Wayne P. Burleson,et al.  The spring scheduling coprocessor: a scheduling accelerator , 1999, IEEE Trans. Very Large Scale Integr. Syst..

[21]  David L. Tennenhouse,et al.  Proactive computing , 2000, Commun. ACM.

[22]  Arnaldo S. R. Oliveira,et al.  The ARPA-MT Embedded SMT Processor and Its RTOS Hardware Accelerator , 2011, IEEE Transactions on Industrial Electronics.

[23]  Tae-Hyung Kim,et al.  State Machine Based Operating System Architecture for Wireless Sensor Networks , 2004, PDCAT.

[24]  Alan Burns,et al.  Reducing the Implementation Overheads of IPCP and DFP , 2015, 2015 IEEE Real-Time Systems Symposium.

[25]  Douglas M. Blough,et al.  A Hardware-Software Real-Time Operating System Framework for SoCs , 2002, IEEE Des. Test Comput..

[26]  Alberto L. Sangiovanni-Vincentelli,et al.  MUSTANG: state assignment of finite state machines targeting multilevel logic implementations , 1988, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[27]  Calton Pu,et al.  The Synthesis Kernel , 1988, Comput. Syst..

[28]  Benedikt Huber,et al.  T-CREST: Time-predictable multi-core architecture for embedded systems , 2015, J. Syst. Archit..

[29]  Paul Prisaznuk,et al.  ARINC Specification 653, Avionics Application Software Standard Interface , 2006, Avionics.

[30]  Alonzo Church,et al.  Review: Edward F. Moore, Gedanken-Experiments on Sequential Machines , 1958 .

[31]  Edward F. Moore,et al.  Gedanken-Experiments on Sequential Machines , 1956 .