Hardware/software co-design of run-time systems

Trends in system-level design show a clear move towards core-based design, where processors, controllers and other proprietary cores are reused and constitute essential building blocks. Thus, areas such as embedded system design and system-on-a-chip design are changing dramatically, requiring new design methodologies and Computer-Aided Design (CAD) tools. This thesis presents a novel system-level scheduling methodology and CAD environment, the SERRA Run-Time Scheduler Synthesis and Analysis Tool. Unlike previous approaches to run-time scheduling, we split our run-time scheduler between hardware and software, as opposed to placing the scheduler all in one or the other. Thus, given an already partitioned input system specification in an HDL and a software language, SERRA automatically generates a run-time scheduler partly in hardware and partly in software, for a target architecture of a microprocessor core together with multiple hardware cores or modules. A heuristic scheduling algorithm solves for priorities of software tasks executing on a single microprocessor with a custom priority scheduler, interrupt service routine, and context switch code. Real-time analysis takes into account the split hardware/software implementation both of the scheduler and of the tasks. The scheduler supports standard requirements of both domains, such as relative timing constraints in hardware and semaphores in software. A designer who uses the SERRA CAD tool gains the advantage of efficient satisfaction of timing constraints for hardware/software systems within a framework that enables different hardware/software partitions to be quickly evaluated. Thus, a hardware/software partitioning tool could easily sit on top of SERRA, which would generate run-time systems for different hardware/software partitions chosen for evaluation. In addition, SERRA''s more efficient design space exploration can improve time-to-market for a product. Finally, we present two case studies. First, we show a full analysis, synthesis, and simulation of a hardware/software implementation of a robotics control system for a PUMA arm. Second, we describe a sample prototype of the split run-time scheduler in an actual design, a force-feedback real-time Haptic robot. For this application, the hardware part of the scheduler was implemented on programmable logic communicating with software using a standard communication protocol.

[1]  Frédéric Boussinot,et al.  The ESTEREL language , 1991, Proc. IEEE.

[2]  Giovanni De Micheli,et al.  Modeling And Synthesis of Synchronous System-Level Specifications , 1997 .

[3]  Hugo De Man,et al.  Embedded architecture co-synthesis and system integration , 1996, Proceedings of 4th International Workshop on Hardware/Software Co-Design. Codes/CASHE '96.

[4]  Donald E. Thomas,et al.  Multiple-process behavioral synthesis for mixed hardware-software systems , 1995 .

[5]  Claudionor J Coelho,et al.  Analysis and Synthesis of Concurrent Digital Systems Using Control-Flow Expressions , 1996 .

[6]  Johan Stärner,et al.  From single to multiprocessor real-time kernels in hardware , 1995, Proceedings Real-Time Technology and Applications Symposium.

[7]  Niraj K. Jha,et al.  COSYN: hardware-software co-synthesis of embedded systems , 1997, DAC.

[8]  Hugo De Man,et al.  Constructing application-specific heterogeneous embedded architectures from custom HW/SW applications , 1996, DAC '96.

[9]  Gaetano Borriello,et al.  Scheduling for reactive real-time systems , 1994, IEEE Micro.

[10]  Giovanni De Micheli,et al.  Analysis and synthesis of concurrent digital circuits using control-flow expressions , 1996, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[11]  Diederik Verkest,et al.  Hardware/software co-design of digital telecommunication systems , 1997, Proc. IEEE.

[12]  Krithi Ramamritham,et al.  Allocation and Scheduling of Precedence-Related Periodic Tasks , 1995, IEEE Trans. Parallel Distributed Syst..

[13]  Wayne H. Wolf,et al.  Performance estimation for real-time distributed embedded systems , 1995, Proceedings of ICCD '95 International Conference on Computer Design. VLSI in Computers and Processors.

[14]  Jörg Henkel,et al.  The Interplay of Run-Time Estimation and Granularity in HW/SW Partitioning , 1996, CODES.

[15]  Sharad Malik,et al.  Performance estimation of embedded software with instruction cache modeling , 1995, ICCAD.

[16]  Gaetano Borriello,et al.  Software Scheduling in the Co-Synthesis of Reactive Real-Time Systems , 1994, 31st Design Automation Conference.

[17]  Lennart Lindh,et al.  FASTCHART-Idea and Implementation , 1991 .

[18]  Lennart Lindh,et al.  Real-time kernel in hardware RTU: a step towards deterministic and high-performance real-time systems , 1996, Proceedings of the Eighth Euromicro Workshop on Real-Time Systems.

[19]  Krithi Ramamritham,et al.  Allocation and scheduling of complex periodic tasks , 1990, Proceedings.,10th International Conference on Distributed Computing Systems.

[20]  Rajesh Gupta,et al.  Hardware/software co-design , 1996, Proc. IEEE.

[21]  Sharad Malik,et al.  Performance Analysis of Embedded Systems , 1996 .

[22]  John A. Stankovic,et al.  Kernel-level threads for dynamic, hard real-time environments , 1995, Proceedings 16th IEEE Real-Time Systems Symposium.

[23]  Luciano Lavagno,et al.  Hardware-software co-design of embedded systems: the POLIS approach , 1997 .

