Presentation is loading. Please wait.

Presentation is loading. Please wait.

Java Implementation Arthur Sale & Saeid Nooshabadi The background to a Large Grant ARC Application.

Similar presentations


Presentation on theme: "Java Implementation Arthur Sale & Saeid Nooshabadi The background to a Large Grant ARC Application."— Presentation transcript:

1

2 Java Implementation Arthur Sale & Saeid Nooshabadi The background to a Large Grant ARC Application

3 Introduction Java is one of the keys to the future of mobile, ubiquitous and universal computing. The challenge is to make it competitive (and dominant) in areas it was not designed to tackle.

4 Java execution Java was clearly designed for software interpretation, with some nods in the direction of hardware implementation Run anywhere, anytime. Each source code file is compiled into a class file, which is absolutely standardized.

5 The Class File Highly structured fileHighly structured file Checked for consistency when loadedChecked for consistency when loaded Many tables such as constants, exceptions, superclasses, interfaces, methodsMany tables such as constants, exceptions, superclasses, interfaces, methods The method table actually contains the executable object code and other dataThe method table actually contains the executable object code and other data

6 Execution The Java Virtual Machine (JVM) passes control to the initialization method init() then executes methods on call.The Java Virtual Machine (JVM) passes control to the initialization method init() then executes methods on call. Meanwhile the JVM quietly manages the heap and the method frames in the background (!?)Meanwhile the JVM quietly manages the heap and the method frames in the background (!?) Method code is in ‘bytecode’, instructions for a byte-organized variable-length instruction machine.Method code is in ‘bytecode’, instructions for a byte-organized variable-length instruction machine.

7 JVM Instructions (1) Each instruction consists of a byte op-code followed by 0-6 bytes of address and other data Arithmetic and other instructions operate on stack (load, store, +, –, , , etc) About 180 instructions are conceptually simple (easy semantics)

8 JVM Instructions (2) Remaining instructions are complex. Require quite long execution sequences and semantics. JVM’s job to handle this, including thread locking, exception-handling, object memory allocation, class loading, class invocation, etc. While class standardized, execution environment is as free as the language designers could make it.

9 Options for Java bytecode Interpreter (optimized?) JIT ‘compiler’, really selective translator from bytecode to native code Full ‘compiler’ especially for environments that do not admit applets Execution in hardware, picoJava™

10 Research (1) – raw execution LocalityLocality Instruction frequencyInstruction frequency Pipelining, branch predictionPipelining, branch prediction Hardware support for stack frames, instruction I-cachesHardware support for stack frames, instruction I-caches Instruction translation on the flyInstruction translation on the fly

11 Instruction class frequency

12 Research (2) – knowing Java Hardware translation, parallel formsHardware translation, parallel forms Handling of references, dereferencingHandling of references, dereferencing An object O-cache?An object O-cache? Support for exceptions, thread priority, locks, etcSupport for exceptions, thread priority, locks, etc Co-processorsCo-processors

13 Research (3) – objects Heap allocationHeap allocation Garbage collection (hardware support? co-processor and interlocked algorithms? bots? reference counting?)Garbage collection (hardware support? co-processor and interlocked algorithms? bots? reference counting?) Object lifetime characteristicsObject lifetime characteristics Distributed systemsDistributed systems

14 Average sizes in 32-bit words

15 Research (4) – other Is tagged memory (or structured memory) able to be exploited?Is tagged memory (or structured memory) able to be exploited? Low energy consumption issuesLow energy consumption issues Distributed computing issuesDistributed computing issues

16 Where to? If we knew, we wouldn’t be doing the research Collect raw data (static + dynamic) Analyze and publish on Web Explore algorithms, architectures, ideas, hardware

17 Dr Saeid Nooshabadi

18 Some possibilities Hardware that exploits Java characteristics Very low energy-using processors (powered by batteries, solar cells) Multi-media applications (compute intensive) Influence future commercial processors

19

20 © Copyright 2000 Arthur Sale All rights reserved Arthur Sale asserts the right to be recognized as author of this work Contact:


Download ppt "Java Implementation Arthur Sale & Saeid Nooshabadi The background to a Large Grant ARC Application."

Similar presentations


Ads by Google