skip to main content
research-article

A real-time Java chip-multiprocessor

Published:27 August 2010Publication History
Skip Abstract Section

Abstract

Chip-multiprocessors are an emerging trend for embedded systems. In this article, we introduce a real-time Java multiprocessor called JopCMP. It is a symmetric shared-memory multiprocessor, and consists of up to eight Java Optimized Processor (JOP) cores, an arbitration control device, and a shared memory. All components are interconnected via a system on chip bus. The arbiter synchronizes the access of multiple CPUs to the shared main memory. In this article, three different arbitration policies are presented, evaluated, and compared with respect to their real-time and average-case performance: a fixed priority, a fair-based, and a time-sliced arbiter.

Tasks running on different CPUs of a chip-multiprocessor (CMP) influence each others' execution times when accessing a shared memory. Therefore, the system needs an arbiter that is able to limit the worst-case execution time of a task running on a CPU, even though tasks executing simultaneously on other CPUs access the main memory. Our research shows that timing analysis is in fact possible for homogeneous multiprocessor systems with a shared memory. The timing analysis of tasks, executing on the CMP using time-sliced memory arbitration, leads to viable worst-case execution time bounds.

The time-sliced arbiter divides the memory access time into equal time slots, one time slot for each CPU. This memory arbitration scheme allows for a calculation of upper bounds of Java application worst-case execution times, depending on the number of CPUs, the time slot size, and the memory access time. Examples of worst-case execution time calculation are presented, and the analyzed results of a real-world application task are compared to measured execution time results. Finally, we evaluate the tradeoffs when using a time-predictable solution compared to using average-case optimized chip-multiprocessors, applying three different benchmarks. These experiments are carried out by executing the programs on the CMP prototype.

