Java co-processor for embedded systems

7Citations
Citations of this article
2Readers
Mendeley users who have this article in their library.
Get full text

Abstract

Java is very popular and portable, as it is a write-once run-anywhere language. This enables coders to develop portable software for any platform. Java code is first compiled into bytecode, which is then run on a Java Virtual Machine (hereafter JVM). The JVM acts as an interpreter from bytecode to native microcode, or more recently uses just-in-time compilation (JIT) to affect the same result a bit faster at the cost of memory. This software's only approach is quite inefficient in terms of power consumption and execution time. These problems rise from the fact that executing one Java instruction requires several native instructions. Another source for inefficiency is the cache usage. As the JVM is the only part of software running natively, it occupies the instruction cache, whereas the Java bytecode is treated as data for the JVM, hence being located in the data cache. Also the actual data processed by the Java code is assigned to the data cache. This clearly causes more memory accesses missing the cache. When the execution of the bytecode is performed on a hardware co-processor this is avoided and the overall amount of memory accesses is reduced. © 2007 Springer Science+Business Media B.V.

Cite

CITATION STYLE

APA

Säntti, T., Tyystjärvi, J., & Plosila, J. (2007). Java co-processor for embedded systems. In Processor Design: System-on-Chip Computing for ASICs and FPGAs (pp. 287–308). Springer Netherlands. https://doi.org/10.1007/978-1-4020-5530-0_13

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free