Decoupled inter- and intra-application scheduling for composable and robust embedded MPSoC platforms

Systems-on-Chip (SoCs) typically implement complex applications, each consisting of multiple tasks. Several applications share the SoC cores, to reduce cost. Applications have mixed time-criticality, i.e., real-time or not, and are typically developed together with their schedulers, by different parties. Composability, i.e., complete functional and temporal isolation between applications, is an SoC property required to enable fast integration and verification of applications. To achieve composability, an Operating System (OS) allocates processor time in quanta of constant duration. The OS executes first the application scheduler, then the corresponding task scheduler, to determine which task runs next. As the OS should be a trusted code base, both inter- and intra-application schedulers should be thoroughly analysed and verified. This is required anyway for real-time intra-application schedulers. But for non-real-time applications, a costly effort is required to achieve the desired confidence level in their intra-application schedulers. In this paper we propose a light-weight, real-time OS implementation that overcomes these limitations. It separates the two arbitration levels, and requires only the inter-application scheduler to run in OS time. The intra-application scheduler runs in user time, and is therefore not trusted code. This approach allows each application to execute its own specialised task scheduler. We evaluated the practical implications of our proposal on an SoC modelled in FPGA, running an H264 and a JPEG decoder and we found that composability is preserved and performance is improved with up to 37%.

[1]  Ragunathan Rajkumar,et al.  Temporal protection in real-time operating systems , 1994, Proceedings of 11th IEEE Workshop on Real-Time Operating Systems and Software.

[2]  Samarjit Chakraborty,et al.  VM-Based Real-Time Services for Automotive Control Applications , 2010, 2010 IEEE 16th International Conference on Embedded and Real-Time Computing Systems and Applications.

[3]  Kees G. W. Goossens,et al.  Composability and Predictability for Independent Application Development, Verification, and Execution , 2011, Multiprocessor System-on-Chip.

[4]  Kees G. W. Goossens,et al.  CoMPSoC: A template for composable and predictable multi-processor system on chips , 2009, TODE.

[5]  Neeraj Suri,et al.  Compositional design of RT systems: a conceptual basis for specification of linking interfaces , 2003, Sixth IEEE International Symposium on Object-Oriented Real-Time Distributed Computing, 2003..

[6]  Kees G. W. Goossens,et al.  Design and implementation of an operating system for composable processor sharing , 2011, Microprocess. Microsystems.

[7]  John P. Lehoczky,et al.  Analysis of hierar hical fixed-priority scheduling , 2002, Proceedings 14th Euromicro Conference on Real-Time Systems. Euromicro RTS 2002.

[8]  Insik Shin,et al.  Towards hierarchical scheduling in VxWorks , 2008 .

[9]  Shuvra S. Bhattacharyya,et al.  Embedded Multiprocessors: Scheduling and Synchronization , 2000 .

[10]  Aloysius K. Mok,et al.  Real-Time Virtual Resource: A Timely Abstraction for Embedded Systems , 2002, EMSOFT.

[11]  Michael Roitzsch,et al.  Ten Years of Research on L 4-Based Real-Time Systems , 2006 .

[12]  Reinder J. Bril Towards pragmatic solutions for two-level hierarchical scheduling. Part I: a basic approach for independent applications , 2007 .

[13]  Jane Sales Symbian OS Internals , 2005 .

[14]  Insup Lee,et al.  Periodic resource model for compositional real-time guarantees , 2003, RTSS 2003. 24th IEEE Real-Time Systems Symposium, 2003.

[15]  Kees G. W. Goossens,et al.  C-HEAP: A Heterogeneous Multi-Processor Architecture Template and Scalable and Flexible Protocol for the Design of Embedded Signal Processing Systems , 2002, Des. Autom. Embed. Syst..

[16]  Gernot Heiser,et al.  The role of virtualization in embedded systems , 2008, IIES '08.

[17]  Giuseppe Lipari,et al.  A methodology for designing hierarchical scheduling systems , 2005, J. Embed. Comput..

[18]  Jane W.-S. Liu,et al.  Scheduling real-time applications in an open environment , 1997, Proceedings Real-Time Systems Symposium.

[19]  Ragunathan Rajkumar,et al.  Distributed Resource Kernels: OS Support for End-To-End Resource Isolation , 2008, 2008 IEEE Real-Time and Embedded Technology and Applications Symposium.

[20]  Chenyang Lu,et al.  RT-Xen: Real-Time Virtualization Based on Fixed-Priority Hierarchical Scheduling , 2010 .