Hardware Objects for Java

Martin Schoeberl, Christian Thalinger, Stephan Korsholm, Anders Peter Ravn

Research output: Contribution to book/anthology/report/conference proceedingArticle in proceedingResearchpeer-review

27 Citations (Scopus)

Abstract

Java, as a safe and platform independent language, avoids access to low-level I/O devices or direct memory access.
In standard Java, low-level I/O it not a concern; it is handled by the operating system. However, in the embedded domain resources are scarce and a Java virtual machine (JVM) without an underlying middleware is an attractive architecture. When running the JVM on bare metal, we need access to I/O devices from Java; therefore we investigate a safe and efficient mechanism to represent I/O devices as first class Java objects, where device registers are represented by object fields. Access to those registers is safe as Java’s type system regulates it. The access is
also fast as it is directly performed by the bytecodes getfield and putfield.


Hardware objects thus provide an object-oriented abstraction of low-level hardware devices. As a proof of concept,
we have implemented hardware objects in three quite different JVMs: in the Java processor JOP, the JIT compiler
CACAO, and in the interpreting embedded JVM SimpleRTJ.

Original languageEnglish
Title of host publication11th IEEE International Symposium on Object Oriented Real-Time Distributed Computing (ISORC)
PublisherIEEE Computer Society Press
Publication date2008
Pages445-452
ISBN (Print)978-0-7695-3132-8
Publication statusPublished - 2008
EventInternational Symposium on Object Oriented Real-Time Distributed Computing - Orlando, Florida, United States
Duration: 5 May 20087 May 2008
Conference number: 11

Conference

ConferenceInternational Symposium on Object Oriented Real-Time Distributed Computing
Number11
Country/TerritoryUnited States
CityOrlando, Florida
Period05/05/200807/05/2008

Keywords

  • Java
  • Hardware Interface
  • Embedded Systems

Fingerprint

Dive into the research topics of 'Hardware Objects for Java'. Together they form a unique fingerprint.

Cite this