Abstract
Many single-processor embedded systems are implemented using a time-triggered co-operative (TTC) scheduler. When considering possible alternatives to such a design, one option is a multi-CPU architecture, created using off-the-shelf processors or SoC techniques. In order to allow the rapid assessment of such design alternatives, we are exploring ways in which single-processor TTC code may be “automatically” converted to a multi-CPU equivalent. In this paper, we discuss the design of a prototype source code conversion tool. The input to this tool is the source code for the tasks of a single processor system using a TTC scheduler. The output from the tool (in the current version) is the equivalent multi-processor code based on either a “domino” scheduler or a shared-clock scheduler. In order to assess the effectiveness of the tool, we have used it it in a non-trivial case study: the results from this study are presented in detail.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Kopetz, H.: Real-Time Systems: Design Principles for Distributed Embedded Applications. Kluwer Academic, Dordrecht (1997)
Siemers, C., Falsett, R., Seyer, R., Ecker, K.: Reliable event-triggered systems for mechatronic applications. Journal of Systems and Software 77, 17–26 (2005)
Allworth, S.T.: Introduction to Real-Time Software Design. Macmillan, Basingstoke (1981)
Nissanke, N.: Realtime Systems. Prentice-Hall, Englewood Cliffs (1997)
Pont, M.J.: Patterns for Time-Triggered Embedded Systems. Addison-Wesley, Reading (2001)
Storey, N.: Safety-Critical Computer Systems. Addison-Wesley, Reading (1996)
Bate, I.J.: Introduction to scheduling and timing analysis. In: The Use of Ada in Real-Time Systems, IEE Conference Publication 00/034 (2000)
Ward, N.J.: The static analysis of a safety-critical avionics control system. In: Air Transport Safety: Proceedings of the Safety and Reliability Society Spring Conference, SaRS, Ltd (1991)
Baker, T.P., Shaw, A.: The cyclic executive model and ada. Real-Time Systems 1(1), 7–25 (1989)
Locke, C.D.: Software architecture for hard real-time applications: Cyclic executives vs. fixed priority executives. Real-Time Systems 4(1), 37–53 (1992)
Pont, M.J.: Embedded C. Addison-Wesley, Reading (2002)
Ayavoo, D., Pont, M.J., Parker, S.: Using simulation to support the design of distributed embedded control systems: A case study. In: Koelmans, A., Bystrov, A., Pont, M. (eds.) Proceedings of the 1st UK Embedded Forum, University of Newcastle upon Tyne, pp. 54–65 (2004)
Phatrapornnant, T., Pont, M.J.: Reducing jitter in embedded systems employing a time-triggered software architecture and dynamic voltage scaling. IEEE Transactions on Computers 55(2), 113–124 (2006)
Edwards, T., Pont, M.J., Scotson, P., Crumpler, S.: A test-bed for evaluating and comparing designs for embedded control systems. In: Koelmans, A., Bystrov, A., Pont, M. (eds.) Proceedings of the 1st UK Embedded Forum, University of Newcastle upon Tyne, pp. 106–126 (2004)
Key, S., Pont, M.J.: Implementing PID control systems using resource-limited embedded processors. In: Koelmans, A., Bystrov, A., Pont, M. (eds.) Proceedings of the 1st UK Embedded Forum, University of Newcastle upon Tyne, pp. 76–92 (2004)
Bate, I.J.: An Architecture for Distributed Real-Time Systems. University of York, Department of Computer Science, University Technology Centre, UTC (1997)
Maaita, A., Pont, M.J.: Using ‘planned pre-emption’ to reduce levels of task jitter in a time-triggered hybrid scheduler. In: Proceedings of the 2nd UK Embedded Forum (2005)
Lysecky, R., Vahid, F.: A study of the speedups and competitiveness of FPGA soft processor cores using dynamic hardware/software partitioning. In: Proceedings of the European Conference on Design, Automation and Test (DATE), Munich, Germany, pp. 18–23. IEEE Computer Society, Los Alamitos (2005)
Gray, J.: Designing a Simple FPGA-Optimized RISC CPU and System-on-a-Chip. Gray Research LLC (2000), http://www.fpgacpu.org
Buttazzo, G.C.: Rate monotonic vs. EDF: Judgement day. Real-Time Systems 29, 5–26 (2005)
Rau, B.R., Fisher, J.A.: Instruction-level parallel processing: History, overview, and perspective. The Journal of Supercomputing 7(1 - 2), 9–50 (1993)
Johnson, M.: Superscalar Microprocessor Design. Prentice-Hall, Englewood Cliffs (1991)
Torng, H.C., Vassiliadis, S. (eds.): Instruction Level Parallel Processors. IEEE Computer Society Press, Los Alamitos (1995)
Aditya, S., Mahlke, S.A., Rau, B.R.: Code Size Minimization and Retargetable Assembly for Custom EPIC and VLIW Instruction Formats, HPL-2000-141. HP Laboratories, Palo Alto (2000)
Aditya, S., Rau, B.R.: Automatic Architecture Synthesis and Compiler Retargeting for VLIW and EPIC Processors, HPL-1999-93. HP Laboratories, Palo Alto (1999)
Pillai, S., Jacome, M.F.: Compiler-directed ILP extraction for clustered VLIW/EPIC machines: Predication, speculation and modulo scheduling. In: Proceedings of the European Conference on Design, Automation and Test (DATE), Munich, Germany, pp. 422–427. IEEE Computer Society, Los Alamitos (2003)
Rajagopalan, S., Rajan, S.P., Malik, S., Rigo, S., Araujo, G., Takayama, K.: A retargetable VLIW compiler framework for DSPs with instruction-level parallelism. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems 20, 1319 (2001)
Halambi, A., Grun, P., Ganesh, V., Khare, A., Dutt, N., Nicolau, A.: EXPRESSION: A language for architecture exploration through compiler/simulator retargetability. In: Proceedings of the European Conference on Design, Automation and Test (DATE), Munich, Germany, p. 485. IEEE Computer Society, Los Alamitos (1999)
Henzinger, T.A., Benjamin, H., Kirsch, C.M.: Embedded control systems development with giotto. SIGPLAN Notices 36, 64 (2001)
Jie, L., Lee, E.A.: Timed multitasking for real-time embedded software. IEEE Control Systems Magazine 23, 65 (2003)
Mellor, S.J.: Automatic code generation from UML models. C++ Report 11(4), 28–33 (1999); automatic code generation; UML; high-level language compilers; notation; object-oriented systems
Mwelwa, C., Pont, M.J., Ward, D.: Code generation supported by a pattern-based design methodology. In: Koelmans, A., Bystrov, A., Pont, M. (eds.) Proceedings of the 1st UK Embedded Forum, University of Newcastle upon Tyne, pp. 36–55 (2004)
Vidler, P.J., Pont, M.J.: Automatic conversion from ‘single processor’ to ‘multi-processor’ software architectures for embedded control systems. In: Koelmans, A., Bystrov, A., Pont, M.J., Ong, R., Brown, A. (eds.) Proceedings of the 2nd UK Embedded Forum (2005)
Ayavoo, D., Pont, M.J., Parker, S.: A ‘hardware-in-the-loop’ testbed representing the operation of a cruise-control system in a passenger car. In: Proceedings of the 2nd UK Embedded Forum (2005)
ISO/DIS 11898: Road Vehicles — Interchange of Digital Information — Controller Area Network (CAN) for High Speed Communication (1992)
Nahas, M., Short, M.J., Pont, M.J.: The impact of bit stuffing on the real-time performance of a distributed control system. In: Proceedings of the 10th International CAN Conference, Rome (2005)
Marti, P., Fuertes, J.M., Fohler, G.: A control performance metric for real-time timing constraints. In: Proceedings of the 14th Euromicro International Conference on Real-Time Systems (2002)
Dorf, R.C., Bishop, R.H.: Modern Control Systems, 7th edn. Addison-Wesley, Reading (1995)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2006 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Vidler, P.J., Pont, M.J. (2006). Computer Assisted Source-Code Parallelisation. In: Gavrilova, M.L., et al. Computational Science and Its Applications - ICCSA 2006. ICCSA 2006. Lecture Notes in Computer Science, vol 3984. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11751649_3
Download citation
DOI: https://doi.org/10.1007/11751649_3
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-34079-9
Online ISBN: 978-3-540-34080-5
eBook Packages: Computer ScienceComputer Science (R0)