References

  1. Altera. 2007a. Avalon memory-mapped interface specification (v3.3).Google ScholarGoogle Scholar
  2. Altera. 2007b. Nios II Processor Reference Handbook (ver. 7.2).Google ScholarGoogle Scholar
  3. Altera. 2007c. Quartus II Handbook, vol. 4: SOPC Builder (ver. 7.2).Google ScholarGoogle Scholar
  4. Andrei, A., Eles, P., Peng, Z., and Rosen, J. 2008. Predictable implementation of real-time applications on multiprocessor systems-on-chip. In Proceedings of the IEEE VLSI Design Conference. IEEE, Los Alamitos, 103--110. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. ARM. 2006. ARM 11, MPcore Processor, Technical Reference Manual. http://www.arm.com.Google ScholarGoogle Scholar
  6. ARM. 1999. AMBA specification (rev. 2.0).Google ScholarGoogle Scholar
  7. Artieri, A., D'Alto, V., Chesson, R., Hopkins, M., Rossi, M. C., and Peterson, W. D. 2004. Nomadik—Open multimedia platform for next generation mobile devices. Tech. rep. TA305 http://www.st.com.Google ScholarGoogle Scholar
  8. Dutta, S., Jensen, R., and Rieckmann, A. 2001. Viper: A multiprocessor SOC for advanced set-top box and digital TV systems. IEEE Des. Test Comput. 18, 5, 21--31. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Ermedahl, A. and Engblom, J. 2007. Execution time analysis for embedded real-time systems. In Handbook of Real-Time Embedded Systems, S.H.S. Insup Lee and J.Y.-T. Leung Eds., Chapman & Hall/CRC, 35.1--35.17.Google ScholarGoogle Scholar
  10. Gaisler, J. and Catovic, E. 2006. Multi-core processor based on LEON3-FT IP core (LEON3-FT-MP). Data Syst. Aerospace. 630, ESA Special Publication.Google ScholarGoogle Scholar
  11. Hennessy, J. and Patterson, D. 2006. Computer Architecture: A Quantitative Approach 4th Ed., Morgan Kaufmann. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Hofstee, H. P. 2005. Power efficient processor architecture and the cell processor. In Proceedings of the Symposium on High Performance Computer Architecture. 258--262. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. IBM. 2007. 32-Bit OPB arbiter core databook, rev. 1.Google ScholarGoogle Scholar
  14. IBM. 2001. On-chip peripheral bus architecture specifications, v2.1.Google ScholarGoogle Scholar
  15. Joseph, M. and Pandya, P. K. 1986. Finding response times in a real-time system. Comput. J. 29, 5, 390--395.Google ScholarGoogle ScholarCross RefCross Ref
  16. Jouppi, N. P. 1990. Improving direct-mapped cache performance by the addition of a small fully-associative cache and prefetch buffers. In Proceedings of the 17th Annual International Symposium on Computer Architecture. 364--373. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Kahle, J. A., Day, M. N., Hofstee, H. P., Johns, C. R., Maeurer, T. R., and Shippy, D. 2005. Introduction to the cell multiprocessor. J-IBM-JRD 49, 4/5, 589--604. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Keltcher, C. N., McGrath, K. J., Ahmed, A., and Conway, P. 2003. The AMD Opteron processor for multiprocessor servers. IEEE Micro 23, 2, 66--76. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Kistler, M., Perrone, M., and Petrini, F. 2006. Cell multiprocessor communication network: Built for speed. IEEE Micro 26, 10--25. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Kongetira, P., Aingaran, K., and Olukotun, K. 2005. Niagara: A 32-way multithreaded SPARC processor. IEEE Micro 25, 2, 21--29. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Kopetz, H. 1997. Real-Time Systems: Design Principles for Distributed Embedded Applications. Kluwer Academic Press, Amsterdam. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Laudon, J. and Spracklen, L. 2007. The coming wave of multithreaded chip multiprocessors. Int. J. Paral. Program. 35, 3, 299--330. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Li, Y.-T. S. and Malik, S. 1995. Performance analysis of embedded software using implicit path enumeration. In Proceedings of the Workshop on Languages, Compilers, & Tools for Real-Time Systems. 88--98. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Lickly, B., Liu, I., Kim, S., Patel, H. D., Edwards, S. A., and Lee, E. A. 2008. Predictable programming on a precision timed architecture. In Proceedings of the International Conference on Compilers, Architecture, and Synthesis from Embedded Systems. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Lindholm, T. and Yellin, F. 1999. The Java Virtual Machine Specification 2nd Ed., Addison-Wesley, Reading, MA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Liu, C. L. and Layland, J. W. 1973. Scheduling algorithms for multiprogramming in a hard-real-time environment. J. ACM 20, 1, 46--61. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Martin, G. and Chang, H. 2003. Winning the SOC Revolution. (Kluwer Academic Press, Amsterdam, chapter 5).Google ScholarGoogle Scholar
  28. Moore, G. E. 1965. Cramming more components onto integrated circuits. Electronics 38, 8, 114--117.Google ScholarGoogle Scholar
  29. Pitter, C. 2009. Time-predictable Java chip-multiprocessor. Ph.D. dissertation, Vienna University of Technology, Austria.Google ScholarGoogle Scholar
  30. Pitter, C. 2008. Time-predictable memory arbitration for a Java chip-multiprocessor. In Proceedings of the 6th International Workshop on Java Technologies for Real-Time and Embedded Systems (JTRES'08). ACM, New York. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Pitter, C. and Schoeberl, M. 2008. Performance evaluation of a Java chip-multiprocessor. In Proceedings of the IEEE 3rd Symposium on Industrial Embedded Systems (SIES'08). IEEE, Los Alamitos, CA.Google ScholarGoogle Scholar
  32. Pitter, C. and Schoeberl, M. 2007a. Time predictable CPU and DMA shared memory access. In Proceedings of the International Conference on Field-Programmable Logic and its Applications (FPL'07).Google ScholarGoogle Scholar
  33. Pitter, C. and Schoeberl, M. 2007b. Towards a Java multiprocessor. In Proceedings of the 5th International Workshop on Java Technologies for Real-Time and Embedded Systems (JTRES'07). ACM, New York. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. Poletti, F., Bertozzi, D., Benini, L., and Bogliolo, A. 2003. Performance analysis of arbitration policies for SoC communication architectures. Des. Automation Embed. Syst. 8, 189--210.Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. Puschner, P. and Burns, A. 2000. A review of worst-case execution-time analysis. J. Real-Time Syst. 18, 2/3, 115--128. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. Rosen, J., Andrei, A., Eles, P., and Peng, Z. 2007. Bus access optimization for predictable implementation of real-time applications on multiprocessor systems-on-chip. In Proceedings of the IEEE Real-Time Systems Symposium (RTSS). IEEE, Los Alamitos, 49--60. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. Schoeberl, M. 2008. A Java processor architecture for embedded real-time systems. J. Syst. Architecture 54/1--2, 265--286. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. Schoeberl, M. 2007. SimpCon—A simple and efficient SoC interconnect. In Proceedings of the 15th Austrian Workshop on Microelectronics (Austrochip'07).Google ScholarGoogle Scholar
  39. Schoeberl, M. and Pedersen, R. 2006. WCET analysis for a Java processor. In Proceedings of the 4th International Workshop on Java Technologies for Real-time and Embedded Systems (JTRES'06), ACM, New York, 202--211. Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. Schoeberl, M. 2005a. Design and implementation of an efficient stack machine. In Proceedings of the 12th IEEE Reconfigurable Architecture Workshop (RAW'05), IEEE, Los Alamitos. Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. Schoeberl, M. 2005b. Jop: A Java optimized processor for embedded real-time systems. Ph.D. dissertation, Vienna University of Technology, Austria.Google ScholarGoogle Scholar
  42. Schoeberl, M. 2004. A time predictable instruction cache for a Java processor. In Proceedings of the Workshop on Java Technologies for Real-Time and Embedded Systems. Lecture Notes in Computer Science, vol. 3292, Springer, Berlin, 371--382.Google ScholarGoogle Scholar
  43. Siebert, F. 2008. Jeopard: Java environment for parallel real-time development. In Proceedings of the 6th International Workshop on Java Technologies for Real-Time and Embedded Systems (JTRES '08), ACM, New York, 87--93. Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. SPARC International Inc. 1992. The SPARC Architecture Manual: Version 8. Prentice Hall, Englewood Cliffs, NJ. Google ScholarGoogle ScholarDigital LibraryDigital Library
  45. Thiele, L. and Wilhelm, R. 2004. Design for timing predictability. Real-Time Syst, 28, 2--3, 157--177. Google ScholarGoogle ScholarDigital LibraryDigital Library
  46. Wilhelm, R., Engblom, J., Ermedahl, A., Holsti, N., Thesing, S., Whalley, D. B., Bernat, G., Ferdinand, C., Heckmann, R., Mitra, T., Mueller, F., Puaut, I., Puschner, P. P., Staschulat, J., and Stenström, P. 2008. The worst-case execution-time problem—Overview of methods and survey of tools. ACM Trans. Embed. Comput. Syst 7, 3, 1--53. Google ScholarGoogle ScholarDigital LibraryDigital Library
  47. Wolf, W. 2006. High-Performance Embedded Computing: Architectures, Applications, and Methodologies. Morgan Kaufmann, San Francisco, CA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  48. Xilinx. 2007. MicroBlaze Processor Reference Guide, Embedded Development Kit EDK 9.2i. http://www.xilinx.com.Google ScholarGoogle Scholar
  49. Xilinx. 2005. OPB Arbiter product specification (v1.10c).Google ScholarGoogle Scholar

Index Terms

  1. A real-time Java chip-multiprocessor

          Recommendations

          Comments

          Login options

          Check if you have access through your login credentials or your institution to get full access on this article.

          Sign in

          Full Access

          • Published in

            cover image ACM Transactions on Embedded Computing Systems
            ACM Transactions on Embedded Computing Systems  Volume 10, Issue 1
            August 2010
            369 pages
            ISSN:1539-9087
            EISSN:1558-3465
            DOI:10.1145/1814539
            Issue’s Table of Contents

            Copyright © 2010 ACM

            Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

            Publisher

            Association for Computing Machinery

            New York, NY, United States

            Publication History

            • Published: 27 August 2010
            • Accepted: 1 July 2009
            • Revised: 1 April 2009
            • Received: 1 November 2008
            Published in tecs Volume 10, Issue 1

            Permissions

            Request permissions about this article.

            Request Permissions

            Check for updates

            Qualifiers

            • research-article
            • Research
            • Refereed

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader