Exploiting Static Application Knowledge in a Java Compiler for Embedded Systems: A Case Study

Research output: Chapter in book/report/conference proceedingConference contributionResearchpeer review

Authors

  • Christoph Erhardt
  • Michael Stilkerich
  • Daniel Lohmann
  • Wolfgang Schröder-Preikschat

External Research Organisations

  • Friedrich-Alexander-Universität Erlangen-Nürnberg (FAU Erlangen-Nürnberg)
View graph of relations

Details

Original languageEnglish
Title of host publicationJTRES '11: Proceedings of the 9th International Workshop on Java Technologies for Real-Time and Embedded Systems
Pages96-105
Number of pages10
Publication statusPublished - Sept 2011
Externally publishedYes
Event9th International Workshop on Java Technologies for Real-Time and Embedded Systems, JTRES 2011 - York, United Kingdom (UK)
Duration: 26 Sept 201128 Sept 2011

Abstract

Offering many benefits in terms of productivity and reliability, Java is becoming an attractive choice for the field of embedded computing. However, its programming model that relies on the capabilities of just-in-time compilation limits the opportunities to generate highly optimized code in an ahead-of-time compiler. In the KESO project, a Java VM for statically-configured deeply embedded systems, we have previously used static application knowledge to create a tailored runtime environment. In this paper, we present and discuss how this static knowledge can further be exploited by our compiler in order to perform advanced optimizations that would otherwise not be achievable. We conducted a case study with the CDx real-time benchmark in which we examined the peculiarities and challenges that arise, and evaluated the effectiveness of both standard and system-model-specific compiler optimizations in the context of a static embedded application model. Our results show that incorporating the available a-priori knowledge in the compiler provides significant improvements to both footprint and runtime, and can additionally help the system integrator to identify consistency problems between the code and a higher-level system specification at an early development stage.

Keywords

    embedded systems, Java, KESO

ASJC Scopus subject areas

Cite this

Exploiting Static Application Knowledge in a Java Compiler for Embedded Systems: A Case Study. / Erhardt, Christoph; Stilkerich, Michael; Lohmann, Daniel et al.
JTRES '11: Proceedings of the 9th International Workshop on Java Technologies for Real-Time and Embedded Systems. 2011. p. 96-105.

Research output: Chapter in book/report/conference proceedingConference contributionResearchpeer review

Erhardt, C, Stilkerich, M, Lohmann, D & Schröder-Preikschat, W 2011, Exploiting Static Application Knowledge in a Java Compiler for Embedded Systems: A Case Study. in JTRES '11: Proceedings of the 9th International Workshop on Java Technologies for Real-Time and Embedded Systems. pp. 96-105, 9th International Workshop on Java Technologies for Real-Time and Embedded Systems, JTRES 2011, York, United Kingdom (UK), 26 Sept 2011. https://doi.org/10.1145/2043910.2043927
Erhardt, C., Stilkerich, M., Lohmann, D., & Schröder-Preikschat, W. (2011). Exploiting Static Application Knowledge in a Java Compiler for Embedded Systems: A Case Study. In JTRES '11: Proceedings of the 9th International Workshop on Java Technologies for Real-Time and Embedded Systems (pp. 96-105) https://doi.org/10.1145/2043910.2043927
Erhardt C, Stilkerich M, Lohmann D, Schröder-Preikschat W. Exploiting Static Application Knowledge in a Java Compiler for Embedded Systems: A Case Study. In JTRES '11: Proceedings of the 9th International Workshop on Java Technologies for Real-Time and Embedded Systems. 2011. p. 96-105 doi: 10.1145/2043910.2043927
Erhardt, Christoph ; Stilkerich, Michael ; Lohmann, Daniel et al. / Exploiting Static Application Knowledge in a Java Compiler for Embedded Systems: A Case Study. JTRES '11: Proceedings of the 9th International Workshop on Java Technologies for Real-Time and Embedded Systems. 2011. pp. 96-105
Download
@inproceedings{b37e74944bae4ff5873e15ed7de1e555,
title = "Exploiting Static Application Knowledge in a Java Compiler for Embedded Systems:: A Case Study",
abstract = "Offering many benefits in terms of productivity and reliability, Java is becoming an attractive choice for the field of embedded computing. However, its programming model that relies on the capabilities of just-in-time compilation limits the opportunities to generate highly optimized code in an ahead-of-time compiler. In the KESO project, a Java VM for statically-configured deeply embedded systems, we have previously used static application knowledge to create a tailored runtime environment. In this paper, we present and discuss how this static knowledge can further be exploited by our compiler in order to perform advanced optimizations that would otherwise not be achievable. We conducted a case study with the CDx real-time benchmark in which we examined the peculiarities and challenges that arise, and evaluated the effectiveness of both standard and system-model-specific compiler optimizations in the context of a static embedded application model. Our results show that incorporating the available a-priori knowledge in the compiler provides significant improvements to both footprint and runtime, and can additionally help the system integrator to identify consistency problems between the code and a higher-level system specification at an early development stage.",
keywords = "embedded systems, Java, KESO",
author = "Christoph Erhardt and Michael Stilkerich and Daniel Lohmann and Wolfgang Schr{\"o}der-Preikschat",
year = "2011",
month = sep,
doi = "10.1145/2043910.2043927",
language = "English",
isbn = "9781450307314",
pages = "96--105",
booktitle = "JTRES '11: Proceedings of the 9th International Workshop on Java Technologies for Real-Time and Embedded Systems",
note = "9th International Workshop on Java Technologies for Real-Time and Embedded Systems, JTRES 2011 ; Conference date: 26-09-2011 Through 28-09-2011",

}

Download

TY - GEN

T1 - Exploiting Static Application Knowledge in a Java Compiler for Embedded Systems:

T2 - 9th International Workshop on Java Technologies for Real-Time and Embedded Systems, JTRES 2011

AU - Erhardt, Christoph

AU - Stilkerich, Michael

AU - Lohmann, Daniel

AU - Schröder-Preikschat, Wolfgang

PY - 2011/9

Y1 - 2011/9

N2 - Offering many benefits in terms of productivity and reliability, Java is becoming an attractive choice for the field of embedded computing. However, its programming model that relies on the capabilities of just-in-time compilation limits the opportunities to generate highly optimized code in an ahead-of-time compiler. In the KESO project, a Java VM for statically-configured deeply embedded systems, we have previously used static application knowledge to create a tailored runtime environment. In this paper, we present and discuss how this static knowledge can further be exploited by our compiler in order to perform advanced optimizations that would otherwise not be achievable. We conducted a case study with the CDx real-time benchmark in which we examined the peculiarities and challenges that arise, and evaluated the effectiveness of both standard and system-model-specific compiler optimizations in the context of a static embedded application model. Our results show that incorporating the available a-priori knowledge in the compiler provides significant improvements to both footprint and runtime, and can additionally help the system integrator to identify consistency problems between the code and a higher-level system specification at an early development stage.

AB - Offering many benefits in terms of productivity and reliability, Java is becoming an attractive choice for the field of embedded computing. However, its programming model that relies on the capabilities of just-in-time compilation limits the opportunities to generate highly optimized code in an ahead-of-time compiler. In the KESO project, a Java VM for statically-configured deeply embedded systems, we have previously used static application knowledge to create a tailored runtime environment. In this paper, we present and discuss how this static knowledge can further be exploited by our compiler in order to perform advanced optimizations that would otherwise not be achievable. We conducted a case study with the CDx real-time benchmark in which we examined the peculiarities and challenges that arise, and evaluated the effectiveness of both standard and system-model-specific compiler optimizations in the context of a static embedded application model. Our results show that incorporating the available a-priori knowledge in the compiler provides significant improvements to both footprint and runtime, and can additionally help the system integrator to identify consistency problems between the code and a higher-level system specification at an early development stage.

KW - embedded systems

KW - Java

KW - KESO

UR - http://www.scopus.com/inward/record.url?scp=80755167804&partnerID=8YFLogxK

U2 - 10.1145/2043910.2043927

DO - 10.1145/2043910.2043927

M3 - Conference contribution

AN - SCOPUS:80755167804

SN - 9781450307314

SP - 96

EP - 105

BT - JTRES '11: Proceedings of the 9th International Workshop on Java Technologies for Real-Time and Embedded Systems

Y2 - 26 September 2011 through 28 September 2011

ER -