13.10.2014 Views

OPTIMIZING THE JAVA VIRTUAL MACHINE INSTRUCTION SET BY ...

OPTIMIZING THE JAVA VIRTUAL MACHINE INSTRUCTION SET BY ...

OPTIMIZING THE JAVA VIRTUAL MACHINE INSTRUCTION SET BY ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

214<br />

10.1.3 Evaluating the Impact of Despecialization in Resource<br />

Constrained Environments<br />

The study presented in Chapter 5 examined the impact despecialization had on 20<br />

benchmarks running on 8 computing platforms. However, these platforms are all<br />

desktop computing environments. They fail to include either top end server class<br />

equipment or more resource constrained portable computing environments such as<br />

hand-held computers, PDAs and cellular phones. While it is anticipated that server<br />

equipment will show despecialization characteristics similar to desktop computing<br />

environments, it is unclear whether the same results will be achieved on resource constrained<br />

platforms where code density is of greater concern and just-in-time compilers<br />

may not be available.<br />

In addition to expanding the number of platforms tested, the benchmarks tested<br />

should also be expanded. Whenever possible, the new benchmarks introduced should<br />

reflect the reality of the applications typically executed on the platform. In particular,<br />

the benchmarks selected for a resource constrained environment should be of a size<br />

and level of computational complexity similar to the applications typically executed<br />

on those platforms. Many of the current applications are too scientific in nature to<br />

reflect the typical application for resource constrained environments.<br />

10.2 Multicodes<br />

Chapter 7 presented an initial study on multicodes. This study showed that the<br />

runtime for some benchmarks was reduced by as much as 30 percent. The following<br />

subsections examine areas of future research, some of which may allow further<br />

performance gains to be achieved.<br />

10.2.1 Loosening the Definition of a Multicode Block<br />

Section 7.1 included the definition for a multicode block. It included a condition<br />

that, other than as the result of an exception, the first bytecode within a multicode<br />

block will execute if and only if all of the bytecodes within the block will execute.<br />

In practice, it should be possible to loosen the definition of a multicode block to<br />

remove this restriction. Instead, a multicode block could be defined as a sequence of<br />

bytecodes that meets the following constraints:

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!