[24]  Brian W. Kernighan,et al.  AMPL: A Modeling Language for Mathematical Programming , 1993 .

[25]  H. De Man,et al.  CoWare—A design environment for heterogeneous hardware/software systems , 1996, Proceedings EURO-DAC '96. European Design Automation Conference with EURO-VHDL '96 and Exhibition.

[26]  Dirk Herrmann,et al.  The Cosyma System , 1997 .

[27]  Lennart Lindh FASTHARD - A Fast Time Deterministic HARDware Based Real-time Kernel , 1992, Fourth Euromicro workshop on Real-Time Systems.

[28]  Kang G. Shin,et al.  Static allocation of periodic tasks with precedence constraints in distributed real-time systems , 1989, [1989] Proceedings. The 9th International Conference on Distributed Computing Systems.

[29]  Lui Sha,et al.  Priority Inheritance Protocols: An Approach to Real-Time Synchronization , 1990, IEEE Trans. Computers.

[30]  Wayne Wolf,et al.  Hardware-Software Co-Synthesis of Distributed Embedded Systems , 1996 .

[31]  Marco Spuri,et al.  Implications of Classical Scheduling Results for Real-Time Systems , 1995, Computer.

[32]  Rolf Ernst,et al.  A path-based technique for estimating hardware runtime in HW/SW-cosynthesis , 1995 .

[33]  Gaetano Borriello,et al.  Optimizing communication in embedded system co-simulation , 1997, CODES.

[34]  Jörg Henkel,et al.  The COSYMA environment for hardware/software cosynthesis of small embedded systems , 1996, Microprocess. Microsystems.

[35]  Rolf Ernst,et al.  Embedded program timing analysis based on path clustering and architecture classification , 1997, 1997 Proceedings of IEEE International Conference on Computer Aided Design (ICCAD).

[36]  Diederik Verkest,et al.  Co-Design of DSP Systems , 1996 .

[37]  G. De Micheli,et al.  The Olympus Synthesis System for Digital Design , 1990 .

[38]  Shirish S. Sathaye,et al.  Generalized rate-monotonic scheduling theory: a framework for developing real-time systems , 1994, Proc. IEEE.

[39]  Alan Burns,et al.  Applying new scheduling theory to static priority pre-emptive scheduling , 1993, Softw. Eng. J..

[40]  Gaetano Borriello,et al.  EMBEDDED SYSTEM CO-DESIGN TOWARDS PORTABILITY AND RAPID INTEGRATION , 1995 .

[41]  Oussama Khatib,et al.  The haptic display of complex graphical environments , 1997, SIGGRAPH.

[42]  James W. Layland,et al.  Scheduling Algorithms for Multiprogramming in a Hard-Real-Time Environment , 1989, JACM.

[43]  Gaetano Borriello,et al.  Communication Synthesis for Embedded Systems with Global Considerations , 1997, CODES.

[44]  Gérard Berry,et al.  The Esterel Synchronous Programming Language: Design, Semantics, Implementation , 1992, Sci. Comput. Program..

[45]  David C. Ku,et al.  HardwareC -- A Language for Hardware Design (Version 2.0) , 1990 .

[46]  Edward A. Lee,et al.  Ptolemy: A Framework for Simulating and Prototyping Heterogenous Systems , 2001, Int. J. Comput. Simul..

[47]  Robert K. Brayton,et al.  Sequential circuit design using synthesis and optimization , 1992, Proceedings 1992 IEEE International Conference on Computer Design: VLSI in Computers & Processors.

[48]  Giovanni De Micheli,et al.  High Level Synthesis of ASlCs un - der Timing and Synchronization Constraints , 1992 .

[49]  Giovanni De Micheli,et al.  Run-time scheduler synthesis for hardware-software systems and application to robot control design , 1997, Proceedings of 5th International Workshop on Hardware/Software Co Design. Codes/CASHE '97.

[50]  Gaetano Borriello,et al.  The Chinook hardware/software co-synthesis system , 1995 .

[51]  Mohamed Abid,et al.  Exploration of hardware/software design space through a codesign of robot arm controller , 1996, Proceedings EURO-DAC '96. European Design Automation Conference with EURO-VHDL '96 and Exhibition.

[52]  Gaetano Borriello,et al.  Synthesis of the hardware/software interface in microcontroller-based systems , 1992, 1992 IEEE/ACM International Conference on Computer-Aided Design.

[53]  Ragunathan Rajkumar,et al.  Synchronization in Real-Time Systems: A Priority Inheritance Approach , 1991 .

[54]  Niraj K. Jha,et al.  CASPER: Concurrent hardware-software co-synthesis of hard real-time aperiodic and periodic specifications of embedded system architectures , 1998, Proceedings Design, Automation and Test in Europe.

[55]  Giovanni De Micheli,et al.  Synthesis and Optimization of Digital Circuits , 1994 .

[56]  Petru Eles,et al.  Scheduling of conditional process graphs for the synthesis of embedded systems , 1998, DATE.

[57]  Sean Quinlan,et al.  Efficient distance computation between non-convex objects , 1994, Proceedings of the 1994 IEEE International Conference on Robotics and Automation.

[58]  R. Faure,et al.  Introduction to operations research , 1968 .